@wardic/solid 0.0.0-stage → 1.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (994) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +26 -2
  3. package/THIRD_PARTY_NOTICES.md +145 -0
  4. package/dist/browser/animation-controls.js +150 -0
  5. package/dist/browser/animation-controls.js.map +1 -0
  6. package/dist/browser/animation-frame.js +29 -0
  7. package/dist/browser/animation-frame.js.map +1 -0
  8. package/dist/browser/appear.js +727 -0
  9. package/dist/browser/appear.js.map +1 -0
  10. package/dist/browser/arc.js +21 -0
  11. package/dist/browser/arc.js.map +1 -0
  12. package/dist/browser/bridge.js +69 -0
  13. package/dist/browser/bridge.js.map +1 -0
  14. package/dist/browser/complete.js +30 -0
  15. package/dist/browser/complete.js.map +1 -0
  16. package/dist/browser/config.js +2 -0
  17. package/dist/browser/config.js.map +1 -0
  18. package/dist/browser/create-animate.js +41 -0
  19. package/dist/browser/create-animate.js.map +1 -0
  20. package/dist/browser/create-ward.js +1001 -0
  21. package/dist/browser/create-ward.js.map +1 -0
  22. package/dist/browser/cycle-index.js +17 -0
  23. package/dist/browser/cycle-index.js.map +1 -0
  24. package/dist/browser/cycle.js +31 -0
  25. package/dist/browser/cycle.js.map +1 -0
  26. package/dist/browser/directive.js +80 -0
  27. package/dist/browser/directive.js.map +1 -0
  28. package/dist/browser/drag-constraints.js +76 -0
  29. package/dist/browser/drag-constraints.js.map +1 -0
  30. package/dist/browser/drag-controls.js +51 -0
  31. package/dist/browser/drag-controls.js.map +1 -0
  32. package/dist/browser/drag-samples.js +40 -0
  33. package/dist/browser/drag-samples.js.map +1 -0
  34. package/dist/browser/drag-sensor.js +35 -0
  35. package/dist/browser/drag-sensor.js.map +1 -0
  36. package/dist/browser/drag-track.js +817 -0
  37. package/dist/browser/drag-track.js.map +1 -0
  38. package/dist/browser/drag-transition.js +56 -0
  39. package/dist/browser/drag-transition.js.map +1 -0
  40. package/dist/browser/drag.js +44 -0
  41. package/dist/browser/drag.js.map +1 -0
  42. package/dist/browser/element-style.js +67 -0
  43. package/dist/browser/element-style.js.map +1 -0
  44. package/dist/browser/element.js +353 -0
  45. package/dist/browser/element.js.map +1 -0
  46. package/dist/browser/feature-section.js +17 -0
  47. package/dist/browser/feature-section.js.map +1 -0
  48. package/dist/browser/feature.js +261 -0
  49. package/dist/browser/feature.js.map +1 -0
  50. package/dist/browser/features/all.js +10 -0
  51. package/dist/browser/features/all.js.map +1 -0
  52. package/dist/browser/features/colors.js +33 -0
  53. package/dist/browser/features/colors.js.map +1 -0
  54. package/dist/browser/features/dom-animation.js +7 -0
  55. package/dist/browser/features/dom-animation.js.map +1 -0
  56. package/dist/browser/features/dom-max.js +4 -0
  57. package/dist/browser/features/dom-max.js.map +1 -0
  58. package/dist/browser/features/drag.js +28 -0
  59. package/dist/browser/features/drag.js.map +1 -0
  60. package/dist/browser/features/focus.js +18 -0
  61. package/dist/browser/features/focus.js.map +1 -0
  62. package/dist/browser/features/hover.js +18 -0
  63. package/dist/browser/features/hover.js.map +1 -0
  64. package/dist/browser/features/in-view.js +18 -0
  65. package/dist/browser/features/in-view.js.map +1 -0
  66. package/dist/browser/features/input.js +30 -0
  67. package/dist/browser/features/input.js.map +1 -0
  68. package/dist/browser/features/keys.js +19 -0
  69. package/dist/browser/features/keys.js.map +1 -0
  70. package/dist/browser/features/layout.js +33 -0
  71. package/dist/browser/features/layout.js.map +1 -0
  72. package/dist/browser/features/pan.js +18 -0
  73. package/dist/browser/features/pan.js.map +1 -0
  74. package/dist/browser/features/press.js +12 -0
  75. package/dist/browser/features/press.js.map +1 -0
  76. package/dist/browser/focus-sensor.js +23 -0
  77. package/dist/browser/focus-sensor.js.map +1 -0
  78. package/dist/browser/frame-time.js +40 -0
  79. package/dist/browser/frame-time.js.map +1 -0
  80. package/dist/browser/gesture-callbacks.js +172 -0
  81. package/dist/browser/gesture-callbacks.js.map +1 -0
  82. package/dist/browser/gesture-features.js +29 -0
  83. package/dist/browser/gesture-features.js.map +1 -0
  84. package/dist/browser/gesture-info.js +43 -0
  85. package/dist/browser/gesture-info.js.map +1 -0
  86. package/dist/browser/hover-sensor.js +29 -0
  87. package/dist/browser/hover-sensor.js.map +1 -0
  88. package/dist/browser/imperative.js +614 -0
  89. package/dist/browser/imperative.js.map +1 -0
  90. package/dist/browser/index.js +165 -0
  91. package/dist/browser/index.js.map +1 -0
  92. package/dist/browser/instant.js +51 -0
  93. package/dist/browser/instant.js.map +1 -0
  94. package/dist/browser/layout-group.js +27 -0
  95. package/dist/browser/layout-group.js.map +1 -0
  96. package/dist/browser/layout-member.js +362 -0
  97. package/dist/browser/layout-member.js.map +1 -0
  98. package/dist/browser/layout-projection.js +19 -0
  99. package/dist/browser/layout-projection.js.map +1 -0
  100. package/dist/browser/layout.js +91 -0
  101. package/dist/browser/layout.js.map +1 -0
  102. package/dist/browser/live-style.js +313 -0
  103. package/dist/browser/live-style.js.map +1 -0
  104. package/dist/browser/live-value.js +252 -0
  105. package/dist/browser/live-value.js.map +1 -0
  106. package/dist/browser/motion-props.js +172 -0
  107. package/dist/browser/motion-props.js.map +1 -0
  108. package/dist/browser/owner-scope.js +29 -0
  109. package/dist/browser/owner-scope.js.map +1 -0
  110. package/dist/browser/page-point.js +92 -0
  111. package/dist/browser/page-point.js.map +1 -0
  112. package/dist/browser/presence-controller.js +1324 -0
  113. package/dist/browser/presence-controller.js.map +1 -0
  114. package/dist/browser/presence-record.js +27 -0
  115. package/dist/browser/presence-record.js.map +1 -0
  116. package/dist/browser/presence.js +207 -0
  117. package/dist/browser/presence.js.map +1 -0
  118. package/dist/browser/press-sensor.js +30 -0
  119. package/dist/browser/press-sensor.js.map +1 -0
  120. package/dist/browser/press.js +24 -0
  121. package/dist/browser/press.js.map +1 -0
  122. package/dist/browser/provider.js +445 -0
  123. package/dist/browser/provider.js.map +1 -0
  124. package/dist/browser/reactivity.js +9 -0
  125. package/dist/browser/reactivity.js.map +1 -0
  126. package/dist/browser/reorder-input.js +46 -0
  127. package/dist/browser/reorder-input.js.map +1 -0
  128. package/dist/browser/reorder.js +543 -0
  129. package/dist/browser/reorder.js.map +1 -0
  130. package/dist/browser/retarget-legs.js +1019 -0
  131. package/dist/browser/retarget-legs.js.map +1 -0
  132. package/dist/browser/runtime.js +249 -0
  133. package/dist/browser/runtime.js.map +1 -0
  134. package/dist/browser/sensors.js +172 -0
  135. package/dist/browser/sensors.js.map +1 -0
  136. package/dist/browser/server-interpolators.js +20 -0
  137. package/dist/browser/server-interpolators.js.map +1 -0
  138. package/dist/browser/server.js +20 -0
  139. package/dist/browser/server.js.map +1 -0
  140. package/dist/browser/solid-reactivity.js +26 -0
  141. package/dist/browser/solid-reactivity.js.map +1 -0
  142. package/dist/browser/spine.js +2939 -0
  143. package/dist/browser/spine.js.map +1 -0
  144. package/dist/browser/stagger.js +13 -0
  145. package/dist/browser/stagger.js.map +1 -0
  146. package/dist/browser/unstable/v2/bridge.js +76 -0
  147. package/dist/browser/unstable/v2/bridge.js.map +1 -0
  148. package/dist/browser/unstable/v2/complete.js +29 -0
  149. package/dist/browser/unstable/v2/complete.js.map +1 -0
  150. package/dist/browser/unstable/v2/config-view.js +111 -0
  151. package/dist/browser/unstable/v2/config-view.js.map +1 -0
  152. package/dist/browser/unstable/v2/create-animate.js +102 -0
  153. package/dist/browser/unstable/v2/create-animate.js.map +1 -0
  154. package/dist/browser/unstable/v2/cycle.js +30 -0
  155. package/dist/browser/unstable/v2/cycle.js.map +1 -0
  156. package/dist/browser/unstable/v2/drag-sensor.js +34 -0
  157. package/dist/browser/unstable/v2/drag-sensor.js.map +1 -0
  158. package/dist/browser/unstable/v2/element.js +393 -0
  159. package/dist/browser/unstable/v2/element.js.map +1 -0
  160. package/dist/browser/unstable/v2/feature-section.js +27 -0
  161. package/dist/browser/unstable/v2/feature-section.js.map +1 -0
  162. package/dist/browser/unstable/v2/focus-sensor.js +23 -0
  163. package/dist/browser/unstable/v2/focus-sensor.js.map +1 -0
  164. package/dist/browser/unstable/v2/hover-sensor.js +28 -0
  165. package/dist/browser/unstable/v2/hover-sensor.js.map +1 -0
  166. package/dist/browser/unstable/v2/index.js +114 -0
  167. package/dist/browser/unstable/v2/index.js.map +1 -0
  168. package/dist/browser/unstable/v2/layout-projection.js +18 -0
  169. package/dist/browser/unstable/v2/layout-projection.js.map +1 -0
  170. package/dist/browser/unstable/v2/layout.js +71 -0
  171. package/dist/browser/unstable/v2/layout.js.map +1 -0
  172. package/dist/browser/unstable/v2/lifecycle.js +455 -0
  173. package/dist/browser/unstable/v2/lifecycle.js.map +1 -0
  174. package/dist/browser/unstable/v2/live-value.js +264 -0
  175. package/dist/browser/unstable/v2/live-value.js.map +1 -0
  176. package/dist/browser/unstable/v2/presence-handle.js +146 -0
  177. package/dist/browser/unstable/v2/presence-handle.js.map +1 -0
  178. package/dist/browser/unstable/v2/presence-hooks.js +142 -0
  179. package/dist/browser/unstable/v2/presence-hooks.js.map +1 -0
  180. package/dist/browser/unstable/v2/presence.js +124 -0
  181. package/dist/browser/unstable/v2/presence.js.map +1 -0
  182. package/dist/browser/unstable/v2/press-sensor.js +29 -0
  183. package/dist/browser/unstable/v2/press-sensor.js.map +1 -0
  184. package/dist/browser/unstable/v2/provider.js +457 -0
  185. package/dist/browser/unstable/v2/provider.js.map +1 -0
  186. package/dist/browser/unstable/v2/reorder.js +663 -0
  187. package/dist/browser/unstable/v2/reorder.js.map +1 -0
  188. package/dist/browser/unstable/v2/sensors.js +138 -0
  189. package/dist/browser/unstable/v2/sensors.js.map +1 -0
  190. package/dist/browser/unstable/v2/solid-reactivity.js +82 -0
  191. package/dist/browser/unstable/v2/solid-reactivity.js.map +1 -0
  192. package/dist/browser/unstable/v2/variant-node.js +395 -0
  193. package/dist/browser/unstable/v2/variant-node.js.map +1 -0
  194. package/dist/browser/unstable/v2/w.js +23 -0
  195. package/dist/browser/unstable/v2/w.js.map +1 -0
  196. package/dist/browser/unstable/v2/waiters.js +185 -0
  197. package/dist/browser/unstable/v2/waiters.js.map +1 -0
  198. package/dist/browser/unstable/v2/ward.js +1620 -0
  199. package/dist/browser/unstable/v2/ward.js.map +1 -0
  200. package/dist/browser/unstable/v2/wardic-config.js +40 -0
  201. package/dist/browser/unstable/v2/wardic-config.js.map +1 -0
  202. package/dist/browser/unstable/v2/wardic.js +16 -0
  203. package/dist/browser/unstable/v2/wardic.js.map +1 -0
  204. package/dist/browser/variant-node.js +308 -0
  205. package/dist/browser/variant-node.js.map +1 -0
  206. package/dist/browser/variant-target.js +224 -0
  207. package/dist/browser/variant-target.js.map +1 -0
  208. package/dist/browser/variant-tree.js +394 -0
  209. package/dist/browser/variant-tree.js.map +1 -0
  210. package/dist/browser/variants.js +43 -0
  211. package/dist/browser/variants.js.map +1 -0
  212. package/dist/browser/w.js +25 -0
  213. package/dist/browser/w.js.map +1 -0
  214. package/dist/browser/ward-keys.js +2 -0
  215. package/dist/browser/ward-keys.js.map +1 -0
  216. package/dist/browser/wardic-component.js +74 -0
  217. package/dist/browser/wardic-component.js.map +1 -0
  218. package/dist/browser/wardic-config-value.js +91 -0
  219. package/dist/browser/wardic-config-value.js.map +1 -0
  220. package/dist/browser/wardic-config.js +42 -0
  221. package/dist/browser/wardic-config.js.map +1 -0
  222. package/dist/browser/wardic.js +31 -0
  223. package/dist/browser/wardic.js.map +1 -0
  224. package/dist/server/animation-controls.js +150 -0
  225. package/dist/server/animation-controls.js.map +1 -0
  226. package/dist/server/animation-frame.js +29 -0
  227. package/dist/server/animation-frame.js.map +1 -0
  228. package/dist/server/appear.js +727 -0
  229. package/dist/server/appear.js.map +1 -0
  230. package/dist/server/arc.js +21 -0
  231. package/dist/server/arc.js.map +1 -0
  232. package/dist/server/bridge.js +69 -0
  233. package/dist/server/bridge.js.map +1 -0
  234. package/dist/server/complete.js +30 -0
  235. package/dist/server/complete.js.map +1 -0
  236. package/dist/server/config.js +2 -0
  237. package/dist/server/config.js.map +1 -0
  238. package/dist/server/create-animate.js +41 -0
  239. package/dist/server/create-animate.js.map +1 -0
  240. package/dist/server/create-ward.js +1001 -0
  241. package/dist/server/create-ward.js.map +1 -0
  242. package/dist/server/cycle-index.js +17 -0
  243. package/dist/server/cycle-index.js.map +1 -0
  244. package/dist/server/cycle.js +31 -0
  245. package/dist/server/cycle.js.map +1 -0
  246. package/dist/server/directive.js +80 -0
  247. package/dist/server/directive.js.map +1 -0
  248. package/dist/server/drag-constraints.js +76 -0
  249. package/dist/server/drag-constraints.js.map +1 -0
  250. package/dist/server/drag-controls.js +51 -0
  251. package/dist/server/drag-controls.js.map +1 -0
  252. package/dist/server/drag-samples.js +40 -0
  253. package/dist/server/drag-samples.js.map +1 -0
  254. package/dist/server/drag-sensor.js +35 -0
  255. package/dist/server/drag-sensor.js.map +1 -0
  256. package/dist/server/drag-track.js +817 -0
  257. package/dist/server/drag-track.js.map +1 -0
  258. package/dist/server/drag-transition.js +56 -0
  259. package/dist/server/drag-transition.js.map +1 -0
  260. package/dist/server/drag.js +44 -0
  261. package/dist/server/drag.js.map +1 -0
  262. package/dist/server/element-style.js +67 -0
  263. package/dist/server/element-style.js.map +1 -0
  264. package/dist/server/element.js +353 -0
  265. package/dist/server/element.js.map +1 -0
  266. package/dist/server/feature-section.js +17 -0
  267. package/dist/server/feature-section.js.map +1 -0
  268. package/dist/server/feature.js +261 -0
  269. package/dist/server/feature.js.map +1 -0
  270. package/dist/server/features/all.js +10 -0
  271. package/dist/server/features/all.js.map +1 -0
  272. package/dist/server/features/colors.js +33 -0
  273. package/dist/server/features/colors.js.map +1 -0
  274. package/dist/server/features/dom-animation.js +7 -0
  275. package/dist/server/features/dom-animation.js.map +1 -0
  276. package/dist/server/features/dom-max.js +4 -0
  277. package/dist/server/features/dom-max.js.map +1 -0
  278. package/dist/server/features/drag.js +28 -0
  279. package/dist/server/features/drag.js.map +1 -0
  280. package/dist/server/features/focus.js +18 -0
  281. package/dist/server/features/focus.js.map +1 -0
  282. package/dist/server/features/hover.js +18 -0
  283. package/dist/server/features/hover.js.map +1 -0
  284. package/dist/server/features/in-view.js +18 -0
  285. package/dist/server/features/in-view.js.map +1 -0
  286. package/dist/server/features/input.js +30 -0
  287. package/dist/server/features/input.js.map +1 -0
  288. package/dist/server/features/keys.js +19 -0
  289. package/dist/server/features/keys.js.map +1 -0
  290. package/dist/server/features/layout.js +33 -0
  291. package/dist/server/features/layout.js.map +1 -0
  292. package/dist/server/features/pan.js +18 -0
  293. package/dist/server/features/pan.js.map +1 -0
  294. package/dist/server/features/press.js +12 -0
  295. package/dist/server/features/press.js.map +1 -0
  296. package/dist/server/focus-sensor.js +23 -0
  297. package/dist/server/focus-sensor.js.map +1 -0
  298. package/dist/server/frame-time.js +40 -0
  299. package/dist/server/frame-time.js.map +1 -0
  300. package/dist/server/gesture-callbacks.js +172 -0
  301. package/dist/server/gesture-callbacks.js.map +1 -0
  302. package/dist/server/gesture-features.js +29 -0
  303. package/dist/server/gesture-features.js.map +1 -0
  304. package/dist/server/gesture-info.js +43 -0
  305. package/dist/server/gesture-info.js.map +1 -0
  306. package/dist/server/hover-sensor.js +29 -0
  307. package/dist/server/hover-sensor.js.map +1 -0
  308. package/dist/server/imperative.js +614 -0
  309. package/dist/server/imperative.js.map +1 -0
  310. package/dist/server/index.js +165 -0
  311. package/dist/server/index.js.map +1 -0
  312. package/dist/server/instant.js +51 -0
  313. package/dist/server/instant.js.map +1 -0
  314. package/dist/server/layout-group.js +27 -0
  315. package/dist/server/layout-group.js.map +1 -0
  316. package/dist/server/layout-member.js +362 -0
  317. package/dist/server/layout-member.js.map +1 -0
  318. package/dist/server/layout-projection.js +19 -0
  319. package/dist/server/layout-projection.js.map +1 -0
  320. package/dist/server/layout.js +90 -0
  321. package/dist/server/layout.js.map +1 -0
  322. package/dist/server/live-style.js +313 -0
  323. package/dist/server/live-style.js.map +1 -0
  324. package/dist/server/live-value.js +252 -0
  325. package/dist/server/live-value.js.map +1 -0
  326. package/dist/server/motion-props.js +172 -0
  327. package/dist/server/motion-props.js.map +1 -0
  328. package/dist/server/owner-scope.js +29 -0
  329. package/dist/server/owner-scope.js.map +1 -0
  330. package/dist/server/page-point.js +92 -0
  331. package/dist/server/page-point.js.map +1 -0
  332. package/dist/server/presence-controller.js +1324 -0
  333. package/dist/server/presence-controller.js.map +1 -0
  334. package/dist/server/presence-record.js +27 -0
  335. package/dist/server/presence-record.js.map +1 -0
  336. package/dist/server/presence.js +207 -0
  337. package/dist/server/presence.js.map +1 -0
  338. package/dist/server/press-sensor.js +30 -0
  339. package/dist/server/press-sensor.js.map +1 -0
  340. package/dist/server/press.js +24 -0
  341. package/dist/server/press.js.map +1 -0
  342. package/dist/server/provider.js +439 -0
  343. package/dist/server/provider.js.map +1 -0
  344. package/dist/server/reactivity.js +9 -0
  345. package/dist/server/reactivity.js.map +1 -0
  346. package/dist/server/reorder-input.js +46 -0
  347. package/dist/server/reorder-input.js.map +1 -0
  348. package/dist/server/reorder.js +543 -0
  349. package/dist/server/reorder.js.map +1 -0
  350. package/dist/server/retarget-legs.js +1019 -0
  351. package/dist/server/retarget-legs.js.map +1 -0
  352. package/dist/server/runtime.js +249 -0
  353. package/dist/server/runtime.js.map +1 -0
  354. package/dist/server/sensors.js +172 -0
  355. package/dist/server/sensors.js.map +1 -0
  356. package/dist/server/server-interpolators.js +20 -0
  357. package/dist/server/server-interpolators.js.map +1 -0
  358. package/dist/server/server.js +20 -0
  359. package/dist/server/server.js.map +1 -0
  360. package/dist/server/solid-reactivity.js +26 -0
  361. package/dist/server/solid-reactivity.js.map +1 -0
  362. package/dist/server/spine.js +2939 -0
  363. package/dist/server/spine.js.map +1 -0
  364. package/dist/server/stagger.js +13 -0
  365. package/dist/server/stagger.js.map +1 -0
  366. package/dist/server/unstable/v2/bridge.js +76 -0
  367. package/dist/server/unstable/v2/bridge.js.map +1 -0
  368. package/dist/server/unstable/v2/complete.js +29 -0
  369. package/dist/server/unstable/v2/complete.js.map +1 -0
  370. package/dist/server/unstable/v2/config-view.js +111 -0
  371. package/dist/server/unstable/v2/config-view.js.map +1 -0
  372. package/dist/server/unstable/v2/create-animate.js +102 -0
  373. package/dist/server/unstable/v2/create-animate.js.map +1 -0
  374. package/dist/server/unstable/v2/cycle.js +30 -0
  375. package/dist/server/unstable/v2/cycle.js.map +1 -0
  376. package/dist/server/unstable/v2/drag-sensor.js +34 -0
  377. package/dist/server/unstable/v2/drag-sensor.js.map +1 -0
  378. package/dist/server/unstable/v2/element.js +402 -0
  379. package/dist/server/unstable/v2/element.js.map +1 -0
  380. package/dist/server/unstable/v2/feature-section.js +27 -0
  381. package/dist/server/unstable/v2/feature-section.js.map +1 -0
  382. package/dist/server/unstable/v2/focus-sensor.js +23 -0
  383. package/dist/server/unstable/v2/focus-sensor.js.map +1 -0
  384. package/dist/server/unstable/v2/hover-sensor.js +28 -0
  385. package/dist/server/unstable/v2/hover-sensor.js.map +1 -0
  386. package/dist/server/unstable/v2/index.js +114 -0
  387. package/dist/server/unstable/v2/index.js.map +1 -0
  388. package/dist/server/unstable/v2/layout-projection.js +18 -0
  389. package/dist/server/unstable/v2/layout-projection.js.map +1 -0
  390. package/dist/server/unstable/v2/layout.js +88 -0
  391. package/dist/server/unstable/v2/layout.js.map +1 -0
  392. package/dist/server/unstable/v2/lifecycle.js +455 -0
  393. package/dist/server/unstable/v2/lifecycle.js.map +1 -0
  394. package/dist/server/unstable/v2/live-value.js +264 -0
  395. package/dist/server/unstable/v2/live-value.js.map +1 -0
  396. package/dist/server/unstable/v2/presence-handle.js +146 -0
  397. package/dist/server/unstable/v2/presence-handle.js.map +1 -0
  398. package/dist/server/unstable/v2/presence-hooks.js +142 -0
  399. package/dist/server/unstable/v2/presence-hooks.js.map +1 -0
  400. package/dist/server/unstable/v2/presence.js +142 -0
  401. package/dist/server/unstable/v2/presence.js.map +1 -0
  402. package/dist/server/unstable/v2/press-sensor.js +29 -0
  403. package/dist/server/unstable/v2/press-sensor.js.map +1 -0
  404. package/dist/server/unstable/v2/provider.js +475 -0
  405. package/dist/server/unstable/v2/provider.js.map +1 -0
  406. package/dist/server/unstable/v2/reorder.js +733 -0
  407. package/dist/server/unstable/v2/reorder.js.map +1 -0
  408. package/dist/server/unstable/v2/sensors.js +138 -0
  409. package/dist/server/unstable/v2/sensors.js.map +1 -0
  410. package/dist/server/unstable/v2/solid-reactivity.js +82 -0
  411. package/dist/server/unstable/v2/solid-reactivity.js.map +1 -0
  412. package/dist/server/unstable/v2/variant-node.js +395 -0
  413. package/dist/server/unstable/v2/variant-node.js.map +1 -0
  414. package/dist/server/unstable/v2/w.js +23 -0
  415. package/dist/server/unstable/v2/w.js.map +1 -0
  416. package/dist/server/unstable/v2/waiters.js +185 -0
  417. package/dist/server/unstable/v2/waiters.js.map +1 -0
  418. package/dist/server/unstable/v2/ward.js +1653 -0
  419. package/dist/server/unstable/v2/ward.js.map +1 -0
  420. package/dist/server/unstable/v2/wardic-config.js +49 -0
  421. package/dist/server/unstable/v2/wardic-config.js.map +1 -0
  422. package/dist/server/unstable/v2/wardic.js +16 -0
  423. package/dist/server/unstable/v2/wardic.js.map +1 -0
  424. package/dist/server/variant-node.js +308 -0
  425. package/dist/server/variant-node.js.map +1 -0
  426. package/dist/server/variant-target.js +224 -0
  427. package/dist/server/variant-target.js.map +1 -0
  428. package/dist/server/variant-tree.js +394 -0
  429. package/dist/server/variant-tree.js.map +1 -0
  430. package/dist/server/variants.js +43 -0
  431. package/dist/server/variants.js.map +1 -0
  432. package/dist/server/w.js +25 -0
  433. package/dist/server/w.js.map +1 -0
  434. package/dist/server/ward-keys.js +2 -0
  435. package/dist/server/ward-keys.js.map +1 -0
  436. package/dist/server/wardic-component.js +74 -0
  437. package/dist/server/wardic-component.js.map +1 -0
  438. package/dist/server/wardic-config-value.js +91 -0
  439. package/dist/server/wardic-config-value.js.map +1 -0
  440. package/dist/server/wardic-config.js +42 -0
  441. package/dist/server/wardic-config.js.map +1 -0
  442. package/dist/server/wardic.js +31 -0
  443. package/dist/server/wardic.js.map +1 -0
  444. package/dist/solid/animation-controls.d.ts +104 -0
  445. package/dist/solid/animation-controls.d.ts.map +1 -0
  446. package/dist/solid/animation-controls.js +129 -0
  447. package/dist/solid/animation-controls.js.map +1 -0
  448. package/dist/solid/animation-frame.d.ts +11 -0
  449. package/dist/solid/animation-frame.d.ts.map +1 -0
  450. package/dist/solid/animation-frame.js +31 -0
  451. package/dist/solid/animation-frame.js.map +1 -0
  452. package/dist/solid/appear.d.ts +205 -0
  453. package/dist/solid/appear.d.ts.map +1 -0
  454. package/dist/solid/appear.js +519 -0
  455. package/dist/solid/appear.js.map +1 -0
  456. package/dist/solid/arc.d.ts +25 -0
  457. package/dist/solid/arc.d.ts.map +1 -0
  458. package/dist/solid/arc.js +21 -0
  459. package/dist/solid/arc.js.map +1 -0
  460. package/dist/solid/bridge.d.ts +53 -0
  461. package/dist/solid/bridge.d.ts.map +1 -0
  462. package/dist/solid/bridge.js +66 -0
  463. package/dist/solid/bridge.js.map +1 -0
  464. package/dist/solid/complete.d.ts +31 -0
  465. package/dist/solid/complete.d.ts.map +1 -0
  466. package/dist/solid/complete.js +27 -0
  467. package/dist/solid/complete.js.map +1 -0
  468. package/dist/solid/config.d.ts +693 -0
  469. package/dist/solid/config.d.ts.map +1 -0
  470. package/dist/solid/config.js +2 -0
  471. package/dist/solid/config.js.map +1 -0
  472. package/dist/solid/create-animate.d.ts +17 -0
  473. package/dist/solid/create-animate.d.ts.map +1 -0
  474. package/dist/solid/create-animate.js +42 -0
  475. package/dist/solid/create-animate.js.map +1 -0
  476. package/dist/solid/create-ward.d.ts +278 -0
  477. package/dist/solid/create-ward.d.ts.map +1 -0
  478. package/dist/solid/create-ward.jsx +874 -0
  479. package/dist/solid/create-ward.jsx.map +1 -0
  480. package/dist/solid/cycle-index.d.ts +7 -0
  481. package/dist/solid/cycle-index.d.ts.map +1 -0
  482. package/dist/solid/cycle-index.js +17 -0
  483. package/dist/solid/cycle-index.js.map +1 -0
  484. package/dist/solid/cycle.d.ts +21 -0
  485. package/dist/solid/cycle.d.ts.map +1 -0
  486. package/dist/solid/cycle.js +31 -0
  487. package/dist/solid/cycle.js.map +1 -0
  488. package/dist/solid/directive.d.ts +21 -0
  489. package/dist/solid/directive.d.ts.map +1 -0
  490. package/dist/solid/directive.js +76 -0
  491. package/dist/solid/directive.js.map +1 -0
  492. package/dist/solid/drag-constraints.d.ts +46 -0
  493. package/dist/solid/drag-constraints.d.ts.map +1 -0
  494. package/dist/solid/drag-constraints.js +49 -0
  495. package/dist/solid/drag-constraints.js.map +1 -0
  496. package/dist/solid/drag-controls.d.ts +50 -0
  497. package/dist/solid/drag-controls.d.ts.map +1 -0
  498. package/dist/solid/drag-controls.js +51 -0
  499. package/dist/solid/drag-controls.js.map +1 -0
  500. package/dist/solid/drag-samples.d.ts +34 -0
  501. package/dist/solid/drag-samples.d.ts.map +1 -0
  502. package/dist/solid/drag-samples.js +28 -0
  503. package/dist/solid/drag-samples.js.map +1 -0
  504. package/dist/solid/drag-sensor.d.ts +23 -0
  505. package/dist/solid/drag-sensor.d.ts.map +1 -0
  506. package/dist/solid/drag-sensor.js +33 -0
  507. package/dist/solid/drag-sensor.js.map +1 -0
  508. package/dist/solid/drag-track.d.ts +227 -0
  509. package/dist/solid/drag-track.d.ts.map +1 -0
  510. package/dist/solid/drag-track.js +631 -0
  511. package/dist/solid/drag-track.js.map +1 -0
  512. package/dist/solid/drag-transition.d.ts +20 -0
  513. package/dist/solid/drag-transition.d.ts.map +1 -0
  514. package/dist/solid/drag-transition.js +31 -0
  515. package/dist/solid/drag-transition.js.map +1 -0
  516. package/dist/solid/drag.d.ts +23 -0
  517. package/dist/solid/drag.d.ts.map +1 -0
  518. package/dist/solid/drag.js +44 -0
  519. package/dist/solid/drag.js.map +1 -0
  520. package/dist/solid/element-style.d.ts +60 -0
  521. package/dist/solid/element-style.d.ts.map +1 -0
  522. package/dist/solid/element-style.js +50 -0
  523. package/dist/solid/element-style.js.map +1 -0
  524. package/dist/solid/element.d.ts +73 -0
  525. package/dist/solid/element.d.ts.map +1 -0
  526. package/dist/solid/element.jsx +326 -0
  527. package/dist/solid/element.jsx.map +1 -0
  528. package/dist/solid/feature-section.d.ts +18 -0
  529. package/dist/solid/feature-section.d.ts.map +1 -0
  530. package/dist/solid/feature-section.js +13 -0
  531. package/dist/solid/feature-section.js.map +1 -0
  532. package/dist/solid/feature.d.ts +114 -0
  533. package/dist/solid/feature.d.ts.map +1 -0
  534. package/dist/solid/feature.js +248 -0
  535. package/dist/solid/feature.js.map +1 -0
  536. package/dist/solid/features/all.d.ts +10 -0
  537. package/dist/solid/features/all.d.ts.map +1 -0
  538. package/dist/solid/features/all.js +10 -0
  539. package/dist/solid/features/all.js.map +1 -0
  540. package/dist/solid/features/colors.d.ts +12 -0
  541. package/dist/solid/features/colors.d.ts.map +1 -0
  542. package/dist/solid/features/colors.js +34 -0
  543. package/dist/solid/features/colors.js.map +1 -0
  544. package/dist/solid/features/dom-animation.d.ts +11 -0
  545. package/dist/solid/features/dom-animation.d.ts.map +1 -0
  546. package/dist/solid/features/dom-animation.js +7 -0
  547. package/dist/solid/features/dom-animation.js.map +1 -0
  548. package/dist/solid/features/dom-max.d.ts +10 -0
  549. package/dist/solid/features/dom-max.d.ts.map +1 -0
  550. package/dist/solid/features/dom-max.js +4 -0
  551. package/dist/solid/features/dom-max.js.map +1 -0
  552. package/dist/solid/features/drag.d.ts +5 -0
  553. package/dist/solid/features/drag.d.ts.map +1 -0
  554. package/dist/solid/features/drag.js +28 -0
  555. package/dist/solid/features/drag.js.map +1 -0
  556. package/dist/solid/features/focus.d.ts +5 -0
  557. package/dist/solid/features/focus.d.ts.map +1 -0
  558. package/dist/solid/features/focus.js +16 -0
  559. package/dist/solid/features/focus.js.map +1 -0
  560. package/dist/solid/features/hover.d.ts +5 -0
  561. package/dist/solid/features/hover.d.ts.map +1 -0
  562. package/dist/solid/features/hover.js +16 -0
  563. package/dist/solid/features/hover.js.map +1 -0
  564. package/dist/solid/features/in-view.d.ts +5 -0
  565. package/dist/solid/features/in-view.d.ts.map +1 -0
  566. package/dist/solid/features/in-view.js +16 -0
  567. package/dist/solid/features/in-view.js.map +1 -0
  568. package/dist/solid/features/input.d.ts +26 -0
  569. package/dist/solid/features/input.d.ts.map +1 -0
  570. package/dist/solid/features/input.js +31 -0
  571. package/dist/solid/features/input.js.map +1 -0
  572. package/dist/solid/features/keys.d.ts +70 -0
  573. package/dist/solid/features/keys.d.ts.map +1 -0
  574. package/dist/solid/features/keys.js +26 -0
  575. package/dist/solid/features/keys.js.map +1 -0
  576. package/dist/solid/features/layout.d.ts +32 -0
  577. package/dist/solid/features/layout.d.ts.map +1 -0
  578. package/dist/solid/features/layout.js +34 -0
  579. package/dist/solid/features/layout.js.map +1 -0
  580. package/dist/solid/features/pan.d.ts +5 -0
  581. package/dist/solid/features/pan.d.ts.map +1 -0
  582. package/dist/solid/features/pan.js +16 -0
  583. package/dist/solid/features/pan.js.map +1 -0
  584. package/dist/solid/features/press.d.ts +11 -0
  585. package/dist/solid/features/press.d.ts.map +1 -0
  586. package/dist/solid/features/press.js +10 -0
  587. package/dist/solid/features/press.js.map +1 -0
  588. package/dist/solid/focus-sensor.d.ts +19 -0
  589. package/dist/solid/focus-sensor.d.ts.map +1 -0
  590. package/dist/solid/focus-sensor.js +23 -0
  591. package/dist/solid/focus-sensor.js.map +1 -0
  592. package/dist/solid/frame-time.d.ts +21 -0
  593. package/dist/solid/frame-time.d.ts.map +1 -0
  594. package/dist/solid/frame-time.js +41 -0
  595. package/dist/solid/frame-time.js.map +1 -0
  596. package/dist/solid/gesture-callbacks.d.ts +53 -0
  597. package/dist/solid/gesture-callbacks.d.ts.map +1 -0
  598. package/dist/solid/gesture-callbacks.js +184 -0
  599. package/dist/solid/gesture-callbacks.js.map +1 -0
  600. package/dist/solid/gesture-features.d.ts +28 -0
  601. package/dist/solid/gesture-features.d.ts.map +1 -0
  602. package/dist/solid/gesture-features.js +29 -0
  603. package/dist/solid/gesture-features.js.map +1 -0
  604. package/dist/solid/gesture-info.d.ts +59 -0
  605. package/dist/solid/gesture-info.d.ts.map +1 -0
  606. package/dist/solid/gesture-info.js +23 -0
  607. package/dist/solid/gesture-info.js.map +1 -0
  608. package/dist/solid/hover-sensor.d.ts +19 -0
  609. package/dist/solid/hover-sensor.d.ts.map +1 -0
  610. package/dist/solid/hover-sensor.js +23 -0
  611. package/dist/solid/hover-sensor.js.map +1 -0
  612. package/dist/solid/imperative.d.ts +195 -0
  613. package/dist/solid/imperative.d.ts.map +1 -0
  614. package/dist/solid/imperative.js +536 -0
  615. package/dist/solid/imperative.js.map +1 -0
  616. package/dist/solid/index.d.ts +180 -0
  617. package/dist/solid/index.d.ts.map +1 -0
  618. package/dist/solid/index.js +165 -0
  619. package/dist/solid/index.js.map +1 -0
  620. package/dist/solid/instant.d.ts +44 -0
  621. package/dist/solid/instant.d.ts.map +1 -0
  622. package/dist/solid/instant.js +49 -0
  623. package/dist/solid/instant.js.map +1 -0
  624. package/dist/solid/layout-group.d.ts +14 -0
  625. package/dist/solid/layout-group.d.ts.map +1 -0
  626. package/dist/solid/layout-group.js +27 -0
  627. package/dist/solid/layout-group.js.map +1 -0
  628. package/dist/solid/layout-member.d.ts +117 -0
  629. package/dist/solid/layout-member.d.ts.map +1 -0
  630. package/dist/solid/layout-member.js +164 -0
  631. package/dist/solid/layout-member.js.map +1 -0
  632. package/dist/solid/layout-projection.d.ts +22 -0
  633. package/dist/solid/layout-projection.d.ts.map +1 -0
  634. package/dist/solid/layout-projection.js +19 -0
  635. package/dist/solid/layout-projection.js.map +1 -0
  636. package/dist/solid/layout.d.ts +76 -0
  637. package/dist/solid/layout.d.ts.map +1 -0
  638. package/dist/solid/layout.jsx +80 -0
  639. package/dist/solid/layout.jsx.map +1 -0
  640. package/dist/solid/live-style.d.ts +147 -0
  641. package/dist/solid/live-style.d.ts.map +1 -0
  642. package/dist/solid/live-style.js +304 -0
  643. package/dist/solid/live-style.js.map +1 -0
  644. package/dist/solid/live-value.d.ts +144 -0
  645. package/dist/solid/live-value.d.ts.map +1 -0
  646. package/dist/solid/live-value.js +223 -0
  647. package/dist/solid/live-value.js.map +1 -0
  648. package/dist/solid/motion-props.d.ts +75 -0
  649. package/dist/solid/motion-props.d.ts.map +1 -0
  650. package/dist/solid/motion-props.js +314 -0
  651. package/dist/solid/motion-props.js.map +1 -0
  652. package/dist/solid/owner-scope.d.ts +16 -0
  653. package/dist/solid/owner-scope.d.ts.map +1 -0
  654. package/dist/solid/owner-scope.js +31 -0
  655. package/dist/solid/owner-scope.js.map +1 -0
  656. package/dist/solid/page-point.d.ts +35 -0
  657. package/dist/solid/page-point.d.ts.map +1 -0
  658. package/dist/solid/page-point.js +87 -0
  659. package/dist/solid/page-point.js.map +1 -0
  660. package/dist/solid/presence-controller.d.ts +122 -0
  661. package/dist/solid/presence-controller.d.ts.map +1 -0
  662. package/dist/solid/presence-controller.js +1207 -0
  663. package/dist/solid/presence-controller.js.map +1 -0
  664. package/dist/solid/presence-record.d.ts +167 -0
  665. package/dist/solid/presence-record.d.ts.map +1 -0
  666. package/dist/solid/presence-record.js +26 -0
  667. package/dist/solid/presence-record.js.map +1 -0
  668. package/dist/solid/presence.d.ts +95 -0
  669. package/dist/solid/presence.d.ts.map +1 -0
  670. package/dist/solid/presence.jsx +195 -0
  671. package/dist/solid/presence.jsx.map +1 -0
  672. package/dist/solid/press-sensor.d.ts +20 -0
  673. package/dist/solid/press-sensor.d.ts.map +1 -0
  674. package/dist/solid/press-sensor.js +24 -0
  675. package/dist/solid/press-sensor.js.map +1 -0
  676. package/dist/solid/press.d.ts +24 -0
  677. package/dist/solid/press.d.ts.map +1 -0
  678. package/dist/solid/press.js +19 -0
  679. package/dist/solid/press.js.map +1 -0
  680. package/dist/solid/provider.d.ts +263 -0
  681. package/dist/solid/provider.d.ts.map +1 -0
  682. package/dist/solid/provider.jsx +411 -0
  683. package/dist/solid/provider.jsx.map +1 -0
  684. package/dist/solid/reactivity.d.ts +27 -0
  685. package/dist/solid/reactivity.d.ts.map +1 -0
  686. package/dist/solid/reactivity.js +9 -0
  687. package/dist/solid/reactivity.js.map +1 -0
  688. package/dist/solid/reorder-input.d.ts +22 -0
  689. package/dist/solid/reorder-input.d.ts.map +1 -0
  690. package/dist/solid/reorder-input.js +45 -0
  691. package/dist/solid/reorder-input.js.map +1 -0
  692. package/dist/solid/reorder.d.ts +241 -0
  693. package/dist/solid/reorder.d.ts.map +1 -0
  694. package/dist/solid/reorder.jsx +427 -0
  695. package/dist/solid/reorder.jsx.map +1 -0
  696. package/dist/solid/retarget-legs.d.ts +189 -0
  697. package/dist/solid/retarget-legs.d.ts.map +1 -0
  698. package/dist/solid/retarget-legs.js +825 -0
  699. package/dist/solid/retarget-legs.js.map +1 -0
  700. package/dist/solid/runtime.d.ts +179 -0
  701. package/dist/solid/runtime.d.ts.map +1 -0
  702. package/dist/solid/runtime.js +237 -0
  703. package/dist/solid/runtime.js.map +1 -0
  704. package/dist/solid/sensors.d.ts +95 -0
  705. package/dist/solid/sensors.d.ts.map +1 -0
  706. package/dist/solid/sensors.js +154 -0
  707. package/dist/solid/sensors.js.map +1 -0
  708. package/dist/solid/server-interpolators.d.ts +13 -0
  709. package/dist/solid/server-interpolators.d.ts.map +1 -0
  710. package/dist/solid/server-interpolators.js +20 -0
  711. package/dist/solid/server-interpolators.js.map +1 -0
  712. package/dist/solid/server.d.ts +9 -0
  713. package/dist/solid/server.d.ts.map +1 -0
  714. package/dist/solid/server.js +20 -0
  715. package/dist/solid/server.js.map +1 -0
  716. package/dist/solid/solid-reactivity.d.ts +3 -0
  717. package/dist/solid/solid-reactivity.d.ts.map +1 -0
  718. package/dist/solid/solid-reactivity.js +19 -0
  719. package/dist/solid/solid-reactivity.js.map +1 -0
  720. package/dist/solid/spine.d.ts +597 -0
  721. package/dist/solid/spine.d.ts.map +1 -0
  722. package/dist/solid/spine.js +2761 -0
  723. package/dist/solid/spine.js.map +1 -0
  724. package/dist/solid/stagger.d.ts +29 -0
  725. package/dist/solid/stagger.d.ts.map +1 -0
  726. package/dist/solid/stagger.js +13 -0
  727. package/dist/solid/stagger.js.map +1 -0
  728. package/dist/solid/unstable/v2/bridge.d.ts +33 -0
  729. package/dist/solid/unstable/v2/bridge.d.ts.map +1 -0
  730. package/dist/solid/unstable/v2/bridge.js +76 -0
  731. package/dist/solid/unstable/v2/bridge.js.map +1 -0
  732. package/dist/solid/unstable/v2/complete.d.ts +21 -0
  733. package/dist/solid/unstable/v2/complete.d.ts.map +1 -0
  734. package/dist/solid/unstable/v2/complete.js +27 -0
  735. package/dist/solid/unstable/v2/complete.js.map +1 -0
  736. package/dist/solid/unstable/v2/config-view.d.ts +49 -0
  737. package/dist/solid/unstable/v2/config-view.d.ts.map +1 -0
  738. package/dist/solid/unstable/v2/config-view.js +114 -0
  739. package/dist/solid/unstable/v2/config-view.js.map +1 -0
  740. package/dist/solid/unstable/v2/create-animate.d.ts +31 -0
  741. package/dist/solid/unstable/v2/create-animate.d.ts.map +1 -0
  742. package/dist/solid/unstable/v2/create-animate.js +102 -0
  743. package/dist/solid/unstable/v2/create-animate.js.map +1 -0
  744. package/dist/solid/unstable/v2/cycle.d.ts +20 -0
  745. package/dist/solid/unstable/v2/cycle.d.ts.map +1 -0
  746. package/dist/solid/unstable/v2/cycle.js +30 -0
  747. package/dist/solid/unstable/v2/cycle.js.map +1 -0
  748. package/dist/solid/unstable/v2/drag-sensor.d.ts +23 -0
  749. package/dist/solid/unstable/v2/drag-sensor.d.ts.map +1 -0
  750. package/dist/solid/unstable/v2/drag-sensor.js +32 -0
  751. package/dist/solid/unstable/v2/drag-sensor.js.map +1 -0
  752. package/dist/solid/unstable/v2/element.d.ts +178 -0
  753. package/dist/solid/unstable/v2/element.d.ts.map +1 -0
  754. package/dist/solid/unstable/v2/element.jsx +325 -0
  755. package/dist/solid/unstable/v2/element.jsx.map +1 -0
  756. package/dist/solid/unstable/v2/feature-section.d.ts +12 -0
  757. package/dist/solid/unstable/v2/feature-section.d.ts.map +1 -0
  758. package/dist/solid/unstable/v2/feature-section.js +23 -0
  759. package/dist/solid/unstable/v2/feature-section.js.map +1 -0
  760. package/dist/solid/unstable/v2/focus-sensor.d.ts +13 -0
  761. package/dist/solid/unstable/v2/focus-sensor.d.ts.map +1 -0
  762. package/dist/solid/unstable/v2/focus-sensor.js +23 -0
  763. package/dist/solid/unstable/v2/focus-sensor.js.map +1 -0
  764. package/dist/solid/unstable/v2/hover-sensor.d.ts +12 -0
  765. package/dist/solid/unstable/v2/hover-sensor.d.ts.map +1 -0
  766. package/dist/solid/unstable/v2/hover-sensor.js +22 -0
  767. package/dist/solid/unstable/v2/hover-sensor.js.map +1 -0
  768. package/dist/solid/unstable/v2/index.d.ts +131 -0
  769. package/dist/solid/unstable/v2/index.d.ts.map +1 -0
  770. package/dist/solid/unstable/v2/index.js +114 -0
  771. package/dist/solid/unstable/v2/index.js.map +1 -0
  772. package/dist/solid/unstable/v2/layout-projection.d.ts +21 -0
  773. package/dist/solid/unstable/v2/layout-projection.d.ts.map +1 -0
  774. package/dist/solid/unstable/v2/layout-projection.js +18 -0
  775. package/dist/solid/unstable/v2/layout-projection.js.map +1 -0
  776. package/dist/solid/unstable/v2/layout.d.ts +47 -0
  777. package/dist/solid/unstable/v2/layout.d.ts.map +1 -0
  778. package/dist/solid/unstable/v2/layout.jsx +62 -0
  779. package/dist/solid/unstable/v2/layout.jsx.map +1 -0
  780. package/dist/solid/unstable/v2/lifecycle.d.ts +267 -0
  781. package/dist/solid/unstable/v2/lifecycle.d.ts.map +1 -0
  782. package/dist/solid/unstable/v2/lifecycle.js +457 -0
  783. package/dist/solid/unstable/v2/lifecycle.js.map +1 -0
  784. package/dist/solid/unstable/v2/live-value.d.ts +146 -0
  785. package/dist/solid/unstable/v2/live-value.d.ts.map +1 -0
  786. package/dist/solid/unstable/v2/live-value.js +235 -0
  787. package/dist/solid/unstable/v2/live-value.js.map +1 -0
  788. package/dist/solid/unstable/v2/presence-handle.d.ts +55 -0
  789. package/dist/solid/unstable/v2/presence-handle.d.ts.map +1 -0
  790. package/dist/solid/unstable/v2/presence-handle.js +119 -0
  791. package/dist/solid/unstable/v2/presence-handle.js.map +1 -0
  792. package/dist/solid/unstable/v2/presence-hooks.d.ts +51 -0
  793. package/dist/solid/unstable/v2/presence-hooks.d.ts.map +1 -0
  794. package/dist/solid/unstable/v2/presence-hooks.js +115 -0
  795. package/dist/solid/unstable/v2/presence-hooks.js.map +1 -0
  796. package/dist/solid/unstable/v2/presence.d.ts +89 -0
  797. package/dist/solid/unstable/v2/presence.d.ts.map +1 -0
  798. package/dist/solid/unstable/v2/presence.jsx +107 -0
  799. package/dist/solid/unstable/v2/presence.jsx.map +1 -0
  800. package/dist/solid/unstable/v2/press-sensor.d.ts +13 -0
  801. package/dist/solid/unstable/v2/press-sensor.d.ts.map +1 -0
  802. package/dist/solid/unstable/v2/press-sensor.js +23 -0
  803. package/dist/solid/unstable/v2/press-sensor.js.map +1 -0
  804. package/dist/solid/unstable/v2/provider.d.ts +239 -0
  805. package/dist/solid/unstable/v2/provider.d.ts.map +1 -0
  806. package/dist/solid/unstable/v2/provider.jsx +423 -0
  807. package/dist/solid/unstable/v2/provider.jsx.map +1 -0
  808. package/dist/solid/unstable/v2/reorder.d.ts +292 -0
  809. package/dist/solid/unstable/v2/reorder.d.ts.map +1 -0
  810. package/dist/solid/unstable/v2/reorder.jsx +525 -0
  811. package/dist/solid/unstable/v2/reorder.jsx.map +1 -0
  812. package/dist/solid/unstable/v2/sensors.d.ts +91 -0
  813. package/dist/solid/unstable/v2/sensors.d.ts.map +1 -0
  814. package/dist/solid/unstable/v2/sensors.js +124 -0
  815. package/dist/solid/unstable/v2/sensors.js.map +1 -0
  816. package/dist/solid/unstable/v2/solid-reactivity.d.ts +61 -0
  817. package/dist/solid/unstable/v2/solid-reactivity.d.ts.map +1 -0
  818. package/dist/solid/unstable/v2/solid-reactivity.js +62 -0
  819. package/dist/solid/unstable/v2/solid-reactivity.js.map +1 -0
  820. package/dist/solid/unstable/v2/variant-node.d.ts +51 -0
  821. package/dist/solid/unstable/v2/variant-node.d.ts.map +1 -0
  822. package/dist/solid/unstable/v2/variant-node.js +336 -0
  823. package/dist/solid/unstable/v2/variant-node.js.map +1 -0
  824. package/dist/solid/unstable/v2/w.d.ts +42 -0
  825. package/dist/solid/unstable/v2/w.d.ts.map +1 -0
  826. package/dist/solid/unstable/v2/w.jsx +22 -0
  827. package/dist/solid/unstable/v2/w.jsx.map +1 -0
  828. package/dist/solid/unstable/v2/waiters.d.ts +72 -0
  829. package/dist/solid/unstable/v2/waiters.d.ts.map +1 -0
  830. package/dist/solid/unstable/v2/waiters.js +175 -0
  831. package/dist/solid/unstable/v2/waiters.js.map +1 -0
  832. package/dist/solid/unstable/v2/ward.d.ts +393 -0
  833. package/dist/solid/unstable/v2/ward.d.ts.map +1 -0
  834. package/dist/solid/unstable/v2/ward.jsx +1475 -0
  835. package/dist/solid/unstable/v2/ward.jsx.map +1 -0
  836. package/dist/solid/unstable/v2/wardic-config.d.ts +68 -0
  837. package/dist/solid/unstable/v2/wardic-config.d.ts.map +1 -0
  838. package/dist/solid/unstable/v2/wardic-config.jsx +28 -0
  839. package/dist/solid/unstable/v2/wardic-config.jsx.map +1 -0
  840. package/dist/solid/unstable/v2/wardic.d.ts +28 -0
  841. package/dist/solid/unstable/v2/wardic.d.ts.map +1 -0
  842. package/dist/solid/unstable/v2/wardic.jsx +16 -0
  843. package/dist/solid/unstable/v2/wardic.jsx.map +1 -0
  844. package/dist/solid/variant-node.d.ts +32 -0
  845. package/dist/solid/variant-node.d.ts.map +1 -0
  846. package/dist/solid/variant-node.js +257 -0
  847. package/dist/solid/variant-node.js.map +1 -0
  848. package/dist/solid/variant-target.d.ts +102 -0
  849. package/dist/solid/variant-target.d.ts.map +1 -0
  850. package/dist/solid/variant-target.js +180 -0
  851. package/dist/solid/variant-target.js.map +1 -0
  852. package/dist/solid/variant-tree.d.ts +349 -0
  853. package/dist/solid/variant-tree.d.ts.map +1 -0
  854. package/dist/solid/variant-tree.js +358 -0
  855. package/dist/solid/variant-tree.js.map +1 -0
  856. package/dist/solid/variants.d.ts +21 -0
  857. package/dist/solid/variants.d.ts.map +1 -0
  858. package/dist/solid/variants.js +43 -0
  859. package/dist/solid/variants.js.map +1 -0
  860. package/dist/solid/w.d.ts +42 -0
  861. package/dist/solid/w.d.ts.map +1 -0
  862. package/dist/solid/w.jsx +23 -0
  863. package/dist/solid/w.jsx.map +1 -0
  864. package/dist/solid/ward-keys.d.ts +236 -0
  865. package/dist/solid/ward-keys.d.ts.map +1 -0
  866. package/dist/solid/ward-keys.js +2 -0
  867. package/dist/solid/ward-keys.js.map +1 -0
  868. package/dist/solid/wardic-component.d.ts +50 -0
  869. package/dist/solid/wardic-component.d.ts.map +1 -0
  870. package/dist/solid/wardic-component.js +74 -0
  871. package/dist/solid/wardic-component.js.map +1 -0
  872. package/dist/solid/wardic-config-value.d.ts +87 -0
  873. package/dist/solid/wardic-config-value.d.ts.map +1 -0
  874. package/dist/solid/wardic-config-value.js +106 -0
  875. package/dist/solid/wardic-config-value.js.map +1 -0
  876. package/dist/solid/wardic-config.d.ts +69 -0
  877. package/dist/solid/wardic-config.d.ts.map +1 -0
  878. package/dist/solid/wardic-config.jsx +30 -0
  879. package/dist/solid/wardic-config.jsx.map +1 -0
  880. package/dist/solid/wardic.d.ts +45 -0
  881. package/dist/solid/wardic.d.ts.map +1 -0
  882. package/dist/solid/wardic.jsx +31 -0
  883. package/dist/solid/wardic.jsx.map +1 -0
  884. package/package.json +98 -4
  885. package/src/animation-controls.ts +204 -0
  886. package/src/animation-frame.ts +32 -0
  887. package/src/appear.ts +804 -0
  888. package/src/arc.ts +34 -0
  889. package/src/bridge.ts +98 -0
  890. package/src/complete.ts +45 -0
  891. package/src/config.ts +805 -0
  892. package/src/create-animate.ts +41 -0
  893. package/src/create-ward.tsx +1271 -0
  894. package/src/cycle-index.ts +18 -0
  895. package/src/cycle.ts +34 -0
  896. package/src/directive.ts +87 -0
  897. package/src/drag-constraints.ts +103 -0
  898. package/src/drag-controls.ts +94 -0
  899. package/src/drag-samples.ts +54 -0
  900. package/src/drag-sensor.ts +46 -0
  901. package/src/drag-track.ts +937 -0
  902. package/src/drag-transition.ts +43 -0
  903. package/src/drag.ts +58 -0
  904. package/src/element-style.ts +112 -0
  905. package/src/element.tsx +400 -0
  906. package/src/feature-section.ts +33 -0
  907. package/src/feature.ts +342 -0
  908. package/src/features/all.ts +18 -0
  909. package/src/features/colors.ts +36 -0
  910. package/src/features/dom-animation.ts +15 -0
  911. package/src/features/dom-max.ts +11 -0
  912. package/src/features/drag.ts +30 -0
  913. package/src/features/focus.ts +17 -0
  914. package/src/features/hover.ts +17 -0
  915. package/src/features/in-view.ts +17 -0
  916. package/src/features/input.ts +42 -0
  917. package/src/features/keys.ts +89 -0
  918. package/src/features/layout.ts +54 -0
  919. package/src/features/pan.ts +17 -0
  920. package/src/features/press.ts +17 -0
  921. package/src/focus-sensor.ts +32 -0
  922. package/src/frame-time.ts +45 -0
  923. package/src/gesture-callbacks.ts +212 -0
  924. package/src/gesture-features.ts +35 -0
  925. package/src/gesture-info.ts +81 -0
  926. package/src/hover-sensor.ts +32 -0
  927. package/src/imperative.ts +782 -0
  928. package/src/index.ts +334 -0
  929. package/src/instant.ts +90 -0
  930. package/src/layout-group.ts +32 -0
  931. package/src/layout-member.ts +300 -0
  932. package/src/layout-projection.ts +28 -0
  933. package/src/layout.tsx +127 -0
  934. package/src/live-style.ts +449 -0
  935. package/src/live-value.ts +378 -0
  936. package/src/motion-props.ts +325 -0
  937. package/src/owner-scope.ts +31 -0
  938. package/src/page-point.ts +98 -0
  939. package/src/presence-controller.ts +1483 -0
  940. package/src/presence-record.ts +189 -0
  941. package/src/presence.tsx +269 -0
  942. package/src/press-sensor.ts +33 -0
  943. package/src/press.ts +40 -0
  944. package/src/provider.tsx +526 -0
  945. package/src/reactivity.ts +29 -0
  946. package/src/reorder-input.ts +53 -0
  947. package/src/reorder.tsx +703 -0
  948. package/src/retarget-legs.ts +1048 -0
  949. package/src/runtime.ts +388 -0
  950. package/src/sensors.ts +189 -0
  951. package/src/server-interpolators.ts +33 -0
  952. package/src/server.ts +21 -0
  953. package/src/solid-reactivity.ts +21 -0
  954. package/src/spine.ts +3385 -0
  955. package/src/stagger.ts +31 -0
  956. package/src/unstable/v2/bridge.ts +79 -0
  957. package/src/unstable/v2/complete.ts +47 -0
  958. package/src/unstable/v2/config-view.ts +156 -0
  959. package/src/unstable/v2/create-animate.ts +123 -0
  960. package/src/unstable/v2/cycle.ts +33 -0
  961. package/src/unstable/v2/drag-sensor.ts +44 -0
  962. package/src/unstable/v2/element.tsx +478 -0
  963. package/src/unstable/v2/feature-section.ts +32 -0
  964. package/src/unstable/v2/focus-sensor.ts +31 -0
  965. package/src/unstable/v2/hover-sensor.ts +30 -0
  966. package/src/unstable/v2/index.ts +270 -0
  967. package/src/unstable/v2/layout-projection.ts +27 -0
  968. package/src/unstable/v2/layout.tsx +89 -0
  969. package/src/unstable/v2/lifecycle.ts +612 -0
  970. package/src/unstable/v2/live-value.ts +414 -0
  971. package/src/unstable/v2/presence-handle.ts +159 -0
  972. package/src/unstable/v2/presence-hooks.ts +157 -0
  973. package/src/unstable/v2/presence.tsx +174 -0
  974. package/src/unstable/v2/press-sensor.ts +31 -0
  975. package/src/unstable/v2/provider.tsx +524 -0
  976. package/src/unstable/v2/reorder.tsx +880 -0
  977. package/src/unstable/v2/sensors.ts +169 -0
  978. package/src/unstable/v2/solid-reactivity.ts +69 -0
  979. package/src/unstable/v2/variant-node.ts +446 -0
  980. package/src/unstable/v2/w.tsx +49 -0
  981. package/src/unstable/v2/waiters.ts +212 -0
  982. package/src/unstable/v2/ward.tsx +2068 -0
  983. package/src/unstable/v2/wardic-config.tsx +84 -0
  984. package/src/unstable/v2/wardic.tsx +41 -0
  985. package/src/variant-node.ts +368 -0
  986. package/src/variant-target.ts +234 -0
  987. package/src/variant-tree.ts +638 -0
  988. package/src/variants.ts +47 -0
  989. package/src/w.tsx +59 -0
  990. package/src/ward-keys.ts +343 -0
  991. package/src/wardic-component.ts +96 -0
  992. package/src/wardic-config-value.ts +150 -0
  993. package/src/wardic-config.tsx +78 -0
  994. package/src/wardic.tsx +59 -0
@@ -0,0 +1,612 @@
1
+ /**
2
+ * A ward's animation lifecycle on Solid 2 (#257, ADR-0046): its Retargets' starts and landings,
3
+ * handed over as async values in place of Solid 1's `onAnimationStart` / `onAnimationComplete`.
4
+ *
5
+ * - `settled()`: the last landing, `undefined` before the first. It's ready from its first read (#257
6
+ * PR 2's Q1, B): a Retarget in flight makes it pending, so `isPending(() => card.settled())` is
7
+ * "animating", and a read keeps the last landing meanwhile. Pending at its first read, a read with
8
+ * no `<Loading>` above it would defer the root's mount, the ward's own with it, and the landing it
9
+ * waits for would never come.
10
+ * - `next("settled")`: a promise of the next landing after the call. It rejects with a `DOMException`
11
+ * named `"AbortError"` once the ward is disposed, as Web Animations' `finished` does on a cancel.
12
+ * - **A failed animation** (#257 item 4), one a leg's failure keeps from landing: `next("settled")`
13
+ * rejects with the failure's error, `each("settled")` throws it, and `settled()` throws it at each
14
+ * read, so a read of it in JSX goes to the reader's `<Errored>`. The next Retarget clears it,
15
+ * pending, and its landing is read again. It's logged and reported apart (ADR-0030), whoever reads it.
16
+ *
17
+ * - `tapped()` (#427, ADR-0056): the last tap, as `settled()` is the last landing: `undefined`
18
+ * before the first, pending while a press is held, from a pointer or a key, so
19
+ * `isPending(() => card.tapped())` is "pressed". A tap resolves it; a cancel, or a press a drag took
20
+ * over, keeps the last tap. Its first read asks for the press, as `next("tap")` does.
21
+ *
22
+ * One object a ward, the spine's hooks itself. Nothing Solid is made until `settled` is first read,
23
+ * and nothing is allocated for a start or a landing until someone asks: until then they're counts
24
+ * and references.
25
+ *
26
+ * @module
27
+ */
28
+ import * as Bool from "effect/Boolean"
29
+ import * as Predicate from "effect/Predicate"
30
+ import { constUndefined, identity } from "effect/Function"
31
+ import * as UndefinedOr from "effect/UndefinedOr"
32
+ import type * as Drag from "@wardic/core/Drag"
33
+ import type * as InputSource from "@wardic/core/InputSource"
34
+ import type * as DragRecognizer from "@wardic/core/DragRecognizer"
35
+ import type * as Recognizer from "@wardic/core/Recognizer"
36
+ import { type Accessor, createMemo, createSignal, type Owner, runWithOwner } from "solid-js"
37
+ import type { WardicAnimationDefinition, WardicValues } from "../../config.ts"
38
+ import { dragInfoOf, pointInfoOf, pointOfSample, pressInfoOf, type WardicDragInfo, type WardicPoint, type WardicPointInfo, type WardicPressInfo } from "../../gesture-info.ts"
39
+ import { type AnimationHooks, definitionOf, type Resolution } from "../../spine.ts"
40
+ import { CLIENT_ONLY } from "./solid-reactivity.ts"
41
+ import { eachOf, type Listener, Waiters, whenOf } from "./waiters.ts"
42
+
43
+ /** The gesture layers that were on for an animation: `whileHover`'s, `whileTap`'s and `whileDrag`'s (a drag, or a keyboard reorder's lift). */
44
+ export interface WardGestures {
45
+ readonly hover: boolean
46
+ readonly tap: boolean
47
+ readonly drag: boolean
48
+ /** In view: `whileInView` applied. */
49
+ readonly inView: boolean
50
+ /** Focused as the browser shows it: `whileFocus` applied. */
51
+ readonly focus: boolean
52
+ }
53
+
54
+ /** An animation's landing. */
55
+ export interface WardSettled {
56
+ /**
57
+ * Motion's `definition` of it: the variant name its `animate` changed to, else its target values
58
+ * (a values map, or a gesture layer turning on or off).
59
+ */
60
+ readonly definition: WardicAnimationDefinition
61
+ /** The values it landed on: every key its Retarget animated. */
62
+ readonly target: WardicValues
63
+ /** The gesture layers that were on when it started. */
64
+ readonly gestures: WardGestures
65
+ }
66
+
67
+ /** A point in the viewport, as `clientX` / `clientY` and `getBoundingClientRect()` measure. */
68
+ export type WardPoint = WardicPoint
69
+
70
+ /**
71
+ * The element a gesture's event happened on: the ward's, or, for a ward given to `wardRef`,
72
+ * the element it drives. Motion's `event.currentTarget`: Solid 2's events have no DOM event.
73
+ */
74
+ export type WardElement = HTMLElement | SVGElement
75
+
76
+ /**
77
+ * A hover's or a press's event (Motion's `EventInfo` / `TapInfo`): where the pointer was, in
78
+ * the viewport, and the element it was on.
79
+ */
80
+ export interface WardPointInfo extends WardicPointInfo {
81
+ readonly element: WardElement
82
+ }
83
+
84
+ /**
85
+ * A press's event: where it was, in the viewport, how it was made (`input: "pointer" |
86
+ * "keyboard"`), and the element it was on. A **Keyboard press**'s point is the element's centre,
87
+ * measured at the key.
88
+ */
89
+ export interface WardPressInfo extends WardicPressInfo {
90
+ readonly element: WardElement
91
+ }
92
+
93
+ /**
94
+ * A drag's event (Motion's `PanInfo`): where the pointer was, in the viewport, the drag's
95
+ * `offset`, `delta` and `velocity` (`gesture-info.ts`), and the element dragged.
96
+ */
97
+ export interface WardDragInfo extends WardicDragInfo {
98
+ readonly element: WardElement
99
+ }
100
+
101
+ /** What each of `next(name)`'s names resolves to. */
102
+ export interface WardEvents {
103
+ /** The next landing. */
104
+ readonly settled: WardSettled
105
+ /** The pointer came over the element (Motion's `onHoverStart`); touch never hovers. */
106
+ readonly hoverStart: WardPointInfo
107
+ /**
108
+ * The pointer over the element while it's hovered: its start, told after `hoverStart` at the
109
+ * same point, then each move until `hoverEnd`, as `drag` is a drag's. Wardic's own: Motion's hover
110
+ * has only a start and an end.
111
+ */
112
+ readonly hover: WardPointInfo
113
+ /** It left, or a press held on it while it left was let go (Motion's `onHoverEnd`). */
114
+ readonly hoverEnd: WardPointInfo
115
+ /**
116
+ * A press began on the element (Motion's `onTapStart`): a primary pointer's down, or Enter or Space
117
+ * going down while it has focus (a **Keyboard press**).
118
+ */
119
+ readonly pressStart: WardPressInfo
120
+ /** That press ended in a release on the element or inside it, or its key coming up (Motion's `onTap`). */
121
+ readonly tap: WardPressInfo
122
+ /**
123
+ * It ended elsewhere, or was cancelled; a key's, when the element lost focus (Motion's
124
+ * `onTapCancel`). A press a drag took over is neither.
125
+ */
126
+ readonly tapCancel: WardPressInfo
127
+ /** A drag of the element started, past its threshold (Motion's `onDragStart`). */
128
+ readonly dragStart: WardDragInfo
129
+ /**
130
+ * With `dragDirectionLock`, the axis a drag locked to, at its start, before its `dragStart`
131
+ * (Motion's `onDirectionLock`).
132
+ */
133
+ readonly directionLock: "x" | "y"
134
+ /** That drag moved: its start and each move after (Motion's `onDrag`). */
135
+ readonly drag: WardDragInfo
136
+ /** That drag ended at its release (Motion's `onDragEnd`). */
137
+ readonly dragEnd: WardDragInfo
138
+ /**
139
+ * The drag's release came to rest on its own (Motion's `onDragTransitionEnd`): its Fling
140
+ * or its spring back, or at once for one released in place. Not for one a grab stopped.
141
+ */
142
+ readonly dragTransitionEnd: undefined
143
+ /**
144
+ * A pan's session began: a primary pointer went down on the element (Motion's
145
+ * `onPanSessionStart`). A pan moves nothing; once started, it counts as a drag for the
146
+ * element's press and hover. It sets no `touch-action`: give the element one for touch.
147
+ */
148
+ readonly panSessionStart: WardPointInfo
149
+ /** That pan started, past its threshold (Motion's `onPanStart`). */
150
+ readonly panStart: WardDragInfo
151
+ /** That pan moved: its start and each move after (Motion's `onPan`). */
152
+ readonly pan: WardDragInfo
153
+ /** That pan ended at its release, or was cancelled (Motion's `onPanEnd`). Only a pan that started. */
154
+ readonly panEnd: WardDragInfo
155
+ /**
156
+ * The element came into view, as its `viewport` says (Motion's `onViewportEnter`). One that
157
+ * starts out of view tells nothing until it enters.
158
+ */
159
+ readonly viewportEnter: undefined
160
+ /** It left the view (Motion's `onViewportLeave`). With `viewport.once`, never after its first entry. */
161
+ readonly viewportLeave: undefined
162
+ /**
163
+ * A layout animation of the element started, at the frame it takes its first step, after that
164
+ * frame is painted (Motion's `onLayoutAnimationStart`). A restart starts again.
165
+ */
166
+ readonly layoutStart: undefined
167
+ /**
168
+ * A layout animation of the element landed on its own (Motion's `onLayoutAnimationComplete`): not
169
+ * one a restart interrupted, a window resize finished early, or an unmount cut off.
170
+ */
171
+ readonly layoutComplete: undefined
172
+ }
173
+
174
+ /** A Retarget's failure (#257 item 4), as `settled()`'s memo holds it: `read` throws its error. */
175
+ class Failure {
176
+ readonly error: unknown
177
+ constructor(error: unknown) {
178
+ this.error = error
179
+ }
180
+ }
181
+
182
+ /** What `next(name)` waits for. */
183
+ export type WardEvent = keyof WardEvents
184
+
185
+ /** The `AbortError`'s message for a `next` the ward's disposal cut off. */
186
+ const GONE = "The ward was disposed before its next event."
187
+
188
+ /** A gesture whose recognizer the ward runs only once wanted (#87, #257, #273). */
189
+ export type WantedGesture = "hover" | "press" | "pan" | "inView"
190
+
191
+ /** The gesture whose recognizer an event needs: `next("tap")` needs the press one running. */
192
+ const GESTURE_OF: Partial<Record<WardEvent, WantedGesture>> = {
193
+ hoverStart: "hover",
194
+ hover: "hover",
195
+ hoverEnd: "hover",
196
+ pressStart: "press",
197
+ tap: "press",
198
+ tapCancel: "press",
199
+ panSessionStart: "pan",
200
+ panStart: "pan",
201
+ pan: "pan",
202
+ panEnd: "pan",
203
+ viewportEnter: "inView",
204
+ viewportLeave: "inView",
205
+ }
206
+
207
+ /** Each press phase's event: a press a drag took over has none (Motion tells neither). */
208
+ const PRESS_EVENT: Record<Recognizer.PressPhase, WardEvent | undefined> = {
209
+ start: "pressStart",
210
+ tap: "tap",
211
+ cancel: "tapCancel",
212
+ dragged: undefined,
213
+ }
214
+
215
+ /** A drag's or a pan's start or end. */
216
+ type MovementEvent = "dragStart" | "dragEnd" | "panStart" | "panEnd"
217
+
218
+ /** Each drag phase's event: its end; its start, which `drag` hears too, is told on its own. */
219
+ const DRAG_EVENT: Record<Drag.Sample["phase"], MovementEvent | undefined> = {
220
+ start: "dragStart",
221
+ move: undefined,
222
+ end: "dragEnd",
223
+ }
224
+
225
+ /** Each pan phase's event past its session's start: as {@link DRAG_EVENT}, `pan` its every move. */
226
+ const PAN_EVENT: Record<Drag.Sample["phase"], MovementEvent | undefined> = {
227
+ start: "panStart",
228
+ move: undefined,
229
+ end: "panEnd",
230
+ }
231
+
232
+ /**
233
+ * A ward's lifecycle, made under its `owner`. It's the spine's {@link AnimationHooks}; the ward
234
+ * hands over {@link Lifecycle.read} as `settled` and {@link Lifecycle.wait} as `next`, and calls
235
+ * {@link Lifecycle.dispose} in its own cleanup. A landing's gestures are the layers its Retarget's
236
+ * resolution was made with.
237
+ */
238
+ export class Lifecycle implements AnimationHooks {
239
+ // The Retargets started and the last one landed, counted, and the one in flight.
240
+ private starts = 0
241
+ private landed = 0
242
+ private flying: Resolution | undefined = undefined
243
+ // The last landing, built when it's asked for: its resolution and the variant before it.
244
+ private landedResolution: Resolution | undefined = undefined
245
+ private landedPrevious: Resolution | undefined = undefined
246
+ private last: WardSettled | undefined = undefined
247
+ // Made at the first read: the setter of the count it tracks, its memo, and its pending read's resolver.
248
+ private setCount: ((count: number) => void) | undefined = undefined
249
+ private memo: Accessor<WardSettled | Failure | undefined> | undefined = undefined
250
+ private waiting: ((landing: WardSettled | Failure) => void) | undefined = undefined
251
+ // The last Retarget's failure, until the next starts (#257 item 4).
252
+ private failure: Failure | undefined = undefined
253
+ // `tapped()` (#427): the presses started and ended, counted; the last tap's press and element, kept
254
+ // as references until it's asked for, and its info, built then; and, made at the first read, the
255
+ // setter of the count it tracks, its memo, and its pending read's resolver.
256
+ private pressStarts = 0
257
+ private pressEnds = 0
258
+ private tapPress: Recognizer.PressEvent | undefined = undefined
259
+ private tapElement: WardElement | undefined = undefined
260
+ private lastTap: WardPressInfo | undefined = undefined
261
+ private setPresses: ((count: number) => void) | undefined = undefined
262
+ private tapMemo: Accessor<WardPressInfo | undefined> | undefined = undefined
263
+ private tapWaiting: ((tap: WardPressInfo | undefined) => void) | undefined = undefined
264
+ // The `next(name)` calls waiting, made at the first; and whether the ward is gone.
265
+ private events: Waiters<WardEvents> | undefined = undefined
266
+ private disposed = false
267
+ // The gestures a `next` has asked for, whose recognizers the ward runs from then on.
268
+ private hover = false
269
+ private press = false
270
+ private pan = false
271
+ private inView = false
272
+ private readonly owner: Owner | null
273
+ private readonly want: (gesture: WantedGesture) => void
274
+
275
+ /** `want` starts a gesture's recognizer on the mounted element the first time a `next` needs it. */
276
+ constructor(owner: Owner | null, want: (gesture: WantedGesture) => void) {
277
+ this.owner = owner
278
+ this.want = want
279
+ }
280
+
281
+ /** Whether a `next` has asked for the hover events, so the ward runs its recognizer. */
282
+ get wantsHover(): boolean {
283
+ return this.hover
284
+ }
285
+
286
+ /** Whether a `next` has asked for the press events. */
287
+ get wantsPress(): boolean {
288
+ return this.press
289
+ }
290
+
291
+ /** Whether a `next` has asked for the pan events (#273). */
292
+ get wantsPan(): boolean {
293
+ return this.pan
294
+ }
295
+
296
+ /** Whether a `next` has asked for the viewport events (#273). */
297
+ get wantsInView(): boolean {
298
+ return this.inView
299
+ }
300
+
301
+ started(resolution: Resolution): void {
302
+ this.starts++
303
+ this.flying = resolution
304
+ this.failure = undefined
305
+ // From a microtask, as at the first read (#315): a Retarget starts in Solid's flush, the mount's
306
+ // among them, where `render` still watches for a pending read reaching its root. A `<Loading>`
307
+ // already showing its content doesn't catch one, so a plain `settled()` read under it was
308
+ // reported as an async read outside any boundary, though the mount wasn't held.
309
+ if (Predicate.isNotUndefined(this.setCount)) queueMicrotask(this.tellStarts)
310
+ }
311
+
312
+ /** `settled()`'s count set to the starts now: its read pends while one is in flight. */
313
+ private readonly tellStarts = (): void => {
314
+ UndefinedOr.map(this.setCount, (set) => set(this.starts))
315
+ }
316
+
317
+ settled(resolution: Resolution, previous: Resolution | undefined): void {
318
+ // A landing told after a later Retarget started (a settle waits for the gate's flush) is stale.
319
+ if (resolution !== this.flying) return
320
+ this.landed = this.starts
321
+ this.landedResolution = resolution
322
+ this.landedPrevious = previous
323
+ this.last = undefined
324
+ // In the landing's own flush, not a start's microtask after: the count equals the landings, so
325
+ // `settled()` reads the landing, never pending (SE6, a Retarget with nothing to animate).
326
+ this.tellStarts()
327
+ const resolve = this.waiting
328
+ if (Bool.and(Predicate.isUndefined(resolve), Predicate.isUndefined(this.events))) return
329
+ this.waiting = undefined
330
+ if (Predicate.isNotUndefined(resolve)) resolve(this.lastLanding() as WardSettled)
331
+ this.tell("settled", this.landing)
332
+ }
333
+
334
+ /**
335
+ * The Retarget in flight can't land: a leg failed (#257 item 4). It's no longer in flight;
336
+ * `settled()` reads as errored until the next starts, and the waits for `settled` are rejected.
337
+ */
338
+ failed(resolution: Resolution, error: unknown): void {
339
+ if (resolution !== this.flying) return
340
+ this.flying = undefined
341
+ this.landed = this.starts
342
+ const failure = new Failure(error)
343
+ this.failure = failure
344
+ const resolve = this.waiting
345
+ this.waiting = undefined
346
+ if (Predicate.isNotUndefined(resolve)) resolve(failure)
347
+ UndefinedOr.map(this.events, (events) => events.fail("settled", error))
348
+ }
349
+
350
+ /** A hover's start or end on `element` (#257): its start is the first `hover` too (#397). */
351
+ hovered(edge: Recognizer.Edge, element: WardElement): void {
352
+ if (Predicate.isUndefined(this.events)) return
353
+ const info = (): WardPointInfo => ({ ...pointInfoOf(edge.event), element })
354
+ if (edge.active) {
355
+ this.tell("hoverStart", info)
356
+ this.tell("hover", info)
357
+ return
358
+ }
359
+ this.tell("hoverEnd", info)
360
+ }
361
+
362
+ /** A move of the pointer over `element` while it's hovered (#397). */
363
+ hoverMoved(event: InputSource.PointerLikeEvent, element: WardElement): void {
364
+ if (Predicate.isUndefined(this.events)) return
365
+ this.tell("hover", () => ({ ...pointInfoOf(event), element }))
366
+ }
367
+
368
+ /** A press's start or end (#257): a press a drag took over tells nothing. */
369
+ pressed(press: Recognizer.PressEvent, element: WardElement): void {
370
+ this.pressNow(press, element)
371
+ if (Predicate.isUndefined(this.events)) return
372
+ const name = PRESS_EVENT[press.phase]
373
+ if (Predicate.isUndefined(name)) return
374
+ this.tell(name, () => ({ ...pressInfoOf(press, element), element }))
375
+ }
376
+
377
+ /**
378
+ * A drag's sample (#257, #273): its start, each move (its start among them) and its end are told;
379
+ * a direction-locked one's (`locked`) lock first, at its start. An end its controls cancelled
380
+ * (#431) isn't, as Motion's `cancel` tells no `onDragEnd`.
381
+ */
382
+ dragged(sample: Drag.Sample, locked: boolean, element: WardElement): void {
383
+ if (sample.cancelled === true) return
384
+ if (Bool.and(locked, sample.phase === "start")) this.tell("directionLock", () => sample.axis as "x" | "y")
385
+ this.moved(DRAG_EVENT[sample.phase], "drag", sample, element)
386
+ }
387
+
388
+ /** A pan's sample (#273): its session's start, then as a drag's. */
389
+ panned(sample: DragRecognizer.PanSample, element: WardElement): void {
390
+ if (Predicate.isUndefined(this.events)) return
391
+ if (sample.phase === "session") {
392
+ this.tell("panSessionStart", () => ({ ...pointOfSample(sample), element }))
393
+ return
394
+ }
395
+ this.moved(PAN_EVENT[sample.phase], "pan", sample as Drag.Sample, element)
396
+ }
397
+
398
+ /** The drag's release came to rest on its own (#273). */
399
+ released(): void {
400
+ this.tell("dragTransitionEnd", constUndefined)
401
+ }
402
+
403
+ /** A layout animation's start (#257): the projection calls it after its first frame is painted. */
404
+ layoutStarted(): void {
405
+ this.tell("layoutStart", constUndefined)
406
+ }
407
+
408
+ /** A layout animation's landing (#257). */
409
+ layoutCompleted(): void {
410
+ this.tell("layoutComplete", constUndefined)
411
+ }
412
+
413
+ /** An in-view edge (#273): the element entered or left the view. */
414
+ viewed(edge: Recognizer.ViewEdge): void {
415
+ this.tell(Bool.match(edge.active, { onTrue: (): WardEvent => "viewportEnter", onFalse: () => "viewportLeave" }), constUndefined)
416
+ }
417
+
418
+ /** A drag's or a pan's sample past a pan's session's start: its start's or end's event (`named`), then `every` at its start and each move. */
419
+ private moved(named: MovementEvent | undefined, every: "drag" | "pan", sample: Drag.Sample, element: WardElement): void {
420
+ if (Predicate.isUndefined(this.events)) return
421
+ const info = (): WardDragInfo => ({ ...dragInfoOf(sample), element })
422
+ if (Predicate.isNotUndefined(named)) this.tell(named, info)
423
+ if (sample.phase !== "end") this.tell(every, info)
424
+ }
425
+
426
+ /** Resolve the `next(name)` calls waiting, with `value()`, made once there are any. */
427
+ private tell<E extends WardEvent>(name: E, value: () => WardEvents[E]): void {
428
+ UndefinedOr.map(this.events, (events) => events.tell(name, value))
429
+ }
430
+
431
+ /**
432
+ * A press for `tapped()` (#427): its start counted, and pending from there; its end counted, a tap's
433
+ * kept as references, and the pending read resolved with the last tap. Once `tapped()` has been read,
434
+ * its memo pends at each press's start, read or not, so a tap's info is built here, at the tap: a
435
+ * keyboard press's centre is measured at the key. Before, nothing is allocated for a tap.
436
+ */
437
+ private pressNow(press: Recognizer.PressEvent, element: WardElement): void {
438
+ if (press.phase === "start") {
439
+ this.pressStarts++
440
+ this.tellPresses()
441
+ return
442
+ }
443
+ this.pressEnds = this.pressStarts
444
+ if (press.phase === "tap") {
445
+ this.tapPress = press
446
+ this.tapElement = element
447
+ this.lastTap = undefined
448
+ }
449
+ this.tellPresses()
450
+ const resolve = this.tapWaiting
451
+ if (Predicate.isUndefined(resolve)) return
452
+ this.tapWaiting = undefined
453
+ resolve(this.lastTapNow())
454
+ }
455
+
456
+ /** `tapped()`'s count set to the presses started: its read pends while one is held. */
457
+ private readonly tellPresses = (): void => {
458
+ UndefinedOr.map(this.setPresses, (set) => set(this.pressStarts))
459
+ }
460
+
461
+ /** The last tap's info, built from its references the first time it's asked for. */
462
+ private lastTapNow(): WardPressInfo | undefined {
463
+ if (Bool.or(Predicate.isNotUndefined(this.lastTap), Predicate.isUndefined(this.tapPress))) return this.lastTap
464
+ const element = this.tapElement as WardElement
465
+ this.lastTap = { ...pressInfoOf(this.tapPress as Recognizer.PressEvent, element), element }
466
+ return this.lastTap
467
+ }
468
+
469
+ /**
470
+ * `tapped()` (#427): the last tap, made reactive at the first read, which also asks for the press,
471
+ * as `next("tap")` does, so the ward runs its recognizer.
472
+ */
473
+ tapped(): WardPressInfo | undefined {
474
+ if (Predicate.isUndefined(this.tapMemo)) {
475
+ this.tapMemo = runWithOwner(this.owner, () => this.makeTapMemo())
476
+ this.wanted("press")
477
+ }
478
+ return (this.tapMemo as Accessor<WardPressInfo | undefined>)()
479
+ }
480
+
481
+ // The count of presses it tracks starts at the ended count, so its first read is never pending. A
482
+ // press held at that read is set from a microtask, as `settled()`'s Retarget in flight is.
483
+ private makeTapMemo(): Accessor<WardPressInfo | undefined> {
484
+ const [count, set] = createSignal(this.pressEnds)
485
+ this.setPresses = set
486
+ const memo = createMemo((): WardPressInfo | undefined | PromiseLike<WardPressInfo | undefined> => {
487
+ if (count() === this.pressEnds) return this.lastTapNow()
488
+ return new Promise<WardPressInfo | undefined>((resolve) => {
489
+ this.tapWaiting = resolve
490
+ })
491
+ }, CLIENT_ONLY)
492
+ if (this.pressStarts !== this.pressEnds) queueMicrotask(this.tellPresses)
493
+ return memo
494
+ }
495
+
496
+ /** The last landing, for {@link tell}. */
497
+ private readonly landing = (): WardSettled => this.lastLanding() as WardSettled
498
+
499
+ /**
500
+ * `settled()`: the last landing, made reactive at the first read. A failure (#257 item 4) is
501
+ * thrown here, in the reader, so the reader's `<Errored>` catches it: the memo is the ward's, owned
502
+ * outside any boundary the reader is in, so it holds the failure as a value rather than erroring.
503
+ */
504
+ read(): WardSettled | undefined {
505
+ if (Predicate.isUndefined(this.memo)) this.memo = runWithOwner(this.owner, () => this.makeMemo())
506
+ const value = this.memo()
507
+ if (value instanceof Failure) throw value.error
508
+ return value
509
+ }
510
+
511
+ /**
512
+ * `next(name)`: a promise of the next `name` after the call. A gesture's event starts that
513
+ * gesture's recognizer, if the ward doesn't run it already.
514
+ */
515
+ wait<E extends WardEvent>(name: E): Promise<WardEvents[E]> {
516
+ const waited = this.eventsNow().wait(name)
517
+ const gesture = GESTURE_OF[name]
518
+ if (Bool.and(Predicate.isNotUndefined(gesture), Bool.not(this.disposed))) this.wanted(gesture as WantedGesture)
519
+ return waited
520
+ }
521
+
522
+ /**
523
+ * Hear every `name` from the call on (#355, `when`), until the returned stop or the ward's end. A
524
+ * gesture's event starts that gesture's recognizer, as a {@link wait} does.
525
+ */
526
+ readonly listen = <E extends WardEvent>(name: E, listener: Listener<WardEvents[E]>): (() => void) => {
527
+ const stop = this.eventsNow().listen(name, listener)
528
+ const gesture = GESTURE_OF[name]
529
+ if (Bool.and(Predicate.isNotUndefined(gesture), Bool.not(this.disposed))) this.wanted(gesture as WantedGesture)
530
+ return stop
531
+ }
532
+
533
+ /** `when(name)` (#355): every `name`, as a memo for an effect: see `whenOf`. */
534
+ when<E extends WardEvent>(name: E): Accessor<WardEvents[E]> {
535
+ return whenOf<WardEvents, E>(this, name)
536
+ }
537
+
538
+ /**
539
+ * `each(name)`: every `name` from the call on, as an async iterable (#257): each step is a
540
+ * {@link wait}, so one that comes while the loop's body runs is missed, as a `next` asked later
541
+ * would miss it. It ends, rather than rejecting, once the ward is disposed.
542
+ */
543
+ each<E extends WardEvent>(name: E): AsyncIterable<WardEvents[E]> {
544
+ return eachOf<WardEvents, E>(this, name)
545
+ }
546
+
547
+ /** The waits and listeners, made at the first: gone at once if the ward is. */
548
+ private eventsNow(): Waiters<WardEvents> {
549
+ if (Predicate.isUndefined(this.events)) {
550
+ this.events = new Waiters<WardEvents>(GONE)
551
+ if (this.disposed) this.events.dispose()
552
+ }
553
+ return this.events
554
+ }
555
+
556
+ /** The ward is gone: every `next` waiting is rejected, and any asked later at once. */
557
+ dispose(): void {
558
+ this.disposed = true
559
+ UndefinedOr.map(this.events, (events) => events.dispose())
560
+ }
561
+
562
+ /** A gesture a `next` needs: its recognizer is started the first time. */
563
+ private wanted(gesture: WantedGesture): void {
564
+ if (gesture === "hover") {
565
+ if (this.hover) return
566
+ this.hover = true
567
+ }
568
+ if (gesture === "press") {
569
+ if (this.press) return
570
+ this.press = true
571
+ }
572
+ if (gesture === "pan") {
573
+ if (this.pan) return
574
+ this.pan = true
575
+ }
576
+ if (gesture === "inView") {
577
+ if (this.inView) return
578
+ this.inView = true
579
+ }
580
+ this.want(gesture)
581
+ }
582
+
583
+ private lastLanding(): WardSettled | undefined {
584
+ const resolution = this.landedResolution
585
+ if (Bool.or(Predicate.isNotUndefined(this.last), Predicate.isUndefined(resolution))) return this.last
586
+ const landing = resolution as Resolution
587
+ const active = landing.active
588
+ this.last = {
589
+ definition: definitionOf(landing, this.landedPrevious) as WardicAnimationDefinition,
590
+ target: landing.resolved,
591
+ gestures: { hover: active.hovered, tap: active.pressed, drag: active.dragged, inView: active.inView, focus: active.focused },
592
+ }
593
+ return this.last
594
+ }
595
+
596
+ // The count of starts it tracks starts at the landed count, so its first read is never pending. A
597
+ // Retarget in flight at that read is set from a microtask: a change in flight from there
598
+ // (`isPending`), which a write in the read's own flush wouldn't be (Solid applies it there).
599
+ private makeMemo(): Accessor<WardSettled | Failure | undefined> {
600
+ const [count, set] = createSignal(this.landed)
601
+ this.setCount = set
602
+ const memo = createMemo((): WardSettled | Failure | undefined | PromiseLike<WardSettled | Failure> => {
603
+ // At rest: the last landing, or a failure told before this run (#257 item 4).
604
+ if (count() === this.landed) return UndefinedOr.match(this.failure, { onUndefined: () => this.lastLanding(), onDefined: identity })
605
+ return new Promise<WardSettled | Failure>((resolve) => {
606
+ this.waiting = resolve
607
+ })
608
+ }, CLIENT_ONLY)
609
+ if (this.starts !== this.landed) queueMicrotask(this.tellStarts)
610
+ return memo
611
+ }
612
+ }