sibujs 1.0.2 → 1.0.4

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 (443) hide show
  1. package/LICENSE +21 -21
  2. package/dist/browser.cjs +18 -0
  3. package/dist/browser.d.cts +19 -1
  4. package/dist/browser.d.ts +19 -1
  5. package/dist/browser.js +5 -1
  6. package/dist/build.cjs +37 -8
  7. package/dist/build.js +3 -3
  8. package/dist/cdn.global.js +4 -4
  9. package/dist/{chunk-24WSRM54.js → chunk-32ZISOLJ.js} +35 -7
  10. package/dist/{chunk-ONCYDOK6.js → chunk-4EI4AG32.js} +17 -1
  11. package/dist/{chunk-MJ4LVHGX.js → chunk-7V26P53V.js} +1 -1
  12. package/dist/{chunk-7TQKR4PP.js → chunk-AZ3ISID5.js} +4 -0
  13. package/dist/{chunk-3CRQALYP.js → chunk-DKOHBI74.js} +49 -2
  14. package/dist/{chunk-6JGMNCD6.js → chunk-EWFVA3TJ.js} +1 -1
  15. package/dist/{chunk-HS6OOE3Q.js → chunk-G3BOQPVO.js} +1 -1
  16. package/dist/{chunk-QVKGGB2S.js → chunk-MDVXJWFN.js} +7 -3
  17. package/dist/{chunk-DZZMIMGL.js → chunk-OF7UZIVB.js} +1 -1
  18. package/dist/{chunk-N6IZB6KJ.js → chunk-PBHF5WKN.js} +56 -7
  19. package/dist/{chunk-OHQQWZ7P.js → chunk-QBMDLBU2.js} +10 -4
  20. package/dist/{customElement-BKQfbSZQ.d.cts → customElement-yz8uyk-0.d.cts} +52 -6
  21. package/dist/{customElement-BKQfbSZQ.d.ts → customElement-yz8uyk-0.d.ts} +52 -6
  22. package/dist/data.cjs +10 -4
  23. package/dist/data.d.cts +2 -0
  24. package/dist/data.d.ts +2 -0
  25. package/dist/data.js +1 -1
  26. package/dist/ecosystem.cjs +7 -3
  27. package/dist/ecosystem.d.cts +1 -1
  28. package/dist/ecosystem.d.ts +1 -1
  29. package/dist/ecosystem.js +2 -2
  30. package/dist/extras.cjs +146 -16
  31. package/dist/extras.d.cts +5 -4
  32. package/dist/extras.d.ts +5 -4
  33. package/dist/extras.js +19 -11
  34. package/dist/index.cjs +40 -8
  35. package/dist/index.d.cts +48 -4
  36. package/dist/index.d.ts +48 -4
  37. package/dist/index.js +9 -3
  38. package/dist/patterns.d.cts +8 -2
  39. package/dist/patterns.d.ts +8 -2
  40. package/dist/plugins.cjs +149 -4
  41. package/dist/plugins.d.cts +39 -3
  42. package/dist/plugins.d.ts +39 -3
  43. package/dist/plugins.js +121 -5
  44. package/dist/{ssr-WKUPVSSK.js → ssr-6GIMY5MX.js} +5 -3
  45. package/dist/ssr-BA6sxxUd.d.cts +135 -0
  46. package/dist/ssr-BA6sxxUd.d.ts +135 -0
  47. package/dist/ssr.cjs +12 -3
  48. package/dist/ssr.d.cts +3 -113
  49. package/dist/ssr.d.ts +3 -113
  50. package/dist/ssr.js +7 -5
  51. package/dist/{tagFactory-D9e0QGIE.d.cts → tagFactory-Dl8QCLga.d.cts} +2 -2
  52. package/dist/{tagFactory-D9e0QGIE.d.ts → tagFactory-Dl8QCLga.d.ts} +2 -2
  53. package/dist/ui.cjs +50 -2
  54. package/dist/ui.d.cts +1 -1
  55. package/dist/ui.d.ts +1 -1
  56. package/dist/ui.js +3 -1
  57. package/dist/widgets.cjs +56 -7
  58. package/dist/widgets.d.cts +4 -2
  59. package/dist/widgets.d.ts +4 -2
  60. package/dist/widgets.js +1 -1
  61. package/package.json +139 -139
  62. package/dist/chunk-27QC4FPL.js +0 -67
  63. package/dist/chunk-2ABBWCGC.js +0 -65
  64. package/dist/chunk-2GLUWW3D.js +0 -567
  65. package/dist/chunk-2HYHL6VW.js +0 -269
  66. package/dist/chunk-2MUNQYZ7.js +0 -26
  67. package/dist/chunk-2PFRWZIE.js +0 -65
  68. package/dist/chunk-2PSPKNUI.js +0 -1711
  69. package/dist/chunk-2X5NDXNG.js +0 -877
  70. package/dist/chunk-34TOFKL7.js +0 -1803
  71. package/dist/chunk-353KB3DI.js +0 -271
  72. package/dist/chunk-35CDLDX5.js +0 -1758
  73. package/dist/chunk-36MU4CFV.js +0 -41
  74. package/dist/chunk-37NSPDPQ.js +0 -284
  75. package/dist/chunk-3CSF4TOG.js +0 -282
  76. package/dist/chunk-3FIQOFI6.js +0 -182
  77. package/dist/chunk-3GHNC2BN.js +0 -28
  78. package/dist/chunk-3GZTRYSY.js +0 -33
  79. package/dist/chunk-3HLWWEPU.js +0 -909
  80. package/dist/chunk-3IVI3J54.js +0 -252
  81. package/dist/chunk-3KZ72WNW.js +0 -944
  82. package/dist/chunk-4AU64SQV.js +0 -182
  83. package/dist/chunk-4MOK7HAR.js +0 -84
  84. package/dist/chunk-4QK6FBDH.js +0 -1429
  85. package/dist/chunk-526ENZ77.js +0 -58
  86. package/dist/chunk-566Z7HXB.js +0 -737
  87. package/dist/chunk-5CRBB7XP.js +0 -358
  88. package/dist/chunk-5G67D3IZ.js +0 -168
  89. package/dist/chunk-5KBEED6D.js +0 -361
  90. package/dist/chunk-5LJMSKBB.js +0 -26
  91. package/dist/chunk-5M7LJFWV.js +0 -271
  92. package/dist/chunk-5NCPAWBE.js +0 -99
  93. package/dist/chunk-5O2RKXR3.js +0 -1444
  94. package/dist/chunk-5OCBERWW.js +0 -1094
  95. package/dist/chunk-5XUAA53E.js +0 -99
  96. package/dist/chunk-5ZFVYPDG.js +0 -97
  97. package/dist/chunk-6BCDNGIH.js +0 -1839
  98. package/dist/chunk-6BDUQJ7K.js +0 -949
  99. package/dist/chunk-6BTBDO6A.js +0 -633
  100. package/dist/chunk-6DJQF4Z7.js +0 -33
  101. package/dist/chunk-6EYXAMBN.js +0 -1857
  102. package/dist/chunk-6IWEHW57.js +0 -43
  103. package/dist/chunk-6J6S4NI7.js +0 -398
  104. package/dist/chunk-6NBHAKHS.js +0 -1997
  105. package/dist/chunk-6QRLJNXR.js +0 -1425
  106. package/dist/chunk-6SNF5MZK.js +0 -282
  107. package/dist/chunk-7FYJUE77.js +0 -282
  108. package/dist/chunk-7HM5UE5T.js +0 -270
  109. package/dist/chunk-7JOLTGUH.js +0 -58
  110. package/dist/chunk-7LS3ITZB.js +0 -567
  111. package/dist/chunk-7MCWJCQK.js +0 -909
  112. package/dist/chunk-7RIIFP3E.js +0 -1758
  113. package/dist/chunk-7UASYN3G.js +0 -254
  114. package/dist/chunk-7W2WYHDI.js +0 -741
  115. package/dist/chunk-7XFBKLFB.js +0 -90
  116. package/dist/chunk-7Y35RDSJ.js +0 -872
  117. package/dist/chunk-A65GFJBL.js +0 -65
  118. package/dist/chunk-AD6ZIEDK.js +0 -67
  119. package/dist/chunk-AIPXZK5O.js +0 -295
  120. package/dist/chunk-AK5Y72F3.js +0 -1426
  121. package/dist/chunk-ANRSGGFC.js +0 -725
  122. package/dist/chunk-APOMMWH4.js +0 -282
  123. package/dist/chunk-ARZVTWIQ.js +0 -1750
  124. package/dist/chunk-AWWBM2BI.js +0 -664
  125. package/dist/chunk-AX5VEQTY.js +0 -58
  126. package/dist/chunk-AYTXVOW3.js +0 -1708
  127. package/dist/chunk-B4ASD5VC.js +0 -295
  128. package/dist/chunk-BG3HMX4C.js +0 -271
  129. package/dist/chunk-BG4A246G.js +0 -1746
  130. package/dist/chunk-BNFJJA2L.js +0 -1425
  131. package/dist/chunk-BPKPBVU5.js +0 -59
  132. package/dist/chunk-BPKPPSXC.js +0 -282
  133. package/dist/chunk-BPWKKK7F.js +0 -1711
  134. package/dist/chunk-BS5EYKCJ.js +0 -26
  135. package/dist/chunk-BS6ETCJ7.js +0 -949
  136. package/dist/chunk-BTTBAGD3.js +0 -365
  137. package/dist/chunk-BWBWJYBK.js +0 -271
  138. package/dist/chunk-CCKX6YTC.js +0 -1735
  139. package/dist/chunk-CIF5Z3MP.js +0 -58
  140. package/dist/chunk-CQNVF2FD.js +0 -282
  141. package/dist/chunk-CRTHZHU7.js +0 -26
  142. package/dist/chunk-CSXYU7IO.js +0 -457
  143. package/dist/chunk-D6JD4FDC.js +0 -26
  144. package/dist/chunk-DAUTHAYH.js +0 -20
  145. package/dist/chunk-DB243LB7.js +0 -877
  146. package/dist/chunk-DEQLPROY.js +0 -1094
  147. package/dist/chunk-DGUYCZJH.js +0 -654
  148. package/dist/chunk-DI3Z32TV.js +0 -1780
  149. package/dist/chunk-DKGHW6MX.js +0 -90
  150. package/dist/chunk-DKXVN442.js +0 -90
  151. package/dist/chunk-DLWLJZB3.js +0 -712
  152. package/dist/chunk-DNTTC4V5.js +0 -1803
  153. package/dist/chunk-DTCOOBMX.js +0 -725
  154. package/dist/chunk-DWQQ2GZK.js +0 -1787
  155. package/dist/chunk-E5SMAKQQ.js +0 -336
  156. package/dist/chunk-E6BNBVMK.js +0 -457
  157. package/dist/chunk-E7NGA7X2.js +0 -59
  158. package/dist/chunk-EEPPJKAE.js +0 -443
  159. package/dist/chunk-EGZGFIXV.js +0 -90
  160. package/dist/chunk-EJMSUPXQ.js +0 -346
  161. package/dist/chunk-EJMYGAGQ.js +0 -717
  162. package/dist/chunk-EL6Z5MDY.js +0 -55
  163. package/dist/chunk-EP7VRLEB.js +0 -41
  164. package/dist/chunk-EQACK65C.js +0 -63
  165. package/dist/chunk-ESPA7SCH.js +0 -567
  166. package/dist/chunk-ETMEC6FH.js +0 -99
  167. package/dist/chunk-EUFENPGJ.js +0 -290
  168. package/dist/chunk-EZ2WHYVL.js +0 -65
  169. package/dist/chunk-EZRVMSZK.js +0 -67
  170. package/dist/chunk-F25CZRUH.js +0 -282
  171. package/dist/chunk-F2TRGINX.js +0 -254
  172. package/dist/chunk-F4IYF3YU.js +0 -266
  173. package/dist/chunk-F5JCIH3Q.js +0 -642
  174. package/dist/chunk-FBNDOAHU.js +0 -54
  175. package/dist/chunk-FDRU7W6W.js +0 -365
  176. package/dist/chunk-FDW3E54J.js +0 -1767
  177. package/dist/chunk-FEPU4KL6.js +0 -63
  178. package/dist/chunk-FGK3JKMN.js +0 -909
  179. package/dist/chunk-FQWPKSTD.js +0 -1437
  180. package/dist/chunk-FWHVLMCI.js +0 -26
  181. package/dist/chunk-FYIGTFXO.js +0 -712
  182. package/dist/chunk-G4AX3DQ4.js +0 -54
  183. package/dist/chunk-GBEYQRO2.js +0 -303
  184. package/dist/chunk-GBLES3NK.js +0 -248
  185. package/dist/chunk-GQVGUQW6.js +0 -1436
  186. package/dist/chunk-GVDEIJ3G.js +0 -291
  187. package/dist/chunk-GXIM4TC3.js +0 -346
  188. package/dist/chunk-GY5AAP4H.js +0 -316
  189. package/dist/chunk-HCV2T76T.js +0 -457
  190. package/dist/chunk-HCWPQCZP.js +0 -279
  191. package/dist/chunk-HFHOFG6W.js +0 -282
  192. package/dist/chunk-HGKEBAW3.js +0 -63
  193. package/dist/chunk-HJNW3HLI.js +0 -255
  194. package/dist/chunk-HKUNBYN6.js +0 -949
  195. package/dist/chunk-HRIIH4JX.js +0 -712
  196. package/dist/chunk-HS7ZKVPR.js +0 -182
  197. package/dist/chunk-HXDVV7HZ.js +0 -909
  198. package/dist/chunk-HZWNWUPJ.js +0 -466
  199. package/dist/chunk-I6EZTMPB.js +0 -949
  200. package/dist/chunk-IB23VMO3.js +0 -1746
  201. package/dist/chunk-IC4K4EOD.js +0 -26
  202. package/dist/chunk-IEMZ7RTT.js +0 -99
  203. package/dist/chunk-IJU6TOZ6.js +0 -65
  204. package/dist/chunk-IK3NFZOA.js +0 -466
  205. package/dist/chunk-IPGRSN42.js +0 -1750
  206. package/dist/chunk-IVMOK2QN.js +0 -1750
  207. package/dist/chunk-J7PD6L4B.js +0 -1767
  208. package/dist/chunk-JCLGQO7T.js +0 -443
  209. package/dist/chunk-JDXL7KDB.js +0 -1436
  210. package/dist/chunk-JIIFW636.js +0 -270
  211. package/dist/chunk-JLOASJXU.js +0 -654
  212. package/dist/chunk-JRWAHOMS.js +0 -41
  213. package/dist/chunk-JWGEEH7H.js +0 -944
  214. package/dist/chunk-K2BESAG7.js +0 -1688
  215. package/dist/chunk-K2U5YGF4.js +0 -877
  216. package/dist/chunk-K45FQ4Y4.js +0 -175
  217. package/dist/chunk-K7BPE427.js +0 -1432
  218. package/dist/chunk-K7JUDY3C.js +0 -364
  219. package/dist/chunk-KALKXPC3.js +0 -297
  220. package/dist/chunk-KKUV25KB.js +0 -361
  221. package/dist/chunk-KKV3DOAW.js +0 -466
  222. package/dist/chunk-KL3266RS.js +0 -26
  223. package/dist/chunk-KNN4P7DZ.js +0 -84
  224. package/dist/chunk-KP2DZH5Q.js +0 -254
  225. package/dist/chunk-KZHAJSQR.js +0 -1636
  226. package/dist/chunk-L36YN45V.js +0 -949
  227. package/dist/chunk-L5IBT37O.js +0 -263
  228. package/dist/chunk-LAX5H35R.js +0 -90
  229. package/dist/chunk-LBKGHMQV.js +0 -1750
  230. package/dist/chunk-LBTEPL7A.js +0 -1731
  231. package/dist/chunk-LEBBPTDB.js +0 -1444
  232. package/dist/chunk-LHI25KS2.js +0 -654
  233. package/dist/chunk-LHNJSLC6.js +0 -297
  234. package/dist/chunk-LLH63WVQ.js +0 -98
  235. package/dist/chunk-LWNJN3IW.js +0 -295
  236. package/dist/chunk-LWVR2C4G.js +0 -1711
  237. package/dist/chunk-M3MDTVV2.js +0 -896
  238. package/dist/chunk-M3QSBCXC.js +0 -52
  239. package/dist/chunk-M3ZKZQNY.js +0 -282
  240. package/dist/chunk-M5GNLDEO.js +0 -303
  241. package/dist/chunk-MBINISSE.js +0 -35
  242. package/dist/chunk-MFHVGKET.js +0 -267
  243. package/dist/chunk-MGWSG3PM.js +0 -358
  244. package/dist/chunk-MGYRVG2A.js +0 -282
  245. package/dist/chunk-MJNB47HB.js +0 -19
  246. package/dist/chunk-MLN3JZ2E.js +0 -398
  247. package/dist/chunk-MM46JVR2.js +0 -359
  248. package/dist/chunk-MQWTY3JY.js +0 -944
  249. package/dist/chunk-MWE3PK5S.js +0 -551
  250. package/dist/chunk-MXR7LXGC.js +0 -1084
  251. package/dist/chunk-MZZOQHNI.js +0 -642
  252. package/dist/chunk-N6BRVUAP.js +0 -1805
  253. package/dist/chunk-N7UVR6SG.js +0 -877
  254. package/dist/chunk-NIHWGZS4.js +0 -1426
  255. package/dist/chunk-NMTRH4Q3.js +0 -97
  256. package/dist/chunk-NSVVHQK5.js +0 -41
  257. package/dist/chunk-NVI2WE7D.js +0 -443
  258. package/dist/chunk-NZNNXPEE.js +0 -56
  259. package/dist/chunk-O7QBO3PH.js +0 -58
  260. package/dist/chunk-OAUPQBO2.js +0 -270
  261. package/dist/chunk-OB2LMD7C.js +0 -297
  262. package/dist/chunk-OEGAHDEU.js +0 -1094
  263. package/dist/chunk-OHEYBWQU.js +0 -58
  264. package/dist/chunk-OI5B74HF.js +0 -26
  265. package/dist/chunk-OI6OXUHJ.js +0 -443
  266. package/dist/chunk-ONOO74UN.js +0 -361
  267. package/dist/chunk-OWLQ4HZI.js +0 -282
  268. package/dist/chunk-OX2VMRMV.js +0 -633
  269. package/dist/chunk-OXYMB6VB.js +0 -466
  270. package/dist/chunk-OZS4YOOP.js +0 -59
  271. package/dist/chunk-P4FYE5TX.js +0 -866
  272. package/dist/chunk-P5KFWM4H.js +0 -98
  273. package/dist/chunk-PLFQZ7SS.js +0 -90
  274. package/dist/chunk-PMVU6BI4.js +0 -1847
  275. package/dist/chunk-PPNH4Y6U.js +0 -282
  276. package/dist/chunk-PUMLE7RJ.js +0 -1711
  277. package/dist/chunk-Q4MFANBF.js +0 -282
  278. package/dist/chunk-Q54YZ4X3.js +0 -26
  279. package/dist/chunk-Q6XACQW3.js +0 -1847
  280. package/dist/chunk-QI6ZDDUR.js +0 -35
  281. package/dist/chunk-QJ5KLY2S.js +0 -1821
  282. package/dist/chunk-QLEKZMMU.js +0 -282
  283. package/dist/chunk-QLNWSBWK.js +0 -567
  284. package/dist/chunk-QQS7BSPA.js +0 -26
  285. package/dist/chunk-QUGIYF3F.js +0 -712
  286. package/dist/chunk-QYSW3K7A.js +0 -282
  287. package/dist/chunk-QZWTKX5K.js +0 -321
  288. package/dist/chunk-RGGNGVO3.js +0 -98
  289. package/dist/chunk-RKJDRVV6.js +0 -443
  290. package/dist/chunk-RUAJTILD.js +0 -26
  291. package/dist/chunk-S5BHU353.js +0 -43
  292. package/dist/chunk-S6YEHFC7.js +0 -654
  293. package/dist/chunk-SHQUSFH7.js +0 -1426
  294. package/dist/chunk-SMB4DBMD.js +0 -182
  295. package/dist/chunk-SNYHQP3D.js +0 -743
  296. package/dist/chunk-SR2DPCTT.js +0 -1803
  297. package/dist/chunk-SU63HSUU.js +0 -58
  298. package/dist/chunk-SXXKZJI2.js +0 -303
  299. package/dist/chunk-T24L3TBF.js +0 -1717
  300. package/dist/chunk-T2SPHHYU.js +0 -365
  301. package/dist/chunk-TAQNSOKT.js +0 -692
  302. package/dist/chunk-TBA46SVX.js +0 -1805
  303. package/dist/chunk-TCWKKKPP.js +0 -90
  304. package/dist/chunk-TDNY4SUA.js +0 -41
  305. package/dist/chunk-TK4P3V5G.js +0 -56
  306. package/dist/chunk-TNNF56IQ.js +0 -1750
  307. package/dist/chunk-TR7E6LYX.js +0 -457
  308. package/dist/chunk-TVV4JK5G.js +0 -282
  309. package/dist/chunk-UATXXETW.js +0 -278
  310. package/dist/chunk-UHFUQWST.js +0 -65
  311. package/dist/chunk-UKDBQVM3.js +0 -346
  312. package/dist/chunk-URWUFH45.js +0 -98
  313. package/dist/chunk-USPT25TC.js +0 -365
  314. package/dist/chunk-UUSIH3XH.js +0 -1429
  315. package/dist/chunk-UXDIPRCG.js +0 -26
  316. package/dist/chunk-UYFNXLKR.js +0 -1436
  317. package/dist/chunk-UZZFP2EE.js +0 -35
  318. package/dist/chunk-V4G5Y6YM.js +0 -1094
  319. package/dist/chunk-V6F7KUWD.js +0 -270
  320. package/dist/chunk-V6P4LDAV.js +0 -65
  321. package/dist/chunk-VAA4FG3Z.js +0 -365
  322. package/dist/chunk-VCZLXRMR.js +0 -254
  323. package/dist/chunk-VDHXSSBT.js +0 -1426
  324. package/dist/chunk-VI4KRBSU.js +0 -291
  325. package/dist/chunk-VM4QMKVK.js +0 -254
  326. package/dist/chunk-VUXB655T.js +0 -1999
  327. package/dist/chunk-VWGYKYL2.js +0 -737
  328. package/dist/chunk-VX2OFBJN.js +0 -1426
  329. package/dist/chunk-VXVIE6DG.js +0 -84
  330. package/dist/chunk-W3QH7BF5.js +0 -282
  331. package/dist/chunk-W4OH7HG4.js +0 -40
  332. package/dist/chunk-WBVJX4GZ.js +0 -98
  333. package/dist/chunk-WDU2ZV4I.js +0 -1426
  334. package/dist/chunk-WGCQNOEQ.js +0 -712
  335. package/dist/chunk-WZQNHS4J.js +0 -52
  336. package/dist/chunk-X6VUCICU.js +0 -457
  337. package/dist/chunk-XAY7FM7Y.js +0 -618
  338. package/dist/chunk-XFW7B23S.js +0 -282
  339. package/dist/chunk-XJ3MNGY5.js +0 -58
  340. package/dist/chunk-XJZ5Z2CM.js +0 -642
  341. package/dist/chunk-XKVFQTJJ.js +0 -254
  342. package/dist/chunk-XRLFASCY.js +0 -22
  343. package/dist/chunk-XZGY5ZJ4.js +0 -35
  344. package/dist/chunk-Y745CBVB.js +0 -944
  345. package/dist/chunk-YLBJSXYY.js +0 -944
  346. package/dist/chunk-YQJIKVPZ.js +0 -1429
  347. package/dist/chunk-YRM2VCZF.js +0 -457
  348. package/dist/chunk-YS33KBVJ.js +0 -944
  349. package/dist/chunk-Z27DZPDG.js +0 -41
  350. package/dist/chunk-Z6GZHJW5.js +0 -877
  351. package/dist/chunk-ZXQ5NAEN.js +0 -32
  352. package/dist/contracts-B552GopR.d.cts +0 -245
  353. package/dist/contracts-B552GopR.d.ts +0 -245
  354. package/dist/contracts-Bg1ECISC.d.cts +0 -245
  355. package/dist/contracts-Bg1ECISC.d.ts +0 -245
  356. package/dist/contracts-CMriKJ6P.d.cts +0 -245
  357. package/dist/contracts-CMriKJ6P.d.ts +0 -245
  358. package/dist/src/components/ErrorBoundary.d.ts +0 -15
  359. package/dist/src/components/ErrorBoundary.js +0 -119
  360. package/dist/src/core/catch.d.ts +0 -11
  361. package/dist/src/core/catch.js +0 -28
  362. package/dist/src/core/each.d.ts +0 -13
  363. package/dist/src/core/each.js +0 -68
  364. package/dist/src/core/for.d.ts +0 -12
  365. package/dist/src/core/for.js +0 -67
  366. package/dist/src/core/html.d.ts +0 -137
  367. package/dist/src/core/html.js +0 -155
  368. package/dist/src/core/htmlIf.d.ts +0 -11
  369. package/dist/src/core/htmlIf.js +0 -18
  370. package/dist/src/core/lazy.d.ts +0 -7
  371. package/dist/src/core/lazy.js +0 -16
  372. package/dist/src/core/mount.d.ts +0 -7
  373. package/dist/src/core/mount.js +0 -12
  374. package/dist/src/core/slots.d.ts +0 -3
  375. package/dist/src/core/slots.js +0 -3
  376. package/dist/src/core/suspense.d.ts +0 -10
  377. package/dist/src/core/suspense.js +0 -33
  378. package/dist/src/core/tagFactory.d.ts +0 -13
  379. package/dist/src/core/tagFactory.js +0 -86
  380. package/dist/src/core/test.d.ts +0 -11
  381. package/dist/src/core/test.js +0 -28
  382. package/dist/src/core/types.d.ts +0 -2
  383. package/dist/src/core/types.js +0 -1
  384. package/dist/src/core/useComputed.d.ts +0 -6
  385. package/dist/src/core/useComputed.js +0 -30
  386. package/dist/src/core/useEffect.d.ts +0 -6
  387. package/dist/src/core/useEffect.js +0 -23
  388. package/dist/src/core/useState.d.ts +0 -10
  389. package/dist/src/core/useState.js +0 -34
  390. package/dist/src/core/useStore.d.ts +0 -19
  391. package/dist/src/core/useStore.js +0 -53
  392. package/dist/src/core/useWatch.d.ts +0 -8
  393. package/dist/src/core/useWatch.js +0 -23
  394. package/dist/src/plugins/i18n.d.ts +0 -6
  395. package/dist/src/plugins/i18n.js +0 -16
  396. package/dist/src/plugins/router.d.ts +0 -188
  397. package/dist/src/plugins/router.js +0 -1178
  398. package/dist/src/reactivity/bindAttribute.d.ts +0 -5
  399. package/dist/src/reactivity/bindAttribute.js +0 -31
  400. package/dist/src/reactivity/bindChildNode.d.ts +0 -10
  401. package/dist/src/reactivity/bindChildNode.js +0 -46
  402. package/dist/src/reactivity/bindTextNode.d.ts +0 -10
  403. package/dist/src/reactivity/bindTextNode.js +0 -27
  404. package/dist/src/reactivity/signal.d.ts +0 -3
  405. package/dist/src/reactivity/signal.js +0 -1
  406. package/dist/src/reactivity/track.d.ts +0 -18
  407. package/dist/src/reactivity/track.js +0 -73
  408. package/dist/src/reactivity/useComputed.d.ts +0 -6
  409. package/dist/src/reactivity/useComputed.js +0 -30
  410. package/dist/src/reactivity/useEffect.d.ts +0 -6
  411. package/dist/src/reactivity/useEffect.js +0 -23
  412. package/dist/src/reactivity/useState.d.ts +0 -10
  413. package/dist/src/reactivity/useState.js +0 -34
  414. package/dist/src/reactivity/useStore.d.ts +0 -19
  415. package/dist/src/reactivity/useStore.js +0 -53
  416. package/dist/src/reactivity/useWatch.d.ts +0 -8
  417. package/dist/src/reactivity/useWatch.js +0 -23
  418. package/dist/src/utils/sanitize.d.ts +0 -1
  419. package/dist/src/utils/sanitize.js +0 -8
  420. package/dist/ssr-27FOM46T.js +0 -35
  421. package/dist/ssr-GEOEYQV7.js +0 -35
  422. package/dist/ssr-GFUTTSJD.js +0 -22
  423. package/dist/ssr-K7DCR6BZ.js +0 -35
  424. package/dist/ssr-NFAIHWJJ.js +0 -35
  425. package/dist/ssr-O6LFMRFP.js +0 -35
  426. package/dist/ssr-QZEVGMMK.js +0 -35
  427. package/dist/ssr-SGVBCAGC.js +0 -35
  428. package/dist/ssr-UB2IXCYX.js +0 -35
  429. package/dist/ssr-XBZQNV4O.js +0 -22
  430. package/dist/ssr-Y76FSXDU.js +0 -35
  431. package/dist/ssr-YQJ4AYBD.js +0 -35
  432. package/dist/tagFactory-BDN7gDEp.d.cts +0 -21
  433. package/dist/tagFactory-BDN7gDEp.d.ts +0 -21
  434. package/dist/tagFactory-CZPO4RXF.d.cts +0 -34
  435. package/dist/tagFactory-CZPO4RXF.d.ts +0 -34
  436. package/dist/tagFactory-CgImPVMY.d.cts +0 -22
  437. package/dist/tagFactory-CgImPVMY.d.ts +0 -22
  438. package/dist/tagFactory-Cw1iv5if.d.cts +0 -22
  439. package/dist/tagFactory-Cw1iv5if.d.ts +0 -22
  440. package/dist/tagFactory-DeAXq9ef.d.cts +0 -30
  441. package/dist/tagFactory-DeAXq9ef.d.ts +0 -30
  442. package/dist/tagFactory-SkY0a7L1.d.cts +0 -22
  443. package/dist/tagFactory-SkY0a7L1.d.ts +0 -22
package/dist/ssr.d.cts CHANGED
@@ -1,3 +1,5 @@
1
+ export { T as TrustedHTML, c as collectStream, d as deserializeState, h as hydrate, a as hydrateIslands, b as hydrateProgressively, i as island, r as renderToDocument, e as renderToReadableStream, f as renderToStream, g as renderToString, j as renderToSuspenseStream, k as resetSSRState, s as serializeState, l as ssrSuspense, m as suspenseSwapScript, t as trustHTML } from './ssr-BA6sxxUd.cjs';
2
+
1
3
  interface HeadProps {
2
4
  title?: string | (() => string);
3
5
  meta?: Record<string, string | (() => string)>[];
@@ -23,118 +25,6 @@ declare function setStructuredData(data: Record<string, unknown>): void;
23
25
  */
24
26
  declare function setCanonical(url: string): void;
25
27
 
26
- /**
27
- * Converts an HTMLElement tree to an HTML string for server-side rendering.
28
- */
29
- declare function renderToString(element: HTMLElement | DocumentFragment | Node): string;
30
- /**
31
- * Hydrates a server-rendered DOM tree by attaching event listeners
32
- * and activating reactive bindings.
33
- */
34
- declare function hydrate(component: () => HTMLElement, container: HTMLElement): void;
35
- /**
36
- * Renders a component to a full HTML document string.
37
- *
38
- * **Security warning:** `headExtra` is injected as raw HTML into the document head.
39
- * Never pass unsanitized user input to `headExtra` — it is intended for trusted,
40
- * developer-controlled content only (e.g. inline styles, custom meta tags).
41
- */
42
- declare function renderToDocument(component: () => HTMLElement, options?: {
43
- title?: string;
44
- meta?: Record<string, string>[];
45
- links?: Record<string, string>[];
46
- scripts?: string[];
47
- bodyAttrs?: Record<string, string>;
48
- /** Raw HTML injected into <head>. Must not contain unsanitized user input. */
49
- headExtra?: string;
50
- }): string;
51
- /**
52
- * Renders a component tree to an async iterable of HTML chunks.
53
- * Enables progressive server-side rendering — the consumer can write
54
- * each chunk to a response stream as it becomes available.
55
- */
56
- declare function renderToStream(element: HTMLElement | DocumentFragment | Node): AsyncGenerator<string>;
57
- /**
58
- * Collects the full output of renderToStream into a string.
59
- */
60
- declare function collectStream(stream: AsyncGenerator<string> | AsyncIterable<string>): Promise<string>;
61
- /**
62
- * Renders a component tree to a Web ReadableStream<string>.
63
- * Compatible with Node 18+, Deno, and edge runtimes.
64
- * Uses pull-based backpressure — chunks are produced on demand.
65
- */
66
- declare function renderToReadableStream(element: HTMLElement | DocumentFragment | Node): ReadableStream<string>;
67
- /**
68
- * Marks an element as a hydration island. During partial hydration
69
- * only elements marked with `data-sibu-island` will be hydrated.
70
- */
71
- declare function island(id: string, component: () => HTMLElement): HTMLElement;
72
- /**
73
- * Hydrate only elements marked as islands (`data-sibu-island`).
74
- * Non-island content keeps its server-rendered HTML untouched.
75
- */
76
- declare function hydrateIslands(container: HTMLElement, islands: Record<string, () => HTMLElement>): void;
77
- /**
78
- * Progressively hydrate islands only when they enter the viewport.
79
- * Uses IntersectionObserver to defer hydration of off-screen islands,
80
- * reducing initial JavaScript execution cost.
81
- *
82
- * Returns a cleanup function that disconnects all observers.
83
- */
84
- declare function hydrateProgressively(container: HTMLElement, islands: Record<string, () => HTMLElement>, options?: IntersectionObserverInit): () => void;
85
- /**
86
- * Reset SSR state between requests. Call at the start of each SSR render
87
- * to prevent ID drift in long-lived server processes.
88
- */
89
- declare function resetSSRState(): void;
90
- /**
91
- * Create a suspense boundary for SSR streaming.
92
- * Renders fallback HTML inline and returns a promise for the resolved content.
93
- *
94
- * The returned element contains the fallback UI with a `data-sibu-suspense-id`
95
- * marker. The promise resolves to `{ id, html }` once async content is ready.
96
- */
97
- declare function ssrSuspense(props: {
98
- fallback: () => HTMLElement;
99
- content: () => Promise<HTMLElement>;
100
- }): {
101
- element: HTMLElement;
102
- promise: Promise<{
103
- id: string;
104
- html: string;
105
- }>;
106
- };
107
- /**
108
- * Generate an inline script that swaps a suspense fallback with resolved content.
109
- * The id is escaped for both JS string and HTML attribute contexts to prevent injection.
110
- */
111
- declare function suspenseSwapScript(id: string, nonce?: string): string;
112
- /**
113
- * Renders a component tree with suspense boundaries as a stream.
114
- * Yields the main tree HTML first (including fallback content for suspended
115
- * boundaries), then flushes resolved content with inline swap scripts.
116
- */
117
- declare function renderToSuspenseStream(element: HTMLElement | DocumentFragment | Node, pendingBoundaries?: Promise<{
118
- id: string;
119
- html: string;
120
- }>[]): AsyncGenerator<string>;
121
- /**
122
- * Serialize application state into an HTML script tag for SSR.
123
- * The serialized data is embedded in the document and picked up
124
- * on the client with `deserializeState()`.
125
- */
126
- declare function serializeState(state: Record<string, unknown>, nonce?: string): string;
127
- /**
128
- * Retrieve state that was embedded by `serializeState()` during SSR.
129
- *
130
- * When a `validate` function is provided, it acts as a type guard —
131
- * only data that passes validation is returned. This prevents
132
- * tampered SSR payloads from being trusted by the client.
133
- *
134
- * @param validate Optional type guard to verify data integrity
135
- */
136
- declare function deserializeState<T = Record<string, unknown>>(validate?: (data: unknown) => data is T): T | undefined;
137
-
138
28
  interface UseWorkerReturn<TInput, TOutput> {
139
29
  post(data: TInput): void;
140
30
  result: () => TOutput | null;
@@ -481,4 +371,4 @@ declare function createMiddlewareChain(): {
481
371
  }) => Promise<void>;
482
372
  };
483
373
 
484
- export { type ActionFn, type ActionResult, Head, type ISROptions, type MicroApp, type MicroAppConfig, type MiddlewareFn, type SSGOptions, type SSGResult, type ScrollRestorationOptions, type ServiceWorkerState, type SharedScope, type UseWorkerFnReturn, type UseWorkerReturn, type WasmConfig, type WasmModuleState, type WorkerPool, clearWasmCache, collectStream, composeMiddleware, createAction, createISR, createMicroApp, createMiddlewareChain, createSharedScope, createWasmBridge, createWorkerPool, defineRemoteComponent, deserializeState, generateStaticSite, hydrate, hydrateIslands, hydrateProgressively, isWasmCached, island, loadRemoteModule, loadWasmModule, preloadWasm, renderToDocument, renderToReadableStream, renderToStream, renderToString, renderToSuspenseStream, resetSSRState, scrollRestoration, serializeState, serviceWorker, setCanonical, setStructuredData, ssrSuspense, suspenseSwapScript, wasm, worker, workerFn };
374
+ export { type ActionFn, type ActionResult, Head, type ISROptions, type MicroApp, type MicroAppConfig, type MiddlewareFn, type SSGOptions, type SSGResult, type ScrollRestorationOptions, type ServiceWorkerState, type SharedScope, type UseWorkerFnReturn, type UseWorkerReturn, type WasmConfig, type WasmModuleState, type WorkerPool, clearWasmCache, composeMiddleware, createAction, createISR, createMicroApp, createMiddlewareChain, createSharedScope, createWasmBridge, createWorkerPool, defineRemoteComponent, generateStaticSite, isWasmCached, loadRemoteModule, loadWasmModule, preloadWasm, scrollRestoration, serviceWorker, setCanonical, setStructuredData, wasm, worker, workerFn };
package/dist/ssr.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ export { T as TrustedHTML, c as collectStream, d as deserializeState, h as hydrate, a as hydrateIslands, b as hydrateProgressively, i as island, r as renderToDocument, e as renderToReadableStream, f as renderToStream, g as renderToString, j as renderToSuspenseStream, k as resetSSRState, s as serializeState, l as ssrSuspense, m as suspenseSwapScript, t as trustHTML } from './ssr-BA6sxxUd.js';
2
+
1
3
  interface HeadProps {
2
4
  title?: string | (() => string);
3
5
  meta?: Record<string, string | (() => string)>[];
@@ -23,118 +25,6 @@ declare function setStructuredData(data: Record<string, unknown>): void;
23
25
  */
24
26
  declare function setCanonical(url: string): void;
25
27
 
26
- /**
27
- * Converts an HTMLElement tree to an HTML string for server-side rendering.
28
- */
29
- declare function renderToString(element: HTMLElement | DocumentFragment | Node): string;
30
- /**
31
- * Hydrates a server-rendered DOM tree by attaching event listeners
32
- * and activating reactive bindings.
33
- */
34
- declare function hydrate(component: () => HTMLElement, container: HTMLElement): void;
35
- /**
36
- * Renders a component to a full HTML document string.
37
- *
38
- * **Security warning:** `headExtra` is injected as raw HTML into the document head.
39
- * Never pass unsanitized user input to `headExtra` — it is intended for trusted,
40
- * developer-controlled content only (e.g. inline styles, custom meta tags).
41
- */
42
- declare function renderToDocument(component: () => HTMLElement, options?: {
43
- title?: string;
44
- meta?: Record<string, string>[];
45
- links?: Record<string, string>[];
46
- scripts?: string[];
47
- bodyAttrs?: Record<string, string>;
48
- /** Raw HTML injected into <head>. Must not contain unsanitized user input. */
49
- headExtra?: string;
50
- }): string;
51
- /**
52
- * Renders a component tree to an async iterable of HTML chunks.
53
- * Enables progressive server-side rendering — the consumer can write
54
- * each chunk to a response stream as it becomes available.
55
- */
56
- declare function renderToStream(element: HTMLElement | DocumentFragment | Node): AsyncGenerator<string>;
57
- /**
58
- * Collects the full output of renderToStream into a string.
59
- */
60
- declare function collectStream(stream: AsyncGenerator<string> | AsyncIterable<string>): Promise<string>;
61
- /**
62
- * Renders a component tree to a Web ReadableStream<string>.
63
- * Compatible with Node 18+, Deno, and edge runtimes.
64
- * Uses pull-based backpressure — chunks are produced on demand.
65
- */
66
- declare function renderToReadableStream(element: HTMLElement | DocumentFragment | Node): ReadableStream<string>;
67
- /**
68
- * Marks an element as a hydration island. During partial hydration
69
- * only elements marked with `data-sibu-island` will be hydrated.
70
- */
71
- declare function island(id: string, component: () => HTMLElement): HTMLElement;
72
- /**
73
- * Hydrate only elements marked as islands (`data-sibu-island`).
74
- * Non-island content keeps its server-rendered HTML untouched.
75
- */
76
- declare function hydrateIslands(container: HTMLElement, islands: Record<string, () => HTMLElement>): void;
77
- /**
78
- * Progressively hydrate islands only when they enter the viewport.
79
- * Uses IntersectionObserver to defer hydration of off-screen islands,
80
- * reducing initial JavaScript execution cost.
81
- *
82
- * Returns a cleanup function that disconnects all observers.
83
- */
84
- declare function hydrateProgressively(container: HTMLElement, islands: Record<string, () => HTMLElement>, options?: IntersectionObserverInit): () => void;
85
- /**
86
- * Reset SSR state between requests. Call at the start of each SSR render
87
- * to prevent ID drift in long-lived server processes.
88
- */
89
- declare function resetSSRState(): void;
90
- /**
91
- * Create a suspense boundary for SSR streaming.
92
- * Renders fallback HTML inline and returns a promise for the resolved content.
93
- *
94
- * The returned element contains the fallback UI with a `data-sibu-suspense-id`
95
- * marker. The promise resolves to `{ id, html }` once async content is ready.
96
- */
97
- declare function ssrSuspense(props: {
98
- fallback: () => HTMLElement;
99
- content: () => Promise<HTMLElement>;
100
- }): {
101
- element: HTMLElement;
102
- promise: Promise<{
103
- id: string;
104
- html: string;
105
- }>;
106
- };
107
- /**
108
- * Generate an inline script that swaps a suspense fallback with resolved content.
109
- * The id is escaped for both JS string and HTML attribute contexts to prevent injection.
110
- */
111
- declare function suspenseSwapScript(id: string, nonce?: string): string;
112
- /**
113
- * Renders a component tree with suspense boundaries as a stream.
114
- * Yields the main tree HTML first (including fallback content for suspended
115
- * boundaries), then flushes resolved content with inline swap scripts.
116
- */
117
- declare function renderToSuspenseStream(element: HTMLElement | DocumentFragment | Node, pendingBoundaries?: Promise<{
118
- id: string;
119
- html: string;
120
- }>[]): AsyncGenerator<string>;
121
- /**
122
- * Serialize application state into an HTML script tag for SSR.
123
- * The serialized data is embedded in the document and picked up
124
- * on the client with `deserializeState()`.
125
- */
126
- declare function serializeState(state: Record<string, unknown>, nonce?: string): string;
127
- /**
128
- * Retrieve state that was embedded by `serializeState()` during SSR.
129
- *
130
- * When a `validate` function is provided, it acts as a type guard —
131
- * only data that passes validation is returned. This prevents
132
- * tampered SSR payloads from being trusted by the client.
133
- *
134
- * @param validate Optional type guard to verify data integrity
135
- */
136
- declare function deserializeState<T = Record<string, unknown>>(validate?: (data: unknown) => data is T): T | undefined;
137
-
138
28
  interface UseWorkerReturn<TInput, TOutput> {
139
29
  post(data: TInput): void;
140
30
  result: () => TOutput | null;
@@ -481,4 +371,4 @@ declare function createMiddlewareChain(): {
481
371
  }) => Promise<void>;
482
372
  };
483
373
 
484
- export { type ActionFn, type ActionResult, Head, type ISROptions, type MicroApp, type MicroAppConfig, type MiddlewareFn, type SSGOptions, type SSGResult, type ScrollRestorationOptions, type ServiceWorkerState, type SharedScope, type UseWorkerFnReturn, type UseWorkerReturn, type WasmConfig, type WasmModuleState, type WorkerPool, clearWasmCache, collectStream, composeMiddleware, createAction, createISR, createMicroApp, createMiddlewareChain, createSharedScope, createWasmBridge, createWorkerPool, defineRemoteComponent, deserializeState, generateStaticSite, hydrate, hydrateIslands, hydrateProgressively, isWasmCached, island, loadRemoteModule, loadWasmModule, preloadWasm, renderToDocument, renderToReadableStream, renderToStream, renderToString, renderToSuspenseStream, resetSSRState, scrollRestoration, serializeState, serviceWorker, setCanonical, setStructuredData, ssrSuspense, suspenseSwapScript, wasm, worker, workerFn };
374
+ export { type ActionFn, type ActionResult, Head, type ISROptions, type MicroApp, type MicroAppConfig, type MiddlewareFn, type SSGOptions, type SSGResult, type ScrollRestorationOptions, type ServiceWorkerState, type SharedScope, type UseWorkerFnReturn, type UseWorkerReturn, type WasmConfig, type WasmModuleState, type WorkerPool, clearWasmCache, composeMiddleware, createAction, createISR, createMicroApp, createMiddlewareChain, createSharedScope, createWasmBridge, createWorkerPool, defineRemoteComponent, generateStaticSite, isWasmCached, loadRemoteModule, loadWasmModule, preloadWasm, scrollRestoration, serviceWorker, setCanonical, setStructuredData, wasm, worker, workerFn };
package/dist/ssr.js CHANGED
@@ -22,7 +22,7 @@ import {
22
22
  wasm,
23
23
  worker,
24
24
  workerFn
25
- } from "./chunk-MJ4LVHGX.js";
25
+ } from "./chunk-7V26P53V.js";
26
26
  import {
27
27
  collectStream,
28
28
  deserializeState,
@@ -38,10 +38,11 @@ import {
38
38
  resetSSRState,
39
39
  serializeState,
40
40
  ssrSuspense,
41
- suspenseSwapScript
42
- } from "./chunk-7TQKR4PP.js";
43
- import "./chunk-OWLQ4HZI.js";
44
- import "./chunk-QVKGGB2S.js";
41
+ suspenseSwapScript,
42
+ trustHTML
43
+ } from "./chunk-AZ3ISID5.js";
44
+ import "./chunk-EWFVA3TJ.js";
45
+ import "./chunk-MDVXJWFN.js";
45
46
  import "./chunk-SDLZDHKP.js";
46
47
  import "./chunk-PZEGYCF5.js";
47
48
  import "./chunk-CHJ27IGK.js";
@@ -84,6 +85,7 @@ export {
84
85
  setStructuredData,
85
86
  ssrSuspense,
86
87
  suspenseSwapScript,
88
+ trustHTML,
87
89
  wasm,
88
90
  worker,
89
91
  workerFn
@@ -1,5 +1,5 @@
1
- type NodeChild = Node | Element | Text | Comment | string | number | (() => NodeChild) | null | undefined;
2
- type NodeChildren = NodeChild | NodeChild[] | (() => string);
1
+ type NodeChild = Node | Element | Text | Comment | string | number | boolean | (() => NodeChild) | null | undefined;
2
+ type NodeChildren = NodeChild | NodeChild[] | NodeChild[][] | (() => NodeChild | NodeChild[]);
3
3
 
4
4
  declare const SVG_NS = "http://www.w3.org/2000/svg";
5
5
  interface TagProps {
@@ -1,5 +1,5 @@
1
- type NodeChild = Node | Element | Text | Comment | string | number | (() => NodeChild) | null | undefined;
2
- type NodeChildren = NodeChild | NodeChild[] | (() => string);
1
+ type NodeChild = Node | Element | Text | Comment | string | number | boolean | (() => NodeChild) | null | undefined;
2
+ type NodeChildren = NodeChild | NodeChild[] | NodeChild[][] | (() => NodeChild | NodeChild[]);
3
3
 
4
4
  declare const SVG_NS = "http://www.w3.org/2000/svg";
5
5
  interface TagProps {
package/dist/ui.cjs CHANGED
@@ -29,6 +29,7 @@ __export(ui_exports, {
29
29
  bindAttrs: () => bindAttrs,
30
30
  bindBoolAttr: () => bindBoolAttr,
31
31
  bindData: () => bindData,
32
+ bindField: () => bindField,
32
33
  composable: () => composable,
33
34
  compose: () => compose,
34
35
  createGuard: () => createGuard,
@@ -448,6 +449,34 @@ function max(maxVal, message) {
448
449
  function custom(fn, message) {
449
450
  return (value) => fn(value) ? null : message;
450
451
  }
452
+ function bindField(field, extras) {
453
+ const fieldOn = {
454
+ input: (e) => {
455
+ const target = e.target;
456
+ if (target.type === "checkbox") {
457
+ field.set(target.checked);
458
+ } else {
459
+ field.set(target.value);
460
+ }
461
+ },
462
+ change: (e) => {
463
+ const target = e.target;
464
+ if ("checked" in target && target.type === "checkbox") {
465
+ field.set(target.checked);
466
+ } else {
467
+ field.set(target.value);
468
+ }
469
+ },
470
+ blur: () => field.touch()
471
+ };
472
+ const { on: extraOn, value: _ignoreValue, ...restExtras } = extras ?? {};
473
+ const mergedOn = extraOn && typeof extraOn === "object" ? { ...fieldOn, ...extraOn } : fieldOn;
474
+ return {
475
+ value: field.value,
476
+ on: mergedOn,
477
+ ...restExtras
478
+ };
479
+ }
451
480
  function form(config) {
452
481
  const fieldEntries = Object.entries(config);
453
482
  const fieldMap = {};
@@ -862,10 +891,19 @@ function announce(message, priority = "polite") {
862
891
 
863
892
  // src/ui/scopedStyle.ts
864
893
  var scopeCounter = 0;
894
+ function sanitizeCSS(css) {
895
+ let sanitized = css.replace(/@import\s+[^;]+;/gi, "/* @import removed */");
896
+ sanitized = sanitized.replace(/url\s*\(\s*(?:"[^"]*"|'[^']*'|[^)]*)\s*\)/gi, "/* url() removed */");
897
+ sanitized = sanitized.replace(/expression\s*\(\s*(?:"[^"]*"|'[^']*'|[^)]*)\s*\)/gi, "/* expression() removed */");
898
+ sanitized = sanitized.replace(/-moz-binding\s*:[^;]+;/gi, "/* -moz-binding removed */");
899
+ sanitized = sanitized.replace(/behavior\s*:[^;]+;/gi, "/* behavior removed */");
900
+ return sanitized;
901
+ }
865
902
  function scopedStyle(css) {
866
903
  const id = `sibu-s${scopeCounter++}`;
867
904
  const attr = `data-${id}`;
868
- const scopedCSS = css.replace(/([^\r\n,{}]+)(,(?=[^}]*{)|\s*{)/g, (match, selector, delimiter) => {
905
+ const safeCss = sanitizeCSS(css);
906
+ const scopedCSS = safeCss.replace(/([^\r\n,{}]+)(,(?=[^}]*{)|\s*{)/g, (match, selector, delimiter) => {
869
907
  const trimmed = selector.trim();
870
908
  if (trimmed.startsWith("@") || trimmed.startsWith("from") || trimmed.startsWith("to") || /^\d+%$/.test(trimmed)) {
871
909
  return match;
@@ -1091,7 +1129,16 @@ function toast(options) {
1091
1129
  timers.delete(id);
1092
1130
  }
1093
1131
  }
1094
- return { toasts, show, dismiss, dismissAll };
1132
+ return {
1133
+ toasts,
1134
+ show,
1135
+ info: (message) => show(message, "info"),
1136
+ success: (message) => show(message, "success"),
1137
+ error: (message) => show(message, "error"),
1138
+ warning: (message) => show(message, "warning"),
1139
+ dismiss,
1140
+ dismissAll
1141
+ };
1095
1142
  }
1096
1143
 
1097
1144
  // src/ui/infiniteScroll.ts
@@ -1509,6 +1556,7 @@ function createGuard(validator) {
1509
1556
  bindAttrs,
1510
1557
  bindBoolAttr,
1511
1558
  bindData,
1559
+ bindField,
1512
1560
  composable,
1513
1561
  compose,
1514
1562
  createGuard,
package/dist/ui.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- export { C as CustomElementOptions, F as FieldConfig, a as FocusTrap, b as FormConfig, c as FormField, d as FormReturn, I as IntersectionResult, M as MaskOptions, T as Toast, V as ValidatorFn, e as VirtualList, f as VirtualListProps, g as announce, h as aria, i as bindAttrs, j as bindBoolAttr, k as bindData, l as creditCardMask, m as custom, n as dateMask, o as defineElement, p as dialog, q as email, r as eventBus, s as focus, t as form, u as hotkey, v as infiniteScroll, w as inputMask, x as intersection, y as lazyLoad, z as matchesPattern, A as max, B as maxLength, D as min, E as minLength, G as pagination, H as phoneMask, J as removeScopedStyle, K as required, L as scopedStyle, N as ssnMask, O as svgElement, P as timeMask, Q as toast, R as withScopedStyle, S as zipMask } from './customElement-BKQfbSZQ.cjs';
1
+ export { B as BoundFieldProps, C as CustomElementOptions, F as FieldConfig, a as FocusTrap, b as FormConfig, c as FormField, d as FormReturn, I as IntersectionResult, M as MaskOptions, T as Toast, e as ToastInstance, V as ValidatorFn, f as VirtualList, g as VirtualListProps, h as announce, i as aria, j as bindAttrs, k as bindBoolAttr, l as bindData, m as bindField, n as creditCardMask, o as custom, p as dateMask, q as defineElement, r as dialog, s as email, t as eventBus, u as focus, v as form, w as hotkey, x as infiniteScroll, y as inputMask, z as intersection, A as lazyLoad, D as matchesPattern, E as max, G as maxLength, H as min, J as minLength, K as pagination, L as phoneMask, N as removeScopedStyle, O as required, P as scopedStyle, Q as ssnMask, R as svgElement, S as timeMask, U as toast, W as withScopedStyle, X as zipMask } from './customElement-yz8uyk-0.cjs';
2
2
  export { C as ComponentProps, P as PropDef, a as PropSchema, R as RenderProp, V as Validator, b as assertType, c as composable, d as compose, e as createGuard, f as createSlots, g as defineComponent, h as defineSlottedComponent, i as defineStrictComponent, v as validateProps, j as validators, w as withBoundary, k as withDefaults, l as withProps, m as withWrapper } from './contracts-DOrhwbke.cjs';
3
3
 
4
4
  /**
package/dist/ui.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { C as CustomElementOptions, F as FieldConfig, a as FocusTrap, b as FormConfig, c as FormField, d as FormReturn, I as IntersectionResult, M as MaskOptions, T as Toast, V as ValidatorFn, e as VirtualList, f as VirtualListProps, g as announce, h as aria, i as bindAttrs, j as bindBoolAttr, k as bindData, l as creditCardMask, m as custom, n as dateMask, o as defineElement, p as dialog, q as email, r as eventBus, s as focus, t as form, u as hotkey, v as infiniteScroll, w as inputMask, x as intersection, y as lazyLoad, z as matchesPattern, A as max, B as maxLength, D as min, E as minLength, G as pagination, H as phoneMask, J as removeScopedStyle, K as required, L as scopedStyle, N as ssnMask, O as svgElement, P as timeMask, Q as toast, R as withScopedStyle, S as zipMask } from './customElement-BKQfbSZQ.js';
1
+ export { B as BoundFieldProps, C as CustomElementOptions, F as FieldConfig, a as FocusTrap, b as FormConfig, c as FormField, d as FormReturn, I as IntersectionResult, M as MaskOptions, T as Toast, e as ToastInstance, V as ValidatorFn, f as VirtualList, g as VirtualListProps, h as announce, i as aria, j as bindAttrs, k as bindBoolAttr, l as bindData, m as bindField, n as creditCardMask, o as custom, p as dateMask, q as defineElement, r as dialog, s as email, t as eventBus, u as focus, v as form, w as hotkey, x as infiniteScroll, y as inputMask, z as intersection, A as lazyLoad, D as matchesPattern, E as max, G as maxLength, H as min, J as minLength, K as pagination, L as phoneMask, N as removeScopedStyle, O as required, P as scopedStyle, Q as ssnMask, R as svgElement, S as timeMask, U as toast, W as withScopedStyle, X as zipMask } from './customElement-yz8uyk-0.js';
2
2
  export { C as ComponentProps, P as PropDef, a as PropSchema, R as RenderProp, V as Validator, b as assertType, c as composable, d as compose, e as createGuard, f as createSlots, g as defineComponent, h as defineSlottedComponent, i as defineStrictComponent, v as validateProps, j as validators, w as withBoundary, k as withDefaults, l as withProps, m as withWrapper } from './contracts-DOrhwbke.js';
3
3
 
4
4
  /**
package/dist/ui.js CHANGED
@@ -6,6 +6,7 @@ import {
6
6
  bindAttrs,
7
7
  bindBoolAttr,
8
8
  bindData,
9
+ bindField,
9
10
  creditCardMask,
10
11
  custom,
11
12
  dateMask,
@@ -36,7 +37,7 @@ import {
36
37
  toast,
37
38
  withScopedStyle,
38
39
  zipMask
39
- } from "./chunk-3CRQALYP.js";
40
+ } from "./chunk-DKOHBI74.js";
40
41
  import {
41
42
  RenderProp,
42
43
  assertType,
@@ -106,6 +107,7 @@ export {
106
107
  bindAttrs,
107
108
  bindBoolAttr,
108
109
  bindData,
110
+ bindField,
109
111
  composable,
110
112
  compose,
111
113
  createGuard,
package/dist/widgets.cjs CHANGED
@@ -824,26 +824,75 @@ function fileUpload(options) {
824
824
  function contentEditable() {
825
825
  const [content, setContent] = signal("");
826
826
  const [isFocused, setFocused] = signal(false);
827
- function execCommand(command, value) {
828
- if (typeof document !== "undefined" && document.execCommand) {
829
- document.execCommand(command, false, value ?? "");
827
+ function wrapSelection(tagName) {
828
+ if (typeof window === "undefined") return;
829
+ const selection = window.getSelection();
830
+ if (!selection || selection.rangeCount === 0 || selection.isCollapsed) return;
831
+ const range = selection.getRangeAt(0);
832
+ const ancestor = range.commonAncestorContainer;
833
+ const existingWrap = findAncestorByTag(
834
+ ancestor instanceof HTMLElement ? ancestor : ancestor.parentElement,
835
+ tagName
836
+ );
837
+ let targetNode = null;
838
+ if (existingWrap) {
839
+ const parent = existingWrap.parentNode;
840
+ if (parent) {
841
+ const firstChild = existingWrap.firstChild;
842
+ const lastChild = existingWrap.lastChild;
843
+ while (existingWrap.firstChild) {
844
+ parent.insertBefore(existingWrap.firstChild, existingWrap);
845
+ }
846
+ parent.removeChild(existingWrap);
847
+ if (firstChild && lastChild) {
848
+ const newRange = document.createRange();
849
+ newRange.setStartBefore(firstChild);
850
+ newRange.setEndAfter(lastChild);
851
+ selection.removeAllRanges();
852
+ selection.addRange(newRange);
853
+ return;
854
+ }
855
+ }
856
+ } else {
857
+ const wrapper = document.createElement(tagName);
858
+ try {
859
+ range.surroundContents(wrapper);
860
+ } catch {
861
+ const fragment = range.extractContents();
862
+ wrapper.appendChild(fragment);
863
+ range.insertNode(wrapper);
864
+ }
865
+ targetNode = wrapper;
866
+ }
867
+ if (targetNode) {
868
+ selection.removeAllRanges();
869
+ const newRange = document.createRange();
870
+ newRange.selectNodeContents(targetNode);
871
+ selection.addRange(newRange);
872
+ }
873
+ }
874
+ function findAncestorByTag(el, tagName) {
875
+ const upper = tagName.toUpperCase();
876
+ while (el) {
877
+ if (el.tagName === upper) return el;
878
+ el = el.parentElement;
830
879
  }
880
+ return null;
831
881
  }
832
882
  function bold() {
833
- execCommand("bold");
883
+ wrapSelection("strong");
834
884
  }
835
885
  function italic() {
836
- execCommand("italic");
886
+ wrapSelection("em");
837
887
  }
838
888
  function underline() {
839
- execCommand("underline");
889
+ wrapSelection("u");
840
890
  }
841
891
  return {
842
892
  content,
843
893
  setContent,
844
894
  isFocused,
845
895
  setFocused,
846
- execCommand,
847
896
  bold,
848
897
  italic,
849
898
  underline
@@ -127,14 +127,16 @@ declare function fileUpload(options?: FileUploadOptions): {
127
127
 
128
128
  /**
129
129
  * contentEditable provides reactive binding for contenteditable elements.
130
- * Commands call document.execCommand with browser API guards for Node environments.
130
+ *
131
+ * Uses the modern Selection/Range API instead of the deprecated
132
+ * document.execCommand. Formatting is applied by wrapping the current
133
+ * selection in the appropriate inline element.
131
134
  */
132
135
  declare function contentEditable(): {
133
136
  content: () => string;
134
137
  setContent: (html: string) => void;
135
138
  isFocused: () => boolean;
136
139
  setFocused: (v: boolean) => void;
137
- execCommand: (command: string, value?: string) => void;
138
140
  bold: () => void;
139
141
  italic: () => void;
140
142
  underline: () => void;
package/dist/widgets.d.ts CHANGED
@@ -127,14 +127,16 @@ declare function fileUpload(options?: FileUploadOptions): {
127
127
 
128
128
  /**
129
129
  * contentEditable provides reactive binding for contenteditable elements.
130
- * Commands call document.execCommand with browser API guards for Node environments.
130
+ *
131
+ * Uses the modern Selection/Range API instead of the deprecated
132
+ * document.execCommand. Formatting is applied by wrapping the current
133
+ * selection in the appropriate inline element.
131
134
  */
132
135
  declare function contentEditable(): {
133
136
  content: () => string;
134
137
  setContent: (html: string) => void;
135
138
  isFocused: () => boolean;
136
139
  setFocused: (v: boolean) => void;
137
- execCommand: (command: string, value?: string) => void;
138
140
  bold: () => void;
139
141
  italic: () => void;
140
142
  underline: () => void;
package/dist/widgets.js CHANGED
@@ -8,7 +8,7 @@ import {
8
8
  select,
9
9
  tabs,
10
10
  tooltip
11
- } from "./chunk-N6IZB6KJ.js";
11
+ } from "./chunk-PBHF5WKN.js";
12
12
  import "./chunk-CZUGLNJS.js";
13
13
  import "./chunk-FGOEVHY3.js";
14
14
  import "./chunk-CHJ27IGK.js";