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,815 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // browser.ts
21
+ var browser_exports = {};
22
+ __export(browser_exports, {
23
+ battery: () => battery,
24
+ clipboard: () => clipboard,
25
+ colorScheme: () => colorScheme,
26
+ draggable: () => draggable,
27
+ dropZone: () => dropZone,
28
+ geo: () => geo,
29
+ idle: () => idle,
30
+ media: () => media,
31
+ online: () => online,
32
+ permissions: () => permissions,
33
+ resize: () => resize,
34
+ scroll: () => scroll,
35
+ title: () => title
36
+ });
37
+ module.exports = __toCommonJS(browser_exports);
38
+
39
+ // src/reactivity/track.ts
40
+ var subscriberStack = [];
41
+ var currentSubscriber = null;
42
+ var signalSubscribers = /* @__PURE__ */ new WeakMap();
43
+ var SUBS = "__s";
44
+ var notifyDepth = 0;
45
+ var pendingQueue = [];
46
+ var pendingSet = /* @__PURE__ */ new Set();
47
+ var suspendDepth = 0;
48
+ var trackingSuspended = false;
49
+ function track(effectFn, subscriber) {
50
+ if (!subscriber) subscriber = effectFn;
51
+ cleanup(subscriber);
52
+ subscriberStack.push(subscriber);
53
+ currentSubscriber = subscriber;
54
+ effectFn();
55
+ subscriberStack.pop();
56
+ currentSubscriber = subscriberStack[subscriberStack.length - 1] || null;
57
+ return () => cleanup(subscriber);
58
+ }
59
+ function suspendTracking() {
60
+ if (suspendDepth === 0) {
61
+ subscriberStack.push(null);
62
+ currentSubscriber = null;
63
+ trackingSuspended = true;
64
+ }
65
+ suspendDepth++;
66
+ }
67
+ function resumeTracking() {
68
+ suspendDepth--;
69
+ if (suspendDepth === 0) {
70
+ subscriberStack.pop();
71
+ currentSubscriber = subscriberStack[subscriberStack.length - 1] || null;
72
+ trackingSuspended = false;
73
+ }
74
+ }
75
+ function recordDependency(signal2) {
76
+ if (!currentSubscriber) return;
77
+ let deps = currentSubscriber._deps;
78
+ if (!deps) {
79
+ deps = /* @__PURE__ */ new Set();
80
+ currentSubscriber._deps = deps;
81
+ }
82
+ if (!deps.has(signal2)) {
83
+ deps.add(signal2);
84
+ let subs = signal2[SUBS];
85
+ if (!subs) {
86
+ subs = /* @__PURE__ */ new Set();
87
+ signalSubscribers.set(signal2, subs);
88
+ signal2[SUBS] = subs;
89
+ }
90
+ subs.add(currentSubscriber);
91
+ if (subs.size === 1) {
92
+ signal2.__f = currentSubscriber;
93
+ } else if (signal2.__f !== void 0) {
94
+ signal2.__f = void 0;
95
+ }
96
+ }
97
+ }
98
+ function queueSignalNotification(signal2) {
99
+ const subs = signal2[SUBS];
100
+ if (!subs) return;
101
+ for (const sub of subs) {
102
+ if (sub._c) {
103
+ propagateDirty(sub);
104
+ } else if (!pendingSet.has(sub)) {
105
+ pendingSet.add(sub);
106
+ pendingQueue.push(sub);
107
+ }
108
+ }
109
+ }
110
+ function drainNotificationQueue() {
111
+ if (notifyDepth > 0) return;
112
+ notifyDepth++;
113
+ try {
114
+ let i = 0;
115
+ while (i < pendingQueue.length) {
116
+ pendingQueue[i]();
117
+ i++;
118
+ }
119
+ } finally {
120
+ pendingQueue.length = 0;
121
+ pendingSet.clear();
122
+ notifyDepth--;
123
+ }
124
+ }
125
+ function propagateDirty(sub) {
126
+ sub();
127
+ let sig = sub._sig;
128
+ let suspended = false;
129
+ if (sig && sig._g) {
130
+ const sDeps = sub._deps;
131
+ if (sDeps && sDeps.size === 1) {
132
+ suspendTracking();
133
+ suspended = true;
134
+ const s = sig;
135
+ s._d = false;
136
+ s._v = s._g();
137
+ }
138
+ }
139
+ while (sig) {
140
+ const first = sig.__f;
141
+ if (first) {
142
+ if (first._c) {
143
+ const nSig = first._sig;
144
+ nSig._d = true;
145
+ if (suspended && nSig._g) {
146
+ const fDeps = first._deps;
147
+ if (fDeps && fDeps.size === 1) {
148
+ nSig._d = false;
149
+ nSig._v = nSig._g();
150
+ }
151
+ }
152
+ sig = nSig;
153
+ continue;
154
+ }
155
+ if (!pendingSet.has(first)) {
156
+ pendingSet.add(first);
157
+ pendingQueue.push(first);
158
+ }
159
+ break;
160
+ }
161
+ const subs = sig[SUBS];
162
+ if (!subs) break;
163
+ let nextSig;
164
+ for (const s of subs) {
165
+ if (s._c) {
166
+ s();
167
+ const nSig = s._sig;
168
+ if (nSig && !nextSig) {
169
+ nextSig = nSig;
170
+ } else if (nSig) {
171
+ propagateDirty(s);
172
+ }
173
+ } else if (!pendingSet.has(s)) {
174
+ pendingSet.add(s);
175
+ pendingQueue.push(s);
176
+ }
177
+ }
178
+ sig = nextSig;
179
+ }
180
+ if (suspended) resumeTracking();
181
+ }
182
+ function notifySubscribers(signal2) {
183
+ const first = signal2.__f;
184
+ if (first) {
185
+ if (notifyDepth > 0) {
186
+ if (first._c) {
187
+ propagateDirty(first);
188
+ } else if (!pendingSet.has(first)) {
189
+ pendingSet.add(first);
190
+ pendingQueue.push(first);
191
+ }
192
+ return;
193
+ }
194
+ notifyDepth++;
195
+ try {
196
+ if (first._c) {
197
+ propagateDirty(first);
198
+ } else {
199
+ first();
200
+ }
201
+ let i = 0;
202
+ while (i < pendingQueue.length) {
203
+ pendingQueue[i]();
204
+ i++;
205
+ }
206
+ } finally {
207
+ pendingQueue.length = 0;
208
+ pendingSet.clear();
209
+ notifyDepth--;
210
+ }
211
+ return;
212
+ }
213
+ const subs = signal2[SUBS];
214
+ if (!subs || subs.size === 0) return;
215
+ if (notifyDepth > 0) {
216
+ for (const sub of subs) {
217
+ if (sub._c) {
218
+ propagateDirty(sub);
219
+ } else if (!pendingSet.has(sub)) {
220
+ pendingSet.add(sub);
221
+ pendingQueue.push(sub);
222
+ }
223
+ }
224
+ return;
225
+ }
226
+ notifyDepth++;
227
+ try {
228
+ let directCount = 0;
229
+ for (const sub of subs) {
230
+ pendingQueue[directCount++] = sub;
231
+ }
232
+ for (let i2 = 0; i2 < directCount; i2++) {
233
+ if (pendingQueue[i2]._c) {
234
+ propagateDirty(pendingQueue[i2]);
235
+ }
236
+ }
237
+ for (let i2 = 0; i2 < directCount; i2++) {
238
+ if (!pendingQueue[i2]._c) {
239
+ if (!pendingSet.has(pendingQueue[i2])) {
240
+ pendingQueue[i2]();
241
+ }
242
+ }
243
+ }
244
+ let i = directCount;
245
+ while (i < pendingQueue.length) {
246
+ pendingQueue[i]();
247
+ i++;
248
+ }
249
+ } finally {
250
+ pendingQueue.length = 0;
251
+ pendingSet.clear();
252
+ notifyDepth--;
253
+ }
254
+ }
255
+ function cleanup(subscriber) {
256
+ const deps = subscriber._deps;
257
+ if (!deps || deps.size === 0) return;
258
+ for (const signal2 of deps) {
259
+ const subs = signal2[SUBS];
260
+ if (subs) {
261
+ subs.delete(subscriber);
262
+ if (signal2.__f === subscriber) {
263
+ signal2.__f = void 0;
264
+ }
265
+ }
266
+ }
267
+ deps.clear();
268
+ }
269
+
270
+ // src/reactivity/batch.ts
271
+ var batchDepth = 0;
272
+ var pendingSignals = /* @__PURE__ */ new Set();
273
+ function batch(fn) {
274
+ batchDepth++;
275
+ try {
276
+ fn();
277
+ } finally {
278
+ batchDepth--;
279
+ if (batchDepth === 0) {
280
+ flushBatch();
281
+ }
282
+ }
283
+ }
284
+ function enqueueBatchedSignal(signal2) {
285
+ if (batchDepth === 0) return false;
286
+ pendingSignals.add(signal2);
287
+ return true;
288
+ }
289
+ function flushBatch() {
290
+ const signals = Array.from(pendingSignals);
291
+ pendingSignals.clear();
292
+ for (const signal2 of signals) {
293
+ queueSignalNotification(signal2);
294
+ }
295
+ drainNotificationQueue();
296
+ }
297
+
298
+ // src/core/signals/signal.ts
299
+ function signal(initial, options) {
300
+ const state = { value: initial };
301
+ const debugName = options?.name;
302
+ if (debugName) {
303
+ state.__name = debugName;
304
+ }
305
+ function get() {
306
+ recordDependency(state);
307
+ return state.value;
308
+ }
309
+ get.__signal = state;
310
+ if (debugName) get.__name = debugName;
311
+ function set(next) {
312
+ const newValue = typeof next === "function" ? next(state.value) : next;
313
+ if (Object.is(newValue, state.value)) return;
314
+ const oldValue = state.value;
315
+ state.value = newValue;
316
+ const hook2 = globalThis.__SIBU_DEVTOOLS_GLOBAL_HOOK__;
317
+ if (hook2) hook2.emit("signal:update", { signal: state, name: debugName, oldValue, newValue });
318
+ if (!enqueueBatchedSignal(state)) {
319
+ notifySubscribers(state);
320
+ }
321
+ }
322
+ const hook = globalThis.__SIBU_DEVTOOLS_GLOBAL_HOOK__;
323
+ if (hook) hook.emit("signal:create", { signal: state, name: debugName, getter: get, initial });
324
+ return [get, set];
325
+ }
326
+
327
+ // src/browser/media.ts
328
+ function media(query) {
329
+ if (typeof window === "undefined" || typeof window.matchMedia !== "function") {
330
+ const [matches2] = signal(false);
331
+ return { matches: matches2, dispose: () => {
332
+ } };
333
+ }
334
+ const mql = window.matchMedia(query);
335
+ const [matches, setMatches] = signal(mql.matches);
336
+ const handler = (event) => {
337
+ setMatches(event.matches);
338
+ };
339
+ mql.addEventListener("change", handler);
340
+ function dispose() {
341
+ mql.removeEventListener("change", handler);
342
+ }
343
+ return { matches, dispose };
344
+ }
345
+
346
+ // src/core/dev.ts
347
+ function isDev() {
348
+ return typeof globalThis.__SIBU_DEV__ !== "undefined" ? !!globalThis.__SIBU_DEV__ : typeof __SIBU_DEV__ !== "undefined" ? __SIBU_DEV__ : true;
349
+ }
350
+ function devAssert(condition, message) {
351
+ if (isDev() && !condition) {
352
+ throw new Error(`[Sibu] ${message}`);
353
+ }
354
+ }
355
+
356
+ // src/core/ssr-context.ts
357
+ var ssrMode = false;
358
+ function isSSR() {
359
+ return ssrMode;
360
+ }
361
+
362
+ // src/core/signals/effect.ts
363
+ function effect(effectFn) {
364
+ devAssert(typeof effectFn === "function", "effect: argument must be a function.");
365
+ if (isSSR()) return () => {
366
+ };
367
+ let runCount = 0;
368
+ let cleanupHandle = () => {
369
+ };
370
+ const hook = globalThis.__SIBU_DEVTOOLS_GLOBAL_HOOK__;
371
+ const subscriber = () => {
372
+ cleanupHandle();
373
+ runCount++;
374
+ if (hook) hook.emit("effect:run", { effectFn, runCount });
375
+ cleanupHandle = track(effectFn, subscriber);
376
+ };
377
+ cleanupHandle = track(effectFn, subscriber);
378
+ runCount = 1;
379
+ if (hook) hook.emit("effect:create", { effectFn });
380
+ return () => {
381
+ if (hook) hook.emit("effect:destroy", { effectFn });
382
+ cleanupHandle();
383
+ };
384
+ }
385
+
386
+ // src/browser/resize.ts
387
+ function resize(target) {
388
+ const [width, setWidth] = signal(0);
389
+ const [height, setHeight] = signal(0);
390
+ let observer = null;
391
+ if (typeof window === "undefined" || typeof ResizeObserver === "undefined") {
392
+ return { width, height, dispose: () => {
393
+ } };
394
+ }
395
+ const cleanup2 = effect(() => {
396
+ const el = target();
397
+ if (observer) {
398
+ observer.disconnect();
399
+ observer = null;
400
+ }
401
+ if (!el) return;
402
+ observer = new ResizeObserver((entries) => {
403
+ const entry = entries[0];
404
+ if (entry) {
405
+ batch(() => {
406
+ setWidth(entry.contentRect.width);
407
+ setHeight(entry.contentRect.height);
408
+ });
409
+ }
410
+ });
411
+ observer.observe(el);
412
+ });
413
+ function dispose() {
414
+ cleanup2();
415
+ if (observer) {
416
+ observer.disconnect();
417
+ observer = null;
418
+ }
419
+ }
420
+ return { width, height, dispose };
421
+ }
422
+
423
+ // src/browser/scroll.ts
424
+ function scroll(target) {
425
+ const [x, setX] = signal(0);
426
+ const [y, setY] = signal(0);
427
+ const [isScrolling, setIsScrolling] = signal(false);
428
+ let scrollTimer = null;
429
+ if (typeof window === "undefined") {
430
+ return { x, y, isScrolling, dispose: () => {
431
+ } };
432
+ }
433
+ const handler = () => {
434
+ const el = target ? target() : null;
435
+ batch(() => {
436
+ if (el) {
437
+ setX(el.scrollLeft);
438
+ setY(el.scrollTop);
439
+ } else {
440
+ setX(window.scrollX ?? window.pageXOffset ?? 0);
441
+ setY(window.scrollY ?? window.pageYOffset ?? 0);
442
+ }
443
+ setIsScrolling(true);
444
+ });
445
+ if (scrollTimer !== null) clearTimeout(scrollTimer);
446
+ scrollTimer = setTimeout(() => {
447
+ setIsScrolling(false);
448
+ scrollTimer = null;
449
+ }, 150);
450
+ };
451
+ const scrollTarget = target ? target() : null;
452
+ const eventTarget = scrollTarget || window;
453
+ eventTarget.addEventListener("scroll", handler, { passive: true });
454
+ function dispose() {
455
+ eventTarget.removeEventListener("scroll", handler);
456
+ if (scrollTimer !== null) {
457
+ clearTimeout(scrollTimer);
458
+ scrollTimer = null;
459
+ }
460
+ }
461
+ return { x, y, isScrolling, dispose };
462
+ }
463
+
464
+ // src/browser/online.ts
465
+ function online() {
466
+ if (typeof window === "undefined" || typeof navigator === "undefined") {
467
+ const [online3] = signal(true);
468
+ return { online: online3, dispose: () => {
469
+ } };
470
+ }
471
+ const [online2, setOnline] = signal(navigator.onLine);
472
+ const onOnline = () => setOnline(true);
473
+ const onOffline = () => setOnline(false);
474
+ window.addEventListener("online", onOnline);
475
+ window.addEventListener("offline", onOffline);
476
+ function dispose() {
477
+ window.removeEventListener("online", onOnline);
478
+ window.removeEventListener("offline", onOffline);
479
+ }
480
+ return { online: online2, dispose };
481
+ }
482
+
483
+ // src/browser/geo.ts
484
+ function geo(options) {
485
+ const [latitude, setLatitude] = signal(null);
486
+ const [longitude, setLongitude] = signal(null);
487
+ const [accuracy, setAccuracy] = signal(null);
488
+ const [error, setError] = signal(null);
489
+ let watchId = null;
490
+ if (typeof navigator !== "undefined" && navigator.geolocation) {
491
+ watchId = navigator.geolocation.watchPosition(
492
+ (position) => {
493
+ batch(() => {
494
+ setLatitude(position.coords.latitude);
495
+ setLongitude(position.coords.longitude);
496
+ setAccuracy(position.coords.accuracy);
497
+ setError(null);
498
+ });
499
+ },
500
+ (err) => {
501
+ setError(err);
502
+ },
503
+ options
504
+ );
505
+ }
506
+ function dispose() {
507
+ if (watchId !== null && typeof navigator !== "undefined" && navigator.geolocation) {
508
+ navigator.geolocation.clearWatch(watchId);
509
+ watchId = null;
510
+ }
511
+ }
512
+ return { latitude, longitude, accuracy, error, dispose };
513
+ }
514
+
515
+ // src/browser/battery.ts
516
+ function battery() {
517
+ const [level, setLevel] = signal(null);
518
+ const [charging, setCharging] = signal(null);
519
+ const [chargingTime, setChargingTime] = signal(null);
520
+ const [dischargingTime, setDischargingTime] = signal(null);
521
+ const [supported, setSupported] = signal(false);
522
+ let battery2 = null;
523
+ let onLevelChange = null;
524
+ let onChargingChange = null;
525
+ let onChargingTimeChange = null;
526
+ let onDischargingTimeChange = null;
527
+ let disposed = false;
528
+ if (typeof navigator !== "undefined" && "getBattery" in navigator) {
529
+ setSupported(true);
530
+ navigator.getBattery().then((bm) => {
531
+ if (disposed) return;
532
+ battery2 = bm;
533
+ batch(() => {
534
+ setLevel(bm.level);
535
+ setCharging(bm.charging);
536
+ setChargingTime(bm.chargingTime);
537
+ setDischargingTime(bm.dischargingTime);
538
+ });
539
+ onLevelChange = () => setLevel(bm.level);
540
+ onChargingChange = () => setCharging(bm.charging);
541
+ onChargingTimeChange = () => setChargingTime(bm.chargingTime);
542
+ onDischargingTimeChange = () => setDischargingTime(bm.dischargingTime);
543
+ bm.addEventListener("levelchange", onLevelChange);
544
+ bm.addEventListener("chargingchange", onChargingChange);
545
+ bm.addEventListener("chargingtimechange", onChargingTimeChange);
546
+ bm.addEventListener("dischargingtimechange", onDischargingTimeChange);
547
+ });
548
+ }
549
+ function dispose() {
550
+ disposed = true;
551
+ if (battery2) {
552
+ if (onLevelChange) battery2.removeEventListener("levelchange", onLevelChange);
553
+ if (onChargingChange) battery2.removeEventListener("chargingchange", onChargingChange);
554
+ if (onChargingTimeChange) battery2.removeEventListener("chargingtimechange", onChargingTimeChange);
555
+ if (onDischargingTimeChange) battery2.removeEventListener("dischargingtimechange", onDischargingTimeChange);
556
+ battery2 = null;
557
+ }
558
+ }
559
+ return { level, charging, chargingTime, dischargingTime, supported, dispose };
560
+ }
561
+
562
+ // src/browser/idle.ts
563
+ var ACTIVITY_EVENTS = ["mousemove", "mousedown", "keydown", "touchstart", "scroll"];
564
+ function idle(timeout = 6e4) {
565
+ const [idle2, setIdle] = signal(false);
566
+ if (typeof window === "undefined" || typeof document === "undefined") {
567
+ return { idle: idle2, dispose: () => {
568
+ } };
569
+ }
570
+ let timer = null;
571
+ function resetTimer() {
572
+ setIdle(false);
573
+ if (timer !== null) clearTimeout(timer);
574
+ timer = setTimeout(() => {
575
+ setIdle(true);
576
+ }, timeout);
577
+ }
578
+ for (const event of ACTIVITY_EVENTS) {
579
+ document.addEventListener(event, resetTimer, { passive: true });
580
+ }
581
+ resetTimer();
582
+ function dispose() {
583
+ if (timer !== null) {
584
+ clearTimeout(timer);
585
+ timer = null;
586
+ }
587
+ for (const event of ACTIVITY_EVENTS) {
588
+ document.removeEventListener(event, resetTimer);
589
+ }
590
+ }
591
+ return { idle: idle2, dispose };
592
+ }
593
+
594
+ // src/browser/permissions.ts
595
+ function permissions(name) {
596
+ const [state, setState] = signal("prompt");
597
+ let permissionStatus = null;
598
+ let onChange = null;
599
+ let disposed = false;
600
+ if (typeof navigator === "undefined" || !navigator.permissions) {
601
+ setState("unsupported");
602
+ return { state, dispose: () => {
603
+ } };
604
+ }
605
+ navigator.permissions.query({ name }).then((status) => {
606
+ if (disposed) return;
607
+ permissionStatus = status;
608
+ setState(status.state);
609
+ onChange = () => {
610
+ setState(status.state);
611
+ };
612
+ status.addEventListener("change", onChange);
613
+ }).catch(() => {
614
+ setState("unsupported");
615
+ });
616
+ function dispose() {
617
+ disposed = true;
618
+ if (permissionStatus && onChange) {
619
+ permissionStatus.removeEventListener("change", onChange);
620
+ permissionStatus = null;
621
+ onChange = null;
622
+ }
623
+ }
624
+ return { state, dispose };
625
+ }
626
+
627
+ // src/browser/clipboard.ts
628
+ function clipboard() {
629
+ const [text, setText] = signal("");
630
+ const [copied, setCopied] = signal(false);
631
+ let copiedTimer = null;
632
+ async function copy(value) {
633
+ if (typeof navigator === "undefined" || !navigator.clipboard) {
634
+ return;
635
+ }
636
+ await navigator.clipboard.writeText(value);
637
+ setText(value);
638
+ setCopied(true);
639
+ if (copiedTimer !== null) clearTimeout(copiedTimer);
640
+ copiedTimer = setTimeout(() => {
641
+ setCopied(false);
642
+ copiedTimer = null;
643
+ }, 2e3);
644
+ }
645
+ function dispose() {
646
+ if (copiedTimer !== null) {
647
+ clearTimeout(copiedTimer);
648
+ copiedTimer = null;
649
+ }
650
+ }
651
+ return { text, copy, copied, dispose };
652
+ }
653
+
654
+ // src/browser/dragDrop.ts
655
+ function draggable(element, data) {
656
+ const [isDragging, setIsDragging] = signal(false);
657
+ if (typeof window === "undefined") {
658
+ return { isDragging, dispose: () => {
659
+ } };
660
+ }
661
+ let currentEl = null;
662
+ let onDragStart = null;
663
+ let onDragEnd = null;
664
+ const cleanup2 = effect(() => {
665
+ if (currentEl && onDragStart && onDragEnd) {
666
+ currentEl.removeEventListener("dragstart", onDragStart);
667
+ currentEl.removeEventListener("dragend", onDragEnd);
668
+ }
669
+ const el = element();
670
+ currentEl = el;
671
+ if (!el) return;
672
+ el.draggable = true;
673
+ onDragStart = (e) => {
674
+ setIsDragging(true);
675
+ if (e.dataTransfer && data !== void 0) {
676
+ e.dataTransfer.setData("application/json", JSON.stringify(data));
677
+ }
678
+ };
679
+ onDragEnd = () => {
680
+ setIsDragging(false);
681
+ };
682
+ el.addEventListener("dragstart", onDragStart);
683
+ el.addEventListener("dragend", onDragEnd);
684
+ });
685
+ function dispose() {
686
+ cleanup2();
687
+ if (currentEl && onDragStart && onDragEnd) {
688
+ currentEl.removeEventListener("dragstart", onDragStart);
689
+ currentEl.removeEventListener("dragend", onDragEnd);
690
+ currentEl = null;
691
+ }
692
+ }
693
+ return { isDragging, dispose };
694
+ }
695
+ function dropZone(element, options) {
696
+ const [isOver, setIsOver] = signal(false);
697
+ if (typeof window === "undefined") {
698
+ return { isOver, dispose: () => {
699
+ } };
700
+ }
701
+ let currentEl = null;
702
+ let onDragOver = null;
703
+ let onDragEnter = null;
704
+ let onDragLeave = null;
705
+ let onDrop = null;
706
+ const cleanup2 = effect(() => {
707
+ if (currentEl && onDragOver && onDragEnter && onDragLeave && onDrop) {
708
+ currentEl.removeEventListener("dragover", onDragOver);
709
+ currentEl.removeEventListener("dragenter", onDragEnter);
710
+ currentEl.removeEventListener("dragleave", onDragLeave);
711
+ currentEl.removeEventListener("drop", onDrop);
712
+ }
713
+ const el = element();
714
+ currentEl = el;
715
+ if (!el) return;
716
+ onDragOver = (e) => {
717
+ e.preventDefault();
718
+ };
719
+ onDragEnter = (e) => {
720
+ e.preventDefault();
721
+ setIsOver(true);
722
+ };
723
+ onDragLeave = () => {
724
+ setIsOver(false);
725
+ };
726
+ onDrop = (e) => {
727
+ e.preventDefault();
728
+ setIsOver(false);
729
+ let transferData = null;
730
+ if (e.dataTransfer) {
731
+ const raw = e.dataTransfer.getData("application/json");
732
+ if (raw) {
733
+ try {
734
+ transferData = JSON.parse(raw);
735
+ } catch {
736
+ transferData = raw;
737
+ }
738
+ }
739
+ }
740
+ options.onDrop(transferData, e);
741
+ };
742
+ el.addEventListener("dragover", onDragOver);
743
+ el.addEventListener("dragenter", onDragEnter);
744
+ el.addEventListener("dragleave", onDragLeave);
745
+ el.addEventListener("drop", onDrop);
746
+ });
747
+ function dispose() {
748
+ cleanup2();
749
+ if (currentEl && onDragOver && onDragEnter && onDragLeave && onDrop) {
750
+ currentEl.removeEventListener("dragover", onDragOver);
751
+ currentEl.removeEventListener("dragenter", onDragEnter);
752
+ currentEl.removeEventListener("dragleave", onDragLeave);
753
+ currentEl.removeEventListener("drop", onDrop);
754
+ currentEl = null;
755
+ }
756
+ }
757
+ return { isOver, dispose };
758
+ }
759
+
760
+ // src/browser/title.ts
761
+ function title(value) {
762
+ if (typeof document === "undefined") {
763
+ return () => {
764
+ };
765
+ }
766
+ const previousTitle = document.title;
767
+ if (typeof value === "function") {
768
+ const cleanup2 = effect(() => {
769
+ document.title = value();
770
+ });
771
+ return () => {
772
+ cleanup2();
773
+ document.title = previousTitle;
774
+ };
775
+ }
776
+ document.title = value;
777
+ return () => {
778
+ document.title = previousTitle;
779
+ };
780
+ }
781
+
782
+ // src/browser/colorScheme.ts
783
+ function colorScheme() {
784
+ if (typeof window === "undefined" || typeof window.matchMedia !== "function") {
785
+ const [scheme2] = signal("light");
786
+ return { scheme: scheme2, dispose: () => {
787
+ } };
788
+ }
789
+ const mql = window.matchMedia("(prefers-color-scheme: dark)");
790
+ const [scheme, setScheme] = signal(mql.matches ? "dark" : "light");
791
+ const handler = (event) => {
792
+ setScheme(event.matches ? "dark" : "light");
793
+ };
794
+ mql.addEventListener("change", handler);
795
+ function dispose() {
796
+ mql.removeEventListener("change", handler);
797
+ }
798
+ return { scheme, dispose };
799
+ }
800
+ // Annotate the CommonJS export names for ESM import in node:
801
+ 0 && (module.exports = {
802
+ battery,
803
+ clipboard,
804
+ colorScheme,
805
+ draggable,
806
+ dropZone,
807
+ geo,
808
+ idle,
809
+ media,
810
+ online,
811
+ permissions,
812
+ resize,
813
+ scroll,
814
+ title
815
+ });