Two fixes:
1. Heading style bleeding (Typst): the HeadingTitle external token approach
was unreliable — even with contextual:true and canShift(), body text was
being styled as headings. Remove HeadingTitle from the grammar entirely.
Instead, a ViewPlugin (headingLinePlugin in languages/typst/index.ts)
walks the syntax tree, finds HeadingMark nodes, and decorates the rest of
the line with tok-heading class + bold. This is unconditionally correct
because it is based on the syntax tree rather than the LR tokenizer state.
2. smooth_pdf_transition raw key shown in all locales: the key was in the
JSON locale files but missing from extracted-translations.json, which is
the allowlist the webpack translation loader uses to decide what to bundle.
Add it there so all locales (including fr, es, de already added) resolve
to their translated strings.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Two ideas borrowed from the Collabst project (a Typst-native
collaborative editor): typst.ts WASM in-browser preview and Tinymist
LSP integration.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>