@rafaelaugusto/jolt 0.1.0-beta.9 → 0.1.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +167 -21
- package/dist/animate.d.ts +25 -4
- package/dist/animate.d.ts.map +1 -1
- package/dist/animate.js +67 -26
- package/dist/animate.js.map +1 -1
- package/dist/blur/index.d.ts +6 -0
- package/dist/blur/index.d.ts.map +1 -0
- package/dist/blur/index.js +196 -0
- package/dist/blur/index.js.map +1 -0
- package/dist/blur/native.d.ts +17 -0
- package/dist/blur/native.d.ts.map +1 -0
- package/dist/blur/native.js +44 -0
- package/dist/blur/native.js.map +1 -0
- package/dist/blur/types.d.ts +32 -0
- package/dist/blur/types.d.ts.map +1 -0
- package/dist/blur/types.js +2 -0
- package/dist/blur/types.js.map +1 -0
- package/dist/bottom-sheet/geometry.d.ts +18 -0
- package/dist/bottom-sheet/geometry.d.ts.map +1 -0
- package/dist/bottom-sheet/geometry.js +51 -0
- package/dist/bottom-sheet/geometry.js.map +1 -0
- package/dist/bottom-sheet/index.d.ts +56 -0
- package/dist/bottom-sheet/index.d.ts.map +1 -0
- package/dist/bottom-sheet/index.js +462 -0
- package/dist/bottom-sheet/index.js.map +1 -0
- package/dist/bottom-sheet/native.d.ts +11 -0
- package/dist/bottom-sheet/native.d.ts.map +1 -0
- package/dist/bottom-sheet/native.js +173 -0
- package/dist/bottom-sheet/native.js.map +1 -0
- package/dist/config.d.ts +9 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +40 -1
- package/dist/config.js.map +1 -1
- package/dist/decay.d.ts +1 -0
- package/dist/decay.d.ts.map +1 -1
- package/dist/decay.js +7 -0
- package/dist/decay.js.map +1 -1
- package/dist/drag-physics.d.ts +6 -1
- package/dist/drag-physics.d.ts.map +1 -1
- package/dist/drag.d.ts +17 -3
- package/dist/drag.d.ts.map +1 -1
- package/dist/drag.js +34 -11
- package/dist/drag.js.map +1 -1
- package/dist/driver/android-gradient.d.ts +5 -0
- package/dist/driver/android-gradient.d.ts.map +1 -0
- package/dist/driver/android-gradient.js +99 -0
- package/dist/driver/android-gradient.js.map +1 -0
- package/dist/driver/android-particles.d.ts +6 -0
- package/dist/driver/android-particles.d.ts.map +1 -0
- package/dist/driver/android-particles.js +93 -0
- package/dist/driver/android-particles.js.map +1 -0
- package/dist/driver/android.d.ts.map +1 -1
- package/dist/driver/android.js +27 -1
- package/dist/driver/android.js.map +1 -1
- package/dist/driver/frame.d.ts +3 -0
- package/dist/driver/frame.d.ts.map +1 -0
- package/dist/driver/frame.js +7 -0
- package/dist/driver/frame.js.map +1 -0
- package/dist/driver/index.d.ts +4 -0
- package/dist/driver/index.d.ts.map +1 -1
- package/dist/driver/index.js.map +1 -1
- package/dist/driver/ios-gradient.d.ts +5 -0
- package/dist/driver/ios-gradient.d.ts.map +1 -0
- package/dist/driver/ios-gradient.js +131 -0
- package/dist/driver/ios-gradient.js.map +1 -0
- package/dist/driver/ios-scroll-delegate.d.ts +4 -0
- package/dist/driver/ios-scroll-delegate.d.ts.map +1 -0
- package/dist/driver/ios-scroll-delegate.js +26 -0
- package/dist/driver/ios-scroll-delegate.js.map +1 -0
- package/dist/driver/ios.d.ts.map +1 -1
- package/dist/driver/ios.js +9 -0
- package/dist/driver/ios.js.map +1 -1
- package/dist/easing.d.ts +3 -1
- package/dist/easing.d.ts.map +1 -1
- package/dist/easing.js +18 -1
- package/dist/easing.js.map +1 -1
- package/dist/engine.d.ts +31 -2
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +194 -42
- package/dist/engine.js.map +1 -1
- package/dist/gesture-native.d.ts +28 -0
- package/dist/gesture-native.d.ts.map +1 -0
- package/dist/gesture-native.js +61 -0
- package/dist/gesture-native.js.map +1 -0
- package/dist/gestures/index.d.ts +69 -0
- package/dist/gestures/index.d.ts.map +1 -0
- package/dist/gestures/index.js +262 -0
- package/dist/gestures/index.js.map +1 -0
- package/dist/glass/index.d.ts +55 -0
- package/dist/glass/index.d.ts.map +1 -0
- package/dist/glass/index.js +205 -0
- package/dist/glass/index.js.map +1 -0
- package/dist/gradient-binding.d.ts +38 -0
- package/dist/gradient-binding.d.ts.map +1 -0
- package/dist/gradient-binding.js +128 -0
- package/dist/gradient-binding.js.map +1 -0
- package/dist/gradient.d.ts +105 -0
- package/dist/gradient.d.ts.map +1 -0
- package/dist/gradient.js +514 -0
- package/dist/gradient.js.map +1 -0
- package/dist/gravity.d.ts +13 -0
- package/dist/gravity.d.ts.map +1 -0
- package/dist/gravity.js +84 -0
- package/dist/gravity.js.map +1 -0
- package/dist/haptics.d.ts.map +1 -1
- package/dist/haptics.js +101 -28
- package/dist/haptics.js.map +1 -1
- package/dist/image-effect.d.ts +1 -0
- package/dist/image-effect.d.ts.map +1 -1
- package/dist/image-effect.js +10 -2
- package/dist/image-effect.js.map +1 -1
- package/dist/index.d.ts +19 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -4
- package/dist/index.js.map +1 -1
- package/dist/inspector/index.d.ts +86 -0
- package/dist/inspector/index.d.ts.map +1 -0
- package/dist/inspector/index.js +419 -0
- package/dist/inspector/index.js.map +1 -0
- package/dist/inspector/plot.d.ts +4 -0
- package/dist/inspector/plot.d.ts.map +1 -0
- package/dist/inspector/plot.js +23 -0
- package/dist/inspector/plot.js.map +1 -0
- package/dist/inspector/probe.d.ts +19 -0
- package/dist/inspector/probe.d.ts.map +1 -0
- package/dist/inspector/probe.js +37 -0
- package/dist/inspector/probe.js.map +1 -0
- package/dist/inspector/tuning.d.ts +19 -0
- package/dist/inspector/tuning.d.ts.map +1 -0
- package/dist/inspector/tuning.js +37 -0
- package/dist/inspector/tuning.js.map +1 -0
- package/dist/interactive-navigation/index.d.ts +44 -0
- package/dist/interactive-navigation/index.d.ts.map +1 -0
- package/dist/interactive-navigation/index.js +350 -0
- package/dist/interactive-navigation/index.js.map +1 -0
- package/dist/keyboard.d.ts +24 -0
- package/dist/keyboard.d.ts.map +1 -1
- package/dist/keyboard.js +199 -6
- package/dist/keyboard.js.map +1 -1
- package/dist/live-spring-driver.d.ts +52 -0
- package/dist/live-spring-driver.d.ts.map +1 -0
- package/dist/live-spring-driver.js +104 -0
- package/dist/live-spring-driver.js.map +1 -0
- package/dist/mixer.d.ts +55 -0
- package/dist/mixer.d.ts.map +1 -0
- package/dist/mixer.js +286 -0
- package/dist/mixer.js.map +1 -0
- package/dist/motion-scope.d.ts +8 -2
- package/dist/motion-scope.d.ts.map +1 -1
- package/dist/motion-scope.js +24 -3
- package/dist/motion-scope.js.map +1 -1
- package/dist/motion-states.d.ts +19 -7
- package/dist/motion-states.d.ts.map +1 -1
- package/dist/motion-states.js +116 -26
- package/dist/motion-states.js.map +1 -1
- package/dist/motion-value.d.ts +227 -0
- package/dist/motion-value.d.ts.map +1 -0
- package/dist/motion-value.js +1074 -0
- package/dist/motion-value.js.map +1 -0
- package/dist/native/index.d.ts +10 -0
- package/dist/native/index.d.ts.map +1 -0
- package/dist/native/index.js +6 -0
- package/dist/native/index.js.map +1 -0
- package/dist/native-properties.d.ts +28 -0
- package/dist/native-properties.d.ts.map +1 -0
- package/dist/native-properties.js +154 -0
- package/dist/native-properties.js.map +1 -0
- package/dist/native-property-driver.d.ts +19 -0
- package/dist/native-property-driver.d.ts.map +1 -0
- package/dist/native-property-driver.js +69 -0
- package/dist/native-property-driver.js.map +1 -0
- package/dist/native-property.d.ts +37 -0
- package/dist/native-property.d.ts.map +1 -0
- package/dist/native-property.js +285 -0
- package/dist/native-property.js.map +1 -0
- package/dist/particles.d.ts +5 -2
- package/dist/particles.d.ts.map +1 -1
- package/dist/particles.js +16 -10
- package/dist/particles.js.map +1 -1
- package/dist/path.d.ts.map +1 -1
- package/dist/path.js +2 -2
- package/dist/path.js.map +1 -1
- package/dist/physics/index.d.ts +139 -0
- package/dist/physics/index.d.ts.map +1 -0
- package/dist/physics/index.js +316 -0
- package/dist/physics/index.js.map +1 -0
- package/dist/physics/native.d.ts +54 -0
- package/dist/physics/native.d.ts.map +1 -0
- package/dist/physics/native.js +64 -0
- package/dist/physics/native.js.map +1 -0
- package/dist/playback-group.d.ts.map +1 -1
- package/dist/playback-group.js +17 -1
- package/dist/playback-group.js.map +1 -1
- package/dist/playback.d.ts +15 -0
- package/dist/playback.d.ts.map +1 -1
- package/dist/playback.js +23 -0
- package/dist/playback.js.map +1 -1
- package/dist/predictive-back/index.d.ts +45 -0
- package/dist/predictive-back/index.d.ts.map +1 -0
- package/dist/predictive-back/index.js +220 -0
- package/dist/predictive-back/index.js.map +1 -0
- package/dist/predictive-back/presentation.d.ts +4 -0
- package/dist/predictive-back/presentation.d.ts.map +1 -0
- package/dist/predictive-back/presentation.js +3 -0
- package/dist/predictive-back/presentation.js.map +1 -0
- package/dist/press.d.ts.map +1 -1
- package/dist/press.js +11 -2
- package/dist/press.js.map +1 -1
- package/dist/reorder/handle.d.ts +6 -0
- package/dist/reorder/handle.d.ts.map +1 -0
- package/dist/reorder/handle.js +10 -0
- package/dist/reorder/handle.js.map +1 -0
- package/dist/reorder/index.d.ts +10 -0
- package/dist/reorder/index.d.ts.map +1 -0
- package/dist/reorder/index.js +233 -0
- package/dist/reorder/index.js.map +1 -0
- package/dist/reorder/list-view.d.ts +5 -0
- package/dist/reorder/list-view.d.ts.map +1 -0
- package/dist/reorder/list-view.js +238 -0
- package/dist/reorder/list-view.js.map +1 -0
- package/dist/reorder/model.d.ts +6 -0
- package/dist/reorder/model.d.ts.map +1 -0
- package/dist/reorder/model.js +30 -0
- package/dist/reorder/model.js.map +1 -0
- package/dist/reorder/surface.d.ts +6 -0
- package/dist/reorder/surface.d.ts.map +1 -0
- package/dist/reorder/surface.js +10 -0
- package/dist/reorder/surface.js.map +1 -0
- package/dist/reorder/types.d.ts +92 -0
- package/dist/reorder/types.d.ts.map +1 -0
- package/dist/reorder/types.js +2 -0
- package/dist/reorder/types.js.map +1 -0
- package/dist/sampling.d.ts +35 -0
- package/dist/sampling.d.ts.map +1 -0
- package/dist/sampling.js +123 -0
- package/dist/sampling.js.map +1 -0
- package/dist/scene-appearance.d.ts +14 -0
- package/dist/scene-appearance.d.ts.map +1 -0
- package/dist/scene-appearance.js +68 -0
- package/dist/scene-appearance.js.map +1 -0
- package/dist/scene-camera.d.ts +5 -0
- package/dist/scene-camera.d.ts.map +1 -0
- package/dist/scene-camera.js +23 -0
- package/dist/scene-camera.js.map +1 -0
- package/dist/scene-shader.d.ts +18 -0
- package/dist/scene-shader.d.ts.map +1 -0
- package/dist/scene-shader.js +76 -0
- package/dist/scene-shader.js.map +1 -0
- package/dist/scroll-header/geometry.d.ts +18 -0
- package/dist/scroll-header/geometry.d.ts.map +1 -0
- package/dist/scroll-header/geometry.js +46 -0
- package/dist/scroll-header/geometry.js.map +1 -0
- package/dist/scroll-header/index.d.ts +48 -0
- package/dist/scroll-header/index.d.ts.map +1 -0
- package/dist/scroll-header/index.js +399 -0
- package/dist/scroll-header/index.js.map +1 -0
- package/dist/scroll-header/native.d.ts +28 -0
- package/dist/scroll-header/native.d.ts.map +1 -0
- package/dist/scroll-header/native.js +43 -0
- package/dist/scroll-header/native.js.map +1 -0
- package/dist/sensors/index.d.ts +69 -0
- package/dist/sensors/index.d.ts.map +1 -0
- package/dist/sensors/index.js +149 -0
- package/dist/sensors/index.js.map +1 -0
- package/dist/sensors/native.d.ts +20 -0
- package/dist/sensors/native.d.ts.map +1 -0
- package/dist/sensors/native.js +48 -0
- package/dist/sensors/native.js.map +1 -0
- package/dist/sequence.d.ts +24 -0
- package/dist/sequence.d.ts.map +1 -1
- package/dist/sequence.js +181 -19
- package/dist/sequence.js.map +1 -1
- package/dist/shapes/android.d.ts +3 -0
- package/dist/shapes/android.d.ts.map +1 -0
- package/dist/shapes/android.js +51 -0
- package/dist/shapes/android.js.map +1 -0
- package/dist/shapes/index.d.ts +6 -0
- package/dist/shapes/index.d.ts.map +1 -0
- package/dist/shapes/index.js +238 -0
- package/dist/shapes/index.js.map +1 -0
- package/dist/shapes/ios.d.ts +3 -0
- package/dist/shapes/ios.d.ts.map +1 -0
- package/dist/shapes/ios.js +164 -0
- package/dist/shapes/ios.js.map +1 -0
- package/dist/shapes/native.d.ts +18 -0
- package/dist/shapes/native.d.ts.map +1 -0
- package/dist/shapes/native.js +10 -0
- package/dist/shapes/native.js.map +1 -0
- package/dist/shapes/path.d.ts +10 -0
- package/dist/shapes/path.d.ts.map +1 -0
- package/dist/shapes/path.js +106 -0
- package/dist/shapes/path.js.map +1 -0
- package/dist/shapes/types.d.ts +55 -0
- package/dist/shapes/types.d.ts.map +1 -0
- package/dist/shapes/types.js +11 -0
- package/dist/shapes/types.js.map +1 -0
- package/dist/shared-layout/index.d.ts +40 -0
- package/dist/shared-layout/index.d.ts.map +1 -0
- package/dist/shared-layout/index.js +267 -0
- package/dist/shared-layout/index.js.map +1 -0
- package/dist/shared-layout/native.d.ts +15 -0
- package/dist/shared-layout/native.d.ts.map +1 -0
- package/dist/shared-layout/native.js +79 -0
- package/dist/shared-layout/native.js.map +1 -0
- package/dist/shared-layout/timing.d.ts +9 -0
- package/dist/shared-layout/timing.d.ts.map +1 -0
- package/dist/shared-layout/timing.js +68 -0
- package/dist/shared-layout/timing.js.map +1 -0
- package/dist/shared-navigation/entry.d.ts +51 -0
- package/dist/shared-navigation/entry.d.ts.map +1 -0
- package/dist/shared-navigation/entry.js +619 -0
- package/dist/shared-navigation/entry.js.map +1 -0
- package/dist/shared-navigation/index.d.ts +58 -0
- package/dist/shared-navigation/index.d.ts.map +1 -0
- package/dist/shared-navigation/index.js +318 -0
- package/dist/shared-navigation/index.js.map +1 -0
- package/dist/shared-navigation/return-signal.d.ts +16 -0
- package/dist/shared-navigation/return-signal.d.ts.map +1 -0
- package/dist/shared-navigation/return-signal.js +35 -0
- package/dist/shared-navigation/return-signal.js.map +1 -0
- package/dist/shared-navigation/return-target.d.ts +32 -0
- package/dist/shared-navigation/return-target.d.ts.map +1 -0
- package/dist/shared-navigation/return-target.js +168 -0
- package/dist/shared-navigation/return-target.js.map +1 -0
- package/dist/shared-navigation/scope.d.ts +4 -0
- package/dist/shared-navigation/scope.d.ts.map +1 -0
- package/dist/shared-navigation/scope.js +2 -0
- package/dist/shared-navigation/scope.js.map +1 -0
- package/dist/shared-navigation/targets.d.ts +6 -0
- package/dist/shared-navigation/targets.d.ts.map +1 -0
- package/dist/shared-navigation/targets.js +36 -0
- package/dist/shared-navigation/targets.js.map +1 -0
- package/dist/size-layout.d.ts +19 -0
- package/dist/size-layout.d.ts.map +1 -0
- package/dist/size-layout.js +216 -0
- package/dist/size-layout.js.map +1 -0
- package/dist/size.d.ts +19 -0
- package/dist/size.d.ts.map +1 -0
- package/dist/size.js +251 -0
- package/dist/size.js.map +1 -0
- package/dist/spring.d.ts +2 -0
- package/dist/spring.d.ts.map +1 -1
- package/dist/spring.js +11 -0
- package/dist/spring.js.map +1 -1
- package/dist/svg-path.d.ts +18 -0
- package/dist/svg-path.d.ts.map +1 -1
- package/dist/svg-path.js +3 -2
- package/dist/svg-path.js.map +1 -1
- package/dist/testing/clock.d.ts +40 -0
- package/dist/testing/clock.d.ts.map +1 -0
- package/dist/testing/clock.js +116 -0
- package/dist/testing/clock.js.map +1 -0
- package/dist/testing/handoff-recorder.d.ts +8 -0
- package/dist/testing/handoff-recorder.d.ts.map +1 -0
- package/dist/testing/handoff-recorder.js +77 -0
- package/dist/testing/handoff-recorder.js.map +1 -0
- package/dist/testing/index.d.ts +5 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +5 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/native.d.ts +46 -0
- package/dist/testing/native.d.ts.map +1 -0
- package/dist/testing/native.js +313 -0
- package/dist/testing/native.js.map +1 -0
- package/dist/testing/presentation.d.ts +11 -0
- package/dist/testing/presentation.d.ts.map +1 -0
- package/dist/testing/presentation.js +45 -0
- package/dist/testing/presentation.js.map +1 -0
- package/dist/testing/replay.d.ts +39 -0
- package/dist/testing/replay.d.ts.map +1 -0
- package/dist/testing/replay.js +99 -0
- package/dist/testing/replay.js.map +1 -0
- package/dist/testing/scroll-handoff-native.d.ts +10 -0
- package/dist/testing/scroll-handoff-native.d.ts.map +1 -0
- package/dist/testing/scroll-handoff-native.js +151 -0
- package/dist/testing/scroll-handoff-native.js.map +1 -0
- package/dist/testing/scroll-handoff.d.ts +25 -0
- package/dist/testing/scroll-handoff.d.ts.map +1 -0
- package/dist/testing/scroll-handoff.js +127 -0
- package/dist/testing/scroll-handoff.js.map +1 -0
- package/dist/testing/sensors.d.ts +13 -0
- package/dist/testing/sensors.d.ts.map +1 -0
- package/dist/testing/sensors.js +26 -0
- package/dist/testing/sensors.js.map +1 -0
- package/dist/testing/trace.d.ts +101 -0
- package/dist/testing/trace.d.ts.map +1 -0
- package/dist/testing/trace.js +263 -0
- package/dist/testing/trace.js.map +1 -0
- package/dist/timed-animation.d.ts +38 -0
- package/dist/timed-animation.d.ts.map +1 -0
- package/dist/timed-animation.js +177 -0
- package/dist/timed-animation.js.map +1 -0
- package/dist/track.d.ts +3 -0
- package/dist/track.d.ts.map +1 -1
- package/dist/track.js +281 -40
- package/dist/track.js.map +1 -1
- package/dist/transition.d.ts +54 -2
- package/dist/transition.d.ts.map +1 -1
- package/dist/transition.js +128 -8
- package/dist/transition.js.map +1 -1
- package/dist/types.d.ts +10 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/value-observers.d.ts +22 -0
- package/dist/value-observers.d.ts.map +1 -0
- package/dist/value-observers.js +122 -0
- package/dist/value-observers.js.map +1 -0
- package/dist/value-track.d.ts +13 -0
- package/dist/value-track.d.ts.map +1 -0
- package/dist/value-track.js +59 -0
- package/dist/value-track.js.map +1 -0
- package/dist/vue/index.d.ts +33 -3
- package/dist/vue/index.d.ts.map +1 -1
- package/dist/vue/index.js +118 -3
- package/dist/vue/index.js.map +1 -1
- package/dist/zoomable.d.ts +1 -1
- package/dist/zoomable.d.ts.map +1 -1
- package/package.json +68 -3
- package/platforms/android/include.gradle +10 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/BlurEffect.java +89 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/CircleMath.java +158 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/CircleWorld.java +221 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/GestureSession.java +227 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/GestureSurface.java +54 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/GradientLayer.java +224 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/KeyboardFrame.java +53 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/KeyboardFrameFollower.java +57 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/KeyboardObserver.java +97 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/LiveSpring.java +277 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/MotionProbe.java +70 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/ParticleEmitter.java +192 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/ParticleSimulation.java +114 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/PredictiveBackSession.java +212 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/ReorderHandle.java +25 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/ReorderSession.java +213 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/ReorderSurface.java +27 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/ScrollHeader.java +84 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/SensorMath.java +28 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/SensorSource.java +217 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/ShapeLayer.java +120 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/SharedLayoutFlight.java +287 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/SharedNavigationScene.java +115 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/SpringState.java +39 -0
- package/platforms/android/proguard-rules.pro +20 -0
- package/platforms/ios/build.xcconfig +1 -1
- package/platforms/ios/src/JoltBlur.h +14 -0
- package/platforms/ios/src/JoltBlur.m +86 -0
- package/platforms/ios/src/JoltCircleMath.h +191 -0
- package/platforms/ios/src/JoltCircleWorld.h +18 -0
- package/platforms/ios/src/JoltCircleWorld.m +218 -0
- package/platforms/ios/src/JoltGestureSession.h +23 -0
- package/platforms/ios/src/JoltGestureSession.m +251 -0
- package/platforms/ios/src/JoltInteractiveNavigation.h +23 -0
- package/platforms/ios/src/JoltInteractiveNavigation.m +255 -0
- package/platforms/ios/src/JoltLiveSpring.h +29 -0
- package/platforms/ios/src/JoltLiveSpring.m +243 -0
- package/platforms/ios/src/JoltMotionProbe.h +9 -0
- package/platforms/ios/src/JoltMotionProbe.m +72 -0
- package/platforms/ios/src/JoltReorderSession.h +15 -0
- package/platforms/ios/src/JoltReorderSession.m +205 -0
- package/platforms/ios/src/JoltScrollHeader.h +13 -0
- package/platforms/ios/src/JoltScrollHeader.m +101 -0
- package/platforms/ios/src/JoltSensorMath.h +39 -0
- package/platforms/ios/src/JoltSensorSource.h +13 -0
- package/platforms/ios/src/JoltSensorSource.m +201 -0
- package/platforms/ios/src/JoltSharedLayoutFlight.h +19 -0
- package/platforms/ios/src/JoltSharedLayoutFlight.m +250 -0
- package/platforms/ios/src/JoltSpringState.h +35 -0
- package/platforms/ios/src/module.modulemap +10 -0
- package/src/android-plugin.d.ts +464 -0
- package/src/animate.ts +129 -15
- package/src/blur/index.ts +195 -0
- package/src/blur/native.ts +70 -0
- package/src/blur/types.ts +32 -0
- package/src/bottom-sheet/geometry.ts +84 -0
- package/src/bottom-sheet/index.ts +536 -0
- package/src/bottom-sheet/native.ts +214 -0
- package/src/config.ts +39 -1
- package/src/decay.ts +9 -0
- package/src/drag.ts +67 -21
- package/src/driver/android-gradient.ts +116 -0
- package/src/driver/android-particles.ts +118 -0
- package/src/driver/android.ts +31 -1
- package/src/driver/frame.ts +10 -0
- package/src/driver/index.ts +4 -0
- package/src/driver/ios-gradient.ts +136 -0
- package/src/driver/ios-scroll-delegate.ts +23 -0
- package/src/driver/ios.ts +10 -0
- package/src/easing.ts +21 -1
- package/src/engine.ts +209 -60
- package/src/gesture-native.ts +139 -0
- package/src/gestures/index.ts +365 -0
- package/src/glass/index.ts +218 -0
- package/src/gradient-binding.ts +158 -0
- package/src/gradient.ts +663 -0
- package/src/gravity.ts +107 -0
- package/src/haptics.ts +106 -28
- package/src/image-effect.ts +10 -2
- package/src/index.ts +56 -7
- package/src/inspector/index.ts +523 -0
- package/src/inspector/plot.ts +27 -0
- package/src/inspector/probe.ts +50 -0
- package/src/inspector/tuning.ts +51 -0
- package/src/interactive-navigation/index.ts +427 -0
- package/src/ios-plugin.d.ts +280 -0
- package/src/keyboard.ts +231 -7
- package/src/live-spring-driver.ts +181 -0
- package/src/mixer.ts +312 -0
- package/src/motion-scope.ts +39 -6
- package/src/motion-states.ts +149 -42
- package/src/motion-value.ts +1289 -0
- package/src/native/index.ts +30 -0
- package/src/native-properties.ts +188 -0
- package/src/native-property-driver.ts +123 -0
- package/src/native-property.ts +366 -0
- package/src/particles.ts +18 -17
- package/src/path.ts +2 -1
- package/src/physics/index.ts +476 -0
- package/src/physics/native.ts +121 -0
- package/src/playback-group.ts +17 -1
- package/src/playback.ts +41 -0
- package/src/predictive-back/index.ts +280 -0
- package/src/predictive-back/presentation.ts +6 -0
- package/src/press.ts +10 -2
- package/src/reorder/handle.ts +9 -0
- package/src/reorder/index.ts +243 -0
- package/src/reorder/list-view.ts +262 -0
- package/src/reorder/model.ts +47 -0
- package/src/reorder/surface.ts +10 -0
- package/src/reorder/types.ts +87 -0
- package/src/sampling.ts +173 -0
- package/src/scene-appearance.ts +92 -0
- package/src/scene-camera.ts +30 -0
- package/src/scene-shader.ts +139 -0
- package/src/scroll-header/geometry.ts +88 -0
- package/src/scroll-header/index.ts +530 -0
- package/src/scroll-header/native.ts +89 -0
- package/src/sensors/index.ts +246 -0
- package/src/sensors/native.ts +72 -0
- package/src/sequence.ts +209 -20
- package/src/shapes/android.ts +63 -0
- package/src/shapes/index.ts +267 -0
- package/src/shapes/ios.ts +194 -0
- package/src/shapes/native.ts +27 -0
- package/src/shapes/path.ts +127 -0
- package/src/shapes/types.ts +63 -0
- package/src/shared-layout/index.ts +343 -0
- package/src/shared-layout/native.ts +138 -0
- package/src/shared-layout/timing.ts +87 -0
- package/src/shared-navigation/entry.ts +695 -0
- package/src/shared-navigation/index.ts +414 -0
- package/src/shared-navigation/return-signal.ts +41 -0
- package/src/shared-navigation/return-target.ts +197 -0
- package/src/shared-navigation/scope.ts +3 -0
- package/src/shared-navigation/targets.ts +38 -0
- package/src/size-layout.ts +237 -0
- package/src/size.ts +302 -0
- package/src/spring.ts +18 -0
- package/src/svg-path.ts +8 -3
- package/src/testing/clock.ts +128 -0
- package/src/testing/handoff-recorder.ts +98 -0
- package/src/testing/index.ts +4 -0
- package/src/testing/native.ts +386 -0
- package/src/testing/presentation.ts +46 -0
- package/src/testing/replay.ts +149 -0
- package/src/testing/scroll-handoff-native.ts +201 -0
- package/src/testing/scroll-handoff.ts +140 -0
- package/src/testing/sensors.ts +41 -0
- package/src/testing/trace.ts +340 -0
- package/src/timed-animation.ts +192 -0
- package/src/track.ts +334 -38
- package/src/transition.ts +197 -9
- package/src/types.ts +11 -1
- package/src/value-observers.ts +147 -0
- package/src/value-track.ts +71 -0
- package/src/vue/index.ts +147 -1
- package/src/zoomable.ts +1 -1
package/dist/vue/index.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import { BaseTransition, defineComponent, h, onUnmounted, onActivated, onDeactivated, } from 'nativescript-vue';
|
|
2
|
-
import { press, motionScope, } from '../index.js';
|
|
1
|
+
import { BaseTransition, defineComponent, h, onUnmounted, onActivated, onDeactivated, readonly, shallowRef, } from 'nativescript-vue';
|
|
2
|
+
import { gradient, press, motionScope, bind, motionValue, scrollValue, onKeyboard, onReducedMotion, stop, reducedMotion, } from '../index.js';
|
|
3
|
+
import { isDerived } from '../motion-value.js';
|
|
4
|
+
import { prepareGradient } from '../gradient.js';
|
|
5
|
+
import { currentKeyboard } from '../keyboard.js';
|
|
3
6
|
const animations = new WeakMap();
|
|
4
7
|
const scopes = new WeakMap();
|
|
5
8
|
const removers = new WeakMap();
|
|
9
|
+
const gradients = new WeakMap();
|
|
6
10
|
function split(value) {
|
|
7
11
|
return Array.isArray(value)
|
|
8
12
|
? [value[0], value[1]]
|
|
@@ -11,6 +15,8 @@ function split(value) {
|
|
|
11
15
|
function same(a, b) {
|
|
12
16
|
if (Object.is(a, b))
|
|
13
17
|
return true;
|
|
18
|
+
if (isDerived(a) || isDerived(b))
|
|
19
|
+
return false;
|
|
14
20
|
if (typeof a !== 'object' || typeof b !== 'object' || a === null || b === null)
|
|
15
21
|
return false;
|
|
16
22
|
if (Array.isArray(a) !== Array.isArray(b))
|
|
@@ -78,6 +84,63 @@ export const vPress = {
|
|
|
78
84
|
removers.delete(el);
|
|
79
85
|
},
|
|
80
86
|
};
|
|
87
|
+
function paint(el, value, animated) {
|
|
88
|
+
const [options, transition] = (Array.isArray(value) ? value : [value]);
|
|
89
|
+
const current = gradients.get(el);
|
|
90
|
+
prepareGradient(options);
|
|
91
|
+
const colors = options.colors.length;
|
|
92
|
+
const hasBindings = [
|
|
93
|
+
options.angle,
|
|
94
|
+
options.radius,
|
|
95
|
+
options.center?.x,
|
|
96
|
+
options.center?.y,
|
|
97
|
+
...options.colors,
|
|
98
|
+
...(options.stops ?? []),
|
|
99
|
+
].some(isDerived);
|
|
100
|
+
if (current && current.gradient.type === options.type) {
|
|
101
|
+
const { type, ...values } = options;
|
|
102
|
+
const previous = current.release;
|
|
103
|
+
if (hasBindings)
|
|
104
|
+
current.release = current.gradient.bind(values);
|
|
105
|
+
else {
|
|
106
|
+
if (animated && current.colors === colors)
|
|
107
|
+
current.gradient.animate(values, transition);
|
|
108
|
+
else
|
|
109
|
+
current.gradient.set(values);
|
|
110
|
+
current.release = undefined;
|
|
111
|
+
}
|
|
112
|
+
previous?.();
|
|
113
|
+
current.colors = colors;
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
current?.gradient.remove();
|
|
117
|
+
// Track directive ownership explicitly, including bindings omitted on a later update.
|
|
118
|
+
const made = gradient(el, options);
|
|
119
|
+
const release = hasBindings ? made.bind(options) : undefined;
|
|
120
|
+
gradients.set(el, { gradient: made, colors, release });
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Paints a native gradient behind the element, and animates to the new values when they change.
|
|
124
|
+
* A change of type, or of the number of colors, applies at once.
|
|
125
|
+
*
|
|
126
|
+
* ```vue
|
|
127
|
+
* <GridLayout v-gradient="{ type: 'linear', colors: ['#18181B', '#3F3F46'], angle: 135 }" />
|
|
128
|
+
* <GridLayout v-gradient="[{ type: 'linear', colors: active ? hot : cold }, 'snappy']" />
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
131
|
+
export const vGradient = {
|
|
132
|
+
mounted(el, { value }) {
|
|
133
|
+
paint(el, value, false);
|
|
134
|
+
},
|
|
135
|
+
updated(el, { value, oldValue }) {
|
|
136
|
+
if (!same(value, oldValue))
|
|
137
|
+
paint(el, value, true);
|
|
138
|
+
},
|
|
139
|
+
unmounted(el) {
|
|
140
|
+
gradients.get(el)?.gradient.remove();
|
|
141
|
+
gradients.delete(el);
|
|
142
|
+
},
|
|
143
|
+
};
|
|
81
144
|
/** The hooks `JoltTransition` hands to Vue's `BaseTransition`. */
|
|
82
145
|
export function transitionHooks(props) {
|
|
83
146
|
const run = (value) => (el, done) => {
|
|
@@ -129,10 +192,11 @@ export const JoltTransition = defineComponent({
|
|
|
129
192
|
return () => h(BaseTransition, { ...transitionHooks(props), mode: props.mode, appear: props.appear }, slots);
|
|
130
193
|
},
|
|
131
194
|
});
|
|
132
|
-
/** Registers `v-animate`, `v-press` and `JoltTransition` on the app. */
|
|
195
|
+
/** Registers `v-animate`, `v-press`, `v-gradient` and `JoltTransition` on the app. */
|
|
133
196
|
export function install(app) {
|
|
134
197
|
app.directive('animate', vAnimate);
|
|
135
198
|
app.directive('press', vPress);
|
|
199
|
+
app.directive('gradient', vGradient);
|
|
136
200
|
app.component('JoltTransition', JoltTransition);
|
|
137
201
|
}
|
|
138
202
|
export default { install };
|
|
@@ -144,4 +208,55 @@ export function useMotionScope() {
|
|
|
144
208
|
onActivated(() => scope.resume());
|
|
145
209
|
return scope;
|
|
146
210
|
}
|
|
211
|
+
/** Call in setup(): whether motion is reduced, kept up to date until the component unmounts. */
|
|
212
|
+
export function useReducedMotion() {
|
|
213
|
+
const reduced = shallowRef(reducedMotion());
|
|
214
|
+
const off = onReducedMotion((value) => (reduced.value = value));
|
|
215
|
+
onUnmounted(off);
|
|
216
|
+
return readonly(reduced);
|
|
217
|
+
}
|
|
218
|
+
/** Call in setup(): the keyboard's state, kept up to date until the component unmounts. */
|
|
219
|
+
export function useKeyboard() {
|
|
220
|
+
const keyboard = shallowRef(currentKeyboard());
|
|
221
|
+
const off = onKeyboard((next) => (keyboard.value = next));
|
|
222
|
+
keyboard.value = currentKeyboard();
|
|
223
|
+
onUnmounted(off);
|
|
224
|
+
return readonly(keyboard);
|
|
225
|
+
}
|
|
226
|
+
/** Call in setup(): a motion value that stops when the component unmounts. */
|
|
227
|
+
export function useMotionValue(initial = 0) {
|
|
228
|
+
const value = motionValue(initial);
|
|
229
|
+
onUnmounted(() => stop(value));
|
|
230
|
+
return value;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Call in setup(): a template ref that binds motion values to the element on mount
|
|
234
|
+
* and releases them on unmount. A recreated element picks the values up again.
|
|
235
|
+
*/
|
|
236
|
+
export function useBinding(bindings) {
|
|
237
|
+
let element = null;
|
|
238
|
+
let release;
|
|
239
|
+
onUnmounted(() => {
|
|
240
|
+
release?.();
|
|
241
|
+
release = undefined;
|
|
242
|
+
});
|
|
243
|
+
return (next) => {
|
|
244
|
+
if (next === element)
|
|
245
|
+
return;
|
|
246
|
+
release?.();
|
|
247
|
+
release = undefined;
|
|
248
|
+
element = next;
|
|
249
|
+
if (next)
|
|
250
|
+
release = bind(next, bindings);
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Call in setup(): a scroll offset as a value. Pass its `ref` to the ScrollView's
|
|
255
|
+
* template ref; it stops following when the component unmounts.
|
|
256
|
+
*/
|
|
257
|
+
export function useScrollValue(options) {
|
|
258
|
+
const value = scrollValue(null, options);
|
|
259
|
+
onUnmounted(() => value.dispose());
|
|
260
|
+
return value;
|
|
261
|
+
}
|
|
147
262
|
//# sourceMappingURL=index.js.map
|
package/dist/vue/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vue/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,eAAe,EACf,CAAC,EACD,WAAW,EACX,WAAW,EACX,aAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vue/index.ts"],"names":[],"mappings":"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"}
|
package/dist/zoomable.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export interface PhotoDismissal {
|
|
|
7
7
|
readonly velocity: number;
|
|
8
8
|
/** Return to the viewer. False means this intent is obsolete. */
|
|
9
9
|
cancel(): boolean;
|
|
10
|
-
/** Release the
|
|
10
|
+
/** Release explicitly when the image outlives its route. Unloading also disposes it. */
|
|
11
11
|
complete(): boolean;
|
|
12
12
|
}
|
|
13
13
|
export interface ZoomableOptions {
|
package/dist/zoomable.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zoomable.d.ts","sourceRoot":"","sources":["../src/zoomable.ts"],"names":[],"mappings":"AAIA,OAAO,EAAqC,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACvF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAA;AAC9C,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,iEAAiE;IACjE,MAAM,IAAI,OAAO,CAAA;IACjB,
|
|
1
|
+
{"version":3,"file":"zoomable.d.ts","sourceRoot":"","sources":["../src/zoomable.ts"],"names":[],"mappings":"AAIA,OAAO,EAAqC,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACvF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAA;AAC9C,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,iEAAiE;IACjE,MAAM,IAAI,OAAO,CAAA;IACjB,wFAAwF;IACxF,QAAQ,IAAI,OAAO,CAAA;CACpB;AACD,MAAM,WAAW,eAAe;IAC9B,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,qEAAqE;IACrE,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,UAAU,GAAG,KAAK,CAAA;IAC5B,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,mFAAmF;IACnF,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,IAAI,CAAA;IAC/C,0DAA0D;IAC1D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;IACtC,+EAA+E;IAC/E,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CACjC;AACD,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,CAAA;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,qEAAqE;IACrE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IACjF,KAAK,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IAC/B,cAAc,IAAI,IAAI,CAAA;IACtB,aAAa,IAAI,IAAI,CAAA;IACrB,OAAO,IAAI,IAAI,CAAA;CAChB;AAED,2FAA2F;AAC3F,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,QAAQ,CA0DhF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rafaelaugusto/jolt",
|
|
3
|
-
"version": "0.1.0-
|
|
3
|
+
"version": "0.1.0-rc.2",
|
|
4
4
|
"description": "Native animations for NativeScript: presets, springs, keyframes and stagger in one call.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"nativescript",
|
|
@@ -33,7 +33,71 @@
|
|
|
33
33
|
"types": "./dist/vue/index.d.ts",
|
|
34
34
|
"default": "./dist/vue/index.js"
|
|
35
35
|
},
|
|
36
|
-
"./package.json": "./package.json"
|
|
36
|
+
"./package.json": "./package.json",
|
|
37
|
+
"./gestures": {
|
|
38
|
+
"types": "./dist/gestures/index.d.ts",
|
|
39
|
+
"default": "./dist/gestures/index.js"
|
|
40
|
+
},
|
|
41
|
+
"./native": {
|
|
42
|
+
"types": "./dist/native/index.d.ts",
|
|
43
|
+
"default": "./dist/native/index.js"
|
|
44
|
+
},
|
|
45
|
+
"./bottom-sheet": {
|
|
46
|
+
"types": "./dist/bottom-sheet/index.d.ts",
|
|
47
|
+
"default": "./dist/bottom-sheet/index.js"
|
|
48
|
+
},
|
|
49
|
+
"./reorder": {
|
|
50
|
+
"types": "./dist/reorder/index.d.ts",
|
|
51
|
+
"default": "./dist/reorder/index.js"
|
|
52
|
+
},
|
|
53
|
+
"./shared-layout": {
|
|
54
|
+
"types": "./dist/shared-layout/index.d.ts",
|
|
55
|
+
"default": "./dist/shared-layout/index.js"
|
|
56
|
+
},
|
|
57
|
+
"./testing": {
|
|
58
|
+
"types": "./dist/testing/index.d.ts",
|
|
59
|
+
"default": "./dist/testing/index.js"
|
|
60
|
+
},
|
|
61
|
+
"./testing/native": {
|
|
62
|
+
"types": "./dist/testing/native.d.ts",
|
|
63
|
+
"default": "./dist/testing/native.js"
|
|
64
|
+
},
|
|
65
|
+
"./inspector": {
|
|
66
|
+
"types": "./dist/inspector/index.d.ts",
|
|
67
|
+
"default": "./dist/inspector/index.js"
|
|
68
|
+
},
|
|
69
|
+
"./shared-navigation": {
|
|
70
|
+
"types": "./dist/shared-navigation/index.d.ts",
|
|
71
|
+
"default": "./dist/shared-navigation/index.js"
|
|
72
|
+
},
|
|
73
|
+
"./interactive-navigation": {
|
|
74
|
+
"types": "./dist/interactive-navigation/index.d.ts",
|
|
75
|
+
"default": "./dist/interactive-navigation/index.js"
|
|
76
|
+
},
|
|
77
|
+
"./predictive-back": {
|
|
78
|
+
"types": "./dist/predictive-back/index.d.ts",
|
|
79
|
+
"default": "./dist/predictive-back/index.js"
|
|
80
|
+
},
|
|
81
|
+
"./sensors": {
|
|
82
|
+
"types": "./dist/sensors/index.d.ts",
|
|
83
|
+
"default": "./dist/sensors/index.js"
|
|
84
|
+
},
|
|
85
|
+
"./physics": {
|
|
86
|
+
"types": "./dist/physics/index.d.ts",
|
|
87
|
+
"default": "./dist/physics/index.js"
|
|
88
|
+
},
|
|
89
|
+
"./shapes": {
|
|
90
|
+
"types": "./dist/shapes/index.d.ts",
|
|
91
|
+
"default": "./dist/shapes/index.js"
|
|
92
|
+
},
|
|
93
|
+
"./blur": {
|
|
94
|
+
"types": "./dist/blur/index.d.ts",
|
|
95
|
+
"default": "./dist/blur/index.js"
|
|
96
|
+
},
|
|
97
|
+
"./glass": {
|
|
98
|
+
"types": "./dist/glass/index.d.ts",
|
|
99
|
+
"default": "./dist/glass/index.js"
|
|
100
|
+
}
|
|
37
101
|
},
|
|
38
102
|
"files": [
|
|
39
103
|
"dist",
|
|
@@ -56,7 +120,8 @@
|
|
|
56
120
|
"docs:dev": "vitepress dev docs",
|
|
57
121
|
"docs:build": "vitepress build docs",
|
|
58
122
|
"docs:preview": "vitepress preview docs",
|
|
59
|
-
"prepack": "npm run build"
|
|
123
|
+
"prepack": "npm run build",
|
|
124
|
+
"docs:check-media": "node scripts/check-docs-media.mjs"
|
|
60
125
|
},
|
|
61
126
|
"peerDependencies": {
|
|
62
127
|
"@nativescript/core": ">=8.9.0",
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
// Compile against the host's widgets; the app already packages NativeScript core.
|
|
2
|
+
dependencies {
|
|
3
|
+
compileOnly 'androidx.core:core:1.13.0'
|
|
4
|
+
compileOnly 'androidx.activity:activity:1.8.1'
|
|
5
|
+
if (project.hasProperty('tempBuild')) {
|
|
6
|
+
def widgets = new File(project.ext.USER_PROJECT_ROOT, 'node_modules/@nativescript/core/platforms/android/widgets-release.aar')
|
|
7
|
+
compileOnly files(zipTree(widgets).matching { include 'classes.jar' })
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
1
11
|
// Applied by the NativeScript app. Preserve fields used by the native color target.
|
|
2
12
|
def joltDependency = nativescriptDependencies.find { it.name == '@rafaelaugusto/jolt' }
|
|
3
13
|
if (joltDependency != null) {
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
package org.rafaelaugusto.jolt;
|
|
2
|
+
|
|
3
|
+
import android.animation.Animator;
|
|
4
|
+
import android.animation.AnimatorListenerAdapter;
|
|
5
|
+
import android.animation.ValueAnimator;
|
|
6
|
+
import android.graphics.RenderEffect;
|
|
7
|
+
import android.graphics.Shader;
|
|
8
|
+
import android.os.Build;
|
|
9
|
+
import android.view.View;
|
|
10
|
+
import android.view.animation.LinearInterpolator;
|
|
11
|
+
import org.json.JSONArray;
|
|
12
|
+
import org.json.JSONException;
|
|
13
|
+
import org.json.JSONObject;
|
|
14
|
+
|
|
15
|
+
/** Owns the content view's RenderEffect slot. No capture, bitmap allocation or JS frame listener. */
|
|
16
|
+
public final class BlurEffect {
|
|
17
|
+
private static int live,active;
|
|
18
|
+
public static int liveCount(){return live;}
|
|
19
|
+
public static int activeCount(){return active;}
|
|
20
|
+
private View view;
|
|
21
|
+
private final boolean supported;
|
|
22
|
+
private final double radius,density;
|
|
23
|
+
private double amount,applied,duration,delay,repeats;
|
|
24
|
+
private double[] times,values;
|
|
25
|
+
private boolean reverse,disposed;
|
|
26
|
+
private int frames;
|
|
27
|
+
private ValueAnimator animator;
|
|
28
|
+
public BlurEffect(View view,double radius){
|
|
29
|
+
this.view=view;this.radius=radius;density=view.getResources().getDisplayMetrics().density;
|
|
30
|
+
supported=Build.VERSION.SDK_INT>=31 && view.isHardwareAccelerated();live++;
|
|
31
|
+
}
|
|
32
|
+
// Keep API 31 references out of the fallback execution path.
|
|
33
|
+
private static class Api31 {
|
|
34
|
+
static void apply(View view,float radius){view.setRenderEffect(radius>0?RenderEffect.createBlurEffect(radius,radius,Shader.TileMode.CLAMP):null);}
|
|
35
|
+
}
|
|
36
|
+
private void apply(double value){
|
|
37
|
+
amount=Math.max(0,Math.min(1,value));
|
|
38
|
+
if(supported){Api31.apply(view,(float)(radius*density*amount));applied=amount;}
|
|
39
|
+
frames++;
|
|
40
|
+
}
|
|
41
|
+
public void paint(double value){if(disposed)return;cancel();apply(value);}
|
|
42
|
+
private static double[] array(JSONArray array)throws JSONException{
|
|
43
|
+
double[] result=new double[array.length()];for(int i=0;i<result.length;i++)result[i]=array.getDouble(i);return result;
|
|
44
|
+
}
|
|
45
|
+
public void play(String program){
|
|
46
|
+
if(disposed)return;cancel();
|
|
47
|
+
try{
|
|
48
|
+
JSONObject p=new JSONObject(program);times=array(p.getJSONArray("times"));values=array(p.getJSONArray("values"));
|
|
49
|
+
duration=p.getDouble("duration");delay=p.getDouble("delay");repeats=p.getDouble("repeat");reverse=p.getBoolean("reverse");
|
|
50
|
+
}catch(JSONException e){throw new IllegalArgumentException("Invalid blur program",e);}
|
|
51
|
+
if(!supported){apply(values[values.length-1]);return;}
|
|
52
|
+
advance(0);
|
|
53
|
+
final ValueAnimator a=ValueAnimator.ofFloat(0f,1f);
|
|
54
|
+
a.setDuration(repeats<0?60000:Math.max(1,(long)Math.ceil(delay+duration*(repeats+1))));
|
|
55
|
+
a.setRepeatCount(repeats<0?ValueAnimator.INFINITE:0);a.setInterpolator(new LinearInterpolator());
|
|
56
|
+
a.addUpdateListener(v->advance(v.getCurrentPlayTime()));
|
|
57
|
+
a.addListener(new AnimatorListenerAdapter(){@Override public void onAnimationEnd(Animator ended){if(animator==a){animator=null;active--;}}});
|
|
58
|
+
animator=a;active++;a.start();
|
|
59
|
+
}
|
|
60
|
+
private void advance(double elapsed){
|
|
61
|
+
double t=Math.max(0,elapsed-delay),fraction;
|
|
62
|
+
if(duration<=0)fraction=elapsed<delay?0:(reverse&&repeats>=0&&((long)repeats%2==1)?0:1);
|
|
63
|
+
else if(repeats>=0&&t>=duration*(repeats+1))fraction=reverse&&((long)repeats%2==1)?0:1;
|
|
64
|
+
else {double cycles=t/duration;long cycle=(long)cycles;fraction=cycles-cycle;if(reverse&&cycle%2==1)fraction=1-fraction;}
|
|
65
|
+
int low=0,high=times.length-1;
|
|
66
|
+
while(high-low>1){int mid=(low+high)/2;if(times[mid]<=fraction)low=mid;else high=mid;}
|
|
67
|
+
double span=times[high]-times[low],mix=span>0?Math.max(0,Math.min(1,(fraction-times[low])/span)):1;
|
|
68
|
+
apply(values[low]+(values[high]-values[low])*mix);
|
|
69
|
+
}
|
|
70
|
+
public void control(double time,boolean paused){
|
|
71
|
+
if(animator==null)return;
|
|
72
|
+
animator.setCurrentPlayTime(Math.max(0,(long)time));if(paused)animator.pause();else animator.resume();advance(time);
|
|
73
|
+
}
|
|
74
|
+
public void resize(){} // RenderEffect automatically follows the view's render node bounds.
|
|
75
|
+
public String snapshot(){
|
|
76
|
+
try{return new JSONObject().put("backend",supported?"android-render-effect":"none").put("amount",amount).put("appliedAmount",applied).put("attached",!disposed)
|
|
77
|
+
.put("nativeAnimations",animator==null?0:1).put("frames",frames).put("width",view==null?0:view.getWidth()/density).put("height",view==null?0:view.getHeight()/density).toString();
|
|
78
|
+
}catch(JSONException e){throw new IllegalStateException(e);}
|
|
79
|
+
}
|
|
80
|
+
private void cancel(){
|
|
81
|
+
ValueAnimator a=animator;animator=null;
|
|
82
|
+
if(a!=null){active--;a.removeAllUpdateListeners();a.removeAllListeners();a.cancel();}
|
|
83
|
+
times=values=null;
|
|
84
|
+
}
|
|
85
|
+
public void dispose(){
|
|
86
|
+
if(disposed)return;cancel();disposed=true;live--;
|
|
87
|
+
if(supported)Api31.apply(view,0);applied=0;view=null;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
package org.rafaelaugusto.jolt;
|
|
2
|
+
|
|
3
|
+
/** Fixed-step circle-only kernel, kept in parity with JoltCircleMath.h by compiled native tests. */
|
|
4
|
+
public final class CircleMath {
|
|
5
|
+
public static final double DT=1.0/240.0, SPEED=1200;
|
|
6
|
+
public static final int SNAP_LIMIT=8;
|
|
7
|
+
public static final class Attachment {
|
|
8
|
+
public boolean enabled;
|
|
9
|
+
public double u,v,length,stiffness,damping;
|
|
10
|
+
}
|
|
11
|
+
public static final class Snap {
|
|
12
|
+
public int count,index,previousIndex;
|
|
13
|
+
public boolean active,previousActive;
|
|
14
|
+
public final double[] u=new double[SNAP_LIMIT],v=new double[SNAP_LIMIT];
|
|
15
|
+
public double stiffness,damping,projection;
|
|
16
|
+
}
|
|
17
|
+
public static final class Body {
|
|
18
|
+
public double x,y,vx,vy,r,m,tx,ty,ax,ay,releaseX,releaseY,releaseVX,releaseVY;
|
|
19
|
+
public boolean released;
|
|
20
|
+
public boolean held,supported;
|
|
21
|
+
public final Attachment attachment=new Attachment(),drag=new Attachment();
|
|
22
|
+
public final Snap snap=new Snap();
|
|
23
|
+
}
|
|
24
|
+
public final Body[] bodies;
|
|
25
|
+
public double width,height,gx,gy,restitution,damping,quiet;
|
|
26
|
+
public long steps,contacts;
|
|
27
|
+
public boolean sleeping;
|
|
28
|
+
public CircleMath(int count){bodies=new Body[count];for(int i=0;i<count;i++)bodies[i]=new Body();}
|
|
29
|
+
public static double clamp(double v,double lo,double hi){return Math.max(lo,Math.min(hi,v));}
|
|
30
|
+
public static void limit(Body b){double speed=Math.hypot(b.vx,b.vy);if(speed>SPEED){b.vx*=SPEED/speed;b.vy*=SPEED/speed;}}
|
|
31
|
+
public void wake(){sleeping=false;quiet=0;}
|
|
32
|
+
public boolean fits(double width,double height){
|
|
33
|
+
double area=0;
|
|
34
|
+
if(!Double.isFinite(width)||!Double.isFinite(height)||width<=0||height<=0)return false;
|
|
35
|
+
for(Body b:bodies){if(2*b.r>Math.min(width,height))return false;area+=Math.PI*b.r*b.r;}
|
|
36
|
+
return area<=width*height*.4;
|
|
37
|
+
}
|
|
38
|
+
private static boolean kinematic(Body b){return b.held&&!b.drag.enabled;}
|
|
39
|
+
private void walls(Body b,boolean impulse){
|
|
40
|
+
double e=restitution;
|
|
41
|
+
if(b.x<=b.r){b.x=b.r;if(b.ax<0)b.supported=true;if(impulse&&!kinematic(b)&&b.vx<0){b.vx=Math.abs(b.vx)<40?0:-b.vx*e;contacts++;}}
|
|
42
|
+
if(b.x>=width-b.r){b.x=width-b.r;if(b.ax>0)b.supported=true;if(impulse&&!kinematic(b)&&b.vx>0){b.vx=Math.abs(b.vx)<40?0:-b.vx*e;contacts++;}}
|
|
43
|
+
if(b.y<=b.r){b.y=b.r;if(b.ay<0)b.supported=true;if(impulse&&!kinematic(b)&&b.vy<0){b.vy=Math.abs(b.vy)<40?0:-b.vy*e;contacts++;}}
|
|
44
|
+
if(b.y>=height-b.r){b.y=height-b.r;if(b.ay>0)b.supported=true;if(impulse&&!kinematic(b)&&b.vy>0){b.vy=Math.abs(b.vy)<40?0:-b.vy*e;contacts++;}}
|
|
45
|
+
}
|
|
46
|
+
public void contacts(boolean impulse,int iterations){
|
|
47
|
+
for(int iteration=0;iteration<iterations;iteration++){
|
|
48
|
+
for(int i=0;i<bodies.length;i++)for(int j=i+1;j<bodies.length;j++){
|
|
49
|
+
Body a=bodies[i],b=bodies[j];
|
|
50
|
+
double dx=b.x-a.x,dy=b.y-a.y,d=Math.hypot(dx,dy),radius=a.r+b.r;
|
|
51
|
+
if(d>radius+.02)continue;
|
|
52
|
+
double nx=d>1e-9?dx/d:1,ny=d>1e-9?dy/d:0;
|
|
53
|
+
double ia=kinematic(a)?0:1/a.m,ib=kinematic(b)?0:1/b.m,total=ia+ib;
|
|
54
|
+
if(total==0)continue;
|
|
55
|
+
double overlap=Math.max(0,radius-d);
|
|
56
|
+
a.x-=nx*overlap*ia/total;a.y-=ny*overlap*ia/total;
|
|
57
|
+
b.x+=nx*overlap*ib/total;b.y+=ny*overlap*ib/total;
|
|
58
|
+
if(nx*a.ax+ny*a.ay>Math.hypot(a.ax,a.ay)*.35)a.supported=true;
|
|
59
|
+
if(-nx*b.ax-ny*b.ay>Math.hypot(b.ax,b.ay)*.35)b.supported=true;
|
|
60
|
+
double closing=(b.vx-a.vx)*nx+(b.vy-a.vy)*ny;
|
|
61
|
+
if(impulse&&closing<0){
|
|
62
|
+
double e=closing < -40?restitution:0,jolt=-(1+e)*closing/total;
|
|
63
|
+
a.vx-=nx*jolt*ia;a.vy-=ny*jolt*ia;b.vx+=nx*jolt*ib;b.vy+=ny*jolt*ib;
|
|
64
|
+
if(closing < -.1)contacts++;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
for(Body b:bodies)walls(b,impulse);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
public double snapX(Body b,int index){return clamp(b.snap.u[index]*width,b.r,width-b.r);}
|
|
71
|
+
public double snapY(Body b,int index){return clamp(b.snap.v[index]*height,b.r,height-b.r);}
|
|
72
|
+
public void attach(int index,boolean enabled,double x,double y,double length,double stiffness,double damping){
|
|
73
|
+
Body b=bodies[index];Attachment a=b.attachment;
|
|
74
|
+
a.enabled=enabled;a.u=x/width;a.v=y/height;a.length=length;a.stiffness=stiffness;a.damping=damping;
|
|
75
|
+
b.snap.active=b.snap.previousActive=false;wake();
|
|
76
|
+
}
|
|
77
|
+
public void snapTo(int index,int target){
|
|
78
|
+
Body b=bodies[index];if(b.held||target<0||target>=b.snap.count)return;
|
|
79
|
+
b.snap.active=true;b.snap.index=target;wake();
|
|
80
|
+
}
|
|
81
|
+
public void cancel(int index){
|
|
82
|
+
Body b=bodies[index];if(!b.held)return;
|
|
83
|
+
b.held=false;b.vx=b.vy=0;b.snap.active=b.snap.previousActive;b.snap.index=b.snap.previousIndex;wake();
|
|
84
|
+
}
|
|
85
|
+
private boolean targetClear(int index,double x,double y){
|
|
86
|
+
Body b=bodies[index];
|
|
87
|
+
for(int i=0;i<bodies.length;i++)if(i!=index){Body other=bodies[i];if(Math.hypot(x-other.x,y-other.y)<b.r+other.r+.001)return false;}
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
public void step(){
|
|
91
|
+
if(sleeping)return;
|
|
92
|
+
double decay=Math.exp(-damping*DT);boolean still=true;
|
|
93
|
+
for(Body b:bodies){
|
|
94
|
+
b.supported=false;b.ax=gx;b.ay=gy;
|
|
95
|
+
if(b.held)still=false;
|
|
96
|
+
if(kinematic(b)){b.vx=(b.tx-b.x)/DT;b.vy=(b.ty-b.y)/DT;still=false;}
|
|
97
|
+
else {
|
|
98
|
+
double damping=0;
|
|
99
|
+
if((b.held&&b.drag.enabled)||b.attachment.enabled||b.snap.active){
|
|
100
|
+
double x,y,length,stiffness;
|
|
101
|
+
if(b.held&&b.drag.enabled){
|
|
102
|
+
x=b.tx;y=b.ty;length=b.drag.length;stiffness=b.drag.stiffness;damping=b.drag.damping;
|
|
103
|
+
}else if(b.snap.active){
|
|
104
|
+
x=snapX(b,b.snap.index);y=snapY(b,b.snap.index);length=0;stiffness=b.snap.stiffness;damping=b.snap.damping;b.ax=b.ay=0;
|
|
105
|
+
}else {
|
|
106
|
+
x=b.attachment.u*width;y=b.attachment.v*height;length=b.attachment.length;stiffness=b.attachment.stiffness;damping=b.attachment.damping;
|
|
107
|
+
}
|
|
108
|
+
double dx=b.x-x,dy=b.y-y,d=Math.hypot(dx,dy);
|
|
109
|
+
double nx=d>1e-9?dx/d:0,ny=d>1e-9?dy/d:1;
|
|
110
|
+
double force=stiffness*(d-length)/b.m;
|
|
111
|
+
b.ax-=force*nx;b.ay-=force*ny;
|
|
112
|
+
}
|
|
113
|
+
double divisor=1+damping*DT/b.m;
|
|
114
|
+
b.vx=(b.vx+b.ax*DT)/divisor*decay;b.vy=(b.vy+b.ay*DT)/divisor*decay;
|
|
115
|
+
}
|
|
116
|
+
limit(b);b.x+=b.vx*DT;b.y+=b.vy*DT;
|
|
117
|
+
}
|
|
118
|
+
contacts(true,8);
|
|
119
|
+
for(int i=0;i<bodies.length;i++){
|
|
120
|
+
Body b=bodies[i];limit(b);double speed=Math.hypot(b.vx,b.vy),force=Math.hypot(b.ax,b.ay);boolean equilibrium=force<=1e-9;
|
|
121
|
+
if(b.snap.active){
|
|
122
|
+
double x=snapX(b,b.snap.index),y=snapY(b,b.snap.index);equilibrium=Math.hypot(b.x-x,b.y-y)<=.25;
|
|
123
|
+
if(equilibrium&&speed<=4&&targetClear(i,x,y)){b.x=x;b.y=y;b.vx=b.vy=0;}
|
|
124
|
+
}else if(b.attachment.enabled){
|
|
125
|
+
double dx=b.x-b.attachment.u*width,dy=b.y-b.attachment.v*height,gravity=Math.hypot(gx,gy);
|
|
126
|
+
// Residual force alone hides tangential drift in a stretched spring.
|
|
127
|
+
if(gravity>1e-9){
|
|
128
|
+
double length=b.attachment.length+b.m*gravity/b.attachment.stiffness;
|
|
129
|
+
equilibrium=Math.hypot(dx-length*gx/gravity,dy-length*gy/gravity)<=.25;
|
|
130
|
+
}else equilibrium=Math.abs(Math.hypot(dx,dy)-b.attachment.length)<=.25;
|
|
131
|
+
}
|
|
132
|
+
if(speed>4||(!b.supported&&!equilibrium))still=false;
|
|
133
|
+
}
|
|
134
|
+
steps++;quiet=still?quiet+DT:0;
|
|
135
|
+
if(quiet>=.35){sleeping=true;for(Body b:bodies)b.vx=b.vy=0;}
|
|
136
|
+
}
|
|
137
|
+
public void drag(int index,double x,double y){
|
|
138
|
+
Body b=bodies[index];if(!b.held){b.snap.previousActive=b.snap.active;b.snap.previousIndex=b.snap.index;b.snap.active=false;}
|
|
139
|
+
b.held=true;double inset=b.drag.enabled?0:b.r;b.tx=clamp(x,inset,width-inset);b.ty=clamp(y,inset,height-inset);wake();
|
|
140
|
+
}
|
|
141
|
+
public void release(int index,double vx,double vy){
|
|
142
|
+
Body b=bodies[index];
|
|
143
|
+
// Preserve integrated body momentum rather than substituting pointer velocity.
|
|
144
|
+
if(!b.held||!b.drag.enabled){b.vx=vx;b.vy=vy;}
|
|
145
|
+
b.held=false;limit(b);
|
|
146
|
+
b.released=true;b.releaseX=b.x;b.releaseY=b.y;b.releaseVX=b.vx;b.releaseVY=b.vy;
|
|
147
|
+
if(b.snap.count>0){
|
|
148
|
+
double x=b.x+b.vx*b.snap.projection,y=b.y+b.vy*b.snap.projection,best=Double.POSITIVE_INFINITY;
|
|
149
|
+
for(int i=0;i<b.snap.count;i++){double distance=Math.hypot(x-snapX(b,i),y-snapY(b,i));if(distance<best){best=distance;b.snap.index=i;}}
|
|
150
|
+
b.snap.active=true;
|
|
151
|
+
}
|
|
152
|
+
wake();
|
|
153
|
+
}
|
|
154
|
+
public void resize(double w,double h){
|
|
155
|
+
for(int i=0;i<bodies.length;i++){cancel(i);Body b=bodies[i];b.x*=w/width;b.y*=h/height;b.vx=b.vy=0;}
|
|
156
|
+
width=w;height=h;contacts(false,64);wake();
|
|
157
|
+
}
|
|
158
|
+
}
|