@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,136 @@
|
|
|
1
|
+
import type { WebRuntime } from './public.js'
|
|
2
|
+
import type { WebBinding } from './value.js'
|
|
3
|
+
import type { FrameScheduler } from './scheduler.js'
|
|
4
|
+
import { renderedAncestors } from './geometry.js'
|
|
5
|
+
|
|
6
|
+
export interface OwnedBinding extends WebBinding {
|
|
7
|
+
owns(): boolean
|
|
8
|
+
}
|
|
9
|
+
export interface WebInteraction {
|
|
10
|
+
readonly disposed: boolean
|
|
11
|
+
readonly paused: boolean
|
|
12
|
+
pause(): void
|
|
13
|
+
play(): void
|
|
14
|
+
cancel(): void
|
|
15
|
+
dispose(): void
|
|
16
|
+
}
|
|
17
|
+
export interface InteractionHost extends Pick<
|
|
18
|
+
WebRuntime,
|
|
19
|
+
| 'gestures'
|
|
20
|
+
| 'motionValue'
|
|
21
|
+
| 'animate'
|
|
22
|
+
| 'bind'
|
|
23
|
+
| 'set'
|
|
24
|
+
| 'stop'
|
|
25
|
+
| 'refresh'
|
|
26
|
+
| 'scrollValue'
|
|
27
|
+
| 'animateLayout'
|
|
28
|
+
| 'scope'
|
|
29
|
+
> {
|
|
30
|
+
bindLayer(
|
|
31
|
+
target: HTMLElement,
|
|
32
|
+
values: import('./value.js').WebBindings,
|
|
33
|
+
layer: string,
|
|
34
|
+
): OwnedBinding
|
|
35
|
+
layer(name: string): string
|
|
36
|
+
scheduler: FrameScheduler
|
|
37
|
+
error(error: unknown): void
|
|
38
|
+
after(ms: number, action: () => void): () => void
|
|
39
|
+
reduced(): boolean
|
|
40
|
+
onReduced(callback: () => void): () => void
|
|
41
|
+
register(target: HTMLElement, resource: WebInteraction, refresh: () => void): () => void
|
|
42
|
+
}
|
|
43
|
+
export function inputBlocked(target: HTMLElement, document = target.ownerDocument) {
|
|
44
|
+
if (
|
|
45
|
+
!target.isConnected ||
|
|
46
|
+
target.ownerDocument !== document ||
|
|
47
|
+
target.matches(':disabled') ||
|
|
48
|
+
!target.getClientRects().length
|
|
49
|
+
)
|
|
50
|
+
return true
|
|
51
|
+
for (const node of renderedAncestors(target))
|
|
52
|
+
if (
|
|
53
|
+
node.hasAttribute('inert') ||
|
|
54
|
+
node.getAttribute('aria-disabled') === 'true' ||
|
|
55
|
+
node.getAttribute('aria-busy') === 'true'
|
|
56
|
+
)
|
|
57
|
+
return true
|
|
58
|
+
return false
|
|
59
|
+
}
|
|
60
|
+
export function inputChild(event: Event, target: HTMLElement) {
|
|
61
|
+
const Element = (target.ownerDocument.defaultView! as Window & typeof globalThis)
|
|
62
|
+
.Element
|
|
63
|
+
for (const node of event.composedPath()) {
|
|
64
|
+
if (node === target) break
|
|
65
|
+
if (
|
|
66
|
+
node instanceof Element &&
|
|
67
|
+
node.matches(
|
|
68
|
+
'button,a[href],input,select,textarea,[contenteditable],[role="button"]',
|
|
69
|
+
)
|
|
70
|
+
)
|
|
71
|
+
return true
|
|
72
|
+
}
|
|
73
|
+
return false
|
|
74
|
+
}
|
|
75
|
+
/** Restore only the exact value still owned here, including its priority. */
|
|
76
|
+
export function ownStyle(target: HTMLElement, property: string, value: string) {
|
|
77
|
+
const style = target.style,
|
|
78
|
+
before = style.getPropertyValue(property),
|
|
79
|
+
priority = style.getPropertyPriority(property)
|
|
80
|
+
style.setProperty(property, value)
|
|
81
|
+
return () => {
|
|
82
|
+
if (
|
|
83
|
+
style.getPropertyValue(property) === value &&
|
|
84
|
+
!style.getPropertyPriority(property)
|
|
85
|
+
) {
|
|
86
|
+
if (before) style.setProperty(property, before, priority)
|
|
87
|
+
else style.removeProperty(property)
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
export function ownAttribute(target: Element, name: string, value: string) {
|
|
92
|
+
const before = target.getAttribute(name)
|
|
93
|
+
target.setAttribute(name, value)
|
|
94
|
+
return () => {
|
|
95
|
+
if (target.getAttribute(name) === value) {
|
|
96
|
+
if (before === null) target.removeAttribute(name)
|
|
97
|
+
else target.setAttribute(name, before)
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
export function inputEvents(target: HTMLElement) {
|
|
102
|
+
const view = target.ownerDocument.defaultView! as Window & typeof globalThis
|
|
103
|
+
const abort = new view.AbortController()
|
|
104
|
+
return {
|
|
105
|
+
view,
|
|
106
|
+
on<E extends Event>(
|
|
107
|
+
node: EventTarget,
|
|
108
|
+
type: string,
|
|
109
|
+
callback: (event: E) => void,
|
|
110
|
+
passive = true,
|
|
111
|
+
capture = false,
|
|
112
|
+
) {
|
|
113
|
+
node.addEventListener(type, callback as EventListener, {
|
|
114
|
+
signal: abort.signal,
|
|
115
|
+
passive,
|
|
116
|
+
capture,
|
|
117
|
+
})
|
|
118
|
+
},
|
|
119
|
+
dispose: () => abort.abort(),
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
export function releasePointer(target: HTMLElement, id: number) {
|
|
123
|
+
if (target.hasPointerCapture(id)) target.releasePointerCapture(id)
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/** Cleanup keeps running after one resource fails; callers still receive the failure. */
|
|
127
|
+
export function cleanupResources(actions: readonly (() => void)[]) {
|
|
128
|
+
const errors: unknown[] = []
|
|
129
|
+
for (const action of actions)
|
|
130
|
+
try {
|
|
131
|
+
action()
|
|
132
|
+
} catch (error) {
|
|
133
|
+
errors.push(error)
|
|
134
|
+
}
|
|
135
|
+
if (errors.length) throw new AggregateError(errors, 'Interaction cleanup failed.')
|
|
136
|
+
}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import type { SpringParams } from '../core/spring.js'
|
|
2
|
+
import { effectOptions, effectOwnership, effectTarget } from './effect.js'
|
|
3
|
+
import type { WebInteraction } from './interaction.js'
|
|
4
|
+
import type { PlatformHost } from './platform-host.js'
|
|
5
|
+
import type { WebGestures } from './gestures.js'
|
|
6
|
+
|
|
7
|
+
export type WebModalState =
|
|
8
|
+
'closed' | 'opening' | 'open' | 'dragging' | 'closing' | 'disposed'
|
|
9
|
+
export interface WebInteractiveModalOptions {
|
|
10
|
+
/** Drag surface inside the dialog; interactive descendants retain their input. */
|
|
11
|
+
handle?: HTMLElement
|
|
12
|
+
spring?: SpringParams
|
|
13
|
+
canBegin?: () => boolean
|
|
14
|
+
onState?: (state: WebModalState) => void
|
|
15
|
+
returnFocus?: HTMLElement
|
|
16
|
+
}
|
|
17
|
+
export interface WebInteractiveModal extends WebInteraction {
|
|
18
|
+
readonly state: WebModalState
|
|
19
|
+
open(): void
|
|
20
|
+
close(returnValue?: string): boolean
|
|
21
|
+
/** Roll back an interactive or requested dismissal. The dialog remains open. */
|
|
22
|
+
cancel(): void
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export function createInteractiveModal(
|
|
26
|
+
dialog: HTMLDialogElement,
|
|
27
|
+
options: WebInteractiveModalOptions,
|
|
28
|
+
host: PlatformHost,
|
|
29
|
+
): WebInteractiveModal {
|
|
30
|
+
const view = effectTarget(dialog, host)
|
|
31
|
+
effectOptions(options, ['handle', 'spring', 'canBegin', 'onState', 'returnFocus'])
|
|
32
|
+
if (
|
|
33
|
+
!(dialog instanceof view.HTMLDialogElement) ||
|
|
34
|
+
typeof dialog.showModal !== 'function' ||
|
|
35
|
+
dialog.open
|
|
36
|
+
)
|
|
37
|
+
throw new TypeError(
|
|
38
|
+
'interactiveModal needs a mounted, initially closed HTMLDialogElement.',
|
|
39
|
+
)
|
|
40
|
+
const surface = options.handle ?? dialog
|
|
41
|
+
effectTarget(surface, host)
|
|
42
|
+
if (!dialog.contains(surface))
|
|
43
|
+
throw new TypeError('The modal handle must belong to its dialog.')
|
|
44
|
+
for (const fn of [options.canBegin, options.onState])
|
|
45
|
+
if (fn !== undefined && typeof fn !== 'function')
|
|
46
|
+
throw new TypeError('Modal callbacks must be functions.')
|
|
47
|
+
let state: WebModalState = 'closed',
|
|
48
|
+
ended = false,
|
|
49
|
+
held = false,
|
|
50
|
+
result = ''
|
|
51
|
+
let gesture: WebGestures | undefined,
|
|
52
|
+
binding: ReturnType<PlatformHost['bindLayer']> | undefined,
|
|
53
|
+
focus: HTMLElement | undefined
|
|
54
|
+
const off: (() => void)[] = []
|
|
55
|
+
const notify = (next: WebModalState) => {
|
|
56
|
+
if (state === next) return
|
|
57
|
+
state = next
|
|
58
|
+
try {
|
|
59
|
+
options.onState?.(next)
|
|
60
|
+
} catch (error) {
|
|
61
|
+
host.error(error)
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
const distance = () =>
|
|
65
|
+
Math.max(
|
|
66
|
+
1,
|
|
67
|
+
view.innerHeight - dialog.getBoundingClientRect().top + gesture!.y.get() + 32,
|
|
68
|
+
)
|
|
69
|
+
const bounds = () =>
|
|
70
|
+
gesture!.updateBounds({ left: 0, right: 0, top: 0, bottom: distance() })
|
|
71
|
+
const settled = () => {
|
|
72
|
+
if (ended) return
|
|
73
|
+
if (state === 'closing') {
|
|
74
|
+
// showModal/close own the browser top layer, focus and inert background.
|
|
75
|
+
releaseInput()
|
|
76
|
+
dialog.close(result)
|
|
77
|
+
notify('closed')
|
|
78
|
+
if (
|
|
79
|
+
!dialog.open &&
|
|
80
|
+
focus?.isConnected &&
|
|
81
|
+
(host.document.activeElement === host.document.body ||
|
|
82
|
+
dialog.contains(host.document.activeElement))
|
|
83
|
+
)
|
|
84
|
+
focus.focus({ preventScroll: true })
|
|
85
|
+
} else if (dialog.open) notify('open')
|
|
86
|
+
}
|
|
87
|
+
const cancel = () => {
|
|
88
|
+
if (ended || !dialog.open) return
|
|
89
|
+
notify('opening')
|
|
90
|
+
if (!ended && state === 'opening' && dialog.open) gesture?.settleTo({ y: 0 })
|
|
91
|
+
}
|
|
92
|
+
const dispose = () => {
|
|
93
|
+
if (ended) return
|
|
94
|
+
ended = true
|
|
95
|
+
gesture?.dispose()
|
|
96
|
+
binding?.dispose()
|
|
97
|
+
for (const cleanup of off.splice(0).reverse()) cleanup()
|
|
98
|
+
notify('disposed')
|
|
99
|
+
}
|
|
100
|
+
const releaseInput = () => {
|
|
101
|
+
gesture?.dispose()
|
|
102
|
+
binding?.dispose()
|
|
103
|
+
gesture = undefined
|
|
104
|
+
binding = undefined
|
|
105
|
+
}
|
|
106
|
+
function setupInput() {
|
|
107
|
+
gesture = host.gestures(dialog, {
|
|
108
|
+
pan: {
|
|
109
|
+
axis: 'y',
|
|
110
|
+
bounds: { top: 0, bottom: view.innerHeight + 64, left: 0, right: 0 },
|
|
111
|
+
},
|
|
112
|
+
spring: options.spring,
|
|
113
|
+
onContactStart(event) {
|
|
114
|
+
const rect = surface.getBoundingClientRect()
|
|
115
|
+
let allowed =
|
|
116
|
+
dialog.open &&
|
|
117
|
+
!held &&
|
|
118
|
+
state !== 'closing' &&
|
|
119
|
+
event.clientX >= rect.left &&
|
|
120
|
+
event.clientX <= rect.right &&
|
|
121
|
+
event.clientY >= rect.top &&
|
|
122
|
+
event.clientY <= rect.bottom
|
|
123
|
+
try {
|
|
124
|
+
if (allowed && options.canBegin) allowed = options.canBegin()
|
|
125
|
+
} catch (error) {
|
|
126
|
+
allowed = false
|
|
127
|
+
host.error(error)
|
|
128
|
+
}
|
|
129
|
+
if (!allowed) gesture?.cancel()
|
|
130
|
+
else bounds()
|
|
131
|
+
},
|
|
132
|
+
onStart() {
|
|
133
|
+
notify('dragging')
|
|
134
|
+
},
|
|
135
|
+
onEnd(event) {
|
|
136
|
+
if (event.y + event.velocityY * 0.2 > Math.max(80, dialog.offsetHeight * 0.3))
|
|
137
|
+
handle.close()
|
|
138
|
+
else cancel()
|
|
139
|
+
},
|
|
140
|
+
onCancel() {
|
|
141
|
+
if (!ended && state === 'dragging')
|
|
142
|
+
queueMicrotask(() => {
|
|
143
|
+
if (!ended && state === 'dragging') cancel()
|
|
144
|
+
})
|
|
145
|
+
},
|
|
146
|
+
onSettled: settled,
|
|
147
|
+
})
|
|
148
|
+
binding = host.bindLayer(dialog, { y: gesture.y }, host.layer('modal'))
|
|
149
|
+
}
|
|
150
|
+
const handle: WebInteractiveModal = {
|
|
151
|
+
get state() {
|
|
152
|
+
return state
|
|
153
|
+
},
|
|
154
|
+
get disposed() {
|
|
155
|
+
return ended
|
|
156
|
+
},
|
|
157
|
+
get paused() {
|
|
158
|
+
return held
|
|
159
|
+
},
|
|
160
|
+
open() {
|
|
161
|
+
if (ended || held || dialog.open) return
|
|
162
|
+
focus =
|
|
163
|
+
options.returnFocus ??
|
|
164
|
+
(host.document.activeElement instanceof view.HTMLElement
|
|
165
|
+
? host.document.activeElement
|
|
166
|
+
: undefined)
|
|
167
|
+
dialog.showModal()
|
|
168
|
+
try {
|
|
169
|
+
setupInput()
|
|
170
|
+
} catch (error) {
|
|
171
|
+
releaseInput()
|
|
172
|
+
dialog.close()
|
|
173
|
+
throw error
|
|
174
|
+
}
|
|
175
|
+
bounds()
|
|
176
|
+
gesture!.jumpTo({ y: host.reduced() ? 0 : distance() })
|
|
177
|
+
notify('opening')
|
|
178
|
+
if (!ended && state === 'opening' && dialog.open) gesture?.settleTo({ y: 0 })
|
|
179
|
+
},
|
|
180
|
+
close(returnValue = '') {
|
|
181
|
+
if (typeof returnValue !== 'string')
|
|
182
|
+
throw new TypeError('Dialog returnValue must be a string.')
|
|
183
|
+
if (ended || held || !dialog.open || state === 'closing') return false
|
|
184
|
+
result = returnValue
|
|
185
|
+
bounds()
|
|
186
|
+
notify('closing')
|
|
187
|
+
if (ended || handle.state !== 'closing' || !dialog.open) return false
|
|
188
|
+
gesture!.settleTo({ y: distance() })
|
|
189
|
+
return true
|
|
190
|
+
},
|
|
191
|
+
cancel,
|
|
192
|
+
pause() {
|
|
193
|
+
if (!ended) {
|
|
194
|
+
held = true
|
|
195
|
+
gesture?.pause()
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
play() {
|
|
199
|
+
if (!ended) {
|
|
200
|
+
held = false
|
|
201
|
+
gesture?.play()
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
dispose,
|
|
205
|
+
}
|
|
206
|
+
try {
|
|
207
|
+
off.push(effectOwnership(dialog, 'modal', host, dispose))
|
|
208
|
+
const escape = (event: Event) => {
|
|
209
|
+
event.preventDefault()
|
|
210
|
+
handle.close()
|
|
211
|
+
}
|
|
212
|
+
const closed = () => {
|
|
213
|
+
if (!dialog.open && !ended) {
|
|
214
|
+
releaseInput()
|
|
215
|
+
notify('closed')
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
dialog.addEventListener('cancel', escape)
|
|
219
|
+
dialog.addEventListener('close', closed)
|
|
220
|
+
off.push(
|
|
221
|
+
() => dialog.removeEventListener('cancel', escape),
|
|
222
|
+
() => dialog.removeEventListener('close', closed),
|
|
223
|
+
)
|
|
224
|
+
const resize = () => {
|
|
225
|
+
if (dialog.open && !ended) {
|
|
226
|
+
bounds()
|
|
227
|
+
if (state === 'closing') gesture?.settleTo({ y: distance() })
|
|
228
|
+
else cancel()
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
view.addEventListener('resize', resize)
|
|
232
|
+
off.push(() => view.removeEventListener('resize', resize))
|
|
233
|
+
off.push(
|
|
234
|
+
host.register(host.document.documentElement, handle, () => {
|
|
235
|
+
if (!dialog.isConnected || (binding && dialog.open && !binding.owns())) dispose()
|
|
236
|
+
else if (!dialog.open) {
|
|
237
|
+
releaseInput()
|
|
238
|
+
notify('closed')
|
|
239
|
+
}
|
|
240
|
+
}),
|
|
241
|
+
)
|
|
242
|
+
return handle
|
|
243
|
+
} catch (error) {
|
|
244
|
+
dispose()
|
|
245
|
+
throw error
|
|
246
|
+
}
|
|
247
|
+
}
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
import { effectOptions, effectOwnership, effectTarget } from './effect.js'
|
|
2
|
+
import type { PlatformHost } from './platform-host.js'
|
|
3
|
+
import type { WebInteraction } from './interaction.js'
|
|
4
|
+
import type { WebGestures } from './gestures.js'
|
|
5
|
+
import type { SpringParams } from '../core/spring.js'
|
|
6
|
+
|
|
7
|
+
export type WebNavigationState =
|
|
8
|
+
| 'idle'
|
|
9
|
+
| 'tracking'
|
|
10
|
+
| 'finishing'
|
|
11
|
+
| 'cancelling'
|
|
12
|
+
| 'committing'
|
|
13
|
+
| 'completed'
|
|
14
|
+
| 'disposed'
|
|
15
|
+
export interface WebInteractiveNavigationOptions {
|
|
16
|
+
axis?: 'x' | 'y'
|
|
17
|
+
/** CSS pixels; defaults to the current viewport size. */
|
|
18
|
+
distance?: number
|
|
19
|
+
/** Horizontal back starts at the leading edge; vertical defaults to the whole surface. */
|
|
20
|
+
edgeWidth?: number
|
|
21
|
+
spring?: SpringParams
|
|
22
|
+
canBegin?: () => boolean
|
|
23
|
+
/** Application-owned routing, called once after the visual exit. False rolls back. */
|
|
24
|
+
commit(context: {
|
|
25
|
+
animated: false
|
|
26
|
+
signal: AbortSignal
|
|
27
|
+
}): boolean | void | Promise<boolean | void>
|
|
28
|
+
onState?: (state: WebNavigationState) => void
|
|
29
|
+
navigationTimeout?: number
|
|
30
|
+
}
|
|
31
|
+
export interface WebInteractiveNavigation extends WebInteraction {
|
|
32
|
+
readonly state: WebNavigationState
|
|
33
|
+
readonly progress: number
|
|
34
|
+
back(): void
|
|
35
|
+
cancel(): void
|
|
36
|
+
}
|
|
37
|
+
export function createInteractiveNavigation(
|
|
38
|
+
target: HTMLElement,
|
|
39
|
+
options: WebInteractiveNavigationOptions,
|
|
40
|
+
host: PlatformHost,
|
|
41
|
+
): WebInteractiveNavigation {
|
|
42
|
+
const view = effectTarget(target, host)
|
|
43
|
+
effectOptions(options, [
|
|
44
|
+
'axis',
|
|
45
|
+
'distance',
|
|
46
|
+
'edgeWidth',
|
|
47
|
+
'spring',
|
|
48
|
+
'canBegin',
|
|
49
|
+
'commit',
|
|
50
|
+
'onState',
|
|
51
|
+
'navigationTimeout',
|
|
52
|
+
])
|
|
53
|
+
const axis = options.axis ?? 'x',
|
|
54
|
+
edge = options.edgeWidth ?? (axis === 'x' ? 32 : Infinity),
|
|
55
|
+
timeout = options.navigationTimeout ?? 3000
|
|
56
|
+
if (
|
|
57
|
+
!['x', 'y'].includes(axis) ||
|
|
58
|
+
(options.distance !== undefined &&
|
|
59
|
+
(!Number.isFinite(options.distance) || options.distance <= 0)) ||
|
|
60
|
+
(options.edgeWidth !== undefined && (!Number.isFinite(edge) || edge <= 0)) ||
|
|
61
|
+
!Number.isFinite(timeout) ||
|
|
62
|
+
timeout <= 0 ||
|
|
63
|
+
timeout > 10000
|
|
64
|
+
)
|
|
65
|
+
throw new RangeError('Invalid navigation geometry or timeout.')
|
|
66
|
+
if (
|
|
67
|
+
typeof options.commit !== 'function' ||
|
|
68
|
+
[options.canBegin, options.onState].some(
|
|
69
|
+
(f) => f !== undefined && typeof f !== 'function',
|
|
70
|
+
)
|
|
71
|
+
)
|
|
72
|
+
throw new TypeError('Navigation callbacks must be functions.')
|
|
73
|
+
let state: WebNavigationState = 'idle',
|
|
74
|
+
ended = false,
|
|
75
|
+
held = false,
|
|
76
|
+
generation = 0
|
|
77
|
+
let gesture: WebGestures | undefined,
|
|
78
|
+
binding: ReturnType<PlatformHost['bindLayer']> | undefined,
|
|
79
|
+
controller: AbortController | undefined,
|
|
80
|
+
timer: (() => void) | undefined
|
|
81
|
+
const off: (() => void)[] = []
|
|
82
|
+
const distance = () =>
|
|
83
|
+
options.distance ?? (axis === 'x' ? view.innerWidth : view.innerHeight)
|
|
84
|
+
const notify = (next: WebNavigationState) => {
|
|
85
|
+
if (state === next) return
|
|
86
|
+
state = next
|
|
87
|
+
try {
|
|
88
|
+
options.onState?.(next)
|
|
89
|
+
} catch (e) {
|
|
90
|
+
host.error(e)
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
const allowed = () => {
|
|
94
|
+
try {
|
|
95
|
+
return options.canBegin?.() ?? true
|
|
96
|
+
} catch (e) {
|
|
97
|
+
host.error(e)
|
|
98
|
+
return false
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const cancel = () => {
|
|
102
|
+
if (ended || state === 'completed') return
|
|
103
|
+
generation++
|
|
104
|
+
controller?.abort()
|
|
105
|
+
timer?.()
|
|
106
|
+
timer = undefined
|
|
107
|
+
notify('cancelling')
|
|
108
|
+
gesture?.settleTo({ [axis]: 0 })
|
|
109
|
+
}
|
|
110
|
+
const commit = () => {
|
|
111
|
+
if (ended || state !== 'finishing') return
|
|
112
|
+
notify('committing')
|
|
113
|
+
if (ended || handle.state !== 'committing') return
|
|
114
|
+
const version = ++generation
|
|
115
|
+
controller = new view.AbortController()
|
|
116
|
+
timer = host.after(timeout, () => {
|
|
117
|
+
if (version === generation) cancel()
|
|
118
|
+
})
|
|
119
|
+
let result: boolean | void | Promise<boolean | void>
|
|
120
|
+
try {
|
|
121
|
+
result = options.commit({ animated: false, signal: controller.signal })
|
|
122
|
+
} catch (e) {
|
|
123
|
+
host.error(e)
|
|
124
|
+
cancel()
|
|
125
|
+
return
|
|
126
|
+
}
|
|
127
|
+
void Promise.resolve(result).then(
|
|
128
|
+
(accepted) => {
|
|
129
|
+
if (ended || version !== generation) return
|
|
130
|
+
timer?.()
|
|
131
|
+
timer = undefined
|
|
132
|
+
if (accepted === false) {
|
|
133
|
+
cancel()
|
|
134
|
+
return
|
|
135
|
+
}
|
|
136
|
+
notify('completed')
|
|
137
|
+
gesture?.pause()
|
|
138
|
+
},
|
|
139
|
+
(e) => {
|
|
140
|
+
if (!ended && version === generation) {
|
|
141
|
+
host.error(e)
|
|
142
|
+
cancel()
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
)
|
|
146
|
+
}
|
|
147
|
+
const bounds = () =>
|
|
148
|
+
gesture?.updateBounds(
|
|
149
|
+
axis === 'x'
|
|
150
|
+
? { left: 0, right: distance(), top: 0, bottom: 0 }
|
|
151
|
+
: { left: 0, right: 0, top: 0, bottom: distance() },
|
|
152
|
+
)
|
|
153
|
+
const handle: WebInteractiveNavigation = {
|
|
154
|
+
get state() {
|
|
155
|
+
return state
|
|
156
|
+
},
|
|
157
|
+
get disposed() {
|
|
158
|
+
return ended
|
|
159
|
+
},
|
|
160
|
+
get paused() {
|
|
161
|
+
return held
|
|
162
|
+
},
|
|
163
|
+
get progress() {
|
|
164
|
+
return Math.max(0, Math.min(1, (gesture?.position[axis] ?? 0) / distance()))
|
|
165
|
+
},
|
|
166
|
+
back() {
|
|
167
|
+
if (
|
|
168
|
+
ended ||
|
|
169
|
+
held ||
|
|
170
|
+
['finishing', 'committing', 'completed'].includes(state) ||
|
|
171
|
+
!allowed()
|
|
172
|
+
)
|
|
173
|
+
return
|
|
174
|
+
bounds()
|
|
175
|
+
notify('finishing')
|
|
176
|
+
if (!ended && state === 'finishing') gesture?.settleTo({ [axis]: distance() })
|
|
177
|
+
},
|
|
178
|
+
cancel,
|
|
179
|
+
pause() {
|
|
180
|
+
if (ended || held) return
|
|
181
|
+
cancel()
|
|
182
|
+
held = true
|
|
183
|
+
gesture?.pause()
|
|
184
|
+
},
|
|
185
|
+
play() {
|
|
186
|
+
if (ended || !held) return
|
|
187
|
+
held = false
|
|
188
|
+
gesture?.play()
|
|
189
|
+
},
|
|
190
|
+
dispose() {
|
|
191
|
+
if (ended) return
|
|
192
|
+
ended = true
|
|
193
|
+
generation++
|
|
194
|
+
controller?.abort()
|
|
195
|
+
timer?.()
|
|
196
|
+
gesture?.dispose()
|
|
197
|
+
binding?.dispose()
|
|
198
|
+
off
|
|
199
|
+
.splice(0)
|
|
200
|
+
.reverse()
|
|
201
|
+
.forEach((fn) => fn())
|
|
202
|
+
notify('disposed')
|
|
203
|
+
},
|
|
204
|
+
}
|
|
205
|
+
try {
|
|
206
|
+
off.push(effectOwnership(target, 'interactive-navigation', host, handle.dispose))
|
|
207
|
+
gesture = host.gestures(target, {
|
|
208
|
+
pan: {
|
|
209
|
+
axis,
|
|
210
|
+
bounds:
|
|
211
|
+
axis === 'x'
|
|
212
|
+
? { left: 0, right: distance(), top: 0, bottom: 0 }
|
|
213
|
+
: { left: 0, right: 0, top: 0, bottom: distance() },
|
|
214
|
+
},
|
|
215
|
+
spring: options.spring,
|
|
216
|
+
onContactStart(event) {
|
|
217
|
+
const rect = target.getBoundingClientRect(),
|
|
218
|
+
coordinate = axis === 'x' ? event.clientX - rect.left : event.clientY - rect.top
|
|
219
|
+
if (
|
|
220
|
+
held ||
|
|
221
|
+
['committing', 'completed'].includes(state) ||
|
|
222
|
+
coordinate > edge ||
|
|
223
|
+
!allowed()
|
|
224
|
+
)
|
|
225
|
+
gesture?.cancel()
|
|
226
|
+
else {
|
|
227
|
+
generation++
|
|
228
|
+
controller?.abort()
|
|
229
|
+
timer?.()
|
|
230
|
+
bounds()
|
|
231
|
+
}
|
|
232
|
+
},
|
|
233
|
+
onStart() {
|
|
234
|
+
notify('tracking')
|
|
235
|
+
},
|
|
236
|
+
onEnd(event) {
|
|
237
|
+
const position = event[axis],
|
|
238
|
+
velocity = axis === 'x' ? event.velocityX : event.velocityY
|
|
239
|
+
if (position + velocity * 0.2 > distance() * 0.35) handle.back()
|
|
240
|
+
else cancel()
|
|
241
|
+
},
|
|
242
|
+
onCancel() {
|
|
243
|
+
if (state === 'tracking')
|
|
244
|
+
queueMicrotask(() => {
|
|
245
|
+
if (state === 'tracking') cancel()
|
|
246
|
+
})
|
|
247
|
+
},
|
|
248
|
+
onSettled() {
|
|
249
|
+
if (state === 'finishing') commit()
|
|
250
|
+
else if (state === 'cancelling') notify('idle')
|
|
251
|
+
},
|
|
252
|
+
})
|
|
253
|
+
binding = host.bindLayer(
|
|
254
|
+
target,
|
|
255
|
+
{ [axis]: axis === 'x' ? gesture.x : gesture.y },
|
|
256
|
+
host.layer('navigation'),
|
|
257
|
+
)
|
|
258
|
+
const resize = () => {
|
|
259
|
+
if (!ended) {
|
|
260
|
+
bounds()
|
|
261
|
+
cancel()
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
view.addEventListener('resize', resize)
|
|
265
|
+
off.push(() => view.removeEventListener('resize', resize))
|
|
266
|
+
off.push(
|
|
267
|
+
host.visibility(() => {
|
|
268
|
+
if (host.document.hidden) cancel()
|
|
269
|
+
}),
|
|
270
|
+
host.register(target, handle, () => {
|
|
271
|
+
if (!target.isConnected || !binding?.owns()) handle.dispose()
|
|
272
|
+
}),
|
|
273
|
+
)
|
|
274
|
+
return handle
|
|
275
|
+
} catch (e) {
|
|
276
|
+
handle.dispose()
|
|
277
|
+
throw e
|
|
278
|
+
}
|
|
279
|
+
}
|