@rafaelaugusto/jolt 0.1.0-beta.8 → 0.1.0-rc.1

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.
Files changed (582) hide show
  1. package/README.md +136 -15
  2. package/dist/animate.d.ts +25 -4
  3. package/dist/animate.d.ts.map +1 -1
  4. package/dist/animate.js +67 -26
  5. package/dist/animate.js.map +1 -1
  6. package/dist/blur/index.d.ts +6 -0
  7. package/dist/blur/index.d.ts.map +1 -0
  8. package/dist/blur/index.js +196 -0
  9. package/dist/blur/index.js.map +1 -0
  10. package/dist/blur/native.d.ts +17 -0
  11. package/dist/blur/native.d.ts.map +1 -0
  12. package/dist/blur/native.js +44 -0
  13. package/dist/blur/native.js.map +1 -0
  14. package/dist/blur/types.d.ts +32 -0
  15. package/dist/blur/types.d.ts.map +1 -0
  16. package/dist/blur/types.js +2 -0
  17. package/dist/blur/types.js.map +1 -0
  18. package/dist/bottom-sheet/geometry.d.ts +18 -0
  19. package/dist/bottom-sheet/geometry.d.ts.map +1 -0
  20. package/dist/bottom-sheet/geometry.js +51 -0
  21. package/dist/bottom-sheet/geometry.js.map +1 -0
  22. package/dist/bottom-sheet/index.d.ts +56 -0
  23. package/dist/bottom-sheet/index.d.ts.map +1 -0
  24. package/dist/bottom-sheet/index.js +462 -0
  25. package/dist/bottom-sheet/index.js.map +1 -0
  26. package/dist/bottom-sheet/native.d.ts +11 -0
  27. package/dist/bottom-sheet/native.d.ts.map +1 -0
  28. package/dist/bottom-sheet/native.js +173 -0
  29. package/dist/bottom-sheet/native.js.map +1 -0
  30. package/dist/config.d.ts +9 -0
  31. package/dist/config.d.ts.map +1 -1
  32. package/dist/config.js +40 -1
  33. package/dist/config.js.map +1 -1
  34. package/dist/decay.d.ts +1 -0
  35. package/dist/decay.d.ts.map +1 -1
  36. package/dist/decay.js +7 -0
  37. package/dist/decay.js.map +1 -1
  38. package/dist/drag-physics.d.ts +6 -1
  39. package/dist/drag-physics.d.ts.map +1 -1
  40. package/dist/drag.d.ts +17 -3
  41. package/dist/drag.d.ts.map +1 -1
  42. package/dist/drag.js +34 -11
  43. package/dist/drag.js.map +1 -1
  44. package/dist/driver/android-gradient.d.ts +5 -0
  45. package/dist/driver/android-gradient.d.ts.map +1 -0
  46. package/dist/driver/android-gradient.js +99 -0
  47. package/dist/driver/android-gradient.js.map +1 -0
  48. package/dist/driver/android-particles.d.ts +6 -0
  49. package/dist/driver/android-particles.d.ts.map +1 -0
  50. package/dist/driver/android-particles.js +93 -0
  51. package/dist/driver/android-particles.js.map +1 -0
  52. package/dist/driver/android.d.ts.map +1 -1
  53. package/dist/driver/android.js +67 -1
  54. package/dist/driver/android.js.map +1 -1
  55. package/dist/driver/frame.d.ts +3 -0
  56. package/dist/driver/frame.d.ts.map +1 -0
  57. package/dist/driver/frame.js +7 -0
  58. package/dist/driver/frame.js.map +1 -0
  59. package/dist/driver/index.d.ts +14 -0
  60. package/dist/driver/index.d.ts.map +1 -1
  61. package/dist/driver/index.js.map +1 -1
  62. package/dist/driver/ios-gradient.d.ts +5 -0
  63. package/dist/driver/ios-gradient.d.ts.map +1 -0
  64. package/dist/driver/ios-gradient.js +131 -0
  65. package/dist/driver/ios-gradient.js.map +1 -0
  66. package/dist/driver/ios-layout.d.ts +9 -0
  67. package/dist/driver/ios-layout.d.ts.map +1 -0
  68. package/dist/driver/ios-layout.js +52 -0
  69. package/dist/driver/ios-layout.js.map +1 -0
  70. package/dist/driver/ios-scroll-delegate.d.ts +4 -0
  71. package/dist/driver/ios-scroll-delegate.d.ts.map +1 -0
  72. package/dist/driver/ios-scroll-delegate.js +26 -0
  73. package/dist/driver/ios-scroll-delegate.js.map +1 -0
  74. package/dist/driver/ios.d.ts.map +1 -1
  75. package/dist/driver/ios.js +57 -1
  76. package/dist/driver/ios.js.map +1 -1
  77. package/dist/easing.d.ts +3 -1
  78. package/dist/easing.d.ts.map +1 -1
  79. package/dist/easing.js +18 -1
  80. package/dist/easing.js.map +1 -1
  81. package/dist/engine.d.ts +35 -2
  82. package/dist/engine.d.ts.map +1 -1
  83. package/dist/engine.js +211 -42
  84. package/dist/engine.js.map +1 -1
  85. package/dist/gesture-native.d.ts +28 -0
  86. package/dist/gesture-native.d.ts.map +1 -0
  87. package/dist/gesture-native.js +61 -0
  88. package/dist/gesture-native.js.map +1 -0
  89. package/dist/gestures/index.d.ts +69 -0
  90. package/dist/gestures/index.d.ts.map +1 -0
  91. package/dist/gestures/index.js +262 -0
  92. package/dist/gestures/index.js.map +1 -0
  93. package/dist/glass/index.d.ts +55 -0
  94. package/dist/glass/index.d.ts.map +1 -0
  95. package/dist/glass/index.js +205 -0
  96. package/dist/glass/index.js.map +1 -0
  97. package/dist/gradient-binding.d.ts +38 -0
  98. package/dist/gradient-binding.d.ts.map +1 -0
  99. package/dist/gradient-binding.js +128 -0
  100. package/dist/gradient-binding.js.map +1 -0
  101. package/dist/gradient.d.ts +105 -0
  102. package/dist/gradient.d.ts.map +1 -0
  103. package/dist/gradient.js +514 -0
  104. package/dist/gradient.js.map +1 -0
  105. package/dist/gravity.d.ts +13 -0
  106. package/dist/gravity.d.ts.map +1 -0
  107. package/dist/gravity.js +84 -0
  108. package/dist/gravity.js.map +1 -0
  109. package/dist/haptics.d.ts.map +1 -1
  110. package/dist/haptics.js +101 -28
  111. package/dist/haptics.js.map +1 -1
  112. package/dist/image-effect.d.ts +1 -0
  113. package/dist/image-effect.d.ts.map +1 -1
  114. package/dist/image-effect.js +10 -2
  115. package/dist/image-effect.js.map +1 -1
  116. package/dist/index.d.ts +21 -7
  117. package/dist/index.d.ts.map +1 -1
  118. package/dist/index.js +11 -4
  119. package/dist/index.js.map +1 -1
  120. package/dist/inspector/index.d.ts +86 -0
  121. package/dist/inspector/index.d.ts.map +1 -0
  122. package/dist/inspector/index.js +419 -0
  123. package/dist/inspector/index.js.map +1 -0
  124. package/dist/inspector/plot.d.ts +4 -0
  125. package/dist/inspector/plot.d.ts.map +1 -0
  126. package/dist/inspector/plot.js +23 -0
  127. package/dist/inspector/plot.js.map +1 -0
  128. package/dist/inspector/probe.d.ts +19 -0
  129. package/dist/inspector/probe.d.ts.map +1 -0
  130. package/dist/inspector/probe.js +37 -0
  131. package/dist/inspector/probe.js.map +1 -0
  132. package/dist/inspector/tuning.d.ts +19 -0
  133. package/dist/inspector/tuning.d.ts.map +1 -0
  134. package/dist/inspector/tuning.js +37 -0
  135. package/dist/inspector/tuning.js.map +1 -0
  136. package/dist/interactive-navigation/index.d.ts +44 -0
  137. package/dist/interactive-navigation/index.d.ts.map +1 -0
  138. package/dist/interactive-navigation/index.js +314 -0
  139. package/dist/interactive-navigation/index.js.map +1 -0
  140. package/dist/keyboard.d.ts +24 -0
  141. package/dist/keyboard.d.ts.map +1 -1
  142. package/dist/keyboard.js +199 -6
  143. package/dist/keyboard.js.map +1 -1
  144. package/dist/layout.d.ts +13 -0
  145. package/dist/layout.d.ts.map +1 -0
  146. package/dist/layout.js +348 -0
  147. package/dist/layout.js.map +1 -0
  148. package/dist/live-spring-driver.d.ts +52 -0
  149. package/dist/live-spring-driver.d.ts.map +1 -0
  150. package/dist/live-spring-driver.js +104 -0
  151. package/dist/live-spring-driver.js.map +1 -0
  152. package/dist/mixer.d.ts +55 -0
  153. package/dist/mixer.d.ts.map +1 -0
  154. package/dist/mixer.js +278 -0
  155. package/dist/mixer.js.map +1 -0
  156. package/dist/motion-scope.d.ts +10 -2
  157. package/dist/motion-scope.d.ts.map +1 -1
  158. package/dist/motion-scope.js +30 -3
  159. package/dist/motion-scope.js.map +1 -1
  160. package/dist/motion-states.d.ts +19 -7
  161. package/dist/motion-states.d.ts.map +1 -1
  162. package/dist/motion-states.js +116 -26
  163. package/dist/motion-states.js.map +1 -1
  164. package/dist/motion-value.d.ts +227 -0
  165. package/dist/motion-value.d.ts.map +1 -0
  166. package/dist/motion-value.js +1074 -0
  167. package/dist/motion-value.js.map +1 -0
  168. package/dist/native/index.d.ts +10 -0
  169. package/dist/native/index.d.ts.map +1 -0
  170. package/dist/native/index.js +6 -0
  171. package/dist/native/index.js.map +1 -0
  172. package/dist/native-properties.d.ts +28 -0
  173. package/dist/native-properties.d.ts.map +1 -0
  174. package/dist/native-properties.js +154 -0
  175. package/dist/native-properties.js.map +1 -0
  176. package/dist/native-property-driver.d.ts +19 -0
  177. package/dist/native-property-driver.d.ts.map +1 -0
  178. package/dist/native-property-driver.js +69 -0
  179. package/dist/native-property-driver.js.map +1 -0
  180. package/dist/native-property.d.ts +37 -0
  181. package/dist/native-property.d.ts.map +1 -0
  182. package/dist/native-property.js +285 -0
  183. package/dist/native-property.js.map +1 -0
  184. package/dist/particles.d.ts +5 -2
  185. package/dist/particles.d.ts.map +1 -1
  186. package/dist/particles.js +16 -10
  187. package/dist/particles.js.map +1 -1
  188. package/dist/path.d.ts.map +1 -1
  189. package/dist/path.js +2 -2
  190. package/dist/path.js.map +1 -1
  191. package/dist/physics/index.d.ts +116 -0
  192. package/dist/physics/index.d.ts.map +1 -0
  193. package/dist/physics/index.js +306 -0
  194. package/dist/physics/index.js.map +1 -0
  195. package/dist/physics/native.d.ts +53 -0
  196. package/dist/physics/native.d.ts.map +1 -0
  197. package/dist/physics/native.js +58 -0
  198. package/dist/physics/native.js.map +1 -0
  199. package/dist/playback-group.d.ts.map +1 -1
  200. package/dist/playback-group.js +17 -1
  201. package/dist/playback-group.js.map +1 -1
  202. package/dist/playback.d.ts +15 -0
  203. package/dist/playback.d.ts.map +1 -1
  204. package/dist/playback.js +23 -0
  205. package/dist/playback.js.map +1 -1
  206. package/dist/predictive-back/index.d.ts +45 -0
  207. package/dist/predictive-back/index.d.ts.map +1 -0
  208. package/dist/predictive-back/index.js +220 -0
  209. package/dist/predictive-back/index.js.map +1 -0
  210. package/dist/predictive-back/presentation.d.ts +4 -0
  211. package/dist/predictive-back/presentation.d.ts.map +1 -0
  212. package/dist/predictive-back/presentation.js +3 -0
  213. package/dist/predictive-back/presentation.js.map +1 -0
  214. package/dist/reorder/handle.d.ts +6 -0
  215. package/dist/reorder/handle.d.ts.map +1 -0
  216. package/dist/reorder/handle.js +10 -0
  217. package/dist/reorder/handle.js.map +1 -0
  218. package/dist/reorder/index.d.ts +10 -0
  219. package/dist/reorder/index.d.ts.map +1 -0
  220. package/dist/reorder/index.js +233 -0
  221. package/dist/reorder/index.js.map +1 -0
  222. package/dist/reorder/list-view.d.ts +5 -0
  223. package/dist/reorder/list-view.d.ts.map +1 -0
  224. package/dist/reorder/list-view.js +238 -0
  225. package/dist/reorder/list-view.js.map +1 -0
  226. package/dist/reorder/model.d.ts +6 -0
  227. package/dist/reorder/model.d.ts.map +1 -0
  228. package/dist/reorder/model.js +30 -0
  229. package/dist/reorder/model.js.map +1 -0
  230. package/dist/reorder/surface.d.ts +6 -0
  231. package/dist/reorder/surface.d.ts.map +1 -0
  232. package/dist/reorder/surface.js +10 -0
  233. package/dist/reorder/surface.js.map +1 -0
  234. package/dist/reorder/types.d.ts +92 -0
  235. package/dist/reorder/types.d.ts.map +1 -0
  236. package/dist/reorder/types.js +2 -0
  237. package/dist/reorder/types.js.map +1 -0
  238. package/dist/sampling.d.ts +35 -0
  239. package/dist/sampling.d.ts.map +1 -0
  240. package/dist/sampling.js +123 -0
  241. package/dist/sampling.js.map +1 -0
  242. package/dist/scene-appearance.d.ts +14 -0
  243. package/dist/scene-appearance.d.ts.map +1 -0
  244. package/dist/scene-appearance.js +68 -0
  245. package/dist/scene-appearance.js.map +1 -0
  246. package/dist/scene-camera.d.ts +5 -0
  247. package/dist/scene-camera.d.ts.map +1 -0
  248. package/dist/scene-camera.js +23 -0
  249. package/dist/scene-camera.js.map +1 -0
  250. package/dist/scene-shader.d.ts +18 -0
  251. package/dist/scene-shader.d.ts.map +1 -0
  252. package/dist/scene-shader.js +76 -0
  253. package/dist/scene-shader.js.map +1 -0
  254. package/dist/scroll-header/geometry.d.ts +18 -0
  255. package/dist/scroll-header/geometry.d.ts.map +1 -0
  256. package/dist/scroll-header/geometry.js +46 -0
  257. package/dist/scroll-header/geometry.js.map +1 -0
  258. package/dist/scroll-header/index.d.ts +48 -0
  259. package/dist/scroll-header/index.d.ts.map +1 -0
  260. package/dist/scroll-header/index.js +373 -0
  261. package/dist/scroll-header/index.js.map +1 -0
  262. package/dist/scroll-header/native.d.ts +28 -0
  263. package/dist/scroll-header/native.d.ts.map +1 -0
  264. package/dist/scroll-header/native.js +43 -0
  265. package/dist/scroll-header/native.js.map +1 -0
  266. package/dist/sensors/index.d.ts +69 -0
  267. package/dist/sensors/index.d.ts.map +1 -0
  268. package/dist/sensors/index.js +149 -0
  269. package/dist/sensors/index.js.map +1 -0
  270. package/dist/sensors/native.d.ts +20 -0
  271. package/dist/sensors/native.d.ts.map +1 -0
  272. package/dist/sensors/native.js +48 -0
  273. package/dist/sensors/native.js.map +1 -0
  274. package/dist/sequence.d.ts +24 -0
  275. package/dist/sequence.d.ts.map +1 -1
  276. package/dist/sequence.js +181 -19
  277. package/dist/sequence.js.map +1 -1
  278. package/dist/shapes/android.d.ts +3 -0
  279. package/dist/shapes/android.d.ts.map +1 -0
  280. package/dist/shapes/android.js +51 -0
  281. package/dist/shapes/android.js.map +1 -0
  282. package/dist/shapes/index.d.ts +6 -0
  283. package/dist/shapes/index.d.ts.map +1 -0
  284. package/dist/shapes/index.js +238 -0
  285. package/dist/shapes/index.js.map +1 -0
  286. package/dist/shapes/ios.d.ts +3 -0
  287. package/dist/shapes/ios.d.ts.map +1 -0
  288. package/dist/shapes/ios.js +164 -0
  289. package/dist/shapes/ios.js.map +1 -0
  290. package/dist/shapes/native.d.ts +18 -0
  291. package/dist/shapes/native.d.ts.map +1 -0
  292. package/dist/shapes/native.js +10 -0
  293. package/dist/shapes/native.js.map +1 -0
  294. package/dist/shapes/path.d.ts +10 -0
  295. package/dist/shapes/path.d.ts.map +1 -0
  296. package/dist/shapes/path.js +106 -0
  297. package/dist/shapes/path.js.map +1 -0
  298. package/dist/shapes/types.d.ts +55 -0
  299. package/dist/shapes/types.d.ts.map +1 -0
  300. package/dist/shapes/types.js +11 -0
  301. package/dist/shapes/types.js.map +1 -0
  302. package/dist/shared-layout/index.d.ts +40 -0
  303. package/dist/shared-layout/index.d.ts.map +1 -0
  304. package/dist/shared-layout/index.js +267 -0
  305. package/dist/shared-layout/index.js.map +1 -0
  306. package/dist/shared-layout/native.d.ts +15 -0
  307. package/dist/shared-layout/native.d.ts.map +1 -0
  308. package/dist/shared-layout/native.js +79 -0
  309. package/dist/shared-layout/native.js.map +1 -0
  310. package/dist/shared-layout/timing.d.ts +9 -0
  311. package/dist/shared-layout/timing.d.ts.map +1 -0
  312. package/dist/shared-layout/timing.js +68 -0
  313. package/dist/shared-layout/timing.js.map +1 -0
  314. package/dist/shared-navigation/entry.d.ts +51 -0
  315. package/dist/shared-navigation/entry.d.ts.map +1 -0
  316. package/dist/shared-navigation/entry.js +619 -0
  317. package/dist/shared-navigation/entry.js.map +1 -0
  318. package/dist/shared-navigation/index.d.ts +58 -0
  319. package/dist/shared-navigation/index.d.ts.map +1 -0
  320. package/dist/shared-navigation/index.js +318 -0
  321. package/dist/shared-navigation/index.js.map +1 -0
  322. package/dist/shared-navigation/return-signal.d.ts +16 -0
  323. package/dist/shared-navigation/return-signal.d.ts.map +1 -0
  324. package/dist/shared-navigation/return-signal.js +35 -0
  325. package/dist/shared-navigation/return-signal.js.map +1 -0
  326. package/dist/shared-navigation/return-target.d.ts +32 -0
  327. package/dist/shared-navigation/return-target.d.ts.map +1 -0
  328. package/dist/shared-navigation/return-target.js +168 -0
  329. package/dist/shared-navigation/return-target.js.map +1 -0
  330. package/dist/shared-navigation/scope.d.ts +4 -0
  331. package/dist/shared-navigation/scope.d.ts.map +1 -0
  332. package/dist/shared-navigation/scope.js +2 -0
  333. package/dist/shared-navigation/scope.js.map +1 -0
  334. package/dist/shared-navigation/targets.d.ts +6 -0
  335. package/dist/shared-navigation/targets.d.ts.map +1 -0
  336. package/dist/shared-navigation/targets.js +36 -0
  337. package/dist/shared-navigation/targets.js.map +1 -0
  338. package/dist/size-layout.d.ts +19 -0
  339. package/dist/size-layout.d.ts.map +1 -0
  340. package/dist/size-layout.js +216 -0
  341. package/dist/size-layout.js.map +1 -0
  342. package/dist/size.d.ts +19 -0
  343. package/dist/size.d.ts.map +1 -0
  344. package/dist/size.js +251 -0
  345. package/dist/size.js.map +1 -0
  346. package/dist/spring.d.ts +2 -0
  347. package/dist/spring.d.ts.map +1 -1
  348. package/dist/spring.js +11 -0
  349. package/dist/spring.js.map +1 -1
  350. package/dist/svg-path.d.ts +18 -0
  351. package/dist/svg-path.d.ts.map +1 -1
  352. package/dist/svg-path.js +3 -2
  353. package/dist/svg-path.js.map +1 -1
  354. package/dist/testing/clock.d.ts +40 -0
  355. package/dist/testing/clock.d.ts.map +1 -0
  356. package/dist/testing/clock.js +116 -0
  357. package/dist/testing/clock.js.map +1 -0
  358. package/dist/testing/handoff-recorder.d.ts +8 -0
  359. package/dist/testing/handoff-recorder.d.ts.map +1 -0
  360. package/dist/testing/handoff-recorder.js +77 -0
  361. package/dist/testing/handoff-recorder.js.map +1 -0
  362. package/dist/testing/index.d.ts +5 -0
  363. package/dist/testing/index.d.ts.map +1 -0
  364. package/dist/testing/index.js +5 -0
  365. package/dist/testing/index.js.map +1 -0
  366. package/dist/testing/native.d.ts +46 -0
  367. package/dist/testing/native.d.ts.map +1 -0
  368. package/dist/testing/native.js +313 -0
  369. package/dist/testing/native.js.map +1 -0
  370. package/dist/testing/presentation.d.ts +11 -0
  371. package/dist/testing/presentation.d.ts.map +1 -0
  372. package/dist/testing/presentation.js +45 -0
  373. package/dist/testing/presentation.js.map +1 -0
  374. package/dist/testing/replay.d.ts +39 -0
  375. package/dist/testing/replay.d.ts.map +1 -0
  376. package/dist/testing/replay.js +99 -0
  377. package/dist/testing/replay.js.map +1 -0
  378. package/dist/testing/scroll-handoff-native.d.ts +10 -0
  379. package/dist/testing/scroll-handoff-native.d.ts.map +1 -0
  380. package/dist/testing/scroll-handoff-native.js +151 -0
  381. package/dist/testing/scroll-handoff-native.js.map +1 -0
  382. package/dist/testing/scroll-handoff.d.ts +25 -0
  383. package/dist/testing/scroll-handoff.d.ts.map +1 -0
  384. package/dist/testing/scroll-handoff.js +127 -0
  385. package/dist/testing/scroll-handoff.js.map +1 -0
  386. package/dist/testing/sensors.d.ts +13 -0
  387. package/dist/testing/sensors.d.ts.map +1 -0
  388. package/dist/testing/sensors.js +26 -0
  389. package/dist/testing/sensors.js.map +1 -0
  390. package/dist/testing/trace.d.ts +101 -0
  391. package/dist/testing/trace.d.ts.map +1 -0
  392. package/dist/testing/trace.js +263 -0
  393. package/dist/testing/trace.js.map +1 -0
  394. package/dist/timed-animation.d.ts +38 -0
  395. package/dist/timed-animation.d.ts.map +1 -0
  396. package/dist/timed-animation.js +177 -0
  397. package/dist/timed-animation.js.map +1 -0
  398. package/dist/track.d.ts +3 -0
  399. package/dist/track.d.ts.map +1 -1
  400. package/dist/track.js +281 -40
  401. package/dist/track.js.map +1 -1
  402. package/dist/transition.d.ts +54 -2
  403. package/dist/transition.d.ts.map +1 -1
  404. package/dist/transition.js +128 -8
  405. package/dist/transition.js.map +1 -1
  406. package/dist/types.d.ts +10 -1
  407. package/dist/types.d.ts.map +1 -1
  408. package/dist/value-observers.d.ts +22 -0
  409. package/dist/value-observers.d.ts.map +1 -0
  410. package/dist/value-observers.js +122 -0
  411. package/dist/value-observers.js.map +1 -0
  412. package/dist/value-track.d.ts +13 -0
  413. package/dist/value-track.d.ts.map +1 -0
  414. package/dist/value-track.js +59 -0
  415. package/dist/value-track.js.map +1 -0
  416. package/dist/vue/index.d.ts +33 -3
  417. package/dist/vue/index.d.ts.map +1 -1
  418. package/dist/vue/index.js +118 -3
  419. package/dist/vue/index.js.map +1 -1
  420. package/dist/zoomable.d.ts +1 -1
  421. package/dist/zoomable.d.ts.map +1 -1
  422. package/package.json +68 -3
  423. package/platforms/android/include.gradle +10 -0
  424. package/platforms/android/java/org/rafaelaugusto/jolt/BlurEffect.java +89 -0
  425. package/platforms/android/java/org/rafaelaugusto/jolt/CircleMath.java +151 -0
  426. package/platforms/android/java/org/rafaelaugusto/jolt/CircleWorld.java +210 -0
  427. package/platforms/android/java/org/rafaelaugusto/jolt/GestureSession.java +227 -0
  428. package/platforms/android/java/org/rafaelaugusto/jolt/GestureSurface.java +54 -0
  429. package/platforms/android/java/org/rafaelaugusto/jolt/GradientLayer.java +224 -0
  430. package/platforms/android/java/org/rafaelaugusto/jolt/KeyboardFrame.java +53 -0
  431. package/platforms/android/java/org/rafaelaugusto/jolt/KeyboardFrameFollower.java +57 -0
  432. package/platforms/android/java/org/rafaelaugusto/jolt/KeyboardObserver.java +97 -0
  433. package/platforms/android/java/org/rafaelaugusto/jolt/LiveSpring.java +277 -0
  434. package/platforms/android/java/org/rafaelaugusto/jolt/MotionProbe.java +70 -0
  435. package/platforms/android/java/org/rafaelaugusto/jolt/ParticleEmitter.java +192 -0
  436. package/platforms/android/java/org/rafaelaugusto/jolt/ParticleSimulation.java +114 -0
  437. package/platforms/android/java/org/rafaelaugusto/jolt/PredictiveBackSession.java +212 -0
  438. package/platforms/android/java/org/rafaelaugusto/jolt/ReorderHandle.java +25 -0
  439. package/platforms/android/java/org/rafaelaugusto/jolt/ReorderSession.java +213 -0
  440. package/platforms/android/java/org/rafaelaugusto/jolt/ReorderSurface.java +27 -0
  441. package/platforms/android/java/org/rafaelaugusto/jolt/ScrollHeader.java +84 -0
  442. package/platforms/android/java/org/rafaelaugusto/jolt/SensorMath.java +28 -0
  443. package/platforms/android/java/org/rafaelaugusto/jolt/SensorSource.java +217 -0
  444. package/platforms/android/java/org/rafaelaugusto/jolt/ShapeLayer.java +120 -0
  445. package/platforms/android/java/org/rafaelaugusto/jolt/SharedLayoutFlight.java +287 -0
  446. package/platforms/android/java/org/rafaelaugusto/jolt/SharedNavigationScene.java +115 -0
  447. package/platforms/android/java/org/rafaelaugusto/jolt/SpringState.java +39 -0
  448. package/platforms/android/proguard-rules.pro +20 -0
  449. package/platforms/ios/build.xcconfig +1 -1
  450. package/platforms/ios/src/JoltBlur.h +14 -0
  451. package/platforms/ios/src/JoltBlur.m +86 -0
  452. package/platforms/ios/src/JoltCircleMath.h +183 -0
  453. package/platforms/ios/src/JoltCircleWorld.h +17 -0
  454. package/platforms/ios/src/JoltCircleWorld.m +203 -0
  455. package/platforms/ios/src/JoltGestureSession.h +23 -0
  456. package/platforms/ios/src/JoltGestureSession.m +251 -0
  457. package/platforms/ios/src/JoltInteractiveNavigation.h +23 -0
  458. package/platforms/ios/src/JoltInteractiveNavigation.m +255 -0
  459. package/platforms/ios/src/JoltLiveSpring.h +29 -0
  460. package/platforms/ios/src/JoltLiveSpring.m +243 -0
  461. package/platforms/ios/src/JoltMotionProbe.h +9 -0
  462. package/platforms/ios/src/JoltMotionProbe.m +72 -0
  463. package/platforms/ios/src/JoltReorderSession.h +15 -0
  464. package/platforms/ios/src/JoltReorderSession.m +205 -0
  465. package/platforms/ios/src/JoltScrollHeader.h +13 -0
  466. package/platforms/ios/src/JoltScrollHeader.m +93 -0
  467. package/platforms/ios/src/JoltSensorMath.h +39 -0
  468. package/platforms/ios/src/JoltSensorSource.h +13 -0
  469. package/platforms/ios/src/JoltSensorSource.m +201 -0
  470. package/platforms/ios/src/JoltSharedLayoutFlight.h +19 -0
  471. package/platforms/ios/src/JoltSharedLayoutFlight.m +250 -0
  472. package/platforms/ios/src/JoltSpringState.h +35 -0
  473. package/platforms/ios/src/module.modulemap +10 -0
  474. package/src/android-plugin.d.ts +463 -0
  475. package/src/animate.ts +129 -15
  476. package/src/blur/index.ts +195 -0
  477. package/src/blur/native.ts +70 -0
  478. package/src/blur/types.ts +32 -0
  479. package/src/bottom-sheet/geometry.ts +84 -0
  480. package/src/bottom-sheet/index.ts +536 -0
  481. package/src/bottom-sheet/native.ts +214 -0
  482. package/src/config.ts +39 -1
  483. package/src/decay.ts +9 -0
  484. package/src/drag.ts +67 -21
  485. package/src/driver/android-gradient.ts +116 -0
  486. package/src/driver/android-particles.ts +118 -0
  487. package/src/driver/android.ts +69 -1
  488. package/src/driver/frame.ts +10 -0
  489. package/src/driver/index.ts +15 -0
  490. package/src/driver/ios-gradient.ts +136 -0
  491. package/src/driver/ios-layout.ts +63 -0
  492. package/src/driver/ios-scroll-delegate.ts +23 -0
  493. package/src/driver/ios.ts +70 -17
  494. package/src/easing.ts +21 -1
  495. package/src/engine.ts +226 -59
  496. package/src/gesture-native.ts +139 -0
  497. package/src/gestures/index.ts +365 -0
  498. package/src/glass/index.ts +218 -0
  499. package/src/gradient-binding.ts +158 -0
  500. package/src/gradient.ts +663 -0
  501. package/src/gravity.ts +107 -0
  502. package/src/haptics.ts +106 -28
  503. package/src/image-effect.ts +10 -2
  504. package/src/index.ts +59 -7
  505. package/src/inspector/index.ts +523 -0
  506. package/src/inspector/plot.ts +27 -0
  507. package/src/inspector/probe.ts +50 -0
  508. package/src/inspector/tuning.ts +51 -0
  509. package/src/interactive-navigation/index.ts +398 -0
  510. package/src/ios-plugin.d.ts +279 -0
  511. package/src/keyboard.ts +231 -7
  512. package/src/layout.ts +408 -0
  513. package/src/live-spring-driver.ts +181 -0
  514. package/src/mixer.ts +306 -0
  515. package/src/motion-scope.ts +53 -6
  516. package/src/motion-states.ts +149 -42
  517. package/src/motion-value.ts +1289 -0
  518. package/src/native/index.ts +30 -0
  519. package/src/native-properties.ts +188 -0
  520. package/src/native-property-driver.ts +123 -0
  521. package/src/native-property.ts +366 -0
  522. package/src/particles.ts +18 -17
  523. package/src/path.ts +2 -1
  524. package/src/physics/index.ts +443 -0
  525. package/src/physics/native.ts +110 -0
  526. package/src/playback-group.ts +17 -1
  527. package/src/playback.ts +41 -0
  528. package/src/predictive-back/index.ts +280 -0
  529. package/src/predictive-back/presentation.ts +6 -0
  530. package/src/reorder/handle.ts +9 -0
  531. package/src/reorder/index.ts +243 -0
  532. package/src/reorder/list-view.ts +262 -0
  533. package/src/reorder/model.ts +47 -0
  534. package/src/reorder/surface.ts +10 -0
  535. package/src/reorder/types.ts +87 -0
  536. package/src/sampling.ts +173 -0
  537. package/src/scene-appearance.ts +92 -0
  538. package/src/scene-camera.ts +30 -0
  539. package/src/scene-shader.ts +139 -0
  540. package/src/scroll-header/geometry.ts +88 -0
  541. package/src/scroll-header/index.ts +504 -0
  542. package/src/scroll-header/native.ts +89 -0
  543. package/src/sensors/index.ts +246 -0
  544. package/src/sensors/native.ts +72 -0
  545. package/src/sequence.ts +209 -20
  546. package/src/shapes/android.ts +63 -0
  547. package/src/shapes/index.ts +267 -0
  548. package/src/shapes/ios.ts +194 -0
  549. package/src/shapes/native.ts +27 -0
  550. package/src/shapes/path.ts +127 -0
  551. package/src/shapes/types.ts +63 -0
  552. package/src/shared-layout/index.ts +343 -0
  553. package/src/shared-layout/native.ts +138 -0
  554. package/src/shared-layout/timing.ts +87 -0
  555. package/src/shared-navigation/entry.ts +695 -0
  556. package/src/shared-navigation/index.ts +414 -0
  557. package/src/shared-navigation/return-signal.ts +41 -0
  558. package/src/shared-navigation/return-target.ts +197 -0
  559. package/src/shared-navigation/scope.ts +3 -0
  560. package/src/shared-navigation/targets.ts +38 -0
  561. package/src/size-layout.ts +237 -0
  562. package/src/size.ts +302 -0
  563. package/src/spring.ts +18 -0
  564. package/src/svg-path.ts +8 -3
  565. package/src/testing/clock.ts +128 -0
  566. package/src/testing/handoff-recorder.ts +98 -0
  567. package/src/testing/index.ts +4 -0
  568. package/src/testing/native.ts +386 -0
  569. package/src/testing/presentation.ts +46 -0
  570. package/src/testing/replay.ts +149 -0
  571. package/src/testing/scroll-handoff-native.ts +201 -0
  572. package/src/testing/scroll-handoff.ts +140 -0
  573. package/src/testing/sensors.ts +41 -0
  574. package/src/testing/trace.ts +340 -0
  575. package/src/timed-animation.ts +192 -0
  576. package/src/track.ts +334 -38
  577. package/src/transition.ts +197 -9
  578. package/src/types.ts +11 -1
  579. package/src/value-observers.ts +147 -0
  580. package/src/value-track.ts +71 -0
  581. package/src/vue/index.ts +147 -1
  582. package/src/zoomable.ts +1 -1
@@ -0,0 +1,398 @@
1
+ import { ReturnScope } from '../shared-navigation/return-signal.js'
2
+ import {
3
+ Application,
4
+ Image,
5
+ isIOS,
6
+ SharedTransition,
7
+ Transition,
8
+ Trace,
9
+ type EventData,
10
+ type Frame,
11
+ type NavigationTransition,
12
+ type Page,
13
+ type NavigationData,
14
+ } from '@nativescript/core'
15
+ import {
16
+ resolveReturnTarget,
17
+ validateReturnTarget,
18
+ focusReturnTarget,
19
+ type SharedReturnTarget,
20
+ } from '../shared-navigation/return-target.js'
21
+ import { find, radius, supportedImage } from '../shared-navigation/targets.js'
22
+ import { onReducedMotion, reducedMotion, timeScale } from '../config.js'
23
+ import { springPhysics } from '../spring.js'
24
+ import { springs, type Spring } from '../transition.js'
25
+
26
+ export type InteractiveNavigationState =
27
+ 'ready' | 'animating' | 'idle' | 'dragging' | 'finishing' | 'cancelling' | 'disposed'
28
+ export interface InteractiveNavigationEvent {
29
+ state: InteractiveNavigationState
30
+ outcome?: 'completed' | 'cancelled'
31
+ shared?: { status: 'ready' | 'unavailable'; reason?: string }
32
+ /** Present on finishing/cancelling. Velocity is page widths per second. */
33
+ release?: Readonly<{ progress: number; velocity: number }>
34
+ }
35
+ export interface InteractiveNavigationOptions {
36
+ /** Optional stable image/card identity in the two pages. Unsupported pairs use normal page motion. */
37
+ shared?: { tag: string; maxSnapshotPixels?: number; returnTarget?: SharedReturnTarget }
38
+ /** Same physics as Jolt's live springs. Default smooth; settling is bounded at 3 s. */
39
+ spring?:
40
+ | keyof typeof springs
41
+ | Pick<Spring, 'duration' | 'bounce' | 'stiffness' | 'damping' | 'mass'>
42
+ /** Synchronous extra gate. Page.enableSwipeBackNavigation is always respected. */
43
+ canBegin?: () => boolean
44
+ /** Lifecycle only. Finger updates and spring playback stay in Objective-C. */
45
+ onState?: (event: InteractiveNavigationEvent) => void
46
+ }
47
+ export interface InteractiveNavigation {
48
+ readonly supported: boolean
49
+ /** Use for ONE pushed Frame entry. Pass to Frame.navigate or router.push. */
50
+ readonly transition: NavigationTransition | undefined
51
+ readonly state: InteractiveNavigationState
52
+ /** Rolls back a held drag. A release already committed to UIKit finishes normally. */
53
+ cancel(): void
54
+ /** Detaches the gesture; future programmatic back uses UIKit's default transition. */
55
+ dispose(): void
56
+ }
57
+
58
+ /** Interactive iOS page navigation using Core's existing UINavigationController delegate. */
59
+ export function interactiveNavigation(
60
+ frame: Frame,
61
+ options: InteractiveNavigationOptions = {},
62
+ ): InteractiveNavigation {
63
+ if (
64
+ options.shared &&
65
+ (typeof options.shared.tag !== 'string' || !options.shared.tag.trim())
66
+ )
67
+ throw new TypeError('A nonempty sharedTransitionTag is required.')
68
+ validateReturnTarget(options.shared?.returnTarget)
69
+ const budget = options.shared?.maxSnapshotPixels ?? 8_000_000
70
+ if (!Number.isSafeInteger(budget) || budget <= 0 || budget > 32_000_000)
71
+ throw new RangeError('maxSnapshotPixels must be a positive integer at most 32000000.')
72
+ const input =
73
+ typeof options.spring === 'string' ? springs[options.spring] : options.spring
74
+ if (options.spring !== undefined && !input)
75
+ throw new TypeError('Unknown navigation spring.')
76
+ for (const [key, value] of Object.entries(input ?? {}) as [string, unknown][]) {
77
+ if (!['type', 'duration', 'bounce', 'stiffness', 'damping', 'mass'].includes(key))
78
+ throw new TypeError(`Unsupported navigation spring option: ${key}.`)
79
+ if (key === 'type' && value !== 'spring')
80
+ throw new TypeError('Interactive navigation requires a spring.')
81
+ if (key !== 'type' && (typeof value !== 'number' || !Number.isFinite(value)))
82
+ throw new RangeError(`${key} must be finite.`)
83
+ if (['duration', 'stiffness', 'mass'].includes(key) && (value as number) <= 0)
84
+ throw new RangeError(`${key} must be positive.`)
85
+ if (key === 'damping' && (value as number) < 0)
86
+ throw new RangeError('damping must be nonnegative.')
87
+ }
88
+ const physics = springPhysics(input ?? springs.smooth)
89
+ if (Object.values(physics).some((value) => !Number.isFinite(value)))
90
+ throw new RangeError('Navigation spring physics must be finite.')
91
+ const supported = isIOS && typeof JoltInteractiveNavigation !== 'undefined'
92
+ let state: InteractiveNavigationState = 'ready'
93
+ let native: JoltInteractiveNavigation | undefined, page: Page | undefined
94
+ let candidate: Page | undefined
95
+ let start: (() => void) | undefined
96
+ let transitioning = false
97
+ let fromPage: Page | undefined, toPage: Page | undefined
98
+ let shared: InteractiveNavigationEvent['shared']
99
+ let targetScope: ReturnScope | undefined
100
+ let detachTarget: (() => void) | undefined
101
+ let resolvedReturn: import('@nativescript/core').View | undefined
102
+ let returning = false
103
+ const originalPage = frame.currentPage
104
+ function prepareShared() {
105
+ if (!native || !options.shared) return
106
+ if (returning && options.shared.returnTarget && toPage) {
107
+ targetScope?.abort()
108
+ detachTarget?.()
109
+ detachTarget = undefined
110
+ const scope = (targetScope = new ReturnScope())
111
+ resolvedReturn = undefined
112
+ const targetPage = toPage,
113
+ owner = native,
114
+ sharedOptions = options.shared
115
+ void resolveReturnTarget(
116
+ sharedOptions.returnTarget!,
117
+ sharedOptions.tag,
118
+ targetPage,
119
+ scope.signal,
120
+ ).then((result) => {
121
+ if (scope.signal.aborted || state === 'disposed' || native !== owner) return
122
+ if (result.view) {
123
+ resolvedReturn = result.view
124
+ installShared()
125
+ const target = result.view
126
+ const invalidated = () => {
127
+ shared = { status: 'unavailable', reason: 'target-invalidated' }
128
+ owner.cancel()
129
+ }
130
+ const events = [
131
+ 'bindingContextChange',
132
+ 'sharedTransitionTagChange',
133
+ 'imageSourceChange',
134
+ 'unloaded',
135
+ ]
136
+ for (const event of events) target.on(event, invalidated)
137
+ detachTarget = () => {
138
+ for (const event of events) target.off(event, invalidated)
139
+ }
140
+ } else shared = { status: 'unavailable', reason: result.reason }
141
+ owner.completeSharedPreparation()
142
+ })
143
+ return
144
+ }
145
+ installShared()
146
+ }
147
+ function installShared() {
148
+ if (!native || !options.shared) return
149
+ const unavailable = (reason: string) => {
150
+ shared = { status: 'unavailable', reason }
151
+ }
152
+ if (reducedMotion()) return unavailable('reduced-motion')
153
+ const sources = find(fromPage, options.shared.tag, true),
154
+ targets = find(toPage, options.shared.tag, true)
155
+ if (sources.length !== 1)
156
+ return unavailable(sources.length ? 'duplicate-source' : 'missing-source')
157
+ if (targets.length !== 1)
158
+ return unavailable(targets.length ? 'duplicate-target' : 'missing-target')
159
+ const source = sources[0]!,
160
+ target = targets[0]!,
161
+ image = source instanceof Image
162
+ if (
163
+ image &&
164
+ (!supportedImage(source) ||
165
+ !supportedImage(target) ||
166
+ (source.src !== target.src && source.imageSource !== target.imageSource))
167
+ )
168
+ return unavailable('unsupported-image')
169
+ if (!image && target instanceof Image) return unavailable('content-mismatch')
170
+ try {
171
+ shared = native.prepareSharedFromToImageFromRadiusToRadiusMaxPixels(
172
+ source.nativeViewProtected,
173
+ target.nativeViewProtected,
174
+ image,
175
+ radius(source),
176
+ radius(target),
177
+ budget,
178
+ )
179
+ ? { status: 'ready' }
180
+ : { status: 'unavailable', reason: 'unsupported-geometry' }
181
+ } catch {
182
+ unavailable('native-unavailable')
183
+ }
184
+ }
185
+ let transition: NavigationTransition | undefined
186
+ let releaseMotion: (() => void) | undefined
187
+ const emit = (
188
+ next: InteractiveNavigationState,
189
+ outcome?: InteractiveNavigationEvent['outcome'],
190
+ release?: InteractiveNavigationEvent['release'],
191
+ ) => {
192
+ if (state === 'disposed') return
193
+ state = next
194
+ try {
195
+ options.onState?.({
196
+ state,
197
+ ...(shared ? { shared } : {}),
198
+ ...(outcome ? { outcome } : {}),
199
+ ...(release ? { release } : {}),
200
+ })
201
+ } catch (error) {
202
+ Trace.write(
203
+ `Interactive navigation observer failed: ${String(error)}`,
204
+ 'Jolt',
205
+ Trace.messageType.error,
206
+ )
207
+ }
208
+ }
209
+ const cancel = () => {
210
+ targetScope?.abort()
211
+ native?.cancel()
212
+ }
213
+ const unload = () => control.dispose()
214
+ const shown = () => native?.sync()
215
+ const swipeChanged = () => {
216
+ void Promise.resolve().then(shown)
217
+ }
218
+ const arrived = () => {
219
+ if (transitioning) return
220
+ // clearHistory/replace/programmatic pop also release the entry's recognizer.
221
+ if (
222
+ page &&
223
+ frame.currentPage !== page &&
224
+ !frame.backStack.some((entry) => entry.resolvedPage === page)
225
+ )
226
+ void Promise.resolve().then(() => control.dispose())
227
+ else shown()
228
+ }
229
+ const entering = (args: EventData) => {
230
+ const event = args as NavigationData
231
+ if (!page && !event.isBack) candidate = event.entry?.resolvedPage
232
+ }
233
+ class PageMotion extends Transition {
234
+ override setupInteractiveGesture(callback: () => void) {
235
+ start = callback
236
+ }
237
+ override iosNavigatedController(
238
+ nav: UINavigationController,
239
+ operation: number,
240
+ from: UIViewController,
241
+ to: UIViewController,
242
+ ) {
243
+ if (state === 'disposed' || nav !== frame.ios.controller) return undefined
244
+ if (operation === 1) {
245
+ // An entry owns one transition. Reusing its instance never steals another page.
246
+ if (page || candidate?.ios !== to) return undefined
247
+ page = candidate
248
+ page.on('enableSwipeBackNavigationChange', swipeChanged)
249
+ }
250
+ if (!page) return undefined
251
+ const pages = [
252
+ originalPage,
253
+ page,
254
+ ...frame.backStack.map((entry) => entry.resolvedPage),
255
+ ]
256
+ fromPage = pages.find((candidate) => candidate?.ios === from)
257
+ toPage = pages.find((candidate) => candidate?.ios === to)
258
+ shared = undefined
259
+ returning = operation !== 1
260
+ transitioning = true
261
+ if (!native) {
262
+ native = JoltInteractiveNavigation.attachStiffnessDampingMassShouldBeginOnEvent(
263
+ nav,
264
+ physics.stiffness,
265
+ physics.damping,
266
+ physics.mass,
267
+ () => {
268
+ try {
269
+ return (
270
+ state === 'idle' &&
271
+ !!start &&
272
+ !reducedMotion() &&
273
+ !!page &&
274
+ frame.currentPage === page &&
275
+ page.enableSwipeBackNavigation &&
276
+ frame.canGoBack() &&
277
+ (options.canBegin?.() ?? true) === true
278
+ )
279
+ } catch {
280
+ return false
281
+ }
282
+ },
283
+ (event) => {
284
+ if (state === 'disposed') return
285
+ if (event === 8) {
286
+ prepareShared()
287
+ return
288
+ }
289
+ if (event === 2) {
290
+ transitioning = true
291
+ frame.transitionId = this.id
292
+ SharedTransition.updateState(this.id, {
293
+ interactiveBegan: true,
294
+ interactiveCancelled: false,
295
+ })
296
+ emit('dragging')
297
+ start?.()
298
+ } else if (event === 3 || event === 4) {
299
+ emit(
300
+ event === 3 ? 'finishing' : 'cancelling',
301
+ undefined,
302
+ native && { progress: native.progress, velocity: native.velocity },
303
+ )
304
+ } else if (event === 0) emit('animating')
305
+ else {
306
+ targetScope?.abort()
307
+ targetScope = undefined
308
+ detachTarget?.()
309
+ detachTarget = undefined
310
+ if (returning && event !== 6 && toPage && options.shared?.returnTarget) {
311
+ let focus = resolvedReturn
312
+ if (!focus)
313
+ try {
314
+ focus = options.shared.returnTarget.fallbackFocus?.(toPage)
315
+ } catch {}
316
+ focusReturnTarget(toPage, focus)
317
+ }
318
+ transitioning = false
319
+ SharedTransition.updateState(this.id, {
320
+ interactiveBegan: false,
321
+ interactiveCancelled: event === 6,
322
+ })
323
+ emit(
324
+ 'idle',
325
+ event === 5 ? 'completed' : event === 6 ? 'cancelled' : undefined,
326
+ )
327
+ arrived()
328
+ }
329
+ },
330
+ )
331
+ }
332
+ if (options.shared) native.sharedEnabled = true
333
+ native.sharedDeferred = !!(returning && options.shared?.returnTarget)
334
+ native.prepareOperationPresentedReducedTimeScale(
335
+ operation,
336
+ page.ios,
337
+ reducedMotion(),
338
+ timeScale(),
339
+ )
340
+ return native
341
+ }
342
+ override iosInteractionDismiss() {
343
+ return native?.interactive ? native : undefined
344
+ }
345
+ }
346
+ const control: InteractiveNavigation = {
347
+ supported,
348
+ get transition() {
349
+ return transition
350
+ },
351
+ get state() {
352
+ return state
353
+ },
354
+ cancel,
355
+ dispose() {
356
+ if (state === 'disposed') return
357
+ targetScope?.abort()
358
+ targetScope = undefined
359
+ detachTarget?.()
360
+ detachTarget = undefined
361
+ // Complete UIKit's context before releasing Core's interactive state.
362
+ native?.disposeRestoringSwipe(
363
+ !!page?.enableSwipeBackNavigation && frame.canGoBack(),
364
+ )
365
+ native = undefined
366
+ emit('disposed')
367
+ releaseMotion?.()
368
+ frame.off('unloaded', unload)
369
+ frame.off('navigatingTo', entering)
370
+ frame.off('navigatedTo', arrived)
371
+ frame.off('viewControllerShown', shown)
372
+ Application.off(Application.suspendEvent, cancel)
373
+ if (transition?.instance) SharedTransition.finishState(transition.instance.id)
374
+ page?.off('enableSwipeBackNavigationChange', swipeChanged)
375
+ start = undefined
376
+ page = undefined
377
+ candidate = undefined
378
+ fromPage = undefined
379
+ toPage = undefined
380
+ },
381
+ }
382
+ if (supported) {
383
+ if (!frame.isLoaded || !frame.ios?.controller)
384
+ throw new Error('Create interactiveNavigation after the Frame is loaded.')
385
+ transition = SharedTransition.custom(new PageMotion(), {
386
+ interactive: { dismiss: {} },
387
+ })
388
+ frame.on('navigatingTo', entering)
389
+ frame.on('navigatedTo', arrived)
390
+ frame.on('viewControllerShown', shown)
391
+ frame.on('unloaded', unload)
392
+ Application.on(Application.suspendEvent, cancel)
393
+ releaseMotion = onReducedMotion((value) => {
394
+ if (value) cancel()
395
+ })
396
+ }
397
+ return control
398
+ }
@@ -1,3 +1,136 @@
1
+ declare class JoltBlur extends NSObject {
2
+ static attachOptions(view: UIView, options: string): JoltBlur
3
+ static liveCount(): number
4
+ static activeCount(): number
5
+ paint(amount: number): void
6
+ play(program: string): void
7
+ controlPaused(time: number, paused: boolean): void
8
+ resize(): void
9
+ snapshot(): string
10
+ dispose(): void
11
+ }
12
+ declare class JoltSensorSource extends NSObject {
13
+ static createOptionsOnState(
14
+ kind: string,
15
+ options: string,
16
+ changed: () => void,
17
+ ): JoltSensorSource
18
+ static activeCount(): number
19
+ static sourceCount(): number
20
+ connectIndex(node: JoltLiveSpring, index: number): void
21
+ setEnabledPaused(active: boolean, paused: boolean): void
22
+ snapshot(): string
23
+ recenter(): void
24
+ replay(trace: string): void
25
+ dispose(): void
26
+ }
27
+ declare class JoltScrollHeader extends NSObject {
28
+ static attachNodeTitleToolbarTitleToolbarDiagnosticOptionsOnState(
29
+ list: UITableView,
30
+ node: JoltLiveSpring,
31
+ title: UIView,
32
+ toolbarTitle: UIView,
33
+ toolbar: UIView,
34
+ diagnostic: UILabel | null,
35
+ options: string,
36
+ onState: () => void,
37
+ ): JoltScrollHeader
38
+ static activeCount(): number
39
+ configure(options: string): void
40
+ snapshot(): string
41
+ scrollAnimated(offset: number, animated: boolean): void
42
+ setEnabled(value: boolean): void
43
+ dispose(): void
44
+ }
45
+ declare class JoltMotionProbe extends NSObject {
46
+ static startViewCapacityHertz(
47
+ view: UIView,
48
+ capacity: number,
49
+ hertz: number,
50
+ ): JoltMotionProbe
51
+ static activeCount(): number
52
+ drain(): string
53
+ dispose(): void
54
+ }
55
+ declare class JoltReorderHandle extends UIButton {
56
+ onMove: ((direction: number) => void) | null
57
+ }
58
+ declare class JoltReorderSession extends NSObject {
59
+ static attachOptionsOnState(
60
+ list: UITableView,
61
+ options: string,
62
+ callback: (state: number, index: number, toIndex: number) => void,
63
+ ): JoltReorderSession
64
+ readonly active: boolean
65
+ registerHandle(view: UIView): void
66
+ setEnabled(enabled: boolean): void
67
+ setReducedMotion(reduced: boolean): void
68
+ cancel(): void
69
+ dispose(): void
70
+ }
71
+ declare class JoltGestureSession extends NSObject {
72
+ static supportsContactEvents(): boolean
73
+ static supportsScrollReplay(): boolean
74
+ static hasSession(surface: UIView): boolean
75
+ replayScrollDeltaVelocity(phase: number, delta: number, velocity: number): void
76
+ replayScrollOffset(offset: number): void
77
+ static attachScrollXYScaleRotationOptionsOnState(
78
+ surface: UIView,
79
+ scroll: UIScrollView | null,
80
+ x: JoltLiveSpring,
81
+ y: JoltLiveSpring,
82
+ scale: JoltLiveSpring,
83
+ rotation: JoltLiveSpring,
84
+ options: string,
85
+ onState: (state: number, velocityX: number, velocityY: number) => void,
86
+ ): JoltGestureSession
87
+ readonly active: boolean
88
+ cancel(): void
89
+ refreshScrollDelegate(): void
90
+ setEnabled(value: boolean): void
91
+ settleXYScaleRotationAnimated(
92
+ x: number,
93
+ y: number,
94
+ scale: number,
95
+ rotation: number,
96
+ animated: boolean,
97
+ ): void
98
+ updateLeftRightTopBottom(left: number, right: number, top: number, bottom: number): void
99
+ dispose(): void
100
+ }
101
+ declare class JoltLiveSpring extends NSObject {
102
+ static createStiffnessDampingMassRestDeltaRestSpeedReduced(
103
+ initial: number,
104
+ stiffness: number,
105
+ damping: number,
106
+ mass: number,
107
+ restDelta: number,
108
+ restSpeed: number,
109
+ reduced: boolean,
110
+ ): JoltLiveSpring
111
+ static activeCount(): number
112
+ static nodeCount(): number
113
+ static sync(view: UIView): void
114
+ readonly position: number
115
+ readonly velocity: number
116
+ readonly moving: boolean
117
+ followMappings(source: JoltLiveSpring, mappings: string): void
118
+ updateInput(snapshot: string): void
119
+ setTarget(value: number): void
120
+ setReduced(value: boolean): void
121
+ setPaused(value: boolean): void
122
+ bindPropertyMappings(
123
+ view: UIView,
124
+ property: string,
125
+ mappings: string,
126
+ ): JoltLiveSpringBinding
127
+ dispose(): void
128
+ }
129
+ declare class JoltLiveSpringBinding extends NSObject {
130
+ readonly value: number
131
+ setLayers(inputs: string): void
132
+ cancel(): void
133
+ }
1
134
  declare class JoltInteractiveAnimation extends NSObject {
2
135
  static startViewLayersKeyPathValuesTimesDurationDelayRepeatReverseFinalValueStartedAtCompletion(
3
136
  view: UIView,
@@ -79,3 +212,149 @@ declare class JoltPhotoZoom extends NSObject {
79
212
  layout(): void
80
213
  stop(): void
81
214
  }
215
+
216
+ declare class JoltPropertySink extends NSObject {
217
+ static scalarTargetKeyPath(target: NSObject, keyPath: string): JoltPropertySink
218
+ readonly dimensions: number
219
+ readonly alive: boolean
220
+ readonly compiled: boolean
221
+ read(): NSArray<number>
222
+ write(values: NSArray<number>): void
223
+ dispose(): void
224
+ }
225
+ declare class JoltPropertyPlayer extends NSObject {
226
+ static startSinkTimesValuesFinalValueDurationDelayRepeatReverseCompletion(
227
+ sink: JoltPropertySink,
228
+ times: NSArray<number>,
229
+ values: NSArray<number>,
230
+ finalValue: NSArray<number>,
231
+ duration: number,
232
+ delay: number,
233
+ repeat: number,
234
+ reverse: boolean,
235
+ completion: (completed: boolean) => void,
236
+ ): JoltPropertyPlayer
237
+ readonly elapsed: number
238
+ readonly frames: number
239
+ static activeCount(): number
240
+ controlPaused(time: number, paused: boolean): void
241
+ cancel(): void
242
+ }
243
+ declare class JoltReferenceProperties extends NSObject {
244
+ static sceneFieldOfView(camera: NSObject): JoltPropertySink
245
+ static sceneCameraSinkCount(): number
246
+ static sceneCameraWriteCount(): number
247
+ static mapCoordinate(target: NSObject): JoltPropertySink
248
+ static mapCamera(target: NSObject): JoltPropertySink
249
+ static scenePose(target: NSObject): JoltPropertySink
250
+ static sceneLightIntensity(target: NSObject): JoltPropertySink
251
+ static sceneLightColor(target: NSObject): JoltPropertySink
252
+ static sceneMaterialTransparency(target: NSObject): JoltPropertySink
253
+ static sceneMaterialDiffuse(target: NSObject): JoltPropertySink
254
+ static sceneMaterialEmission(target: NSObject): JoltPropertySink
255
+ static sceneAppearanceSinkCount(): number
256
+ static sceneAppearanceWriteCount(): number
257
+ }
258
+
259
+ declare class JoltSceneShaderProperties extends NSObject {
260
+ static environmentError(
261
+ scene: NSObject,
262
+ error: interop.Reference<NSError>,
263
+ ): JoltPropertySink | null
264
+ static uniformNameConfigurationError(
265
+ target: NSObject,
266
+ name: string,
267
+ configuration: string,
268
+ error: interop.Reference<NSError>,
269
+ ): JoltPropertySink | null
270
+ static sinkCount(): number
271
+ static writeCount(): number
272
+ }
273
+
274
+ declare class JoltSharedLayoutFlight extends UIView {
275
+ holdPageMaxPixels(page: UIView, maxPixels: number): boolean
276
+ fadeOnEnd(duration: number, onEnd: (completed: boolean) => void): void
277
+ static captureNavigationImageRadiusMaxPixels(
278
+ view: UIView,
279
+ radius: number,
280
+ maxPixels: number,
281
+ ): JoltSharedLayoutFlight | null
282
+ static captureClippedNavigationImageRadiusMaxPixels(
283
+ view: UIView,
284
+ radius: number,
285
+ maxPixels: number,
286
+ ): JoltSharedLayoutFlight | null
287
+ prepareNavigationImageRadiusMaxPixels(
288
+ view: UIView,
289
+ radius: number,
290
+ maxPixels: number,
291
+ ): string | null
292
+ static captureImageRadiusMaxPixels(
293
+ view: UIView,
294
+ image: boolean,
295
+ radius: number,
296
+ maxPixels: number,
297
+ ): JoltSharedLayoutFlight | null
298
+ static activeCount(): number
299
+ pixels(): number
300
+ state(): string
301
+ prepareImageRadiusMaxPixels(
302
+ view: UIView,
303
+ image: boolean,
304
+ radius: number,
305
+ maxPixels: number,
306
+ ): string | null
307
+ freeze(maxPixels: number): boolean
308
+ playOnEnd(configuration: string, onEnd: (completed: boolean) => void): void
309
+ dispose(): void
310
+ }
311
+ declare class JoltInteractiveNavigation extends NSObject {
312
+ sharedEnabled: boolean
313
+ sharedDeferred: boolean
314
+ completeSharedPreparation(): void
315
+ prepareSharedFromToImageFromRadiusToRadiusMaxPixels(
316
+ from: UIView,
317
+ to: UIView,
318
+ image: boolean,
319
+ fromRadius: number,
320
+ toRadius: number,
321
+ maxPixels: number,
322
+ ): boolean
323
+ static attachStiffnessDampingMassShouldBeginOnEvent(
324
+ nav: UINavigationController,
325
+ stiffness: number,
326
+ damping: number,
327
+ mass: number,
328
+ shouldBegin: () => boolean,
329
+ onEvent: (event: number) => void,
330
+ ): JoltInteractiveNavigation
331
+ static activeCount(): number
332
+ static recognizerCount(): number
333
+ readonly interactive: boolean
334
+ readonly progress: number
335
+ readonly velocity: number
336
+ prepareOperationPresentedReducedTimeScale(
337
+ operation: number,
338
+ presented: UIViewController,
339
+ reduced: boolean,
340
+ timeScale: number,
341
+ ): void
342
+ sync(): void
343
+ cancel(): void
344
+ disposeRestoringSwipe(enabled: boolean): void
345
+ }
346
+
347
+ declare class JoltCircleWorld extends NSObject {
348
+ static createOptions(container: UIView, options: string): JoltCircleWorld
349
+ static worldCount(): number
350
+ static activeCount(): number
351
+ connectIndex(view: UIView, index: number): void
352
+ setEnabled(active: boolean): void
353
+ resizeHeight(width: number, height: number): void
354
+ impulseXY(index: number, x: number, y: number): void
355
+ attachOptions(index: number, options: string): void
356
+ snapToTarget(index: number, target: number): void
357
+ reset(): void
358
+ snapshot(): string
359
+ dispose(): void
360
+ }