@fusion.dev/helix-headless 0.151.0 → 0.152.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 +648 -28
- package/dist/app-header/root/app-header-root.d.ts +75 -0
- package/dist/app-header/root/app-header-root.js +140 -5
- package/dist/breadcrumbs/breadcrumb/breadcrumb.d.ts +11 -2
- package/dist/breadcrumbs/breadcrumb/breadcrumb.js +11 -2
- package/dist/breadcrumbs/root/breadcrumbs-root.d.ts +14 -2
- package/dist/breadcrumbs/root/breadcrumbs-root.js +16 -3
- package/dist/dialog/description.d.ts +10 -0
- package/dist/dialog/description.js +22 -8
- package/dist/dialog/root/dialog-root.d.ts +17 -1
- package/dist/dialog/root/dialog-root.js +2 -2
- package/dist/drawer/root/drawer-root.d.ts +38 -2
- package/dist/drawer/root/drawer-root.js +33 -6
- package/dist/lightbox/root/lightbox-root.d.ts +44 -6
- package/dist/lightbox/root/lightbox-root.js +59 -11
- package/dist/lightbox/zoom-controller.d.ts +5 -0
- package/dist/lightbox/zoom-controller.js +8 -0
- package/dist/menu/root/menu-root.js +2 -0
- package/dist/navigation/root/navigation-root.d.ts +11 -1
- package/dist/navigation/root/navigation-root.js +10 -5
- package/dist/notifications/root/notifications-root.d.ts +17 -0
- package/dist/notifications/root/notifications-root.js +21 -1
- package/dist/popover/root/popover-root.d.ts +18 -7
- package/dist/popover/root/popover-root.js +8 -1
- package/dist/splitter/root/splitter-root.d.ts +41 -0
- package/dist/splitter/root/splitter-root.js +77 -0
- package/dist/tabs/root/tabs-root.d.ts +25 -0
- package/dist/tabs/root/tabs-root.js +28 -1
- package/dist/tour/naming.d.ts +9 -3
- package/dist/tour/naming.js +9 -3
- package/dist/tour/root/tour-root.d.ts +29 -5
- package/dist/tour/root/tour-root.js +13 -1
- package/dist/tour/stop/tour-stop.d.ts +2 -1
- package/dist/tour/stop/tour-stop.js +4 -1
- package/dist/tree/root/tree-root.d.ts +13 -0
- package/dist/tree/root/tree-root.js +42 -2
- package/lint.json +1 -1
- package/package.json +5 -5
- package/types/jsx.d.ts +450 -30
- package/types/vue.d.ts +53 -16
- package/types/words.d.ts +8 -0
package/types/jsx.d.ts
CHANGED
|
@@ -969,6 +969,22 @@ the wordmark and the actions happen to measure.
|
|
|
969
969
|
takes a search field or a breadcrumb trail as readily as a `Navigation`, so
|
|
970
970
|
the property carries the part's name, `content`. */
|
|
971
971
|
contentAlign?: (HelixHeadlessAppHeader["contentAlign"]) | undefined;
|
|
972
|
+
/** The width of the bar, in pixels, below which the middle region folds behind
|
|
973
|
+
a toggle. Unset, it never folds. */
|
|
974
|
+
"fold-below"?: (HelixHeadlessAppHeader["foldBelow"] | `${number}`) | undefined;
|
|
975
|
+
/** The width of the bar, in pixels, below which the middle region folds behind
|
|
976
|
+
a toggle. Unset, it never folds. */
|
|
977
|
+
foldBelow?: (HelixHeadlessAppHeader["foldBelow"]) | undefined;
|
|
978
|
+
/** Hides the bar as the page scrolls down past it, and shows it again as the
|
|
979
|
+
page scrolls up. */
|
|
980
|
+
"hide-on-scroll"?: (HelixHeadlessAppHeader["hideOnScroll"]) | undefined;
|
|
981
|
+
/** Hides the bar as the page scrolls down past it, and shows it again as the
|
|
982
|
+
page scrolls up. */
|
|
983
|
+
hideOnScroll?: (HelixHeadlessAppHeader["hideOnScroll"]) | undefined;
|
|
984
|
+
/** The name of the toggle that opens a folded middle region. */
|
|
985
|
+
"menu-label"?: (HelixHeadlessAppHeader["menuLabel"]) | undefined;
|
|
986
|
+
/** The name of the toggle that opens a folded middle region. */
|
|
987
|
+
menuLabel?: (HelixHeadlessAppHeader["menuLabel"]) | undefined;
|
|
972
988
|
/** The id of the element whose scrolling lifts the bar, for an app shell that
|
|
973
989
|
scrolls a container instead of the window. Unset is the window. */
|
|
974
990
|
scroller?: (HelixHeadlessAppHeader["scroller"]) | undefined;
|
|
@@ -1008,6 +1024,22 @@ the wordmark and the actions happen to measure.
|
|
|
1008
1024
|
takes a search field or a breadcrumb trail as readily as a `Navigation`, so
|
|
1009
1025
|
the property carries the part's name, `content`. */
|
|
1010
1026
|
"prop:contentAlign"?: (HelixHeadlessAppHeader["contentAlign"]) | undefined;
|
|
1027
|
+
/** The width of the bar, in pixels, below which the middle region folds behind
|
|
1028
|
+
a toggle. Unset, it never folds. */
|
|
1029
|
+
"attr:fold-below"?: (HelixHeadlessAppHeader["foldBelow"] | `${number}`) | undefined;
|
|
1030
|
+
/** The width of the bar, in pixels, below which the middle region folds behind
|
|
1031
|
+
a toggle. Unset, it never folds. */
|
|
1032
|
+
"prop:foldBelow"?: (HelixHeadlessAppHeader["foldBelow"]) | undefined;
|
|
1033
|
+
/** Hides the bar as the page scrolls down past it, and shows it again as the
|
|
1034
|
+
page scrolls up. */
|
|
1035
|
+
"bool:hide-on-scroll"?: (HelixHeadlessAppHeader["hideOnScroll"]) | undefined;
|
|
1036
|
+
/** Hides the bar as the page scrolls down past it, and shows it again as the
|
|
1037
|
+
page scrolls up. */
|
|
1038
|
+
"prop:hideOnScroll"?: (HelixHeadlessAppHeader["hideOnScroll"]) | undefined;
|
|
1039
|
+
/** The name of the toggle that opens a folded middle region. */
|
|
1040
|
+
"attr:menu-label"?: (HelixHeadlessAppHeader["menuLabel"]) | undefined;
|
|
1041
|
+
/** The name of the toggle that opens a folded middle region. */
|
|
1042
|
+
"prop:menuLabel"?: (HelixHeadlessAppHeader["menuLabel"]) | undefined;
|
|
1011
1043
|
/** The id of the element whose scrolling lifts the bar, for an app shell that
|
|
1012
1044
|
scrolls a container instead of the window. Unset is the window. */
|
|
1013
1045
|
"prop:scroller"?: (HelixHeadlessAppHeader["scroller"]) | undefined;
|
|
@@ -10754,8 +10786,14 @@ first, `handleCancel` prevents it, and `requestOpen` decides. So
|
|
|
10754
10786
|
`closedby="any"` gains light dismiss without giving up the refusal, which is
|
|
10755
10787
|
the property this component exists to keep.
|
|
10756
10788
|
|
|
10789
|
+
The press on the backdrop that this element handles itself follows it too:
|
|
10790
|
+
`closerequest` and `none` leave the dialog open on that press, as the
|
|
10791
|
+
platform does, and `none` also keeps it open on Escape in a browser without
|
|
10792
|
+
`closedby`.
|
|
10793
|
+
|
|
10757
10794
|
Absent by default, which is the platform's `auto` and this library's rule
|
|
10758
|
-
that a resting value is an attribute's absence.
|
|
10795
|
+
that a resting value is an attribute's absence. Absent, a press on the
|
|
10796
|
+
backdrop closes the dialog. */
|
|
10759
10797
|
closedby?: (HelixHeadlessDialog["closedBy"]) | undefined;
|
|
10760
10798
|
/** Which close requests the browser handles on its own.
|
|
10761
10799
|
|
|
@@ -10765,8 +10803,14 @@ first, `handleCancel` prevents it, and `requestOpen` decides. So
|
|
|
10765
10803
|
`closedby="any"` gains light dismiss without giving up the refusal, which is
|
|
10766
10804
|
the property this component exists to keep.
|
|
10767
10805
|
|
|
10806
|
+
The press on the backdrop that this element handles itself follows it too:
|
|
10807
|
+
`closerequest` and `none` leave the dialog open on that press, as the
|
|
10808
|
+
platform does, and `none` also keeps it open on Escape in a browser without
|
|
10809
|
+
`closedby`.
|
|
10810
|
+
|
|
10768
10811
|
Absent by default, which is the platform's `auto` and this library's rule
|
|
10769
|
-
that a resting value is an attribute's absence.
|
|
10812
|
+
that a resting value is an attribute's absence. Absent, a press on the
|
|
10813
|
+
backdrop closes the dialog. */
|
|
10770
10814
|
closedBy?: (HelixHeadlessDialog["closedBy"]) | undefined;
|
|
10771
10815
|
/** Draws a control that closes the dialog, in the corner where the title is.
|
|
10772
10816
|
|
|
@@ -10860,8 +10904,14 @@ first, `handleCancel` prevents it, and `requestOpen` decides. So
|
|
|
10860
10904
|
`closedby="any"` gains light dismiss without giving up the refusal, which is
|
|
10861
10905
|
the property this component exists to keep.
|
|
10862
10906
|
|
|
10907
|
+
The press on the backdrop that this element handles itself follows it too:
|
|
10908
|
+
`closerequest` and `none` leave the dialog open on that press, as the
|
|
10909
|
+
platform does, and `none` also keeps it open on Escape in a browser without
|
|
10910
|
+
`closedby`.
|
|
10911
|
+
|
|
10863
10912
|
Absent by default, which is the platform's `auto` and this library's rule
|
|
10864
|
-
that a resting value is an attribute's absence.
|
|
10913
|
+
that a resting value is an attribute's absence. Absent, a press on the
|
|
10914
|
+
backdrop closes the dialog. */
|
|
10865
10915
|
"attr:closedby"?: (HelixHeadlessDialog["closedBy"]) | undefined;
|
|
10866
10916
|
/** Which close requests the browser handles on its own.
|
|
10867
10917
|
|
|
@@ -10871,8 +10921,14 @@ first, `handleCancel` prevents it, and `requestOpen` decides. So
|
|
|
10871
10921
|
`closedby="any"` gains light dismiss without giving up the refusal, which is
|
|
10872
10922
|
the property this component exists to keep.
|
|
10873
10923
|
|
|
10924
|
+
The press on the backdrop that this element handles itself follows it too:
|
|
10925
|
+
`closerequest` and `none` leave the dialog open on that press, as the
|
|
10926
|
+
platform does, and `none` also keeps it open on Escape in a browser without
|
|
10927
|
+
`closedby`.
|
|
10928
|
+
|
|
10874
10929
|
Absent by default, which is the platform's `auto` and this library's rule
|
|
10875
|
-
that a resting value is an attribute's absence.
|
|
10930
|
+
that a resting value is an attribute's absence. Absent, a press on the
|
|
10931
|
+
backdrop closes the dialog. */
|
|
10876
10932
|
"prop:closedBy"?: (HelixHeadlessDialog["closedBy"]) | undefined;
|
|
10877
10933
|
/** Draws a control that closes the dialog, in the corner where the title is.
|
|
10878
10934
|
|
|
@@ -11271,6 +11327,12 @@ lost its focus trap because a consumer forgot a word would be worse than an
|
|
|
11271
11327
|
attribute on the host, and nothing selects on it: the scrim is rendered or
|
|
11272
11328
|
not, rather than shown or hidden by CSS. */
|
|
11273
11329
|
modal?: (HelixHeadlessDrawer["modal"]) | undefined;
|
|
11330
|
+
/** Stops Escape, a press outside, and a swipe from closing the drawer, for a
|
|
11331
|
+
drawer that has to be answered.
|
|
11332
|
+
|
|
11333
|
+
The close control and `close()` still close it, as on `Dialog`: a panel
|
|
11334
|
+
with no way out at all is a trap. */
|
|
11335
|
+
persistent?: (HelixHeadlessDrawer["persistent"]) | undefined;
|
|
11274
11336
|
/** Which edge the drawer comes from.
|
|
11275
11337
|
|
|
11276
11338
|
Unset is `end`, and it stays unset rather than being written down: a
|
|
@@ -11398,6 +11460,12 @@ lost its focus trap because a consumer forgot a word would be worse than an
|
|
|
11398
11460
|
attribute on the host, and nothing selects on it: the scrim is rendered or
|
|
11399
11461
|
not, rather than shown or hidden by CSS. */
|
|
11400
11462
|
"prop:modal"?: (HelixHeadlessDrawer["modal"]) | undefined;
|
|
11463
|
+
/** Stops Escape, a press outside, and a swipe from closing the drawer, for a
|
|
11464
|
+
drawer that has to be answered.
|
|
11465
|
+
|
|
11466
|
+
The close control and `close()` still close it, as on `Dialog`: a panel
|
|
11467
|
+
with no way out at all is a trap. */
|
|
11468
|
+
"prop:persistent"?: (HelixHeadlessDrawer["persistent"]) | undefined;
|
|
11401
11469
|
/** Which edge the drawer comes from.
|
|
11402
11470
|
|
|
11403
11471
|
Unset is `end`, and it stays unset rather than being written down: a
|
|
@@ -25251,6 +25319,9 @@ Reading gives where it is; writing declares it the consumer's, and
|
|
|
25251
25319
|
`default-position` seeds one this element owns. The same accessor pair
|
|
25252
25320
|
`Pagination.page` and the calendar's `month` carry. */
|
|
25253
25321
|
position?: (HelixHeadlessSplitter["position"]) | undefined;
|
|
25322
|
+
/** The pane that keeps its size when the splitter's own size changes. The
|
|
25323
|
+
other pane takes all of the change. Unset, both keep their share. */
|
|
25324
|
+
primary?: (HelixHeadlessSplitter["primary"]) | undefined;
|
|
25254
25325
|
/** Where a dragged divider snaps, comma separated, as Web Awesome's split
|
|
25255
25326
|
panel does: a bare number is a percentage and a length such as `240px` is
|
|
25256
25327
|
measured along the splitter, so `snap="25, 50, 75"` or `snap="240px, 50"`.
|
|
@@ -25392,6 +25463,9 @@ Reading gives where it is; writing declares it the consumer's, and
|
|
|
25392
25463
|
`default-position` seeds one this element owns. The same accessor pair
|
|
25393
25464
|
`Pagination.page` and the calendar's `month` carry. */
|
|
25394
25465
|
"prop:position"?: (HelixHeadlessSplitter["position"]) | undefined;
|
|
25466
|
+
/** The pane that keeps its size when the splitter's own size changes. The
|
|
25467
|
+
other pane takes all of the change. Unset, both keep their share. */
|
|
25468
|
+
"prop:primary"?: (HelixHeadlessSplitter["primary"]) | undefined;
|
|
25395
25469
|
/** Where a dragged divider snaps, comma separated, as Web Awesome's split
|
|
25396
25470
|
panel does: a bare number is a percentage and a length such as `240px` is
|
|
25397
25471
|
measured along the splitter, so `snap="25, 50, 75"` or `snap="240px, 50"`.
|
|
@@ -32908,6 +32982,20 @@ export type CustomElements = {
|
|
|
32908
32982
|
* The page is the window unless `scroller` names the element that scrolls, for
|
|
32909
32983
|
* an app shell whose content scrolls inside a container.
|
|
32910
32984
|
*
|
|
32985
|
+
* **Set `hide-on-scroll` for a bar that moves out of the way.** Scrolling down
|
|
32986
|
+
* past the bar's own height hides it, and scrolling up shows it again, as does
|
|
32987
|
+
* focus moving into it. The custom state `hidden` is on the host while it is
|
|
32988
|
+
* hidden, and the styled tier slides a `sticky` bar up out of view.
|
|
32989
|
+
*
|
|
32990
|
+
* **Set `fold-below` to fold the middle region on a narrow screen.** Below that
|
|
32991
|
+
* many pixels of the bar's own width, the middle region is hidden behind a
|
|
32992
|
+
* toggle at the end of the bar, named by `menu-label`. The toggle says whether
|
|
32993
|
+
* the region is open with `aria-expanded`, and the region opens below the row.
|
|
32994
|
+
* Escape closes it and puts focus back on the toggle. The custom state
|
|
32995
|
+
* `folded` is on the host while the bar is that narrow, and `open` while the
|
|
32996
|
+
* folded region is open. A server serves the bar unfolded, and the browser
|
|
32997
|
+
* folds it once it has measured it.
|
|
32998
|
+
*
|
|
32911
32999
|
* The host is the page's `banner` landmark. Placed inside `main`, `article`,
|
|
32912
33000
|
* `aside`, `nav` or `section`, it is a plain box instead, as a native
|
|
32913
33001
|
* `<header>` is there, so a header inside a card or a pane does not add a
|
|
@@ -32934,6 +33022,11 @@ export type CustomElements = {
|
|
|
32934
33022
|
* **Named for the region and not for what is usually in it.** The middle slot
|
|
32935
33023
|
* takes a search field or a breadcrumb trail as readily as a `Navigation`, so
|
|
32936
33024
|
* the property carries the part's name, `content`.
|
|
33025
|
+
* - `fold-below`/`foldBelow`: The width of the bar, in pixels, below which the middle region folds behind
|
|
33026
|
+
* a toggle. Unset, it never folds.
|
|
33027
|
+
* - `hide-on-scroll`/`hideOnScroll`: Hides the bar as the page scrolls down past it, and shows it again as the
|
|
33028
|
+
* page scrolls up.
|
|
33029
|
+
* - `menu-label`/`menuLabel`: The name of the toggle that opens a folded middle region.
|
|
32937
33030
|
* - `scroller`: The id of the element whose scrolling lifts the bar, for an app shell that
|
|
32938
33031
|
* scrolls a container instead of the window. Unset is the window.
|
|
32939
33032
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
@@ -32969,6 +33062,7 @@ export type CustomElements = {
|
|
|
32969
33062
|
*
|
|
32970
33063
|
* - `(default)`: The middle region, usually a `Navigation`.
|
|
32971
33064
|
* - `end`: Trailing content.
|
|
33065
|
+
* - `menu-icon`: Replaces the glyph inside the toggle that opens a folded middle region.
|
|
32972
33066
|
* - `start`: Leading content, usually a wordmark.
|
|
32973
33067
|
*
|
|
32974
33068
|
* ## CSS Parts
|
|
@@ -32979,11 +33073,16 @@ export type CustomElements = {
|
|
|
32979
33073
|
* - `end`: The trailing region.
|
|
32980
33074
|
* - `row`: The centered row inside the banner.
|
|
32981
33075
|
* - `start`: The leading region.
|
|
33076
|
+
* - `toggle`: The control that opens and closes the folded middle region, drawn while the bar is narrower than `fold-below`.
|
|
33077
|
+
* - `toggle-mark`: The glyph on the toggle, where none is slotted.
|
|
32982
33078
|
*
|
|
32983
33079
|
* ## CSS States
|
|
32984
33080
|
*
|
|
32985
33081
|
* These can be used to apply styling when a component is in a given state.
|
|
32986
33082
|
*
|
|
33083
|
+
* - `folded`: While the bar is narrower than `fold-below`, and the middle region is behind the toggle.
|
|
33084
|
+
* - `hidden`: While `hide-on-scroll` has the bar out of the way, after a scroll down.
|
|
33085
|
+
* - `open`: While the folded middle region is open.
|
|
32987
33086
|
* - `scrolled`: While the page is scrolled down from the top, which is when the bar lifts off it.
|
|
32988
33087
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
32989
33088
|
*/
|
|
@@ -34019,7 +34118,10 @@ export type CustomElements = {
|
|
|
34019
34118
|
* including your own anchor.
|
|
34020
34119
|
*
|
|
34021
34120
|
* The current page is plain text, and `aria-current="page"` on the host conveys
|
|
34022
|
-
* the position.
|
|
34121
|
+
* the position. In a trail where no crumb is `current`, the last one is said
|
|
34122
|
+
* to be the current page, and keeps its link. An `aria-current` you write on
|
|
34123
|
+
* the host, such as `aria-current="location"`, replaces the one the crumb
|
|
34124
|
+
* gives itself.
|
|
34023
34125
|
*
|
|
34024
34126
|
* ## Attributes & Properties
|
|
34025
34127
|
*
|
|
@@ -34109,7 +34211,8 @@ export type CustomElements = {
|
|
|
34109
34211
|
* markers.
|
|
34110
34212
|
*
|
|
34111
34213
|
* The items are slotted directly, so they are `<ol>` children in the flat tree,
|
|
34112
|
-
* and each item sets `role="listitem"` on itself.
|
|
34214
|
+
* and each item sets `role="listitem"` on itself. Where no slotted crumb is
|
|
34215
|
+
* `current`, the last one is said to be the current page.
|
|
34113
34216
|
*
|
|
34114
34217
|
* The trail does not measure itself, and you write its overflow in markup: put
|
|
34115
34218
|
* the crumb that holds the folded items where the gap should appear.
|
|
@@ -34124,6 +34227,11 @@ export type CustomElements = {
|
|
|
34124
34227
|
* to the first crumb it brought back. A new `items` folds again. Slotted crumbs
|
|
34125
34228
|
* do not fold; write the folded crumb where the gap should be.
|
|
34126
34229
|
*
|
|
34230
|
+
* **Keyboard.** Each crumb with an `href` is a link and one tab stop, and
|
|
34231
|
+
* Enter follows it. The current page and the separators are not in the tab
|
|
34232
|
+
* order. In a folded trail, Enter or Space on the fold's button shows the
|
|
34233
|
+
* whole trail and moves focus to the first crumb it brought back.
|
|
34234
|
+
*
|
|
34127
34235
|
* ## Attributes & Properties
|
|
34128
34236
|
*
|
|
34129
34237
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
@@ -40043,6 +40151,16 @@ export type CustomElements = {
|
|
|
40043
40151
|
* announces with its description as it opens. Set `dismissible` to draw a
|
|
40044
40152
|
* close control, labeled by `dismiss-label`.
|
|
40045
40153
|
*
|
|
40154
|
+
* **Keyboard.** Opening moves focus to the first control in the dialog.
|
|
40155
|
+
*
|
|
40156
|
+
* | Key | What it does |
|
|
40157
|
+
* |---|---|
|
|
40158
|
+
* | Tab, Shift+Tab | Moves through the controls in the dialog, from the last round to the first and from the first round to the last. |
|
|
40159
|
+
* | Escape | Asks to close the dialog. A `helix-before-close` listener can refuse, and `persistent` or `closedby="none"` keeps it open. |
|
|
40160
|
+
* | Enter, Space | On the close control, closes the dialog. |
|
|
40161
|
+
*
|
|
40162
|
+
* Closing puts focus back on the element that had it before the dialog opened.
|
|
40163
|
+
*
|
|
40046
40164
|
* ## Attributes & Properties
|
|
40047
40165
|
*
|
|
40048
40166
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
@@ -40064,8 +40182,14 @@ export type CustomElements = {
|
|
|
40064
40182
|
* `closedby="any"` gains light dismiss without giving up the refusal, which is
|
|
40065
40183
|
* the property this component exists to keep.
|
|
40066
40184
|
*
|
|
40185
|
+
* The press on the backdrop that this element handles itself follows it too:
|
|
40186
|
+
* `closerequest` and `none` leave the dialog open on that press, as the
|
|
40187
|
+
* platform does, and `none` also keeps it open on Escape in a browser without
|
|
40188
|
+
* `closedby`.
|
|
40189
|
+
*
|
|
40067
40190
|
* Absent by default, which is the platform's `auto` and this library's rule
|
|
40068
|
-
* that a resting value is an attribute's absence.
|
|
40191
|
+
* that a resting value is an attribute's absence. Absent, a press on the
|
|
40192
|
+
* backdrop closes the dialog.
|
|
40069
40193
|
* - `dismissible`: Draws a control that closes the dialog, in the corner where the title is.
|
|
40070
40194
|
*
|
|
40071
40195
|
* Pressing it is `close()`, so it sends `helix-before-close` like every other
|
|
@@ -40545,6 +40669,11 @@ export type CustomElements = {
|
|
|
40545
40669
|
* A drawer with `modal="false"` leaves the page usable and still closes on
|
|
40546
40670
|
* Escape, in a browser without `closedby` as well.
|
|
40547
40671
|
*
|
|
40672
|
+
* Set `persistent` for a drawer that has to be answered: Escape, a press
|
|
40673
|
+
* outside, and a swipe leave it open, and the close control and `close()`
|
|
40674
|
+
* still close it. `closedby="none"` keeps it open on all three as well, and
|
|
40675
|
+
* `closedby="closerequest"` keeps it open on a press outside.
|
|
40676
|
+
*
|
|
40548
40677
|
* **A touch or a pen swipes it away**, toward the edge it came from, resolved
|
|
40549
40678
|
* against the writing direction. A swipe past halfway, or a quick one, closes
|
|
40550
40679
|
* it through the same request as every other way out. `snap-points` lists the
|
|
@@ -40565,7 +40694,20 @@ export type CustomElements = {
|
|
|
40565
40694
|
*
|
|
40566
40695
|
* The panel's name is `label` when you set it. Otherwise it is the heading in
|
|
40567
40696
|
* the `header` slot, or the elements an `aria-labelledby` on the host names,
|
|
40568
|
-
* and `fallback-label` where nothing names it.
|
|
40697
|
+
* and `fallback-label` where nothing names it. A development build warns
|
|
40698
|
+
* when a drawer opens with nothing but `fallback-label` to name it.
|
|
40699
|
+
*
|
|
40700
|
+
* The panel is described by the words at the start of its body, as `Dialog`
|
|
40701
|
+
* is: the elements in the default slot before the first one that is or holds
|
|
40702
|
+
* a control. An `aria-describedby` on the host replaces it.
|
|
40703
|
+
*
|
|
40704
|
+
* **Keyboard.** Opening moves focus to the first control in the panel.
|
|
40705
|
+
*
|
|
40706
|
+
* | Key | What it does |
|
|
40707
|
+
* |---|---|
|
|
40708
|
+
* | Tab, Shift+Tab | In a modal drawer, moves through the controls in the panel, from the last round to the first and from the first round to the last. In a drawer that is not modal, moves on to the page. |
|
|
40709
|
+
* | Escape | Asks to close the drawer. A `helix-before-close` listener can refuse, and `persistent` or `closedby="none"` keeps it open. |
|
|
40710
|
+
* | Enter, Space | On the close control, closes the drawer. |
|
|
40569
40711
|
*
|
|
40570
40712
|
* Content stays mounted when the drawer is closed, so it is in the server
|
|
40571
40713
|
* markup and can animate. A closed `<dialog>` is already out of the tab order
|
|
@@ -40616,6 +40758,11 @@ export type CustomElements = {
|
|
|
40616
40758
|
* lost its focus trap because a consumer forgot a word would be worse than an
|
|
40617
40759
|
* attribute on the host, and nothing selects on it: the scrim is rendered or
|
|
40618
40760
|
* not, rather than shown or hidden by CSS.
|
|
40761
|
+
* - `persistent`: Stops Escape, a press outside, and a swipe from closing the drawer, for a
|
|
40762
|
+
* drawer that has to be answered.
|
|
40763
|
+
*
|
|
40764
|
+
* The close control and `close()` still close it, as on `Dialog`: a panel
|
|
40765
|
+
* with no way out at all is a trap.
|
|
40619
40766
|
* - `placement`: Which edge the drawer comes from.
|
|
40620
40767
|
*
|
|
40621
40768
|
* Unset is `end`, and it stays unset rather than being written down: a
|
|
@@ -44304,6 +44451,25 @@ export type CustomElements = {
|
|
|
44304
44451
|
* swiped across the picture shows the next or the previous item, the way the
|
|
44305
44452
|
* line of text runs.
|
|
44306
44453
|
*
|
|
44454
|
+
* A press on the empty area around the item closes the viewer, as a press on
|
|
44455
|
+
* the backdrop does. Under `max-zoom`, a press beside the item zooms on a
|
|
44456
|
+
* double press and closes nothing, and only the space outside the viewport
|
|
44457
|
+
* closes the viewer. A press that dragged closes nothing.
|
|
44458
|
+
*
|
|
44459
|
+
* **Keyboard.** Opening moves focus to the viewer itself, which a screen
|
|
44460
|
+
* reader names.
|
|
44461
|
+
*
|
|
44462
|
+
* | Key | What it does |
|
|
44463
|
+
* |---|---|
|
|
44464
|
+
* | Right, Down | Shows the next item. On a right-to-left page, Left does. While the item is zoomed, the arrows move about it instead. |
|
|
44465
|
+
* | Left, Up | Shows the previous item. |
|
|
44466
|
+
* | Home, End | Shows the first or the last item. |
|
|
44467
|
+
* | `+`, `-`, `0` | Zooms in, zooms out, and puts the item back at its own size, where `max-zoom` allows zooming. |
|
|
44468
|
+
* | Tab, Shift+Tab | Moves through the controls in the viewer, from the last round to the first and from the first round to the last. |
|
|
44469
|
+
* | Escape | Closes the viewer. A `helix-before-close` listener can refuse. |
|
|
44470
|
+
*
|
|
44471
|
+
* A development build warns when a viewer opens with no `label`.
|
|
44472
|
+
*
|
|
44307
44473
|
* The chrome hides when there is no input, through `IdleController`, and comes
|
|
44308
44474
|
* back on a pointer move, a key press, or a focus. It stays while focus is on a
|
|
44309
44475
|
* control in the header or the footer, so a keyboard reader is never left on
|
|
@@ -47550,6 +47716,13 @@ export type CustomElements = {
|
|
|
47550
47716
|
* one page can mark the section in view with `aria-current="location"`. Where
|
|
47551
47717
|
* several are marked, `page` wins.
|
|
47552
47718
|
*
|
|
47719
|
+
* **The destinations can be a list.** Slot a `<ul>` or an `<ol>` of `<li>`
|
|
47720
|
+
* elements, each holding a link, and a screen reader says how many there are
|
|
47721
|
+
* and where each one is, as in Radix's `NavigationMenu.List`. The marker and
|
|
47722
|
+
* the arrow keys work on the list items as they do on bare links. Give the
|
|
47723
|
+
* list `role="list"` as well, since Safari drops the semantics of a list drawn
|
|
47724
|
+
* without bullets.
|
|
47725
|
+
*
|
|
47553
47726
|
* Set `orientation="vertical"` to stack the destinations in a column, for a
|
|
47554
47727
|
* sidebar.
|
|
47555
47728
|
*
|
|
@@ -47927,6 +48100,17 @@ export type CustomElements = {
|
|
|
47927
48100
|
* the feed holds one page of a longer list, and each row says its place in the
|
|
47928
48101
|
* whole of it.
|
|
47929
48102
|
*
|
|
48103
|
+
* **Keyboard.**
|
|
48104
|
+
*
|
|
48105
|
+
* | Key | What it does |
|
|
48106
|
+
* |---|---|
|
|
48107
|
+
* | Down, Up | On a row, moves to the next or the previous row. |
|
|
48108
|
+
* | Home, End | On a row, moves to the first or the last row. |
|
|
48109
|
+
* | Page Down, Page Up | From anywhere in a row, moves to the next or the previous row. |
|
|
48110
|
+
* | Control+End | From anywhere in the feed, moves to the first control after it on the page. |
|
|
48111
|
+
* | Control+Home | From anywhere in the feed, moves to the nearest control before it on the page. |
|
|
48112
|
+
* | Tab | Moves through the controls in a row, and on out of the feed. |
|
|
48113
|
+
*
|
|
47930
48114
|
* **`load-more` adds a button after the list** that sends `helix-load-more`,
|
|
47931
48115
|
* for a feed that holds one page of a longer list. Append the next page, set
|
|
47932
48116
|
* `loading` while it is on its way, and take `load-more` off once there is
|
|
@@ -49894,9 +50078,10 @@ export type CustomElements = {
|
|
|
49894
50078
|
*
|
|
49895
50079
|
* The trigger is slotted and stays your own element. A Helix trigger is told
|
|
49896
50080
|
* whether the popover is open inside its own shadow root. On a plain element,
|
|
49897
|
-
* such as a `<button>`, the popover writes `aria-expanded
|
|
49898
|
-
*
|
|
49899
|
-
* `aria-expanded` yourself
|
|
50081
|
+
* such as a `<button>`, the popover writes `aria-expanded`, from a frame after
|
|
50082
|
+
* its own first render, or from the first press where that comes sooner. It
|
|
50083
|
+
* never writes it where you wrote `aria-expanded` yourself, and writes nothing
|
|
50084
|
+
* else onto your markup.
|
|
49900
50085
|
*
|
|
49901
50086
|
* The panel is in the top layer through the popover API, so it needs no
|
|
49902
50087
|
* `z-index`, and an ancestor with `overflow: hidden`, `transform`, `filter`, or
|
|
@@ -49919,6 +50104,17 @@ export type CustomElements = {
|
|
|
49919
50104
|
*
|
|
49920
50105
|
* The panel's name is `label` when you set it. Otherwise it is the first
|
|
49921
50106
|
* heading in the panel, or the elements an `aria-labelledby` on the host names.
|
|
50107
|
+
* A development build warns when a popover opens with nothing but
|
|
50108
|
+
* `fallback-label` to name it.
|
|
50109
|
+
*
|
|
50110
|
+
* **Keyboard.** Opening moves focus to the first control in the panel, or to
|
|
50111
|
+
* the panel where it holds none.
|
|
50112
|
+
*
|
|
50113
|
+
* | Key | What it does |
|
|
50114
|
+
* |---|---|
|
|
50115
|
+
* | Enter, Space | On the trigger, opens the panel, or closes it while it is open. |
|
|
50116
|
+
* | Escape | Closes the panel and puts focus back on the trigger. |
|
|
50117
|
+
* | Tab, Shift+Tab | Moves through the controls in the panel. Leaving the panel and the trigger closes it. With `modal`, moves from the last control round to the first and from the first round to the last. |
|
|
49922
50118
|
*
|
|
49923
50119
|
* `arrow` draws a point on the panel's edge facing the trigger. The side the
|
|
49924
50120
|
* panel landed on is on the host as `:state(placed-top)` and its kin, and the
|
|
@@ -52847,6 +53043,21 @@ export type CustomElements = {
|
|
|
52847
53043
|
* `collapsed-size` keeps a sliver of the pane visible, such as a tab strip.
|
|
52848
53044
|
* Collapsing overrides `min` and `max`.
|
|
52849
53045
|
*
|
|
53046
|
+
* Set `primary` to the pane that keeps its size when the splitter's own size
|
|
53047
|
+
* changes, such as a sidebar beside a window being resized. The other pane
|
|
53048
|
+
* takes all of the change, as Web Awesome's split panel does. Without it,
|
|
53049
|
+
* both panes keep their share.
|
|
53050
|
+
*
|
|
53051
|
+
* **Keyboard.** The divider is one tab stop.
|
|
53052
|
+
*
|
|
53053
|
+
* | Key | What it does |
|
|
53054
|
+
* |---|---|
|
|
53055
|
+
* | Left, Right | Moves a side-by-side divider by `step`. On a right-to-left page, Left moves it toward the end. |
|
|
53056
|
+
* | Up, Down | Moves a stacked divider by `step`. |
|
|
53057
|
+
* | Home, End | Moves the divider to its bounds. |
|
|
53058
|
+
* | Enter | Collapses the start pane, and opens it again. |
|
|
53059
|
+
* | F6 | Moves focus from one pane to the first control in the other, and from the divider to the start pane. |
|
|
53060
|
+
*
|
|
52850
53061
|
* ## Attributes & Properties
|
|
52851
53062
|
*
|
|
52852
53063
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
@@ -52928,6 +53139,8 @@ export type CustomElements = {
|
|
|
52928
53139
|
* Reading gives where it is; writing declares it the consumer's, and
|
|
52929
53140
|
* `default-position` seeds one this element owns. The same accessor pair
|
|
52930
53141
|
* `Pagination.page` and the calendar's `month` carry.
|
|
53142
|
+
* - `primary`: The pane that keeps its size when the splitter's own size changes. The
|
|
53143
|
+
* other pane takes all of the change. Unset, both keep their share.
|
|
52931
53144
|
* - `snap`: Where a dragged divider snaps, comma separated, as Web Awesome's split
|
|
52932
53145
|
* panel does: a bare number is a percentage and a length such as `240px` is
|
|
52933
53146
|
* measured along the splitter, so `snap="25, 50, 75"` or `snap="240px, 50"`.
|
|
@@ -54448,6 +54661,20 @@ export type CustomElements = {
|
|
|
54448
54661
|
* Disabled tabs are passed over. Tab leaves the list for the selected panel,
|
|
54449
54662
|
* which is a tab stop only while it holds nothing focusable.
|
|
54450
54663
|
*
|
|
54664
|
+
* **Keyboard.**
|
|
54665
|
+
*
|
|
54666
|
+
* | Key | What it does |
|
|
54667
|
+
* |---|---|
|
|
54668
|
+
* | Right, Down | Moves to the next tab, from the last round to the first. Selects it, unless `manual` is set or a tab is a link. |
|
|
54669
|
+
* | Left, Up | Moves to the tab before, from the first round to the last. |
|
|
54670
|
+
* | Home, End | Moves to the first or the last tab. |
|
|
54671
|
+
* | Enter, Space | Selects the tab with focus, or follows its link. |
|
|
54672
|
+
* | Tab | Leaves the list for the selected panel. |
|
|
54673
|
+
*
|
|
54674
|
+
* Removing the selected tab selects the first enabled tab that is left, and
|
|
54675
|
+
* `active` says so, with `helix-activate`. Where the removed tab had focus,
|
|
54676
|
+
* focus moves to the tab now selected.
|
|
54677
|
+
*
|
|
54451
54678
|
* The `indicator` part moves to the selected tab and carries its place and
|
|
54452
54679
|
* size, so a mark of your own can be drawn there: style the part, or slot an
|
|
54453
54680
|
* element into `indicator`, which sits inside the part and reads the same
|
|
@@ -57215,11 +57442,27 @@ export type CustomElements = {
|
|
|
57215
57442
|
* you have moved it somewhere else on the page. A stop does not trap focus, so
|
|
57216
57443
|
* you can still `Tab` out to the element it describes.
|
|
57217
57444
|
*
|
|
57218
|
-
* **The
|
|
57219
|
-
*
|
|
57220
|
-
*
|
|
57221
|
-
*
|
|
57222
|
-
*
|
|
57445
|
+
* **The target is scrolled into view** before its stop is shown, by the
|
|
57446
|
+
* least distance that brings it on screen, so the stop that points at it is
|
|
57447
|
+
* on screen too.
|
|
57448
|
+
*
|
|
57449
|
+
* **Keyboard.** Focus is on the current stop's panel, which is not in the
|
|
57450
|
+
* `Tab` order itself.
|
|
57451
|
+
*
|
|
57452
|
+
* | Key | What it does |
|
|
57453
|
+
* |---|---|
|
|
57454
|
+
* | Right | Goes to the next stop. On the last stop it does nothing, and Next finishes the tour. |
|
|
57455
|
+
* | Left | Goes back to the previous stop. |
|
|
57456
|
+
* | Escape | Skips the tour, and puts focus back where it was when the tour opened. |
|
|
57457
|
+
* | Tab, Shift+Tab | Moves through the controls in the stop, and on out to the page. A stop does not trap focus. |
|
|
57458
|
+
* | Enter, Space | On Back, Next, or Skip, presses it. |
|
|
57459
|
+
*
|
|
57460
|
+
* The arrow that points the way the line runs goes on, and the other goes
|
|
57461
|
+
* back, so on a right-to-left page Left goes on and Right goes back. A text field in a stop keeps
|
|
57462
|
+
* its own arrows.
|
|
57463
|
+
*
|
|
57464
|
+
* The tour is a region named by `label` while it runs. A development build
|
|
57465
|
+
* warns when a tour opens with no `label`.
|
|
57223
57466
|
*
|
|
57224
57467
|
* ## Attributes & Properties
|
|
57225
57468
|
*
|
|
@@ -57383,7 +57626,8 @@ export type CustomElements = {
|
|
|
57383
57626
|
* The panel is a `group`, and a `dialog` for a dialog stop, only while the
|
|
57384
57627
|
* stop is shown. It is named by the `heading` slot, then by the first heading
|
|
57385
57628
|
* in the content, then by `label`, and otherwise by its place in the tour. It
|
|
57386
|
-
* is described by the `description` slot
|
|
57629
|
+
* is described by the `description` slot, or where that is empty by the words
|
|
57630
|
+
* at the start of the content, and by its place, such as "2 of 5",
|
|
57387
57631
|
* so a screen reader says where the reader is at every stop. `focus()` moves
|
|
57388
57632
|
* focus to the panel, which is what the tour does when it opens or moves on.
|
|
57389
57633
|
*
|
|
@@ -57747,6 +57991,9 @@ export type CustomElements = {
|
|
|
57747
57991
|
* tree of check marks, Control+A (Command+A on an Apple keyboard) checks every
|
|
57748
57992
|
* item or clears them all, and Shift with Up or Down Arrow moves and checks.
|
|
57749
57993
|
*
|
|
57994
|
+
* Removing the item that has focus moves focus to the item after it among its
|
|
57995
|
+
* siblings, or the one before, or its parent, so focus stays in the tree.
|
|
57996
|
+
*
|
|
57750
57997
|
* **`reorderable` lets you move items among their siblings.** Alt with Up or
|
|
57751
57998
|
* Down moves the focused item a place, and Alt with Home or End to the first
|
|
57752
57999
|
* or the last place among its siblings, as the APG's rearrangeable listbox
|
|
@@ -59462,6 +59709,20 @@ export type CustomElementsSolidJs = {
|
|
|
59462
59709
|
* The page is the window unless `scroller` names the element that scrolls, for
|
|
59463
59710
|
* an app shell whose content scrolls inside a container.
|
|
59464
59711
|
*
|
|
59712
|
+
* **Set `hide-on-scroll` for a bar that moves out of the way.** Scrolling down
|
|
59713
|
+
* past the bar's own height hides it, and scrolling up shows it again, as does
|
|
59714
|
+
* focus moving into it. The custom state `hidden` is on the host while it is
|
|
59715
|
+
* hidden, and the styled tier slides a `sticky` bar up out of view.
|
|
59716
|
+
*
|
|
59717
|
+
* **Set `fold-below` to fold the middle region on a narrow screen.** Below that
|
|
59718
|
+
* many pixels of the bar's own width, the middle region is hidden behind a
|
|
59719
|
+
* toggle at the end of the bar, named by `menu-label`. The toggle says whether
|
|
59720
|
+
* the region is open with `aria-expanded`, and the region opens below the row.
|
|
59721
|
+
* Escape closes it and puts focus back on the toggle. The custom state
|
|
59722
|
+
* `folded` is on the host while the bar is that narrow, and `open` while the
|
|
59723
|
+
* folded region is open. A server serves the bar unfolded, and the browser
|
|
59724
|
+
* folds it once it has measured it.
|
|
59725
|
+
*
|
|
59465
59726
|
* The host is the page's `banner` landmark. Placed inside `main`, `article`,
|
|
59466
59727
|
* `aside`, `nav` or `section`, it is a plain box instead, as a native
|
|
59467
59728
|
* `<header>` is there, so a header inside a card or a pane does not add a
|
|
@@ -59488,6 +59749,11 @@ export type CustomElementsSolidJs = {
|
|
|
59488
59749
|
* **Named for the region and not for what is usually in it.** The middle slot
|
|
59489
59750
|
* takes a search field or a breadcrumb trail as readily as a `Navigation`, so
|
|
59490
59751
|
* the property carries the part's name, `content`.
|
|
59752
|
+
* - `fold-below`/`foldBelow`: The width of the bar, in pixels, below which the middle region folds behind
|
|
59753
|
+
* a toggle. Unset, it never folds.
|
|
59754
|
+
* - `hide-on-scroll`/`hideOnScroll`: Hides the bar as the page scrolls down past it, and shows it again as the
|
|
59755
|
+
* page scrolls up.
|
|
59756
|
+
* - `menu-label`/`menuLabel`: The name of the toggle that opens a folded middle region.
|
|
59491
59757
|
* - `scroller`: The id of the element whose scrolling lifts the bar, for an app shell that
|
|
59492
59758
|
* scrolls a container instead of the window. Unset is the window.
|
|
59493
59759
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
@@ -59523,6 +59789,7 @@ export type CustomElementsSolidJs = {
|
|
|
59523
59789
|
*
|
|
59524
59790
|
* - `(default)`: The middle region, usually a `Navigation`.
|
|
59525
59791
|
* - `end`: Trailing content.
|
|
59792
|
+
* - `menu-icon`: Replaces the glyph inside the toggle that opens a folded middle region.
|
|
59526
59793
|
* - `start`: Leading content, usually a wordmark.
|
|
59527
59794
|
*
|
|
59528
59795
|
* ## CSS Parts
|
|
@@ -59533,11 +59800,16 @@ export type CustomElementsSolidJs = {
|
|
|
59533
59800
|
* - `end`: The trailing region.
|
|
59534
59801
|
* - `row`: The centered row inside the banner.
|
|
59535
59802
|
* - `start`: The leading region.
|
|
59803
|
+
* - `toggle`: The control that opens and closes the folded middle region, drawn while the bar is narrower than `fold-below`.
|
|
59804
|
+
* - `toggle-mark`: The glyph on the toggle, where none is slotted.
|
|
59536
59805
|
*
|
|
59537
59806
|
* ## CSS States
|
|
59538
59807
|
*
|
|
59539
59808
|
* These can be used to apply styling when a component is in a given state.
|
|
59540
59809
|
*
|
|
59810
|
+
* - `folded`: While the bar is narrower than `fold-below`, and the middle region is behind the toggle.
|
|
59811
|
+
* - `hidden`: While `hide-on-scroll` has the bar out of the way, after a scroll down.
|
|
59812
|
+
* - `open`: While the folded middle region is open.
|
|
59541
59813
|
* - `scrolled`: While the page is scrolled down from the top, which is when the bar lifts off it.
|
|
59542
59814
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
59543
59815
|
*/
|
|
@@ -60590,7 +60862,10 @@ export type CustomElementsSolidJs = {
|
|
|
60590
60862
|
* including your own anchor.
|
|
60591
60863
|
*
|
|
60592
60864
|
* The current page is plain text, and `aria-current="page"` on the host conveys
|
|
60593
|
-
* the position.
|
|
60865
|
+
* the position. In a trail where no crumb is `current`, the last one is said
|
|
60866
|
+
* to be the current page, and keeps its link. An `aria-current` you write on
|
|
60867
|
+
* the host, such as `aria-current="location"`, replaces the one the crumb
|
|
60868
|
+
* gives itself.
|
|
60594
60869
|
*
|
|
60595
60870
|
* ## Attributes & Properties
|
|
60596
60871
|
*
|
|
@@ -60681,7 +60956,8 @@ export type CustomElementsSolidJs = {
|
|
|
60681
60956
|
* markers.
|
|
60682
60957
|
*
|
|
60683
60958
|
* The items are slotted directly, so they are `<ol>` children in the flat tree,
|
|
60684
|
-
* and each item sets `role="listitem"` on itself.
|
|
60959
|
+
* and each item sets `role="listitem"` on itself. Where no slotted crumb is
|
|
60960
|
+
* `current`, the last one is said to be the current page.
|
|
60685
60961
|
*
|
|
60686
60962
|
* The trail does not measure itself, and you write its overflow in markup: put
|
|
60687
60963
|
* the crumb that holds the folded items where the gap should appear.
|
|
@@ -60696,6 +60972,11 @@ export type CustomElementsSolidJs = {
|
|
|
60696
60972
|
* to the first crumb it brought back. A new `items` folds again. Slotted crumbs
|
|
60697
60973
|
* do not fold; write the folded crumb where the gap should be.
|
|
60698
60974
|
*
|
|
60975
|
+
* **Keyboard.** Each crumb with an `href` is a link and one tab stop, and
|
|
60976
|
+
* Enter follows it. The current page and the separators are not in the tab
|
|
60977
|
+
* order. In a folded trail, Enter or Space on the fold's button shows the
|
|
60978
|
+
* whole trail and moves focus to the first crumb it brought back.
|
|
60979
|
+
*
|
|
60699
60980
|
* ## Attributes & Properties
|
|
60700
60981
|
*
|
|
60701
60982
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
@@ -66667,6 +66948,16 @@ export type CustomElementsSolidJs = {
|
|
|
66667
66948
|
* announces with its description as it opens. Set `dismissible` to draw a
|
|
66668
66949
|
* close control, labeled by `dismiss-label`.
|
|
66669
66950
|
*
|
|
66951
|
+
* **Keyboard.** Opening moves focus to the first control in the dialog.
|
|
66952
|
+
*
|
|
66953
|
+
* | Key | What it does |
|
|
66954
|
+
* |---|---|
|
|
66955
|
+
* | Tab, Shift+Tab | Moves through the controls in the dialog, from the last round to the first and from the first round to the last. |
|
|
66956
|
+
* | Escape | Asks to close the dialog. A `helix-before-close` listener can refuse, and `persistent` or `closedby="none"` keeps it open. |
|
|
66957
|
+
* | Enter, Space | On the close control, closes the dialog. |
|
|
66958
|
+
*
|
|
66959
|
+
* Closing puts focus back on the element that had it before the dialog opened.
|
|
66960
|
+
*
|
|
66670
66961
|
* ## Attributes & Properties
|
|
66671
66962
|
*
|
|
66672
66963
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
@@ -66688,8 +66979,14 @@ export type CustomElementsSolidJs = {
|
|
|
66688
66979
|
* `closedby="any"` gains light dismiss without giving up the refusal, which is
|
|
66689
66980
|
* the property this component exists to keep.
|
|
66690
66981
|
*
|
|
66982
|
+
* The press on the backdrop that this element handles itself follows it too:
|
|
66983
|
+
* `closerequest` and `none` leave the dialog open on that press, as the
|
|
66984
|
+
* platform does, and `none` also keeps it open on Escape in a browser without
|
|
66985
|
+
* `closedby`.
|
|
66986
|
+
*
|
|
66691
66987
|
* Absent by default, which is the platform's `auto` and this library's rule
|
|
66692
|
-
* that a resting value is an attribute's absence.
|
|
66988
|
+
* that a resting value is an attribute's absence. Absent, a press on the
|
|
66989
|
+
* backdrop closes the dialog.
|
|
66693
66990
|
* - `dismissible`: Draws a control that closes the dialog, in the corner where the title is.
|
|
66694
66991
|
*
|
|
66695
66992
|
* Pressing it is `close()`, so it sends `helix-before-close` like every other
|
|
@@ -67176,6 +67473,11 @@ export type CustomElementsSolidJs = {
|
|
|
67176
67473
|
* A drawer with `modal="false"` leaves the page usable and still closes on
|
|
67177
67474
|
* Escape, in a browser without `closedby` as well.
|
|
67178
67475
|
*
|
|
67476
|
+
* Set `persistent` for a drawer that has to be answered: Escape, a press
|
|
67477
|
+
* outside, and a swipe leave it open, and the close control and `close()`
|
|
67478
|
+
* still close it. `closedby="none"` keeps it open on all three as well, and
|
|
67479
|
+
* `closedby="closerequest"` keeps it open on a press outside.
|
|
67480
|
+
*
|
|
67179
67481
|
* **A touch or a pen swipes it away**, toward the edge it came from, resolved
|
|
67180
67482
|
* against the writing direction. A swipe past halfway, or a quick one, closes
|
|
67181
67483
|
* it through the same request as every other way out. `snap-points` lists the
|
|
@@ -67196,7 +67498,20 @@ export type CustomElementsSolidJs = {
|
|
|
67196
67498
|
*
|
|
67197
67499
|
* The panel's name is `label` when you set it. Otherwise it is the heading in
|
|
67198
67500
|
* the `header` slot, or the elements an `aria-labelledby` on the host names,
|
|
67199
|
-
* and `fallback-label` where nothing names it.
|
|
67501
|
+
* and `fallback-label` where nothing names it. A development build warns
|
|
67502
|
+
* when a drawer opens with nothing but `fallback-label` to name it.
|
|
67503
|
+
*
|
|
67504
|
+
* The panel is described by the words at the start of its body, as `Dialog`
|
|
67505
|
+
* is: the elements in the default slot before the first one that is or holds
|
|
67506
|
+
* a control. An `aria-describedby` on the host replaces it.
|
|
67507
|
+
*
|
|
67508
|
+
* **Keyboard.** Opening moves focus to the first control in the panel.
|
|
67509
|
+
*
|
|
67510
|
+
* | Key | What it does |
|
|
67511
|
+
* |---|---|
|
|
67512
|
+
* | Tab, Shift+Tab | In a modal drawer, moves through the controls in the panel, from the last round to the first and from the first round to the last. In a drawer that is not modal, moves on to the page. |
|
|
67513
|
+
* | Escape | Asks to close the drawer. A `helix-before-close` listener can refuse, and `persistent` or `closedby="none"` keeps it open. |
|
|
67514
|
+
* | Enter, Space | On the close control, closes the drawer. |
|
|
67200
67515
|
*
|
|
67201
67516
|
* Content stays mounted when the drawer is closed, so it is in the server
|
|
67202
67517
|
* markup and can animate. A closed `<dialog>` is already out of the tab order
|
|
@@ -67247,6 +67562,11 @@ export type CustomElementsSolidJs = {
|
|
|
67247
67562
|
* lost its focus trap because a consumer forgot a word would be worse than an
|
|
67248
67563
|
* attribute on the host, and nothing selects on it: the scrim is rendered or
|
|
67249
67564
|
* not, rather than shown or hidden by CSS.
|
|
67565
|
+
* - `persistent`: Stops Escape, a press outside, and a swipe from closing the drawer, for a
|
|
67566
|
+
* drawer that has to be answered.
|
|
67567
|
+
*
|
|
67568
|
+
* The close control and `close()` still close it, as on `Dialog`: a panel
|
|
67569
|
+
* with no way out at all is a trap.
|
|
67250
67570
|
* - `placement`: Which edge the drawer comes from.
|
|
67251
67571
|
*
|
|
67252
67572
|
* Unset is `end`, and it stays unset rather than being written down: a
|
|
@@ -70977,6 +71297,25 @@ export type CustomElementsSolidJs = {
|
|
|
70977
71297
|
* swiped across the picture shows the next or the previous item, the way the
|
|
70978
71298
|
* line of text runs.
|
|
70979
71299
|
*
|
|
71300
|
+
* A press on the empty area around the item closes the viewer, as a press on
|
|
71301
|
+
* the backdrop does. Under `max-zoom`, a press beside the item zooms on a
|
|
71302
|
+
* double press and closes nothing, and only the space outside the viewport
|
|
71303
|
+
* closes the viewer. A press that dragged closes nothing.
|
|
71304
|
+
*
|
|
71305
|
+
* **Keyboard.** Opening moves focus to the viewer itself, which a screen
|
|
71306
|
+
* reader names.
|
|
71307
|
+
*
|
|
71308
|
+
* | Key | What it does |
|
|
71309
|
+
* |---|---|
|
|
71310
|
+
* | Right, Down | Shows the next item. On a right-to-left page, Left does. While the item is zoomed, the arrows move about it instead. |
|
|
71311
|
+
* | Left, Up | Shows the previous item. |
|
|
71312
|
+
* | Home, End | Shows the first or the last item. |
|
|
71313
|
+
* | `+`, `-`, `0` | Zooms in, zooms out, and puts the item back at its own size, where `max-zoom` allows zooming. |
|
|
71314
|
+
* | Tab, Shift+Tab | Moves through the controls in the viewer, from the last round to the first and from the first round to the last. |
|
|
71315
|
+
* | Escape | Closes the viewer. A `helix-before-close` listener can refuse. |
|
|
71316
|
+
*
|
|
71317
|
+
* A development build warns when a viewer opens with no `label`.
|
|
71318
|
+
*
|
|
70980
71319
|
* The chrome hides when there is no input, through `IdleController`, and comes
|
|
70981
71320
|
* back on a pointer move, a key press, or a focus. It stays while focus is on a
|
|
70982
71321
|
* control in the header or the footer, so a keyboard reader is never left on
|
|
@@ -74277,6 +74616,13 @@ export type CustomElementsSolidJs = {
|
|
|
74277
74616
|
* one page can mark the section in view with `aria-current="location"`. Where
|
|
74278
74617
|
* several are marked, `page` wins.
|
|
74279
74618
|
*
|
|
74619
|
+
* **The destinations can be a list.** Slot a `<ul>` or an `<ol>` of `<li>`
|
|
74620
|
+
* elements, each holding a link, and a screen reader says how many there are
|
|
74621
|
+
* and where each one is, as in Radix's `NavigationMenu.List`. The marker and
|
|
74622
|
+
* the arrow keys work on the list items as they do on bare links. Give the
|
|
74623
|
+
* list `role="list"` as well, since Safari drops the semantics of a list drawn
|
|
74624
|
+
* without bullets.
|
|
74625
|
+
*
|
|
74280
74626
|
* Set `orientation="vertical"` to stack the destinations in a column, for a
|
|
74281
74627
|
* sidebar.
|
|
74282
74628
|
*
|
|
@@ -74657,6 +75003,17 @@ export type CustomElementsSolidJs = {
|
|
|
74657
75003
|
* the feed holds one page of a longer list, and each row says its place in the
|
|
74658
75004
|
* whole of it.
|
|
74659
75005
|
*
|
|
75006
|
+
* **Keyboard.**
|
|
75007
|
+
*
|
|
75008
|
+
* | Key | What it does |
|
|
75009
|
+
* |---|---|
|
|
75010
|
+
* | Down, Up | On a row, moves to the next or the previous row. |
|
|
75011
|
+
* | Home, End | On a row, moves to the first or the last row. |
|
|
75012
|
+
* | Page Down, Page Up | From anywhere in a row, moves to the next or the previous row. |
|
|
75013
|
+
* | Control+End | From anywhere in the feed, moves to the first control after it on the page. |
|
|
75014
|
+
* | Control+Home | From anywhere in the feed, moves to the nearest control before it on the page. |
|
|
75015
|
+
* | Tab | Moves through the controls in a row, and on out of the feed. |
|
|
75016
|
+
*
|
|
74660
75017
|
* **`load-more` adds a button after the list** that sends `helix-load-more`,
|
|
74661
75018
|
* for a feed that holds one page of a longer list. Append the next page, set
|
|
74662
75019
|
* `loading` while it is on its way, and take `load-more` off once there is
|
|
@@ -76641,9 +76998,10 @@ export type CustomElementsSolidJs = {
|
|
|
76641
76998
|
*
|
|
76642
76999
|
* The trigger is slotted and stays your own element. A Helix trigger is told
|
|
76643
77000
|
* whether the popover is open inside its own shadow root. On a plain element,
|
|
76644
|
-
* such as a `<button>`, the popover writes `aria-expanded
|
|
76645
|
-
*
|
|
76646
|
-
* `aria-expanded` yourself
|
|
77001
|
+
* such as a `<button>`, the popover writes `aria-expanded`, from a frame after
|
|
77002
|
+
* its own first render, or from the first press where that comes sooner. It
|
|
77003
|
+
* never writes it where you wrote `aria-expanded` yourself, and writes nothing
|
|
77004
|
+
* else onto your markup.
|
|
76647
77005
|
*
|
|
76648
77006
|
* The panel is in the top layer through the popover API, so it needs no
|
|
76649
77007
|
* `z-index`, and an ancestor with `overflow: hidden`, `transform`, `filter`, or
|
|
@@ -76666,6 +77024,17 @@ export type CustomElementsSolidJs = {
|
|
|
76666
77024
|
*
|
|
76667
77025
|
* The panel's name is `label` when you set it. Otherwise it is the first
|
|
76668
77026
|
* heading in the panel, or the elements an `aria-labelledby` on the host names.
|
|
77027
|
+
* A development build warns when a popover opens with nothing but
|
|
77028
|
+
* `fallback-label` to name it.
|
|
77029
|
+
*
|
|
77030
|
+
* **Keyboard.** Opening moves focus to the first control in the panel, or to
|
|
77031
|
+
* the panel where it holds none.
|
|
77032
|
+
*
|
|
77033
|
+
* | Key | What it does |
|
|
77034
|
+
* |---|---|
|
|
77035
|
+
* | Enter, Space | On the trigger, opens the panel, or closes it while it is open. |
|
|
77036
|
+
* | Escape | Closes the panel and puts focus back on the trigger. |
|
|
77037
|
+
* | Tab, Shift+Tab | Moves through the controls in the panel. Leaving the panel and the trigger closes it. With `modal`, moves from the last control round to the first and from the first round to the last. |
|
|
76669
77038
|
*
|
|
76670
77039
|
* `arrow` draws a point on the panel's edge facing the trigger. The side the
|
|
76671
77040
|
* panel landed on is on the host as `:state(placed-top)` and its kin, and the
|
|
@@ -79635,6 +80004,21 @@ export type CustomElementsSolidJs = {
|
|
|
79635
80004
|
* `collapsed-size` keeps a sliver of the pane visible, such as a tab strip.
|
|
79636
80005
|
* Collapsing overrides `min` and `max`.
|
|
79637
80006
|
*
|
|
80007
|
+
* Set `primary` to the pane that keeps its size when the splitter's own size
|
|
80008
|
+
* changes, such as a sidebar beside a window being resized. The other pane
|
|
80009
|
+
* takes all of the change, as Web Awesome's split panel does. Without it,
|
|
80010
|
+
* both panes keep their share.
|
|
80011
|
+
*
|
|
80012
|
+
* **Keyboard.** The divider is one tab stop.
|
|
80013
|
+
*
|
|
80014
|
+
* | Key | What it does |
|
|
80015
|
+
* |---|---|
|
|
80016
|
+
* | Left, Right | Moves a side-by-side divider by `step`. On a right-to-left page, Left moves it toward the end. |
|
|
80017
|
+
* | Up, Down | Moves a stacked divider by `step`. |
|
|
80018
|
+
* | Home, End | Moves the divider to its bounds. |
|
|
80019
|
+
* | Enter | Collapses the start pane, and opens it again. |
|
|
80020
|
+
* | F6 | Moves focus from one pane to the first control in the other, and from the divider to the start pane. |
|
|
80021
|
+
*
|
|
79638
80022
|
* ## Attributes & Properties
|
|
79639
80023
|
*
|
|
79640
80024
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
@@ -79716,6 +80100,8 @@ export type CustomElementsSolidJs = {
|
|
|
79716
80100
|
* Reading gives where it is; writing declares it the consumer's, and
|
|
79717
80101
|
* `default-position` seeds one this element owns. The same accessor pair
|
|
79718
80102
|
* `Pagination.page` and the calendar's `month` carry.
|
|
80103
|
+
* - `primary`: The pane that keeps its size when the splitter's own size changes. The
|
|
80104
|
+
* other pane takes all of the change. Unset, both keep their share.
|
|
79719
80105
|
* - `snap`: Where a dragged divider snaps, comma separated, as Web Awesome's split
|
|
79720
80106
|
* panel does: a bare number is a percentage and a length such as `240px` is
|
|
79721
80107
|
* measured along the splitter, so `snap="25, 50, 75"` or `snap="240px, 50"`.
|
|
@@ -81267,6 +81653,20 @@ export type CustomElementsSolidJs = {
|
|
|
81267
81653
|
* Disabled tabs are passed over. Tab leaves the list for the selected panel,
|
|
81268
81654
|
* which is a tab stop only while it holds nothing focusable.
|
|
81269
81655
|
*
|
|
81656
|
+
* **Keyboard.**
|
|
81657
|
+
*
|
|
81658
|
+
* | Key | What it does |
|
|
81659
|
+
* |---|---|
|
|
81660
|
+
* | Right, Down | Moves to the next tab, from the last round to the first. Selects it, unless `manual` is set or a tab is a link. |
|
|
81661
|
+
* | Left, Up | Moves to the tab before, from the first round to the last. |
|
|
81662
|
+
* | Home, End | Moves to the first or the last tab. |
|
|
81663
|
+
* | Enter, Space | Selects the tab with focus, or follows its link. |
|
|
81664
|
+
* | Tab | Leaves the list for the selected panel. |
|
|
81665
|
+
*
|
|
81666
|
+
* Removing the selected tab selects the first enabled tab that is left, and
|
|
81667
|
+
* `active` says so, with `helix-activate`. Where the removed tab had focus,
|
|
81668
|
+
* focus moves to the tab now selected.
|
|
81669
|
+
*
|
|
81270
81670
|
* The `indicator` part moves to the selected tab and carries its place and
|
|
81271
81671
|
* size, so a mark of your own can be drawn there: style the part, or slot an
|
|
81272
81672
|
* element into `indicator`, which sits inside the part and reads the same
|
|
@@ -84074,11 +84474,27 @@ export type CustomElementsSolidJs = {
|
|
|
84074
84474
|
* you have moved it somewhere else on the page. A stop does not trap focus, so
|
|
84075
84475
|
* you can still `Tab` out to the element it describes.
|
|
84076
84476
|
*
|
|
84077
|
-
* **The
|
|
84078
|
-
*
|
|
84079
|
-
*
|
|
84080
|
-
*
|
|
84081
|
-
*
|
|
84477
|
+
* **The target is scrolled into view** before its stop is shown, by the
|
|
84478
|
+
* least distance that brings it on screen, so the stop that points at it is
|
|
84479
|
+
* on screen too.
|
|
84480
|
+
*
|
|
84481
|
+
* **Keyboard.** Focus is on the current stop's panel, which is not in the
|
|
84482
|
+
* `Tab` order itself.
|
|
84483
|
+
*
|
|
84484
|
+
* | Key | What it does |
|
|
84485
|
+
* |---|---|
|
|
84486
|
+
* | Right | Goes to the next stop. On the last stop it does nothing, and Next finishes the tour. |
|
|
84487
|
+
* | Left | Goes back to the previous stop. |
|
|
84488
|
+
* | Escape | Skips the tour, and puts focus back where it was when the tour opened. |
|
|
84489
|
+
* | Tab, Shift+Tab | Moves through the controls in the stop, and on out to the page. A stop does not trap focus. |
|
|
84490
|
+
* | Enter, Space | On Back, Next, or Skip, presses it. |
|
|
84491
|
+
*
|
|
84492
|
+
* The arrow that points the way the line runs goes on, and the other goes
|
|
84493
|
+
* back, so on a right-to-left page Left goes on and Right goes back. A text field in a stop keeps
|
|
84494
|
+
* its own arrows.
|
|
84495
|
+
*
|
|
84496
|
+
* The tour is a region named by `label` while it runs. A development build
|
|
84497
|
+
* warns when a tour opens with no `label`.
|
|
84082
84498
|
*
|
|
84083
84499
|
* ## Attributes & Properties
|
|
84084
84500
|
*
|
|
@@ -84245,7 +84661,8 @@ export type CustomElementsSolidJs = {
|
|
|
84245
84661
|
* The panel is a `group`, and a `dialog` for a dialog stop, only while the
|
|
84246
84662
|
* stop is shown. It is named by the `heading` slot, then by the first heading
|
|
84247
84663
|
* in the content, then by `label`, and otherwise by its place in the tour. It
|
|
84248
|
-
* is described by the `description` slot
|
|
84664
|
+
* is described by the `description` slot, or where that is empty by the words
|
|
84665
|
+
* at the start of the content, and by its place, such as "2 of 5",
|
|
84249
84666
|
* so a screen reader says where the reader is at every stop. `focus()` moves
|
|
84250
84667
|
* focus to the panel, which is what the tour does when it opens or moves on.
|
|
84251
84668
|
*
|
|
@@ -84615,6 +85032,9 @@ export type CustomElementsSolidJs = {
|
|
|
84615
85032
|
* tree of check marks, Control+A (Command+A on an Apple keyboard) checks every
|
|
84616
85033
|
* item or clears them all, and Shift with Up or Down Arrow moves and checks.
|
|
84617
85034
|
*
|
|
85035
|
+
* Removing the item that has focus moves focus to the item after it among its
|
|
85036
|
+
* siblings, or the one before, or its parent, so focus stays in the tree.
|
|
85037
|
+
*
|
|
84618
85038
|
* **`reorderable` lets you move items among their siblings.** Alt with Up or
|
|
84619
85039
|
* Down moves the focused item a place, and Alt with Home or End to the first
|
|
84620
85040
|
* or the last place among its siblings, as the APG's rearrangeable listbox
|