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.
- package/LICENSE +21 -21
- package/dist/browser.cjs +18 -0
- package/dist/browser.d.cts +19 -1
- package/dist/browser.d.ts +19 -1
- package/dist/browser.js +5 -1
- package/dist/build.cjs +37 -8
- package/dist/build.js +3 -3
- package/dist/cdn.global.js +4 -4
- package/dist/{chunk-24WSRM54.js → chunk-32ZISOLJ.js} +35 -7
- package/dist/{chunk-ONCYDOK6.js → chunk-4EI4AG32.js} +17 -1
- package/dist/{chunk-MJ4LVHGX.js → chunk-7V26P53V.js} +1 -1
- package/dist/{chunk-7TQKR4PP.js → chunk-AZ3ISID5.js} +4 -0
- package/dist/{chunk-3CRQALYP.js → chunk-DKOHBI74.js} +49 -2
- package/dist/{chunk-6JGMNCD6.js → chunk-EWFVA3TJ.js} +1 -1
- package/dist/{chunk-HS6OOE3Q.js → chunk-G3BOQPVO.js} +1 -1
- package/dist/{chunk-QVKGGB2S.js → chunk-MDVXJWFN.js} +7 -3
- package/dist/{chunk-DZZMIMGL.js → chunk-OF7UZIVB.js} +1 -1
- package/dist/{chunk-N6IZB6KJ.js → chunk-PBHF5WKN.js} +56 -7
- package/dist/{chunk-OHQQWZ7P.js → chunk-QBMDLBU2.js} +10 -4
- package/dist/{customElement-BKQfbSZQ.d.cts → customElement-yz8uyk-0.d.cts} +52 -6
- package/dist/{customElement-BKQfbSZQ.d.ts → customElement-yz8uyk-0.d.ts} +52 -6
- package/dist/data.cjs +10 -4
- package/dist/data.d.cts +2 -0
- package/dist/data.d.ts +2 -0
- package/dist/data.js +1 -1
- package/dist/ecosystem.cjs +7 -3
- package/dist/ecosystem.d.cts +1 -1
- package/dist/ecosystem.d.ts +1 -1
- package/dist/ecosystem.js +2 -2
- package/dist/extras.cjs +146 -16
- package/dist/extras.d.cts +5 -4
- package/dist/extras.d.ts +5 -4
- package/dist/extras.js +19 -11
- package/dist/index.cjs +40 -8
- package/dist/index.d.cts +48 -4
- package/dist/index.d.ts +48 -4
- package/dist/index.js +9 -3
- package/dist/patterns.d.cts +8 -2
- package/dist/patterns.d.ts +8 -2
- package/dist/plugins.cjs +149 -4
- package/dist/plugins.d.cts +39 -3
- package/dist/plugins.d.ts +39 -3
- package/dist/plugins.js +121 -5
- package/dist/{ssr-WKUPVSSK.js → ssr-6GIMY5MX.js} +5 -3
- package/dist/ssr-BA6sxxUd.d.cts +135 -0
- package/dist/ssr-BA6sxxUd.d.ts +135 -0
- package/dist/ssr.cjs +12 -3
- package/dist/ssr.d.cts +3 -113
- package/dist/ssr.d.ts +3 -113
- package/dist/ssr.js +7 -5
- package/dist/{tagFactory-D9e0QGIE.d.cts → tagFactory-Dl8QCLga.d.cts} +2 -2
- package/dist/{tagFactory-D9e0QGIE.d.ts → tagFactory-Dl8QCLga.d.ts} +2 -2
- package/dist/ui.cjs +50 -2
- package/dist/ui.d.cts +1 -1
- package/dist/ui.d.ts +1 -1
- package/dist/ui.js +3 -1
- package/dist/widgets.cjs +56 -7
- package/dist/widgets.d.cts +4 -2
- package/dist/widgets.d.ts +4 -2
- package/dist/widgets.js +1 -1
- package/package.json +139 -139
- package/dist/chunk-27QC4FPL.js +0 -67
- package/dist/chunk-2ABBWCGC.js +0 -65
- package/dist/chunk-2GLUWW3D.js +0 -567
- package/dist/chunk-2HYHL6VW.js +0 -269
- package/dist/chunk-2MUNQYZ7.js +0 -26
- package/dist/chunk-2PFRWZIE.js +0 -65
- package/dist/chunk-2PSPKNUI.js +0 -1711
- package/dist/chunk-2X5NDXNG.js +0 -877
- package/dist/chunk-34TOFKL7.js +0 -1803
- package/dist/chunk-353KB3DI.js +0 -271
- package/dist/chunk-35CDLDX5.js +0 -1758
- package/dist/chunk-36MU4CFV.js +0 -41
- package/dist/chunk-37NSPDPQ.js +0 -284
- package/dist/chunk-3CSF4TOG.js +0 -282
- package/dist/chunk-3FIQOFI6.js +0 -182
- package/dist/chunk-3GHNC2BN.js +0 -28
- package/dist/chunk-3GZTRYSY.js +0 -33
- package/dist/chunk-3HLWWEPU.js +0 -909
- package/dist/chunk-3IVI3J54.js +0 -252
- package/dist/chunk-3KZ72WNW.js +0 -944
- package/dist/chunk-4AU64SQV.js +0 -182
- package/dist/chunk-4MOK7HAR.js +0 -84
- package/dist/chunk-4QK6FBDH.js +0 -1429
- package/dist/chunk-526ENZ77.js +0 -58
- package/dist/chunk-566Z7HXB.js +0 -737
- package/dist/chunk-5CRBB7XP.js +0 -358
- package/dist/chunk-5G67D3IZ.js +0 -168
- package/dist/chunk-5KBEED6D.js +0 -361
- package/dist/chunk-5LJMSKBB.js +0 -26
- package/dist/chunk-5M7LJFWV.js +0 -271
- package/dist/chunk-5NCPAWBE.js +0 -99
- package/dist/chunk-5O2RKXR3.js +0 -1444
- package/dist/chunk-5OCBERWW.js +0 -1094
- package/dist/chunk-5XUAA53E.js +0 -99
- package/dist/chunk-5ZFVYPDG.js +0 -97
- package/dist/chunk-6BCDNGIH.js +0 -1839
- package/dist/chunk-6BDUQJ7K.js +0 -949
- package/dist/chunk-6BTBDO6A.js +0 -633
- package/dist/chunk-6DJQF4Z7.js +0 -33
- package/dist/chunk-6EYXAMBN.js +0 -1857
- package/dist/chunk-6IWEHW57.js +0 -43
- package/dist/chunk-6J6S4NI7.js +0 -398
- package/dist/chunk-6NBHAKHS.js +0 -1997
- package/dist/chunk-6QRLJNXR.js +0 -1425
- package/dist/chunk-6SNF5MZK.js +0 -282
- package/dist/chunk-7FYJUE77.js +0 -282
- package/dist/chunk-7HM5UE5T.js +0 -270
- package/dist/chunk-7JOLTGUH.js +0 -58
- package/dist/chunk-7LS3ITZB.js +0 -567
- package/dist/chunk-7MCWJCQK.js +0 -909
- package/dist/chunk-7RIIFP3E.js +0 -1758
- package/dist/chunk-7UASYN3G.js +0 -254
- package/dist/chunk-7W2WYHDI.js +0 -741
- package/dist/chunk-7XFBKLFB.js +0 -90
- package/dist/chunk-7Y35RDSJ.js +0 -872
- package/dist/chunk-A65GFJBL.js +0 -65
- package/dist/chunk-AD6ZIEDK.js +0 -67
- package/dist/chunk-AIPXZK5O.js +0 -295
- package/dist/chunk-AK5Y72F3.js +0 -1426
- package/dist/chunk-ANRSGGFC.js +0 -725
- package/dist/chunk-APOMMWH4.js +0 -282
- package/dist/chunk-ARZVTWIQ.js +0 -1750
- package/dist/chunk-AWWBM2BI.js +0 -664
- package/dist/chunk-AX5VEQTY.js +0 -58
- package/dist/chunk-AYTXVOW3.js +0 -1708
- package/dist/chunk-B4ASD5VC.js +0 -295
- package/dist/chunk-BG3HMX4C.js +0 -271
- package/dist/chunk-BG4A246G.js +0 -1746
- package/dist/chunk-BNFJJA2L.js +0 -1425
- package/dist/chunk-BPKPBVU5.js +0 -59
- package/dist/chunk-BPKPPSXC.js +0 -282
- package/dist/chunk-BPWKKK7F.js +0 -1711
- package/dist/chunk-BS5EYKCJ.js +0 -26
- package/dist/chunk-BS6ETCJ7.js +0 -949
- package/dist/chunk-BTTBAGD3.js +0 -365
- package/dist/chunk-BWBWJYBK.js +0 -271
- package/dist/chunk-CCKX6YTC.js +0 -1735
- package/dist/chunk-CIF5Z3MP.js +0 -58
- package/dist/chunk-CQNVF2FD.js +0 -282
- package/dist/chunk-CRTHZHU7.js +0 -26
- package/dist/chunk-CSXYU7IO.js +0 -457
- package/dist/chunk-D6JD4FDC.js +0 -26
- package/dist/chunk-DAUTHAYH.js +0 -20
- package/dist/chunk-DB243LB7.js +0 -877
- package/dist/chunk-DEQLPROY.js +0 -1094
- package/dist/chunk-DGUYCZJH.js +0 -654
- package/dist/chunk-DI3Z32TV.js +0 -1780
- package/dist/chunk-DKGHW6MX.js +0 -90
- package/dist/chunk-DKXVN442.js +0 -90
- package/dist/chunk-DLWLJZB3.js +0 -712
- package/dist/chunk-DNTTC4V5.js +0 -1803
- package/dist/chunk-DTCOOBMX.js +0 -725
- package/dist/chunk-DWQQ2GZK.js +0 -1787
- package/dist/chunk-E5SMAKQQ.js +0 -336
- package/dist/chunk-E6BNBVMK.js +0 -457
- package/dist/chunk-E7NGA7X2.js +0 -59
- package/dist/chunk-EEPPJKAE.js +0 -443
- package/dist/chunk-EGZGFIXV.js +0 -90
- package/dist/chunk-EJMSUPXQ.js +0 -346
- package/dist/chunk-EJMYGAGQ.js +0 -717
- package/dist/chunk-EL6Z5MDY.js +0 -55
- package/dist/chunk-EP7VRLEB.js +0 -41
- package/dist/chunk-EQACK65C.js +0 -63
- package/dist/chunk-ESPA7SCH.js +0 -567
- package/dist/chunk-ETMEC6FH.js +0 -99
- package/dist/chunk-EUFENPGJ.js +0 -290
- package/dist/chunk-EZ2WHYVL.js +0 -65
- package/dist/chunk-EZRVMSZK.js +0 -67
- package/dist/chunk-F25CZRUH.js +0 -282
- package/dist/chunk-F2TRGINX.js +0 -254
- package/dist/chunk-F4IYF3YU.js +0 -266
- package/dist/chunk-F5JCIH3Q.js +0 -642
- package/dist/chunk-FBNDOAHU.js +0 -54
- package/dist/chunk-FDRU7W6W.js +0 -365
- package/dist/chunk-FDW3E54J.js +0 -1767
- package/dist/chunk-FEPU4KL6.js +0 -63
- package/dist/chunk-FGK3JKMN.js +0 -909
- package/dist/chunk-FQWPKSTD.js +0 -1437
- package/dist/chunk-FWHVLMCI.js +0 -26
- package/dist/chunk-FYIGTFXO.js +0 -712
- package/dist/chunk-G4AX3DQ4.js +0 -54
- package/dist/chunk-GBEYQRO2.js +0 -303
- package/dist/chunk-GBLES3NK.js +0 -248
- package/dist/chunk-GQVGUQW6.js +0 -1436
- package/dist/chunk-GVDEIJ3G.js +0 -291
- package/dist/chunk-GXIM4TC3.js +0 -346
- package/dist/chunk-GY5AAP4H.js +0 -316
- package/dist/chunk-HCV2T76T.js +0 -457
- package/dist/chunk-HCWPQCZP.js +0 -279
- package/dist/chunk-HFHOFG6W.js +0 -282
- package/dist/chunk-HGKEBAW3.js +0 -63
- package/dist/chunk-HJNW3HLI.js +0 -255
- package/dist/chunk-HKUNBYN6.js +0 -949
- package/dist/chunk-HRIIH4JX.js +0 -712
- package/dist/chunk-HS7ZKVPR.js +0 -182
- package/dist/chunk-HXDVV7HZ.js +0 -909
- package/dist/chunk-HZWNWUPJ.js +0 -466
- package/dist/chunk-I6EZTMPB.js +0 -949
- package/dist/chunk-IB23VMO3.js +0 -1746
- package/dist/chunk-IC4K4EOD.js +0 -26
- package/dist/chunk-IEMZ7RTT.js +0 -99
- package/dist/chunk-IJU6TOZ6.js +0 -65
- package/dist/chunk-IK3NFZOA.js +0 -466
- package/dist/chunk-IPGRSN42.js +0 -1750
- package/dist/chunk-IVMOK2QN.js +0 -1750
- package/dist/chunk-J7PD6L4B.js +0 -1767
- package/dist/chunk-JCLGQO7T.js +0 -443
- package/dist/chunk-JDXL7KDB.js +0 -1436
- package/dist/chunk-JIIFW636.js +0 -270
- package/dist/chunk-JLOASJXU.js +0 -654
- package/dist/chunk-JRWAHOMS.js +0 -41
- package/dist/chunk-JWGEEH7H.js +0 -944
- package/dist/chunk-K2BESAG7.js +0 -1688
- package/dist/chunk-K2U5YGF4.js +0 -877
- package/dist/chunk-K45FQ4Y4.js +0 -175
- package/dist/chunk-K7BPE427.js +0 -1432
- package/dist/chunk-K7JUDY3C.js +0 -364
- package/dist/chunk-KALKXPC3.js +0 -297
- package/dist/chunk-KKUV25KB.js +0 -361
- package/dist/chunk-KKV3DOAW.js +0 -466
- package/dist/chunk-KL3266RS.js +0 -26
- package/dist/chunk-KNN4P7DZ.js +0 -84
- package/dist/chunk-KP2DZH5Q.js +0 -254
- package/dist/chunk-KZHAJSQR.js +0 -1636
- package/dist/chunk-L36YN45V.js +0 -949
- package/dist/chunk-L5IBT37O.js +0 -263
- package/dist/chunk-LAX5H35R.js +0 -90
- package/dist/chunk-LBKGHMQV.js +0 -1750
- package/dist/chunk-LBTEPL7A.js +0 -1731
- package/dist/chunk-LEBBPTDB.js +0 -1444
- package/dist/chunk-LHI25KS2.js +0 -654
- package/dist/chunk-LHNJSLC6.js +0 -297
- package/dist/chunk-LLH63WVQ.js +0 -98
- package/dist/chunk-LWNJN3IW.js +0 -295
- package/dist/chunk-LWVR2C4G.js +0 -1711
- package/dist/chunk-M3MDTVV2.js +0 -896
- package/dist/chunk-M3QSBCXC.js +0 -52
- package/dist/chunk-M3ZKZQNY.js +0 -282
- package/dist/chunk-M5GNLDEO.js +0 -303
- package/dist/chunk-MBINISSE.js +0 -35
- package/dist/chunk-MFHVGKET.js +0 -267
- package/dist/chunk-MGWSG3PM.js +0 -358
- package/dist/chunk-MGYRVG2A.js +0 -282
- package/dist/chunk-MJNB47HB.js +0 -19
- package/dist/chunk-MLN3JZ2E.js +0 -398
- package/dist/chunk-MM46JVR2.js +0 -359
- package/dist/chunk-MQWTY3JY.js +0 -944
- package/dist/chunk-MWE3PK5S.js +0 -551
- package/dist/chunk-MXR7LXGC.js +0 -1084
- package/dist/chunk-MZZOQHNI.js +0 -642
- package/dist/chunk-N6BRVUAP.js +0 -1805
- package/dist/chunk-N7UVR6SG.js +0 -877
- package/dist/chunk-NIHWGZS4.js +0 -1426
- package/dist/chunk-NMTRH4Q3.js +0 -97
- package/dist/chunk-NSVVHQK5.js +0 -41
- package/dist/chunk-NVI2WE7D.js +0 -443
- package/dist/chunk-NZNNXPEE.js +0 -56
- package/dist/chunk-O7QBO3PH.js +0 -58
- package/dist/chunk-OAUPQBO2.js +0 -270
- package/dist/chunk-OB2LMD7C.js +0 -297
- package/dist/chunk-OEGAHDEU.js +0 -1094
- package/dist/chunk-OHEYBWQU.js +0 -58
- package/dist/chunk-OI5B74HF.js +0 -26
- package/dist/chunk-OI6OXUHJ.js +0 -443
- package/dist/chunk-ONOO74UN.js +0 -361
- package/dist/chunk-OWLQ4HZI.js +0 -282
- package/dist/chunk-OX2VMRMV.js +0 -633
- package/dist/chunk-OXYMB6VB.js +0 -466
- package/dist/chunk-OZS4YOOP.js +0 -59
- package/dist/chunk-P4FYE5TX.js +0 -866
- package/dist/chunk-P5KFWM4H.js +0 -98
- package/dist/chunk-PLFQZ7SS.js +0 -90
- package/dist/chunk-PMVU6BI4.js +0 -1847
- package/dist/chunk-PPNH4Y6U.js +0 -282
- package/dist/chunk-PUMLE7RJ.js +0 -1711
- package/dist/chunk-Q4MFANBF.js +0 -282
- package/dist/chunk-Q54YZ4X3.js +0 -26
- package/dist/chunk-Q6XACQW3.js +0 -1847
- package/dist/chunk-QI6ZDDUR.js +0 -35
- package/dist/chunk-QJ5KLY2S.js +0 -1821
- package/dist/chunk-QLEKZMMU.js +0 -282
- package/dist/chunk-QLNWSBWK.js +0 -567
- package/dist/chunk-QQS7BSPA.js +0 -26
- package/dist/chunk-QUGIYF3F.js +0 -712
- package/dist/chunk-QYSW3K7A.js +0 -282
- package/dist/chunk-QZWTKX5K.js +0 -321
- package/dist/chunk-RGGNGVO3.js +0 -98
- package/dist/chunk-RKJDRVV6.js +0 -443
- package/dist/chunk-RUAJTILD.js +0 -26
- package/dist/chunk-S5BHU353.js +0 -43
- package/dist/chunk-S6YEHFC7.js +0 -654
- package/dist/chunk-SHQUSFH7.js +0 -1426
- package/dist/chunk-SMB4DBMD.js +0 -182
- package/dist/chunk-SNYHQP3D.js +0 -743
- package/dist/chunk-SR2DPCTT.js +0 -1803
- package/dist/chunk-SU63HSUU.js +0 -58
- package/dist/chunk-SXXKZJI2.js +0 -303
- package/dist/chunk-T24L3TBF.js +0 -1717
- package/dist/chunk-T2SPHHYU.js +0 -365
- package/dist/chunk-TAQNSOKT.js +0 -692
- package/dist/chunk-TBA46SVX.js +0 -1805
- package/dist/chunk-TCWKKKPP.js +0 -90
- package/dist/chunk-TDNY4SUA.js +0 -41
- package/dist/chunk-TK4P3V5G.js +0 -56
- package/dist/chunk-TNNF56IQ.js +0 -1750
- package/dist/chunk-TR7E6LYX.js +0 -457
- package/dist/chunk-TVV4JK5G.js +0 -282
- package/dist/chunk-UATXXETW.js +0 -278
- package/dist/chunk-UHFUQWST.js +0 -65
- package/dist/chunk-UKDBQVM3.js +0 -346
- package/dist/chunk-URWUFH45.js +0 -98
- package/dist/chunk-USPT25TC.js +0 -365
- package/dist/chunk-UUSIH3XH.js +0 -1429
- package/dist/chunk-UXDIPRCG.js +0 -26
- package/dist/chunk-UYFNXLKR.js +0 -1436
- package/dist/chunk-UZZFP2EE.js +0 -35
- package/dist/chunk-V4G5Y6YM.js +0 -1094
- package/dist/chunk-V6F7KUWD.js +0 -270
- package/dist/chunk-V6P4LDAV.js +0 -65
- package/dist/chunk-VAA4FG3Z.js +0 -365
- package/dist/chunk-VCZLXRMR.js +0 -254
- package/dist/chunk-VDHXSSBT.js +0 -1426
- package/dist/chunk-VI4KRBSU.js +0 -291
- package/dist/chunk-VM4QMKVK.js +0 -254
- package/dist/chunk-VUXB655T.js +0 -1999
- package/dist/chunk-VWGYKYL2.js +0 -737
- package/dist/chunk-VX2OFBJN.js +0 -1426
- package/dist/chunk-VXVIE6DG.js +0 -84
- package/dist/chunk-W3QH7BF5.js +0 -282
- package/dist/chunk-W4OH7HG4.js +0 -40
- package/dist/chunk-WBVJX4GZ.js +0 -98
- package/dist/chunk-WDU2ZV4I.js +0 -1426
- package/dist/chunk-WGCQNOEQ.js +0 -712
- package/dist/chunk-WZQNHS4J.js +0 -52
- package/dist/chunk-X6VUCICU.js +0 -457
- package/dist/chunk-XAY7FM7Y.js +0 -618
- package/dist/chunk-XFW7B23S.js +0 -282
- package/dist/chunk-XJ3MNGY5.js +0 -58
- package/dist/chunk-XJZ5Z2CM.js +0 -642
- package/dist/chunk-XKVFQTJJ.js +0 -254
- package/dist/chunk-XRLFASCY.js +0 -22
- package/dist/chunk-XZGY5ZJ4.js +0 -35
- package/dist/chunk-Y745CBVB.js +0 -944
- package/dist/chunk-YLBJSXYY.js +0 -944
- package/dist/chunk-YQJIKVPZ.js +0 -1429
- package/dist/chunk-YRM2VCZF.js +0 -457
- package/dist/chunk-YS33KBVJ.js +0 -944
- package/dist/chunk-Z27DZPDG.js +0 -41
- package/dist/chunk-Z6GZHJW5.js +0 -877
- package/dist/chunk-ZXQ5NAEN.js +0 -32
- package/dist/contracts-B552GopR.d.cts +0 -245
- package/dist/contracts-B552GopR.d.ts +0 -245
- package/dist/contracts-Bg1ECISC.d.cts +0 -245
- package/dist/contracts-Bg1ECISC.d.ts +0 -245
- package/dist/contracts-CMriKJ6P.d.cts +0 -245
- package/dist/contracts-CMriKJ6P.d.ts +0 -245
- package/dist/src/components/ErrorBoundary.d.ts +0 -15
- package/dist/src/components/ErrorBoundary.js +0 -119
- package/dist/src/core/catch.d.ts +0 -11
- package/dist/src/core/catch.js +0 -28
- package/dist/src/core/each.d.ts +0 -13
- package/dist/src/core/each.js +0 -68
- package/dist/src/core/for.d.ts +0 -12
- package/dist/src/core/for.js +0 -67
- package/dist/src/core/html.d.ts +0 -137
- package/dist/src/core/html.js +0 -155
- package/dist/src/core/htmlIf.d.ts +0 -11
- package/dist/src/core/htmlIf.js +0 -18
- package/dist/src/core/lazy.d.ts +0 -7
- package/dist/src/core/lazy.js +0 -16
- package/dist/src/core/mount.d.ts +0 -7
- package/dist/src/core/mount.js +0 -12
- package/dist/src/core/slots.d.ts +0 -3
- package/dist/src/core/slots.js +0 -3
- package/dist/src/core/suspense.d.ts +0 -10
- package/dist/src/core/suspense.js +0 -33
- package/dist/src/core/tagFactory.d.ts +0 -13
- package/dist/src/core/tagFactory.js +0 -86
- package/dist/src/core/test.d.ts +0 -11
- package/dist/src/core/test.js +0 -28
- package/dist/src/core/types.d.ts +0 -2
- package/dist/src/core/types.js +0 -1
- package/dist/src/core/useComputed.d.ts +0 -6
- package/dist/src/core/useComputed.js +0 -30
- package/dist/src/core/useEffect.d.ts +0 -6
- package/dist/src/core/useEffect.js +0 -23
- package/dist/src/core/useState.d.ts +0 -10
- package/dist/src/core/useState.js +0 -34
- package/dist/src/core/useStore.d.ts +0 -19
- package/dist/src/core/useStore.js +0 -53
- package/dist/src/core/useWatch.d.ts +0 -8
- package/dist/src/core/useWatch.js +0 -23
- package/dist/src/plugins/i18n.d.ts +0 -6
- package/dist/src/plugins/i18n.js +0 -16
- package/dist/src/plugins/router.d.ts +0 -188
- package/dist/src/plugins/router.js +0 -1178
- package/dist/src/reactivity/bindAttribute.d.ts +0 -5
- package/dist/src/reactivity/bindAttribute.js +0 -31
- package/dist/src/reactivity/bindChildNode.d.ts +0 -10
- package/dist/src/reactivity/bindChildNode.js +0 -46
- package/dist/src/reactivity/bindTextNode.d.ts +0 -10
- package/dist/src/reactivity/bindTextNode.js +0 -27
- package/dist/src/reactivity/signal.d.ts +0 -3
- package/dist/src/reactivity/signal.js +0 -1
- package/dist/src/reactivity/track.d.ts +0 -18
- package/dist/src/reactivity/track.js +0 -73
- package/dist/src/reactivity/useComputed.d.ts +0 -6
- package/dist/src/reactivity/useComputed.js +0 -30
- package/dist/src/reactivity/useEffect.d.ts +0 -6
- package/dist/src/reactivity/useEffect.js +0 -23
- package/dist/src/reactivity/useState.d.ts +0 -10
- package/dist/src/reactivity/useState.js +0 -34
- package/dist/src/reactivity/useStore.d.ts +0 -19
- package/dist/src/reactivity/useStore.js +0 -53
- package/dist/src/reactivity/useWatch.d.ts +0 -8
- package/dist/src/reactivity/useWatch.js +0 -23
- package/dist/src/utils/sanitize.d.ts +0 -1
- package/dist/src/utils/sanitize.js +0 -8
- package/dist/ssr-27FOM46T.js +0 -35
- package/dist/ssr-GEOEYQV7.js +0 -35
- package/dist/ssr-GFUTTSJD.js +0 -22
- package/dist/ssr-K7DCR6BZ.js +0 -35
- package/dist/ssr-NFAIHWJJ.js +0 -35
- package/dist/ssr-O6LFMRFP.js +0 -35
- package/dist/ssr-QZEVGMMK.js +0 -35
- package/dist/ssr-SGVBCAGC.js +0 -35
- package/dist/ssr-UB2IXCYX.js +0 -35
- package/dist/ssr-XBZQNV4O.js +0 -22
- package/dist/ssr-Y76FSXDU.js +0 -35
- package/dist/ssr-YQJ4AYBD.js +0 -35
- package/dist/tagFactory-BDN7gDEp.d.cts +0 -21
- package/dist/tagFactory-BDN7gDEp.d.ts +0 -21
- package/dist/tagFactory-CZPO4RXF.d.cts +0 -34
- package/dist/tagFactory-CZPO4RXF.d.ts +0 -34
- package/dist/tagFactory-CgImPVMY.d.cts +0 -22
- package/dist/tagFactory-CgImPVMY.d.ts +0 -22
- package/dist/tagFactory-Cw1iv5if.d.cts +0 -22
- package/dist/tagFactory-Cw1iv5if.d.ts +0 -22
- package/dist/tagFactory-DeAXq9ef.d.cts +0 -30
- package/dist/tagFactory-DeAXq9ef.d.ts +0 -30
- package/dist/tagFactory-SkY0a7L1.d.cts +0 -22
- package/dist/tagFactory-SkY0a7L1.d.ts +0 -22
package/dist/index.cjs
CHANGED
|
@@ -37,6 +37,7 @@ __export(index_exports, {
|
|
|
37
37
|
article: () => article,
|
|
38
38
|
aside: () => aside,
|
|
39
39
|
audio: () => audio,
|
|
40
|
+
autoResize: () => autoResize,
|
|
40
41
|
b: () => b,
|
|
41
42
|
base: () => base,
|
|
42
43
|
batch: () => batch,
|
|
@@ -61,6 +62,7 @@ __export(index_exports, {
|
|
|
61
62
|
col: () => col,
|
|
62
63
|
colgroup: () => colgroup,
|
|
63
64
|
context: () => context,
|
|
65
|
+
copyOnClick: () => copyOnClick,
|
|
64
66
|
customElement: () => customElement,
|
|
65
67
|
data: () => data,
|
|
66
68
|
datalist: () => datalist,
|
|
@@ -138,6 +140,7 @@ __export(index_exports, {
|
|
|
138
140
|
object: () => object,
|
|
139
141
|
ol: () => ol,
|
|
140
142
|
on: () => on,
|
|
143
|
+
onCleanup: () => onCleanup,
|
|
141
144
|
onMount: () => onMount,
|
|
142
145
|
onUnmount: () => onUnmount,
|
|
143
146
|
optgroup: () => optgroup,
|
|
@@ -602,7 +605,7 @@ function bindChildNode(placeholder, getter) {
|
|
|
602
605
|
const node = lastNodes[i2];
|
|
603
606
|
if (node.parentNode) node.parentNode.removeChild(node);
|
|
604
607
|
}
|
|
605
|
-
if (result == null) {
|
|
608
|
+
if (result == null || typeof result === "boolean") {
|
|
606
609
|
lastNodes.length = 0;
|
|
607
610
|
return;
|
|
608
611
|
}
|
|
@@ -617,6 +620,7 @@ function bindChildNode(placeholder, getter) {
|
|
|
617
620
|
if (lastNodes.length < result.length) lastNodes = new Array(result.length);
|
|
618
621
|
for (let i2 = 0; i2 < result.length; i2++) {
|
|
619
622
|
const item = result[i2];
|
|
623
|
+
if (item == null || typeof item === "boolean") continue;
|
|
620
624
|
const node = item instanceof Node ? item : document.createTextNode(String(item));
|
|
621
625
|
parent.insertBefore(node, anchor);
|
|
622
626
|
lastNodes[count++] = node;
|
|
@@ -761,6 +765,9 @@ function appendChildren(el, nodes) {
|
|
|
761
765
|
el.textContent = String(nodes);
|
|
762
766
|
return;
|
|
763
767
|
}
|
|
768
|
+
if (typeof nodes === "boolean" || nodes == null) {
|
|
769
|
+
return;
|
|
770
|
+
}
|
|
764
771
|
if (typeof nodes === "function") {
|
|
765
772
|
const ph = document.createComment("");
|
|
766
773
|
el.appendChild(ph);
|
|
@@ -789,11 +796,11 @@ function appendChildren(el, nodes) {
|
|
|
789
796
|
registerDisposer(el, bindChildNode(ph, inner));
|
|
790
797
|
} else if (inner instanceof Node) {
|
|
791
798
|
el.appendChild(inner);
|
|
792
|
-
} else if (inner != null) {
|
|
799
|
+
} else if (inner != null && typeof inner !== "boolean") {
|
|
793
800
|
el.appendChild(document.createTextNode(String(inner)));
|
|
794
801
|
}
|
|
795
802
|
}
|
|
796
|
-
} else if (c != null) {
|
|
803
|
+
} else if (c != null && typeof c !== "boolean") {
|
|
797
804
|
el.appendChild(document.createTextNode(String(c)));
|
|
798
805
|
}
|
|
799
806
|
}
|
|
@@ -1262,11 +1269,11 @@ function executeElement(tmpl, values) {
|
|
|
1262
1269
|
const item = val[j];
|
|
1263
1270
|
if (item instanceof Node) {
|
|
1264
1271
|
el.appendChild(item);
|
|
1265
|
-
} else if (item != null) {
|
|
1272
|
+
} else if (item != null && typeof item !== "boolean") {
|
|
1266
1273
|
el.appendChild(document.createTextNode(String(item)));
|
|
1267
1274
|
}
|
|
1268
1275
|
}
|
|
1269
|
-
} else if (val != null) {
|
|
1276
|
+
} else if (val != null && typeof val !== "boolean") {
|
|
1270
1277
|
el.appendChild(document.createTextNode(String(val)));
|
|
1271
1278
|
}
|
|
1272
1279
|
break;
|
|
@@ -1307,11 +1314,11 @@ function html2(strings, ...values) {
|
|
|
1307
1314
|
const item = val[j];
|
|
1308
1315
|
if (item instanceof Node) {
|
|
1309
1316
|
wrapper.appendChild(item);
|
|
1310
|
-
} else if (item != null) {
|
|
1317
|
+
} else if (item != null && typeof item !== "boolean") {
|
|
1311
1318
|
wrapper.appendChild(document.createTextNode(String(item)));
|
|
1312
1319
|
}
|
|
1313
1320
|
}
|
|
1314
|
-
} else if (val != null) {
|
|
1321
|
+
} else if (val != null && typeof val !== "boolean") {
|
|
1315
1322
|
wrapper.appendChild(document.createTextNode(String(val)));
|
|
1316
1323
|
}
|
|
1317
1324
|
break;
|
|
@@ -1537,9 +1544,10 @@ function each(getArray, render, options) {
|
|
|
1537
1544
|
function Fragment(nodes) {
|
|
1538
1545
|
const frag = document.createDocumentFragment();
|
|
1539
1546
|
for (const child of nodes) {
|
|
1540
|
-
if (child == null) continue;
|
|
1547
|
+
if (child == null || typeof child === "boolean") continue;
|
|
1541
1548
|
if (Array.isArray(child)) {
|
|
1542
1549
|
for (const nested of child) {
|
|
1550
|
+
if (nested == null || typeof nested === "boolean") continue;
|
|
1543
1551
|
frag.appendChild(resolveChild(nested));
|
|
1544
1552
|
}
|
|
1545
1553
|
} else {
|
|
@@ -1805,6 +1813,24 @@ var longPress = (element, options) => {
|
|
|
1805
1813
|
element.removeEventListener("pointerleave", cancel);
|
|
1806
1814
|
};
|
|
1807
1815
|
};
|
|
1816
|
+
var copyOnClick = (element, getText) => {
|
|
1817
|
+
const handler = () => {
|
|
1818
|
+
const text2 = typeof getText === "function" ? getText() : element.textContent ?? "";
|
|
1819
|
+
navigator.clipboard.writeText(text2);
|
|
1820
|
+
};
|
|
1821
|
+
element.addEventListener("click", handler);
|
|
1822
|
+
return () => element.removeEventListener("click", handler);
|
|
1823
|
+
};
|
|
1824
|
+
var autoResize = (element) => {
|
|
1825
|
+
const resize = () => {
|
|
1826
|
+
element.style.overflow = "hidden";
|
|
1827
|
+
element.style.height = "auto";
|
|
1828
|
+
element.style.height = `${element.scrollHeight}px`;
|
|
1829
|
+
};
|
|
1830
|
+
resize();
|
|
1831
|
+
element.addEventListener("input", resize);
|
|
1832
|
+
return () => element.removeEventListener("input", resize);
|
|
1833
|
+
};
|
|
1808
1834
|
var trapFocus = (element) => {
|
|
1809
1835
|
const focusable = 'a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])';
|
|
1810
1836
|
const handler = (e) => {
|
|
@@ -2460,6 +2486,9 @@ function onUnmount(callback, element) {
|
|
|
2460
2486
|
}, element);
|
|
2461
2487
|
}
|
|
2462
2488
|
}
|
|
2489
|
+
function onCleanup(callback, element) {
|
|
2490
|
+
registerDisposer(element, callback);
|
|
2491
|
+
}
|
|
2463
2492
|
|
|
2464
2493
|
// src/core/rendering/context.ts
|
|
2465
2494
|
function context(defaultValue) {
|
|
@@ -2822,6 +2851,7 @@ function Loading(props = {}) {
|
|
|
2822
2851
|
article,
|
|
2823
2852
|
aside,
|
|
2824
2853
|
audio,
|
|
2854
|
+
autoResize,
|
|
2825
2855
|
b,
|
|
2826
2856
|
base,
|
|
2827
2857
|
batch,
|
|
@@ -2846,6 +2876,7 @@ function Loading(props = {}) {
|
|
|
2846
2876
|
col,
|
|
2847
2877
|
colgroup,
|
|
2848
2878
|
context,
|
|
2879
|
+
copyOnClick,
|
|
2849
2880
|
customElement,
|
|
2850
2881
|
data,
|
|
2851
2882
|
datalist,
|
|
@@ -2923,6 +2954,7 @@ function Loading(props = {}) {
|
|
|
2923
2954
|
object,
|
|
2924
2955
|
ol,
|
|
2925
2956
|
on,
|
|
2957
|
+
onCleanup,
|
|
2926
2958
|
onMount,
|
|
2927
2959
|
onUnmount,
|
|
2928
2960
|
optgroup,
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { T as TagProps, N as NodeChildren, a as NodeChild } from './tagFactory-
|
|
2
|
-
export { S as SVG_NS, t as tagFactory } from './tagFactory-
|
|
1
|
+
import { T as TagProps, N as NodeChildren, a as NodeChild } from './tagFactory-Dl8QCLga.cjs';
|
|
2
|
+
export { S as SVG_NS, t as tagFactory } from './tagFactory-Dl8QCLga.cjs';
|
|
3
3
|
import { R as ReactiveSignal } from './signal-BnWpq6WB.cjs';
|
|
4
4
|
|
|
5
5
|
declare const head: (first?: TagProps | NodeChildren, second?: NodeChildren) => Element;
|
|
@@ -289,7 +289,7 @@ declare function getSlot(slots: Slots | undefined, name?: string): SlotFn | unde
|
|
|
289
289
|
* div({ nodes: [show(() => visible(), span({ nodes: "I toggle!" }))] });
|
|
290
290
|
* ```
|
|
291
291
|
*/
|
|
292
|
-
declare function show(condition: () => boolean, element:
|
|
292
|
+
declare function show<T extends Element>(condition: () => boolean, element: T): T;
|
|
293
293
|
/**
|
|
294
294
|
* Conditional rendering directive. Renders content only when condition is true.
|
|
295
295
|
* When false, renders nothing (comment placeholder). Re-evaluates reactively.
|
|
@@ -429,6 +429,31 @@ interface LongPressOptions {
|
|
|
429
429
|
* ```
|
|
430
430
|
*/
|
|
431
431
|
declare const longPress: ActionFn<LongPressOptions>;
|
|
432
|
+
/**
|
|
433
|
+
* Copies the element's textContent to the clipboard on click.
|
|
434
|
+
* Optionally accepts a custom getter for the text to copy.
|
|
435
|
+
*
|
|
436
|
+
* @example
|
|
437
|
+
* ```ts
|
|
438
|
+
* // Copy element text
|
|
439
|
+
* action(el, copyOnClick);
|
|
440
|
+
*
|
|
441
|
+
* // Copy custom value
|
|
442
|
+
* action(el, copyOnClick, () => secretToken());
|
|
443
|
+
* ```
|
|
444
|
+
*/
|
|
445
|
+
declare const copyOnClick: ActionFn<(() => string) | undefined>;
|
|
446
|
+
/**
|
|
447
|
+
* Auto-resizes a textarea to fit its content.
|
|
448
|
+
* Adjusts height on input and on initial attach.
|
|
449
|
+
*
|
|
450
|
+
* @example
|
|
451
|
+
* ```ts
|
|
452
|
+
* const ta = textarea({ placeholder: "Type here..." });
|
|
453
|
+
* action(ta, autoResize);
|
|
454
|
+
* ```
|
|
455
|
+
*/
|
|
456
|
+
declare const autoResize: ActionFn<void>;
|
|
432
457
|
/**
|
|
433
458
|
* Traps keyboard focus within the element (Tab and Shift+Tab cycle).
|
|
434
459
|
* Essential for accessible modals and dialogs.
|
|
@@ -819,6 +844,25 @@ declare function onMount(callback: () => undefined | CleanupFn, element?: HTMLEl
|
|
|
819
844
|
* @param element The element to watch for removal
|
|
820
845
|
*/
|
|
821
846
|
declare function onUnmount(callback: CleanupFn, element: HTMLElement): void;
|
|
847
|
+
/**
|
|
848
|
+
* Register a cleanup callback that runs when the given element is disposed.
|
|
849
|
+
* Integrates with `when()`, `match()`, and `each()` which call `dispose()`
|
|
850
|
+
* on removed nodes, triggering all registered cleanup functions.
|
|
851
|
+
*
|
|
852
|
+
* @param callback Cleanup function (close sockets, clear intervals, etc.)
|
|
853
|
+
* @param element The component's root node to attach cleanup to
|
|
854
|
+
*
|
|
855
|
+
* @example
|
|
856
|
+
* ```ts
|
|
857
|
+
* function RealtimeBar(siteId: string) {
|
|
858
|
+
* const ws = new WebSocket(`/ws/sites/${siteId}/realtime`);
|
|
859
|
+
* const root = div({ nodes: "Realtime data..." });
|
|
860
|
+
* onCleanup(() => ws.close(), root);
|
|
861
|
+
* return root;
|
|
862
|
+
* }
|
|
863
|
+
* ```
|
|
864
|
+
*/
|
|
865
|
+
declare function onCleanup(callback: CleanupFn, element: Node): void;
|
|
822
866
|
|
|
823
867
|
/**
|
|
824
868
|
* Context API for SibuJS — provides dependency injection across
|
|
@@ -1038,4 +1082,4 @@ interface LoadingProps {
|
|
|
1038
1082
|
*/
|
|
1039
1083
|
declare function Loading(props?: LoadingProps): HTMLElement;
|
|
1040
1084
|
|
|
1041
|
-
export { type ActionFn, type ArrayActions, type Context, DynamicComponent, type EffectOptions, ErrorBoundary, type ErrorBoundaryProps, Fragment, KeepAlive, type KeepAliveOptions, Loading, type LoadingProps, type LongPressOptions, NodeChild, NodeChildren, Portal, type Ref, type SignalOptions, type SlotFn, type Slots, type StoreActions, Suspense, type SuspenseProps, TagProps, a, abbr, action, address, area, array, article, aside, audio, b, base, batch, bdi, bdo, bindDynamic, blockquote, body, br, button, canvas, caption, catchError, catchErrorAsync, center, checkLeaks, circle, cite, clickOutside, clipPath, code, col, colgroup, context, customElement, data, datalist, dd, deepEqual, deepSignal, defs, del, derived, details, dfn, dialog, disableSSR, dispose, div, dl, dt, each, effect, ellipse, em, embed, enableSSR, enqueueBatchedSignal, fieldset, figcaption, figure, font, footer, form, g, getSlot, h1, h2, h3, h4, h5, h6, head, header, hr, html, i, iframe, img, input, ins, isBatching, isSSR, kbd, label, lazy, legend, li, line, linearGradient, link, longPress, main, map, mark, marker, marquee, mask, match, math, memo, memoFn, menu, meta, meter, mount, nav, noscript, object, ol, on, onMount, onUnmount, optgroup, option, output, p, param, path, pattern, picture, polygon, polyline, portal, pre, progress, q, radialGradient, reactiveArray, rect, ref, registerComponent, registerDisposer, resolveComponent, rp, rt, ruby, s, samp, script, section, select, setGlobalErrorHandler, show, signal, slot, small, source, span, stop, store, strong, style, sub, summary, sup, svg, symbol, table, tbody, td, template, text, textarea, tfoot, th, thead, time, title, tr, track, trapFocus, tspan, u, ul, unregisterComponent, untracked, use, var_, video, watch, when, withSSR, writable };
|
|
1085
|
+
export { type ActionFn, type ArrayActions, type Context, DynamicComponent, type EffectOptions, ErrorBoundary, type ErrorBoundaryProps, Fragment, KeepAlive, type KeepAliveOptions, Loading, type LoadingProps, type LongPressOptions, NodeChild, NodeChildren, Portal, type Ref, type SignalOptions, type SlotFn, type Slots, type StoreActions, Suspense, type SuspenseProps, TagProps, a, abbr, action, address, area, array, article, aside, audio, autoResize, b, base, batch, bdi, bdo, bindDynamic, blockquote, body, br, button, canvas, caption, catchError, catchErrorAsync, center, checkLeaks, circle, cite, clickOutside, clipPath, code, col, colgroup, context, copyOnClick, customElement, data, datalist, dd, deepEqual, deepSignal, defs, del, derived, details, dfn, dialog, disableSSR, dispose, div, dl, dt, each, effect, ellipse, em, embed, enableSSR, enqueueBatchedSignal, fieldset, figcaption, figure, font, footer, form, g, getSlot, h1, h2, h3, h4, h5, h6, head, header, hr, html, i, iframe, img, input, ins, isBatching, isSSR, kbd, label, lazy, legend, li, line, linearGradient, link, longPress, main, map, mark, marker, marquee, mask, match, math, memo, memoFn, menu, meta, meter, mount, nav, noscript, object, ol, on, onCleanup, onMount, onUnmount, optgroup, option, output, p, param, path, pattern, picture, polygon, polyline, portal, pre, progress, q, radialGradient, reactiveArray, rect, ref, registerComponent, registerDisposer, resolveComponent, rp, rt, ruby, s, samp, script, section, select, setGlobalErrorHandler, show, signal, slot, small, source, span, stop, store, strong, style, sub, summary, sup, svg, symbol, table, tbody, td, template, text, textarea, tfoot, th, thead, time, title, tr, track, trapFocus, tspan, u, ul, unregisterComponent, untracked, use, var_, video, watch, when, withSSR, writable };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { T as TagProps, N as NodeChildren, a as NodeChild } from './tagFactory-
|
|
2
|
-
export { S as SVG_NS, t as tagFactory } from './tagFactory-
|
|
1
|
+
import { T as TagProps, N as NodeChildren, a as NodeChild } from './tagFactory-Dl8QCLga.js';
|
|
2
|
+
export { S as SVG_NS, t as tagFactory } from './tagFactory-Dl8QCLga.js';
|
|
3
3
|
import { R as ReactiveSignal } from './signal-BnWpq6WB.js';
|
|
4
4
|
|
|
5
5
|
declare const head: (first?: TagProps | NodeChildren, second?: NodeChildren) => Element;
|
|
@@ -289,7 +289,7 @@ declare function getSlot(slots: Slots | undefined, name?: string): SlotFn | unde
|
|
|
289
289
|
* div({ nodes: [show(() => visible(), span({ nodes: "I toggle!" }))] });
|
|
290
290
|
* ```
|
|
291
291
|
*/
|
|
292
|
-
declare function show(condition: () => boolean, element:
|
|
292
|
+
declare function show<T extends Element>(condition: () => boolean, element: T): T;
|
|
293
293
|
/**
|
|
294
294
|
* Conditional rendering directive. Renders content only when condition is true.
|
|
295
295
|
* When false, renders nothing (comment placeholder). Re-evaluates reactively.
|
|
@@ -429,6 +429,31 @@ interface LongPressOptions {
|
|
|
429
429
|
* ```
|
|
430
430
|
*/
|
|
431
431
|
declare const longPress: ActionFn<LongPressOptions>;
|
|
432
|
+
/**
|
|
433
|
+
* Copies the element's textContent to the clipboard on click.
|
|
434
|
+
* Optionally accepts a custom getter for the text to copy.
|
|
435
|
+
*
|
|
436
|
+
* @example
|
|
437
|
+
* ```ts
|
|
438
|
+
* // Copy element text
|
|
439
|
+
* action(el, copyOnClick);
|
|
440
|
+
*
|
|
441
|
+
* // Copy custom value
|
|
442
|
+
* action(el, copyOnClick, () => secretToken());
|
|
443
|
+
* ```
|
|
444
|
+
*/
|
|
445
|
+
declare const copyOnClick: ActionFn<(() => string) | undefined>;
|
|
446
|
+
/**
|
|
447
|
+
* Auto-resizes a textarea to fit its content.
|
|
448
|
+
* Adjusts height on input and on initial attach.
|
|
449
|
+
*
|
|
450
|
+
* @example
|
|
451
|
+
* ```ts
|
|
452
|
+
* const ta = textarea({ placeholder: "Type here..." });
|
|
453
|
+
* action(ta, autoResize);
|
|
454
|
+
* ```
|
|
455
|
+
*/
|
|
456
|
+
declare const autoResize: ActionFn<void>;
|
|
432
457
|
/**
|
|
433
458
|
* Traps keyboard focus within the element (Tab and Shift+Tab cycle).
|
|
434
459
|
* Essential for accessible modals and dialogs.
|
|
@@ -819,6 +844,25 @@ declare function onMount(callback: () => undefined | CleanupFn, element?: HTMLEl
|
|
|
819
844
|
* @param element The element to watch for removal
|
|
820
845
|
*/
|
|
821
846
|
declare function onUnmount(callback: CleanupFn, element: HTMLElement): void;
|
|
847
|
+
/**
|
|
848
|
+
* Register a cleanup callback that runs when the given element is disposed.
|
|
849
|
+
* Integrates with `when()`, `match()`, and `each()` which call `dispose()`
|
|
850
|
+
* on removed nodes, triggering all registered cleanup functions.
|
|
851
|
+
*
|
|
852
|
+
* @param callback Cleanup function (close sockets, clear intervals, etc.)
|
|
853
|
+
* @param element The component's root node to attach cleanup to
|
|
854
|
+
*
|
|
855
|
+
* @example
|
|
856
|
+
* ```ts
|
|
857
|
+
* function RealtimeBar(siteId: string) {
|
|
858
|
+
* const ws = new WebSocket(`/ws/sites/${siteId}/realtime`);
|
|
859
|
+
* const root = div({ nodes: "Realtime data..." });
|
|
860
|
+
* onCleanup(() => ws.close(), root);
|
|
861
|
+
* return root;
|
|
862
|
+
* }
|
|
863
|
+
* ```
|
|
864
|
+
*/
|
|
865
|
+
declare function onCleanup(callback: CleanupFn, element: Node): void;
|
|
822
866
|
|
|
823
867
|
/**
|
|
824
868
|
* Context API for SibuJS — provides dependency injection across
|
|
@@ -1038,4 +1082,4 @@ interface LoadingProps {
|
|
|
1038
1082
|
*/
|
|
1039
1083
|
declare function Loading(props?: LoadingProps): HTMLElement;
|
|
1040
1084
|
|
|
1041
|
-
export { type ActionFn, type ArrayActions, type Context, DynamicComponent, type EffectOptions, ErrorBoundary, type ErrorBoundaryProps, Fragment, KeepAlive, type KeepAliveOptions, Loading, type LoadingProps, type LongPressOptions, NodeChild, NodeChildren, Portal, type Ref, type SignalOptions, type SlotFn, type Slots, type StoreActions, Suspense, type SuspenseProps, TagProps, a, abbr, action, address, area, array, article, aside, audio, b, base, batch, bdi, bdo, bindDynamic, blockquote, body, br, button, canvas, caption, catchError, catchErrorAsync, center, checkLeaks, circle, cite, clickOutside, clipPath, code, col, colgroup, context, customElement, data, datalist, dd, deepEqual, deepSignal, defs, del, derived, details, dfn, dialog, disableSSR, dispose, div, dl, dt, each, effect, ellipse, em, embed, enableSSR, enqueueBatchedSignal, fieldset, figcaption, figure, font, footer, form, g, getSlot, h1, h2, h3, h4, h5, h6, head, header, hr, html, i, iframe, img, input, ins, isBatching, isSSR, kbd, label, lazy, legend, li, line, linearGradient, link, longPress, main, map, mark, marker, marquee, mask, match, math, memo, memoFn, menu, meta, meter, mount, nav, noscript, object, ol, on, onMount, onUnmount, optgroup, option, output, p, param, path, pattern, picture, polygon, polyline, portal, pre, progress, q, radialGradient, reactiveArray, rect, ref, registerComponent, registerDisposer, resolveComponent, rp, rt, ruby, s, samp, script, section, select, setGlobalErrorHandler, show, signal, slot, small, source, span, stop, store, strong, style, sub, summary, sup, svg, symbol, table, tbody, td, template, text, textarea, tfoot, th, thead, time, title, tr, track, trapFocus, tspan, u, ul, unregisterComponent, untracked, use, var_, video, watch, when, withSSR, writable };
|
|
1085
|
+
export { type ActionFn, type ArrayActions, type Context, DynamicComponent, type EffectOptions, ErrorBoundary, type ErrorBoundaryProps, Fragment, KeepAlive, type KeepAliveOptions, Loading, type LoadingProps, type LongPressOptions, NodeChild, NodeChildren, Portal, type Ref, type SignalOptions, type SlotFn, type Slots, type StoreActions, Suspense, type SuspenseProps, TagProps, a, abbr, action, address, area, array, article, aside, audio, autoResize, b, base, batch, bdi, bdo, bindDynamic, blockquote, body, br, button, canvas, caption, catchError, catchErrorAsync, center, checkLeaks, circle, cite, clickOutside, clipPath, code, col, colgroup, context, copyOnClick, customElement, data, datalist, dd, deepEqual, deepSignal, defs, del, derived, details, dfn, dialog, disableSSR, dispose, div, dl, dt, each, effect, ellipse, em, embed, enableSSR, enqueueBatchedSignal, fieldset, figcaption, figure, font, footer, form, g, getSlot, h1, h2, h3, h4, h5, h6, head, header, hr, html, i, iframe, img, input, ins, isBatching, isSSR, kbd, label, lazy, legend, li, line, linearGradient, link, longPress, main, map, mark, marker, marquee, mask, match, math, memo, memoFn, menu, meta, meter, mount, nav, noscript, object, ol, on, onCleanup, onMount, onUnmount, optgroup, option, output, p, param, path, pattern, picture, polygon, polyline, portal, pre, progress, q, radialGradient, reactiveArray, rect, ref, registerComponent, registerDisposer, resolveComponent, rp, rt, ruby, s, samp, script, section, select, setGlobalErrorHandler, show, signal, slot, small, source, span, stop, store, strong, style, sub, summary, sup, svg, symbol, table, tbody, td, template, text, textarea, tfoot, th, thead, time, title, tr, track, trapFocus, tspan, u, ul, unregisterComponent, untracked, use, var_, video, watch, when, withSSR, writable };
|
package/dist/index.js
CHANGED
|
@@ -8,9 +8,11 @@ import {
|
|
|
8
8
|
Suspense,
|
|
9
9
|
action,
|
|
10
10
|
array,
|
|
11
|
+
autoResize,
|
|
11
12
|
catchError,
|
|
12
13
|
catchErrorAsync,
|
|
13
14
|
clickOutside,
|
|
15
|
+
copyOnClick,
|
|
14
16
|
deepEqual,
|
|
15
17
|
deepSignal,
|
|
16
18
|
each,
|
|
@@ -22,6 +24,7 @@ import {
|
|
|
22
24
|
memo,
|
|
23
25
|
memoFn,
|
|
24
26
|
mount,
|
|
27
|
+
onCleanup,
|
|
25
28
|
onMount,
|
|
26
29
|
onUnmount,
|
|
27
30
|
reactiveArray,
|
|
@@ -35,7 +38,7 @@ import {
|
|
|
35
38
|
unregisterComponent,
|
|
36
39
|
when,
|
|
37
40
|
writable
|
|
38
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-32ZISOLJ.js";
|
|
39
42
|
import {
|
|
40
43
|
a,
|
|
41
44
|
abbr,
|
|
@@ -173,7 +176,7 @@ import {
|
|
|
173
176
|
use,
|
|
174
177
|
var_,
|
|
175
178
|
video
|
|
176
|
-
} from "./chunk-
|
|
179
|
+
} from "./chunk-EWFVA3TJ.js";
|
|
177
180
|
import {
|
|
178
181
|
watch
|
|
179
182
|
} from "./chunk-CZUGLNJS.js";
|
|
@@ -186,7 +189,7 @@ import {
|
|
|
186
189
|
dispose,
|
|
187
190
|
registerDisposer,
|
|
188
191
|
tagFactory
|
|
189
|
-
} from "./chunk-
|
|
192
|
+
} from "./chunk-MDVXJWFN.js";
|
|
190
193
|
import {
|
|
191
194
|
bindDynamic
|
|
192
195
|
} from "./chunk-SDLZDHKP.js";
|
|
@@ -230,6 +233,7 @@ export {
|
|
|
230
233
|
article,
|
|
231
234
|
aside,
|
|
232
235
|
audio,
|
|
236
|
+
autoResize,
|
|
233
237
|
b,
|
|
234
238
|
base,
|
|
235
239
|
batch,
|
|
@@ -254,6 +258,7 @@ export {
|
|
|
254
258
|
col,
|
|
255
259
|
colgroup,
|
|
256
260
|
context,
|
|
261
|
+
copyOnClick,
|
|
257
262
|
customElement,
|
|
258
263
|
data,
|
|
259
264
|
datalist,
|
|
@@ -331,6 +336,7 @@ export {
|
|
|
331
336
|
object,
|
|
332
337
|
ol,
|
|
333
338
|
on,
|
|
339
|
+
onCleanup,
|
|
334
340
|
onMount,
|
|
335
341
|
onUnmount,
|
|
336
342
|
optgroup,
|
package/dist/patterns.d.cts
CHANGED
|
@@ -58,11 +58,17 @@ interface PersistOptions<T = unknown> {
|
|
|
58
58
|
* Encrypt the serialized value before writing to storage.
|
|
59
59
|
* Paired with `decrypt` for reading. Use for sensitive data.
|
|
60
60
|
*
|
|
61
|
+
* **Security:** Use a real encryption algorithm (e.g. AES-GCM via Web Crypto API).
|
|
62
|
+
* Do NOT use `btoa()`/`atob()` — Base64 is encoding, not encryption, and provides
|
|
63
|
+
* zero confidentiality.
|
|
64
|
+
*
|
|
61
65
|
* @example
|
|
62
66
|
* ```ts
|
|
67
|
+
* // Example using a simple XOR cipher for illustration — in production,
|
|
68
|
+
* // use crypto.subtle.encrypt() with AES-GCM or a proven library.
|
|
63
69
|
* persisted("token", "", {
|
|
64
|
-
* encrypt: (v) =>
|
|
65
|
-
* decrypt: (v) =>
|
|
70
|
+
* encrypt: (v) => myAesGcmEncrypt(v, secretKey),
|
|
71
|
+
* decrypt: (v) => myAesGcmDecrypt(v, secretKey),
|
|
66
72
|
* });
|
|
67
73
|
* ```
|
|
68
74
|
*/
|
package/dist/patterns.d.ts
CHANGED
|
@@ -58,11 +58,17 @@ interface PersistOptions<T = unknown> {
|
|
|
58
58
|
* Encrypt the serialized value before writing to storage.
|
|
59
59
|
* Paired with `decrypt` for reading. Use for sensitive data.
|
|
60
60
|
*
|
|
61
|
+
* **Security:** Use a real encryption algorithm (e.g. AES-GCM via Web Crypto API).
|
|
62
|
+
* Do NOT use `btoa()`/`atob()` — Base64 is encoding, not encryption, and provides
|
|
63
|
+
* zero confidentiality.
|
|
64
|
+
*
|
|
61
65
|
* @example
|
|
62
66
|
* ```ts
|
|
67
|
+
* // Example using a simple XOR cipher for illustration — in production,
|
|
68
|
+
* // use crypto.subtle.encrypt() with AES-GCM or a proven library.
|
|
63
69
|
* persisted("token", "", {
|
|
64
|
-
* encrypt: (v) =>
|
|
65
|
-
* decrypt: (v) =>
|
|
70
|
+
* encrypt: (v) => myAesGcmEncrypt(v, secretKey),
|
|
71
|
+
* decrypt: (v) => myAesGcmDecrypt(v, secretKey),
|
|
66
72
|
* });
|
|
67
73
|
* ```
|
|
68
74
|
*/
|
package/dist/plugins.cjs
CHANGED
|
@@ -59,7 +59,8 @@ __export(ssr_exports, {
|
|
|
59
59
|
resetSSRState: () => resetSSRState,
|
|
60
60
|
serializeState: () => serializeState,
|
|
61
61
|
ssrSuspense: () => ssrSuspense,
|
|
62
|
-
suspenseSwapScript: () => suspenseSwapScript
|
|
62
|
+
suspenseSwapScript: () => suspenseSwapScript,
|
|
63
|
+
trustHTML: () => trustHTML
|
|
63
64
|
});
|
|
64
65
|
function ssrErrorComment(err) {
|
|
65
66
|
if (_isDev7) {
|
|
@@ -122,6 +123,9 @@ function hydrateNode(serverNode, clientNode) {
|
|
|
122
123
|
hydrateNode(serverChildren[i2], clientChildren[i2]);
|
|
123
124
|
}
|
|
124
125
|
}
|
|
126
|
+
function trustHTML(html2) {
|
|
127
|
+
return html2;
|
|
128
|
+
}
|
|
125
129
|
function renderToDocument(component, options = {}) {
|
|
126
130
|
let content;
|
|
127
131
|
try {
|
|
@@ -343,6 +347,7 @@ var init_ssr = __esm({
|
|
|
343
347
|
// plugins.ts
|
|
344
348
|
var plugins_exports = {};
|
|
345
349
|
__export(plugins_exports, {
|
|
350
|
+
KeepAliveRoute: () => KeepAliveRoute,
|
|
346
351
|
Outlet: () => Outlet,
|
|
347
352
|
Route: () => Route,
|
|
348
353
|
RouterLink: () => RouterLink,
|
|
@@ -698,7 +703,7 @@ function bindChildNode(placeholder, getter) {
|
|
|
698
703
|
const node = lastNodes[i2];
|
|
699
704
|
if (node.parentNode) node.parentNode.removeChild(node);
|
|
700
705
|
}
|
|
701
|
-
if (result == null) {
|
|
706
|
+
if (result == null || typeof result === "boolean") {
|
|
702
707
|
lastNodes.length = 0;
|
|
703
708
|
return;
|
|
704
709
|
}
|
|
@@ -713,6 +718,7 @@ function bindChildNode(placeholder, getter) {
|
|
|
713
718
|
if (lastNodes.length < result.length) lastNodes = new Array(result.length);
|
|
714
719
|
for (let i2 = 0; i2 < result.length; i2++) {
|
|
715
720
|
const item = result[i2];
|
|
721
|
+
if (item == null || typeof item === "boolean") continue;
|
|
716
722
|
const node = item instanceof Node ? item : document.createTextNode(String(item));
|
|
717
723
|
parent.insertBefore(node, anchor);
|
|
718
724
|
lastNodes[count++] = node;
|
|
@@ -742,6 +748,27 @@ function registerDisposer(node, teardown) {
|
|
|
742
748
|
disposers.push(teardown);
|
|
743
749
|
if (_isDev5) activeBindingCount++;
|
|
744
750
|
}
|
|
751
|
+
function dispose(node) {
|
|
752
|
+
const stack = [node];
|
|
753
|
+
const order = [];
|
|
754
|
+
while (stack.length > 0) {
|
|
755
|
+
const current = stack.pop();
|
|
756
|
+
order.push(current);
|
|
757
|
+
const children = current.childNodes;
|
|
758
|
+
for (let i2 = 0; i2 < children.length; i2++) {
|
|
759
|
+
stack.push(children[i2]);
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
for (let i2 = order.length - 1; i2 >= 0; i2--) {
|
|
763
|
+
const current = order[i2];
|
|
764
|
+
const disposers = elementDisposers.get(current);
|
|
765
|
+
if (disposers) {
|
|
766
|
+
if (_isDev5) activeBindingCount -= disposers.length;
|
|
767
|
+
for (const d of disposers) d();
|
|
768
|
+
elementDisposers.delete(current);
|
|
769
|
+
}
|
|
770
|
+
}
|
|
771
|
+
}
|
|
745
772
|
|
|
746
773
|
// src/core/rendering/tagFactory.ts
|
|
747
774
|
var SVG_NS = "http://www.w3.org/2000/svg";
|
|
@@ -828,6 +855,9 @@ function appendChildren(el, nodes) {
|
|
|
828
855
|
el.textContent = String(nodes);
|
|
829
856
|
return;
|
|
830
857
|
}
|
|
858
|
+
if (typeof nodes === "boolean" || nodes == null) {
|
|
859
|
+
return;
|
|
860
|
+
}
|
|
831
861
|
if (typeof nodes === "function") {
|
|
832
862
|
const ph = document.createComment("");
|
|
833
863
|
el.appendChild(ph);
|
|
@@ -856,11 +886,11 @@ function appendChildren(el, nodes) {
|
|
|
856
886
|
registerDisposer(el, bindChildNode(ph, inner));
|
|
857
887
|
} else if (inner instanceof Node) {
|
|
858
888
|
el.appendChild(inner);
|
|
859
|
-
} else if (inner != null) {
|
|
889
|
+
} else if (inner != null && typeof inner !== "boolean") {
|
|
860
890
|
el.appendChild(document.createTextNode(String(inner)));
|
|
861
891
|
}
|
|
862
892
|
}
|
|
863
|
-
} else if (c != null) {
|
|
893
|
+
} else if (c != null && typeof c !== "boolean") {
|
|
864
894
|
el.appendChild(document.createTextNode(String(c)));
|
|
865
895
|
}
|
|
866
896
|
}
|
|
@@ -2092,6 +2122,120 @@ function Route() {
|
|
|
2092
2122
|
routeCleanups.push(cleanupNodes);
|
|
2093
2123
|
return anchor;
|
|
2094
2124
|
}
|
|
2125
|
+
function KeepAliveRoute(options) {
|
|
2126
|
+
if (!globalRouter) throw new Error("Router not initialized. Call createRouter() first.");
|
|
2127
|
+
const anchor = document.createComment("keep-alive-route");
|
|
2128
|
+
const cache = /* @__PURE__ */ new Map();
|
|
2129
|
+
const lruOrder = [];
|
|
2130
|
+
const routerOpts = globalRouter["options"];
|
|
2131
|
+
const keepAliveOpt = routerOpts.keepAlive;
|
|
2132
|
+
const maxCache = options?.max ?? (typeof keepAliveOpt === "number" ? keepAliveOpt : 20);
|
|
2133
|
+
const includeNames = options?.include ?? (Array.isArray(keepAliveOpt) ? keepAliveOpt : void 0);
|
|
2134
|
+
let currentNode = null;
|
|
2135
|
+
let currentKey = "";
|
|
2136
|
+
let currentCached = false;
|
|
2137
|
+
let isUpdating = false;
|
|
2138
|
+
let pendingUpdate = false;
|
|
2139
|
+
const update = async () => {
|
|
2140
|
+
if (!globalRouter) return;
|
|
2141
|
+
if (isUpdating) {
|
|
2142
|
+
pendingUpdate = true;
|
|
2143
|
+
return;
|
|
2144
|
+
}
|
|
2145
|
+
const route2 = globalRouter.currentRoute;
|
|
2146
|
+
const match = globalRouter["matcher"].match(route2.path);
|
|
2147
|
+
if (!match) return;
|
|
2148
|
+
const { route: routeDef } = match;
|
|
2149
|
+
if ("redirect" in routeDef) {
|
|
2150
|
+
const redirectPath = typeof routeDef.redirect === "function" ? routeDef.redirect(route2) : routeDef.redirect;
|
|
2151
|
+
queueMicrotask(() => globalRouter?.navigate(redirectPath));
|
|
2152
|
+
return;
|
|
2153
|
+
}
|
|
2154
|
+
if (!("component" in routeDef)) return;
|
|
2155
|
+
const cacheKey = route2.path;
|
|
2156
|
+
const shouldCache = !includeNames || routeDef.name != null && includeNames.includes(routeDef.name);
|
|
2157
|
+
if (cacheKey === currentKey && currentNode) return;
|
|
2158
|
+
isUpdating = true;
|
|
2159
|
+
const parent = anchor.parentNode;
|
|
2160
|
+
if (!parent) {
|
|
2161
|
+
isUpdating = false;
|
|
2162
|
+
return;
|
|
2163
|
+
}
|
|
2164
|
+
try {
|
|
2165
|
+
if (currentNode?.parentNode) {
|
|
2166
|
+
parent.removeChild(currentNode);
|
|
2167
|
+
if (!currentCached) {
|
|
2168
|
+
dispose(currentNode);
|
|
2169
|
+
}
|
|
2170
|
+
}
|
|
2171
|
+
if (shouldCache && cache.has(cacheKey)) {
|
|
2172
|
+
currentNode = cache.get(cacheKey);
|
|
2173
|
+
currentCached = true;
|
|
2174
|
+
const idx = lruOrder.indexOf(cacheKey);
|
|
2175
|
+
if (idx !== -1) {
|
|
2176
|
+
lruOrder.splice(idx, 1);
|
|
2177
|
+
}
|
|
2178
|
+
lruOrder.push(cacheKey);
|
|
2179
|
+
} else {
|
|
2180
|
+
const component = await globalRouter.loadComponent(routeDef, route2.path);
|
|
2181
|
+
const node = component();
|
|
2182
|
+
if (!node || route2.path !== globalRouter.currentRoute.path) {
|
|
2183
|
+
isUpdating = false;
|
|
2184
|
+
return;
|
|
2185
|
+
}
|
|
2186
|
+
currentNode = node;
|
|
2187
|
+
currentCached = shouldCache;
|
|
2188
|
+
if (shouldCache) {
|
|
2189
|
+
cache.set(cacheKey, node);
|
|
2190
|
+
lruOrder.push(cacheKey);
|
|
2191
|
+
while (lruOrder.length > maxCache) {
|
|
2192
|
+
const evictKey = lruOrder.shift();
|
|
2193
|
+
const evictNode = cache.get(evictKey);
|
|
2194
|
+
if (evictNode) {
|
|
2195
|
+
dispose(evictNode);
|
|
2196
|
+
if (evictNode.parentNode) evictNode.parentNode.removeChild(evictNode);
|
|
2197
|
+
cache.delete(evictKey);
|
|
2198
|
+
}
|
|
2199
|
+
}
|
|
2200
|
+
}
|
|
2201
|
+
}
|
|
2202
|
+
currentKey = cacheKey;
|
|
2203
|
+
if (currentNode) {
|
|
2204
|
+
parent.insertBefore(currentNode, anchor.nextSibling);
|
|
2205
|
+
}
|
|
2206
|
+
} catch (error) {
|
|
2207
|
+
console.error("[KeepAliveRoute] Component error:", error);
|
|
2208
|
+
} finally {
|
|
2209
|
+
isUpdating = false;
|
|
2210
|
+
if (pendingUpdate) {
|
|
2211
|
+
pendingUpdate = false;
|
|
2212
|
+
update();
|
|
2213
|
+
}
|
|
2214
|
+
}
|
|
2215
|
+
};
|
|
2216
|
+
let initialized = false;
|
|
2217
|
+
const wrappedUpdate = async () => {
|
|
2218
|
+
await update();
|
|
2219
|
+
initialized = true;
|
|
2220
|
+
};
|
|
2221
|
+
track(wrappedUpdate);
|
|
2222
|
+
if (!initialized) {
|
|
2223
|
+
queueMicrotask(() => {
|
|
2224
|
+
if (!initialized && anchor.parentNode) wrappedUpdate();
|
|
2225
|
+
});
|
|
2226
|
+
}
|
|
2227
|
+
routeCleanups.push(() => {
|
|
2228
|
+
for (const node of cache.values()) {
|
|
2229
|
+
dispose(node);
|
|
2230
|
+
if (node.parentNode) node.parentNode.removeChild(node);
|
|
2231
|
+
}
|
|
2232
|
+
cache.clear();
|
|
2233
|
+
lruOrder.length = 0;
|
|
2234
|
+
if (currentNode?.parentNode) currentNode.parentNode.removeChild(currentNode);
|
|
2235
|
+
currentNode = null;
|
|
2236
|
+
});
|
|
2237
|
+
return anchor;
|
|
2238
|
+
}
|
|
2095
2239
|
function RouterLink(props) {
|
|
2096
2240
|
if (!globalRouter) throw new Error("Router not initialized. Call createRouter() first.");
|
|
2097
2241
|
const { to, replace: replace2 = false, activeClass, exactActiveClass, nodes, target, rel, ...attrs } = props;
|
|
@@ -3392,6 +3536,7 @@ function createBootSequence() {
|
|
|
3392
3536
|
}
|
|
3393
3537
|
// Annotate the CommonJS export names for ESM import in node:
|
|
3394
3538
|
0 && (module.exports = {
|
|
3539
|
+
KeepAliveRoute,
|
|
3395
3540
|
Outlet,
|
|
3396
3541
|
Route,
|
|
3397
3542
|
RouterLink,
|