@fusion.dev/helix 0.222.0 → 0.223.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.
@@ -1,6 +1,7 @@
1
1
  import { HelixHeadlessChatComposer } from '@fusion.dev/helix-headless/chat';
2
2
  import { type CSSResultGroup, type PropertyValues, type TemplateResult } from 'lit';
3
3
  import '../../tooltip/index.js';
4
+ import '../../voice-level/index.js';
4
5
  /**
5
6
  * The keyframes of one lap of the light around a box `w` wide and `h` tall,
6
7
  * clockwise from its top-left corner, each side taking the share of the lap
@@ -46,7 +47,6 @@ export declare function lapOf(w: number, h: number): Keyframe[];
46
47
  * @cssproperty --chat-composer-border-width - Width of the composer's edge, so your theme can remove it.
47
48
  * @cssproperty --chat-composer-glow-color - Color of the focus glow under `glow`. Defaults to the primary color.
48
49
  * @cssproperty --chat-composer-max-block-size - Maximum height the field grows to.
49
- * @cssproperty --dictation-level - How loud the microphone is while the field listens for dictation, from 0 to 1, which the element sets; the ring around the dictation button grows with it.
50
50
  */
51
51
  export declare class HelixChatComposer extends HelixHeadlessChatComposer {
52
52
  static tier: string;
@@ -7,6 +7,7 @@ import { repeat } from 'lit/directives/repeat.js';
7
7
  import { styles as dictationStyles } from '../../shared/dictation/dictation.css.js';
8
8
  import { styles } from './chat-composer.css.js';
9
9
  import '../../tooltip/index.js';
10
+ import '../../voice-level/index.js';
10
11
  const LIGHT_X = '--_chat-composer-light-x';
11
12
  const LIGHT_Y = '--_chat-composer-light-y';
12
13
  const REACH_X = '--_chat-composer-reach-x';
@@ -1,5 +1,6 @@
1
1
  import { HelixHeadlessCodeInput } from '@fusion.dev/helix-headless/code-input';
2
2
  import type { CSSResultGroup } from 'lit';
3
+ import '../../voice-level/index.js';
3
4
  /**
4
5
  * @summary A field for a short piece of code, highlighted as it is typed.
5
6
  *
@@ -21,9 +22,10 @@ import type { CSSResultGroup } from 'lit';
21
22
  * @cssproperty --code-input-font-size - The code's size. Defaults to `text-sm`, and never under 16px on a touch screen.
22
23
  * @cssproperty --code-input-padding - Space between the edge of the field and the code.
23
24
  * @cssproperty --code-input-radius - Corner radius of the field.
24
- * @cssproperty --dictation-level - How loud the microphone is while the field listens for dictation, from 0 to 1, which the element sets; the ring around the dictation button grows with it.
25
25
  */
26
26
  export declare class HelixCodeInput extends HelixHeadlessCodeInput {
27
+ /** The tier its dictation button draws Voice Level from. */
28
+ static tier: string;
27
29
  static styles: CSSResultGroup;
28
30
  }
29
31
  declare global {
@@ -6,7 +6,9 @@ import { styles as fieldStyles } from '../../shared/field/field.css.js';
6
6
  import { styles as fieldFrameStyles } from '../../shared/field/field-frame.css.js';
7
7
  import { styles as fieldStackedStyles } from '../../shared/field/field-stacked.css.js';
8
8
  import { styles } from './code-input-root.css.js';
9
+ import '../../voice-level/index.js';
9
10
  let HelixCodeInput = class HelixCodeInput extends HelixHeadlessCodeInput {
11
+ static { this.tier = 'helix-'; }
10
12
  static { this.styles = [
11
13
  fieldStyles,
12
14
  fieldFrameStyles,
@@ -1,5 +1,6 @@
1
1
  import { HelixHeadlessFilterInput } from '@fusion.dev/helix-headless/filter-input';
2
2
  import type { CSSResultGroup } from 'lit';
3
+ import '../../voice-level/index.js';
3
4
  /**
4
5
  * @summary A text field for filters, with the active filters shown in it as tokens.
5
6
  *
@@ -26,7 +27,6 @@ import type { CSSResultGroup } from 'lit';
26
27
  * @aliases SearchField, FacetInput, TokenInput
27
28
  * @documentation https://fusion.dev/helix/components/filter-input
28
29
  *
29
- * @cssproperty --dictation-level - How loud the microphone is while the field listens for dictation, from 0 to 1, which the element sets; the ring around the dictation button grows with it.
30
30
  * @cssproperty --filter-input-action-padding-inline - The space on either side of a slotted control's label. It follows `--helix-space-xs`, the space a token uses.
31
31
  * @cssproperty --filter-input-action-size - The height of a control slotted at either end. It follows `--helix-size-tag`, so it matches the height of the tokens beside it.
32
32
  * @cssproperty --filter-input-background-color - The fill behind the field.
@@ -12,6 +12,7 @@ import { styles as glyphStyles } from '../../shared/glyph/glyph.css.js';
12
12
  import { styles as liveStyles } from '../../shared/live/live.css.js';
13
13
  import { styles as tagRowStyles } from '../../shared/tags/tags.css.js';
14
14
  import { styles } from './filter-input-root.css.js';
15
+ import '../../voice-level/index.js';
15
16
  let HelixFilterInput = class HelixFilterInput extends HelixHeadlessFilterInput {
16
17
  static { this.tier = 'helix-'; }
17
18
  static { this.styles = [
@@ -1,5 +1,6 @@
1
1
  import { HelixHeadlessInput } from '@fusion.dev/helix-headless/input';
2
2
  import type { CSSResultGroup } from 'lit';
3
+ import '../../voice-level/index.js';
3
4
  /**
4
5
  * @summary A field for a single line of text.
5
6
  *
@@ -22,7 +23,6 @@ import type { CSSResultGroup } from 'lit';
22
23
  * @aliases TextField, Field, TextInput
23
24
  * @documentation https://fusion.dev/helix/components/input
24
25
  *
25
- * @cssproperty --dictation-level - How loud the microphone is while the field listens for dictation, from 0 to 1, which the element sets; the ring around the dictation button grows with it.
26
26
  * @cssproperty --input-background-color - Fill behind the text.
27
27
  * @cssproperty --input-border-color - Edge of the field at rest. Hover, focus and an error still draw their own.
28
28
  * @cssproperty --input-padding-inline - Space between the edge of the field and what is inside it.
@@ -32,6 +32,8 @@ import type { CSSResultGroup } from 'lit';
32
32
  * @replaces input, input[type=text], input[type=email], input[type=password], input[type=search], input[type=tel], input[type=url]
33
33
  */
34
34
  export declare class HelixInput extends HelixHeadlessInput {
35
+ /** The tier its dictation button draws Voice Level from. */
36
+ static tier: string;
35
37
  static styles: CSSResultGroup;
36
38
  }
37
39
  declare global {
@@ -7,7 +7,9 @@ import { styles as fieldFrameStyles } from '../../shared/field/field-frame.css.j
7
7
  import { styles as fieldStackedStyles } from '../../shared/field/field-stacked.css.js';
8
8
  import { styles as glyphStyles } from '../../shared/glyph/glyph.css.js';
9
9
  import { styles } from './input-root.css.js';
10
+ import '../../voice-level/index.js';
10
11
  let HelixInput = class HelixInput extends HelixHeadlessInput {
12
+ static { this.tier = 'helix-'; }
11
13
  static { this.styles = [
12
14
  glyphStyles,
13
15
  fieldStyles,
@@ -1,5 +1,6 @@
1
1
  import { HelixHeadlessListbox } from '@fusion.dev/helix-headless/listbox';
2
2
  import type { CSSResultGroup } from 'lit';
3
+ import '../../voice-level/index.js';
3
4
  /**
4
5
  * @summary A list of options, from which you choose one or several.
5
6
  *
@@ -17,7 +18,6 @@ import type { CSSResultGroup } from 'lit';
17
18
  * @aliases Options, Select list
18
19
  * @documentation https://fusion.dev/helix/components/listbox
19
20
  *
20
- * @cssproperty --dictation-level - How loud the microphone is while the field listens for dictation, from 0 to 1, which the element sets; the ring around the dictation button grows with it.
21
21
  * @cssproperty --listbox-background-color - The panel's fill. Set it to `transparent` when the list is already inside a panel.
22
22
  * @cssproperty --listbox-border - The panel's border, as a shorthand. Set it to `none` when the list is already inside a panel.
23
23
  * @cssproperty --listbox-column-min-inline-size - How narrow a column may be with `layout="grid"`. As many columns as fit are drawn. Defaults to `8rem`.
@@ -7,6 +7,7 @@ import { styles as fieldStyles } from '../../shared/field/field.css.js';
7
7
  import { styles as fieldStackedStyles } from '../../shared/field/field-stacked.css.js';
8
8
  import { styles as liveStyles } from '../../shared/live/live.css.js';
9
9
  import { styles } from './listbox-root.css.js';
10
+ import '../../voice-level/index.js';
10
11
  let HelixListbox = class HelixListbox extends HelixHeadlessListbox {
11
12
  static { this.tier = 'helix-'; }
12
13
  static { this.styles = [
@@ -275,7 +275,7 @@ frame.onload = () => frame.contentWindow.postMessage(${JSON.stringify(this.messa
275
275
  this.speech =
276
276
  engine !== browserSpeech && scope === window
277
277
  ? engine.listen({ lang: ask.lang, listener })
278
- : recognizeSpeech(ask.lang, listener, { meter: false, scope });
278
+ : recognizeSpeech(ask.lang, listener, { scope });
279
279
  }
280
280
  reload() {
281
281
  const frame = this.frame;
@@ -1,2 +1,2 @@
1
1
  import { createSheet } from '@fusion.dev/helix-core';
2
- export const styles = createSheet(`[part~="voice-listening"]:not(:disabled), [part~="voice-listening"]:hover:not(:disabled) {background-color: var(--helix-color-success-surface);box-shadow: 0 0 0 calc(var(--dictation-level, 0.4) * var(--helix-space-2xs) * 1.5) color-mix(in oklab, var(--helix-color-success) 35%, transparent);color: var(--helix-color-foreground-on-status);transition: box-shadow var(--helix-duration-fast) linear}[part~="voice-listening"]:hover:not(:disabled) {background-color: var(--helix-color-success-surface-hover)}@media (prefers-reduced-motion: reduce) {[part~="voice-listening"]:not(:disabled), [part~="voice-listening"]:hover:not(:disabled) {box-shadow: 0 0 0 calc(var(--helix-space-2xs) * 0.6) color-mix(in oklab, var(--helix-color-success) 35%, transparent);transition: none}}@media print {[part~="voice"] {display: none}}`);
2
+ export const styles = createSheet(`[part="voice-level"] {--voice-level-bars: 5;--voice-level-block-size: var(--icon-size, var(--helix-size-icon));--voice-level-inline-size: var(--icon-size, var(--helix-size-icon));display: block}@media print {[part~="voice"] {display: none}}`);
@@ -1,5 +1,6 @@
1
1
  import { HelixHeadlessTextarea } from '@fusion.dev/helix-headless/textarea';
2
2
  import type { CSSResultGroup } from 'lit';
3
+ import '../../voice-level/index.js';
3
4
  /**
4
5
  * @summary A multi-line text field.
5
6
  *
@@ -14,7 +15,6 @@ import type { CSSResultGroup } from 'lit';
14
15
  * @aliases Multiline, TextArea
15
16
  * @documentation https://fusion.dev/helix/components/textarea
16
17
  *
17
- * @cssproperty --dictation-level - How loud the microphone is while the field listens for dictation, from 0 to 1, which the element sets; the ring around the dictation button grows with it.
18
18
  * @cssproperty --textarea-background-color - Fill behind the text.
19
19
  * @cssproperty --textarea-border-color - Edge of the field at rest. Hover, focus and an error still draw their own.
20
20
  * @cssproperty --textarea-padding - Space between the edge of the field and the text.
@@ -24,6 +24,8 @@ import type { CSSResultGroup } from 'lit';
24
24
  * @replaces textarea
25
25
  */
26
26
  export declare class HelixTextarea extends HelixHeadlessTextarea {
27
+ /** The tier its dictation button draws Voice Level from. */
28
+ static tier: string;
27
29
  static styles: CSSResultGroup;
28
30
  }
29
31
  declare global {
@@ -7,7 +7,9 @@ import { styles as fieldFrameStyles } from '../../shared/field/field-frame.css.j
7
7
  import { styles as fieldStackedStyles } from '../../shared/field/field-stacked.css.js';
8
8
  import { styles as glyphStyles } from '../../shared/glyph/glyph.css.js';
9
9
  import { styles } from './textarea-root.css.js';
10
+ import '../../voice-level/index.js';
10
11
  let HelixTextarea = class HelixTextarea extends HelixHeadlessTextarea {
12
+ static { this.tier = 'helix-'; }
11
13
  static { this.styles = [
12
14
  glyphStyles,
13
15
  fieldStyles,