diff --git a/.changeset/animated-attribute-removal.md b/.changeset/animated-attribute-removal.md deleted file mode 100644 index f296061d0d..0000000000 --- a/.changeset/animated-attribute-removal.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@react-spring/web': patch ---- - -fix(web): remove DOM attributes when their animated value becomes `undefined` - -Previously, attributes such as `inert`, `disabled`, `viewBox`, `className`, and `children` were coerced to the string `"undefined"` or left stale when their animated value resolved to `undefined`. Boolean-style attributes like `inert` must be entirely removed to be disabled — setting them to any value (including `"undefined"`) keeps them active. `applyAnimatedValues` now calls `removeAttribute` (or clears the class/textContent) in this case. diff --git a/.changeset/fix-stale-useSprings-updates.md b/.changeset/fix-stale-useSprings-updates.md deleted file mode 100644 index 51fd96b372..0000000000 --- a/.changeset/fix-stale-useSprings-updates.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@react-spring/core': patch ---- - -fix(core): clear stale updates in useSprings layout effect to prevent re-application on subsequent renders diff --git a/.changeset/gentle-tomatoes-nail.md b/.changeset/gentle-tomatoes-nail.md deleted file mode 100644 index 8ff427635c..0000000000 --- a/.changeset/gentle-tomatoes-nail.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@react-spring/core': patch ---- - -fix: exitBeforeEnter in useTransition doesn't work when used with trail diff --git a/.changeset/loop-trail-phase-sync.md b/.changeset/loop-trail-phase-sync.md deleted file mode 100644 index 7c753a28a2..0000000000 --- a/.changeset/loop-trail-phase-sync.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@react-spring/core': patch ---- - -fix(useTrail): with `loop: true`, deeper springs trap in a mid-range oscillation instead of sweeping the full from→to distance each cycle. The trail chains children via `to: parent.springs`, so every parent change resets the child's animation progress; under looping, the head snap-resets each cycle but children only chase fluidly. An internal `Controller.onLoopReset` subscription now fires synchronously when the head recurses into the next loop iteration, and every non-head child snaps back to `from` in phase. The fluid-chain contract is preserved. Fixes #1063. diff --git a/.changeset/skip-animation-async-script.md b/.changeset/skip-animation-async-script.md deleted file mode 100644 index 8b7633ebb9..0000000000 --- a/.changeset/skip-animation-async-script.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@react-spring/core': patch ---- - -fix(core): run async script `to` to completion under `skipAnimation` so the spring lands at the script's final value rather than being skipped entirely (#1429) diff --git a/.changeset/spring-ref-events-strictmode.md b/.changeset/spring-ref-events-strictmode.md deleted file mode 100644 index a3a88e0f9f..0000000000 --- a/.changeset/spring-ref-events-strictmode.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@react-spring/core': patch ---- - -fix: events not firing when SpringRef attached manually under StrictMode diff --git a/.changeset/strict-mode-stop-no-goal.md b/.changeset/strict-mode-stop-no-goal.md deleted file mode 100644 index 8ad3832b51..0000000000 --- a/.changeset/strict-mode-stop-no-goal.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@react-spring/core': patch ---- - -fix(SpringValue): `stop()` no longer establishes a goal on a spring that never had one. The previous implementation always called `_focus(this.get())` to snap `animation.to` to the current value — useful for freezing a live animation, but wrong for a paused or never-started spring whose underlying value was seeded by `_prepareNode` via `from`. The bug became observable under React.StrictMode, whose simulated unmount fires `useSprings`'s cleanup (`ctrl.stop(true)`) on a freshly-mounted, paused spring, leaving `t.goal` equal to the `from` value instead of `undefined`. diff --git a/.changeset/strict-mode-trail-chaining.md b/.changeset/strict-mode-trail-chaining.md deleted file mode 100644 index 990209f9c5..0000000000 --- a/.changeset/strict-mode-trail-chaining.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@react-spring/core': patch ---- - -fix(useTrail): chaining no longer breaks under React.StrictMode. The `reverse` and `passedRef` accumulators inside the `useSprings` wrapper relied on the wrapper being invoked at least once per render. Under StrictMode's second render pass, `useSprings`'s internal `useMemo` caches and the wrapper is skipped, leaving the accumulators at their initial values and reversing the trail direction. For the object-form props the values are now derived directly from the shared props. Fixes #1991. diff --git a/.changeset/use-resize-border-box.md b/.changeset/use-resize-border-box.md deleted file mode 100644 index 2f2f68ce13..0000000000 --- a/.changeset/use-resize-border-box.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@react-spring/shared': patch ---- - -fix: `useResize` now reports border-box dimensions (includes padding and border) diff --git a/packages/animated/package.json b/packages/animated/package.json index 1bc323deee..6f510a3d29 100644 --- a/packages/animated/package.json +++ b/packages/animated/package.json @@ -1,6 +1,6 @@ { "name": "@react-spring/animated", - "version": "10.0.3", + "version": "10.0.4", "description": "Animated component props for React", "module": "./dist/react-spring_animated.legacy-esm.js", "main": "./dist/cjs/index.js", diff --git a/packages/core/package.json b/packages/core/package.json index 1475d517d7..71844e35c1 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@react-spring/core", - "version": "10.0.3", + "version": "10.0.4", "module": "./dist/react-spring_core.legacy-esm.js", "main": "./dist/cjs/index.js", "types": "./dist/react-spring_core.modern.d.mts", diff --git a/packages/mock-raf/package.json b/packages/mock-raf/package.json index 08d7dc5b60..ed9dde976e 100644 --- a/packages/mock-raf/package.json +++ b/packages/mock-raf/package.json @@ -1,6 +1,6 @@ { "name": "@react-spring/mock-raf", - "version": "1.1.1", + "version": "10.0.4", "private": true, "description": "Vendored copy of mock-raf for react-spring tests", "license": "MIT", diff --git a/packages/parallax/package.json b/packages/parallax/package.json index b39708b014..390dc88386 100644 --- a/packages/parallax/package.json +++ b/packages/parallax/package.json @@ -1,6 +1,6 @@ { "name": "@react-spring/parallax", - "version": "10.0.3", + "version": "10.0.4", "module": "./dist/react-spring_parallax.legacy-esm.js", "main": "./dist/cjs/index.js", "types": "./dist/react-spring_parallax.modern.d.mts", diff --git a/packages/rafz/package.json b/packages/rafz/package.json index 059644b9d7..b350552e4e 100644 --- a/packages/rafz/package.json +++ b/packages/rafz/package.json @@ -1,6 +1,6 @@ { "name": "@react-spring/rafz", - "version": "10.0.3", + "version": "10.0.4", "description": "react-spring's fork of rafz one frameloop to rule them all", "module": "./dist/react-spring_rafz.legacy-esm.js", "main": "./dist/cjs/index.js", diff --git a/packages/shared/package.json b/packages/shared/package.json index 411f36a2fc..1c84dac794 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,6 +1,6 @@ { "name": "@react-spring/shared", - "version": "10.0.3", + "version": "10.0.4", "description": "Globals and shared modules", "module": "./dist/react-spring_shared.legacy-esm.js", "main": "./dist/cjs/index.js", diff --git a/packages/types/package.json b/packages/types/package.json index 584735d955..2199af4546 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@react-spring/types", - "version": "10.0.3", + "version": "10.0.4", "description": "Internal package with TypeScript stuff", "module": "./dist/react-spring_types.legacy-esm.js", "main": "./dist/cjs/index.js", diff --git a/targets/konva/package.json b/targets/konva/package.json index 0cf88e7305..d63cd42005 100644 --- a/targets/konva/package.json +++ b/targets/konva/package.json @@ -1,6 +1,6 @@ { "name": "@react-spring/konva", - "version": "10.0.3", + "version": "10.0.4", "module": "./dist/react-spring_konva.legacy-esm.js", "main": "./dist/cjs/index.js", "types": "./dist/react-spring_konva.modern.d.mts", diff --git a/targets/native/package.json b/targets/native/package.json index b4427e3501..5e47b0fbb0 100644 --- a/targets/native/package.json +++ b/targets/native/package.json @@ -1,6 +1,6 @@ { "name": "@react-spring/native", - "version": "10.0.3", + "version": "10.0.4", "module": "./dist/react-spring_native.legacy-esm.js", "main": "./dist/cjs/index.js", "types": "./dist/react-spring_native.modern.d.mts", diff --git a/targets/three/package.json b/targets/three/package.json index 7d97d89537..8279f9b031 100644 --- a/targets/three/package.json +++ b/targets/three/package.json @@ -1,6 +1,6 @@ { "name": "@react-spring/three", - "version": "10.0.3", + "version": "10.0.4", "module": "./dist/react-spring_three.legacy-esm.js", "main": "./dist/cjs/index.js", "types": "./dist/react-spring_three.modern.d.mts", diff --git a/targets/web/package.json b/targets/web/package.json index dc30e1a012..4f80625667 100644 --- a/targets/web/package.json +++ b/targets/web/package.json @@ -1,6 +1,6 @@ { "name": "@react-spring/web", - "version": "10.0.3", + "version": "10.0.4", "module": "./dist/react-spring_web.legacy-esm.js", "main": "./dist/cjs/index.js", "types": "./dist/react-spring_web.modern.d.mts", diff --git a/targets/zdog/package.json b/targets/zdog/package.json index cbb25d386d..93ebfb6027 100644 --- a/targets/zdog/package.json +++ b/targets/zdog/package.json @@ -1,6 +1,6 @@ { "name": "@react-spring/zdog", - "version": "10.0.3", + "version": "10.0.4", "module": "./dist/react-spring_zdog.legacy-esm.js", "main": "./dist/cjs/index.js", "types": "./dist/react-spring_zdog.modern.d.mts",