@fusion.dev/helix 0.178.0 → 0.180.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/vue.d.ts CHANGED
@@ -930,6 +930,14 @@ hit-testable at rest, or it would swallow clicks meant for what is over it,
930
930
  and an element that is not hit-testable never receives the `pointermove`
931
931
  this listens for. Asking for the pointer is asking for the hit test. */
932
932
  interactive?: (HelixAura["interactive"]) | undefined;
933
+ /** Whether the aura draws its own control that pauses the field and starts it
934
+ again, in its trailing corner. Absent draws none, for a page with a pause
935
+ control of its own. */
936
+ "pause-control"?: (HelixAura["pauseControl"]) | undefined;
937
+ /** Whether the aura draws its own control that pauses the field and starts it
938
+ again, in its trailing corner. Absent draws none, for a page with a pause
939
+ control of its own. */
940
+ pauseControl?: (HelixAura["pauseControl"]) | undefined;
933
941
  /** Whether the field holds still on the frame it shows.
934
942
 
935
943
  Set it from a pause control on your page, so a reader can stop the motion,
@@ -937,6 +945,14 @@ as WCAG 2.2.2 asks of anything that moves for more than five seconds. A
937
945
  change to another property still repaints the frame. Clearing it starts
938
946
  the field from where it stopped. */
939
947
  paused?: (HelixAura["paused"]) | undefined;
948
+ /** The pause control's name, read by screen readers. The control is a toggle
949
+ and says it is pressed while the field is paused, so the name stays the
950
+ same. */
951
+ "pause-label"?: (HelixAura["pauseLabel"]) | undefined;
952
+ /** The pause control's name, read by screen readers. The control is a toggle
953
+ and says it is pressed while the field is paused, so the name stays the
954
+ same. */
955
+ pauseLabel?: (HelixAura["pauseLabel"]) | undefined;
940
956
  /** How far the pointer reaches into the field, `0` upward.
941
957
 
942
958
  Multiplied into the presence the pointer already fades in and out with, so
@@ -1009,6 +1025,8 @@ states. */
1009
1025
  };
1010
1026
 
1011
1027
  export type HelixAuraVueEvents = {
1028
+ /** Fired when the aura's own pause control pauses the field or starts it again. */
1029
+ change: HelixAuraElementEvent;
1012
1030
  /** Fired each time the aura stops drawing its shader and shows its gradient, with the reason. */
1013
1031
  "helix-aura-fallback": HelixAuraHelixAuraFallbackElementEvent;
1014
1032
  };
@@ -6521,6 +6539,12 @@ for the page's language, then the English. */
6521
6539
  so a form in another language speaks it. Unset is the sentence registered
6522
6540
  for the page's language, then the English. */
6523
6541
  rangeLengthMessage?: (HelixDateInput["rangeLengthMessage"]) | undefined;
6542
+ /** The message shown when a range ends before it starts. `{start}` is
6543
+ replaced with the start, written the way the field writes dates. */
6544
+ "range-order-message"?: (HelixDateInput["rangeOrderMessage"]) | undefined;
6545
+ /** The message shown when a range ends before it starts. `{start}` is
6546
+ replaced with the start, written the way the field writes dates. */
6547
+ rangeOrderMessage?: (HelixDateInput["rangeOrderMessage"]) | undefined;
6524
6548
  /** The message shown when a date is after `max`. `{max}` is replaced with
6525
6549
  `max`, written the way the field writes dates. */
6526
6550
  "range-overflow-message"?: (HelixDateInput["rangeOverflowMessage"]) | undefined;
@@ -6862,6 +6886,12 @@ it. */
6862
6886
  "previous-years-label"?: (HelixDatePicker["previousYearsLabel"]) | undefined;
6863
6887
  /** Accessible name for the control that moves back a page, in the years. */
6864
6888
  previousYearsLabel?: (HelixDatePicker["previousYearsLabel"]) | undefined;
6889
+ /** The validation message for a range that ends before it starts. `{start}`
6890
+ is replaced with the start, written as a date in `locale`. */
6891
+ "range-order-message"?: (HelixDatePicker["rangeOrderMessage"]) | undefined;
6892
+ /** The validation message for a range that ends before it starts. `{start}`
6893
+ is replaced with the start, written as a date in `locale`. */
6894
+ rangeOrderMessage?: (HelixDatePicker["rangeOrderMessage"]) | undefined;
6865
6895
  /** The validation message for a date after `max`. `{max}` is replaced with
6866
6896
  `max`, written as a date in `locale`. */
6867
6897
  "range-overflow-message"?: (HelixDatePicker["rangeOverflowMessage"]) | undefined;
@@ -9186,11 +9216,36 @@ export type HelixHeatmapElementEvent<E = Event> = TypedEvent<HelixHeatmap, E>;
9186
9216
  /** `helix-before-change` event type */
9187
9217
  export type HelixHeatmapHelixBeforeChangeElementEvent =
9188
9218
  HelixHeatmapElementEvent<HelixBeforeChangeEvent>;
9219
+ /** `helix-reading-change` event type */
9220
+ export type HelixHeatmapHelixReadingChangeElementEvent =
9221
+ HelixHeatmapElementEvent<HelixReadingChangeEvent>;
9222
+ /** `helix-reading-press` event type */
9223
+ export type HelixHeatmapHelixReadingPressElementEvent =
9224
+ HelixHeatmapElementEvent<HelixReadingPressEvent>;
9189
9225
  /** `helix-resize` event type */
9190
9226
  export type HelixHeatmapHelixResizeElementEvent =
9191
9227
  HelixHeatmapElementEvent<HelixResizeEvent>;
9192
9228
 
9193
9229
  export type HelixHeatmapVueProps = {
9230
+ /** The words shown in place of the drawing when the table has no readings,
9231
+ and the fallback of the `empty` slot. */
9232
+ "empty-text"?: (HelixHeatmap["emptyText"]) | undefined;
9233
+ /** The words shown in place of the drawing when the table has no readings,
9234
+ and the fallback of the `empty` slot. */
9235
+ emptyText?: (HelixHeatmap["emptyText"]) | undefined;
9236
+ /** Whether the readings are still on their way. The chart shows
9237
+ `loading-text` in place of an empty drawing until it has readings.
9238
+
9239
+ Reflected, so a stylesheet can treat the chart while it waits. A chart
9240
+ that already has readings keeps drawing them, so a refresh does not
9241
+ blank it. */
9242
+ loading?: (HelixHeatmap["loading"]) | undefined;
9243
+ /** The words shown in place of the drawing while `loading` is set and
9244
+ there are no readings yet, and the fallback of the `loading` slot. */
9245
+ "loading-text"?: (HelixHeatmap["loadingText"]) | undefined;
9246
+ /** The words shown in place of the drawing while `loading` is set and
9247
+ there are no readings yet, and the fallback of the `loading` slot. */
9248
+ loadingText?: (HelixHeatmap["loadingText"]) | undefined;
9194
9249
  /** The id of the table to read.
9195
9250
 
9196
9251
  Names a table in the same tree, so a chart inside another component's
@@ -9233,16 +9288,6 @@ legend hid is not counted. */
9233
9288
  /** The name the `overview` gives the busiest reading, `{busiestLabel}` in
9234
9289
  `overview-label`. */
9235
9290
  busiestLabel?: (HelixHeatmap["busiestLabel"]) | undefined;
9236
- /** Shown when the table has no readings in it.
9237
-
9238
- Never shown while the table cannot be read at all, which is a server render
9239
- and the hydrating one after it: see `sourceKnown`. */
9240
- "empty-text"?: (HelixHeatmap["emptyText"]) | undefined;
9241
- /** Shown when the table has no readings in it.
9242
-
9243
- Never shown while the table cannot be read at all, which is a server render
9244
- and the hydrating one after it: see `sourceKnown`. */
9245
- emptyText?: (HelixHeatmap["emptyText"]) | undefined;
9246
9291
  /** Space between cells, in CSS pixels. It is a number for the same reason
9247
9292
  `min-cell` is. */
9248
9293
  gap?: (HelixHeatmap["gap"]) | undefined;
@@ -9300,13 +9345,9 @@ calendar heatmap does: a week is a column, so the strip reads along the
9300
9345
  line in weeks, from the right on a right-to-left page, and top to bottom in
9301
9346
  days. */
9302
9347
  rows?: (HelixHeatmap["rows"]) | undefined;
9303
- /** What the readout adds for a selected cell, under `selection-mode`, after
9304
- where the cell stands: "Day 1: 0 (1 of 14, selected)". Empty adds
9305
- nothing. */
9348
+ /** What the readout added for a selected cell, under `selection-mode`. */
9306
9349
  "selected-label"?: (HelixHeatmap["selectedLabel"]) | undefined;
9307
- /** What the readout adds for a selected cell, under `selection-mode`, after
9308
- where the cell stands: "Day 1: 0 (1 of 14, selected)". Empty adds
9309
- nothing. */
9350
+ /** What the readout added for a selected cell, under `selection-mode`. */
9310
9351
  selectedLabel?: (HelixHeatmap["selectedLabel"]) | undefined;
9311
9352
  /** What the `selection` part says after the selection changes. `{count}` is
9312
9353
  how many cells are selected, written in the locale, and a language that
@@ -9393,6 +9434,10 @@ export type HelixHeatmapVueEvents = {
9393
9434
  change: HelixHeatmapElementEvent;
9394
9435
  /** Fired before a press or a key changes which cells are selected, with the `value` it would leave. Cancelable. */
9395
9436
  "helix-before-change": HelixHeatmapHelixBeforeChangeElementEvent;
9437
+ /** The reading shown moved, or was put away: `index` is the row, or `-1` for none, with its `label`, the `series` the keys rest on, and the `pointerType` that moved it. */
9438
+ "helix-reading-change": HelixHeatmapHelixReadingChangeElementEvent;
9439
+ /** A reading was clicked, tapped, or pressed with Enter or Space, with the same detail as `helix-reading-change`. */
9440
+ "helix-reading-press": HelixHeatmapHelixReadingPressElementEvent;
9396
9441
  /** Fired when the number of cells drawn changes, with the new number. */
9397
9442
  "helix-resize": HelixHeatmapHelixResizeElementEvent;
9398
9443
  };
@@ -11272,7 +11317,8 @@ React Aria virtualizes a `ListBox` with its `Virtualizer`; this is core's
11272
11317
 
11273
11318
  **The list needs a height to scroll in**: the styled tier's
11274
11319
  `--listbox-max-block-size`, or a `max-block-size` on `::part(items)` in the
11275
- headless tier. Import the Option family as well, whose elements are drawn.
11320
+ headless tier. The options drawn are this tier's Option, which the page
11321
+ imports, as it imports the options it writes.
11276
11322
  A server sends the list empty, and the options are drawn once it hydrates. */
11277
11323
  items?: (HelixListbox["items"]) | undefined;
11278
11324
  /** Which option is chosen, as an index, or `-1` where none is.
@@ -21701,6 +21747,8 @@ export type CustomCssProperties = {
21701
21747
  "--aura-ground"?: (string) | undefined;
21702
21748
  /** The faint stop between the ground and the glow. Defaults to `--helix-color-primary-subtle`. */
21703
21749
  "--aura-haze"?: (string) | undefined;
21750
+ /** The pause control's ground. Defaults to `--helix-color-surface-overlay`. */
21751
+ "--aura-pause-background-color"?: (string) | undefined;
21704
21752
  /** The hottest stop, at the center of a shape. Defaults to `--helix-color-primary-active` on a light page and `--helix-color-foreground` on a dark one. */
21705
21753
  "--aura-peak"?: (string) | undefined;
21706
21754
  /** The fill of the count of avatars past `max`. */
@@ -24181,7 +24229,7 @@ export interface WcToolkitVueGlobalComponents {
24181
24229
  HelixAreaChartVueProps,
24182
24230
  HelixAreaChartVueEvents
24183
24231
  >;
24184
- /** One fragment shader draws over a full-screen triangle, and its palette comes from the tokens. A background built on '--helix-color-primary' changes when your brand color changes. Every shape ramps through four token stops, and the token layer inverts each one: the page background, 'primary-subtle', 'primary', and a peak. The peak is the foreground on a dark page and 'primary-active' on a light one, because mixing a saturated hue toward near-black removes its chroma. The component reads which way the page runs from the background's luminance, because the mode is a private token. The geometry is three vertices derived from 'gl_VertexID'. There is no dependency, scene graph, attribute, buffer, or upload. The shader stops drawing in these cases: - The element is off screen or in a background tab. - 'prefers-reduced-motion' is set. The element shows one still frame. - 'paused' is set, from a pause control on your page. The element holds the frame it shows. - The browser takes back the drawing context, on a GPU reset or past its limit of about sixteen contexts. The gradient shows until the context returns. On a renderer that draws on the CPU, such as a headless browser or a machine with no usable GPU, the element shows the gradient. There the shader costs about 450ms for the first frame of each element, against 2ms on a GPU. Aura is styled only and has behavior, which the tier split does not otherwise allow. Its behavior is drawing to a canvas, so there is no structure for you to restyle and nothing for a headless version to hold. **Content placed inside sits over the field**, in a 'content' part that covers the aura, so an interactive aura answers the pointer over the content too. Clicks still reach the content. Style '::part(content)' to place it, such as centering a hero's heading. **The colors are the theme's, and each has a hook**: '--aura-ground', '--aura-haze', '--aura-glow' and '--aura-peak', read by the shader and by the fallback gradient alike, from wherever on the page you set them. A hook changed while the aura draws, by a class, a style or the color mode, reaches the shader on the next frame. Where the gradient shows in place of the shader, the aura matches ':state(fallback)' and sends 'helix-aura-fallback' with the reason. */
24232
+ /** One fragment shader draws over a full-screen triangle, and its palette comes from the tokens. A background built on '--helix-color-primary' changes when your brand color changes. Every shape ramps through four token stops, and the token layer inverts each one: the page background, 'primary-subtle', 'primary', and a peak. The peak is the foreground on a dark page and 'primary-active' on a light one, because mixing a saturated hue toward near-black removes its chroma. The component reads which way the page runs from the background's luminance, because the mode is a private token. The geometry is three vertices derived from 'gl_VertexID'. There is no dependency, scene graph, attribute, buffer, or upload. The shader stops drawing in these cases: - The element is off screen or in a background tab. - 'prefers-reduced-motion' is set. The element shows one still frame. - 'paused' is set, from a pause control on your page or from the aura's own under 'pause-control'. The element holds the frame it shows. - The browser takes back the drawing context, on a GPU reset or past its limit of about sixteen contexts. The gradient shows until the context returns. On a renderer that draws on the CPU, such as a headless browser or a machine with no usable GPU, the element shows the gradient. There the shader costs about 450ms for the first frame of each element, against 2ms on a GPU. Aura is styled only and has behavior, which the tier split does not otherwise allow. Its behavior is drawing to a canvas, so there is no structure for you to restyle and nothing for a headless version to hold. **Content placed inside sits over the field**, in a 'content' part that covers the aura, so an interactive aura answers the pointer over the content too. Clicks still reach the content. Style '::part(content)' to place it, such as centering a hero's heading. **The colors are the theme's, and each has a hook**: '--aura-ground', '--aura-haze', '--aura-glow' and '--aura-peak', read by the shader and by the fallback gradient alike, from wherever on the page you set them. A hook changed while the aura draws, by a class, a style or the color mode, reaches the shader on the next frame. **'pause-control' draws a control that stops the motion and starts it again**, in the trailing corner of the field, as WCAG 2.2.2 asks of anything that moves for more than five seconds. It is a toggle button named by 'pause-label', which says it is pressed while the field is paused, and a press sends 'change'. A reader who asked for reduced motion sees no motion and no control. Where the gradient shows in place of the shader, the aura matches ':state(fallback)' and sends 'helix-aura-fallback' with the reason. */
24185
24233
  "helix-aura": DefineCustomElement<
24186
24234
  HelixAura,
24187
24235
  HelixAuraVueProps,
package/types/words.d.ts CHANGED
@@ -614,6 +614,13 @@ declare module '@fusion.dev/helix-core' {
614
614
  * English: `A range is two dates.`
615
615
  */
616
616
  rangeLengthMessage: Message
617
+ /**
618
+ * The message shown when a range ends before it starts. `{start}` is
619
+ * replaced with the start, written the way the field writes dates.
620
+ *
621
+ * English: `Choose an end on or after {start}.`
622
+ */
623
+ rangeOrderMessage: Message
617
624
  /**
618
625
  * The message shown when a date is after `max`. `{max}` is replaced with
619
626
  * `max`, written the way the field writes dates.
@@ -1004,6 +1011,16 @@ declare module '@fusion.dev/helix-core' {
1004
1011
  */
1005
1012
  menuLabel: Message
1006
1013
  }
1014
+ 'helix-aura': {
1015
+ /**
1016
+ * The pause control's name, read by screen readers. The control is a toggle
1017
+ * and says it is pressed while the field is paused, so the name stays the
1018
+ * same.
1019
+ *
1020
+ * English: `Pause the motion`
1021
+ */
1022
+ pauseLabel: Message
1023
+ }
1007
1024
  'helix-avatar-group': {
1008
1025
  /**
1009
1026
  * What a screen reader is told the count is, with `{count}` for the number,
@@ -1495,6 +1512,13 @@ declare module '@fusion.dev/helix-core' {
1495
1512
  * English: `Earlier years`
1496
1513
  */
1497
1514
  previousYearsLabel: Message
1515
+ /**
1516
+ * The validation message for a range that ends before it starts. `{start}`
1517
+ * is replaced with the start, written as a date in `locale`.
1518
+ *
1519
+ * English: `Choose an end on or after {start}.`
1520
+ */
1521
+ rangeOrderMessage: Message
1498
1522
  /**
1499
1523
  * The validation message for a date after `max`. `{max}` is replaced with
1500
1524
  * `max`, written as a date in `locale`.