@fusion.dev/helix 0.217.0 → 0.218.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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fusion.dev/helix",
3
3
  "description": "Styled component tier. Extends the headless tier with token-driven presentation.",
4
- "version": "0.217.0",
4
+ "version": "0.218.0",
5
5
  "license": "MIT",
6
6
  "author": "Ross Sheppard <ross.sheppard@fusion.dev>",
7
7
  "repository": {
@@ -69,14 +69,14 @@
69
69
  },
70
70
  "bugs": "https://github.com/project-fusion/fusion/issues",
71
71
  "dependencies": {
72
- "@fusion.dev/helix-core": "0.217.0",
73
- "@fusion.dev/helix-headless": "0.217.0",
74
- "@fusion.dev/helix-styles": "0.217.0",
72
+ "@fusion.dev/helix-core": "0.218.0",
73
+ "@fusion.dev/helix-headless": "0.218.0",
74
+ "@fusion.dev/helix-styles": "0.218.0",
75
75
  "tslib": "^2.8.1"
76
76
  },
77
77
  "devDependencies": {
78
- "@fusion.dev/helix-cem": "0.217.0",
79
- "@fusion.dev/helix-testing": "0.217.0",
78
+ "@fusion.dev/helix-cem": "0.218.0",
79
+ "@fusion.dev/helix-testing": "0.218.0",
80
80
  "@fusion.dev/scripts": "0.0.0-dev",
81
81
  "@happy-dom/global-registrator": "^21.0.1",
82
82
  "@lit-labs/ssr": "^4.1.0",
@@ -2,12 +2,12 @@
2
2
  name: helix
3
3
  description: Writes and checks pages built with Helix, the web components in @fusion.dev/helix. Use when building or reviewing any user interface in a project that installs @fusion.dev/helix, and when code has helix- elements, Helix tokens, or the helix command line.
4
4
  metadata:
5
- version: "0.217.0"
5
+ version: "0.218.0"
6
6
  ---
7
7
 
8
8
  # Helix
9
9
 
10
- This guide is for @fusion.dev/helix 0.217.0, the version installed beside it.
10
+ This guide is for @fusion.dev/helix 0.218.0, the version installed beside it.
11
11
 
12
12
  ## Using Helix with an agent
13
13
 
package/types/jsx.d.ts CHANGED
@@ -289,6 +289,7 @@ import type {
289
289
  HelixVideoPlaylistItem,
290
290
  HelixVideoPlaylistMenu,
291
291
  HelixVirtualList,
292
+ HelixVoiceLevel,
292
293
  } from '@fusion.dev/helix';
293
294
 
294
295
  /**
@@ -48198,6 +48199,91 @@ it is unset, the header is the name as text. */
48198
48199
  textContent?: (string | number) | undefined;
48199
48200
  };
48200
48201
 
48202
+ export type HelixVoiceLevelProps = {
48203
+ /** How loud each frequency band is, from `0` to `1`, lowest band first.
48204
+
48205
+ Each bar of the spectrum follows one band. Where there are more or fewer
48206
+ bands than bars, each bar reads between the two nearest bands. Empty draws
48207
+ every bar from `level`. Written as an attribute, the numbers are separated
48208
+ by spaces or commas: `bands="0.1 0.4 0.6 0.3"`. Assign an array to the
48209
+ property for readings that change many times a second. */
48210
+ bands?: (HelixVoiceLevel["bands"]) | undefined;
48211
+ /** The name where `label` is empty. Translate it with the rest of your
48212
+ interface. */
48213
+ "fallback-label"?: (HelixVoiceLevel["fallbackLabel"]) | undefined;
48214
+ /** The name where `label` is empty. Translate it with the rest of your
48215
+ interface. */
48216
+ fallbackLabel?: (HelixVoiceLevel["fallbackLabel"]) | undefined;
48217
+ /** The name read by screen readers, such as "Your voice". Defaults to
48218
+ `fallbackLabel`. */
48219
+ label?: (HelixVoiceLevel["label"]) | undefined;
48220
+ /** How loud the voice is, from `0` for silence to `1`.
48221
+
48222
+ It sets how far the waves swing, the length of the still bar under
48223
+ `prefers-reduced-motion`, and every bar of a spectrum that has no
48224
+ `bands`. A value outside the range is drawn at the nearer end. */
48225
+ level?: (HelixVoiceLevel["level"]) | undefined;
48226
+ /** Draws the readings as a still picture: each bar at its band and the waves
48227
+ at one fixed moment, swung as far as `level`.
48228
+
48229
+ For a level that holds, such as the loudness of a recorded clip or a
48230
+ picture of the drawing. No frame loop runs, and each new reading is drawn
48231
+ at once with no easing. Because nothing moves, the drawing is the same
48232
+ under `prefers-reduced-motion`. Clearing it starts the motion from the
48233
+ readings as they are. */
48234
+ still?: (HelixVoiceLevel["still"]) | undefined;
48235
+ /** The drawing: a row of bars, one for each band, or three moving waves.
48236
+
48237
+ Reflected because the stylesheet sizes each drawing differently. Absent
48238
+ is `spectrum`, the resting value, which selects nothing. */
48239
+ variant?: (HelixVoiceLevel["variant"]) | undefined;
48240
+ };
48241
+
48242
+ export type HelixVoiceLevelSolidJsProps = {
48243
+ /** How loud each frequency band is, from `0` to `1`, lowest band first.
48244
+
48245
+ Each bar of the spectrum follows one band. Where there are more or fewer
48246
+ bands than bars, each bar reads between the two nearest bands. Empty draws
48247
+ every bar from `level`. Written as an attribute, the numbers are separated
48248
+ by spaces or commas: `bands="0.1 0.4 0.6 0.3"`. Assign an array to the
48249
+ property for readings that change many times a second. */
48250
+ "prop:bands"?: (HelixVoiceLevel["bands"]) | undefined;
48251
+ /** The name where `label` is empty. Translate it with the rest of your
48252
+ interface. */
48253
+ "attr:fallback-label"?: (HelixVoiceLevel["fallbackLabel"]) | undefined;
48254
+ /** The name where `label` is empty. Translate it with the rest of your
48255
+ interface. */
48256
+ "prop:fallbackLabel"?: (HelixVoiceLevel["fallbackLabel"]) | undefined;
48257
+ /** The name read by screen readers, such as "Your voice". Defaults to
48258
+ `fallbackLabel`. */
48259
+ "prop:label"?: (HelixVoiceLevel["label"]) | undefined;
48260
+ /** How loud the voice is, from `0` for silence to `1`.
48261
+
48262
+ It sets how far the waves swing, the length of the still bar under
48263
+ `prefers-reduced-motion`, and every bar of a spectrum that has no
48264
+ `bands`. A value outside the range is drawn at the nearer end. */
48265
+ "prop:level"?: (HelixVoiceLevel["level"]) | undefined;
48266
+ /** Draws the readings as a still picture: each bar at its band and the waves
48267
+ at one fixed moment, swung as far as `level`.
48268
+
48269
+ For a level that holds, such as the loudness of a recorded clip or a
48270
+ picture of the drawing. No frame loop runs, and each new reading is drawn
48271
+ at once with no easing. Because nothing moves, the drawing is the same
48272
+ under `prefers-reduced-motion`. Clearing it starts the motion from the
48273
+ readings as they are. */
48274
+ "prop:still"?: (HelixVoiceLevel["still"]) | undefined;
48275
+ /** The drawing: a row of bars, one for each band, or three moving waves.
48276
+
48277
+ Reflected because the stylesheet sizes each drawing differently. Absent
48278
+ is `spectrum`, the resting value, which selects nothing. */
48279
+ "prop:variant"?: (HelixVoiceLevel["variant"]) | undefined;
48280
+
48281
+ /** Set the innerHTML of the element */
48282
+ innerHTML?: (string) | undefined;
48283
+ /** Set the textContent of the element */
48284
+ textContent?: (string | number) | undefined;
48285
+ };
48286
+
48201
48287
  export type CustomElements<F extends Framework = "other"> = {
48202
48288
  /**
48203
48289
  * The open and close transition animates `grid-template-rows` from `0fr` to
@@ -82344,6 +82430,114 @@ export type CustomElements<F extends Framework = "other"> = {
82344
82430
  "helix-virtual-list": Partial<
82345
82431
  HelixVirtualListProps & BaseProps<HelixVirtualList, F> & BaseEvents<HelixVirtualList>
82346
82432
  >;
82433
+
82434
+ /**
82435
+ * Two drawings, chosen with `variant`:
82436
+ *
82437
+ * - `spectrum`: a row of thin rounded bars, one for each frequency band in
82438
+ * `bands`, tallest in the middle. The middle half of the row takes the
82439
+ * stronger color. A quiet bar rests as a dot.
82440
+ * - `waves`: three sine lines with different speeds, phases, and weights, held
82441
+ * to the center line at both ends. `level` sets how far they swing, and a
82442
+ * quiet level rests as a flat line.
82443
+ *
82444
+ * Set `level` and `bands` from your audio as often as you have readings, about
82445
+ * 30 times a second. Each bar and wave eases toward its reading: up fast and
82446
+ * down slower. A spectrum given no `bands` draws every bar from `level`.
82447
+ *
82448
+ * The drawing stops when it is off screen, in a background tab, or after the
82449
+ * level has been zero for under a second, and starts again with the next
82450
+ * reading. With `prefers-reduced-motion`, it draws one bar from the middle
82451
+ * over a faint track, whose length is the level, and redraws it on each
82452
+ * reading. With `still`, it draws either drawing as a still picture of its
82453
+ * readings, whatever the motion preference.
82454
+ *
82455
+ * The level is an image named by `label`. A meter's value would be announced
82456
+ * on every change, and a level changes many times a second.
82457
+ *
82458
+ * Voice Level is styled only and has behavior, which the tier split does not
82459
+ * otherwise allow. Its role and name are set on the host, and the rest is
82460
+ * drawing to a canvas.
82461
+ *
82462
+ * ## Attributes & Properties
82463
+ *
82464
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
82465
+ *
82466
+ * - `bands`: How loud each frequency band is, from `0` to `1`, lowest band first.
82467
+ *
82468
+ * Each bar of the spectrum follows one band. Where there are more or fewer
82469
+ * bands than bars, each bar reads between the two nearest bands. Empty draws
82470
+ * every bar from `level`. Written as an attribute, the numbers are separated
82471
+ * by spaces or commas: `bands="0.1 0.4 0.6 0.3"`. Assign an array to the
82472
+ * property for readings that change many times a second.
82473
+ * - `fallback-label`/`fallbackLabel`: The name where `label` is empty. Translate it with the rest of your
82474
+ * interface.
82475
+ * - `label`: The name read by screen readers, such as "Your voice". Defaults to
82476
+ * `fallbackLabel`.
82477
+ * - `level`: How loud the voice is, from `0` for silence to `1`.
82478
+ *
82479
+ * It sets how far the waves swing, the length of the still bar under
82480
+ * `prefers-reduced-motion`, and every bar of a spectrum that has no
82481
+ * `bands`. A value outside the range is drawn at the nearer end.
82482
+ * - `still`: Draws the readings as a still picture: each bar at its band and the waves
82483
+ * at one fixed moment, swung as far as `level`.
82484
+ *
82485
+ * For a level that holds, such as the loudness of a recorded clip or a
82486
+ * picture of the drawing. No frame loop runs, and each new reading is drawn
82487
+ * at once with no easing. Because nothing moves, the drawing is the same
82488
+ * under `prefers-reduced-motion`. Clearing it starts the motion from the
82489
+ * readings as they are.
82490
+ * - `variant`: The drawing: a row of bars, one for each band, or three moving waves.
82491
+ *
82492
+ * Reflected because the stylesheet sizes each drawing differently. Absent
82493
+ * is `spectrum`, the resting value, which selects nothing.
82494
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
82495
+ *
82496
+ * **Named `whenSettled` because `settled` is taken four times over**, by
82497
+ * Image, Splitter and both color controls, none of them about transitions. A
82498
+ * base class takes the name every subclass then cannot use.
82499
+ *
82500
+ * **The state it reports cannot be watched, which is why this exists.** A
82501
+ * custom state is deliberately not in the DOM, so there is no
82502
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
82503
+ * instead.
82504
+ *
82505
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
82506
+ * the suppression is still active in. That is the distinction `readyToMove`
82507
+ * in `@fusion.dev/helix-testing` is written around.
82508
+ *
82509
+ * It never resolves where `requestAnimationFrame` never fires, which is a
82510
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
82511
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
82512
+ * browser harness's awaits it alone: a browser always runs the frame, and a
82513
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
82514
+ *
82515
+ * ## CSS Custom Properties
82516
+ *
82517
+ * CSS variables available for styling the component.
82518
+ *
82519
+ * - `--voice-level-accent-color`: The color of the second wave. Defaults to the accent color.
82520
+ * - `--voice-level-bars`: How many bars the spectrum draws, from 3 to 96. Defaults to `24`.
82521
+ * - `--voice-level-block-size`: The height. Defaults to the icon size for `spectrum` and the control size for `waves`.
82522
+ * - `--voice-level-color`: The color of the center bars and the main wave. Defaults to the primary color.
82523
+ * - `--voice-level-edge-color`: The color of the bars at either end. Defaults to `--voice-level-color` at 55 percent.
82524
+ * - `--voice-level-inline-size`: The width. Defaults to four times the height for `spectrum` and three times for `waves`.
82525
+ *
82526
+ * ## CSS Parts
82527
+ *
82528
+ * Custom selectors for styling elements within the component.
82529
+ *
82530
+ * - `canvas`: The canvas the level is drawn on.
82531
+ *
82532
+ * ## CSS States
82533
+ *
82534
+ * These can be used to apply styling when a component is in a given state.
82535
+ *
82536
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
82537
+ */
82538
+ "helix-voice-level": Partial<
82539
+ HelixVoiceLevelProps & BaseProps<HelixVoiceLevel, F> & BaseEvents<HelixVoiceLevel>
82540
+ >;
82347
82541
  };
82348
82542
 
82349
82543
  export type CustomElementsSolidJs = {
@@ -117026,6 +117220,117 @@ export type CustomElementsSolidJs = {
117026
117220
  BaseProps<HelixVirtualList, "solid"> &
117027
117221
  BaseEvents<HelixVirtualList>
117028
117222
  >;
117223
+
117224
+ /**
117225
+ * Two drawings, chosen with `variant`:
117226
+ *
117227
+ * - `spectrum`: a row of thin rounded bars, one for each frequency band in
117228
+ * `bands`, tallest in the middle. The middle half of the row takes the
117229
+ * stronger color. A quiet bar rests as a dot.
117230
+ * - `waves`: three sine lines with different speeds, phases, and weights, held
117231
+ * to the center line at both ends. `level` sets how far they swing, and a
117232
+ * quiet level rests as a flat line.
117233
+ *
117234
+ * Set `level` and `bands` from your audio as often as you have readings, about
117235
+ * 30 times a second. Each bar and wave eases toward its reading: up fast and
117236
+ * down slower. A spectrum given no `bands` draws every bar from `level`.
117237
+ *
117238
+ * The drawing stops when it is off screen, in a background tab, or after the
117239
+ * level has been zero for under a second, and starts again with the next
117240
+ * reading. With `prefers-reduced-motion`, it draws one bar from the middle
117241
+ * over a faint track, whose length is the level, and redraws it on each
117242
+ * reading. With `still`, it draws either drawing as a still picture of its
117243
+ * readings, whatever the motion preference.
117244
+ *
117245
+ * The level is an image named by `label`. A meter's value would be announced
117246
+ * on every change, and a level changes many times a second.
117247
+ *
117248
+ * Voice Level is styled only and has behavior, which the tier split does not
117249
+ * otherwise allow. Its role and name are set on the host, and the rest is
117250
+ * drawing to a canvas.
117251
+ *
117252
+ * ## Attributes & Properties
117253
+ *
117254
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
117255
+ *
117256
+ * - `bands`: How loud each frequency band is, from `0` to `1`, lowest band first.
117257
+ *
117258
+ * Each bar of the spectrum follows one band. Where there are more or fewer
117259
+ * bands than bars, each bar reads between the two nearest bands. Empty draws
117260
+ * every bar from `level`. Written as an attribute, the numbers are separated
117261
+ * by spaces or commas: `bands="0.1 0.4 0.6 0.3"`. Assign an array to the
117262
+ * property for readings that change many times a second.
117263
+ * - `fallback-label`/`fallbackLabel`: The name where `label` is empty. Translate it with the rest of your
117264
+ * interface.
117265
+ * - `label`: The name read by screen readers, such as "Your voice". Defaults to
117266
+ * `fallbackLabel`.
117267
+ * - `level`: How loud the voice is, from `0` for silence to `1`.
117268
+ *
117269
+ * It sets how far the waves swing, the length of the still bar under
117270
+ * `prefers-reduced-motion`, and every bar of a spectrum that has no
117271
+ * `bands`. A value outside the range is drawn at the nearer end.
117272
+ * - `still`: Draws the readings as a still picture: each bar at its band and the waves
117273
+ * at one fixed moment, swung as far as `level`.
117274
+ *
117275
+ * For a level that holds, such as the loudness of a recorded clip or a
117276
+ * picture of the drawing. No frame loop runs, and each new reading is drawn
117277
+ * at once with no easing. Because nothing moves, the drawing is the same
117278
+ * under `prefers-reduced-motion`. Clearing it starts the motion from the
117279
+ * readings as they are.
117280
+ * - `variant`: The drawing: a row of bars, one for each band, or three moving waves.
117281
+ *
117282
+ * Reflected because the stylesheet sizes each drawing differently. Absent
117283
+ * is `spectrum`, the resting value, which selects nothing.
117284
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
117285
+ *
117286
+ * **Named `whenSettled` because `settled` is taken four times over**, by
117287
+ * Image, Splitter and both color controls, none of them about transitions. A
117288
+ * base class takes the name every subclass then cannot use.
117289
+ *
117290
+ * **The state it reports cannot be watched, which is why this exists.** A
117291
+ * custom state is deliberately not in the DOM, so there is no
117292
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
117293
+ * instead.
117294
+ *
117295
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
117296
+ * the suppression is still active in. That is the distinction `readyToMove`
117297
+ * in `@fusion.dev/helix-testing` is written around.
117298
+ *
117299
+ * It never resolves where `requestAnimationFrame` never fires, which is a
117300
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
117301
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
117302
+ * browser harness's awaits it alone: a browser always runs the frame, and a
117303
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
117304
+ *
117305
+ * ## CSS Custom Properties
117306
+ *
117307
+ * CSS variables available for styling the component.
117308
+ *
117309
+ * - `--voice-level-accent-color`: The color of the second wave. Defaults to the accent color.
117310
+ * - `--voice-level-bars`: How many bars the spectrum draws, from 3 to 96. Defaults to `24`.
117311
+ * - `--voice-level-block-size`: The height. Defaults to the icon size for `spectrum` and the control size for `waves`.
117312
+ * - `--voice-level-color`: The color of the center bars and the main wave. Defaults to the primary color.
117313
+ * - `--voice-level-edge-color`: The color of the bars at either end. Defaults to `--voice-level-color` at 55 percent.
117314
+ * - `--voice-level-inline-size`: The width. Defaults to four times the height for `spectrum` and three times for `waves`.
117315
+ *
117316
+ * ## CSS Parts
117317
+ *
117318
+ * Custom selectors for styling elements within the component.
117319
+ *
117320
+ * - `canvas`: The canvas the level is drawn on.
117321
+ *
117322
+ * ## CSS States
117323
+ *
117324
+ * These can be used to apply styling when a component is in a given state.
117325
+ *
117326
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
117327
+ */
117328
+ "helix-voice-level": Partial<
117329
+ HelixVoiceLevelProps &
117330
+ HelixVoiceLevelSolidJsProps &
117331
+ BaseProps<HelixVoiceLevel, "solid"> &
117332
+ BaseEvents<HelixVoiceLevel>
117333
+ >;
117029
117334
  };
117030
117335
 
117031
117336
  export type CustomCssProperties = {
@@ -119819,6 +120124,18 @@ export type CustomCssProperties = {
119819
120124
  "--virtual-list-selected-background-color"?: (string) | undefined;
119820
120125
  /** The color of the text in a chosen row, in a list with `selection-mode`. Inherited by default. */
119821
120126
  "--virtual-list-selected-color"?: (string) | undefined;
120127
+ /** The color of the second wave. Defaults to the accent color. */
120128
+ "--voice-level-accent-color"?: (string) | undefined;
120129
+ /** How many bars the spectrum draws, from 3 to 96. Defaults to `24`. */
120130
+ "--voice-level-bars"?: (string) | undefined;
120131
+ /** The height. Defaults to the icon size for `spectrum` and the control size for `waves`. */
120132
+ "--voice-level-block-size"?: (string) | undefined;
120133
+ /** The color of the center bars and the main wave. Defaults to the primary color. */
120134
+ "--voice-level-color"?: (string) | undefined;
120135
+ /** The color of the bars at either end. Defaults to `--voice-level-color` at 55 percent. */
120136
+ "--voice-level-edge-color"?: (string) | undefined;
120137
+ /** The width. Defaults to four times the height for `spectrum` and three times for `waves`. */
120138
+ "--voice-level-inline-size"?: (string) | undefined;
119822
120139
  };
119823
120140
 
119824
120141
  declare module "react" {
package/types/svelte.d.ts CHANGED
@@ -208,6 +208,7 @@ declare module 'svelte/elements' {
208
208
  'helix-video-playlist': Helix<'helix-video-playlist'>
209
209
  'helix-video': Helix<'helix-video'>
210
210
  'helix-virtual-list': Helix<'helix-virtual-list'>
211
+ 'helix-voice-level': Helix<'helix-voice-level'>
211
212
  }
212
213
  }
213
214
 
package/types/vue.d.ts CHANGED
@@ -289,6 +289,7 @@ import type {
289
289
  HelixVideoPlaylistItem,
290
290
  HelixVideoPlaylistMenu,
291
291
  HelixVirtualList,
292
+ HelixVoiceLevel,
292
293
  } from '@fusion.dev/helix';
293
294
  import type { HTMLAttributes, PublicProps, EmitFn, EmitsToProps } from "vue";
294
295
 
@@ -24650,6 +24651,48 @@ export type HelixVirtualListVueEvents = {
24650
24651
  "helix-reorder": HelixVirtualListHelixReorderElementEvent;
24651
24652
  };
24652
24653
 
24654
+ export type HelixVoiceLevelVueProps = {
24655
+ /** How loud each frequency band is, from `0` to `1`, lowest band first.
24656
+
24657
+ Each bar of the spectrum follows one band. Where there are more or fewer
24658
+ bands than bars, each bar reads between the two nearest bands. Empty draws
24659
+ every bar from `level`. Written as an attribute, the numbers are separated
24660
+ by spaces or commas: `bands="0.1 0.4 0.6 0.3"`. Assign an array to the
24661
+ property for readings that change many times a second. */
24662
+ bands?: (HelixVoiceLevel["bands"]) | undefined;
24663
+ /** The name where `label` is empty. Translate it with the rest of your
24664
+ interface. */
24665
+ "fallback-label"?: (HelixVoiceLevel["fallbackLabel"]) | undefined;
24666
+ /** The name where `label` is empty. Translate it with the rest of your
24667
+ interface. */
24668
+ fallbackLabel?: (HelixVoiceLevel["fallbackLabel"]) | undefined;
24669
+ /** The name read by screen readers, such as "Your voice". Defaults to
24670
+ `fallbackLabel`. */
24671
+ label?: (HelixVoiceLevel["label"]) | undefined;
24672
+ /** How loud the voice is, from `0` for silence to `1`.
24673
+
24674
+ It sets how far the waves swing, the length of the still bar under
24675
+ `prefers-reduced-motion`, and every bar of a spectrum that has no
24676
+ `bands`. A value outside the range is drawn at the nearer end. */
24677
+ level?: (HelixVoiceLevel["level"]) | undefined;
24678
+ /** Draws the readings as a still picture: each bar at its band and the waves
24679
+ at one fixed moment, swung as far as `level`.
24680
+
24681
+ For a level that holds, such as the loudness of a recorded clip or a
24682
+ picture of the drawing. No frame loop runs, and each new reading is drawn
24683
+ at once with no easing. Because nothing moves, the drawing is the same
24684
+ under `prefers-reduced-motion`. Clearing it starts the motion from the
24685
+ readings as they are. */
24686
+ still?: (HelixVoiceLevel["still"]) | undefined;
24687
+ /** The drawing: a row of bars, one for each band, or three moving waves.
24688
+
24689
+ Reflected because the stylesheet sizes each drawing differently. Absent
24690
+ is `spectrum`, the resting value, which selects nothing. */
24691
+ variant?: (HelixVoiceLevel["variant"]) | undefined;
24692
+ };
24693
+
24694
+ export type HelixVoiceLevelVueEvents = {};
24695
+
24653
24696
  export type CustomCssProperties = {
24654
24697
  /** The color of the open and close indicator. */
24655
24698
  "--accordion-item-chevron-color"?: (string) | undefined;
@@ -27441,6 +27484,18 @@ export type CustomCssProperties = {
27441
27484
  "--virtual-list-selected-background-color"?: (string) | undefined;
27442
27485
  /** The color of the text in a chosen row, in a list with `selection-mode`. Inherited by default. */
27443
27486
  "--virtual-list-selected-color"?: (string) | undefined;
27487
+ /** The color of the second wave. Defaults to the accent color. */
27488
+ "--voice-level-accent-color"?: (string) | undefined;
27489
+ /** How many bars the spectrum draws, from 3 to 96. Defaults to `24`. */
27490
+ "--voice-level-bars"?: (string) | undefined;
27491
+ /** The height. Defaults to the icon size for `spectrum` and the control size for `waves`. */
27492
+ "--voice-level-block-size"?: (string) | undefined;
27493
+ /** The color of the center bars and the main wave. Defaults to the primary color. */
27494
+ "--voice-level-color"?: (string) | undefined;
27495
+ /** The color of the bars at either end. Defaults to `--voice-level-color` at 55 percent. */
27496
+ "--voice-level-edge-color"?: (string) | undefined;
27497
+ /** The width. Defaults to four times the height for `spectrum` and three times for `waves`. */
27498
+ "--voice-level-inline-size"?: (string) | undefined;
27444
27499
  };
27445
27500
 
27446
27501
  // Vue SFC template type-checking (GlobalComponents) for non-Vue custom elements.
@@ -28521,6 +28576,12 @@ export interface WcToolkitVueGlobalComponents {
28521
28576
  HelixVirtualListVueProps,
28522
28577
  HelixVirtualListVueEvents
28523
28578
  >;
28579
+ /** Two drawings, chosen with 'variant': - 'spectrum': a row of thin rounded bars, one for each frequency band in 'bands', tallest in the middle. The middle half of the row takes the stronger color. A quiet bar rests as a dot. - 'waves': three sine lines with different speeds, phases, and weights, held to the center line at both ends. 'level' sets how far they swing, and a quiet level rests as a flat line. Set 'level' and 'bands' from your audio as often as you have readings, about 30 times a second. Each bar and wave eases toward its reading: up fast and down slower. A spectrum given no 'bands' draws every bar from 'level'. The drawing stops when it is off screen, in a background tab, or after the level has been zero for under a second, and starts again with the next reading. With 'prefers-reduced-motion', it draws one bar from the middle over a faint track, whose length is the level, and redraws it on each reading. With 'still', it draws either drawing as a still picture of its readings, whatever the motion preference. The level is an image named by 'label'. A meter's value would be announced on every change, and a level changes many times a second. Voice Level is styled only and has behavior, which the tier split does not otherwise allow. Its role and name are set on the host, and the rest is drawing to a canvas. */
28580
+ "helix-voice-level": DefineCustomElement<
28581
+ HelixVoiceLevel,
28582
+ HelixVoiceLevelVueProps,
28583
+ HelixVoiceLevelVueEvents
28584
+ >;
28524
28585
  }
28525
28586
 
28526
28587
  declare module "@vue/runtime-core" {
package/types/words.d.ts CHANGED
@@ -5416,5 +5416,14 @@ declare module '@fusion.dev/helix-core' {
5416
5416
  */
5417
5417
  loadingLabel: Message
5418
5418
  }
5419
+ 'helix-voice-level': {
5420
+ /**
5421
+ * The name where `label` is empty. Translate it with the rest of your
5422
+ * interface.
5423
+ *
5424
+ * English: `Voice level`
5425
+ */
5426
+ fallbackLabel: Message
5427
+ }
5419
5428
  }
5420
5429
  }