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

humanspeak / svelte-motion / 28118668988 / 1
57%
main: 57%

Build:
Build:
LAST BUILD BRANCH: ci/drop-node-20
DEFAULT BRANCH: main
Ran 24 Jun 2026 06:02PM UTC
Files 242
Run time 13s
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

24 Jun 2026 05:54PM UTC coverage: 57.365%. First build
28118668988.1

push

github

web-flow
fix(html): default ref to $bindable() so bind:ref={$state()} works (#420)

Binding a freshly-declared `$state()` ref (the idiomatic
`let el = $state()` -> `bind:ref={el}`) to any motion element crashed
at mount with Svelte's `props_invalid_value`, because `ref` defaulted
to `$bindable(null)` and Svelte rejects a `bind:` target that resolves
to `undefined` when the prop has a non-undefined fallback.

- Default `ref` to `$bindable()` in both html templates and regenerate
  the ~170 generated components.
- In `_MotionContainer`, decouple the public `ref` bindable (now
  `$bindable()`, undefined) from an internal `element` node that keeps
  its `null` default and mirrors into `ref` via an effect. The animate
  effects depend on the exact `null -> element` reactive timing;
  defaulting the internal node to `undefined` reorders effect runs and
  breaks re-running animations on prop change. The effect resets `ref`
  to `null` on teardown so consumers see the same unmount semantics as
  native `bind:this` (no stale node reference).
- Add a regression test covering `bind:ref={$state()}` on a regular
  element, a void element, and `_MotionContainer` directly, plus the
  unmount path that resets each bound ref to null.
- Extract the duplicated `flushTimers` test helper into a shared
  `src/lib/__tests__/flushTimers.ts` (adopting the most thorough
  variant) and reuse it across the motion specs.

Closes #417

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

769 of 1571 branches covered (48.95%)

Branch coverage included in aggregate %.

3024 of 5041 relevant lines covered (59.99%)

16.09 hits per line

Source Files on job node-22 - 28118668988.1
  • Tree
  • List 242
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 28118668988
  • c6e75cc5 on github
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc