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

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