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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,235 @@
1
+ import * as LiveValue from "@wardic/core/LiveValue";
2
+ import * as Arr from "effect/Array";
3
+ import * as Bool from "effect/Boolean";
4
+ import * as Effect from "effect/Effect";
5
+ import * as Option from "effect/Option";
6
+ import * as Predicate from "effect/Predicate";
7
+ import { Atom, AtomRegistry } from "effect/reactivity";
8
+ import * as Rec from "effect/Record";
9
+ import * as Scope from "effect/Scope";
10
+ import * as UndefinedOr from "effect/UndefinedOr";
11
+ import { isServer } from "@solidjs/web";
12
+ import { createEffect, createMemo, createSignal, onCleanup, untrack } from "solid-js";
13
+ import { atomOf, followAccessorOf, followOptionsOf, numberOf, readLive, serverFollowOf, serverRegistryOf, unitOf, willChangeOf, withUnit, } from "../../live-style.js";
14
+ import { eachFrameOf } from "../../animation-frame.js";
15
+ import * as OwnerScope from "../../owner-scope.js";
16
+ import { withServerInterpolators } from "../../server-interpolators.js";
17
+ import { followAtom } from "./bridge.js";
18
+ import { CLIENT_ONLY, CLIENT_ONLY_DEFERRED, onSettledClientOnly } from "./solid-reactivity.js";
19
+ import { useWardicRuntime, useWardicSkipAnimations } from "./provider.jsx";
20
+ /** A Live value read now on a server: an Atom through a server's own registry, an accessor called. */
21
+ const readOnServer = (source) => readLive(source, serverRegistryOf, untrack);
22
+ /** An accessor as an Atom, set at each of its changes (at Solid's flush), held in `registry` until its owner's disposal. */
23
+ const mirrorOf = (accessor, registry) => {
24
+ const atom = Atom.make(untrack(accessor));
25
+ onCleanup(registry.mount(atom));
26
+ createEffect(accessor, (value) => {
27
+ registry.set(atom, value);
28
+ }, CLIENT_ONLY_DEFERRED);
29
+ return atom;
30
+ };
31
+ /** `source`'s Atom: its own, the one it carries, or, for a plain accessor, a mirror of it. */
32
+ const sourceAtomOf = (source, registry) => UndefinedOr.match(atomOf(source), {
33
+ onUndefined: () => mirrorOf(source, registry),
34
+ onDefined: (atom) => atom,
35
+ });
36
+ /** What a helper's Scope reports when one of its finalizers fails as its owner goes. */
37
+ const CLOSE_FAILED = "wardic.liveValue: a finalizer failed";
38
+ /** A helper's Atom, made on the provider's runtime in a Scope its owner's disposal closes, as an accessor carrying it. */
39
+ const liveOf = (runtime, live) => {
40
+ const scope = OwnerScope.open(runtime);
41
+ onCleanup(() => OwnerScope.close(runtime, scope, CLOSE_FAILED));
42
+ const out = runtime.runSync(live.pipe(Scope.provide(scope)));
43
+ return followAtom(runtime.runSync(AtomRegistry.AtomRegistry), out);
44
+ };
45
+ export function createTransform(source, fnOrInput, output, options) {
46
+ const fn = Bool.match(Predicate.isFunction(fnOrInput), {
47
+ onTrue: () => fnOrInput,
48
+ onFalse: () => interpolatorOf(fnOrInput, output, options),
49
+ });
50
+ if (isServer)
51
+ return () => fn(readOnServer(source));
52
+ const atom = atomOf(source);
53
+ // A plain accessor: mapped in a memo, as Solid maps it.
54
+ if (Predicate.isUndefined(atom))
55
+ return createMemo(() => fn(source()), CLIENT_ONLY);
56
+ // On an Atom: derived on it, so it's set where its source is. What `fn` reads of Solid besides its
57
+ // source is tracked here, and a change of it re-derives the Atom.
58
+ const registry = useWardicRuntime().runSync(AtomRegistry.AtomRegistry);
59
+ const derived = Atom.make((get) => untrack(() => fn(get(atom))));
60
+ // A change of what `fn` reads of Solid derives it again: the registry's own refresh, where a counter
61
+ // Atom it read was bumped (#618, L2).
62
+ createEffect(() => fn(registry.get(atom)), () => {
63
+ registry.refresh(derived);
64
+ }, CLIENT_ONLY_DEFERRED);
65
+ return followAtom(registry, derived);
66
+ }
67
+ /**
68
+ * The ranges' mapping, resolved once: through the provider's `InterpolatorRegistry` on a client, the
69
+ * DOM's on a server, which builds no runtime (ADR-0021).
70
+ */
71
+ const interpolatorOf = (input, output, options) => {
72
+ // Typed at `createTransform`'s overloads: numbers and strings through the registry, any type through a
73
+ // `mixer` (#440). Here one mapping serves both.
74
+ const mapping = LiveValue.interpolate(input, output, options);
75
+ if (isServer)
76
+ return Effect.runSync(withServerInterpolators(mapping));
77
+ return useWardicRuntime().runSync(mapping);
78
+ };
79
+ export function createFollowValue(source, options = {}) {
80
+ if (isServer)
81
+ return serverFollowOf(() => readOnServer(source));
82
+ const runtime = useWardicRuntime();
83
+ // Its nearest WardicConfig's `skipAnimations` (#468): each change lands at once while it's on.
84
+ const skipped = useWardicSkipAnimations();
85
+ const transition = followOptionsOf(options);
86
+ const registry = runtime.runSync(AtomRegistry.AtomRegistry);
87
+ const atom = sourceAtomOf(source, registry);
88
+ const initial = registry.get(atom);
89
+ // A string's accessor or a number's, as its source started.
90
+ return followAccessorOf(runtime, Bool.match(Predicate.isString(initial), {
91
+ onFalse: () => liveOf(runtime, LiveValue.follow(atom, transition, skipped)),
92
+ // A unit string: its number followed, shown with the unit it started with (Motion's).
93
+ onTrue: () => liveOf(runtime, Effect.map(LiveValue.follow(Atom.map(atom, numberOf), transition, skipped), withUnit(unitOf(initial)))),
94
+ }));
95
+ }
96
+ export function createSpring(source, options = {}) {
97
+ return createFollowValue(source, { ...options, type: "spring" });
98
+ }
99
+ /**
100
+ * How fast `source` is changing, in its units a second: 0 to begin with, then each frame while it
101
+ * moves, and 0 once it stops. A velocity is a value too: `createVelocity(createVelocity(x))` is its
102
+ * acceleration. Motion's `useVelocity`.
103
+ *
104
+ * @example
105
+ * const { scrollY } = createScroll()
106
+ * const skewY = createTransform(createVelocity(scrollY), [-1000, 1000], [-8, 8])
107
+ * @see https://wardic.dev/reference/solid/live-values/create-velocity
108
+ */
109
+ export const createVelocity = (source) => {
110
+ if (isServer)
111
+ return SERVER_ZERO;
112
+ const runtime = useWardicRuntime();
113
+ return liveOf(runtime, LiveValue.velocity(sourceAtomOf(source, runtime.runSync(AtomRegistry.AtomRegistry))));
114
+ };
115
+ /**
116
+ * The milliseconds since it was made, wall time, set every frame while its owner lives: for something
117
+ * that turns forever. It keeps Wardic's frames running while it lives. Motion's `useTime`.
118
+ *
119
+ * @example
120
+ * const rotate = createTransform(createTime(), (ms) => (ms / 1000) * 90)
121
+ * <w.div style={{ rotate }} />
122
+ * @see https://wardic.dev/reference/solid/live-values/create-time
123
+ */
124
+ export const createTime = () => {
125
+ if (isServer)
126
+ return SERVER_ZERO;
127
+ return liveOf(useWardicRuntime(), LiveValue.time());
128
+ };
129
+ const SERVER_ZERO = () => 0;
130
+ /**
131
+ * A `will-change` for an element's `style`: `"auto"` until the element first animates a transform key,
132
+ * `opacity`, `clipPath`, `filter` or `backgroundColor`, or is dragged; then `"transform"`, for good, so
133
+ * the browser keeps it on a layer of its own from its first move on. A key already at its target and a
134
+ * layout animation don't count. `"auto"` on a server. Motion's `useWillChange`.
135
+ *
136
+ * @example
137
+ * const willChange = createWillChange()
138
+ * <w.div whileHover={{ scale: 1.1 }} style={{ "will-change": willChange }} />
139
+ * @see https://wardic.dev/reference/solid/live-values/create-will-change
140
+ */
141
+ // #443.
142
+ export const createWillChange = () => {
143
+ if (isServer)
144
+ return SERVER_AUTO;
145
+ const registry = useWardicRuntime().runSync(AtomRegistry.AtomRegistry);
146
+ return willChangeOf(registry, onCleanup, (atom) => followAtom(registry, atom));
147
+ };
148
+ const SERVER_AUTO = () => "auto";
149
+ /**
150
+ * Calls `callback` every frame while its owner lives, with the frame's `time` and `delta` in
151
+ * milliseconds: for what a frame draws itself, such as a canvas or a 3D scene. `time` is 0 at the
152
+ * first frame, then wall time since, a hidden tab's minutes included; `delta` is the frame's own, held
153
+ * to 1–40 ms, so the first frame back from a hidden tab steps 40 ms. A throw is logged, and the next
154
+ * frame calls it again. Nothing runs on a server. Motion's `useAnimationFrame`.
155
+ *
156
+ * @example
157
+ * createAnimationFrame((time) => {
158
+ * cube.style.transform = `rotateY(${time / 10}deg)`
159
+ * })
160
+ * @see https://wardic.dev/reference/solid/live-values/create-animation-frame
161
+ */
162
+ // #443. It keeps the Clock ticking every frame. A throw is logged at the first of a run of throws, as
163
+ // `onUpdate`'s.
164
+ export const createAnimationFrame = (callback) => {
165
+ if (isServer)
166
+ return;
167
+ const runtime = useWardicRuntime();
168
+ const scope = OwnerScope.open(runtime);
169
+ onCleanup(() => OwnerScope.close(runtime, scope, CLOSE_FAILED));
170
+ runtime.runSync(eachFrameOf(runtime, callback).pipe(Scope.provide(scope)));
171
+ };
172
+ const SCROLL_KEYS = ["scrollX", "scrollY", "scrollXProgress", "scrollYProgress"];
173
+ /** `createScroll`'s elements before the render has settled: none yet. */
174
+ const NOT_YET = { container: Option.none(), target: Option.none() };
175
+ const SERVER_SCROLL = { scrollX: SERVER_ZERO, scrollY: SERVER_ZERO, scrollXProgress: SERVER_ZERO, scrollYProgress: SERVER_ZERO };
176
+ /** An element source read now: `None` for an accessor whose ref hasn't arrived. */
177
+ const elementOf = (source) => Bool.match(Predicate.isFunction(source), {
178
+ onTrue: () => Option.fromUndefinedOr(source()),
179
+ onFalse: () => Option.some(source),
180
+ });
181
+ /**
182
+ * A scroll as values: `scrollX` and `scrollY`, how far it's scrolled, in pixels, and `scrollXProgress`
183
+ * and `scrollYProgress`, from 0 to 1 through its range. The page's, or a `container`'s. With a
184
+ * `target`, the progress is the target's way through, between two `offset`s, on `axis`. Each is set in
185
+ * the scroll's own event, so a value derived from one paints in the frame that shows the scroll. A
186
+ * `container` or `target` given as an accessor of a ref reads 0s until the ref is there. 0s on a
187
+ * server. Motion's `useScroll`.
188
+ *
189
+ * @example
190
+ * let box!: HTMLDivElement
191
+ * const { scrollYProgress } = createScroll({ container: () => box })
192
+ * <div ref={box}>…</div>
193
+ * <w.div style={{ scaleX: scrollYProgress }} />
194
+ * @see https://wardic.dev/reference/solid/live-values/create-scroll
195
+ */
196
+ // #234. An accessor `container` or `target` is read in an effect, and a change of either follows the
197
+ // new one. Each value carries one Atom for its life.
198
+ export const createScroll = (options = {}) => {
199
+ if (isServer)
200
+ return SERVER_SCROLL;
201
+ const runtime = useWardicRuntime();
202
+ const registry = runtime.runSync(AtomRegistry.AtomRegistry);
203
+ // Its own four Atoms, set from the scroll of the elements there now.
204
+ const outs = Rec.fromIterableWith(SCROLL_KEYS, (key) => [key, Atom.make(0)]);
205
+ Arr.forEach(SCROLL_KEYS, (key) => onCleanup(registry.mount(outs[key])));
206
+ // Its elements are read once the render has settled: a ref given as `() => box` is set during the
207
+ // render, after this effect's first compute, and isn't a signal, so nothing would read it again.
208
+ const [settled, setSettled] = createSignal(false);
209
+ onSettledClientOnly(() => {
210
+ setSettled(true);
211
+ });
212
+ createEffect(() => Bool.match(settled(), {
213
+ onTrue: () => ({ container: elementOf(options.container), target: elementOf(options.target) }),
214
+ onFalse: () => NOT_YET,
215
+ }), ({ container, target }) => {
216
+ // A ref not there yet: the values hold until it is.
217
+ if (Bool.or(Option.isNone(container), Option.isNone(target)))
218
+ return undefined;
219
+ const scope = OwnerScope.open(runtime);
220
+ const values = runtime.runSync(LiveValue.scroll({
221
+ ...UndefinedOr.match(Option.getOrUndefined(container), { onUndefined: () => ({}), onDefined: (element) => ({ container: element }) }),
222
+ ...UndefinedOr.match(Option.getOrUndefined(target), { onUndefined: () => ({}), onDefined: (element) => ({ target: element }) }),
223
+ ...UndefinedOr.match(options.offset, { onUndefined: () => ({}), onDefined: (offset) => ({ offset }) }),
224
+ ...UndefinedOr.match(options.axis, { onUndefined: () => ({}), onDefined: (axis) => ({ axis }) }),
225
+ }).pipe(Scope.provide(scope)));
226
+ // Each derived Atom is read at once: it tracks the scroll only once it's been read.
227
+ const stops = Arr.map(SCROLL_KEYS, (key) => registry.subscribe(values[key], (v) => registry.set(outs[key], v), { immediate: true }));
228
+ return () => {
229
+ Arr.forEach(stops, (stop) => stop());
230
+ OwnerScope.close(runtime, scope, CLOSE_FAILED);
231
+ };
232
+ }, CLIENT_ONLY);
233
+ return Rec.map(outs, (atom) => followAtom(registry, atom));
234
+ };
235
+ //# sourceMappingURL=live-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-value.js","sourceRoot":"","sources":["../../../../src/unstable/v2/live-value.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { type Accessor } from "solid-js";
2
+ import type { PresenceEvents as ControllerEvents } from "../../presence-controller.ts";
3
+ /** What a presence handle's `next(name)` waits for. */
4
+ export interface PresenceEvents {
5
+ /** A child left, and its exit started. */
6
+ readonly exitStart: undefined;
7
+ /**
8
+ * Every exiting child has animated out and been removed (Motion's `onExitComplete`): not when the
9
+ * last one ended because a child came back mid-exit, nor when the presence itself went.
10
+ */
11
+ readonly exitComplete: undefined;
12
+ }
13
+ /** A presence handle's event names. */
14
+ export type PresenceEvent = keyof PresenceEvents;
15
+ /** An `<AnimatePresence>`'s exits, heard: see the module. */
16
+ export interface Presence {
17
+ /** Given to `<AnimatePresence ref>`: called with that presence's own handle, whose exits it hears from then on. */
18
+ (source: Presence): void;
19
+ /** Whether a child is exiting: `true` from an exit's start until no exiting child is left. */
20
+ readonly exiting: Accessor<boolean>;
21
+ /** A promise of the next `name` after the call. */
22
+ readonly next: <E extends PresenceEvent>(name: E) => Promise<PresenceEvents[E]>;
23
+ /** Every `name` from the call on, for `for await`; it ends when the handle's owner is disposed. */
24
+ readonly each: <E extends PresenceEvent>(name: E) => AsyncIterable<PresenceEvents[E]>;
25
+ /**
26
+ * Every `name`, as a memo for an effect: pending until the first, so the effect runs at each
27
+ * one, on any page. `createEffect(presence.when("exitComplete"), () => trigger.focus())`.
28
+ */
29
+ readonly when: <E extends PresenceEvent>(name: E) => Accessor<PresenceEvents[E]>;
30
+ }
31
+ /**
32
+ * A handle, under the current owner, and the events that drive it: what an `<AnimatePresence>`
33
+ * tells its controller's exits to, and what a handle given it hears through.
34
+ */
35
+ export declare const makePresenceHandle: () => {
36
+ readonly handle: Presence;
37
+ readonly events: ControllerEvents;
38
+ };
39
+ /**
40
+ * Hears an `<AnimatePresence>`'s exits, given to its `ref`: `exiting()` is whether a child is
41
+ * leaving, and `next("exitComplete")` resolves once every leaving child has gone. Solid 2's form of
42
+ * Motion's `onExitComplete`.
43
+ *
44
+ * @example
45
+ * const presence = createPresence()
46
+ * <AnimatePresence ref={presence}>…</AnimatePresence>
47
+ * await presence.next("exitComplete")
48
+ * @see https://wardic.dev/reference/solid/presence/create-presence
49
+ */
50
+ export declare const createPresence: () => Presence;
51
+ /** A server's `<AnimatePresence ref>`: handed the server's handle. Internal. */
52
+ export declare const serverPresenceHandle: () => Presence;
53
+ /** Whether `ref` was given. Internal. */
54
+ export declare const hasRef: (ref: ((presence: Presence) => void) | undefined) => ref is (presence: Presence) => void;
55
+ //# sourceMappingURL=presence-handle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presence-handle.d.ts","sourceRoot":"","sources":["../../../../src/unstable/v2/presence-handle.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAE,KAAK,QAAQ,EAA2B,MAAM,UAAU,CAAA;AACjE,OAAO,KAAK,EAAE,cAAc,IAAI,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAGtF,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAA;CACjC;AAED,uCAAuC;AACvC,MAAM,MAAM,aAAa,GAAG,MAAM,cAAc,CAAA;AAEhD,6DAA6D;AAC7D,MAAM,WAAW,QAAQ;IACvB,mHAAmH;IACnH,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAA;IACxB,8FAA8F;IAC9F,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;IACnC,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,aAAa,EAAE,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/E,mGAAmG;IACnG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,aAAa,EAAE,IAAI,EAAE,CAAC,KAAK,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;IACrF;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,aAAa,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;CACjF;AAYD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAO;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAA;CA8CnG,CAAA;AAED;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,cAAc,QAAO,QAGjC,CAAA;AAWD,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,QAAO,QAA2B,CAAA;AAEnE,yCAAyC;AACzC,eAAO,MAAM,MAAM,QAAS,CAAC,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC,GAAG,SAAS,KAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAiC,CAAA"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * A presence handle on Solid 2 (#257, ADR-0046): an `<AnimatePresence>`'s exits, heard where Solid 1
3
+ * has Motion's `onExitComplete`. A ward can't hand them over: it's disposed the moment its exit
4
+ * starts. The presence outlives its child, so the handle is the presence's.
5
+ *
6
+ * ```tsx
7
+ * const presence = createPresence()
8
+ * <AnimatePresence ref={presence}>…</AnimatePresence>
9
+ * <button disabled={presence.exiting()} onClick={async () => {
10
+ * setOpen(false)
11
+ * await presence.next("exitComplete")
12
+ * await api.save()
13
+ * }}>Close and save</button>
14
+ * ```
15
+ *
16
+ * - `exiting()`: whether a child is exiting, a plain reactive boolean.
17
+ * - `next("exitStart")`: a child left and its exit started. `next("exitComplete")`: every exiting
18
+ * child has animated out and been removed. An exit a re-entry interrupts doesn't complete: a
19
+ * waiting `next("exitComplete")` waits on for one that does. Both resolve with `undefined`.
20
+ * - `each(name)`: every one, for `for await` (`waiters.ts`).
21
+ * - `when(name)`: every one, as a memo for an effect (#355).
22
+ * - `createPresence()`'s owner disposed: waiting calls reject with an `AbortError`, and an `each` ends.
23
+ *
24
+ * `ref` also takes a plain callback, `ref={(p) => (presence = p)}`: it's handed the presence's own
25
+ * handle. A `createPresence()` handle given to `ref` is called with that same handle, and hears it.
26
+ *
27
+ * @module
28
+ */
29
+ import { constUndefined } from "effect/Function";
30
+ import * as Predicate from "effect/Predicate";
31
+ import { isServer } from "@solidjs/web";
32
+ import { createSignal, onCleanup } from "solid-js";
33
+ import { eachOf, serverWhen, Waiters, whenOf } from "./waiters.js";
34
+ /** A handle's own hearing: what another handle given its source calls. Internal. */
35
+ const HEAR = Symbol("wardic.presence.hear");
36
+ /** The `AbortError`'s message for a `next` the handle's owner cut off. */
37
+ const GONE = "The presence handle was disposed before its next event.";
38
+ /**
39
+ * A handle, under the current owner, and the events that drive it: what an `<AnimatePresence>`
40
+ * tells its controller's exits to, and what a handle given it hears through.
41
+ */
42
+ export const makePresenceHandle = () => {
43
+ const [exiting, setExiting] = createSignal(false);
44
+ // The last value written: Solid 2 reads a write from its next flush, so the signal can't say.
45
+ let written = false;
46
+ const waiters = new Waiters(GONE);
47
+ // The handles hearing this one (`createPresence()`'s, given to the presence's `ref`).
48
+ const hearers = new Set();
49
+ const events = {
50
+ exitStart: () => {
51
+ waiters.tell("exitStart", constUndefined);
52
+ hearers.forEach((hearer) => hearer.exitStart());
53
+ },
54
+ exiting: (on) => {
55
+ // Only a change is written: a hearer joining syncs to where this one is, in the presence's
56
+ // body, where nothing exits yet, and a write there is one Solid refuses.
57
+ if (written !== on) {
58
+ written = on;
59
+ setExiting(on);
60
+ }
61
+ hearers.forEach((hearer) => hearer.exiting(on));
62
+ },
63
+ exitComplete: () => {
64
+ waiters.tell("exitComplete", constUndefined);
65
+ hearers.forEach((hearer) => hearer.exitComplete());
66
+ },
67
+ };
68
+ const handle = ((source) => {
69
+ ;
70
+ source[HEAR](events);
71
+ });
72
+ Object.defineProperties(handle, {
73
+ exiting: { value: exiting },
74
+ next: { value: (name) => waiters.wait(name) },
75
+ each: { value: (name) => eachOf(waiters, name) },
76
+ when: { value: (name) => whenOf(waiters, name) },
77
+ [HEAR]: {
78
+ value: (hearer) => {
79
+ hearers.add(hearer);
80
+ // It starts from where this presence is now.
81
+ hearer.exiting(written);
82
+ },
83
+ },
84
+ });
85
+ // Its waits end with its owner. Its hearers stay: a presence's teardown, after, still tells them
86
+ // its exits are off.
87
+ onCleanup(() => waiters.dispose());
88
+ return { handle, events };
89
+ };
90
+ /**
91
+ * Hears an `<AnimatePresence>`'s exits, given to its `ref`: `exiting()` is whether a child is
92
+ * leaving, and `next("exitComplete")` resolves once every leaving child has gone. Solid 2's form of
93
+ * Motion's `onExitComplete`.
94
+ *
95
+ * @example
96
+ * const presence = createPresence()
97
+ * <AnimatePresence ref={presence}>…</AnimatePresence>
98
+ * await presence.next("exitComplete")
99
+ * @see https://wardic.dev/reference/solid/presence/create-presence
100
+ */
101
+ // On a server nothing exits: exiting() is false, next never settles, and each ends at once.
102
+ export const createPresence = () => {
103
+ if (isServer)
104
+ return SERVER_PRESENCE;
105
+ return makePresenceHandle().handle;
106
+ };
107
+ /** A server's handle: nothing exits there. */
108
+ const SERVER_PRESENCE = Object.defineProperties((() => { }), {
109
+ exiting: { value: () => false },
110
+ next: { value: () => new Promise(constUndefined) },
111
+ each: { value: () => ({ [Symbol.asyncIterator]: () => ({ next: () => Promise.resolve({ value: undefined, done: true }) }) }) },
112
+ when: { value: serverWhen },
113
+ [HEAR]: { value: () => { } },
114
+ });
115
+ /** A server's `<AnimatePresence ref>`: handed the server's handle. Internal. */
116
+ export const serverPresenceHandle = () => SERVER_PRESENCE;
117
+ /** Whether `ref` was given. Internal. */
118
+ export const hasRef = (ref) => Predicate.isFunction(ref);
119
+ //# sourceMappingURL=presence-handle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presence-handle.js","sourceRoot":"","sources":["../../../../src/unstable/v2/presence-handle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { type Accessor } from "solid-js";
2
+ /** What a `usePresence` handle waits for. */
3
+ export interface PresenceLeaveEvents {
4
+ /** Its child left: the presence's `custom`. */
5
+ readonly leave: any;
6
+ }
7
+ /** A `usePresence` handle, your own exit: see the module. */
8
+ export interface PresenceExit {
9
+ /** Given to `ref`: the element whose child it holds. */
10
+ (element: Element): void;
11
+ /** Whether its child is present: `false` from its leave on. */
12
+ readonly isPresent: Accessor<boolean>;
13
+ /** A promise of its child's leave, with the presence's `custom`: rejected if the child or the presence goes some other way. */
14
+ readonly next: <E extends keyof PresenceLeaveEvents>(name: E) => Promise<PresenceLeaveEvents[E]>;
15
+ /** Each leave from the call on, for `for await`. */
16
+ readonly each: <E extends keyof PresenceLeaveEvents>(name: E) => AsyncIterable<PresenceLeaveEvents[E]>;
17
+ /** Let its child go: once it's left; before, nothing. */
18
+ readonly safeToRemove: () => void;
19
+ }
20
+ /** `useIsPresent`'s sensor: read for whether its child is present, given to `ref` for its element. */
21
+ export interface IsPresent {
22
+ (): boolean;
23
+ (element: Element): void;
24
+ }
25
+ /**
26
+ * Holds a child of `<AnimatePresence>` on the page as it leaves, until you call `safeToRemove()`: for
27
+ * an exit of your own, such as a Web Animation. Give it to `ref` on an element in the child. Its
28
+ * `next("leave")` resolves as the child leaves; `isPresent()` is `false` from then on. Motion's
29
+ * `usePresence`.
30
+ *
31
+ * @example
32
+ * const exit = usePresence()
33
+ * void exit.next("leave").then(() => setTimeout(exit.safeToRemove, 300))
34
+ * <div ref={exit} />
35
+ * @see https://wardic.dev/reference/solid/presence/use-presence
36
+ */
37
+ export declare const usePresence: () => PresenceExit;
38
+ /**
39
+ * Whether a child of `<AnimatePresence>` is still present: `false` from its leave on, while its exit
40
+ * plays. Give it to `ref` on an element in the child, and call it to read. Outside a presence, always
41
+ * `true`. Motion's `useIsPresent`.
42
+ *
43
+ * @example
44
+ * const present = useIsPresent()
45
+ * <button ref={present} disabled={!present()}>Save</button>
46
+ * @see https://wardic.dev/reference/solid/presence/use-is-present
47
+ */
48
+ export declare const useIsPresent: () => IsPresent;
49
+ /** Motion's `usePresenceData`: the nearest presence's `custom`, `undefined` outside one. */
50
+ export declare const usePresenceData: <T = any>() => Accessor<T | undefined>;
51
+ //# sourceMappingURL=presence-hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presence-hooks.d.ts","sourceRoot":"","sources":["../../../../src/unstable/v2/presence-hooks.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,QAAQ,EAAgB,MAAM,UAAU,CAAA;AAItD,6CAA6C;AAC7C,MAAM,WAAW,mBAAmB;IAClC,+CAA+C;IAE/C,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAA;CACpB;AAED,6DAA6D;AAE7D,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACxB,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;IACrC,+HAA+H;IAC/H,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,MAAM,mBAAmB,EAAE,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAA;IAChG,oDAAoD;IACpD,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,MAAM,mBAAmB,EAAE,IAAI,EAAE,CAAC,KAAK,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAA;IACtG,yDAAyD;IACzD,QAAQ,CAAC,YAAY,EAAE,MAAM,IAAI,CAAA;CAClC;AAED,sGAAsG;AACtG,MAAM,WAAW,SAAS;IACxB,IAAI,OAAO,CAAA;IACX,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;CACzB;AAmCD;;;;;;;;;;;GAWG;AAGH,eAAO,MAAM,WAAW,QAAO,YAsB9B,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,QAAO,SAW/B,CAAA;AAED,4FAA4F;AAE5F,eAAO,MAAM,eAAe,GAAI,CAAC,GAAG,GAAG,OAAM,QAAQ,CAAC,CAAC,GAAG,SAAS,CAGlE,CAAA"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Motion's presence hooks on Solid 2 (#277's PR 5b, ADR-0048), in the shape #257 settled on: async
3
+ * values, no callbacks. Each is given to `ref`, which ties it to the child that holds its element.
4
+ *
5
+ * - `usePresence()` holds the leaving child until `safeToRemove()`; `next("leave")` resolves as it
6
+ * leaves, once its node is back in place, with the presence's `custom`. The child's own code is
7
+ * disposed by then: what runs after the `await` is plain work that ends by calling `safeToRemove()`.
8
+ * - `useIsPresent()` is a sensor: `true`, `false` from its child's leave on, for what still runs on
9
+ * the retained node.
10
+ * - `usePresenceData()` is the presence's `custom`.
11
+ *
12
+ * @module
13
+ */
14
+ import { isServer } from "@solidjs/web";
15
+ import { constUndefined } from "effect/Function";
16
+ import * as Predicate from "effect/Predicate";
17
+ import * as UndefinedOr from "effect/UndefinedOr";
18
+ import { createSignal } from "solid-js";
19
+ import { usePresenceContext } from "./presence.jsx";
20
+ import { eachOf, Waiters } from "./waiters.js";
21
+ /** The `AbortError`'s message for a `next("leave")` its child or presence cut off. */
22
+ const GONE = "The child went before it left its presence.";
23
+ /** Whether a call is Solid applying the handle as a ref. */
24
+ const isElement = (value) => Predicate.hasProperty(value, "nodeType");
25
+ /** A registration with the nearest presence, `isPresent` turning `false` at its child's leave. */
26
+ const watchOf = (holds, onLeave, onGone) => {
27
+ const [present, setPresent] = createSignal(true);
28
+ let element;
29
+ UndefinedOr.map(usePresenceContext(), (presence) => UndefinedOr.map(presence.watch, (watch) => watch({
30
+ element: () => element,
31
+ holds,
32
+ leave: (custom, release) => {
33
+ setPresent(false);
34
+ onLeave(custom, release);
35
+ },
36
+ gone: onGone,
37
+ })));
38
+ return {
39
+ present,
40
+ attach: (at) => {
41
+ element = at;
42
+ },
43
+ };
44
+ };
45
+ /**
46
+ * Holds a child of `<AnimatePresence>` on the page as it leaves, until you call `safeToRemove()`: for
47
+ * an exit of your own, such as a Web Animation. Give it to `ref` on an element in the child. Its
48
+ * `next("leave")` resolves as the child leaves; `isPresent()` is `false` from then on. Motion's
49
+ * `usePresence`.
50
+ *
51
+ * @example
52
+ * const exit = usePresence()
53
+ * void exit.next("leave").then(() => setTimeout(exit.safeToRemove, 300))
54
+ * <div ref={exit} />
55
+ * @see https://wardic.dev/reference/solid/presence/use-presence
56
+ */
57
+ // The child's own code is disposed by the time it leaves: what runs after the await is plain work that
58
+ // ends with safeToRemove(). Outside a presence it's always present, and next("leave") never settles.
59
+ export const usePresence = () => {
60
+ if (isServer)
61
+ return SERVER_EXIT;
62
+ const waiters = new Waiters(GONE);
63
+ let release = () => { };
64
+ const { present, attach } = watchOf(true, (custom, done) => {
65
+ release = done;
66
+ waiters.tell("leave", () => custom);
67
+ }, () => waiters.dispose());
68
+ const hold = ((element) => {
69
+ attach(element);
70
+ });
71
+ Object.defineProperties(hold, {
72
+ isPresent: { value: present },
73
+ next: { value: (name) => waiters.wait(name) },
74
+ each: { value: (name) => eachOf(waiters, name) },
75
+ safeToRemove: { value: () => release() },
76
+ });
77
+ return hold;
78
+ };
79
+ /**
80
+ * Whether a child of `<AnimatePresence>` is still present: `false` from its leave on, while its exit
81
+ * plays. Give it to `ref` on an element in the child, and call it to read. Outside a presence, always
82
+ * `true`. Motion's `useIsPresent`.
83
+ *
84
+ * @example
85
+ * const present = useIsPresent()
86
+ * <button ref={present} disabled={!present()}>Save</button>
87
+ * @see https://wardic.dev/reference/solid/presence/use-is-present
88
+ */
89
+ export const useIsPresent = () => {
90
+ if (isServer)
91
+ return (() => true);
92
+ const { present, attach } = watchOf(false, () => { }, () => { });
93
+ // eslint-disable-next-line solid/reactivity -- the sensor: a ref Solid calls with its element, and an accessor its caller reads where it tracks
94
+ return ((element) => {
95
+ if (isElement(element)) {
96
+ attach(element);
97
+ return undefined;
98
+ }
99
+ return present();
100
+ });
101
+ };
102
+ /** Motion's `usePresenceData`: the nearest presence's `custom`, `undefined` outside one. */
103
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
104
+ export const usePresenceData = () => {
105
+ const presence = usePresenceContext();
106
+ return () => UndefinedOr.map(UndefinedOr.map(presence, (p) => p.data), (data) => data());
107
+ };
108
+ /** A server's hold: nothing leaves there. */
109
+ const SERVER_EXIT = Object.defineProperties((() => { }), {
110
+ isPresent: { value: () => true },
111
+ next: { value: () => new Promise(constUndefined) },
112
+ each: { value: () => ({ [Symbol.asyncIterator]: () => ({ next: () => Promise.resolve({ value: undefined, done: true }) }) }) },
113
+ safeToRemove: { value: () => { } },
114
+ });
115
+ //# sourceMappingURL=presence-hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presence-hooks.js","sourceRoot":"","sources":["../../../../src/unstable/v2/presence-hooks.ts"],"names":[],"mappings":"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"}