@fusion.dev/helix-headless 0.153.0 → 0.154.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 +459 -53
- package/dist/badge/root/badge-root.d.ts +15 -2
- package/dist/badge/root/badge-root.js +20 -3
- package/dist/card/root/card-root.d.ts +31 -11
- package/dist/card/root/card-root.js +25 -11
- package/dist/code/root/code-root.d.ts +7 -0
- package/dist/code/root/code-root.js +1 -1
- package/dist/code-block/root/code-block-root.d.ts +37 -1
- package/dist/code-block/root/code-block-root.js +38 -5
- package/dist/empty/root/empty-root.d.ts +19 -1
- package/dist/empty/root/empty-root.js +13 -4
- package/dist/icon/fetch.d.ts +20 -0
- package/dist/icon/fetch.js +70 -0
- package/dist/icon/root/icon-root.d.ts +27 -5
- package/dist/icon/root/icon-root.js +41 -17
- package/dist/quote/root/quote-root.d.ts +17 -1
- package/dist/quote/root/quote-root.js +15 -2
- package/dist/skeleton/root/skeleton-root.d.ts +7 -0
- package/dist/skeleton/root/skeleton-root.js +4 -1
- package/dist/stat/group/stat-group.d.ts +23 -4
- package/dist/stat/group/stat-group.js +13 -1
- package/dist/stat/root/stat-root.d.ts +46 -1
- package/dist/stat/root/stat-root.js +29 -5
- package/lint.json +1 -1
- package/package.json +5 -5
- package/types/jsx.d.ts +428 -56
- package/types/vue.d.ts +73 -16
- package/types/words.d.ts +13 -0
package/custom-elements.json
CHANGED
|
@@ -6056,11 +6056,15 @@
|
|
|
6056
6056
|
"declarations": [
|
|
6057
6057
|
{
|
|
6058
6058
|
"kind": "class",
|
|
6059
|
-
"description": "Badge wraps the element it decorates and pins an indicator to its corner, so\nthe wrapped element keeps its place in the layout.\n\nWhat the indicator shows depends on `value`:\n\n- A `value` of zero shows no indicator.\n- No `value` shows a dot.\n- Any other value shows the value. Above `max`, the indicator shows `{max}+`,\n so its width stays the same as the count grows.\n\n`format-options` writes a count with `Intl.NumberFormat`, in `locale`:\n`format-options='{\"notation\":\"compact\"}'` shows 1,200 as `1.2K`. Absent, the\ncount is shown as it was given.\n\nA count is announced from its own text, and `label` replaces that with a\nfuller name, such as `4 unread`. A dot needs a `label`. Without one, the dot\nis a colored circle that screen readers do not announce.\n\n**A badge wrapped around a control describes it.** The control is the first\nelement in the badge that takes focus, and its description is the badge's\nwords, so focusing `<helix-badge value=\"8\" label=\"{count} unread\"><button>Inbox\n</button></helix-badge>` announces \"Inbox, button, 8 unread\", current as the\ncount changes. A control that already has a description keeps its own. The\ncount is also a status of its own, read when it changes.\n\n**Put the badge inside the control to have its count read with the\ncontrol's name**, as Web Awesome and Shoelace do: `<button>Inbox\n<helix-badge value=\"8\" label=\"8 unread\"></helix-badge></button>` is the\nbutton \"Inbox 8 unread\", and stays current as the count changes. The styled\ntier's `placement=\"inline\"` draws the mark in the line for that case.",
|
|
6059
|
+
"description": "Badge wraps the element it decorates and pins an indicator to its corner, so\nthe wrapped element keeps its place in the layout.\n\nWhat the indicator shows depends on `value`:\n\n- A `value` of zero shows no indicator.\n- No `value` shows a dot.\n- Any other value shows the value. Above `max`, the indicator shows `{max}+`,\n so its width stays the same as the count grows.\n\n`format-options` writes a count with `Intl.NumberFormat`, in `locale`:\n`format-options='{\"notation\":\"compact\"}'` shows 1,200 as `1.2K`. Absent, the\ncount is shown as it was given.\n\nA count is announced from its own text, and `label` replaces that with a\nfuller name, such as `4 unread`. A dot needs a `label`. Without one, the dot\nis a colored circle that screen readers do not announce.\n\n**A badge wrapped around a control describes it.** The control is the first\nelement in the badge that takes focus, and its description is the badge's\nwords, so focusing `<helix-badge value=\"8\" label=\"{count} unread\"><button>Inbox\n</button></helix-badge>` announces \"Inbox, button, 8 unread\", current as the\ncount changes. A control that already has a description keeps its own. The\ncount is also a status of its own, read when it changes.\n\n**Put the badge inside the control to have its count read with the\ncontrol's name**, as Web Awesome and Shoelace do: `<button>Inbox\n<helix-badge value=\"8\" label=\"8 unread\"></helix-badge></button>` is the\nbutton \"Inbox 8 unread\", and stays current as the count changes. The styled\ntier's `placement=\"inline\"` draws the mark in the line for that case.\n\n**An icon goes inside the mark** through the `icon` slot, before the count,\nas Web Awesome's badge takes one at its start. With no `value` the icon is\nthe whole mark, such as a check on an avatar, drawn where the dot would be.\nThe icon is hidden from screen readers: the count and `label` are what the\nmark says.",
|
|
6060
6060
|
"name": "HelixHeadlessBadge",
|
|
6061
6061
|
"cssParts": [
|
|
6062
6062
|
{
|
|
6063
|
-
"description": "The
|
|
6063
|
+
"description": "The slot the icon arrives through, inside the indicator. A slot draws no box, so it passes inherited properties, such as color, to the icon.",
|
|
6064
|
+
"name": "icon"
|
|
6065
|
+
},
|
|
6066
|
+
{
|
|
6067
|
+
"description": "The count, or the dot when there is no value. Carries `data-dot` when there is no value, `data-single` when the count is one character, and `data-blank` when the value is zero.",
|
|
6064
6068
|
"name": "indicator"
|
|
6065
6069
|
}
|
|
6066
6070
|
],
|
|
@@ -6068,6 +6072,10 @@
|
|
|
6068
6072
|
{
|
|
6069
6073
|
"description": "The element being decorated.",
|
|
6070
6074
|
"name": ""
|
|
6075
|
+
},
|
|
6076
|
+
{
|
|
6077
|
+
"description": "An icon inside the mark, before the count, or the whole mark when there is no value. Hidden from screen readers.",
|
|
6078
|
+
"name": "icon"
|
|
6071
6079
|
}
|
|
6072
6080
|
],
|
|
6073
6081
|
"members": [
|
|
@@ -6119,6 +6127,23 @@
|
|
|
6119
6127
|
"description": "The count or short text to show.\n\nAbsent shows a dot, zero shows nothing.\n\n**A string, and a number is taken anyway.** What this shows is usually a\ncount, so `value={unread}` is the first thing a React consumer writes, and\na property assignment does not go through the attribute converter that\nwould have made it a string. Read raw it went straight into\n`this.value.trim()`, which threw inside `render` and left the mark showing\nwhatever it had last: measured, a badge set to the number 2 stayed an 8px\ndot with no digit in it, and the console carried\n`TypeError: this.value.trim is not a function`. A component whose whole job\nis showing a count must not lose the count for being handed one.",
|
|
6120
6128
|
"attribute": "value"
|
|
6121
6129
|
},
|
|
6130
|
+
{
|
|
6131
|
+
"kind": "field",
|
|
6132
|
+
"name": "hasIcon",
|
|
6133
|
+
"type": {
|
|
6134
|
+
"text": "boolean"
|
|
6135
|
+
},
|
|
6136
|
+
"privacy": "private",
|
|
6137
|
+
"default": "false",
|
|
6138
|
+
"description": "Whether something is slotted into `icon`, read from the children."
|
|
6139
|
+
},
|
|
6140
|
+
{
|
|
6141
|
+
"kind": "field",
|
|
6142
|
+
"name": "readIcon",
|
|
6143
|
+
"privacy": "private",
|
|
6144
|
+
"readonly": true,
|
|
6145
|
+
"description": "Reads whether an icon is slotted, from the children where they can be known."
|
|
6146
|
+
},
|
|
6122
6147
|
{
|
|
6123
6148
|
"kind": "field",
|
|
6124
6149
|
"name": "given",
|
|
@@ -6611,9 +6636,13 @@
|
|
|
6611
6636
|
"name": "capped"
|
|
6612
6637
|
},
|
|
6613
6638
|
{
|
|
6614
|
-
"description": "There is no value, so the mark is a dot.",
|
|
6639
|
+
"description": "There is no value and no icon, so the mark is a dot.",
|
|
6615
6640
|
"name": "dot"
|
|
6616
6641
|
},
|
|
6642
|
+
{
|
|
6643
|
+
"description": "Something is slotted into `icon`, so it is drawn inside the mark.",
|
|
6644
|
+
"name": "has-icon"
|
|
6645
|
+
},
|
|
6617
6646
|
{
|
|
6618
6647
|
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
6619
6648
|
"name": "settled",
|
|
@@ -19671,7 +19700,7 @@
|
|
|
19671
19700
|
"declarations": [
|
|
19672
19701
|
{
|
|
19673
19702
|
"kind": "class",
|
|
19674
|
-
"description": "The header, body, and footer regions are slots, because they have no state,\nbehavior, or API of their own. You bring your own markup, so a title can be a\nreal `<h2>`.\n\nThe host is the surface. The element itself takes the border, the radius, and\nthe grid, so you style `Card` directly and there is no wrapper part to reach\nthrough with `::part`.\n\nName the card with `label`, as a Stat Group is named, or with `aria-label`\nor `aria-labelledby`.
|
|
19703
|
+
"description": "The header, body, and footer regions are slots, because they have no state,\nbehavior, or API of their own. You bring your own markup, so a title can be a\nreal `<h2>`.\n\nThe host is the surface. The element itself takes the border, the radius, and\nthe grid, so you style `Card` directly and there is no wrapper part to reach\nthrough with `::part`.\n\nName the card with `label`, as a Stat Group is named, or with `aria-label`\nor `aria-labelledby`. `label` is set through `ElementInternals`, so it\nwrites no attribute onto the card. **A named card is a group**, so a\nreader entering it hears its name; an unnamed one has no role, since a group\nwith no name only adds \"group\" to what a reader says.\n\n**With none of those, a heading in `header` names the card**, such as the\n`<h2>` of its title, by reference, so the name follows the heading's words.\nReading a heading needs a DOM, so a served card is named by it once the\nscript runs; `label`, `aria-label` and `aria-labelledby` are the names a\nserver writes.\n\nEach region's slot is a part of the same name, `body` for the main content,\nas Web Awesome's card names its regions. A slot draws no box, so a part\npasses inherited properties to what is slotted, and a page wanting a box\nthere gives it one with `display`.\n\n`header-actions` and `footer-actions` hold controls at the end of the\nheader's and the footer's line, as Web Awesome's card does. While one holds\nsomething, its line is a `header-row` or `footer-row` part; otherwise there\nis no wrapper and every region is a bare slot. A server cannot see slotted\ncontent, so a served card has no row; the styled tier sets served actions at\nthe end of their line from the stylesheet alone, so they do not move when\nthe script runs.\n\n**The card says which regions it holds**, as `:state(has-media)`,\n`:state(has-header)` and `:state(has-footer)`, so a sheet can draw a card\nwith a header differently, as Web Awesome's `with-header` does, with no\nattribute written onto the card. Read in the browser, so a served card\ncarries none until the script runs.",
|
|
19675
19704
|
"name": "HelixHeadlessCard",
|
|
19676
19705
|
"cssParts": [
|
|
19677
19706
|
{
|
|
@@ -19754,6 +19783,49 @@
|
|
|
19754
19783
|
"attribute": "media-placement",
|
|
19755
19784
|
"reflects": true
|
|
19756
19785
|
},
|
|
19786
|
+
{
|
|
19787
|
+
"kind": "field",
|
|
19788
|
+
"name": "observedAttributes",
|
|
19789
|
+
"type": {
|
|
19790
|
+
"text": "string[]"
|
|
19791
|
+
},
|
|
19792
|
+
"static": true,
|
|
19793
|
+
"description": "Hears a name written on the card, which no property mirrors.\n\nLit observes the attributes of its own properties only, and `ariaLabel`\nand `ariaLabelledByElements` belong to the platform. Observed here rather\nthan through a property, so the manifest lists no attribute of the card's\nown for them.",
|
|
19794
|
+
"readonly": true
|
|
19795
|
+
},
|
|
19796
|
+
{
|
|
19797
|
+
"kind": "method",
|
|
19798
|
+
"name": "attributeChangedCallback",
|
|
19799
|
+
"return": {
|
|
19800
|
+
"type": {
|
|
19801
|
+
"text": "void"
|
|
19802
|
+
}
|
|
19803
|
+
},
|
|
19804
|
+
"parameters": [
|
|
19805
|
+
{
|
|
19806
|
+
"name": "name",
|
|
19807
|
+
"type": {
|
|
19808
|
+
"text": "string"
|
|
19809
|
+
}
|
|
19810
|
+
},
|
|
19811
|
+
{
|
|
19812
|
+
"name": "old",
|
|
19813
|
+
"type": {
|
|
19814
|
+
"text": "string | null"
|
|
19815
|
+
}
|
|
19816
|
+
},
|
|
19817
|
+
{
|
|
19818
|
+
"name": "value",
|
|
19819
|
+
"type": {
|
|
19820
|
+
"text": "string | null"
|
|
19821
|
+
}
|
|
19822
|
+
}
|
|
19823
|
+
],
|
|
19824
|
+
"description": "Called by the browser when an observed attribute changes. A name written\nor taken off asks for an update, because it decides whether the card is a\ngroup and whether its heading names it.",
|
|
19825
|
+
"type": {
|
|
19826
|
+
"text": "attributeChangedCallback(name: string, old: string | null, value: string | null) => void"
|
|
19827
|
+
}
|
|
19828
|
+
},
|
|
19757
19829
|
{
|
|
19758
19830
|
"kind": "field",
|
|
19759
19831
|
"name": "footerActions",
|
|
@@ -19774,6 +19846,17 @@
|
|
|
19774
19846
|
"default": "false",
|
|
19775
19847
|
"description": "Whether `header-actions` holds something, read from the slot."
|
|
19776
19848
|
},
|
|
19849
|
+
{
|
|
19850
|
+
"kind": "method",
|
|
19851
|
+
"name": "writeName",
|
|
19852
|
+
"privacy": "private",
|
|
19853
|
+
"return": {
|
|
19854
|
+
"type": {
|
|
19855
|
+
"text": "void"
|
|
19856
|
+
}
|
|
19857
|
+
},
|
|
19858
|
+
"description": "Says what the card is and what names it. On the host, since the host is\nthe box, and from `willUpdate`, which the server calls too.\n\n**A heading in `header` is the name only where nothing else is**, and it\nnames the card by reference, so a renamed heading renames the card. An\nengine without element references hears its words."
|
|
19859
|
+
},
|
|
19777
19860
|
{
|
|
19778
19861
|
"kind": "field",
|
|
19779
19862
|
"name": "readRegions",
|
|
@@ -20137,20 +20220,6 @@
|
|
|
20137
20220
|
},
|
|
20138
20221
|
"description": "Places the media after the content. By default it comes before.\n\n**A figure that concludes a card is the same region as one that opens it**,\nand the only thing that differs is which edge it is flush against. Media is\nthe one region that escapes the inset, so a chart wanting to span the card\nhas nowhere else to be: slotted into the content it keeps the padding on\nboth sides, and there is no second bleeding region to add without saying\ntwice what this says once.\n\nReflected and undefaulted, so a card that has not asked reads as a card\nwith no attribute on it and the stylesheet only describes the departure.",
|
|
20139
20222
|
"fieldName": "mediaPlacement"
|
|
20140
|
-
},
|
|
20141
|
-
{
|
|
20142
|
-
"name": "aria-labelledby",
|
|
20143
|
-
"type": {
|
|
20144
|
-
"text": "string | null"
|
|
20145
|
-
},
|
|
20146
|
-
"default": "null"
|
|
20147
|
-
},
|
|
20148
|
-
{
|
|
20149
|
-
"name": "aria-label",
|
|
20150
|
-
"type": {
|
|
20151
|
-
"text": "string | null"
|
|
20152
|
-
},
|
|
20153
|
-
"default": "null"
|
|
20154
20223
|
}
|
|
20155
20224
|
],
|
|
20156
20225
|
"cssStates": [
|
|
@@ -29693,7 +29762,7 @@
|
|
|
29693
29762
|
"declarations": [
|
|
29694
29763
|
{
|
|
29695
29764
|
"kind": "class",
|
|
29696
|
-
"description": "Renders a `<pre><code>` pair: `pre` keeps the whitespace, and `code` marks it\nas code. Long lines scroll inside the block and do not wrap, because a line\nbreak can be significant in code.\n\nA copy button is on by default. Set `no-copy` to remove it. The button copies\nthe slotted text, so there is no second copy of the code to keep in sync.\n\nFor a fragment of code inside a sentence, use `Code`.\n\nSet `line-numbers` to number the lines in a gutter beside the code, hidden\nfrom the accessibility tree and left out of a copy. Set `highlight` to a\nfunction that turns the code into highlighted markup, such as one wrapping\nShiki or Prism, and the block draws what it returns; it is handed the\nblock's `language`, so one function serves every block. The code stays in\nthe slot, so the copy button and the page's own text are the code as\nwritten.\n\nSet `expandable` on a block whose height is capped, such as by\n`--code-block-max-block-size`, and a button under it shows every line and\nthen fewer again, as a docs site's long example does. The button is drawn\nonly while the cap hides something, says whether the block is expanded with\n`aria-expanded`, names the block it opens with `aria-controls`, and the block\ncarries `:state(expanded)` while it is.\n\nSet `diff` to show a change. Put a unified diff, the output of `git diff` or\n`diff -u`, in the same slot, and the block draws the lines it added and\nremoved. The block never computes a diff itself. Line numbers come from the\nhunk headers and are hidden from the accessibility tree. Changed lines are\n`<ins>` and `<del>` with the `+` and `-` kept as text, so the change does not\ndepend on color. Each file in the patch is its own block under its own name,\nand its copy button copies the new version of the file. `variant=\"split\"`\nshows the old version beside the new, each removal opposite its replacement.\n\nOn the server, the slot renders as ordinary code, so a diff first appears as\nthe patch text in a `<pre>`. The client makes the same first render, which\nkeeps hydration clean, and draws the diff once it can read the content. Diff\nmode is experimental. The rest of the family is stable.",
|
|
29765
|
+
"description": "Renders a `<pre><code>` pair: `pre` keeps the whitespace, and `code` marks it\nas code. Long lines scroll inside the block and do not wrap, because a line\nbreak can be significant in code.\n\nA copy button is on by default. Set `no-copy` to remove it. The button copies\nthe slotted text, so there is no second copy of the code to keep in sync.\n\nFor a fragment of code inside a sentence, use `Code`.\n\nSet `line-numbers` to number the lines in a gutter beside the code, hidden\nfrom the accessibility tree and left out of a copy. Set `highlight` to a\nfunction that turns the code into highlighted markup, such as one wrapping\nShiki or Prism, and the block draws what it returns; it is handed the\nblock's `language`, so one function serves every block. The code stays in\nthe slot, so the copy button and the page's own text are the code as\nwritten.\n\nSet `expandable` on a block whose height is capped, such as by\n`--code-block-max-block-size`, and a button under it shows every line and\nthen fewer again, as a docs site's long example does. The button is drawn\nonly while the cap hides something, says whether the block is expanded with\n`aria-expanded`, names the block it opens with `aria-controls`, and the block\ncarries `:state(expanded)` while it is.\n\nSet `diff` to show a change. Put a unified diff, the output of `git diff` or\n`diff -u`, in the same slot, and the block draws the lines it added and\nremoved. The block never computes a diff itself. Line numbers come from the\nhunk headers and are hidden from the accessibility tree. Changed lines are\n`<ins>` and `<del>` with the `+` and `-` kept as text, so the change does not\ndepend on color. Each file in the patch is its own block under its own name,\nand its copy button copies the new version of the file. `variant=\"split\"`\nshows the old version beside the new, each removal opposite its replacement.\n\n**A block that scrolls is a tab stop.** While its lines run past its width or\nits cap, the scroller is a region named for the block, such as \"Code,\napp.ts\", that Tab reaches, so a keyboard scrolls it with the arrow keys in\nevery browser. Chromium and Firefox make a scrolling box focusable on their\nown, and Safari does not. A block that fits is no stop at all.\n\n**The code the block draws is marked untranslated**, `translate=\"no\"` on\nits `<pre>`, so a page translator leaves highlighted lines and a diff as\nwritten. Code in the slot takes its translation mode from the element, which\nwrites nothing onto itself, so set `translate=\"no\"` on the element to keep a\ntranslator off plain code too.\n\nOn the server, the slot renders as ordinary code, so a diff first appears as\nthe patch text in a `<pre>`. The client makes the same first render, which\nkeeps hydration clean, and draws the diff once it can read the content. Diff\nmode is experimental. The rest of the family is stable.",
|
|
29697
29766
|
"name": "HelixHeadlessCodeBlock",
|
|
29698
29767
|
"cssParts": [
|
|
29699
29768
|
{
|
|
@@ -29854,6 +29923,32 @@
|
|
|
29854
29923
|
"default": "'helix-code-block'",
|
|
29855
29924
|
"description": "The key this family's words are registered under, its styled tag:\n`registerWords('de', { 'helix-code-block': { copyLabel: 'Code kopieren' } })`."
|
|
29856
29925
|
},
|
|
29926
|
+
{
|
|
29927
|
+
"kind": "field",
|
|
29928
|
+
"name": "codeLabel",
|
|
29929
|
+
"type": {
|
|
29930
|
+
"text": "string"
|
|
29931
|
+
},
|
|
29932
|
+
"default": "'Code'",
|
|
29933
|
+
"description": "The name of a block that scrolls, which is a tab stop while it does.\n\nWhere the block has a name, the scroller says it too, such as \"Code,\napp.ts\", as `code-name-label` puts it.",
|
|
29934
|
+
"attribute": "code-label",
|
|
29935
|
+
"helix": {
|
|
29936
|
+
"words": true
|
|
29937
|
+
}
|
|
29938
|
+
},
|
|
29939
|
+
{
|
|
29940
|
+
"kind": "field",
|
|
29941
|
+
"name": "codeNameLabel",
|
|
29942
|
+
"type": {
|
|
29943
|
+
"text": "string"
|
|
29944
|
+
},
|
|
29945
|
+
"default": "'{code}, {name}'",
|
|
29946
|
+
"description": "The name of a block that scrolls, where the block has a name. `{code}` is\n`code-label` and `{name}` the block's name.",
|
|
29947
|
+
"attribute": "code-name-label",
|
|
29948
|
+
"helix": {
|
|
29949
|
+
"words": true
|
|
29950
|
+
}
|
|
29951
|
+
},
|
|
29857
29952
|
{
|
|
29858
29953
|
"kind": "field",
|
|
29859
29954
|
"name": "collapseLabel",
|
|
@@ -30066,7 +30161,7 @@
|
|
|
30066
30161
|
"text": "ResizeObserver | undefined"
|
|
30067
30162
|
},
|
|
30068
30163
|
"privacy": "private",
|
|
30069
|
-
"description": "Watches the block's size
|
|
30164
|
+
"description": "Watches the block's size."
|
|
30070
30165
|
},
|
|
30071
30166
|
{
|
|
30072
30167
|
"kind": "field",
|
|
@@ -30075,6 +30170,17 @@
|
|
|
30075
30170
|
"readonly": true,
|
|
30076
30171
|
"description": "Reads whether the cap hides lines: the scroller is taller inside than it\nis drawn. The styled tier caps the `<code>`, and a page may cap the\n`<pre>`, so both are asked. Left as it was while expanded, which shows\neverything."
|
|
30077
30172
|
},
|
|
30173
|
+
{
|
|
30174
|
+
"kind": "method",
|
|
30175
|
+
"name": "markScrollers",
|
|
30176
|
+
"privacy": "private",
|
|
30177
|
+
"return": {
|
|
30178
|
+
"type": {
|
|
30179
|
+
"text": "void"
|
|
30180
|
+
}
|
|
30181
|
+
},
|
|
30182
|
+
"description": "Makes each box that scrolls a tab stop and a region named for its block,\nand takes both away from a box that fits.\n\n**A reader on a keyboard scrolls the code from the box itself.** Chromium\nand Firefox make a scrolling box focusable on their own, and Safari does\nnot, so there the arrow keys could not reach the end of a long line. A\nbox counts while its sheet lets it scroll and its content is wider or\ntaller than it is drawn: an unstyled `<pre>` overflows without scrolling,\nand a stop on it would scroll nothing."
|
|
30183
|
+
},
|
|
30078
30184
|
{
|
|
30079
30185
|
"kind": "method",
|
|
30080
30186
|
"name": "renderExpand",
|
|
@@ -30627,6 +30733,24 @@
|
|
|
30627
30733
|
}
|
|
30628
30734
|
],
|
|
30629
30735
|
"attributes": [
|
|
30736
|
+
{
|
|
30737
|
+
"name": "code-label",
|
|
30738
|
+
"type": {
|
|
30739
|
+
"text": "string"
|
|
30740
|
+
},
|
|
30741
|
+
"default": "'Code'",
|
|
30742
|
+
"description": "The name of a block that scrolls, which is a tab stop while it does.\n\nWhere the block has a name, the scroller says it too, such as \"Code,\napp.ts\", as `code-name-label` puts it.",
|
|
30743
|
+
"fieldName": "codeLabel"
|
|
30744
|
+
},
|
|
30745
|
+
{
|
|
30746
|
+
"name": "code-name-label",
|
|
30747
|
+
"type": {
|
|
30748
|
+
"text": "string"
|
|
30749
|
+
},
|
|
30750
|
+
"default": "'{code}, {name}'",
|
|
30751
|
+
"description": "The name of a block that scrolls, where the block has a name. `{code}` is\n`code-label` and `{name}` the block's name.",
|
|
30752
|
+
"fieldName": "codeNameLabel"
|
|
30753
|
+
},
|
|
30630
30754
|
{
|
|
30631
30755
|
"name": "collapse-label",
|
|
30632
30756
|
"type": {
|
|
@@ -30824,7 +30948,7 @@
|
|
|
30824
30948
|
"declarations": [
|
|
30825
30949
|
{
|
|
30826
30950
|
"kind": "class",
|
|
30827
|
-
"description": "Renders a real `<code>` element, which marks the text as code for translation\ntools and document search. A styled span carries no such meaning, and a\nscreen reader announces nothing about it.\n\n`Code` is inline only and never scrolls. For a block of code with its own\nbox, its own overflow, and copying, use `CodeBlock`, which is a separate\nfamily.",
|
|
30951
|
+
"description": "Renders a real `<code>` element, which marks the text as code for translation\ntools and document search. A styled span carries no such meaning, and a\nscreen reader announces nothing about it.\n\n**Set `translate=\"no\"` on the element to keep a page translator off the\ncode.** A translator that rewrites prose would also rewrite an identifier.\nThe slotted text takes its translation mode from the element, its parent in\nthe page, and the element writes nothing onto itself, so the attribute is\nyours to set. The `<code>` inside carries `translate=\"no\"` for anything the\nelement draws itself.\n\n`Code` is inline only and never scrolls. For a block of code with its own\nbox, its own overflow, and copying, use `CodeBlock`, which is a separate\nfamily.",
|
|
30828
30952
|
"name": "HelixHeadlessCode",
|
|
30829
30953
|
"cssParts": [
|
|
30830
30954
|
{
|
|
@@ -60214,16 +60338,28 @@
|
|
|
60214
60338
|
"declarations": [
|
|
60215
60339
|
{
|
|
60216
60340
|
"kind": "class",
|
|
60217
|
-
"description": "Shows what would be in a region and the one action that would fill it, so an\nempty region does not look like one that failed to load.\n\nThe message is announced, because an empty view often replaces content that\nwas loading, and the announcement tells a screen reader user that the search\nreturned nothing. It is announced from a status region of its own, which is\nrendered empty and filled a frame after the view appears. Screen readers read\na region that arrives with its text already in it inconsistently. For the\nseven seconds the region holds its copy, the heading and the message are\nhidden from screen readers, so the words are in the page once.\n\nEvery region is a bare slot. There is no `empty-state-heading` or\n`empty-state-actions` element: assign your own heading and actions to the\nslots.\n\n**Or give the heading as words.** `heading` draws them in a `heading` part\nthat is a heading at `heading-level`, 3 where it is not set, so a page\nrendering from data or on a server gets a heading a reader finds in the\noutline without writing the element. A heading slotted in replaces it.\n\n**Whatever is slotted into `heading` is read as a heading.** An element that\nis no heading, such as a `<span>` or a `<p>`, is set inside the `heading`\npart at `heading-level`, so a screen reader still finds it in the outline.\nA heading element, or an element holding one, keeps its own level. A server\ncannot see the slotted element, so a served `<span>` becomes a heading once\nthe script runs.",
|
|
60341
|
+
"description": "Shows what would be in a region and the one action that would fill it, so an\nempty region does not look like one that failed to load.\n\nThe message is announced, because an empty view often replaces content that\nwas loading, and the announcement tells a screen reader user that the search\nreturned nothing. It is announced from a status region of its own, which is\nrendered empty and filled a frame after the view appears. Screen readers read\na region that arrives with its text already in it inconsistently. For the\nseven seconds the region holds its copy, the heading and the message are\nhidden from screen readers, so the words are in the page once.\n\nEvery region is a bare slot. There is no `empty-state-heading` or\n`empty-state-actions` element: assign your own heading and actions to the\nslots. The icon, the message and the actions slots are parts of the same\nnames, as Card's regions are. A slot draws no box, so a part passes\ninherited properties, such as color and font, to what is slotted, and a\npage wanting a box there gives it one with `display`, such as a row of\nactions with `display: flex`.\n\n**The view says which regions it holds**, as `:state(has-icon)` and\n`:state(has-actions)`, so a sheet can space a view with no icon or no\nactions differently. Read in the browser, so a served view carries neither\nuntil the script runs.\n\n**Or give the heading as words.** `heading` draws them in a `heading` part\nthat is a heading at `heading-level`, 3 where it is not set, so a page\nrendering from data or on a server gets a heading a reader finds in the\noutline without writing the element. A heading slotted in replaces it.\n\n**Whatever is slotted into `heading` is read as a heading.** An element that\nis no heading, such as a `<span>` or a `<p>`, is set inside the `heading`\npart at `heading-level`, so a screen reader still finds it in the outline.\nA heading element, or an element holding one, keeps its own level. A server\ncannot see the slotted element, so a served `<span>` becomes a heading once\nthe script runs.",
|
|
60218
60342
|
"name": "HelixHeadlessEmpty",
|
|
60219
60343
|
"cssParts": [
|
|
60344
|
+
{
|
|
60345
|
+
"description": "The slot the actions arrive through. A slot draws no box, so it passes inherited properties to the actions; `display: flex` lays them out in a row.",
|
|
60346
|
+
"name": "actions"
|
|
60347
|
+
},
|
|
60220
60348
|
{
|
|
60221
60349
|
"description": "The heading at `heading-level`: the one `heading` draws while nothing is slotted into `heading`, or the one around a slotted element that is no heading.",
|
|
60222
60350
|
"name": "heading"
|
|
60223
60351
|
},
|
|
60352
|
+
{
|
|
60353
|
+
"description": "The slot the icon arrives through, drawing no box, as `actions` does.",
|
|
60354
|
+
"name": "icon"
|
|
60355
|
+
},
|
|
60224
60356
|
{
|
|
60225
60357
|
"description": "A copy of the heading and the message, in a live region that screen readers announce when the view appears. Visually hidden in the styled tier.",
|
|
60226
60358
|
"name": "live"
|
|
60359
|
+
},
|
|
60360
|
+
{
|
|
60361
|
+
"description": "The slot the message arrives through, drawing no box, as `actions` does.",
|
|
60362
|
+
"name": "message"
|
|
60227
60363
|
}
|
|
60228
60364
|
],
|
|
60229
60365
|
"slots": [
|
|
@@ -60285,6 +60421,13 @@
|
|
|
60285
60421
|
"default": "false",
|
|
60286
60422
|
"description": "Whether the `heading` slot holds elements and none of them is or holds a\nheading, read from the children before each render."
|
|
60287
60423
|
},
|
|
60424
|
+
{
|
|
60425
|
+
"kind": "field",
|
|
60426
|
+
"name": "readRegions",
|
|
60427
|
+
"privacy": "private",
|
|
60428
|
+
"readonly": true,
|
|
60429
|
+
"description": "Says which regions hold something, one call apiece so each pairs with its `@cssstate`."
|
|
60430
|
+
},
|
|
60288
60431
|
{
|
|
60289
60432
|
"kind": "field",
|
|
60290
60433
|
"name": "arrival",
|
|
@@ -60680,6 +60823,24 @@
|
|
|
60680
60823
|
"fieldName": "noAnnounce"
|
|
60681
60824
|
}
|
|
60682
60825
|
],
|
|
60826
|
+
"cssStates": [
|
|
60827
|
+
{
|
|
60828
|
+
"description": "Something is slotted into `actions`.",
|
|
60829
|
+
"name": "has-actions"
|
|
60830
|
+
},
|
|
60831
|
+
{
|
|
60832
|
+
"description": "Something is slotted into `icon`.",
|
|
60833
|
+
"name": "has-icon"
|
|
60834
|
+
},
|
|
60835
|
+
{
|
|
60836
|
+
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
60837
|
+
"name": "settled",
|
|
60838
|
+
"inheritedFrom": {
|
|
60839
|
+
"name": "HelixElement",
|
|
60840
|
+
"module": "src/helix-element/helix-element.ts"
|
|
60841
|
+
}
|
|
60842
|
+
}
|
|
60843
|
+
],
|
|
60683
60844
|
"superclass": {
|
|
60684
60845
|
"name": "HelixElement",
|
|
60685
60846
|
"package": "@fusion.dev/helix-core"
|
|
@@ -60709,16 +60870,6 @@
|
|
|
60709
60870
|
},
|
|
60710
60871
|
"tagName": "helix-headless-empty",
|
|
60711
60872
|
"customElement": true,
|
|
60712
|
-
"cssStates": [
|
|
60713
|
-
{
|
|
60714
|
-
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
60715
|
-
"name": "settled",
|
|
60716
|
-
"inheritedFrom": {
|
|
60717
|
-
"name": "HelixElement",
|
|
60718
|
-
"module": "src/helix-element/helix-element.ts"
|
|
60719
|
-
}
|
|
60720
|
-
}
|
|
60721
|
-
],
|
|
60722
60873
|
"modulePath": "src/empty/root/empty-root.ts",
|
|
60723
60874
|
"definitionPath": "src/empty/root/empty-root.ts"
|
|
60724
60875
|
}
|
|
@@ -76368,6 +76519,74 @@
|
|
|
76368
76519
|
}
|
|
76369
76520
|
]
|
|
76370
76521
|
},
|
|
76522
|
+
{
|
|
76523
|
+
"kind": "javascript-module",
|
|
76524
|
+
"path": "src/icon/fetch.ts",
|
|
76525
|
+
"declarations": [
|
|
76526
|
+
{
|
|
76527
|
+
"kind": "function",
|
|
76528
|
+
"name": "readIconFile",
|
|
76529
|
+
"return": {
|
|
76530
|
+
"type": {
|
|
76531
|
+
"text": "HelixIcon | undefined"
|
|
76532
|
+
}
|
|
76533
|
+
},
|
|
76534
|
+
"parameters": [
|
|
76535
|
+
{
|
|
76536
|
+
"name": "text",
|
|
76537
|
+
"type": {
|
|
76538
|
+
"text": "string"
|
|
76539
|
+
},
|
|
76540
|
+
"description": "The file's text."
|
|
76541
|
+
},
|
|
76542
|
+
{
|
|
76543
|
+
"name": "name",
|
|
76544
|
+
"type": {
|
|
76545
|
+
"text": "string"
|
|
76546
|
+
},
|
|
76547
|
+
"description": "What the icon is known by, its URL."
|
|
76548
|
+
}
|
|
76549
|
+
],
|
|
76550
|
+
"description": "Reads an SVG file's text as an icon, or `undefined` where it is no SVG.\n\n**What could run is taken out**, because the markup is drawn as it is: every\n`<script>` and `<foreignObject>`, every `on…` attribute, every link to a\n`javascript:` URL, and every animation that writes a link or a handler. The\nroot's paint attributes are kept on a group around the shapes, and its\n`viewBox`, or its width and height, is the box."
|
|
76551
|
+
},
|
|
76552
|
+
{
|
|
76553
|
+
"kind": "function",
|
|
76554
|
+
"name": "fetchIcon",
|
|
76555
|
+
"return": {
|
|
76556
|
+
"type": {
|
|
76557
|
+
"text": "HelixIcon | Promise<HelixIcon | undefined> | undefined"
|
|
76558
|
+
}
|
|
76559
|
+
},
|
|
76560
|
+
"parameters": [
|
|
76561
|
+
{
|
|
76562
|
+
"name": "src",
|
|
76563
|
+
"type": {
|
|
76564
|
+
"text": "string"
|
|
76565
|
+
}
|
|
76566
|
+
}
|
|
76567
|
+
],
|
|
76568
|
+
"description": "The icon in the SVG file at `src`: at once where it has been fetched, or a\npromise of it the first time, fetched once a page however many elements ask.\n`undefined` where the file could not be fetched or is no SVG."
|
|
76569
|
+
}
|
|
76570
|
+
],
|
|
76571
|
+
"exports": [
|
|
76572
|
+
{
|
|
76573
|
+
"kind": "js",
|
|
76574
|
+
"name": "readIconFile",
|
|
76575
|
+
"declaration": {
|
|
76576
|
+
"name": "readIconFile",
|
|
76577
|
+
"module": "src/icon/fetch.ts"
|
|
76578
|
+
}
|
|
76579
|
+
},
|
|
76580
|
+
{
|
|
76581
|
+
"kind": "js",
|
|
76582
|
+
"name": "fetchIcon",
|
|
76583
|
+
"declaration": {
|
|
76584
|
+
"name": "fetchIcon",
|
|
76585
|
+
"module": "src/icon/fetch.ts"
|
|
76586
|
+
}
|
|
76587
|
+
}
|
|
76588
|
+
]
|
|
76589
|
+
},
|
|
76371
76590
|
{
|
|
76372
76591
|
"kind": "javascript-module",
|
|
76373
76592
|
"path": "src/icon/index.ts",
|
|
@@ -76606,7 +76825,7 @@
|
|
|
76606
76825
|
"declarations": [
|
|
76607
76826
|
{
|
|
76608
76827
|
"kind": "class",
|
|
76609
|
-
"description": "The icons are Phosphor, drawn on a 256 box at stroke-width 16. Each glyph\nrenders its full inner markup, because most icons are several elements, each\nwith its own stroke and fill.\n\nThe markup is generated at build time from SVG files in this repository and\nnever comes from user input, so rendering it with `unsafeSVG` is safe.\n\nThe `<svg>` carries `fill=\"currentColor\"`. The generator keeps only the inner\nmarkup, and Phosphor sets its fill on the root tag that the generator\ndiscards. Without it, the 65 solid glyphs fall back to black and disappear on\na dark background. Shapes that set their own `fill` or `stroke` are\nunaffected.\n\n**A name is looked up in a registry.** The family's entry registers the\nwhole set, so any name in it draws. The element's own entry,\n`@fusion.dev/helix-headless/icon/root`, registers none: a page that imports\nit and calls `registerIcons` with the glyphs it names ships those and no\nothers. `registerIconLibrary` resolves names under a prefix of your own,\nsuch as `lucide:camera`, at once or later, and the element fires `load` when\na glyph that came later is drawn. A glyph registered after the element\nrendered is drawn then.\n\nA name with no match renders nothing, and the
|
|
76828
|
+
"description": "The icons are Phosphor, drawn on a 256 box at stroke-width 16. Each glyph\nrenders its full inner markup, because most icons are several elements, each\nwith its own stroke and fill.\n\nThe markup is generated at build time from SVG files in this repository and\nnever comes from user input, so rendering it with `unsafeSVG` is safe.\n\nThe `<svg>` carries `fill=\"currentColor\"`. The generator keeps only the inner\nmarkup, and Phosphor sets its fill on the root tag that the generator\ndiscards. Without it, the 65 solid glyphs fall back to black and disappear on\na dark background. Shapes that set their own `fill` or `stroke` are\nunaffected.\n\n**A name is looked up in a registry.** The family's entry registers the\nwhole set, so any name in it draws. The element's own entry,\n`@fusion.dev/helix-headless/icon/root`, registers none: a page that imports\nit and calls `registerIcons` with the glyphs it names ships those and no\nothers. `registerIconLibrary` resolves names under a prefix of your own,\nsuch as `lucide:camera`, at once or later, and the element fires `load` when\na glyph that came later is drawn. A glyph registered after the element\nrendered is drawn then.\n\n**Or point `src` at an SVG file**, such as `src=\"/icons/rocket.svg\"`, and\nthe element fetches it and draws its shapes in `currentColor` where the file\ndoes not color them. A file is fetched once a page, however many icons name\nit, and `load` fires when it is drawn. Scripts, event handlers and\n`javascript:` links in the file are taken out before it is drawn. A server\nfetches nothing, so a served icon with a `src` is drawn once the script\nruns.\n\nA name with no match, or a `src` that is no SVG, renders nothing, and the\nelement fires `error`, so a typo in a name can be heard. It waits until the page has loaded and painted\nfirst, so a library a later module registers is not taken for a typo.\n\nAn icon is decorative by default and hidden from assistive technology. Set\n`label` only when the icon is the only carrier of meaning, such as in a\nbutton with no text. An `aria-label` on the element works too: the element\nis then an image with that name.\n\n**A decorative icon that is all a control holds is reported.** In a\ndevelopment build, a button or a link whose only content is an icon with no\n`label`, and which has no name of its own, warns `missing-name` once,\nthrough the runtime channel every Helix warning uses.",
|
|
76610
76829
|
"name": "HelixHeadlessIcon",
|
|
76611
76830
|
"cssParts": [
|
|
76612
76831
|
{
|
|
@@ -76653,6 +76872,16 @@
|
|
|
76653
76872
|
"description": "The name of the icon in the Helix set.\n\n**A lookup, and the reason both this and `icon` exist.** A name is a string,\nso it is what markup can carry, and resolving one means an index of the\nwhole set that no bundler can shake: 15 kB for a consumer who renders one\nmark. An attribute is the only thing an HTML author can write, and that is\nworth the index; a consumer who would rather not pay it imports the\nelement from `icon/root` and registers the glyphs it names, or hands over\nthe value instead.\n\nA name written `prefix:name` asks the library registered under that\nprefix.",
|
|
76654
76873
|
"attribute": "name"
|
|
76655
76874
|
},
|
|
76875
|
+
{
|
|
76876
|
+
"kind": "field",
|
|
76877
|
+
"name": "src",
|
|
76878
|
+
"type": {
|
|
76879
|
+
"text": "string"
|
|
76880
|
+
},
|
|
76881
|
+
"default": "''",
|
|
76882
|
+
"description": "The URL of an SVG file to draw, fetched once a page and drawn in\n`currentColor` where the file does not color its shapes.\n\nWins over `name`; `icon` wins over both. Absent draws `name`.",
|
|
76883
|
+
"attribute": "src"
|
|
76884
|
+
},
|
|
76656
76885
|
{
|
|
76657
76886
|
"kind": "field",
|
|
76658
76887
|
"name": "observedAttributes",
|
|
@@ -76744,6 +76973,16 @@
|
|
|
76744
76973
|
"privacy": "private",
|
|
76745
76974
|
"description": "Stops listening to the registry."
|
|
76746
76975
|
},
|
|
76976
|
+
{
|
|
76977
|
+
"kind": "field",
|
|
76978
|
+
"name": "asked",
|
|
76979
|
+
"type": {
|
|
76980
|
+
"text": "string"
|
|
76981
|
+
},
|
|
76982
|
+
"privacy": "private",
|
|
76983
|
+
"description": "What the glyph is asked for by: `src` where it is set, and `name` otherwise.",
|
|
76984
|
+
"readonly": true
|
|
76985
|
+
},
|
|
76747
76986
|
{
|
|
76748
76987
|
"kind": "method",
|
|
76749
76988
|
"name": "lookup",
|
|
@@ -76753,7 +76992,7 @@
|
|
|
76753
76992
|
"text": "HelixIcon | undefined"
|
|
76754
76993
|
}
|
|
76755
76994
|
},
|
|
76756
|
-
"description": "What the registry gives
|
|
76995
|
+
"description": "What `src` or the registry gives now, starting the wait for a late glyph.\nA file is fetched only where the page can be read: a server fetches\nnothing, and a hydrating render draws what the server sent."
|
|
76757
76996
|
},
|
|
76758
76997
|
{
|
|
76759
76998
|
"kind": "method",
|
|
@@ -77143,7 +77382,7 @@
|
|
|
77143
77382
|
"type": {
|
|
77144
77383
|
"text": "Event"
|
|
77145
77384
|
},
|
|
77146
|
-
"description": "`name` matches no registered icon and no library answers it, so nothing is drawn.",
|
|
77385
|
+
"description": "`name` matches no registered icon and no library answers it, or `src` is no SVG, so nothing is drawn.",
|
|
77147
77386
|
"name": "error",
|
|
77148
77387
|
"reactProp": "onerror"
|
|
77149
77388
|
},
|
|
@@ -77151,7 +77390,7 @@
|
|
|
77151
77390
|
"type": {
|
|
77152
77391
|
"text": "Event"
|
|
77153
77392
|
},
|
|
77154
|
-
"description": "A glyph a library gave later for `name` is drawn.",
|
|
77393
|
+
"description": "A glyph a library gave later for `name`, or the file at `src`, is drawn.",
|
|
77155
77394
|
"name": "load",
|
|
77156
77395
|
"reactProp": "onload"
|
|
77157
77396
|
}
|
|
@@ -77183,6 +77422,15 @@
|
|
|
77183
77422
|
"default": "''",
|
|
77184
77423
|
"description": "The name of the icon in the Helix set.\n\n**A lookup, and the reason both this and `icon` exist.** A name is a string,\nso it is what markup can carry, and resolving one means an index of the\nwhole set that no bundler can shake: 15 kB for a consumer who renders one\nmark. An attribute is the only thing an HTML author can write, and that is\nworth the index; a consumer who would rather not pay it imports the\nelement from `icon/root` and registers the glyphs it names, or hands over\nthe value instead.\n\nA name written `prefix:name` asks the library registered under that\nprefix.",
|
|
77185
77424
|
"fieldName": "name"
|
|
77425
|
+
},
|
|
77426
|
+
{
|
|
77427
|
+
"name": "src",
|
|
77428
|
+
"type": {
|
|
77429
|
+
"text": "string"
|
|
77430
|
+
},
|
|
77431
|
+
"default": "''",
|
|
77432
|
+
"description": "The URL of an SVG file to draw, fetched once a page and drawn in\n`currentColor` where the file does not color its shapes.\n\nWins over `name`; `icon` wins over both. Absent draws `name`.",
|
|
77433
|
+
"fieldName": "src"
|
|
77186
77434
|
}
|
|
77187
77435
|
],
|
|
77188
77436
|
"superclass": {
|
|
@@ -125763,7 +126011,7 @@
|
|
|
125763
126011
|
"declarations": [
|
|
125764
126012
|
{
|
|
125765
126013
|
"kind": "class",
|
|
125766
|
-
"description": "Renders a real `<q>`, so the browser supplies the quotation marks. It inserts\nthe correct marks for the document's language and nests them correctly when\none quotation sits inside another. Do not type quotation marks into the\ncontent: one that starts or ends with a typed mark warns once, with the\nruntime kind `typed-marks`. A quotation in a language other than the page's takes `lang` on the\nelement, and its marks follow it: `lang=\"de\"` sets „…“ and `lang=\"fr\"` «…»\ninside an English page.\n\nFor a passage set off from the surrounding text, use a blockquote.",
|
|
126014
|
+
"description": "Renders a real `<q>`, so the browser supplies the quotation marks. It inserts\nthe correct marks for the document's language and nests them correctly when\none quotation sits inside another. Do not type quotation marks into the\ncontent: one that starts or ends with a typed mark warns once, with the\nruntime kind `typed-marks`. A quotation in a language other than the page's takes `lang` on the\nelement, and its marks follow it: `lang=\"de\"` sets „…“ and `lang=\"fr\"` «…»\ninside an English page.\n\n**`no-marks` leaves the marks off**, for a quotation set where the page draws\nits own, such as a pull quote with a large decorative mark beside it or a\ntable of sayings. The quotation still counts toward nesting, so a quote\ninside it takes the inner marks it would have had. Text with marks typed\ninto it raises no warning under `no-marks`.\n\nFor a passage set off from the surrounding text, use a blockquote.",
|
|
125767
126015
|
"name": "HelixHeadlessQuote",
|
|
125768
126016
|
"cssParts": [
|
|
125769
126017
|
{
|
|
@@ -125788,6 +126036,17 @@
|
|
|
125788
126036
|
"description": "URL identifying where the quotation came from.",
|
|
125789
126037
|
"attribute": "cite"
|
|
125790
126038
|
},
|
|
126039
|
+
{
|
|
126040
|
+
"kind": "field",
|
|
126041
|
+
"name": "noMarks",
|
|
126042
|
+
"type": {
|
|
126043
|
+
"text": "boolean"
|
|
126044
|
+
},
|
|
126045
|
+
"default": "false",
|
|
126046
|
+
"description": "Whether to leave the quotation marks off, for a quotation set where the\npage draws its own.\n\nNegative, because the marks are on by default and a boolean attribute is\ntrue whenever it is present. Reflected, because a stylesheet takes the\nmarks off on it.",
|
|
126047
|
+
"attribute": "no-marks",
|
|
126048
|
+
"reflects": true
|
|
126049
|
+
},
|
|
125791
126050
|
{
|
|
125792
126051
|
"kind": "field",
|
|
125793
126052
|
"name": "warned",
|
|
@@ -126154,6 +126413,15 @@
|
|
|
126154
126413
|
"default": "''",
|
|
126155
126414
|
"description": "URL identifying where the quotation came from.",
|
|
126156
126415
|
"fieldName": "cite"
|
|
126416
|
+
},
|
|
126417
|
+
{
|
|
126418
|
+
"name": "no-marks",
|
|
126419
|
+
"type": {
|
|
126420
|
+
"text": "boolean"
|
|
126421
|
+
},
|
|
126422
|
+
"default": "false",
|
|
126423
|
+
"description": "Whether to leave the quotation marks off, for a quotation set where the\npage draws its own.\n\nNegative, because the marks are on by default and a boolean attribute is\ntrue whenever it is present. Reflected, because a stylesheet takes the\nmarks off on it.",
|
|
126424
|
+
"fieldName": "noMarks"
|
|
126157
126425
|
}
|
|
126158
126426
|
],
|
|
126159
126427
|
"superclass": {
|
|
@@ -136093,6 +136361,17 @@
|
|
|
136093
136361
|
"description": "Whether the skeleton holds content, read off its children where they can\nbe known. Not on a server, where an unlabeled skeleton is taken for an\nempty one until the page has its children.",
|
|
136094
136362
|
"readonly": true
|
|
136095
136363
|
},
|
|
136364
|
+
{
|
|
136365
|
+
"kind": "method",
|
|
136366
|
+
"name": "renderShape",
|
|
136367
|
+
"privacy": "protected",
|
|
136368
|
+
"return": {
|
|
136369
|
+
"type": {
|
|
136370
|
+
"text": "TemplateResult"
|
|
136371
|
+
}
|
|
136372
|
+
},
|
|
136373
|
+
"description": "The placeholder shape and the sheen inside it.\n\nA method, so a tier above can draw the placeholder as several shapes, as\nthe styled tier draws a paragraph of lines."
|
|
136374
|
+
},
|
|
136096
136375
|
{
|
|
136097
136376
|
"kind": "field",
|
|
136098
136377
|
"name": "tier",
|
|
@@ -143998,7 +144277,7 @@
|
|
|
143998
144277
|
"declarations": [
|
|
143999
144278
|
{
|
|
144000
144279
|
"kind": "class",
|
|
144001
|
-
"description": "
|
|
144280
|
+
"description": "**A named group is a group**, so a screen reader announces the stats\ntogether under its name, such as \"Usage, group\". Name it with `label`,\n`aria-label` or `aria-labelledby`. An unnamed one has no role, since a group\nwith no name only adds \"group\" to what a reader says, as an unnamed Card\nhas none. The figures are read together and their order has no meaning, so\nthe group does not announce positions such as \"1 of 4\".",
|
|
144002
144281
|
"name": "HelixHeadlessStatGroup",
|
|
144003
144282
|
"slots": [
|
|
144004
144283
|
{
|
|
@@ -144014,9 +144293,52 @@
|
|
|
144014
144293
|
"text": "string"
|
|
144015
144294
|
},
|
|
144016
144295
|
"default": "''",
|
|
144017
|
-
"description": "Accessible name for the group.",
|
|
144296
|
+
"description": "Accessible name for the group, which makes it a group.\n\nAbsent leaves the stats with no group around them, unless `aria-label` or\n`aria-labelledby` names it.",
|
|
144018
144297
|
"attribute": "label"
|
|
144019
144298
|
},
|
|
144299
|
+
{
|
|
144300
|
+
"kind": "field",
|
|
144301
|
+
"name": "observedAttributes",
|
|
144302
|
+
"type": {
|
|
144303
|
+
"text": "string[]"
|
|
144304
|
+
},
|
|
144305
|
+
"static": true,
|
|
144306
|
+
"description": "Hears a name written on the element, which no property mirrors.\n\nLit observes the attributes of its own properties only, and `ariaLabel`\nand `ariaLabelledByElements` belong to the platform.",
|
|
144307
|
+
"readonly": true
|
|
144308
|
+
},
|
|
144309
|
+
{
|
|
144310
|
+
"kind": "method",
|
|
144311
|
+
"name": "attributeChangedCallback",
|
|
144312
|
+
"return": {
|
|
144313
|
+
"type": {
|
|
144314
|
+
"text": "void"
|
|
144315
|
+
}
|
|
144316
|
+
},
|
|
144317
|
+
"parameters": [
|
|
144318
|
+
{
|
|
144319
|
+
"name": "name",
|
|
144320
|
+
"type": {
|
|
144321
|
+
"text": "string"
|
|
144322
|
+
}
|
|
144323
|
+
},
|
|
144324
|
+
{
|
|
144325
|
+
"name": "old",
|
|
144326
|
+
"type": {
|
|
144327
|
+
"text": "string | null"
|
|
144328
|
+
}
|
|
144329
|
+
},
|
|
144330
|
+
{
|
|
144331
|
+
"name": "value",
|
|
144332
|
+
"type": {
|
|
144333
|
+
"text": "string | null"
|
|
144334
|
+
}
|
|
144335
|
+
}
|
|
144336
|
+
],
|
|
144337
|
+
"description": "Called by the browser when an observed attribute changes. A name written\nor taken off asks for an update, because it decides whether the stats are\na group.",
|
|
144338
|
+
"type": {
|
|
144339
|
+
"text": "attributeChangedCallback(name: string, old: string | null, value: string | null) => void"
|
|
144340
|
+
}
|
|
144341
|
+
},
|
|
144020
144342
|
{
|
|
144021
144343
|
"kind": "field",
|
|
144022
144344
|
"name": "tier",
|
|
@@ -144364,7 +144686,7 @@
|
|
|
144364
144686
|
"text": "string"
|
|
144365
144687
|
},
|
|
144366
144688
|
"default": "''",
|
|
144367
|
-
"description": "Accessible name for the group.",
|
|
144689
|
+
"description": "Accessible name for the group, which makes it a group.\n\nAbsent leaves the stats with no group around them, unless `aria-label` or\n`aria-labelledby` names it.",
|
|
144368
144690
|
"fieldName": "label"
|
|
144369
144691
|
}
|
|
144370
144692
|
],
|
|
@@ -144450,11 +144772,23 @@
|
|
|
144450
144772
|
"declarations": [
|
|
144451
144773
|
{
|
|
144452
144774
|
"kind": "class",
|
|
144453
|
-
"description": "The label comes first in the markup and the value after it, so a screen\nreader reads what the figure counts before the number. Visually, the number\nstands out either way.\n\nBoth are bare slots. An element that assigned itself a slot on connect would\nadd an attribute after upgrade, which markup rendered on the server by React\ndoes not have.\n\n**A stat with a label is a group named by it**, so a reader moving through a\ndashboard hears \"Revenue, group\" and then the figure, its unit and its\ntrend as one reading, rather than a run of loose words. The role and the name\nare set through `ElementInternals` once the label is known, which writes no\nattribute; a stat with no label has no role. Put a `Trend` in the `trend`\nslot to have it read inside the group, after the figure it qualifies.",
|
|
144775
|
+
"description": "The label comes first in the markup and the value after it, so a screen\nreader reads what the figure counts before the number. Visually, the number\nstands out either way.\n\nBoth are bare slots. An element that assigned itself a slot on connect would\nadd an attribute after upgrade, which markup rendered on the server by React\ndoes not have.\n\n**A stat with a label is a group named by it**, so a reader moving through a\ndashboard hears \"Revenue, group\" and then the figure, its unit and its\ntrend as one reading, rather than a run of loose words. The role and the name\nare set through `ElementInternals` once the label is known, which writes no\nattribute; a stat with no label has no role. Put a `Trend` in the `trend`\nslot to have it read inside the group, after the figure it qualifies.\n\n**Or give the figure as a number.** `value` is written with\n`Intl.NumberFormat`, in `locale` and with `format-options`, so\n`value=\"1234567\" format-options='{\"notation\":\"compact\"}'` shows `1.2M`, and\na server writes it as the browser does. A number in `value` takes the place\nof a slotted figure.\n\n**Each slot is a part of the same name**, and `value` for the figure, so a\npage reaches the label, the unit and the trend from outside. A slot draws no\nbox, so a part passes inherited properties to what is slotted. **The stat\nsays which pieces it holds**, as `:state(has-label)`, `:state(has-unit)` and\n`:state(has-trend)`, read in the browser, so a served stat carries none\nuntil the script runs.",
|
|
144454
144776
|
"name": "HelixHeadlessStat",
|
|
144455
144777
|
"cssParts": [
|
|
144456
144778
|
{
|
|
144457
|
-
"description": "The slot the
|
|
144779
|
+
"description": "The slot the label arrives through, drawing no box, as `value` does.",
|
|
144780
|
+
"name": "label"
|
|
144781
|
+
},
|
|
144782
|
+
{
|
|
144783
|
+
"description": "The slot the trend arrives through, drawing no box, as `value` does.",
|
|
144784
|
+
"name": "trend"
|
|
144785
|
+
},
|
|
144786
|
+
{
|
|
144787
|
+
"description": "The slot the unit arrives through, drawing no box, as `value` does.",
|
|
144788
|
+
"name": "unit"
|
|
144789
|
+
},
|
|
144790
|
+
{
|
|
144791
|
+
"description": "The slot the value is written in, or the figure `value` writes. A slot draws no box, so it takes the inherited properties, such as color and font, and passes them to the value.",
|
|
144458
144792
|
"name": "value"
|
|
144459
144793
|
}
|
|
144460
144794
|
],
|
|
@@ -144487,6 +144821,41 @@
|
|
|
144487
144821
|
"attribute": "direction",
|
|
144488
144822
|
"reflects": true
|
|
144489
144823
|
},
|
|
144824
|
+
{
|
|
144825
|
+
"kind": "field",
|
|
144826
|
+
"name": "formatOptions",
|
|
144827
|
+
"type": {
|
|
144828
|
+
"text": "Intl.NumberFormatOptions | undefined"
|
|
144829
|
+
},
|
|
144830
|
+
"description": "`Intl.NumberFormat` options `value` is written with, such as\n`{\"notation\":\"compact\"}` for `1.2M` or `{\"style\":\"percent\"}` for `98%`,\nwritten as JSON in the attribute.\n\nAbsent writes the number as the locale writes any number.",
|
|
144831
|
+
"attribute": "format-options"
|
|
144832
|
+
},
|
|
144833
|
+
{
|
|
144834
|
+
"kind": "field",
|
|
144835
|
+
"name": "locale",
|
|
144836
|
+
"type": {
|
|
144837
|
+
"text": "string"
|
|
144838
|
+
},
|
|
144839
|
+
"default": "''",
|
|
144840
|
+
"description": "The locale `value` is written in, such as `de` for `1.234.567`.\n\nAbsent reads the nearest `lang`, then the runtime's own. Set it on a page\nrendered on a server, so the server and the browser write the figure\nalike.",
|
|
144841
|
+
"attribute": "locale"
|
|
144842
|
+
},
|
|
144843
|
+
{
|
|
144844
|
+
"kind": "field",
|
|
144845
|
+
"name": "value",
|
|
144846
|
+
"type": {
|
|
144847
|
+
"text": "number | undefined"
|
|
144848
|
+
},
|
|
144849
|
+
"description": "The figure as a number, written with `format-options` in `locale` in\nplace of a slotted value.\n\nAbsent leaves the figure to the slot.",
|
|
144850
|
+
"attribute": "value"
|
|
144851
|
+
},
|
|
144852
|
+
{
|
|
144853
|
+
"kind": "field",
|
|
144854
|
+
"name": "readPieces",
|
|
144855
|
+
"privacy": "private",
|
|
144856
|
+
"readonly": true,
|
|
144857
|
+
"description": "Says which pieces the stat holds, one call apiece so each pairs with its `@cssstate`."
|
|
144858
|
+
},
|
|
144490
144859
|
{
|
|
144491
144860
|
"kind": "field",
|
|
144492
144861
|
"name": "tier",
|
|
@@ -144835,6 +145204,53 @@
|
|
|
144835
145204
|
},
|
|
144836
145205
|
"description": "Which way the label and the value are arranged.\n\nAbsent is a column, the label over the number, which is how a figure is read\non a dashboard: the words say what is coming and the number answers.\n`column-reverse` puts the number first, which is right where the number is\nthe headline and the label is a caption under it.\n\nThe row directions set them side by side, for a figure in a line of text or\na narrow strip where a stacked pair would be two lines of almost nothing.\n\nA property rather than a `Flex` around it, because the unit has to stay on\nthe value's baseline whichever way the pair goes, and only this element\nknows which of its children the unit belongs to.\n\nThe name and the values are `Flex`'s, which lays out the same way. Which\nway a number moved is `Trend`'s `movement`. On a Stat, `up`, `down` and\n`neutral` are not layouts, and the pair stays the column.\n\n**Optional rather than defaulted to `column`, which is not a style\npreference.** A reflecting property with a default writes its attribute onto\nthe host the moment the element upgrades, and the host is markup the\nconsumer rendered: React compares what it rendered against what is there and\nreports a hydration mismatch. The absent attribute is the column, which the\nstylesheet reads as the base case, and the server spec asserts the host\ncarries nothing nobody wrote.",
|
|
144837
145206
|
"fieldName": "direction"
|
|
145207
|
+
},
|
|
145208
|
+
{
|
|
145209
|
+
"name": "format-options",
|
|
145210
|
+
"type": {
|
|
145211
|
+
"text": "Intl.NumberFormatOptions | undefined"
|
|
145212
|
+
},
|
|
145213
|
+
"description": "`Intl.NumberFormat` options `value` is written with, such as\n`{\"notation\":\"compact\"}` for `1.2M` or `{\"style\":\"percent\"}` for `98%`,\nwritten as JSON in the attribute.\n\nAbsent writes the number as the locale writes any number.",
|
|
145214
|
+
"fieldName": "formatOptions"
|
|
145215
|
+
},
|
|
145216
|
+
{
|
|
145217
|
+
"name": "locale",
|
|
145218
|
+
"type": {
|
|
145219
|
+
"text": "string"
|
|
145220
|
+
},
|
|
145221
|
+
"default": "''",
|
|
145222
|
+
"description": "The locale `value` is written in, such as `de` for `1.234.567`.\n\nAbsent reads the nearest `lang`, then the runtime's own. Set it on a page\nrendered on a server, so the server and the browser write the figure\nalike.",
|
|
145223
|
+
"fieldName": "locale"
|
|
145224
|
+
},
|
|
145225
|
+
{
|
|
145226
|
+
"name": "value",
|
|
145227
|
+
"type": {
|
|
145228
|
+
"text": "number | undefined"
|
|
145229
|
+
},
|
|
145230
|
+
"description": "The figure as a number, written with `format-options` in `locale` in\nplace of a slotted value.\n\nAbsent leaves the figure to the slot.",
|
|
145231
|
+
"fieldName": "value"
|
|
145232
|
+
}
|
|
145233
|
+
],
|
|
145234
|
+
"cssStates": [
|
|
145235
|
+
{
|
|
145236
|
+
"description": "Something is slotted into `label`.",
|
|
145237
|
+
"name": "has-label"
|
|
145238
|
+
},
|
|
145239
|
+
{
|
|
145240
|
+
"description": "Something is slotted into `trend`.",
|
|
145241
|
+
"name": "has-trend"
|
|
145242
|
+
},
|
|
145243
|
+
{
|
|
145244
|
+
"description": "Something is slotted into `unit`.",
|
|
145245
|
+
"name": "has-unit"
|
|
145246
|
+
},
|
|
145247
|
+
{
|
|
145248
|
+
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
145249
|
+
"name": "settled",
|
|
145250
|
+
"inheritedFrom": {
|
|
145251
|
+
"name": "HelixElement",
|
|
145252
|
+
"module": "src/helix-element/helix-element.ts"
|
|
145253
|
+
}
|
|
144838
145254
|
}
|
|
144839
145255
|
],
|
|
144840
145256
|
"superclass": {
|
|
@@ -144866,16 +145282,6 @@
|
|
|
144866
145282
|
},
|
|
144867
145283
|
"tagName": "helix-headless-stat",
|
|
144868
145284
|
"customElement": true,
|
|
144869
|
-
"cssStates": [
|
|
144870
|
-
{
|
|
144871
|
-
"description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
|
|
144872
|
-
"name": "settled",
|
|
144873
|
-
"inheritedFrom": {
|
|
144874
|
-
"name": "HelixElement",
|
|
144875
|
-
"module": "src/helix-element/helix-element.ts"
|
|
144876
|
-
}
|
|
144877
|
-
}
|
|
144878
|
-
],
|
|
144879
145285
|
"modulePath": "src/stat/root/stat-root.ts",
|
|
144880
145286
|
"definitionPath": "src/stat/root/stat-root.ts"
|
|
144881
145287
|
}
|
|
@@ -184425,6 +184831,6 @@
|
|
|
184425
184831
|
],
|
|
184426
184832
|
"helix": {
|
|
184427
184833
|
"package": "@fusion.dev/helix-headless",
|
|
184428
|
-
"version": "0.
|
|
184834
|
+
"version": "0.154.0"
|
|
184429
184835
|
}
|
|
184430
184836
|
}
|