@rafaelaugusto/jolt 0.1.0-beta.9 → 0.1.0-rc.10
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 +171 -23
- package/dist/animate.d.ts +25 -4
- package/dist/animate.d.ts.map +1 -1
- package/dist/animate.js +87 -31
- 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 +3 -0
- package/dist/bottom-sheet/geometry.d.ts.map +1 -0
- package/dist/bottom-sheet/geometry.js +2 -0
- package/dist/bottom-sheet/geometry.js.map +1 -0
- package/dist/bottom-sheet/index.d.ts +66 -0
- package/dist/bottom-sheet/index.d.ts.map +1 -0
- package/dist/bottom-sheet/index.js +512 -0
- package/dist/bottom-sheet/index.js.map +1 -0
- package/dist/bottom-sheet/native.d.ts +16 -0
- package/dist/bottom-sheet/native.d.ts.map +1 -0
- package/dist/bottom-sheet/native.js +179 -0
- package/dist/bottom-sheet/native.js.map +1 -0
- package/dist/color.d.ts +2 -4
- package/dist/color.d.ts.map +1 -1
- package/dist/color.js +1 -41
- package/dist/color.js.map +1 -1
- 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/core/arrival.d.ts +19 -0
- package/dist/core/arrival.d.ts.map +1 -0
- package/dist/core/arrival.js +19 -0
- package/dist/core/arrival.js.map +1 -0
- package/dist/core/circle-math.d.ts +90 -0
- package/dist/core/circle-math.d.ts.map +1 -0
- package/dist/core/circle-math.js +395 -0
- package/dist/core/circle-math.js.map +1 -0
- package/dist/core/color.d.ts +5 -0
- package/dist/core/color.d.ts.map +1 -0
- package/dist/core/color.js +42 -0
- package/dist/core/color.js.map +1 -0
- package/dist/core/decay.d.ts +12 -0
- package/dist/core/decay.d.ts.map +1 -0
- package/dist/core/decay.js +29 -0
- package/dist/core/decay.js.map +1 -0
- package/dist/core/decoration.d.ts +5 -0
- package/dist/core/decoration.d.ts.map +1 -0
- package/dist/core/decoration.js +22 -0
- package/dist/core/decoration.js.map +1 -0
- package/dist/core/drag-physics.d.ts +25 -0
- package/dist/core/drag-physics.d.ts.map +1 -0
- package/dist/core/drag-physics.js +75 -0
- package/dist/core/drag-physics.js.map +1 -0
- package/dist/core/driver.d.ts +41 -0
- package/dist/core/driver.d.ts.map +1 -0
- package/dist/core/driver.js +2 -0
- package/dist/core/driver.js.map +1 -0
- package/dist/core/easing.d.ts +10 -0
- package/dist/core/easing.d.ts.map +1 -0
- package/dist/core/easing.js +88 -0
- package/dist/core/easing.js.map +1 -0
- package/dist/core/gesture-math.d.ts +22 -0
- package/dist/core/gesture-math.d.ts.map +1 -0
- package/dist/core/gesture-math.js +45 -0
- package/dist/core/gesture-math.js.map +1 -0
- package/dist/core/gradient.d.ts +16 -0
- package/dist/core/gradient.d.ts.map +1 -0
- package/dist/core/gradient.js +27 -0
- package/dist/core/gradient.js.map +1 -0
- package/dist/core/gravity.d.ts +13 -0
- package/dist/core/gravity.d.ts.map +1 -0
- package/dist/core/gravity.js +84 -0
- package/dist/core/gravity.js.map +1 -0
- package/dist/core/haptic.d.ts +10 -0
- package/dist/core/haptic.d.ts.map +1 -0
- package/dist/core/haptic.js +19 -0
- package/dist/core/haptic.js.map +1 -0
- package/dist/core/index.d.ts +7 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +6 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/liquid-grid.d.ts +3 -0
- package/dist/core/liquid-grid.d.ts.map +1 -0
- package/dist/core/liquid-grid.js +24 -0
- package/dist/core/liquid-grid.js.map +1 -0
- package/dist/core/numeric-map.d.ts +11 -0
- package/dist/core/numeric-map.d.ts.map +1 -0
- package/dist/core/numeric-map.js +48 -0
- package/dist/core/numeric-map.js.map +1 -0
- package/dist/core/ownership.d.ts +7 -0
- package/dist/core/ownership.d.ts.map +1 -0
- package/dist/core/ownership.js +23 -0
- package/dist/core/ownership.js.map +1 -0
- package/dist/core/playback.d.ts +49 -0
- package/dist/core/playback.d.ts.map +1 -0
- package/dist/core/playback.js +58 -0
- package/dist/core/playback.js.map +1 -0
- package/dist/core/presets.d.ts +298 -0
- package/dist/core/presets.d.ts.map +1 -0
- package/dist/core/presets.js +127 -0
- package/dist/core/presets.js.map +1 -0
- package/dist/core/properties.d.ts +8 -0
- package/dist/core/properties.d.ts.map +1 -0
- package/dist/core/properties.js +33 -0
- package/dist/core/properties.js.map +1 -0
- package/dist/core/reorder.d.ts +12 -0
- package/dist/core/reorder.d.ts.map +1 -0
- package/dist/core/reorder.js +30 -0
- package/dist/core/reorder.js.map +1 -0
- package/dist/core/roll-diff.d.ts +22 -0
- package/dist/core/roll-diff.d.ts.map +1 -0
- package/dist/core/roll-diff.js +36 -0
- package/dist/core/roll-diff.js.map +1 -0
- package/dist/core/sampling.d.ts +35 -0
- package/dist/core/sampling.d.ts.map +1 -0
- package/dist/core/sampling.js +123 -0
- package/dist/core/sampling.js.map +1 -0
- package/dist/core/scroll-header.d.ts +19 -0
- package/dist/core/scroll-header.d.ts.map +1 -0
- package/dist/core/scroll-header.js +56 -0
- package/dist/core/scroll-header.js.map +1 -0
- package/dist/core/sequence.d.ts +32 -0
- package/dist/core/sequence.d.ts.map +1 -0
- package/dist/core/sequence.js +367 -0
- package/dist/core/sequence.js.map +1 -0
- package/dist/core/shape-path.d.ts +10 -0
- package/dist/core/shape-path.d.ts.map +1 -0
- package/dist/core/shape-path.js +106 -0
- package/dist/core/shape-path.js.map +1 -0
- package/dist/core/sheet-geometry.d.ts +23 -0
- package/dist/core/sheet-geometry.d.ts.map +1 -0
- package/dist/core/sheet-geometry.js +55 -0
- package/dist/core/sheet-geometry.js.map +1 -0
- package/dist/core/spring.d.ts +31 -0
- package/dist/core/spring.d.ts.map +1 -0
- package/dist/core/spring.js +80 -0
- package/dist/core/spring.js.map +1 -0
- package/dist/core/state-transition.d.ts +16 -0
- package/dist/core/state-transition.d.ts.map +1 -0
- package/dist/core/state-transition.js +66 -0
- package/dist/core/state-transition.js.map +1 -0
- package/dist/core/svg-path.d.ts +32 -0
- package/dist/core/svg-path.d.ts.map +1 -0
- package/dist/core/svg-path.js +282 -0
- package/dist/core/svg-path.js.map +1 -0
- package/dist/core/track.d.ts +38 -0
- package/dist/core/track.d.ts.map +1 -0
- package/dist/core/track.js +476 -0
- package/dist/core/track.js.map +1 -0
- package/dist/core/transition.d.ts +116 -0
- package/dist/core/transition.d.ts.map +1 -0
- package/dist/core/transition.js +211 -0
- package/dist/core/transition.js.map +1 -0
- package/dist/decay.d.ts +1 -10
- package/dist/decay.d.ts.map +1 -1
- package/dist/decay.js +1 -21
- package/dist/decay.js.map +1 -1
- package/dist/decoration.d.ts +2 -5
- package/dist/decoration.d.ts.map +1 -1
- package/dist/decoration.js +2 -21
- package/dist/decoration.js.map +1 -1
- package/dist/drag-physics.d.ts +1 -19
- package/dist/drag-physics.d.ts.map +1 -1
- package/dist/drag-physics.js +1 -74
- package/dist/drag-physics.js.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 +51 -8
- 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 +3 -34
- 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 +1 -7
- package/dist/easing.d.ts.map +1 -1
- package/dist/easing.js +1 -70
- package/dist/easing.js.map +1 -1
- package/dist/engine.d.ts +33 -30
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +210 -71
- 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 +37 -0
- package/dist/gradient-binding.d.ts.map +1 -0
- package/dist/gradient-binding.js +108 -0
- package/dist/gradient-binding.js.map +1 -0
- package/dist/gradient.d.ts +98 -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 +2 -0
- package/dist/gravity.d.ts.map +1 -0
- package/dist/gravity.js +2 -0
- package/dist/gravity.js.map +1 -0
- package/dist/haptics.d.ts +3 -9
- package/dist/haptics.d.ts.map +1 -1
- package/dist/haptics.js +102 -46
- 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 +22 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -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 +46 -0
- package/dist/interactive-navigation/index.d.ts.map +1 -0
- package/dist/interactive-navigation/index.js +351 -0
- package/dist/interactive-navigation/index.js.map +1 -0
- package/dist/interactive-navigation/modal.d.ts +34 -0
- package/dist/interactive-navigation/modal.d.ts.map +1 -0
- package/dist/interactive-navigation/modal.js +253 -0
- package/dist/interactive-navigation/modal.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/liquid-grid.d.ts +1 -2
- package/dist/liquid-grid.d.ts.map +1 -1
- package/dist/liquid-grid.js +1 -23
- package/dist/liquid-grid.js.map +1 -1
- package/dist/live-paint.d.ts +11 -0
- package/dist/live-paint.d.ts.map +1 -0
- package/dist/live-paint.js +66 -0
- package/dist/live-paint.js.map +1 -0
- package/dist/live-spring-driver.d.ts +63 -0
- package/dist/live-spring-driver.d.ts.map +1 -0
- package/dist/live-spring-driver.js +157 -0
- package/dist/live-spring-driver.js.map +1 -0
- package/dist/mixer.d.ts +61 -0
- package/dist/mixer.d.ts.map +1 -0
- package/dist/mixer.js +323 -0
- package/dist/mixer.js.map +1 -0
- package/dist/motion-scope.d.ts +10 -3
- package/dist/motion-scope.d.ts.map +1 -1
- package/dist/motion-scope.js +103 -35
- package/dist/motion-scope.js.map +1 -1
- package/dist/motion-states.d.ts +14 -7
- package/dist/motion-states.d.ts.map +1 -1
- package/dist/motion-states.js +136 -74
- package/dist/motion-states.js.map +1 -1
- package/dist/motion-value.d.ts +241 -0
- package/dist/motion-value.d.ts.map +1 -0
- package/dist/motion-value.js +1276 -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 +164 -0
- package/dist/physics/index.d.ts.map +1 -0
- package/dist/physics/index.js +399 -0
- package/dist/physics/index.js.map +1 -0
- package/dist/physics/native.d.ts +59 -0
- package/dist/physics/native.d.ts.map +1 -0
- package/dist/physics/native.js +74 -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 +1 -24
- package/dist/playback.d.ts.map +1 -1
- package/dist/playback.js +1 -34
- 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/presets.d.ts +2 -297
- package/dist/presets.d.ts.map +1 -1
- package/dist/presets.js +2 -125
- package/dist/presets.js.map +1 -1
- package/dist/press.d.ts.map +1 -1
- package/dist/press.js +11 -2
- package/dist/press.js.map +1 -1
- package/dist/properties.d.ts +2 -6
- package/dist/properties.d.ts.map +1 -1
- package/dist/properties.js +3 -33
- package/dist/properties.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 +14 -0
- package/dist/reorder/index.d.ts.map +1 -0
- package/dist/reorder/index.js +243 -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 +2 -0
- package/dist/reorder/model.d.ts.map +1 -0
- package/dist/reorder/model.js +2 -0
- package/dist/reorder/model.js.map +1 -0
- package/dist/reorder/realized.d.ts +14 -0
- package/dist/reorder/realized.d.ts.map +1 -0
- package/dist/reorder/realized.js +263 -0
- package/dist/reorder/realized.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 +94 -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/roll-diff.d.ts +2 -21
- package/dist/roll-diff.d.ts.map +1 -1
- package/dist/roll-diff.js +1 -35
- package/dist/roll-diff.js.map +1 -1
- package/dist/sampling.d.ts +2 -0
- package/dist/sampling.d.ts.map +1 -0
- package/dist/sampling.js +2 -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 +2 -0
- package/dist/scroll-header/geometry.d.ts.map +1 -0
- package/dist/scroll-header/geometry.js +2 -0
- package/dist/scroll-header/geometry.js.map +1 -0
- package/dist/scroll-header/index.d.ts +71 -0
- package/dist/scroll-header/index.d.ts.map +1 -0
- package/dist/scroll-header/index.js +627 -0
- package/dist/scroll-header/index.js.map +1 -0
- package/dist/scroll-header/native.d.ts +36 -0
- package/dist/scroll-header/native.d.ts.map +1 -0
- package/dist/scroll-header/native.js +58 -0
- package/dist/scroll-header/native.js.map +1 -0
- package/dist/scroll-header/surface.d.ts +6 -0
- package/dist/scroll-header/surface.d.ts.map +1 -0
- package/dist/scroll-header/surface.js +12 -0
- package/dist/scroll-header/surface.js.map +1 -0
- package/dist/seekable-timeline.d.ts +32 -0
- package/dist/seekable-timeline.d.ts.map +1 -0
- package/dist/seekable-timeline.js +284 -0
- package/dist/seekable-timeline.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 +25 -204
- 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 +252 -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 +2 -0
- package/dist/shapes/path.d.ts.map +1 -0
- package/dist/shapes/path.js +2 -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 +323 -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 +34 -0
- package/dist/shared-navigation/return-target.d.ts.map +1 -0
- package/dist/shared-navigation/return-target.js +218 -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 +230 -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 +259 -0
- package/dist/size.js.map +1 -0
- package/dist/spring.d.ts +1 -21
- package/dist/spring.d.ts.map +1 -1
- package/dist/spring.js +1 -53
- package/dist/spring.js.map +1 -1
- package/dist/svg-path.d.ts +1 -13
- package/dist/svg-path.d.ts.map +1 -1
- package/dist/svg-path.js +1 -280
- 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 +5 -28
- package/dist/track.d.ts.map +1 -1
- package/dist/track.js +10 -230
- package/dist/track.js.map +1 -1
- package/dist/transition.d.ts +1 -63
- package/dist/transition.d.ts.map +1 -1
- package/dist/transition.js +1 -90
- package/dist/transition.js.map +1 -1
- package/dist/types.d.ts +15 -2
- 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 +22 -0
- package/dist/value-track.d.ts.map +1 -0
- package/dist/value-track.js +71 -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/web/blur.d.ts +27 -0
- package/dist/web/blur.d.ts.map +1 -0
- package/dist/web/blur.js +152 -0
- package/dist/web/blur.js.map +1 -0
- package/dist/web/bottom-sheet.d.ts +40 -0
- package/dist/web/bottom-sheet.d.ts.map +1 -0
- package/dist/web/bottom-sheet.js +308 -0
- package/dist/web/bottom-sheet.js.map +1 -0
- package/dist/web/compose.d.ts +28 -0
- package/dist/web/compose.d.ts.map +1 -0
- package/dist/web/compose.js +156 -0
- package/dist/web/compose.js.map +1 -0
- package/dist/web/curve.d.ts +10 -0
- package/dist/web/curve.d.ts.map +1 -0
- package/dist/web/curve.js +46 -0
- package/dist/web/curve.js.map +1 -0
- package/dist/web/decay.d.ts +14 -0
- package/dist/web/decay.d.ts.map +1 -0
- package/dist/web/decay.js +62 -0
- package/dist/web/decay.js.map +1 -0
- package/dist/web/diagnostics.d.ts +59 -0
- package/dist/web/diagnostics.d.ts.map +1 -0
- package/dist/web/diagnostics.js +72 -0
- package/dist/web/diagnostics.js.map +1 -0
- package/dist/web/drag.d.ts +135 -0
- package/dist/web/drag.d.ts.map +1 -0
- package/dist/web/drag.js +466 -0
- package/dist/web/drag.js.map +1 -0
- package/dist/web/effect.d.ts +70 -0
- package/dist/web/effect.d.ts.map +1 -0
- package/dist/web/effect.js +290 -0
- package/dist/web/effect.js.map +1 -0
- package/dist/web/geometry.d.ts +6 -0
- package/dist/web/geometry.d.ts.map +1 -0
- package/dist/web/geometry.js +36 -0
- package/dist/web/geometry.js.map +1 -0
- package/dist/web/gesture-scroll.d.ts +20 -0
- package/dist/web/gesture-scroll.d.ts.map +1 -0
- package/dist/web/gesture-scroll.js +99 -0
- package/dist/web/gesture-scroll.js.map +1 -0
- package/dist/web/gestures.d.ts +63 -0
- package/dist/web/gestures.d.ts.map +1 -0
- package/dist/web/gestures.js +542 -0
- package/dist/web/gestures.js.map +1 -0
- package/dist/web/glass.d.ts +20 -0
- package/dist/web/glass.d.ts.map +1 -0
- package/dist/web/glass.js +117 -0
- package/dist/web/glass.js.map +1 -0
- package/dist/web/gradient.d.ts +43 -0
- package/dist/web/gradient.d.ts.map +1 -0
- package/dist/web/gradient.js +366 -0
- package/dist/web/gradient.js.map +1 -0
- package/dist/web/haptics.d.ts +17 -0
- package/dist/web/haptics.d.ts.map +1 -0
- package/dist/web/haptics.js +87 -0
- package/dist/web/haptics.js.map +1 -0
- package/dist/web/image-effect.d.ts +29 -0
- package/dist/web/image-effect.d.ts.map +1 -0
- package/dist/web/image-effect.js +371 -0
- package/dist/web/image-effect.js.map +1 -0
- package/dist/web/image-surface.d.ts +38 -0
- package/dist/web/image-surface.d.ts.map +1 -0
- package/dist/web/image-surface.js +182 -0
- package/dist/web/image-surface.js.map +1 -0
- package/dist/web/index.d.ts +3 -0
- package/dist/web/index.d.ts.map +1 -0
- package/dist/web/index.js +3 -0
- package/dist/web/index.js.map +1 -0
- package/dist/web/interaction.d.ts +38 -0
- package/dist/web/interaction.d.ts.map +1 -0
- package/dist/web/interaction.js +85 -0
- package/dist/web/interaction.js.map +1 -0
- package/dist/web/interactive-modal.d.ts +21 -0
- package/dist/web/interactive-modal.d.ts.map +1 -0
- package/dist/web/interactive-modal.js +223 -0
- package/dist/web/interactive-modal.js.map +1 -0
- package/dist/web/interactive-navigation.d.ts +28 -0
- package/dist/web/interactive-navigation.d.ts.map +1 -0
- package/dist/web/interactive-navigation.js +227 -0
- package/dist/web/interactive-navigation.js.map +1 -0
- package/dist/web/items.d.ts +28 -0
- package/dist/web/items.d.ts.map +1 -0
- package/dist/web/items.js +110 -0
- package/dist/web/items.js.map +1 -0
- package/dist/web/keyboard.d.ts +35 -0
- package/dist/web/keyboard.d.ts.map +1 -0
- package/dist/web/keyboard.js +235 -0
- package/dist/web/keyboard.js.map +1 -0
- package/dist/web/layout.d.ts +171 -0
- package/dist/web/layout.d.ts.map +1 -0
- package/dist/web/layout.js +157 -0
- package/dist/web/layout.js.map +1 -0
- package/dist/web/liquid.d.ts +24 -0
- package/dist/web/liquid.d.ts.map +1 -0
- package/dist/web/liquid.js +65 -0
- package/dist/web/liquid.js.map +1 -0
- package/dist/web/loading.d.ts +21 -0
- package/dist/web/loading.d.ts.map +1 -0
- package/dist/web/loading.js +153 -0
- package/dist/web/loading.js.map +1 -0
- package/dist/web/motion-states.d.ts +43 -0
- package/dist/web/motion-states.d.ts.map +1 -0
- package/dist/web/motion-states.js +243 -0
- package/dist/web/motion-states.js.map +1 -0
- package/dist/web/navigation-entry.d.ts +31 -0
- package/dist/web/navigation-entry.d.ts.map +1 -0
- package/dist/web/navigation-entry.js +269 -0
- package/dist/web/navigation-entry.js.map +1 -0
- package/dist/web/particles.d.ts +44 -0
- package/dist/web/particles.d.ts.map +1 -0
- package/dist/web/particles.js +234 -0
- package/dist/web/particles.js.map +1 -0
- package/dist/web/physics.d.ts +93 -0
- package/dist/web/physics.d.ts.map +1 -0
- package/dist/web/physics.js +588 -0
- package/dist/web/physics.js.map +1 -0
- package/dist/web/plan.d.ts +13 -0
- package/dist/web/plan.d.ts.map +1 -0
- package/dist/web/plan.js +164 -0
- package/dist/web/plan.js.map +1 -0
- package/dist/web/platform-host.d.ts +5 -0
- package/dist/web/platform-host.d.ts.map +1 -0
- package/dist/web/platform-host.js +2 -0
- package/dist/web/platform-host.js.map +1 -0
- package/dist/web/pointer.d.ts +43 -0
- package/dist/web/pointer.d.ts.map +1 -0
- package/dist/web/pointer.js +295 -0
- package/dist/web/pointer.js.map +1 -0
- package/dist/web/press.d.ts +26 -0
- package/dist/web/press.d.ts.map +1 -0
- package/dist/web/press.js +170 -0
- package/dist/web/press.js.map +1 -0
- package/dist/web/progress.d.ts +17 -0
- package/dist/web/progress.d.ts.map +1 -0
- package/dist/web/progress.js +69 -0
- package/dist/web/progress.js.map +1 -0
- package/dist/web/properties.d.ts +25 -0
- package/dist/web/properties.d.ts.map +1 -0
- package/dist/web/properties.js +62 -0
- package/dist/web/properties.js.map +1 -0
- package/dist/web/public.d.ts +163 -0
- package/dist/web/public.d.ts.map +1 -0
- package/dist/web/public.js +71 -0
- package/dist/web/public.js.map +1 -0
- package/dist/web/reorder.d.ts +38 -0
- package/dist/web/reorder.d.ts.map +1 -0
- package/dist/web/reorder.js +560 -0
- package/dist/web/reorder.js.map +1 -0
- package/dist/web/return-target.d.ts +21 -0
- package/dist/web/return-target.d.ts.map +1 -0
- package/dist/web/return-target.js +75 -0
- package/dist/web/return-target.js.map +1 -0
- package/dist/web/reveal.d.ts +17 -0
- package/dist/web/reveal.d.ts.map +1 -0
- package/dist/web/reveal.js +134 -0
- package/dist/web/reveal.js.map +1 -0
- package/dist/web/runtime.d.ts +359 -0
- package/dist/web/runtime.d.ts.map +1 -0
- package/dist/web/runtime.js +2768 -0
- package/dist/web/runtime.js.map +1 -0
- package/dist/web/scene.d.ts +28 -0
- package/dist/web/scene.d.ts.map +1 -0
- package/dist/web/scene.js +41 -0
- package/dist/web/scene.js.map +1 -0
- package/dist/web/scheduler.d.ts +34 -0
- package/dist/web/scheduler.d.ts.map +1 -0
- package/dist/web/scheduler.js +105 -0
- package/dist/web/scheduler.js.map +1 -0
- package/dist/web/scope.d.ts +31 -0
- package/dist/web/scope.d.ts.map +1 -0
- package/dist/web/scope.js +306 -0
- package/dist/web/scope.js.map +1 -0
- package/dist/web/scroll-header.d.ts +53 -0
- package/dist/web/scroll-header.d.ts.map +1 -0
- package/dist/web/scroll-header.js +395 -0
- package/dist/web/scroll-header.js.map +1 -0
- package/dist/web/scroll.d.ts +80 -0
- package/dist/web/scroll.d.ts.map +1 -0
- package/dist/web/scroll.js +247 -0
- package/dist/web/scroll.js.map +1 -0
- package/dist/web/sensors.d.ts +61 -0
- package/dist/web/sensors.d.ts.map +1 -0
- package/dist/web/sensors.js +364 -0
- package/dist/web/sensors.js.map +1 -0
- package/dist/web/sequence.d.ts +26 -0
- package/dist/web/sequence.d.ts.map +1 -0
- package/dist/web/sequence.js +28 -0
- package/dist/web/sequence.js.map +1 -0
- package/dist/web/shape.d.ts +35 -0
- package/dist/web/shape.d.ts.map +1 -0
- package/dist/web/shape.js +195 -0
- package/dist/web/shape.js.map +1 -0
- package/dist/web/shared-layout.d.ts +46 -0
- package/dist/web/shared-layout.d.ts.map +1 -0
- package/dist/web/shared-layout.js +454 -0
- package/dist/web/shared-layout.js.map +1 -0
- package/dist/web/shared-navigation.d.ts +32 -0
- package/dist/web/shared-navigation.d.ts.map +1 -0
- package/dist/web/shared-navigation.js +183 -0
- package/dist/web/shared-navigation.js.map +1 -0
- package/dist/web/size.d.ts +59 -0
- package/dist/web/size.d.ts.map +1 -0
- package/dist/web/size.js +312 -0
- package/dist/web/size.js.map +1 -0
- package/dist/web/spring-value.d.ts +53 -0
- package/dist/web/spring-value.d.ts.map +1 -0
- package/dist/web/spring-value.js +193 -0
- package/dist/web/spring-value.js.map +1 -0
- package/dist/web/stroke.d.ts +118 -0
- package/dist/web/stroke.d.ts.map +1 -0
- package/dist/web/stroke.js +470 -0
- package/dist/web/stroke.js.map +1 -0
- package/dist/web/style.d.ts +12 -0
- package/dist/web/style.d.ts.map +1 -0
- package/dist/web/style.js +131 -0
- package/dist/web/style.js.map +1 -0
- package/dist/web/surface-effect.d.ts +30 -0
- package/dist/web/surface-effect.d.ts.map +1 -0
- package/dist/web/surface-effect.js +134 -0
- package/dist/web/surface-effect.js.map +1 -0
- package/dist/web/symbol-effect.d.ts +15 -0
- package/dist/web/symbol-effect.d.ts.map +1 -0
- package/dist/web/symbol-effect.js +186 -0
- package/dist/web/symbol-effect.js.map +1 -0
- package/dist/web/text-effect.d.ts +20 -0
- package/dist/web/text-effect.d.ts.map +1 -0
- package/dist/web/text-effect.js +347 -0
- package/dist/web/text-effect.js.map +1 -0
- package/dist/web/timers.d.ts +14 -0
- package/dist/web/timers.d.ts.map +1 -0
- package/dist/web/timers.js +57 -0
- package/dist/web/timers.js.map +1 -0
- package/dist/web/types.d.ts +39 -0
- package/dist/web/types.d.ts.map +1 -0
- package/dist/web/types.js +6 -0
- package/dist/web/types.js.map +1 -0
- package/dist/web/value-playback.d.ts +44 -0
- package/dist/web/value-playback.d.ts.map +1 -0
- package/dist/web/value-playback.js +75 -0
- package/dist/web/value-playback.js.map +1 -0
- package/dist/web/value.d.ts +118 -0
- package/dist/web/value.d.ts.map +1 -0
- package/dist/web/value.js +318 -0
- package/dist/web/value.js.map +1 -0
- package/dist/web/viewport.d.ts +36 -0
- package/dist/web/viewport.d.ts.map +1 -0
- package/dist/web/viewport.js +297 -0
- package/dist/web/viewport.js.map +1 -0
- package/dist/web/vue/attachment.d.ts +7 -0
- package/dist/web/vue/attachment.d.ts.map +1 -0
- package/dist/web/vue/attachment.js +50 -0
- package/dist/web/vue/attachment.js.map +1 -0
- package/dist/web/vue/index.d.ts +35 -0
- package/dist/web/vue/index.d.ts.map +1 -0
- package/dist/web/vue/index.js +346 -0
- package/dist/web/vue/index.js.map +1 -0
- package/dist/web/vue/viewport-directive.d.ts +12 -0
- package/dist/web/vue/viewport-directive.d.ts.map +1 -0
- package/dist/web/vue/viewport-directive.js +85 -0
- package/dist/web/vue/viewport-directive.js.map +1 -0
- package/dist/web/zoomable.d.ts +41 -0
- package/dist/web/zoomable.d.ts.map +1 -0
- package/dist/web/zoomable.js +401 -0
- package/dist/web/zoomable.js.map +1 -0
- package/dist/zoomable.d.ts +1 -1
- package/dist/zoomable.d.ts.map +1 -1
- package/package.json +142 -8
- package/platforms/android/include.gradle +10 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/BlurEffect.java +101 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/CircleMath.java +190 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/CircleWorld.java +253 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/ColorMath.java +44 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/DecorationTarget.java +7 -6
- 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 +246 -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/KeyframeFactory.java +26 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/LiveSpring.java +331 -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/RealizedReorder.java +161 -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 +281 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/ScrollHeaderSurface.java +39 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/ScrollInput.java +107 -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 +130 -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 +21 -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 +230 -0
- package/platforms/ios/src/JoltCircleWorld.h +19 -0
- package/platforms/ios/src/JoltCircleWorld.m +243 -0
- package/platforms/ios/src/JoltColorMath.h +40 -0
- package/platforms/ios/src/JoltGestureSession.h +23 -0
- package/platforms/ios/src/JoltGestureSession.m +251 -0
- package/platforms/ios/src/JoltInteractiveModal.h +16 -0
- package/platforms/ios/src/JoltInteractiveModal.m +178 -0
- package/platforms/ios/src/JoltInteractiveNavigation.h +23 -0
- package/platforms/ios/src/JoltInteractiveNavigation.m +255 -0
- package/platforms/ios/src/JoltLivePaint.h +12 -0
- package/platforms/ios/src/JoltLivePaint.m +131 -0
- package/platforms/ios/src/JoltLiveSpring.h +30 -0
- package/platforms/ios/src/JoltLiveSpring.m +385 -0
- package/platforms/ios/src/JoltMotionProbe.h +9 -0
- package/platforms/ios/src/JoltMotionProbe.m +72 -0
- package/platforms/ios/src/JoltRealizedReorder.h +13 -0
- package/platforms/ios/src/JoltRealizedReorder.m +148 -0
- package/platforms/ios/src/JoltReorderSession.h +15 -0
- package/platforms/ios/src/JoltReorderSession.m +205 -0
- package/platforms/ios/src/JoltScrollHeader.h +15 -0
- package/platforms/ios/src/JoltScrollHeader.m +244 -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 +13 -0
- package/src/android-plugin.d.ts +518 -0
- package/src/animate.ts +152 -20
- 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 +2 -0
- package/src/bottom-sheet/index.ts +610 -0
- package/src/bottom-sheet/native.ts +220 -0
- package/src/color.ts +2 -56
- package/src/config.ts +39 -1
- package/src/core/arrival.ts +30 -0
- package/src/core/circle-math.ts +418 -0
- package/src/core/color.ts +55 -0
- package/src/core/decay.ts +54 -0
- package/src/core/decoration.ts +32 -0
- package/src/core/drag-physics.ts +110 -0
- package/src/core/driver.ts +53 -0
- package/src/core/easing.ts +120 -0
- package/src/core/gesture-math.ts +53 -0
- package/src/core/gradient.ts +32 -0
- package/src/core/gravity.ts +107 -0
- package/src/core/haptic.ts +34 -0
- package/src/core/index.ts +24 -0
- package/src/core/liquid-grid.ts +28 -0
- package/src/core/numeric-map.ts +58 -0
- package/src/core/ownership.ts +21 -0
- package/src/core/playback.ts +112 -0
- package/src/core/presets.ts +139 -0
- package/src/core/properties.ts +40 -0
- package/src/core/reorder.ts +53 -0
- package/src/core/roll-diff.ts +57 -0
- package/src/core/sampling.ts +173 -0
- package/src/core/scroll-header.ts +100 -0
- package/src/core/sequence.ts +380 -0
- package/src/core/shape-path.ts +127 -0
- package/src/core/sheet-geometry.ts +91 -0
- package/src/core/spring.ts +135 -0
- package/src/core/state-transition.ts +97 -0
- package/src/core/svg-path.ts +360 -0
- package/src/core/track.ts +664 -0
- package/src/core/transition.ts +367 -0
- package/src/decay.ts +1 -45
- package/src/decoration.ts +7 -33
- package/src/drag-physics.ts +1 -110
- 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 +72 -15
- package/src/driver/frame.ts +10 -0
- package/src/driver/index.ts +3 -46
- 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 +1 -100
- package/src/engine.ts +233 -108
- 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 +140 -0
- package/src/gradient.ts +656 -0
- package/src/gravity.ts +1 -0
- package/src/haptics.ts +108 -61
- package/src/image-effect.ts +10 -2
- package/src/index.ts +62 -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 +434 -0
- package/src/interactive-navigation/modal.ts +306 -0
- package/src/ios-plugin.d.ts +326 -0
- package/src/keyboard.ts +231 -7
- package/src/liquid-grid.ts +1 -28
- package/src/live-paint.ts +78 -0
- package/src/live-spring-driver.ts +260 -0
- package/src/mixer.ts +354 -0
- package/src/motion-scope.ts +109 -35
- package/src/motion-states.ts +159 -98
- package/src/motion-value.ts +1491 -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 +582 -0
- package/src/physics/native.ts +136 -0
- package/src/playback-group.ts +17 -1
- package/src/playback.ts +1 -62
- package/src/predictive-back/index.ts +280 -0
- package/src/predictive-back/presentation.ts +6 -0
- package/src/presets.ts +2 -128
- package/src/press.ts +10 -2
- package/src/properties.ts +4 -45
- package/src/reorder/handle.ts +9 -0
- package/src/reorder/index.ts +272 -0
- package/src/reorder/list-view.ts +262 -0
- package/src/reorder/model.ts +1 -0
- package/src/reorder/realized.ts +305 -0
- package/src/reorder/surface.ts +10 -0
- package/src/reorder/types.ts +89 -0
- package/src/roll-diff.ts +2 -57
- package/src/sampling.ts +1 -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 +1 -0
- package/src/scroll-header/index.ts +833 -0
- package/src/scroll-header/native.ts +121 -0
- package/src/scroll-header/surface.ts +11 -0
- package/src/seekable-timeline.ts +330 -0
- package/src/sensors/index.ts +246 -0
- package/src/sensors/native.ts +72 -0
- package/src/sequence.ts +65 -198
- package/src/shapes/android.ts +63 -0
- package/src/shapes/index.ts +278 -0
- package/src/shapes/ios.ts +194 -0
- package/src/shapes/native.ts +27 -0
- package/src/shapes/path.ts +1 -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 +420 -0
- package/src/shared-navigation/return-signal.ts +41 -0
- package/src/shared-navigation/return-target.ts +251 -0
- package/src/shared-navigation/scope.ts +3 -0
- package/src/shared-navigation/targets.ts +38 -0
- package/src/size-layout.ts +265 -0
- package/src/size.ts +313 -0
- package/src/spring.ts +1 -95
- package/src/svg-path.ts +1 -355
- 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 +13 -347
- package/src/transition.ts +1 -179
- package/src/types.ts +16 -3
- package/src/value-observers.ts +147 -0
- package/src/value-track.ts +82 -0
- package/src/vue/index.ts +147 -1
- package/src/web/blur.ts +206 -0
- package/src/web/bottom-sheet.ts +358 -0
- package/src/web/compose.ts +211 -0
- package/src/web/curve.ts +55 -0
- package/src/web/decay.ts +76 -0
- package/src/web/diagnostics.ts +121 -0
- package/src/web/drag.ts +583 -0
- package/src/web/effect.ts +324 -0
- package/src/web/geometry.ts +40 -0
- package/src/web/gesture-scroll.ts +129 -0
- package/src/web/gestures.ts +667 -0
- package/src/web/glass.ts +152 -0
- package/src/web/gradient.ts +432 -0
- package/src/web/haptics.ts +98 -0
- package/src/web/image-effect.ts +442 -0
- package/src/web/image-surface.ts +196 -0
- package/src/web/index.ts +17 -0
- package/src/web/interaction.ts +136 -0
- package/src/web/interactive-modal.ts +247 -0
- package/src/web/interactive-navigation.ts +279 -0
- package/src/web/items.ts +173 -0
- package/src/web/keyboard.ts +282 -0
- package/src/web/layout.ts +207 -0
- package/src/web/liquid.ts +112 -0
- package/src/web/loading.ts +201 -0
- package/src/web/motion-states.ts +304 -0
- package/src/web/navigation-entry.ts +325 -0
- package/src/web/particles.ts +328 -0
- package/src/web/physics.ts +765 -0
- package/src/web/plan.ts +226 -0
- package/src/web/platform-host.ts +5 -0
- package/src/web/pointer.ts +336 -0
- package/src/web/press.ts +217 -0
- package/src/web/progress.ts +71 -0
- package/src/web/properties.ts +76 -0
- package/src/web/public.ts +503 -0
- package/src/web/reorder.ts +718 -0
- package/src/web/return-target.ts +103 -0
- package/src/web/reveal.ts +178 -0
- package/src/web/runtime.ts +3477 -0
- package/src/web/scene.ts +76 -0
- package/src/web/scheduler.ts +106 -0
- package/src/web/scope.ts +403 -0
- package/src/web/scroll-header.ts +492 -0
- package/src/web/scroll.ts +295 -0
- package/src/web/sensors.ts +468 -0
- package/src/web/sequence.ts +60 -0
- package/src/web/shape.ts +260 -0
- package/src/web/shared-layout.ts +572 -0
- package/src/web/shared-navigation.ts +238 -0
- package/src/web/size.ts +368 -0
- package/src/web/spring-value.ts +218 -0
- package/src/web/stroke.ts +547 -0
- package/src/web/style.ts +170 -0
- package/src/web/surface-effect.ts +133 -0
- package/src/web/symbol-effect.ts +224 -0
- package/src/web/text-effect.ts +464 -0
- package/src/web/timers.ts +51 -0
- package/src/web/types.ts +48 -0
- package/src/web/value-playback.ts +104 -0
- package/src/web/value.ts +371 -0
- package/src/web/viewport.ts +341 -0
- package/src/web/vue/attachment.ts +47 -0
- package/src/web/vue/index.ts +364 -0
- package/src/web/vue/viewport-directive.ts +99 -0
- package/src/web/zoomable.ts +521 -0
- package/src/zoomable.ts +1 -1
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
package org.rafaelaugusto.jolt;
|
|
2
|
+
|
|
3
|
+
import android.database.ContentObserver;
|
|
4
|
+
import android.graphics.Canvas;
|
|
5
|
+
import android.graphics.ColorFilter;
|
|
6
|
+
import android.graphics.Paint;
|
|
7
|
+
import android.graphics.PixelFormat;
|
|
8
|
+
import android.graphics.drawable.Drawable;
|
|
9
|
+
import android.os.Handler;
|
|
10
|
+
import android.os.Looper;
|
|
11
|
+
import android.os.SystemClock;
|
|
12
|
+
import android.provider.Settings;
|
|
13
|
+
import android.view.Choreographer;
|
|
14
|
+
import android.view.View;
|
|
15
|
+
import android.view.ViewParent;
|
|
16
|
+
|
|
17
|
+
/** A visual-only ViewOverlay drawable: all integration, deadlines and drawing stay in Java. */
|
|
18
|
+
public final class ParticleEmitter extends Drawable implements Choreographer.FrameCallback, View.OnAttachStateChangeListener {
|
|
19
|
+
public interface Listener { void onEnd(); }
|
|
20
|
+
private static int activeCount;
|
|
21
|
+
private View target, host;
|
|
22
|
+
private final boolean overlay;
|
|
23
|
+
private final float density;
|
|
24
|
+
private final ParticleSimulation simulation;
|
|
25
|
+
private final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
|
26
|
+
private final Choreographer choreographer = Choreographer.getInstance();
|
|
27
|
+
private final Handler handler = new Handler(Looper.getMainLooper());
|
|
28
|
+
private final float[] point = new float[2];
|
|
29
|
+
private final int[] location = new int[2];
|
|
30
|
+
private final long[] intervals = new long[512];
|
|
31
|
+
private final ContentObserver scaleObserver = new ContentObserver(handler) {
|
|
32
|
+
@Override public void onChange(boolean selfChange) { if (disabled()) stop(); }
|
|
33
|
+
};
|
|
34
|
+
private Listener listener;
|
|
35
|
+
private boolean started, stopped, observing;
|
|
36
|
+
private long began, lastFrame, frames, draws, workNanos, drawNanos;
|
|
37
|
+
private float originX, originY, corner;
|
|
38
|
+
private final Runnable expire = new Runnable() { @Override public void run() { stop(); } };
|
|
39
|
+
private final long deadline;
|
|
40
|
+
|
|
41
|
+
public ParticleEmitter(View target, boolean overlay, int[] colors, int shape, int source,
|
|
42
|
+
double rate, double lifetimeMs, float size, float velocity, float velocityRange,
|
|
43
|
+
float angle, float spread, float gravity, float spin, float spinRange,
|
|
44
|
+
boolean fade, double durationMs, Listener listener) {
|
|
45
|
+
this.target = target; this.host = overlay ? target.getRootView() : target; this.overlay = overlay;
|
|
46
|
+
this.listener = listener;
|
|
47
|
+
density = target.getResources().getDisplayMetrics().density;
|
|
48
|
+
simulation = new ParticleSimulation(colors, shape, source, rate, lifetimeMs, size,
|
|
49
|
+
velocity, velocityRange, angle, spread, gravity, spin, spinRange, fade, durationMs, System.nanoTime());
|
|
50
|
+
deadline = durationMs < 0 ? -1 : (long)Math.ceil(durationMs + lifetimeMs);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
private boolean disabled() {
|
|
54
|
+
return target != null && Settings.Global.getFloat(target.getContext().getContentResolver(),
|
|
55
|
+
Settings.Global.ANIMATOR_DURATION_SCALE, 1) == 0;
|
|
56
|
+
}
|
|
57
|
+
private boolean valid() {
|
|
58
|
+
return target != null && target.isAttachedToWindow() && target.getWindowVisibility() == View.VISIBLE
|
|
59
|
+
&& target.isShown() && target.getWidth() > 0 && target.getHeight() > 0
|
|
60
|
+
&& host.getWindowToken() != null && host.getWindowToken() == target.getWindowToken()
|
|
61
|
+
&& (!overlay || host == target.getRootView());
|
|
62
|
+
}
|
|
63
|
+
public void start() {
|
|
64
|
+
if (started || stopped) return;
|
|
65
|
+
if (!valid() || disabled()) { stop(); return; }
|
|
66
|
+
started = true; activeCount++;
|
|
67
|
+
began = SystemClock.uptimeMillis();
|
|
68
|
+
if (overlay) {
|
|
69
|
+
// Convert the center through transforms and parent scrolling into root-overlay coordinates.
|
|
70
|
+
point[0] = target.getWidth() * .5f; point[1] = target.getHeight() * .5f;
|
|
71
|
+
View current = target;
|
|
72
|
+
while (current != host) {
|
|
73
|
+
current.getMatrix().mapPoints(point);
|
|
74
|
+
point[0] += current.getLeft(); point[1] += current.getTop();
|
|
75
|
+
ViewParent parent = current.getParent();
|
|
76
|
+
if (!(parent instanceof View)) { stop(); return; }
|
|
77
|
+
current = (View)parent;
|
|
78
|
+
point[0] -= current.getScrollX(); point[1] -= current.getScrollY();
|
|
79
|
+
}
|
|
80
|
+
originX = point[0]; originY = point[1];
|
|
81
|
+
}
|
|
82
|
+
target.addOnAttachStateChangeListener(this);
|
|
83
|
+
target.getContext().getContentResolver().registerContentObserver(
|
|
84
|
+
Settings.Global.getUriFor(Settings.Global.ANIMATOR_DURATION_SCALE), false, scaleObserver);
|
|
85
|
+
observing = true;
|
|
86
|
+
setBounds(0, 0, host.getWidth(), host.getHeight());
|
|
87
|
+
host.getOverlay().add(this);
|
|
88
|
+
if (deadline >= 0) handler.postDelayed(expire, deadline);
|
|
89
|
+
choreographer.postFrameCallback(this);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/** Layout/identity checks at JS boundaries; moving views otherwise stay in their native overlay. */
|
|
93
|
+
public void refresh(float cornerPixels) {
|
|
94
|
+
corner = Math.max(0, cornerPixels);
|
|
95
|
+
if (!stopped && started && !valid()) stop();
|
|
96
|
+
}
|
|
97
|
+
@Override public void doFrame(long frameTimeNanos) {
|
|
98
|
+
if (stopped) return;
|
|
99
|
+
long workStart = System.nanoTime();
|
|
100
|
+
if (!valid()) { stop(); return; }
|
|
101
|
+
if (lastFrame != 0) intervals[(int)((frames - 1) % intervals.length)] = frameTimeNanos - lastFrame;
|
|
102
|
+
lastFrame = frameTimeNanos; frames++;
|
|
103
|
+
// Deliberately use monotonic wall time: UI stalls cannot extend emission/lifetime deadlines.
|
|
104
|
+
simulation.advance((SystemClock.uptimeMillis() - began) / 1000d,
|
|
105
|
+
overlay ? 0 : target.getWidth() / density, overlay ? 0 : target.getHeight() / density);
|
|
106
|
+
if (simulation.finished()) { stop(); return; }
|
|
107
|
+
if (getBounds().width() != host.getWidth() || getBounds().height() != host.getHeight())
|
|
108
|
+
setBounds(0, 0, host.getWidth(), host.getHeight());
|
|
109
|
+
invalidateSelf();
|
|
110
|
+
workNanos += System.nanoTime() - workStart;
|
|
111
|
+
choreographer.postFrameCallback(this);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
@Override public void draw(Canvas canvas) {
|
|
115
|
+
if (stopped) return;
|
|
116
|
+
long drawStart = System.nanoTime(); draws++;
|
|
117
|
+
int save = canvas.save();
|
|
118
|
+
// The overlay is above this host's content, bounded by the host/window viewport.
|
|
119
|
+
canvas.clipRect(getBounds());
|
|
120
|
+
if (!overlay && corner > 0) {
|
|
121
|
+
// A retained path avoids allocating rounded clips per frame.
|
|
122
|
+
clip.rewind();
|
|
123
|
+
rect.set(getBounds());
|
|
124
|
+
clip.addRoundRect(rect, corner, corner, android.graphics.Path.Direction.CW);
|
|
125
|
+
canvas.clipPath(clip);
|
|
126
|
+
}
|
|
127
|
+
if (overlay) canvas.translate(originX, originY);
|
|
128
|
+
canvas.scale(density, density);
|
|
129
|
+
float size = simulation.size, radius = size * .5f;
|
|
130
|
+
paint.setStyle(simulation.shape == 2 ? Paint.Style.STROKE : Paint.Style.FILL);
|
|
131
|
+
paint.setStrokeWidth(size * (3f / 32));
|
|
132
|
+
for (int i = 0, count = simulation.live(); i < count; i++) {
|
|
133
|
+
paint.setColor(simulation.color(i));
|
|
134
|
+
float x = simulation.x(i), y = simulation.y(i);
|
|
135
|
+
if (simulation.shape == 1) {
|
|
136
|
+
int particleSave = canvas.save();
|
|
137
|
+
canvas.rotate(simulation.rotation(i), x, y);
|
|
138
|
+
canvas.drawRect(x - radius, y - size * (9f / 32), x + radius, y + size * (9f / 32), paint);
|
|
139
|
+
canvas.restoreToCount(particleSave);
|
|
140
|
+
} else canvas.drawCircle(x, y, simulation.shape == 2 ? size * (14f / 32) : radius, paint);
|
|
141
|
+
}
|
|
142
|
+
canvas.restoreToCount(save);
|
|
143
|
+
drawNanos += System.nanoTime() - drawStart;
|
|
144
|
+
}
|
|
145
|
+
private final android.graphics.Path clip = new android.graphics.Path();
|
|
146
|
+
private final android.graphics.RectF rect = new android.graphics.RectF();
|
|
147
|
+
|
|
148
|
+
public void stop() {
|
|
149
|
+
if (stopped) return;
|
|
150
|
+
stopped = true;
|
|
151
|
+
choreographer.removeFrameCallback(this);
|
|
152
|
+
handler.removeCallbacks(expire);
|
|
153
|
+
if (observing) target.getContext().getContentResolver().unregisterContentObserver(scaleObserver);
|
|
154
|
+
observing = false;
|
|
155
|
+
if (started) { activeCount--; target.removeOnAttachStateChangeListener(this); host.getOverlay().remove(this); }
|
|
156
|
+
simulation.clear();
|
|
157
|
+
setCallback(null);
|
|
158
|
+
target = host = null;
|
|
159
|
+
Listener done = listener; listener = null;
|
|
160
|
+
if (done != null) done.onEnd();
|
|
161
|
+
}
|
|
162
|
+
@Override public void onViewAttachedToWindow(View view) { }
|
|
163
|
+
@Override public void onViewDetachedFromWindow(View view) { stop(); }
|
|
164
|
+
@Override public void setAlpha(int alpha) { }
|
|
165
|
+
@Override public void setColorFilter(ColorFilter filter) { paint.setColorFilter(filter); }
|
|
166
|
+
@Override public int getOpacity() { return PixelFormat.TRANSLUCENT; }
|
|
167
|
+
|
|
168
|
+
// Native conformance/diagnostics. Reads allocate only when explicitly requested, never per frame.
|
|
169
|
+
public static int getActiveCount() { return activeCount; }
|
|
170
|
+
public boolean isStopped() { return stopped; }
|
|
171
|
+
public int getLiveCount() { return simulation.live(); }
|
|
172
|
+
public int getPeakCount() { return simulation.peak(); }
|
|
173
|
+
public int getCapacity() { return simulation.capacity(); }
|
|
174
|
+
public long getEmittedCount() { return simulation.emitted(); }
|
|
175
|
+
public long getSkippedCount() { return simulation.skipped(); }
|
|
176
|
+
public long getFrameCount() { return frames; }
|
|
177
|
+
public long getDrawCount() { return draws; }
|
|
178
|
+
public long getWorkNanos() { return workNanos; }
|
|
179
|
+
public long getDrawNanos() { return drawNanos; }
|
|
180
|
+
public float getDensity() { return density; }
|
|
181
|
+
public double getTimeSeconds() { return simulation.time(); }
|
|
182
|
+
public boolean isObserving() { return observing; }
|
|
183
|
+
public float[] getOriginInWindow() {
|
|
184
|
+
if (host != null) host.getLocationInWindow(location);
|
|
185
|
+
return new float[] { originX + location[0], originY + location[1] };
|
|
186
|
+
}
|
|
187
|
+
public float[] getParticle(int index) { return new float[] { simulation.x(index), simulation.y(index), simulation.rotation(index), simulation.color(index) }; }
|
|
188
|
+
public long[] getFrameIntervals() {
|
|
189
|
+
int count = (int)Math.min(Math.max(0, frames - 1), intervals.length);
|
|
190
|
+
return java.util.Arrays.copyOf(intervals, count);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
package org.rafaelaugusto.jolt;
|
|
2
|
+
|
|
3
|
+
/** Bounded, allocation-free particle state. Units are DIPs, seconds and degrees.
|
|
4
|
+
* Android supplies elapsed wall time; the same engine runs in deterministic JVM tests. */
|
|
5
|
+
public final class ParticleSimulation {
|
|
6
|
+
public static final int MAX_PARTICLES = 10000;
|
|
7
|
+
public final int shape, source;
|
|
8
|
+
public final float size;
|
|
9
|
+
private final int[] palette;
|
|
10
|
+
private final double rate, lifetime, duration;
|
|
11
|
+
private final float velocity, velocityRange, angle, spread, gravity, spin, spinRange;
|
|
12
|
+
private final boolean fade;
|
|
13
|
+
private double[] births;
|
|
14
|
+
private float[] xs, ys, vxs, vys, rotations, spins;
|
|
15
|
+
private int[] colors;
|
|
16
|
+
private int live, peak;
|
|
17
|
+
private long scheduled, emitted, skipped;
|
|
18
|
+
private long random;
|
|
19
|
+
private double time;
|
|
20
|
+
|
|
21
|
+
public ParticleSimulation(int[] palette, int shape, int source, double rate,
|
|
22
|
+
double lifetimeMs, float size, float velocity, float velocityRange,
|
|
23
|
+
float angle, float spread, float gravity, float spin, float spinRange,
|
|
24
|
+
boolean fade, double durationMs, long seed) {
|
|
25
|
+
if (palette == null || palette.length == 0 || palette.length > 32 || shape < 0 || shape > 2 || source < 0 || source > 2)
|
|
26
|
+
throw new IllegalArgumentException("Invalid particle colors, shape or source");
|
|
27
|
+
if (!finite(rate) || rate <= 0 || rate > 50000 || !finite(lifetimeMs) || lifetimeMs < 1 || lifetimeMs > 60000
|
|
28
|
+
|| !finite(durationMs) || (durationMs != -1 && (durationMs < 1 || durationMs > Integer.MAX_VALUE - lifetimeMs - 50))
|
|
29
|
+
|| !finite(size) || size < 1 || size > 128 || !finite(velocity) || velocity < 0 || velocity > 10000
|
|
30
|
+
|| !finite(velocityRange) || velocityRange < 0 || velocityRange > 10000
|
|
31
|
+
|| !finite(angle) || Math.abs(angle) > 360 || !finite(spread) || spread < 0 || spread > 360
|
|
32
|
+
|| !finite(gravity) || Math.abs(gravity) > 10000 || !finite(spin) || Math.abs(spin) > 3600
|
|
33
|
+
|| !finite(spinRange) || spinRange < 0 || spinRange > 3600)
|
|
34
|
+
throw new IllegalArgumentException("Invalid particle settings");
|
|
35
|
+
this.palette = palette.clone();
|
|
36
|
+
this.shape = shape; this.source = source; this.rate = rate;
|
|
37
|
+
lifetime = lifetimeMs / 1000; duration = durationMs < 0 ? Double.POSITIVE_INFINITY : durationMs / 1000;
|
|
38
|
+
this.size = size; this.velocity = velocity; this.velocityRange = velocityRange;
|
|
39
|
+
this.angle = angle; this.spread = spread; this.gravity = gravity;
|
|
40
|
+
this.spin = spin; this.spinRange = spinRange; this.fade = fade;
|
|
41
|
+
random = seed == 0 ? 1 : seed;
|
|
42
|
+
double population = rate * Math.min(lifetime, duration);
|
|
43
|
+
if (population > MAX_PARTICLES + 0.000001) throw new IllegalArgumentException("Particle population exceeds 10000");
|
|
44
|
+
int capacity = Math.max(1, Math.min(MAX_PARTICLES, (int)Math.ceil(population)));
|
|
45
|
+
births = new double[capacity]; xs = new float[capacity]; ys = new float[capacity];
|
|
46
|
+
vxs = new float[capacity]; vys = new float[capacity]; rotations = new float[capacity];
|
|
47
|
+
spins = new float[capacity]; colors = new int[capacity];
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
private static boolean finite(double value) { return !Double.isNaN(value) && !Double.isInfinite(value); }
|
|
51
|
+
private float unit() {
|
|
52
|
+
// xorshift64*: deterministic internal seed, never part of the public JS contract.
|
|
53
|
+
random ^= random >>> 12; random ^= random << 25; random ^= random >>> 27;
|
|
54
|
+
return ((random * 2685821657736338717L) >>> 40) / 16777216f;
|
|
55
|
+
}
|
|
56
|
+
private float variation(float range) { return (unit() * 2 - 1) * range; }
|
|
57
|
+
|
|
58
|
+
/** Advance directly to the current time, skipping already-dead births after a stall.
|
|
59
|
+
* No backlog of expired particles and no integration steps proportional to missed frames. */
|
|
60
|
+
public void advance(double elapsedSeconds, float width, float height) {
|
|
61
|
+
if (births == null || !finite(elapsedSeconds)) return;
|
|
62
|
+
time = Math.max(time, Math.max(0, elapsedSeconds));
|
|
63
|
+
for (int i = live - 1; i >= 0; i--) {
|
|
64
|
+
if (time - births[i] >= lifetime - 0.000000001) {
|
|
65
|
+
int last = --live;
|
|
66
|
+
births[i] = births[last]; xs[i] = xs[last]; ys[i] = ys[last];
|
|
67
|
+
vxs[i] = vxs[last]; vys[i] = vys[last]; rotations[i] = rotations[last];
|
|
68
|
+
spins[i] = spins[last]; colors[i] = colors[last];
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
long until = (long)Math.floor(Math.min(time, duration) * rate + 0.0000001);
|
|
72
|
+
long dead = Math.min(until, (long)Math.floor(Math.max(0, time - lifetime) * rate + 0.0000001));
|
|
73
|
+
if (dead > scheduled) { skipped += dead - scheduled; scheduled = dead; }
|
|
74
|
+
// scheduled is monotonic; at most capacity particles can be alive in this interval.
|
|
75
|
+
while (scheduled < until) {
|
|
76
|
+
long index = ++scheduled;
|
|
77
|
+
if (live >= births.length) { skipped++; continue; }
|
|
78
|
+
int i = live++;
|
|
79
|
+
births[i] = index / rate;
|
|
80
|
+
xs[i] = source == 0 ? width * .5f : unit() * width;
|
|
81
|
+
ys[i] = source == 1 ? 0 : source == 2 ? height : height * .5f;
|
|
82
|
+
double direction = Math.toRadians(angle + variation(spread * .5f));
|
|
83
|
+
float speed = velocity + variation(velocityRange);
|
|
84
|
+
vxs[i] = (float)Math.cos(direction) * speed;
|
|
85
|
+
vys[i] = (float)Math.sin(direction) * speed;
|
|
86
|
+
rotations[i] = shape == 1 ? unit() * 360 : 0;
|
|
87
|
+
spins[i] = spin + variation(spinRange);
|
|
88
|
+
colors[i] = palette[(int)((index - 1) % palette.length)];
|
|
89
|
+
emitted++;
|
|
90
|
+
}
|
|
91
|
+
peak = Math.max(peak, live);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
public float x(int i) { return xs[i] + vxs[i] * (float)(time - births[i]); }
|
|
95
|
+
public float y(int i) { float age = (float)(time - births[i]); return ys[i] + vys[i] * age + gravity * age * age * .5f; }
|
|
96
|
+
public float rotation(int i) { return rotations[i] + spins[i] * (float)(time - births[i]); }
|
|
97
|
+
public int color(int i) {
|
|
98
|
+
int color = colors[i];
|
|
99
|
+
if (!fade) return color;
|
|
100
|
+
int alpha = Math.round((color >>> 24) * (float)Math.max(0, 1 - (time - births[i]) / lifetime));
|
|
101
|
+
return (color & 0x00ffffff) | (alpha << 24);
|
|
102
|
+
}
|
|
103
|
+
public boolean finished() { return time >= duration + lifetime || (time >= duration && live == 0); }
|
|
104
|
+
public int live() { return live; }
|
|
105
|
+
public int peak() { return peak; }
|
|
106
|
+
public int capacity() { return births == null ? 0 : births.length; }
|
|
107
|
+
public long emitted() { return emitted; }
|
|
108
|
+
public long skipped() { return skipped; }
|
|
109
|
+
public double time() { return time; }
|
|
110
|
+
public void clear() {
|
|
111
|
+
live = 0;
|
|
112
|
+
births = null; xs = ys = vxs = vys = rotations = spins = null; colors = null;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
package org.rafaelaugusto.jolt;
|
|
2
|
+
|
|
3
|
+
import android.os.Build;
|
|
4
|
+
import android.os.SystemClock;
|
|
5
|
+
import android.view.Choreographer;
|
|
6
|
+
import android.view.View;
|
|
7
|
+
import androidx.activity.BackEventCompat;
|
|
8
|
+
import androidx.activity.OnBackPressedCallback;
|
|
9
|
+
import androidx.activity.OnBackPressedDispatcherOwner;
|
|
10
|
+
import androidx.activity.ViewTreeOnBackPressedDispatcherOwner;
|
|
11
|
+
import androidx.lifecycle.Lifecycle;
|
|
12
|
+
import androidx.lifecycle.LifecycleEventObserver;
|
|
13
|
+
import androidx.lifecycle.LifecycleOwner;
|
|
14
|
+
import org.json.JSONArray;
|
|
15
|
+
import org.json.JSONObject;
|
|
16
|
+
|
|
17
|
+
/** AndroidX owns system input. Progress, presentation and spring settlement never cross JS. */
|
|
18
|
+
public final class PredictiveBackSession extends OnBackPressedCallback implements
|
|
19
|
+
Choreographer.FrameCallback, View.OnAttachStateChangeListener, View.OnLayoutChangeListener, LifecycleEventObserver {
|
|
20
|
+
public interface Listener { void onState(int state, double progress, double velocity, int edge); }
|
|
21
|
+
// idle=0, tracking=1, cancelling=2, finishing=3, awaiting commit=4, cancelled=5, completed=6, disposed=7.
|
|
22
|
+
private final View view;
|
|
23
|
+
private final OnBackPressedDispatcherOwner owner;
|
|
24
|
+
private Listener listener;
|
|
25
|
+
private SharedNavigationScene sharedScene;
|
|
26
|
+
public void setSharedScene(SharedNavigationScene scene) { if(captured || disposed)throw new IllegalStateException("Attach shared presentation before back begins."); sharedScene=scene; }
|
|
27
|
+
private final SpringState spring = new SpringState(0, 0);
|
|
28
|
+
private final double stiffness, damping, mass;
|
|
29
|
+
private final float density, dx, dy, sx, sy, opacity, rotation;
|
|
30
|
+
private final boolean mirror;
|
|
31
|
+
private float baseX, baseY, baseSX, baseSY, baseAlpha, baseRotation;
|
|
32
|
+
private int width, height, rootWidth, rootHeight, edge = -1, phase;
|
|
33
|
+
private boolean captured, connected, disposed, scheduled, reduced, inputEnabled = true, ignorePress;
|
|
34
|
+
private double target, speed = 1;
|
|
35
|
+
private long lastProgressAt, previousFrame, settleAt;
|
|
36
|
+
private static int callbacks, active, progressEvents;
|
|
37
|
+
|
|
38
|
+
public static PredictiveBackSession attach(View view, String options, Listener listener) {
|
|
39
|
+
if (Build.VERSION.SDK_INT < 34 || view == null || !view.isAttachedToWindow()) return null;
|
|
40
|
+
OnBackPressedDispatcherOwner owner = ViewTreeOnBackPressedDispatcherOwner.get(view);
|
|
41
|
+
if (owner == null || !owner.getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED)) return null;
|
|
42
|
+
return new PredictiveBackSession(view, owner, options, listener);
|
|
43
|
+
}
|
|
44
|
+
private PredictiveBackSession(View view, OnBackPressedDispatcherOwner owner, String options, Listener listener) {
|
|
45
|
+
super(false);
|
|
46
|
+
this.view = view; this.owner = owner; this.listener = listener;
|
|
47
|
+
density = view.getResources().getDisplayMetrics().density;
|
|
48
|
+
try {
|
|
49
|
+
JSONObject config = new JSONObject(options), values = config.getJSONObject("values");
|
|
50
|
+
dx = end(values, "x", 0) * density; dy = end(values, "y", 0) * density;
|
|
51
|
+
sx = end(values, "scaleX", end(values, "scale", 1)); sy = end(values, "scaleY", end(values, "scale", 1));
|
|
52
|
+
opacity = end(values, "opacity", 1); rotation = end(values, "rotate", 0);
|
|
53
|
+
stiffness = config.getDouble("stiffness"); damping = config.getDouble("damping"); mass = config.getDouble("mass");
|
|
54
|
+
if (!Float.isFinite(dx) || !Float.isFinite(dy) || !Float.isFinite(sx) || !Float.isFinite(sy) || !Float.isFinite(opacity) || !Float.isFinite(rotation))
|
|
55
|
+
throw new IllegalArgumentException("Predictive back endpoints exceed native float bounds.");
|
|
56
|
+
mirror = config.getBoolean("mirrorX"); reduced = config.getBoolean("reduced"); speed = config.getDouble("timeScale");
|
|
57
|
+
inputEnabled = config.getBoolean("enabled");
|
|
58
|
+
} catch (Exception error) { throw new IllegalArgumentException(error); }
|
|
59
|
+
connected = true; callbacks++;
|
|
60
|
+
owner.getOnBackPressedDispatcher().addCallback(owner, this);
|
|
61
|
+
owner.getLifecycle().addObserver(this);
|
|
62
|
+
view.addOnAttachStateChangeListener(this); view.addOnLayoutChangeListener(this);
|
|
63
|
+
setEnabled(inputEnabled);
|
|
64
|
+
}
|
|
65
|
+
private static float end(JSONObject values, String key, float fallback) throws Exception {
|
|
66
|
+
JSONArray pair = values.optJSONArray(key);
|
|
67
|
+
return pair == null ? fallback : (float)pair.getDouble(1);
|
|
68
|
+
}
|
|
69
|
+
public static int callbackCount() { return callbacks; }
|
|
70
|
+
public static int activeCount() { return active; }
|
|
71
|
+
public static int progressEventCount() { return progressEvents; }
|
|
72
|
+
public double getProgress() { return spring.position; }
|
|
73
|
+
public void setMotion(boolean reduced, double timeScale) {
|
|
74
|
+
this.reduced = reduced; this.speed = timeScale;
|
|
75
|
+
if (reduced && captured) {
|
|
76
|
+
if (phase == 1 || phase == 2) { cancel(); finish(); }
|
|
77
|
+
else if (phase == 3) finish();
|
|
78
|
+
else if (phase == 4) apply();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
public void setInputEnabled(boolean enabled) {
|
|
82
|
+
inputEnabled = enabled;
|
|
83
|
+
if (!enabled && (phase == 1 || phase == 2)) { cancel(); finish(); }
|
|
84
|
+
if (!disposed) setEnabled(enabled);
|
|
85
|
+
}
|
|
86
|
+
private void emit(int state) {
|
|
87
|
+
if (listener != null) listener.onState(state, spring.position, spring.velocity, edge);
|
|
88
|
+
}
|
|
89
|
+
private void capture() {
|
|
90
|
+
if (captured) return;
|
|
91
|
+
captured = true; active++;
|
|
92
|
+
if(sharedScene!=null && !reduced)sharedScene.begin();
|
|
93
|
+
baseX = view.getTranslationX(); baseY = view.getTranslationY();
|
|
94
|
+
baseSX = view.getScaleX(); baseSY = view.getScaleY(); baseAlpha = view.getAlpha(); baseRotation = view.getRotation();
|
|
95
|
+
width = view.getWidth(); height = view.getHeight();
|
|
96
|
+
rootWidth = view.getRootView().getWidth(); rootHeight = view.getRootView().getHeight();
|
|
97
|
+
}
|
|
98
|
+
private void restore() {
|
|
99
|
+
if (!captured) return;
|
|
100
|
+
view.setTranslationX(baseX); view.setTranslationY(baseY);
|
|
101
|
+
view.setScaleX(baseSX); view.setScaleY(baseSY); view.setAlpha(baseAlpha); view.setRotation(baseRotation);
|
|
102
|
+
if(sharedScene!=null)sharedScene.finish();
|
|
103
|
+
captured = false; active--;
|
|
104
|
+
}
|
|
105
|
+
@Override public void handleOnBackStarted(BackEventCompat event) {
|
|
106
|
+
if (disposed || !inputEnabled || phase == 3 || phase == 4) return;
|
|
107
|
+
if (phase == 2) { finish(); if (disposed || phase != 0) return; }
|
|
108
|
+
ignorePress = false;
|
|
109
|
+
capture(); phase = 1; edge = event.getSwipeEdge(); spring.position = 0; spring.velocity = 0;
|
|
110
|
+
lastProgressAt = SystemClock.uptimeMillis(); apply(); emit(1);
|
|
111
|
+
}
|
|
112
|
+
@Override public void handleOnBackProgressed(BackEventCompat event) {
|
|
113
|
+
if (disposed || phase != 1 || ignorePress) return;
|
|
114
|
+
progressEvents++;
|
|
115
|
+
long now = SystemClock.uptimeMillis();
|
|
116
|
+
double next = Math.max(0, Math.min(1, event.getProgress()));
|
|
117
|
+
spring.velocity = now > lastProgressAt ? (next - spring.position) * 1000 / (now - lastProgressAt) : spring.velocity;
|
|
118
|
+
lastProgressAt = now; spring.position = next;
|
|
119
|
+
if (!validGeometry()) { cancel(); return; }
|
|
120
|
+
apply();
|
|
121
|
+
}
|
|
122
|
+
@Override public void handleOnBackCancelled() {
|
|
123
|
+
if (disposed) return;
|
|
124
|
+
ignorePress = false;
|
|
125
|
+
if (phase == 1) settle(false);
|
|
126
|
+
}
|
|
127
|
+
@Override public void handleOnBackPressed() {
|
|
128
|
+
if (disposed || !inputEnabled || phase == 3 || phase == 4) return;
|
|
129
|
+
if (ignorePress) { ignorePress = false; return; }
|
|
130
|
+
if (phase == 2) { finish(); if (disposed || phase != 0) return; }
|
|
131
|
+
if (!captured) { capture(); edge = -1; spring.position = 0; spring.velocity = 0; }
|
|
132
|
+
settle(true);
|
|
133
|
+
}
|
|
134
|
+
private void settle(boolean commit) {
|
|
135
|
+
if (disposed || !captured || phase == 4) return;
|
|
136
|
+
if (SystemClock.uptimeMillis() - lastProgressAt > 100) spring.velocity = 0;
|
|
137
|
+
phase = commit ? 3 : 2; target = commit ? 1 : 0;
|
|
138
|
+
settleAt = SystemClock.uptimeMillis(); previousFrame = 0;
|
|
139
|
+
emit(phase);
|
|
140
|
+
if (disposed || !captured || (phase != 2 && phase != 3)) return;
|
|
141
|
+
if (reduced) finish(); else schedule();
|
|
142
|
+
}
|
|
143
|
+
private void apply() {
|
|
144
|
+
double p = reduced ? 0 : Math.max(0, Math.min(1, spring.position));
|
|
145
|
+
if(sharedScene!=null && sharedScene.isAnimating()){sharedScene.render(p);return;}
|
|
146
|
+
float direction = mirror && edge == BackEventCompat.EDGE_RIGHT ? -1 : 1;
|
|
147
|
+
view.setTranslationX(baseX + (float)p * dx * direction); view.setTranslationY(baseY + (float)p * dy);
|
|
148
|
+
view.setScaleX(baseSX * (float)(1 + (sx - 1) * p)); view.setScaleY(baseSY * (float)(1 + (sy - 1) * p));
|
|
149
|
+
view.setAlpha(baseAlpha * (float)(1 + (opacity - 1) * p)); view.setRotation(baseRotation + (float)p * rotation * direction);
|
|
150
|
+
}
|
|
151
|
+
private boolean validGeometry() {
|
|
152
|
+
return (sharedScene==null || sharedScene.validActive()) && view.isAttachedToWindow() && view.getWidth() == width && view.getHeight() == height &&
|
|
153
|
+
view.getRootView().getWidth() == rootWidth && view.getRootView().getHeight() == rootHeight;
|
|
154
|
+
}
|
|
155
|
+
private void schedule() {
|
|
156
|
+
if (scheduled || disposed || (phase != 2 && phase != 3)) return;
|
|
157
|
+
scheduled = true; Choreographer.getInstance().postFrameCallback(this);
|
|
158
|
+
}
|
|
159
|
+
private void unschedule() { Choreographer.getInstance().removeFrameCallback(this); scheduled = false; }
|
|
160
|
+
@Override public void doFrame(long nanos) {
|
|
161
|
+
scheduled = false;
|
|
162
|
+
if (disposed || (phase != 2 && phase != 3)) return;
|
|
163
|
+
if (!validGeometry()) { cancel(); finish(); return; }
|
|
164
|
+
double seconds = previousFrame == 0 ? 1.0 / 60 : Math.max(0, (nanos - previousFrame) / 1e9);
|
|
165
|
+
previousFrame = nanos;
|
|
166
|
+
spring.advance(target, stiffness * speed * speed, damping * speed, mass, seconds);
|
|
167
|
+
if (!Double.isFinite(spring.position) || !Double.isFinite(spring.velocity)) { finish(); return; }
|
|
168
|
+
apply();
|
|
169
|
+
if ((Math.abs(spring.position - target) < .0005 && Math.abs(spring.velocity) < .005) || SystemClock.uptimeMillis() - settleAt >= 1500) finish();
|
|
170
|
+
else schedule();
|
|
171
|
+
}
|
|
172
|
+
private void finish() {
|
|
173
|
+
if (disposed || (phase != 2 && phase != 3)) return;
|
|
174
|
+
unschedule(); boolean commit = phase == 3;
|
|
175
|
+
spring.position = commit ? 1 : 0; spring.velocity = 0; apply();
|
|
176
|
+
if (commit) { phase = 4; emit(4); }
|
|
177
|
+
else { restore(); phase = 0; emit(5); }
|
|
178
|
+
}
|
|
179
|
+
public void completeCommit(boolean accepted) {
|
|
180
|
+
if (disposed || phase != 4) return;
|
|
181
|
+
if (accepted) { restore(); emit(6); dispose(); }
|
|
182
|
+
else if (!view.isAttachedToWindow()) { restore(); emit(5); dispose(); }
|
|
183
|
+
else { phase = 1; settle(false); }
|
|
184
|
+
}
|
|
185
|
+
public void cancel() {
|
|
186
|
+
if (disposed || phase == 4 || phase == 3) return; // Once released, preserve Android's committed decision.
|
|
187
|
+
if (phase == 1) { ignorePress = true; spring.velocity = 0; settle(false); }
|
|
188
|
+
}
|
|
189
|
+
private void disconnect() {
|
|
190
|
+
if (!connected) return;
|
|
191
|
+
connected = false; callbacks--; remove(); owner.getLifecycle().removeObserver(this);
|
|
192
|
+
view.removeOnAttachStateChangeListener(this); view.removeOnLayoutChangeListener(this);
|
|
193
|
+
}
|
|
194
|
+
public void dispose() {
|
|
195
|
+
if (disposed) return;
|
|
196
|
+
disposed = true; unschedule(); restore(); disconnect(); phase = 0; emit(7); listener = null; sharedScene = null;
|
|
197
|
+
}
|
|
198
|
+
@Override public void onViewDetachedFromWindow(View v) {
|
|
199
|
+
if (phase == 4) { restore(); disconnect(); } else dispose();
|
|
200
|
+
}
|
|
201
|
+
@Override public void onViewAttachedToWindow(View v) { }
|
|
202
|
+
@Override public void onLayoutChange(View v, int l, int t, int r, int b, int ol, int ot, int or, int ob) {
|
|
203
|
+
if (captured && !validGeometry()) { cancel(); finish(); }
|
|
204
|
+
}
|
|
205
|
+
@Override public void onStateChanged(LifecycleOwner source, Lifecycle.Event event) {
|
|
206
|
+
if (event == Lifecycle.Event.ON_DESTROY) dispose();
|
|
207
|
+
else if (event == Lifecycle.Event.ON_STOP && captured && phase != 4) {
|
|
208
|
+
// Lifecycle callbacks unregister input until STARTED; keep the handle reusable on resume.
|
|
209
|
+
phase = 2; ignorePress = true; finish();
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|