• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

humanspeak / svelte-motion / 29851475245
60%
main: 57%

Build:
Build:
LAST BUILD BRANCH: fix/presence-exit-placeholder-slot
DEFAULT BRANCH: main
Ran 21 Jul 2026 05:13PM UTC
Jobs 1
Files 255
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

21 Jul 2026 05:05PM UTC coverage: 60.202%. First build
29851475245

push

github

web-flow
fix(animate-presence): exit in place — placeholder slot anchoring, clone position, key={0} (#448)

* test(animate-presence): capture grid exit placeholder slot regressions

Red against current code: when a keyed child exits from a CSS grid, the
slot-holding placeholder lands before the entire display:contents
presence container (always column 1), so surviving siblings get shoved a
column over during the exit and shuffle back after it — instead of
holding still, then FLIPing once into the freed slot.

- unit: placeholder must land in the exiting child's own slot (first/
  middle/last/two simultaneous exits), anchored past Svelte-injected
  sibling nodes that detach with the child
- e2e: frame-by-frame sampling of a 3-column grid — survivors hold
  while the clone fades, then slide (never snap) into place
- repro page under tests/animate-presence/grid-exit, linked from home

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

* fix(animate-presence): anchor exit placeholder in the exiting child's slot

The placeholder that holds an exiting child's layout slot was inserted
via findLayoutInsertionParent, which walked up past display:contents
parents and anchored before the wrapper it found — but that wrapper is
AnimatePresence's own container holding every sibling, so the
placeholder always landed in the first slot. In a grid this shoved all
surviving cards one column over for the duration of the exit, then
shuffled them back once it finished.

Anchoring on the element itself doesn't work either: Svelte detaches
keyed nodes before unregisterChild runs, and the element's raw
nextElementSibling is a Svelte-injected <script> node that detaches
with it. Instead, track each child's next registered sibling (or live
placeholder) while it is still connected, refreshed whenever the child
set changes, and at exit time walk that chain past siblings that
detached in the same update to find a live anchor.

Siblings now hold their slots while the exit clone fades, ... (continued)

874 of 1682 branches covered (51.96%)

Branch coverage included in aggregate %.

35 of 36 new or added lines in 2 files covered. (97.22%)

3348 of 5331 relevant lines covered (62.8%)

23.84 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
91.26
src/lib/utils/presence.ts
Jobs
ID Job ID Ran Files Coverage
1 node-22 - 29851475245.1 21 Jul 2026 05:13PM UTC 255
60.2
GitHub Action Run
Source Files on build 29851475245
  • Tree
  • List 255
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #29851475245
  • 7b2f0ec2 on github
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc