What's Changed
- chore: bump default Reanimated in docs by @tjzel in #7873
- chore: bump default Reanimated in docs v2 by @tjzel in #7876
- feat: add pull request label formatter by @skusnierz in #7875
- chore: bump default Reanimated in docs v3 by @tjzel in #7878
- Fix typo in migration guide from 3.x to 4.x by @tomekzaw in #7877
- fix: format PR description and label CI by @skusnierz in #7884
- Update getting-started.mdx with the right installation command for reanimated 4 by @sleez007 in #7885
- docs: Fix issue causing code blocks to appear on a single line by @soaple in #7882
- feat: Support for separate CSS interpolators for different components by @MatiPl01 in #7736
- feat: Custom CSS properties preprocessors for different component types by @MatiPl01 in #7741
- chore: amend monorepo build script by @tjzel in #7869
- chore: Add cpp formatting to the pre-commit hook by @MatiPl01 in #7888
- refactor(Worklets): Rename
Shareable
toSerializable
- part 1 by @skusnierz in #7845 - feat(Worklets): update
Shareable
implementation to usenativeState
instead ofHostObject
by @skusnierz in #7843 - chore: cleanup
docs-reanimated
by @skusnierz in #7780 - chore: bump Reanimated and Worklets in docs by @tjzel in #7868
- Remove native view export by @piaskowyk in #7893
- chore(deps): bump form-data from 3.0.1 to 3.0.4 by @dependabot[bot] in #7838
- feat(Worklets): make AsyncQueue virtual and public by @tjzel in #7886
- feat: Add support for multiple animated props objects by @MatiPl01 in #7890
- Update migration guide steps related to react-native-bottom-sheet by @tomekzaw in #7895
- Update bug report issue template by @tomekzaw in #7899
- feat(Worklets): Update interface of the
createWorkletRuntime
function by @skusnierz in #7894 - Add missing quotes in bug report issue template by @tomekzaw in #7901
- Remove Native View by @piaskowyk in #7898
- fix(Worklets): _$$_IMPORT_ALL identifier clash in some web setups by @tjzel in #7900
- chore: refactor version checking for reanimated and worklets by @skusnierz in #7862
- Swap acknowledgements dropdown options in bug report issue template by @tomekzaw in #7903
- chore(Reanimated): bump version in monorepo by @tjzel in #7907
- chore: Remove deprecated types from library and examples by @MatiPl01 in #7910
- Fix linking error after Gradle clean project on Android by @tomekzaw in #7866
- docs: Add 4.0.0 to compatibility table by @tomekzaw in #7916
- chore: Hide the unfinished CSS SVG support behind the feature flag by @MatiPl01 in #7909
- docs: Update compatibility table by @tomekzaw in #7918
- fix: Invalid workflow name by @MatiPl01 in #7923
- Bump minimal React Native version in assertions by @tomekzaw in #7930
- Update compatibility table for 3.19.0 by @tomekzaw in #7931
- fix: CSS animations not being removed from the stylesheet on web by @MatiPl01 in #7932
- [Web LA] Adjust animation cleanup to slower devices by @m-bert in #7933
- refactor(Worklets): extract RuntimeData file by @tjzel in #7905
- docs: Add missing 4.0.1 to compat table by @MatiPl01 in #7934
- refactor(Worklets): remove supportsLocking parameter from Worklet Runtimes by @tjzel in #7904
- feat: docs for new spring by @tjzel in #7826
- feat: Accept multiple values and CSS props in
animatedProps
by @MatiPl01 in #7749 - chore(Worklets): update compat table post 0.4.1 release by @tjzel in #7937
- chore: bump nightly compat check CI by @tjzel in #7938
- feat(Worklets): allow passing user-implemented AsyncQueue to createWorkletRuntime by @tjzel in #7851
- feat(Worklets): runAsyncGuardedOnUI by @tjzel in #7906
- feat: Add CSS app examples search bar by @MatiPl01 in #7758
- [Web LA] fix: Call callback in scheduleAnimationCleanup if not called already by @mhawryluk in #7940
- feat(Worklets): obtain WorkletRuntime from runtime address by @tjzel in #7911
- feat: Support for SVG circle base props by @MatiPl01 in #7750
- fix: Make sure that tagToJSPropNamesMapping is initialized before being used by @MatiPl01 in #7941
- Replace with ContextContainer::Shared with std::shared_ptr<const Cont… by @christophpurrer in #7926
- chore: Relocate SVG specific files in the CPP implementation by @MatiPl01 in #7943
- Remove ifdefs for pre-0.78 by @tomekzaw in #7945
- feat: Static props support in SVG CSS animations by @MatiPl01 in #7783
- chore: Rename CSSDimension to CSSLength by @MatiPl01 in #7944
- Fix Gradle Configuration Cache by @tomekzaw in #7955
- chore: SVG color and fill CSS animation examples by @MatiPl01 in #7784
- Update release instructions after v4 release by @tomekzaw in #7956
- fix: LA Manager initialized too late on the UI runtime by @MatiPl01 in #7954
- fix(Reanimated): withSpring overshoot clamping coordinates by @tjzel in #7959
- fix: iOS crash caused by the
IOSUIScheduler
by @zhouzh1 in #7953 - Remove unnecessary
makeShareable
call for color names and properties by @tomekzaw in #7957 - Add support for remaining synchronous props on Android by @tomekzaw in #7962
- fix: Small CSS issues introduced in recent PRs by @MatiPl01 in #7972
- Add filter example by @tomekzaw in #7973
- feat: Support for SVG Rect in CSS animations by @MatiPl01 in #7968
- feat: Support for SVG Ellipse in CSS animations by @MatiPl01 in #7961
- Add synchronous props example by @tomekzaw in #7975
- feat: Some SVG stroke properties support by @MatiPl01 in #7976
- feat: Support for SVG Line in CSS animations by @MatiPl01 in #7964
- chore: satisfy clang-tidy CI by @tjzel in #7971
- feat: Support for remaining SVG stroke properties in CSS by @MatiPl01 in #7808
- Add support for percentage values for border radius in fast path on Android by @tomekzaw in #7979
- Update deprecation and return value messages for
isReanimated3
andisConfigured
by @tomekzaw in #7987 - Add "[Reanimated]" prefix in error messages for fast path on Android by @tomekzaw in #7988
- fix: Keyframe LA easing not working properly on web by @MatiPl01 in #7978
- chore: Better CSS examples search bar by @MatiPl01 in #7939
- Update Java compatibility by @piaskowyk in #7977
- docs: Fix 3.19 compatibility table by @MatiPl01 in #7999
- [Web LA] Fix resetting scroll positions in exiting animations by @mhawryluk in #7942
- fix: CSS transition color crashes by @MatiPl01 in #8002
- feat: remove internal deprecated functions by @skusnierz in #8017
- fix:
withSpring
snapshots tests by @skusnierz in #8003 - fix: Make node marking as removable safer by @MatiPl01 in #8014
- fix:
withSequence
runtime tests by @skusnierz in #8012 - Fix ProMotion by @piaskowyk in #8020
- Add FPS example by @tomekzaw in #8019
- Add bottom sheet example by @tomekzaw in #8025
- docs: Replace useScrollViewOffset by useScrollOffset documentation page by @MatiPl01 in #8021
- refactor(Worklets): rename
Shareable
toSerializable
- part 2 by @skusnierz in #7863 - fix: Invalid web LA keyframe processing when from/to offset is used by @MatiPl01 in #8035
- fix: Failing CIs by @MatiPl01 in #8022
- chore(Worklets): add Bundle Mode nightly CI by @tjzel in #8037
- feat: rename
makeShareableCloneRecursive
tocreateSerializable
internally by @skusnierz in #8018 - Update migration docs about
@gorhom/bottom-sheet
by @tomekzaw in #8039 - fix: One more url fix by @MatiPl01 in #8041
- docs: Update compatibility tables in after releases by @MatiPl01 in #8045
- chore: add Bundle Mode CI label to README by @tjzel in #8047
- refactor(Worklets): hide worklet caches by @tjzel in #7965
- feat: rename files which includes
Shareable
toSerializable
by @skusnierz in #8042 - chore(Worklets): generalize scripts for more unpackers by @tjzel in #7966
- fix: Missing serializable runtime tests file crash by @MatiPl01 in #8054
- [Web LA] Correctly handle
Easing.bezier
by @m-bert in #8049 - feat:
Serializable
docs by @skusnierz in #8043 - fix: Improve animated ref value type by @MatiPl01 in #8052
- chore: Clean up obtaining node from wrapper ref by @MatiPl01 in #8062
- feat(Worklets): replace
_WORKLET
withgetRuntimeKind
and__RUNTIME_KIND
by @tjzel in #7641 - docs(Worklets): getRuntimeKind by @tjzel in #8051
- Bump fabric-example to FlashList v2 by @tomekzaw in #8028
- chore: Replace deprecated code by non-deprecated equivalents by @MatiPl01 in #8061
- feat: common compatibility source for docs and CI by @skusnierz in #8004
- feat:
scheduleOnRN
by @skusnierz in #8050 - fix: Web example drawer navigator behavior by @MatiPl01 in #8072
- fix: Incompatible WrapperRef type in RN 0.81 by @MatiPl01 in #8070
- chore: CSS 3D transform matrix improvements by @MatiPl01 in #8066
- feat(Worklets): Synchronizable by @tjzel in #7304
- Bump example apps to React Native 0.81 by @tomekzaw in #7767
- Fix typo in the property name by @RodolfoSilva in #8078
- feat:
scheduleOnRN
docs by @skusnierz in #8058 - perf: avoid calling executeOnUIRuntimeSync if shared value has initial value by @janicduplessis in #8080
- Bump dependencies and remove patches by @tomekzaw in #8081
- fix(Worklets):
scheduleOnRN
tests by @skusnierz in #8085 - feat:
runOnUISync
by @skusnierz in #8075 - Fix missing
ReactAndroid_VERSION_MINOR
CMake variable used beforefind_package
by @tomekzaw in #8089 - chore: update RN version validation by @skusnierz in #8063
- chore(Worklets): BundleMode patches for 0.81 by @tjzel in #8086
- fix: nightly RN version compatibility build by @skusnierz in #8105
- fix: only add flag if REANIMATED_PROFILING is set to true by @WoLewicki in #8103
- Fix "Cannot read property '__nativeTag' of null" by @Phil9l in #8093
- fix(Worklets): file name typo by @skusnierz in #8107
- chore: fix tvos build by @tjzel in #8109
- fix: CSS transition crashes on complex prop animation by @MatiPl01 in #8106
- chore: Rename stokeProps to strokeProps and rename feature flag by @MatiPl01 in #8100
- fix: add
compatibility.json
topackage.json
files section by @skusnierz in #8118 - docs: Feature flags by @tomekzaw in #8091
- docs: change default value in static feature flags sections by @tomekzaw in #8119
- chore: Unify CSS directories naming convention by @MatiPl01 in #8108
- feat: 2D transform matrix by @MatiPl01 in #8082
- chore: Native and web specific CSS code refactor by @MatiPl01 in #8115
- fix: Throw error when CSS is used on unsupported components by @MatiPl01 in #8116
- [ios][worklets] add explicit dependency on React-hermes by @chrfalch in #8120
- feat: get static feature flags in JS by @tjzel in #8096
- chore: Move transform operations to separate files by @MatiPl01 in #8094
- docs: move
EXPERIMENTAL_MUTABLE_OPTIMIZATION
feature flag description by @tomekzaw in #8123 - Add flat list with layout animations example by @tomekzaw in #8029
- fix: web-example building in monorepo by @tjzel in #8121
- chore: Transform operations simplifications by @MatiPl01 in #8098
- Update Podfile.lock by @tomekzaw in #8126
- Fix static feature flags resolution on iOS by @tomekzaw in #8130
- chore: update version compatibility checking between reanimated and worklets by @skusnierz in #8110
- Fix race-condition during component initialization by @piaskowyk in #7742
- feat(Worklets): new docs design by @skusnierz in #8090
- chore: Replace static flag import by helper function by @MatiPl01 in #8137
- docs: how to enable feature flags in react-native by @tomekzaw in #8132
- refactor(Reanimated): use static feature flag for mutable opt by @tjzel in #8084
- Enable experimental release level and
DISABLE_COMMIT_PAUSING_MECHANISM
static feature flag in fabric-example by @tomekzaw in #8138 - Event loop for worklet runtimes by @piaskowyk in #7928
- Missing file formating by @piaskowyk in #8144
- fix: Reduce Motions + animation callbacks by @piaskowyk in #8142
- Fix worklets version checking in runtime by @piaskowyk in #8146
- fix(Worklets): podspec typo by @skusnierz in #8147
- chore: dogfood feature flags in repo by @tjzel in #8097
- chore: add linting docs step to precommit hook by @skusnierz in #8143
- feat(Worklets): update
getting-started
docs page by @skusnierz in #8139 - chore(Worklets): common compatibility source for docs and CI by @skusnierz in #8068
- Deprecate old spring layout animations modifiers by @piaskowyk in #8154
- Event Loop for worklet runtimes - tests by @piaskowyk in #8055
- Event Loop for worklet runtimes - rename test files by @piaskowyk in #8064
- [ReJest] Add notification timeout by @piaskowyk in #8111
- [ReJest] Update deprecated imports by @piaskowyk in #8112
- Use legacy_makeMutableUI in animation manager by @piaskowyk in #8155
- Missing file formatting (another one) by @piaskowyk in #8156
- Improve husky error message by @piaskowyk in #8157
- chore(Worklets): docs improvements by @skusnierz in #8141
- fix: check if
node_modules
is present before rundocs-lint
step by @skusnierz in #8159 - feat(Worklets):
scheduleOnUI
by @skusnierz in #8124 - feat(Reanimated): mutable - reset dirty flag on each read by @tjzel in #8122
- chore(Worklets): temporary API for audio api integration by @tjzel in #8158
- fix: Stop passing unfiltered props to the rendered component by @MatiPl01 in #8162
- chore: prerelease example app fixes by @tjzel in #8164
- fix: Default boxShadow color value by @MatiPl01 in #8163
- chore(Worklets): add missing tvos detection by @tjzel in #8169
- fix(Reanimated): re-registering for every style in ComponentDidUpdate by @tjzel in #8171
- chore: prerelease compat bump by @tjzel in #8172
- chore: post-release Worklets 0.5.0 by @tjzel in #8174
- release(Reanimated): 4.1.0 by @tjzel in #8175
New Contributors
- @sleez007 made their first contribution in #7885
- @soaple made their first contribution in #7882
- @mhawryluk made their first contribution in #7940
- @christophpurrer made their first contribution in #7926
- @zhouzh1 made their first contribution in #7953
- @RodolfoSilva made their first contribution in #8078
- @Phil9l made their first contribution in #8093
Full Changelog: 4.0.0...4.1.0