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
+ // patterns.ts
21
+ var patterns_exports = {};
22
+ __export(patterns_exports, {
23
+ RenderProp: () => RenderProp,
24
+ assertType: () => assertType,
25
+ composable: () => composable,
26
+ compose: () => compose,
27
+ createEffect: () => createEffect,
28
+ createGuard: () => createGuard,
29
+ createMemo: () => createMemo,
30
+ createSignal: () => createSignal,
31
+ createSlots: () => createSlots,
32
+ defineComponent: () => defineComponent,
33
+ defineSlottedComponent: () => defineSlottedComponent,
34
+ defineStrictComponent: () => defineStrictComponent,
35
+ globalStore: () => globalStore,
36
+ machine: () => machine,
37
+ optimistic: () => optimistic,
38
+ optimisticList: () => optimisticList,
39
+ persisted: () => persisted,
40
+ timeline: () => timeline,
41
+ validateProps: () => validateProps,
42
+ validators: () => validators,
43
+ withBoundary: () => withBoundary,
44
+ withDefaults: () => withDefaults,
45
+ withProps: () => withProps,
46
+ withWrapper: () => withWrapper
47
+ });
48
+ module.exports = __toCommonJS(patterns_exports);
49
+
50
+ // src/reactivity/track.ts
51
+ var subscriberStack = [];
52
+ var currentSubscriber = null;
53
+ var signalSubscribers = /* @__PURE__ */ new WeakMap();
54
+ var SUBS = "__s";
55
+ var notifyDepth = 0;
56
+ var pendingQueue = [];
57
+ var pendingSet = /* @__PURE__ */ new Set();
58
+ var suspendDepth = 0;
59
+ var trackingSuspended = false;
60
+ function track(effectFn, subscriber) {
61
+ if (!subscriber) subscriber = effectFn;
62
+ cleanup(subscriber);
63
+ subscriberStack.push(subscriber);
64
+ currentSubscriber = subscriber;
65
+ effectFn();
66
+ subscriberStack.pop();
67
+ currentSubscriber = subscriberStack[subscriberStack.length - 1] || null;
68
+ return () => cleanup(subscriber);
69
+ }
70
+ function suspendTracking() {
71
+ if (suspendDepth === 0) {
72
+ subscriberStack.push(null);
73
+ currentSubscriber = null;
74
+ trackingSuspended = true;
75
+ }
76
+ suspendDepth++;
77
+ }
78
+ function resumeTracking() {
79
+ suspendDepth--;
80
+ if (suspendDepth === 0) {
81
+ subscriberStack.pop();
82
+ currentSubscriber = subscriberStack[subscriberStack.length - 1] || null;
83
+ trackingSuspended = false;
84
+ }
85
+ }
86
+ function recordDependency(signal2) {
87
+ if (!currentSubscriber) return;
88
+ let deps = currentSubscriber._deps;
89
+ if (!deps) {
90
+ deps = /* @__PURE__ */ new Set();
91
+ currentSubscriber._deps = deps;
92
+ }
93
+ if (!deps.has(signal2)) {
94
+ deps.add(signal2);
95
+ let subs = signal2[SUBS];
96
+ if (!subs) {
97
+ subs = /* @__PURE__ */ new Set();
98
+ signalSubscribers.set(signal2, subs);
99
+ signal2[SUBS] = subs;
100
+ }
101
+ subs.add(currentSubscriber);
102
+ if (subs.size === 1) {
103
+ signal2.__f = currentSubscriber;
104
+ } else if (signal2.__f !== void 0) {
105
+ signal2.__f = void 0;
106
+ }
107
+ }
108
+ }
109
+ function propagateDirty(sub) {
110
+ sub();
111
+ let sig = sub._sig;
112
+ let suspended = false;
113
+ if (sig && sig._g) {
114
+ const sDeps = sub._deps;
115
+ if (sDeps && sDeps.size === 1) {
116
+ suspendTracking();
117
+ suspended = true;
118
+ const s = sig;
119
+ s._d = false;
120
+ s._v = s._g();
121
+ }
122
+ }
123
+ while (sig) {
124
+ const first = sig.__f;
125
+ if (first) {
126
+ if (first._c) {
127
+ const nSig = first._sig;
128
+ nSig._d = true;
129
+ if (suspended && nSig._g) {
130
+ const fDeps = first._deps;
131
+ if (fDeps && fDeps.size === 1) {
132
+ nSig._d = false;
133
+ nSig._v = nSig._g();
134
+ }
135
+ }
136
+ sig = nSig;
137
+ continue;
138
+ }
139
+ if (!pendingSet.has(first)) {
140
+ pendingSet.add(first);
141
+ pendingQueue.push(first);
142
+ }
143
+ break;
144
+ }
145
+ const subs = sig[SUBS];
146
+ if (!subs) break;
147
+ let nextSig;
148
+ for (const s of subs) {
149
+ if (s._c) {
150
+ s();
151
+ const nSig = s._sig;
152
+ if (nSig && !nextSig) {
153
+ nextSig = nSig;
154
+ } else if (nSig) {
155
+ propagateDirty(s);
156
+ }
157
+ } else if (!pendingSet.has(s)) {
158
+ pendingSet.add(s);
159
+ pendingQueue.push(s);
160
+ }
161
+ }
162
+ sig = nextSig;
163
+ }
164
+ if (suspended) resumeTracking();
165
+ }
166
+ function notifySubscribers(signal2) {
167
+ const first = signal2.__f;
168
+ if (first) {
169
+ if (notifyDepth > 0) {
170
+ if (first._c) {
171
+ propagateDirty(first);
172
+ } else if (!pendingSet.has(first)) {
173
+ pendingSet.add(first);
174
+ pendingQueue.push(first);
175
+ }
176
+ return;
177
+ }
178
+ notifyDepth++;
179
+ try {
180
+ if (first._c) {
181
+ propagateDirty(first);
182
+ } else {
183
+ first();
184
+ }
185
+ let i = 0;
186
+ while (i < pendingQueue.length) {
187
+ pendingQueue[i]();
188
+ i++;
189
+ }
190
+ } finally {
191
+ pendingQueue.length = 0;
192
+ pendingSet.clear();
193
+ notifyDepth--;
194
+ }
195
+ return;
196
+ }
197
+ const subs = signal2[SUBS];
198
+ if (!subs || subs.size === 0) return;
199
+ if (notifyDepth > 0) {
200
+ for (const sub of subs) {
201
+ if (sub._c) {
202
+ propagateDirty(sub);
203
+ } else if (!pendingSet.has(sub)) {
204
+ pendingSet.add(sub);
205
+ pendingQueue.push(sub);
206
+ }
207
+ }
208
+ return;
209
+ }
210
+ notifyDepth++;
211
+ try {
212
+ let directCount = 0;
213
+ for (const sub of subs) {
214
+ pendingQueue[directCount++] = sub;
215
+ }
216
+ for (let i2 = 0; i2 < directCount; i2++) {
217
+ if (pendingQueue[i2]._c) {
218
+ propagateDirty(pendingQueue[i2]);
219
+ }
220
+ }
221
+ for (let i2 = 0; i2 < directCount; i2++) {
222
+ if (!pendingQueue[i2]._c) {
223
+ if (!pendingSet.has(pendingQueue[i2])) {
224
+ pendingQueue[i2]();
225
+ }
226
+ }
227
+ }
228
+ let i = directCount;
229
+ while (i < pendingQueue.length) {
230
+ pendingQueue[i]();
231
+ i++;
232
+ }
233
+ } finally {
234
+ pendingQueue.length = 0;
235
+ pendingSet.clear();
236
+ notifyDepth--;
237
+ }
238
+ }
239
+ function cleanup(subscriber) {
240
+ const deps = subscriber._deps;
241
+ if (!deps || deps.size === 0) return;
242
+ for (const signal2 of deps) {
243
+ const subs = signal2[SUBS];
244
+ if (subs) {
245
+ subs.delete(subscriber);
246
+ if (signal2.__f === subscriber) {
247
+ signal2.__f = void 0;
248
+ }
249
+ }
250
+ }
251
+ deps.clear();
252
+ }
253
+
254
+ // src/reactivity/batch.ts
255
+ var batchDepth = 0;
256
+ var pendingSignals = /* @__PURE__ */ new Set();
257
+ function enqueueBatchedSignal(signal2) {
258
+ if (batchDepth === 0) return false;
259
+ pendingSignals.add(signal2);
260
+ return true;
261
+ }
262
+
263
+ // src/core/signals/signal.ts
264
+ function signal(initial, options) {
265
+ const state = { value: initial };
266
+ const debugName = options?.name;
267
+ if (debugName) {
268
+ state.__name = debugName;
269
+ }
270
+ function get() {
271
+ recordDependency(state);
272
+ return state.value;
273
+ }
274
+ get.__signal = state;
275
+ if (debugName) get.__name = debugName;
276
+ function set(next) {
277
+ const newValue = typeof next === "function" ? next(state.value) : next;
278
+ if (Object.is(newValue, state.value)) return;
279
+ const oldValue = state.value;
280
+ state.value = newValue;
281
+ const hook2 = globalThis.__SIBU_DEVTOOLS_GLOBAL_HOOK__;
282
+ if (hook2) hook2.emit("signal:update", { signal: state, name: debugName, oldValue, newValue });
283
+ if (!enqueueBatchedSignal(state)) {
284
+ notifySubscribers(state);
285
+ }
286
+ }
287
+ const hook = globalThis.__SIBU_DEVTOOLS_GLOBAL_HOOK__;
288
+ if (hook) hook.emit("signal:create", { signal: state, name: debugName, getter: get, initial });
289
+ return [get, set];
290
+ }
291
+
292
+ // src/patterns/machine.ts
293
+ function machine(config) {
294
+ const [state, setState] = signal(config.initial);
295
+ const [context, setContext] = signal(config.context || {});
296
+ const initialDef = config.states[config.initial];
297
+ if (initialDef?.entry) {
298
+ initialDef.entry(context());
299
+ }
300
+ function send(event) {
301
+ const currentState = state();
302
+ const stateDef = config.states[currentState];
303
+ if (!stateDef?.on) return;
304
+ const transition = stateDef.on[event];
305
+ if (!transition) return;
306
+ let target;
307
+ let guard;
308
+ let action;
309
+ if (typeof transition === "string") {
310
+ target = transition;
311
+ } else {
312
+ target = transition.target;
313
+ guard = transition.guard;
314
+ action = transition.action;
315
+ }
316
+ const ctx = context();
317
+ if (guard && !guard(ctx)) return;
318
+ if (stateDef.exit) {
319
+ stateDef.exit(ctx);
320
+ }
321
+ if (action) {
322
+ const patch = action(ctx);
323
+ setContext({ ...ctx, ...patch });
324
+ }
325
+ setState(target);
326
+ const targetDef = config.states[target];
327
+ if (targetDef?.entry) {
328
+ targetDef.entry(context());
329
+ }
330
+ }
331
+ function matches(s) {
332
+ return state() === s;
333
+ }
334
+ function can(event) {
335
+ const currentState = state();
336
+ const stateDef = config.states[currentState];
337
+ if (!stateDef?.on) return false;
338
+ const transition = stateDef.on[event];
339
+ if (!transition) return false;
340
+ if (typeof transition === "string") return true;
341
+ if (transition.guard) {
342
+ return transition.guard(context());
343
+ }
344
+ return true;
345
+ }
346
+ return { state, context, send, matches, can };
347
+ }
348
+
349
+ // src/core/dev.ts
350
+ function isDev() {
351
+ return typeof globalThis.__SIBU_DEV__ !== "undefined" ? !!globalThis.__SIBU_DEV__ : typeof __SIBU_DEV__ !== "undefined" ? __SIBU_DEV__ : true;
352
+ }
353
+ function devAssert(condition, message) {
354
+ if (isDev() && !condition) {
355
+ throw new Error(`[Sibu] ${message}`);
356
+ }
357
+ }
358
+
359
+ // src/core/ssr-context.ts
360
+ var ssrMode = false;
361
+ function isSSR() {
362
+ return ssrMode;
363
+ }
364
+
365
+ // src/core/signals/effect.ts
366
+ function effect(effectFn) {
367
+ devAssert(typeof effectFn === "function", "effect: argument must be a function.");
368
+ if (isSSR()) return () => {
369
+ };
370
+ let runCount = 0;
371
+ let cleanupHandle = () => {
372
+ };
373
+ const hook = globalThis.__SIBU_DEVTOOLS_GLOBAL_HOOK__;
374
+ const subscriber = () => {
375
+ cleanupHandle();
376
+ runCount++;
377
+ if (hook) hook.emit("effect:run", { effectFn, runCount });
378
+ cleanupHandle = track(effectFn, subscriber);
379
+ };
380
+ cleanupHandle = track(effectFn, subscriber);
381
+ runCount = 1;
382
+ if (hook) hook.emit("effect:create", { effectFn });
383
+ return () => {
384
+ if (hook) hook.emit("effect:destroy", { effectFn });
385
+ cleanupHandle();
386
+ };
387
+ }
388
+
389
+ // src/patterns/persist.ts
390
+ function persisted(key, initial, options = {}) {
391
+ const storage = options.session ? sessionStorage : localStorage;
392
+ const serialize = options.serialize || JSON.stringify;
393
+ const deserialize = options.deserialize || JSON.parse;
394
+ let restored = initial;
395
+ try {
396
+ const raw = storage.getItem(key);
397
+ if (raw !== null) {
398
+ const parsed = deserialize(raw);
399
+ restored = options.validate && !options.validate(parsed) ? initial : parsed;
400
+ }
401
+ } catch {
402
+ }
403
+ const [value, setValue] = signal(restored);
404
+ effect(() => {
405
+ const current = value();
406
+ try {
407
+ storage.setItem(key, serialize(current));
408
+ } catch {
409
+ }
410
+ });
411
+ return [value, setValue];
412
+ }
413
+
414
+ // src/patterns/optimistic.ts
415
+ function optimistic(initialValue) {
416
+ const [value, setValue] = signal(initialValue);
417
+ const [_pending, setPending] = signal(false);
418
+ async function addOptimistic(optimisticValue, asyncAction) {
419
+ const previousValue = value();
420
+ setValue(optimisticValue);
421
+ setPending(true);
422
+ try {
423
+ const result = await asyncAction();
424
+ setValue(result);
425
+ } catch {
426
+ setValue(previousValue);
427
+ } finally {
428
+ setPending(false);
429
+ }
430
+ }
431
+ return [value, addOptimistic];
432
+ }
433
+ function optimisticList(initialValue) {
434
+ const [items, setItems] = signal([...initialValue]);
435
+ async function addOptimistic(item, asyncAction) {
436
+ const prev = items();
437
+ setItems([...prev, item]);
438
+ try {
439
+ const result = await asyncAction();
440
+ setItems([...prev, result]);
441
+ } catch {
442
+ setItems(prev);
443
+ }
444
+ }
445
+ async function removeOptimistic(predicate, asyncAction) {
446
+ const prev = items();
447
+ setItems(prev.filter((item) => !predicate(item)));
448
+ try {
449
+ await asyncAction();
450
+ } catch {
451
+ setItems(prev);
452
+ }
453
+ }
454
+ async function updateOptimistic(predicate, update, asyncAction) {
455
+ const prev = items();
456
+ setItems(prev.map((item) => predicate(item) ? { ...item, ...update } : item));
457
+ try {
458
+ const result = await asyncAction();
459
+ setItems(prev.map((item) => predicate(item) ? result : item));
460
+ } catch {
461
+ setItems(prev);
462
+ }
463
+ }
464
+ return { items, addOptimistic, removeOptimistic, updateOptimistic };
465
+ }
466
+
467
+ // src/core/signals/derived.ts
468
+ function derived(getter, options) {
469
+ devAssert(typeof getter === "function", "derived: argument must be a getter function.");
470
+ const debugName = options?.name;
471
+ const cs = {};
472
+ cs._d = false;
473
+ cs._g = getter;
474
+ const markDirty = () => {
475
+ if (cs._d) return;
476
+ cs._d = true;
477
+ };
478
+ markDirty._c = 1;
479
+ markDirty._sig = cs;
480
+ track(() => {
481
+ cs._d = false;
482
+ cs._v = getter();
483
+ }, markDirty);
484
+ const hook = globalThis.__SIBU_DEVTOOLS_GLOBAL_HOOK__;
485
+ function computedGetter() {
486
+ if (trackingSuspended) {
487
+ if (cs._d) {
488
+ cs._d = false;
489
+ cs._v = getter();
490
+ }
491
+ return cs._v;
492
+ }
493
+ recordDependency(cs);
494
+ if (cs._d) {
495
+ const oldValue = cs._v;
496
+ cs._d = false;
497
+ suspendTracking();
498
+ try {
499
+ cs._v = getter();
500
+ } finally {
501
+ resumeTracking();
502
+ }
503
+ if (hook && oldValue !== cs._v) {
504
+ hook.emit("computed:update", { signal: cs, oldValue, newValue: cs._v });
505
+ }
506
+ }
507
+ return cs._v;
508
+ }
509
+ if (debugName) {
510
+ computedGetter.__name = debugName;
511
+ cs.__name = debugName;
512
+ }
513
+ computedGetter.__signal = cs;
514
+ if (hook) hook.emit("computed:create", { signal: cs, name: debugName, getter: computedGetter });
515
+ return computedGetter;
516
+ }
517
+
518
+ // src/patterns/timeTravel.ts
519
+ function timeline(initial, maxHistory = 100) {
520
+ const [history, setHistory] = signal([initial]);
521
+ const [index, setIndex] = signal(0);
522
+ const value = derived(() => history()[index()]);
523
+ const canUndo = derived(() => index() > 0);
524
+ const canRedo = derived(() => index() < history().length - 1);
525
+ function set(next) {
526
+ const current = value();
527
+ const newValue = typeof next === "function" ? next(current) : next;
528
+ if (Object.is(newValue, current)) return;
529
+ const hist = history();
530
+ const idx = index();
531
+ const newHistory = hist.slice(0, idx + 1);
532
+ newHistory.push(newValue);
533
+ if (newHistory.length > maxHistory) {
534
+ newHistory.shift();
535
+ setHistory(newHistory);
536
+ setIndex(newHistory.length - 1);
537
+ } else {
538
+ setHistory(newHistory);
539
+ setIndex(idx + 1);
540
+ }
541
+ }
542
+ function undo() {
543
+ if (canUndo()) {
544
+ setIndex(index() - 1);
545
+ }
546
+ }
547
+ function redo() {
548
+ if (canRedo()) {
549
+ setIndex(index() + 1);
550
+ }
551
+ }
552
+ function reset() {
553
+ setHistory([initial]);
554
+ setIndex(0);
555
+ }
556
+ function jumpTo(targetIndex) {
557
+ const hist = history();
558
+ if (targetIndex >= 0 && targetIndex < hist.length) {
559
+ setIndex(targetIndex);
560
+ }
561
+ }
562
+ return { value, set, undo, redo, canUndo, canRedo, history, index, reset, jumpTo };
563
+ }
564
+
565
+ // src/patterns/globalStore.ts
566
+ function globalStore(config) {
567
+ const initialState = { ...config.state };
568
+ const [getState, setState] = signal({ ...initialState });
569
+ const listeners = /* @__PURE__ */ new Set();
570
+ const middlewares = config.middleware || [];
571
+ function dispatch(action, payload) {
572
+ const actionFn = config.actions[action];
573
+ if (!actionFn) throw new Error(`Unknown action: ${String(action)}`);
574
+ const execute = () => {
575
+ const current = getState();
576
+ const patch = actionFn(current, payload);
577
+ setState({ ...current, ...patch });
578
+ const newState = getState();
579
+ for (const listener of listeners) {
580
+ listener(newState);
581
+ }
582
+ };
583
+ if (middlewares.length === 0) {
584
+ execute();
585
+ return;
586
+ }
587
+ let index = 0;
588
+ const next = () => {
589
+ if (index < middlewares.length) {
590
+ const mw = middlewares[index++];
591
+ mw(getState(), String(action), payload, next);
592
+ } else {
593
+ execute();
594
+ }
595
+ };
596
+ next();
597
+ }
598
+ function select(selector) {
599
+ return derived(() => selector(getState()));
600
+ }
601
+ function subscribe(callback) {
602
+ listeners.add(callback);
603
+ return () => listeners.delete(callback);
604
+ }
605
+ function reset() {
606
+ setState({ ...initialState });
607
+ for (const listener of listeners) {
608
+ listener(getState());
609
+ }
610
+ }
611
+ return { getState, select, dispatch, subscribe, reset };
612
+ }
613
+
614
+ // src/patterns/primitives.ts
615
+ function createSignal(value) {
616
+ return signal(value);
617
+ }
618
+ function createMemo(fn) {
619
+ return derived(fn);
620
+ }
621
+ function createEffect(fn) {
622
+ return effect(fn);
623
+ }
624
+
625
+ // src/patterns/hoc.ts
626
+ function withWrapper(WrappedComponent, wrapper) {
627
+ return (props) => wrapper(WrappedComponent, props);
628
+ }
629
+ function withDefaults(component, defaults) {
630
+ return (props) => component({ ...defaults, ...props });
631
+ }
632
+ function compose(...wrappers) {
633
+ return (component) => wrappers.reduceRight((comp, wrapper) => wrapper(comp), component);
634
+ }
635
+
636
+ // src/patterns/composable.ts
637
+ function composable(setup) {
638
+ return setup;
639
+ }
640
+ function RenderProp(props) {
641
+ return props.render(props.data());
642
+ }
643
+ function withBoundary(name, component) {
644
+ return (props) => {
645
+ const wrapper = document.createElement("div");
646
+ wrapper.setAttribute("data-sibu-boundary", name);
647
+ try {
648
+ const el = component(props);
649
+ wrapper.appendChild(el);
650
+ } catch (error) {
651
+ const errorEl = document.createElement("div");
652
+ errorEl.setAttribute("data-sibu-boundary-error", name);
653
+ errorEl.style.cssText = "color: red; border: 1px solid red; padding: 8px; margin: 4px;";
654
+ errorEl.textContent = `[${name}] ${error instanceof Error ? error.message : String(error)}`;
655
+ wrapper.appendChild(errorEl);
656
+ }
657
+ return wrapper;
658
+ };
659
+ }
660
+ function createSlots(slots) {
661
+ return {
662
+ renderSlot(name, fallback) {
663
+ const slotFn = slots[name];
664
+ if (slotFn) {
665
+ const result = slotFn();
666
+ if (Array.isArray(result)) {
667
+ const fragment = document.createElement("div");
668
+ fragment.style.display = "contents";
669
+ for (const el of result) fragment.appendChild(el);
670
+ return fragment;
671
+ }
672
+ return result;
673
+ }
674
+ return fallback ? fallback() : null;
675
+ },
676
+ hasSlot(name) {
677
+ return name in slots;
678
+ }
679
+ };
680
+ }
681
+
682
+ // src/patterns/componentProps.ts
683
+ function defineComponent(config) {
684
+ const { defaults, setup } = config;
685
+ return (props) => {
686
+ const merged = defaults ? { ...defaults, ...props } : props;
687
+ return setup(merged);
688
+ };
689
+ }
690
+ function defineSlottedComponent(config) {
691
+ const { defaults, setup } = config;
692
+ return (props) => {
693
+ const merged = defaults ? { ...defaults, ...props } : props;
694
+ return setup(merged);
695
+ };
696
+ }
697
+ function withProps(component, mapProps) {
698
+ return (props) => component(mapProps(props));
699
+ }
700
+
701
+ // src/patterns/contracts.ts
702
+ var validators = {
703
+ string: ((value, name) => typeof value === "string" || `${name} must be a string, got ${typeof value}`),
704
+ number: ((value, name) => typeof value === "number" || `${name} must be a number, got ${typeof value}`),
705
+ boolean: ((value, name) => typeof value === "boolean" || `${name} must be a boolean, got ${typeof value}`),
706
+ function: ((value, name) => typeof value === "function" || `${name} must be a function, got ${typeof value}`),
707
+ object: ((value, name) => typeof value === "object" && value !== null || `${name} must be an object`),
708
+ array: ((value, name) => Array.isArray(value) || `${name} must be an array`),
709
+ required: ((value, name) => value != null || `${name} is required`),
710
+ oneOf: (...values) => (value, name) => values.includes(value) || `${name} must be one of: ${values.join(", ")}`,
711
+ instanceOf: (ctor) => (value, name) => value instanceof ctor || `${name} must be an instance of ${ctor.name}`,
712
+ arrayOf: (itemValidator) => (value, name) => {
713
+ if (!Array.isArray(value)) return `${name} must be an array`;
714
+ for (let i = 0; i < value.length; i++) {
715
+ const result = itemValidator(value[i], `${name}[${i}]`);
716
+ if (result !== true) return result;
717
+ }
718
+ return true;
719
+ },
720
+ shape: (schema) => (value, name) => {
721
+ if (typeof value !== "object" || value === null) return `${name} must be an object`;
722
+ for (const [key, validator] of Object.entries(schema)) {
723
+ const result = validator(value[key], `${name}.${key}`);
724
+ if (result !== true) return result;
725
+ }
726
+ return true;
727
+ },
728
+ optional: (validator) => (value, name) => {
729
+ if (value == null) return true;
730
+ return validator(value, name);
731
+ },
732
+ range: (min, max) => (value, name) => {
733
+ if (typeof value !== "number") return `${name} must be a number`;
734
+ return value >= min && value <= max || `${name} must be between ${min} and ${max}`;
735
+ },
736
+ pattern: (regex) => (value, name) => {
737
+ if (typeof value !== "string") return `${name} must be a string`;
738
+ return regex.test(value) || `${name} must match pattern ${regex}`;
739
+ }
740
+ };
741
+ function validateProps(props, schema) {
742
+ const result = { ...props };
743
+ const errors = [];
744
+ const isDev2 = typeof process === "undefined" || process?.env?.NODE_ENV !== "production";
745
+ for (const [key, def] of Object.entries(schema)) {
746
+ const propDef = typeof def === "function" ? { type: def } : def;
747
+ if (result[key] == null && propDef.default !== void 0) {
748
+ result[key] = typeof propDef.default === "function" ? propDef.default() : propDef.default;
749
+ }
750
+ if (!isDev2) continue;
751
+ if (propDef.required && result[key] == null) {
752
+ errors.push(`Prop '${key}' is required`);
753
+ continue;
754
+ }
755
+ if (result[key] == null) continue;
756
+ if (propDef.type) {
757
+ const typeResult = propDef.type(result[key], key);
758
+ if (typeResult !== true) errors.push(typeResult);
759
+ }
760
+ if (propDef.validator) {
761
+ const validResult = propDef.validator(result[key], key);
762
+ if (validResult !== true) errors.push(validResult);
763
+ }
764
+ }
765
+ if (errors.length > 0 && isDev2) {
766
+ console.warn(`[SibuJS] Prop validation errors:
767
+ ${errors.map((e) => ` - ${e}`).join("\n")}`);
768
+ }
769
+ return result;
770
+ }
771
+ function defineStrictComponent(config) {
772
+ return (props) => {
773
+ const validated = validateProps(props, config.props);
774
+ return config.setup(validated);
775
+ };
776
+ }
777
+ function assertType(value, validator, label) {
778
+ if (typeof process !== "undefined" && process?.env?.NODE_ENV === "production") return;
779
+ const result = validator(value, label || "value");
780
+ if (result !== true) {
781
+ throw new TypeError(`[SibuJS Contract] ${result}`);
782
+ }
783
+ }
784
+ function createGuard(validator) {
785
+ return (value) => {
786
+ return validator(value, "value") === true;
787
+ };
788
+ }
789
+ // Annotate the CommonJS export names for ESM import in node:
790
+ 0 && (module.exports = {
791
+ RenderProp,
792
+ assertType,
793
+ composable,
794
+ compose,
795
+ createEffect,
796
+ createGuard,
797
+ createMemo,
798
+ createSignal,
799
+ createSlots,
800
+ defineComponent,
801
+ defineSlottedComponent,
802
+ defineStrictComponent,
803
+ globalStore,
804
+ machine,
805
+ optimistic,
806
+ optimisticList,
807
+ persisted,
808
+ timeline,
809
+ validateProps,
810
+ validators,
811
+ withBoundary,
812
+ withDefaults,
813
+ withProps,
814
+ withWrapper
815
+ });