@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/types/jsx.d.ts CHANGED
@@ -4130,12 +4130,6 @@ twice what this says once.
4130
4130
  Reflected and undefaulted, so a card that has not asked reads as a card
4131
4131
  with no attribute on it and the stylesheet only describes the departure. */
4132
4132
  mediaPlacement?: (HelixHeadlessCard["mediaPlacement"]) | undefined;
4133
- /** */
4134
- "aria-labelledby"?: unknown;
4135
- /** */
4136
- undefined?: unknown;
4137
- /** */
4138
- "aria-label"?: unknown;
4139
4133
  };
4140
4134
 
4141
4135
  export type HelixHeadlessCardSolidJsProps = {
@@ -4169,12 +4163,6 @@ twice what this says once.
4169
4163
  Reflected and undefaulted, so a card that has not asked reads as a card
4170
4164
  with no attribute on it and the stylesheet only describes the departure. */
4171
4165
  "prop:mediaPlacement"?: (HelixHeadlessCard["mediaPlacement"]) | undefined;
4172
- /** */
4173
- "attr:aria-labelledby"?: unknown;
4174
- /** */
4175
- "prop:undefined"?: unknown;
4176
- /** */
4177
- "attr:aria-label"?: unknown;
4178
4166
 
4179
4167
  /** Set the innerHTML of the element */
4180
4168
  innerHTML?: (string) | undefined;
@@ -5764,6 +5752,22 @@ Here rather than on each control. */
5764
5752
  };
5765
5753
 
5766
5754
  export type HelixHeadlessCodeBlockProps = {
5755
+ /** The name of a block that scrolls, which is a tab stop while it does.
5756
+
5757
+ Where the block has a name, the scroller says it too, such as "Code,
5758
+ app.ts", as `code-name-label` puts it. */
5759
+ "code-label"?: (HelixHeadlessCodeBlock["codeLabel"]) | undefined;
5760
+ /** The name of a block that scrolls, which is a tab stop while it does.
5761
+
5762
+ Where the block has a name, the scroller says it too, such as "Code,
5763
+ app.ts", as `code-name-label` puts it. */
5764
+ codeLabel?: (HelixHeadlessCodeBlock["codeLabel"]) | undefined;
5765
+ /** The name of a block that scrolls, where the block has a name. `{code}` is
5766
+ `code-label` and `{name}` the block's name. */
5767
+ "code-name-label"?: (HelixHeadlessCodeBlock["codeNameLabel"]) | undefined;
5768
+ /** The name of a block that scrolls, where the block has a name. `{code}` is
5769
+ `code-label` and `{name}` the block's name. */
5770
+ codeNameLabel?: (HelixHeadlessCodeBlock["codeNameLabel"]) | undefined;
5767
5771
  /** The expand button's words while the block shows every line. */
5768
5772
  "collapse-label"?: (HelixHeadlessCodeBlock["collapseLabel"]) | undefined;
5769
5773
  /** The expand button's words while the block shows every line. */
@@ -5904,6 +5908,22 @@ read, nor for a diff. */
5904
5908
  };
5905
5909
 
5906
5910
  export type HelixHeadlessCodeBlockSolidJsProps = {
5911
+ /** The name of a block that scrolls, which is a tab stop while it does.
5912
+
5913
+ Where the block has a name, the scroller says it too, such as "Code,
5914
+ app.ts", as `code-name-label` puts it. */
5915
+ "attr:code-label"?: (HelixHeadlessCodeBlock["codeLabel"]) | undefined;
5916
+ /** The name of a block that scrolls, which is a tab stop while it does.
5917
+
5918
+ Where the block has a name, the scroller says it too, such as "Code,
5919
+ app.ts", as `code-name-label` puts it. */
5920
+ "prop:codeLabel"?: (HelixHeadlessCodeBlock["codeLabel"]) | undefined;
5921
+ /** The name of a block that scrolls, where the block has a name. `{code}` is
5922
+ `code-label` and `{name}` the block's name. */
5923
+ "attr:code-name-label"?: (HelixHeadlessCodeBlock["codeNameLabel"]) | undefined;
5924
+ /** The name of a block that scrolls, where the block has a name. `{code}` is
5925
+ `code-label` and `{name}` the block's name. */
5926
+ "prop:codeNameLabel"?: (HelixHeadlessCodeBlock["codeNameLabel"]) | undefined;
5907
5927
  /** The expand button's words while the block shows every line. */
5908
5928
  "attr:collapse-label"?: (HelixHeadlessCodeBlock["collapseLabel"]) | undefined;
5909
5929
  /** The expand button's words while the block shows every line. */
@@ -14751,6 +14771,11 @@ the value instead.
14751
14771
  A name written `prefix:name` asks the library registered under that
14752
14772
  prefix. */
14753
14773
  name?: (HelixHeadlessIcon["name"]) | undefined;
14774
+ /** The URL of an SVG file to draw, fetched once a page and drawn in
14775
+ `currentColor` where the file does not color its shapes.
14776
+
14777
+ Wins over `name`; `icon` wins over both. Absent draws `name`. */
14778
+ src?: (HelixHeadlessIcon["src"]) | undefined;
14754
14779
  /** The icon to draw, as an object you import.
14755
14780
 
14756
14781
  **The scalable door, and the one this library uses internally.** An icon is
@@ -14765,9 +14790,9 @@ frameworks set properties and plain markup cannot, which is what `name` is
14765
14790
  for. Set both and this wins, the value being the more specific statement. */
14766
14791
  icon?: (HelixHeadlessIcon["icon"]) | undefined;
14767
14792
 
14768
- /** `name` matches no registered icon and no library answers it, so nothing is drawn. */
14793
+ /** `name` matches no registered icon and no library answers it, or `src` is no SVG, so nothing is drawn. */
14769
14794
  onerror?: ((e: HelixHeadlessIconElementEvent) => void) | undefined;
14770
- /** A glyph a library gave later for `name` is drawn. */
14795
+ /** A glyph a library gave later for `name`, or the file at `src`, is drawn. */
14771
14796
  onload?: ((e: HelixHeadlessIconElementEvent) => void) | undefined;
14772
14797
  };
14773
14798
 
@@ -14795,6 +14820,11 @@ the value instead.
14795
14820
  A name written `prefix:name` asks the library registered under that
14796
14821
  prefix. */
14797
14822
  "prop:name"?: (HelixHeadlessIcon["name"]) | undefined;
14823
+ /** The URL of an SVG file to draw, fetched once a page and drawn in
14824
+ `currentColor` where the file does not color its shapes.
14825
+
14826
+ Wins over `name`; `icon` wins over both. Absent draws `name`. */
14827
+ "prop:src"?: (HelixHeadlessIcon["src"]) | undefined;
14798
14828
  /** The icon to draw, as an object you import.
14799
14829
 
14800
14830
  **The scalable door, and the one this library uses internally.** An icon is
@@ -14808,9 +14838,9 @@ consumer's own drawings.
14808
14838
  frameworks set properties and plain markup cannot, which is what `name` is
14809
14839
  for. Set both and this wins, the value being the more specific statement. */
14810
14840
  "prop:icon"?: (HelixHeadlessIcon["icon"]) | undefined;
14811
- /** `name` matches no registered icon and no library answers it, so nothing is drawn. */
14841
+ /** `name` matches no registered icon and no library answers it, or `src` is no SVG, so nothing is drawn. */
14812
14842
  "on:error"?: ((e: HelixHeadlessIconElementEvent) => void) | undefined;
14813
- /** A glyph a library gave later for `name` is drawn. */
14843
+ /** A glyph a library gave later for `name`, or the file at `src`, is drawn. */
14814
14844
  "on:load"?: ((e: HelixHeadlessIconElementEvent) => void) | undefined;
14815
14845
 
14816
14846
  /** Set the innerHTML of the element */
@@ -23052,11 +23082,39 @@ which is what makes it read as dots rather than as a softened square code. */
23052
23082
  export type HelixHeadlessQuoteProps = {
23053
23083
  /** URL identifying where the quotation came from. */
23054
23084
  cite?: (HelixHeadlessQuote["cite"]) | undefined;
23085
+ /** Whether to leave the quotation marks off, for a quotation set where the
23086
+ page draws its own.
23087
+
23088
+ Negative, because the marks are on by default and a boolean attribute is
23089
+ true whenever it is present. Reflected, because a stylesheet takes the
23090
+ marks off on it. */
23091
+ "no-marks"?: (HelixHeadlessQuote["noMarks"]) | undefined;
23092
+ /** Whether to leave the quotation marks off, for a quotation set where the
23093
+ page draws its own.
23094
+
23095
+ Negative, because the marks are on by default and a boolean attribute is
23096
+ true whenever it is present. Reflected, because a stylesheet takes the
23097
+ marks off on it. */
23098
+ noMarks?: (HelixHeadlessQuote["noMarks"]) | undefined;
23055
23099
  };
23056
23100
 
23057
23101
  export type HelixHeadlessQuoteSolidJsProps = {
23058
23102
  /** URL identifying where the quotation came from. */
23059
23103
  "prop:cite"?: (HelixHeadlessQuote["cite"]) | undefined;
23104
+ /** Whether to leave the quotation marks off, for a quotation set where the
23105
+ page draws its own.
23106
+
23107
+ Negative, because the marks are on by default and a boolean attribute is
23108
+ true whenever it is present. Reflected, because a stylesheet takes the
23109
+ marks off on it. */
23110
+ "bool:no-marks"?: (HelixHeadlessQuote["noMarks"]) | undefined;
23111
+ /** Whether to leave the quotation marks off, for a quotation set where the
23112
+ page draws its own.
23113
+
23114
+ Negative, because the marks are on by default and a boolean attribute is
23115
+ true whenever it is present. Reflected, because a stylesheet takes the
23116
+ marks off on it. */
23117
+ "prop:noMarks"?: (HelixHeadlessQuote["noMarks"]) | undefined;
23060
23118
 
23061
23119
  /** Set the innerHTML of the element */
23062
23120
  innerHTML?: (string) | undefined;
@@ -25935,12 +25993,18 @@ The arrow keys move by `step` and do not snap. */
25935
25993
  };
25936
25994
 
25937
25995
  export type HelixHeadlessStatGroupProps = {
25938
- /** Accessible name for the group. */
25996
+ /** Accessible name for the group, which makes it a group.
25997
+
25998
+ Absent leaves the stats with no group around them, unless `aria-label` or
25999
+ `aria-labelledby` names it. */
25939
26000
  label?: (HelixHeadlessStatGroup["label"]) | undefined;
25940
26001
  };
25941
26002
 
25942
26003
  export type HelixHeadlessStatGroupSolidJsProps = {
25943
- /** Accessible name for the group. */
26004
+ /** Accessible name for the group, which makes it a group.
26005
+
26006
+ Absent leaves the stats with no group around them, unless `aria-label` or
26007
+ `aria-labelledby` names it. */
25944
26008
  "prop:label"?: (HelixHeadlessStatGroup["label"]) | undefined;
25945
26009
 
25946
26010
  /** Set the innerHTML of the element */
@@ -25976,6 +26040,29 @@ reports a hydration mismatch. The absent attribute is the column, which the
25976
26040
  stylesheet reads as the base case, and the server spec asserts the host
25977
26041
  carries nothing nobody wrote. */
25978
26042
  direction?: (HelixHeadlessStat["direction"]) | undefined;
26043
+ /** `Intl.NumberFormat` options `value` is written with, such as
26044
+ `{"notation":"compact"}` for `1.2M` or `{"style":"percent"}` for `98%`,
26045
+ written as JSON in the attribute.
26046
+
26047
+ Absent writes the number as the locale writes any number. */
26048
+ "format-options"?: (HelixHeadlessStat["formatOptions"]) | undefined;
26049
+ /** `Intl.NumberFormat` options `value` is written with, such as
26050
+ `{"notation":"compact"}` for `1.2M` or `{"style":"percent"}` for `98%`,
26051
+ written as JSON in the attribute.
26052
+
26053
+ Absent writes the number as the locale writes any number. */
26054
+ formatOptions?: (HelixHeadlessStat["formatOptions"]) | undefined;
26055
+ /** The locale `value` is written in, such as `de` for `1.234.567`.
26056
+
26057
+ Absent reads the nearest `lang`, then the runtime's own. Set it on a page
26058
+ rendered on a server, so the server and the browser write the figure
26059
+ alike. */
26060
+ locale?: (HelixHeadlessStat["locale"]) | undefined;
26061
+ /** The figure as a number, written with `format-options` in `locale` in
26062
+ place of a slotted value.
26063
+
26064
+ Absent leaves the figure to the slot. */
26065
+ value?: (HelixHeadlessStat["value"]) | undefined;
25979
26066
  };
25980
26067
 
25981
26068
  export type HelixHeadlessStatSolidJsProps = {
@@ -26005,6 +26092,29 @@ reports a hydration mismatch. The absent attribute is the column, which the
26005
26092
  stylesheet reads as the base case, and the server spec asserts the host
26006
26093
  carries nothing nobody wrote. */
26007
26094
  "prop:direction"?: (HelixHeadlessStat["direction"]) | undefined;
26095
+ /** `Intl.NumberFormat` options `value` is written with, such as
26096
+ `{"notation":"compact"}` for `1.2M` or `{"style":"percent"}` for `98%`,
26097
+ written as JSON in the attribute.
26098
+
26099
+ Absent writes the number as the locale writes any number. */
26100
+ "attr:format-options"?: (HelixHeadlessStat["formatOptions"]) | undefined;
26101
+ /** `Intl.NumberFormat` options `value` is written with, such as
26102
+ `{"notation":"compact"}` for `1.2M` or `{"style":"percent"}` for `98%`,
26103
+ written as JSON in the attribute.
26104
+
26105
+ Absent writes the number as the locale writes any number. */
26106
+ "prop:formatOptions"?: (HelixHeadlessStat["formatOptions"]) | undefined;
26107
+ /** The locale `value` is written in, such as `de` for `1.234.567`.
26108
+
26109
+ Absent reads the nearest `lang`, then the runtime's own. Set it on a page
26110
+ rendered on a server, so the server and the browser write the figure
26111
+ alike. */
26112
+ "prop:locale"?: (HelixHeadlessStat["locale"]) | undefined;
26113
+ /** The figure as a number, written with `format-options` in `locale` in
26114
+ place of a slotted value.
26115
+
26116
+ Absent leaves the figure to the slot. */
26117
+ "prop:value"?: (HelixHeadlessStat["value"]) | undefined;
26008
26118
 
26009
26119
  /** Set the innerHTML of the element */
26010
26120
  innerHTML?: (string) | undefined;
@@ -34093,6 +34203,12 @@ export type CustomElements = {
34093
34203
  * button "Inbox 8 unread", and stays current as the count changes. The styled
34094
34204
  * tier's `placement="inline"` draws the mark in the line for that case.
34095
34205
  *
34206
+ * **An icon goes inside the mark** through the `icon` slot, before the count,
34207
+ * as Web Awesome's badge takes one at its start. With no `value` the icon is
34208
+ * the whole mark, such as a check on an avatar, drawn where the dot would be.
34209
+ * The icon is hidden from screen readers: the count and `label` are what the
34210
+ * mark says.
34211
+ *
34096
34212
  * ## Attributes & Properties
34097
34213
  *
34098
34214
  * Component attributes and properties that can be applied to the element or by using JavaScript.
@@ -34156,12 +34272,14 @@ export type CustomElements = {
34156
34272
  * Areas where markup can be added to the component.
34157
34273
  *
34158
34274
  * - `(default)`: The element being decorated.
34275
+ * - `icon`: An icon inside the mark, before the count, or the whole mark when there is no value. Hidden from screen readers.
34159
34276
  *
34160
34277
  * ## CSS Parts
34161
34278
  *
34162
34279
  * Custom selectors for styling elements within the component.
34163
34280
  *
34164
- * - `indicator`: The count, or the dot when there is no value.
34281
+ * - `icon`: 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.
34282
+ * - `indicator`: 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.
34165
34283
  *
34166
34284
  * ## CSS States
34167
34285
  *
@@ -34169,7 +34287,8 @@ export type CustomElements = {
34169
34287
  *
34170
34288
  * - `blank`: The value is zero, so there is no mark.
34171
34289
  * - `capped`: The count is past `max`, so the mark shows `{max}+`.
34172
- * - `dot`: There is no value, so the mark is a dot.
34290
+ * - `dot`: There is no value and no icon, so the mark is a dot.
34291
+ * - `has-icon`: Something is slotted into `icon`, so it is drawn inside the mark.
34173
34292
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
34174
34293
  */
34175
34294
  "helix-headless-badge": Partial<
@@ -36059,13 +36178,17 @@ export type CustomElements = {
36059
36178
  * through with `::part`.
36060
36179
  *
36061
36180
  * Name the card with `label`, as a Stat Group is named, or with `aria-label`
36062
- * or `aria-labelledby`. These are the only names that work with server
36063
- * rendering, because reading a title from the light DOM needs a DOM, and the
36064
- * server has none. `label` is set through `ElementInternals`, so it writes no
36065
- * attribute onto the card. **A named card is a group**, so a
36181
+ * or `aria-labelledby`. `label` is set through `ElementInternals`, so it
36182
+ * writes no attribute onto the card. **A named card is a group**, so a
36066
36183
  * reader entering it hears its name; an unnamed one has no role, since a group
36067
36184
  * with no name only adds "group" to what a reader says.
36068
36185
  *
36186
+ * **With none of those, a heading in `header` names the card**, such as the
36187
+ * `<h2>` of its title, by reference, so the name follows the heading's words.
36188
+ * Reading a heading needs a DOM, so a served card is named by it once the
36189
+ * script runs; `label`, `aria-label` and `aria-labelledby` are the names a
36190
+ * server writes.
36191
+ *
36069
36192
  * Each region's slot is a part of the same name, `body` for the main content,
36070
36193
  * as Web Awesome's card names its regions. A slot draws no box, so a part
36071
36194
  * passes inherited properties to what is slotted, and a page wanting a box
@@ -36075,7 +36198,9 @@ export type CustomElements = {
36075
36198
  * header's and the footer's line, as Web Awesome's card does. While one holds
36076
36199
  * something, its line is a `header-row` or `footer-row` part; otherwise there
36077
36200
  * is no wrapper and every region is a bare slot. A server cannot see slotted
36078
- * content, so served actions sit on their own line until the script runs.
36201
+ * content, so a served card has no row; the styled tier sets served actions at
36202
+ * the end of their line from the stylesheet alone, so they do not move when
36203
+ * the script runs.
36079
36204
  *
36080
36205
  * **The card says which regions it holds**, as `:state(has-media)`,
36081
36206
  * `:state(has-header)` and `:state(has-footer)`, so a sheet can draw a card
@@ -36103,8 +36228,6 @@ export type CustomElements = {
36103
36228
  *
36104
36229
  * Reflected and undefaulted, so a card that has not asked reads as a card
36105
36230
  * with no attribute on it and the stylesheet only describes the departure.
36106
- * - `aria-labelledby`/`undefined`: undefined
36107
- * - `aria-label`/`undefined`: undefined
36108
36231
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
36109
36232
  *
36110
36233
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -36137,6 +36260,14 @@ export type CustomElements = {
36137
36260
  * - `header-actions`: Controls for the whole card at the end of the header's line, such as a menu.
36138
36261
  * - `media`: Image, video, or chart that runs edge to edge, outside the inset.
36139
36262
  *
36263
+ * ## Methods
36264
+ *
36265
+ * Methods that can be called to access component functionality.
36266
+ *
36267
+ * - `attributeChangedCallback(name: string, old: string | null, value: string | null) => void`: Called by the browser when an observed attribute changes. A name written
36268
+ * or taken off asks for an update, because it decides whether the card is a
36269
+ * group and whether its heading names it.
36270
+ *
36140
36271
  * ## CSS Parts
36141
36272
  *
36142
36273
  * Custom selectors for styling elements within the component.
@@ -37485,6 +37616,18 @@ export type CustomElements = {
37485
37616
  * and its copy button copies the new version of the file. `variant="split"`
37486
37617
  * shows the old version beside the new, each removal opposite its replacement.
37487
37618
  *
37619
+ * **A block that scrolls is a tab stop.** While its lines run past its width or
37620
+ * its cap, the scroller is a region named for the block, such as "Code,
37621
+ * app.ts", that Tab reaches, so a keyboard scrolls it with the arrow keys in
37622
+ * every browser. Chromium and Firefox make a scrolling box focusable on their
37623
+ * own, and Safari does not. A block that fits is no stop at all.
37624
+ *
37625
+ * **The code the block draws is marked untranslated**, `translate="no"` on
37626
+ * its `<pre>`, so a page translator leaves highlighted lines and a diff as
37627
+ * written. Code in the slot takes its translation mode from the element, which
37628
+ * writes nothing onto itself, so set `translate="no"` on the element to keep a
37629
+ * translator off plain code too.
37630
+ *
37488
37631
  * On the server, the slot renders as ordinary code, so a diff first appears as
37489
37632
  * the patch text in a `<pre>`. The client makes the same first render, which
37490
37633
  * keeps hydration clean, and draws the diff once it can read the content. Diff
@@ -37494,6 +37637,12 @@ export type CustomElements = {
37494
37637
  *
37495
37638
  * Component attributes and properties that can be applied to the element or by using JavaScript.
37496
37639
  *
37640
+ * - `code-label`/`codeLabel`: The name of a block that scrolls, which is a tab stop while it does.
37641
+ *
37642
+ * Where the block has a name, the scroller says it too, such as "Code,
37643
+ * app.ts", as `code-name-label` puts it.
37644
+ * - `code-name-label`/`codeNameLabel`: The name of a block that scrolls, where the block has a name. `{code}` is
37645
+ * `code-label` and `{name}` the block's name.
37497
37646
  * - `collapse-label`/`collapseLabel`: The expand button's words while the block shows every line.
37498
37647
  * - `copied-label`/`copiedLabel`: The copy button's name and tooltip text after a copy.
37499
37648
  * - `copy-label`/`copyLabel`: The copy button's name and tooltip text before a copy.
@@ -37659,6 +37808,13 @@ export type CustomElements = {
37659
37808
  * tools and document search. A styled span carries no such meaning, and a
37660
37809
  * screen reader announces nothing about it.
37661
37810
  *
37811
+ * **Set `translate="no"` on the element to keep a page translator off the
37812
+ * code.** A translator that rewrites prose would also rewrite an identifier.
37813
+ * The slotted text takes its translation mode from the element, its parent in
37814
+ * the page, and the element writes nothing onto itself, so the attribute is
37815
+ * yours to set. The `<code>` inside carries `translate="no"` for anything the
37816
+ * element draws itself.
37817
+ *
37662
37818
  * `Code` is inline only and never scrolls. For a block of code with its own
37663
37819
  * box, its own overflow, and copying, use `CodeBlock`, which is a separate
37664
37820
  * family.
@@ -41719,7 +41875,16 @@ export type CustomElements = {
41719
41875
  *
41720
41876
  * Every region is a bare slot. There is no `empty-state-heading` or
41721
41877
  * `empty-state-actions` element: assign your own heading and actions to the
41722
- * slots.
41878
+ * slots. The icon, the message and the actions slots are parts of the same
41879
+ * names, as Card's regions are. A slot draws no box, so a part passes
41880
+ * inherited properties, such as color and font, to what is slotted, and a
41881
+ * page wanting a box there gives it one with `display`, such as a row of
41882
+ * actions with `display: flex`.
41883
+ *
41884
+ * **The view says which regions it holds**, as `:state(has-icon)` and
41885
+ * `:state(has-actions)`, so a sheet can space a view with no icon or no
41886
+ * actions differently. Read in the browser, so a served view carries neither
41887
+ * until the script runs.
41723
41888
  *
41724
41889
  * **Or give the heading as words.** `heading` draws them in a `heading` part
41725
41890
  * that is a heading at `heading-level`, 3 where it is not set, so a page
@@ -41784,13 +41949,18 @@ export type CustomElements = {
41784
41949
  *
41785
41950
  * Custom selectors for styling elements within the component.
41786
41951
  *
41952
+ * - `actions`: 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.
41787
41953
  * - `heading`: The heading at `heading-level`: the one `heading` draws while nothing is slotted into `heading`, or the one around a slotted element that is no heading.
41954
+ * - `icon`: The slot the icon arrives through, drawing no box, as `actions` does.
41788
41955
  * - `live`: A copy of the heading and the message, in a live region that screen readers announce when the view appears. Visually hidden in the styled tier.
41956
+ * - `message`: The slot the message arrives through, drawing no box, as `actions` does.
41789
41957
  *
41790
41958
  * ## CSS States
41791
41959
  *
41792
41960
  * These can be used to apply styling when a component is in a given state.
41793
41961
  *
41962
+ * - `has-actions`: Something is slotted into `actions`.
41963
+ * - `has-icon`: Something is slotted into `icon`.
41794
41964
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
41795
41965
  */
41796
41966
  "helix-headless-empty": Partial<
@@ -44111,8 +44281,16 @@ export type CustomElements = {
44111
44281
  * a glyph that came later is drawn. A glyph registered after the element
44112
44282
  * rendered is drawn then.
44113
44283
  *
44114
- * A name with no match renders nothing, and the element fires `error`, so a
44115
- * typo in a name can be heard. It waits until the page has loaded and painted
44284
+ * **Or point `src` at an SVG file**, such as `src="/icons/rocket.svg"`, and
44285
+ * the element fetches it and draws its shapes in `currentColor` where the file
44286
+ * does not color them. A file is fetched once a page, however many icons name
44287
+ * it, and `load` fires when it is drawn. Scripts, event handlers and
44288
+ * `javascript:` links in the file are taken out before it is drawn. A server
44289
+ * fetches nothing, so a served icon with a `src` is drawn once the script
44290
+ * runs.
44291
+ *
44292
+ * A name with no match, or a `src` that is no SVG, renders nothing, and the
44293
+ * element fires `error`, so a typo in a name can be heard. It waits until the page has loaded and painted
44116
44294
  * first, so a library a later module registers is not taken for a typo.
44117
44295
  *
44118
44296
  * An icon is decorative by default and hidden from assistive technology. Set
@@ -44149,6 +44327,10 @@ export type CustomElements = {
44149
44327
  *
44150
44328
  * A name written `prefix:name` asks the library registered under that
44151
44329
  * prefix.
44330
+ * - `src`: The URL of an SVG file to draw, fetched once a page and drawn in
44331
+ * `currentColor` where the file does not color its shapes.
44332
+ *
44333
+ * Wins over `name`; `icon` wins over both. Absent draws `name`.
44152
44334
  * - `icon`: The icon to draw, as an object you import.
44153
44335
  *
44154
44336
  * **The scalable door, and the one this library uses internally.** An icon is
@@ -44186,8 +44368,8 @@ export type CustomElements = {
44186
44368
  *
44187
44369
  * Events that will be emitted by the component.
44188
44370
  *
44189
- * - `error`: `name` matches no registered icon and no library answers it, so nothing is drawn.
44190
- * - `load`: A glyph a library gave later for `name` is drawn.
44371
+ * - `error`: `name` matches no registered icon and no library answers it, or `src` is no SVG, so nothing is drawn.
44372
+ * - `load`: A glyph a library gave later for `name`, or the file at `src`, is drawn.
44191
44373
  *
44192
44374
  * ## Methods
44193
44375
  *
@@ -51221,6 +51403,12 @@ export type CustomElements = {
51221
51403
  * element, and its marks follow it: `lang="de"` sets „…“ and `lang="fr"` «…»
51222
51404
  * inside an English page.
51223
51405
  *
51406
+ * **`no-marks` leaves the marks off**, for a quotation set where the page draws
51407
+ * its own, such as a pull quote with a large decorative mark beside it or a
51408
+ * table of sayings. The quotation still counts toward nesting, so a quote
51409
+ * inside it takes the inner marks it would have had. Text with marks typed
51410
+ * into it raises no warning under `no-marks`.
51411
+ *
51224
51412
  * For a passage set off from the surrounding text, use a blockquote.
51225
51413
  *
51226
51414
  * ## Attributes & Properties
@@ -51228,6 +51416,12 @@ export type CustomElements = {
51228
51416
  * Component attributes and properties that can be applied to the element or by using JavaScript.
51229
51417
  *
51230
51418
  * - `cite`: URL identifying where the quotation came from.
51419
+ * - `no-marks`/`noMarks`: Whether to leave the quotation marks off, for a quotation set where the
51420
+ * page draws its own.
51421
+ *
51422
+ * Negative, because the marks are on by default and a boolean attribute is
51423
+ * true whenever it is present. Reflected, because a stylesheet takes the
51424
+ * marks off on it.
51231
51425
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
51232
51426
  *
51233
51427
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -53951,15 +54145,21 @@ export type CustomElements = {
53951
54145
  >;
53952
54146
 
53953
54147
  /**
53954
- * Screen readers announce the stats as a group. The figures are read together
53955
- * and their order has no meaning, so the group does not announce positions such
53956
- * as "1 of 4".
54148
+ * **A named group is a group**, so a screen reader announces the stats
54149
+ * together under its name, such as "Usage, group". Name it with `label`,
54150
+ * `aria-label` or `aria-labelledby`. An unnamed one has no role, since a group
54151
+ * with no name only adds "group" to what a reader says, as an unnamed Card
54152
+ * has none. The figures are read together and their order has no meaning, so
54153
+ * the group does not announce positions such as "1 of 4".
53957
54154
  *
53958
54155
  * ## Attributes & Properties
53959
54156
  *
53960
54157
  * Component attributes and properties that can be applied to the element or by using JavaScript.
53961
54158
  *
53962
- * - `label`: Accessible name for the group.
54159
+ * - `label`: Accessible name for the group, which makes it a group.
54160
+ *
54161
+ * Absent leaves the stats with no group around them, unless `aria-label` or
54162
+ * `aria-labelledby` names it.
53963
54163
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
53964
54164
  *
53965
54165
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -53987,6 +54187,14 @@ export type CustomElements = {
53987
54187
  *
53988
54188
  * - `(default)`: The stats.
53989
54189
  *
54190
+ * ## Methods
54191
+ *
54192
+ * Methods that can be called to access component functionality.
54193
+ *
54194
+ * - `attributeChangedCallback(name: string, old: string | null, value: string | null) => void`: Called by the browser when an observed attribute changes. A name written
54195
+ * or taken off asks for an update, because it decides whether the stats are
54196
+ * a group.
54197
+ *
53990
54198
  * ## CSS States
53991
54199
  *
53992
54200
  * These can be used to apply styling when a component is in a given state.
@@ -54013,6 +54221,19 @@ export type CustomElements = {
54013
54221
  * attribute; a stat with no label has no role. Put a `Trend` in the `trend`
54014
54222
  * slot to have it read inside the group, after the figure it qualifies.
54015
54223
  *
54224
+ * **Or give the figure as a number.** `value` is written with
54225
+ * `Intl.NumberFormat`, in `locale` and with `format-options`, so
54226
+ * `value="1234567" format-options='{"notation":"compact"}'` shows `1.2M`, and
54227
+ * a server writes it as the browser does. A number in `value` takes the place
54228
+ * of a slotted figure.
54229
+ *
54230
+ * **Each slot is a part of the same name**, and `value` for the figure, so a
54231
+ * page reaches the label, the unit and the trend from outside. A slot draws no
54232
+ * box, so a part passes inherited properties to what is slotted. **The stat
54233
+ * says which pieces it holds**, as `:state(has-label)`, `:state(has-unit)` and
54234
+ * `:state(has-trend)`, read in the browser, so a served stat carries none
54235
+ * until the script runs.
54236
+ *
54016
54237
  * ## Attributes & Properties
54017
54238
  *
54018
54239
  * Component attributes and properties that can be applied to the element or by using JavaScript.
@@ -54042,6 +54263,20 @@ export type CustomElements = {
54042
54263
  * reports a hydration mismatch. The absent attribute is the column, which the
54043
54264
  * stylesheet reads as the base case, and the server spec asserts the host
54044
54265
  * carries nothing nobody wrote.
54266
+ * - `format-options`/`formatOptions`: `Intl.NumberFormat` options `value` is written with, such as
54267
+ * `{"notation":"compact"}` for `1.2M` or `{"style":"percent"}` for `98%`,
54268
+ * written as JSON in the attribute.
54269
+ *
54270
+ * Absent writes the number as the locale writes any number.
54271
+ * - `locale`: The locale `value` is written in, such as `de` for `1.234.567`.
54272
+ *
54273
+ * Absent reads the nearest `lang`, then the runtime's own. Set it on a page
54274
+ * rendered on a server, so the server and the browser write the figure
54275
+ * alike.
54276
+ * - `value`: The figure as a number, written with `format-options` in `locale` in
54277
+ * place of a slotted value.
54278
+ *
54279
+ * Absent leaves the figure to the slot.
54045
54280
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
54046
54281
  *
54047
54282
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -54076,12 +54311,18 @@ export type CustomElements = {
54076
54311
  *
54077
54312
  * Custom selectors for styling elements within the component.
54078
54313
  *
54079
- * - `value`: The slot the value is written in. A slot draws no box, so it takes the inherited properties, such as color and font, and passes them to the value.
54314
+ * - `label`: The slot the label arrives through, drawing no box, as `value` does.
54315
+ * - `trend`: The slot the trend arrives through, drawing no box, as `value` does.
54316
+ * - `unit`: The slot the unit arrives through, drawing no box, as `value` does.
54317
+ * - `value`: 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.
54080
54318
  *
54081
54319
  * ## CSS States
54082
54320
  *
54083
54321
  * These can be used to apply styling when a component is in a given state.
54084
54322
  *
54323
+ * - `has-label`: Something is slotted into `label`.
54324
+ * - `has-trend`: Something is slotted into `trend`.
54325
+ * - `has-unit`: Something is slotted into `unit`.
54085
54326
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
54086
54327
  */
54087
54328
  "helix-headless-stat": Partial<
@@ -61114,6 +61355,12 @@ export type CustomElementsSolidJs = {
61114
61355
  * button "Inbox 8 unread", and stays current as the count changes. The styled
61115
61356
  * tier's `placement="inline"` draws the mark in the line for that case.
61116
61357
  *
61358
+ * **An icon goes inside the mark** through the `icon` slot, before the count,
61359
+ * as Web Awesome's badge takes one at its start. With no `value` the icon is
61360
+ * the whole mark, such as a check on an avatar, drawn where the dot would be.
61361
+ * The icon is hidden from screen readers: the count and `label` are what the
61362
+ * mark says.
61363
+ *
61117
61364
  * ## Attributes & Properties
61118
61365
  *
61119
61366
  * Component attributes and properties that can be applied to the element or by using JavaScript.
@@ -61177,12 +61424,14 @@ export type CustomElementsSolidJs = {
61177
61424
  * Areas where markup can be added to the component.
61178
61425
  *
61179
61426
  * - `(default)`: The element being decorated.
61427
+ * - `icon`: An icon inside the mark, before the count, or the whole mark when there is no value. Hidden from screen readers.
61180
61428
  *
61181
61429
  * ## CSS Parts
61182
61430
  *
61183
61431
  * Custom selectors for styling elements within the component.
61184
61432
  *
61185
- * - `indicator`: The count, or the dot when there is no value.
61433
+ * - `icon`: 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.
61434
+ * - `indicator`: 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.
61186
61435
  *
61187
61436
  * ## CSS States
61188
61437
  *
@@ -61190,7 +61439,8 @@ export type CustomElementsSolidJs = {
61190
61439
  *
61191
61440
  * - `blank`: The value is zero, so there is no mark.
61192
61441
  * - `capped`: The count is past `max`, so the mark shows `{max}+`.
61193
- * - `dot`: There is no value, so the mark is a dot.
61442
+ * - `dot`: There is no value and no icon, so the mark is a dot.
61443
+ * - `has-icon`: Something is slotted into `icon`, so it is drawn inside the mark.
61194
61444
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
61195
61445
  */
61196
61446
  "helix-headless-badge": Partial<
@@ -63101,13 +63351,17 @@ export type CustomElementsSolidJs = {
63101
63351
  * through with `::part`.
63102
63352
  *
63103
63353
  * Name the card with `label`, as a Stat Group is named, or with `aria-label`
63104
- * or `aria-labelledby`. These are the only names that work with server
63105
- * rendering, because reading a title from the light DOM needs a DOM, and the
63106
- * server has none. `label` is set through `ElementInternals`, so it writes no
63107
- * attribute onto the card. **A named card is a group**, so a
63354
+ * or `aria-labelledby`. `label` is set through `ElementInternals`, so it
63355
+ * writes no attribute onto the card. **A named card is a group**, so a
63108
63356
  * reader entering it hears its name; an unnamed one has no role, since a group
63109
63357
  * with no name only adds "group" to what a reader says.
63110
63358
  *
63359
+ * **With none of those, a heading in `header` names the card**, such as the
63360
+ * `<h2>` of its title, by reference, so the name follows the heading's words.
63361
+ * Reading a heading needs a DOM, so a served card is named by it once the
63362
+ * script runs; `label`, `aria-label` and `aria-labelledby` are the names a
63363
+ * server writes.
63364
+ *
63111
63365
  * Each region's slot is a part of the same name, `body` for the main content,
63112
63366
  * as Web Awesome's card names its regions. A slot draws no box, so a part
63113
63367
  * passes inherited properties to what is slotted, and a page wanting a box
@@ -63117,7 +63371,9 @@ export type CustomElementsSolidJs = {
63117
63371
  * header's and the footer's line, as Web Awesome's card does. While one holds
63118
63372
  * something, its line is a `header-row` or `footer-row` part; otherwise there
63119
63373
  * is no wrapper and every region is a bare slot. A server cannot see slotted
63120
- * content, so served actions sit on their own line until the script runs.
63374
+ * content, so a served card has no row; the styled tier sets served actions at
63375
+ * the end of their line from the stylesheet alone, so they do not move when
63376
+ * the script runs.
63121
63377
  *
63122
63378
  * **The card says which regions it holds**, as `:state(has-media)`,
63123
63379
  * `:state(has-header)` and `:state(has-footer)`, so a sheet can draw a card
@@ -63145,8 +63401,6 @@ export type CustomElementsSolidJs = {
63145
63401
  *
63146
63402
  * Reflected and undefaulted, so a card that has not asked reads as a card
63147
63403
  * with no attribute on it and the stylesheet only describes the departure.
63148
- * - `aria-labelledby`/`undefined`: undefined
63149
- * - `aria-label`/`undefined`: undefined
63150
63404
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
63151
63405
  *
63152
63406
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -63179,6 +63433,14 @@ export type CustomElementsSolidJs = {
63179
63433
  * - `header-actions`: Controls for the whole card at the end of the header's line, such as a menu.
63180
63434
  * - `media`: Image, video, or chart that runs edge to edge, outside the inset.
63181
63435
  *
63436
+ * ## Methods
63437
+ *
63438
+ * Methods that can be called to access component functionality.
63439
+ *
63440
+ * - `attributeChangedCallback(name: string, old: string | null, value: string | null) => void`: Called by the browser when an observed attribute changes. A name written
63441
+ * or taken off asks for an update, because it decides whether the card is a
63442
+ * group and whether its heading names it.
63443
+ *
63182
63444
  * ## CSS Parts
63183
63445
  *
63184
63446
  * Custom selectors for styling elements within the component.
@@ -64542,6 +64804,18 @@ export type CustomElementsSolidJs = {
64542
64804
  * and its copy button copies the new version of the file. `variant="split"`
64543
64805
  * shows the old version beside the new, each removal opposite its replacement.
64544
64806
  *
64807
+ * **A block that scrolls is a tab stop.** While its lines run past its width or
64808
+ * its cap, the scroller is a region named for the block, such as "Code,
64809
+ * app.ts", that Tab reaches, so a keyboard scrolls it with the arrow keys in
64810
+ * every browser. Chromium and Firefox make a scrolling box focusable on their
64811
+ * own, and Safari does not. A block that fits is no stop at all.
64812
+ *
64813
+ * **The code the block draws is marked untranslated**, `translate="no"` on
64814
+ * its `<pre>`, so a page translator leaves highlighted lines and a diff as
64815
+ * written. Code in the slot takes its translation mode from the element, which
64816
+ * writes nothing onto itself, so set `translate="no"` on the element to keep a
64817
+ * translator off plain code too.
64818
+ *
64545
64819
  * On the server, the slot renders as ordinary code, so a diff first appears as
64546
64820
  * the patch text in a `<pre>`. The client makes the same first render, which
64547
64821
  * keeps hydration clean, and draws the diff once it can read the content. Diff
@@ -64551,6 +64825,12 @@ export type CustomElementsSolidJs = {
64551
64825
  *
64552
64826
  * Component attributes and properties that can be applied to the element or by using JavaScript.
64553
64827
  *
64828
+ * - `code-label`/`codeLabel`: The name of a block that scrolls, which is a tab stop while it does.
64829
+ *
64830
+ * Where the block has a name, the scroller says it too, such as "Code,
64831
+ * app.ts", as `code-name-label` puts it.
64832
+ * - `code-name-label`/`codeNameLabel`: The name of a block that scrolls, where the block has a name. `{code}` is
64833
+ * `code-label` and `{name}` the block's name.
64554
64834
  * - `collapse-label`/`collapseLabel`: The expand button's words while the block shows every line.
64555
64835
  * - `copied-label`/`copiedLabel`: The copy button's name and tooltip text after a copy.
64556
64836
  * - `copy-label`/`copyLabel`: The copy button's name and tooltip text before a copy.
@@ -64719,6 +64999,13 @@ export type CustomElementsSolidJs = {
64719
64999
  * tools and document search. A styled span carries no such meaning, and a
64720
65000
  * screen reader announces nothing about it.
64721
65001
  *
65002
+ * **Set `translate="no"` on the element to keep a page translator off the
65003
+ * code.** A translator that rewrites prose would also rewrite an identifier.
65004
+ * The slotted text takes its translation mode from the element, its parent in
65005
+ * the page, and the element writes nothing onto itself, so the attribute is
65006
+ * yours to set. The `<code>` inside carries `translate="no"` for anything the
65007
+ * element draws itself.
65008
+ *
64722
65009
  * `Code` is inline only and never scrolls. For a block of code with its own
64723
65010
  * box, its own overflow, and copying, use `CodeBlock`, which is a separate
64724
65011
  * family.
@@ -68814,7 +69101,16 @@ export type CustomElementsSolidJs = {
68814
69101
  *
68815
69102
  * Every region is a bare slot. There is no `empty-state-heading` or
68816
69103
  * `empty-state-actions` element: assign your own heading and actions to the
68817
- * slots.
69104
+ * slots. The icon, the message and the actions slots are parts of the same
69105
+ * names, as Card's regions are. A slot draws no box, so a part passes
69106
+ * inherited properties, such as color and font, to what is slotted, and a
69107
+ * page wanting a box there gives it one with `display`, such as a row of
69108
+ * actions with `display: flex`.
69109
+ *
69110
+ * **The view says which regions it holds**, as `:state(has-icon)` and
69111
+ * `:state(has-actions)`, so a sheet can space a view with no icon or no
69112
+ * actions differently. Read in the browser, so a served view carries neither
69113
+ * until the script runs.
68818
69114
  *
68819
69115
  * **Or give the heading as words.** `heading` draws them in a `heading` part
68820
69116
  * that is a heading at `heading-level`, 3 where it is not set, so a page
@@ -68879,13 +69175,18 @@ export type CustomElementsSolidJs = {
68879
69175
  *
68880
69176
  * Custom selectors for styling elements within the component.
68881
69177
  *
69178
+ * - `actions`: 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.
68882
69179
  * - `heading`: The heading at `heading-level`: the one `heading` draws while nothing is slotted into `heading`, or the one around a slotted element that is no heading.
69180
+ * - `icon`: The slot the icon arrives through, drawing no box, as `actions` does.
68883
69181
  * - `live`: A copy of the heading and the message, in a live region that screen readers announce when the view appears. Visually hidden in the styled tier.
69182
+ * - `message`: The slot the message arrives through, drawing no box, as `actions` does.
68884
69183
  *
68885
69184
  * ## CSS States
68886
69185
  *
68887
69186
  * These can be used to apply styling when a component is in a given state.
68888
69187
  *
69188
+ * - `has-actions`: Something is slotted into `actions`.
69189
+ * - `has-icon`: Something is slotted into `icon`.
68889
69190
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
68890
69191
  */
68891
69192
  "helix-headless-empty": Partial<
@@ -71225,8 +71526,16 @@ export type CustomElementsSolidJs = {
71225
71526
  * a glyph that came later is drawn. A glyph registered after the element
71226
71527
  * rendered is drawn then.
71227
71528
  *
71228
- * A name with no match renders nothing, and the element fires `error`, so a
71229
- * typo in a name can be heard. It waits until the page has loaded and painted
71529
+ * **Or point `src` at an SVG file**, such as `src="/icons/rocket.svg"`, and
71530
+ * the element fetches it and draws its shapes in `currentColor` where the file
71531
+ * does not color them. A file is fetched once a page, however many icons name
71532
+ * it, and `load` fires when it is drawn. Scripts, event handlers and
71533
+ * `javascript:` links in the file are taken out before it is drawn. A server
71534
+ * fetches nothing, so a served icon with a `src` is drawn once the script
71535
+ * runs.
71536
+ *
71537
+ * A name with no match, or a `src` that is no SVG, renders nothing, and the
71538
+ * element fires `error`, so a typo in a name can be heard. It waits until the page has loaded and painted
71230
71539
  * first, so a library a later module registers is not taken for a typo.
71231
71540
  *
71232
71541
  * An icon is decorative by default and hidden from assistive technology. Set
@@ -71263,6 +71572,10 @@ export type CustomElementsSolidJs = {
71263
71572
  *
71264
71573
  * A name written `prefix:name` asks the library registered under that
71265
71574
  * prefix.
71575
+ * - `src`: The URL of an SVG file to draw, fetched once a page and drawn in
71576
+ * `currentColor` where the file does not color its shapes.
71577
+ *
71578
+ * Wins over `name`; `icon` wins over both. Absent draws `name`.
71266
71579
  * - `icon`: The icon to draw, as an object you import.
71267
71580
  *
71268
71581
  * **The scalable door, and the one this library uses internally.** An icon is
@@ -71300,8 +71613,8 @@ export type CustomElementsSolidJs = {
71300
71613
  *
71301
71614
  * Events that will be emitted by the component.
71302
71615
  *
71303
- * - `error`: `name` matches no registered icon and no library answers it, so nothing is drawn.
71304
- * - `load`: A glyph a library gave later for `name` is drawn.
71616
+ * - `error`: `name` matches no registered icon and no library answers it, or `src` is no SVG, so nothing is drawn.
71617
+ * - `load`: A glyph a library gave later for `name`, or the file at `src`, is drawn.
71305
71618
  *
71306
71619
  * ## Methods
71307
71620
  *
@@ -78434,6 +78747,12 @@ export type CustomElementsSolidJs = {
78434
78747
  * element, and its marks follow it: `lang="de"` sets „…“ and `lang="fr"` «…»
78435
78748
  * inside an English page.
78436
78749
  *
78750
+ * **`no-marks` leaves the marks off**, for a quotation set where the page draws
78751
+ * its own, such as a pull quote with a large decorative mark beside it or a
78752
+ * table of sayings. The quotation still counts toward nesting, so a quote
78753
+ * inside it takes the inner marks it would have had. Text with marks typed
78754
+ * into it raises no warning under `no-marks`.
78755
+ *
78437
78756
  * For a passage set off from the surrounding text, use a blockquote.
78438
78757
  *
78439
78758
  * ## Attributes & Properties
@@ -78441,6 +78760,12 @@ export type CustomElementsSolidJs = {
78441
78760
  * Component attributes and properties that can be applied to the element or by using JavaScript.
78442
78761
  *
78443
78762
  * - `cite`: URL identifying where the quotation came from.
78763
+ * - `no-marks`/`noMarks`: Whether to leave the quotation marks off, for a quotation set where the
78764
+ * page draws its own.
78765
+ *
78766
+ * Negative, because the marks are on by default and a boolean attribute is
78767
+ * true whenever it is present. Reflected, because a stylesheet takes the
78768
+ * marks off on it.
78444
78769
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
78445
78770
  *
78446
78771
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -81199,15 +81524,21 @@ export type CustomElementsSolidJs = {
81199
81524
  >;
81200
81525
 
81201
81526
  /**
81202
- * Screen readers announce the stats as a group. The figures are read together
81203
- * and their order has no meaning, so the group does not announce positions such
81204
- * as "1 of 4".
81527
+ * **A named group is a group**, so a screen reader announces the stats
81528
+ * together under its name, such as "Usage, group". Name it with `label`,
81529
+ * `aria-label` or `aria-labelledby`. An unnamed one has no role, since a group
81530
+ * with no name only adds "group" to what a reader says, as an unnamed Card
81531
+ * has none. The figures are read together and their order has no meaning, so
81532
+ * the group does not announce positions such as "1 of 4".
81205
81533
  *
81206
81534
  * ## Attributes & Properties
81207
81535
  *
81208
81536
  * Component attributes and properties that can be applied to the element or by using JavaScript.
81209
81537
  *
81210
- * - `label`: Accessible name for the group.
81538
+ * - `label`: Accessible name for the group, which makes it a group.
81539
+ *
81540
+ * Absent leaves the stats with no group around them, unless `aria-label` or
81541
+ * `aria-labelledby` names it.
81211
81542
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
81212
81543
  *
81213
81544
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -81235,6 +81566,14 @@ export type CustomElementsSolidJs = {
81235
81566
  *
81236
81567
  * - `(default)`: The stats.
81237
81568
  *
81569
+ * ## Methods
81570
+ *
81571
+ * Methods that can be called to access component functionality.
81572
+ *
81573
+ * - `attributeChangedCallback(name: string, old: string | null, value: string | null) => void`: Called by the browser when an observed attribute changes. A name written
81574
+ * or taken off asks for an update, because it decides whether the stats are
81575
+ * a group.
81576
+ *
81238
81577
  * ## CSS States
81239
81578
  *
81240
81579
  * These can be used to apply styling when a component is in a given state.
@@ -81264,6 +81603,19 @@ export type CustomElementsSolidJs = {
81264
81603
  * attribute; a stat with no label has no role. Put a `Trend` in the `trend`
81265
81604
  * slot to have it read inside the group, after the figure it qualifies.
81266
81605
  *
81606
+ * **Or give the figure as a number.** `value` is written with
81607
+ * `Intl.NumberFormat`, in `locale` and with `format-options`, so
81608
+ * `value="1234567" format-options='{"notation":"compact"}'` shows `1.2M`, and
81609
+ * a server writes it as the browser does. A number in `value` takes the place
81610
+ * of a slotted figure.
81611
+ *
81612
+ * **Each slot is a part of the same name**, and `value` for the figure, so a
81613
+ * page reaches the label, the unit and the trend from outside. A slot draws no
81614
+ * box, so a part passes inherited properties to what is slotted. **The stat
81615
+ * says which pieces it holds**, as `:state(has-label)`, `:state(has-unit)` and
81616
+ * `:state(has-trend)`, read in the browser, so a served stat carries none
81617
+ * until the script runs.
81618
+ *
81267
81619
  * ## Attributes & Properties
81268
81620
  *
81269
81621
  * Component attributes and properties that can be applied to the element or by using JavaScript.
@@ -81293,6 +81645,20 @@ export type CustomElementsSolidJs = {
81293
81645
  * reports a hydration mismatch. The absent attribute is the column, which the
81294
81646
  * stylesheet reads as the base case, and the server spec asserts the host
81295
81647
  * carries nothing nobody wrote.
81648
+ * - `format-options`/`formatOptions`: `Intl.NumberFormat` options `value` is written with, such as
81649
+ * `{"notation":"compact"}` for `1.2M` or `{"style":"percent"}` for `98%`,
81650
+ * written as JSON in the attribute.
81651
+ *
81652
+ * Absent writes the number as the locale writes any number.
81653
+ * - `locale`: The locale `value` is written in, such as `de` for `1.234.567`.
81654
+ *
81655
+ * Absent reads the nearest `lang`, then the runtime's own. Set it on a page
81656
+ * rendered on a server, so the server and the browser write the figure
81657
+ * alike.
81658
+ * - `value`: The figure as a number, written with `format-options` in `locale` in
81659
+ * place of a slotted value.
81660
+ *
81661
+ * Absent leaves the figure to the slot.
81296
81662
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
81297
81663
  *
81298
81664
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -81327,12 +81693,18 @@ export type CustomElementsSolidJs = {
81327
81693
  *
81328
81694
  * Custom selectors for styling elements within the component.
81329
81695
  *
81330
- * - `value`: The slot the value is written in. A slot draws no box, so it takes the inherited properties, such as color and font, and passes them to the value.
81696
+ * - `label`: The slot the label arrives through, drawing no box, as `value` does.
81697
+ * - `trend`: The slot the trend arrives through, drawing no box, as `value` does.
81698
+ * - `unit`: The slot the unit arrives through, drawing no box, as `value` does.
81699
+ * - `value`: 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.
81331
81700
  *
81332
81701
  * ## CSS States
81333
81702
  *
81334
81703
  * These can be used to apply styling when a component is in a given state.
81335
81704
  *
81705
+ * - `has-label`: Something is slotted into `label`.
81706
+ * - `has-trend`: Something is slotted into `trend`.
81707
+ * - `has-unit`: Something is slotted into `unit`.
81336
81708
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
81337
81709
  */
81338
81710
  "helix-headless-stat": Partial<