- Shipped
- August 14, 2026 at 8:17 PM UTC
- Author
- kamo
- Commit
- bb9f93e
A note now says whether it is rich text or plain text, and both the editor and the floating sticky can switch it. The floating note in rich mode embeds the very same editor /notes uses, so it has every tool the full page has — dressed in that note's own colour through a new optional `tone` prop on KbArticleEditor. The prop is additive: absent, the editor looks exactly as it did, so the knowledge base is untouched. The toolbar wraps and scrolls rather than pushing the writing area off a narrow sticky. Switching rich -> plain asks first, and says plainly that the formatting is discarded and cannot be recovered while the text is kept. It is not hidden — plain mode has nowhere to put it — so the conversion also snapshots a version, leaving the old formatting recoverable from history. Plain -> rich just turns the tools on and needs no warning. Previews on the wall cards and the launchpad chips now show the real content rather than a flattened line. They render through a standalone lexicalToHtml rather than a mounted Lexical instance: a wall is dozens of cards, and each would otherwise drag in the whole editor runtime to display a paragraph. That output is injected, and note content is member-authored and often pasted in, so it is the security-sensitive part and was written test-first — escaping, a scheme allowlist that refuses javascript: and data: (including tab- and case-obfuscated), quote-escaping inside href, and legacy raw-HTML notes shown as text rather than rendered. While a search is running the cards keep the plain highlighted preview: marking the hit matters more mid-search, and it cannot highlight rendered HTML without re-parsing what was just serialized. Also: the floating notes carry the org's configurable background watermark, the same one the content pages use, honouring the org's bgWatermark setting including NONE. Sized as a share of the note so it holds at any size, and a little stronger than the pages use because a sticky sits on saturated paper rather than near-white.