elements-kit 0.0.10 → 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 (310) 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/{signals/lib → utilities}/event-driven.d.mts +2 -2
  33. package/dist/{signals/lib → utilities}/event-driven.mjs +2 -2
  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/{signals/lib/video.mjs → utilities/media-player.mjs} +5 -4
  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/{signals/lib/media.mjs → utilities/media-query.mjs} +6 -6
  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/{signals/lib → utilities}/orientation.mjs +3 -2
  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 -12
  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 -21
  107. package/dist/signals/lib/audio.mjs +0 -35
  108. package/dist/signals/lib/audio.test.mjs +0 -57
  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 -24
  141. package/dist/signals/lib/fullscreen.test.d.mts +0 -1
  142. package/dist/signals/lib/fullscreen.test.mjs +0 -48
  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 -14
  149. package/dist/signals/lib/hash.test.d.mts +0 -1
  150. package/dist/signals/lib/hash.test.mjs +0 -46
  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 -13
  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/motion.d.mts +0 -15
  188. package/dist/signals/lib/motion.mjs +0 -27
  189. package/dist/signals/lib/motion.test.d.mts +0 -1
  190. package/dist/signals/lib/motion.test.mjs +0 -51
  191. package/dist/signals/lib/mouse-position.d.mts +0 -14
  192. package/dist/signals/lib/mouse-position.mjs +0 -22
  193. package/dist/signals/lib/mouse-position.test.d.mts +0 -1
  194. package/dist/signals/lib/mouse-position.test.mjs +0 -44
  195. package/dist/signals/lib/mouse-wheel.d.mts +0 -10
  196. package/dist/signals/lib/mouse-wheel.mjs +0 -17
  197. package/dist/signals/lib/mouse-wheel.test.d.mts +0 -1
  198. package/dist/signals/lib/mouse-wheel.test.mjs +0 -38
  199. package/dist/signals/lib/mutation-observer.d.mts +0 -8
  200. package/dist/signals/lib/network-state.d.mts +0 -17
  201. package/dist/signals/lib/network-state.mjs +0 -34
  202. package/dist/signals/lib/network-state.test.d.mts +0 -1
  203. package/dist/signals/lib/network-state.test.mjs +0 -61
  204. package/dist/signals/lib/on-click-outside.mjs +0 -20
  205. package/dist/signals/lib/orientation.d.mts +0 -13
  206. package/dist/signals/lib/orientation.test.d.mts +0 -1
  207. package/dist/signals/lib/orientation.test.mjs +0 -43
  208. package/dist/signals/lib/page-leave.d.mts +0 -8
  209. package/dist/signals/lib/page-leave.mjs +0 -12
  210. package/dist/signals/lib/page-leave.test.d.mts +0 -1
  211. package/dist/signals/lib/page-leave.test.mjs +0 -29
  212. package/dist/signals/lib/permission.d.mts +0 -14
  213. package/dist/signals/lib/permission.mjs +0 -26
  214. package/dist/signals/lib/permission.test.d.mts +0 -1
  215. package/dist/signals/lib/permission.test.mjs +0 -50
  216. package/dist/signals/lib/persisted-state.d.mts +0 -11
  217. package/dist/signals/lib/persisted-state.mjs +0 -25
  218. package/dist/signals/lib/persisted-state.test.d.mts +0 -1
  219. package/dist/signals/lib/persisted-state.test.mjs +0 -70
  220. package/dist/signals/lib/pressed-keys.d.mts +0 -10
  221. package/dist/signals/lib/pressed-keys.mjs +0 -32
  222. package/dist/signals/lib/pressed-keys.test.d.mts +0 -1
  223. package/dist/signals/lib/pressed-keys.test.mjs +0 -54
  224. package/dist/signals/lib/previous-distinct.d.mts +0 -10
  225. package/dist/signals/lib/previous-distinct.mjs +0 -22
  226. package/dist/signals/lib/previous-distinct.test.d.mts +0 -1
  227. package/dist/signals/lib/previous-distinct.test.mjs +0 -50
  228. package/dist/signals/lib/previous.d.mts +0 -10
  229. package/dist/signals/lib/previous.mjs +0 -18
  230. package/dist/signals/lib/previous.test.mjs +0 -47
  231. package/dist/signals/lib/queue.d.mts +0 -17
  232. package/dist/signals/lib/queue.mjs +0 -28
  233. package/dist/signals/lib/queue.test.d.mts +0 -1
  234. package/dist/signals/lib/queue.test.mjs +0 -61
  235. package/dist/signals/lib/raf.d.mts +0 -17
  236. package/dist/signals/lib/raf.mjs +0 -38
  237. package/dist/signals/lib/raf.test.d.mts +0 -1
  238. package/dist/signals/lib/raf.test.mjs +0 -58
  239. package/dist/signals/lib/resize-observer.d.mts +0 -8
  240. package/dist/signals/lib/resize-observer.test.d.mts +0 -1
  241. package/dist/signals/lib/resize-observer.test.mjs +0 -44
  242. package/dist/signals/lib/resource.d.mts +0 -23
  243. package/dist/signals/lib/resource.mjs +0 -43
  244. package/dist/signals/lib/resource.test.d.mts +0 -1
  245. package/dist/signals/lib/resource.test.mjs +0 -56
  246. package/dist/signals/lib/scroll-state.d.mts +0 -19
  247. package/dist/signals/lib/scroll-state.mjs +0 -46
  248. package/dist/signals/lib/scroll-state.test.d.mts +0 -1
  249. package/dist/signals/lib/scroll-state.test.mjs +0 -94
  250. package/dist/signals/lib/scrolling.d.mts +0 -12
  251. package/dist/signals/lib/scrolling.mjs +0 -26
  252. package/dist/signals/lib/scrolling.test.d.mts +0 -1
  253. package/dist/signals/lib/scrolling.test.mjs +0 -57
  254. package/dist/signals/lib/search-params.d.mts +0 -16
  255. package/dist/signals/lib/search-params.mjs +0 -37
  256. package/dist/signals/lib/search-params.test.mjs +0 -56
  257. package/dist/signals/lib/set.d.mts +0 -18
  258. package/dist/signals/lib/set.mjs +0 -38
  259. package/dist/signals/lib/set.test.d.mts +0 -1
  260. package/dist/signals/lib/set.test.mjs +0 -70
  261. package/dist/signals/lib/start-typing.d.mts +0 -9
  262. package/dist/signals/lib/start-typing.mjs +0 -39
  263. package/dist/signals/lib/start-typing.test.d.mts +0 -1
  264. package/dist/signals/lib/start-typing.test.mjs +0 -64
  265. package/dist/signals/lib/state-history.d.mts +0 -21
  266. package/dist/signals/lib/state-history.mjs +0 -61
  267. package/dist/signals/lib/state-history.test.d.mts +0 -1
  268. package/dist/signals/lib/state-history.test.mjs +0 -106
  269. package/dist/signals/lib/state-validator.d.mts +0 -16
  270. package/dist/signals/lib/state-validator.mjs +0 -21
  271. package/dist/signals/lib/state-validator.test.d.mts +0 -1
  272. package/dist/signals/lib/state-validator.test.mjs +0 -41
  273. package/dist/signals/lib/throttled.mjs +0 -45
  274. package/dist/signals/lib/timeout.mjs +0 -39
  275. package/dist/signals/lib/toggle.d.mts +0 -12
  276. package/dist/signals/lib/toggle.mjs +0 -12
  277. package/dist/signals/lib/toggle.test.d.mts +0 -1
  278. package/dist/signals/lib/toggle.test.mjs +0 -43
  279. package/dist/signals/lib/video.d.mts +0 -21
  280. package/dist/signals/lib/video.test.d.mts +0 -1
  281. package/dist/signals/lib/video.test.mjs +0 -51
  282. package/dist/signals/lib/watch.d.mts +0 -16
  283. package/dist/signals/lib/watch.mjs +0 -31
  284. package/dist/signals/lib/watch.test.d.mts +0 -1
  285. package/dist/signals/lib/watch.test.mjs +0 -51
  286. package/dist/signals/lib/window-size.d.mts +0 -14
  287. package/dist/signals/lib/window-size.mjs +0 -21
  288. package/dist/signals/lib/window-size.test.mjs +0 -50
  289. /package/dist/{signals/lib → utilities}/active-element.test.d.mts +0 -0
  290. /package/dist/{signals/lib → utilities}/debounced.test.d.mts +0 -0
  291. /package/dist/{signals/lib → utilities}/element-rect.test.d.mts +0 -0
  292. /package/dist/{signals/lib/animation-frames.test.d.mts → utilities/element-scroll.test.d.mts} +0 -0
  293. /package/dist/{signals/lib → utilities}/event-listener.test.d.mts +0 -0
  294. /package/dist/{signals/lib/async-retry.test.d.mts → utilities/focus-within.test.d.mts} +0 -0
  295. /package/dist/{signals/lib → utilities}/hover.test.d.mts +0 -0
  296. /package/dist/{signals/lib → utilities}/intersection-observer.test.d.mts +0 -0
  297. /package/dist/{signals/lib → utilities}/interval.test.d.mts +0 -0
  298. /package/dist/{signals/lib/audio.test.d.mts → utilities/location.test.d.mts} +0 -0
  299. /package/dist/{signals/lib → utilities}/long-press.test.d.mts +0 -0
  300. /package/dist/{signals/lib → utilities}/media-devices.test.d.mts +0 -0
  301. /package/dist/{signals/lib/battery.test.d.mts → utilities/media-player.test.d.mts} +0 -0
  302. /package/dist/{signals/lib → utilities}/mutation-observer.test.d.mts +0 -0
  303. /package/dist/{signals/lib → utilities}/on-click-outside.test.d.mts +0 -0
  304. /package/dist/{signals/lib → utilities}/previous.test.d.mts +0 -0
  305. /package/dist/{signals/lib/before-unload.test.d.mts → utilities/routing.test.d.mts} +0 -0
  306. /package/dist/{signals/lib → utilities}/search-params.test.d.mts +0 -0
  307. /package/dist/{signals/lib/clipboard.test.d.mts → utilities/storage.test.d.mts} +0 -0
  308. /package/dist/{signals/lib → utilities}/throttled.test.d.mts +0 -0
  309. /package/dist/{signals/lib → utilities}/timeout.test.d.mts +0 -0
  310. /package/dist/{signals/lib → utilities}/window-size.test.d.mts +0 -0
@@ -1,54 +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 { createPressedKeys } from "./pressed-keys.mjs";
4
- //#region src/signals/lib/pressed-keys.test.ts
5
- afterEach(() => {
6
- document.body.innerHTML = "";
7
- });
8
- describe("createPressedKeys", () => {
9
- it("starts with an empty set", () => {
10
- let keys;
11
- effectScope(() => {
12
- keys = createPressedKeys();
13
- });
14
- globalExpect(keys().size).toBe(0);
15
- });
16
- it("adds a key on keydown", () => {
17
- let keys;
18
- effectScope(() => {
19
- keys = createPressedKeys();
20
- });
21
- window.dispatchEvent(new KeyboardEvent("keydown", { key: "a" }));
22
- globalExpect(keys().has("a")).toBe(true);
23
- });
24
- it("removes a key on keyup", () => {
25
- let keys;
26
- effectScope(() => {
27
- keys = createPressedKeys();
28
- });
29
- window.dispatchEvent(new KeyboardEvent("keydown", { key: "a" }));
30
- window.dispatchEvent(new KeyboardEvent("keyup", { key: "a" }));
31
- globalExpect(keys().has("a")).toBe(false);
32
- });
33
- it("tracks multiple keys simultaneously", () => {
34
- let keys;
35
- effectScope(() => {
36
- keys = createPressedKeys();
37
- });
38
- window.dispatchEvent(new KeyboardEvent("keydown", { key: "Control" }));
39
- window.dispatchEvent(new KeyboardEvent("keydown", { key: "a" }));
40
- globalExpect(keys().has("Control")).toBe(true);
41
- globalExpect(keys().has("a")).toBe(true);
42
- });
43
- it("stops reacting after Symbol.dispose", () => {
44
- let keys;
45
- effectScope(() => {
46
- keys = createPressedKeys();
47
- });
48
- keys[Symbol.dispose]();
49
- window.dispatchEvent(new KeyboardEvent("keydown", { key: "z" }));
50
- globalExpect(keys().has("z")).toBe(false);
51
- });
52
- });
53
- //#endregion
54
- export {};
@@ -1,10 +0,0 @@
1
- import { t as Computed } from "../../index-BtqiEEfc.mjs";
2
-
3
- //#region src/signals/lib/previous-distinct.d.ts
4
- /**
5
- * Like `createPrevious` but only updates when the value is *distinct*
6
- * (i.e. fails the equality check).
7
- */
8
- declare function createPreviousDistinct<T>(getter: () => T, isEqual?: (a: T, b: T) => boolean): Computed<T | undefined>;
9
- //#endregion
10
- export { createPreviousDistinct };
@@ -1,22 +0,0 @@
1
- import { a as effect, f as signal } from "../../signals-CLAPw8kk.mjs";
2
- //#region src/signals/lib/previous-distinct.ts
3
- /**
4
- * Like `createPrevious` but only updates when the value is *distinct*
5
- * (i.e. fails the equality check).
6
- */
7
- function createPreviousDistinct(getter, isEqual = Object.is) {
8
- const prev = signal(void 0);
9
- let current;
10
- let initialized = false;
11
- effect(() => {
12
- const next = getter();
13
- if (!initialized || !isEqual(next, current)) {
14
- prev(current);
15
- current = next;
16
- initialized = true;
17
- }
18
- });
19
- return prev;
20
- }
21
- //#endregion
22
- export { createPreviousDistinct };
@@ -1 +0,0 @@
1
- export { };
@@ -1,50 +0,0 @@
1
- import { f as signal, 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 { createPreviousDistinct } from "./previous-distinct.mjs";
4
- //#region src/signals/lib/previous-distinct.test.ts
5
- afterEach(() => {
6
- document.body.innerHTML = "";
7
- });
8
- describe("createPreviousDistinct", () => {
9
- it("starts as undefined", () => {
10
- const s = signal(0);
11
- let prev;
12
- effectScope(() => {
13
- prev = createPreviousDistinct(() => s());
14
- });
15
- globalExpect(prev()).toBeUndefined();
16
- });
17
- it("updates previous when value changes", () => {
18
- const s = signal(0);
19
- let prev;
20
- effectScope(() => {
21
- prev = createPreviousDistinct(() => s());
22
- });
23
- s(1);
24
- globalExpect(prev()).toBe(0);
25
- });
26
- it("does not update previous when value is the same", () => {
27
- const s = signal(0);
28
- let prev;
29
- effectScope(() => {
30
- prev = createPreviousDistinct(() => s());
31
- });
32
- s(1);
33
- globalExpect(prev()).toBe(0);
34
- s(1);
35
- globalExpect(prev()).toBe(0);
36
- });
37
- it("uses a custom equality function", () => {
38
- const s = signal({ id: 1 });
39
- let prev;
40
- effectScope(() => {
41
- prev = createPreviousDistinct(() => s(), (a, b) => a.id === b.id);
42
- });
43
- s({ id: 1 });
44
- globalExpect(prev()).toBeUndefined();
45
- s({ id: 2 });
46
- globalExpect(prev()?.id).toBe(1);
47
- });
48
- });
49
- //#endregion
50
- export {};
@@ -1,10 +0,0 @@
1
- import { t as Computed } from "../../index-BtqiEEfc.mjs";
2
-
3
- //#region src/signals/lib/previous.d.ts
4
- /**
5
- * Returns a `Computed` that always holds the *previous* value emitted by
6
- * `getter`. Starts as `undefined` until the getter changes for the first time.
7
- */
8
- declare function createPrevious<T>(getter: () => T): Computed<T | undefined>;
9
- //#endregion
10
- export { createPrevious };
@@ -1,18 +0,0 @@
1
- import { a as effect, f as signal } from "../../signals-CLAPw8kk.mjs";
2
- //#region src/signals/lib/previous.ts
3
- /**
4
- * Returns a `Computed` that always holds the *previous* value emitted by
5
- * `getter`. Starts as `undefined` until the getter changes for the first time.
6
- */
7
- function createPrevious(getter) {
8
- const prev = signal(void 0);
9
- let current;
10
- effect(() => {
11
- const next = getter();
12
- prev(current);
13
- current = next;
14
- });
15
- return prev;
16
- }
17
- //#endregion
18
- export { createPrevious };
@@ -1,47 +0,0 @@
1
- import { f as signal, o as effectScope } from "../../signals-CLAPw8kk.mjs";
2
- import { a as describe, o as it, t as globalExpect } from "../../test.BmQO5GaM-CR2qjV1t.mjs";
3
- import { createPrevious } from "./previous.mjs";
4
- //#region src/signals/lib/previous.test.ts
5
- describe("createPrevious", () => {
6
- it("starts as undefined", () => {
7
- const s = signal(1);
8
- let p;
9
- effectScope(() => {
10
- p = createPrevious(() => s());
11
- });
12
- globalExpect(p()).toBeUndefined();
13
- });
14
- it("returns the previous value after a change", () => {
15
- const s = signal(1);
16
- let p;
17
- effectScope(() => {
18
- p = createPrevious(() => s());
19
- });
20
- s(2);
21
- globalExpect(p()).toBe(1);
22
- });
23
- it("tracks each successive previous value", () => {
24
- const s = signal("a");
25
- let p;
26
- effectScope(() => {
27
- p = createPrevious(() => s());
28
- });
29
- s("b");
30
- globalExpect(p()).toBe("a");
31
- s("c");
32
- globalExpect(p()).toBe("b");
33
- });
34
- it("does not update after scope disposal", () => {
35
- const s = signal(10);
36
- let p;
37
- const stop = effectScope(() => {
38
- p = createPrevious(() => s());
39
- });
40
- s(20);
41
- stop();
42
- s(30);
43
- globalExpect(p()).toBe(10);
44
- });
45
- });
46
- //#endregion
47
- export {};
@@ -1,17 +0,0 @@
1
- import { t as Computed } from "../../index-BtqiEEfc.mjs";
2
-
3
- //#region src/signals/lib/queue.d.ts
4
- type QueueResult<T> = {
5
- items: Computed<readonly T[]>;
6
- add(item: T): void;
7
- remove(): T | undefined;
8
- peek(): T | undefined;
9
- clear(): void;
10
- size: Computed<number>;
11
- };
12
- /**
13
- * Reactive FIFO queue.
14
- */
15
- declare function createQueue<T>(initial?: T[]): QueueResult<T>;
16
- //#endregion
17
- export { createQueue };
@@ -1,28 +0,0 @@
1
- import { f as signal } from "../../signals-CLAPw8kk.mjs";
2
- //#region src/signals/lib/queue.ts
3
- /**
4
- * Reactive FIFO queue.
5
- */
6
- function createQueue(initial = []) {
7
- const s = signal([...initial]);
8
- const add = (item) => s([...s(), item]);
9
- const remove = () => {
10
- const arr = [...s()];
11
- const first = arr.shift();
12
- s(arr);
13
- return first;
14
- };
15
- const peek = () => s()[0];
16
- const clear = () => s([]);
17
- const size = () => s().length;
18
- return {
19
- items: s,
20
- add,
21
- remove,
22
- peek,
23
- clear,
24
- size
25
- };
26
- }
27
- //#endregion
28
- export { createQueue };
@@ -1 +0,0 @@
1
- export { };
@@ -1,61 +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 { createQueue } from "./queue.mjs";
4
- //#region src/signals/lib/queue.test.ts
5
- afterEach(() => {
6
- document.body.innerHTML = "";
7
- });
8
- describe("createQueue", () => {
9
- it("starts empty by default", () => {
10
- let q;
11
- effectScope(() => {
12
- q = createQueue();
13
- });
14
- globalExpect(q.items()).toEqual([]);
15
- globalExpect(q.size()).toBe(0);
16
- });
17
- it("add enqueues an item", () => {
18
- let q;
19
- effectScope(() => {
20
- q = createQueue();
21
- });
22
- q.add(1);
23
- q.add(2);
24
- globalExpect(q.items()).toEqual([1, 2]);
25
- });
26
- it("remove dequeues the first item (FIFO)", () => {
27
- let q;
28
- effectScope(() => {
29
- q = createQueue([
30
- 1,
31
- 2,
32
- 3
33
- ]);
34
- });
35
- globalExpect(q.remove()).toBe(1);
36
- globalExpect(q.items()).toEqual([2, 3]);
37
- });
38
- it("peek returns the front without removing", () => {
39
- let q;
40
- effectScope(() => {
41
- q = createQueue([10, 20]);
42
- });
43
- globalExpect(q.peek()).toBe(10);
44
- globalExpect(q.size()).toBe(2);
45
- });
46
- it("clear empties the queue", () => {
47
- let q;
48
- effectScope(() => {
49
- q = createQueue([
50
- 1,
51
- 2,
52
- 3
53
- ]);
54
- });
55
- q.clear();
56
- globalExpect(q.items()).toEqual([]);
57
- globalExpect(q.size()).toBe(0);
58
- });
59
- });
60
- //#endregion
61
- export {};
@@ -1,17 +0,0 @@
1
- import { t as Computed } from "../../index-BtqiEEfc.mjs";
2
-
3
- //#region src/signals/lib/raf.d.ts
4
- type RafResult = {
5
- isRunning: Computed<boolean>;
6
- start(): void;
7
- stop(): void;
8
- } & Disposable;
9
- /**
10
- * Looping `requestAnimationFrame` wrapper with start/stop control.
11
- *
12
- * The callback receives the `DOMHighResTimeStamp` elapsed since page load.
13
- * Starts running immediately on creation.
14
- */
15
- declare function createRaf(callback: (time: number) => void): RafResult;
16
- //#endregion
17
- export { createRaf };
@@ -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 };