Package-level declarations
Types
Marks the emphasis-text builder DSL so nested scopes can't leak into each other.
Collects the segments of one emphasis line. Calls are not composables; they only record spans that are later rendered as a single text.
Drives and observes one typewriter reveal. A state reveals each distinct text once: once a text has fully typed in, binding the same text again (recomposition, configuration change) shows it immediately, while a different text types in again.
Functions
Non-animated emphasis line: baseline words in weights.unfocused and baseColor, key phrases in weights.focused and focusedColor, rendered as one text so it wraps naturally. A line whose only segment is EmphasisTextScope.FocusedText renders fully emphasised (e.g. "Settings").
Hero (42sp) emphasis line in EmphasisWeights.Headline for landing / splash screens; types in when animate.
Remembers a TypewriterState that survives configuration changes.
Large left-aligned screen title in EmphasisWeights.Title; types in when animate.
Emphasis line that types in letter by letter, sequentially across segments ("Hello" finishes before "User" starts). It runs once per text per state: recomposition and configuration changes don't replay it, while changing the text (or the state's key) does.