sibujs 1.0.0-beta.1

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 (302) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1630 -0
  3. package/dist/browser.cjs +815 -0
  4. package/dist/browser.d.cts +174 -0
  5. package/dist/browser.d.ts +174 -0
  6. package/dist/browser.js +458 -0
  7. package/dist/build.cjs +4970 -0
  8. package/dist/build.d.cts +630 -0
  9. package/dist/build.d.ts +630 -0
  10. package/dist/build.js +2478 -0
  11. package/dist/cdn.global.js +115 -0
  12. package/dist/chunk-27QC4FPL.js +67 -0
  13. package/dist/chunk-2ABBWCGC.js +65 -0
  14. package/dist/chunk-2MUNQYZ7.js +26 -0
  15. package/dist/chunk-2PSPKNUI.js +1711 -0
  16. package/dist/chunk-35CDLDX5.js +1758 -0
  17. package/dist/chunk-36MU4CFV.js +41 -0
  18. package/dist/chunk-3FIQOFI6.js +182 -0
  19. package/dist/chunk-3GHNC2BN.js +28 -0
  20. package/dist/chunk-3HLWWEPU.js +909 -0
  21. package/dist/chunk-3IVI3J54.js +252 -0
  22. package/dist/chunk-3KZ72WNW.js +944 -0
  23. package/dist/chunk-4AU64SQV.js +182 -0
  24. package/dist/chunk-4MOK7HAR.js +84 -0
  25. package/dist/chunk-4QK6FBDH.js +1429 -0
  26. package/dist/chunk-566Z7HXB.js +737 -0
  27. package/dist/chunk-5CRBB7XP.js +358 -0
  28. package/dist/chunk-5G67D3IZ.js +168 -0
  29. package/dist/chunk-5NCPAWBE.js +99 -0
  30. package/dist/chunk-5O2RKXR3.js +1444 -0
  31. package/dist/chunk-6BTBDO6A.js +633 -0
  32. package/dist/chunk-6IWEHW57.js +43 -0
  33. package/dist/chunk-6JGMNCD6.js +282 -0
  34. package/dist/chunk-6QRLJNXR.js +1425 -0
  35. package/dist/chunk-7HM5UE5T.js +270 -0
  36. package/dist/chunk-7JOLTGUH.js +58 -0
  37. package/dist/chunk-7MCWJCQK.js +909 -0
  38. package/dist/chunk-7RIIFP3E.js +1758 -0
  39. package/dist/chunk-7UASYN3G.js +254 -0
  40. package/dist/chunk-7W2WYHDI.js +741 -0
  41. package/dist/chunk-7Y35RDSJ.js +872 -0
  42. package/dist/chunk-A65GFJBL.js +65 -0
  43. package/dist/chunk-AD6ZIEDK.js +67 -0
  44. package/dist/chunk-AK5Y72F3.js +1426 -0
  45. package/dist/chunk-APOMMWH4.js +282 -0
  46. package/dist/chunk-ARZVTWIQ.js +1750 -0
  47. package/dist/chunk-AWWBM2BI.js +664 -0
  48. package/dist/chunk-AX5VEQTY.js +58 -0
  49. package/dist/chunk-AYTXVOW3.js +1708 -0
  50. package/dist/chunk-BG4A246G.js +1746 -0
  51. package/dist/chunk-BNFJJA2L.js +1425 -0
  52. package/dist/chunk-BPKPBVU5.js +59 -0
  53. package/dist/chunk-BPKPPSXC.js +282 -0
  54. package/dist/chunk-BPWKKK7F.js +1711 -0
  55. package/dist/chunk-CCKX6YTC.js +1735 -0
  56. package/dist/chunk-CIF5Z3MP.js +58 -0
  57. package/dist/chunk-CSXYU7IO.js +457 -0
  58. package/dist/chunk-D6JD4FDC.js +26 -0
  59. package/dist/chunk-E7NGA7X2.js +59 -0
  60. package/dist/chunk-EEPPJKAE.js +443 -0
  61. package/dist/chunk-EJMYGAGQ.js +717 -0
  62. package/dist/chunk-EL6Z5MDY.js +55 -0
  63. package/dist/chunk-EP7VRLEB.js +41 -0
  64. package/dist/chunk-ETMEC6FH.js +99 -0
  65. package/dist/chunk-EZ2WHYVL.js +65 -0
  66. package/dist/chunk-EZRVMSZK.js +67 -0
  67. package/dist/chunk-F2TRGINX.js +254 -0
  68. package/dist/chunk-F5JCIH3Q.js +642 -0
  69. package/dist/chunk-FGK3JKMN.js +909 -0
  70. package/dist/chunk-FQWPKSTD.js +1437 -0
  71. package/dist/chunk-FWHVLMCI.js +26 -0
  72. package/dist/chunk-GBEYQRO2.js +303 -0
  73. package/dist/chunk-GBLES3NK.js +248 -0
  74. package/dist/chunk-GQVGUQW6.js +1436 -0
  75. package/dist/chunk-HCV2T76T.js +457 -0
  76. package/dist/chunk-HS7ZKVPR.js +182 -0
  77. package/dist/chunk-HXDVV7HZ.js +909 -0
  78. package/dist/chunk-IB23VMO3.js +1746 -0
  79. package/dist/chunk-IEMZ7RTT.js +99 -0
  80. package/dist/chunk-IPGRSN42.js +1750 -0
  81. package/dist/chunk-IVMOK2QN.js +1750 -0
  82. package/dist/chunk-JCLGQO7T.js +443 -0
  83. package/dist/chunk-JDXL7KDB.js +1436 -0
  84. package/dist/chunk-JIIFW636.js +270 -0
  85. package/dist/chunk-JWGEEH7H.js +944 -0
  86. package/dist/chunk-K2BESAG7.js +1688 -0
  87. package/dist/chunk-K2U5YGF4.js +877 -0
  88. package/dist/chunk-K45FQ4Y4.js +175 -0
  89. package/dist/chunk-K7BPE427.js +1432 -0
  90. package/dist/chunk-KL3266RS.js +26 -0
  91. package/dist/chunk-KNN4P7DZ.js +84 -0
  92. package/dist/chunk-KP2DZH5Q.js +254 -0
  93. package/dist/chunk-KZHAJSQR.js +1636 -0
  94. package/dist/chunk-LBKGHMQV.js +1750 -0
  95. package/dist/chunk-LBTEPL7A.js +1731 -0
  96. package/dist/chunk-LEBBPTDB.js +1444 -0
  97. package/dist/chunk-LLH63WVQ.js +98 -0
  98. package/dist/chunk-LWVR2C4G.js +1711 -0
  99. package/dist/chunk-M3MDTVV2.js +896 -0
  100. package/dist/chunk-M5GNLDEO.js +303 -0
  101. package/dist/chunk-MFHVGKET.js +267 -0
  102. package/dist/chunk-MGWSG3PM.js +358 -0
  103. package/dist/chunk-MJNB47HB.js +19 -0
  104. package/dist/chunk-MLKGABMK.js +9 -0
  105. package/dist/chunk-MQWTY3JY.js +944 -0
  106. package/dist/chunk-MZZOQHNI.js +642 -0
  107. package/dist/chunk-NIHWGZS4.js +1426 -0
  108. package/dist/chunk-NSVVHQK5.js +41 -0
  109. package/dist/chunk-NVI2WE7D.js +443 -0
  110. package/dist/chunk-O7QBO3PH.js +58 -0
  111. package/dist/chunk-OAUPQBO2.js +270 -0
  112. package/dist/chunk-OB2LMD7C.js +297 -0
  113. package/dist/chunk-OHEYBWQU.js +58 -0
  114. package/dist/chunk-OI6OXUHJ.js +443 -0
  115. package/dist/chunk-OX2VMRMV.js +633 -0
  116. package/dist/chunk-P4FYE5TX.js +866 -0
  117. package/dist/chunk-P5KFWM4H.js +98 -0
  118. package/dist/chunk-PUMLE7RJ.js +1711 -0
  119. package/dist/chunk-Q4MFANBF.js +282 -0
  120. package/dist/chunk-QLEKZMMU.js +282 -0
  121. package/dist/chunk-RGGNGVO3.js +98 -0
  122. package/dist/chunk-RKJDRVV6.js +443 -0
  123. package/dist/chunk-S5BHU353.js +43 -0
  124. package/dist/chunk-SHQUSFH7.js +1426 -0
  125. package/dist/chunk-SMB4DBMD.js +182 -0
  126. package/dist/chunk-SNYHQP3D.js +743 -0
  127. package/dist/chunk-T24L3TBF.js +1717 -0
  128. package/dist/chunk-TAQNSOKT.js +692 -0
  129. package/dist/chunk-TDNY4SUA.js +41 -0
  130. package/dist/chunk-TNNF56IQ.js +1750 -0
  131. package/dist/chunk-TR7E6LYX.js +457 -0
  132. package/dist/chunk-URWUFH45.js +98 -0
  133. package/dist/chunk-UUSIH3XH.js +1429 -0
  134. package/dist/chunk-UYFNXLKR.js +1436 -0
  135. package/dist/chunk-V6F7KUWD.js +270 -0
  136. package/dist/chunk-VCZLXRMR.js +254 -0
  137. package/dist/chunk-VDHXSSBT.js +1426 -0
  138. package/dist/chunk-VM4QMKVK.js +254 -0
  139. package/dist/chunk-VWGYKYL2.js +737 -0
  140. package/dist/chunk-VX2OFBJN.js +1426 -0
  141. package/dist/chunk-VXVIE6DG.js +84 -0
  142. package/dist/chunk-W4OH7HG4.js +40 -0
  143. package/dist/chunk-WBVJX4GZ.js +98 -0
  144. package/dist/chunk-WDU2ZV4I.js +1426 -0
  145. package/dist/chunk-X6VUCICU.js +457 -0
  146. package/dist/chunk-XAY7FM7Y.js +618 -0
  147. package/dist/chunk-XJZ5Z2CM.js +642 -0
  148. package/dist/chunk-XKVFQTJJ.js +254 -0
  149. package/dist/chunk-XRLFASCY.js +22 -0
  150. package/dist/chunk-XYU6TZOW.js +182 -0
  151. package/dist/chunk-Y745CBVB.js +944 -0
  152. package/dist/chunk-YLBJSXYY.js +944 -0
  153. package/dist/chunk-YQJIKVPZ.js +1429 -0
  154. package/dist/chunk-YRM2VCZF.js +457 -0
  155. package/dist/chunk-YS33KBVJ.js +944 -0
  156. package/dist/chunk-Z27DZPDG.js +41 -0
  157. package/dist/chunk-ZXQ5NAEN.js +32 -0
  158. package/dist/contracts-B552GopR.d.cts +245 -0
  159. package/dist/contracts-B552GopR.d.ts +245 -0
  160. package/dist/contracts-Bg1ECISC.d.cts +245 -0
  161. package/dist/contracts-Bg1ECISC.d.ts +245 -0
  162. package/dist/contracts-CMriKJ6P.d.cts +245 -0
  163. package/dist/contracts-CMriKJ6P.d.ts +245 -0
  164. package/dist/contracts-DOrhwbke.d.cts +245 -0
  165. package/dist/contracts-DOrhwbke.d.ts +245 -0
  166. package/dist/data.cjs +1373 -0
  167. package/dist/data.d.cts +434 -0
  168. package/dist/data.d.ts +434 -0
  169. package/dist/data.js +945 -0
  170. package/dist/devtools.cjs +1357 -0
  171. package/dist/devtools.d.cts +473 -0
  172. package/dist/devtools.d.ts +473 -0
  173. package/dist/devtools.js +1084 -0
  174. package/dist/ecosystem.cjs +1046 -0
  175. package/dist/ecosystem.d.cts +247 -0
  176. package/dist/ecosystem.d.ts +247 -0
  177. package/dist/ecosystem.js +369 -0
  178. package/dist/extras.cjs +8457 -0
  179. package/dist/extras.d.cts +2356 -0
  180. package/dist/extras.d.ts +2356 -0
  181. package/dist/extras.js +5152 -0
  182. package/dist/index.cjs +2648 -0
  183. package/dist/index.d.cts +869 -0
  184. package/dist/index.d.ts +869 -0
  185. package/dist/index.js +386 -0
  186. package/dist/motion.cjs +604 -0
  187. package/dist/motion.d.cts +146 -0
  188. package/dist/motion.d.ts +146 -0
  189. package/dist/motion.js +346 -0
  190. package/dist/patterns.cjs +815 -0
  191. package/dist/patterns.d.cts +163 -0
  192. package/dist/patterns.d.ts +163 -0
  193. package/dist/patterns.js +296 -0
  194. package/dist/performance.cjs +927 -0
  195. package/dist/performance.d.cts +416 -0
  196. package/dist/performance.d.ts +416 -0
  197. package/dist/performance.js +654 -0
  198. package/dist/plugins.cjs +2487 -0
  199. package/dist/plugins.d.cts +393 -0
  200. package/dist/plugins.d.ts +393 -0
  201. package/dist/plugins.js +1504 -0
  202. package/dist/signal-BnWpq6WB.d.cts +5 -0
  203. package/dist/signal-BnWpq6WB.d.ts +5 -0
  204. package/dist/src/components/ErrorBoundary.d.ts +15 -0
  205. package/dist/src/components/ErrorBoundary.js +119 -0
  206. package/dist/src/core/catch.d.ts +11 -0
  207. package/dist/src/core/catch.js +28 -0
  208. package/dist/src/core/each.d.ts +13 -0
  209. package/dist/src/core/each.js +68 -0
  210. package/dist/src/core/for.d.ts +12 -0
  211. package/dist/src/core/for.js +67 -0
  212. package/dist/src/core/html.d.ts +137 -0
  213. package/dist/src/core/html.js +155 -0
  214. package/dist/src/core/htmlIf.d.ts +11 -0
  215. package/dist/src/core/htmlIf.js +18 -0
  216. package/dist/src/core/lazy.d.ts +7 -0
  217. package/dist/src/core/lazy.js +16 -0
  218. package/dist/src/core/mount.d.ts +7 -0
  219. package/dist/src/core/mount.js +12 -0
  220. package/dist/src/core/slots.d.ts +3 -0
  221. package/dist/src/core/slots.js +3 -0
  222. package/dist/src/core/suspense.d.ts +10 -0
  223. package/dist/src/core/suspense.js +33 -0
  224. package/dist/src/core/tagFactory.d.ts +13 -0
  225. package/dist/src/core/tagFactory.js +86 -0
  226. package/dist/src/core/test.d.ts +11 -0
  227. package/dist/src/core/test.js +28 -0
  228. package/dist/src/core/types.d.ts +2 -0
  229. package/dist/src/core/types.js +1 -0
  230. package/dist/src/core/useComputed.d.ts +6 -0
  231. package/dist/src/core/useComputed.js +30 -0
  232. package/dist/src/core/useEffect.d.ts +6 -0
  233. package/dist/src/core/useEffect.js +23 -0
  234. package/dist/src/core/useState.d.ts +10 -0
  235. package/dist/src/core/useState.js +34 -0
  236. package/dist/src/core/useStore.d.ts +19 -0
  237. package/dist/src/core/useStore.js +53 -0
  238. package/dist/src/core/useWatch.d.ts +8 -0
  239. package/dist/src/core/useWatch.js +23 -0
  240. package/dist/src/plugins/i18n.d.ts +6 -0
  241. package/dist/src/plugins/i18n.js +16 -0
  242. package/dist/src/plugins/router.d.ts +188 -0
  243. package/dist/src/plugins/router.js +1178 -0
  244. package/dist/src/reactivity/bindAttribute.d.ts +5 -0
  245. package/dist/src/reactivity/bindAttribute.js +31 -0
  246. package/dist/src/reactivity/bindChildNode.d.ts +10 -0
  247. package/dist/src/reactivity/bindChildNode.js +46 -0
  248. package/dist/src/reactivity/bindTextNode.d.ts +10 -0
  249. package/dist/src/reactivity/bindTextNode.js +27 -0
  250. package/dist/src/reactivity/signal.d.ts +3 -0
  251. package/dist/src/reactivity/signal.js +1 -0
  252. package/dist/src/reactivity/track.d.ts +18 -0
  253. package/dist/src/reactivity/track.js +73 -0
  254. package/dist/src/reactivity/useComputed.d.ts +6 -0
  255. package/dist/src/reactivity/useComputed.js +30 -0
  256. package/dist/src/reactivity/useEffect.d.ts +6 -0
  257. package/dist/src/reactivity/useEffect.js +23 -0
  258. package/dist/src/reactivity/useState.d.ts +10 -0
  259. package/dist/src/reactivity/useState.js +34 -0
  260. package/dist/src/reactivity/useStore.d.ts +19 -0
  261. package/dist/src/reactivity/useStore.js +53 -0
  262. package/dist/src/reactivity/useWatch.d.ts +8 -0
  263. package/dist/src/reactivity/useWatch.js +23 -0
  264. package/dist/src/utils/sanitize.d.ts +1 -0
  265. package/dist/src/utils/sanitize.js +8 -0
  266. package/dist/ssr-27FOM46T.js +35 -0
  267. package/dist/ssr-GFUTTSJD.js +22 -0
  268. package/dist/ssr-K7DCR6BZ.js +35 -0
  269. package/dist/ssr-O6LFMRFP.js +35 -0
  270. package/dist/ssr-QZEVGMMK.js +35 -0
  271. package/dist/ssr-SGVBCAGC.js +35 -0
  272. package/dist/ssr-UB2IXCYX.js +35 -0
  273. package/dist/ssr-XBZQNV4O.js +22 -0
  274. package/dist/ssr-Y76FSXDU.js +35 -0
  275. package/dist/ssr-YQJ4AYBD.js +35 -0
  276. package/dist/ssr.cjs +1757 -0
  277. package/dist/ssr.d.cts +478 -0
  278. package/dist/ssr.d.ts +478 -0
  279. package/dist/ssr.js +743 -0
  280. package/dist/tagFactory-CZPO4RXF.d.cts +34 -0
  281. package/dist/tagFactory-CZPO4RXF.d.ts +34 -0
  282. package/dist/tagFactory-CgImPVMY.d.cts +22 -0
  283. package/dist/tagFactory-CgImPVMY.d.ts +22 -0
  284. package/dist/tagFactory-Cw1iv5if.d.cts +22 -0
  285. package/dist/tagFactory-Cw1iv5if.d.ts +22 -0
  286. package/dist/tagFactory-DeAXq9ef.d.cts +30 -0
  287. package/dist/tagFactory-DeAXq9ef.d.ts +30 -0
  288. package/dist/tagFactory-SkY0a7L1.d.cts +22 -0
  289. package/dist/tagFactory-SkY0a7L1.d.ts +22 -0
  290. package/dist/testing.cjs +1919 -0
  291. package/dist/testing.d.cts +491 -0
  292. package/dist/testing.d.ts +491 -0
  293. package/dist/testing.js +1862 -0
  294. package/dist/ui.cjs +1497 -0
  295. package/dist/ui.d.cts +264 -0
  296. package/dist/ui.d.ts +264 -0
  297. package/dist/ui.js +900 -0
  298. package/dist/widgets.cjs +919 -0
  299. package/dist/widgets.d.cts +165 -0
  300. package/dist/widgets.d.ts +165 -0
  301. package/dist/widgets.js +545 -0
  302. package/package.json +134 -0
@@ -0,0 +1,174 @@
1
+ /**
2
+ * media returns a reactive boolean that tracks whether a CSS media query matches.
3
+ * Uses `window.matchMedia` and listens to `change` events for live updates.
4
+ *
5
+ * @param query CSS media query string (e.g. "(max-width: 768px)")
6
+ * @returns Object with reactive matches getter and dispose function for cleanup
7
+ */
8
+ declare function media(query: string): {
9
+ matches: () => boolean;
10
+ dispose: () => void;
11
+ };
12
+
13
+ /**
14
+ * resize tracks the dimensions of a target element reactively.
15
+ * Uses the ResizeObserver API to monitor size changes.
16
+ *
17
+ * @param target Reactive getter returning the HTMLElement to observe (or null)
18
+ * @returns Object with reactive width/height getters and a dispose function
19
+ */
20
+ declare function resize(target: () => HTMLElement | null): {
21
+ width: () => number;
22
+ height: () => number;
23
+ dispose: () => void;
24
+ };
25
+
26
+ /**
27
+ * scroll tracks the scroll position of a target element or the window.
28
+ * Returns reactive x/y scroll positions and an isScrolling indicator
29
+ * that resets after 150ms of inactivity.
30
+ *
31
+ * @param target Optional reactive getter for the scroll target element.
32
+ * If omitted or returns null, tracks window scroll.
33
+ * @returns Object with reactive x, y, isScrolling getters and a dispose function
34
+ */
35
+ declare function scroll(target?: () => HTMLElement | null): {
36
+ x: () => number;
37
+ y: () => number;
38
+ isScrolling: () => boolean;
39
+ dispose: () => void;
40
+ };
41
+
42
+ /**
43
+ * online returns a reactive boolean tracking the browser's online/offline status.
44
+ * Wraps `navigator.onLine` with online/offline event listeners.
45
+ *
46
+ * @returns Object with reactive online getter and dispose function for cleanup
47
+ */
48
+ declare function online(): {
49
+ online: () => boolean;
50
+ dispose: () => void;
51
+ };
52
+
53
+ /**
54
+ * geo provides reactive access to the device's geographic position.
55
+ * Uses `navigator.geolocation.watchPosition` for continuous updates.
56
+ *
57
+ * @param options Optional PositionOptions for the geolocation API
58
+ * @returns Object with reactive latitude, longitude, accuracy, error getters and dispose
59
+ */
60
+ declare function geo(options?: PositionOptions): {
61
+ latitude: () => number | null;
62
+ longitude: () => number | null;
63
+ accuracy: () => number | null;
64
+ error: () => GeolocationPositionError | null;
65
+ dispose: () => void;
66
+ };
67
+
68
+ /**
69
+ * battery provides reactive access to the Battery Status API.
70
+ * Returns reactive getters for battery level, charging status, and timing.
71
+ *
72
+ * @returns Object with reactive battery state getters, supported flag, and dispose
73
+ */
74
+ declare function battery(): {
75
+ level: () => number | null;
76
+ charging: () => boolean | null;
77
+ chargingTime: () => number | null;
78
+ dischargingTime: () => number | null;
79
+ supported: () => boolean;
80
+ dispose: () => void;
81
+ };
82
+
83
+ /**
84
+ * idle tracks user idle state based on mouse, keyboard, and touch activity.
85
+ * Returns a reactive boolean that is true when the user has been idle
86
+ * for the specified timeout duration.
87
+ *
88
+ * @param timeout Idle timeout in milliseconds (default: 60000)
89
+ * @returns Object with reactive idle getter and dispose function for cleanup
90
+ */
91
+ declare function idle(timeout?: number): {
92
+ idle: () => boolean;
93
+ dispose: () => void;
94
+ };
95
+
96
+ type PermissionState = "granted" | "denied" | "prompt" | "unsupported";
97
+ /**
98
+ * permissions queries and reactively tracks a browser permission status.
99
+ * Uses `navigator.permissions.query` and listens for state changes.
100
+ *
101
+ * @param name The permission name to query (e.g. "camera", "microphone", "geolocation")
102
+ * @returns Object with reactive state getter and dispose function
103
+ */
104
+ declare function permissions(name: string): {
105
+ state: () => PermissionState;
106
+ dispose: () => void;
107
+ };
108
+
109
+ /**
110
+ * clipboard provides reactive access to the async Clipboard API.
111
+ * Tracks the last copied text and provides a `copied` indicator
112
+ * that resets after 2 seconds.
113
+ *
114
+ * @returns Object with reactive text getter, copy function, copied indicator, and dispose
115
+ */
116
+ declare function clipboard(): {
117
+ text: () => string;
118
+ copy: (text: string) => Promise<void>;
119
+ copied: () => boolean;
120
+ dispose: () => void;
121
+ };
122
+
123
+ /**
124
+ * draggable makes an element draggable and tracks its dragging state.
125
+ * Sets the `draggable` attribute and attaches dragstart/dragend listeners.
126
+ * Serializes the provided data as JSON into the dataTransfer.
127
+ *
128
+ * @param element Reactive getter returning the HTMLElement to make draggable (or null)
129
+ * @param data Optional data payload to transfer on drag
130
+ * @returns Object with reactive isDragging getter and dispose function
131
+ */
132
+ declare function draggable(element: () => HTMLElement | null, data?: unknown): {
133
+ isDragging: () => boolean;
134
+ dispose: () => void;
135
+ };
136
+ /**
137
+ * dropZone turns an element into a drop zone and tracks drag-over state.
138
+ * Listens for dragenter, dragleave, dragover, and drop events.
139
+ * Calls options.onDrop with the parsed data payload and the DragEvent.
140
+ *
141
+ * @param element Reactive getter returning the HTMLElement to use as drop zone (or null)
142
+ * @param options Object with onDrop callback receiving the transferred data and event
143
+ * @returns Object with reactive isOver getter and dispose function
144
+ */
145
+ declare function dropZone(element: () => HTMLElement | null, options: {
146
+ onDrop: (data: unknown, event: DragEvent) => void;
147
+ }): {
148
+ isOver: () => boolean;
149
+ dispose: () => void;
150
+ };
151
+
152
+ /**
153
+ * title sets `document.title` reactively. Accepts a static string
154
+ * or a reactive getter function. Returns a dispose function that
155
+ * restores the previous document title.
156
+ *
157
+ * @param title Static string or reactive getter for the document title
158
+ * @returns Dispose function that restores the original title
159
+ */
160
+ declare function title(value: string | (() => string)): () => void;
161
+
162
+ /**
163
+ * colorScheme returns a reactive getter tracking the user's
164
+ * preferred color scheme (light or dark).
165
+ * Uses `matchMedia("(prefers-color-scheme: dark)")` and listens for changes.
166
+ *
167
+ * @returns Object with reactive scheme getter and dispose function for cleanup
168
+ */
169
+ declare function colorScheme(): {
170
+ scheme: () => "light" | "dark";
171
+ dispose: () => void;
172
+ };
173
+
174
+ export { battery, clipboard, colorScheme, draggable, dropZone, geo, idle, media, online, permissions, resize, scroll, title };
@@ -0,0 +1,174 @@
1
+ /**
2
+ * media returns a reactive boolean that tracks whether a CSS media query matches.
3
+ * Uses `window.matchMedia` and listens to `change` events for live updates.
4
+ *
5
+ * @param query CSS media query string (e.g. "(max-width: 768px)")
6
+ * @returns Object with reactive matches getter and dispose function for cleanup
7
+ */
8
+ declare function media(query: string): {
9
+ matches: () => boolean;
10
+ dispose: () => void;
11
+ };
12
+
13
+ /**
14
+ * resize tracks the dimensions of a target element reactively.
15
+ * Uses the ResizeObserver API to monitor size changes.
16
+ *
17
+ * @param target Reactive getter returning the HTMLElement to observe (or null)
18
+ * @returns Object with reactive width/height getters and a dispose function
19
+ */
20
+ declare function resize(target: () => HTMLElement | null): {
21
+ width: () => number;
22
+ height: () => number;
23
+ dispose: () => void;
24
+ };
25
+
26
+ /**
27
+ * scroll tracks the scroll position of a target element or the window.
28
+ * Returns reactive x/y scroll positions and an isScrolling indicator
29
+ * that resets after 150ms of inactivity.
30
+ *
31
+ * @param target Optional reactive getter for the scroll target element.
32
+ * If omitted or returns null, tracks window scroll.
33
+ * @returns Object with reactive x, y, isScrolling getters and a dispose function
34
+ */
35
+ declare function scroll(target?: () => HTMLElement | null): {
36
+ x: () => number;
37
+ y: () => number;
38
+ isScrolling: () => boolean;
39
+ dispose: () => void;
40
+ };
41
+
42
+ /**
43
+ * online returns a reactive boolean tracking the browser's online/offline status.
44
+ * Wraps `navigator.onLine` with online/offline event listeners.
45
+ *
46
+ * @returns Object with reactive online getter and dispose function for cleanup
47
+ */
48
+ declare function online(): {
49
+ online: () => boolean;
50
+ dispose: () => void;
51
+ };
52
+
53
+ /**
54
+ * geo provides reactive access to the device's geographic position.
55
+ * Uses `navigator.geolocation.watchPosition` for continuous updates.
56
+ *
57
+ * @param options Optional PositionOptions for the geolocation API
58
+ * @returns Object with reactive latitude, longitude, accuracy, error getters and dispose
59
+ */
60
+ declare function geo(options?: PositionOptions): {
61
+ latitude: () => number | null;
62
+ longitude: () => number | null;
63
+ accuracy: () => number | null;
64
+ error: () => GeolocationPositionError | null;
65
+ dispose: () => void;
66
+ };
67
+
68
+ /**
69
+ * battery provides reactive access to the Battery Status API.
70
+ * Returns reactive getters for battery level, charging status, and timing.
71
+ *
72
+ * @returns Object with reactive battery state getters, supported flag, and dispose
73
+ */
74
+ declare function battery(): {
75
+ level: () => number | null;
76
+ charging: () => boolean | null;
77
+ chargingTime: () => number | null;
78
+ dischargingTime: () => number | null;
79
+ supported: () => boolean;
80
+ dispose: () => void;
81
+ };
82
+
83
+ /**
84
+ * idle tracks user idle state based on mouse, keyboard, and touch activity.
85
+ * Returns a reactive boolean that is true when the user has been idle
86
+ * for the specified timeout duration.
87
+ *
88
+ * @param timeout Idle timeout in milliseconds (default: 60000)
89
+ * @returns Object with reactive idle getter and dispose function for cleanup
90
+ */
91
+ declare function idle(timeout?: number): {
92
+ idle: () => boolean;
93
+ dispose: () => void;
94
+ };
95
+
96
+ type PermissionState = "granted" | "denied" | "prompt" | "unsupported";
97
+ /**
98
+ * permissions queries and reactively tracks a browser permission status.
99
+ * Uses `navigator.permissions.query` and listens for state changes.
100
+ *
101
+ * @param name The permission name to query (e.g. "camera", "microphone", "geolocation")
102
+ * @returns Object with reactive state getter and dispose function
103
+ */
104
+ declare function permissions(name: string): {
105
+ state: () => PermissionState;
106
+ dispose: () => void;
107
+ };
108
+
109
+ /**
110
+ * clipboard provides reactive access to the async Clipboard API.
111
+ * Tracks the last copied text and provides a `copied` indicator
112
+ * that resets after 2 seconds.
113
+ *
114
+ * @returns Object with reactive text getter, copy function, copied indicator, and dispose
115
+ */
116
+ declare function clipboard(): {
117
+ text: () => string;
118
+ copy: (text: string) => Promise<void>;
119
+ copied: () => boolean;
120
+ dispose: () => void;
121
+ };
122
+
123
+ /**
124
+ * draggable makes an element draggable and tracks its dragging state.
125
+ * Sets the `draggable` attribute and attaches dragstart/dragend listeners.
126
+ * Serializes the provided data as JSON into the dataTransfer.
127
+ *
128
+ * @param element Reactive getter returning the HTMLElement to make draggable (or null)
129
+ * @param data Optional data payload to transfer on drag
130
+ * @returns Object with reactive isDragging getter and dispose function
131
+ */
132
+ declare function draggable(element: () => HTMLElement | null, data?: unknown): {
133
+ isDragging: () => boolean;
134
+ dispose: () => void;
135
+ };
136
+ /**
137
+ * dropZone turns an element into a drop zone and tracks drag-over state.
138
+ * Listens for dragenter, dragleave, dragover, and drop events.
139
+ * Calls options.onDrop with the parsed data payload and the DragEvent.
140
+ *
141
+ * @param element Reactive getter returning the HTMLElement to use as drop zone (or null)
142
+ * @param options Object with onDrop callback receiving the transferred data and event
143
+ * @returns Object with reactive isOver getter and dispose function
144
+ */
145
+ declare function dropZone(element: () => HTMLElement | null, options: {
146
+ onDrop: (data: unknown, event: DragEvent) => void;
147
+ }): {
148
+ isOver: () => boolean;
149
+ dispose: () => void;
150
+ };
151
+
152
+ /**
153
+ * title sets `document.title` reactively. Accepts a static string
154
+ * or a reactive getter function. Returns a dispose function that
155
+ * restores the previous document title.
156
+ *
157
+ * @param title Static string or reactive getter for the document title
158
+ * @returns Dispose function that restores the original title
159
+ */
160
+ declare function title(value: string | (() => string)): () => void;
161
+
162
+ /**
163
+ * colorScheme returns a reactive getter tracking the user's
164
+ * preferred color scheme (light or dark).
165
+ * Uses `matchMedia("(prefers-color-scheme: dark)")` and listens for changes.
166
+ *
167
+ * @returns Object with reactive scheme getter and dispose function for cleanup
168
+ */
169
+ declare function colorScheme(): {
170
+ scheme: () => "light" | "dark";
171
+ dispose: () => void;
172
+ };
173
+
174
+ export { battery, clipboard, colorScheme, draggable, dropZone, geo, idle, media, online, permissions, resize, scroll, title };