elements-kit 0.0.9 → 0.0.11

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 (313) hide show
  1. package/README.md +3 -4
  2. package/dist/builder/dom.d.mts +1 -1
  3. package/dist/builder/index.d.mts +87 -1
  4. package/dist/builder/index.mjs +1 -1
  5. package/dist/{element-Ddk9YaoE.mjs → element-MXzFk4G2.mjs} +1 -1
  6. package/dist/{index-BtqiEEfc.d.mts → index-Cvdhuy6Y.d.mts} +8 -4
  7. package/dist/index.d.mts +1 -1
  8. package/dist/index.mjs +3 -3
  9. package/dist/{signals/lib → integrations}/react.d.mts +2 -2
  10. package/dist/{signals/lib → integrations}/react.mjs +2 -2
  11. package/dist/jsx-runtime/index.d.mts +2 -2
  12. package/dist/jsx-runtime/index.mjs +3 -3
  13. package/dist/lib-BYJ5jPTG.d.mts +4 -0
  14. package/dist/polyfill-DR5XVnh_.d.mts +9 -0
  15. package/dist/signals/index.d.mts +2 -2
  16. package/dist/signals/index.mjs +2 -2
  17. package/dist/{signals-CLAPw8kk.mjs → signals-DcgXhkU2.mjs} +41 -9
  18. package/dist/slot.d.mts +1 -2
  19. package/dist/{test.BmQO5GaM-CR2qjV1t.mjs → test.BmQO5GaM-ANkhHvbr.mjs} +1 -1
  20. package/dist/utilities/active-element.d.mts +6 -0
  21. package/dist/utilities/active-element.mjs +13 -0
  22. package/dist/utilities/active-element.test.mjs +24 -0
  23. package/dist/{signals/lib → utilities}/debounced.d.mts +3 -3
  24. package/dist/{signals/lib → utilities}/debounced.mjs +7 -6
  25. package/dist/{signals/lib → utilities}/debounced.test.mjs +3 -3
  26. package/dist/{signals/lib → utilities}/element-rect.d.mts +3 -3
  27. package/dist/{signals/lib → utilities}/element-rect.mjs +7 -7
  28. package/dist/{signals/lib → utilities}/element-rect.test.mjs +3 -3
  29. package/dist/utilities/element-scroll.d.mts +16 -0
  30. package/dist/utilities/element-scroll.mjs +52 -0
  31. package/dist/utilities/element-scroll.test.mjs +25 -0
  32. package/dist/utilities/event-driven.d.mts +47 -0
  33. package/dist/utilities/event-driven.mjs +38 -0
  34. package/dist/utilities/event-listener.d.mts +16 -0
  35. package/dist/{signals/lib → utilities}/event-listener.mjs +4 -4
  36. package/dist/{signals/lib → utilities}/event-listener.test.mjs +8 -8
  37. package/dist/utilities/focus-within.d.mts +10 -0
  38. package/dist/utilities/focus-within.mjs +20 -0
  39. package/dist/{signals/lib/is-focus-within.test.mjs → utilities/focus-within.test.mjs} +10 -11
  40. package/dist/utilities/hover.d.mts +11 -0
  41. package/dist/utilities/hover.mjs +20 -0
  42. package/dist/{signals/lib → utilities}/hover.test.mjs +5 -16
  43. package/dist/utilities/intersection-observer.d.mts +8 -0
  44. package/dist/{signals/lib → utilities}/intersection-observer.mjs +3 -4
  45. package/dist/{signals/lib → utilities}/intersection-observer.test.mjs +3 -3
  46. package/dist/{signals/lib → utilities}/interval.d.mts +2 -2
  47. package/dist/{signals/lib → utilities}/interval.mjs +6 -5
  48. package/dist/{signals/lib → utilities}/interval.test.mjs +3 -3
  49. package/dist/utilities/location.d.mts +24 -0
  50. package/dist/utilities/location.mjs +54 -0
  51. package/dist/utilities/location.test.mjs +60 -0
  52. package/dist/utilities/long-press.d.mts +10 -0
  53. package/dist/utilities/long-press.mjs +27 -0
  54. package/dist/{signals/lib → utilities}/long-press.test.mjs +3 -3
  55. package/dist/{signals/lib → utilities}/media-devices.d.mts +3 -3
  56. package/dist/{signals/lib → utilities}/media-devices.mjs +5 -5
  57. package/dist/{signals/lib → utilities}/media-devices.test.mjs +6 -8
  58. package/dist/utilities/media-player.d.mts +22 -0
  59. package/dist/utilities/media-player.mjs +36 -0
  60. package/dist/utilities/media-player.test.mjs +100 -0
  61. package/dist/{signals/lib/media.d.mts → utilities/media-query.d.mts} +4 -4
  62. package/dist/utilities/media-query.mjs +19 -0
  63. package/dist/utilities/mutation-observer.d.mts +8 -0
  64. package/dist/{signals/lib → utilities}/mutation-observer.mjs +3 -3
  65. package/dist/{signals/lib → utilities}/mutation-observer.test.mjs +3 -3
  66. package/dist/{signals/lib → utilities}/on-click-outside.d.mts +3 -3
  67. package/dist/utilities/on-click-outside.mjs +17 -0
  68. package/dist/{signals/lib → utilities}/on-click-outside.test.mjs +7 -18
  69. package/dist/utilities/orientation.d.mts +10 -0
  70. package/dist/utilities/orientation.mjs +21 -0
  71. package/dist/utilities/previous.d.mts +12 -0
  72. package/dist/utilities/previous.mjs +24 -0
  73. package/dist/utilities/previous.test.mjs +88 -0
  74. package/dist/utilities/resize-observer.d.mts +8 -0
  75. package/dist/{signals/lib → utilities}/resize-observer.mjs +4 -5
  76. package/dist/utilities/routing.d.mts +59 -0
  77. package/dist/utilities/routing.mjs +89 -0
  78. package/dist/utilities/routing.test.mjs +128 -0
  79. package/dist/utilities/search-params.d.mts +13 -0
  80. package/dist/utilities/search-params.mjs +23 -0
  81. package/dist/utilities/search-params.test.mjs +35 -0
  82. package/dist/utilities/storage.d.mts +22 -0
  83. package/dist/utilities/storage.mjs +65 -0
  84. package/dist/utilities/storage.test.mjs +137 -0
  85. package/dist/{signals/lib → utilities}/throttled.d.mts +2 -2
  86. package/dist/utilities/throttled.mjs +36 -0
  87. package/dist/{signals/lib → utilities}/throttled.test.mjs +3 -3
  88. package/dist/{signals/lib → utilities}/timeout.d.mts +6 -5
  89. package/dist/utilities/timeout.mjs +42 -0
  90. package/dist/{signals/lib → utilities}/timeout.test.mjs +7 -7
  91. package/dist/utilities/window-size.d.mts +10 -0
  92. package/dist/utilities/window-size.mjs +22 -0
  93. package/dist/utilities/window-size.test.mjs +42 -0
  94. package/package.json +11 -6
  95. package/dist/index-CKjDUp1B.d.mts +0 -89
  96. package/dist/polyfill-AFIi9kAN.d.mts +0 -14
  97. package/dist/signals/lib/active-element.d.mts +0 -10
  98. package/dist/signals/lib/active-element.mjs +0 -20
  99. package/dist/signals/lib/active-element.test.mjs +0 -39
  100. package/dist/signals/lib/animation-frames.d.mts +0 -18
  101. package/dist/signals/lib/animation-frames.mjs +0 -48
  102. package/dist/signals/lib/animation-frames.test.mjs +0 -52
  103. package/dist/signals/lib/async-retry.d.mts +0 -21
  104. package/dist/signals/lib/async-retry.mjs +0 -57
  105. package/dist/signals/lib/async-retry.test.mjs +0 -57
  106. package/dist/signals/lib/audio.d.mts +0 -26
  107. package/dist/signals/lib/audio.mjs +0 -60
  108. package/dist/signals/lib/audio.test.mjs +0 -54
  109. package/dist/signals/lib/battery.d.mts +0 -17
  110. package/dist/signals/lib/battery.mjs +0 -45
  111. package/dist/signals/lib/battery.test.mjs +0 -38
  112. package/dist/signals/lib/before-unload.d.mts +0 -11
  113. package/dist/signals/lib/before-unload.mjs +0 -20
  114. package/dist/signals/lib/before-unload.test.mjs +0 -29
  115. package/dist/signals/lib/clipboard.d.mts +0 -15
  116. package/dist/signals/lib/clipboard.mjs +0 -25
  117. package/dist/signals/lib/clipboard.test.mjs +0 -53
  118. package/dist/signals/lib/counter.d.mts +0 -18
  119. package/dist/signals/lib/counter.mjs +0 -21
  120. package/dist/signals/lib/counter.test.d.mts +0 -1
  121. package/dist/signals/lib/counter.test.mjs +0 -74
  122. package/dist/signals/lib/document-title.d.mts +0 -10
  123. package/dist/signals/lib/document-title.mjs +0 -15
  124. package/dist/signals/lib/document-title.test.d.mts +0 -1
  125. package/dist/signals/lib/document-title.test.mjs +0 -33
  126. package/dist/signals/lib/element-size.d.mts +0 -16
  127. package/dist/signals/lib/element-size.mjs +0 -32
  128. package/dist/signals/lib/element-size.test.d.mts +0 -1
  129. package/dist/signals/lib/element-size.test.mjs +0 -86
  130. package/dist/signals/lib/event-listener.d.mts +0 -14
  131. package/dist/signals/lib/favicon.d.mts +0 -10
  132. package/dist/signals/lib/favicon.mjs +0 -24
  133. package/dist/signals/lib/favicon.test.d.mts +0 -1
  134. package/dist/signals/lib/favicon.test.mjs +0 -28
  135. package/dist/signals/lib/finite-state-machine.d.mts +0 -22
  136. package/dist/signals/lib/finite-state-machine.mjs +0 -26
  137. package/dist/signals/lib/finite-state-machine.test.d.mts +0 -1
  138. package/dist/signals/lib/finite-state-machine.test.mjs +0 -66
  139. package/dist/signals/lib/fullscreen.d.mts +0 -15
  140. package/dist/signals/lib/fullscreen.mjs +0 -26
  141. package/dist/signals/lib/fullscreen.test.d.mts +0 -1
  142. package/dist/signals/lib/fullscreen.test.mjs +0 -56
  143. package/dist/signals/lib/geolocation.d.mts +0 -15
  144. package/dist/signals/lib/geolocation.mjs +0 -30
  145. package/dist/signals/lib/geolocation.test.d.mts +0 -1
  146. package/dist/signals/lib/geolocation.test.mjs +0 -37
  147. package/dist/signals/lib/hash.d.mts +0 -10
  148. package/dist/signals/lib/hash.mjs +0 -20
  149. package/dist/signals/lib/hash.test.d.mts +0 -1
  150. package/dist/signals/lib/hash.test.mjs +0 -47
  151. package/dist/signals/lib/hover.d.mts +0 -11
  152. package/dist/signals/lib/hover.mjs +0 -23
  153. package/dist/signals/lib/intersection-observer.d.mts +0 -8
  154. package/dist/signals/lib/is-document-visible.d.mts +0 -11
  155. package/dist/signals/lib/is-document-visible.mjs +0 -19
  156. package/dist/signals/lib/is-document-visible.test.d.mts +0 -1
  157. package/dist/signals/lib/is-document-visible.test.mjs +0 -58
  158. package/dist/signals/lib/is-focus-within.d.mts +0 -10
  159. package/dist/signals/lib/is-focus-within.mjs +0 -28
  160. package/dist/signals/lib/is-focus-within.test.d.mts +0 -1
  161. package/dist/signals/lib/is-idle.d.mts +0 -10
  162. package/dist/signals/lib/is-idle.mjs +0 -37
  163. package/dist/signals/lib/is-idle.test.d.mts +0 -1
  164. package/dist/signals/lib/is-idle.test.mjs +0 -50
  165. package/dist/signals/lib/is-in-viewport.d.mts +0 -10
  166. package/dist/signals/lib/is-in-viewport.mjs +0 -16
  167. package/dist/signals/lib/is-in-viewport.test.d.mts +0 -1
  168. package/dist/signals/lib/is-in-viewport.test.mjs +0 -74
  169. package/dist/signals/lib/key-press.d.mts +0 -13
  170. package/dist/signals/lib/key-press.mjs +0 -25
  171. package/dist/signals/lib/key-press.test.d.mts +0 -1
  172. package/dist/signals/lib/key-press.test.mjs +0 -52
  173. package/dist/signals/lib/list.d.mts +0 -19
  174. package/dist/signals/lib/list.mjs +0 -36
  175. package/dist/signals/lib/list.test.d.mts +0 -1
  176. package/dist/signals/lib/list.test.mjs +0 -104
  177. package/dist/signals/lib/lock-body-scroll.d.mts +0 -8
  178. package/dist/signals/lib/lock-body-scroll.mjs +0 -17
  179. package/dist/signals/lib/lock-body-scroll.test.d.mts +0 -1
  180. package/dist/signals/lib/lock-body-scroll.test.mjs +0 -37
  181. package/dist/signals/lib/long-press.d.mts +0 -10
  182. package/dist/signals/lib/long-press.mjs +0 -29
  183. package/dist/signals/lib/map.d.mts +0 -18
  184. package/dist/signals/lib/map.mjs +0 -33
  185. package/dist/signals/lib/map.test.d.mts +0 -1
  186. package/dist/signals/lib/map.test.mjs +0 -60
  187. package/dist/signals/lib/media.mjs +0 -26
  188. package/dist/signals/lib/motion.d.mts +0 -15
  189. package/dist/signals/lib/motion.mjs +0 -27
  190. package/dist/signals/lib/motion.test.d.mts +0 -1
  191. package/dist/signals/lib/motion.test.mjs +0 -51
  192. package/dist/signals/lib/mouse-position.d.mts +0 -14
  193. package/dist/signals/lib/mouse-position.mjs +0 -22
  194. package/dist/signals/lib/mouse-position.test.d.mts +0 -1
  195. package/dist/signals/lib/mouse-position.test.mjs +0 -44
  196. package/dist/signals/lib/mouse-wheel.d.mts +0 -10
  197. package/dist/signals/lib/mouse-wheel.mjs +0 -17
  198. package/dist/signals/lib/mouse-wheel.test.d.mts +0 -1
  199. package/dist/signals/lib/mouse-wheel.test.mjs +0 -38
  200. package/dist/signals/lib/mutation-observer.d.mts +0 -8
  201. package/dist/signals/lib/network-state.d.mts +0 -17
  202. package/dist/signals/lib/network-state.mjs +0 -34
  203. package/dist/signals/lib/network-state.test.d.mts +0 -1
  204. package/dist/signals/lib/network-state.test.mjs +0 -61
  205. package/dist/signals/lib/on-click-outside.mjs +0 -20
  206. package/dist/signals/lib/orientation.d.mts +0 -13
  207. package/dist/signals/lib/orientation.mjs +0 -21
  208. package/dist/signals/lib/orientation.test.d.mts +0 -1
  209. package/dist/signals/lib/orientation.test.mjs +0 -43
  210. package/dist/signals/lib/page-leave.d.mts +0 -8
  211. package/dist/signals/lib/page-leave.mjs +0 -12
  212. package/dist/signals/lib/page-leave.test.d.mts +0 -1
  213. package/dist/signals/lib/page-leave.test.mjs +0 -29
  214. package/dist/signals/lib/permission.d.mts +0 -14
  215. package/dist/signals/lib/permission.mjs +0 -26
  216. package/dist/signals/lib/permission.test.d.mts +0 -1
  217. package/dist/signals/lib/permission.test.mjs +0 -50
  218. package/dist/signals/lib/persisted-state.d.mts +0 -11
  219. package/dist/signals/lib/persisted-state.mjs +0 -25
  220. package/dist/signals/lib/persisted-state.test.d.mts +0 -1
  221. package/dist/signals/lib/persisted-state.test.mjs +0 -70
  222. package/dist/signals/lib/pressed-keys.d.mts +0 -10
  223. package/dist/signals/lib/pressed-keys.mjs +0 -32
  224. package/dist/signals/lib/pressed-keys.test.d.mts +0 -1
  225. package/dist/signals/lib/pressed-keys.test.mjs +0 -54
  226. package/dist/signals/lib/previous-distinct.d.mts +0 -10
  227. package/dist/signals/lib/previous-distinct.mjs +0 -22
  228. package/dist/signals/lib/previous-distinct.test.d.mts +0 -1
  229. package/dist/signals/lib/previous-distinct.test.mjs +0 -50
  230. package/dist/signals/lib/previous.d.mts +0 -10
  231. package/dist/signals/lib/previous.mjs +0 -18
  232. package/dist/signals/lib/previous.test.mjs +0 -47
  233. package/dist/signals/lib/queue.d.mts +0 -17
  234. package/dist/signals/lib/queue.mjs +0 -28
  235. package/dist/signals/lib/queue.test.d.mts +0 -1
  236. package/dist/signals/lib/queue.test.mjs +0 -61
  237. package/dist/signals/lib/raf.d.mts +0 -17
  238. package/dist/signals/lib/raf.mjs +0 -38
  239. package/dist/signals/lib/raf.test.d.mts +0 -1
  240. package/dist/signals/lib/raf.test.mjs +0 -58
  241. package/dist/signals/lib/resize-observer.d.mts +0 -8
  242. package/dist/signals/lib/resize-observer.test.d.mts +0 -1
  243. package/dist/signals/lib/resize-observer.test.mjs +0 -44
  244. package/dist/signals/lib/resource.d.mts +0 -23
  245. package/dist/signals/lib/resource.mjs +0 -43
  246. package/dist/signals/lib/resource.test.d.mts +0 -1
  247. package/dist/signals/lib/resource.test.mjs +0 -56
  248. package/dist/signals/lib/scroll-state.d.mts +0 -19
  249. package/dist/signals/lib/scroll-state.mjs +0 -46
  250. package/dist/signals/lib/scroll-state.test.d.mts +0 -1
  251. package/dist/signals/lib/scroll-state.test.mjs +0 -94
  252. package/dist/signals/lib/scrolling.d.mts +0 -12
  253. package/dist/signals/lib/scrolling.mjs +0 -26
  254. package/dist/signals/lib/scrolling.test.d.mts +0 -1
  255. package/dist/signals/lib/scrolling.test.mjs +0 -57
  256. package/dist/signals/lib/search-params.d.mts +0 -16
  257. package/dist/signals/lib/search-params.mjs +0 -37
  258. package/dist/signals/lib/search-params.test.mjs +0 -56
  259. package/dist/signals/lib/set.d.mts +0 -18
  260. package/dist/signals/lib/set.mjs +0 -38
  261. package/dist/signals/lib/set.test.d.mts +0 -1
  262. package/dist/signals/lib/set.test.mjs +0 -70
  263. package/dist/signals/lib/start-typing.d.mts +0 -9
  264. package/dist/signals/lib/start-typing.mjs +0 -39
  265. package/dist/signals/lib/start-typing.test.d.mts +0 -1
  266. package/dist/signals/lib/start-typing.test.mjs +0 -64
  267. package/dist/signals/lib/state-history.d.mts +0 -21
  268. package/dist/signals/lib/state-history.mjs +0 -61
  269. package/dist/signals/lib/state-history.test.d.mts +0 -1
  270. package/dist/signals/lib/state-history.test.mjs +0 -106
  271. package/dist/signals/lib/state-validator.d.mts +0 -16
  272. package/dist/signals/lib/state-validator.mjs +0 -21
  273. package/dist/signals/lib/state-validator.test.d.mts +0 -1
  274. package/dist/signals/lib/state-validator.test.mjs +0 -41
  275. package/dist/signals/lib/throttled.mjs +0 -45
  276. package/dist/signals/lib/timeout.mjs +0 -39
  277. package/dist/signals/lib/toggle.d.mts +0 -12
  278. package/dist/signals/lib/toggle.mjs +0 -12
  279. package/dist/signals/lib/toggle.test.d.mts +0 -1
  280. package/dist/signals/lib/toggle.test.mjs +0 -43
  281. package/dist/signals/lib/video.d.mts +0 -25
  282. package/dist/signals/lib/video.mjs +0 -59
  283. package/dist/signals/lib/video.test.d.mts +0 -1
  284. package/dist/signals/lib/video.test.mjs +0 -51
  285. package/dist/signals/lib/watch.d.mts +0 -16
  286. package/dist/signals/lib/watch.mjs +0 -31
  287. package/dist/signals/lib/watch.test.d.mts +0 -1
  288. package/dist/signals/lib/watch.test.mjs +0 -51
  289. package/dist/signals/lib/window-size.d.mts +0 -14
  290. package/dist/signals/lib/window-size.mjs +0 -22
  291. package/dist/signals/lib/window-size.test.mjs +0 -50
  292. /package/dist/{signals/lib → utilities}/active-element.test.d.mts +0 -0
  293. /package/dist/{signals/lib → utilities}/debounced.test.d.mts +0 -0
  294. /package/dist/{signals/lib → utilities}/element-rect.test.d.mts +0 -0
  295. /package/dist/{signals/lib/animation-frames.test.d.mts → utilities/element-scroll.test.d.mts} +0 -0
  296. /package/dist/{signals/lib → utilities}/event-listener.test.d.mts +0 -0
  297. /package/dist/{signals/lib/async-retry.test.d.mts → utilities/focus-within.test.d.mts} +0 -0
  298. /package/dist/{signals/lib → utilities}/hover.test.d.mts +0 -0
  299. /package/dist/{signals/lib → utilities}/intersection-observer.test.d.mts +0 -0
  300. /package/dist/{signals/lib → utilities}/interval.test.d.mts +0 -0
  301. /package/dist/{signals/lib/audio.test.d.mts → utilities/location.test.d.mts} +0 -0
  302. /package/dist/{signals/lib → utilities}/long-press.test.d.mts +0 -0
  303. /package/dist/{signals/lib → utilities}/media-devices.test.d.mts +0 -0
  304. /package/dist/{signals/lib/battery.test.d.mts → utilities/media-player.test.d.mts} +0 -0
  305. /package/dist/{signals/lib → utilities}/mutation-observer.test.d.mts +0 -0
  306. /package/dist/{signals/lib → utilities}/on-click-outside.test.d.mts +0 -0
  307. /package/dist/{signals/lib → utilities}/previous.test.d.mts +0 -0
  308. /package/dist/{signals/lib/before-unload.test.d.mts → utilities/routing.test.d.mts} +0 -0
  309. /package/dist/{signals/lib → utilities}/search-params.test.d.mts +0 -0
  310. /package/dist/{signals/lib/clipboard.test.d.mts → utilities/storage.test.d.mts} +0 -0
  311. /package/dist/{signals/lib → utilities}/throttled.test.d.mts +0 -0
  312. /package/dist/{signals/lib → utilities}/timeout.test.d.mts +0 -0
  313. /package/dist/{signals/lib → utilities}/window-size.test.d.mts +0 -0
@@ -1,38 +0,0 @@
1
- import { d as onCleanup, f as signal } from "../../signals-CLAPw8kk.mjs";
2
- //#region src/signals/lib/raf.ts
3
- /**
4
- * Looping `requestAnimationFrame` wrapper with start/stop control.
5
- *
6
- * The callback receives the `DOMHighResTimeStamp` elapsed since page load.
7
- * Starts running immediately on creation.
8
- */
9
- function createRaf(callback) {
10
- const isRunning = signal(false);
11
- let rafId;
12
- const loop = (time) => {
13
- callback(time);
14
- if (isRunning()) rafId = requestAnimationFrame(loop);
15
- };
16
- const start = () => {
17
- if (isRunning()) return;
18
- isRunning(true);
19
- rafId = requestAnimationFrame(loop);
20
- };
21
- const stop = () => {
22
- isRunning(false);
23
- if (rafId !== void 0) {
24
- cancelAnimationFrame(rafId);
25
- rafId = void 0;
26
- }
27
- };
28
- start();
29
- const cleanup = () => stop();
30
- onCleanup(cleanup);
31
- return Object.assign({
32
- isRunning,
33
- start,
34
- stop
35
- }, { [Symbol.dispose]: cleanup });
36
- }
37
- //#endregion
38
- export { createRaf };
@@ -1 +0,0 @@
1
- export { };
@@ -1,58 +0,0 @@
1
- import { o as effectScope } from "../../signals-CLAPw8kk.mjs";
2
- import { a as describe, n as vi, o as it, r as afterEach, t as globalExpect } from "../../test.BmQO5GaM-CR2qjV1t.mjs";
3
- import { createRaf } from "./raf.mjs";
4
- //#region src/signals/lib/raf.test.ts
5
- afterEach(() => {
6
- document.body.innerHTML = "";
7
- vi.unstubAllGlobals();
8
- });
9
- describe("createRaf", () => {
10
- it("starts running immediately", () => {
11
- vi.stubGlobal("requestAnimationFrame", vi.fn().mockReturnValue(1));
12
- vi.stubGlobal("cancelAnimationFrame", vi.fn());
13
- let r;
14
- effectScope(() => {
15
- r = createRaf(vi.fn());
16
- });
17
- globalExpect(r.isRunning()).toBe(true);
18
- });
19
- it("calls the callback via RAF", () => {
20
- let raf;
21
- vi.stubGlobal("requestAnimationFrame", (cb) => {
22
- raf = cb;
23
- return 1;
24
- });
25
- vi.stubGlobal("cancelAnimationFrame", vi.fn());
26
- const cb = vi.fn();
27
- effectScope(() => {
28
- createRaf(cb);
29
- });
30
- raf?.(16);
31
- globalExpect(cb).toHaveBeenCalledWith(16);
32
- });
33
- it("stop() halts the loop", () => {
34
- vi.stubGlobal("requestAnimationFrame", vi.fn().mockReturnValue(1));
35
- const cancel = vi.fn();
36
- vi.stubGlobal("cancelAnimationFrame", cancel);
37
- let r;
38
- effectScope(() => {
39
- r = createRaf(vi.fn());
40
- });
41
- r.stop();
42
- globalExpect(r.isRunning()).toBe(false);
43
- globalExpect(cancel).toHaveBeenCalled();
44
- });
45
- it("Symbol.dispose stops the loop", () => {
46
- const cancel = vi.fn();
47
- vi.stubGlobal("requestAnimationFrame", vi.fn().mockReturnValue(1));
48
- vi.stubGlobal("cancelAnimationFrame", cancel);
49
- let r;
50
- effectScope(() => {
51
- r = createRaf(vi.fn());
52
- });
53
- r[Symbol.dispose]();
54
- globalExpect(cancel).toHaveBeenCalled();
55
- });
56
- });
57
- //#endregion
58
- export {};
@@ -1,8 +0,0 @@
1
- //#region src/signals/lib/resize-observer.d.ts
2
- /**
3
- * Raw `ResizeObserver` wrapper with automatic cleanup.
4
- * Use `createElementSize` / `createElementRect` for the common cases.
5
- */
6
- declare function createResizeObserver(target: Element | (() => Element | null), callback: ResizeObserverCallback): Disposable;
7
- //#endregion
8
- export { createResizeObserver };
@@ -1 +0,0 @@
1
- export { };
@@ -1,44 +0,0 @@
1
- import { o as effectScope } from "../../signals-CLAPw8kk.mjs";
2
- import { a as describe, n as vi, o as it, r as afterEach, t as globalExpect } from "../../test.BmQO5GaM-CR2qjV1t.mjs";
3
- import { createResizeObserver } from "./resize-observer.mjs";
4
- //#region src/signals/lib/resize-observer.test.ts
5
- afterEach(() => {
6
- document.body.innerHTML = "";
7
- vi.unstubAllGlobals();
8
- });
9
- describe("createResizeObserver", () => {
10
- it("observes a target element", () => {
11
- const target = document.createElement("div");
12
- document.body.appendChild(target);
13
- const observe = vi.fn();
14
- vi.stubGlobal("ResizeObserver", function MockRO() {
15
- return {
16
- observe,
17
- disconnect: vi.fn()
18
- };
19
- });
20
- effectScope(() => {
21
- createResizeObserver(target, vi.fn());
22
- });
23
- globalExpect(observe).toHaveBeenCalledWith(target);
24
- });
25
- it("disconnects on Symbol.dispose", () => {
26
- const target = document.createElement("div");
27
- document.body.appendChild(target);
28
- const disconnect = vi.fn();
29
- vi.stubGlobal("ResizeObserver", function MockRO() {
30
- return {
31
- observe: vi.fn(),
32
- disconnect
33
- };
34
- });
35
- let ro;
36
- effectScope(() => {
37
- ro = createResizeObserver(target, vi.fn());
38
- });
39
- ro[Symbol.dispose]();
40
- globalExpect(disconnect).toHaveBeenCalledOnce();
41
- });
42
- });
43
- //#endregion
44
- export {};
@@ -1,23 +0,0 @@
1
- import { t as Computed } from "../../index-BtqiEEfc.mjs";
2
-
3
- //#region src/signals/lib/resource.d.ts
4
- type ResourceResult<T> = {
5
- data: Computed<T | undefined>;
6
- loading: Computed<boolean>;
7
- error: Computed<unknown>;
8
- refetch(): void;
9
- };
10
- /**
11
- * Runs an async `fetcher` and exposes `data`, `loading`, and `error` as
12
- * reactive computeds. An `AbortController` is created for each fetch; the
13
- * previous request is cancelled whenever `refetch()` is called or the source
14
- * reactive dependencies change.
15
- *
16
- * @param source - Reactive getter whose dependencies trigger a refetch.
17
- * @param fetcher - Receives the resolved source value and an `AbortSignal`.
18
- */
19
- declare function createResource<S, T>(source: () => S, fetcher: (source: S, signal: AbortSignal) => Promise<T>, options?: {
20
- initialValue?: T;
21
- }): ResourceResult<T>;
22
- //#endregion
23
- export { createResource };
@@ -1,43 +0,0 @@
1
- import { a as effect, d as onCleanup, f as signal } from "../../signals-CLAPw8kk.mjs";
2
- //#region src/signals/lib/resource.ts
3
- /**
4
- * Runs an async `fetcher` and exposes `data`, `loading`, and `error` as
5
- * reactive computeds. An `AbortController` is created for each fetch; the
6
- * previous request is cancelled whenever `refetch()` is called or the source
7
- * reactive dependencies change.
8
- *
9
- * @param source - Reactive getter whose dependencies trigger a refetch.
10
- * @param fetcher - Receives the resolved source value and an `AbortSignal`.
11
- */
12
- function createResource(source, fetcher, options) {
13
- const data = signal(options?.initialValue);
14
- const loading = signal(false);
15
- const error = signal(void 0);
16
- const tick = signal(0);
17
- effect(() => {
18
- tick();
19
- const src = source();
20
- const controller = new AbortController();
21
- loading(true);
22
- error(void 0);
23
- fetcher(src, controller.signal).then((result) => {
24
- data(result);
25
- loading(false);
26
- }, (err) => {
27
- if (err.name !== "AbortError") {
28
- error(err);
29
- loading(false);
30
- }
31
- });
32
- onCleanup(() => controller.abort());
33
- });
34
- const refetch = () => tick(tick() + 1);
35
- return {
36
- data,
37
- loading,
38
- error,
39
- refetch
40
- };
41
- }
42
- //#endregion
43
- export { createResource };
@@ -1 +0,0 @@
1
- export { };
@@ -1,56 +0,0 @@
1
- import { f as signal, o as effectScope } from "../../signals-CLAPw8kk.mjs";
2
- import { a as describe, n as vi, o as it, r as afterEach, t as globalExpect } from "../../test.BmQO5GaM-CR2qjV1t.mjs";
3
- import { createResource } from "./resource.mjs";
4
- //#region src/signals/lib/resource.test.ts
5
- afterEach(() => {
6
- document.body.innerHTML = "";
7
- vi.useRealTimers();
8
- });
9
- describe("createResource", () => {
10
- it("starts loading", () => {
11
- const src = signal("url");
12
- let r;
13
- effectScope(() => {
14
- r = createResource(() => src(), async (_s, _signal) => "data");
15
- });
16
- globalExpect(r.loading()).toBe(true);
17
- globalExpect(r.data()).toBeUndefined();
18
- });
19
- it("resolves data and sets loading false", async () => {
20
- const src = signal("url");
21
- let r;
22
- effectScope(() => {
23
- r = createResource(() => src(), (_s, _signal) => Promise.resolve("hello"));
24
- });
25
- await new Promise((res) => setTimeout(res, 0));
26
- globalExpect(r.data()).toBe("hello");
27
- globalExpect(r.loading()).toBe(false);
28
- });
29
- it("captures errors", async () => {
30
- const src = signal("url");
31
- let r;
32
- effectScope(() => {
33
- r = createResource(() => src(), (_s, _signal) => Promise.reject(/* @__PURE__ */ new Error("fail")));
34
- });
35
- await new Promise((res) => setTimeout(res, 0));
36
- globalExpect(r.error()).toBeInstanceOf(Error);
37
- globalExpect(r.loading()).toBe(false);
38
- });
39
- it("refetch re-runs the fetcher", async () => {
40
- const src = signal("url");
41
- let callCount = 0;
42
- let r;
43
- effectScope(() => {
44
- r = createResource(() => src(), async () => {
45
- callCount++;
46
- return "data";
47
- });
48
- });
49
- await new Promise((res) => setTimeout(res, 0));
50
- r.refetch();
51
- await new Promise((res) => setTimeout(res, 0));
52
- globalExpect(callCount).toBe(2);
53
- });
54
- });
55
- //#endregion
56
- export {};
@@ -1,19 +0,0 @@
1
- import { t as Computed } from "../../index-BtqiEEfc.mjs";
2
-
3
- //#region src/signals/lib/scroll-state.d.ts
4
- type ScrollDirection = "left" | "right" | "none";
5
- type VerticalDirection = "up" | "down" | "none";
6
- type ScrollStateResult = {
7
- x: Computed<number>;
8
- y: Computed<number>;
9
- directionX: Computed<ScrollDirection>;
10
- directionY: Computed<VerticalDirection>;
11
- } & Disposable;
12
- /**
13
- * Tracks the scroll position and scroll direction of `target` (defaults to
14
- * `window`). Returns reactive computeds for `x`, `y`, `directionX`, and
15
- * `directionY`.
16
- */
17
- declare function createScrollState(target?: Element | Window | (() => Element | null)): ScrollStateResult;
18
- //#endregion
19
- export { createScrollState };
@@ -1,46 +0,0 @@
1
- import { f as signal } from "../../signals-CLAPw8kk.mjs";
2
- import { createEventListener } from "./event-listener.mjs";
3
- //#region src/signals/lib/scroll-state.ts
4
- function getScrollXY(target) {
5
- if (target instanceof Window) return {
6
- x: target.scrollX,
7
- y: target.scrollY
8
- };
9
- return {
10
- x: target.scrollLeft,
11
- y: target.scrollTop
12
- };
13
- }
14
- /**
15
- * Tracks the scroll position and scroll direction of `target` (defaults to
16
- * `window`). Returns reactive computeds for `x`, `y`, `directionX`, and
17
- * `directionY`.
18
- */
19
- function createScrollState(target) {
20
- const resolved = target === void 0 ? window : typeof target === "function" ? target() ?? window : target;
21
- const initial = getScrollXY(resolved);
22
- const x = signal(initial.x);
23
- const y = signal(initial.y);
24
- const directionX = signal("none");
25
- const directionY = signal("none");
26
- let prevX = initial.x;
27
- let prevY = initial.y;
28
- const handler = () => {
29
- const pos = getScrollXY(resolved);
30
- directionX(pos.x > prevX ? "right" : pos.x < prevX ? "left" : "none");
31
- directionY(pos.y > prevY ? "down" : pos.y < prevY ? "up" : "none");
32
- prevX = pos.x;
33
- prevY = pos.y;
34
- x(pos.x);
35
- y(pos.y);
36
- };
37
- const cleanup = createEventListener(resolved, "scroll", handler);
38
- return Object.assign({
39
- x,
40
- y,
41
- directionX,
42
- directionY
43
- }, { [Symbol.dispose]: cleanup });
44
- }
45
- //#endregion
46
- export { createScrollState };
@@ -1 +0,0 @@
1
- export { };
@@ -1,94 +0,0 @@
1
- import { o as effectScope } from "../../signals-CLAPw8kk.mjs";
2
- import { a as describe, o as it, r as afterEach, t as globalExpect } from "../../test.BmQO5GaM-CR2qjV1t.mjs";
3
- import { createScrollState } from "./scroll-state.mjs";
4
- //#region src/signals/lib/scroll-state.test.ts
5
- afterEach(() => {
6
- document.body.innerHTML = "";
7
- });
8
- describe("createScrollState", () => {
9
- it("starts at (0, 0) for a scrollable element", () => {
10
- const el = document.createElement("div");
11
- document.body.appendChild(el);
12
- let state;
13
- effectScope(() => {
14
- state = createScrollState(el);
15
- });
16
- globalExpect(state.x()).toBe(0);
17
- globalExpect(state.y()).toBe(0);
18
- globalExpect(state.directionX()).toBe("none");
19
- globalExpect(state.directionY()).toBe("none");
20
- });
21
- it("updates x/y and direction on scroll", () => {
22
- const el = document.createElement("div");
23
- Object.defineProperty(el, "scrollLeft", {
24
- value: 0,
25
- writable: true
26
- });
27
- Object.defineProperty(el, "scrollTop", {
28
- value: 0,
29
- writable: true
30
- });
31
- document.body.appendChild(el);
32
- let state;
33
- effectScope(() => {
34
- state = createScrollState(el);
35
- });
36
- Object.defineProperty(el, "scrollLeft", {
37
- value: 50,
38
- writable: true
39
- });
40
- Object.defineProperty(el, "scrollTop", {
41
- value: 100,
42
- writable: true
43
- });
44
- el.dispatchEvent(new Event("scroll"));
45
- globalExpect(state.x()).toBe(50);
46
- globalExpect(state.y()).toBe(100);
47
- globalExpect(state.directionX()).toBe("right");
48
- globalExpect(state.directionY()).toBe("down");
49
- });
50
- it("reports 'left' and 'up' when scrolling backwards", () => {
51
- const el = document.createElement("div");
52
- Object.defineProperty(el, "scrollLeft", {
53
- value: 100,
54
- writable: true
55
- });
56
- Object.defineProperty(el, "scrollTop", {
57
- value: 200,
58
- writable: true
59
- });
60
- document.body.appendChild(el);
61
- let state;
62
- effectScope(() => {
63
- state = createScrollState(el);
64
- });
65
- Object.defineProperty(el, "scrollLeft", {
66
- value: 50,
67
- writable: true
68
- });
69
- Object.defineProperty(el, "scrollTop", {
70
- value: 80,
71
- writable: true
72
- });
73
- el.dispatchEvent(new Event("scroll"));
74
- globalExpect(state.directionX()).toBe("left");
75
- globalExpect(state.directionY()).toBe("up");
76
- });
77
- it("removes the scroll listener on Symbol.dispose", () => {
78
- const el = document.createElement("div");
79
- document.body.appendChild(el);
80
- let state;
81
- effectScope(() => {
82
- state = createScrollState(el);
83
- });
84
- state[Symbol.dispose]();
85
- Object.defineProperty(el, "scrollLeft", {
86
- value: 99,
87
- writable: true
88
- });
89
- el.dispatchEvent(new Event("scroll"));
90
- globalExpect(state.x()).toBe(0);
91
- });
92
- });
93
- //#endregion
94
- export {};
@@ -1,12 +0,0 @@
1
- import { t as Computed } from "../../index-BtqiEEfc.mjs";
2
-
3
- //#region src/signals/lib/scrolling.d.ts
4
- /**
5
- * Returns a `Computed<boolean>` that is `true` while the user is actively
6
- * scrolling `target` (defaults to `window`).
7
- *
8
- * Sets to `false` after `delay` ms of no scroll events (default: 150 ms).
9
- */
10
- declare function createScrolling(target?: Element | Window, delay?: number): Computed<boolean> & Disposable;
11
- //#endregion
12
- export { createScrolling };
@@ -1,26 +0,0 @@
1
- import { d as onCleanup, f as signal } from "../../signals-CLAPw8kk.mjs";
2
- import { createEventListener } from "./event-listener.mjs";
3
- //#region src/signals/lib/scrolling.ts
4
- /**
5
- * Returns a `Computed<boolean>` that is `true` while the user is actively
6
- * scrolling `target` (defaults to `window`).
7
- *
8
- * Sets to `false` after `delay` ms of no scroll events (default: 150 ms).
9
- */
10
- function createScrolling(target = window, delay = 150) {
11
- const scrolling = signal(false);
12
- let timer;
13
- const handler = () => {
14
- scrolling(true);
15
- clearTimeout(timer);
16
- timer = setTimeout(() => scrolling(false), delay);
17
- };
18
- const removeListener = createEventListener(target, "scroll", handler, { passive: true });
19
- onCleanup(() => clearTimeout(timer));
20
- return Object.assign(scrolling, { [Symbol.dispose]: () => {
21
- clearTimeout(timer);
22
- removeListener();
23
- } });
24
- }
25
- //#endregion
26
- export { createScrolling };
@@ -1 +0,0 @@
1
- export { };
@@ -1,57 +0,0 @@
1
- import { o as effectScope } from "../../signals-CLAPw8kk.mjs";
2
- import { a as describe, n as vi, o as it, r as afterEach, t as globalExpect } from "../../test.BmQO5GaM-CR2qjV1t.mjs";
3
- import { createScrolling } from "./scrolling.mjs";
4
- //#region src/signals/lib/scrolling.test.ts
5
- afterEach(() => {
6
- document.body.innerHTML = "";
7
- vi.useRealTimers();
8
- });
9
- describe("createScrolling", () => {
10
- it("starts as false", () => {
11
- vi.useFakeTimers();
12
- const el = document.createElement("div");
13
- document.body.appendChild(el);
14
- let scrolling;
15
- effectScope(() => {
16
- scrolling = createScrolling(el);
17
- });
18
- globalExpect(scrolling()).toBe(false);
19
- });
20
- it("becomes true on scroll event", () => {
21
- vi.useFakeTimers();
22
- const el = document.createElement("div");
23
- document.body.appendChild(el);
24
- let scrolling;
25
- effectScope(() => {
26
- scrolling = createScrolling(el);
27
- });
28
- el.dispatchEvent(new Event("scroll"));
29
- globalExpect(scrolling()).toBe(true);
30
- });
31
- it("returns to false after delay", () => {
32
- vi.useFakeTimers();
33
- const el = document.createElement("div");
34
- document.body.appendChild(el);
35
- let scrolling;
36
- effectScope(() => {
37
- scrolling = createScrolling(el, 150);
38
- });
39
- el.dispatchEvent(new Event("scroll"));
40
- vi.advanceTimersByTime(200);
41
- globalExpect(scrolling()).toBe(false);
42
- });
43
- it("stops reacting after Symbol.dispose", () => {
44
- vi.useFakeTimers();
45
- const el = document.createElement("div");
46
- document.body.appendChild(el);
47
- let scrolling;
48
- effectScope(() => {
49
- scrolling = createScrolling(el);
50
- });
51
- scrolling[Symbol.dispose]();
52
- el.dispatchEvent(new Event("scroll"));
53
- globalExpect(scrolling()).toBe(false);
54
- });
55
- });
56
- //#endregion
57
- export {};
@@ -1,16 +0,0 @@
1
- import { t as Computed } from "../../index-BtqiEEfc.mjs";
2
-
3
- //#region src/signals/lib/search-params.d.ts
4
- type SearchParamsResult = {
5
- params: Computed<URLSearchParams>;
6
- get(key: string): string | null;
7
- set(key: string, value: string): void;
8
- delete(key: string): void;
9
- } & Disposable;
10
- /**
11
- * Returns reactive access to the URL's search params. Writing via `set` /
12
- * `delete` updates both `location.search` and the reactive signal.
13
- */
14
- declare function createSearchParams(): SearchParamsResult;
15
- //#endregion
16
- export { createSearchParams };
@@ -1,37 +0,0 @@
1
- import { f as signal } from "../../signals-CLAPw8kk.mjs";
2
- import { createEventListener } from "./event-listener.mjs";
3
- //#region src/signals/lib/search-params.ts
4
- function readParams() {
5
- return new URLSearchParams(typeof location !== "undefined" ? location.search : "");
6
- }
7
- /**
8
- * Returns reactive access to the URL's search params. Writing via `set` /
9
- * `delete` updates both `location.search` and the reactive signal.
10
- */
11
- function createSearchParams() {
12
- const params = signal(readParams());
13
- const onPopState = () => params(readParams());
14
- const cleanup = createEventListener(window, "popstate", onPopState);
15
- const get = (key) => params().get(key);
16
- const set = (key, value) => {
17
- const next = readParams();
18
- next.set(key, value);
19
- history.replaceState(null, "", `?${next.toString()}`);
20
- params(next);
21
- };
22
- const del = (key) => {
23
- const next = readParams();
24
- next.delete(key);
25
- const qs = next.toString();
26
- history.replaceState(null, "", qs ? `?${qs}` : location.pathname);
27
- params(next);
28
- };
29
- return Object.assign({
30
- params,
31
- get,
32
- set,
33
- delete: del
34
- }, { [Symbol.dispose]: cleanup });
35
- }
36
- //#endregion
37
- export { createSearchParams };
@@ -1,56 +0,0 @@
1
- import { o as effectScope } from "../../signals-CLAPw8kk.mjs";
2
- import { a as describe, o as it, r as afterEach, t as globalExpect } from "../../test.BmQO5GaM-CR2qjV1t.mjs";
3
- import { createSearchParams } from "./search-params.mjs";
4
- //#region src/signals/lib/search-params.test.ts
5
- afterEach(() => {
6
- document.body.innerHTML = "";
7
- history.replaceState(null, "", location.pathname);
8
- });
9
- describe("createSearchParams", () => {
10
- it("reads initial search params", () => {
11
- let sp;
12
- effectScope(() => {
13
- sp = createSearchParams();
14
- });
15
- globalExpect(sp.params()).toBeInstanceOf(URLSearchParams);
16
- });
17
- it("set() updates a param", () => {
18
- let sp;
19
- effectScope(() => {
20
- sp = createSearchParams();
21
- });
22
- sp.set("q", "hello");
23
- globalExpect(sp.get("q")).toBe("hello");
24
- globalExpect(sp.params().get("q")).toBe("hello");
25
- });
26
- it("delete() removes a param", () => {
27
- let sp;
28
- effectScope(() => {
29
- sp = createSearchParams();
30
- });
31
- sp.set("q", "hello");
32
- sp.delete("q");
33
- globalExpect(sp.get("q")).toBeNull();
34
- });
35
- it("updates on popstate event", () => {
36
- let sp;
37
- effectScope(() => {
38
- sp = createSearchParams();
39
- });
40
- history.replaceState(null, "", "?foo=bar");
41
- window.dispatchEvent(new PopStateEvent("popstate"));
42
- globalExpect(sp.get("foo")).toBe("bar");
43
- });
44
- it("stops reacting after Symbol.dispose", () => {
45
- let sp;
46
- effectScope(() => {
47
- sp = createSearchParams();
48
- });
49
- sp[Symbol.dispose]();
50
- history.replaceState(null, "", "?x=1");
51
- window.dispatchEvent(new PopStateEvent("popstate"));
52
- globalExpect(sp.get("x")).toBeNull();
53
- });
54
- });
55
- //#endregion
56
- export {};
@@ -1,18 +0,0 @@
1
- import { t as Computed } from "../../index-BtqiEEfc.mjs";
2
-
3
- //#region src/signals/lib/set.d.ts
4
- type ReactiveSetResult<T> = {
5
- entries: Computed<ReadonlySet<T>>;
6
- add(value: T): void;
7
- remove(value: T): void;
8
- toggle(value: T): void;
9
- has(value: T): boolean;
10
- clear(): void;
11
- size: Computed<number>;
12
- };
13
- /**
14
- * Reactive `Set` with mutation helpers.
15
- */
16
- declare function createSet<T>(initial?: Set<T>): ReactiveSetResult<T>;
17
- //#endregion
18
- export { createSet };