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

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

Build:
Build:
LAST BUILD BRANCH: ci/drop-node-20
DEFAULT BRANCH: main
Ran 24 Jun 2026 05:56PM UTC
Jobs 1
Files 242
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

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

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 %.

9 of 175 new or added lines in 170 files covered. (5.14%)

3024 of 5041 relevant lines covered (59.99%)

16.09 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
0.0
src/lib/html/A.svelte
1
0.0
src/lib/html/Abbr.svelte
1
0.0
src/lib/html/Address.svelte
1
0.0
src/lib/html/Animate.svelte
1
0.0
src/lib/html/Animatemotion.svelte
1
0.0
src/lib/html/Animatetransform.svelte
1
0.0
src/lib/html/Area.svelte
1
0.0
src/lib/html/Article.svelte
1
0.0
src/lib/html/Aside.svelte
1
0.0
src/lib/html/Audio.svelte
1
0.0
src/lib/html/B.svelte
1
0.0
src/lib/html/Base.svelte
1
0.0
src/lib/html/Bdi.svelte
1
0.0
src/lib/html/Bdo.svelte
1
0.0
src/lib/html/Blockquote.svelte
1
0.0
src/lib/html/Br.svelte
1
0.0
src/lib/html/Button.svelte
1
0.0
src/lib/html/Canvas.svelte
1
0.0
src/lib/html/Caption.svelte
1
0.0
src/lib/html/Circle.svelte
1
0.0
src/lib/html/Cite.svelte
1
0.0
src/lib/html/Clippath.svelte
1
0.0
src/lib/html/Code.svelte
1
0.0
src/lib/html/Col.svelte
1
0.0
src/lib/html/Colgroup.svelte
1
0.0
src/lib/html/Cursor.svelte
1
0.0
src/lib/html/Data.svelte
1
0.0
src/lib/html/Datalist.svelte
1
0.0
src/lib/html/Dd.svelte
1
0.0
src/lib/html/Defs.svelte
1
0.0
src/lib/html/Del.svelte
1
0.0
src/lib/html/Desc.svelte
1
0.0
src/lib/html/Details.svelte
1
0.0
src/lib/html/Dfn.svelte
1
0.0
src/lib/html/Dialog.svelte
1
0.0
src/lib/html/Dl.svelte
1
0.0
src/lib/html/Dt.svelte
1
0.0
src/lib/html/Ellipse.svelte
1
0.0
src/lib/html/Em.svelte
1
0.0
src/lib/html/Embed.svelte
1
0.0
src/lib/html/Feblend.svelte
1
0.0
src/lib/html/Fecolormatrix.svelte
1
0.0
src/lib/html/Fecomponenttransfer.svelte
1
0.0
src/lib/html/Fecomposite.svelte
1
0.0
src/lib/html/Feconvolvematrix.svelte
1
0.0
src/lib/html/Fediffuselighting.svelte
1
0.0
src/lib/html/Fedisplacementmap.svelte
1
0.0
src/lib/html/Fedistantlight.svelte
1
0.0
src/lib/html/Feflood.svelte
1
0.0
src/lib/html/Fefunca.svelte
1
0.0
src/lib/html/Fefuncb.svelte
1
0.0
src/lib/html/Fefuncg.svelte
1
0.0
src/lib/html/Fefuncr.svelte
1
0.0
src/lib/html/Fegaussianblur.svelte
1
0.0
src/lib/html/Feimage.svelte
1
0.0
src/lib/html/Femerge.svelte
1
0.0
src/lib/html/Femergenode.svelte
1
0.0
src/lib/html/Femorphology.svelte
1
0.0
src/lib/html/Feoffset.svelte
1
0.0
src/lib/html/Fepointlight.svelte
1
0.0
src/lib/html/Fespecularlighting.svelte
1
0.0
src/lib/html/Fespotlight.svelte
1
0.0
src/lib/html/Fetile.svelte
1
0.0
src/lib/html/Feturbulence.svelte
1
0.0
src/lib/html/Fieldset.svelte
1
0.0
src/lib/html/Figcaption.svelte
1
0.0
src/lib/html/Figure.svelte
1
0.0
src/lib/html/Filter.svelte
1
0.0
src/lib/html/Footer.svelte
1
0.0
src/lib/html/Foreignobject.svelte
1
0.0
src/lib/html/Form.svelte
1
0.0
src/lib/html/G.svelte
1
0.0
src/lib/html/H1.svelte
1
0.0
src/lib/html/H2.svelte
1
0.0
src/lib/html/H3.svelte
1
0.0
src/lib/html/H4.svelte
1
0.0
src/lib/html/H5.svelte
1
0.0
src/lib/html/H6.svelte
1
0.0
src/lib/html/Header.svelte
1
0.0
src/lib/html/Hgroup.svelte
1
0.0
src/lib/html/Hr.svelte
1
0.0
src/lib/html/I.svelte
1
0.0
src/lib/html/Iframe.svelte
1
0.0
src/lib/html/Image.svelte
1
0.0
src/lib/html/Img.svelte
1
0.0
src/lib/html/Input.svelte
1
0.0
src/lib/html/Ins.svelte
1
0.0
src/lib/html/Kbd.svelte
1
0.0
src/lib/html/Label.svelte
1
0.0
src/lib/html/Legend.svelte
1
0.0
src/lib/html/Line.svelte
1
0.0
src/lib/html/Lineargradient.svelte
1
0.0
src/lib/html/Main.svelte
1
0.0
src/lib/html/Map.svelte
1
0.0
src/lib/html/Mark.svelte
1
0.0
src/lib/html/Marker.svelte
1
0.0
src/lib/html/Mask.svelte
1
0.0
src/lib/html/Math.svelte
1
0.0
src/lib/html/Menu.svelte
1
0.0
src/lib/html/Metadata.svelte
1
0.0
src/lib/html/Meter.svelte
1
0.0
src/lib/html/Mpath.svelte
1
0.0
src/lib/html/Nav.svelte
1
0.0
src/lib/html/Noscript.svelte
1
0.0
src/lib/html/Object.svelte
1
0.0
src/lib/html/Ol.svelte
1
0.0
src/lib/html/Optgroup.svelte
1
0.0
src/lib/html/Option.svelte
1
0.0
src/lib/html/Output.svelte
1
0.0
src/lib/html/P.svelte
1
0.0
src/lib/html/Path.svelte
1
0.0
src/lib/html/Pattern.svelte
1
0.0
src/lib/html/Picture.svelte
1
0.0
src/lib/html/Polygon.svelte
1
0.0
src/lib/html/Polyline.svelte
1
0.0
src/lib/html/Pre.svelte
1
0.0
src/lib/html/Progress.svelte
1
0.0
src/lib/html/Q.svelte
1
0.0
src/lib/html/Radialgradient.svelte
1
0.0
src/lib/html/Rect.svelte
1
0.0
src/lib/html/Rp.svelte
1
0.0
src/lib/html/Rt.svelte
1
0.0
src/lib/html/Ruby.svelte
1
0.0
src/lib/html/S.svelte
1
0.0
src/lib/html/Samp.svelte
1
0.0
src/lib/html/Script.svelte
1
0.0
src/lib/html/Search.svelte
1
0.0
src/lib/html/Section.svelte
1
0.0
src/lib/html/Select.svelte
1
0.0
src/lib/html/Selectedcontent.svelte
1
0.0
src/lib/html/SetElement.svelte
1
0.0
src/lib/html/Slot.svelte
1
0.0
src/lib/html/Small.svelte
1
0.0
src/lib/html/Span.svelte
1
0.0
src/lib/html/Stop.svelte
1
0.0
src/lib/html/Strong.svelte
1
0.0
src/lib/html/Style.svelte
1
0.0
src/lib/html/Sub.svelte
1
0.0
src/lib/html/Summary.svelte
1
0.0
src/lib/html/Sup.svelte
1
0.0
src/lib/html/Svg.svelte
1
0.0
src/lib/html/Switch.svelte
1
0.0
src/lib/html/Symbol.svelte
1
0.0
src/lib/html/Table.svelte
1
0.0
src/lib/html/Tbody.svelte
1
0.0
src/lib/html/Td.svelte
1
0.0
src/lib/html/Template.svelte
1
0.0
src/lib/html/Text.svelte
1
0.0
src/lib/html/Textarea.svelte
1
0.0
src/lib/html/Textpath.svelte
1
0.0
src/lib/html/Tfoot.svelte
1
0.0
src/lib/html/Th.svelte
1
0.0
src/lib/html/Thead.svelte
1
0.0
src/lib/html/Time.svelte
1
0.0
src/lib/html/Title.svelte
1
0.0
src/lib/html/Tr.svelte
1
0.0
src/lib/html/Track.svelte
1
0.0
src/lib/html/Tref.svelte
1
0.0
src/lib/html/Tspan.svelte
1
0.0
src/lib/html/U.svelte
1
0.0
src/lib/html/Ul.svelte
1
0.0
src/lib/html/Use.svelte
1
0.0
src/lib/html/Var.svelte
1
0.0
src/lib/html/Video.svelte
1
0.0
src/lib/html/View.svelte
1
0.0
src/lib/html/Wbr.svelte
Jobs
ID Job ID Ran Files Coverage
1 node-22 - 28118668988.1 24 Jun 2026 05:56PM UTC 242
57.37
GitHub Action Run
Source Files on build 28118668988
  • 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 Repo
  • Github Actions 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