@signality/core 0.0.1-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/README.md +60 -0
  2. package/browser/battery/index.d.ts +34 -0
  3. package/browser/bluetooth/index.d.ts +56 -0
  4. package/browser/breakpoints/index.d.ts +32 -0
  5. package/browser/broadcast-channel/index.d.ts +42 -0
  6. package/browser/browser-language/index.d.ts +34 -0
  7. package/browser/clipboard/index.d.ts +48 -0
  8. package/browser/device-posture/index.d.ts +18 -0
  9. package/browser/display-media/index.d.ts +80 -0
  10. package/browser/eye-dropper/index.d.ts +47 -0
  11. package/browser/favicon/index.d.ts +39 -0
  12. package/browser/fps/index.d.ts +46 -0
  13. package/browser/gamepad/index.d.ts +28 -0
  14. package/browser/geolocation/index.d.ts +64 -0
  15. package/browser/index.d.ts +29 -0
  16. package/browser/input-modality/index.d.ts +26 -0
  17. package/browser/listener/index.d.ts +61 -0
  18. package/browser/media-query/index.d.ts +36 -0
  19. package/browser/network/index.d.ts +44 -0
  20. package/browser/online/index.d.ts +27 -0
  21. package/browser/page-visibility/index.d.ts +27 -0
  22. package/browser/picture-in-picture/index.d.ts +42 -0
  23. package/browser/pointer-lock-element/index.d.ts +22 -0
  24. package/browser/screen-orientation/index.d.ts +29 -0
  25. package/browser/speech-recognition/index.d.ts +77 -0
  26. package/browser/speech-synthesis/index.d.ts +76 -0
  27. package/browser/storage/index.d.ts +142 -0
  28. package/browser/text-direction/index.d.ts +43 -0
  29. package/browser/vibration/index.d.ts +37 -0
  30. package/browser/wake-lock/index.d.ts +37 -0
  31. package/browser/web-notification/index.d.ts +58 -0
  32. package/browser/web-share/index.d.ts +42 -0
  33. package/browser/web-worker/index.d.ts +52 -0
  34. package/elements/active-element/index.d.ts +27 -0
  35. package/elements/dropzone/index.d.ts +61 -0
  36. package/elements/element-focus/index.d.ts +38 -0
  37. package/elements/element-focus-within/index.d.ts +29 -0
  38. package/elements/element-hover/index.d.ts +27 -0
  39. package/elements/element-size/index.d.ts +40 -0
  40. package/elements/element-visibility/index.d.ts +53 -0
  41. package/elements/index.d.ts +16 -0
  42. package/elements/mouse-position/index.d.ts +64 -0
  43. package/elements/on-click-outside/index.d.ts +42 -0
  44. package/elements/on-disconnect/index.d.ts +45 -0
  45. package/elements/on-long-press/index.d.ts +44 -0
  46. package/elements/pointer-swipe/index.d.ts +58 -0
  47. package/elements/scroll-position/index.d.ts +96 -0
  48. package/elements/swipe/index.d.ts +49 -0
  49. package/elements/text-selection/index.d.ts +39 -0
  50. package/elements/window-size/index.d.ts +46 -0
  51. package/fesm2022/signality-core-browser-battery.mjs +80 -0
  52. package/fesm2022/signality-core-browser-battery.mjs.map +1 -0
  53. package/fesm2022/signality-core-browser-bluetooth.mjs +112 -0
  54. package/fesm2022/signality-core-browser-bluetooth.mjs.map +1 -0
  55. package/fesm2022/signality-core-browser-breakpoints.mjs +51 -0
  56. package/fesm2022/signality-core-browser-breakpoints.mjs.map +1 -0
  57. package/fesm2022/signality-core-browser-broadcast-channel.mjs +74 -0
  58. package/fesm2022/signality-core-browser-broadcast-channel.mjs.map +1 -0
  59. package/fesm2022/signality-core-browser-browser-language.mjs +48 -0
  60. package/fesm2022/signality-core-browser-browser-language.mjs.map +1 -0
  61. package/fesm2022/signality-core-browser-clipboard.mjs +102 -0
  62. package/fesm2022/signality-core-browser-clipboard.mjs.map +1 -0
  63. package/fesm2022/signality-core-browser-device-posture.mjs +40 -0
  64. package/fesm2022/signality-core-browser-device-posture.mjs.map +1 -0
  65. package/fesm2022/signality-core-browser-display-media.mjs +121 -0
  66. package/fesm2022/signality-core-browser-display-media.mjs.map +1 -0
  67. package/fesm2022/signality-core-browser-eye-dropper.mjs +82 -0
  68. package/fesm2022/signality-core-browser-eye-dropper.mjs.map +1 -0
  69. package/fesm2022/signality-core-browser-favicon.mjs +100 -0
  70. package/fesm2022/signality-core-browser-favicon.mjs.map +1 -0
  71. package/fesm2022/signality-core-browser-fps.mjs +103 -0
  72. package/fesm2022/signality-core-browser-fps.mjs.map +1 -0
  73. package/fesm2022/signality-core-browser-gamepad.mjs +93 -0
  74. package/fesm2022/signality-core-browser-gamepad.mjs.map +1 -0
  75. package/fesm2022/signality-core-browser-geolocation.mjs +120 -0
  76. package/fesm2022/signality-core-browser-geolocation.mjs.map +1 -0
  77. package/fesm2022/signality-core-browser-input-modality.mjs +64 -0
  78. package/fesm2022/signality-core-browser-input-modality.mjs.map +1 -0
  79. package/fesm2022/signality-core-browser-listener.mjs +132 -0
  80. package/fesm2022/signality-core-browser-listener.mjs.map +1 -0
  81. package/fesm2022/signality-core-browser-media-query.mjs +55 -0
  82. package/fesm2022/signality-core-browser-media-query.mjs.map +1 -0
  83. package/fesm2022/signality-core-browser-network.mjs +76 -0
  84. package/fesm2022/signality-core-browser-network.mjs.map +1 -0
  85. package/fesm2022/signality-core-browser-online.mjs +49 -0
  86. package/fesm2022/signality-core-browser-online.mjs.map +1 -0
  87. package/fesm2022/signality-core-browser-page-visibility.mjs +47 -0
  88. package/fesm2022/signality-core-browser-page-visibility.mjs.map +1 -0
  89. package/fesm2022/signality-core-browser-picture-in-picture.mjs +93 -0
  90. package/fesm2022/signality-core-browser-picture-in-picture.mjs.map +1 -0
  91. package/fesm2022/signality-core-browser-pointer-lock-element.mjs +43 -0
  92. package/fesm2022/signality-core-browser-pointer-lock-element.mjs.map +1 -0
  93. package/fesm2022/signality-core-browser-screen-orientation.mjs +43 -0
  94. package/fesm2022/signality-core-browser-screen-orientation.mjs.map +1 -0
  95. package/fesm2022/signality-core-browser-speech-recognition.mjs +171 -0
  96. package/fesm2022/signality-core-browser-speech-recognition.mjs.map +1 -0
  97. package/fesm2022/signality-core-browser-speech-synthesis.mjs +146 -0
  98. package/fesm2022/signality-core-browser-speech-synthesis.mjs.map +1 -0
  99. package/fesm2022/signality-core-browser-storage.mjs +261 -0
  100. package/fesm2022/signality-core-browser-storage.mjs.map +1 -0
  101. package/fesm2022/signality-core-browser-text-direction.mjs +62 -0
  102. package/fesm2022/signality-core-browser-text-direction.mjs.map +1 -0
  103. package/fesm2022/signality-core-browser-vibration.mjs +94 -0
  104. package/fesm2022/signality-core-browser-vibration.mjs.map +1 -0
  105. package/fesm2022/signality-core-browser-wake-lock.mjs +149 -0
  106. package/fesm2022/signality-core-browser-wake-lock.mjs.map +1 -0
  107. package/fesm2022/signality-core-browser-web-notification.mjs +137 -0
  108. package/fesm2022/signality-core-browser-web-notification.mjs.map +1 -0
  109. package/fesm2022/signality-core-browser-web-share.mjs +92 -0
  110. package/fesm2022/signality-core-browser-web-share.mjs.map +1 -0
  111. package/fesm2022/signality-core-browser-web-worker.mjs +105 -0
  112. package/fesm2022/signality-core-browser-web-worker.mjs.map +1 -0
  113. package/fesm2022/signality-core-browser.mjs +34 -0
  114. package/fesm2022/signality-core-browser.mjs.map +1 -0
  115. package/fesm2022/signality-core-elements-active-element.mjs +88 -0
  116. package/fesm2022/signality-core-elements-active-element.mjs.map +1 -0
  117. package/fesm2022/signality-core-elements-dropzone.mjs +158 -0
  118. package/fesm2022/signality-core-elements-dropzone.mjs.map +1 -0
  119. package/fesm2022/signality-core-elements-element-focus-within.mjs +56 -0
  120. package/fesm2022/signality-core-elements-element-focus-within.mjs.map +1 -0
  121. package/fesm2022/signality-core-elements-element-focus.mjs +54 -0
  122. package/fesm2022/signality-core-elements-element-focus.mjs.map +1 -0
  123. package/fesm2022/signality-core-elements-element-hover.mjs +48 -0
  124. package/fesm2022/signality-core-elements-element-hover.mjs.map +1 -0
  125. package/fesm2022/signality-core-elements-element-size.mjs +73 -0
  126. package/fesm2022/signality-core-elements-element-size.mjs.map +1 -0
  127. package/fesm2022/signality-core-elements-element-visibility.mjs +76 -0
  128. package/fesm2022/signality-core-elements-element-visibility.mjs.map +1 -0
  129. package/fesm2022/signality-core-elements-mouse-position.mjs +109 -0
  130. package/fesm2022/signality-core-elements-mouse-position.mjs.map +1 -0
  131. package/fesm2022/signality-core-elements-on-click-outside.mjs +97 -0
  132. package/fesm2022/signality-core-elements-on-click-outside.mjs.map +1 -0
  133. package/fesm2022/signality-core-elements-on-disconnect.mjs +99 -0
  134. package/fesm2022/signality-core-elements-on-disconnect.mjs.map +1 -0
  135. package/fesm2022/signality-core-elements-on-long-press.mjs +84 -0
  136. package/fesm2022/signality-core-elements-on-long-press.mjs.map +1 -0
  137. package/fesm2022/signality-core-elements-pointer-swipe.mjs +116 -0
  138. package/fesm2022/signality-core-elements-pointer-swipe.mjs.map +1 -0
  139. package/fesm2022/signality-core-elements-scroll-position.mjs +175 -0
  140. package/fesm2022/signality-core-elements-scroll-position.mjs.map +1 -0
  141. package/fesm2022/signality-core-elements-swipe.mjs +107 -0
  142. package/fesm2022/signality-core-elements-swipe.mjs.map +1 -0
  143. package/fesm2022/signality-core-elements-text-selection.mjs +70 -0
  144. package/fesm2022/signality-core-elements-text-selection.mjs.map +1 -0
  145. package/fesm2022/signality-core-elements-window-size.mjs +81 -0
  146. package/fesm2022/signality-core-elements-window-size.mjs.map +1 -0
  147. package/fesm2022/signality-core-elements.mjs +21 -0
  148. package/fesm2022/signality-core-elements.mjs.map +1 -0
  149. package/fesm2022/signality-core-forms-cva.mjs +140 -0
  150. package/fesm2022/signality-core-forms-cva.mjs.map +1 -0
  151. package/fesm2022/signality-core-forms.mjs +6 -0
  152. package/fesm2022/signality-core-forms.mjs.map +1 -0
  153. package/fesm2022/signality-core-internal.mjs +268 -0
  154. package/fesm2022/signality-core-internal.mjs.map +1 -0
  155. package/fesm2022/signality-core-observers-intersection-observer.mjs +70 -0
  156. package/fesm2022/signality-core-observers-intersection-observer.mjs.map +1 -0
  157. package/fesm2022/signality-core-observers-mutation-observer.mjs +77 -0
  158. package/fesm2022/signality-core-observers-mutation-observer.mjs.map +1 -0
  159. package/fesm2022/signality-core-observers-performance-observer.mjs +84 -0
  160. package/fesm2022/signality-core-observers-performance-observer.mjs.map +1 -0
  161. package/fesm2022/signality-core-observers-resize-observer.mjs +69 -0
  162. package/fesm2022/signality-core-observers-resize-observer.mjs.map +1 -0
  163. package/fesm2022/signality-core-observers.mjs +9 -0
  164. package/fesm2022/signality-core-observers.mjs.map +1 -0
  165. package/fesm2022/signality-core-reactivity-debounced.mjs +27 -0
  166. package/fesm2022/signality-core-reactivity-debounced.mjs.map +1 -0
  167. package/fesm2022/signality-core-reactivity-throttled.mjs +27 -0
  168. package/fesm2022/signality-core-reactivity-throttled.mjs.map +1 -0
  169. package/fesm2022/signality-core-reactivity-watcher.mjs +36 -0
  170. package/fesm2022/signality-core-reactivity-watcher.mjs.map +1 -0
  171. package/fesm2022/signality-core-reactivity.mjs +8 -0
  172. package/fesm2022/signality-core-reactivity.mjs.map +1 -0
  173. package/fesm2022/signality-core-router-fragment.mjs +41 -0
  174. package/fesm2022/signality-core-router-fragment.mjs.map +1 -0
  175. package/fesm2022/signality-core-router-params.mjs +45 -0
  176. package/fesm2022/signality-core-router-params.mjs.map +1 -0
  177. package/fesm2022/signality-core-router-query-params.mjs +67 -0
  178. package/fesm2022/signality-core-router-query-params.mjs.map +1 -0
  179. package/fesm2022/signality-core-router-route-data.mjs +46 -0
  180. package/fesm2022/signality-core-router-route-data.mjs.map +1 -0
  181. package/fesm2022/signality-core-router-router-listener.mjs +50 -0
  182. package/fesm2022/signality-core-router-router-listener.mjs.map +1 -0
  183. package/fesm2022/signality-core-router-title.mjs +54 -0
  184. package/fesm2022/signality-core-router-title.mjs.map +1 -0
  185. package/fesm2022/signality-core-router-url.mjs +53 -0
  186. package/fesm2022/signality-core-router-url.mjs.map +1 -0
  187. package/fesm2022/signality-core-router.mjs +12 -0
  188. package/fesm2022/signality-core-router.mjs.map +1 -0
  189. package/fesm2022/signality-core-scheduling-debounce-callback.mjs +59 -0
  190. package/fesm2022/signality-core-scheduling-debounce-callback.mjs.map +1 -0
  191. package/fesm2022/signality-core-scheduling-interval.mjs +110 -0
  192. package/fesm2022/signality-core-scheduling-interval.mjs.map +1 -0
  193. package/fesm2022/signality-core-scheduling-throttle-callback.mjs +66 -0
  194. package/fesm2022/signality-core-scheduling-throttle-callback.mjs.map +1 -0
  195. package/fesm2022/signality-core-scheduling.mjs +8 -0
  196. package/fesm2022/signality-core-scheduling.mjs.map +1 -0
  197. package/fesm2022/signality-core-types.mjs +4 -0
  198. package/fesm2022/signality-core-types.mjs.map +1 -0
  199. package/fesm2022/signality-core.mjs +13 -0
  200. package/fesm2022/signality-core.mjs.map +1 -0
  201. package/forms/cva/index.d.ts +60 -0
  202. package/forms/index.d.ts +1 -0
  203. package/index.d.ts +8 -0
  204. package/internal/constants/index.d.ts +2 -0
  205. package/internal/constants/mobile-regex.d.ts +1 -0
  206. package/internal/constants/stubs.d.ts +32 -0
  207. package/internal/index.d.ts +4 -0
  208. package/internal/providers/index.d.ts +3 -0
  209. package/internal/providers/is-browser.d.ts +2 -0
  210. package/internal/providers/is-mobile.d.ts +2 -0
  211. package/internal/providers/is-server.d.ts +2 -0
  212. package/internal/types/index.d.ts +2 -0
  213. package/internal/types/timer.d.ts +1 -0
  214. package/internal/types/union.d.ts +1 -0
  215. package/internal/utils/bom/index.d.ts +1 -0
  216. package/internal/utils/bom/is-window.d.ts +1 -0
  217. package/internal/utils/const-signal.d.ts +10 -0
  218. package/internal/utils/context.d.ts +18 -0
  219. package/internal/utils/create-token.d.ts +8 -0
  220. package/internal/utils/dom/get-active-element.d.ts +1 -0
  221. package/internal/utils/dom/get-event-target.d.ts +1 -0
  222. package/internal/utils/dom/get-pip-element.d.ts +1 -0
  223. package/internal/utils/dom/get-shadow-root.d.ts +1 -0
  224. package/internal/utils/dom/index.d.ts +6 -0
  225. package/internal/utils/dom/is-element.d.ts +1 -0
  226. package/internal/utils/dom/is-node-within.d.ts +1 -0
  227. package/internal/utils/index.d.ts +10 -0
  228. package/internal/utils/is-plain-object.d.ts +1 -0
  229. package/internal/utils/is-query-signal.d.ts +10 -0
  230. package/internal/utils/proxy-signal.d.ts +18 -0
  231. package/internal/utils/to-element.d.ts +12 -0
  232. package/internal/utils/to-value.d.ts +6 -0
  233. package/observers/index.d.ts +4 -0
  234. package/observers/intersection-observer/index.d.ts +42 -0
  235. package/observers/mutation-observer/index.d.ts +45 -0
  236. package/observers/performance-observer/index.d.ts +58 -0
  237. package/observers/resize-observer/index.d.ts +40 -0
  238. package/package.json +343 -0
  239. package/reactivity/debounced/index.d.ts +50 -0
  240. package/reactivity/index.d.ts +3 -0
  241. package/reactivity/throttled/index.d.ts +53 -0
  242. package/reactivity/watcher/index.d.ts +68 -0
  243. package/router/fragment/index.d.ts +26 -0
  244. package/router/index.d.ts +7 -0
  245. package/router/params/index.d.ts +28 -0
  246. package/router/query-params/index.d.ts +80 -0
  247. package/router/route-data/index.d.ts +28 -0
  248. package/router/router-listener/index.d.ts +83 -0
  249. package/router/title/index.d.ts +29 -0
  250. package/router/url/index.d.ts +32 -0
  251. package/scheduling/debounce-callback/index.d.ts +28 -0
  252. package/scheduling/index.d.ts +3 -0
  253. package/scheduling/interval/index.d.ts +51 -0
  254. package/scheduling/throttle-callback/index.d.ts +30 -0
  255. package/types/index.d.ts +6 -0
  256. package/types/maybe-element-signal.d.ts +2 -0
  257. package/types/maybe-signal.d.ts +2 -0
  258. package/types/signal-value.d.ts +2 -0
  259. package/types/signal-values.d.ts +5 -0
  260. package/types/unref-element.d.ts +2 -0
  261. package/types/with-injector.d.ts +8 -0
package/package.json ADDED
@@ -0,0 +1,343 @@
1
+ {
2
+ "name": "@signality/core",
3
+ "version": "0.0.1-alpha.2",
4
+ "license": "MIT",
5
+ "author": "Vyacheslav Borodin <https://github.com/vs-borodin>",
6
+ "description": "A foundational toolkit for Angular Signals",
7
+ "keywords": [
8
+ "signality",
9
+ "angular",
10
+ "signals",
11
+ "utilities",
12
+ "reactive",
13
+ "typescript",
14
+ "ssr",
15
+ "browser-api",
16
+ "web-api"
17
+ ],
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "https://github.com/signalityjs/signality"
21
+ },
22
+ "bugs": "https://github.com/signalityjs/signality/issues",
23
+ "homepage": "https://signality.dev",
24
+ "sideEffects": false,
25
+ "peerDependencies": {
26
+ "@angular/common": ">=19.2.0",
27
+ "@angular/core": ">=19.2.0",
28
+ "@angular/forms": ">=19.2.0",
29
+ "@angular/router": ">=19.2.0",
30
+ "@angular/platform-browser": ">=19.2.0",
31
+ "rxjs": ">=7.8.1"
32
+ },
33
+ "module": "fesm2022/signality-core.mjs",
34
+ "typings": "index.d.ts",
35
+ "exports": {
36
+ "./package.json": {
37
+ "default": "./package.json"
38
+ },
39
+ ".": {
40
+ "types": "./index.d.ts",
41
+ "default": "./fesm2022/signality-core.mjs"
42
+ },
43
+ "./browser": {
44
+ "types": "./browser/index.d.ts",
45
+ "default": "./fesm2022/signality-core-browser.mjs"
46
+ },
47
+ "./elements": {
48
+ "types": "./elements/index.d.ts",
49
+ "default": "./fesm2022/signality-core-elements.mjs"
50
+ },
51
+ "./forms": {
52
+ "types": "./forms/index.d.ts",
53
+ "default": "./fesm2022/signality-core-forms.mjs"
54
+ },
55
+ "./internal": {
56
+ "types": "./internal/index.d.ts",
57
+ "default": "./fesm2022/signality-core-internal.mjs"
58
+ },
59
+ "./observers": {
60
+ "types": "./observers/index.d.ts",
61
+ "default": "./fesm2022/signality-core-observers.mjs"
62
+ },
63
+ "./reactivity": {
64
+ "types": "./reactivity/index.d.ts",
65
+ "default": "./fesm2022/signality-core-reactivity.mjs"
66
+ },
67
+ "./router": {
68
+ "types": "./router/index.d.ts",
69
+ "default": "./fesm2022/signality-core-router.mjs"
70
+ },
71
+ "./scheduling": {
72
+ "types": "./scheduling/index.d.ts",
73
+ "default": "./fesm2022/signality-core-scheduling.mjs"
74
+ },
75
+ "./types": {
76
+ "types": "./types/index.d.ts",
77
+ "default": "./fesm2022/signality-core-types.mjs"
78
+ },
79
+ "./browser/battery": {
80
+ "types": "./browser/battery/index.d.ts",
81
+ "default": "./fesm2022/signality-core-browser-battery.mjs"
82
+ },
83
+ "./browser/bluetooth": {
84
+ "types": "./browser/bluetooth/index.d.ts",
85
+ "default": "./fesm2022/signality-core-browser-bluetooth.mjs"
86
+ },
87
+ "./browser/breakpoints": {
88
+ "types": "./browser/breakpoints/index.d.ts",
89
+ "default": "./fesm2022/signality-core-browser-breakpoints.mjs"
90
+ },
91
+ "./browser/broadcast-channel": {
92
+ "types": "./browser/broadcast-channel/index.d.ts",
93
+ "default": "./fesm2022/signality-core-browser-broadcast-channel.mjs"
94
+ },
95
+ "./browser/browser-language": {
96
+ "types": "./browser/browser-language/index.d.ts",
97
+ "default": "./fesm2022/signality-core-browser-browser-language.mjs"
98
+ },
99
+ "./browser/clipboard": {
100
+ "types": "./browser/clipboard/index.d.ts",
101
+ "default": "./fesm2022/signality-core-browser-clipboard.mjs"
102
+ },
103
+ "./browser/device-posture": {
104
+ "types": "./browser/device-posture/index.d.ts",
105
+ "default": "./fesm2022/signality-core-browser-device-posture.mjs"
106
+ },
107
+ "./browser/display-media": {
108
+ "types": "./browser/display-media/index.d.ts",
109
+ "default": "./fesm2022/signality-core-browser-display-media.mjs"
110
+ },
111
+ "./browser/eye-dropper": {
112
+ "types": "./browser/eye-dropper/index.d.ts",
113
+ "default": "./fesm2022/signality-core-browser-eye-dropper.mjs"
114
+ },
115
+ "./browser/favicon": {
116
+ "types": "./browser/favicon/index.d.ts",
117
+ "default": "./fesm2022/signality-core-browser-favicon.mjs"
118
+ },
119
+ "./browser/fps": {
120
+ "types": "./browser/fps/index.d.ts",
121
+ "default": "./fesm2022/signality-core-browser-fps.mjs"
122
+ },
123
+ "./browser/gamepad": {
124
+ "types": "./browser/gamepad/index.d.ts",
125
+ "default": "./fesm2022/signality-core-browser-gamepad.mjs"
126
+ },
127
+ "./browser/geolocation": {
128
+ "types": "./browser/geolocation/index.d.ts",
129
+ "default": "./fesm2022/signality-core-browser-geolocation.mjs"
130
+ },
131
+ "./browser/input-modality": {
132
+ "types": "./browser/input-modality/index.d.ts",
133
+ "default": "./fesm2022/signality-core-browser-input-modality.mjs"
134
+ },
135
+ "./browser/listener": {
136
+ "types": "./browser/listener/index.d.ts",
137
+ "default": "./fesm2022/signality-core-browser-listener.mjs"
138
+ },
139
+ "./browser/media-query": {
140
+ "types": "./browser/media-query/index.d.ts",
141
+ "default": "./fesm2022/signality-core-browser-media-query.mjs"
142
+ },
143
+ "./browser/network": {
144
+ "types": "./browser/network/index.d.ts",
145
+ "default": "./fesm2022/signality-core-browser-network.mjs"
146
+ },
147
+ "./browser/online": {
148
+ "types": "./browser/online/index.d.ts",
149
+ "default": "./fesm2022/signality-core-browser-online.mjs"
150
+ },
151
+ "./browser/page-visibility": {
152
+ "types": "./browser/page-visibility/index.d.ts",
153
+ "default": "./fesm2022/signality-core-browser-page-visibility.mjs"
154
+ },
155
+ "./browser/picture-in-picture": {
156
+ "types": "./browser/picture-in-picture/index.d.ts",
157
+ "default": "./fesm2022/signality-core-browser-picture-in-picture.mjs"
158
+ },
159
+ "./browser/pointer-lock-element": {
160
+ "types": "./browser/pointer-lock-element/index.d.ts",
161
+ "default": "./fesm2022/signality-core-browser-pointer-lock-element.mjs"
162
+ },
163
+ "./browser/screen-orientation": {
164
+ "types": "./browser/screen-orientation/index.d.ts",
165
+ "default": "./fesm2022/signality-core-browser-screen-orientation.mjs"
166
+ },
167
+ "./browser/speech-recognition": {
168
+ "types": "./browser/speech-recognition/index.d.ts",
169
+ "default": "./fesm2022/signality-core-browser-speech-recognition.mjs"
170
+ },
171
+ "./browser/speech-synthesis": {
172
+ "types": "./browser/speech-synthesis/index.d.ts",
173
+ "default": "./fesm2022/signality-core-browser-speech-synthesis.mjs"
174
+ },
175
+ "./browser/storage": {
176
+ "types": "./browser/storage/index.d.ts",
177
+ "default": "./fesm2022/signality-core-browser-storage.mjs"
178
+ },
179
+ "./browser/text-direction": {
180
+ "types": "./browser/text-direction/index.d.ts",
181
+ "default": "./fesm2022/signality-core-browser-text-direction.mjs"
182
+ },
183
+ "./browser/vibration": {
184
+ "types": "./browser/vibration/index.d.ts",
185
+ "default": "./fesm2022/signality-core-browser-vibration.mjs"
186
+ },
187
+ "./browser/wake-lock": {
188
+ "types": "./browser/wake-lock/index.d.ts",
189
+ "default": "./fesm2022/signality-core-browser-wake-lock.mjs"
190
+ },
191
+ "./browser/web-notification": {
192
+ "types": "./browser/web-notification/index.d.ts",
193
+ "default": "./fesm2022/signality-core-browser-web-notification.mjs"
194
+ },
195
+ "./browser/web-share": {
196
+ "types": "./browser/web-share/index.d.ts",
197
+ "default": "./fesm2022/signality-core-browser-web-share.mjs"
198
+ },
199
+ "./browser/web-worker": {
200
+ "types": "./browser/web-worker/index.d.ts",
201
+ "default": "./fesm2022/signality-core-browser-web-worker.mjs"
202
+ },
203
+ "./elements/active-element": {
204
+ "types": "./elements/active-element/index.d.ts",
205
+ "default": "./fesm2022/signality-core-elements-active-element.mjs"
206
+ },
207
+ "./elements/dropzone": {
208
+ "types": "./elements/dropzone/index.d.ts",
209
+ "default": "./fesm2022/signality-core-elements-dropzone.mjs"
210
+ },
211
+ "./elements/element-focus": {
212
+ "types": "./elements/element-focus/index.d.ts",
213
+ "default": "./fesm2022/signality-core-elements-element-focus.mjs"
214
+ },
215
+ "./elements/element-focus-within": {
216
+ "types": "./elements/element-focus-within/index.d.ts",
217
+ "default": "./fesm2022/signality-core-elements-element-focus-within.mjs"
218
+ },
219
+ "./elements/element-hover": {
220
+ "types": "./elements/element-hover/index.d.ts",
221
+ "default": "./fesm2022/signality-core-elements-element-hover.mjs"
222
+ },
223
+ "./elements/element-size": {
224
+ "types": "./elements/element-size/index.d.ts",
225
+ "default": "./fesm2022/signality-core-elements-element-size.mjs"
226
+ },
227
+ "./elements/element-visibility": {
228
+ "types": "./elements/element-visibility/index.d.ts",
229
+ "default": "./fesm2022/signality-core-elements-element-visibility.mjs"
230
+ },
231
+ "./elements/mouse-position": {
232
+ "types": "./elements/mouse-position/index.d.ts",
233
+ "default": "./fesm2022/signality-core-elements-mouse-position.mjs"
234
+ },
235
+ "./elements/on-click-outside": {
236
+ "types": "./elements/on-click-outside/index.d.ts",
237
+ "default": "./fesm2022/signality-core-elements-on-click-outside.mjs"
238
+ },
239
+ "./elements/on-disconnect": {
240
+ "types": "./elements/on-disconnect/index.d.ts",
241
+ "default": "./fesm2022/signality-core-elements-on-disconnect.mjs"
242
+ },
243
+ "./elements/on-long-press": {
244
+ "types": "./elements/on-long-press/index.d.ts",
245
+ "default": "./fesm2022/signality-core-elements-on-long-press.mjs"
246
+ },
247
+ "./elements/pointer-swipe": {
248
+ "types": "./elements/pointer-swipe/index.d.ts",
249
+ "default": "./fesm2022/signality-core-elements-pointer-swipe.mjs"
250
+ },
251
+ "./elements/scroll-position": {
252
+ "types": "./elements/scroll-position/index.d.ts",
253
+ "default": "./fesm2022/signality-core-elements-scroll-position.mjs"
254
+ },
255
+ "./elements/swipe": {
256
+ "types": "./elements/swipe/index.d.ts",
257
+ "default": "./fesm2022/signality-core-elements-swipe.mjs"
258
+ },
259
+ "./elements/text-selection": {
260
+ "types": "./elements/text-selection/index.d.ts",
261
+ "default": "./fesm2022/signality-core-elements-text-selection.mjs"
262
+ },
263
+ "./elements/window-size": {
264
+ "types": "./elements/window-size/index.d.ts",
265
+ "default": "./fesm2022/signality-core-elements-window-size.mjs"
266
+ },
267
+ "./forms/cva": {
268
+ "types": "./forms/cva/index.d.ts",
269
+ "default": "./fesm2022/signality-core-forms-cva.mjs"
270
+ },
271
+ "./observers/intersection-observer": {
272
+ "types": "./observers/intersection-observer/index.d.ts",
273
+ "default": "./fesm2022/signality-core-observers-intersection-observer.mjs"
274
+ },
275
+ "./observers/mutation-observer": {
276
+ "types": "./observers/mutation-observer/index.d.ts",
277
+ "default": "./fesm2022/signality-core-observers-mutation-observer.mjs"
278
+ },
279
+ "./observers/performance-observer": {
280
+ "types": "./observers/performance-observer/index.d.ts",
281
+ "default": "./fesm2022/signality-core-observers-performance-observer.mjs"
282
+ },
283
+ "./observers/resize-observer": {
284
+ "types": "./observers/resize-observer/index.d.ts",
285
+ "default": "./fesm2022/signality-core-observers-resize-observer.mjs"
286
+ },
287
+ "./reactivity/debounced": {
288
+ "types": "./reactivity/debounced/index.d.ts",
289
+ "default": "./fesm2022/signality-core-reactivity-debounced.mjs"
290
+ },
291
+ "./reactivity/throttled": {
292
+ "types": "./reactivity/throttled/index.d.ts",
293
+ "default": "./fesm2022/signality-core-reactivity-throttled.mjs"
294
+ },
295
+ "./reactivity/watcher": {
296
+ "types": "./reactivity/watcher/index.d.ts",
297
+ "default": "./fesm2022/signality-core-reactivity-watcher.mjs"
298
+ },
299
+ "./router/fragment": {
300
+ "types": "./router/fragment/index.d.ts",
301
+ "default": "./fesm2022/signality-core-router-fragment.mjs"
302
+ },
303
+ "./router/params": {
304
+ "types": "./router/params/index.d.ts",
305
+ "default": "./fesm2022/signality-core-router-params.mjs"
306
+ },
307
+ "./router/query-params": {
308
+ "types": "./router/query-params/index.d.ts",
309
+ "default": "./fesm2022/signality-core-router-query-params.mjs"
310
+ },
311
+ "./router/route-data": {
312
+ "types": "./router/route-data/index.d.ts",
313
+ "default": "./fesm2022/signality-core-router-route-data.mjs"
314
+ },
315
+ "./router/router-listener": {
316
+ "types": "./router/router-listener/index.d.ts",
317
+ "default": "./fesm2022/signality-core-router-router-listener.mjs"
318
+ },
319
+ "./router/title": {
320
+ "types": "./router/title/index.d.ts",
321
+ "default": "./fesm2022/signality-core-router-title.mjs"
322
+ },
323
+ "./router/url": {
324
+ "types": "./router/url/index.d.ts",
325
+ "default": "./fesm2022/signality-core-router-url.mjs"
326
+ },
327
+ "./scheduling/debounce-callback": {
328
+ "types": "./scheduling/debounce-callback/index.d.ts",
329
+ "default": "./fesm2022/signality-core-scheduling-debounce-callback.mjs"
330
+ },
331
+ "./scheduling/interval": {
332
+ "types": "./scheduling/interval/index.d.ts",
333
+ "default": "./fesm2022/signality-core-scheduling-interval.mjs"
334
+ },
335
+ "./scheduling/throttle-callback": {
336
+ "types": "./scheduling/throttle-callback/index.d.ts",
337
+ "default": "./fesm2022/signality-core-scheduling-throttle-callback.mjs"
338
+ }
339
+ },
340
+ "dependencies": {
341
+ "tslib": "^2.3.0"
342
+ }
343
+ }
@@ -0,0 +1,50 @@
1
+ import { type CreateSignalOptions, type Signal, type WritableSignal } from '@angular/core';
2
+ import type { MaybeSignal, SignalValue, WithInjector } from '@signality/core/types';
3
+ export type DebouncedOptions<T> = CreateSignalOptions<T> & WithInjector;
4
+ /**
5
+ * Creates a debounced readonly signal from a source signal.
6
+ * Updates to the source signal are debounced before propagating to the returned signal.
7
+ *
8
+ * @param source - Source signal to debounce
9
+ * @param timeMs - Debounce delay in milliseconds
10
+ * @param options - Optional configuration including signal options and injector
11
+ * @returns A readonly signal that updates after the debounce delay
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * @Component({
16
+ * template: `
17
+ * <input [(ngModel)]="query" />
18
+ * <p>Debounced value: {{ debouncedQuery() }}</p>
19
+ * `
20
+ * })
21
+ * class SearchInput {
22
+ * readonly query = signal('');
23
+ * readonly debouncedQuery = debounced(this.query, 300);
24
+ * }
25
+ * ```
26
+ */
27
+ export declare function debounced<S extends Signal<any>>(source: S, timeMs: MaybeSignal<number>, options?: DebouncedOptions<SignalValue<S>>): Signal<SignalValue<S>>;
28
+ /**
29
+ * Creates a debounced writable signal from an initial value.
30
+ * Both `set()` and `update()` calls are debounced.
31
+ *
32
+ * @param value - Initial value
33
+ * @param timeMs - Debounce delay in milliseconds
34
+ * @param options - Optional configuration including signal options and injector
35
+ * @returns A writable signal where updates are debounced
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * @Component({
40
+ * template: `
41
+ * <input [(ngModel)]="query" />
42
+ * <p>Search results for: {{ query() }}</p>
43
+ * `
44
+ * })
45
+ * class SearchInput {
46
+ * readonly query = debounced('', 300);
47
+ * }
48
+ * ```
49
+ */
50
+ export declare function debounced<V>(value: V, timeMs: MaybeSignal<number>, options?: DebouncedOptions<V>): WritableSignal<V>;
@@ -0,0 +1,3 @@
1
+ export * from '@signality/core/reactivity/debounced';
2
+ export * from '@signality/core/reactivity/throttled';
3
+ export * from '@signality/core/reactivity/watcher';
@@ -0,0 +1,53 @@
1
+ import { type CreateSignalOptions, type Signal, type WritableSignal } from '@angular/core';
2
+ import type { MaybeSignal, SignalValue, WithInjector } from '@signality/core/types';
3
+ export type ThrottledOptions<T> = CreateSignalOptions<T> & WithInjector;
4
+ /**
5
+ * Creates a throttled readonly signal from a source signal.
6
+ * Updates to the source signal are throttled to occur at most once per time interval.
7
+ *
8
+ * @param source - Source signal to throttle
9
+ * @param timeMs - Throttle interval in milliseconds
10
+ * @param options - Optional configuration including signal options and injector
11
+ * @returns A readonly signal that updates at most once per throttle interval
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * @Component({
16
+ * template: `
17
+ * <div (scroll)="scrollY.set($event.target.scrollTop)">
18
+ * <p>Scroll position: {{ scrollY() }}</p>
19
+ * <p>Throttled position: {{ throttledScrollY() }}</p>
20
+ * </div>
21
+ * `
22
+ * })
23
+ * class ScrollTracker {
24
+ * readonly scrollY = signal(0);
25
+ * readonly throttledScrollY = throttled(this.scrollY, 100);
26
+ * }
27
+ * ```
28
+ */
29
+ export declare function throttled<S extends Signal<any>>(source: S, timeMs: MaybeSignal<number>, options?: ThrottledOptions<SignalValue<S>>): Signal<SignalValue<S>>;
30
+ /**
31
+ * Creates a throttled writable signal from an initial value.
32
+ * Both `set()` and `update()` calls are throttled.
33
+ *
34
+ * @param value - Initial value
35
+ * @param timeMs - Throttle interval in milliseconds
36
+ * @param options - Optional configuration including signal options and injector
37
+ * @returns A writable signal where updates are throttled
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * @Component({
42
+ * template: `
43
+ * <div (mousemove)="mousePosition.set({ x: $event.clientX, y: $event.clientY })">
44
+ * <p>Mouse position: X={{ mousePosition().x }}, Y={{ mousePosition().y }}</p>
45
+ * </div>
46
+ * `
47
+ * })
48
+ * class MouseTracker {
49
+ * readonly mousePosition = throttled({ x: 0, y: 0 }, 16);
50
+ * }
51
+ * ```
52
+ */
53
+ export declare function throttled<V>(value: V, timeMs: MaybeSignal<number>, options?: ThrottledOptions<V>): WritableSignal<V>;
@@ -0,0 +1,68 @@
1
+ import { type CreateEffectOptions, type EffectCleanupRegisterFn, type EffectRef, type Signal } from '@angular/core';
2
+ import type { SignalValues } from '@signality/core/types';
3
+ export interface CreateWatcherOptions extends Omit<CreateEffectOptions, 'allowSignalWrites'> {
4
+ /**
5
+ * If `true`, the watcher will automatically destroy itself after the first change.
6
+ * @default false
7
+ */
8
+ readonly once?: boolean;
9
+ }
10
+ export type WatcherRef = EffectRef;
11
+ /**
12
+ * Watches a single signal and calls a callback when it changes, skipping the initial call.
13
+ * Unlike `effect()`, this responds to the fact of state change, enabling event-like orchestration of side effects.
14
+ *
15
+ * @param source - Signal to watch
16
+ * @param fn - Callback function called when signal changes. Receives current value, previous value, and cleanup function
17
+ * @param options - Optional configuration including effect options and injector
18
+ * @returns A WatcherRef (alias for EffectRef) that can be used to manually destroy the watcher
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * @Component({
23
+ * template: `
24
+ * <button (click)="count.set(count() + 1)">Count: {{ count() }}</button>
25
+ * `
26
+ * })
27
+ * class CounterComponent {
28
+ * readonly count = signal(0);
29
+ *
30
+ * constructor() {
31
+ * watcher(this.count, (curr, prev) => {
32
+ * console.log('Count changed from', prev, 'to', curr);
33
+ * });
34
+ * }
35
+ * }
36
+ * ```
37
+ */
38
+ export declare function watcher<V>(source: Signal<V>, fn: (curr: V, prev: V, onCleanup: EffectCleanupRegisterFn) => void, options?: CreateWatcherOptions): WatcherRef;
39
+ /**
40
+ * Watches multiple signals and calls a callback when any of them changes, skipping the initial call.
41
+ * Unlike `effect()`, this responds to the fact of state change, enabling event-like orchestration of side effects.
42
+ *
43
+ * @param sources - Array of signals to watch
44
+ * @param fn - Callback function called when any signal changes. Receives current values array, previous values array, and cleanup function
45
+ * @param options - Optional configuration including effect options and injector
46
+ * @returns A WatcherRef (alias for EffectRef) that can be used to manually destroy the watcher
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * @Component({
51
+ * template: `
52
+ * <input [(ngModel)]="name" />
53
+ * <input [(ngModel)]="age" type="number" />
54
+ * `
55
+ * })
56
+ * class UserComponent {
57
+ * readonly name = signal('John');
58
+ * readonly age = signal(25);
59
+ *
60
+ * constructor() {
61
+ * watcher([this.name, this.age], ([name, age], [prevName, prevAge]) => {
62
+ * console.log('User changed:', { name, age });
63
+ * });
64
+ * }
65
+ * }
66
+ * ```
67
+ */
68
+ export declare function watcher<T extends readonly Signal<any>[]>(sources: T, fn: (curr: SignalValues<T>, prev: SignalValues<T>, onCleanup: EffectCleanupRegisterFn) => void, options?: CreateWatcherOptions): WatcherRef;
@@ -0,0 +1,26 @@
1
+ import { type CreateSignalOptions, type Signal } from '@angular/core';
2
+ import type { WithInjector } from '@signality/core/types';
3
+ export type FragmentOptions = CreateSignalOptions<string | null> & WithInjector;
4
+ /**
5
+ * Reactive wrapper around the [Angular Router](https://angular.dev/guide/routing) URL fragment.
6
+ *
7
+ * @param options - Optional configuration including signal options and injector
8
+ * @returns A signal containing the current URL fragment (without #), or null
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * @Component({
13
+ * template: `
14
+ * @if (currentFragment(); as fragment) {
15
+ * <p>Current section: {{ fragment }}</p>
16
+ * } @else {
17
+ * <p>No fragment in URL</p>
18
+ * }
19
+ * `
20
+ * })
21
+ * class FragmentComponent {
22
+ * readonly currentFragment = fragment();
23
+ * }
24
+ * ```
25
+ */
26
+ export declare function fragment(options?: FragmentOptions): Signal<string | null>;
@@ -0,0 +1,7 @@
1
+ export * from '@signality/core/router/params';
2
+ export * from '@signality/core/router/query-params';
3
+ export * from '@signality/core/router/fragment';
4
+ export * from '@signality/core/router/title';
5
+ export * from '@signality/core/router/url';
6
+ export * from '@signality/core/router/route-data';
7
+ export * from '@signality/core/router/router-listener';
@@ -0,0 +1,28 @@
1
+ import { type CreateSignalOptions, type Signal } from '@angular/core';
2
+ import { type Params } from '@angular/router';
3
+ import type { WithInjector } from '@signality/core/types';
4
+ export type ParamsOptions<T extends Params = Params> = CreateSignalOptions<T> & WithInjector;
5
+ /**
6
+ * Reactive wrapper around Angular Router's route parameters.
7
+ * Access route parameters as a signal that updates when navigation occurs.
8
+ *
9
+ * @param options - Optional configuration including signal options and injector
10
+ * @returns A signal containing the current route parameters
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * @Component({
15
+ * template: `
16
+ * <div>
17
+ * <p>User ID: {{ routeParams().id }}</p>
18
+ * <p>Slug: {{ routeParams().slug }}</p>
19
+ * </div>
20
+ * `
21
+ * })
22
+ * class UserComponent {
23
+ * // Route: /user/:id/:slug
24
+ * readonly routeParams = params<{ id: string; slug: string }>();
25
+ * }
26
+ * ```
27
+ */
28
+ export declare function params<T extends Params = Params>(options?: ParamsOptions<T>): Signal<T>;
@@ -0,0 +1,80 @@
1
+ import { type CreateSignalOptions, type Signal } from '@angular/core';
2
+ import { type Params } from '@angular/router';
3
+ import type { WithInjector } from '@signality/core/types';
4
+ export interface QueryParamsValidator<T> {
5
+ /**
6
+ * Parse and validate data, throwing an error if validation fails.
7
+ */
8
+ parse(data: unknown): T;
9
+ }
10
+ export interface QueryParamsRef<T> {
11
+ /**
12
+ * Signal containing validated query parameters.
13
+ * Throws an error if validation failed. Use `isValid()` to check before reading.
14
+ */
15
+ readonly value: Signal<T>;
16
+ /**
17
+ * Signal indicating whether the current query parameters are valid.
18
+ * Returns `true` when validation succeeded, `false` when validation failed.
19
+ */
20
+ readonly isValid: Signal<boolean>;
21
+ /** Signal containing validation error, or null if valid */
22
+ readonly error: Signal<unknown | null>;
23
+ }
24
+ export type QueryParamsOptions<T extends Params = Params> = CreateSignalOptions<T> & WithInjector;
25
+ export type QueryParamsWithSchemaOptions<T extends Params = Params> = QueryParamsOptions<T> & {
26
+ /** Validator schema (e.g., Zod schema) */
27
+ readonly schema: QueryParamsValidator<T>;
28
+ };
29
+ /**
30
+ * Reactive wrapper around the [Angular Router](https://angular.dev/guide/routing) query parameters.
31
+ *
32
+ * @param options - Optional configuration including signal options and injector
33
+ * @returns A signal containing the current query parameters
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * @Component({
38
+ * template: `
39
+ * <div>
40
+ * <p>Search: {{ searchParams().q }}</p>
41
+ * <p>Sort: {{ searchParams().sort }}</p>
42
+ * </div>
43
+ * `
44
+ * })
45
+ * class SearchComponent {
46
+ * // Route: /search?q=angular&sort=name
47
+ * readonly searchParams = queryParams<{ q: string; sort: string }>();
48
+ * }
49
+ * ```
50
+ */
51
+ export declare function queryParams<T extends Params = Params>(options?: QueryParamsOptions<T>): Signal<T>;
52
+ /**
53
+ * Reactive wrapper around the [Angular Router](https://angular.dev/guide/routing) query parameters with schema validation.
54
+ *
55
+ * @param options - Configuration including schema validator
56
+ * @returns A QueryParamsRef object with value, isValid, and error signals
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * @Component({
61
+ * template: `
62
+ * @if (params.isValid()) {
63
+ * <p>Search: {{ params.value().q }}</p>
64
+ * <p>Page: {{ params.value().page }}</p>
65
+ * } @else {
66
+ * <p>Invalid parameters</p>
67
+ * }
68
+ * `
69
+ * })
70
+ * class ValidatedSearchComponent {
71
+ * readonly schema = z.object({
72
+ * q: z.string().min(1).optional(),
73
+ * page: z.coerce.number().int().positive().default(1),
74
+ * });
75
+ *
76
+ * readonly params = queryParams({ schema: this.schema });
77
+ * }
78
+ * ```
79
+ */
80
+ export declare function queryParams<T extends Params = Params>(options: QueryParamsWithSchemaOptions<T>): QueryParamsRef<T>;