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,393 @@
1
+ type Translations = Record<string, string>;
2
+ type Params$1 = Record<string, string | number>;
3
+ declare function setLocale(locale: string): void;
4
+ /**
5
+ * Get the current locale reactively.
6
+ */
7
+ declare function getLocale(): string;
8
+ declare function registerTranslations(locale: string, messages: Translations): void;
9
+ declare function t(key: string, params?: Params$1): string;
10
+ /**
11
+ * Trans component — renders a translated string reactively.
12
+ * Automatically updates when the locale changes.
13
+ *
14
+ * @param key Translation key
15
+ * @param params Optional interpolation parameters
16
+ * @returns An HTMLElement (span) that reactively shows the translated text
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * registerTranslations("en", { greeting: "Hello, {name}!" });
21
+ * registerTranslations("es", { greeting: "Hola, {name}!" });
22
+ *
23
+ * div({ nodes: [Trans("greeting", { name: "World" })] });
24
+ * // When locale changes, the text updates automatically
25
+ * ```
26
+ */
27
+ declare function Trans(key: string, params?: Params$1): HTMLElement;
28
+ /**
29
+ * Check if a translation key exists for the current locale.
30
+ */
31
+ declare function hasTranslation(key: string): boolean;
32
+ /**
33
+ * Get all available locales.
34
+ */
35
+ declare function getAvailableLocales(): string[];
36
+
37
+ type Component = () => Element;
38
+ type AsyncComponent = () => Promise<Element>;
39
+ type LazyComponent = () => Promise<{
40
+ default: Component;
41
+ }>;
42
+ type Params = Record<string, string>;
43
+ interface RouteContext {
44
+ readonly path: string;
45
+ readonly params: Params;
46
+ readonly query: Params;
47
+ readonly hash: string;
48
+ readonly meta: RouteMeta;
49
+ readonly matched: RouteDef[];
50
+ }
51
+ type GuardResult = boolean | string | Promise<boolean | string>;
52
+ type Guard = (to: RouteContext, from?: RouteContext) => GuardResult;
53
+ type NavigationGuard = (to: RouteContext, from: RouteContext, next: NavigationNext) => void;
54
+ type NavigationNext = (result?: boolean | string | Error) => void;
55
+ type RouteMeta = Record<string, unknown>;
56
+ interface RouteBase {
57
+ readonly path: string;
58
+ readonly name?: string;
59
+ readonly meta?: RouteMeta;
60
+ readonly children?: RouteDef[];
61
+ readonly beforeEnter?: Guard | Guard[];
62
+ readonly alias?: string | string[];
63
+ }
64
+ interface ComponentRoute extends RouteBase {
65
+ readonly component: Component;
66
+ }
67
+ interface AsyncRoute extends RouteBase {
68
+ readonly component: AsyncComponent | LazyComponent;
69
+ }
70
+ interface RedirectRoute extends RouteBase {
71
+ readonly redirect: string | ((to: RouteContext) => string);
72
+ }
73
+ type RouteDef = ComponentRoute | AsyncRoute | RedirectRoute;
74
+ interface RouterOptions {
75
+ readonly mode?: "history" | "hash";
76
+ readonly base?: string;
77
+ readonly linkActiveClass?: string;
78
+ readonly linkExactActiveClass?: string;
79
+ readonly fallback?: boolean;
80
+ readonly scrollBehavior?: ScrollBehavior;
81
+ readonly guardTimeout?: number;
82
+ readonly cacheSize?: number;
83
+ readonly errorRetryDelay?: number;
84
+ readonly preloadStrategy?: "none" | "hover" | "visible";
85
+ }
86
+ type ScrollBehavior = (to: RouteContext, from: RouteContext, savedPosition: ScrollPosition | null) => ScrollPosition | null;
87
+ interface ScrollPosition {
88
+ readonly x: number;
89
+ readonly y: number;
90
+ }
91
+ interface NavigationFailure {
92
+ readonly type: "aborted" | "cancelled" | "duplicated" | "timeout";
93
+ readonly from: RouteContext;
94
+ readonly to: RouteContext;
95
+ readonly error?: Error;
96
+ }
97
+ type NavigationResult = {
98
+ success: true;
99
+ route: RouteContext;
100
+ } | {
101
+ success: false;
102
+ type: NavigationFailure["type"];
103
+ failure: NavigationFailure;
104
+ };
105
+ type NavigationTarget = string | {
106
+ path?: string;
107
+ name?: string;
108
+ params?: Params;
109
+ query?: Params;
110
+ hash?: string;
111
+ };
112
+ declare class SibuRouter {
113
+ private options;
114
+ private matcher;
115
+ private guards;
116
+ private loader;
117
+ private navigator;
118
+ private currentRouteGetter;
119
+ private currentRouteSetter;
120
+ private isReadyGetter;
121
+ private isReadySetter;
122
+ private cleanup;
123
+ constructor(routes: RouteDef[], options?: RouterOptions);
124
+ private initialize;
125
+ private createInitialRoute;
126
+ private handleLocationChange;
127
+ private getCurrentPath;
128
+ private createRouteContext;
129
+ navigate(to: NavigationTarget, options?: {
130
+ replace?: boolean;
131
+ state?: unknown;
132
+ }): Promise<NavigationResult>;
133
+ private performNavigation;
134
+ private resolvePath;
135
+ private isSameRoute;
136
+ private updateHistory;
137
+ private handleScrollBehavior;
138
+ loadComponent(route: RouteDef, routePath: string): Promise<Component>;
139
+ beforeEach(guard: NavigationGuard): () => void;
140
+ beforeResolve(guard: NavigationGuard): () => void;
141
+ afterEach(hook: (to: RouteContext, from: RouteContext) => void): () => void;
142
+ push(to: NavigationTarget): Promise<NavigationResult>;
143
+ replace(to: NavigationTarget): Promise<NavigationResult>;
144
+ go(delta: number): void;
145
+ back(): void;
146
+ forward(): void;
147
+ get currentRoute(): RouteContext;
148
+ get isReady(): boolean;
149
+ get isNavigating(): boolean;
150
+ destroy(): void;
151
+ clearCache(): void;
152
+ clearErrorCache(): void;
153
+ updateRoutes(routes: RouteDef[]): void;
154
+ /**
155
+ * Add a route dynamically at runtime.
156
+ */
157
+ addRoute(route: RouteDef, parentPath?: string): void;
158
+ /**
159
+ * Remove a route by path.
160
+ */
161
+ removeRoute(path: string): void;
162
+ /**
163
+ * Get the reactive route getter for tracking.
164
+ */
165
+ get routeGetter(): () => RouteContext;
166
+ }
167
+ declare function createRouter(routesOrOptions: RouteDef[] | RouterOptions, options?: RouterOptions): SibuRouter;
168
+ /**
169
+ * Set routes on the global router (replaces existing routes).
170
+ */
171
+ declare function setRoutes(routes: RouteDef[]): void;
172
+ declare function route(): RouteContext;
173
+ declare function router(): {
174
+ currentRoute: RouteContext;
175
+ isReady: boolean;
176
+ isNavigating: boolean;
177
+ push: (to: NavigationTarget) => Promise<NavigationResult> | undefined;
178
+ replace: (to: NavigationTarget) => Promise<NavigationResult> | undefined;
179
+ go: (delta: number) => void | undefined;
180
+ back: () => void | undefined;
181
+ forward: () => void | undefined;
182
+ beforeEach: (guard: NavigationGuard) => (() => void) | undefined;
183
+ beforeResolve: (guard: NavigationGuard) => (() => void) | undefined;
184
+ afterEach: (hook: (to: RouteContext, from: RouteContext) => void) => (() => void) | undefined;
185
+ };
186
+ declare function navigate(to: NavigationTarget, options?: {
187
+ replace?: boolean;
188
+ state?: unknown;
189
+ }): Promise<NavigationResult>;
190
+ declare function push(to: NavigationTarget): Promise<NavigationResult>;
191
+ declare function replace(to: NavigationTarget): Promise<NavigationResult>;
192
+ declare function go(delta: number): void;
193
+ declare function back(): void;
194
+ declare function forward(): void;
195
+ declare function beforeEach(guard: NavigationGuard): () => void;
196
+ declare function beforeResolve(guard: NavigationGuard): () => void;
197
+ declare function afterEach(hook: (to: RouteContext, from: RouteContext) => void): () => void;
198
+ declare function Route(): Node;
199
+ declare function RouterLink(props: {
200
+ to: NavigationTarget;
201
+ replace?: boolean;
202
+ activeClass?: string;
203
+ exactActiveClass?: string;
204
+ nodes?: string | Node | (string | Node)[];
205
+ target?: string;
206
+ rel?: string;
207
+ [key: string]: unknown;
208
+ }): HTMLElement;
209
+ declare function Suspense(props: {
210
+ fallback?: () => HTMLElement | HTMLElement;
211
+ nodes: () => HTMLElement | Promise<HTMLElement>;
212
+ }): Node;
213
+ /**
214
+ * Creates a lazy-loaded component
215
+ */
216
+ declare function lazy(importFn: () => Promise<{
217
+ default: Component;
218
+ }>): LazyComponent;
219
+ /**
220
+ * Preloads a route component
221
+ */
222
+ declare function preloadRoute(to: NavigationTarget): Promise<void>;
223
+ /**
224
+ * Validates if a route exists
225
+ */
226
+ declare function hasRoute(name: string): boolean;
227
+ /**
228
+ * Gets route information by name
229
+ */
230
+ declare function getRouteInfo(name: string): RouteDef | null;
231
+ /**
232
+ * Builds a URL for a route
233
+ */
234
+ declare function buildURL(to: NavigationTarget): string;
235
+ declare function destroyRouter(): void;
236
+ /**
237
+ * Outlet renders the child route component within a layout.
238
+ * Use inside a parent route's component to render matched children.
239
+ */
240
+ declare function Outlet(): Node;
241
+ /**
242
+ * Add a route at runtime.
243
+ */
244
+ declare function addRoute(route: RouteDef, parentPath?: string): void;
245
+ /**
246
+ * Remove a route at runtime.
247
+ */
248
+ declare function removeRoute(path: string): void;
249
+ /**
250
+ * routerState provides centralized reactive access to router state.
251
+ */
252
+ declare function routerState(): {
253
+ currentPath: () => string;
254
+ params: () => Params;
255
+ query: () => Params;
256
+ hash: () => string;
257
+ meta: () => RouteMeta;
258
+ isNavigating: boolean;
259
+ isReady: boolean;
260
+ };
261
+ interface RouterPlugin {
262
+ name: string;
263
+ onNavigate?: (to: RouteContext, from: RouteContext) => void;
264
+ onError?: (error: Error, to: RouteContext) => void;
265
+ onReady?: () => void;
266
+ }
267
+ /**
268
+ * Register a router plugin (analytics, breadcrumbs, permissions, etc.).
269
+ */
270
+ declare function routerPlugin(plugin: RouterPlugin): () => void;
271
+ interface RouteTransitionOptions {
272
+ enterClass?: string;
273
+ leaveClass?: string;
274
+ duration?: number;
275
+ }
276
+ /**
277
+ * Configure route transition animations.
278
+ */
279
+ declare function setRouteTransition(options: RouteTransitionOptions): void;
280
+ /**
281
+ * Get current route transition options.
282
+ */
283
+ declare function getRouteTransition(): RouteTransitionOptions | null;
284
+ /**
285
+ * createMemoryRouter creates a router that doesn't interact with browser history.
286
+ * Useful for testing and SSR.
287
+ */
288
+ declare function createMemoryRouter(routes: RouteDef[], _initialPath?: string): {
289
+ router: SibuRouter;
290
+ currentPath: () => string;
291
+ push: (path: string) => Promise<NavigationResult>;
292
+ };
293
+
294
+ /**
295
+ * Serializable route state that can be transferred from server to client.
296
+ */
297
+ interface SSRRouteState {
298
+ path: string;
299
+ params: Record<string, string>;
300
+ query: Record<string, string>;
301
+ hash: string;
302
+ meta: Record<string, unknown>;
303
+ name?: string;
304
+ }
305
+ /**
306
+ * Simple route definition for SSR (subset of full RouteDef).
307
+ */
308
+ interface SSRRouteDef {
309
+ path: string;
310
+ name?: string;
311
+ meta?: Record<string, unknown>;
312
+ component: () => HTMLElement;
313
+ redirect?: string;
314
+ children?: SSRRouteDef[];
315
+ }
316
+ /**
317
+ * Resolve a route on the server without any browser APIs.
318
+ * Performs route matching, param extraction, query parsing.
319
+ * Does NOT use window, history, or any browser globals.
320
+ */
321
+ declare function resolveServerRoute(url: string, routes: SSRRouteDef[]): {
322
+ route: SSRRouteState;
323
+ component: (() => HTMLElement) | null;
324
+ redirect?: string;
325
+ };
326
+ /**
327
+ * Render a route's component to HTML string on the server.
328
+ * Combines route resolution with renderToString.
329
+ */
330
+ declare function renderRouteToString(url: string, routes: SSRRouteDef[], _options?: {
331
+ title?: string;
332
+ scripts?: string[];
333
+ links?: Record<string, string>[];
334
+ }): {
335
+ html: string;
336
+ state: SSRRouteState;
337
+ };
338
+ /**
339
+ * Generate the full HTML document for a route including serialized state.
340
+ * Uses renderToDocument pattern with embedded route state.
341
+ */
342
+ declare function renderRouteToDocument(url: string, routes: SSRRouteDef[], options?: {
343
+ title?: string;
344
+ meta?: Record<string, string>[];
345
+ links?: Record<string, string>[];
346
+ scripts?: string[];
347
+ headExtra?: string;
348
+ }): string;
349
+ /**
350
+ * Serialize route state for embedding in HTML.
351
+ * Uses a specific key (__SIBU_ROUTE_STATE__) distinct from the generic SSR data key.
352
+ */
353
+ declare function serializeRouteState(state: SSRRouteState): string;
354
+ /**
355
+ * Deserialize route state on the client from server-embedded data.
356
+ * Reads from window.__SIBU_ROUTE_STATE__.
357
+ */
358
+ declare function deserializeRouteState(): SSRRouteState | undefined;
359
+ /**
360
+ * Initialize the client-side router from server-rendered state.
361
+ * Hydrates the existing HTML and picks up where server left off.
362
+ * Skips initial route resolution and guard execution since the server
363
+ * already resolved and rendered the correct route.
364
+ */
365
+ declare function hydrateRouter(routes: SSRRouteDef[], options?: {
366
+ container?: HTMLElement;
367
+ }): void;
368
+ /**
369
+ * Create a server-safe router instance that works without browser APIs.
370
+ * For use in Node.js SSR rendering. Returns an object with resolve,
371
+ * renderToString, and renderToDocument methods -- none of which require
372
+ * window, history, or document.
373
+ */
374
+ declare function createSSRRouter(routes: SSRRouteDef[]): {
375
+ resolve: (url: string) => {
376
+ route: SSRRouteState;
377
+ component: (() => HTMLElement) | null;
378
+ redirect?: string;
379
+ };
380
+ renderToString: (url: string) => {
381
+ html: string;
382
+ state: SSRRouteState;
383
+ };
384
+ renderToDocument: (url: string, options?: {
385
+ title?: string;
386
+ meta?: Record<string, string>[];
387
+ links?: Record<string, string>[];
388
+ scripts?: string[];
389
+ headExtra?: string;
390
+ }) => string;
391
+ };
392
+
393
+ export { type AsyncComponent, type AsyncRoute, type Component, type ComponentRoute, type Guard, type GuardResult, type LazyComponent, type NavigationFailure, type NavigationGuard, type NavigationNext, type NavigationResult, type NavigationTarget, Outlet, type Params, type RedirectRoute, Route, type RouteBase, type RouteContext, type RouteDef, type RouteMeta, type RouteTransitionOptions, RouterLink, type RouterOptions, type RouterPlugin, type SSRRouteDef, type SSRRouteState, type ScrollBehavior, type ScrollPosition, SibuRouter, Suspense, Trans, addRoute, afterEach, back, beforeEach, beforeResolve, buildURL, createMemoryRouter, createRouter, createSSRRouter, deserializeRouteState, destroyRouter, forward, getAvailableLocales, getLocale, getRouteInfo, getRouteTransition, go, hasRoute, hasTranslation, hydrateRouter, lazy, navigate, preloadRoute, push, registerTranslations, removeRoute, renderRouteToDocument, renderRouteToString, replace, resolveServerRoute, route, router, routerPlugin, routerState, serializeRouteState, setLocale, setRouteTransition, setRoutes, t };