Skip to content

Dev Tools: Fix the slot flash never being drawn - #2299

Merged
marcoroth merged 1 commit into
mainfrom
dev-tools/slot-flash-css
Aug 19, 2026
Merged

Dev Tools: Fix the slot flash never being drawn#2299
marcoroth merged 1 commit into
mainfrom
dev-tools/slot-flash-css

Conversation

@marcoroth

@marcoroth marcoroth commented Aug 19, 2026

Copy link
Copy Markdown
Owner

This pull request fixes the slot flash in the dev tools overlay which were added in #2277.

Both cssText strings in SlotFlash were written without ; between the declarations, so each one reads as a single malformed declaration and the browser keeps none of it.

@github-actions github-actions Bot added typescript TypeScript source across the javascript/ packages dev-tools @herb-tools/dev-tools visual debugging for HTML+ERB templates labels Aug 19, 2026
@marcoroth marcoroth changed the title Dev Tools: Put the separators back in the slot flash styles Dev Tools: Fix the slot flash never being drawn Aug 19, 2026
@marcoroth marcoroth added the reactivity Reactive ERB templates: diff and re-render only what changed label Aug 19, 2026
@nx-cloud

nx-cloud Bot commented Aug 19, 2026

Copy link
Copy Markdown

View your CI Pipeline Execution ↗ for commit 5bf54d3

Command Status Duration Result
nx run-many -t test --all --parallel --exclude=... ✅ Succeeded 3m 57s View ↗
nx run-many -t build --all --exclude=herb-langu... ✅ Succeeded 19s View ↗
nx build @herb-tools/tailwind-class-sorter ✅ Succeeded 1s View ↗

💡 Verify your cache is correct by running tasks in a sandbox. Read docs ↗


☁️ Nx Cloud last updated this comment at 2026-08-19 18:11:26 UTC

@github-actions

github-actions Bot commented Aug 19, 2026

Copy link
Copy Markdown

🌿 Interactive Playground and Documentation Preview

A preview deployment has been built for this pull request. Try out the changes live in the interactive playground:


🌱 Grown from commit 5bf54d3


✅ Preview deployment has been cleaned up.

@pkg-pr-new

pkg-pr-new Bot commented Aug 19, 2026

Copy link
Copy Markdown
@herb-tools/client

npx https://pkg.pr.new/@herb-tools/client@2299

@herb-tools/core

npx https://pkg.pr.new/@herb-tools/core@2299

@herb-tools/dev-tools

npx https://pkg.pr.new/@herb-tools/dev-tools@2299

@herb-tools/formatter

npx https://pkg.pr.new/@herb-tools/formatter@2299

@herb-tools/language-server

npx https://pkg.pr.new/@herb-tools/language-server@2299

@herb-tools/linter

npx https://pkg.pr.new/@herb-tools/linter@2299

commit: 5bf54d3

@marcoroth
marcoroth merged commit 62b0099 into main Aug 19, 2026
23 checks passed
@marcoroth
marcoroth deleted the dev-tools/slot-flash-css branch August 19, 2026 18:13
marcoroth added a commit that referenced this pull request Aug 19, 2026
Follow up on #2299, which fixed the slot flash drawing nothing. With it
drawing again, two things it was hiding became visible.

The first is that a branch swap never reports itself as one.
`#writeFragment` is the only code that announces a `branch` operation,
and its one caller is `apply`, so a server payload is the only thing
that has ever reached it. `materialize` hands back a fragment and there
was nothing public to install one, so a page that flips a branch on its
own has to do the work by hand.

`switchBranch` is what `#applyBranch` does with the payload taken away.
marcoroth added a commit that referenced this pull request Aug 19, 2026
Follow up on #2299 and #2300. With the flash drawing again, and telling
a branch swap apart from a value write, what it says about collections
is the part still worth fixing.

An `item-added` drew over the wrong row. `#buildItem` inserts a new item
in front of the first one already there and announces it from that
position, and the index puts it in its real place afterwards, so the
flash was drawing where the item was at that instant instead of where it
ended up. On the inline-edit table that is the first row every time,
whichever row was actually added.

Measuring on the next task reads the position after the whole batch has
settled, ordering included. A microtask is not enough, since the
reordering runs in the same task as the announcement.

An item on its way out is the one case that cannot wait. `#dropItem`
announces before it deletes the range, so a removal is still measured
while its markers are in the document. That is the only operation left
drawing synchronously.

This also gets a nested slot inside a freshly built row off measuring
zero by zero, since a slot in a row that has not been placed yet has no
box.

An item update now also outlines the collection it belongs to, dashed
and unfilled so it never competes with what is drawn inside it, in the
color of the operation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dev-tools @herb-tools/dev-tools visual debugging for HTML+ERB templates reactivity Reactive ERB templates: diff and re-render only what changed typescript TypeScript source across the javascript/ packages

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant