feat(text): markdown formatting with floating format bar (#175)

* feat(text): markdown formatting with floating format bar

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* refactor(text): drop test-only toolbar fallback, tidy markup helpers

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix(text): scope line-kind toggles to the selection, guard caret at end

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix(text): preserve legacy rendered footprint

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix(text): keep natural line height; retire legacy footprint render check

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix(text): keep format bar inside the overlay

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix(text): same card height in both states, tighter bar, violet glyph for active

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* ci: retrigger

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix(text): hug the text, and a format bar that fits

The card's vertical padding drops from 12px to 4px and moves into the
shared frame, so editing, previews, and exports agree.

The format bar is sized for the five buttons it holds, evenly spaced,
with corners that sit against the text card. Active toggles are checked
tools: a raised violet surface under a white glyph. No tooltips, which
covered the text being written.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* fix(text): carry the caret past earlier prefixes that grew on renumber

Renumbering shifted a caret only by its own line's prefix change, so when
an earlier item went from 9. to 10. a caret further down landed one
character early.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

---------

Co-authored-by: daraadedeji07 <shawnadedeji@gmail.com>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Dara Adedeji <76637177+SunkenInTime@users.noreply.github.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
8ae7af33addevin-ai-integration[bot] committed on 9/22/2026, 2:14:16 AM· committed by GitHubparent912951b
11 files changedLine totals unavailable