feat(toast): explicit persistence: 'transient' on signal-announce event

Documents the deliberate choice to keep the announce event's perceptual
projection transient even though the canonical book §6.2 table would
suggest `untilFix` for `signal + risk` or `untilAction` for `signal + threat`.

Rationale: the Toast component owns its own lifecycle via
`Toast.Provider`'s auto-dismiss timer + user dismiss. The `data-event-*`
projection is a one-shot pulse when the toast enters. Persistence of the
toast surface itself lives in `data-state` (open/closed) on the Item,
not in the signal projection.

Found via audit of all `verb: 'warn' | 'alert' | 'notify'` events across
`src/uix/morfo/components/*`. Toast was the only one without an explicit
persistence declaration — annotated now so the choice is intentional
rather than implicit-default.

(`words.signal-invalid-input` also lacks persistence but it belongs to
the in-flight words editor work tracked separately by the user.)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
active-uix
dev 5 months ago
parent 9ca8b4e30b
commit 34e0064f2c

@ -21,6 +21,14 @@ export const toastMorfo = {
}
},
{
// Persistence: explicit `transient` even though the book §6.2
// canon would imply `untilFix` / `untilAction` for `signal +
// risk` / `signal + threat`. The Toast component owns its own
// lifecycle via `Toast.Provider`'s auto-dismiss timer + user
// dismiss; the `data-event-*` projection is a one-shot pulse
// when the toast enters. Persistence of the toast surface
// itself lives in `data-state` (open/closed) on the Item, not
// in the signal projection.
name: 'announce',
semantic: {
family: 'signal',
@ -31,7 +39,8 @@ export const toastMorfo = {
fromProp: 'intent',
default: 'neutral',
supported: INTENTS
}
},
persistence: 'transient'
}
},
{

Loading…
Cancel
Save

Powered by TurnKey Linux.