@fusion.dev/helix-headless 0.155.0 → 0.156.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 +1787 -92
- package/dist/canvas/node/canvas-node.js +1 -1
- package/dist/canvas/root/canvas-root.d.ts +17 -2
- package/dist/canvas/root/canvas-root.js +23 -6
- package/dist/chat/composer/chat-composer.js +1 -1
- package/dist/chat/root/chat-root.d.ts +14 -1
- package/dist/chat/root/chat-root.js +14 -4
- package/dist/combobox/root/combobox-root.d.ts +10 -0
- package/dist/combobox/root/combobox-root.js +18 -3
- package/dist/command/root/command-root.d.ts +116 -1
- package/dist/command/root/command-root.js +124 -15
- package/dist/data-table/root/data-table-root.d.ts +25 -0
- package/dist/data-table/root/data-table-root.js +13 -3
- package/dist/date-input/root/date-input-root.d.ts +32 -1
- package/dist/date-input/root/date-input-root.js +7 -1
- package/dist/element-events.generated.js +1 -0
- package/dist/graph/root/graph-root.d.ts +13 -0
- package/dist/graph/root/graph-root.js +16 -0
- package/dist/list/root/list-root.d.ts +74 -1
- package/dist/list/root/list-root.js +92 -4
- package/dist/list/selection.js +3 -3
- package/dist/map/root/map-root.d.ts +6 -0
- package/dist/map/root/map-root.js +8 -1
- package/dist/number-input/root/number-input-root.d.ts +63 -6
- package/dist/number-input/root/number-input-root.js +96 -11
- package/dist/object-inspector/root/object-inspector-root.d.ts +36 -1
- package/dist/object-inspector/root/object-inspector-root.js +26 -2
- package/dist/option/root/option-root.d.ts +32 -0
- package/dist/option/root/option-root.js +44 -5
- package/dist/outline/root/outline-root.d.ts +6 -2
- package/dist/outline/root/outline-root.js +7 -3
- package/dist/table/root/table-root.d.ts +20 -0
- package/dist/table/root/table-root.js +13 -3
- package/dist/time-input/root/time-input-root.d.ts +32 -1
- package/dist/time-input/root/time-input-root.js +9 -2
- package/dist/time-picker/root/time-picker-root.d.ts +63 -1
- package/dist/time-picker/root/time-picker-root.js +58 -7
- package/dist/timeline/item/timeline-item.d.ts +25 -0
- package/dist/timeline/item/timeline-item.js +27 -2
- package/dist/video/root/keys.d.ts +6 -2
- package/dist/video/root/keys.js +18 -1
- package/dist/video/root/video-root.d.ts +60 -1
- package/dist/video/root/video-root.js +70 -2
- package/dist/video-playlist/item/video-playlist-item.d.ts +15 -1
- package/dist/video-playlist/item/video-playlist-item.js +7 -0
- package/dist/video-playlist/root/video-playlist-root.d.ts +43 -4
- package/dist/video-playlist/root/video-playlist-root.js +69 -2
- package/dist/virtual-list/root/virtual-list-root.d.ts +8 -0
- package/dist/virtual-list/root/virtual-list-root.js +3 -0
- package/lint.json +1 -1
- package/package.json +5 -5
- package/types/jsx.d.ts +2901 -232
- package/types/vue.d.ts +824 -58
- package/types/words.d.ts +110 -0
package/custom-elements.json
CHANGED
|
@@ -15367,8 +15367,14 @@
|
|
|
15367
15367
|
"declarations": [
|
|
15368
15368
|
{
|
|
15369
15369
|
"kind": "class",
|
|
15370
|
-
"description": "A board of cards and connectors, drawn by Helix. On a canvas every position\nis data that someone placed, so drawing is arithmetic over rectangles with no\nlayout to compute. `Map` takes a slotted map, because another renderer draws\nits tiles.\n\nThe format is [JSON Canvas](https://jsoncanvas.org), an open format. Each\nnode has an `x`, `y`, `width`, `height`, and a type. Each edge names the two\nnodes it joins and the sides it leaves and arrives on. A card belongs to a\ngroup when it sits inside the group's bounds.\n\nThe cards are text in the DOM, so a screen reader can read them. The family\nadds a reading order and states each card's connections as text. `order` sets\nthe reading order:\n- `spatial` bands the cards into rows.\n- `edges` follows the arrows, starting from the cards that nothing points to.\n\n**Cards move by default.** The board writes the new `x` and `y` onto the\ncard, the way an input writes its own value, and dispatches two events:\n- `helix-before-move` for every step. Cancel it to hold the positions in your\n own state and apply them yourself.\n- `helix-move` once the move is finished.\n\nA resize dispatches the same pair with a size. Set `readonly` on the board to\nkeep every card in place, such as on a published board. Set `readonly` on one\ncard or connection to keep only that one in place.\n\nSet `snap` to a length in the document's units, such as `32`, and a card\nthat is moved or resized lands on a multiple of it. Carrying a card, a\ncorner, a connection, or the selection box near the edge of the board moves\nthe board under it, so a card can be taken to a place off screen in one\ndrag. A connection let go within 20 pixels of a card arrives at it. A\ndouble click on the empty board zooms in about that point, and Shift with a\ndouble click zooms out.\n\nKeyboard behavior:\n- One card holds the board's tab stop.\n- The arrow keys move through the cards in reading order. The card you land\n on scrolls into view, and its connections are announced with it.\n- Shift with an arrow key moves the card: by 16 units, or to the next\n multiple of `snap` where it is set. Alt with an arrow key resizes it from\n its bottom right corner the same way.\n- The connections leaving a card are stops of their own, straight after it.\n Enter on one moves to the card it arrives at.\n- What a key changes that a reader cannot see is said: where a card moved\n to, its new size, how many cards are selected, and the zoom. A selected\n card or connection says so when a reader arrives on it.\n\nEvery drag also works with clicks, as WCAG 2.5.7 requires for a pointer that\ncannot hold a button down. Click a selected card's move handle, a corner, a\ncard's connection point, or the end of a selected connection to pick it up.\nIt follows the pointer with no button held, and the next click puts it down\nwhere a drag would have. On touch, the next tap sets where it lands. Escape,\nor a press outside the board, puts it back. So a finger connects two cards\nwith three taps: the card, one of its points, and the card to connect to.\n\nConnecting and removing dispatch requests, and your code applies them:\n- Drawing from a card's handle to another card, or pressing C on one card and\n Enter on another, dispatches `helix-connect`.\n- Delete on a card or a connection dispatches `helix-remove`. The event names\n every connection that removing the card would leave without an end.\n\nOnce your page removes what Delete asked for, focus moves to the next stop,\nto the one before where it was the last, and to the board where none is\nleft. A focused card your page removes for its own reasons hands focus on\nthe same way, unless the reader has already moved focus somewhere else.\n\nThe board applies a move itself, because the card already exists. A\nconnection is a new element, and React discards an element the board adds to\nits markup on the next render, so you write the connection.\n\nCards and connections are `helix-canvas-node` and `helix-canvas-edge`\nelements, so they are in the served markup whichever renderer wrote them. The\nlibrary fetches nothing, and an array passed to an element is missing from\nthe first paint of a server-rendered React page. `fromJsonCanvas` turns a\nJSON Canvas document into their props, and `toJsonCanvas()` writes a board\nback out.",
|
|
15370
|
+
"description": "A board of cards and connectors, drawn by Helix. On a canvas every position\nis data that someone placed, so drawing is arithmetic over rectangles with no\nlayout to compute. `Map` takes a slotted map, because another renderer draws\nits tiles.\n\nThe format is [JSON Canvas](https://jsoncanvas.org), an open format. Each\nnode has an `x`, `y`, `width`, `height`, and a type. Each edge names the two\nnodes it joins and the sides it leaves and arrives on. A card belongs to a\ngroup when it sits inside the group's bounds.\n\nThe cards are text in the DOM, so a screen reader can read them. The family\nadds a reading order and states each card's connections as text. `order` sets\nthe reading order:\n- `spatial` bands the cards into rows.\n- `edges` follows the arrows, starting from the cards that nothing points to.\n\n**Cards move by default.** The board writes the new `x` and `y` onto the\ncard, the way an input writes its own value, and dispatches two events:\n- `helix-before-move` for every step. Cancel it to hold the positions in your\n own state and apply them yourself.\n- `helix-move` once the move is finished.\n\nA resize dispatches the same pair with a size. Set `readonly` on the board to\nkeep every card in place, such as on a published board. Set `readonly` on one\ncard or connection to keep only that one in place.\n\nSet `snap` to a length in the document's units, such as `32`, and a card\nthat is moved or resized lands on a multiple of it. Carrying a card, a\ncorner, a connection, or the selection box near the edge of the board moves\nthe board under it, so a card can be taken to a place off screen in one\ndrag. A connection let go within 20 pixels of a card arrives at it. A\ndouble click on the empty board zooms in about that point, and Shift with a\ndouble click zooms out.\n\nKeyboard behavior:\n- One card holds the board's tab stop.\n- The arrow keys move through the cards in reading order. The card you land\n on scrolls into view, and its connections are announced with it.\n- The card you land on is selected. Control or Command with an arrow key,\n Home, or End moves without changing the selection, and Space adds the card\n to the selection or takes it out, so you can select cards that are not\n next to each other.\n- Shift with an arrow key moves the card: by 16 units, or to the next\n multiple of `snap` where it is set. Alt with an arrow key resizes it from\n its bottom right corner the same way.\n- The connections leaving a card are stops of their own, straight after it.\n Enter on one moves to the card it arrives at.\n- What a key changes that a reader cannot see is said: where a card moved\n to, its new size, how many cards are selected, and the zoom. A selected\n card or connection says so when a reader arrives on it.\n\nEvery drag also works with clicks, as WCAG 2.5.7 requires for a pointer that\ncannot hold a button down. Click a selected card's move handle, a corner, a\ncard's connection point, or the end of a selected connection to pick it up.\nIt follows the pointer with no button held, and the next click puts it down\nwhere a drag would have. On touch, the next tap sets where it lands. Escape,\nor a press outside the board, puts it back. So a finger connects two cards\nwith three taps: the card, one of its points, and the card to connect to.\n\nConnecting and removing dispatch requests, and your code applies them:\n- Drawing from a card's handle to another card, or pressing C on one card and\n Enter on another, dispatches `helix-connect`.\n- Delete on a card or a connection dispatches `helix-remove`. The event names\n every connection that removing the card would leave without an end.\n\nOnce your page removes what Delete asked for, focus moves to the next stop,\nto the one before where it was the last, and to the board where none is\nleft. A focused card your page removes for its own reasons hands focus on\nthe same way, unless the reader has already moved focus somewhere else.\n\nThe board applies a move itself, because the card already exists. A\nconnection is a new element, and React discards an element the board adds to\nits markup on the next render, so you write the connection.\n\nCards and connections are `helix-canvas-node` and `helix-canvas-edge`\nelements, so they are in the served markup whichever renderer wrote them. The\nlibrary fetches nothing, and an array passed to an element is missing from\nthe first paint of a server-rendered React page. `fromJsonCanvas` turns a\nJSON Canvas document into their props, and `toJsonCanvas()` writes a board\nback out.",
|
|
15371
15371
|
"name": "HelixHeadlessCanvas",
|
|
15372
|
+
"cssProperties": [
|
|
15373
|
+
{
|
|
15374
|
+
"description": "The board's zoom, which the board writes: 1 at the document's own size, 0.5 at half. The cards inherit it, so a card's stylesheet can draw less when the board is far out, such as a border that stays one pixel wide at `calc(1px / var(--canvas-zoom))`.",
|
|
15375
|
+
"name": "--canvas-zoom"
|
|
15376
|
+
}
|
|
15377
|
+
],
|
|
15372
15378
|
"cssParts": [
|
|
15373
15379
|
{
|
|
15374
15380
|
"description": "The arrowhead at an end of a connection that has one.",
|
|
@@ -15769,6 +15775,19 @@
|
|
|
15769
15775
|
"words": true
|
|
15770
15776
|
}
|
|
15771
15777
|
},
|
|
15778
|
+
{
|
|
15779
|
+
"kind": "field",
|
|
15780
|
+
"name": "roleLabel",
|
|
15781
|
+
"type": {
|
|
15782
|
+
"text": "string"
|
|
15783
|
+
},
|
|
15784
|
+
"default": "'canvas'",
|
|
15785
|
+
"description": "What a screen reader calls the board in place of its role, after its\nname: \"Release plan, canvas\". Said only where the board has a name of its\nown, since the fallback name is the same word. Empty leaves the role.",
|
|
15786
|
+
"attribute": "role-label",
|
|
15787
|
+
"helix": {
|
|
15788
|
+
"words": true
|
|
15789
|
+
}
|
|
15790
|
+
},
|
|
15772
15791
|
{
|
|
15773
15792
|
"kind": "field",
|
|
15774
15793
|
"name": "selected",
|
|
@@ -15776,7 +15795,7 @@
|
|
|
15776
15795
|
"text": "string"
|
|
15777
15796
|
},
|
|
15778
15797
|
"default": "''",
|
|
15779
|
-
"description": "The names of the selected cards and connections, comma separated. Empty\nwhen nothing is selected.\n\n**Comma separated, the way `Listbox` writes a multiple value**, so a page\nreads one selection the same way wherever it comes from. A click, or a key\nthat lands on one, selects it alone; Shift, Command or Control with a click
|
|
15798
|
+
"description": "The names of the selected cards and connections, comma separated. Empty\nwhen nothing is selected.\n\n**Comma separated, the way `Listbox` writes a multiple value**, so a page\nreads one selection the same way wherever it comes from. A click, or a key\nthat lands on one, selects it alone; Command or Control with an arrow key\nmoves without selecting; Shift, Command or Control with a click adds or\ntakes one away, and so does Space; Command or Control with A\nselects everything; Shift and a drag across the empty board selects the\ncards the box touches. A click on the empty board, or Escape, selects\nnothing. Dragging, Shift with an arrow, and Delete act on the whole\nselection.\n\n**Kept apart from focus**, so it stays when focus leaves: a reader who\nselects cards and clicks a button beside the board to act on them has not\ncleared what the button acts on by clicking. A connection with no name is\ncalled by its ends, `from->to`, which is also why a name has to be unique\non its board across cards and connections both, and may not hold a comma.\n\nWritten to select from outside, and read to act on the selection.",
|
|
15780
15799
|
"attribute": "selected"
|
|
15781
15800
|
},
|
|
15782
15801
|
{
|
|
@@ -17358,6 +17377,16 @@
|
|
|
17358
17377
|
"readonly": true,
|
|
17359
17378
|
"description": "The keys on a card or a connection.\n\n**Only from the stop itself**, not from inside what a card holds: a card may\nhold a link, a field or a chart that answers the arrows itself, and a press\ntaken from under one of those walked the board instead of the chart.\n\n**Arrows walk in reading order rather than in space.** The next card in the\norder is the one a reader who cannot see the board needs, and the spatial\nneighbor is a guess about where they think they are. Right and down go on,\nleft and up go back, Home and End go to the ends, and Escape goes back out\nto the board, where the arrows pan it again.\n\nOn a card, Shift with an arrow moves it, C starts a connection and Delete\nasks for it to go. On a connection, Enter goes to the card it arrives at and\nDelete asks for it to go. While a connection is being made, Enter on a card\nasks for it and Escape stops."
|
|
17360
17379
|
},
|
|
17380
|
+
{
|
|
17381
|
+
"kind": "field",
|
|
17382
|
+
"name": "walkingApart",
|
|
17383
|
+
"type": {
|
|
17384
|
+
"text": "boolean"
|
|
17385
|
+
},
|
|
17386
|
+
"privacy": "private",
|
|
17387
|
+
"default": "false",
|
|
17388
|
+
"description": "Whether the stop focus is moving to keeps the selection as it is."
|
|
17389
|
+
},
|
|
17361
17390
|
{
|
|
17362
17391
|
"kind": "field",
|
|
17363
17392
|
"name": "handleFocusIn",
|
|
@@ -19209,13 +19238,22 @@
|
|
|
19209
19238
|
"description": "What screen readers hear after a key resizes a card, with `{name}` for the\ncard and `{width}` and `{height}` for its new size, in the document's\nunits.",
|
|
19210
19239
|
"fieldName": "resizedLabel"
|
|
19211
19240
|
},
|
|
19241
|
+
{
|
|
19242
|
+
"name": "role-label",
|
|
19243
|
+
"type": {
|
|
19244
|
+
"text": "string"
|
|
19245
|
+
},
|
|
19246
|
+
"default": "'canvas'",
|
|
19247
|
+
"description": "What a screen reader calls the board in place of its role, after its\nname: \"Release plan, canvas\". Said only where the board has a name of its\nown, since the fallback name is the same word. Empty leaves the role.",
|
|
19248
|
+
"fieldName": "roleLabel"
|
|
19249
|
+
},
|
|
19212
19250
|
{
|
|
19213
19251
|
"name": "selected",
|
|
19214
19252
|
"type": {
|
|
19215
19253
|
"text": "string"
|
|
19216
19254
|
},
|
|
19217
19255
|
"default": "''",
|
|
19218
|
-
"description": "The names of the selected cards and connections, comma separated. Empty\nwhen nothing is selected.\n\n**Comma separated, the way `Listbox` writes a multiple value**, so a page\nreads one selection the same way wherever it comes from. A click, or a key\nthat lands on one, selects it alone; Shift, Command or Control with a click
|
|
19256
|
+
"description": "The names of the selected cards and connections, comma separated. Empty\nwhen nothing is selected.\n\n**Comma separated, the way `Listbox` writes a multiple value**, so a page\nreads one selection the same way wherever it comes from. A click, or a key\nthat lands on one, selects it alone; Command or Control with an arrow key\nmoves without selecting; Shift, Command or Control with a click adds or\ntakes one away, and so does Space; Command or Control with A\nselects everything; Shift and a drag across the empty board selects the\ncards the box touches. A click on the empty board, or Escape, selects\nnothing. Dragging, Shift with an arrow, and Delete act on the whole\nselection.\n\n**Kept apart from focus**, so it stays when focus leaves: a reader who\nselects cards and clicks a button beside the board to act on them has not\ncleared what the button acts on by clicking. A connection with no name is\ncalled by its ends, `from->to`, which is also why a name has to be unique\non its board across cards and connections both, and may not hold a comma.\n\nWritten to select from outside, and read to act on the selection.",
|
|
19219
19257
|
"fieldName": "selected"
|
|
19220
19258
|
},
|
|
19221
19259
|
{
|
|
@@ -24332,7 +24370,7 @@
|
|
|
24332
24370
|
"declarations": [
|
|
24333
24371
|
{
|
|
24334
24372
|
"kind": "class",
|
|
24335
|
-
"description": "Chat has no positioning, no backdrop, and no trigger, so you can put it in\nany container, such as a page, a sidebar, a modal, or a floating panel.\n\nThe transcript stays pinned to the bottom, including while a streamed answer\ngrows, until the user scrolls more than `threshold` away from it.\n\nWith `history` set to `more`, reaching the top fires `helix-history`. Set\n`loading` while you fetch, then prepend the older turns. The turn the user\nwas reading stays in place on screen.\n\nThe log is `aria-live=\"off\"`. A separate status region announces each new\nturn once, when it has finished arriving. It skips the user's own turns\nunless they failed to send, turns loaded as history, and the turns already\nthere when the transcript opened.\n\nPass the turns as children or as `turns` data. Do not use both. Children\nrender from the server and suit most conversations. `turns` draws a long\ntranscript one window at a time, so the log needs a block size of its own.\n\n**A conversation is built from three elements.** The chat holds the\ntranscript, a `Chat.Message` stands for each turn, and a `Chat.Composer` sits\nin the `composer` slot. When the user sends, `helix-send` reaches the chat:\nadd their turn with `author=\"me\"` and `state=\"sending\"`, then set `state` to\n`sent` or `failed` when your server answers. Add the reply as a turn with\n`state=\"streaming\"`, write its text as it arrives, and set `state` to `sent`\nwhen it is complete. While the user types, the composer sends\n`helix-typing`, which you can pass on to the other side. When the other side\ntypes, set `typing` to their name: the status band draws three dots and\n\"Ada is typing\" (`typing-label`), which a screen reader hears, and clearing\nit takes them away. Anything slotted into `status` is drawn first.\n\nA screen reader names each turn by its author and its time, such as \"You, 2\nminutes ago\". Set `me-label` and `message-label` to say it in your language,\nand give each turn by `them` an `author-label`. A turn with neither an author\nlabel nor a time is named by `turn-label`, \"Message\".\n\nA turn from `turns` is drawn in the chat's shadow root, so style it through\nthe forwarded `message-*` parts. A turn by `me` also gets each part with\n`-mine` added, and the turn's state adds `message-meta-failed`,\n`message-content-sending`, and `message-content-streaming`. To style each\nparticipant differently, give `author-styles` the declarations for each\nauthor, such as `{\"ada\": \"--chat-message-background-color: …\"}`: the message\ndrawn for each of their turns takes them as its `style`, so the message's\ncustom properties change for that author alone. Turns passed as children are\nstyled by their `author`, such as `helix-chat-message[author=\"ada\"]`.",
|
|
24373
|
+
"description": "Chat has no positioning, no backdrop, and no trigger, so you can put it in\nany container, such as a page, a sidebar, a modal, or a floating panel.\n\nThe transcript stays pinned to the bottom, including while a streamed answer\ngrows, until the user scrolls more than `threshold` away from it.\n\nWith `history` set to `more`, reaching the top fires `helix-history`. Set\n`loading` while you fetch, then prepend the older turns. The turn the user\nwas reading stays in place on screen.\n\nThe log is `aria-live=\"off\"`. A separate status region announces each new\nturn once, when it has finished arriving. It skips the user's own turns\nunless they failed to send, turns loaded as history, and the turns already\nthere when the transcript opened. A turn is said with its author first, such\nas \"Ada: It ships today\" (`arrival-label`), where its author can be named.\n\nPass the turns as children or as `turns` data. Do not use both. Children\nrender from the server and suit most conversations. `turns` draws a long\ntranscript one window at a time, so the log needs a block size of its own.\n\n**A conversation is built from three elements.** The chat holds the\ntranscript, a `Chat.Message` stands for each turn, and a `Chat.Composer` sits\nin the `composer` slot. When the user sends, `helix-send` reaches the chat:\nadd their turn with `author=\"me\"` and `state=\"sending\"`, then set `state` to\n`sent` or `failed` when your server answers. Add the reply as a turn with\n`state=\"streaming\"`, write its text as it arrives, and set `state` to `sent`\nwhen it is complete. While the user types, the composer sends\n`helix-typing`, which you can pass on to the other side. When the other side\ntypes, set `typing` to their name: the status band draws three dots and\n\"Ada is typing\" (`typing-label`), which a screen reader hears, and clearing\nit takes them away. Anything slotted into `status` is drawn first.\n\nA screen reader names each turn by its author and its time, such as \"You, 2\nminutes ago\". Set `me-label` and `message-label` to say it in your language,\nand give each turn by `them` an `author-label`. A turn with neither an author\nlabel nor a time is named by `turn-label`, \"Message\".\n\nA turn from `turns` is drawn in the chat's shadow root, so style it through\nthe forwarded `message-*` parts. A turn by `me` also gets each part with\n`-mine` added, and the turn's state adds `message-meta-failed`,\n`message-content-sending`, and `message-content-streaming`. To style each\nparticipant differently, give `author-styles` the declarations for each\nauthor, such as `{\"ada\": \"--chat-message-background-color: …\"}`: the message\ndrawn for each of their turns takes them as its `style`, so the message's\ncustom properties change for that author alone. Turns passed as children are\nstyled by their `author`, such as `helix-chat-message[author=\"ada\"]`.",
|
|
24336
24374
|
"name": "HelixHeadlessChat",
|
|
24337
24375
|
"cssParts": [
|
|
24338
24376
|
{
|
|
@@ -24538,6 +24576,19 @@
|
|
|
24538
24576
|
"default": "72",
|
|
24539
24577
|
"description": "How tall a turn is assumed to be before it has been drawn, in pixels."
|
|
24540
24578
|
},
|
|
24579
|
+
{
|
|
24580
|
+
"kind": "field",
|
|
24581
|
+
"name": "arrivalLabel",
|
|
24582
|
+
"type": {
|
|
24583
|
+
"text": "string"
|
|
24584
|
+
},
|
|
24585
|
+
"default": "'{author}: {text}'",
|
|
24586
|
+
"description": "What a screen reader hears when a turn arrives. `{author}` is who wrote\nit, as its name says it, and `{text}` its words. A turn with no author a\nreader can be told, a turn by `them` with no `author-label`, says its\nwords alone.",
|
|
24587
|
+
"attribute": "arrival-label",
|
|
24588
|
+
"helix": {
|
|
24589
|
+
"words": true
|
|
24590
|
+
}
|
|
24591
|
+
},
|
|
24541
24592
|
{
|
|
24542
24593
|
"kind": "field",
|
|
24543
24594
|
"name": "authorStyles",
|
|
@@ -25157,7 +25208,8 @@
|
|
|
25157
25208
|
"text": "Heard"
|
|
25158
25209
|
}
|
|
25159
25210
|
}
|
|
25160
|
-
]
|
|
25211
|
+
],
|
|
25212
|
+
"description": "What is said for a turn: a failed one with `failed-turn-label`, and\nanother with `arrival-label` where its author can be named, so a reader\nin a conversation of several knows who spoke."
|
|
25161
25213
|
},
|
|
25162
25214
|
{
|
|
25163
25215
|
"kind": "method",
|
|
@@ -25827,6 +25879,15 @@
|
|
|
25827
25879
|
}
|
|
25828
25880
|
],
|
|
25829
25881
|
"attributes": [
|
|
25882
|
+
{
|
|
25883
|
+
"name": "arrival-label",
|
|
25884
|
+
"type": {
|
|
25885
|
+
"text": "string"
|
|
25886
|
+
},
|
|
25887
|
+
"default": "'{author}: {text}'",
|
|
25888
|
+
"description": "What a screen reader hears when a turn arrives. `{author}` is who wrote\nit, as its name says it, and `{text}` its words. A turn with no author a\nreader can be told, a turn by `them` with no `author-label`, says its\nwords alone.",
|
|
25889
|
+
"fieldName": "arrivalLabel"
|
|
25890
|
+
},
|
|
25830
25891
|
{
|
|
25831
25892
|
"name": "author-styles",
|
|
25832
25893
|
"type": {
|
|
@@ -26506,6 +26567,21 @@
|
|
|
26506
26567
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
26507
26568
|
}
|
|
26508
26569
|
},
|
|
26570
|
+
{
|
|
26571
|
+
"kind": "field",
|
|
26572
|
+
"name": "namedBy",
|
|
26573
|
+
"type": {
|
|
26574
|
+
"text": "string | null"
|
|
26575
|
+
},
|
|
26576
|
+
"privacy": "protected",
|
|
26577
|
+
"default": "null",
|
|
26578
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
26579
|
+
"attribute": "aria-label",
|
|
26580
|
+
"inheritedFrom": {
|
|
26581
|
+
"name": "MixinField",
|
|
26582
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
26583
|
+
}
|
|
26584
|
+
},
|
|
26509
26585
|
{
|
|
26510
26586
|
"kind": "field",
|
|
26511
26587
|
"name": "labeled",
|
|
@@ -27671,6 +27747,8 @@
|
|
|
27671
27747
|
"text": "string | null"
|
|
27672
27748
|
},
|
|
27673
27749
|
"default": "null",
|
|
27750
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
27751
|
+
"fieldName": "namedBy",
|
|
27674
27752
|
"inheritedFrom": {
|
|
27675
27753
|
"name": "MixinField",
|
|
27676
27754
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
@@ -28287,6 +28365,21 @@
|
|
|
28287
28365
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
28288
28366
|
}
|
|
28289
28367
|
},
|
|
28368
|
+
{
|
|
28369
|
+
"kind": "field",
|
|
28370
|
+
"name": "namedBy",
|
|
28371
|
+
"type": {
|
|
28372
|
+
"text": "string | null"
|
|
28373
|
+
},
|
|
28374
|
+
"privacy": "protected",
|
|
28375
|
+
"default": "null",
|
|
28376
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
28377
|
+
"attribute": "aria-label",
|
|
28378
|
+
"inheritedFrom": {
|
|
28379
|
+
"name": "MixinField",
|
|
28380
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
28381
|
+
}
|
|
28382
|
+
},
|
|
28290
28383
|
{
|
|
28291
28384
|
"kind": "field",
|
|
28292
28385
|
"name": "labeled",
|
|
@@ -29486,6 +29579,8 @@
|
|
|
29486
29579
|
"text": "string | null"
|
|
29487
29580
|
},
|
|
29488
29581
|
"default": "null",
|
|
29582
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
29583
|
+
"fieldName": "namedBy",
|
|
29489
29584
|
"inheritedFrom": {
|
|
29490
29585
|
"name": "MixinField",
|
|
29491
29586
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
@@ -32591,6 +32686,21 @@
|
|
|
32591
32686
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
32592
32687
|
}
|
|
32593
32688
|
},
|
|
32689
|
+
{
|
|
32690
|
+
"kind": "field",
|
|
32691
|
+
"name": "namedBy",
|
|
32692
|
+
"type": {
|
|
32693
|
+
"text": "string | null"
|
|
32694
|
+
},
|
|
32695
|
+
"privacy": "protected",
|
|
32696
|
+
"default": "null",
|
|
32697
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
32698
|
+
"attribute": "aria-label",
|
|
32699
|
+
"inheritedFrom": {
|
|
32700
|
+
"name": "MixinField",
|
|
32701
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
32702
|
+
}
|
|
32703
|
+
},
|
|
32594
32704
|
{
|
|
32595
32705
|
"kind": "field",
|
|
32596
32706
|
"name": "labeled",
|
|
@@ -33909,6 +34019,8 @@
|
|
|
33909
34019
|
"text": "string | null"
|
|
33910
34020
|
},
|
|
33911
34021
|
"default": "null",
|
|
34022
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
34023
|
+
"fieldName": "namedBy",
|
|
33912
34024
|
"inheritedFrom": {
|
|
33913
34025
|
"name": "MixinField",
|
|
33914
34026
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
@@ -37226,6 +37338,15 @@
|
|
|
37226
37338
|
"description": "How long typing rests before the list is narrowed and `helix-filter` is\nsent, in milliseconds.\n\nFor options filtered on a server, where `helix-filter` starts a request: a\ndelay sends one request for a word instead of one per letter. The arrow\nkeys, Enter and Escape narrow at once on what was typed. `0` narrows on\nevery keystroke. See Listbox's `filter-delay`.",
|
|
37227
37339
|
"attribute": "filter-delay"
|
|
37228
37340
|
},
|
|
37341
|
+
{
|
|
37342
|
+
"kind": "field",
|
|
37343
|
+
"name": "formValue",
|
|
37344
|
+
"type": {
|
|
37345
|
+
"text": "'key' | 'text' | undefined"
|
|
37346
|
+
},
|
|
37347
|
+
"description": "What the form receives for each chosen option: `key`, its `value`, or\n`text`, its words, as React Aria's ComboBox `formValue` offers.\n\n`text` is for a server that wants what the reader saw, such as a city's\nname. A value no option carries, typed with `allows-custom-value` or made\nwith `creatable`, is sent as it is either way. Absent is `key`, and the\nhost carries no attribute for it.",
|
|
37348
|
+
"attribute": "form-value"
|
|
37349
|
+
},
|
|
37229
37350
|
{
|
|
37230
37351
|
"kind": "field",
|
|
37231
37352
|
"name": "listLabel",
|
|
@@ -38554,6 +38675,21 @@
|
|
|
38554
38675
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
38555
38676
|
}
|
|
38556
38677
|
},
|
|
38678
|
+
{
|
|
38679
|
+
"kind": "field",
|
|
38680
|
+
"name": "namedBy",
|
|
38681
|
+
"type": {
|
|
38682
|
+
"text": "string | null"
|
|
38683
|
+
},
|
|
38684
|
+
"privacy": "protected",
|
|
38685
|
+
"default": "null",
|
|
38686
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
38687
|
+
"attribute": "aria-label",
|
|
38688
|
+
"inheritedFrom": {
|
|
38689
|
+
"name": "MixinField",
|
|
38690
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
38691
|
+
}
|
|
38692
|
+
},
|
|
38557
38693
|
{
|
|
38558
38694
|
"kind": "field",
|
|
38559
38695
|
"name": "labeled",
|
|
@@ -39766,6 +39902,14 @@
|
|
|
39766
39902
|
"description": "How long typing rests before the list is narrowed and `helix-filter` is\nsent, in milliseconds.\n\nFor options filtered on a server, where `helix-filter` starts a request: a\ndelay sends one request for a word instead of one per letter. The arrow\nkeys, Enter and Escape narrow at once on what was typed. `0` narrows on\nevery keystroke. See Listbox's `filter-delay`.",
|
|
39767
39903
|
"fieldName": "filterDelay"
|
|
39768
39904
|
},
|
|
39905
|
+
{
|
|
39906
|
+
"name": "form-value",
|
|
39907
|
+
"type": {
|
|
39908
|
+
"text": "'key' | 'text' | undefined"
|
|
39909
|
+
},
|
|
39910
|
+
"description": "What the form receives for each chosen option: `key`, its `value`, or\n`text`, its words, as React Aria's ComboBox `formValue` offers.\n\n`text` is for a server that wants what the reader saw, such as a city's\nname. A value no option carries, typed with `allows-custom-value` or made\nwith `creatable`, is sent as it is either way. Absent is `key`, and the\nhost carries no attribute for it.",
|
|
39911
|
+
"fieldName": "formValue"
|
|
39912
|
+
},
|
|
39769
39913
|
{
|
|
39770
39914
|
"name": "list-label",
|
|
39771
39915
|
"type": {
|
|
@@ -40033,6 +40177,8 @@
|
|
|
40033
40177
|
"text": "string | null"
|
|
40034
40178
|
},
|
|
40035
40179
|
"default": "null",
|
|
40180
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
40181
|
+
"fieldName": "namedBy",
|
|
40036
40182
|
"inheritedFrom": {
|
|
40037
40183
|
"name": "MixinField",
|
|
40038
40184
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
@@ -40245,7 +40391,7 @@
|
|
|
40245
40391
|
"declarations": [
|
|
40246
40392
|
{
|
|
40247
40393
|
"kind": "class",
|
|
40248
|
-
"description": "The list is a `Listbox`, which handles filtering, the empty state, the match\nhighlight, `aria-activedescendant`, scrolling an option into view, and moving\nbetween options with the keyboard. The palette adds a dialog and a hotkey\nthat opens it.\n\nThe palette keeps no value. It is not a form control and submits nothing.\nChoosing an option dispatches `helix-select` once. To remember the last\ncommand, store it yourself. An option with `href` is a link to a page, which\nthe browser follows once the palette has closed.\n\nThe hotkey listener is on the document, so the hotkey works from anywhere on\nthe page, including inside another control's text field, whether or not the\npalette is open. `mod` means Command on a Mac and Control elsewhere, so you\nwrite one binding.\n\nThe filter is cleared when the palette closes, so each opening starts from\nthe full list. Combobox and Select do the same. As typing narrows the list, a\nscreen reader hears how many commands are left, such as \"3 commands\".",
|
|
40394
|
+
"description": "The list is a `Listbox`, which handles filtering, the empty state, the match\nhighlight, `aria-activedescendant`, scrolling an option into view, and moving\nbetween options with the keyboard. The palette adds a dialog and a hotkey\nthat opens it.\n\nThe palette keeps no value. It is not a form control and submits nothing.\nChoosing an option dispatches `helix-select` once. To remember the last\ncommand, store it yourself. An option with `href` is a link to a page, which\nthe browser follows once the palette has closed.\n\nThe hotkey listener is on the document, so the hotkey works from anywhere on\nthe page, including inside another control's text field, whether or not the\npalette is open. `mod` means Command on a Mac and Control elsewhere, so you\nwrite one binding.\n\nWith `inline`, the palette is drawn in the page with no dialog, as a search\nover a list that is always shown.\n\n**Pages.** A command can open a page of commands of its own, as a palette\noffers \"Change theme\" and then the themes. Give the option `opens` with a\nname, and slot the page's commands as `page:` and that name:\n\n```html\n<helix-command>\n <helix-option value=\"theme\" opens=\"theme\">Change theme</helix-option>\n <helix-option value=\"dark\" slot=\"page:theme\">Dark</helix-option>\n <helix-option value=\"light\" slot=\"page:theme\">Light</helix-option>\n</helix-command>\n```\n\nChoosing the opener says `helix-select` with its value, and canceling it\nkeeps the page that is shown. The list then shows the page, named by the\nopener's words, and Backspace in an empty filter goes back. `page` says\nwhich page is shown.\n\nThe filter is cleared when the palette closes, so each opening starts from\nthe full list. Combobox and Select do the same. As typing narrows the list, a\nscreen reader hears how many commands are left, such as \"3 commands\".\n\n**Keyboard.** Focus goes to the filter field as the palette opens, and the\nhighlight moves through the commands while you type.\n\n| Key | What it does |\n|---|---|\n| `hotkey`, Command or Control with K by default | Opens the palette from anywhere on the page, or closes it. With `inline`, puts focus in its filter field. |\n| Down, Up | Moves the highlight to the next or the previous command, round from the last to the first. |\n| Page Down, Page Up | Moves the highlight by as many commands as the list shows at once. |\n| Home, End, Left, Right | Move the caret in the filter field. |\n| Enter | Runs the highlighted command, or follows it where it is a link, and closes the palette. On a command with `opens`, shows its page. |\n| Command or Control with Enter | Takes the highlighted command's `alternate` destination, where it has one. |\n| Backspace | In an empty filter on a page, goes back to the page before. |\n| Escape | Clears the filter. With the filter empty, closes the palette and puts focus back where it was. |\n| Tab | Stays in the palette, which is modal. With `inline`, moves on through the page. |\n\n**ARIA.** The palette is a modal `dialog` named by `label`, or with\n`inline` no dialog at all. Inside it the filter field is a `combobox` with\n`aria-activedescendant` on the highlighted command, and the commands are a\n`listbox` of `option`s. How many commands typing left, the empty text and\nthe loading text are said in a polite live region.",
|
|
40249
40395
|
"name": "HelixHeadlessCommand",
|
|
40250
40396
|
"cssParts": [
|
|
40251
40397
|
{
|
|
@@ -40342,10 +40488,18 @@
|
|
|
40342
40488
|
"description": "What the palette shows while `load-error` is set, for content richer than its text.",
|
|
40343
40489
|
"name": "error"
|
|
40344
40490
|
},
|
|
40491
|
+
{
|
|
40492
|
+
"description": "Replaces the magnifying glass in the filter field.",
|
|
40493
|
+
"name": "filter-icon"
|
|
40494
|
+
},
|
|
40345
40495
|
{
|
|
40346
40496
|
"description": "Content under the list, such as the keys that work in the palette.",
|
|
40347
40497
|
"name": "footer"
|
|
40348
40498
|
},
|
|
40499
|
+
{
|
|
40500
|
+
"description": "Content above the filter field, such as a title or the scope being searched. A heading here does not rename the palette, which `label` names.",
|
|
40501
|
+
"name": "header"
|
|
40502
|
+
},
|
|
40349
40503
|
{
|
|
40350
40504
|
"description": "What the palette shows while the commands load, for content richer than `loading-text`.",
|
|
40351
40505
|
"name": "loading"
|
|
@@ -40399,6 +40553,26 @@
|
|
|
40399
40553
|
"description": "The key that opens the palette, written as `mod+k`, `shift+p`, or `k`,\nin Kbd's chord spelling: `mod` is Command or Control, `ctrl`, `cmd`,\n`alt` and `shift` the keys they name.\n\nEmpty turns it off, for a consumer who opens the palette from a button or\nfrom their own shortcut handler. There is no list of defaults to fight\nwith: one key, said once.",
|
|
40400
40554
|
"attribute": "hotkey"
|
|
40401
40555
|
},
|
|
40556
|
+
{
|
|
40557
|
+
"kind": "field",
|
|
40558
|
+
"name": "inline",
|
|
40559
|
+
"type": {
|
|
40560
|
+
"text": "boolean"
|
|
40561
|
+
},
|
|
40562
|
+
"default": "false",
|
|
40563
|
+
"description": "Draws the palette in the page, where it stands, with no dialog: a search\nover a list of commands, as React Aria's Autocomplete is drawn.\n\nThe list is always shown, and `hotkey` puts focus in its filter field.\nChoosing a command says `helix-select` and leaves the list where it is,\nand `open`, `toggle` and the dialog's parts do nothing.",
|
|
40564
|
+
"attribute": "inline",
|
|
40565
|
+
"reflects": true
|
|
40566
|
+
},
|
|
40567
|
+
{
|
|
40568
|
+
"kind": "field",
|
|
40569
|
+
"name": "items",
|
|
40570
|
+
"type": {
|
|
40571
|
+
"text": "readonly DataOptionItem[] | undefined"
|
|
40572
|
+
},
|
|
40573
|
+
"default": "undefined",
|
|
40574
|
+
"description": "The commands as data, for a palette too long to draw whole: each a value,\nwhich is also its words, or a record with a `value`, a `label` and\n`disabled`. Handed to the list, which draws only the commands in sight and\nreads no children while it is set. See Listbox's `items`.\n\nChoosing one says `helix-select` with its value, as a child option does.\nA command that is a link, or that has an `alternate`, is an option you\nwrite as a child."
|
|
40575
|
+
},
|
|
40402
40576
|
{
|
|
40403
40577
|
"kind": "field",
|
|
40404
40578
|
"name": "label",
|
|
@@ -40455,6 +40629,26 @@
|
|
|
40455
40629
|
"description": "The text shown when typing hides every one of the commands, where there are\nsome. Absent, `empty-text` shows. See Listbox's `no-results-text`.",
|
|
40456
40630
|
"attribute": "no-results-text"
|
|
40457
40631
|
},
|
|
40632
|
+
{
|
|
40633
|
+
"kind": "field",
|
|
40634
|
+
"name": "page",
|
|
40635
|
+
"type": {
|
|
40636
|
+
"text": "string"
|
|
40637
|
+
},
|
|
40638
|
+
"default": "''",
|
|
40639
|
+
"description": "The page of commands shown, by name: empty for the commands you write\nwith no `slot`, or a name for the commands slotted as `page:` and the\nname, such as `slot=\"page:theme\"`.\n\nAn option with `opens` set to a name goes to that page when it is chosen,\nin place of running, and Backspace in an empty filter goes back to the\npage before. Closing the palette goes back to the first page. Set it to\nopen the palette on a page of your choosing.",
|
|
40640
|
+
"attribute": "page"
|
|
40641
|
+
},
|
|
40642
|
+
{
|
|
40643
|
+
"kind": "field",
|
|
40644
|
+
"name": "trail",
|
|
40645
|
+
"type": {
|
|
40646
|
+
"text": "string[]"
|
|
40647
|
+
},
|
|
40648
|
+
"privacy": "private",
|
|
40649
|
+
"default": "[]",
|
|
40650
|
+
"description": "The pages gone through to reach this one, which Backspace walks back."
|
|
40651
|
+
},
|
|
40458
40652
|
{
|
|
40459
40653
|
"kind": "field",
|
|
40460
40654
|
"name": "placeholder",
|
|
@@ -40516,6 +40710,16 @@
|
|
|
40516
40710
|
"readonly": true,
|
|
40517
40711
|
"description": "Answers the hotkey from wherever the reader is.\n\nOn the document rather than on this element, which is never the thing with\nfocus: a palette that only answered when it already had focus would be a\npalette nobody could open.\n\n`preventDefault` because every key worth using is already the browser's.\nCommand-K focuses the address bar in some browsers and opens a search in\nothers, and a palette that opened underneath one of those would be a\npalette the reader never sees."
|
|
40518
40712
|
},
|
|
40713
|
+
{
|
|
40714
|
+
"kind": "field",
|
|
40715
|
+
"name": "searchField",
|
|
40716
|
+
"type": {
|
|
40717
|
+
"text": "HTMLInputElement | null"
|
|
40718
|
+
},
|
|
40719
|
+
"privacy": "private",
|
|
40720
|
+
"description": "The list's filter field, where a reader types.",
|
|
40721
|
+
"readonly": true
|
|
40722
|
+
},
|
|
40519
40723
|
{
|
|
40520
40724
|
"kind": "field",
|
|
40521
40725
|
"name": "handleChange",
|
|
@@ -40523,6 +40727,48 @@
|
|
|
40523
40727
|
"readonly": true,
|
|
40524
40728
|
"description": "Takes what the list announced and says it under this element's name.\n\nThe listbox says `helix-before-change`, which is the right word for a control that\nholds a value and the wrong one for a palette: nothing here changed, a\ncommand ran. It is stopped and re-announced rather than relayed, so a\nconsumer hears one event naming the element they put on the page.\n\n**And refused, so the list keeps no answer.** A listbox holding what was\nchosen hears the same row chosen again as no change and says nothing, so\nthe command a reader ran last, which on a site is the page they are on,\ncould not be run again: Enter did nothing and the palette stayed open."
|
|
40525
40729
|
},
|
|
40730
|
+
{
|
|
40731
|
+
"kind": "method",
|
|
40732
|
+
"name": "goTo",
|
|
40733
|
+
"privacy": "private",
|
|
40734
|
+
"return": {
|
|
40735
|
+
"type": {
|
|
40736
|
+
"text": "void"
|
|
40737
|
+
}
|
|
40738
|
+
},
|
|
40739
|
+
"parameters": [
|
|
40740
|
+
{
|
|
40741
|
+
"name": "trail",
|
|
40742
|
+
"type": {
|
|
40743
|
+
"text": "string[]"
|
|
40744
|
+
}
|
|
40745
|
+
},
|
|
40746
|
+
{
|
|
40747
|
+
"name": "page",
|
|
40748
|
+
"type": {
|
|
40749
|
+
"text": "string"
|
|
40750
|
+
}
|
|
40751
|
+
}
|
|
40752
|
+
],
|
|
40753
|
+
"description": "Shows a page of commands, with the trail that leads back from it. The\nfilter starts empty, as it does on opening, and the field keeps focus."
|
|
40754
|
+
},
|
|
40755
|
+
{
|
|
40756
|
+
"kind": "field",
|
|
40757
|
+
"name": "handleBack",
|
|
40758
|
+
"privacy": "private",
|
|
40759
|
+
"readonly": true,
|
|
40760
|
+
"description": "Backspace in an empty filter, on a page, goes back to the page before."
|
|
40761
|
+
},
|
|
40762
|
+
{
|
|
40763
|
+
"kind": "field",
|
|
40764
|
+
"name": "listName",
|
|
40765
|
+
"type": {
|
|
40766
|
+
"text": "string"
|
|
40767
|
+
},
|
|
40768
|
+
"privacy": "private",
|
|
40769
|
+
"description": "The list's name: the palette's, or on a page, the words of the command\nthat opens it.",
|
|
40770
|
+
"readonly": true
|
|
40771
|
+
},
|
|
40526
40772
|
{
|
|
40527
40773
|
"kind": "field",
|
|
40528
40774
|
"name": "activeOption",
|
|
@@ -40546,6 +40792,43 @@
|
|
|
40546
40792
|
"privacy": "private",
|
|
40547
40793
|
"readonly": true
|
|
40548
40794
|
},
|
|
40795
|
+
{
|
|
40796
|
+
"kind": "method",
|
|
40797
|
+
"name": "markStatus",
|
|
40798
|
+
"privacy": "private",
|
|
40799
|
+
"return": {
|
|
40800
|
+
"type": {
|
|
40801
|
+
"text": "void"
|
|
40802
|
+
}
|
|
40803
|
+
},
|
|
40804
|
+
"description": "The list's loading, error and empty states on the host too, so a page\nstyles the whole palette from them, as Combobox does. Read once the list\nhas drawn its filter, since `hidden` is what the filter writes onto a\ncommand."
|
|
40805
|
+
},
|
|
40806
|
+
{
|
|
40807
|
+
"kind": "field",
|
|
40808
|
+
"name": "handleFilter",
|
|
40809
|
+
"privacy": "private",
|
|
40810
|
+
"readonly": true,
|
|
40811
|
+
"description": "After the list has filtered on what was typed. The event comes before the\nfilter is applied, so the list's update is waited for a turn later."
|
|
40812
|
+
},
|
|
40813
|
+
{
|
|
40814
|
+
"kind": "method",
|
|
40815
|
+
"name": "fills",
|
|
40816
|
+
"privacy": "private",
|
|
40817
|
+
"return": {
|
|
40818
|
+
"type": {
|
|
40819
|
+
"text": "boolean"
|
|
40820
|
+
}
|
|
40821
|
+
},
|
|
40822
|
+
"parameters": [
|
|
40823
|
+
{
|
|
40824
|
+
"name": "name",
|
|
40825
|
+
"type": {
|
|
40826
|
+
"text": "string"
|
|
40827
|
+
}
|
|
40828
|
+
}
|
|
40829
|
+
],
|
|
40830
|
+
"description": "Whether a child fills the named slot, so it is handed on to the dialog or the list."
|
|
40831
|
+
},
|
|
40549
40832
|
{
|
|
40550
40833
|
"kind": "method",
|
|
40551
40834
|
"name": "renderDialog",
|
|
@@ -40557,6 +40840,36 @@
|
|
|
40557
40840
|
},
|
|
40558
40841
|
"description": "The surface the palette opens in, behind a seam the styled tier can move.\n\nA method rather than a fragment inline, so a tier above can render its own,\nwrap this one, pass it a property the base does not know about, or leave it\nout, without reimplementing the whole template to do any of them. The tag is\ninterpolated rather than written, so `tier` resolves it: this renders the\nheadless element, and a styled subclass that sets `tier` renders the styled one\nfrom the same template."
|
|
40559
40842
|
},
|
|
40843
|
+
{
|
|
40844
|
+
"kind": "method",
|
|
40845
|
+
"name": "renderListbox",
|
|
40846
|
+
"privacy": "protected",
|
|
40847
|
+
"return": {
|
|
40848
|
+
"type": {
|
|
40849
|
+
"text": "TemplateResult"
|
|
40850
|
+
}
|
|
40851
|
+
},
|
|
40852
|
+
"description": "The filterable list of commands, which the dialog holds, or the page with\n`inline`, behind a seam the styled tier can move."
|
|
40853
|
+
},
|
|
40854
|
+
{
|
|
40855
|
+
"kind": "method",
|
|
40856
|
+
"name": "renderFooter",
|
|
40857
|
+
"privacy": "private",
|
|
40858
|
+
"return": {
|
|
40859
|
+
"type": {
|
|
40860
|
+
"text": "TemplateResult"
|
|
40861
|
+
}
|
|
40862
|
+
},
|
|
40863
|
+
"parameters": [
|
|
40864
|
+
{
|
|
40865
|
+
"name": "slot",
|
|
40866
|
+
"type": {
|
|
40867
|
+
"text": "string | typeof nothing"
|
|
40868
|
+
}
|
|
40869
|
+
}
|
|
40870
|
+
],
|
|
40871
|
+
"description": "The row under the list, in the dialog's footer or, `inline`, under the list itself."
|
|
40872
|
+
},
|
|
40560
40873
|
{
|
|
40561
40874
|
"kind": "field",
|
|
40562
40875
|
"name": "defaultOpen",
|
|
@@ -41099,6 +41412,15 @@
|
|
|
41099
41412
|
"description": "The key that opens the palette, written as `mod+k`, `shift+p`, or `k`,\nin Kbd's chord spelling: `mod` is Command or Control, `ctrl`, `cmd`,\n`alt` and `shift` the keys they name.\n\nEmpty turns it off, for a consumer who opens the palette from a button or\nfrom their own shortcut handler. There is no list of defaults to fight\nwith: one key, said once.",
|
|
41100
41413
|
"fieldName": "hotkey"
|
|
41101
41414
|
},
|
|
41415
|
+
{
|
|
41416
|
+
"name": "inline",
|
|
41417
|
+
"type": {
|
|
41418
|
+
"text": "boolean"
|
|
41419
|
+
},
|
|
41420
|
+
"default": "false",
|
|
41421
|
+
"description": "Draws the palette in the page, where it stands, with no dialog: a search\nover a list of commands, as React Aria's Autocomplete is drawn.\n\nThe list is always shown, and `hotkey` puts focus in its filter field.\nChoosing a command says `helix-select` and leaves the list where it is,\nand `open`, `toggle` and the dialog's parts do nothing.",
|
|
41422
|
+
"fieldName": "inline"
|
|
41423
|
+
},
|
|
41102
41424
|
{
|
|
41103
41425
|
"name": "label",
|
|
41104
41426
|
"type": {
|
|
@@ -41143,6 +41465,15 @@
|
|
|
41143
41465
|
"description": "The text shown when typing hides every one of the commands, where there are\nsome. Absent, `empty-text` shows. See Listbox's `no-results-text`.",
|
|
41144
41466
|
"fieldName": "noResultsText"
|
|
41145
41467
|
},
|
|
41468
|
+
{
|
|
41469
|
+
"name": "page",
|
|
41470
|
+
"type": {
|
|
41471
|
+
"text": "string"
|
|
41472
|
+
},
|
|
41473
|
+
"default": "''",
|
|
41474
|
+
"description": "The page of commands shown, by name: empty for the commands you write\nwith no `slot`, or a name for the commands slotted as `page:` and the\nname, such as `slot=\"page:theme\"`.\n\nAn option with `opens` set to a name goes to that page when it is chosen,\nin place of running, and Backspace in an empty filter goes back to the\npage before. Closing the palette goes back to the first page. Set it to\nopen the palette on a page of your choosing.",
|
|
41475
|
+
"fieldName": "page"
|
|
41476
|
+
},
|
|
41146
41477
|
{
|
|
41147
41478
|
"name": "placeholder",
|
|
41148
41479
|
"type": {
|
|
@@ -41196,6 +41527,22 @@
|
|
|
41196
41527
|
}
|
|
41197
41528
|
],
|
|
41198
41529
|
"cssStates": [
|
|
41530
|
+
{
|
|
41531
|
+
"description": "The list shows no commands: there are none, or typing hid every one.",
|
|
41532
|
+
"name": "empty"
|
|
41533
|
+
},
|
|
41534
|
+
{
|
|
41535
|
+
"description": "While `load-error` is set.",
|
|
41536
|
+
"name": "error"
|
|
41537
|
+
},
|
|
41538
|
+
{
|
|
41539
|
+
"description": "While `loading` is set.",
|
|
41540
|
+
"name": "loading"
|
|
41541
|
+
},
|
|
41542
|
+
{
|
|
41543
|
+
"description": "Typing hid every one of the commands, where there are some.",
|
|
41544
|
+
"name": "no-results"
|
|
41545
|
+
},
|
|
41199
41546
|
{
|
|
41200
41547
|
"description": "While the palette is open.",
|
|
41201
41548
|
"name": "open"
|
|
@@ -43156,7 +43503,7 @@
|
|
|
43156
43503
|
"declarations": [
|
|
43157
43504
|
{
|
|
43158
43505
|
"kind": "class",
|
|
43159
|
-
"description": "Declare the columns as `TableColumn` children and pass the rows as an array.\nThe schema stays readable in the HTML, and the rows can be windowed, which\nten thousand row elements cannot be.\n\n```html\n<helix-headless-data-table .rows=${rows} sort=\"name:asc\" page-size=\"20\">\n <helix-headless-table-column field=\"name\" sortable>Name</helix-headless-table-column>\n <helix-headless-table-column field=\"size\" text-align=\"end\" sortable .cell=${bytes}>Size</helix-headless-table-column>\n</helix-headless-data-table>\n```\n\nFor a short table written out by hand, use `Table`, which takes rows as\nmarkup.\n\nSort and filter apply to the whole set, including the rows on other pages.\n\n**The cell values do not server-render.** The headings and the row elements\ndo. Reading a cell needs the columns, and Lit SSR does not pass the column\nchildren to this element, so a crawler sees an empty table of the right\nshape. Use `Table` when the served HTML has to carry the values.\n\n`selectable` adds a column of checkboxes, keyed on `row-key`:\n\n- A row is selected by its key, so the selection survives a sort, a filter,\n and a page change.\n- `selected` holds the chosen keys, comma separated, the same shape `Listbox`\n uses for a multiple choice. As with `sort`, writing it applies the\n selection, and `default-selected` holds what the markup declared.\n- The checkbox in the heading selects every row in the result, across pages,\n and shows a dash while only some are chosen.\n- Shift with a press on a checkbox selects every row between it and the row\n last chosen.\n- `selection-behavior=\"replace\"` makes a press or a move select the row\n alone, as a file list does. Control or Command with a press adds or takes\n out one row, and Shift with a press selects every row from the one last\n chosen.\n\nTo act on a single row, such as opening it, put a link or a button in a cell.\n\n**Keyboard.** The grid is one tab stop, and the arrow keys move between its\ncells, the headings included.\n\n| Key | What it does |\n|---|---|\n| Right, Left | Moves one cell along the row. Left moves on, on a right-to-left page. |\n| Down, Up | Moves one row, the heading row and the `load-more` row included. |\n| Home, End | Moves to the first or the last cell of the row. |\n| Control with Home or End | Moves to the first or the last cell of the grid. |\n| Page Down, Page Up | Moves by the rows that fit in view. |\n| Enter, F2 | Moves into the cell's controls. Escape moves back to the cell, and Tab moves between the controls of one cell. |\n| Enter, Space on a sortable heading | Sorts by the column. |\n| Enter, Space on the `load-more` row | Sends `helix-load-more`. |\n| Space on a row | Selects the row, in a `selectable` table. Under `selection-behavior=\"replace\"`, selects it alone, and Control or Command with Space adds or takes out the row. |\n| Down, Up, Page Down, Page Up under `selection-behavior=\"replace\"` | Selects the row it moves to alone. Control or Command with the key moves without selecting. |\n| Shift with Down or Up | Selects the rows it moves across, in a `selectable` table. |\n| Shift with Space | Selects every row from the one last chosen, in a `selectable` table. |\n| Control or Command with A | Selects every row, in a `selectable` table. |\n| Right on a row header in a tree grid | Opens a closed row, and moves one cell along an open one. |\n| Left on a row header in a tree grid | Closes an open row, and moves to the parent of a closed one. |\n| A letter or a word | Moves to the next row whose row header starts with what you typed. |\n\n`selected` and `expanded` hold their keys in the order of the rows, as do\n`helix-select`, `helix-selected` and `helix-expand`.\n\nEach row is named by its row header, the column marked `row-header`, or the\nfirst column with a `field` where none is. A screen reader says it as a reader\nmoves between rows.\n\n**Rows that hold rows.** `child-field` names the field that holds a row's\nchild rows, and the grid becomes a tree grid. The row header column draws a\nmark that a press opens and closes a row by, and `expanded` holds the keys of the open\nrows, which `row-key` names. Right on a closed row's header opens it, Left on\nan open one closes it, and Left on a child moves to its parent. A sort orders\nthe rows under each parent, and a search shows the rows that lead to each\nmatch, open.\n\n`load-more` adds a row after the last one with a button that sends\n`helix-load-more`. A `windowed` table also sends it by itself once a reader\nscrolls within one screen of the end, once for each number of rows. Add the\nnext rows to `rows`, and set `loading` while they are on their way.\n\nThe controls inside the cells leave the tab order, so Tab moves past the\nwhole grid. A windowed table keeps the row holding focus drawn while the\nrest scroll away.\n\nPeople can resize and reorder the columns. `resizable` on a column puts a\nseparator on its edge. `reorderable` on the table puts a grip on each heading\nthat has a `field`, moved by dragging or with the arrow keys. The new order\nis written to `order` as a list of fields. Your markup is not rewritten: the\ntable assigns the headings to its header in that order.\n\n**`reorderable-rows` lets people move rows.** A column of grips leads each\nrow, named by `move-row-label`. Drag a grip to move its row, and the table\nscrolls near an edge. Or press Space or Enter on a grip, or click it, to pick\nup its row, move it with Down and Up, Home and End, and press Space or Enter\nagain to drop it. A click on another row drops it there, and Escape puts it\nback. The table says each step in its `live` region. A drop sends\n`helix-before-reorder`, which you can refuse, and then `helix-reorder` with\n`kind` set to `row`, whose `keys` hold every key of `rows` in the new order.\n**You move the rows**: set `rows` to the new order, and the table draws it.\nSet `row-key`, so a row is known by its key once it has moved. The grips do\nnothing while a `sort` is set, since the sort decides the order, and a tree\ngrid draws none.\n\n`csv()` returns the result as text: every row that passes the filter, in the\norder and the columns on screen. Saving the file is up to you.\n\n`DataTable` has no `columns` attribute. Each `TableColumn` is part of the\nschema, so you size a column with its own `width`. `Table` has `columns`\nbecause its cells are markup you write and it can have no columns at all.\nWritten on `DataTable`, `columns` has no effect, so watch for it when you\nmove a table from `Table` to `DataTable`.",
|
|
43506
|
+
"description": "Declare the columns as `TableColumn` children and pass the rows as an array.\nThe schema stays readable in the HTML, and the rows can be windowed, which\nten thousand row elements cannot be.\n\n```html\n<helix-headless-data-table .rows=${rows} sort=\"name:asc\" page-size=\"20\">\n <helix-headless-table-column field=\"name\" sortable>Name</helix-headless-table-column>\n <helix-headless-table-column field=\"size\" text-align=\"end\" sortable .cell=${bytes}>Size</helix-headless-table-column>\n</helix-headless-data-table>\n```\n\nFor a short table written out by hand, use `Table`, which takes rows as\nmarkup.\n\nSort and filter apply to the whole set, including the rows on other pages.\n\n**The cell values do not server-render.** The headings and the row elements\ndo. Reading a cell needs the columns, and Lit SSR does not pass the column\nchildren to this element, so a crawler sees an empty table of the right\nshape. Use `Table` when the served HTML has to carry the values.\n\n`selectable` adds a column of checkboxes, keyed on `row-key`:\n\n- A row is selected by its key, so the selection survives a sort, a filter,\n and a page change.\n- `selected` holds the chosen keys, comma separated, the same shape `Listbox`\n uses for a multiple choice. As with `sort`, writing it applies the\n selection, and `default-selected` holds what the markup declared.\n- The checkbox in the heading selects every row in the result, across pages,\n and shows a dash while only some are chosen.\n- Shift with a press on a checkbox selects every row between it and the row\n last chosen.\n- `selection-behavior=\"replace\"` makes a press or a move select the row\n alone, as a file list does. Control or Command with a press adds or takes\n out one row, and Shift with a press selects every row from the one last\n chosen.\n\nTo act on a single row, such as opening it, put a link or a button in a cell.\n\n**Keyboard.** The grid is one tab stop, and the arrow keys move between its\ncells, the headings included.\n\n| Key | What it does |\n|---|---|\n| Right, Left | Moves one cell along the row. Left moves on, on a right-to-left page. |\n| Down, Up | Moves one row, the heading row and the `load-more` row included. |\n| Home, End | Moves to the first or the last cell of the row. |\n| Control with Home or End | Moves to the first or the last cell of the grid. |\n| Page Down, Page Up | Moves by the rows that fit in view. |\n| Enter, F2 | Moves into the cell's controls. Escape moves back to the cell, and Tab moves between the controls of one cell. |\n| Enter, Space on a sortable heading | Sorts by the column. |\n| Enter, Space on the `load-more` row | Sends `helix-load-more`. |\n| Space on a row | Selects the row, in a `selectable` table. Under `selection-behavior=\"replace\"`, selects it alone, and Control or Command with Space adds or takes out the row. |\n| Down, Up, Page Down, Page Up under `selection-behavior=\"replace\"` | Selects the row it moves to alone. Control or Command with the key moves without selecting. |\n| Shift with Down or Up | Selects the rows it moves across, in a `selectable` table. |\n| Shift with Space | Selects every row from the one last chosen, in a `selectable` table. |\n| Control or Command with A | Selects every row, in a `selectable` table. |\n| Right on a row header in a tree grid | Opens a closed row, and moves one cell along an open one. |\n| Left on a row header in a tree grid | Closes an open row, and moves to the parent of a closed one. |\n| A letter or a word | Moves to the next row whose row header starts with what you typed. |\n\n`selected` and `expanded` hold their keys in the order of the rows, as do\n`helix-select`, `helix-selected` and `helix-expand`.\n\nEach row is named by its row header, the column marked `row-header`, or the\nfirst column with a `field` where none is. A screen reader says it as a reader\nmoves between rows.\n\n**Rows that hold rows.** `child-field` names the field that holds a row's\nchild rows, and the grid becomes a tree grid. The row header column draws a\nmark that a press opens and closes a row by, and `expanded` holds the keys of the open\nrows, which `row-key` names. Right on a closed row's header opens it, Left on\nan open one closes it, and Left on a child moves to its parent. A sort orders\nthe rows under each parent, and a search shows the rows that lead to each\nmatch, open.\n\n`load-more` adds a row after the last one with a button that sends\n`helix-load-more`. A `windowed` table also sends it by itself once a reader\nscrolls within one screen of the end, once for each number of rows. Add the\nnext rows to `rows`, and set `loading` while they are on their way.\n\nWhen a fetch fails, set `error-text`, such as \"The files did not load\", and\nput a button that tries again in the `error` slot. The line shows after the\nrows in place of the empty and loading lines, the live region says it, and\nthe table takes the `error` state. Clear it once you try again.\n\nThe controls inside the cells leave the tab order, so Tab moves past the\nwhole grid. A windowed table keeps the row holding focus drawn while the\nrest scroll away.\n\nPeople can resize and reorder the columns. `resizable` on a column puts a\nseparator on its edge. `reorderable` on the table puts a grip on each heading\nthat has a `field`, moved by dragging or with the arrow keys. The new order\nis written to `order` as a list of fields. Your markup is not rewritten: the\ntable assigns the headings to its header in that order.\n\n**`reorderable-rows` lets people move rows.** A column of grips leads each\nrow, named by `move-row-label`. Drag a grip to move its row, and the table\nscrolls near an edge. Or press Space or Enter on a grip, or click it, to pick\nup its row, move it with Down and Up, Home and End, and press Space or Enter\nagain to drop it. A click on another row drops it there, and Escape puts it\nback. The table says each step in its `live` region. A drop sends\n`helix-before-reorder`, which you can refuse, and then `helix-reorder` with\n`kind` set to `row`, whose `keys` hold every key of `rows` in the new order.\n**You move the rows**: set `rows` to the new order, and the table draws it.\nSet `row-key`, so a row is known by its key once it has moved. The grips do\nnothing while a `sort` is set, since the sort decides the order, and a tree\ngrid draws none.\n\n`csv()` returns the result as text: every row that passes the filter, in the\norder and the columns on screen. Saving the file is up to you.\n\n`DataTable` has no `columns` attribute. Each `TableColumn` is part of the\nschema, so you size a column with its own `width`. `Table` has `columns`\nbecause its cells are markup you write and it can have no columns at all.\nWritten on `DataTable`, `columns` has no effect, so watch for it when you\nmove a table from `Table` to `DataTable`.",
|
|
43160
43507
|
"name": "HelixHeadlessDataTable",
|
|
43161
43508
|
"cssProperties": [
|
|
43162
43509
|
{
|
|
@@ -43245,6 +43592,10 @@
|
|
|
43245
43592
|
"description": "Shown when there are no rows, because none arrived or the filter matches none. While rows are loading, the `loading` part is shown in its place.",
|
|
43246
43593
|
"name": "empty"
|
|
43247
43594
|
},
|
|
43595
|
+
{
|
|
43596
|
+
"description": "Shown after the rows while `error-text` is set, in place of the empty and loading lines.",
|
|
43597
|
+
"name": "error"
|
|
43598
|
+
},
|
|
43248
43599
|
{
|
|
43249
43600
|
"description": "The region below the grid.",
|
|
43250
43601
|
"name": "footer"
|
|
@@ -43399,6 +43750,10 @@
|
|
|
43399
43750
|
"description": "Content shown when there are no rows to show and none are loading, such as a picture and a link. Falls back to `empty-text`, which the live region still says.",
|
|
43400
43751
|
"name": "empty"
|
|
43401
43752
|
},
|
|
43753
|
+
{
|
|
43754
|
+
"description": "Content shown while `error-text` is set, such as a button that tries again. Falls back to `error-text`, which the live region still says.",
|
|
43755
|
+
"name": "error"
|
|
43756
|
+
},
|
|
43402
43757
|
{
|
|
43403
43758
|
"description": "Content below the grid. It replaces the built-in pagination.",
|
|
43404
43759
|
"name": "footer"
|
|
@@ -43583,6 +43938,16 @@
|
|
|
43583
43938
|
"words": true
|
|
43584
43939
|
}
|
|
43585
43940
|
},
|
|
43941
|
+
{
|
|
43942
|
+
"kind": "field",
|
|
43943
|
+
"name": "errorText",
|
|
43944
|
+
"type": {
|
|
43945
|
+
"text": "string"
|
|
43946
|
+
},
|
|
43947
|
+
"default": "''",
|
|
43948
|
+
"description": "The text shown and announced when the rows could not load, such as \"The\nfiles did not load\". Set it when a fetch fails, and clear it once you try\nagain. Empty, the default, shows nothing.\n\nWhile it is set, a line after the rows shows it, or your own content in the\n`error` slot, in place of the empty and loading lines, and the live region\nsays it.",
|
|
43949
|
+
"attribute": "error-text"
|
|
43950
|
+
},
|
|
43586
43951
|
{
|
|
43587
43952
|
"kind": "field",
|
|
43588
43953
|
"name": "estimate",
|
|
@@ -45506,6 +45871,17 @@
|
|
|
45506
45871
|
],
|
|
45507
45872
|
"description": "The row after the last one, holding the button that asks for more rows.\n\nA row of the grid, one cell spanning every column, so the arrows reach it\nafter the last row and Enter or Space on it asks."
|
|
45508
45873
|
},
|
|
45874
|
+
{
|
|
45875
|
+
"kind": "method",
|
|
45876
|
+
"name": "renderError",
|
|
45877
|
+
"privacy": "private",
|
|
45878
|
+
"return": {
|
|
45879
|
+
"type": {
|
|
45880
|
+
"text": "TemplateResult"
|
|
45881
|
+
}
|
|
45882
|
+
},
|
|
45883
|
+
"description": "The line shown while `error-text` is set: a row holding one cell, as the\nempty and loading lines are, since a grid holds rows and nothing else."
|
|
45884
|
+
},
|
|
45509
45885
|
{
|
|
45510
45886
|
"kind": "field",
|
|
45511
45887
|
"name": "notePress",
|
|
@@ -46612,6 +46988,15 @@
|
|
|
46612
46988
|
"description": "What screen readers hear when a row is dropped, with `reorderable-rows`.",
|
|
46613
46989
|
"fieldName": "droppedLabel"
|
|
46614
46990
|
},
|
|
46991
|
+
{
|
|
46992
|
+
"name": "error-text",
|
|
46993
|
+
"type": {
|
|
46994
|
+
"text": "string"
|
|
46995
|
+
},
|
|
46996
|
+
"default": "''",
|
|
46997
|
+
"description": "The text shown and announced when the rows could not load, such as \"The\nfiles did not load\". Set it when a fetch fails, and clear it once you try\nagain. Empty, the default, shows nothing.\n\nWhile it is set, a line after the rows shows it, or your own content in the\n`error` slot, in place of the empty and loading lines, and the live region\nsays it.",
|
|
46998
|
+
"fieldName": "errorText"
|
|
46999
|
+
},
|
|
46615
47000
|
{
|
|
46616
47001
|
"name": "estimate",
|
|
46617
47002
|
"type": {
|
|
@@ -46976,6 +47361,24 @@
|
|
|
46976
47361
|
}
|
|
46977
47362
|
}
|
|
46978
47363
|
],
|
|
47364
|
+
"cssStates": [
|
|
47365
|
+
{
|
|
47366
|
+
"description": "While there are no rows to show and none are loading.",
|
|
47367
|
+
"name": "empty"
|
|
47368
|
+
},
|
|
47369
|
+
{
|
|
47370
|
+
"description": "While `error-text` is set.",
|
|
47371
|
+
"name": "error"
|
|
47372
|
+
},
|
|
47373
|
+
{
|
|
47374
|
+
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
47375
|
+
"name": "settled",
|
|
47376
|
+
"inheritedFrom": {
|
|
47377
|
+
"name": "HelixElement",
|
|
47378
|
+
"module": "src/helix-element/helix-element.ts"
|
|
47379
|
+
}
|
|
47380
|
+
}
|
|
47381
|
+
],
|
|
46979
47382
|
"mixins": [
|
|
46980
47383
|
{
|
|
46981
47384
|
"name": "MixinCollection",
|
|
@@ -47015,16 +47418,6 @@
|
|
|
47015
47418
|
},
|
|
47016
47419
|
"tagName": "helix-headless-data-table",
|
|
47017
47420
|
"customElement": true,
|
|
47018
|
-
"cssStates": [
|
|
47019
|
-
{
|
|
47020
|
-
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
47021
|
-
"name": "settled",
|
|
47022
|
-
"inheritedFrom": {
|
|
47023
|
-
"name": "HelixElement",
|
|
47024
|
-
"module": "src/helix-element/helix-element.ts"
|
|
47025
|
-
}
|
|
47026
|
-
}
|
|
47027
|
-
],
|
|
47028
47421
|
"modulePath": "src/data-table/root/data-table-root.ts",
|
|
47029
47422
|
"definitionPath": "src/data-table/root/data-table-root.ts"
|
|
47030
47423
|
}
|
|
@@ -47147,7 +47540,7 @@
|
|
|
47147
47540
|
"declarations": [
|
|
47148
47541
|
{
|
|
47149
47542
|
"kind": "class",
|
|
47150
|
-
"description": "The calendar is `DatePicker`, which handles months, ranges, disabled days,\nthe first day of the week, and the grid's keyboard behavior. The date input\nadds the field, the overlay, and the connection between them.\n\nYou can type a date as well as pick one. The native `<input type=\"date\">`\ngives a picker and locale formatting but allows almost no styling, so the\nfield is a text field. Typing sends `input` on each keystroke and `change`\nwhen you leave the field, as a text field does. A date picked from the\ncalendar sends both.\n\nThe trigger and ArrowDown open the calendar with focus on the selected day,\nTab moves between the calendar's controls without leaving it, and Escape\ncloses it and returns focus to the field. A press into the field opens the\ncalendar too. Tab into the field opens nothing, and Tab out of the field\ncloses the calendar.\n\nWith `segmented`, the field is a row of segments in place of the text: a\nmonth, a day and a year in the order the locale writes them, each set with\ndigits or the arrow keys. Alt+Down opens the calendar from a segment.",
|
|
47543
|
+
"description": "The calendar is `DatePicker`, which handles months, ranges, disabled days,\nthe first day of the week, and the grid's keyboard behavior. The date input\nadds the field, the overlay, and the connection between them.\n\nYou can type a date as well as pick one. The native `<input type=\"date\">`\ngives a picker and locale formatting but allows almost no styling, so the\nfield is a text field. Typing sends `input` on each keystroke and `change`\nwhen you leave the field, as a text field does. A date picked from the\ncalendar sends both.\n\nThe trigger and ArrowDown open the calendar with focus on the selected day,\nTab moves between the calendar's controls without leaving it, and Escape\ncloses it and returns focus to the field. A press into the field opens the\ncalendar too. Tab into the field opens nothing, and Tab out of the field\ncloses the calendar.\n\nWith `segmented`, the field is a row of segments in place of the text: a\nmonth, a day and a year in the order the locale writes them, each set with\ndigits or the arrow keys. Alt+Down opens the calendar from a segment.\n\nText that is not a date gives the form an empty value, as a native date\nfield does, and `value` keeps the text so it can be corrected.\n\n**Keyboard.** The field is one tab stop, or each segment is with\n`segmented`, and the trigger is one more.\n\n| Key | What it does |\n|---|---|\n| Down | In the text field, opens the calendar with focus on the chosen day. |\n| Alt with Down | Opens the calendar, from the text field or a segment. |\n| Enter | In the text field, takes the typed date and submits the form, as a native field does. |\n| Escape | Closes the calendar and puts focus back in the field. |\n| Tab | In the open calendar, moves between its controls. Out of the field, closes it. |\n| Up, Down on a segment | Steps the segment by one, round from its last value to its first. |\n| Page Up, Page Down on a segment | Steps by a page: a week of days, two months, or five years. |\n| Home, End on a segment | Goes to the segment's first or last value. |\n| Digits on a segment | Fill it, and move to the next once it can take no more. |\n| Backspace, Delete on a segment | Empty the segment. |\n| Left, Right on a segment | Move to the previous or the next segment, along the line of text. |\n\nIn the calendar, the keys are `DatePicker`'s: the arrows move by a day or a\nweek, Page Up and Page Down by a month, with Shift by a year, and Home and\nEnd to the start and the end of the week.",
|
|
47151
47544
|
"name": "HelixHeadlessDateInput",
|
|
47152
47545
|
"cssParts": [
|
|
47153
47546
|
{
|
|
@@ -47356,6 +47749,10 @@
|
|
|
47356
47749
|
}
|
|
47357
47750
|
],
|
|
47358
47751
|
"slots": [
|
|
47752
|
+
{
|
|
47753
|
+
"description": "Content after the date, before the trigger, such as a clear button.",
|
|
47754
|
+
"name": "end"
|
|
47755
|
+
},
|
|
47359
47756
|
{
|
|
47360
47757
|
"description": "The error message under the field.",
|
|
47361
47758
|
"name": "feedback"
|
|
@@ -47384,6 +47781,10 @@
|
|
|
47384
47781
|
"description": "The icon on the calendar's previous month control.",
|
|
47385
47782
|
"name": "previous-icon"
|
|
47386
47783
|
},
|
|
47784
|
+
{
|
|
47785
|
+
"description": "Content before the date, such as an icon.",
|
|
47786
|
+
"name": "start"
|
|
47787
|
+
},
|
|
47387
47788
|
{
|
|
47388
47789
|
"description": "The icon on the button that opens the calendar.",
|
|
47389
47790
|
"name": "trigger"
|
|
@@ -47966,7 +48367,7 @@
|
|
|
47966
48367
|
"text": "readonly string[] | undefined"
|
|
47967
48368
|
},
|
|
47968
48369
|
"privacy": "protected",
|
|
47969
|
-
"description": "Each date, where `mode` holds several, sent one entry each.",
|
|
48370
|
+
"description": "Each date, where `mode` holds several, sent one entry each.\n\nOne date that is text and no date, such as `August 5`, is sent as an empty\nentry, as a native date field sends a date it cannot read.",
|
|
47970
48371
|
"readonly": true,
|
|
47971
48372
|
"inheritedFrom": {
|
|
47972
48373
|
"name": "MixinPickerField",
|
|
@@ -49314,6 +49715,21 @@
|
|
|
49314
49715
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
49315
49716
|
}
|
|
49316
49717
|
},
|
|
49718
|
+
{
|
|
49719
|
+
"kind": "field",
|
|
49720
|
+
"name": "namedBy",
|
|
49721
|
+
"type": {
|
|
49722
|
+
"text": "string | null"
|
|
49723
|
+
},
|
|
49724
|
+
"privacy": "protected",
|
|
49725
|
+
"default": "null",
|
|
49726
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
49727
|
+
"attribute": "aria-label",
|
|
49728
|
+
"inheritedFrom": {
|
|
49729
|
+
"name": "MixinField",
|
|
49730
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
49731
|
+
}
|
|
49732
|
+
},
|
|
49317
49733
|
{
|
|
49318
49734
|
"kind": "field",
|
|
49319
49735
|
"name": "labeled",
|
|
@@ -50913,6 +51329,8 @@
|
|
|
50913
51329
|
"text": "string | null"
|
|
50914
51330
|
},
|
|
50915
51331
|
"default": "null",
|
|
51332
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
51333
|
+
"fieldName": "namedBy",
|
|
50916
51334
|
"inheritedFrom": {
|
|
50917
51335
|
"name": "MixinField",
|
|
50918
51336
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
@@ -62087,6 +62505,21 @@
|
|
|
62087
62505
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
62088
62506
|
}
|
|
62089
62507
|
},
|
|
62508
|
+
{
|
|
62509
|
+
"kind": "field",
|
|
62510
|
+
"name": "namedBy",
|
|
62511
|
+
"type": {
|
|
62512
|
+
"text": "string | null"
|
|
62513
|
+
},
|
|
62514
|
+
"privacy": "protected",
|
|
62515
|
+
"default": "null",
|
|
62516
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
62517
|
+
"attribute": "aria-label",
|
|
62518
|
+
"inheritedFrom": {
|
|
62519
|
+
"name": "MixinField",
|
|
62520
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
62521
|
+
}
|
|
62522
|
+
},
|
|
62090
62523
|
{
|
|
62091
62524
|
"kind": "field",
|
|
62092
62525
|
"name": "labeled",
|
|
@@ -63331,6 +63764,8 @@
|
|
|
63331
63764
|
"text": "string | null"
|
|
63332
63765
|
},
|
|
63333
63766
|
"default": "null",
|
|
63767
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
63768
|
+
"fieldName": "namedBy",
|
|
63334
63769
|
"inheritedFrom": {
|
|
63335
63770
|
"name": "MixinField",
|
|
63336
63771
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
@@ -67412,6 +67847,21 @@
|
|
|
67412
67847
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
67413
67848
|
}
|
|
67414
67849
|
},
|
|
67850
|
+
{
|
|
67851
|
+
"kind": "field",
|
|
67852
|
+
"name": "namedBy",
|
|
67853
|
+
"type": {
|
|
67854
|
+
"text": "string | null"
|
|
67855
|
+
},
|
|
67856
|
+
"privacy": "protected",
|
|
67857
|
+
"default": "null",
|
|
67858
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
67859
|
+
"attribute": "aria-label",
|
|
67860
|
+
"inheritedFrom": {
|
|
67861
|
+
"name": "MixinField",
|
|
67862
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
67863
|
+
}
|
|
67864
|
+
},
|
|
67415
67865
|
{
|
|
67416
67866
|
"kind": "field",
|
|
67417
67867
|
"name": "labeled",
|
|
@@ -68745,6 +69195,8 @@
|
|
|
68745
69195
|
"text": "string | null"
|
|
68746
69196
|
},
|
|
68747
69197
|
"default": "null",
|
|
69198
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
69199
|
+
"fieldName": "namedBy",
|
|
68748
69200
|
"inheritedFrom": {
|
|
68749
69201
|
"name": "MixinField",
|
|
68750
69202
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
@@ -70551,6 +71003,10 @@
|
|
|
70551
71003
|
"description": "How many notes the list holds, which a search narrows, at the end of the search bar.",
|
|
70552
71004
|
"name": "count"
|
|
70553
71005
|
},
|
|
71006
|
+
{
|
|
71007
|
+
"description": "The box in place of the list when it holds no notes, holding the `empty` slot.",
|
|
71008
|
+
"name": "empty"
|
|
71009
|
+
},
|
|
70554
71010
|
{
|
|
70555
71011
|
"description": "The icon beside the search field.",
|
|
70556
71012
|
"name": "filter-icon"
|
|
@@ -70685,6 +71141,10 @@
|
|
|
70685
71141
|
"description": "The renderer's box, which the drawing is made in.",
|
|
70686
71142
|
"name": ""
|
|
70687
71143
|
},
|
|
71144
|
+
{
|
|
71145
|
+
"description": "What the panel shows when the list holds no notes. Defaults to `empty-label`.",
|
|
71146
|
+
"name": "empty"
|
|
71147
|
+
},
|
|
70688
71148
|
{
|
|
70689
71149
|
"description": "The icon in the search field. Defaults to a magnifying glass.",
|
|
70690
71150
|
"name": "filter-icon"
|
|
@@ -70797,6 +71257,19 @@
|
|
|
70797
71257
|
"description": "How many links from the selected note to show, for its local graph. Unset\nshows every note. The list holds what the drawing shows.",
|
|
70798
71258
|
"attribute": "depth"
|
|
70799
71259
|
},
|
|
71260
|
+
{
|
|
71261
|
+
"kind": "field",
|
|
71262
|
+
"name": "emptyLabel",
|
|
71263
|
+
"type": {
|
|
71264
|
+
"text": "string"
|
|
71265
|
+
},
|
|
71266
|
+
"default": "'No notes'",
|
|
71267
|
+
"description": "What the panel shows when the list holds no notes: the graph has none, or\na search or the legend hid them all. A slotted `empty` replaces it.",
|
|
71268
|
+
"attribute": "empty-label",
|
|
71269
|
+
"helix": {
|
|
71270
|
+
"words": true
|
|
71271
|
+
}
|
|
71272
|
+
},
|
|
70800
71273
|
{
|
|
70801
71274
|
"kind": "field",
|
|
70802
71275
|
"name": "fallbackLabel",
|
|
@@ -70985,6 +71458,19 @@
|
|
|
70985
71458
|
"words": true
|
|
70986
71459
|
}
|
|
70987
71460
|
},
|
|
71461
|
+
{
|
|
71462
|
+
"kind": "field",
|
|
71463
|
+
"name": "roleLabel",
|
|
71464
|
+
"type": {
|
|
71465
|
+
"text": "string"
|
|
71466
|
+
},
|
|
71467
|
+
"default": "'graph'",
|
|
71468
|
+
"description": "What a screen reader calls the graph in place of its role, after its\nname: \"Research notes, graph\". Said only where the graph has a name of its\nown, since the fallback name is the same word. Empty leaves the role.",
|
|
71469
|
+
"attribute": "role-label",
|
|
71470
|
+
"helix": {
|
|
71471
|
+
"words": true
|
|
71472
|
+
}
|
|
71473
|
+
},
|
|
70988
71474
|
{
|
|
70989
71475
|
"kind": "field",
|
|
70990
71476
|
"name": "searchLabel",
|
|
@@ -72900,6 +73386,15 @@
|
|
|
72900
73386
|
"description": "How many links from the selected note to show, for its local graph. Unset\nshows every note. The list holds what the drawing shows.",
|
|
72901
73387
|
"fieldName": "depth"
|
|
72902
73388
|
},
|
|
73389
|
+
{
|
|
73390
|
+
"name": "empty-label",
|
|
73391
|
+
"type": {
|
|
73392
|
+
"text": "string"
|
|
73393
|
+
},
|
|
73394
|
+
"default": "'No notes'",
|
|
73395
|
+
"description": "What the panel shows when the list holds no notes: the graph has none, or\na search or the legend hid them all. A slotted `empty` replaces it.",
|
|
73396
|
+
"fieldName": "emptyLabel"
|
|
73397
|
+
},
|
|
72903
73398
|
{
|
|
72904
73399
|
"name": "fallback-label",
|
|
72905
73400
|
"type": {
|
|
@@ -73017,6 +73512,15 @@
|
|
|
73017
73512
|
"description": "The list's name, read by screen readers, and the name of the button that opens it with `no-panel`.",
|
|
73018
73513
|
"fieldName": "notesLabel"
|
|
73019
73514
|
},
|
|
73515
|
+
{
|
|
73516
|
+
"name": "role-label",
|
|
73517
|
+
"type": {
|
|
73518
|
+
"text": "string"
|
|
73519
|
+
},
|
|
73520
|
+
"default": "'graph'",
|
|
73521
|
+
"description": "What a screen reader calls the graph in place of its role, after its\nname: \"Research notes, graph\". Said only where the graph has a name of its\nown, since the fallback name is the same word. Empty leaves the role.",
|
|
73522
|
+
"fieldName": "roleLabel"
|
|
73523
|
+
},
|
|
73020
73524
|
{
|
|
73021
73525
|
"name": "search-label",
|
|
73022
73526
|
"type": {
|
|
@@ -80294,6 +80798,21 @@
|
|
|
80294
80798
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
80295
80799
|
}
|
|
80296
80800
|
},
|
|
80801
|
+
{
|
|
80802
|
+
"kind": "field",
|
|
80803
|
+
"name": "namedBy",
|
|
80804
|
+
"type": {
|
|
80805
|
+
"text": "string | null"
|
|
80806
|
+
},
|
|
80807
|
+
"privacy": "protected",
|
|
80808
|
+
"default": "null",
|
|
80809
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
80810
|
+
"attribute": "aria-label",
|
|
80811
|
+
"inheritedFrom": {
|
|
80812
|
+
"name": "MixinField",
|
|
80813
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
80814
|
+
}
|
|
80815
|
+
},
|
|
80297
80816
|
{
|
|
80298
80817
|
"kind": "field",
|
|
80299
80818
|
"name": "labeled",
|
|
@@ -81591,6 +82110,8 @@
|
|
|
81591
82110
|
"text": "string | null"
|
|
81592
82111
|
},
|
|
81593
82112
|
"default": "null",
|
|
82113
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
82114
|
+
"fieldName": "namedBy",
|
|
81594
82115
|
"inheritedFrom": {
|
|
81595
82116
|
"name": "MixinField",
|
|
81596
82117
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
@@ -88559,7 +89080,7 @@
|
|
|
88559
89080
|
"declarations": [
|
|
88560
89081
|
{
|
|
88561
89082
|
"kind": "class",
|
|
88562
|
-
"description": "Sets `role=\"list\"` on the host, so a screen reader counts the rows and\nannounces each one's position, such as \"1 of 7\".\n\n**`selection-mode` makes the list interactive**, in the way of a grid list:\na grid of rows that is one tab stop. `single` selects one row at a time and\n`multiple` any number, and `value` holds the selected rows' values,\nseparated by commas. A change asks with `helix-before-change` and tells\nwith `change`. `none` selects nothing, so a press acts on the row. A\n`disabled` row is passed over. Each row is named by its label and described\nby its description, so the words of the controls in `end` are not read as\npart of its name.\n\n`selection-behavior` says what a press does to the rows already selected.\n`toggle`, the default, adds or takes out the row. `replace` selects the row\nalone, as a file list does, and the arrow keys carry the selection with\nthem. Control or Command with a press then adds or takes out one row.\n\n| Key | What it does |\n|---|---|\n| Down, Up | Moves to the next or the previous row. Under `replace`, selects it. |\n| Home, End | Moves to the first or the last row. Under `replace`, selects it. |\n| Page Down, Page Up | Moves a box's height of rows, so the row at one edge lands at the other. Under `replace`, selects the row it lands on. |\n| A letter or a word | Moves to the next row whose words start with what you typed. |\n| Left, Right | Moves between the row and the controls in its `end` slot. |\n| Space | Selects the row, or lets it go. |\n| Shift with Down, Up, Home, End, Page Down, Page Up or Space | Selects every row from the last one pressed, in `multiple`. |\n| Control or Command with Down, Up, Home, End, Page Down or Page Up | Moves without selecting, under `replace`. |\n| Control or Command with A | Selects every row, in `multiple`. |\n| Escape | Lets go of every selected row, asking first, and keeps the key from the dialog or menu around the list. With nothing selected, the key goes on to them. |\n| Enter | Acts on the row: follows its link, or sends `helix-action` from it. |\n\nA press with Shift selects every row from the last one pressed, and a press\nwith Control or Command adds or takes out one row under `replace`.\n\n**Leave `selection-mode` unset for a list a reader reads**, and set it for\none a reader chooses from or acts on. The rows of an interactive list are\ngrid rows, which hold controls as a list box option cannot. Give a control\nin `end` `tabindex=\"-1\"` to leave it to the arrow keys and out of the tab\norder.\n\n**`reorderable` lets you move rows.** Each row gets a grip after its `end`\nslot, named by `move-label`. Drag a grip to move its row, and the list\nscrolls near an edge. Or press a grip with Space, Enter, or a click to pick\nup its row, move it with the arrow keys, and press the grip again to drop\nit. A click on another row drops it there, and Escape puts it back. The list\nsays each step in its `live` region. A drop sends `helix-before-reorder`,\nwhich you can refuse, and then `helix-reorder`, whose `keys` hold every\nrow's value in the new order. **You move the rows**: the list moves no\nelement of yours, so your framework keeps the order it rendered.\n\n| Key, on a held row's grip | What it does |\n|---|---|\n| Down, Up | Moves the row one place. |\n| Home, End | Moves the row to the top or the bottom. |\n| Space, Enter | Drops the row. |\n| Escape | Puts the row back where it was. |\n\n`start` and `reversed` number an ordered list as `<ol>` does. The list\nwrites where the numbers start and which way they run as `--list-first` and\n`--list-step` on its slot, which the styled tier counts from. Reversed with\nno `start` counts down from the number of rows, which a server cannot know,\nso served markup counts from one until the list runs.",
|
|
89083
|
+
"description": "Sets `role=\"list\"` on the host, so a screen reader counts the rows and\nannounces each one's position, such as \"1 of 7\".\n\n**`selection-mode` makes the list interactive**, in the way of a grid list:\na grid of rows that is one tab stop. `single` selects one row at a time and\n`multiple` any number, and `value` holds the selected rows' values,\nseparated by commas. A change asks with `helix-before-change` and tells\nwith `change`. `none` selects nothing, so a press acts on the row. A\n`disabled` row is passed over. Each row is named by its label and described\nby its description, so the words of the controls in `end` are not read as\npart of its name.\n\n`selection-behavior` says what a press does to the rows already selected.\n`toggle`, the default, adds or takes out the row. `replace` selects the row\nalone, as a file list does, and the arrow keys carry the selection with\nthem. Control or Command with a press then adds or takes out one row.\n\n| Key | What it does |\n|---|---|\n| Down, Up | Moves to the next or the previous row. Under `replace`, selects it. |\n| Home, End | Moves to the first or the last row. Under `replace`, selects it. |\n| Page Down, Page Up | Moves a box's height of rows, so the row at one edge lands at the other. Under `replace`, selects the row it lands on. |\n| A letter or a word | Moves to the next row whose words start with what you typed. |\n| Left, Right | Moves between the row and the controls in its `end` slot. |\n| Space | Selects the row, or lets it go. |\n| Shift with Down, Up, Home, End, Page Down, Page Up or Space | Selects every row from the last one pressed, in `multiple`. |\n| Control or Command with Down, Up, Home, End, Page Down or Page Up | Moves without selecting, under `replace`. |\n| Control or Command with A | Selects every row, in `multiple`. |\n| Escape | Lets go of every selected row, asking first, and keeps the key from the dialog or menu around the list. With nothing selected, the key goes on to them. |\n| Enter | Acts on the row: follows its link, or sends `helix-action` from it. |\n\nA press with Shift selects every row from the last one pressed, and a press\nwith Control or Command adds or takes out one row under `replace`.\n\n**Leave `selection-mode` unset for a list a reader reads**, and set it for\none a reader chooses from or acts on. The rows of an interactive list are\ngrid rows, which hold controls as a list box option cannot. Give a control\nin `end` `tabindex=\"-1\"` to leave it to the arrow keys and out of the tab\norder.\n\n**`reorderable` lets you move rows.** Each row gets a grip after its `end`\nslot, named by `move-label`. Drag a grip to move its row, and the list\nscrolls near an edge. Or press a grip with Space, Enter, or a click to pick\nup its row, move it with the arrow keys, and press the grip again to drop\nit. A click on another row drops it there, and Escape puts it back. The list\nsays each step in its `live` region. A drop sends `helix-before-reorder`,\nwhich you can refuse, and then `helix-reorder`, whose `keys` hold every\nrow's value in the new order. **You move the rows**: the list moves no\nelement of yours, so your framework keeps the order it rendered.\n\n| Key, on a held row's grip | What it does |\n|---|---|\n| Down, Up | Moves the row one place. |\n| Home, End | Moves the row to the top or the bottom. |\n| Space, Enter | Drops the row. |\n| Escape | Puts the row back where it was. |\n\n`start` and `reversed` number an ordered list as `<ol>` does. The list\nwrites where the numbers start and which way they run as `--list-first` and\n`--list-step` on its slot, which the styled tier counts from. Reversed with\nno `start` counts down from the number of rows, which a server cannot know,\nso served markup counts from one until the list runs.\n\n**An empty list.** Set `empty-label`, or put your own content in the `empty`\nslot, for a row shown while the list has no rows and none are loading, such\nas \"No files yet\" and a link to add one. Without either, an empty list shows\nnothing. The list takes the `empty` state while it has no rows, whatever it\nshows.\n\n**Loading more.** `load-more` sends `helix-load-more` once the end of the\nlist comes within a screen of view, in the box that scrolls it or the page,\nonce for each number of rows: add rows and it can send it again. While you\nfetch, set `loading`: the list is busy, and a row after the last says\n\"Loading more\" (`loading-label`, or your own content in the `loading`\nslot). The list asks for nothing while `loading` is set.\n\nAn interactive list with no name is reported once in a development build,\nsince a screen reader announces it as a grid and nothing more. Name it with\n`label` or `aria-label`.",
|
|
88563
89084
|
"name": "HelixHeadlessList",
|
|
88564
89085
|
"cssProperties": [
|
|
88565
89086
|
{
|
|
@@ -88576,15 +89097,31 @@
|
|
|
88576
89097
|
"description": "A copy of the row a pointer drags, which follows the pointer in the top layer until the row is let go, in a `reorderable` list. Hidden from assistive technology.",
|
|
88577
89098
|
"name": "drag-preview"
|
|
88578
89099
|
},
|
|
89100
|
+
{
|
|
89101
|
+
"description": "The row shown while the list has no rows and none are loading, where `empty-label` or the `empty` slot gives it content. A grid row with one cell in a list that selects.",
|
|
89102
|
+
"name": "empty"
|
|
89103
|
+
},
|
|
88579
89104
|
{
|
|
88580
89105
|
"description": "The region that says each step of a move to screen readers, in a `reorderable` list. Drawn from the first move. Visually hidden in the styled tier.",
|
|
88581
89106
|
"name": "live"
|
|
89107
|
+
},
|
|
89108
|
+
{
|
|
89109
|
+
"description": "The row after the last while `loading` is set. A grid row with one cell in a list that selects.",
|
|
89110
|
+
"name": "loading"
|
|
88582
89111
|
}
|
|
88583
89112
|
],
|
|
88584
89113
|
"slots": [
|
|
88585
89114
|
{
|
|
88586
89115
|
"description": "The rows.",
|
|
88587
89116
|
"name": ""
|
|
89117
|
+
},
|
|
89118
|
+
{
|
|
89119
|
+
"description": "Content for the row shown while the list has no rows and none are loading. Falls back to `empty-label`.",
|
|
89120
|
+
"name": "empty"
|
|
89121
|
+
},
|
|
89122
|
+
{
|
|
89123
|
+
"description": "Content for the row after the last while `loading` is set. Falls back to `loading-label`.",
|
|
89124
|
+
"name": "loading"
|
|
88588
89125
|
}
|
|
88589
89126
|
],
|
|
88590
89127
|
"members": [
|
|
@@ -88624,6 +89161,16 @@
|
|
|
88624
89161
|
"words": true
|
|
88625
89162
|
}
|
|
88626
89163
|
},
|
|
89164
|
+
{
|
|
89165
|
+
"kind": "field",
|
|
89166
|
+
"name": "emptyLabel",
|
|
89167
|
+
"type": {
|
|
89168
|
+
"text": "string"
|
|
89169
|
+
},
|
|
89170
|
+
"default": "''",
|
|
89171
|
+
"description": "The text of the row shown while the list has no rows, where the `empty`\nslot is empty. Empty, the default, shows no row.",
|
|
89172
|
+
"attribute": "empty-label"
|
|
89173
|
+
},
|
|
88627
89174
|
{
|
|
88628
89175
|
"kind": "field",
|
|
88629
89176
|
"name": "kind",
|
|
@@ -88644,6 +89191,39 @@
|
|
|
88644
89191
|
"description": "The list's name, read by screen readers.",
|
|
88645
89192
|
"attribute": "label"
|
|
88646
89193
|
},
|
|
89194
|
+
{
|
|
89195
|
+
"kind": "field",
|
|
89196
|
+
"name": "loading",
|
|
89197
|
+
"type": {
|
|
89198
|
+
"text": "boolean"
|
|
89199
|
+
},
|
|
89200
|
+
"default": "false",
|
|
89201
|
+
"description": "Marks the list as busy fetching more rows, and draws a row after the last\nthat says so. The list asks for no more while it is set.",
|
|
89202
|
+
"attribute": "loading"
|
|
89203
|
+
},
|
|
89204
|
+
{
|
|
89205
|
+
"kind": "field",
|
|
89206
|
+
"name": "loadingLabel",
|
|
89207
|
+
"type": {
|
|
89208
|
+
"text": "string"
|
|
89209
|
+
},
|
|
89210
|
+
"default": "'Loading more'",
|
|
89211
|
+
"description": "The text of the row drawn while `loading` is set, where the `loading` slot is empty.",
|
|
89212
|
+
"attribute": "loading-label",
|
|
89213
|
+
"helix": {
|
|
89214
|
+
"words": true
|
|
89215
|
+
}
|
|
89216
|
+
},
|
|
89217
|
+
{
|
|
89218
|
+
"kind": "field",
|
|
89219
|
+
"name": "loadMore",
|
|
89220
|
+
"type": {
|
|
89221
|
+
"text": "boolean"
|
|
89222
|
+
},
|
|
89223
|
+
"default": "false",
|
|
89224
|
+
"description": "Sends `helix-load-more` once the end of the list comes within a screen of\nview, so you can add the next rows as a reader nears them.",
|
|
89225
|
+
"attribute": "load-more"
|
|
89226
|
+
},
|
|
88647
89227
|
{
|
|
88648
89228
|
"kind": "field",
|
|
88649
89229
|
"name": "movedLabel",
|
|
@@ -88748,7 +89328,7 @@
|
|
|
88748
89328
|
"text": "string"
|
|
88749
89329
|
},
|
|
88750
89330
|
"default": "''",
|
|
88751
|
-
"description": "The selected rows' values, separated by commas, in a list that selects.\n\nSet it to start with rows selected. A row's value is its `value`, or its\nwords where it has none.",
|
|
89331
|
+
"description": "The selected rows' values, separated by commas with no spaces, such as `a,c`, in a list that selects.\n\nSet it to start with rows selected. A row's value is its `value`, or its\nwords where it has none.",
|
|
88752
89332
|
"attribute": "value"
|
|
88753
89333
|
},
|
|
88754
89334
|
{
|
|
@@ -89190,6 +89770,93 @@
|
|
|
89190
89770
|
"description": "Where the numbers start and which way they run, as custom properties on\nthe slot the rows inherit from, or nothing where they count up from one.",
|
|
89191
89771
|
"readonly": true
|
|
89192
89772
|
},
|
|
89773
|
+
{
|
|
89774
|
+
"kind": "method",
|
|
89775
|
+
"name": "drawEmpty",
|
|
89776
|
+
"privacy": "private",
|
|
89777
|
+
"return": {
|
|
89778
|
+
"type": {
|
|
89779
|
+
"text": "TemplateResult | typeof nothing"
|
|
89780
|
+
}
|
|
89781
|
+
},
|
|
89782
|
+
"description": "The row shown while the list has no rows: a list item, or a grid row with\none cell in a list that selects. Drawn only once the children are known,\nso a server and a hydrating render never claim an empty list, and hidden\nwhile it has neither `empty-label` nor content in the `empty` slot."
|
|
89783
|
+
},
|
|
89784
|
+
{
|
|
89785
|
+
"kind": "method",
|
|
89786
|
+
"name": "drawLoading",
|
|
89787
|
+
"privacy": "private",
|
|
89788
|
+
"return": {
|
|
89789
|
+
"type": {
|
|
89790
|
+
"text": "TemplateResult | typeof nothing"
|
|
89791
|
+
}
|
|
89792
|
+
},
|
|
89793
|
+
"description": "The row after the last while `loading` is set: a list item, or a grid row\nwith one cell in a list that selects. It is not one of the rows, so it\ncarries no value and a key never lands on it."
|
|
89794
|
+
},
|
|
89795
|
+
{
|
|
89796
|
+
"kind": "field",
|
|
89797
|
+
"name": "endWatcher",
|
|
89798
|
+
"type": {
|
|
89799
|
+
"text": "IntersectionObserver | undefined"
|
|
89800
|
+
},
|
|
89801
|
+
"privacy": "private",
|
|
89802
|
+
"description": "Watches the end of a `load-more` list coming near the box that scrolls it."
|
|
89803
|
+
},
|
|
89804
|
+
{
|
|
89805
|
+
"kind": "field",
|
|
89806
|
+
"name": "watchedEnd",
|
|
89807
|
+
"type": {
|
|
89808
|
+
"text": "Element | undefined"
|
|
89809
|
+
},
|
|
89810
|
+
"privacy": "private",
|
|
89811
|
+
"description": "The end being watched, so a new one is watched again."
|
|
89812
|
+
},
|
|
89813
|
+
{
|
|
89814
|
+
"kind": "field",
|
|
89815
|
+
"name": "endInView",
|
|
89816
|
+
"type": {
|
|
89817
|
+
"text": "boolean"
|
|
89818
|
+
},
|
|
89819
|
+
"privacy": "private",
|
|
89820
|
+
"default": "false",
|
|
89821
|
+
"description": "Whether the end of the list was in reach when last measured."
|
|
89822
|
+
},
|
|
89823
|
+
{
|
|
89824
|
+
"kind": "field",
|
|
89825
|
+
"name": "askedAt",
|
|
89826
|
+
"type": {
|
|
89827
|
+
"text": "number | undefined"
|
|
89828
|
+
},
|
|
89829
|
+
"privacy": "private",
|
|
89830
|
+
"description": "The number of rows `helix-load-more` was last sent for."
|
|
89831
|
+
},
|
|
89832
|
+
{
|
|
89833
|
+
"kind": "method",
|
|
89834
|
+
"name": "watchEnd",
|
|
89835
|
+
"privacy": "private",
|
|
89836
|
+
"return": {
|
|
89837
|
+
"type": {
|
|
89838
|
+
"text": "void"
|
|
89839
|
+
}
|
|
89840
|
+
},
|
|
89841
|
+
"description": "Starts or stops watching the end of the list. The box it is measured\nagainst is the one that scrolls the list, or the page, and a screen of\nroom is added below it, so the next rows are asked for before a reader\nreaches the last."
|
|
89842
|
+
},
|
|
89843
|
+
{
|
|
89844
|
+
"kind": "method",
|
|
89845
|
+
"name": "askForMore",
|
|
89846
|
+
"privacy": "private",
|
|
89847
|
+
"return": {
|
|
89848
|
+
"type": {
|
|
89849
|
+
"text": "void"
|
|
89850
|
+
}
|
|
89851
|
+
},
|
|
89852
|
+
"description": "Sends `helix-load-more`, once for each number of rows, and never while loading."
|
|
89853
|
+
},
|
|
89854
|
+
{
|
|
89855
|
+
"kind": "field",
|
|
89856
|
+
"name": "handleEmptyChange",
|
|
89857
|
+
"privacy": "private",
|
|
89858
|
+
"readonly": true
|
|
89859
|
+
},
|
|
89193
89860
|
{
|
|
89194
89861
|
"kind": "field",
|
|
89195
89862
|
"name": "handleSlotChange",
|
|
@@ -89569,6 +90236,14 @@
|
|
|
89569
90236
|
"name": "helix-before-reorder",
|
|
89570
90237
|
"reactProp": "onhelix-before-reorder"
|
|
89571
90238
|
},
|
|
90239
|
+
{
|
|
90240
|
+
"type": {
|
|
90241
|
+
"text": "HelixLoadMoreEvent"
|
|
90242
|
+
},
|
|
90243
|
+
"description": "Fired, in a list with `load-more`, when the end of the list comes within a screen of view, once for each number of rows.",
|
|
90244
|
+
"name": "helix-load-more",
|
|
90245
|
+
"reactProp": "onhelix-load-more"
|
|
90246
|
+
},
|
|
89572
90247
|
{
|
|
89573
90248
|
"type": {
|
|
89574
90249
|
"text": "HelixReorderEvent"
|
|
@@ -89597,6 +90272,15 @@
|
|
|
89597
90272
|
"description": "What screen readers hear when a row is dropped, in a `reorderable` list.",
|
|
89598
90273
|
"fieldName": "droppedLabel"
|
|
89599
90274
|
},
|
|
90275
|
+
{
|
|
90276
|
+
"name": "empty-label",
|
|
90277
|
+
"type": {
|
|
90278
|
+
"text": "string"
|
|
90279
|
+
},
|
|
90280
|
+
"default": "''",
|
|
90281
|
+
"description": "The text of the row shown while the list has no rows, where the `empty`\nslot is empty. Empty, the default, shows no row.",
|
|
90282
|
+
"fieldName": "emptyLabel"
|
|
90283
|
+
},
|
|
89600
90284
|
{
|
|
89601
90285
|
"name": "kind",
|
|
89602
90286
|
"type": {
|
|
@@ -89614,6 +90298,33 @@
|
|
|
89614
90298
|
"description": "The list's name, read by screen readers.",
|
|
89615
90299
|
"fieldName": "label"
|
|
89616
90300
|
},
|
|
90301
|
+
{
|
|
90302
|
+
"name": "loading",
|
|
90303
|
+
"type": {
|
|
90304
|
+
"text": "boolean"
|
|
90305
|
+
},
|
|
90306
|
+
"default": "false",
|
|
90307
|
+
"description": "Marks the list as busy fetching more rows, and draws a row after the last\nthat says so. The list asks for no more while it is set.",
|
|
90308
|
+
"fieldName": "loading"
|
|
90309
|
+
},
|
|
90310
|
+
{
|
|
90311
|
+
"name": "loading-label",
|
|
90312
|
+
"type": {
|
|
90313
|
+
"text": "string"
|
|
90314
|
+
},
|
|
90315
|
+
"default": "'Loading more'",
|
|
90316
|
+
"description": "The text of the row drawn while `loading` is set, where the `loading` slot is empty.",
|
|
90317
|
+
"fieldName": "loadingLabel"
|
|
90318
|
+
},
|
|
90319
|
+
{
|
|
90320
|
+
"name": "load-more",
|
|
90321
|
+
"type": {
|
|
90322
|
+
"text": "boolean"
|
|
90323
|
+
},
|
|
90324
|
+
"default": "false",
|
|
90325
|
+
"description": "Sends `helix-load-more` once the end of the list comes within a screen of\nview, so you can add the next rows as a reader nears them.",
|
|
90326
|
+
"fieldName": "loadMore"
|
|
90327
|
+
},
|
|
89617
90328
|
{
|
|
89618
90329
|
"name": "moved-label",
|
|
89619
90330
|
"type": {
|
|
@@ -89698,10 +90409,28 @@
|
|
|
89698
90409
|
"text": "string"
|
|
89699
90410
|
},
|
|
89700
90411
|
"default": "''",
|
|
89701
|
-
"description": "The selected rows' values, separated by commas, in a list that selects.\n\nSet it to start with rows selected. A row's value is its `value`, or its\nwords where it has none.",
|
|
90412
|
+
"description": "The selected rows' values, separated by commas with no spaces, such as `a,c`, in a list that selects.\n\nSet it to start with rows selected. A row's value is its `value`, or its\nwords where it has none.",
|
|
89702
90413
|
"fieldName": "value"
|
|
89703
90414
|
}
|
|
89704
90415
|
],
|
|
90416
|
+
"cssStates": [
|
|
90417
|
+
{
|
|
90418
|
+
"description": "While the list has no rows.",
|
|
90419
|
+
"name": "empty"
|
|
90420
|
+
},
|
|
90421
|
+
{
|
|
90422
|
+
"description": "While `loading` is set.",
|
|
90423
|
+
"name": "loading"
|
|
90424
|
+
},
|
|
90425
|
+
{
|
|
90426
|
+
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
90427
|
+
"name": "settled",
|
|
90428
|
+
"inheritedFrom": {
|
|
90429
|
+
"name": "HelixElement",
|
|
90430
|
+
"module": "src/helix-element/helix-element.ts"
|
|
90431
|
+
}
|
|
90432
|
+
}
|
|
90433
|
+
],
|
|
89705
90434
|
"superclass": {
|
|
89706
90435
|
"name": "HelixElement",
|
|
89707
90436
|
"package": "@fusion.dev/helix-core"
|
|
@@ -89730,16 +90459,6 @@
|
|
|
89730
90459
|
},
|
|
89731
90460
|
"tagName": "helix-headless-list",
|
|
89732
90461
|
"customElement": true,
|
|
89733
|
-
"cssStates": [
|
|
89734
|
-
{
|
|
89735
|
-
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
89736
|
-
"name": "settled",
|
|
89737
|
-
"inheritedFrom": {
|
|
89738
|
-
"name": "HelixElement",
|
|
89739
|
-
"module": "src/helix-element/helix-element.ts"
|
|
89740
|
-
}
|
|
89741
|
-
}
|
|
89742
|
-
],
|
|
89743
90462
|
"modulePath": "src/list/root/list-root.ts",
|
|
89744
90463
|
"definitionPath": "src/list/root/list-root.ts"
|
|
89745
90464
|
}
|
|
@@ -91419,6 +92138,21 @@
|
|
|
91419
92138
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
91420
92139
|
}
|
|
91421
92140
|
},
|
|
92141
|
+
{
|
|
92142
|
+
"kind": "field",
|
|
92143
|
+
"name": "namedBy",
|
|
92144
|
+
"type": {
|
|
92145
|
+
"text": "string | null"
|
|
92146
|
+
},
|
|
92147
|
+
"privacy": "protected",
|
|
92148
|
+
"default": "null",
|
|
92149
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
92150
|
+
"attribute": "aria-label",
|
|
92151
|
+
"inheritedFrom": {
|
|
92152
|
+
"name": "MixinField",
|
|
92153
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
92154
|
+
}
|
|
92155
|
+
},
|
|
91422
92156
|
{
|
|
91423
92157
|
"kind": "field",
|
|
91424
92158
|
"name": "labeled",
|
|
@@ -92785,6 +93519,8 @@
|
|
|
92785
93519
|
"text": "string | null"
|
|
92786
93520
|
},
|
|
92787
93521
|
"default": "null",
|
|
93522
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
93523
|
+
"fieldName": "namedBy",
|
|
92788
93524
|
"inheritedFrom": {
|
|
92789
93525
|
"name": "MixinField",
|
|
92790
93526
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
@@ -99093,6 +99829,19 @@
|
|
|
99093
99829
|
"description": "How far the map is tilted, in degrees from looking straight down.\n`connectMap` keeps it current, and the 3D button is pressed while it is\nabove `0`.",
|
|
99094
99830
|
"attribute": "pitch"
|
|
99095
99831
|
},
|
|
99832
|
+
{
|
|
99833
|
+
"kind": "field",
|
|
99834
|
+
"name": "roleLabel",
|
|
99835
|
+
"type": {
|
|
99836
|
+
"text": "string"
|
|
99837
|
+
},
|
|
99838
|
+
"default": "'map'",
|
|
99839
|
+
"description": "What a screen reader calls the map in place of its role, after its\nname: \"Edinburgh, map\". Said only where the map has a name of its\nown, since the fallback name is the same word. Empty leaves the role.",
|
|
99840
|
+
"attribute": "role-label",
|
|
99841
|
+
"helix": {
|
|
99842
|
+
"words": true
|
|
99843
|
+
}
|
|
99844
|
+
},
|
|
99096
99845
|
{
|
|
99097
99846
|
"kind": "field",
|
|
99098
99847
|
"name": "rotateLeftLabel",
|
|
@@ -101188,6 +101937,15 @@
|
|
|
101188
101937
|
"description": "How far the map is tilted, in degrees from looking straight down.\n`connectMap` keeps it current, and the 3D button is pressed while it is\nabove `0`.",
|
|
101189
101938
|
"fieldName": "pitch"
|
|
101190
101939
|
},
|
|
101940
|
+
{
|
|
101941
|
+
"name": "role-label",
|
|
101942
|
+
"type": {
|
|
101943
|
+
"text": "string"
|
|
101944
|
+
},
|
|
101945
|
+
"default": "'map'",
|
|
101946
|
+
"description": "What a screen reader calls the map in place of its role, after its\nname: \"Edinburgh, map\". Said only where the map has a name of its\nown, since the fallback name is the same word. Empty leaves the role.",
|
|
101947
|
+
"fieldName": "roleLabel"
|
|
101948
|
+
},
|
|
101191
101949
|
{
|
|
101192
101950
|
"name": "rotate-left-label",
|
|
101193
101951
|
"type": {
|
|
@@ -111317,7 +112075,7 @@
|
|
|
111317
112075
|
"declarations": [
|
|
111318
112076
|
{
|
|
111319
112077
|
"kind": "class",
|
|
111320
|
-
"description": "A separate family from `Input`'s `type=\"number\"`. It renders two buttons,\nbinds four keys `Input` does not, and handles clamping and stepping.\n\nThe field is `type=\"text\"` with `inputmode=\"decimal\"`. Tested in a real\nbrowser, `type=\"number\"` fails in three ways:\n- Typing `12e` gives a `.value` of `\"\"`, so the element cannot see what you\n typed. A `type=\"text\"` field keeps `\"12e\"`.\n- The mouse wheel over a focused field changes the value, for example from 5\n to 4, when you only meant to scroll the page.\n- `selectionStart` is `null`, so the caret cannot be managed.\n\n`inputmode=\"decimal\"` keeps the numeric keypad on phones.\n\n`format-options` shows the number with `Intl.NumberFormat` in `locale`, as a\ncurrency, a percent or a unit, while the field is not being edited. Focus\nshows the number itself, and a typed `$1,200` or `25%` is read back with the\nsame options. The value stays the plain number: `1200`, or `0.25` for 25%.\nThe locale's group separators are read in every field, so `1,234` is a\nnumber in `en-US`.\n\
|
|
112078
|
+
"description": "A separate family from `Input`'s `type=\"number\"`. It renders two buttons,\nbinds four keys `Input` does not, and handles clamping and stepping.\n\nThe field is `type=\"text\"` with `inputmode=\"decimal\"`. Tested in a real\nbrowser, `type=\"number\"` fails in three ways:\n- Typing `12e` gives a `.value` of `\"\"`, so the element cannot see what you\n typed. A `type=\"text\"` field keeps `\"12e\"`.\n- The mouse wheel over a focused field changes the value, for example from 5\n to 4, when you only meant to scroll the page.\n- `selectionStart` is `null`, so the caret cannot be managed.\n\n`inputmode=\"decimal\"` keeps the numeric keypad on phones.\n\n`format-options` shows the number with `Intl.NumberFormat` in `locale`, as a\ncurrency, a percent or a unit, while the field is not being edited. Focus\nshows the number itself, and a typed `$1,200` or `25%` is read back with the\nsame options. The value stays the plain number: `1200`, or `0.25` for 25%.\nThe locale's group separators are read in every field, so `1,234` is a\nnumber in `en-US`.\n\nThe field and its two buttons sit in a `role=\"group\"`, and the field carries\n`role-label`, \"number field\" in English, as its `aria-roledescription`, as\nReact Aria's NumberField does. On iOS and iPadOS the field is a plain text\nfield, with no `role=\"spinbutton\"`, which VoiceOver reads as a slider you\ncannot type in, and no role description, so VoiceOver says the field is\nrequired. React Aria's NumberField does the same.\n\nValidity follows the platform's rules: `min`, `max`, and `step` are checked\nand reported through the host's own `setValidity`, under the platform's flag\nnames.\n\nStepping is separate from typing, so a number is not corrected while you type\nit. While you type, the form holds the number the text reads as, so a field\nshowing `$2,500.50` gives the form 2500.5, and text that is not a number\ngives it nothing, as a native number field does.\n\nHolding a stepper button down steps once, then again after 400 milliseconds,\nthen every 60 milliseconds until you let go, as React Aria's NumberField does.\n\n**Keyboard.** The field is one tab stop, and the stepper buttons are not in\nthe tab order.\n\n| Key | What it does |\n|---|---|\n| Up, Down | Steps the value up or down by `step`. |\n| Page Up, Page Down | Steps by `large-step` steps, ten by default. |\n| Home, End | Goes to `min` or `max`, where there is one. Without one, moves the caret. |\n| Enter | Commits the typed number and submits the form, as a native field does. |\n\nThe field has `role=\"spinbutton\"` with `aria-valuenow`, `aria-valuemin`,\n`aria-valuemax`, and the formatted text in `aria-valuetext`.",
|
|
111321
112079
|
"name": "HelixHeadlessNumberInput",
|
|
111322
112080
|
"cssParts": [
|
|
111323
112081
|
{
|
|
@@ -111337,7 +112095,7 @@
|
|
|
111337
112095
|
"name": "feedback"
|
|
111338
112096
|
},
|
|
111339
112097
|
{
|
|
111340
|
-
"description": "The box that holds the whole control.",
|
|
112098
|
+
"description": "The box that holds the whole control, a `role=\"group\"` around the field and its buttons.",
|
|
111341
112099
|
"name": "field"
|
|
111342
112100
|
},
|
|
111343
112101
|
{
|
|
@@ -111358,6 +112116,10 @@
|
|
|
111358
112116
|
}
|
|
111359
112117
|
],
|
|
111360
112118
|
"slots": [
|
|
112119
|
+
{
|
|
112120
|
+
"description": "Replaces the icon on the step down button.",
|
|
112121
|
+
"name": "decrement-icon"
|
|
112122
|
+
},
|
|
111361
112123
|
{
|
|
111362
112124
|
"description": "Content after the number, such as a unit.",
|
|
111363
112125
|
"name": "end"
|
|
@@ -111370,6 +112132,10 @@
|
|
|
111370
112132
|
"description": "Help under the control, for content richer than the `hint` text.",
|
|
111371
112133
|
"name": "hint"
|
|
111372
112134
|
},
|
|
112135
|
+
{
|
|
112136
|
+
"description": "Replaces the icon on the step up button.",
|
|
112137
|
+
"name": "increment-icon"
|
|
112138
|
+
},
|
|
111373
112139
|
{
|
|
111374
112140
|
"description": "The label, for content richer than the `label` text.",
|
|
111375
112141
|
"name": "label"
|
|
@@ -111554,6 +112320,19 @@
|
|
|
111554
112320
|
"attribute": "readonly",
|
|
111555
112321
|
"reflects": true
|
|
111556
112322
|
},
|
|
112323
|
+
{
|
|
112324
|
+
"kind": "field",
|
|
112325
|
+
"name": "roleLabel",
|
|
112326
|
+
"type": {
|
|
112327
|
+
"text": "string"
|
|
112328
|
+
},
|
|
112329
|
+
"default": "'number field'",
|
|
112330
|
+
"description": "The words screen readers announce for the field's role, set as its\n`aria-roledescription`. Translate it with the rest of your text, or empty\nit to leave the role as `spinbutton`.\n\nNever written on iOS and iPadOS, where a role description stops VoiceOver\nsaying that the field is required.",
|
|
112331
|
+
"attribute": "role-label",
|
|
112332
|
+
"helix": {
|
|
112333
|
+
"words": true
|
|
112334
|
+
}
|
|
112335
|
+
},
|
|
111557
112336
|
{
|
|
111558
112337
|
"kind": "field",
|
|
111559
112338
|
"name": "scrub",
|
|
@@ -111828,6 +112607,45 @@
|
|
|
111828
112607
|
"text": "stepDown(large = false) => void"
|
|
111829
112608
|
}
|
|
111830
112609
|
},
|
|
112610
|
+
{
|
|
112611
|
+
"kind": "field",
|
|
112612
|
+
"name": "repeat",
|
|
112613
|
+
"type": {
|
|
112614
|
+
"text": "ReturnType<typeof setTimeout> | undefined"
|
|
112615
|
+
},
|
|
112616
|
+
"privacy": "private",
|
|
112617
|
+
"description": "The timer of a held stepper button."
|
|
112618
|
+
},
|
|
112619
|
+
{
|
|
112620
|
+
"kind": "field",
|
|
112621
|
+
"name": "pressStepped",
|
|
112622
|
+
"type": {
|
|
112623
|
+
"text": "boolean"
|
|
112624
|
+
},
|
|
112625
|
+
"privacy": "private",
|
|
112626
|
+
"default": "false",
|
|
112627
|
+
"description": "Whether a pointer press stepped already, so the click that ends it does not step again."
|
|
112628
|
+
},
|
|
112629
|
+
{
|
|
112630
|
+
"kind": "field",
|
|
112631
|
+
"name": "handleStepperDown",
|
|
112632
|
+
"privacy": "private",
|
|
112633
|
+
"readonly": true,
|
|
112634
|
+
"description": "A stepper button pressed with a pointer steps at once, and again while it\nis held.\n\nCaptured, so letting go outside the button still ends the hold. A click\nwith no press before it, from a screen reader or a script, steps once in\n`handleStepperClick`."
|
|
112635
|
+
},
|
|
112636
|
+
{
|
|
112637
|
+
"kind": "field",
|
|
112638
|
+
"name": "stopRepeat",
|
|
112639
|
+
"privacy": "private",
|
|
112640
|
+
"readonly": true,
|
|
112641
|
+
"description": "Ends a hold. The click that follows a release arrives in the same task,\nso the press is forgotten after it."
|
|
112642
|
+
},
|
|
112643
|
+
{
|
|
112644
|
+
"kind": "field",
|
|
112645
|
+
"name": "handleStepperClick",
|
|
112646
|
+
"privacy": "private",
|
|
112647
|
+
"readonly": true
|
|
112648
|
+
},
|
|
111831
112649
|
{
|
|
111832
112650
|
"kind": "method",
|
|
111833
112651
|
"name": "renderLabel",
|
|
@@ -111941,6 +112759,25 @@
|
|
|
111941
112759
|
"readonly": true,
|
|
111942
112760
|
"description": "The four keys a spinner answers, which `Input` does not bind.\n\n`Home` and `End` only where there is a bound to go to: without one they are\nthe text field's own keys and moving the caret to the start of the number is\nwhat a reader pressing them meant."
|
|
111943
112761
|
},
|
|
112762
|
+
{
|
|
112763
|
+
"kind": "method",
|
|
112764
|
+
"name": "submitted",
|
|
112765
|
+
"privacy": "private",
|
|
112766
|
+
"return": {
|
|
112767
|
+
"type": {
|
|
112768
|
+
"text": "string"
|
|
112769
|
+
}
|
|
112770
|
+
},
|
|
112771
|
+
"parameters": [
|
|
112772
|
+
{
|
|
112773
|
+
"name": "parsed",
|
|
112774
|
+
"type": {
|
|
112775
|
+
"text": "number | null"
|
|
112776
|
+
}
|
|
112777
|
+
}
|
|
112778
|
+
],
|
|
112779
|
+
"description": "What the form holds for the field: the number the text reads as.\n\nThe text as written where it is already a plain number, so a value of\n`0.50` is sent as written. A number written in the locale or the format,\n`$2,500.50` or `1.234,5`, is sent as the number, 2500.5 or 1234.5, so a\nform read while the field still has focus gets what a submit would. Text\nthat is not a number is sent as empty, as a native number field sends it.\nThe text itself is the state the browser restores."
|
|
112780
|
+
},
|
|
111944
112781
|
{
|
|
111945
112782
|
"kind": "method",
|
|
111946
112783
|
"name": "sync",
|
|
@@ -112007,6 +112844,28 @@
|
|
|
112007
112844
|
"readonly": true,
|
|
112008
112845
|
"description": "Enter submits the form, as it does in a native text field.\n\nOn `keypress`, where the platform runs its own implicit submission, so a\nconsumer who prevents the `keydown` for Enter stops this too.\n\n**Settled first**, as blur settles it. The typed text is read as a number,\n`change` announces it, and the form value is written before the form is\nsubmitted, so a field showing `$2,500.50` submits 2500.5."
|
|
112009
112846
|
},
|
|
112847
|
+
{
|
|
112848
|
+
"kind": "method",
|
|
112849
|
+
"name": "renderDecrementIcon",
|
|
112850
|
+
"privacy": "protected",
|
|
112851
|
+
"return": {
|
|
112852
|
+
"type": {
|
|
112853
|
+
"text": "TemplateResult"
|
|
112854
|
+
}
|
|
112855
|
+
},
|
|
112856
|
+
"description": "The step down button's icon, as the `decrement-icon` slot's fallback, so an\nicon of your own replaces it by being slotted, and a tier above by\noverriding this."
|
|
112857
|
+
},
|
|
112858
|
+
{
|
|
112859
|
+
"kind": "method",
|
|
112860
|
+
"name": "renderIncrementIcon",
|
|
112861
|
+
"privacy": "protected",
|
|
112862
|
+
"return": {
|
|
112863
|
+
"type": {
|
|
112864
|
+
"text": "TemplateResult"
|
|
112865
|
+
}
|
|
112866
|
+
},
|
|
112867
|
+
"description": "The step up button's icon, behind the same seam as `renderDecrementIcon`."
|
|
112868
|
+
},
|
|
112010
112869
|
{
|
|
112011
112870
|
"kind": "field",
|
|
112012
112871
|
"name": "valueAsNumber",
|
|
@@ -112180,6 +113039,21 @@
|
|
|
112180
113039
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
112181
113040
|
}
|
|
112182
113041
|
},
|
|
113042
|
+
{
|
|
113043
|
+
"kind": "field",
|
|
113044
|
+
"name": "namedBy",
|
|
113045
|
+
"type": {
|
|
113046
|
+
"text": "string | null"
|
|
113047
|
+
},
|
|
113048
|
+
"privacy": "protected",
|
|
113049
|
+
"default": "null",
|
|
113050
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
113051
|
+
"attribute": "aria-label",
|
|
113052
|
+
"inheritedFrom": {
|
|
113053
|
+
"name": "MixinField",
|
|
113054
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
113055
|
+
}
|
|
113056
|
+
},
|
|
112183
113057
|
{
|
|
112184
113058
|
"kind": "field",
|
|
112185
113059
|
"name": "labeled",
|
|
@@ -113385,6 +114259,15 @@
|
|
|
113385
114259
|
"description": "Prevents editing. The value is still submitted with the form.",
|
|
113386
114260
|
"fieldName": "readOnly"
|
|
113387
114261
|
},
|
|
114262
|
+
{
|
|
114263
|
+
"name": "role-label",
|
|
114264
|
+
"type": {
|
|
114265
|
+
"text": "string"
|
|
114266
|
+
},
|
|
114267
|
+
"default": "'number field'",
|
|
114268
|
+
"description": "The words screen readers announce for the field's role, set as its\n`aria-roledescription`. Translate it with the rest of your text, or empty\nit to leave the role as `spinbutton`.\n\nNever written on iOS and iPadOS, where a role description stops VoiceOver\nsaying that the field is required.",
|
|
114269
|
+
"fieldName": "roleLabel"
|
|
114270
|
+
},
|
|
113388
114271
|
{
|
|
113389
114272
|
"name": "scrub",
|
|
113390
114273
|
"type": {
|
|
@@ -113460,6 +114343,8 @@
|
|
|
113460
114343
|
"text": "string | null"
|
|
113461
114344
|
},
|
|
113462
114345
|
"default": "null",
|
|
114346
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
114347
|
+
"fieldName": "namedBy",
|
|
113463
114348
|
"inheritedFrom": {
|
|
113464
114349
|
"name": "MixinField",
|
|
113465
114350
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
@@ -113656,7 +114541,7 @@
|
|
|
113656
114541
|
"declarations": [
|
|
113657
114542
|
{
|
|
113658
114543
|
"kind": "class",
|
|
113659
|
-
"description": "Object Inspector shows a structured value, such as an API response, a config,\nor a raw record, as a read-only tree with each entry's type visible.\n\nPass the object to `value`, or name a `<script type=\"application/json\">` by\nid with `for`, the same source `VirtualList` and the charts read. JSON text\nworks with server rendering and with React hydration, which skips object\nproperties. `value` wins when both are set.\n\n**Keyboard.** The tree is one tab stop, and focus moves from row to row.\n\n| Key | What it does |\n|---|---|\n| Down, Up | Moves to the next or the previous row. |\n| Right | Opens a closed branch, or moves into an open one. Left on a right-to-left page. |\n| Left | Closes an open branch, or moves to the parent. Right on a right-to-left page. |\n| Home, End | Moves to the first or the last row. |\n| Page Down, Page Up | Moves a box's height of rows, so the row at one edge lands at the other. |\n| Enter, Space | Opens or closes a branch. |\n| `*` | Opens every branch beside the active row. |\n| A letter or a word | Moves to the next row whose key starts with what you typed. |\n| Command+C, Control+C | Copies the active row, where no text is selected. |\n\nThe tree is a `treegrid`, as React Aria's Tree is: each entry is a `row` with\none cell, and carries its real level, position, and set size, including in a\nwindowed tree. Nothing in it is chosen, so no row carries `aria-selected`,\nand a focused row is not announced as selected.\n\nA reader opening or closing a branch sends `helix-before-open` or\n`helix-before-close`, which you can cancel, and then `toggle` with\n`newState` and `oldState`, as `<details>` does. The branch is the active\nrow, and `expanded` holds every open branch. `*` asks once for all the\nbranches it opens. A script writing `expanded` or `active` sends nothing.\n\n`active` is the active row's path, written the way a JSON Pointer writes it:\nthe empty string for the root and `/meta/tags/0` for an entry under it.\nMoving to another row sends `helix-before-activate`, which you can cancel,\nand then `helix-activate`, both with the path. Writing `active` moves there\nand opens the branches around it, and sends nothing. `expanded` holds the\nopen branches by path, and writing it opens those and closes the rest. A row\nthat closes around the active one hands it to the nearest open branch.\n\n`filter` narrows the tree to the entries whose key or value holds the text,\nignoring case, and the branches that lead to them, which it opens. A matched\nbranch keeps everything under it. Each matched row carries `row-match`, and\na screen reader hears how many entries matched from `results-label`.\n`filterable` adds a field that sets it: typing sends\n`helix-filter`, which you can cancel, and then `helix-filtered`, and Down\nmoves from the field to the tree.\n\nA new `value` keeps the branches a reader opened or closed, and the active\nrow, where the new value still has them. A branch the old value did not have\nopens to `default-depth`.\n\nThe copy button copies the active row, a branch as JSON and a string as its\ntext. So do Command+C and Control+C while the tree has focus and no text is\nselected. The button sits beside the tree, because assistive technology\ncannot reliably reach a button inside a tree item.\n\n`windowed` draws only the rows in view, for values with thousands of entries.\nThe box needs a height for windowing to work. The styled tier sets one, and\nin the headless tier you set it yourself.",
|
|
114544
|
+
"description": "Object Inspector shows a structured value, such as an API response, a config,\nor a raw record, as a read-only tree with each entry's type visible.\n\nPass the object to `value`, or name a `<script type=\"application/json\">` by\nid with `for`, the same source `VirtualList` and the charts read. JSON text\nworks with server rendering and with React hydration, which skips object\nproperties. `value` wins when both are set.\n\n**Keyboard.** The tree is one tab stop, and focus moves from row to row.\n\n| Key | What it does |\n|---|---|\n| Down, Up | Moves to the next or the previous row. |\n| Right | Opens a closed branch, or moves into an open one. Left on a right-to-left page. |\n| Left | Closes an open branch, or moves to the parent. Right on a right-to-left page. |\n| Home, End | Moves to the first or the last row. |\n| Page Down, Page Up | Moves a box's height of rows, so the row at one edge lands at the other. |\n| Enter, Space | Opens or closes a branch. |\n| `*` | Opens every branch beside the active row. |\n| A letter or a word | Moves to the next row whose key starts with what you typed. |\n| Command+C, Control+C | Copies the active row, where no text is selected. |\n\nThe tree is a `treegrid`, as React Aria's Tree is: each entry is a `row` with\none cell, and carries its real level, position, and set size, including in a\nwindowed tree. Nothing in it is chosen, so no row carries `aria-selected`,\nand a focused row is not announced as selected.\n\nA reader opening or closing a branch sends `helix-before-open` or\n`helix-before-close`, which you can cancel, and then `toggle` with\n`newState` and `oldState`, as `<details>` does. The branch is the active\nrow, and `expanded` holds every open branch. `*` asks once for all the\nbranches it opens. A script writing `expanded` or `active` sends nothing.\n\n`active` is the active row's path, written the way a JSON Pointer writes it:\nthe empty string for the root and `/meta/tags/0` for an entry under it.\nMoving to another row sends `helix-before-activate`, which you can cancel,\nand then `helix-activate`, both with the path. Writing `active` moves there\nand opens the branches around it, and sends nothing. `expanded` holds the\nopen branches by path, and writing it opens those and closes the rest. A row\nthat closes around the active one hands it to the nearest open branch.\n\n`filter` narrows the tree to the entries whose key or value holds the text,\nignoring case, and the branches that lead to them, which it opens. A matched\nbranch keeps everything under it. Each matched row carries `row-match`, and\na screen reader hears how many entries matched from `results-label`.\n`filterable` adds a field that sets it: typing sends\n`helix-filter`, which you can cancel, and then `helix-filtered`, and Down\nmoves from the field to the tree.\n\nA new `value` keeps the branches a reader opened or closed, and the active\nrow, where the new value still has them. A branch the old value did not have\nopens to `default-depth`.\n\nThe copy button copies the active row, a branch as JSON and a string as its\ntext. So do Command+C and Control+C while the tree has focus and no text is\nselected. The button sits beside the tree, because assistive technology\ncannot reliably reach a button inside a tree item.\n\n**Your own drawing of a value.** `renderValue` is a function from a value and\nits entry, its path, key, depth and type, to what Lit renders, such as a\nlink for a URL or a swatch for a color. Return `undefined` to draw the value\nas the inspector does. What you draw sits in the `value` part, after the\nkey. Filtering and copying still read the value itself.\n\n`windowed` draws only the rows in view, for values with thousands of entries.\nThe box needs a height for windowing to work. The styled tier sets one, and\nin the headless tier you set it yourself.",
|
|
113660
114545
|
"name": "HelixHeadlessObjectInspector",
|
|
113661
114546
|
"cssProperties": [
|
|
113662
114547
|
{
|
|
@@ -113804,6 +114689,10 @@
|
|
|
113804
114689
|
{
|
|
113805
114690
|
"description": "The tree grid that holds the rows.",
|
|
113806
114691
|
"name": "tree"
|
|
114692
|
+
},
|
|
114693
|
+
{
|
|
114694
|
+
"description": "What `renderValue` drew for an entry, in place of its own drawing.",
|
|
114695
|
+
"name": "value"
|
|
113807
114696
|
}
|
|
113808
114697
|
],
|
|
113809
114698
|
"members": [
|
|
@@ -113977,6 +114866,14 @@
|
|
|
113977
114866
|
"description": "Hides the copy button.\n\nNegative for the reason Code Block's is: a boolean attribute defaulting to\ntrue could never be turned off from markup.\n\n**It does not reflect, where Code Block's does**, and the difference is what\nthe two sheets need. Code Block reserves the button's width with\n`:host(:not([no-copy]))`, so the attribute has to be there for a consumer\nwho set the property. This button is positioned out of the flow and takes no\nroom, so nothing selects on it, and reflection exists so that a selector can\nreach a value.",
|
|
113978
114867
|
"attribute": "no-copy"
|
|
113979
114868
|
},
|
|
114869
|
+
{
|
|
114870
|
+
"kind": "field",
|
|
114871
|
+
"name": "renderValue",
|
|
114872
|
+
"type": {
|
|
114873
|
+
"text": "ObjectInspectorRenderer | undefined"
|
|
114874
|
+
},
|
|
114875
|
+
"description": "Draws an entry's value your way, given the value and its entry. Set it as\na property.\n\nIt returns what Lit renders: a template from `html`, a string, or a DOM\nnode. `undefined` draws the value as the inspector does, so a function can\ndraw some entries and leave the rest, such as only the strings under\n`/links`."
|
|
114876
|
+
},
|
|
113980
114877
|
{
|
|
113981
114878
|
"kind": "field",
|
|
113982
114879
|
"name": "resultLabel",
|
|
@@ -114493,7 +115390,7 @@
|
|
|
114493
115390
|
},
|
|
114494
115391
|
{
|
|
114495
115392
|
"kind": "method",
|
|
114496
|
-
"name": "
|
|
115393
|
+
"name": "drawValue",
|
|
114497
115394
|
"privacy": "private",
|
|
114498
115395
|
"return": {
|
|
114499
115396
|
"type": {
|
|
@@ -116084,7 +116981,7 @@
|
|
|
116084
116981
|
},
|
|
116085
116982
|
{
|
|
116086
116983
|
"kind": "class",
|
|
116087
|
-
"description": "Options are their own family, separate from Select, because an option belongs\nto a listbox and several controls contain one. `role=\"option\"` requires an\nowning `role=\"listbox\"`. A Select is a listbox with a trigger, a Combobox is\na listbox with a text input, and a command palette is a listbox in a dialog.\n`Radio` is a part of its group, because a radio has only one kind of owner.\n\nSelection works the way it does for a radio. Choosing an option dispatches an\nevent, the listbox decides whether the choice stands, and the listbox sets\n`selected`.\n\nFiltering belongs to the owner, which hides an option with `hidden`. What\ncounts as a match differs between a select and a command palette.\n\nAn option with `href` is a link: choosing it follows the link and selects\nnothing, as an entry in a command palette that goes to a page does.",
|
|
116984
|
+
"description": "Options are their own family, separate from Select, because an option belongs\nto a listbox and several controls contain one. `role=\"option\"` requires an\nowning `role=\"listbox\"`. A Select is a listbox with a trigger, a Combobox is\na listbox with a text input, and a command palette is a listbox in a dialog.\n`Radio` is a part of its group, because a radio has only one kind of owner.\n\nSelection works the way it does for a radio. Choosing an option dispatches an\nevent, the listbox decides whether the choice stands, and the listbox sets\n`selected`.\n\nFiltering belongs to the owner, which hides an option with `hidden`. What\ncounts as a match differs between a select and a command palette.\n\nAn option with `href` is a link: choosing it follows the link and selects\nnothing, as an entry in a command palette that goes to a page does.\n\nThe option's name is its label alone, as React Aria's `slot=\"label\"` makes\nit: what is in `start` and `end`, an avatar's initials or a shortcut, is\ndrawn and not read as part of the name. The description is read as the\noption's description. A name you give with `aria-label` or\n`aria-labelledby` wins over both.",
|
|
116088
116985
|
"name": "HelixHeadlessOption",
|
|
116089
116986
|
"cssParts": [
|
|
116090
116987
|
{
|
|
@@ -116224,6 +117121,16 @@
|
|
|
116224
117121
|
"description": "A shorter name for this choice, for where the row does not fit.\n\n`<option label>`'s own meaning: the text a chooser shows when it has less\nroom than the row does, which is what a select's closed trigger has. Empty\nmeans the row's own content, which is the common case and is why this is not\nsimply the accessible name.\n\n**An option with a label and nothing in it shows the label**, as\n`<option label>` does: written the platform's way, a select listed a row of\nnothing for every choice.",
|
|
116225
117122
|
"attribute": "label"
|
|
116226
117123
|
},
|
|
117124
|
+
{
|
|
117125
|
+
"kind": "field",
|
|
117126
|
+
"name": "opens",
|
|
117127
|
+
"type": {
|
|
117128
|
+
"text": "string"
|
|
117129
|
+
},
|
|
117130
|
+
"default": "''",
|
|
117131
|
+
"description": "The page of commands this option opens, by name, where choosing it would\notherwise run it.\n\nDeclared here and acted on by whatever owns the list, as `alternate` is.\n`Command` is the only owner that reads it: choosing the option shows the\ncommands slotted as `page:` and the name, such as `slot=\"page:theme\"`,\nand Backspace in an empty filter goes back. Empty is an option that opens\nnothing, which is nearly every option.",
|
|
117132
|
+
"attribute": "opens"
|
|
117133
|
+
},
|
|
116227
117134
|
{
|
|
116228
117135
|
"kind": "field",
|
|
116229
117136
|
"name": "rel",
|
|
@@ -116314,6 +117221,31 @@
|
|
|
116314
117221
|
"text": "select(modifiers?: LinkModifiers) => void"
|
|
116315
117222
|
}
|
|
116316
117223
|
},
|
|
117224
|
+
{
|
|
117225
|
+
"kind": "field",
|
|
117226
|
+
"name": "handlePointerEnter",
|
|
117227
|
+
"privacy": "private",
|
|
117228
|
+
"readonly": true,
|
|
117229
|
+
"description": "A hover from a mouse or a pen, which a touch does not make."
|
|
117230
|
+
},
|
|
117231
|
+
{
|
|
117232
|
+
"kind": "field",
|
|
117233
|
+
"name": "handlePointerLeave",
|
|
117234
|
+
"privacy": "private",
|
|
117235
|
+
"readonly": true
|
|
117236
|
+
},
|
|
117237
|
+
{
|
|
117238
|
+
"kind": "field",
|
|
117239
|
+
"name": "handlePointerDown",
|
|
117240
|
+
"privacy": "private",
|
|
117241
|
+
"readonly": true
|
|
117242
|
+
},
|
|
117243
|
+
{
|
|
117244
|
+
"kind": "field",
|
|
117245
|
+
"name": "handlePointerUp",
|
|
117246
|
+
"privacy": "private",
|
|
117247
|
+
"readonly": true
|
|
117248
|
+
},
|
|
116317
117249
|
{
|
|
116318
117250
|
"kind": "field",
|
|
116319
117251
|
"name": "tier",
|
|
@@ -116736,6 +117668,15 @@
|
|
|
116736
117668
|
"description": "A shorter name for this choice, for where the row does not fit.\n\n`<option label>`'s own meaning: the text a chooser shows when it has less\nroom than the row does, which is what a select's closed trigger has. Empty\nmeans the row's own content, which is the common case and is why this is not\nsimply the accessible name.\n\n**An option with a label and nothing in it shows the label**, as\n`<option label>` does: written the platform's way, a select listed a row of\nnothing for every choice.",
|
|
116737
117669
|
"fieldName": "label"
|
|
116738
117670
|
},
|
|
117671
|
+
{
|
|
117672
|
+
"name": "opens",
|
|
117673
|
+
"type": {
|
|
117674
|
+
"text": "string"
|
|
117675
|
+
},
|
|
117676
|
+
"default": "''",
|
|
117677
|
+
"description": "The page of commands this option opens, by name, where choosing it would\notherwise run it.\n\nDeclared here and acted on by whatever owns the list, as `alternate` is.\n`Command` is the only owner that reads it: choosing the option shows the\ncommands slotted as `page:` and the name, such as `slot=\"page:theme\"`,\nand Backspace in an empty filter goes back. Empty is an option that opens\nnothing, which is nearly every option.",
|
|
117678
|
+
"fieldName": "opens"
|
|
117679
|
+
},
|
|
116739
117680
|
{
|
|
116740
117681
|
"name": "rel",
|
|
116741
117682
|
"type": {
|
|
@@ -116795,6 +117736,14 @@
|
|
|
116795
117736
|
"description": "An icon is slotted into `indicator`.",
|
|
116796
117737
|
"name": "has-indicator"
|
|
116797
117738
|
},
|
|
117739
|
+
{
|
|
117740
|
+
"description": "While a mouse or a pen is over the option. A touch sets no hover, as React Aria's `data-hovered` does not.",
|
|
117741
|
+
"name": "hovered"
|
|
117742
|
+
},
|
|
117743
|
+
{
|
|
117744
|
+
"description": "While a pointer presses the option, from the press to the release.",
|
|
117745
|
+
"name": "pressed"
|
|
117746
|
+
},
|
|
116798
117747
|
{
|
|
116799
117748
|
"description": "While the option is chosen.",
|
|
116800
117749
|
"name": "selected"
|
|
@@ -117356,7 +118305,7 @@
|
|
|
117356
118305
|
"name": "heading"
|
|
117357
118306
|
},
|
|
117358
118307
|
{
|
|
117359
|
-
"description": "The mark that moves to the section in view.",
|
|
118308
|
+
"description": "The mark that moves to the link of the section in view. It carries that link's place and size as `--indicator-x`, `--indicator-y`, `--indicator-inline-size` and `--indicator-block-size`, and `data-placed` once it has been placed, for a mark you draw and animate yourself.",
|
|
117360
118309
|
"name": "indicator"
|
|
117361
118310
|
},
|
|
117362
118311
|
{
|
|
@@ -117372,6 +118321,10 @@
|
|
|
117372
118321
|
{
|
|
117373
118322
|
"description": "A heading above the links, such as \"On this page\". It names the navigation.",
|
|
117374
118323
|
"name": "heading"
|
|
118324
|
+
},
|
|
118325
|
+
{
|
|
118326
|
+
"description": "A mark of your own, drawn inside the `indicator` part, where `--indicator-x`, `--indicator-y`, `--indicator-inline-size` and `--indicator-block-size` reach it.",
|
|
118327
|
+
"name": "indicator"
|
|
117375
118328
|
}
|
|
117376
118329
|
],
|
|
117377
118330
|
"members": [
|
|
@@ -117498,7 +118451,7 @@
|
|
|
117498
118451
|
"text": "Element[]"
|
|
117499
118452
|
},
|
|
117500
118453
|
"privacy": "private",
|
|
117501
|
-
"description": "The children that are the content, which is all of them but the heading.",
|
|
118454
|
+
"description": "The children that are the content, which is all of them but the heading and the mark.",
|
|
117502
118455
|
"readonly": true
|
|
117503
118456
|
},
|
|
117504
118457
|
{
|
|
@@ -122043,6 +122996,21 @@
|
|
|
122043
122996
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
122044
122997
|
}
|
|
122045
122998
|
},
|
|
122999
|
+
{
|
|
123000
|
+
"kind": "field",
|
|
123001
|
+
"name": "namedBy",
|
|
123002
|
+
"type": {
|
|
123003
|
+
"text": "string | null"
|
|
123004
|
+
},
|
|
123005
|
+
"privacy": "protected",
|
|
123006
|
+
"default": "null",
|
|
123007
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
123008
|
+
"attribute": "aria-label",
|
|
123009
|
+
"inheritedFrom": {
|
|
123010
|
+
"name": "MixinField",
|
|
123011
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
123012
|
+
}
|
|
123013
|
+
},
|
|
122046
123014
|
{
|
|
122047
123015
|
"kind": "field",
|
|
122048
123016
|
"name": "labeled",
|
|
@@ -123297,6 +124265,8 @@
|
|
|
123297
124265
|
"text": "string | null"
|
|
123298
124266
|
},
|
|
123299
124267
|
"default": "null",
|
|
124268
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
124269
|
+
"fieldName": "namedBy",
|
|
123300
124270
|
"inheritedFrom": {
|
|
123301
124271
|
"name": "MixinField",
|
|
123302
124272
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
@@ -127259,6 +128229,21 @@
|
|
|
127259
128229
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
127260
128230
|
}
|
|
127261
128231
|
},
|
|
128232
|
+
{
|
|
128233
|
+
"kind": "field",
|
|
128234
|
+
"name": "namedBy",
|
|
128235
|
+
"type": {
|
|
128236
|
+
"text": "string | null"
|
|
128237
|
+
},
|
|
128238
|
+
"privacy": "protected",
|
|
128239
|
+
"default": "null",
|
|
128240
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
128241
|
+
"attribute": "aria-label",
|
|
128242
|
+
"inheritedFrom": {
|
|
128243
|
+
"name": "MixinField",
|
|
128244
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
128245
|
+
}
|
|
128246
|
+
},
|
|
127262
128247
|
{
|
|
127263
128248
|
"kind": "field",
|
|
127264
128249
|
"name": "labeled",
|
|
@@ -128434,6 +129419,8 @@
|
|
|
128434
129419
|
"text": "string | null"
|
|
128435
129420
|
},
|
|
128436
129421
|
"default": "null",
|
|
129422
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
129423
|
+
"fieldName": "namedBy",
|
|
128437
129424
|
"inheritedFrom": {
|
|
128438
129425
|
"name": "MixinField",
|
|
128439
129426
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
@@ -129955,6 +130942,21 @@
|
|
|
129955
130942
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
129956
130943
|
}
|
|
129957
130944
|
},
|
|
130945
|
+
{
|
|
130946
|
+
"kind": "field",
|
|
130947
|
+
"name": "namedBy",
|
|
130948
|
+
"type": {
|
|
130949
|
+
"text": "string | null"
|
|
130950
|
+
},
|
|
130951
|
+
"privacy": "protected",
|
|
130952
|
+
"default": "null",
|
|
130953
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
130954
|
+
"attribute": "aria-label",
|
|
130955
|
+
"inheritedFrom": {
|
|
130956
|
+
"name": "MixinField",
|
|
130957
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
130958
|
+
}
|
|
130959
|
+
},
|
|
129958
130960
|
{
|
|
129959
130961
|
"kind": "field",
|
|
129960
130962
|
"name": "labeled",
|
|
@@ -131207,6 +132209,8 @@
|
|
|
131207
132209
|
"text": "string | null"
|
|
131208
132210
|
},
|
|
131209
132211
|
"default": "null",
|
|
132212
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
132213
|
+
"fieldName": "namedBy",
|
|
131210
132214
|
"inheritedFrom": {
|
|
131211
132215
|
"name": "MixinField",
|
|
131212
132216
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
@@ -135233,6 +136237,21 @@
|
|
|
135233
136237
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
135234
136238
|
}
|
|
135235
136239
|
},
|
|
136240
|
+
{
|
|
136241
|
+
"kind": "field",
|
|
136242
|
+
"name": "namedBy",
|
|
136243
|
+
"type": {
|
|
136244
|
+
"text": "string | null"
|
|
136245
|
+
},
|
|
136246
|
+
"privacy": "protected",
|
|
136247
|
+
"default": "null",
|
|
136248
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
136249
|
+
"attribute": "aria-label",
|
|
136250
|
+
"inheritedFrom": {
|
|
136251
|
+
"name": "MixinField",
|
|
136252
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
136253
|
+
}
|
|
136254
|
+
},
|
|
135236
136255
|
{
|
|
135237
136256
|
"kind": "field",
|
|
135238
136257
|
"name": "labeled",
|
|
@@ -136521,6 +137540,8 @@
|
|
|
136521
137540
|
"text": "string | null"
|
|
136522
137541
|
},
|
|
136523
137542
|
"default": "null",
|
|
137543
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
137544
|
+
"fieldName": "namedBy",
|
|
136524
137545
|
"inheritedFrom": {
|
|
136525
137546
|
"name": "MixinField",
|
|
136526
137547
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
@@ -138589,6 +139610,21 @@
|
|
|
138589
139610
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
138590
139611
|
}
|
|
138591
139612
|
},
|
|
139613
|
+
{
|
|
139614
|
+
"kind": "field",
|
|
139615
|
+
"name": "namedBy",
|
|
139616
|
+
"type": {
|
|
139617
|
+
"text": "string | null"
|
|
139618
|
+
},
|
|
139619
|
+
"privacy": "protected",
|
|
139620
|
+
"default": "null",
|
|
139621
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
139622
|
+
"attribute": "aria-label",
|
|
139623
|
+
"inheritedFrom": {
|
|
139624
|
+
"name": "MixinField",
|
|
139625
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
139626
|
+
}
|
|
139627
|
+
},
|
|
138592
139628
|
{
|
|
138593
139629
|
"kind": "field",
|
|
138594
139630
|
"name": "labeled",
|
|
@@ -139921,6 +140957,8 @@
|
|
|
139921
140957
|
"text": "string | null"
|
|
139922
140958
|
},
|
|
139923
140959
|
"default": "null",
|
|
140960
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
140961
|
+
"fieldName": "namedBy",
|
|
139924
140962
|
"inheritedFrom": {
|
|
139925
140963
|
"name": "MixinField",
|
|
139926
140964
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
@@ -148080,6 +149118,21 @@
|
|
|
148080
149118
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
148081
149119
|
}
|
|
148082
149120
|
},
|
|
149121
|
+
{
|
|
149122
|
+
"kind": "field",
|
|
149123
|
+
"name": "namedBy",
|
|
149124
|
+
"type": {
|
|
149125
|
+
"text": "string | null"
|
|
149126
|
+
},
|
|
149127
|
+
"privacy": "protected",
|
|
149128
|
+
"default": "null",
|
|
149129
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
149130
|
+
"attribute": "aria-label",
|
|
149131
|
+
"inheritedFrom": {
|
|
149132
|
+
"name": "MixinField",
|
|
149133
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
149134
|
+
}
|
|
149135
|
+
},
|
|
148083
149136
|
{
|
|
148084
149137
|
"kind": "field",
|
|
148085
149138
|
"name": "labeled",
|
|
@@ -149270,6 +150323,8 @@
|
|
|
149270
150323
|
"text": "string | null"
|
|
149271
150324
|
},
|
|
149272
150325
|
"default": "null",
|
|
150326
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
150327
|
+
"fieldName": "namedBy",
|
|
149273
150328
|
"inheritedFrom": {
|
|
149274
150329
|
"name": "MixinField",
|
|
149275
150330
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
@@ -151251,7 +152306,7 @@
|
|
|
151251
152306
|
"declarations": [
|
|
151252
152307
|
{
|
|
151253
152308
|
"kind": "class",
|
|
151254
|
-
"description": "Lays out the rows on a CSS grid, so every column lines up across rows and\neach row stays a real element that can be styled, hidden, or made\ninteractive. A `<table>` layout aligns columns but limits almost everything\nelse.\n\nA grid of elements has no table structure for assistive technology, so the\nroles are set explicitly: `table`, `row`, `cell`, `columnheader`, and\n`rowheader` for a `header` cell in a row of values. Rows are\n`display: contents`, so their cells become items of the one grid.\n\n**Sorting.** A column with `sortable` and a `field` draws its heading as a\nbutton that sorts the rows by the text of its cells, numbers by their value.\nYour markup is not reordered: the table draws the rows in the sorted order.\n\n1. Each press cycles the column through ascending, descending, and the\n order the rows were written in, which keeps a server's own ranking\n reachable.\n2. `helix-sort` asks first, with `field:direction`, or empty for the written\n order. Refuse it to keep the order, or to sort the rows yourself and set\n `sort`.\n3. `helix-sorted` follows once the order stands, and `sort` holds it.\n4. The heading carries `aria-sort`, and a screen reader hears `sorted-label`\n (\"Sorted by Name, ascending\") or `unsorted-label` from a polite region.\n\nTab reaches each sort button, and Enter or Space presses it.\n\nThe `heading` slot names the table: slot a heading or a line of text into\nit, and the table is named by its words. An `aria-label` or `aria-labelledby` on the\nhost wins over it.\n\n**Selecting.** `selectable` adds a column of checkboxes.\n\n1. Each row is known by its `value`, or by its place among the rows where it\n has none, and `selected` holds the chosen keys, comma separated, the same\n shape `DataTable` uses. `default-selected` is where it starts.\n2. A row's checkbox is named by `select-row-label` (\"Select {row}\") with the\n words of the row's first cell. The checkbox in the heading selects every\n row, and shows a dash while only some are chosen.\n3. `helix-select` asks first, with every key the change would leave.\n Refuse it to keep the selection. `helix-selected` follows once it stands.\n4. A chosen row takes `:state(selected)`, and a screen reader hears\n `selected-label` (\"2 selected\") from a polite region.\n\nTab reaches each checkbox, and Space ticks it. To act on one row, put a\nlink or a button in a cell, or give the row an `href`.\n\n**Moving rows.** `reorderable` adds a column of grips before the checkboxes,\nunder a heading named by `row-grips-label`.\n\n1. Each row is known by its `value`, or by its place among the rows where it\n has none, as for selecting. Give rows a `value` when they move, so a key\n stays with its row.\n2. A grip is a button named by `move-row-label` (\"Move {row}\") with the\n words of the row's first cell. Drag it to move its row, and the page\n scrolls near an edge. Or press it with Space, Enter, or a click to pick\n the row up, move it with Up, Down, Home, and End, and press it again to\n drop it. A click on another row drops it there, and Escape puts it back.\n3. `helix-before-reorder` asks first, and `helix-reorder` follows with\n `keys`, every row's key in the new order. **You move the rows**: the\n table moves no element of yours, and focus goes back to the moved row's\n grip once you have.\n4. Each step is said in the table's live region, in words you can change:\n `picked-up-label`, `moved-label`, `dropped-label`, and `canceled-label`.\n The grips do nothing while a sort is set.\n\n**A grid.** `grid` makes the table one tab stop that the arrow keys move\nthrough cell by cell, the headings included, as React Aria's table is. The\ntable is then a `grid` and each value a `gridcell`, and the table gives\nevery cell a `tabindex` so focus can rest on it: set `grid` only where the\ncells may carry one.\n\n| Key | What it does |\n|---|---|\n| Right, Left | Moves one cell along the row. Left moves on, on a right-to-left page. |\n| Down, Up | Moves one row, the headings included. |\n| Home, End | Moves to the first or the last cell of the row. |\n| Control with Home or End | Moves to the first or the last cell of the table. |\n| Page Down, Page Up | Moves by the rows that fit in view. |\n| 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. |\n| Enter on a cell of a row with `href` | Follows the row's link. |\n| Enter, Space on a sortable heading | Sorts by the column. |\n| Space on a row, Enter or Space on its checkbox cell | Selects the row, in a `selectable` table. |\n| Enter or Space on a grip cell | Picks the row up, or drops it, in a `reorderable` table. Up, Down, Home, and End move a row picked up, and Escape puts it back. |\n| Shift with Down or Up | Selects the rows it moves across, in a `selectable` table. |\n| Shift with Space | Selects every row from the one last chosen, in a `selectable` table. |\n| Control or Command with A | Selects every row, in a `selectable` table. |\n| A letter or a word | Moves to the next row whose first cell starts with what you typed. |\n| Tab | Leaves the table. |\n\nThe CSS custom properties listed for this component are written by it and\nread by the stylesheet that draws it. Do not set them. Each holds a number\nthe component computes and CSS cannot, so the stylesheet can draw the table\nwithout measuring anything.",
|
|
152309
|
+
"description": "Lays out the rows on a CSS grid, so every column lines up across rows and\neach row stays a real element that can be styled, hidden, or made\ninteractive. A `<table>` layout aligns columns but limits almost everything\nelse.\n\nA grid of elements has no table structure for assistive technology, so the\nroles are set explicitly: `table`, `row`, `cell`, `columnheader`, and\n`rowheader` for a `header` cell in a row of values. Rows are\n`display: contents`, so their cells become items of the one grid.\n\n**Sorting.** A column with `sortable` and a `field` draws its heading as a\nbutton that sorts the rows by the text of its cells, numbers by their value.\nYour markup is not reordered: the table draws the rows in the sorted order.\n\n1. Each press cycles the column through ascending, descending, and the\n order the rows were written in, which keeps a server's own ranking\n reachable.\n2. `helix-sort` asks first, with `field:direction`, or empty for the written\n order. Refuse it to keep the order, or to sort the rows yourself and set\n `sort`.\n3. `helix-sorted` follows once the order stands, and `sort` holds it.\n4. The heading carries `aria-sort`, and a screen reader hears `sorted-label`\n (\"Sorted by Name, ascending\") or `unsorted-label` from a polite region.\n\nTab reaches each sort button, and Enter or Space presses it.\n\nThe `heading` slot names the table: slot a heading or a line of text into\nit, and the table is named by its words. An `aria-label` or `aria-labelledby` on the\nhost wins over it.\n\n**Selecting.** `selectable` adds a column of checkboxes.\n\n1. Each row is known by its `value`, or by its place among the rows where it\n has none, and `selected` holds the chosen keys, comma separated, the same\n shape `DataTable` uses. `default-selected` is where it starts.\n2. A row's checkbox is named by `select-row-label` (\"Select {row}\") with the\n words of the row's first cell. The checkbox in the heading selects every\n row, and shows a dash while only some are chosen.\n3. `helix-select` asks first, with every key the change would leave.\n Refuse it to keep the selection. `helix-selected` follows once it stands.\n4. A chosen row takes `:state(selected)`, and a screen reader hears\n `selected-label` (\"2 selected\") from a polite region.\n\nTab reaches each checkbox, and Space ticks it. To act on one row, put a\nlink or a button in a cell, or give the row an `href`.\n\n**Moving rows.** `reorderable` adds a column of grips before the checkboxes,\nunder a heading named by `row-grips-label`.\n\n1. Each row is known by its `value`, or by its place among the rows where it\n has none, as for selecting. Give rows a `value` when they move, so a key\n stays with its row.\n2. A grip is a button named by `move-row-label` (\"Move {row}\") with the\n words of the row's first cell. Drag it to move its row, and the page\n scrolls near an edge. Or press it with Space, Enter, or a click to pick\n the row up, move it with Up, Down, Home, and End, and press it again to\n drop it. A click on another row drops it there, and Escape puts it back.\n3. `helix-before-reorder` asks first, and `helix-reorder` follows with\n `keys`, every row's key in the new order. **You move the rows**: the\n table moves no element of yours, and focus goes back to the moved row's\n grip once you have.\n4. Each step is said in the table's live region, in words you can change:\n `picked-up-label`, `moved-label`, `dropped-label`, and `canceled-label`.\n The grips do nothing while a sort is set.\n\n**A grid.** `grid` makes the table one tab stop that the arrow keys move\nthrough cell by cell, the headings included, as React Aria's table is. The\ntable is then a `grid` and each value a `gridcell`, and the table gives\nevery cell a `tabindex` so focus can rest on it: set `grid` only where the\ncells may carry one.\n\n| Key | What it does |\n|---|---|\n| Right, Left | Moves one cell along the row. Left moves on, on a right-to-left page. |\n| Down, Up | Moves one row, the headings included. |\n| Home, End | Moves to the first or the last cell of the row. |\n| Control with Home or End | Moves to the first or the last cell of the table. |\n| Page Down, Page Up | Moves by the rows that fit in view. |\n| 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. |\n| Enter on a cell of a row with `href` | Follows the row's link. |\n| Enter, Space on a sortable heading | Sorts by the column. |\n| Space on a row, Enter or Space on its checkbox cell | Selects the row, in a `selectable` table. |\n| Enter or Space on a grip cell | Picks the row up, or drops it, in a `reorderable` table. Up, Down, Home, and End move a row picked up, and Escape puts it back. |\n| Shift with Down or Up | Selects the rows it moves across, in a `selectable` table. |\n| Shift with Space | Selects every row from the one last chosen, in a `selectable` table. |\n| Control or Command with A | Selects every row, in a `selectable` table. |\n| A letter or a word | Moves to the next row whose first cell starts with what you typed. |\n| Tab | Leaves the table. |\n\nWhen the rows did not load, set `error-text`, such as \"The orders did not\nload\", and put a button that tries again in the `error` slot. The line shows\nafter the rows in place of the empty and loading lines, the live region says\nit, and the table takes the `error` state. Clear it once you try again.\n\nThe CSS custom properties listed for this component are written by it and\nread by the stylesheet that draws it. Do not set them. Each holds a number\nthe component computes and CSS cannot, so the stylesheet can draw the table\nwithout measuring anything.",
|
|
151255
152310
|
"name": "HelixHeadlessTable",
|
|
151256
152311
|
"cssProperties": [
|
|
151257
152312
|
{
|
|
@@ -151312,6 +152367,10 @@
|
|
|
151312
152367
|
"description": "The text shown when there are no rows.",
|
|
151313
152368
|
"name": "empty"
|
|
151314
152369
|
},
|
|
152370
|
+
{
|
|
152371
|
+
"description": "The line shown after the rows while `error-text` is set, in place of the empty and loading text.",
|
|
152372
|
+
"name": "error"
|
|
152373
|
+
},
|
|
151315
152374
|
{
|
|
151316
152375
|
"description": "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.",
|
|
151317
152376
|
"name": "grid-end"
|
|
@@ -151354,6 +152413,10 @@
|
|
|
151354
152413
|
"description": "Content shown when there are no rows and none are loading, such as a picture and a link. Falls back to `empty-text`, which the live region still says.",
|
|
151355
152414
|
"name": "empty"
|
|
151356
152415
|
},
|
|
152416
|
+
{
|
|
152417
|
+
"description": "Content shown while `error-text` is set, such as a button that tries again. Falls back to `error-text`, which the live region still says.",
|
|
152418
|
+
"name": "error"
|
|
152419
|
+
},
|
|
151357
152420
|
{
|
|
151358
152421
|
"description": "Words that name the table, shown above it, such as a heading.",
|
|
151359
152422
|
"name": "heading"
|
|
@@ -151474,6 +152537,16 @@
|
|
|
151474
152537
|
"words": true
|
|
151475
152538
|
}
|
|
151476
152539
|
},
|
|
152540
|
+
{
|
|
152541
|
+
"kind": "field",
|
|
152542
|
+
"name": "errorText",
|
|
152543
|
+
"type": {
|
|
152544
|
+
"text": "string"
|
|
152545
|
+
},
|
|
152546
|
+
"default": "''",
|
|
152547
|
+
"description": "The text shown and announced when the rows could not load. Set it when a\nfetch fails, and clear it once you try again. Empty, the default, shows\nnothing.\n\nWhile it is set, a line after the rows shows it, or your own content in the\n`error` slot, in place of the empty and loading lines, and the live region\nsays it.",
|
|
152548
|
+
"attribute": "error-text"
|
|
152549
|
+
},
|
|
151477
152550
|
{
|
|
151478
152551
|
"kind": "field",
|
|
151479
152552
|
"name": "fallbackLabel",
|
|
@@ -152900,6 +153973,15 @@
|
|
|
152900
153973
|
"description": "What screen readers hear when a held row is dropped, in a `reorderable` table.",
|
|
152901
153974
|
"fieldName": "droppedLabel"
|
|
152902
153975
|
},
|
|
153976
|
+
{
|
|
153977
|
+
"name": "error-text",
|
|
153978
|
+
"type": {
|
|
153979
|
+
"text": "string"
|
|
153980
|
+
},
|
|
153981
|
+
"default": "''",
|
|
153982
|
+
"description": "The text shown and announced when the rows could not load. Set it when a\nfetch fails, and clear it once you try again. Empty, the default, shows\nnothing.\n\nWhile it is set, a line after the rows shows it, or your own content in the\n`error` slot, in place of the empty and loading lines, and the live region\nsays it.",
|
|
153983
|
+
"fieldName": "errorText"
|
|
153984
|
+
},
|
|
152903
153985
|
{
|
|
152904
153986
|
"name": "fallback-label",
|
|
152905
153987
|
"type": {
|
|
@@ -153082,6 +154164,24 @@
|
|
|
153082
154164
|
}
|
|
153083
154165
|
}
|
|
153084
154166
|
],
|
|
154167
|
+
"cssStates": [
|
|
154168
|
+
{
|
|
154169
|
+
"description": "While there are no rows and none are loading.",
|
|
154170
|
+
"name": "empty"
|
|
154171
|
+
},
|
|
154172
|
+
{
|
|
154173
|
+
"description": "While `error-text` is set.",
|
|
154174
|
+
"name": "error"
|
|
154175
|
+
},
|
|
154176
|
+
{
|
|
154177
|
+
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
154178
|
+
"name": "settled",
|
|
154179
|
+
"inheritedFrom": {
|
|
154180
|
+
"name": "HelixElement",
|
|
154181
|
+
"module": "src/helix-element/helix-element.ts"
|
|
154182
|
+
}
|
|
154183
|
+
}
|
|
154184
|
+
],
|
|
153085
154185
|
"mixins": [
|
|
153086
154186
|
{
|
|
153087
154187
|
"name": "MixinCollection",
|
|
@@ -153118,16 +154218,6 @@
|
|
|
153118
154218
|
},
|
|
153119
154219
|
"tagName": "helix-headless-table",
|
|
153120
154220
|
"customElement": true,
|
|
153121
|
-
"cssStates": [
|
|
153122
|
-
{
|
|
153123
|
-
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
153124
|
-
"name": "settled",
|
|
153125
|
-
"inheritedFrom": {
|
|
153126
|
-
"name": "HelixElement",
|
|
153127
|
-
"module": "src/helix-element/helix-element.ts"
|
|
153128
|
-
}
|
|
153129
|
-
}
|
|
153130
|
-
],
|
|
153131
154221
|
"modulePath": "src/table/root/table-root.ts",
|
|
153132
154222
|
"definitionPath": "src/table/root/table-root.ts"
|
|
153133
154223
|
}
|
|
@@ -158531,6 +159621,21 @@
|
|
|
158531
159621
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
158532
159622
|
}
|
|
158533
159623
|
},
|
|
159624
|
+
{
|
|
159625
|
+
"kind": "field",
|
|
159626
|
+
"name": "namedBy",
|
|
159627
|
+
"type": {
|
|
159628
|
+
"text": "string | null"
|
|
159629
|
+
},
|
|
159630
|
+
"privacy": "protected",
|
|
159631
|
+
"default": "null",
|
|
159632
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
159633
|
+
"attribute": "aria-label",
|
|
159634
|
+
"inheritedFrom": {
|
|
159635
|
+
"name": "MixinField",
|
|
159636
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
159637
|
+
}
|
|
159638
|
+
},
|
|
158534
159639
|
{
|
|
158535
159640
|
"kind": "field",
|
|
158536
159641
|
"name": "labeled",
|
|
@@ -159790,6 +160895,8 @@
|
|
|
159790
160895
|
"text": "string | null"
|
|
159791
160896
|
},
|
|
159792
160897
|
"default": "null",
|
|
160898
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
160899
|
+
"fieldName": "namedBy",
|
|
159793
160900
|
"inheritedFrom": {
|
|
159794
160901
|
"name": "MixinField",
|
|
159795
160902
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
@@ -159985,7 +161092,7 @@
|
|
|
159985
161092
|
"declarations": [
|
|
159986
161093
|
{
|
|
159987
161094
|
"kind": "class",
|
|
159988
|
-
"description": "The list is a `TimePicker`, which you can also use on its own, for example in\na settings pane. This element adds the field, the overlay, and the form\nassociation, the same arrangement Date Input has with `DatePicker` and Color\nInput has with `ColorPicker`.\n\nYou can type a time or pick one. The list offers times at a step, and the\nfield lets you enter any time, such as `09:07`.\n\nThe value is always `HH:mm` on a 24-hour clock, or `HH:mm:ss` with\n`seconds`, because that is what the form\nsubmits, what `min` and `max` compare against, and what sorts correctly as a\nstring. While idle, the field shows the time in the user's locale format.\nOnce the caret is in the field, it shows the value itself, because a\nformatted time such as `2:30 PM` cannot be typed back and `Intl` has no\nparser for it.\n\nTyping sends `input` on each keystroke and `change` when you leave the\nfield. The trigger and ArrowDown open the list, and so does a press into the\nfield; Tab into the field opens nothing. In the list, the arrow keys, typed digits and PageUp and PageDown\nmove through the times, and Enter, Space or a click chooses one and closes\nthe panel. With `variant=\"wheels\"` each wheel moves the time as you turn it,\nthe panel stays open, and Enter or Escape closes it.\n\nWith `segmented`, the field is a row of segments in place of the text: an\nhour, a minute, and AM or PM where the clock has them, each set with digits\nor the arrow keys. Alt+Down opens the list from a segment.",
|
|
161095
|
+
"description": "The list is a `TimePicker`, which you can also use on its own, for example in\na settings pane. This element adds the field, the overlay, and the form\nassociation, the same arrangement Date Input has with `DatePicker` and Color\nInput has with `ColorPicker`.\n\nYou can type a time or pick one. The list offers times at a step, and the\nfield lets you enter any time, such as `09:07`.\n\nThe value is always `HH:mm` on a 24-hour clock, or `HH:mm:ss` with\n`seconds`, because that is what the form\nsubmits, what `min` and `max` compare against, and what sorts correctly as a\nstring. While idle, the field shows the time in the user's locale format.\nOnce the caret is in the field, it shows the value itself, because a\nformatted time such as `2:30 PM` cannot be typed back and `Intl` has no\nparser for it.\n\nTyping sends `input` on each keystroke and `change` when you leave the\nfield. The trigger and ArrowDown open the list, and so does a press into the\nfield; Tab into the field opens nothing. In the list, the arrow keys, typed digits and PageUp and PageDown\nmove through the times, and Enter, Space or a click chooses one and closes\nthe panel. With `variant=\"wheels\"` each wheel moves the time as you turn it,\nthe panel stays open, and Enter or Escape closes it.\n\nWith `segmented`, the field is a row of segments in place of the text: an\nhour, a minute, and AM or PM where the clock has them, each set with digits\nor the arrow keys. Alt+Down opens the list from a segment.\n\nText that is not a time gives the form an empty value, as a native time\nfield does, and `value` keeps the text so it can be corrected.\n\n**Keyboard.** The field is one tab stop, or each segment is with\n`segmented`, and the trigger is one more.\n\n| Key | What it does |\n|---|---|\n| Down | In the text field, opens the list on the chosen time. |\n| Alt with Down | Opens the list, from the text field or a segment. |\n| Enter | In the text field, takes the typed time and submits the form, as a native field does. In the list, chooses the highlighted time. |\n| Escape | Closes the list and puts focus back in the field. |\n| Up, Down on a segment | Steps the segment by one, round from its last value to its first. |\n| Page Up, Page Down on a segment | Steps by a page: two hours, or fifteen minutes or seconds. |\n| Home, End on a segment | Goes to the segment's first or last value. |\n| Digits on a segment | Fill it, and move to the next once it can take no more. |\n| A letter on the half of the day | Picks the half whose name starts with it, such as A for AM. |\n| Backspace, Delete on a segment | Empty the segment. |\n| Left, Right on a segment | Move to the previous or the next segment, along the line of text. |\n\nIn the list, the keys are `TimePicker`'s.",
|
|
159989
161096
|
"name": "HelixHeadlessTimeInput",
|
|
159990
161097
|
"cssParts": [
|
|
159991
161098
|
{
|
|
@@ -160076,6 +161183,14 @@
|
|
|
160076
161183
|
"description": "The picker's own message, under the times, while the picker's `feedback` is set.",
|
|
160077
161184
|
"name": "picker-feedback"
|
|
160078
161185
|
},
|
|
161186
|
+
{
|
|
161187
|
+
"description": "The picker's hint, which Time Input never sets: help under the field is the field's own `hint`.",
|
|
161188
|
+
"name": "picker-hint"
|
|
161189
|
+
},
|
|
161190
|
+
{
|
|
161191
|
+
"description": "The picker's visible label, which Time Input never draws: the field's `label` names it.",
|
|
161192
|
+
"name": "picker-label"
|
|
161193
|
+
},
|
|
160079
161194
|
{
|
|
160080
161195
|
"description": "The listbox holding the times, in `list`.",
|
|
160081
161196
|
"name": "picker-list"
|
|
@@ -160222,6 +161337,10 @@
|
|
|
160222
161337
|
}
|
|
160223
161338
|
],
|
|
160224
161339
|
"slots": [
|
|
161340
|
+
{
|
|
161341
|
+
"description": "Content after the time, before the trigger, such as a clear button.",
|
|
161342
|
+
"name": "end"
|
|
161343
|
+
},
|
|
160225
161344
|
{
|
|
160226
161345
|
"description": "The message that says what is wrong with the value.",
|
|
160227
161346
|
"name": "feedback"
|
|
@@ -160242,6 +161361,10 @@
|
|
|
160242
161361
|
"description": "Content in the panel above the times, such as a heading or a shortcut.",
|
|
160243
161362
|
"name": "panel-header"
|
|
160244
161363
|
},
|
|
161364
|
+
{
|
|
161365
|
+
"description": "Content before the time, such as an icon.",
|
|
161366
|
+
"name": "start"
|
|
161367
|
+
},
|
|
160245
161368
|
{
|
|
160246
161369
|
"description": "The icon on the field that shows a list opens.",
|
|
160247
161370
|
"name": "trigger"
|
|
@@ -160682,7 +161805,7 @@
|
|
|
160682
161805
|
"text": "readonly string[] | undefined"
|
|
160683
161806
|
},
|
|
160684
161807
|
"privacy": "protected",
|
|
160685
|
-
"description": "Each time, where `mode` holds several, sent one entry each.",
|
|
161808
|
+
"description": "Each time, where `mode` holds several, sent one entry each.\n\nOne time that is text and no time, such as `2:45 P`, is sent as an empty\nentry, as a native time field sends a time it cannot read.",
|
|
160686
161809
|
"readonly": true,
|
|
160687
161810
|
"inheritedFrom": {
|
|
160688
161811
|
"name": "MixinPickerField",
|
|
@@ -161998,6 +163121,21 @@
|
|
|
161998
163121
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
161999
163122
|
}
|
|
162000
163123
|
},
|
|
163124
|
+
{
|
|
163125
|
+
"kind": "field",
|
|
163126
|
+
"name": "namedBy",
|
|
163127
|
+
"type": {
|
|
163128
|
+
"text": "string | null"
|
|
163129
|
+
},
|
|
163130
|
+
"privacy": "protected",
|
|
163131
|
+
"default": "null",
|
|
163132
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
163133
|
+
"attribute": "aria-label",
|
|
163134
|
+
"inheritedFrom": {
|
|
163135
|
+
"name": "MixinField",
|
|
163136
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
163137
|
+
}
|
|
163138
|
+
},
|
|
162001
163139
|
{
|
|
162002
163140
|
"kind": "field",
|
|
162003
163141
|
"name": "labeled",
|
|
@@ -163490,6 +164628,8 @@
|
|
|
163490
164628
|
"text": "string | null"
|
|
163491
164629
|
},
|
|
163492
164630
|
"default": "null",
|
|
164631
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
164632
|
+
"fieldName": "namedBy",
|
|
163493
164633
|
"inheritedFrom": {
|
|
163494
164634
|
"name": "MixinField",
|
|
163495
164635
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
@@ -163709,7 +164849,7 @@
|
|
|
163709
164849
|
"declarations": [
|
|
163710
164850
|
{
|
|
163711
164851
|
"kind": "class",
|
|
163712
|
-
"description": "Shows the times at each `step` as a `Listbox`, which provides the keyboard\nbehavior, typeahead, scrolling into view, and announcements for a set of\noptions. `variant=\"wheels\"` shows a column each for the hour, the minute, and\nthe meridiem, and one for the second with `seconds`. Left and Right move\nbetween the wheels, and Tab does too.\n\n`hour-cycle` writes every time on a twelve or a twenty-four hour clock\nwhatever the locale, and `seconds` holds times to the second.\n\nThe step keeps the list usable. At the default of 15 minutes a day is 96\nrows, which people can scroll or type into. At 1 minute it is 1,440. Use the\nlist for the times your product offers, and Time Input for any time, the same\nway Date Input separates typing a date from picking one on the calendar.\n\nThe value is always `HH:mm` on a 24-hour clock, or `HH:mm:ss` with\n`seconds`. A form submits that shape,\n`min` and `max` compare against it, and it sorts as a string. Each row's text\nfollows the person's own conventions, from `Intl`.\n\nThe chosen row is marked in the served markup. The listbox gets the answer as\n`.value`, and Lit SSR serializes no property binding, so without more the 96\nserved rows would carry no mark until the listbox upgrades and runs `place`.\nEach option also gets `selected`, an attribute binding that does serialize,\nand `place` then writes the same answer from the same value. This is the same\n`selected` you write on `Option` elsewhere in Helix, and Date Picker marks\nits choice in markup for the same reason. The list and the wheels both do\nthis, because each wheel is also a listbox.",
|
|
164852
|
+
"description": "Shows the times at each `step` as a `Listbox`, which provides the keyboard\nbehavior, typeahead, scrolling into view, and announcements for a set of\noptions. `variant=\"wheels\"` shows a column each for the hour, the minute, and\nthe meridiem, and one for the second with `seconds`. Left and Right move\nbetween the wheels, and Tab does too.\n\n`hour-cycle` writes every time on a twelve or a twenty-four hour clock\nwhatever the locale, and `seconds` holds times to the second.\n\nThe step keeps the list usable. At the default of 15 minutes a day is 96\nrows, which people can scroll or type into. At 1 minute it is 1,440. Use the\nlist for the times your product offers, and Time Input for any time, the same\nway Date Input separates typing a date from picking one on the calendar.\n\nThe value is always `HH:mm` on a 24-hour clock, or `HH:mm:ss` with\n`seconds`. A form submits that shape,\n`min` and `max` compare against it, and it sorts as a string. Each row's text\nfollows the person's own conventions, from `Intl`.\n\nThe chosen row is marked in the served markup. The listbox gets the answer as\n`.value`, and Lit SSR serializes no property binding, so without more the 96\nserved rows would carry no mark until the listbox upgrades and runs `place`.\nEach option also gets `selected`, an attribute binding that does serialize,\nand `place` then writes the same answer from the same value. This is the same\n`selected` you write on `Option` elsewhere in Helix, and Date Picker marks\nits choice in markup for the same reason. The list and the wheels both do\nthis, because each wheel is also a listbox.\n\n**Keyboard.** The list is one tab stop, and each wheel is one.\n\n| Key | What it does |\n|---|---|\n| Down, Up | Moves to the next or the previous time, or in a wheel to the next or the previous hour, minute, second, or half of the day. |\n| Home, End | Moves to the first or the last time, or the first or the last in a wheel. |\n| Page Down, Page Up | Moves by as many times as the list shows at once. |\n| Digits | Moves to the next time that starts with what you typed, such as `9` for 9:00. |\n| Enter, Space | Chooses the highlighted time. Moving chooses too, except under `manual` or with a `mode`. With a `mode`, Space adds or removes the time. |\n| Right, Left | In the wheels, moves to the next or the previous wheel, mirrored right to left. |\n| Tab | Moves to the next wheel, then out of the picker. |\n\n**ARIA.** The list is a `listbox` named by `label`, a slotted label, the\nhost's `aria-label` or its `aria-labelledby`. A development build warns\nwhere all four are empty. The list is described by the hint, or by the\nmessage in `feedback` in its place, and carries `aria-multiselectable` with\na `mode` and `aria-invalid` while `feedback` says what is wrong. The wheels\nare a `group` with that name, holding one `listbox` per wheel, named \"Hour\",\n\"Minute\", \"Second\" and \"AM/PM\" in the page's language, and each described\nthe same way.",
|
|
163713
164853
|
"name": "HelixHeadlessTimePicker",
|
|
163714
164854
|
"cssParts": [
|
|
163715
164855
|
{
|
|
@@ -163772,6 +164912,14 @@
|
|
|
163772
164912
|
"description": "The message under the times, while `feedback` is set.",
|
|
163773
164913
|
"name": "feedback"
|
|
163774
164914
|
},
|
|
164915
|
+
{
|
|
164916
|
+
"description": "Help under the times, shown while there is no message in `feedback`.",
|
|
164917
|
+
"name": "hint"
|
|
164918
|
+
},
|
|
164919
|
+
{
|
|
164920
|
+
"description": "The visible label above the times, drawn while a label is slotted.",
|
|
164921
|
+
"name": "label"
|
|
164922
|
+
},
|
|
163775
164923
|
{
|
|
163776
164924
|
"description": "The listbox holding the times, in `list`.",
|
|
163777
164925
|
"name": "list"
|
|
@@ -163857,6 +165005,20 @@
|
|
|
163857
165005
|
"name": "option-text"
|
|
163858
165006
|
}
|
|
163859
165007
|
],
|
|
165008
|
+
"slots": [
|
|
165009
|
+
{
|
|
165010
|
+
"description": "What the list shows when no time falls between `min` and `max`, for content richer than `empty-text`.",
|
|
165011
|
+
"name": "empty"
|
|
165012
|
+
},
|
|
165013
|
+
{
|
|
165014
|
+
"description": "Help under the times, for content richer than the `hint` text.",
|
|
165015
|
+
"name": "hint"
|
|
165016
|
+
},
|
|
165017
|
+
{
|
|
165018
|
+
"description": "A visible label above the times, which names the list, for content richer than the `label` text.",
|
|
165019
|
+
"name": "label"
|
|
165020
|
+
}
|
|
165021
|
+
],
|
|
163860
165022
|
"members": [
|
|
163861
165023
|
{
|
|
163862
165024
|
"kind": "field",
|
|
@@ -163891,6 +165053,29 @@
|
|
|
163891
165053
|
"description": "Times that cannot be chosen, as `HH:mm`, separated by commas or spaces.\n\nThe counterpart to Date Picker's `disable-dates`, and it exists for the same\nshape of problem: `min` and `max` take away a span, and what a booking\nusually has to take away is a scatter. A morning with 09:30 and 11:00\nalready gone is not two bounds.\n\nA time not on the step is simply never offered, so it is not an error to\nname one, and naming every time in the list is how the empty state is\nreached honestly rather than by handing over an empty range.",
|
|
163892
165054
|
"attribute": "disable-times"
|
|
163893
165055
|
},
|
|
165056
|
+
{
|
|
165057
|
+
"kind": "field",
|
|
165058
|
+
"name": "emptyText",
|
|
165059
|
+
"type": {
|
|
165060
|
+
"text": "string"
|
|
165061
|
+
},
|
|
165062
|
+
"default": "'No times to choose from'",
|
|
165063
|
+
"description": "What the list says when no time falls between `min` and `max`.\n\nThe fallback of the `empty` slot.",
|
|
165064
|
+
"attribute": "empty-text",
|
|
165065
|
+
"helix": {
|
|
165066
|
+
"words": true
|
|
165067
|
+
}
|
|
165068
|
+
},
|
|
165069
|
+
{
|
|
165070
|
+
"kind": "field",
|
|
165071
|
+
"name": "hint",
|
|
165072
|
+
"type": {
|
|
165073
|
+
"text": "string"
|
|
165074
|
+
},
|
|
165075
|
+
"default": "''",
|
|
165076
|
+
"description": "Help under the times, such as the hours a shop is open, read by screen\nreaders as the list's description. A message in `feedback` replaces it.\n\nThe fallback of the `hint` slot.",
|
|
165077
|
+
"attribute": "hint"
|
|
165078
|
+
},
|
|
163894
165079
|
{
|
|
163895
165080
|
"kind": "field",
|
|
163896
165081
|
"name": "hourCycle",
|
|
@@ -163916,7 +165101,7 @@
|
|
|
163916
165101
|
"text": "string"
|
|
163917
165102
|
},
|
|
163918
165103
|
"default": "'Time'",
|
|
163919
|
-
"description": "Accessible name for the list, which has no visible one of its own.\n\nAn `aria-label` or `aria-labelledby` on the host names the list instead.",
|
|
165104
|
+
"description": "Accessible name for the list, which has no visible one of its own.\n\nAn `aria-label` or `aria-labelledby` on the host names the list instead,\nand so does a label slotted into `label`, which is also drawn above it.",
|
|
163920
165105
|
"attribute": "label",
|
|
163921
165106
|
"helix": {
|
|
163922
165107
|
"words": true
|
|
@@ -164467,6 +165652,75 @@
|
|
|
164467
165652
|
"description": "The list's name: the host's `aria-labelledby` read out, then its\n`aria-label`, then `label`, through core's `hostWords`, which Select reads\nits list's name through too.\n\nRead out as words, because the list is inside two shadow roots and an id on\nthe page reaches neither. Measured before this: `<helix-time-picker\naria-label=\"Slot\">` was a listbox named \"Time\".",
|
|
164468
165653
|
"readonly": true
|
|
164469
165654
|
},
|
|
165655
|
+
{
|
|
165656
|
+
"kind": "field",
|
|
165657
|
+
"name": "hintSlotted",
|
|
165658
|
+
"type": {
|
|
165659
|
+
"text": "boolean"
|
|
165660
|
+
},
|
|
165661
|
+
"privacy": "private",
|
|
165662
|
+
"default": "false",
|
|
165663
|
+
"description": "Whether a hint is slotted, which draws the `hint` part around it."
|
|
165664
|
+
},
|
|
165665
|
+
{
|
|
165666
|
+
"kind": "field",
|
|
165667
|
+
"name": "hinted",
|
|
165668
|
+
"type": {
|
|
165669
|
+
"text": "boolean"
|
|
165670
|
+
},
|
|
165671
|
+
"privacy": "private",
|
|
165672
|
+
"description": "Whether the hint shows: there is one, and no message stands in its place.",
|
|
165673
|
+
"readonly": true
|
|
165674
|
+
},
|
|
165675
|
+
{
|
|
165676
|
+
"kind": "field",
|
|
165677
|
+
"name": "describedBy",
|
|
165678
|
+
"type": {
|
|
165679
|
+
"text": "string | typeof nothing"
|
|
165680
|
+
},
|
|
165681
|
+
"privacy": "private",
|
|
165682
|
+
"description": "The ids that describe each list: the hint, or the message in its place.",
|
|
165683
|
+
"readonly": true
|
|
165684
|
+
},
|
|
165685
|
+
{
|
|
165686
|
+
"kind": "method",
|
|
165687
|
+
"name": "renderHint",
|
|
165688
|
+
"privacy": "private",
|
|
165689
|
+
"return": {
|
|
165690
|
+
"type": {
|
|
165691
|
+
"text": "TemplateResult"
|
|
165692
|
+
}
|
|
165693
|
+
},
|
|
165694
|
+
"description": "The hint under the times, or a bare slot while there is none to show,\nhidden while a message stands in its place, so a slotted hint goes too."
|
|
165695
|
+
},
|
|
165696
|
+
{
|
|
165697
|
+
"kind": "field",
|
|
165698
|
+
"name": "labelSlotted",
|
|
165699
|
+
"type": {
|
|
165700
|
+
"text": "boolean"
|
|
165701
|
+
},
|
|
165702
|
+
"privacy": "private",
|
|
165703
|
+
"default": "false",
|
|
165704
|
+
"description": "Whether a label is slotted, which draws the `label` part around it."
|
|
165705
|
+
},
|
|
165706
|
+
{
|
|
165707
|
+
"kind": "field",
|
|
165708
|
+
"name": "handleLabelSlot",
|
|
165709
|
+
"privacy": "private",
|
|
165710
|
+
"readonly": true,
|
|
165711
|
+
"description": "Reads the `label` slot, and the list's name again with it."
|
|
165712
|
+
},
|
|
165713
|
+
{
|
|
165714
|
+
"kind": "method",
|
|
165715
|
+
"name": "renderSlottedLabel",
|
|
165716
|
+
"privacy": "private",
|
|
165717
|
+
"return": {
|
|
165718
|
+
"type": {
|
|
165719
|
+
"text": "TemplateResult"
|
|
165720
|
+
}
|
|
165721
|
+
},
|
|
165722
|
+
"description": "The slotted label, in the `label` part, above the times. A bare slot while\nnothing is slotted, which draws no box."
|
|
165723
|
+
},
|
|
164470
165724
|
{
|
|
164471
165725
|
"kind": "field",
|
|
164472
165726
|
"name": "naming",
|
|
@@ -165588,6 +166842,24 @@
|
|
|
165588
166842
|
"description": "Times that cannot be chosen, as `HH:mm`, separated by commas or spaces.\n\nThe counterpart to Date Picker's `disable-dates`, and it exists for the same\nshape of problem: `min` and `max` take away a span, and what a booking\nusually has to take away is a scatter. A morning with 09:30 and 11:00\nalready gone is not two bounds.\n\nA time not on the step is simply never offered, so it is not an error to\nname one, and naming every time in the list is how the empty state is\nreached honestly rather than by handing over an empty range.",
|
|
165589
166843
|
"fieldName": "disableTimes"
|
|
165590
166844
|
},
|
|
166845
|
+
{
|
|
166846
|
+
"name": "empty-text",
|
|
166847
|
+
"type": {
|
|
166848
|
+
"text": "string"
|
|
166849
|
+
},
|
|
166850
|
+
"default": "'No times to choose from'",
|
|
166851
|
+
"description": "What the list says when no time falls between `min` and `max`.\n\nThe fallback of the `empty` slot.",
|
|
166852
|
+
"fieldName": "emptyText"
|
|
166853
|
+
},
|
|
166854
|
+
{
|
|
166855
|
+
"name": "hint",
|
|
166856
|
+
"type": {
|
|
166857
|
+
"text": "string"
|
|
166858
|
+
},
|
|
166859
|
+
"default": "''",
|
|
166860
|
+
"description": "Help under the times, such as the hours a shop is open, read by screen\nreaders as the list's description. A message in `feedback` replaces it.\n\nThe fallback of the `hint` slot.",
|
|
166861
|
+
"fieldName": "hint"
|
|
166862
|
+
},
|
|
165591
166863
|
{
|
|
165592
166864
|
"name": "hour-cycle",
|
|
165593
166865
|
"type": {
|
|
@@ -165610,7 +166882,7 @@
|
|
|
165610
166882
|
"text": "string"
|
|
165611
166883
|
},
|
|
165612
166884
|
"default": "'Time'",
|
|
165613
|
-
"description": "Accessible name for the list, which has no visible one of its own.\n\nAn `aria-label` or `aria-labelledby` on the host names the list instead.",
|
|
166885
|
+
"description": "Accessible name for the list, which has no visible one of its own.\n\nAn `aria-label` or `aria-labelledby` on the host names the list instead,\nand so does a label slotted into `label`, which is also drawn above it.",
|
|
165614
166886
|
"fieldName": "label"
|
|
165615
166887
|
},
|
|
165616
166888
|
{
|
|
@@ -166468,7 +167740,7 @@
|
|
|
166468
167740
|
"declarations": [
|
|
166469
167741
|
{
|
|
166470
167742
|
"kind": "class",
|
|
166471
|
-
"description": "Given `datetime`, the label you write is wrapped in a `<time>` element, so a\nmachine-readable value such as \"2026-08-19\" travels with a label such as\n\"yesterday\". Without `datetime`, the label is a `<span>`.\n\nEach entry draws the connector line that arrives at it and hides it when it\nis the first entry, using `:host(:first-child)`. This needs no index, no\ncounting parent, and no script. `Steps` and `Breadcrumbs` work the same way.\n\n`tone` sets the kind of event and is the only thing that colors the mark. It\nuses the same values as `Announcement`.",
|
|
167743
|
+
"description": "Given `datetime`, the label you write is wrapped in a `<time>` element, so a\nmachine-readable value such as \"2026-08-19\" travels with a label such as\n\"yesterday\". Without `datetime`, the label is a `<span>`.\n\n**`relative` writes the time for you** as how long ago it was, such as \"3\nhours ago\", from `datetime`, where the `time` slot is empty. The words move\non as they go stale, \"3 hours ago\" becoming \"4 hours ago\", with one wakeup\nshared by every reading on the page, as `FormatDate` keeps its own. They are\nin the language of the page, or of the nearest `lang`.\n\nEach entry draws the connector line that arrives at it and hides it when it\nis the first entry, using `:host(:first-child)`. This needs no index, no\ncounting parent, and no script. `Steps` and `Breadcrumbs` work the same way.\n\n`tone` sets the kind of event and is the only thing that colors the mark. It\nuses the same values as `Announcement`.",
|
|
166472
167744
|
"name": "HelixHeadlessTimelineItem",
|
|
166473
167745
|
"cssParts": [
|
|
166474
167746
|
{
|
|
@@ -166517,6 +167789,68 @@
|
|
|
166517
167789
|
"description": "When it happened, in machine-readable form. Setting it wraps the time in a\n`<time>` element.\n\nWhatever `<time>` accepts, which is a date, a time, both, a duration or a\nweek. Unset, the label is written as it was given and nothing claims to\nknow what instant it names.",
|
|
166518
167790
|
"attribute": "datetime"
|
|
166519
167791
|
},
|
|
167792
|
+
{
|
|
167793
|
+
"kind": "field",
|
|
167794
|
+
"name": "relative",
|
|
167795
|
+
"type": {
|
|
167796
|
+
"text": "'long' | 'narrow' | 'short' | undefined"
|
|
167797
|
+
},
|
|
167798
|
+
"description": "Writes the time as how long ago it was, or how long until it, from\n`datetime`, where the `time` slot is empty: `long` (\"3 hours ago\"),\n`short` (\"3 hr. ago\") or `narrow` (\"3h ago\"). Set with no value, it is\n`long`. The words move on as they go stale.",
|
|
167799
|
+
"attribute": "relative"
|
|
167800
|
+
},
|
|
167801
|
+
{
|
|
167802
|
+
"kind": "field",
|
|
167803
|
+
"name": "clock",
|
|
167804
|
+
"privacy": "private",
|
|
167805
|
+
"readonly": true,
|
|
167806
|
+
"default": "new RelativeClockController(this, { expires: (now) => { const moment = this.moment return moment ? this.readingAt(moment, now).next : undefined }, })",
|
|
167807
|
+
"description": "The time the reading is drawn against, moved on when the words go stale."
|
|
167808
|
+
},
|
|
167809
|
+
{
|
|
167810
|
+
"kind": "field",
|
|
167811
|
+
"name": "reading",
|
|
167812
|
+
"type": {
|
|
167813
|
+
"text": "string"
|
|
167814
|
+
},
|
|
167815
|
+
"privacy": "private",
|
|
167816
|
+
"default": "''",
|
|
167817
|
+
"description": "What the `time` slot shows where nothing is slotted: the reading under\n`relative`, read against the clock before each render, and nothing\notherwise."
|
|
167818
|
+
},
|
|
167819
|
+
{
|
|
167820
|
+
"kind": "field",
|
|
167821
|
+
"name": "moment",
|
|
167822
|
+
"type": {
|
|
167823
|
+
"text": "Date | undefined"
|
|
167824
|
+
},
|
|
167825
|
+
"privacy": "private",
|
|
167826
|
+
"description": "The instant `datetime` names, where `relative` asks for a reading of it.",
|
|
167827
|
+
"readonly": true
|
|
167828
|
+
},
|
|
167829
|
+
{
|
|
167830
|
+
"kind": "method",
|
|
167831
|
+
"name": "readingAt",
|
|
167832
|
+
"privacy": "private",
|
|
167833
|
+
"return": {
|
|
167834
|
+
"type": {
|
|
167835
|
+
"text": "Relative"
|
|
167836
|
+
}
|
|
167837
|
+
},
|
|
167838
|
+
"parameters": [
|
|
167839
|
+
{
|
|
167840
|
+
"name": "moment",
|
|
167841
|
+
"type": {
|
|
167842
|
+
"text": "Date"
|
|
167843
|
+
}
|
|
167844
|
+
},
|
|
167845
|
+
{
|
|
167846
|
+
"name": "now",
|
|
167847
|
+
"type": {
|
|
167848
|
+
"text": "Date"
|
|
167849
|
+
}
|
|
167850
|
+
}
|
|
167851
|
+
],
|
|
167852
|
+
"description": "What the reading says at `now`, and when it stops being true."
|
|
167853
|
+
},
|
|
166520
167854
|
{
|
|
166521
167855
|
"kind": "field",
|
|
166522
167856
|
"name": "tone",
|
|
@@ -166888,6 +168222,14 @@
|
|
|
166888
168222
|
"description": "When it happened, in machine-readable form. Setting it wraps the time in a\n`<time>` element.\n\nWhatever `<time>` accepts, which is a date, a time, both, a duration or a\nweek. Unset, the label is written as it was given and nothing claims to\nknow what instant it names.",
|
|
166889
168223
|
"fieldName": "datetime"
|
|
166890
168224
|
},
|
|
168225
|
+
{
|
|
168226
|
+
"name": "relative",
|
|
168227
|
+
"type": {
|
|
168228
|
+
"text": "'long' | 'narrow' | 'short' | undefined"
|
|
168229
|
+
},
|
|
168230
|
+
"description": "Writes the time as how long ago it was, or how long until it, from\n`datetime`, where the `time` slot is empty: `long` (\"3 hours ago\"),\n`short` (\"3 hr. ago\") or `narrow` (\"3h ago\"). Set with no value, it is\n`long`. The words move on as they go stale.",
|
|
168231
|
+
"fieldName": "relative"
|
|
168232
|
+
},
|
|
166891
168233
|
{
|
|
166892
168234
|
"name": "tone",
|
|
166893
168235
|
"type": {
|
|
@@ -169599,6 +170941,21 @@
|
|
|
169599
170941
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
169600
170942
|
}
|
|
169601
170943
|
},
|
|
170944
|
+
{
|
|
170945
|
+
"kind": "field",
|
|
170946
|
+
"name": "namedBy",
|
|
170947
|
+
"type": {
|
|
170948
|
+
"text": "string | null"
|
|
170949
|
+
},
|
|
170950
|
+
"privacy": "protected",
|
|
170951
|
+
"default": "null",
|
|
170952
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
170953
|
+
"attribute": "aria-label",
|
|
170954
|
+
"inheritedFrom": {
|
|
170955
|
+
"name": "MixinField",
|
|
170956
|
+
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
170957
|
+
}
|
|
170958
|
+
},
|
|
169602
170959
|
{
|
|
169603
170960
|
"kind": "field",
|
|
169604
170961
|
"name": "labeled",
|
|
@@ -170781,6 +172138,8 @@
|
|
|
170781
172138
|
"text": "string | null"
|
|
170782
172139
|
},
|
|
170783
172140
|
"default": "null",
|
|
172141
|
+
"description": "The name a screen reader says for the field where it shows no label, as\nthe platform's `aria-label`. It is drawn as a label and clipped, so it\nnames the control inside, and a new one renders at once.\n\n**An `aria-label` is read when the field renders, and nothing else would\nrender it again.** It is the platform's attribute and no property of this\nelement's, so writing a new one scheduled no update and the label kept\nthe old words. Data Table meets this on every column move: each row's\ncheckbox is named by the first column, so reordering renames every one.\n\nA reactive property on the attribute, which is the one way Lit observes\none. Overriding `observedAttributes` in a mixin compiled `this` to the\nmixin's own class, so every field observed only this mixin's attributes\nand dropped its own. Not reflected: the attribute is the consumer's.",
|
|
172142
|
+
"fieldName": "namedBy",
|
|
170784
172143
|
"inheritedFrom": {
|
|
170785
172144
|
"name": "MixinField",
|
|
170786
172145
|
"module": "src/mixins/mixin-field/mixin-field.ts"
|
|
@@ -179489,6 +180848,28 @@
|
|
|
179489
180848
|
"description": "The entry's name: its own text, without the content in its named slots.\n\n`textContent` takes the whole subtree: a row with a duration in `meta`\nreads as \"His Girl Friday0:06\", and that string reaches the player and the\nlock screen. Only the nodes the consumer left unslotted are the name;\nanything named is a column beside it.\n\nLight DOM rather than `assignedNodes`, so it answers on the server too,\nwhere there is no slot to ask. `Option.text` reads its own the same way.",
|
|
179490
180849
|
"readonly": true
|
|
179491
180850
|
},
|
|
180851
|
+
{
|
|
180852
|
+
"kind": "method",
|
|
180853
|
+
"name": "focus",
|
|
180854
|
+
"return": {
|
|
180855
|
+
"type": {
|
|
180856
|
+
"text": "void"
|
|
180857
|
+
}
|
|
180858
|
+
},
|
|
180859
|
+
"parameters": [
|
|
180860
|
+
{
|
|
180861
|
+
"name": "options",
|
|
180862
|
+
"optional": true,
|
|
180863
|
+
"type": {
|
|
180864
|
+
"text": "FocusOptions"
|
|
180865
|
+
}
|
|
180866
|
+
}
|
|
180867
|
+
],
|
|
180868
|
+
"description": "Focuses the entry's button, which is where the playlist's arrow keys send\nfocus. The host itself takes no focus.",
|
|
180869
|
+
"type": {
|
|
180870
|
+
"text": "focus(options?: FocusOptions) => void"
|
|
180871
|
+
}
|
|
180872
|
+
},
|
|
179492
180873
|
{
|
|
179493
180874
|
"kind": "field",
|
|
179494
180875
|
"name": "choose",
|
|
@@ -179894,6 +181275,20 @@
|
|
|
179894
181275
|
"fieldName": "value"
|
|
179895
181276
|
}
|
|
179896
181277
|
],
|
|
181278
|
+
"cssStates": [
|
|
181279
|
+
{
|
|
181280
|
+
"description": "The entry that is playing.",
|
|
181281
|
+
"name": "current"
|
|
181282
|
+
},
|
|
181283
|
+
{
|
|
181284
|
+
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
181285
|
+
"name": "settled",
|
|
181286
|
+
"inheritedFrom": {
|
|
181287
|
+
"name": "HelixElement",
|
|
181288
|
+
"module": "src/helix-element/helix-element.ts"
|
|
181289
|
+
}
|
|
181290
|
+
}
|
|
181291
|
+
],
|
|
179897
181292
|
"superclass": {
|
|
179898
181293
|
"name": "HelixElement",
|
|
179899
181294
|
"package": "@fusion.dev/helix-core"
|
|
@@ -179910,16 +181305,6 @@
|
|
|
179910
181305
|
},
|
|
179911
181306
|
"tagName": "helix-headless-video-playlist-item",
|
|
179912
181307
|
"customElement": true,
|
|
179913
|
-
"cssStates": [
|
|
179914
|
-
{
|
|
179915
|
-
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
179916
|
-
"name": "settled",
|
|
179917
|
-
"inheritedFrom": {
|
|
179918
|
-
"name": "HelixElement",
|
|
179919
|
-
"module": "src/helix-element/helix-element.ts"
|
|
179920
|
-
}
|
|
179921
|
-
}
|
|
179922
|
-
],
|
|
179923
181308
|
"modulePath": "src/video-playlist/item/video-playlist-item.ts",
|
|
179924
181309
|
"definitionPath": "src/video-playlist/item/video-playlist-item.ts"
|
|
179925
181310
|
}
|
|
@@ -180744,13 +182129,17 @@
|
|
|
180744
182129
|
"declarations": [
|
|
180745
182130
|
{
|
|
180746
182131
|
"kind": "class",
|
|
180747
|
-
"description": "**You slot the player**, so it keeps your appearance, extra controls,\ncaptions, and poster treatment. `Sandbox` takes its preview and `Menu` its\ntrigger the same way.\n\n**Entries are markup.** React skips properties it would set imperatively\nduring hydration, so an array property on a custom element is missing on the\nfirst paint of a server-rendered page. `using-the-elements.mdx` has the\nmeasurement. Markup also makes each entry a real button with its name inside.\n\n**The playlist does not play media.** It sets `src` on the player and tracks\nwhich entry is current. The current entry moves when:\n\n- an entry is pressed,\n- the player dispatches `helix-next` or `helix-previous`, or\n- the player reaches the end.\n\nOn `ended` the playlist advances and the next clip starts playing, because\nthe user already pressed play once. `repeat` decides what happens at the\nend: `one` plays the same entry again, and `all` goes from the last entry\nback to the first. Without it, the playlist stops on the last entry and\nsends `helix-end`. `shuffle` plays the entries in a random order, starting\nfrom the one that is current, and `previous` retraces that order.\n\n**The player is named by the current entry**, and the device's own media\ncontrols show the entry as the title. A player you gave a `label` keeps\nyour name, and only the title follows the entry.\n\n**Keyboard.** Each entry is a button in the tab order, and Enter or Space\nplays it. The
|
|
182132
|
+
"description": "**You slot the player**, so it keeps your appearance, extra controls,\ncaptions, and poster treatment. `Sandbox` takes its preview and `Menu` its\ntrigger the same way.\n\n**Entries are markup.** React skips properties it would set imperatively\nduring hydration, so an array property on a custom element is missing on the\nfirst paint of a server-rendered page. `using-the-elements.mdx` has the\nmeasurement. Markup also makes each entry a real button with its name inside.\n\n**The playlist does not play media.** It sets `src` on the player and tracks\nwhich entry is current. The current entry moves when:\n\n- an entry is pressed,\n- the player dispatches `helix-next` or `helix-previous`, or\n- the player reaches the end.\n\nOn `ended` the playlist advances and the next clip starts playing, because\nthe user already pressed play once. `repeat` decides what happens at the\nend: `one` plays the same entry again, and `all` goes from the last entry\nback to the first. Without it, the playlist stops on the last entry and\nsends `helix-end`. `shuffle` plays the entries in a random order, starting\nfrom the one that is current, and `previous` retraces that order.\n\n**The player is named by the current entry**, and the device's own media\ncontrols show the entry as the title. A player you gave a `label` keeps\nyour name, and only the title follows the entry.\n\n**Keyboard.** Each entry is a button in the tab order, and Enter or Space\nplays it. The arrow keys move focus to the entry before or after, and Home\nand End to the first and the last, passing over disabled entries. The\ncurrent entry carries `aria-current`. While focus is on the player, the\nplayer's own keys work, and `Video` lists them, and Shift with N or P plays\nthe next or the previous entry. The player's previous and next controls\nmove through the entries in the same order the playlist does.\n\n**What a screen reader hears.** A list named by `label`, with a button for\neach entry. When the playlist moves to another entry, by a press, by the\nplayer's controls, or at the end of a clip, a live region says\n`playing-label`, \"Now playing\" and the entry's name.",
|
|
180748
182133
|
"name": "HelixHeadlessVideoPlaylist",
|
|
180749
182134
|
"cssParts": [
|
|
180750
182135
|
{
|
|
180751
182136
|
"description": "The list of entries.",
|
|
180752
182137
|
"name": "items"
|
|
180753
182138
|
},
|
|
182139
|
+
{
|
|
182140
|
+
"description": "A live region that says which entry plays after the playlist moves.",
|
|
182141
|
+
"name": "live"
|
|
182142
|
+
},
|
|
180754
182143
|
{
|
|
180755
182144
|
"description": "The region that holds the player.",
|
|
180756
182145
|
"name": "player"
|
|
@@ -180790,6 +182179,27 @@
|
|
|
180790
182179
|
"words": true
|
|
180791
182180
|
}
|
|
180792
182181
|
},
|
|
182182
|
+
{
|
|
182183
|
+
"kind": "field",
|
|
182184
|
+
"name": "playingLabel",
|
|
182185
|
+
"type": {
|
|
182186
|
+
"text": "string"
|
|
182187
|
+
},
|
|
182188
|
+
"default": "'Now playing {title}'",
|
|
182189
|
+
"description": "What the live region says when the playlist moves to another entry.\n`{title}` is the entry's name.\n\n**A move a reader did not make is said.** At the end of a clip the\nplaylist starts the next one, and the only other trace of that is the\n`aria-current` on a button the reader is not on.",
|
|
182190
|
+
"attribute": "playing-label",
|
|
182191
|
+
"helix": {
|
|
182192
|
+
"words": true
|
|
182193
|
+
}
|
|
182194
|
+
},
|
|
182195
|
+
{
|
|
182196
|
+
"kind": "field",
|
|
182197
|
+
"name": "status",
|
|
182198
|
+
"privacy": "private",
|
|
182199
|
+
"readonly": true,
|
|
182200
|
+
"default": "new StatusController(this)",
|
|
182201
|
+
"description": "The live region, rendered from the first move."
|
|
182202
|
+
},
|
|
180793
182203
|
{
|
|
180794
182204
|
"kind": "field",
|
|
180795
182205
|
"name": "repeat",
|
|
@@ -180938,6 +182348,39 @@
|
|
|
180938
182348
|
"privacy": "private",
|
|
180939
182349
|
"readonly": true
|
|
180940
182350
|
},
|
|
182351
|
+
{
|
|
182352
|
+
"kind": "field",
|
|
182353
|
+
"name": "handleKeydown",
|
|
182354
|
+
"privacy": "private",
|
|
182355
|
+
"readonly": true,
|
|
182356
|
+
"description": "The arrow keys, Home and End on an entry move focus to another one.\n\n**The entries the keys reach are the enabled ones**, because a disabled\nbutton cannot take focus and a key that landed on one would leave focus\nwhere it was. Up and Left go back, Down and Right go on, and Left and\nRight swap on a right-to-left page, so a list laid out in a row moves the\nway it reads."
|
|
182357
|
+
},
|
|
182358
|
+
{
|
|
182359
|
+
"kind": "field",
|
|
182360
|
+
"name": "handlePlay",
|
|
182361
|
+
"privacy": "private",
|
|
182362
|
+
"readonly": true,
|
|
182363
|
+
"description": "The player playing again, after the end or anywhere, means the list has not ended."
|
|
182364
|
+
},
|
|
182365
|
+
{
|
|
182366
|
+
"kind": "method",
|
|
182367
|
+
"name": "takePlayerKey",
|
|
182368
|
+
"privacy": "private",
|
|
182369
|
+
"return": {
|
|
182370
|
+
"type": {
|
|
182371
|
+
"text": "boolean"
|
|
182372
|
+
}
|
|
182373
|
+
},
|
|
182374
|
+
"parameters": [
|
|
182375
|
+
{
|
|
182376
|
+
"name": "event",
|
|
182377
|
+
"type": {
|
|
182378
|
+
"text": "KeyboardEvent"
|
|
182379
|
+
}
|
|
182380
|
+
}
|
|
182381
|
+
],
|
|
182382
|
+
"description": "Shift with N plays the next entry and Shift with P the previous one, while\nfocus is on the player, the keys a reader knows from the common players.\nNot inside a field the player holds, where they are letters."
|
|
182383
|
+
},
|
|
180941
182384
|
{
|
|
180942
182385
|
"kind": "field",
|
|
180943
182386
|
"name": "handleNext",
|
|
@@ -181451,6 +182894,15 @@
|
|
|
181451
182894
|
"description": "The list's name, read by screen readers.",
|
|
181452
182895
|
"fieldName": "label"
|
|
181453
182896
|
},
|
|
182897
|
+
{
|
|
182898
|
+
"name": "playing-label",
|
|
182899
|
+
"type": {
|
|
182900
|
+
"text": "string"
|
|
182901
|
+
},
|
|
182902
|
+
"default": "'Now playing {title}'",
|
|
182903
|
+
"description": "What the live region says when the playlist moves to another entry.\n`{title}` is the entry's name.\n\n**A move a reader did not make is said.** At the end of a clip the\nplaylist starts the next one, and the only other trace of that is the\n`aria-current` on a button the reader is not on.",
|
|
182904
|
+
"fieldName": "playingLabel"
|
|
182905
|
+
},
|
|
181454
182906
|
{
|
|
181455
182907
|
"name": "repeat",
|
|
181456
182908
|
"type": {
|
|
@@ -181494,6 +182946,20 @@
|
|
|
181494
182946
|
}
|
|
181495
182947
|
}
|
|
181496
182948
|
],
|
|
182949
|
+
"cssStates": [
|
|
182950
|
+
{
|
|
182951
|
+
"description": "The last entry finished and the playlist stopped there, until an entry plays again.",
|
|
182952
|
+
"name": "ended"
|
|
182953
|
+
},
|
|
182954
|
+
{
|
|
182955
|
+
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
182956
|
+
"name": "settled",
|
|
182957
|
+
"inheritedFrom": {
|
|
182958
|
+
"name": "HelixElement",
|
|
182959
|
+
"module": "src/helix-element/helix-element.ts"
|
|
182960
|
+
}
|
|
182961
|
+
}
|
|
182962
|
+
],
|
|
181497
182963
|
"mixins": [
|
|
181498
182964
|
{
|
|
181499
182965
|
"name": "MixinControllerActive",
|
|
@@ -181528,16 +182994,6 @@
|
|
|
181528
182994
|
},
|
|
181529
182995
|
"tagName": "helix-headless-video-playlist",
|
|
181530
182996
|
"customElement": true,
|
|
181531
|
-
"cssStates": [
|
|
181532
|
-
{
|
|
181533
|
-
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
181534
|
-
"name": "settled",
|
|
181535
|
-
"inheritedFrom": {
|
|
181536
|
-
"name": "HelixElement",
|
|
181537
|
-
"module": "src/helix-element/helix-element.ts"
|
|
181538
|
-
}
|
|
181539
|
-
}
|
|
181540
|
-
],
|
|
181541
182997
|
"modulePath": "src/video-playlist/root/video-playlist-root.ts",
|
|
181542
182998
|
"definitionPath": "src/video-playlist/root/video-playlist-root.ts"
|
|
181543
182999
|
}
|
|
@@ -181816,6 +183272,15 @@
|
|
|
181816
183272
|
"kind": "javascript-module",
|
|
181817
183273
|
"path": "src/video/root/keys.ts",
|
|
181818
183274
|
"declarations": [
|
|
183275
|
+
{
|
|
183276
|
+
"kind": "variable",
|
|
183277
|
+
"name": "PLAYER_KEYS",
|
|
183278
|
+
"type": {
|
|
183279
|
+
"text": "string"
|
|
183280
|
+
},
|
|
183281
|
+
"default": "'Space K ArrowLeft ArrowRight Shift+ArrowLeft Shift+ArrowRight J L ArrowUp ArrowDown M F C Home End 0 1 2 3 4 5 6 7 8 9'",
|
|
183282
|
+
"description": "The keys `takeKey` answers, as `aria-keyshortcuts` names them."
|
|
183283
|
+
},
|
|
181819
183284
|
{
|
|
181820
183285
|
"kind": "function",
|
|
181821
183286
|
"name": "takeKey",
|
|
@@ -181848,6 +183313,14 @@
|
|
|
181848
183313
|
}
|
|
181849
183314
|
],
|
|
181850
183315
|
"exports": [
|
|
183316
|
+
{
|
|
183317
|
+
"kind": "js",
|
|
183318
|
+
"name": "PLAYER_KEYS",
|
|
183319
|
+
"declaration": {
|
|
183320
|
+
"name": "PLAYER_KEYS",
|
|
183321
|
+
"module": "src/video/root/keys.ts"
|
|
183322
|
+
}
|
|
183323
|
+
},
|
|
181851
183324
|
{
|
|
181852
183325
|
"kind": "js",
|
|
181853
183326
|
"name": "takeKey",
|
|
@@ -181864,7 +183337,7 @@
|
|
|
181864
183337
|
"declarations": [
|
|
181865
183338
|
{
|
|
181866
183339
|
"kind": "class",
|
|
181867
|
-
"description": "The picture is a native `<video>`, so decoding, buffering, captions, Picture\nin Picture, AirPlay, and codecs come from the platform. The component\nreplaces the control bar, because the native bar cannot be styled.\n\nThe scrubber and the volume are `<input type=\"range\">` elements, so arrow\nkeys, Home and End, touch targets, and screen reader announcements work as\nthey do natively.\n\nWhen you set `controls`, the browser's control bar is used, the Helix bar is\nnot drawn, and the keys below are not bound, so a key press does not seek\ntwice.\n\n**Keyboard.** The keys match other players, and they are bound on the\nelement only, so they work while focus is on the player.\n\n| Key | What it does |\n|---|---|\n| Space, `k` | Plays or pauses. Space on a button presses the button. |\n| Right, Left | Moves 5 seconds forward or back. |\n| Shift with Right or Left | Moves 10 seconds forward or back. |\n| `l`, `j` | Moves 10 seconds forward or back, as the skip buttons do. |\n| Up, Down | Raises or lowers the volume by a tenth. |\n| `m` | Mutes or unmutes. |\n| `f` | Enters or leaves fullscreen. |\n| Tab | Moves through the controls on the bar. |\n\nOn the scrubber and the volume slider, the arrow keys, Page Up, Page Down,\nHome, and End move the slider, as on any range input.\n\n`<source>` and `<track>` children are copied into the video. A media element\nselects resources from its own child nodes, and a slot is one node, so\nslotted sources would give the video no text tracks, no current source, and a\n`readyState` of zero, and it would not play. They are copied so your light\nDOM stays intact, and are copied again whenever the slot changes.\n\nThe player sends every media event of its inner video under the same name,\nwithout bubbling, as a `<video>` sends it. Listen on the player as you would\non a video: `timeupdate`, `volumechange`, `loadedmetadata`, `error`, and the\nrest.",
|
|
183340
|
+
"description": "The picture is a native `<video>`, so decoding, buffering, captions, Picture\nin Picture, AirPlay, and codecs come from the platform. The component\nreplaces the control bar, because the native bar cannot be styled.\n\nThe scrubber and the volume are `<input type=\"range\">` elements, so arrow\nkeys, Home and End, touch targets, and screen reader announcements work as\nthey do natively.\n\nWhen you set `controls`, the browser's control bar is used, the Helix bar is\nnot drawn, and the keys below are not bound, so a key press does not seek\ntwice.\n\n**Keyboard.** The keys match other players, and they are bound on the\nelement only, so they work while focus is on the player.\n\n| Key | What it does |\n|---|---|\n| Space, `k` | Plays or pauses. Space on a button presses the button. |\n| Right, Left | Moves 5 seconds forward or back. |\n| Shift with Right or Left | Moves 10 seconds forward or back. |\n| `l`, `j` | Moves 10 seconds forward or back, as the skip buttons do. |\n| Up, Down | Raises or lowers the volume by a tenth. |\n| `m` | Mutes or unmutes. |\n| `f` | Enters or leaves fullscreen. |\n| `c` | Turns captions on or off. |\n| Home, End | Goes to the start or the end. |\n| `0` to `9` | Goes to that tenth of the video: `5` is the middle. |\n| Tab | Moves through the controls on the bar. |\n\nA key with Control, Command, or Alt held is left to the browser. The\nplayer lists its keys in `aria-keyshortcuts`, and a live region says what a\nkey changed that is not on the focused control: playing or paused, muted,\nthe volume, captions on or off, and where the video is after a seek.\n\nOn the scrubber and the volume slider, the arrow keys, Page Up, Page Down,\nHome, and End move the slider, as on any range input.\n\n`<source>` and `<track>` children are copied into the video. A media element\nselects resources from its own child nodes, and a slot is one node, so\nslotted sources would give the video no text tracks, no current source, and a\n`readyState` of zero, and it would not play. They are copied so your light\nDOM stays intact, and are copied again whenever the slot changes.\n\nThe player sends every media event of its inner video under the same name,\nwithout bubbling, as a `<video>` sends it. Listen on the player as you would\non a video: `timeupdate`, `volumechange`, `loadedmetadata`, `error`, and the\nrest.",
|
|
181868
183341
|
"name": "HelixHeadlessVideo",
|
|
181869
183342
|
"cssProperties": [
|
|
181870
183343
|
{
|
|
@@ -181986,7 +183459,7 @@
|
|
|
181986
183459
|
"name": "header"
|
|
181987
183460
|
},
|
|
181988
183461
|
{
|
|
181989
|
-
"description": "A live region that
|
|
183462
|
+
"description": "A live region that says the loading text, and what a key changed, such as the volume. Visually hidden in the styled tier.",
|
|
181990
183463
|
"name": "live"
|
|
181991
183464
|
},
|
|
181992
183465
|
{
|
|
@@ -182210,6 +183683,19 @@
|
|
|
182210
183683
|
"attribute": "autoplay",
|
|
182211
183684
|
"reflects": true
|
|
182212
183685
|
},
|
|
183686
|
+
{
|
|
183687
|
+
"kind": "field",
|
|
183688
|
+
"name": "captionsHiddenLabel",
|
|
183689
|
+
"type": {
|
|
183690
|
+
"text": "string"
|
|
183691
|
+
},
|
|
183692
|
+
"default": "'Captions off'",
|
|
183693
|
+
"description": "What the live region says when `c` turns captions off.",
|
|
183694
|
+
"attribute": "captions-hidden-label",
|
|
183695
|
+
"helix": {
|
|
183696
|
+
"words": true
|
|
183697
|
+
}
|
|
183698
|
+
},
|
|
182213
183699
|
{
|
|
182214
183700
|
"kind": "field",
|
|
182215
183701
|
"name": "captionsLabel",
|
|
@@ -182236,6 +183722,19 @@
|
|
|
182236
183722
|
"words": true
|
|
182237
183723
|
}
|
|
182238
183724
|
},
|
|
183725
|
+
{
|
|
183726
|
+
"kind": "field",
|
|
183727
|
+
"name": "captionsShownLabel",
|
|
183728
|
+
"type": {
|
|
183729
|
+
"text": "string"
|
|
183730
|
+
},
|
|
183731
|
+
"default": "'Captions on'",
|
|
183732
|
+
"description": "What the live region says when `c` turns captions on.",
|
|
183733
|
+
"attribute": "captions-shown-label",
|
|
183734
|
+
"helix": {
|
|
183735
|
+
"words": true
|
|
183736
|
+
}
|
|
183737
|
+
},
|
|
182239
183738
|
{
|
|
182240
183739
|
"kind": "field",
|
|
182241
183740
|
"name": "controls",
|
|
@@ -182419,6 +183918,19 @@
|
|
|
182419
183918
|
"words": true
|
|
182420
183919
|
}
|
|
182421
183920
|
},
|
|
183921
|
+
{
|
|
183922
|
+
"kind": "field",
|
|
183923
|
+
"name": "mutedLabel",
|
|
183924
|
+
"type": {
|
|
183925
|
+
"text": "string"
|
|
183926
|
+
},
|
|
183927
|
+
"default": "'Muted'",
|
|
183928
|
+
"description": "What the live region says when a key mutes the video.",
|
|
183929
|
+
"attribute": "muted-label",
|
|
183930
|
+
"helix": {
|
|
183931
|
+
"words": true
|
|
183932
|
+
}
|
|
183933
|
+
},
|
|
182422
183934
|
{
|
|
182423
183935
|
"kind": "field",
|
|
182424
183936
|
"name": "muteLabel",
|
|
@@ -182455,6 +183967,19 @@
|
|
|
182455
183967
|
"description": "Controls to place in a menu behind one button, named the same way as\n`extra-controls`.\n\n**Named rather than measured, and the reason is that a width cannot answer\nthis.** A media query asks about the window, and the bar's problem is its\nown width: a video in a 320px sidebar on a desktop is cramped and a\nfull-bleed hero on a phone is not. A container query asks the right\nquestion and still cannot answer it, because how many controls there are is\nthe consumer's, so the threshold is not a width but a width per control,\nwhich is a guess. And a control that moves between the bar and a hidden\nmenu as the layout shifts is a control the reader has to find twice.\n\nSo the consumer says where the fold is, which they can, having already\nnamed the controls in order. A name in both lists is drawn once, on the\nbar: two of the same control is worse than either placement.",
|
|
182456
183968
|
"attribute": "overflow-controls"
|
|
182457
183969
|
},
|
|
183970
|
+
{
|
|
183971
|
+
"kind": "field",
|
|
183972
|
+
"name": "pausedLabel",
|
|
183973
|
+
"type": {
|
|
183974
|
+
"text": "string"
|
|
183975
|
+
},
|
|
183976
|
+
"default": "'Paused'",
|
|
183977
|
+
"description": "What the live region says when a key pauses the video.",
|
|
183978
|
+
"attribute": "paused-label",
|
|
183979
|
+
"helix": {
|
|
183980
|
+
"words": true
|
|
183981
|
+
}
|
|
183982
|
+
},
|
|
182458
183983
|
{
|
|
182459
183984
|
"kind": "field",
|
|
182460
183985
|
"name": "pauseLabel",
|
|
@@ -182507,6 +184032,19 @@
|
|
|
182507
184032
|
"words": true
|
|
182508
184033
|
}
|
|
182509
184034
|
},
|
|
184035
|
+
{
|
|
184036
|
+
"kind": "field",
|
|
184037
|
+
"name": "playingLabel",
|
|
184038
|
+
"type": {
|
|
184039
|
+
"text": "string"
|
|
184040
|
+
},
|
|
184041
|
+
"default": "'Playing'",
|
|
184042
|
+
"description": "What the live region says when a key plays the video.",
|
|
184043
|
+
"attribute": "playing-label",
|
|
184044
|
+
"helix": {
|
|
184045
|
+
"words": true
|
|
184046
|
+
}
|
|
184047
|
+
},
|
|
182510
184048
|
{
|
|
182511
184049
|
"kind": "field",
|
|
182512
184050
|
"name": "playLabel",
|
|
@@ -182670,6 +184208,32 @@
|
|
|
182670
184208
|
"words": true
|
|
182671
184209
|
}
|
|
182672
184210
|
},
|
|
184211
|
+
{
|
|
184212
|
+
"kind": "field",
|
|
184213
|
+
"name": "unmutedLabel",
|
|
184214
|
+
"type": {
|
|
184215
|
+
"text": "string"
|
|
184216
|
+
},
|
|
184217
|
+
"default": "'Unmuted'",
|
|
184218
|
+
"description": "What the live region says when a key unmutes the video.",
|
|
184219
|
+
"attribute": "unmuted-label",
|
|
184220
|
+
"helix": {
|
|
184221
|
+
"words": true
|
|
184222
|
+
}
|
|
184223
|
+
},
|
|
184224
|
+
{
|
|
184225
|
+
"kind": "field",
|
|
184226
|
+
"name": "volumeChangedLabel",
|
|
184227
|
+
"type": {
|
|
184228
|
+
"text": "string"
|
|
184229
|
+
},
|
|
184230
|
+
"default": "'Volume {percent} percent'",
|
|
184231
|
+
"description": "What the live region says when a key changes the volume. `{percent}` is the\nvolume from 0 to 100, written in the locale.",
|
|
184232
|
+
"attribute": "volume-changed-label",
|
|
184233
|
+
"helix": {
|
|
184234
|
+
"words": true
|
|
184235
|
+
}
|
|
184236
|
+
},
|
|
182673
184237
|
{
|
|
182674
184238
|
"kind": "field",
|
|
182675
184239
|
"name": "volumeLabel",
|
|
@@ -183342,6 +184906,66 @@
|
|
|
183342
184906
|
"readonly": true,
|
|
183343
184907
|
"description": "The keys every player uses, bound to this element rather than the document.\n\nA video is not a command palette: its keys belong to it while a reader is\non it, and a page with two videos on it would otherwise have both answering\nthe same press.\n\nA taken press is stopped here rather than in the table, because what the\ndefault would have been is the element's business: the table says what the\nkey means and this says that nothing else gets it."
|
|
183344
184908
|
},
|
|
184909
|
+
{
|
|
184910
|
+
"kind": "method",
|
|
184911
|
+
"name": "sayKey",
|
|
184912
|
+
"privacy": "private",
|
|
184913
|
+
"return": {
|
|
184914
|
+
"type": {
|
|
184915
|
+
"text": "void"
|
|
184916
|
+
}
|
|
184917
|
+
},
|
|
184918
|
+
"parameters": [
|
|
184919
|
+
{
|
|
184920
|
+
"name": "key",
|
|
184921
|
+
"type": {
|
|
184922
|
+
"text": "string"
|
|
184923
|
+
}
|
|
184924
|
+
},
|
|
184925
|
+
{
|
|
184926
|
+
"name": "paused",
|
|
184927
|
+
"type": {
|
|
184928
|
+
"text": "boolean"
|
|
184929
|
+
}
|
|
184930
|
+
},
|
|
184931
|
+
{
|
|
184932
|
+
"name": "video",
|
|
184933
|
+
"type": {
|
|
184934
|
+
"text": "HTMLVideoElement"
|
|
184935
|
+
}
|
|
184936
|
+
}
|
|
184937
|
+
],
|
|
184938
|
+
"description": "What a reader hears after a key, which changed something they may not be\nlooking at: the focus is on the player or a control, and the bar may be\nhidden.\n\n**Said from the video's state after the press**, except for playing,\nwhich starts on a promise: whether the video was paused before the press\nsays which way it went. Nothing for fullscreen, which a reader sees and a\nscreen reader reports as the window changing, nor for `c` where there are\nno captions to turn on."
|
|
184939
|
+
},
|
|
184940
|
+
{
|
|
184941
|
+
"kind": "field",
|
|
184942
|
+
"name": "said",
|
|
184943
|
+
"type": {
|
|
184944
|
+
"text": "string"
|
|
184945
|
+
},
|
|
184946
|
+
"privacy": "private",
|
|
184947
|
+
"default": "''",
|
|
184948
|
+
"description": "What the live region says after a key, until the video waits for data,\nwhich it says over this."
|
|
184949
|
+
},
|
|
184950
|
+
{
|
|
184951
|
+
"kind": "method",
|
|
184952
|
+
"name": "say",
|
|
184953
|
+
"privacy": "private",
|
|
184954
|
+
"return": {
|
|
184955
|
+
"type": {
|
|
184956
|
+
"text": "void"
|
|
184957
|
+
}
|
|
184958
|
+
},
|
|
184959
|
+
"parameters": [
|
|
184960
|
+
{
|
|
184961
|
+
"name": "words",
|
|
184962
|
+
"type": {
|
|
184963
|
+
"text": "string"
|
|
184964
|
+
}
|
|
184965
|
+
}
|
|
184966
|
+
],
|
|
184967
|
+
"description": "Puts words in the live region. The same words twice differ by a space no\nreader hears, since a region whose text does not change is not read again."
|
|
184968
|
+
},
|
|
183345
184969
|
{
|
|
183346
184970
|
"kind": "field",
|
|
183347
184971
|
"name": "captions",
|
|
@@ -183998,6 +185622,15 @@
|
|
|
183998
185622
|
"description": "Whether the video starts playing on its own. Browsers allow this only while\nit is muted.\n\nForwarded to the video, which decides. Whether an unprompted play is\npermitted is the browser's policy, and what follows a refused autoplay is a\npaused player showing its start control, which is the correct thing to be\nlooking at.",
|
|
183999
185623
|
"fieldName": "autoplay"
|
|
184000
185624
|
},
|
|
185625
|
+
{
|
|
185626
|
+
"name": "captions-hidden-label",
|
|
185627
|
+
"type": {
|
|
185628
|
+
"text": "string"
|
|
185629
|
+
},
|
|
185630
|
+
"default": "'Captions off'",
|
|
185631
|
+
"description": "What the live region says when `c` turns captions off.",
|
|
185632
|
+
"fieldName": "captionsHiddenLabel"
|
|
185633
|
+
},
|
|
184001
185634
|
{
|
|
184002
185635
|
"name": "captions-label",
|
|
184003
185636
|
"type": {
|
|
@@ -184016,6 +185649,15 @@
|
|
|
184016
185649
|
"description": "The name of the row that turns captions off, when the video has several\ntracks.",
|
|
184017
185650
|
"fieldName": "captionsOffLabel"
|
|
184018
185651
|
},
|
|
185652
|
+
{
|
|
185653
|
+
"name": "captions-shown-label",
|
|
185654
|
+
"type": {
|
|
185655
|
+
"text": "string"
|
|
185656
|
+
},
|
|
185657
|
+
"default": "'Captions on'",
|
|
185658
|
+
"description": "What the live region says when `c` turns captions on.",
|
|
185659
|
+
"fieldName": "captionsShownLabel"
|
|
185660
|
+
},
|
|
184019
185661
|
{
|
|
184020
185662
|
"name": "controls",
|
|
184021
185663
|
"type": {
|
|
@@ -184160,6 +185802,15 @@
|
|
|
184160
185802
|
"description": "What the button that opens `overflow-controls` is called.",
|
|
184161
185803
|
"fieldName": "moreLabel"
|
|
184162
185804
|
},
|
|
185805
|
+
{
|
|
185806
|
+
"name": "muted-label",
|
|
185807
|
+
"type": {
|
|
185808
|
+
"text": "string"
|
|
185809
|
+
},
|
|
185810
|
+
"default": "'Muted'",
|
|
185811
|
+
"description": "What the live region says when a key mutes the video.",
|
|
185812
|
+
"fieldName": "mutedLabel"
|
|
185813
|
+
},
|
|
184163
185814
|
{
|
|
184164
185815
|
"name": "mute-label",
|
|
184165
185816
|
"type": {
|
|
@@ -184187,6 +185838,15 @@
|
|
|
184187
185838
|
"description": "Controls to place in a menu behind one button, named the same way as\n`extra-controls`.\n\n**Named rather than measured, and the reason is that a width cannot answer\nthis.** A media query asks about the window, and the bar's problem is its\nown width: a video in a 320px sidebar on a desktop is cramped and a\nfull-bleed hero on a phone is not. A container query asks the right\nquestion and still cannot answer it, because how many controls there are is\nthe consumer's, so the threshold is not a width but a width per control,\nwhich is a guess. And a control that moves between the bar and a hidden\nmenu as the layout shifts is a control the reader has to find twice.\n\nSo the consumer says where the fold is, which they can, having already\nnamed the controls in order. A name in both lists is drawn once, on the\nbar: two of the same control is worse than either placement.",
|
|
184188
185839
|
"fieldName": "overflowControls"
|
|
184189
185840
|
},
|
|
185841
|
+
{
|
|
185842
|
+
"name": "paused-label",
|
|
185843
|
+
"type": {
|
|
185844
|
+
"text": "string"
|
|
185845
|
+
},
|
|
185846
|
+
"default": "'Paused'",
|
|
185847
|
+
"description": "What the live region says when a key pauses the video.",
|
|
185848
|
+
"fieldName": "pausedLabel"
|
|
185849
|
+
},
|
|
184190
185850
|
{
|
|
184191
185851
|
"name": "pause-label",
|
|
184192
185852
|
"type": {
|
|
@@ -184223,6 +185883,15 @@
|
|
|
184223
185883
|
"description": "The name of the player when `label` is not set. The player is a group, and\nthis is what a screen reader calls it on arriving.",
|
|
184224
185884
|
"fieldName": "playerLabel"
|
|
184225
185885
|
},
|
|
185886
|
+
{
|
|
185887
|
+
"name": "playing-label",
|
|
185888
|
+
"type": {
|
|
185889
|
+
"text": "string"
|
|
185890
|
+
},
|
|
185891
|
+
"default": "'Playing'",
|
|
185892
|
+
"description": "What the live region says when a key plays the video.",
|
|
185893
|
+
"fieldName": "playingLabel"
|
|
185894
|
+
},
|
|
184226
185895
|
{
|
|
184227
185896
|
"name": "play-label",
|
|
184228
185897
|
"type": {
|
|
@@ -184348,6 +186017,24 @@
|
|
|
184348
186017
|
"description": "How the scrubber reads out where the video is, with `{position}` and\n`{duration}` filled in.",
|
|
184349
186018
|
"fieldName": "timeLabel"
|
|
184350
186019
|
},
|
|
186020
|
+
{
|
|
186021
|
+
"name": "unmuted-label",
|
|
186022
|
+
"type": {
|
|
186023
|
+
"text": "string"
|
|
186024
|
+
},
|
|
186025
|
+
"default": "'Unmuted'",
|
|
186026
|
+
"description": "What the live region says when a key unmutes the video.",
|
|
186027
|
+
"fieldName": "unmutedLabel"
|
|
186028
|
+
},
|
|
186029
|
+
{
|
|
186030
|
+
"name": "volume-changed-label",
|
|
186031
|
+
"type": {
|
|
186032
|
+
"text": "string"
|
|
186033
|
+
},
|
|
186034
|
+
"default": "'Volume {percent} percent'",
|
|
186035
|
+
"description": "What the live region says when a key changes the volume. `{percent}` is the\nvolume from 0 to 100, written in the locale.",
|
|
186036
|
+
"fieldName": "volumeChangedLabel"
|
|
186037
|
+
},
|
|
184351
186038
|
{
|
|
184352
186039
|
"name": "volume-label",
|
|
184353
186040
|
"type": {
|
|
@@ -184841,7 +186528,7 @@
|
|
|
184841
186528
|
"declarations": [
|
|
184842
186529
|
{
|
|
184843
186530
|
"kind": "class",
|
|
184844
|
-
"description": "The items arrive as data, in one of two ways:\n\n- `items` takes an array. A framework sets it as a property, and React\n hydration keeps it.\n- `for` names a `<script type=\"application/json\">` that holds an array, which\n a server sends as markup.\n\nEach item is drawn into a row in one of two ways:\n\n- `renderItem` is a function from an item and its index to the row's\n content: a Lit template, a string, or a DOM node.\n- A `<template>` child defines one row. `data-field=\"name\"` fills an element\n with the item's `name` as text, and `data-field-href=\"url\"` writes the\n item's `url` into `href`, the same for any attribute. A field may be a path\n of keys, such as `author.name`.\n\nRows are your markup in the light DOM, so your stylesheet styles them.\n\n**A grid.** `columns` lays the items out that many to a line, as a grid of\nequal columns, and windows the set a line at a time, as React Aria's grid\nlayout does. Each item draws one element, a cell of the grid, and\n`estimate` is the height of a line. Space the items with padding inside\neach one, which the list measures with the line.\n\n**Keyboard.** The list is one tab stop.\n\n| Key | What it does |\n|---|---|\n| Down, Up | Moves to the next or the previous item, or in a grid to the item in the same column on the next or the previous line. |\n| Right, Left | In a grid, moves to the next or the previous item along the line, the other way round on a right-to-left page. |\n| Home, End | Moves to the first or the last item. |\n| Page Down, Page Up | Moves by the number of items, or of lines in a grid, on screen. |\n| A letter or a word | Moves to the next item whose text starts with what you typed. |\n| Tab | Moves into the focused row's own links and buttons, then out of the list. |\n\nAn item that is not drawn is scrolled into view and focused, so a keyboard\nreaches the whole set. When the row holding the tab stop scrolls away, the\nstop moves to the first row on screen. Typing matches each item's\n`text-field`, which is the first `data-field` of the row template by default,\nor the item itself when it is a string or a number.\n\nEach row says its place in the whole set with `aria-posinset` and\n`aria-setsize`, so a screen reader says \"4,000 of 10,000\". The row holding\nfocus stays drawn when it scrolls out.\n\n**Selecting.** `selection-mode` makes the list a list box a reader chooses\nfrom: `single` selects one item and `multiple` any number. Space or a press\nselects an item, Shift with Space, an arrow, Home, End or a press takes in\nthe items from the last one chosen, and Control or Command with A selects\nthem all, in `multiple`. `value` holds the chosen items' keys, separated by\ncommas, in the order of the set: `key-field` names each item's key, and a\nstring or a number item is its own key. A change asks with\n`helix-before-change` and tells with `change`. Each row is an `option`\nmarked `aria-selected`, so a row's own links and buttons are not reached\nthere: keep those to a list without `selection-mode`.\n\n**Loading more.** `helix-range-change` fires as the items on screen change,\nand `range` holds them. `helix-load-more` fires once a reader is within one\nscreen of the end, once for each length of the set: add to `items` and it can\nfire again. While you fetch, set `loading`: the list is busy, and a row after\nthe last item says \"Loading more\" (`loading-label`, or your own content in\nthe `loading` slot). `scrollToIndex` takes a reader to an item.\n\n**An empty list.** Set `empty-label`, or put your own content in the `empty`\nslot, for a row shown when there are no items and none are loading, such as\n\"No messages yet\" and a link to write one. Without either, an empty list\nshows nothing, since a list whose items have not arrived yet has not said\nit has none.\n\n**Row height.** Rows are placed by `estimate` until they are drawn. Then the\nlist reads the drawn rows' height once and places every row by it, so a\nwrong estimate still reaches the last item. Set `measured` for rows of\ndifferent heights. Once the list draws rows of different heights, such as\nrows that wrap on a narrow screen, it places each row by its own height\nwhether `measured` is set or not.\n\nThe list follows its source. A new `items` array, an edit to the script's\ntext, or a script replaced under the same id draws the new rows. A row that\nstays in view keeps its element as the list scrolls.\n\nThe viewport scrolls on this tier. It carries `data-scroller`, and `core`\nships `[data-scroller] { overflow: auto }` into every shadow root, so\n`scrollTop` works with no stylesheet. You still need to set a block size.",
|
|
186531
|
+
"description": "The items arrive as data, in one of two ways:\n\n- `items` takes an array. A framework sets it as a property, and React\n hydration keeps it.\n- `for` names a `<script type=\"application/json\">` that holds an array, which\n a server sends as markup.\n\nEach item is drawn into a row in one of two ways:\n\n- `renderItem` is a function from an item and its index to the row's\n content: a Lit template, a string, or a DOM node.\n- A `<template>` child defines one row. `data-field=\"name\"` fills an element\n with the item's `name` as text, and `data-field-href=\"url\"` writes the\n item's `url` into `href`, the same for any attribute. A field may be a path\n of keys, such as `author.name`.\n\nRows are your markup in the light DOM, so your stylesheet styles them.\n\n**A grid.** `columns` lays the items out that many to a line, as a grid of\nequal columns, and windows the set a line at a time, as React Aria's grid\nlayout does. Each item draws one element, a cell of the grid, and\n`estimate` is the height of a line. Space the items with padding inside\neach one, which the list measures with the line.\n\n**Keyboard.** The list is one tab stop.\n\n| Key | What it does |\n|---|---|\n| Down, Up | Moves to the next or the previous item, or in a grid to the item in the same column on the next or the previous line. |\n| Right, Left | In a grid, moves to the next or the previous item along the line, the other way round on a right-to-left page. |\n| Home, End | Moves to the first or the last item. |\n| Page Down, Page Up | Moves by the number of items, or of lines in a grid, on screen. |\n| A letter or a word | Moves to the next item whose text starts with what you typed. |\n| Tab | Moves into the focused row's own links and buttons, then out of the list. |\n\nAn item that is not drawn is scrolled into view and focused, so a keyboard\nreaches the whole set. When the row holding the tab stop scrolls away, the\nstop moves to the first row on screen. Typing matches each item's\n`text-field`, which is the first `data-field` of the row template by default,\nor the item itself when it is a string or a number.\n\nEach row says its place in the whole set with `aria-posinset` and\n`aria-setsize`, so a screen reader says \"4,000 of 10,000\". The row holding\nfocus stays drawn when it scrolls out.\n\n**Selecting.** `selection-mode` makes the list a list box a reader chooses\nfrom: `single` selects one item and `multiple` any number. Space or a press\nselects an item, Shift with Space, an arrow, Home, End or a press takes in\nthe items from the last one chosen, and Control or Command with A selects\nthem all, in `multiple`. `value` holds the chosen items' keys, separated by\ncommas, in the order of the set: `key-field` names each item's key, and a\nstring or a number item is its own key. A change asks with\n`helix-before-change` and tells with `change`. Each row is an `option`\nmarked `aria-selected`, so a row's own links and buttons are not reached\nthere: keep those to a list without `selection-mode`.\n\n**Loading more.** `helix-range-change` fires as the items on screen change,\nand `range` holds them. `helix-load-more` fires once a reader is within one\nscreen of the end, once for each length of the set: add to `items` and it can\nfire again. While you fetch, set `loading`: the list is busy, and a row after\nthe last item says \"Loading more\" (`loading-label`, or your own content in\nthe `loading` slot). `scrollToIndex` takes a reader to an item.\n\n**An empty list.** Set `empty-label`, or put your own content in the `empty`\nslot, for a row shown when there are no items and none are loading, such as\n\"No messages yet\" and a link to write one. Without either, an empty list\nshows nothing, since a list whose items have not arrived yet has not said\nit has none.\n\nThe list takes the `empty` state while it has read its items and holds none,\nand the `loading` state while `loading` is set, so your stylesheet can\nchange the box around it for either. A list with no name is reported once\nin a development build. Name it with `label` or `aria-label`.\n\n**Row height.** Rows are placed by `estimate` until they are drawn. Then the\nlist reads the drawn rows' height once and places every row by it, so a\nwrong estimate still reaches the last item. Set `measured` for rows of\ndifferent heights. Once the list draws rows of different heights, such as\nrows that wrap on a narrow screen, it places each row by its own height\nwhether `measured` is set or not.\n\nThe list follows its source. A new `items` array, an edit to the script's\ntext, or a script replaced under the same id draws the new rows. A row that\nstays in view keeps its element as the list scrolls.\n\nThe viewport scrolls on this tier. It carries `data-scroller`, and `core`\nships `[data-scroller] { overflow: auto }` into every shadow root, so\n`scrollTop` works with no stylesheet. You still need to set a block size.",
|
|
184845
186532
|
"name": "HelixHeadlessVirtualList",
|
|
184846
186533
|
"cssParts": [
|
|
184847
186534
|
{
|
|
@@ -185135,7 +186822,7 @@
|
|
|
185135
186822
|
"name": "aria",
|
|
185136
186823
|
"privacy": "protected",
|
|
185137
186824
|
"readonly": true,
|
|
185138
|
-
"default": "new AriaForwardController(this, { label: true, target: () => this.partNamed('viewport'), })",
|
|
186825
|
+
"default": "new AriaForwardController(this, { label: true, target: () => this.partNamed('viewport'), /* A list with no name is announced as a list and nothing more, and only a window of its rows is there to say what it holds. Development builds only. */ unnamed: 'Give it a `label`, or an `aria-label` that says what the items are.', })",
|
|
185139
186826
|
"description": "Carries a host `aria-label` and `aria-labelledby` to the element with the `list` role."
|
|
185140
186827
|
},
|
|
185141
186828
|
{
|
|
@@ -186111,6 +187798,24 @@
|
|
|
186111
187798
|
"fieldName": "value"
|
|
186112
187799
|
}
|
|
186113
187800
|
],
|
|
187801
|
+
"cssStates": [
|
|
187802
|
+
{
|
|
187803
|
+
"description": "While the list has read its items and holds none.",
|
|
187804
|
+
"name": "empty"
|
|
187805
|
+
},
|
|
187806
|
+
{
|
|
187807
|
+
"description": "While `loading` is set.",
|
|
187808
|
+
"name": "loading"
|
|
187809
|
+
},
|
|
187810
|
+
{
|
|
187811
|
+
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
187812
|
+
"name": "settled",
|
|
187813
|
+
"inheritedFrom": {
|
|
187814
|
+
"name": "HelixElement",
|
|
187815
|
+
"module": "src/helix-element/helix-element.ts"
|
|
187816
|
+
}
|
|
187817
|
+
}
|
|
187818
|
+
],
|
|
186114
187819
|
"superclass": {
|
|
186115
187820
|
"name": "HelixElement",
|
|
186116
187821
|
"package": "@fusion.dev/helix-core"
|
|
@@ -186134,16 +187839,6 @@
|
|
|
186134
187839
|
},
|
|
186135
187840
|
"tagName": "helix-headless-virtual-list",
|
|
186136
187841
|
"customElement": true,
|
|
186137
|
-
"cssStates": [
|
|
186138
|
-
{
|
|
186139
|
-
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
186140
|
-
"name": "settled",
|
|
186141
|
-
"inheritedFrom": {
|
|
186142
|
-
"name": "HelixElement",
|
|
186143
|
-
"module": "src/helix-element/helix-element.ts"
|
|
186144
|
-
}
|
|
186145
|
-
}
|
|
186146
|
-
],
|
|
186147
187842
|
"modulePath": "src/virtual-list/root/virtual-list-root.ts",
|
|
186148
187843
|
"definitionPath": "src/virtual-list/root/virtual-list-root.ts"
|
|
186149
187844
|
}
|
|
@@ -186170,6 +187865,6 @@
|
|
|
186170
187865
|
],
|
|
186171
187866
|
"helix": {
|
|
186172
187867
|
"package": "@fusion.dev/helix-headless",
|
|
186173
|
-
"version": "0.
|
|
187868
|
+
"version": "0.156.0"
|
|
186174
187869
|
}
|
|
186175
187870
|
}
|