fix: the note's formatting toolbar floats beside the selection, never clipped inside the note (goal 0253) - #530
Merged
Merged
Conversation
… clipped inside the note (goal 0253) Crepe's own toolbar mounted through TooltipProvider's default parent -- inside the note node -- where the node's box clipped it to nothing, the board zoom shrank it, and floating-ui misplaced it. Crepe's config exposes no mount point, so its toolbar is off and Mill registers its own through the same kit primitives (tooltipFactory + TooltipProvider) with the provider's documented root: document.body -- the toolbar now floats at UI scale beside the selection with Primer buttons (bold/italic/strikethrough/code) dispatching the kit's own commands. The sticky's outside-press commit excludes the body-level toolbar, so pressing Bold formats instead of ending the edit session. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012im1JxQQV2ahnXzZDdVmZq
alicoding
enabled auto-merge (squash)
August 30, 2026 16:22
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Owner-raised: the bold/italic toolbar was "hidden inside the note object… so tiny you can't even do anything… blocking the text or don't appear always." Reproduced: the toolbar element existed with a zero bounding box — fully clipped inside the note node.
Root cause (from the vendored source): Crepe's toolbar mounts through
TooltipProvider's default parent — inside the (clipped, zoom-transformed) note node — and Crepe's config exposes no mount point. The provider itself has a documentedrootoption one dependency down;defect_class: under-adopted-api, third strike, recorded in the goal.Fix, adopted not invented: Crepe's toolbar is off; Mill registers its own through the same kit primitives (
tooltipFactory+TooltipProviderwithroot: document.body). The toolbar now floats at UI scale beside the selection — Primer icon buttons (bold/italic/strikethrough/code) dispatching the kit's own commands, active states viaisMarkSelectedCommand, positioned by floating-ui with flip so it never covers the text it acts on. The sticky's outside-press commit excludes the body-level toolbar, so pressing Bold formats instead of ending the edit session (that interplay was caught live during verification). One behavior everywhere MilkdownEditor mounts.Proof: new regression case in atlas-note-markdown.spec.ts (toolbar has a real box, doesn't intersect the live selection rect, Bold survives the commit as a real
<strong>); all note/card editor suites green; screenshots reviewed.🤖 Generated with Claude Code
https://claude.ai/code/session_012im1JxQQV2ahnXzZDdVmZq