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,60 +0,0 @@
1
- import { f as signal } from "../../signals-CLAPw8kk.mjs";
2
- import { createEventListener } from "./event-listener.mjs";
3
- //#region src/signals/lib/audio.ts
4
- /**
5
- * Wraps an `HTMLAudioElement` with reactive state and playback controls.
6
- * Pass a `src` string to create a new element, or pass an existing element.
7
- */
8
- function createAudio(src) {
9
- const el = typeof src === "string" ? new Audio(src) : src;
10
- const playing = signal(!el.paused);
11
- const muted = signal(el.muted);
12
- const volume = signal(el.volume);
13
- const duration = signal(el.duration || 0);
14
- const time = signal(el.currentTime);
15
- const ended = signal(el.ended);
16
- const onPlay = () => playing(true);
17
- const onPause = () => playing(false);
18
- const onVolumeChange = () => {
19
- muted(el.muted);
20
- volume(el.volume);
21
- };
22
- const onDurationChange = () => duration(el.duration);
23
- const onTimeUpdate = () => time(el.currentTime);
24
- const onEnded = () => ended(true);
25
- const cleanups = [
26
- createEventListener(el, "play", onPlay),
27
- createEventListener(el, "pause", onPause),
28
- createEventListener(el, "volumechange", onVolumeChange),
29
- createEventListener(el, "durationchange", onDurationChange),
30
- createEventListener(el, "timeupdate", onTimeUpdate),
31
- createEventListener(el, "ended", onEnded)
32
- ];
33
- const cleanup = () => cleanups.forEach((fn) => fn());
34
- return Object.assign({
35
- element: el,
36
- playing,
37
- muted,
38
- volume,
39
- duration,
40
- time,
41
- ended,
42
- play: () => el.play(),
43
- pause: () => el.pause(),
44
- toggle: () => el.paused ? el.play() : el.pause(),
45
- setVolume: (v) => {
46
- el.volume = Math.min(1, Math.max(0, v));
47
- },
48
- setTime: (t) => {
49
- el.currentTime = t;
50
- },
51
- mute: () => {
52
- el.muted = true;
53
- },
54
- unmute: () => {
55
- el.muted = false;
56
- }
57
- }, { [Symbol.dispose]: cleanup });
58
- }
59
- //#endregion
60
- export { createAudio };
@@ -1,54 +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 { createAudio } from "./audio.mjs";
4
- //#region src/signals/lib/audio.test.ts
5
- afterEach(() => {
6
- document.body.innerHTML = "";
7
- vi.restoreAllMocks();
8
- });
9
- describe("createAudio", () => {
10
- it("creates an Audio element from a src string", () => {
11
- let a;
12
- effectScope(() => {
13
- a = createAudio("test.mp3");
14
- });
15
- globalExpect(a.element).toBeInstanceOf(HTMLAudioElement);
16
- });
17
- it("starts as paused", () => {
18
- let a;
19
- effectScope(() => {
20
- a = createAudio("test.mp3");
21
- });
22
- globalExpect(a.playing()).toBe(false);
23
- });
24
- it("mute() sets muted to true", () => {
25
- let a;
26
- effectScope(() => {
27
- a = createAudio("test.mp3");
28
- });
29
- a.mute();
30
- globalExpect(a.element.muted).toBe(true);
31
- });
32
- it("setVolume clamps to [0, 1]", () => {
33
- let a;
34
- effectScope(() => {
35
- a = createAudio("test.mp3");
36
- });
37
- a.setVolume(2);
38
- globalExpect(a.element.volume).toBe(1);
39
- a.setVolume(-1);
40
- globalExpect(a.element.volume).toBe(0);
41
- });
42
- it("removes event listeners on Symbol.dispose", () => {
43
- const removeSpy = vi.fn();
44
- let a;
45
- effectScope(() => {
46
- a = createAudio("test.mp3");
47
- });
48
- vi.spyOn(a.element, "removeEventListener").mockImplementation(removeSpy);
49
- a[Symbol.dispose]();
50
- globalExpect(removeSpy).toHaveBeenCalled();
51
- });
52
- });
53
- //#endregion
54
- export {};
@@ -1,17 +0,0 @@
1
- import { t as Computed } from "../../index-BtqiEEfc.mjs";
2
-
3
- //#region src/signals/lib/battery.d.ts
4
- type BatteryResult = {
5
- charging: Computed<boolean>;
6
- level: Computed<number>;
7
- chargingTime: Computed<number>;
8
- dischargingTime: Computed<number>;
9
- supported: Computed<boolean>;
10
- } & Disposable;
11
- /**
12
- * Exposes the Battery Status API as reactive signals.
13
- * `supported` will be `false` when the API is unavailable.
14
- */
15
- declare function createBattery(): BatteryResult;
16
- //#endregion
17
- export { createBattery };
@@ -1,45 +0,0 @@
1
- import { d as onCleanup, f as signal } from "../../signals-CLAPw8kk.mjs";
2
- //#region src/signals/lib/battery.ts
3
- /**
4
- * Exposes the Battery Status API as reactive signals.
5
- * `supported` will be `false` when the API is unavailable.
6
- */
7
- function createBattery() {
8
- const supported = signal(typeof navigator !== "undefined" && "getBattery" in navigator);
9
- const charging = signal(false);
10
- const level = signal(1);
11
- const chargingTime = signal(0);
12
- const dischargingTime = signal(Infinity);
13
- let battery;
14
- const update = () => {
15
- if (!battery) return;
16
- charging(battery.charging);
17
- level(battery.level);
18
- chargingTime(battery.chargingTime);
19
- dischargingTime(battery.dischargingTime);
20
- };
21
- const events = [
22
- "chargingchange",
23
- "levelchange",
24
- "chargingtimechange",
25
- "dischargingtimechange"
26
- ];
27
- const cleanup = () => {
28
- events.forEach((e) => battery?.removeEventListener(e, update));
29
- };
30
- if (supported()) navigator.getBattery().then((b) => {
31
- battery = b;
32
- update();
33
- events.forEach((e) => b.addEventListener(e, update));
34
- });
35
- onCleanup(cleanup);
36
- return Object.assign({
37
- supported,
38
- charging,
39
- level,
40
- chargingTime,
41
- dischargingTime
42
- }, { [Symbol.dispose]: cleanup });
43
- }
44
- //#endregion
45
- export { createBattery };
@@ -1,38 +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 { createBattery } from "./battery.mjs";
4
- //#region src/signals/lib/battery.test.ts
5
- afterEach(() => {
6
- document.body.innerHTML = "";
7
- vi.unstubAllGlobals();
8
- });
9
- describe("createBattery", () => {
10
- it("returns unsupported=false when getBattery not present", () => {
11
- vi.stubGlobal("navigator", {});
12
- let b;
13
- effectScope(() => {
14
- b = createBattery();
15
- });
16
- globalExpect(b.supported()).toBe(false);
17
- });
18
- it("fetches battery info via getBattery", async () => {
19
- const batteryMock = {
20
- charging: true,
21
- level: .8,
22
- chargingTime: 3600,
23
- dischargingTime: Infinity,
24
- addEventListener: vi.fn(),
25
- removeEventListener: vi.fn()
26
- };
27
- vi.stubGlobal("navigator", { getBattery: vi.fn().mockResolvedValue(batteryMock) });
28
- let b;
29
- effectScope(() => {
30
- b = createBattery();
31
- });
32
- await new Promise((res) => setTimeout(res, 0));
33
- globalExpect(b.charging()).toBe(true);
34
- globalExpect(b.level()).toBe(.8);
35
- });
36
- });
37
- //#endregion
38
- export {};
@@ -1,11 +0,0 @@
1
- //#region src/signals/lib/before-unload.d.ts
2
- /**
3
- * Registers a `beforeunload` handler that shows a native confirmation dialog
4
- * when the user tries to leave the page.
5
- *
6
- * `message` can be a string or a reactive getter (re-evaluated on each event).
7
- * Modern browsers ignore custom messages and show a generic prompt instead.
8
- */
9
- declare function createBeforeUnload(message?: string | (() => string)): Disposable;
10
- //#endregion
11
- export { createBeforeUnload };
@@ -1,20 +0,0 @@
1
- import { createEventListener } from "./event-listener.mjs";
2
- //#region src/signals/lib/before-unload.ts
3
- /**
4
- * Registers a `beforeunload` handler that shows a native confirmation dialog
5
- * when the user tries to leave the page.
6
- *
7
- * `message` can be a string or a reactive getter (re-evaluated on each event).
8
- * Modern browsers ignore custom messages and show a generic prompt instead.
9
- */
10
- function createBeforeUnload(message) {
11
- const handler = (e) => {
12
- const msg = typeof message === "function" ? message() : message;
13
- e.preventDefault();
14
- if (msg !== void 0) e.returnValue = msg;
15
- };
16
- const cleanup = createEventListener(window, "beforeunload", handler);
17
- return { [Symbol.dispose]: cleanup };
18
- }
19
- //#endregion
20
- export { createBeforeUnload };
@@ -1,29 +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 { createBeforeUnload } from "./before-unload.mjs";
4
- //#region src/signals/lib/before-unload.test.ts
5
- afterEach(() => {
6
- document.body.innerHTML = "";
7
- });
8
- describe("createBeforeUnload", () => {
9
- it("registers a beforeunload handler", () => {
10
- const addSpy = vi.spyOn(window, "addEventListener");
11
- effectScope(() => {
12
- createBeforeUnload("Are you sure?");
13
- });
14
- globalExpect(addSpy).toHaveBeenCalledWith("beforeunload", globalExpect.any(Function));
15
- addSpy.mockRestore();
16
- });
17
- it("removes the handler on Symbol.dispose", () => {
18
- const removeSpy = vi.spyOn(window, "removeEventListener");
19
- let bu;
20
- effectScope(() => {
21
- bu = createBeforeUnload();
22
- });
23
- bu[Symbol.dispose]();
24
- globalExpect(removeSpy).toHaveBeenCalledWith("beforeunload", globalExpect.any(Function));
25
- removeSpy.mockRestore();
26
- });
27
- });
28
- //#endregion
29
- export {};
@@ -1,15 +0,0 @@
1
- import { t as Computed } from "../../index-BtqiEEfc.mjs";
2
-
3
- //#region src/signals/lib/clipboard.d.ts
4
- type ClipboardResult = {
5
- copied: Computed<boolean>;
6
- value: Computed<string | null>;
7
- copy(text: string): Promise<void>;
8
- };
9
- /**
10
- * Provides a `copy(text)` helper that writes to the clipboard.
11
- * `copied` is `true` for 1 500 ms after a successful copy.
12
- */
13
- declare function createClipboard(resetDelay?: number): ClipboardResult;
14
- //#endregion
15
- export { createClipboard };
@@ -1,25 +0,0 @@
1
- import { f as signal } from "../../signals-CLAPw8kk.mjs";
2
- //#region src/signals/lib/clipboard.ts
3
- /**
4
- * Provides a `copy(text)` helper that writes to the clipboard.
5
- * `copied` is `true` for 1 500 ms after a successful copy.
6
- */
7
- function createClipboard(resetDelay = 1500) {
8
- const copied = signal(false);
9
- const value = signal(null);
10
- let timer;
11
- const copy = async (text) => {
12
- await navigator.clipboard.writeText(text);
13
- clearTimeout(timer);
14
- value(text);
15
- copied(true);
16
- timer = setTimeout(() => copied(false), resetDelay);
17
- };
18
- return {
19
- copied,
20
- value,
21
- copy
22
- };
23
- }
24
- //#endregion
25
- export { createClipboard };
@@ -1,53 +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 { createClipboard } from "./clipboard.mjs";
4
- //#region src/signals/lib/clipboard.test.ts
5
- afterEach(() => {
6
- document.body.innerHTML = "";
7
- vi.useRealTimers();
8
- vi.unstubAllGlobals();
9
- });
10
- describe("createClipboard", () => {
11
- it("starts as not copied", () => {
12
- vi.stubGlobal("navigator", {
13
- ...navigator,
14
- clipboard: { writeText: vi.fn().mockResolvedValue(void 0) }
15
- });
16
- let cb;
17
- effectScope(() => {
18
- cb = createClipboard();
19
- });
20
- globalExpect(cb.copied()).toBe(false);
21
- globalExpect(cb.value()).toBeNull();
22
- });
23
- it("sets copied and value after copy()", async () => {
24
- vi.useFakeTimers();
25
- vi.stubGlobal("navigator", {
26
- ...navigator,
27
- clipboard: { writeText: vi.fn().mockResolvedValue(void 0) }
28
- });
29
- let cb;
30
- effectScope(() => {
31
- cb = createClipboard();
32
- });
33
- await cb.copy("hello");
34
- globalExpect(cb.copied()).toBe(true);
35
- globalExpect(cb.value()).toBe("hello");
36
- });
37
- it("resets copied after resetDelay", async () => {
38
- vi.useFakeTimers();
39
- vi.stubGlobal("navigator", {
40
- ...navigator,
41
- clipboard: { writeText: vi.fn().mockResolvedValue(void 0) }
42
- });
43
- let cb;
44
- effectScope(() => {
45
- cb = createClipboard(500);
46
- });
47
- await cb.copy("text");
48
- vi.advanceTimersByTime(600);
49
- globalExpect(cb.copied()).toBe(false);
50
- });
51
- });
52
- //#endregion
53
- export {};
@@ -1,18 +0,0 @@
1
- import { n as Signal } from "../../index-BtqiEEfc.mjs";
2
-
3
- //#region src/signals/lib/counter.d.ts
4
- type CounterResult = Signal<number> & {
5
- increment(step?: number): void;
6
- decrement(step?: number): void;
7
- reset(): void;
8
- };
9
- /**
10
- * Returns a numeric `Signal` with `increment`, `decrement`, and `reset`
11
- * helpers. Optionally clamp to `[min, max]`.
12
- */
13
- declare function createCounter(initial?: number, options?: {
14
- min?: number;
15
- max?: number;
16
- }): CounterResult;
17
- //#endregion
18
- export { createCounter };
@@ -1,21 +0,0 @@
1
- import { f as signal } from "../../signals-CLAPw8kk.mjs";
2
- //#region src/signals/lib/counter.ts
3
- /**
4
- * Returns a numeric `Signal` with `increment`, `decrement`, and `reset`
5
- * helpers. Optionally clamp to `[min, max]`.
6
- */
7
- function createCounter(initial = 0, options) {
8
- const { min = -Infinity, max = Infinity } = options ?? {};
9
- const clamp = (v) => Math.min(max, Math.max(min, v));
10
- const s = signal(clamp(initial));
11
- const increment = (step = 1) => s(clamp(s() + step));
12
- const decrement = (step = 1) => s(clamp(s() - step));
13
- const reset = () => s(clamp(initial));
14
- return Object.assign(s, {
15
- increment,
16
- decrement,
17
- reset
18
- });
19
- }
20
- //#endregion
21
- export { createCounter };
@@ -1 +0,0 @@
1
- export { };
@@ -1,74 +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 { createCounter } from "./counter.mjs";
4
- //#region src/signals/lib/counter.test.ts
5
- afterEach(() => {
6
- document.body.innerHTML = "";
7
- });
8
- describe("createCounter", () => {
9
- it("starts at 0 by default", () => {
10
- let c;
11
- effectScope(() => {
12
- c = createCounter();
13
- });
14
- globalExpect(c()).toBe(0);
15
- });
16
- it("starts at a provided initial value", () => {
17
- let c;
18
- effectScope(() => {
19
- c = createCounter(10);
20
- });
21
- globalExpect(c()).toBe(10);
22
- });
23
- it("increments by 1", () => {
24
- let c;
25
- effectScope(() => {
26
- c = createCounter(0);
27
- });
28
- c.increment();
29
- globalExpect(c()).toBe(1);
30
- });
31
- it("increments by step", () => {
32
- let c;
33
- effectScope(() => {
34
- c = createCounter(0);
35
- });
36
- c.increment(5);
37
- globalExpect(c()).toBe(5);
38
- });
39
- it("decrements by 1", () => {
40
- let c;
41
- effectScope(() => {
42
- c = createCounter(5);
43
- });
44
- c.decrement();
45
- globalExpect(c()).toBe(4);
46
- });
47
- it("resets to initial value", () => {
48
- let c;
49
- effectScope(() => {
50
- c = createCounter(3);
51
- });
52
- c.increment(10);
53
- c.reset();
54
- globalExpect(c()).toBe(3);
55
- });
56
- it("clamps to max", () => {
57
- let c;
58
- effectScope(() => {
59
- c = createCounter(0, { max: 5 });
60
- });
61
- c.increment(100);
62
- globalExpect(c()).toBe(5);
63
- });
64
- it("clamps to min", () => {
65
- let c;
66
- effectScope(() => {
67
- c = createCounter(0, { min: -3 });
68
- });
69
- c.decrement(100);
70
- globalExpect(c()).toBe(-3);
71
- });
72
- });
73
- //#endregion
74
- export {};
@@ -1,10 +0,0 @@
1
- import { n as Signal } from "../../index-BtqiEEfc.mjs";
2
-
3
- //#region src/signals/lib/document-title.d.ts
4
- /**
5
- * Returns a writable `Signal<string>` synced to `document.title`.
6
- * Writing the signal immediately updates the browser tab title.
7
- */
8
- declare function createDocumentTitle(initial?: string): Signal<string>;
9
- //#endregion
10
- export { createDocumentTitle };
@@ -1,15 +0,0 @@
1
- import { a as effect, f as signal } from "../../signals-CLAPw8kk.mjs";
2
- //#region src/signals/lib/document-title.ts
3
- /**
4
- * Returns a writable `Signal<string>` synced to `document.title`.
5
- * Writing the signal immediately updates the browser tab title.
6
- */
7
- function createDocumentTitle(initial) {
8
- const title = signal(initial ?? (typeof document !== "undefined" ? document.title : ""));
9
- effect(() => {
10
- if (typeof document !== "undefined") document.title = title();
11
- });
12
- return title;
13
- }
14
- //#endregion
15
- export { createDocumentTitle };
@@ -1 +0,0 @@
1
- export { };
@@ -1,33 +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 { createDocumentTitle } from "./document-title.mjs";
4
- //#region src/signals/lib/document-title.test.ts
5
- afterEach(() => {
6
- document.body.innerHTML = "";
7
- });
8
- describe("createDocumentTitle", () => {
9
- it("sets document.title from initial value", () => {
10
- effectScope(() => {
11
- createDocumentTitle("My App");
12
- });
13
- globalExpect(document.title).toBe("My App");
14
- });
15
- it("updates document.title when signal is written", () => {
16
- let title;
17
- effectScope(() => {
18
- title = createDocumentTitle("Initial");
19
- });
20
- title("Updated");
21
- globalExpect(document.title).toBe("Updated");
22
- });
23
- it("reads from document.title if no initial value given", () => {
24
- document.title = "Existing Title";
25
- let title;
26
- effectScope(() => {
27
- title = createDocumentTitle();
28
- });
29
- globalExpect(title()).toBe("Existing Title");
30
- });
31
- });
32
- //#endregion
33
- export {};
@@ -1,16 +0,0 @@
1
- import { t as Computed } from "../../index-BtqiEEfc.mjs";
2
-
3
- //#region src/signals/lib/element-size.d.ts
4
- /**
5
- * Observes the content-box size of `target` using a `ResizeObserver` and
6
- * returns reactive `width` and `height` computeds.
7
- *
8
- * Supports a reactive getter — pass `() => element` when the target element
9
- * is not known at call time.
10
- */
11
- declare function createElementSize(target: Element | (() => Element | null)): {
12
- width: Computed<number>;
13
- height: Computed<number>;
14
- } & Disposable;
15
- //#endregion
16
- export { createElementSize };
@@ -1,32 +0,0 @@
1
- import { f as signal } from "../../signals-CLAPw8kk.mjs";
2
- import { createResizeObserver } from "./resize-observer.mjs";
3
- //#region src/signals/lib/element-size.ts
4
- /**
5
- * Observes the content-box size of `target` using a `ResizeObserver` and
6
- * returns reactive `width` and `height` computeds.
7
- *
8
- * Supports a reactive getter — pass `() => element` when the target element
9
- * is not known at call time.
10
- */
11
- function createElementSize(target) {
12
- const w = signal(0);
13
- const h = signal(0);
14
- const observer = createResizeObserver(target, (entries) => {
15
- for (const entry of entries) {
16
- w(entry.contentRect.width);
17
- h(entry.contentRect.height);
18
- }
19
- });
20
- const el = typeof target === "function" ? target() : target;
21
- if (el) {
22
- const rect = el.getBoundingClientRect();
23
- w(rect.width);
24
- h(rect.height);
25
- }
26
- return Object.assign({
27
- width: w,
28
- height: h
29
- }, { [Symbol.dispose]: observer[Symbol.dispose] });
30
- }
31
- //#endregion
32
- export { createElementSize };
@@ -1 +0,0 @@
1
- export { };