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,74 +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 { createIsInViewport } from "./is-in-viewport.mjs";
4
- //#region src/signals/lib/is-in-viewport.test.ts
5
- afterEach(() => {
6
- vi.unstubAllGlobals();
7
- });
8
- function mockIntersectionObserver() {
9
- let observerCallback;
10
- const observe = vi.fn();
11
- const disconnect = vi.fn();
12
- const unobserve = vi.fn();
13
- vi.stubGlobal("IntersectionObserver", function MockIO(cb) {
14
- observerCallback = cb;
15
- return {
16
- observe,
17
- disconnect,
18
- unobserve,
19
- root: null,
20
- rootMargin: "",
21
- thresholds: []
22
- };
23
- });
24
- return {
25
- fire: (isIntersecting) => {
26
- observerCallback([{ isIntersecting }], {});
27
- },
28
- disconnect
29
- };
30
- }
31
- describe("createIsInViewport", () => {
32
- it("starts as false", () => {
33
- const { fire: _fire } = mockIntersectionObserver();
34
- const el = document.createElement("div");
35
- let visible;
36
- effectScope(() => {
37
- visible = createIsInViewport(el);
38
- });
39
- globalExpect(visible()).toBe(false);
40
- });
41
- it("becomes true when intersection fires with isIntersecting=true", () => {
42
- const { fire } = mockIntersectionObserver();
43
- const el = document.createElement("div");
44
- let visible;
45
- effectScope(() => {
46
- visible = createIsInViewport(el);
47
- });
48
- fire(true);
49
- globalExpect(visible()).toBe(true);
50
- });
51
- it("becomes false when intersection fires with isIntersecting=false", () => {
52
- const { fire } = mockIntersectionObserver();
53
- const el = document.createElement("div");
54
- let visible;
55
- effectScope(() => {
56
- visible = createIsInViewport(el);
57
- });
58
- fire(true);
59
- fire(false);
60
- globalExpect(visible()).toBe(false);
61
- });
62
- it("disconnects on Symbol.dispose", () => {
63
- const { disconnect } = mockIntersectionObserver();
64
- const el = document.createElement("div");
65
- let visible;
66
- effectScope(() => {
67
- visible = createIsInViewport(el);
68
- });
69
- visible[Symbol.dispose]();
70
- globalExpect(disconnect).toHaveBeenCalledOnce();
71
- });
72
- });
73
- //#endregion
74
- export {};
@@ -1,13 +0,0 @@
1
- import { t as Computed } from "../../index-BtqiEEfc.mjs";
2
-
3
- //#region src/signals/lib/key-press.d.ts
4
- type KeyPressResult = {
5
- pressed: Computed<boolean>;
6
- } & Disposable;
7
- /**
8
- * Returns a reactive boolean that is `true` while the given keyboard `key`
9
- * is held down.
10
- */
11
- declare function createKeyPress(key: string): KeyPressResult;
12
- //#endregion
13
- export { createKeyPress };
@@ -1,25 +0,0 @@
1
- import { f as signal } from "../../signals-CLAPw8kk.mjs";
2
- import { createEventListener } from "./event-listener.mjs";
3
- //#region src/signals/lib/key-press.ts
4
- /**
5
- * Returns a reactive boolean that is `true` while the given keyboard `key`
6
- * is held down.
7
- */
8
- function createKeyPress(key) {
9
- const pressed = signal(false);
10
- const onDown = (e) => {
11
- if (e.key === key) pressed(true);
12
- };
13
- const onUp = (e) => {
14
- if (e.key === key) pressed(false);
15
- };
16
- const r1 = createEventListener(window, "keydown", onDown);
17
- const r2 = createEventListener(window, "keyup", onUp);
18
- const cleanup = () => {
19
- r1();
20
- r2();
21
- };
22
- return Object.assign({ pressed }, { [Symbol.dispose]: cleanup });
23
- }
24
- //#endregion
25
- export { createKeyPress };
@@ -1 +0,0 @@
1
- export { };
@@ -1,52 +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 { createKeyPress } from "./key-press.mjs";
4
- //#region src/signals/lib/key-press.test.ts
5
- afterEach(() => {
6
- document.body.innerHTML = "";
7
- });
8
- describe("createKeyPress", () => {
9
- it("starts as false", () => {
10
- let k;
11
- effectScope(() => {
12
- k = createKeyPress("a");
13
- });
14
- globalExpect(k.pressed()).toBe(false);
15
- });
16
- it("becomes true on keydown", () => {
17
- let k;
18
- effectScope(() => {
19
- k = createKeyPress("a");
20
- });
21
- window.dispatchEvent(new KeyboardEvent("keydown", { key: "a" }));
22
- globalExpect(k.pressed()).toBe(true);
23
- });
24
- it("becomes false on keyup", () => {
25
- let k;
26
- effectScope(() => {
27
- k = createKeyPress("a");
28
- });
29
- window.dispatchEvent(new KeyboardEvent("keydown", { key: "a" }));
30
- window.dispatchEvent(new KeyboardEvent("keyup", { key: "a" }));
31
- globalExpect(k.pressed()).toBe(false);
32
- });
33
- it("does not react to different keys", () => {
34
- let k;
35
- effectScope(() => {
36
- k = createKeyPress("a");
37
- });
38
- window.dispatchEvent(new KeyboardEvent("keydown", { key: "b" }));
39
- globalExpect(k.pressed()).toBe(false);
40
- });
41
- it("stops reacting after Symbol.dispose", () => {
42
- let k;
43
- effectScope(() => {
44
- k = createKeyPress("a");
45
- });
46
- k[Symbol.dispose]();
47
- window.dispatchEvent(new KeyboardEvent("keydown", { key: "a" }));
48
- globalExpect(k.pressed()).toBe(false);
49
- });
50
- });
51
- //#endregion
52
- export {};
@@ -1,19 +0,0 @@
1
- import { t as Computed } from "../../index-BtqiEEfc.mjs";
2
-
3
- //#region src/signals/lib/list.d.ts
4
- type ListResult<T> = {
5
- items: Computed<readonly T[]>;
6
- push(...items: T[]): void;
7
- pop(): T | undefined;
8
- remove(index: number): void;
9
- filter(fn: (item: T, index: number) => boolean): void;
10
- set(items: T[]): void;
11
- clear(): void;
12
- size: Computed<number>;
13
- };
14
- /**
15
- * Reactive array with mutation helpers.
16
- */
17
- declare function createList<T>(initial?: T[]): ListResult<T>;
18
- //#endregion
19
- export { createList };
@@ -1,36 +0,0 @@
1
- import { f as signal } from "../../signals-CLAPw8kk.mjs";
2
- //#region src/signals/lib/list.ts
3
- /**
4
- * Reactive array with mutation helpers.
5
- */
6
- function createList(initial = []) {
7
- const items = signal([...initial]);
8
- const push = (...newItems) => items([...items(), ...newItems]);
9
- const pop = () => {
10
- const arr = [...items()];
11
- const last = arr.pop();
12
- items(arr);
13
- return last;
14
- };
15
- const remove = (index) => {
16
- const arr = [...items()];
17
- arr.splice(index, 1);
18
- items(arr);
19
- };
20
- const filter = (fn) => items(items().filter(fn));
21
- const set = (next) => items([...next]);
22
- const clear = () => items([]);
23
- const size = () => items().length;
24
- return {
25
- items,
26
- push,
27
- pop,
28
- remove,
29
- filter,
30
- set,
31
- clear,
32
- size
33
- };
34
- }
35
- //#endregion
36
- export { createList };
@@ -1 +0,0 @@
1
- export { };
@@ -1,104 +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 { createList } from "./list.mjs";
4
- //#region src/signals/lib/list.test.ts
5
- afterEach(() => {
6
- document.body.innerHTML = "";
7
- });
8
- describe("createList", () => {
9
- it("starts empty by default", () => {
10
- let l;
11
- effectScope(() => {
12
- l = createList();
13
- });
14
- globalExpect(l.items()).toEqual([]);
15
- globalExpect(l.size()).toBe(0);
16
- });
17
- it("starts with initial items", () => {
18
- let l;
19
- effectScope(() => {
20
- l = createList([
21
- 1,
22
- 2,
23
- 3
24
- ]);
25
- });
26
- globalExpect(l.items()).toEqual([
27
- 1,
28
- 2,
29
- 3
30
- ]);
31
- });
32
- it("push adds items", () => {
33
- let l;
34
- effectScope(() => {
35
- l = createList();
36
- });
37
- l.push(1, 2);
38
- globalExpect(l.items()).toEqual([1, 2]);
39
- });
40
- it("pop removes and returns the last item", () => {
41
- let l;
42
- effectScope(() => {
43
- l = createList([
44
- 1,
45
- 2,
46
- 3
47
- ]);
48
- });
49
- globalExpect(l.pop()).toBe(3);
50
- globalExpect(l.items()).toEqual([1, 2]);
51
- });
52
- it("remove removes by index", () => {
53
- let l;
54
- effectScope(() => {
55
- l = createList([
56
- 1,
57
- 2,
58
- 3
59
- ]);
60
- });
61
- l.remove(1);
62
- globalExpect(l.items()).toEqual([1, 3]);
63
- });
64
- it("filter keeps matching items", () => {
65
- let l;
66
- effectScope(() => {
67
- l = createList([
68
- 1,
69
- 2,
70
- 3,
71
- 4
72
- ]);
73
- });
74
- l.filter((n) => n % 2 === 0);
75
- globalExpect(l.items()).toEqual([2, 4]);
76
- });
77
- it("set replaces all items", () => {
78
- let l;
79
- effectScope(() => {
80
- l = createList([
81
- 1,
82
- 2,
83
- 3
84
- ]);
85
- });
86
- l.set([10, 20]);
87
- globalExpect(l.items()).toEqual([10, 20]);
88
- });
89
- it("clear empties the list", () => {
90
- let l;
91
- effectScope(() => {
92
- l = createList([
93
- 1,
94
- 2,
95
- 3
96
- ]);
97
- });
98
- l.clear();
99
- globalExpect(l.items()).toEqual([]);
100
- globalExpect(l.size()).toBe(0);
101
- });
102
- });
103
- //#endregion
104
- export {};
@@ -1,8 +0,0 @@
1
- //#region src/signals/lib/lock-body-scroll.d.ts
2
- /**
3
- * Prevents the document body from scrolling while the returned scope is
4
- * active. Restores the original `overflow` value on cleanup.
5
- */
6
- declare function createLockBodyScroll(): Disposable;
7
- //#endregion
8
- export { createLockBodyScroll };
@@ -1,17 +0,0 @@
1
- import { d as onCleanup } from "../../signals-CLAPw8kk.mjs";
2
- //#region src/signals/lib/lock-body-scroll.ts
3
- /**
4
- * Prevents the document body from scrolling while the returned scope is
5
- * active. Restores the original `overflow` value on cleanup.
6
- */
7
- function createLockBodyScroll() {
8
- const original = document.body.style.overflow;
9
- document.body.style.overflow = "hidden";
10
- const cleanup = () => {
11
- document.body.style.overflow = original;
12
- };
13
- onCleanup(cleanup);
14
- return { [Symbol.dispose]: cleanup };
15
- }
16
- //#endregion
17
- export { createLockBodyScroll };
@@ -1 +0,0 @@
1
- export { };
@@ -1,37 +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 { createLockBodyScroll } from "./lock-body-scroll.mjs";
4
- //#region src/signals/lib/lock-body-scroll.test.ts
5
- afterEach(() => {
6
- document.body.innerHTML = "";
7
- document.body.style.overflow = "";
8
- });
9
- describe("createLockBodyScroll", () => {
10
- it("sets body overflow to hidden", () => {
11
- effectScope(() => {
12
- createLockBodyScroll();
13
- });
14
- globalExpect(document.body.style.overflow).toBe("hidden");
15
- });
16
- it("restores original overflow on Symbol.dispose", () => {
17
- document.body.style.overflow = "scroll";
18
- let lock;
19
- effectScope(() => {
20
- lock = createLockBodyScroll();
21
- });
22
- globalExpect(document.body.style.overflow).toBe("hidden");
23
- lock[Symbol.dispose]();
24
- globalExpect(document.body.style.overflow).toBe("scroll");
25
- });
26
- it("restores empty overflow when no prior style", () => {
27
- document.body.style.overflow = "";
28
- let lock;
29
- effectScope(() => {
30
- lock = createLockBodyScroll();
31
- });
32
- lock[Symbol.dispose]();
33
- globalExpect(document.body.style.overflow).toBe("");
34
- });
35
- });
36
- //#endregion
37
- export {};
@@ -1,10 +0,0 @@
1
- //#region src/signals/lib/long-press.d.ts
2
- /**
3
- * Fires `handler` when a pointer is held over `target` for at least `delay`
4
- * milliseconds (default: 500 ms).
5
- */
6
- declare function createLongPress(target: Element | (() => Element | null), handler: (e: PointerEvent) => void, options?: {
7
- delay?: number;
8
- }): Disposable;
9
- //#endregion
10
- export { createLongPress };
@@ -1,29 +0,0 @@
1
- import { createEventListener } from "./event-listener.mjs";
2
- //#region src/signals/lib/long-press.ts
3
- /**
4
- * Fires `handler` when a pointer is held over `target` for at least `delay`
5
- * milliseconds (default: 500 ms).
6
- */
7
- function createLongPress(target, handler, options = {}) {
8
- const { delay = 500 } = options;
9
- const el = typeof target === "function" ? target() : target;
10
- let timer;
11
- const onPointerDown = (e) => {
12
- timer = setTimeout(() => handler(e), delay);
13
- };
14
- const cancel = () => clearTimeout(timer);
15
- const cleanups = [];
16
- if (el) {
17
- cleanups.push(createEventListener(el, "pointerdown", onPointerDown));
18
- cleanups.push(createEventListener(el, "pointerup", cancel));
19
- cleanups.push(createEventListener(el, "pointerleave", cancel));
20
- cleanups.push(createEventListener(el, "pointermove", cancel));
21
- }
22
- const cleanup = () => {
23
- clearTimeout(timer);
24
- cleanups.forEach((fn) => fn());
25
- };
26
- return { [Symbol.dispose]: cleanup };
27
- }
28
- //#endregion
29
- export { createLongPress };
@@ -1,18 +0,0 @@
1
- import { t as Computed } from "../../index-BtqiEEfc.mjs";
2
-
3
- //#region src/signals/lib/map.d.ts
4
- type ReactiveMapResult<K, V> = {
5
- entries: Computed<ReadonlyMap<K, V>>;
6
- get(key: K): V | undefined;
7
- set(key: K, value: V): void;
8
- delete(key: K): void;
9
- has(key: K): boolean;
10
- clear(): void;
11
- size: Computed<number>;
12
- };
13
- /**
14
- * Reactive `Map` with mutation helpers.
15
- */
16
- declare function createMap<K, V>(initial?: Map<K, V>): ReactiveMapResult<K, V>;
17
- //#endregion
18
- export { createMap };
@@ -1,33 +0,0 @@
1
- import { f as signal } from "../../signals-CLAPw8kk.mjs";
2
- //#region src/signals/lib/map.ts
3
- /**
4
- * Reactive `Map` with mutation helpers.
5
- */
6
- function createMap(initial) {
7
- const s = signal(new Map(initial));
8
- const get = (key) => s().get(key);
9
- const set = (key, value) => {
10
- const next = new Map(s());
11
- next.set(key, value);
12
- s(next);
13
- };
14
- const del = (key) => {
15
- const next = new Map(s());
16
- next.delete(key);
17
- s(next);
18
- };
19
- const has = (key) => s().has(key);
20
- const clear = () => s(/* @__PURE__ */ new Map());
21
- const size = () => s().size;
22
- return {
23
- entries: s,
24
- get,
25
- set,
26
- delete: del,
27
- has,
28
- clear,
29
- size
30
- };
31
- }
32
- //#endregion
33
- export { createMap };
@@ -1 +0,0 @@
1
- export { };
@@ -1,60 +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 { createMap } from "./map.mjs";
4
- //#region src/signals/lib/map.test.ts
5
- afterEach(() => {
6
- document.body.innerHTML = "";
7
- });
8
- describe("createMap", () => {
9
- it("starts empty by default", () => {
10
- let m;
11
- effectScope(() => {
12
- m = createMap();
13
- });
14
- globalExpect(m.entries().size).toBe(0);
15
- globalExpect(m.size()).toBe(0);
16
- });
17
- it("initializes from a Map", () => {
18
- let m;
19
- effectScope(() => {
20
- m = createMap(new Map([["a", 1]]));
21
- });
22
- globalExpect(m.get("a")).toBe(1);
23
- });
24
- it("set adds an entry", () => {
25
- let m;
26
- effectScope(() => {
27
- m = createMap();
28
- });
29
- m.set("x", 42);
30
- globalExpect(m.get("x")).toBe(42);
31
- globalExpect(m.size()).toBe(1);
32
- });
33
- it("delete removes an entry", () => {
34
- let m;
35
- effectScope(() => {
36
- m = createMap(new Map([["a", 1], ["b", 2]]));
37
- });
38
- m.delete("a");
39
- globalExpect(m.has("a")).toBe(false);
40
- globalExpect(m.size()).toBe(1);
41
- });
42
- it("has returns correct boolean", () => {
43
- let m;
44
- effectScope(() => {
45
- m = createMap(new Map([["a", 1]]));
46
- });
47
- globalExpect(m.has("a")).toBe(true);
48
- globalExpect(m.has("z")).toBe(false);
49
- });
50
- it("clear empties the map", () => {
51
- let m;
52
- effectScope(() => {
53
- m = createMap(new Map([["a", 1], ["b", 2]]));
54
- });
55
- m.clear();
56
- globalExpect(m.size()).toBe(0);
57
- });
58
- });
59
- //#endregion
60
- export {};
@@ -1,15 +0,0 @@
1
- import { t as Computed } from "../../index-BtqiEEfc.mjs";
2
-
3
- //#region src/signals/lib/motion.d.ts
4
- type MotionResult = {
5
- acceleration: Computed<DeviceMotionEventAcceleration | null>;
6
- accelerationIncludingGravity: Computed<DeviceMotionEventAcceleration | null>;
7
- rotationRate: Computed<DeviceMotionEventRotationRate | null>;
8
- interval: Computed<number | null>;
9
- } & Disposable;
10
- /**
11
- * Returns reactive signals driven by the `devicemotion` event.
12
- */
13
- declare function createMotion(): MotionResult;
14
- //#endregion
15
- export { createMotion };
@@ -1,27 +0,0 @@
1
- import { f as signal } from "../../signals-CLAPw8kk.mjs";
2
- import { createEventListener } from "./event-listener.mjs";
3
- //#region src/signals/lib/motion.ts
4
- /**
5
- * Returns reactive signals driven by the `devicemotion` event.
6
- */
7
- function createMotion() {
8
- const acceleration = signal(null);
9
- const accelerationIncludingGravity = signal(null);
10
- const rotationRate = signal(null);
11
- const interval = signal(null);
12
- const onMotion = (e) => {
13
- acceleration(e.acceleration);
14
- accelerationIncludingGravity(e.accelerationIncludingGravity);
15
- rotationRate(e.rotationRate);
16
- interval(e.interval);
17
- };
18
- const cleanup = createEventListener(window, "devicemotion", onMotion);
19
- return Object.assign({
20
- acceleration,
21
- accelerationIncludingGravity,
22
- rotationRate,
23
- interval
24
- }, { [Symbol.dispose]: cleanup });
25
- }
26
- //#endregion
27
- export { createMotion };
@@ -1 +0,0 @@
1
- export { };
@@ -1,51 +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 { createMotion } from "./motion.mjs";
4
- //#region src/signals/lib/motion.test.ts
5
- afterEach(() => {
6
- document.body.innerHTML = "";
7
- });
8
- describe("createMotion", () => {
9
- it("starts with null values", () => {
10
- let m;
11
- effectScope(() => {
12
- m = createMotion();
13
- });
14
- globalExpect(m.acceleration()).toBeNull();
15
- globalExpect(m.rotationRate()).toBeNull();
16
- globalExpect(m.interval()).toBeNull();
17
- });
18
- it("updates on devicemotion event", () => {
19
- let m;
20
- effectScope(() => {
21
- m = createMotion();
22
- });
23
- const accel = {
24
- x: 1,
25
- y: 2,
26
- z: 3
27
- };
28
- window.dispatchEvent(Object.assign(new Event("devicemotion"), {
29
- acceleration: accel,
30
- accelerationIncludingGravity: accel,
31
- rotationRate: {
32
- alpha: 0,
33
- beta: 90,
34
- gamma: -45
35
- },
36
- interval: 16
37
- }));
38
- globalExpect(m.interval()).toBe(16);
39
- });
40
- it("stops reacting after Symbol.dispose", () => {
41
- let m;
42
- effectScope(() => {
43
- m = createMotion();
44
- });
45
- m[Symbol.dispose]();
46
- window.dispatchEvent(Object.assign(new Event("devicemotion"), { interval: 100 }));
47
- globalExpect(m.interval()).toBeNull();
48
- });
49
- });
50
- //#endregion
51
- export {};
@@ -1,14 +0,0 @@
1
- import { t as Computed } from "../../index-BtqiEEfc.mjs";
2
-
3
- //#region src/signals/lib/mouse-position.d.ts
4
- type MousePositionResult = {
5
- x: Computed<number>;
6
- y: Computed<number>;
7
- } & Disposable;
8
- /**
9
- * Returns reactive `x` / `y` signals that track the mouse pointer position on
10
- * the document.
11
- */
12
- declare function createMousePosition(): MousePositionResult;
13
- //#endregion
14
- export { createMousePosition };