@fusion.dev/helix 0.152.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.
Files changed (33) hide show
  1. package/custom-elements.json +1563 -117
  2. package/dist/area-chart/root/area-chart-root.js +2 -1
  3. package/dist/badge/root/badge-root.css.js +1 -1
  4. package/dist/badge/root/badge-root.d.ts +1 -0
  5. package/dist/bar-chart/root/bar-chart-root.js +2 -1
  6. package/dist/blockquote/root/blockquote-root.css.js +2 -1
  7. package/dist/blockquote/root/blockquote-root.d.ts +27 -0
  8. package/dist/blockquote/root/blockquote-root.js +7 -0
  9. package/dist/card/root/card-root.css.js +3 -1
  10. package/dist/code/root/code-root.css.js +2 -2
  11. package/dist/code/root/code-root.d.ts +1 -0
  12. package/dist/code-block/root/code-block-root.css.js +4 -1
  13. package/dist/code-block/root/code-block-root.d.ts +1 -0
  14. package/dist/icon/root/icon-root.css.js +8 -1
  15. package/dist/icon/root/icon-root.d.ts +38 -1
  16. package/dist/icon/root/icon-root.js +17 -0
  17. package/dist/line-chart/root/line-chart-root.js +8 -1
  18. package/dist/orb/root/orb-root.d.ts +6 -0
  19. package/dist/progress/root/progress-root.css.js +12 -3
  20. package/dist/progress/root/progress-root.d.ts +4 -0
  21. package/dist/quote/root/quote-root.css.js +1 -1
  22. package/dist/scatter-chart/root/scatter-chart-root.js +2 -1
  23. package/dist/shared/chart/status.css.d.ts +1 -0
  24. package/dist/shared/chart/status.css.js +3 -0
  25. package/dist/skeleton/root/skeleton-root.css.js +11 -7
  26. package/dist/skeleton/root/skeleton-root.d.ts +18 -2
  27. package/dist/skeleton/root/skeleton-root.js +11 -0
  28. package/dist/stat/root/stat-root.css.js +1 -1
  29. package/lint.json +1 -1
  30. package/package.json +6 -6
  31. package/types/jsx.d.ts +1463 -45
  32. package/types/vue.d.ts +373 -14
  33. package/types/words.d.ts +19 -4
package/types/vue.d.ts CHANGED
@@ -689,6 +689,25 @@ export type HelixAreaChartHelixReadingPressElementEvent =
689
689
  HelixAreaChartElementEvent<HelixReadingPressEvent>;
690
690
 
691
691
  export type HelixAreaChartVueProps = {
692
+ /** The words shown in place of the drawing when the table has no readings,
693
+ and the fallback of the `empty` slot. */
694
+ "empty-text"?: (HelixAreaChart["emptyText"]) | undefined;
695
+ /** The words shown in place of the drawing when the table has no readings,
696
+ and the fallback of the `empty` slot. */
697
+ emptyText?: (HelixAreaChart["emptyText"]) | undefined;
698
+ /** Whether the readings are still on their way. The chart shows
699
+ `loading-text` in place of an empty drawing until it has readings.
700
+
701
+ Reflected, so a stylesheet can treat the chart while it waits. A chart
702
+ that already has readings keeps drawing them, so a refresh does not
703
+ blank it. */
704
+ loading?: (HelixAreaChart["loading"]) | undefined;
705
+ /** The words shown in place of the drawing while `loading` is set and
706
+ there are no readings yet, and the fallback of the `loading` slot. */
707
+ "loading-text"?: (HelixAreaChart["loadingText"]) | undefined;
708
+ /** The words shown in place of the drawing while `loading` is set and
709
+ there are no readings yet, and the fallback of the `loading` slot. */
710
+ loadingText?: (HelixAreaChart["loadingText"]) | undefined;
692
711
  /** The id of the table to read.
693
712
 
694
713
  Names a table in the same tree, so a chart inside another component's
@@ -786,6 +805,29 @@ them, and the tooltip and the table hold every reading. */
786
805
  Absent draws none: bands read as a composition need no numbers beside
787
806
  them, and the tooltip and the table hold every reading. */
788
807
  valueAxis?: (HelixAreaChart["valueAxis"]) | undefined;
808
+ /** The readings as data, in the shape of a table, where the page has no
809
+ table to point `for` at. `for` wins where both are set.
810
+
811
+ ```js
812
+ chart.data = {
813
+ caption: 'Sessions by channel',
814
+ columns: ['Month', 'Direct', 'Referral'],
815
+ rows: [['Jan', 10, 4], ['Feb', 20, 8]],
816
+ }
817
+ ```
818
+
819
+ The first column holds each row's label and every column after it a
820
+ series, as in a table. A cell is a number, words, `null` for a blank,
821
+ or `{ value, text }` for a number shown as words, such as `$128k`. A
822
+ number is shown in `locale`.
823
+
824
+ **A table is still the better source where the page can show one**:
825
+ it reads with no script and before hydration, and a reader can sort and
826
+ copy it. Data is drawn on the client only, so a server serves the
827
+ frame, and the summary, the keys and the readout are then the whole of
828
+ what a screen reader is given. Set a new object to redraw: the chart
829
+ does not look inside the one it has. */
830
+ data?: (HelixAreaChart["data"]) | undefined;
789
831
  };
790
832
 
791
833
  export type HelixAreaChartVueEvents = {
@@ -1226,6 +1268,25 @@ every component in the library and mean something on one. `wash` because
1226
1268
  that is what the tier below already calls it, in `--chart-bar-wash` and in
1227
1269
  the `bar-wash-start` and `bar-wash-end` stops. */
1228
1270
  wash?: (HelixBarChart["wash"]) | undefined;
1271
+ /** The words shown in place of the drawing when the table has no readings,
1272
+ and the fallback of the `empty` slot. */
1273
+ "empty-text"?: (HelixBarChart["emptyText"]) | undefined;
1274
+ /** The words shown in place of the drawing when the table has no readings,
1275
+ and the fallback of the `empty` slot. */
1276
+ emptyText?: (HelixBarChart["emptyText"]) | undefined;
1277
+ /** Whether the readings are still on their way. The chart shows
1278
+ `loading-text` in place of an empty drawing until it has readings.
1279
+
1280
+ Reflected, so a stylesheet can treat the chart while it waits. A chart
1281
+ that already has readings keeps drawing them, so a refresh does not
1282
+ blank it. */
1283
+ loading?: (HelixBarChart["loading"]) | undefined;
1284
+ /** The words shown in place of the drawing while `loading` is set and
1285
+ there are no readings yet, and the fallback of the `loading` slot. */
1286
+ "loading-text"?: (HelixBarChart["loadingText"]) | undefined;
1287
+ /** The words shown in place of the drawing while `loading` is set and
1288
+ there are no readings yet, and the fallback of the `loading` slot. */
1289
+ loadingText?: (HelixBarChart["loadingText"]) | undefined;
1229
1290
  /** The id of the table to read.
1230
1291
 
1231
1292
  Names a table in the same tree, so a chart inside another component's
@@ -1385,6 +1446,29 @@ bottom of bars under `orientation="horizontal"`.
1385
1446
  Absent draws none with one scale, since bars compared with each other need
1386
1447
  no numbers. With `secondary` both scales are drawn whatever this says. */
1387
1448
  valueAxis?: (HelixBarChart["valueAxis"]) | undefined;
1449
+ /** The readings as data, in the shape of a table, where the page has no
1450
+ table to point `for` at. `for` wins where both are set.
1451
+
1452
+ ```js
1453
+ chart.data = {
1454
+ caption: 'Sessions by channel',
1455
+ columns: ['Month', 'Direct', 'Referral'],
1456
+ rows: [['Jan', 10, 4], ['Feb', 20, 8]],
1457
+ }
1458
+ ```
1459
+
1460
+ The first column holds each row's label and every column after it a
1461
+ series, as in a table. A cell is a number, words, `null` for a blank,
1462
+ or `{ value, text }` for a number shown as words, such as `$128k`. A
1463
+ number is shown in `locale`.
1464
+
1465
+ **A table is still the better source where the page can show one**:
1466
+ it reads with no script and before hydration, and a reader can sort and
1467
+ copy it. Data is drawn on the client only, so a server serves the
1468
+ frame, and the summary, the keys and the readout are then the whole of
1469
+ what a screen reader is given. Set a new object to redraw: the chart
1470
+ does not look inside the one it has. */
1471
+ data?: (HelixBarChart["data"]) | undefined;
1388
1472
  };
1389
1473
 
1390
1474
  export type HelixBarChartVueEvents = {
@@ -1395,6 +1479,42 @@ export type HelixBarChartVueEvents = {
1395
1479
  };
1396
1480
 
1397
1481
  export type HelixBlockquoteVueProps = {
1482
+ /** How the passage and its attribution align, set as `text-align`.
1483
+
1484
+ `center` for a pull quote in the middle of a column and `end` for one
1485
+ against its far edge. Under either, the mark `marks` draws stands over
1486
+ the first line. Absent aligns as the prose around it does.
1487
+
1488
+ Named for the CSS property it sets, as `Text.textAlign` is: `align` alone
1489
+ is a legacy HTML attribute the browser maps to `text-align` by itself,
1490
+ and it has no `start` or `end`. */
1491
+ "text-align"?: (HelixBlockquote["textAlign"]) | undefined;
1492
+ /** How the passage and its attribution align, set as `text-align`.
1493
+
1494
+ `center` for a pull quote in the middle of a column and `end` for one
1495
+ against its far edge. Under either, the mark `marks` draws stands over
1496
+ the first line. Absent aligns as the prose around it does.
1497
+
1498
+ Named for the CSS property it sets, as `Text.textAlign` is: `align` alone
1499
+ is a legacy HTML attribute the browser maps to `text-align` by itself,
1500
+ and it has no `start` or `end`. */
1501
+ textAlign?: (HelixBlockquote["textAlign"]) | undefined;
1502
+ /** How the passage's lines break, set as `text-wrap`.
1503
+
1504
+ `balance` evens out the length of every line, which suits a pull quote of
1505
+ a few lines in display type. `pretty` avoids a last line of one short
1506
+ word, for a longer passage. Absent, the lines break as the browser breaks
1507
+ them. The same name and values `Text` takes, but `nowrap`, a passage being
1508
+ more than one line. */
1509
+ "text-wrap"?: (HelixBlockquote["textWrap"]) | undefined;
1510
+ /** How the passage's lines break, set as `text-wrap`.
1511
+
1512
+ `balance` evens out the length of every line, which suits a pull quote of
1513
+ a few lines in display type. `pretty` avoids a last line of one short
1514
+ word, for a longer passage. Absent, the lines break as the browser breaks
1515
+ them. The same name and values `Text` takes, but `nowrap`, a passage being
1516
+ more than one line. */
1517
+ textWrap?: (HelixBlockquote["textWrap"]) | undefined;
1398
1518
  /** Who said it, and where, as words, such as "Maria Lopez, operations
1399
1519
  manager". The `attribution` slot replaces them, for markup such as a link.
1400
1520
 
@@ -2588,10 +2708,6 @@ twice what this says once.
2588
2708
  Reflected and undefaulted, so a card that has not asked reads as a card
2589
2709
  with no attribute on it and the stylesheet only describes the departure. */
2590
2710
  mediaPlacement?: (HelixCard["mediaPlacement"]) | undefined;
2591
- /** */
2592
- "aria-labelledby"?: unknown;
2593
- /** */
2594
- "aria-label"?: unknown;
2595
2711
  };
2596
2712
 
2597
2713
  export type HelixCardVueEvents = {};
@@ -3675,6 +3791,22 @@ significant in code and a wrapped line reads as two. For prose-like code, such a
3675
3791
  a log line, a wrap reads better than a scroll. Line numbers keep the lines
3676
3792
  unwrapped, since a wrapped line would take one number and several rows. */
3677
3793
  wrap?: (HelixCodeBlock["wrap"]) | undefined;
3794
+ /** The name of a block that scrolls, which is a tab stop while it does.
3795
+
3796
+ Where the block has a name, the scroller says it too, such as "Code,
3797
+ app.ts", as `code-name-label` puts it. */
3798
+ "code-label"?: (HelixCodeBlock["codeLabel"]) | undefined;
3799
+ /** The name of a block that scrolls, which is a tab stop while it does.
3800
+
3801
+ Where the block has a name, the scroller says it too, such as "Code,
3802
+ app.ts", as `code-name-label` puts it. */
3803
+ codeLabel?: (HelixCodeBlock["codeLabel"]) | undefined;
3804
+ /** The name of a block that scrolls, where the block has a name. `{code}` is
3805
+ `code-label` and `{name}` the block's name. */
3806
+ "code-name-label"?: (HelixCodeBlock["codeNameLabel"]) | undefined;
3807
+ /** The name of a block that scrolls, where the block has a name. `{code}` is
3808
+ `code-label` and `{name}` the block's name. */
3809
+ codeNameLabel?: (HelixCodeBlock["codeNameLabel"]) | undefined;
3678
3810
  /** The expand button's words while the block shows every line. */
3679
3811
  "collapse-label"?: (HelixCodeBlock["collapseLabel"]) | undefined;
3680
3812
  /** The expand button's words while the block shows every line. */
@@ -6691,6 +6823,29 @@ rotation that puts the first slice at nine o'clock, the aspect ratio of a
6691
6823
  box that is no longer square, and where the middle sits once the bottom of
6692
6824
  the circle is not drawn. */
6693
6825
  sweep?: (HelixDonutChart["sweep"]) | undefined;
6826
+ /** The readings as data, in the shape of a table, where the page has no
6827
+ table to point `for` at. `for` wins where both are set.
6828
+
6829
+ ```js
6830
+ chart.data = {
6831
+ caption: 'Sessions by channel',
6832
+ columns: ['Month', 'Direct', 'Referral'],
6833
+ rows: [['Jan', 10, 4], ['Feb', 20, 8]],
6834
+ }
6835
+ ```
6836
+
6837
+ The first column holds each row's label and every column after it a
6838
+ series, as in a table. A cell is a number, words, `null` for a blank,
6839
+ or `{ value, text }` for a number shown as words, such as `$128k`. A
6840
+ number is shown in `locale`.
6841
+
6842
+ **A table is still the better source where the page can show one**:
6843
+ it reads with no script and before hydration, and a reader can sort and
6844
+ copy it. Data is drawn on the client only, so a server serves the
6845
+ frame, and the summary, the keys and the readout are then the whole of
6846
+ what a screen reader is given. Set a new object to redraw: the chart
6847
+ does not look inside the one it has. */
6848
+ data?: (HelixDonutChart["data"]) | undefined;
6694
6849
  };
6695
6850
 
6696
6851
  export type HelixDonutChartVueEvents = {};
@@ -8318,6 +8473,29 @@ no order in it. */
8318
8473
  Set it to start with cells selected. Written by a press or a key under
8319
8474
  `selection-mode`. */
8320
8475
  value?: (HelixHeatmap["value"]) | undefined;
8476
+ /** The readings as data, in the shape of a table, where the page has no
8477
+ table to point `for` at. `for` wins where both are set.
8478
+
8479
+ ```js
8480
+ chart.data = {
8481
+ caption: 'Sessions by channel',
8482
+ columns: ['Month', 'Direct', 'Referral'],
8483
+ rows: [['Jan', 10, 4], ['Feb', 20, 8]],
8484
+ }
8485
+ ```
8486
+
8487
+ The first column holds each row's label and every column after it a
8488
+ series, as in a table. A cell is a number, words, `null` for a blank,
8489
+ or `{ value, text }` for a number shown as words, such as `$128k`. A
8490
+ number is shown in `locale`.
8491
+
8492
+ **A table is still the better source where the page can show one**:
8493
+ it reads with no script and before hydration, and a reader can sort and
8494
+ copy it. Data is drawn on the client only, so a server serves the
8495
+ frame, and the summary, the keys and the readout are then the whole of
8496
+ what a screen reader is given. Set a new object to redraw: the chart
8497
+ does not look inside the one it has. */
8498
+ data?: (HelixHeatmap["data"]) | undefined;
8321
8499
  };
8322
8500
 
8323
8501
  export type HelixHeatmapVueEvents = {
@@ -8570,6 +8748,31 @@ export type HelixIconButtonVueEvents = {
8570
8748
  export type HelixIconElementEvent<E = Event> = TypedEvent<HelixIcon, E>;
8571
8749
 
8572
8750
  export type HelixIconVueProps = {
8751
+ /** A motion that draws the eye or says work is going on: `spin` turns the
8752
+ glyph without end, `pulse` fades it in and out, and `beat` swells it.
8753
+
8754
+ Absent is still. Reduced motion stills every one of them. */
8755
+ animation?: (HelixIcon["animation"]) | undefined;
8756
+ /** Whether the box takes the glyph's own proportions, its height from
8757
+ `--icon-size` and its width from the glyph's box.
8758
+
8759
+ Absent is a square, which lines icons up in a column. */
8760
+ "auto-width"?: (HelixIcon["autoWidth"]) | undefined;
8761
+ /** Whether the box takes the glyph's own proportions, its height from
8762
+ `--icon-size` and its width from the glyph's box.
8763
+
8764
+ Absent is a square, which lines icons up in a column. */
8765
+ autoWidth?: (HelixIcon["autoWidth"]) | undefined;
8766
+ /** Mirrors the glyph across an axis: `x` left to right, `y` top to bottom,
8767
+ `both` across both.
8768
+
8769
+ Absent draws it as it is. On a right-to-left page, `mirror` is the flip
8770
+ that follows the direction. */
8771
+ flip?: (HelixIcon["flip"]) | undefined;
8772
+ /** Turns the glyph clockwise by 90, 180 or 270 degrees.
8773
+
8774
+ Absent draws it upright. `--icon-rotate` turns it by any other angle. */
8775
+ rotate?: (HelixIcon["rotate"]) | undefined;
8573
8776
  /** The icon's name, read by screen readers. Set it for an icon that is not
8574
8777
  decorative. */
8575
8778
  label?: (HelixIcon["label"]) | undefined;
@@ -8593,6 +8796,11 @@ the value instead.
8593
8796
  A name written `prefix:name` asks the library registered under that
8594
8797
  prefix. */
8595
8798
  name?: (HelixIcon["name"]) | undefined;
8799
+ /** The URL of an SVG file to draw, fetched once a page and drawn in
8800
+ `currentColor` where the file does not color its shapes.
8801
+
8802
+ Wins over `name`; `icon` wins over both. Absent draws `name`. */
8803
+ src?: (HelixIcon["src"]) | undefined;
8596
8804
  /** The icon to draw, as an object you import.
8597
8805
 
8598
8806
  **The scalable door, and the one this library uses internally.** An icon is
@@ -8609,9 +8817,9 @@ for. Set both and this wins, the value being the more specific statement. */
8609
8817
  };
8610
8818
 
8611
8819
  export type HelixIconVueEvents = {
8612
- /** `name` matches no registered icon and no library answers it, so nothing is drawn. */
8820
+ /** `name` matches no registered icon and no library answers it, or `src` is no SVG, so nothing is drawn. */
8613
8821
  error: HelixIconElementEvent;
8614
- /** A glyph a library gave later for `name` is drawn. */
8822
+ /** A glyph a library gave later for `name`, or the file at `src`, is drawn. */
8615
8823
  load: HelixIconElementEvent;
8616
8824
  };
8617
8825
 
@@ -9411,6 +9619,25 @@ chart and a card mean the same thing by the word.
9411
9619
  material choice, it is an absent series, and a chart says that by not
9412
9620
  having the datum rather than by painting it invisibly. */
9413
9621
  material?: (HelixLineChart["material"]) | undefined;
9622
+ /** The words shown in place of the drawing when the table has no readings,
9623
+ and the fallback of the `empty` slot. */
9624
+ "empty-text"?: (HelixLineChart["emptyText"]) | undefined;
9625
+ /** The words shown in place of the drawing when the table has no readings,
9626
+ and the fallback of the `empty` slot. */
9627
+ emptyText?: (HelixLineChart["emptyText"]) | undefined;
9628
+ /** Whether the readings are still on their way. The chart shows
9629
+ `loading-text` in place of an empty drawing until it has readings.
9630
+
9631
+ Reflected, so a stylesheet can treat the chart while it waits. A chart
9632
+ that already has readings keeps drawing them, so a refresh does not
9633
+ blank it. */
9634
+ loading?: (HelixLineChart["loading"]) | undefined;
9635
+ /** The words shown in place of the drawing while `loading` is set and
9636
+ there are no readings yet, and the fallback of the `loading` slot. */
9637
+ "loading-text"?: (HelixLineChart["loadingText"]) | undefined;
9638
+ /** The words shown in place of the drawing while `loading` is set and
9639
+ there are no readings yet, and the fallback of the `loading` slot. */
9640
+ loadingText?: (HelixLineChart["loadingText"]) | undefined;
9414
9641
  /** The id of the table to read.
9415
9642
 
9416
9643
  Names a table in the same tree, so a chart inside another component's
@@ -9568,6 +9795,29 @@ Set it where the distance from nothing is the point rather than the shape,
9568
9795
  and accept that a series which never approaches zero becomes a flat rule
9569
9796
  near the top of the box. */
9570
9797
  zero?: (HelixLineChart["zero"]) | undefined;
9798
+ /** The readings as data, in the shape of a table, where the page has no
9799
+ table to point `for` at. `for` wins where both are set.
9800
+
9801
+ ```js
9802
+ chart.data = {
9803
+ caption: 'Sessions by channel',
9804
+ columns: ['Month', 'Direct', 'Referral'],
9805
+ rows: [['Jan', 10, 4], ['Feb', 20, 8]],
9806
+ }
9807
+ ```
9808
+
9809
+ The first column holds each row's label and every column after it a
9810
+ series, as in a table. A cell is a number, words, `null` for a blank,
9811
+ or `{ value, text }` for a number shown as words, such as `$128k`. A
9812
+ number is shown in `locale`.
9813
+
9814
+ **A table is still the better source where the page can show one**:
9815
+ it reads with no script and before hydration, and a reader can sort and
9816
+ copy it. Data is drawn on the client only, so a server serves the
9817
+ frame, and the summary, the keys and the readout are then the whole of
9818
+ what a screen reader is given. Set a new object to redraw: the chart
9819
+ does not look inside the one it has. */
9820
+ data?: (HelixLineChart["data"]) | undefined;
9571
9821
  };
9572
9822
 
9573
9823
  export type HelixLineChartVueEvents = {
@@ -12257,7 +12507,13 @@ the state's word.
12257
12507
 
12258
12508
  Off by default, because the name and the busy state already change with
12259
12509
  the state, and an orb beside a stream of messages would otherwise talk
12260
- over them. Set it on an orb that is the only sign of progress on the page. */
12510
+ over them. Set it on an orb that is the only sign of progress on the page.
12511
+
12512
+ **Without it, finishing is silent.** `done` turns the orb into an image
12513
+ named "Done" that is no longer busy, which a screen reader reports when it
12514
+ next reaches the orb and does not say as it happens. A page whose own
12515
+ result arrives in a live region, such as a chat reply, already says the
12516
+ work is done; one that shows nothing else sets `announce`. */
12261
12517
  announce?: (HelixOrb["announce"]) | undefined;
12262
12518
  /** The name read by screen readers. Defaults to the name of the state, such
12263
12519
  as "Thinking".
@@ -12907,7 +13163,8 @@ decimals. Written as JSON in the attribute.
12907
13163
 
12908
13164
  A `percent` style writes the share of the range, and any other the value
12909
13165
  itself, so the example says "18 GB". Absent is a whole percentage. The
12910
- words are announced as well as shown. `value-text` still wins. */
13166
+ words are announced whether or not `show-value` shows them. `value-text`
13167
+ still wins. */
12911
13168
  "format-options"?: (HelixProgress["formatOptions"]) | undefined;
12912
13169
  /** `Intl.NumberFormat` options the reading is written with, as React Aria's
12913
13170
  Meter and ProgressBar take them: a unit, a currency, or a number of
@@ -12919,7 +13176,8 @@ decimals. Written as JSON in the attribute.
12919
13176
 
12920
13177
  A `percent` style writes the share of the range, and any other the value
12921
13178
  itself, so the example says "18 GB". Absent is a whole percentage. The
12922
- words are announced as well as shown. `value-text` still wins. */
13179
+ words are announced whether or not `show-value` shows them. `value-text`
13180
+ still wins. */
12923
13181
  formatOptions?: (HelixProgress["formatOptions"]) | undefined;
12924
13182
  /** Whether the length of the task is unknown. The bar then shows activity
12925
13183
  without a value.
@@ -13071,6 +13329,20 @@ export type HelixQrCodeVueEvents = {
13071
13329
  export type HelixQuoteVueProps = {
13072
13330
  /** URL identifying where the quotation came from. */
13073
13331
  cite?: (HelixQuote["cite"]) | undefined;
13332
+ /** Whether to leave the quotation marks off, for a quotation set where the
13333
+ page draws its own.
13334
+
13335
+ Negative, because the marks are on by default and a boolean attribute is
13336
+ true whenever it is present. Reflected, because a stylesheet takes the
13337
+ marks off on it. */
13338
+ "no-marks"?: (HelixQuote["noMarks"]) | undefined;
13339
+ /** Whether to leave the quotation marks off, for a quotation set where the
13340
+ page draws its own.
13341
+
13342
+ Negative, because the marks are on by default and a boolean attribute is
13343
+ true whenever it is present. Reflected, because a stylesheet takes the
13344
+ marks off on it. */
13345
+ noMarks?: (HelixQuote["noMarks"]) | undefined;
13074
13346
  };
13075
13347
 
13076
13348
  export type HelixQuoteVueEvents = {};
@@ -13989,6 +14261,25 @@ export type HelixScatterChartHelixReadingPressElementEvent =
13989
14261
  HelixScatterChartElementEvent<HelixReadingPressEvent>;
13990
14262
 
13991
14263
  export type HelixScatterChartVueProps = {
14264
+ /** The words shown in place of the drawing when the table has no readings,
14265
+ and the fallback of the `empty` slot. */
14266
+ "empty-text"?: (HelixScatterChart["emptyText"]) | undefined;
14267
+ /** The words shown in place of the drawing when the table has no readings,
14268
+ and the fallback of the `empty` slot. */
14269
+ emptyText?: (HelixScatterChart["emptyText"]) | undefined;
14270
+ /** Whether the readings are still on their way. The chart shows
14271
+ `loading-text` in place of an empty drawing until it has readings.
14272
+
14273
+ Reflected, so a stylesheet can treat the chart while it waits. A chart
14274
+ that already has readings keeps drawing them, so a refresh does not
14275
+ blank it. */
14276
+ loading?: (HelixScatterChart["loading"]) | undefined;
14277
+ /** The words shown in place of the drawing while `loading` is set and
14278
+ there are no readings yet, and the fallback of the `loading` slot. */
14279
+ "loading-text"?: (HelixScatterChart["loadingText"]) | undefined;
14280
+ /** The words shown in place of the drawing while `loading` is set and
14281
+ there are no readings yet, and the fallback of the `loading` slot. */
14282
+ loadingText?: (HelixScatterChart["loadingText"]) | undefined;
13992
14283
  /** The id of the table to read.
13993
14284
 
13994
14285
  Names a table in the same tree, so a chart inside another component's
@@ -14084,6 +14375,29 @@ Absent draws none. A series with fewer than two points, or with every
14084
14375
  point at one measure across, has no line to draw. The summary already
14085
14376
  gives each series' correlation, which says how near the points are to it. */
14086
14377
  trend?: (HelixScatterChart["trend"]) | undefined;
14378
+ /** The readings as data, in the shape of a table, where the page has no
14379
+ table to point `for` at. `for` wins where both are set.
14380
+
14381
+ ```js
14382
+ chart.data = {
14383
+ caption: 'Sessions by channel',
14384
+ columns: ['Month', 'Direct', 'Referral'],
14385
+ rows: [['Jan', 10, 4], ['Feb', 20, 8]],
14386
+ }
14387
+ ```
14388
+
14389
+ The first column holds each row's label and every column after it a
14390
+ series, as in a table. A cell is a number, words, `null` for a blank,
14391
+ or `{ value, text }` for a number shown as words, such as `$128k`. A
14392
+ number is shown in `locale`.
14393
+
14394
+ **A table is still the better source where the page can show one**:
14395
+ it reads with no script and before hydration, and a reader can sort and
14396
+ copy it. Data is drawn on the client only, so a server serves the
14397
+ frame, and the summary, the keys and the readout are then the whole of
14398
+ what a screen reader is given. Set a new object to redraw: the chart
14399
+ does not look inside the one it has. */
14400
+ data?: (HelixScatterChart["data"]) | undefined;
14087
14401
  };
14088
14402
 
14089
14403
  export type HelixScatterChartVueEvents = {
@@ -14395,6 +14709,11 @@ fade the fill in and out, or `none` to sit still.
14395
14709
 
14396
14710
  Reduced motion stills both. */
14397
14711
  effect?: (HelixSkeleton["effect"]) | undefined;
14712
+ /** How many lines of text the placeholder stands for, with `shape="text"`.
14713
+
14714
+ Absent, or 1, is one line. Reflected, because the stylesheet sizes a
14715
+ paragraph by it. */
14716
+ lines?: (HelixSkeleton["lines"]) | undefined;
14398
14717
  /** The shape of the placeholder: `text`, `circle`, or a block when unset.
14399
14718
 
14400
14719
  Unset is a block, which is what most missing things are. A block is the
@@ -15127,7 +15446,10 @@ figures compared one against another keep their own widths. */
15127
15446
  columns?: (HelixStatGroup["columns"]) | undefined;
15128
15447
  /** Draws a rule between the figures, in addition to the space. */
15129
15448
  divided?: (HelixStatGroup["divided"]) | undefined;
15130
- /** Accessible name for the group. */
15449
+ /** Accessible name for the group, which makes it a group.
15450
+
15451
+ Absent leaves the stats with no group around them, unless `aria-label` or
15452
+ `aria-labelledby` names it. */
15131
15453
  label?: (HelixStatGroup["label"]) | undefined;
15132
15454
  };
15133
15455
 
@@ -15160,6 +15482,29 @@ reports a hydration mismatch. The absent attribute is the column, which the
15160
15482
  stylesheet reads as the base case, and the server spec asserts the host
15161
15483
  carries nothing nobody wrote. */
15162
15484
  direction?: (HelixStat["direction"]) | undefined;
15485
+ /** `Intl.NumberFormat` options `value` is written with, such as
15486
+ `{"notation":"compact"}` for `1.2M` or `{"style":"percent"}` for `98%`,
15487
+ written as JSON in the attribute.
15488
+
15489
+ Absent writes the number as the locale writes any number. */
15490
+ "format-options"?: (HelixStat["formatOptions"]) | undefined;
15491
+ /** `Intl.NumberFormat` options `value` is written with, such as
15492
+ `{"notation":"compact"}` for `1.2M` or `{"style":"percent"}` for `98%`,
15493
+ written as JSON in the attribute.
15494
+
15495
+ Absent writes the number as the locale writes any number. */
15496
+ formatOptions?: (HelixStat["formatOptions"]) | undefined;
15497
+ /** The locale `value` is written in, such as `de` for `1.234.567`.
15498
+
15499
+ Absent reads the nearest `lang`, then the runtime's own. Set it on a page
15500
+ rendered on a server, so the server and the browser write the figure
15501
+ alike. */
15502
+ locale?: (HelixStat["locale"]) | undefined;
15503
+ /** The figure as a number, written with `format-options` in `locale` in
15504
+ place of a slotted value.
15505
+
15506
+ Absent leaves the figure to the slot. */
15507
+ value?: (HelixStat["value"]) | undefined;
15163
15508
  };
15164
15509
 
15165
15510
  export type HelixStatVueEvents = {};
@@ -19050,6 +19395,8 @@ export type CustomCssProperties = {
19050
19395
  "--badge-font-weight"?: (string) | undefined;
19051
19396
  /** The space between the content and the count under `placement="inline"`. */
19052
19397
  "--badge-gap"?: (string) | undefined;
19398
+ /** The size of an icon in the `icon` slot. The count's own size by default. */
19399
+ "--badge-icon-size"?: (string) | undefined;
19053
19400
  /** Pulls the mark in from the corner, along both axes. */
19054
19401
  "--badge-offset"?: (string) | undefined;
19055
19402
  /** How far the indicator's corners are rounded. */
@@ -19910,7 +20257,11 @@ export type CustomCssProperties = {
19910
20257
  "--heatmap-rows"?: (string) | undefined;
19911
20258
  /** The tone of the cell it is set on. The component writes it, and the stylesheet that paints the cell reads it. */
19912
20259
  "--heatmap-tone"?: (string) | undefined;
19913
- /** The width and height of the icon's box. */
20260
+ /** How long one turn, pulse or beat of `animation` takes. */
20261
+ "--icon-animation-duration"?: (string) | undefined;
20262
+ /** An angle the glyph is turned by, such as `45deg`. `rotate` wins over it. */
20263
+ "--icon-rotate"?: (string) | undefined;
20264
+ /** The width and height of the icon's box. The height alone under `auto-width`. */
19914
20265
  "--icon-size"?: (string) | undefined;
19915
20266
  /** The aspect ratio of the box, such as `16 / 9`. */
19916
20267
  "--image-aspect"?: (string) | undefined;
@@ -20518,6 +20869,12 @@ export type CustomCssProperties = {
20518
20869
  "--popover-shadow"?: (string) | undefined;
20519
20870
  /** Fill of the part that is done. */
20520
20871
  "--progress-color"?: (string) | undefined;
20872
+ /** The color of the words of the default slot where they are over the track, and in a ring. */
20873
+ "--progress-content-color"?: (string) | undefined;
20874
+ /** The color of the words of the default slot where they are over the fill. */
20875
+ "--progress-content-fill-color"?: (string) | undefined;
20876
+ /** The type size of the words of the default slot. */
20877
+ "--progress-content-size"?: (string) | undefined;
20521
20878
  /** Color of a slotted label. */
20522
20879
  "--progress-label-color"?: (string) | undefined;
20523
20880
  /** Space between a slotted label and the bar. */
@@ -20710,6 +21067,8 @@ export type CustomCssProperties = {
20710
21067
  "--skeleton-color"?: (string) | undefined;
20711
21068
  /** How long one sweep or one pulse takes. */
20712
21069
  "--skeleton-duration"?: (string) | undefined;
21070
+ /** The width of the last line of a `lines` paragraph. Defaults to 60%. */
21071
+ "--skeleton-last-line-size"?: (string) | undefined;
20713
21072
  /** The corner of the block shape. */
20714
21073
  "--skeleton-radius"?: (string) | undefined;
20715
21074
  /** The highlight the sweep carries across the fill. */
@@ -21408,7 +21767,7 @@ export interface WcToolkitVueGlobalComponents {
21408
21767
  HelixBarChartVueProps,
21409
21768
  HelixBarChartVueEvents
21410
21769
  >;
21411
- /** Set in the display face, larger than body text, to mark a change of voice. No quotation marks are drawn by default, because the size and spacing already set the passage apart. 'marks' draws one large opening mark over the passage, as a pull quote sets it, in the element's language. */
21770
+ /** Set in the display face, larger than body text, to mark a change of voice. No quotation marks are drawn by default, because the size and spacing already set the passage apart. 'marks' draws one large opening mark over the passage, as a pull quote sets it, in the element's language. 'text-align' sets the passage and its attribution in the middle of the column or against its far edge, as a pull quote often stands. There, the mark 'marks' draws stands over the passage rather than beside it. 'text-wrap="balance"' evens out a short passage's lines. */
21412
21771
  "helix-blockquote": DefineCustomElement<
21413
21772
  HelixBlockquote,
21414
21773
  HelixBlockquoteVueProps,
@@ -21690,7 +22049,7 @@ export interface WcToolkitVueGlobalComponents {
21690
22049
  HelixIconButtonVueProps,
21691
22050
  HelixIconButtonVueEvents
21692
22051
  >;
21693
- /** Draws in 'currentColor' and sizes from '--icon-size', so an icon takes the color of the text around it and a container can resize it without a property. Inside a button, '--icon-size' is set in 'em', so the icon scales with the button. */
22052
+ /** Draws in 'currentColor' and sizes from '--icon-size', so an icon takes the color of the text around it and a container can resize it without a property. Inside a button, '--icon-size' is set in 'em', so the icon scales with the button. **The glyph turns, flips and moves inside its own box**, so the line around it keeps its place: 'rotate' turns it by a quarter, a half or three quarters, '--icon-rotate' by any angle, 'flip' mirrors it across either axis, and 'animation' spins, pulses or beats it, as Web Awesome's icon does. Reduced motion stills every animation. 'auto-width' gives the box the glyph's own proportions, for a mark wider than it is tall. */
21694
22053
  "helix-icon": DefineCustomElement<
21695
22054
  HelixIcon,
21696
22055
  HelixIconVueProps,
@@ -22044,7 +22403,7 @@ export interface WcToolkitVueGlobalComponents {
22044
22403
  HelixSelectVueProps,
22045
22404
  HelixSelectVueEvents
22046
22405
  >;
22047
- /** Animates a highlight sweeping across the block, which reads as work in progress. A block fading in and out can look broken, so 'effect="pulse"' is a choice rather than the default. Around content with 'loading', the skeleton takes the content's box and paints over it, and the content is hidden until 'loading' is taken off. */
22406
+ /** Animates a highlight sweeping across the block, which reads as work in progress. A block fading in and out can look broken, so 'effect="pulse"' is a choice rather than the default. Around content with 'loading', the skeleton takes the content's box and paints over it, and the content is hidden until 'loading' is taken off. **'lines' draws a paragraph.** With 'shape="text"' and 'lines="3"', one element stands in for three lines of text: each line a 'skeleton' part one 'em' tall, spaced a body line height apart, and the last one shorter, as the end of a paragraph is. */
22048
22407
  "helix-skeleton": DefineCustomElement<
22049
22408
  HelixSkeleton,
22050
22409
  HelixSkeletonVueProps,
package/types/words.d.ts CHANGED
@@ -148,9 +148,10 @@ declare module '@fusion.dev/helix-core' {
148
148
  */
149
149
  emptySegmentLabel: Message
150
150
  /**
151
- * The text shown and announced when there are no rows and none are loading.
151
+ * The words shown in place of the drawing when the table has no readings,
152
+ * and the fallback of the `empty` slot.
152
153
  *
153
- * English: `Nothing to show`
154
+ * English: `No readings`
154
155
  */
155
156
  emptyText: Message
156
157
  /**
@@ -305,9 +306,10 @@ declare module '@fusion.dev/helix-core' {
305
306
  */
306
307
  listLabel: Message
307
308
  /**
308
- * The text shown and announced while the rows load.
309
+ * The words shown in place of the drawing while `loading` is set and
310
+ * there are no readings yet, and the fallback of the `loading` slot.
309
311
  *
310
- * English: `Loading`
312
+ * English: `Loading readings`
311
313
  */
312
314
  loadingText: Message
313
315
  /**
@@ -1000,6 +1002,19 @@ declare module '@fusion.dev/helix-core' {
1000
1002
  valueMissingMessage: Message
1001
1003
  }
1002
1004
  'helix-code-block': {
1005
+ /**
1006
+ * The name of a block that scrolls, which is a tab stop while it does.
1007
+ *
1008
+ * English: `Code`
1009
+ */
1010
+ codeLabel: Message
1011
+ /**
1012
+ * The name of a block that scrolls, where the block has a name. `{code}` is
1013
+ * `code-label` and `{name}` the block's name.
1014
+ *
1015
+ * English: `{code}, {name}`
1016
+ */
1017
+ codeNameLabel: Message
1003
1018
  /**
1004
1019
  * The expand button's words while the block shows every line.
1005
1020
  *