Input (bare)

A plain native input that takes dictation — zero kit markup, zero kit styles. Yours to design.

Same speech behavior as the text field — claim on a starts-with match, stream the remainder into the value filtered by type, contains fallback, onMatch flushed once on stop — rendered as exactly one native element with nothing added. While the mic is open the element carries data-listening.

Your input, our dictation

All visible styling belongs to the sample; the kit adds only behavior.

Loading the Angular kit…

Hold anywhere and say:“callsign rocinante”“callsign apollo”

Props

  • not set
  • not set
Angular
Updates as you tick props
import { Component } from "@angular/core";import { FormsModule } from "@angular/forms";import { ListensInputDirective } from "@listenssoft/speechui-angular";
@Component({  selector: "demo-bare-input",  imports: [ListensInputDirective, FormsModule],  template: `    <label style="display: grid; gap: 4px">      Callsign      <!-- A native input; the directive adds dictation, no markup -->      <input        listensInput="callsign"        listensLabel="Callsign"        listensType="letters"        class="my-input"        [(ngModel)]="callsign"      />    </label>  `,  styles: `    .my-input {      padding: 8px 10px;      border: 1px solid #888;      border-radius: 6px;      font: inherit;    }  `,})export class DemoBareInput {  callsign = "";}

What you can say

SayEffect
“callsign rocinante”Starts-with match: streams “rocinante” into the value (filtered by type).
“the callsign is rocinante”Contains fallback: sets the value to the words after the command (“is rocinante”) if nothing else claimed the phrase.

See the text field for the full dictation semantics — they are identical by design.

API reference

Angular inputs & outputs for @listenssoft/speechui-angular.

Inputs (directive: [listensInput] on a native input or textarea)

InputTypeDefaultDescription
listensTypeListensTextValueType—Speech filter override. Defaults from the element's own type attribute (email/number/url/date); use it for the filter-only values letters and name.

The directive deliberately has no ControlValueAccessor: on a speech decision it writes the native element's value and dispatches a real bubbling input event, so [(ngModel)], reactive forms, or any plain listener observes the change natively.

Extra inputs (directive: [listensInput] on a native input or textarea)

InputTypeDefaultDescription
listensInputstring—The spoken command prefix (the directive's bound value).
listensLabelstring""Contract label and command fallback.

Outputs

OutputTypeDefaultDescription
listensMatchedstring—Fires once, when listening stops, with the final accumulated value.

Styling hooks

Styling hooks

HookTypeDefaultDescription
(none added)——The directive adds no classes or markup to its host.
data-listeningattribute—Present on the host while the mic is open.

Behavior notes

  • Angular: Works on <textarea listensInput> too — that's the bare text area.

Was this page helpful?