KQ-1187 · MORSE/STATUS
Morse Status
A status line that is tapped out in Morse before it is spelled: a signal lamp sends each word with real ratios, and a head travelling the track under the line draws every dot and dash as long as the lamp was lit, so a dash is three dots long because it was on three times as long. When a word is complete each letter's marks lift off the track and condense into the printed letter on the glide spring while the letter resolves out of them, and the head glides on to the next word. The telegraph key is a real button whose lever dips on flick and springs back on snap; a tap, or Space or Enter, adds the visitor's own dot to the line and a hold draws a dash.
Waylight Pay · wire to Coldbrook
Opening the line
tapping · word 1 of 3 · press the key
Install
One command — the source lands in your repo. Or copy it from the Code tab.
$ pnpm dlx shadcn@latest add @kinetiq/morse-status
Props
- phrases
- string[]
- default —
- The status phrases, tapped out one after another and cycled in order.
- active
- boolean
- default true
- Sending. False clears the line, spells doneText and stops the clock and every timer.
- doneText
- string
- default —
- What stays spelled once inactive. Defaults to the last phrase.
- speed
- number
- default 1
- How fast the code is sent, 0.5 to 2: one unit is 50ms at 1, and the hold and fades scale with it.
- lamp
- boolean
- default true
- Show the signal lamp, which flashes with the code and lights the mark being drawn. Off, the head and the marks carry the signal alone.
- trail
- number
- default 0.6
- How long the marks stay lit on the track, 0 (each fades to a ghost within a moment) to 1 (every mark stays until its word is spelled); also the length of the light streak behind the head.
- sound
- boolean
- default false
- Play the key under the visitor's hand: a click as the contact closes and a tick as the lever returns. The automatic sending is silent.
- disabled
- boolean
- default false
- The line keeps sending, but the key cannot be pressed.
- onPhraseChange
- (index: number) => void
- default —
- A phrase began: its index in phrases, or -1 for doneText. Also reported on the first commit.
- onWordChange
- (word: number) => void
- default —
- A word of the phrase began to be sent: its index within the phrase. Also reported on the first commit.
- className
- string
- default —
- Classes for the root; it is w-full by default.
| Prop | Type | Default | Description |
|---|---|---|---|
| phrases | string[] | — | The status phrases, tapped out one after another and cycled in order. |
| active | boolean | true | Sending. False clears the line, spells doneText and stops the clock and every timer. |
| doneText | string | — | What stays spelled once inactive. Defaults to the last phrase. |
| speed | number | 1 | How fast the code is sent, 0.5 to 2: one unit is 50ms at 1, and the hold and fades scale with it. |
| lamp | boolean | true | Show the signal lamp, which flashes with the code and lights the mark being drawn. Off, the head and the marks carry the signal alone. |
| trail | number | 0.6 | How long the marks stay lit on the track, 0 (each fades to a ghost within a moment) to 1 (every mark stays until its word is spelled); also the length of the light streak behind the head. |
| sound | boolean | false | Play the key under the visitor's hand: a click as the contact closes and a tick as the lever returns. The automatic sending is silent. |
| disabled | boolean | false | The line keeps sending, but the key cannot be pressed. |
| onPhraseChange | (index: number) => void | — | A phrase began: its index in phrases, or -1 for doneText. Also reported on the first commit. |
| onWordChange | (word: number) => void | — | A word of the phrase began to be sent: its index within the phrase. Also reported on the first commit. |
| className | string | — | Classes for the root; it is w-full by default. |