@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,526 @@
1
+ /**
2
+ * `WardicProvider` — owns the single Effect runtime for a Solid subtree.
3
+ *
4
+ * Per ADR-0006 ("Reactive bridge"), exactly one Effect runtime + `AtomRegistry`
5
+ * lives in `WardicProvider`, and every animation fiber is scoped to a consuming
6
+ * component's `onCleanup`, so unmount interrupts the fiber, tears down its
7
+ * Scope, and drops the ref-count on the Shared sources it subscribed to.
8
+ *
9
+ * This module supplies that runtime (a `ManagedRuntime` built once from the
10
+ * supplied environment `Layer`), the `useWardicRuntime` accessor, and the
11
+ * scoped-fiber runner (`runScoped` / `useWardicFiber`) that interrupts forked
12
+ * fibers on consumer unmount.
13
+ */
14
+ import type * as DefaultTransition from "@wardic/core/DefaultTransition"
15
+ import type * as InputFeed from "@wardic/core/InputFeed"
16
+ import type * as ReducedMotion from "@wardic/core/ReducedMotion"
17
+ import type * as Renderer from "@wardic/core/Renderer"
18
+ import type * as Cause from "effect/Cause"
19
+ import * as Effect from "effect/Effect"
20
+ import * as Fiber from "effect/Fiber"
21
+ import * as Scope from "effect/Scope"
22
+ import * as Bool from "effect/Boolean"
23
+ import { constUndefined, identity } from "effect/Function"
24
+ import * as Latch from "effect/Latch"
25
+ import * as Option from "effect/Option"
26
+ import * as Predicate from "effect/Predicate"
27
+ import * as UndefinedOr from "effect/UndefinedOr"
28
+ import { batch, createContext, DEV, onCleanup, onMount, untrack, useContext } from "solid-js"
29
+ import type { JSX } from "solid-js"
30
+ import { useAssets } from "solid-js/web"
31
+ import * as Appear from "@wardic/dom/Appear"
32
+ import * as Report from "@wardic/dom/Report"
33
+ import type * as FlushGate from "@wardic/dom/FlushGate"
34
+ import type * as ProjectionSystem from "@wardic/dom/ProjectionSystem"
35
+ import { explainerOf, type ServerAppear, serverAppear } from "./appear.ts"
36
+ import * as Context from "effect/Context"
37
+ import { type Feature, type FeatureRegistry, type FeatureSection, type FeaturesProp, ROOT, strictMessage } from "./feature.ts"
38
+ import { FeatureSectionProvider, sectionUnder, useLazySection } from "./feature-section.ts"
39
+ import * as OwnerScope from "./owner-scope.ts"
40
+ import {
41
+ type AnimateLayout,
42
+ animateLayoutOf,
43
+ clientContext,
44
+ fromContext,
45
+ interrupted,
46
+ prepareIdle,
47
+ reducedMotionSettingWith,
48
+ reducedMotionWith,
49
+ reported,
50
+ serverContext,
51
+ type WardicContextValue,
52
+ type WardicEnv,
53
+ type WardicRuntime,
54
+ type WardicServices,
55
+ whenIdle,
56
+ } from "./runtime.ts"
57
+ import { isHydrating, isServer } from "./server.ts"
58
+ import { useWardicConfig } from "./wardic-config.tsx"
59
+ import { skipAnimationsOf } from "./wardic-config-value.ts"
60
+ import { instantLayoutOf, type InstantTransition, instantTransitionOf, resetOf } from "./instant.ts"
61
+ import type { WardicScaleCorrector } from "./config.ts"
62
+
63
+ /**
64
+ * Context carrying the single runtime + flush gate down the tree. Defaults to
65
+ * `undefined` so {@link useWardicRuntime} / {@link useWardicGate} can detect
66
+ * (and clearly reject) reads made outside a `WardicProvider`.
67
+ */
68
+ const WardicContext = createContext<WardicContextValue | undefined>(undefined)
69
+
70
+ /**
71
+ * Puts Wardic in your app: every Wardic element sits under one. Give it the Environment, `DomLive` in
72
+ * a browser, and the Features your elements use.
73
+ *
74
+ * @example
75
+ * <WardicProvider env={DomLive} features={[domAnimation]}>
76
+ * <App />
77
+ * </WardicProvider>
78
+ * @see https://wardic.dev/reference/solid/provider/wardic-provider
79
+ */
80
+ // One Effect runtime per provider (ADR-0006), made once from `env` and disposed on unmount
81
+ // (fire-and-forget). Built on first need (#51, ADR-0021 Amendment (#51)): the runtime on its first run,
82
+ // the gate, projection and reduced-motion inputs the first time an element or hook under it reads one,
83
+ // so a provider with nothing under it builds nothing, and a failing `env` fails at the first element.
84
+ // Client-only (ADR-0021): a server render holds an unbuilt runtime, an inert gate and no projection,
85
+ // and running anything on it fails with DomLive's client-only error; run Effects after mount (Solid 1:
86
+ // onMount or createEffect). reducedMotion: ADR-0029, read as each animation starts, a WardicConfig's
87
+ // over it (#434). appear: ADR-0044, read on the server once; "explain" (#585). scaleCorrectors: #443,
88
+ // this provider's alone, one keyed borderRadius/boxShadow replacing the built-in; ignored on a server.
89
+ // features/strict: #511, ADR-0067, read once.
90
+ export function WardicProvider(props: {
91
+ /** The Environment Wardic runs in: `DomLive` in a browser, from `@wardic/dom`. Read once. */
92
+ readonly env: WardicEnv
93
+ /**
94
+ * How animations honour the visitor's reduced-motion setting: `"user"` follows it (the default),
95
+ * `"always"` reduces motion, `"never"` doesn't. Under it, what moves or resizes jumps to where it's
96
+ * going, and the rest, such as opacity, still animates. A `WardicConfig` sets it for a subtree.
97
+ */
98
+ readonly reducedMotion?: ReducedMotion.Config | undefined
99
+ /**
100
+ * On a server-rendered page, entrances play from the first paint, before the JavaScript has loaded
101
+ * (the default, `true`). `false` makes them wait for the JavaScript; `"explain"` plays them, and
102
+ * logs on the server why each element that can't play waits.
103
+ */
104
+ readonly appear?: boolean | "explain" | undefined
105
+ /**
106
+ * The nonce your page's Content Security Policy gives inline styles: the `<style>` a server render
107
+ * writes for its entrances carries it, a streamed chunk's too. Motion's `MotionConfig` `nonce`.
108
+ */
109
+ readonly nonce?: string | undefined
110
+ /**
111
+ * Your own corrections of a value a layout animation's scale would distort, by the key each corrects:
112
+ * Motion's `addScaleCorrector`, given here. Read once.
113
+ */
114
+ readonly scaleCorrectors?: Readonly<Record<string, WardicScaleCorrector>> | undefined
115
+ /**
116
+ * The Features every `w.*` element under it has: at once (`[domAnimation]`), or loaded with a
117
+ * function (`() => import("./features").then((m) => m.drag)`). Read once.
118
+ */
119
+ readonly features?: FeaturesProp | undefined
120
+ /** In development, a `wardic.*` element under it throws, so every element ships only its Features. */
121
+ readonly strict?: boolean | undefined
122
+ readonly children?: JSX.Element
123
+ }): JSX.Element {
124
+ if (isServer) {
125
+ // A server render builds no runtime (ADR-0021, decisions 1 and 3), and the same JSX as the
126
+ // client, so the hydration keys match. Its runtime is unbuilt, but an Environment that builds
127
+ // on a server (TestLive) could be built by user code: disposed with the render, as on unmount.
128
+ // The render's Appear animations (#48, ADR-0044): each element takes a slot as it renders,
129
+ // and once the render is done the head's `<style>` gets every rule and timing (`useAssets`,
130
+ // injected before `</head>`). A render with no `</head>` drops it, and its elements keep their
131
+ // Starting style, as they would without it.
132
+ const appear = Bool.match(props.appear === false, {
133
+ onTrue: constUndefined,
134
+ onFalse: () => serverAppear(Option.getOrElse(Option.fromUndefinedOr(props.reducedMotion), () => "user" as const), explainerOf(props.appear), props.nonce),
135
+ })
136
+ if (Predicate.isNotUndefined(appear)) useAssets(() => appearStyle(appear))
137
+ const value = serverContext(props.env, appear, () => untrack(() => props.reducedMotion))
138
+ onCleanup(() => void value.features.dispose())
139
+ sections.set(value, sectionOf(value, ROOT, props))
140
+ return <WardicContext.Provider value={value}>{props.children}</WardicContext.Provider>
141
+ }
142
+
143
+ // A streamed page's late chunks bring their own Appear rules (#245): moved into the head before
144
+ // the chunks hydrate, those already here now (this provider hydrates before its subtree), and
145
+ // each later one as it lands, until the stream ends.
146
+ if (isHydrating()) Appear.adoptChunks(document)
147
+
148
+ // Made ONCE: props.env is read a single time at construction, and the runtime built over it
149
+ // runs a frame's Starting-style switches through Solid's `batch` (ADR-0034). The rest builds on
150
+ // first need (#51). Disposing the runtime closes its Scope, which ends the projection system,
151
+ // then the gate (#132); dispose() returns a Promise, fire-and-forget on unmount.
152
+ const value = clientContext(
153
+ props.env,
154
+ batch,
155
+ () => untrack(() => props.reducedMotion),
156
+ // Tracked, for `createReducedMotionConfig` (#584).
157
+ () => props.reducedMotion,
158
+ untrack(() => props.scaleCorrectors),
159
+ )
160
+ // Its Features end first, then the runtime they stand on (#511).
161
+ onCleanup(() => void value.features.dispose())
162
+ const section = sectionOf(value, ROOT, props)
163
+ sections.set(value, section)
164
+ // Built at the browser's idle time, after this render (#535): what a first element would build, so an
165
+ // element mounted after pays none of it. One mounted before then builds it itself, as before. Asked
166
+ // for here, with no computation of the provider's own, so a hydration's owners are the server's.
167
+ onCleanup(whenIdle(() => prepareIdle(value, section)))
168
+ return <WardicContext.Provider value={value}>{props.children}</WardicContext.Provider>
169
+ }
170
+
171
+ /**
172
+ * Each provider's own section (#511): its Features, the first section of its tree. Kept beside its
173
+ * context value, not in a context of its own, so a provider renders one Provider, as before.
174
+ */
175
+ // Module state (#460, Q7): each provider's root section, held weakly by its context value.
176
+ const sections = new WeakMap<WardicContextValue, FeatureSection>()
177
+
178
+ /**
179
+ * The section an element is in (#511): the nearest `LazyWardic`'s, else its provider's own; outside a
180
+ * provider, none. Internal.
181
+ */
182
+ export function useFeatureSection(): FeatureSection {
183
+ return UndefinedOr.match(useLazySection(), {
184
+ onDefined: identity,
185
+ onUndefined: () => UndefinedOr.match(useContext(WardicContext), { onUndefined: () => ROOT, onDefined: (value) => UndefinedOr.getOrThrow(sections.get(value)) }),
186
+ })
187
+ }
188
+
189
+ /**
190
+ * The section `props` make under `parent` (#511), on `value`'s registry: a failed lazy load reported
191
+ * as a fiber's failure is (ADR-0030, decision 4).
192
+ */
193
+ const sectionOf = (
194
+ value: WardicContextValue,
195
+ parent: FeatureSection,
196
+ props: { readonly features?: FeaturesProp | undefined; readonly strict?: boolean | undefined },
197
+ ): FeatureSection =>
198
+ sectionUnder(parent, value.features, untrack(() => props.features), untrack(() => props.strict) === true, (cause) => {
199
+ value.runtime.runFork(Report.failure("wardic.features: a lazy load of Features failed", cause))
200
+ })
201
+
202
+ /**
203
+ * Gives the `w.*` elements in its section more Features, beside their provider's: at once
204
+ * (`features={[drag]}`), or loaded with a function, which runs as the section renders, so a page loads
205
+ * a Feature only when it needs it. Motion's `LazyMotion`.
206
+ *
207
+ * @example
208
+ * <LazyWardic features={() => import("./drag-feature").then((m) => m.drag)}>
209
+ * <w.div drag />
210
+ * </LazyWardic>
211
+ * @see https://wardic.dev/reference/solid/provider/lazy-wardic
212
+ */
213
+ // #511, ADR-0067; Motion's LazyMotion. Given at once, built the first time an element below asks;
214
+ // loaded lazily, the load starts as it renders, on the client, its elements animating values at once and
215
+ // each Feature taking effect as it arrives, nothing replayed: a gesture or a drag (#551) starts then, and
216
+ // a layout node is made then (#582). A failed load is reported once. A server render loads nothing.
217
+ export function LazyWardic(props: {
218
+ /** Its Features: one, a list, or a function that loads them. Read once. */
219
+ readonly features: FeaturesProp
220
+ /** In development, a `wardic.*` element under it throws. Read once. */
221
+ readonly strict?: boolean | undefined
222
+ readonly children?: JSX.Element
223
+ }): JSX.Element {
224
+ const value = useContext(WardicContext)
225
+ const section = fromContext(value, "LazyWardic", (v) => sectionOf(v, useFeatureSection(), props))
226
+ return <FeatureSectionProvider value={section}>{props.children}</FeatureSectionProvider>
227
+ }
228
+
229
+ /**
230
+ * The Features an element has (#511): its section's, and those it brings, a Complete element's every
231
+ * one (`brings`), built at once. A Complete element under a `strict` section is an error in
232
+ * development. Internal.
233
+ */
234
+ export function useElementFeatures(brings: ReadonlyArray<Feature> | undefined, complete: boolean): FeatureSection {
235
+ const section = useFeatureSection()
236
+ if (DEV && complete && section.strict) throw new Error(strictMessage("wardic.*, wardic.create, createWard, use:wardic", "w.*, w.create, w.createWard, use:w"))
237
+ if (Predicate.isUndefined(brings)) return section
238
+ const registry = useFeatureRegistry()
239
+ // A Complete element has every Feature, whatever its section has: one section per provider.
240
+ if (complete) return registry.section(brings)
241
+ const own = registry.build(brings)
242
+ return { services: () => Context.merge(section.services(), own), pending: section.pending, strict: section.strict }
243
+ }
244
+
245
+ /** The provider's Features (#511). Internal. */
246
+ export function useFeatureRegistry(): FeatureRegistry {
247
+ return fromContext(useContext(WardicContext), "useFeatureRegistry", (value) => value.features)
248
+ }
249
+
250
+ /**
251
+ * The services of `features`, which a hook or component brings (#511, decision 12) whatever its
252
+ * section has: built the first time they're read, on the client. `features` is a list the caller keeps,
253
+ * so its provider joins it once. Internal.
254
+ */
255
+ export function useBrought(features: ReadonlyArray<Feature>): () => Context.Context<never> {
256
+ const registry = useFeatureRegistry()
257
+ return () => registry.build(features)
258
+ }
259
+
260
+ /**
261
+ * A server render's Appear animations (#48, ADR-0044), or `undefined`: on the client, outside a
262
+ * provider, or with `appear={false}`. Internal.
263
+ */
264
+ export function useWardicAppear(): ServerAppear | undefined {
265
+ return UndefinedOr.match(useContext(WardicContext), { onUndefined: constUndefined, onDefined: (value) => value.appear })
266
+ }
267
+
268
+ /** The head's `<style>` for a render's Appear animations, or nothing when no element plays one. */
269
+ const appearStyle = (appear: ServerAppear): JSX.Element => {
270
+ const css = appear.css()
271
+ return Bool.match(css === "", { onTrue: () => undefined, onFalse: () => <style data-wardic-appear nonce={appear.nonce} innerHTML={css} /> })
272
+ }
273
+
274
+ /**
275
+ * The nearest `WardicProvider`'s Effect runtime, for running Effect code on Wardic's services: its
276
+ * clock, frame loop, renderer, probe and the rest. Throws outside a provider. During a server render
277
+ * it isn't built: hold it, but run on it only once the element has mounted.
278
+ *
279
+ * @example
280
+ * const runtime = useWardicRuntime()
281
+ * onMount(() => runtime.runFork(Effect.log("mounted")))
282
+ * @see https://wardic.dev/reference/solid/advanced/runtime
283
+ */
284
+ // ADR-0021: a server builds no runtime, and DomLive refuses with its client-only error.
285
+ export function useWardicRuntime(): WardicRuntime {
286
+ return fromContext(useContext(WardicContext), "useWardicRuntime", (value) => value.runtime)
287
+ }
288
+
289
+ /**
290
+ * The nearest `WardicProvider`'s flush gate: what a binding registers its elements with, and writes
291
+ * their values into, committed once a frame. For building an element of your own on Wardic's
292
+ * rendering. Throws outside a provider; during a server render it's an inert gate that does nothing.
293
+ *
294
+ * @see https://wardic.dev/reference/solid/advanced/flush-gate
295
+ */
296
+ // ADR-0006; inert on a server (ADR-0021, decision 9).
297
+ export function useWardicGate(): FlushGate.Shape {
298
+ return fromContext(useContext(WardicContext), "useWardicGate", (value) => value.gate)
299
+ }
300
+
301
+ /**
302
+ * Reads the Environment's Renderer (ADR-0003), read once by the provider: what an element and a
303
+ * presence project and commit through. Throws a clear, named error outside a `WardicProvider`.
304
+ * Internal: not exported from the package.
305
+ */
306
+ export function useWardicRenderer(): Renderer.Renderer["Service"] {
307
+ return fromContext(useContext(WardicContext), "useWardicRenderer", (value) => value.renderer)
308
+ }
309
+
310
+ /**
311
+ * Reads the Environment's Positional keys (ADR-0036): which keys reduced motion Snaps. Throws a
312
+ * clear, named error outside a `WardicProvider`; during a server render, the transforms only.
313
+ * Internal: not exported from the package.
314
+ */
315
+ export function useWardicPositionalKeys(): ReducedMotion.PositionalKeys["Service"] {
316
+ return fromContext(useContext(WardicContext), "useWardicPositionalKeys", (value) => value.positionalKeys)
317
+ }
318
+
319
+ /**
320
+ * Reads the Environment's Default transition (ADR-0051): what a key with no transition of its own
321
+ * runs on. Throws a clear, named error outside a `WardicProvider`. Internal: not exported from the
322
+ * package.
323
+ */
324
+ export function useWardicDefaultTransition(): DefaultTransition.DefaultTransition["Service"] {
325
+ return fromContext(useContext(WardicContext), "useWardicDefaultTransition", (value) => value.defaultTransition)
326
+ }
327
+
328
+ /**
329
+ * Reads whether reduced motion applies now (ADR-0029): the nearest `WardicConfig`'s `reducedMotion`
330
+ * (#434), else the provider's, and the user's preference. Call the accessor when an animation starts. Throws a clear, named error
331
+ * outside a `WardicProvider`; during a server render it's always `false`. Internal: not exported
332
+ * from the package.
333
+ */
334
+ export function useWardicReducedMotion(): () => boolean {
335
+ const config = useWardicConfig()
336
+ return fromContext(useContext(WardicContext), "useWardicReducedMotion", (value) => reducedMotionWith(value, config))
337
+ }
338
+
339
+ /**
340
+ * Whether the elements here skip their animations now (#468): the nearest `WardicConfig`'s
341
+ * `skipAnimations`, or the provider's Instant change while one runs (#443). Read when each starts.
342
+ * Internal.
343
+ */
344
+ export function useWardicSkipAnimations(): () => boolean {
345
+ const config = skipAnimationsOf(useWardicConfig())
346
+ const value = useContext(WardicContext)
347
+ if (Predicate.isUndefined(value)) return config
348
+ const instant = value.instant
349
+ return () => Bool.or(instant.active(), config())
350
+ }
351
+
352
+ /**
353
+ * Makes a layout change land at once: `start(fn)` runs `fn`, and every layout element goes straight
354
+ * to its new box, a running layout animation ending there too. The change's other animations run as
355
+ * ever. `start()` with no function does the same for a change made later in the task. Motion's
356
+ * `useInstantLayoutTransition`. On a server it runs `fn`.
357
+ *
358
+ * @example
359
+ * const start = createInstantLayoutTransition()
360
+ * start(() => setOrder(sorted()))
361
+ * @see https://wardic.dev/reference/solid/layout/create-instant-layout-transition
362
+ */
363
+ // #443: an Instant change of the layout, the projection system's `instant`.
364
+ export function createInstantLayoutTransition(): (fn?: () => void) => void {
365
+ return fromContext(useContext(WardicContext), "createInstantLayoutTransition", (value) => instantLayoutOf(() => value.projection))
366
+ }
367
+
368
+ /**
369
+ * Makes a change land at once, with no animation: `start(fn)` runs `fn`, and its layout change and
370
+ * every animation that starts until two frames after the call land where they're going. A later call
371
+ * extends it, and `start.end()` ends it now. For a change that shouldn't animate: a reset, a jump to
372
+ * a route. Motion's `useInstantTransition`.
373
+ *
374
+ * @example
375
+ * const start = createInstantTransition()
376
+ * <button onClick={() => start(() => setOpen(all))}>Open all</button>
377
+ * @see https://wardic.dev/reference/solid/layout/create-instant-transition
378
+ */
379
+ // #443: an Instant change, each animation it covers a Skipped animation (#468); `start.end()` is
380
+ // Motion's `disableInstantTransitions`.
381
+ export function createInstantTransition(): InstantTransition {
382
+ return fromContext(useContext(WardicContext), "createInstantTransition", (value) => instantTransitionOf(() => value.projection, () => value.instant))
383
+ }
384
+
385
+ /**
386
+ * Starts layout animations afresh: `reset()` ends every running layout animation where the layout puts
387
+ * its element, lets go of every leaving `layoutId` element, and has the next measure take every box as
388
+ * it is, animating none. For a change that replaces the page wholesale. Motion's `useResetProjection`.
389
+ * On a server it does nothing.
390
+ *
391
+ * @example
392
+ * const reset = createResetProjection()
393
+ * const openWorkspace = (id: string) => {
394
+ * reset()
395
+ * setWorkspace(id)
396
+ * }
397
+ * @see https://wardic.dev/reference/solid/layout/create-reset-projection
398
+ */
399
+ // #443: a Projection reset, the projection system's `reset`: leavers and Switch seeds dropped.
400
+ export function createResetProjection(): () => void {
401
+ return fromContext(useContext(WardicContext), "createResetProjection", (value) => resetOf(() => value.projection))
402
+ }
403
+
404
+ /**
405
+ * The reduced-motion setting that applies here (#443): the nearest `WardicConfig`'s `reducedMotion`,
406
+ * else the provider's, else `"user"`, each tracked (#584). Internal.
407
+ */
408
+ export function useWardicReducedMotionSetting(): () => ReducedMotion.Config {
409
+ const config = useWardicConfig()
410
+ return fromContext(useContext(WardicContext), "useWardicReducedMotionSetting", (value) => reducedMotionSettingWith(value, config))
411
+ }
412
+
413
+ /**
414
+ * `read` of the nearest provider's context value, named `name` in the error outside one: for a hook in
415
+ * a module of its own (#548), such as `useWardicProjection`, which brings `layout`.
416
+ */
417
+ export const fromWardicContext = <A,>(name: string, read: (value: WardicContextValue) => A): A => fromContext(useContext(WardicContext), name, read)
418
+
419
+ /**
420
+ * The provider's projection system once its `layout` Feature is built (#511), read as it's needed;
421
+ * `undefined` until then, and during a server render. For what brings no `layout` and works with the
422
+ * layout elements that are there: an element registering its values, a presence. Internal.
423
+ */
424
+ export function useBuiltProjection(): () => ProjectionSystem.Shape | undefined {
425
+ return fromContext(useContext(WardicContext), "useBuiltProjection", (value) => () => value.projection)
426
+ }
427
+
428
+ /**
429
+ * Animates a layout change you make: `animateLayout(fn)` runs `fn`, and every layout element animates
430
+ * from where it was at the call to where the change puts it. For a change nothing else sees, such as a
431
+ * keyed `<For>` reordered or a plain element's class changed. `fn` runs at once, and `animateLayout`
432
+ * returns what it returns; `{ onSettled }` is called once the animations it started have ended. Only
433
+ * what `fn` changes synchronously animates. On a server it just runs `fn`. Throws outside a
434
+ * `WardicProvider`.
435
+ *
436
+ * @example
437
+ * const animateLayout = useAnimateLayout()
438
+ * const shuffle = () => animateLayout(() => setItems(shuffled(items())))
439
+ * @see https://wardic.dev/reference/solid/layout/use-animate-layout
440
+ */
441
+ // #4, ADR-0038: a Declared layout change, from Measurements taken at the call; also for a change made
442
+ // after an untriggered one left a Measurement out of date. Calls in one task share the first call's
443
+ // Measurements. A promise `fn` returns isn't awaited, and logs a warning.
444
+ export function useAnimateLayout(): AnimateLayout {
445
+ return animateLayoutOf(useContext(WardicContext))
446
+ }
447
+
448
+ /**
449
+ * Runs `effect` on `runtime`, and interrupts it as the current owner is cleaned up, its Scope closed
450
+ * with it. Returns its fiber. A failure is logged and reported to the Environment's error reporters;
451
+ * an interruption is neither. On a server it starts nothing, and while hydrating it starts at mount.
452
+ * Call it within a Solid owner.
453
+ *
454
+ * @example
455
+ * runScoped(runtime, Stream.runForEach(ticks, (t) => Effect.sync(() => setTick(t))))
456
+ * @see https://wardic.dev/reference/solid/advanced/runtime
457
+ */
458
+ // ADR-0006: the per-element fiber lifecycle; a failure is `wardic.runScoped: a fiber failed`
459
+ // (ADR-0030, decision 4); the Hydration hold (ADR-0021 decisions 8 and 9).
460
+ export function runScoped<A, E>(
461
+ runtime: WardicRuntime,
462
+ effect: Effect.Effect<A, E, WardicServices>,
463
+ ): Fiber.Fiber<A, E> {
464
+ // A server render starts nothing (ADR-0021, decision 9): a fiber already ended by
465
+ // interruption, so joining it never hangs, and the runtime stays unbuilt.
466
+ if (isServer) return interrupted<A, E>()
467
+ const run = reported(effect)
468
+ if (isHydrating()) {
469
+ // Hydration hold: a real fiber now, whose effect starts at mount (once the latch
470
+ // opens), so nothing it writes can change what the hydration render shows.
471
+ const latch = Latch.makeUnsafe(false)
472
+ const held = runtime.runFork(Effect.andThen(latch.await, run))
473
+ onMount(() => {
474
+ latch.openUnsafe()
475
+ })
476
+ onCleanup(() => held.interruptUnsafe())
477
+ return held
478
+ }
479
+ const fiber = runtime.runFork(run)
480
+ // Interrupted where the cleanup runs, nothing waiting on its end, as `runCallback`'s interruptor
481
+ // does: a forked `Fiber.interrupt` was a fiber of its own for each (#618, L2).
482
+ onCleanup(() => fiber.interruptUnsafe())
483
+ return fiber
484
+ }
485
+
486
+ /**
487
+ * Runs a gesture watch (#318, ADR-0055) in a Scope of its own, closed when the current owner is
488
+ * disposed: subscribed at once, with no fiber. A throw from its handler is logged at Error and
489
+ * reported to the Environment's `ErrorReporter`s, as a fiber's failure is (ADR-0030, decision 4),
490
+ * and the watch goes on. A server render starts nothing; while hydrating it starts at mount (the
491
+ * Hydration hold, ADR-0021 decisions 8 and 9). Must be called within a Solid owner.
492
+ */
493
+ export function runWatch(
494
+ runtime: WardicRuntime,
495
+ watch: (onDefect: InputFeed.OnDefect) => Effect.Effect<void, never, Scope.Scope | WardicServices>,
496
+ ): void {
497
+ if (isServer) return
498
+ const scope = OwnerScope.open(runtime)
499
+ // Closed with the owner, set before the watch starts, so one that throws as it subscribes leaves no
500
+ // listener behind (#618, decision 5).
501
+ onCleanup(() => OwnerScope.close(runtime, scope, "wardic.runWatch: a finalizer failed"))
502
+ const onDefect = (cause: Cause.Cause<never>): void => {
503
+ runtime.runFork(Report.failure("wardic.runWatch: a gesture handler failed", cause))
504
+ }
505
+ const start = (): void => {
506
+ runtime.runSync(watch(onDefect).pipe(Scope.provide(scope)))
507
+ }
508
+ Bool.match(isHydrating(), { onTrue: () => onMount(start), onFalse: start })
509
+ }
510
+
511
+ /**
512
+ * Runs the Effect `effectThunk` makes on the provider's runtime, as `runScoped` does, until the
513
+ * current owner is cleaned up. The thunk is called once; not on a server. Returns its fiber.
514
+ *
515
+ * @example
516
+ * useWardicFiber(() => Stream.runForEach(ticks, (t) => Effect.sync(() => setTick(t))))
517
+ * @see https://wardic.dev/reference/solid/advanced/runtime
518
+ */
519
+ export function useWardicFiber<A, E>(
520
+ effectThunk: () => Effect.Effect<A, E, WardicServices>,
521
+ ): Fiber.Fiber<A, E> {
522
+ const runtime = useWardicRuntime()
523
+ // On a server the thunk isn't evaluated: it may read services (ADR-0021, decision 9).
524
+ if (isServer) return interrupted<A, E>()
525
+ return runScoped(runtime, effectThunk())
526
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * The few reactive primitives the Solid-free modules take from a binding's Solid (#209): the Solid 1
3
+ * binding's (`./solid-reactivity.ts`) or the Solid 2 one's (`./unstable/v2/solid-reactivity.ts`).
4
+ * A module that takes one never imports Solid, so both bindings run the same code.
5
+ *
6
+ * @module
7
+ */
8
+
9
+ /** A value read through a function: a signal, a memo, a getter. */
10
+ export type Accessor<A> = () => A
11
+
12
+ /** A change notice: the computation that calls `track` re-runs on each `notify`. */
13
+ export interface Trigger {
14
+ readonly track: () => void
15
+ readonly notify: () => void
16
+ }
17
+
18
+ /** A binding's reactive primitives, as the Solid-free modules use them. */
19
+ export interface Reactivity {
20
+ /** Runs `fn` without tracking what it reads. */
21
+ readonly untrack: <A>(fn: () => A) => A
22
+ /** A {@link Trigger}, made under the current owner. Its `notify` may be called from anywhere. */
23
+ readonly trigger: () => Trigger
24
+ /**
25
+ * Calls `onChange` with each later value of `accessor`, not its first, until the returned stop.
26
+ * In a root of its own, which no owner disposes.
27
+ */
28
+ readonly watch: <A>(accessor: Accessor<A>, onChange: (value: A) => void) => () => void
29
+ }
@@ -0,0 +1,53 @@
1
+ /**
2
+ * A Reorder item's input (ADR-0037), Solid-free (#379): its keys, blurs and presses told to its driver
3
+ * by watches while a Scope is open, each inside its event, with no fiber at rest. Both bindings run it
4
+ * in the item's watch Scope (ADR-0055, *Amendment (#379)*).
5
+ *
6
+ * @module
7
+ */
8
+ import * as InputFeed from "@wardic/core/InputFeed"
9
+ import * as InputSource from "@wardic/core/InputSource"
10
+ import type * as ReorderController from "@wardic/dom/ReorderController"
11
+ import * as Report from "@wardic/dom/Report"
12
+ import * as Bool from "effect/Boolean"
13
+ import * as Effect from "effect/Effect"
14
+ import type * as Scope from "effect/Scope"
15
+
16
+ /** A Primary pointer's down: a press the driver hears. */
17
+ const isPress = (event: InputSource.PointerLikeEvent): boolean => Bool.and(event.type === "down", InputSource.isPrimaryPointer(event))
18
+
19
+ /**
20
+ * Watch an item's keys, blurs and presses for its driver (ADR-0037, #379) while the Scope is open: its
21
+ * keys inside their dispatch, so the reorder's `handle()` (the page's `preventDefault`) counts. A blur
22
+ * is judged after this task's own work, one scheduler hop on (#318): a reorder can blur the node it
23
+ * moves and puts focus back after (the driver's `keepFocus`). So `fork` runs that hop on the provider
24
+ * runtime, only when a blur happens, and a blur whose judging fails is reported. A throw from the
25
+ * driver inside an event goes to `onDefect`.
26
+ */
27
+ export const watchItemInput = (
28
+ el: HTMLElement,
29
+ driver: ReorderController.ItemDriver,
30
+ fork: (effect: Effect.Effect<void>) => void,
31
+ onDefect: InputFeed.OnDefect,
32
+ ): Effect.Effect<void, never, Scope.Scope | InputSource.InputSource> => {
33
+ const judgeBlur = Effect.andThen(Effect.yieldNow, Effect.sync(() => driver.onBlur())).pipe(
34
+ Effect.catchCause((cause) => Report.failure("wardic.reorder: judging an item's blur failed", cause)),
35
+ )
36
+ return Effect.gen(function* () {
37
+ const input = yield* InputSource.InputSource
38
+ yield* InputFeed.watch(input.keyboard(el), { on: (event) => driver.onKey(event), onDefect })
39
+ yield* InputFeed.watch(input.focus(el), {
40
+ on: (event) => {
41
+ // The item's own blur: one inside it (#439) leaves it focused.
42
+ if (Bool.and(event.type === "blur", event.fromTarget !== false)) fork(judgeBlur)
43
+ },
44
+ onDefect,
45
+ })
46
+ yield* InputFeed.watch(input.pointer(el), {
47
+ on: (event) => {
48
+ if (isPress(event)) driver.onPress()
49
+ },
50
+ onDefect,
51
+ })
52
+ })
53
+ }