@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,874 @@
1
+ import { tapPropagates } from "./press.js";
2
+ import * as Renderer from "@wardic/core/Renderer";
3
+ import * as DomRenderer from "@wardic/dom/DomRenderer";
4
+ import * as Style from "@wardic/dom/Style";
5
+ import * as Svg from "@wardic/dom/Svg";
6
+ import { mergeRefs } from "@solid-primitives/refs";
7
+ import * as Arr from "effect/Array";
8
+ import * as Bool from "effect/Boolean";
9
+ import { constUndefined, identity, pipe } from "effect/Function";
10
+ import * as Option from "effect/Option";
11
+ import * as Predicate from "effect/Predicate";
12
+ import * as Rec from "effect/Record";
13
+ import * as UndefinedOr from "effect/UndefinedOr";
14
+ import { Atom } from "effect/reactivity";
15
+ import { createComputed, createEffect, createMemo, createSignal, createUniqueId, DEV, getOwner, on, onCleanup, runWithOwner, untrack, } from "solid-js";
16
+ import { controlledConfigOf, controlledElement, isAnimationControls, subscribe, uncontrolledOf } from "./animation-controls.js";
17
+ import { fromAtom, watchToSignal } from "./bridge.js";
18
+ import { pointMapOptionOf, settingOf, withConfigTransition } from "./wardic-config-value.js";
19
+ import { dragTransitionOf, runDragTrackWith } from "./drag.js";
20
+ import { createElementStyle } from "./element-style.js";
21
+ import { createLiveStyle, readLive, serverRegistryOf, split } from "./live-style.js";
22
+ import { createVariantNode } from "./variant-node.js";
23
+ import { serverVariantNode, startingValuesOf, startsQuiet } from "./variant-tree.js";
24
+ import { registerAnimatable } from "./imperative.js";
25
+ import { projectionNodeOf, useLayoutGroupId } from "./layout.jsx";
26
+ import { layoutOptionsOf, wantsLayoutNode } from "./layout-member.js";
27
+ import { GESTURE_WORDS, hasService, serviceIn } from "./gesture-features.js";
28
+ import { handoffOf, setsAnimation } from "./appear.js";
29
+ import { presenceBlocksInitial, presenceHold, usePresenceContext } from "./presence.jsx";
30
+ import { presenceSeedOf } from "./presence-record.js";
31
+ import { createWhenWanted, NEVER_STARTED, stateOf } from "./sensors.js";
32
+ import { gestureCallbacksOf, inViewOptionsOf, wantsFocus, wantsHover, wantsInView, wantsPan, wantsPress } from "./gesture-callbacks.js";
33
+ import { LAYOUT_PROPS, missingMessage, unreadColorIn } from "./feature.js";
34
+ import { runWatch, useBuiltProjection, useElementFeatures, useFeatureRegistry, useWardicAppear, useWardicDefaultTransition, useWardicGate, useWardicPositionalKeys, useWardicReducedMotion, useWardicRenderer, useWardicRuntime, useWardicSkipAnimations } from "./provider.jsx";
35
+ import { useWardicConfig } from "./wardic-config.jsx";
36
+ import { transformPagePointOf } from "./wardic-config-value.js";
37
+ import { projectionIn } from "./runtime.js";
38
+ import { isHydrating, isServer } from "./server.js";
39
+ import { reactivity } from "./solid-reactivity.js";
40
+ import { accessorOf, animationCallbacks, applyDragDefaults, dragAxisOf, dragDefaultsOf, draggingWithWillChange, drawnAtRest, followTemplate, heldTransformFor, registeredValuesOf, flagStartingStyle, isLayoutNode, madeWith, makeElementSpine, makeReuse, exitConfigOf, exitTargetOf, presenceTreeOf, presenceRecordOf, recordFrameOf, registryOf, resolutionOf, restingOf, sameResolution, serverStartingStyle, snapshotOf, startLinksOf, startOf, warnDroppedTransform, withOnUpdate, releasingAppear, appearEntryOf, } from "./spine.js";
41
+ import { useVariantContext, WardicVariantContext } from "./variants.js";
42
+ import { DragGesture, FocusGesture, HoverGesture, InViewGesture, PanGesture, PressGesture } from "./features/keys.js";
43
+ /** A `<Reorder>` item's additions when there are none: a plain element's. */
44
+ const NO_INTERNALS = {};
45
+ /**
46
+ * Whether an element wants each gesture recognizer (#87, #273), its section having the gesture's
47
+ * Feature (#511): shared by every element.
48
+ */
49
+ const WANTS = {
50
+ hover: (w) => wantsHover(w.config) && hasService(w.services, HoverGesture),
51
+ press: (w) => wantsPress(w.config) && hasService(w.services, PressGesture),
52
+ inView: (w) => wantsInView(w.config) && hasService(w.services, InViewGesture),
53
+ focus: (w) => wantsFocus(w.config) && hasService(w.services, FocusGesture),
54
+ pan: (w) => wantsPan(w.config) && hasService(w.services, PanGesture),
55
+ };
56
+ /** Each gesture a config may want, its Feature's name and key: what development's word on a missing one checks (#511). */
57
+ const GESTURE_FEATURES = [
58
+ ["hover", wantsHover, HoverGesture],
59
+ ["press", wantsPress, PressGesture],
60
+ ["inView", wantsInView, InViewGesture],
61
+ ["focus", wantsFocus, FocusGesture],
62
+ ["pan", wantsPan, PanGesture],
63
+ ];
64
+ /** A `ward()` call's user props when it's given none. */
65
+ const NO_USER_PROPS = {};
66
+ /**
67
+ * `given` with its `animate` read once (#433): **Animation controls** make each change they make its
68
+ * entry, the config marked controlled; anything else leaves it as it is. Under a `WardicConfig`, its
69
+ * **Config transition** is its own when it gives none (#434).
70
+ */
71
+ export const controlledOf = (given) => {
72
+ const configured = configuredOf(given, useWardicConfig());
73
+ const animate = untrack(configured).animate;
74
+ if (Bool.not(isAnimationControls(animate)))
75
+ return { cfg: configured, controls: undefined };
76
+ const [change, set] = createSignal(undefined);
77
+ return { cfg: () => controlledConfigOf(configured(), change()), controls: { controls: animate, change, set: (made) => set(() => made) } };
78
+ };
79
+ /**
80
+ * `given` with its **Config transition** as its own when it gives none (#434, Motion's
81
+ * `{ ...config, ...props }`), one object per change; `given` itself with no `WardicConfig` above.
82
+ */
83
+ const configuredOf = (given, config) => {
84
+ if (Predicate.isUndefined(config))
85
+ return given;
86
+ return createMemo(() => withConfigTransition(given(), config));
87
+ };
88
+ /** No change: an element without Animation controls. */
89
+ const NO_CHANGE = constUndefined;
90
+ /**
91
+ * The fixed motion spine, factored out so both sink shapes share it (ADR-0006):
92
+ *
93
+ * on(el) once-defined -> gate.register(id, makeSink(element)) -> recognizers
94
+ * (hover/press) -> override-stack memo from cfg() -> on(target) Retarget
95
+ * (springValues / animateValues seeded from the Snapshot ref) -> gate.write.
96
+ *
97
+ * The caller supplies `makeSink`: the gate commits the flushed `Patch` onto the element,
98
+ * whichever surface owns it (ADR-0034). `initial` is read EXACTLY ONCE at setup (`untrack`) to seed the
99
+ * spring's `from` Snapshot (ADR-0003); `animate` / `whileHover` / `whileTap` /
100
+ * `transition` / `variants` are read reactively through `cfg()`.
101
+ *
102
+ * Must be called within a Solid owner (it registers `createEffect` / `onCleanup`).
103
+ */
104
+ /**
105
+ * Whether a ward's element waits off the page for its held child (#277, ADR-0048): its start queued
106
+ * with the presence (`shown`, made only under one), cancelled with the effect's run.
107
+ */
108
+ const heldBack = (presence, element, shown) => {
109
+ if (Predicate.isUndefined(shown))
110
+ return false;
111
+ const cancel = presenceHold(presence, element, shown);
112
+ if (Predicate.isUndefined(cancel))
113
+ return false;
114
+ onCleanup(cancel);
115
+ return true;
116
+ };
117
+ /** An element's layout node now: made at its mount, or as `layout` arrived (#582). */
118
+ const layoutNodeOf = (atMount, later) => UndefinedOr.match(atMount, { onDefined: identity, onUndefined: () => UndefinedOr.match(later, { onDefined: (l) => l.handle, onUndefined: constUndefined }) });
119
+ export function runSpine(opts) {
120
+ const { bindGestures, byName, canStart, cfg, controls, defaultsInProps, el, entersFresh, extraDelay, gate, hydrating, id, internal = NO_INTERNALS, live, makeSink, onFrame, parent, restartStyle, runtime, styleOf, tag } = opts;
121
+ // Its Features (#511, ADR-0067): its section's, and those it brings.
122
+ const features = UndefinedOr.match(opts.features, { onDefined: identity, onUndefined: () => useElementFeatures(internal.brings, internal.complete === true) });
123
+ // Its section's projection system, the `layout` Feature's (#511): `undefined` without it. Read now,
124
+ // which builds the Features given to its section at once: the first element to ask builds them.
125
+ const layoutProjection = projectionIn(untrack(features.services));
126
+ // The provider's, once any section has built it: what its values register with.
127
+ const builtProjection = useBuiltProjection();
128
+ // Its Animation controls' change (#433), read with the Override stack: none without them.
129
+ const ownChange = UndefinedOr.match(controls, { onUndefined: () => NO_CHANGE, onDefined: (c) => c.change });
130
+ // The nearest <AnimatePresence>, or undefined at the root (ADR-0007). When
131
+ // present, this spine publishes its live value-map (`snapshot`) + exit target
132
+ // (`exit`) into a presence registration; the PARENT drives the exit on leave
133
+ // (this child is disposed). The child does NOT unregister on its own
134
+ // onCleanup — <AnimatePresence> owns removal after the exit settles.
135
+ const presence = usePresenceContext();
136
+ // The Layout group it's made in (#432): its `layoutId`'s namespace.
137
+ const layoutGroup = useLayoutGroupId();
138
+ // Whether reduced motion applies (ADR-0029), read at each Retarget.
139
+ const reducedMotion = useWardicReducedMotion();
140
+ // Whether its animations are skipped (#468): its nearest WardicConfig's, read as each starts.
141
+ const skipAnimations = useWardicSkipAnimations();
142
+ // Where its drag's and pan's points are (#443): its nearest WardicConfig's, read as each starts.
143
+ const pagePoint = transformPagePointOf(useWardicConfig());
144
+ const positionalKeys = useWardicPositionalKeys();
145
+ // What a key with no transition of its own runs on (ADR-0051).
146
+ const defaultTransition = useWardicDefaultTransition();
147
+ // Starting style: resolved purely from the config read EXACTLY ONCE (untrack — no
148
+ // reactive dependency, must not re-seed after mount), with the inherited `initial`
149
+ // name for a Variant child that has none (#50). Seeds the spring `from` Snapshot so
150
+ // frame 1 flows continuously out of it (no snap).
151
+ const start = startOf(untrack(cfg), parent, presenceBlocksInitial(presence), untrack);
152
+ const snapshot = snapshotOf(start);
153
+ const reuse = makeReuse();
154
+ // Where an element starts (#414): the ward's start, or, for one that comes after the last left the
155
+ // page, a fresh one, as a mount after the first render's (no presence holds its `initial` back).
156
+ // Its Snapshot goes back to it, and its Starting style comes back on until its first commit.
157
+ const beginOf = (element) => {
158
+ if (Predicate.isUndefined(entersFresh))
159
+ return start;
160
+ if (Bool.not(entersFresh(element)))
161
+ return start;
162
+ const fresh = startOf(untrack(cfg), parent, false, untrack);
163
+ snapshot.values = { ...fresh.initialValues };
164
+ snapshot.velocities = {};
165
+ snapshot.drawnAt = {};
166
+ if (Predicate.isNotUndefined(restartStyle))
167
+ restartStyle(fresh);
168
+ return fresh;
169
+ };
170
+ // The config and the user's style, as the spine reads them: untracked.
171
+ const configNow = () => untrack(cfg);
172
+ const styleNow = UndefinedOr.map(styleOf, (of) => () => untrack(of));
173
+ // Inside a child `mode="wait"` holds off the page (#277, ADR-0048), everything starts once the child
174
+ // is on it: `shown` ticks then, and the effect below runs again. Only under a presence: with none,
175
+ // nothing is made or called here (a check per element at mount cost the first Retarget ~9% cold).
176
+ let mountedOn = el;
177
+ let shown;
178
+ if (Predicate.isNotUndefined(presence)) {
179
+ const [ticked, tick] = createSignal(undefined, { equals: false });
180
+ shown = () => tick();
181
+ mountedOn = () => {
182
+ ticked();
183
+ return el();
184
+ };
185
+ }
186
+ // Start everything once the element mounts. createEffect(on(el, ...)) re-runs
187
+ // only when the element identity changes; the spine inner-effect lives under
188
+ // this owner so onCleanup teardown (gate.unregister + fiber interrupts) fires
189
+ // on unmount.
190
+ createEffect(on(mountedOn, (element) => {
191
+ if (Predicate.isUndefined(element))
192
+ return;
193
+ // Held off the page: nothing starts until it's on it.
194
+ if (heldBack(presence, element, shown))
195
+ return;
196
+ // Its start: the ward's, or a fresh one when it comes after the last element left (#414).
197
+ const begin = beginOf(element);
198
+ // Register the element with the caller-supplied sink (ADR-0006): each
199
+ // flushed frame's Patch is committed onto it (ADR-0034). An element with `onUpdate` at mount
200
+ // is told each committed frame (#233); any other never joins the gate's tells. While
201
+ // hydrating, its Appear animation is found here, taken over by its first Retarget that
202
+ // starts, and removed in its first commit (#48, ADR-0044 decision 6).
203
+ const handoff = Bool.match(hydrating === true, { onTrue: () => Option.getOrUndefined(handoffOf(element)), onFalse: constUndefined });
204
+ // Its Transform template (#443), drawn with its first write: the one at mount, then each other
205
+ // one its config gives.
206
+ const templateAtMount = untrack(cfg).transformTemplate;
207
+ let template = templateAtMount;
208
+ const registered = registeredValuesOf(templateAtMount);
209
+ const unregister = gate.register(id, releasingAppear(withOnUpdate(makeSink(element), untrack(cfg).onUpdate, configNow), handoff, element), registered);
210
+ onCleanup(unregister);
211
+ // A surface whose props don't carry a drag element's defaults (ADR-0019 *Amendment
212
+ // (Reorder)*): set each one the element's inline style doesn't already, and the
213
+ // attribute unless it has one, once at mount.
214
+ if (defaultsInProps !== true) {
215
+ const base = internal.baseStyle;
216
+ if (Predicate.isNotUndefined(base)) {
217
+ // The base style goes under the user's: a key the element's own inline style
218
+ // sets at mount is the user's, and is never written.
219
+ const own = new Set(element.style);
220
+ const write = (style) => {
221
+ if (Predicate.isUndefined(style))
222
+ return;
223
+ Arr.forEach(Rec.keys(style), (key) => {
224
+ if (Bool.not(own.has(key)))
225
+ element.style.setProperty(key, String(style[key]));
226
+ });
227
+ };
228
+ // Written now, then on each change. Now, not in the effect's first run: that runs
229
+ // just before this element's spine effect, whose first Retarget may read the
230
+ // element's Own values (ADR-0022), so a list of items would alternate a write and a
231
+ // read per item and force a style recalculation each (#47's mount measurement).
232
+ write(untrack(base));
233
+ createEffect(on(base, (style) => write(style), { defer: true }));
234
+ }
235
+ UndefinedOr.map(dragDefaultsOf(untrack(cfg), internal), (defaults) => applyDragDefaults(element, defaults));
236
+ }
237
+ // Base values (ADR-0022): a key with no value starts from its `style` value, else its Own
238
+ // value, read from the element once per key, at first need (D3).
239
+ const links = startLinksOf(element, styleNow, live);
240
+ // --- Presence registration (ADR-0007 exit) -------------------------------
241
+ // Under an <AnimatePresence>, publish a live record so the PARENT can drive
242
+ // this element's exit after Solid disposes its owner. `snapshot.current` is
243
+ // updated to the latest emitted value-map EACH FRAME (so the exit departs
244
+ // continuously from where the element rests); what its exit resolves from (#277: its `exit`,
245
+ // `variants`, `custom` and transition) is kept current while it's alive, and resolved as it
246
+ // leaves. The child does NOT call the disposer on its own
247
+ // onCleanup — <AnimatePresence> removes the registration after the exit settles.
248
+ let presenceRec;
249
+ // Where it starts when its child takes over from a leaver (#286): asked before its layout node
250
+ // registers, which moves from the leaver's box, and before its first Retarget.
251
+ let taken;
252
+ if (Predicate.isNotUndefined(presence)) {
253
+ const exitConfig = { current: exitConfigOf(untrack(cfg), parent) };
254
+ const rec = presenceRecordOf(element, begin, (custom, inherited) => exitTargetOf(exitConfig.current, custom, snapshot, inherited), links, presenceTreeOf(untrack(cfg)), snapshot, reducedMotion, skipAnimations);
255
+ presenceRec = rec;
256
+ presence.register(rec);
257
+ taken = presenceSeedOf(presence, element);
258
+ createEffect(() => {
259
+ exitConfig.current = exitConfigOf(cfg(), parent);
260
+ });
261
+ }
262
+ const recordFrame = recordFrameOf(presenceRec);
263
+ // Every element's values, by element, for the projection (ADR-0012 *Amendment (#137)*): a twin's
264
+ // flight follows the translate and scale Wardic animates on its ancestors each frame.
265
+ // None while no section has `layout`: there's no flight to follow them (#511).
266
+ UndefinedOr.map(builtProjection(), (projection) => onCleanup(projection.registerValues(element, () => snapshot.values)));
267
+ // Its exit is drawn through its template (#443): it rides in its presence record, whose drawn
268
+ // values the projection reads as it leaves. A later one is written with the values it holds, so
269
+ // the commit that may take its Starting style off holds them.
270
+ // Nothing with none (#460): no follow, and nothing for its cleanup to run.
271
+ if (Predicate.isNotUndefined(templateAtMount)) {
272
+ recordFrame(registered);
273
+ onCleanup(followTemplate(templateAtMount, () => cfg().transformTemplate, reactivity.watch, (next) => {
274
+ template = next;
275
+ const values = { ...snapshot.values, [DomRenderer.TEMPLATE_KEY]: next };
276
+ gate.write(id, values);
277
+ recordFrame({ [DomRenderer.TEMPLATE_KEY]: next });
278
+ }));
279
+ }
280
+ // --- Layout / shared-element / scroll projection (ADR-0009/0010/0012) ---
281
+ // ONE projection node per element: `layout`, `layoutId`, and/or `layoutScroll`
282
+ // feed the SAME node (no double registration). `layout` is a static enable
283
+ // flag; `layoutId` (static, read once) enrols the node in the engine's
284
+ // lead/follow stack (crossfade) and lets a twin disposed in the same task seed
285
+ // it (a Switch, engine-side — ADR-0010 *Amendment (#13)*); `layoutScroll`
286
+ // (static) marks it a scroll container whose scroll is folded out of its
287
+ // descendants' boxes. All static,
288
+ // read once — the reserved props layoutRoot/layoutAnchor remain typed-but-no-op
289
+ // (P4).
290
+ const c0 = untrack(cfg);
291
+ // layout / layoutId / layoutScroll / layoutRoot each warrant a node; layoutAnchor
292
+ // alone does not (it only tunes a node that already projects), but is forwarded.
293
+ let layoutHandle;
294
+ // What every release runs on, the layout node's Release offset and the drag track's (ADR-0016, *Amendment (#140)*).
295
+ const dragTransition = dragTransitionOf(c0.dragElastic, c0.dragTransition);
296
+ // Its section's `layout` makes its node (#511): without it, its layout props do nothing, and
297
+ // development says so once, unless `layout` is on its way.
298
+ if (DEV && wantsLayoutNode(c0) && Predicate.isUndefined(layoutProjection) && Bool.not(untrack(features.pending))) {
299
+ useFeatureRegistry().warnOnce("layout", missingMessage("layout", LAYOUT_PROPS, "@wardic/solid"));
300
+ }
301
+ // `layout` on its way (#582): its node is made as it arrives, under this owner, as Motion's is,
302
+ // and measures from then on; nothing before it is replayed. A load that brings none gets
303
+ // development's word then.
304
+ let lateLayout;
305
+ if (wantsLayoutNode(c0)) {
306
+ // What its node is made with, copied into this block: the closures here hold only these, so an
307
+ // element with no layout prop keeps none of them (#551's lesson).
308
+ const ward = {
309
+ id,
310
+ element,
311
+ config: cfg,
312
+ parent,
313
+ snapshot,
314
+ dragTransition,
315
+ raiseWhileDragged: internal.raiseWhileDragged === true,
316
+ layoutGroup,
317
+ reducedMotion,
318
+ skipAnimations,
319
+ heldTransform: heldTransformFor(snapshot, templateAtMount, () => template),
320
+ };
321
+ const onLayoutHandle = internal.onLayoutHandle;
322
+ // Its node on `projection`, handed to a `<Reorder>` item's group; `takenNow`, where a child that
323
+ // takes over from a leaver starts, at its mount only (#286).
324
+ const layoutNodeOn = (projection, takenNow) => {
325
+ const handle = projectionNodeOf(projection, layoutOptionsOf({ ...ward, taken: takenNow }));
326
+ if (Predicate.isNotUndefined(onLayoutHandle))
327
+ onLayoutHandle(handle);
328
+ return handle;
329
+ };
330
+ if (Predicate.isNotUndefined(layoutProjection))
331
+ layoutHandle = layoutNodeOn(layoutProjection, taken);
332
+ if (Predicate.isUndefined(layoutProjection) && untrack(features.pending)) {
333
+ const owner = getOwner();
334
+ const registry = useFeatureRegistry();
335
+ const section = features;
336
+ const later = {
337
+ handle: undefined,
338
+ arrive: () => {
339
+ if (Predicate.isNotUndefined(later.handle))
340
+ return;
341
+ UndefinedOr.match(projectionIn(section.services()), {
342
+ onDefined: (arrived) => {
343
+ later.handle = runWithOwner(owner, () => untrack(() => layoutNodeOn(arrived, undefined)));
344
+ },
345
+ onUndefined: () => {
346
+ if (DEV && Bool.not(section.pending()))
347
+ registry.warnOnce("layout", missingMessage("layout", LAYOUT_PROPS, "@wardic/solid"));
348
+ },
349
+ });
350
+ },
351
+ };
352
+ lateLayout = later;
353
+ createComputed(later.arrive);
354
+ }
355
+ }
356
+ // The app's gesture callbacks (#273, ADR-0047), each read from the config when it's called: made
357
+ // at the first gesture that needs them, as most elements have none.
358
+ let gestures;
359
+ const gesturesOf = () => {
360
+ if (Predicate.isUndefined(gestures))
361
+ gestures = gestureCallbacksOf(runtime, id, () => untrack(cfg));
362
+ return gestures;
363
+ };
364
+ // --- Drag track (ADR-0004) ----------------------------------------------
365
+ // When cfg().drag is truthy, run the binding-orchestrated drag track: the
366
+ // pointer DIRECT-SETS x/y (1:1, not sprung) while the spring keeps driving
367
+ // every other key + whileDrag. `dragging` is the ONLY reactive piece (it
368
+ // gates the whileDrag override + the translate-key strip); the drag
369
+ // CONFIG is static — read ONCE here (untrack), since drag config is a
370
+ // document. The track's single fiber is scoped to this owner's onCleanup.
371
+ const dragCfg = dragAxisOf(untrack(cfg), internal);
372
+ const [dragging, setDragging] = createSignal(false);
373
+ // Its hold on `x`/`y`, for the spine's Retargets (#340).
374
+ let dragTrack;
375
+ // Its track's holder while `drag` is on its way (#551): the spine reads the track there, and
376
+ // whether it drives the layout node (#582).
377
+ let late;
378
+ // Its section's `drag` Feature drives it (#511): without it, `drag` does nothing, and development
379
+ // says so once, unless `drag` is on its way.
380
+ const dragGesture = serviceIn(untrack(features.services), DragGesture);
381
+ if (DEV && Predicate.isNotUndefined(dragCfg) && Predicate.isUndefined(dragGesture) && Bool.not(untrack(features.pending))) {
382
+ useFeatureRegistry().warnOnce("drag", missingMessage("drag", GESTURE_WORDS.drag, "@wardic/solid"));
383
+ }
384
+ if (Predicate.isNotUndefined(dragCfg)) {
385
+ // What the track is made with, copied into this block: a closure here holds only these, so an
386
+ // element that never drags keeps none of them (#551).
387
+ const axis = dragCfg;
388
+ const transition = dragTransition;
389
+ const setDrag = draggingWithWillChange(live, setDragging);
390
+ const nodeAtMount = layoutHandle;
391
+ const nodeLater = lateLayout;
392
+ // It drives the layout node the element has as it's made, at mount or as `drag` arrives: a
393
+ // node made later leaves it moving `x`/`y` (#582).
394
+ const trackWith = (dragGesture) => {
395
+ const projection = layoutNodeOf(nodeAtMount, nodeLater);
396
+ const c0d = untrack(cfg);
397
+ // Motion's `dragConstraints` (#273): a box of numbers, or a container measured against the element.
398
+ const constraints = dragGesture.constraintsOf(c0d.dragConstraints, element, () => untrack(cfg).onMeasureDragConstraints, pagePoint);
399
+ const trackConfig = {
400
+ axis,
401
+ constraints: constraints.constraints,
402
+ elastic: c0d.dragElastic,
403
+ momentum: c0d.dragMomentum,
404
+ snapToOrigin: c0d.dragSnapToOrigin,
405
+ propagation: c0d.dragPropagation,
406
+ directionLock: c0d.dragDirectionLock,
407
+ transition,
408
+ listen: c0d.dragListener,
409
+ };
410
+ return runDragTrackWith(dragGesture.drive, {
411
+ runtime,
412
+ gate,
413
+ id,
414
+ element,
415
+ snapshot,
416
+ recordFrame,
417
+ // A drag's start turns its `style`'s will-change value on (#443).
418
+ setDragging: setDrag,
419
+ mapPoint: pagePoint,
420
+ config: trackConfig,
421
+ skipAnimations,
422
+ container: constraints.container,
423
+ controls: c0d.dragControls,
424
+ // ADR-0016: a drag on a LAYOUT node feeds the projection, not its own x/y
425
+ // (drawn on top, #363), so the dragged item follows the pointer and FLIPs to
426
+ // its slot on release. Free drag (no handle) is unchanged.
427
+ ...UndefinedOr.match(projection, { onUndefined: () => ({}), onDefined: (node) => ({ projection: node }) }),
428
+ ...UndefinedOr.match(internal.dragAxis, { onUndefined: () => ({}), onDefined: (axisAt) => ({ axisAt }) }),
429
+ // Its samples to a `<Reorder>` item's group, and to the app's drag callbacks (#273).
430
+ onSample: UndefinedOr.match(internal.onDragSample, {
431
+ onUndefined: () => gesturesOf().dragged,
432
+ onDefined: (onSample) => {
433
+ const { dragged } = gesturesOf();
434
+ return (sample) => {
435
+ onSample(sample);
436
+ dragged(sample);
437
+ };
438
+ },
439
+ }),
440
+ onReleaseEnd: gesturesOf().released,
441
+ });
442
+ };
443
+ if (Predicate.isNotUndefined(dragGesture))
444
+ dragTrack = trackWith(dragGesture);
445
+ // `drag` on its way (#551): the track starts as it arrives, from then on, as a gesture's
446
+ // recognizer does, under this owner; nothing before it is replayed. A load that brings none
447
+ // gets development's word then.
448
+ if (Predicate.isUndefined(dragGesture) && untrack(features.pending)) {
449
+ const held = { track: undefined, projected: false };
450
+ late = held;
451
+ const owner = getOwner();
452
+ const registry = useFeatureRegistry();
453
+ const section = features;
454
+ createComputed(() => {
455
+ if (Predicate.isNotUndefined(held.track))
456
+ return;
457
+ UndefinedOr.match(serviceIn(section.services(), DragGesture), {
458
+ onDefined: (arrived) => {
459
+ // A `layout` from the same load makes its node first, so the track drives it (#582).
460
+ if (Predicate.isNotUndefined(nodeLater))
461
+ nodeLater.arrive();
462
+ held.projected = Predicate.isNotUndefined(layoutNodeOf(nodeAtMount, nodeLater));
463
+ held.track = runWithOwner(owner, () => untrack(() => trackWith(arrived)));
464
+ },
465
+ onUndefined: () => {
466
+ if (DEV && Bool.not(section.pending()))
467
+ registry.warnOnce("drag", missingMessage("drag", GESTURE_WORDS.drag, "@wardic/solid"));
468
+ },
469
+ });
470
+ });
471
+ }
472
+ }
473
+ // Recognizers over the live element, each started the first time its config wants it, as
474
+ // Motion's features are (#87, ADR-0040; #273): `whileHover` or a hover callback, `whileTap` or a
475
+ // tap callback, a pan callback. Each hover and press transition sets its layer; each event is
476
+ // told to the app's callbacks, at the event. Their fibers are scoped to this owner's onCleanup
477
+ // (runScoped). Until started, a layer reads false.
478
+ // Each through its section's Feature (#511), read with the config, so one that arrives lazily
479
+ // starts what the config wants of it from then on.
480
+ const gestureOf = (key) => UndefinedOr.getOrThrow(serviceIn(untrack(features.services), key));
481
+ // An element that can never want one watches for none (#525): no computation an element.
482
+ let started = NEVER_STARTED;
483
+ if (internal.gestureless !== true)
484
+ started = createWhenWanted(() => ({ config: cfg(), services: features.services() }), WANTS, {
485
+ hover: () => watchToSignal(({ on, onDefect }) => gestureOf(HoverGesture).watch(element, {
486
+ on: (transition) => {
487
+ gesturesOf().hovered(transition);
488
+ on(transition.active);
489
+ },
490
+ onDefect,
491
+ }), false),
492
+ press: () => watchToSignal(({ on, onDefect }) => gestureOf(PressGesture).watch(element, {
493
+ on: (press) => {
494
+ gesturesOf().pressed(press, element);
495
+ on(press.phase === "start");
496
+ },
497
+ onDefect,
498
+ }, internal.keysTaken === true, () => tapPropagates(untrack(cfg).propagate)), false),
499
+ // In view as its `viewport` says, read when it starts; each transition told to the viewport callbacks.
500
+ inView: () => watchToSignal(({ on, onDefect }) => gestureOf(InViewGesture).watch(element, inViewOptionsOf(untrack(cfg).viewport), {
501
+ on: (transition) => {
502
+ gesturesOf().viewed(transition);
503
+ on(transition.active);
504
+ },
505
+ onDefect,
506
+ }), false),
507
+ // Focused as the browser shows it (`:focus-visible`, Motion's `whileFocus`).
508
+ focus: () => watchToSignal((handlers) => gestureOf(FocusGesture).watch(element, { visible: true }, handlers), false),
509
+ pan: () => runWatch(runtime, (onDefect) => gestureOf(PanGesture).watch(element, { on: (sample) => gesturesOf().panned(sample), onDefect }, { mapPoint: pointMapOptionOf(pagePoint) })),
510
+ });
511
+ if (DEV && internal.complete !== true && internal.gestureless !== true)
512
+ warnMissingGestures(useFeatureRegistry(), features, cfg);
513
+ // Its gesture states: the started recognizers, one tracked read, then each started one's state.
514
+ // A keyboard lift turns `whileDrag` on, as a drag does (ADR-0037).
515
+ const lifted = internal.lifted;
516
+ const active = () => {
517
+ const held = dragging();
518
+ const layers = started();
519
+ return {
520
+ inView: stateOf(layers.inView),
521
+ focused: stateOf(layers.focus),
522
+ hovered: stateOf(layers.hover),
523
+ pressed: stateOf(layers.press),
524
+ dragged: Bool.or(held, Predicate.isNotUndefined(lifted) && lifted()),
525
+ dragging: held,
526
+ };
527
+ };
528
+ // The Override stack (`resolutionOf`), compared by value, as Solid 2's (#470): a reactive config
529
+ // change, a recognizer's flip or the drag's recomputes it, and only one that resolves a new
530
+ // target drives a Retarget. A `transition`, a callback or an option alone tells nothing, as
531
+ // Motion's doesn't.
532
+ const target = createMemo(() => resolutionOf(cfg(), parent, begin.initialLink, active(), snapshot, ownChange()), undefined, { equals: sameResolution });
533
+ // A colour only the `colors` Feature reads, on a Slim element without it (#511, decision 7): said
534
+ // once per provider, in development only, and not while a lazy load is on its way.
535
+ if (DEV && internal.complete !== true)
536
+ warnUnreadColors(useFeatureRegistry(), features, () => target().resolved);
537
+ // Its gesture states, for the names its variant node hands down (#291): read from the gestures
538
+ // themselves, as a gesture whose layer resolves nothing new leaves the target as it was.
539
+ if (Predicate.isNotUndefined(bindGestures))
540
+ bindGestures(active);
541
+ // The spine (`spine.ts`): on each target change, end the running legs and reseed a fresh
542
+ // primitive from the Snapshot (velocity-preserving), into the gate.
543
+ const spineOptions = {
544
+ runtime,
545
+ gate,
546
+ id,
547
+ element,
548
+ tag,
549
+ config: configNow,
550
+ parent,
551
+ canStart,
552
+ extraDelay,
553
+ byName,
554
+ onFrame,
555
+ reducedMotion,
556
+ skipAnimations,
557
+ positionalKeys,
558
+ defaultTransition,
559
+ start: begin,
560
+ snapshot,
561
+ reuse,
562
+ links,
563
+ styleNow,
564
+ live,
565
+ presence: presenceRec,
566
+ projected: Predicate.isNotUndefined(layoutHandle),
567
+ dragAxis: dragCfg,
568
+ drag: dragTrack,
569
+ handoff,
570
+ // Motion's onAnimationStart / onAnimationComplete (#257).
571
+ animation: animationCallbacks(runtime, id),
572
+ };
573
+ // A track that starts once `drag` arrives (#551) is read at each Retarget from then on: only
574
+ // then is `drag` a getter, so an element that has it at mount, or never wants it, pays nothing.
575
+ if (Predicate.isNotUndefined(late)) {
576
+ const held = late;
577
+ Object.defineProperty(spineOptions, "drag", { get: () => held.track });
578
+ // Whether that track drives the layout node (#582): until it starts, whether the element has one.
579
+ const nodeAtMount = layoutHandle;
580
+ const nodeLater = lateLayout;
581
+ Object.defineProperty(spineOptions, "projected", {
582
+ get: () => UndefinedOr.match(held.track, { onUndefined: () => Predicate.isNotUndefined(layoutNodeOf(nodeAtMount, nodeLater)), onDefined: () => held.projected }),
583
+ });
584
+ }
585
+ const spine = makeElementSpine(spineOptions);
586
+ onCleanup(spine.dispose);
587
+ // Its Imperative animations (#433) go through its spine while it's mounted.
588
+ onCleanup(registerAnimatable(element, spine));
589
+ // Its Animation controls (#433) reach it while it's mounted.
590
+ UndefinedOr.map(controls, (c) => onCleanup(subscribe(c.controls, controlledElement(c.set, { custom: () => untrack(cfg).custom, snapshot }, spine.stop))));
591
+ // A child back under its key starts where its leaver is drawn (#286), before its first Retarget.
592
+ if (Predicate.isNotUndefined(taken))
593
+ spine.seed(taken);
594
+ // The spine effect depends on BOTH `target` and `canStart` (ADR-0007 `when`):
595
+ // Solid's `on` runs its callback under `untrack`, so the gate accessor MUST
596
+ // be an explicit dependency for a gate flip (false -> true) to RE-RUN this
597
+ // effect and release the held Retarget. `target` already depends on cfg() +
598
+ // parent.variant(); adding canStart() releases the gate without restarting on
599
+ // every frame (canStart only changes on settle-signal flips, not per frame).
600
+ createEffect(on(() => {
601
+ const t = target();
602
+ // Track the gate so its flips re-run this effect (value unused).
603
+ if (Predicate.isNotUndefined(canStart))
604
+ canStart();
605
+ return t;
606
+ }, spine.retarget));
607
+ // Live values in `style` (#130, ADR-0043): followed from the first routed key on.
608
+ spine.follow({ resolved: () => untrack(target).resolved, dragging: () => untrack(dragging) });
609
+ }));
610
+ }
611
+ /**
612
+ * Says, once per provider and gesture, that the element wants a gesture its section has no Feature for
613
+ * (#511, ADR-0067 decision 7): outside a lazy load. Development only (its caller's `DEV`).
614
+ */
615
+ const warnMissingGestures = (registry, features, config) => {
616
+ createEffect(() => {
617
+ const c = config();
618
+ const services = features.services();
619
+ if (features.pending())
620
+ return;
621
+ Arr.forEach(GESTURE_FEATURES, ([name, wants, key]) => {
622
+ if (wants(c) && Bool.not(hasService(services, key)))
623
+ registry.warnOnce(name, missingMessage(name, GESTURE_WORDS[name], "@wardic/solid"));
624
+ });
625
+ });
626
+ };
627
+ /**
628
+ * Says, once per provider, that a colour of the element's needs the `colors` Feature (#511, ADR-0067
629
+ * decision 7): a value naming a wide-gamut space, while the page reads none, outside a lazy load.
630
+ * Development only (its caller's `DEV`).
631
+ */
632
+ const warnUnreadColors = (registry, features, values) => {
633
+ createEffect(() => {
634
+ const unread = unreadColorIn(values());
635
+ if (Predicate.isUndefined(unread) || features.pending())
636
+ return;
637
+ registry.warnOnce("colors", missingMessage("colors", `The colour \`${unread}\``, "@wardic/solid"));
638
+ });
639
+ };
640
+ /**
641
+ * {@link createWard} with a `<Reorder>` item's additions (internal, ADR-0020; not
642
+ * exported from the package).
643
+ */
644
+ export function createWardWith(config, internal = NO_INTERNALS) {
645
+ const runtime = useWardicRuntime();
646
+ // Its Features (#511, ADR-0067), a Complete element's every one: what they register, a server
647
+ // render's elements read too (the `colors` Feature's spaces).
648
+ const features = useElementFeatures(internal.brings, internal.complete === true);
649
+ // A server render takes the lean path: the Starting style only, no spine (ADR-0021).
650
+ if (isServer)
651
+ return serverWard(config, internal);
652
+ const gate = useWardicGate();
653
+ // Owner-scoped, SSR/hydration-stable unique id for this element's gate entry
654
+ // (Solid's createUniqueId, not a module counter — see ADR note / no global state).
655
+ const id = createUniqueId();
656
+ // Normalize to an Accessor<WardConfig>. A WardConfig is always an object,
657
+ // so `typeof config === "function"` is a safe discriminant for the accessor. With Animation
658
+ // controls for its `animate` (#433), each change they make is its entry.
659
+ const { cfg, controls } = controlledOf(accessorOf(config));
660
+ // Its place in variant orchestration (ADR-0007, #50): what it hands its children, and,
661
+ // as a Variant child, the ancestor it inherits from and joins (its stagger slot, its
662
+ // `when`). Read at hook-call time (component body owner), for this instance's lifetime.
663
+ const node = createVariantNode(cfg, useVariantContext(), UndefinedOr.map(controls, (c) => c.change));
664
+ // The Renderer's PURE project (ADR-0003: synchronous, no engine), read once by the provider (#618, M1).
665
+ const { project } = useWardicRenderer();
666
+ // Starting style: resolved purely from the config read EXACTLY ONCE (untrack — no
667
+ // reactive dependency, must not re-seed after mount), with the inherited `initial`
668
+ // name for a Variant child that has none (#50). It's the `style` until the first
669
+ // commit, so pre-mount render carries the initial style (no flash).
670
+ const initialConfig = untrack(cfg);
671
+ const presence = usePresenceContext();
672
+ const initialValues = startingValuesOf(initialConfig, node.inherited, presenceBlocksInitial(presence), untrack);
673
+ // A layout node's is drawn through its projection at rest, as its first commit draws it (#245).
674
+ const layoutNode = isLayoutNode(initialConfig);
675
+ const drawnStart = drawnAtRest(initialValues, layoutNode, initialConfig.transformTemplate);
676
+ // The Starting style: the projected SSR initial, carried by `style` until the gate's
677
+ // first commit (ADR-0021 decision 6, ADR-0034). An svg-inner tag's attribute keys are
678
+ // split off and set once as attributes, as the server renders them (ADR-0021); the
679
+ // gate's commits take over at mount. While hydrating, it's what the server rendered, the
680
+ // DOM's project (the Hydration hold, ADR-0021 decision 2): the Environment's Renderer
681
+ // takes over at the first frame, and a different Starting style from it is noted once
682
+ // (cold path).
683
+ const projected = project(drawnStart);
684
+ const hydrating = isHydrating();
685
+ const startingPatch = Bool.match(hydrating, { onTrue: () => DomRenderer.project(drawnStart), onFalse: () => projected });
686
+ if (hydrating)
687
+ flagStartingStyle(runtime, id, startingPatch, projected);
688
+ const seed = Svg.splitPatchForTag(internal.tag, startingPatch);
689
+ // Its routed `style` keys (#130, ADR-0043): its Live values and transform keys, which the gate
690
+ // writes from mount, and the Starting style carries until then, under `initial`'s.
691
+ const live = createLiveStyle({ registry: registryOf(runtime), onDroppedTransform: () => warnDroppedTransform(runtime, id), reactivity });
692
+ const projectStarting = Bool.match(hydrating, { onTrue: () => DomRenderer.project, onFalse: () => project });
693
+ const startingWith = (routed) => Svg.splitPatchForTag(internal.tag, projectStarting(drawnAtRest({ ...routed, ...initialValues }, layoutNode, initialConfig.transformTemplate))).style;
694
+ // A drag element's defaults (ADR-0019 *Amendment (Reorder)*), under the user's
695
+ // style: `drag` is static, so they're chosen once.
696
+ const dragDefaults = dragDefaultsOf(untrack(cfg), internal);
697
+ const baseStyle = internal.baseStyle;
698
+ // The props `ward(userProps)` was last called with: their `style` is this element's style
699
+ // link (ADR-0022), read untracked at need (the live getter on `wardic.*`), and its
700
+ // fallback once the gate commits (ADR-0034).
701
+ let lastUserProps = NO_USER_PROPS;
702
+ const elementStyle = createElementStyle({
703
+ userStyle: () => lastUserProps.style,
704
+ starting: seed.style,
705
+ startingWith,
706
+ live,
707
+ defaults: dragDefaults,
708
+ base: baseStyle,
709
+ reactivity,
710
+ });
711
+ // The element, available only after ref-mount. The spine is gated on it. Under a presence, it's
712
+ // told as it's made (#286): its `key`, and whether it's a twin. With none, nothing is made here.
713
+ const [el, setEl] = createSignal();
714
+ // The last element its ref was given, and one given after that one left the page, which enters
715
+ // fresh (#414). Read as the ref is called, before Solid inserts the element: one replacing the last
716
+ // in the same update finds it still on the page, and carries on.
717
+ let refd;
718
+ let fresh;
719
+ const refElement = (element) => {
720
+ if (Predicate.isNotUndefined(refd) && refd !== element && Bool.not(refd.isConnected))
721
+ fresh = element;
722
+ refd = element;
723
+ setEl(element);
724
+ };
725
+ const setElement = madeWith(presence, refElement, initialConfig);
726
+ // Run the shared spine: the gate commits each flushed Patch onto this element
727
+ // (ADR-0006, ADR-0034), and the sink's hooks switch its `style`. Its variant node
728
+ // wires the orchestration (ADR-0007, #50): the context it inherits names from, its
729
+ // stagger delay as a Variant child, the `when` gates on its start, and its settle report.
730
+ runSpine({
731
+ runtime,
732
+ gate,
733
+ id,
734
+ el,
735
+ cfg,
736
+ controls,
737
+ parent: node.inherited,
738
+ extraDelay: node.extraDelay,
739
+ byName: node.names,
740
+ canStart: node.canStart,
741
+ bindGestures: node.bindGestures,
742
+ onFrame: node.onFrame,
743
+ internal,
744
+ styleOf: () => lastUserProps.style,
745
+ live,
746
+ // The gate commits onto the element (an svg-inner element's attribute keys as
747
+ // attributes, ADR-0014); the hooks switch the spread's `style` (ADR-0034).
748
+ makeSink: (element) => ({ target: element, ...elementStyle.hooks }),
749
+ // The spread's `style` and attributes carry the drag defaults and the base style, unless
750
+ // they reach a wrapped component, which may not pass them on (#253).
751
+ defaultsInProps: internal.defaultsOnElement !== true,
752
+ hydrating,
753
+ tag: internal.tag,
754
+ entersFresh: (element) => element === fresh,
755
+ restartStyle: (start) => elementStyle.restart(Svg.splitPatchForTag(internal.tag, project(drawnAtRest(start.initialValues, layoutNode, untrack(cfg).transformTemplate))).style),
756
+ features,
757
+ });
758
+ // `<ward.Provider>` publishes what this instance hands its children (#50): its own
759
+ // variant context, its parent's passed through, or none.
760
+ const Provider = (props) => (<WardicVariantContext.Provider value={node.provided}>{props.children}</WardicVariantContext.Provider>);
761
+ // The element's value per key (#130, ADR-0043 decision 5): the gate's output while it holds the
762
+ // key, else where the key rests, read when the accessor is (the user's style as last given, a
763
+ // reactive `style` prop tracked).
764
+ const restingValueOf = (key) => restingOf(key, initialValues, lastUserProps.style, (raw) => live.read(raw));
765
+ // One accessor a key, made on first ask: most elements ask none.
766
+ let values;
767
+ const value = (key) => {
768
+ if (Predicate.isUndefined(values))
769
+ values = new Map();
770
+ const known = values.get(key);
771
+ if (Predicate.isNotUndefined(known))
772
+ return known;
773
+ const shown = fromAtom(gate.valueOf(id, key));
774
+ const accessor = () => UndefinedOr.match(shown(), { onUndefined: () => restingValueOf(key), onDefined: identity });
775
+ values.set(key, accessor);
776
+ return accessor;
777
+ };
778
+ // The callable + its `.Provider` property (ADR-0007). Object.assign keeps the
779
+ // callable's merge API (ward() / ward({ ref, style })) intact while attaching
780
+ // Provider as a property, and the cast aligns it with the `Ward` type.
781
+ const ward = Object.assign((userProps = NO_USER_PROPS) => {
782
+ lastUserProps = userProps;
783
+ return {
784
+ // Merge the user's ref (if any) with ward's internal element setter so BOTH
785
+ // are invoked with the live element on mount (Option A).
786
+ ref: mergeRefs(userProps.ref, setElement),
787
+ // Getter so spreading {...ward()} stays reactive (Solid tracks the access): the
788
+ // Starting style over the user's until the first commit, then the user's without the
789
+ // keys the gate holds (ADR-0034). It never changes per frame.
790
+ get style() {
791
+ return elementStyle.style(userProps.style);
792
+ },
793
+ ...seed.attrs,
794
+ ...UndefinedOr.match(dragDefaults, { onUndefined: () => ({}), onDefined: () => Style.DRAG_DEFAULT_ATTRIBUTES }),
795
+ };
796
+ }, { Provider, value: value, atom: (key) => gate.valueOf(id, key) });
797
+ return ward;
798
+ }
799
+ /** A server's output Atom: nothing is written there, so it stays `undefined`. */
800
+ const NO_OUTPUT = Atom.make(undefined);
801
+ /**
802
+ * {@link createWardWith} during a server render (ADR-0021, decisions 1 and 4): the element's
803
+ * Starting style and static attributes, computed purely, and nothing else: no runtime, no
804
+ * spine, no signals. Hydration keys must land where the client's render puts them, so it
805
+ * makes the client's one `createUniqueId` call in the same place, and its `.Provider`
806
+ * renders the same component nesting, with a variant context that carries the names and
807
+ * transitions but no orchestration.
808
+ */
809
+ const serverWard = (config, internal = NO_INTERNALS) => {
810
+ // The client's gate id: keeps every later hydration key in step.
811
+ createUniqueId();
812
+ // Animation controls (#433) set nothing on a server: no entry yet, and controlled, as on the client.
813
+ const c = uncontrolledOf(withConfigTransition(accessorOf(config)(), useWardicConfig()));
814
+ // The same names the client hands down, read once, with orchestration that does nothing
815
+ // (#50); a Variant child's Starting style starts from its ancestor's `initial` name.
816
+ const node = serverVariantNode(c, useVariantContext());
817
+ const layoutNode = isLayoutNode(c);
818
+ const seed = Style.starting(internal.tag, drawnAtRest(startingValuesOf(c, node.inherited, presenceBlocksInitial(usePresenceContext()), untrack), layoutNode, c.transformTemplate));
819
+ const dragDefaults = dragDefaultsOf(c, internal);
820
+ const initialValues = startingValuesOf(c, node.inherited, presenceBlocksInitial(usePresenceContext()), untrack);
821
+ // Its Appear animation (#48, ADR-0044): its slot in the render's, and the group its Variant
822
+ // children join when it leads one.
823
+ const appear = serverAppearOf(c, internal.tag, initialValues, node, startsQuiet(c, node.inherited, presenceBlocksInitial(usePresenceContext()), untrack));
824
+ const Provider = (props) => (<WardicVariantContext.Provider value={appear.provided}>{props.children}</WardicVariantContext.Provider>);
825
+ const read = (value) => readServerStyle(value);
826
+ let lastStyle;
827
+ const ward = Object.assign((userProps = NO_USER_PROPS) => {
828
+ lastStyle = userProps.style;
829
+ // Its routed keys' values join the Starting style, under `initial`'s (#130).
830
+ const parts = split(userProps.style);
831
+ // A style with its own `animation` keeps it: the element's Appear animation would take its place.
832
+ const ownAnimation = setsAnimation(parts.css);
833
+ if (ownAnimation)
834
+ appear.veto("its own style sets an animation");
835
+ return {
836
+ ref: UndefinedOr.match(userProps.ref, { onUndefined: () => noRef, onDefined: identity }),
837
+ style: pipe(serverStartingStyle(internal.tag, seed.style, initialValues, parts.routed, layoutNode, untrack, c.transformTemplate), Style.over(parts.css), Style.over(UndefinedOr.match(internal.baseStyle, { onUndefined: constUndefined, onDefined: (base) => base() })), Style.over(dragDefaults), Style.over(Bool.match(ownAnimation, { onTrue: constUndefined, onFalse: () => appear.style }))),
838
+ ...seed.attrs,
839
+ ...UndefinedOr.match(dragDefaults, { onUndefined: () => ({}), onDefined: () => Style.DRAG_DEFAULT_ATTRIBUTES }),
840
+ };
841
+ }, {
842
+ Provider,
843
+ value: ((key) => () => restingOf(key, initialValues, lastStyle, read)),
844
+ atom: () => NO_OUTPUT,
845
+ [SERVER_APPEAR]: appear,
846
+ });
847
+ return ward;
848
+ };
849
+ /**
850
+ * A server element's subtree, rendered inside its Appear entry (#245): a late chunk's root puts the
851
+ * chunk's `<style>` after itself, server text its client doesn't render (the provider moves it into
852
+ * the head before the chunk hydrates, `Appear.adoptChunks`). Per element on a server: an element in
853
+ * the shell, most, renders as it is, with guards and no allocation.
854
+ */
855
+ export const renderServerElement = (appear, render) => {
856
+ if (Predicate.isUndefined(appear) || Bool.not(appear.late) || Predicate.isUndefined(appear.state))
857
+ return render();
858
+ const state = appear.state;
859
+ const element = state.within(true, render);
860
+ if (Bool.not(appear.chunkRoot))
861
+ return element;
862
+ return [element, () => ({ t: state.chunk() })];
863
+ };
864
+ /** Where a server ward keeps its Appear entry, for the `wardic.<tag>` that renders it (#245). Internal. */
865
+ const SERVER_APPEAR = Symbol("wardic.serverAppear");
866
+ /** A server ward's Appear entry (#245); `undefined` for a client one. Internal. */
867
+ export const serverAppearOfWard = (ward) => ward[SERVER_APPEAR];
868
+ /** {@link appearEntryOf} with this provider's Appear state (#48, ADR-0044) and its nearest `WardicConfig`'s reduced motion (#434). */
869
+ export const serverAppearOf = (c, tag, initialValues, node, quiet) => appearEntryOf(useWardicAppear(), c, tag, initialValues, node, quiet, settingOf(useWardicConfig()), useWardicSkipAnimations()());
870
+ /** A style value read on a server: an Atom through a server's own registry, an accessor called (#130). */
871
+ const readServerStyle = (value) => readLive(value, serverRegistryOf, untrack);
872
+ /** A server render's `ref`: Solid never calls it there. */
873
+ const noRef = () => { };
874
+ //# sourceMappingURL=create-ward.jsx.map