sibujs 1.0.2 → 1.0.3
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/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 +17 -8
- package/dist/build.js +3 -3
- package/dist/cdn.global.js +4 -4
- package/dist/{chunk-ONCYDOK6.js → chunk-4EI4AG32.js} +17 -1
- package/dist/{chunk-MJ4LVHGX.js → chunk-7V26P53V.js} +1 -1
- 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-24WSRM54.js → chunk-MEZVEBPN.js} +13 -7
- package/dist/{chunk-OHQQWZ7P.js → chunk-QBMDLBU2.js} +10 -4
- 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 +35 -7
- package/dist/extras.d.cts +2 -2
- package/dist/extras.d.ts +2 -2
- package/dist/extras.js +10 -6
- package/dist/index.cjs +18 -8
- package/dist/index.d.cts +22 -3
- package/dist/index.d.ts +22 -3
- package/dist/index.js +5 -3
- package/dist/plugins.cjs +7 -3
- package/dist/plugins.js +2 -2
- package/dist/ssr.cjs +7 -3
- package/dist/ssr.js +3 -3
- 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/package.json +1 -1
- 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-DWQQ2GZK.js +0 -1787
- package/dist/chunk-DZZMIMGL.js +0 -725
- 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
|
@@ -1,245 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Higher-order component utilities for SibuJS.
|
|
3
|
-
* These functions wrap or compose components to add behavior.
|
|
4
|
-
*/
|
|
5
|
-
type Component<P = unknown> = (props: P) => HTMLElement;
|
|
6
|
-
/**
|
|
7
|
-
* Wraps a component with additional behavior that runs before/after rendering.
|
|
8
|
-
*
|
|
9
|
-
* @param WrappedComponent The component to wrap
|
|
10
|
-
* @param wrapper Function that receives the component and its props, returns enhanced element
|
|
11
|
-
* @returns A new component function
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```ts
|
|
15
|
-
* const WithLogging = sbWithWrapper(MyComponent, (Comp, props) => {
|
|
16
|
-
* console.log("Rendering with props:", props);
|
|
17
|
-
* return Comp(props);
|
|
18
|
-
* });
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
declare function sbWithWrapper<P>(WrappedComponent: Component<P>, wrapper: (component: Component<P>, props: P) => HTMLElement): Component<P>;
|
|
22
|
-
/**
|
|
23
|
-
* Adds default props to a component. Missing props are filled from defaults.
|
|
24
|
-
*
|
|
25
|
-
* @param component The component to wrap
|
|
26
|
-
* @param defaults Default prop values
|
|
27
|
-
* @returns A new component with defaults applied
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* ```ts
|
|
31
|
-
* const Button = sbWithDefaults(RawButton, { type: "button", disabled: false });
|
|
32
|
-
* Button({ nodes: "Click" }); // type="button", disabled=false automatically
|
|
33
|
-
* ```
|
|
34
|
-
*/
|
|
35
|
-
declare function sbWithDefaults<P extends Record<string, unknown>>(component: Component<P>, defaults: Partial<P>): Component<Partial<P>>;
|
|
36
|
-
/**
|
|
37
|
-
* Composes multiple HOC wrappers into a single wrapper.
|
|
38
|
-
* Applied from right to left (like function composition).
|
|
39
|
-
*
|
|
40
|
-
* @param wrappers Array of HOC functions
|
|
41
|
-
* @returns A function that applies all wrappers to a component
|
|
42
|
-
*
|
|
43
|
-
* @example
|
|
44
|
-
* ```ts
|
|
45
|
-
* const enhance = sbCompose(withAuth, withLogging, withTheme);
|
|
46
|
-
* const EnhancedPage = enhance(Page);
|
|
47
|
-
* ```
|
|
48
|
-
*/
|
|
49
|
-
declare function sbCompose(...wrappers: Array<(component: Component) => Component>): (component: Component) => Component;
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* sbComposable wraps a setup function to create reusable stateful logic.
|
|
53
|
-
* Similar to Vue 3 composables — encapsulates reactive state and methods.
|
|
54
|
-
*/
|
|
55
|
-
declare function sbComposable<T>(setup: () => T): () => T;
|
|
56
|
-
/**
|
|
57
|
-
* RenderProp implements the render-prop pattern.
|
|
58
|
-
* The render function receives data and returns DOM nodes.
|
|
59
|
-
*/
|
|
60
|
-
declare function RenderProp<T>(props: {
|
|
61
|
-
data: () => T;
|
|
62
|
-
render: (data: T) => HTMLElement;
|
|
63
|
-
}): HTMLElement;
|
|
64
|
-
/**
|
|
65
|
-
* sbWithBoundary creates an isolated component boundary for debugging.
|
|
66
|
-
* Wraps component output in a named container with error isolation.
|
|
67
|
-
*/
|
|
68
|
-
declare function sbWithBoundary(name: string, component: (props?: unknown) => HTMLElement): (props?: unknown) => HTMLElement;
|
|
69
|
-
/**
|
|
70
|
-
* Slot pattern — provides named slots for component composition.
|
|
71
|
-
*/
|
|
72
|
-
declare function sbCreateSlots(slots: Record<string, () => HTMLElement | HTMLElement[] | null>): {
|
|
73
|
-
renderSlot: (name: string, fallback?: () => HTMLElement) => HTMLElement | null;
|
|
74
|
-
hasSlot: (name: string) => boolean;
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* React-style functional component props with TypeScript inference for SibuJS.
|
|
79
|
-
*
|
|
80
|
-
* Provides utilities to define typed components with prop defaults,
|
|
81
|
-
* nodes slots, and prop mapping — all with full TypeScript inference.
|
|
82
|
-
*/
|
|
83
|
-
/**
|
|
84
|
-
* Extract the props type from a component defined with sbDefineComponent.
|
|
85
|
-
*
|
|
86
|
-
* @example
|
|
87
|
-
* ```ts
|
|
88
|
-
* const Button = sbDefineComponent<{ label: string }>({
|
|
89
|
-
* setup(props) { ... }
|
|
90
|
-
* });
|
|
91
|
-
* type ButtonProps = ComponentProps<typeof Button>; // { label: string }
|
|
92
|
-
* ```
|
|
93
|
-
*/
|
|
94
|
-
type ComponentProps<T> = T extends (props: infer P) => HTMLElement ? P : never;
|
|
95
|
-
/**
|
|
96
|
-
* Props that include an optional nodes slot.
|
|
97
|
-
*/
|
|
98
|
-
type WithNodes<Props> = Props & {
|
|
99
|
-
nodes?: Node | Node[];
|
|
100
|
-
};
|
|
101
|
-
/**
|
|
102
|
-
* Define a typed component with props inference, defaults, and a setup function.
|
|
103
|
-
*
|
|
104
|
-
* The `setup` function receives merged props (defaults + provided) and must
|
|
105
|
-
* return an HTMLElement. TypeScript infers the full props type from the generic.
|
|
106
|
-
*
|
|
107
|
-
* @param config Component configuration with optional defaults and a setup function
|
|
108
|
-
* @returns A component function that accepts props and returns an HTMLElement
|
|
109
|
-
*
|
|
110
|
-
* @example
|
|
111
|
-
* ```ts
|
|
112
|
-
* const Button = sbDefineComponent<{ label: string; variant?: 'primary' | 'secondary'; disabled?: boolean }>({
|
|
113
|
-
* defaults: { variant: 'primary', disabled: false },
|
|
114
|
-
* setup(props) {
|
|
115
|
-
* return button({
|
|
116
|
-
* class: `btn btn-${props.variant}`,
|
|
117
|
-
* disabled: props.disabled,
|
|
118
|
-
* nodes: props.label
|
|
119
|
-
* });
|
|
120
|
-
* }
|
|
121
|
-
* });
|
|
122
|
-
*
|
|
123
|
-
* // Usage: Button({ label: 'Click me' }) — TypeScript infers props
|
|
124
|
-
* ```
|
|
125
|
-
*/
|
|
126
|
-
declare function sbDefineComponent<Props extends Record<string, unknown>>(config: {
|
|
127
|
-
defaults?: Partial<Props>;
|
|
128
|
-
setup: (props: Props) => HTMLElement;
|
|
129
|
-
}): (props: Props) => HTMLElement;
|
|
130
|
-
/**
|
|
131
|
-
* Create a component with nodes slot support.
|
|
132
|
-
*
|
|
133
|
-
* Nodes are passed as a special `nodes` prop alongside the component's
|
|
134
|
-
* own props. This enables composition patterns where a parent component
|
|
135
|
-
* wraps arbitrary child content.
|
|
136
|
-
*
|
|
137
|
-
* @param config Component configuration with optional defaults and a setup function
|
|
138
|
-
* @returns A component function that accepts props (including nodes) and returns an HTMLElement
|
|
139
|
-
*
|
|
140
|
-
* @example
|
|
141
|
-
* ```ts
|
|
142
|
-
* const Card = sbDefineSlottedComponent<{ title: string }>({
|
|
143
|
-
* setup(props) {
|
|
144
|
-
* const el = div({ class: 'card' });
|
|
145
|
-
* el.appendChild(h2({ nodes: props.title }));
|
|
146
|
-
* if (props.nodes) {
|
|
147
|
-
* const nodes = Array.isArray(props.nodes) ? props.nodes : [props.nodes];
|
|
148
|
-
* nodes.forEach(child => el.appendChild(child));
|
|
149
|
-
* }
|
|
150
|
-
* return el;
|
|
151
|
-
* }
|
|
152
|
-
* });
|
|
153
|
-
*
|
|
154
|
-
* // Usage: Card({ title: 'Hello', nodes: p({ nodes: 'World' }) })
|
|
155
|
-
* ```
|
|
156
|
-
*/
|
|
157
|
-
declare function sbDefineSlottedComponent<Props extends Record<string, unknown>>(config: {
|
|
158
|
-
defaults?: Partial<Props>;
|
|
159
|
-
setup: (props: WithNodes<Props>) => HTMLElement;
|
|
160
|
-
}): (props: WithNodes<Props>) => HTMLElement;
|
|
161
|
-
/**
|
|
162
|
-
* Higher-order helper to create a component that maps outer props to inner props.
|
|
163
|
-
*
|
|
164
|
-
* Useful for adapting a generic component to a specific use case by transforming
|
|
165
|
-
* the prop interface without modifying the original component.
|
|
166
|
-
*
|
|
167
|
-
* @param component The inner component to forward mapped props to
|
|
168
|
-
* @param mapProps A function that transforms outer props into inner props
|
|
169
|
-
* @returns A new component that accepts outer props
|
|
170
|
-
*
|
|
171
|
-
* @example
|
|
172
|
-
* ```ts
|
|
173
|
-
* const IconButton = sbDefineComponent<{ icon: string; label: string; size: number }>({
|
|
174
|
-
* setup(props) { ... }
|
|
175
|
-
* });
|
|
176
|
-
*
|
|
177
|
-
* const SmallIconButton = sbWithProps(IconButton, (outer: { icon: string; label: string }) => ({
|
|
178
|
-
* icon: outer.icon,
|
|
179
|
-
* label: outer.label,
|
|
180
|
-
* size: 16
|
|
181
|
-
* }));
|
|
182
|
-
*
|
|
183
|
-
* // Usage: SmallIconButton({ icon: 'star', label: 'Favorite' })
|
|
184
|
-
* ```
|
|
185
|
-
*/
|
|
186
|
-
declare function sbWithProps<OuterProps extends Record<string, unknown>, InnerProps extends Record<string, unknown>>(component: (props: InnerProps) => HTMLElement, mapProps: (outer: OuterProps) => InnerProps): (props: OuterProps) => HTMLElement;
|
|
187
|
-
|
|
188
|
-
/**
|
|
189
|
-
* Runtime prop validation and strict typing contracts for SibuJS.
|
|
190
|
-
* Provides runtime type checking for component props in development mode.
|
|
191
|
-
*/
|
|
192
|
-
/** Validator function: returns true if valid, or an error message string. */
|
|
193
|
-
type Validator<T = unknown> = (value: T, propName: string) => true | string;
|
|
194
|
-
/** Built-in validators */
|
|
195
|
-
declare const validators: {
|
|
196
|
-
string: Validator;
|
|
197
|
-
number: Validator;
|
|
198
|
-
boolean: Validator;
|
|
199
|
-
function: Validator;
|
|
200
|
-
object: Validator;
|
|
201
|
-
array: Validator;
|
|
202
|
-
required: Validator;
|
|
203
|
-
oneOf: <T>(...values: T[]) => Validator<T>;
|
|
204
|
-
instanceOf: <T>(ctor: new (...args: unknown[]) => T) => Validator<T>;
|
|
205
|
-
arrayOf: (itemValidator: Validator) => Validator<unknown[]>;
|
|
206
|
-
shape: (schema: Record<string, Validator>) => Validator<Record<string, unknown>>;
|
|
207
|
-
optional: (validator: Validator) => Validator;
|
|
208
|
-
range: (min: number, max: number) => Validator<number>;
|
|
209
|
-
pattern: (regex: RegExp) => Validator<string>;
|
|
210
|
-
};
|
|
211
|
-
interface PropDef<T = unknown> {
|
|
212
|
-
type?: Validator<T>;
|
|
213
|
-
required?: boolean;
|
|
214
|
-
default?: T | (() => T);
|
|
215
|
-
validator?: Validator<T>;
|
|
216
|
-
}
|
|
217
|
-
type PropSchema<Props> = {
|
|
218
|
-
[K in keyof Props]: PropDef<Props[K]> | Validator<Props[K]>;
|
|
219
|
-
};
|
|
220
|
-
/**
|
|
221
|
-
* Validate props against a schema. Returns validated props with defaults applied.
|
|
222
|
-
* In production mode (process.env.NODE_ENV === 'production'), validation is skipped
|
|
223
|
-
* and only defaults are applied for performance.
|
|
224
|
-
*/
|
|
225
|
-
declare function sbValidateProps<Props extends Record<string, unknown>>(props: Partial<Props>, schema: PropSchema<Props>): Props;
|
|
226
|
-
/**
|
|
227
|
-
* Define a component with runtime prop validation.
|
|
228
|
-
* Validates props in development mode, applies defaults, then calls setup.
|
|
229
|
-
*/
|
|
230
|
-
declare function sbDefineStrictComponent<Props extends Record<string, unknown>>(config: {
|
|
231
|
-
name: string;
|
|
232
|
-
props: PropSchema<Props>;
|
|
233
|
-
setup: (props: Props) => HTMLElement;
|
|
234
|
-
}): (props: Partial<Props>) => HTMLElement;
|
|
235
|
-
/**
|
|
236
|
-
* Assert that a value satisfies a contract at runtime.
|
|
237
|
-
* No-op in production builds.
|
|
238
|
-
*/
|
|
239
|
-
declare function sbAssertType<T>(value: unknown, validator: Validator<T>, label?: string): asserts value is T;
|
|
240
|
-
/**
|
|
241
|
-
* Create a type guard function from a validator.
|
|
242
|
-
*/
|
|
243
|
-
declare function sbCreateGuard<T>(validator: Validator<T>): (value: unknown) => value is T;
|
|
244
|
-
|
|
245
|
-
export { type ComponentProps as C, type PropDef as P, RenderProp as R, type Validator as V, type PropSchema as a, sbComposable as b, sbCompose as c, sbCreateGuard as d, sbCreateSlots as e, sbDefineComponent as f, sbDefineSlottedComponent as g, sbDefineStrictComponent as h, sbValidateProps as i, sbWithBoundary as j, sbWithDefaults as k, sbWithProps as l, sbWithWrapper as m, sbAssertType as s, validators as v };
|
|
@@ -1,245 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Higher-order component utilities for SibuJS.
|
|
3
|
-
* These functions wrap or compose components to add behavior.
|
|
4
|
-
*/
|
|
5
|
-
type Component<P = unknown> = (props: P) => HTMLElement;
|
|
6
|
-
/**
|
|
7
|
-
* Wraps a component with additional behavior that runs before/after rendering.
|
|
8
|
-
*
|
|
9
|
-
* @param WrappedComponent The component to wrap
|
|
10
|
-
* @param wrapper Function that receives the component and its props, returns enhanced element
|
|
11
|
-
* @returns A new component function
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```ts
|
|
15
|
-
* const WithLogging = sbWithWrapper(MyComponent, (Comp, props) => {
|
|
16
|
-
* console.log("Rendering with props:", props);
|
|
17
|
-
* return Comp(props);
|
|
18
|
-
* });
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
declare function sbWithWrapper<P>(WrappedComponent: Component<P>, wrapper: (component: Component<P>, props: P) => HTMLElement): Component<P>;
|
|
22
|
-
/**
|
|
23
|
-
* Adds default props to a component. Missing props are filled from defaults.
|
|
24
|
-
*
|
|
25
|
-
* @param component The component to wrap
|
|
26
|
-
* @param defaults Default prop values
|
|
27
|
-
* @returns A new component with defaults applied
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* ```ts
|
|
31
|
-
* const Button = sbWithDefaults(RawButton, { type: "button", disabled: false });
|
|
32
|
-
* Button({ nodes: "Click" }); // type="button", disabled=false automatically
|
|
33
|
-
* ```
|
|
34
|
-
*/
|
|
35
|
-
declare function sbWithDefaults<P extends Record<string, unknown>>(component: Component<P>, defaults: Partial<P>): Component<Partial<P>>;
|
|
36
|
-
/**
|
|
37
|
-
* Composes multiple HOC wrappers into a single wrapper.
|
|
38
|
-
* Applied from right to left (like function composition).
|
|
39
|
-
*
|
|
40
|
-
* @param wrappers Array of HOC functions
|
|
41
|
-
* @returns A function that applies all wrappers to a component
|
|
42
|
-
*
|
|
43
|
-
* @example
|
|
44
|
-
* ```ts
|
|
45
|
-
* const enhance = sbCompose(withAuth, withLogging, withTheme);
|
|
46
|
-
* const EnhancedPage = enhance(Page);
|
|
47
|
-
* ```
|
|
48
|
-
*/
|
|
49
|
-
declare function sbCompose(...wrappers: Array<(component: Component) => Component>): (component: Component) => Component;
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* sbComposable wraps a setup function to create reusable stateful logic.
|
|
53
|
-
* Similar to Vue 3 composables — encapsulates reactive state and methods.
|
|
54
|
-
*/
|
|
55
|
-
declare function sbComposable<T>(setup: () => T): () => T;
|
|
56
|
-
/**
|
|
57
|
-
* RenderProp implements the render-prop pattern.
|
|
58
|
-
* The render function receives data and returns DOM nodes.
|
|
59
|
-
*/
|
|
60
|
-
declare function RenderProp<T>(props: {
|
|
61
|
-
data: () => T;
|
|
62
|
-
render: (data: T) => HTMLElement;
|
|
63
|
-
}): HTMLElement;
|
|
64
|
-
/**
|
|
65
|
-
* sbWithBoundary creates an isolated component boundary for debugging.
|
|
66
|
-
* Wraps component output in a named container with error isolation.
|
|
67
|
-
*/
|
|
68
|
-
declare function sbWithBoundary(name: string, component: (props?: unknown) => HTMLElement): (props?: unknown) => HTMLElement;
|
|
69
|
-
/**
|
|
70
|
-
* Slot pattern — provides named slots for component composition.
|
|
71
|
-
*/
|
|
72
|
-
declare function sbCreateSlots(slots: Record<string, () => HTMLElement | HTMLElement[] | null>): {
|
|
73
|
-
renderSlot: (name: string, fallback?: () => HTMLElement) => HTMLElement | null;
|
|
74
|
-
hasSlot: (name: string) => boolean;
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* React-style functional component props with TypeScript inference for SibuJS.
|
|
79
|
-
*
|
|
80
|
-
* Provides utilities to define typed components with prop defaults,
|
|
81
|
-
* nodes slots, and prop mapping — all with full TypeScript inference.
|
|
82
|
-
*/
|
|
83
|
-
/**
|
|
84
|
-
* Extract the props type from a component defined with sbDefineComponent.
|
|
85
|
-
*
|
|
86
|
-
* @example
|
|
87
|
-
* ```ts
|
|
88
|
-
* const Button = sbDefineComponent<{ label: string }>({
|
|
89
|
-
* setup(props) { ... }
|
|
90
|
-
* });
|
|
91
|
-
* type ButtonProps = ComponentProps<typeof Button>; // { label: string }
|
|
92
|
-
* ```
|
|
93
|
-
*/
|
|
94
|
-
type ComponentProps<T> = T extends (props: infer P) => HTMLElement ? P : never;
|
|
95
|
-
/**
|
|
96
|
-
* Props that include an optional nodes slot.
|
|
97
|
-
*/
|
|
98
|
-
type WithNodes<Props> = Props & {
|
|
99
|
-
nodes?: Node | Node[];
|
|
100
|
-
};
|
|
101
|
-
/**
|
|
102
|
-
* Define a typed component with props inference, defaults, and a setup function.
|
|
103
|
-
*
|
|
104
|
-
* The `setup` function receives merged props (defaults + provided) and must
|
|
105
|
-
* return an HTMLElement. TypeScript infers the full props type from the generic.
|
|
106
|
-
*
|
|
107
|
-
* @param config Component configuration with optional defaults and a setup function
|
|
108
|
-
* @returns A component function that accepts props and returns an HTMLElement
|
|
109
|
-
*
|
|
110
|
-
* @example
|
|
111
|
-
* ```ts
|
|
112
|
-
* const Button = sbDefineComponent<{ label: string; variant?: 'primary' | 'secondary'; disabled?: boolean }>({
|
|
113
|
-
* defaults: { variant: 'primary', disabled: false },
|
|
114
|
-
* setup(props) {
|
|
115
|
-
* return button({
|
|
116
|
-
* class: `btn btn-${props.variant}`,
|
|
117
|
-
* disabled: props.disabled,
|
|
118
|
-
* nodes: props.label
|
|
119
|
-
* });
|
|
120
|
-
* }
|
|
121
|
-
* });
|
|
122
|
-
*
|
|
123
|
-
* // Usage: Button({ label: 'Click me' }) — TypeScript infers props
|
|
124
|
-
* ```
|
|
125
|
-
*/
|
|
126
|
-
declare function sbDefineComponent<Props extends Record<string, unknown>>(config: {
|
|
127
|
-
defaults?: Partial<Props>;
|
|
128
|
-
setup: (props: Props) => HTMLElement;
|
|
129
|
-
}): (props: Props) => HTMLElement;
|
|
130
|
-
/**
|
|
131
|
-
* Create a component with nodes slot support.
|
|
132
|
-
*
|
|
133
|
-
* Nodes are passed as a special `nodes` prop alongside the component's
|
|
134
|
-
* own props. This enables composition patterns where a parent component
|
|
135
|
-
* wraps arbitrary child content.
|
|
136
|
-
*
|
|
137
|
-
* @param config Component configuration with optional defaults and a setup function
|
|
138
|
-
* @returns A component function that accepts props (including nodes) and returns an HTMLElement
|
|
139
|
-
*
|
|
140
|
-
* @example
|
|
141
|
-
* ```ts
|
|
142
|
-
* const Card = sbDefineSlottedComponent<{ title: string }>({
|
|
143
|
-
* setup(props) {
|
|
144
|
-
* const el = div({ class: 'card' });
|
|
145
|
-
* el.appendChild(h2({ nodes: props.title }));
|
|
146
|
-
* if (props.nodes) {
|
|
147
|
-
* const nodes = Array.isArray(props.nodes) ? props.nodes : [props.nodes];
|
|
148
|
-
* nodes.forEach(child => el.appendChild(child));
|
|
149
|
-
* }
|
|
150
|
-
* return el;
|
|
151
|
-
* }
|
|
152
|
-
* });
|
|
153
|
-
*
|
|
154
|
-
* // Usage: Card({ title: 'Hello', nodes: p({ nodes: 'World' }) })
|
|
155
|
-
* ```
|
|
156
|
-
*/
|
|
157
|
-
declare function sbDefineSlottedComponent<Props extends Record<string, unknown>>(config: {
|
|
158
|
-
defaults?: Partial<Props>;
|
|
159
|
-
setup: (props: WithNodes<Props>) => HTMLElement;
|
|
160
|
-
}): (props: WithNodes<Props>) => HTMLElement;
|
|
161
|
-
/**
|
|
162
|
-
* Higher-order helper to create a component that maps outer props to inner props.
|
|
163
|
-
*
|
|
164
|
-
* Useful for adapting a generic component to a specific use case by transforming
|
|
165
|
-
* the prop interface without modifying the original component.
|
|
166
|
-
*
|
|
167
|
-
* @param component The inner component to forward mapped props to
|
|
168
|
-
* @param mapProps A function that transforms outer props into inner props
|
|
169
|
-
* @returns A new component that accepts outer props
|
|
170
|
-
*
|
|
171
|
-
* @example
|
|
172
|
-
* ```ts
|
|
173
|
-
* const IconButton = sbDefineComponent<{ icon: string; label: string; size: number }>({
|
|
174
|
-
* setup(props) { ... }
|
|
175
|
-
* });
|
|
176
|
-
*
|
|
177
|
-
* const SmallIconButton = sbWithProps(IconButton, (outer: { icon: string; label: string }) => ({
|
|
178
|
-
* icon: outer.icon,
|
|
179
|
-
* label: outer.label,
|
|
180
|
-
* size: 16
|
|
181
|
-
* }));
|
|
182
|
-
*
|
|
183
|
-
* // Usage: SmallIconButton({ icon: 'star', label: 'Favorite' })
|
|
184
|
-
* ```
|
|
185
|
-
*/
|
|
186
|
-
declare function sbWithProps<OuterProps extends Record<string, unknown>, InnerProps extends Record<string, unknown>>(component: (props: InnerProps) => HTMLElement, mapProps: (outer: OuterProps) => InnerProps): (props: OuterProps) => HTMLElement;
|
|
187
|
-
|
|
188
|
-
/**
|
|
189
|
-
* Runtime prop validation and strict typing contracts for SibuJS.
|
|
190
|
-
* Provides runtime type checking for component props in development mode.
|
|
191
|
-
*/
|
|
192
|
-
/** Validator function: returns true if valid, or an error message string. */
|
|
193
|
-
type Validator<T = unknown> = (value: T, propName: string) => true | string;
|
|
194
|
-
/** Built-in validators */
|
|
195
|
-
declare const validators: {
|
|
196
|
-
string: Validator;
|
|
197
|
-
number: Validator;
|
|
198
|
-
boolean: Validator;
|
|
199
|
-
function: Validator;
|
|
200
|
-
object: Validator;
|
|
201
|
-
array: Validator;
|
|
202
|
-
required: Validator;
|
|
203
|
-
oneOf: <T>(...values: T[]) => Validator<T>;
|
|
204
|
-
instanceOf: <T>(ctor: new (...args: unknown[]) => T) => Validator<T>;
|
|
205
|
-
arrayOf: (itemValidator: Validator) => Validator<unknown[]>;
|
|
206
|
-
shape: (schema: Record<string, Validator>) => Validator<Record<string, unknown>>;
|
|
207
|
-
optional: (validator: Validator) => Validator;
|
|
208
|
-
range: (min: number, max: number) => Validator<number>;
|
|
209
|
-
pattern: (regex: RegExp) => Validator<string>;
|
|
210
|
-
};
|
|
211
|
-
interface PropDef<T = unknown> {
|
|
212
|
-
type?: Validator<T>;
|
|
213
|
-
required?: boolean;
|
|
214
|
-
default?: T | (() => T);
|
|
215
|
-
validator?: Validator<T>;
|
|
216
|
-
}
|
|
217
|
-
type PropSchema<Props> = {
|
|
218
|
-
[K in keyof Props]: PropDef<Props[K]> | Validator<Props[K]>;
|
|
219
|
-
};
|
|
220
|
-
/**
|
|
221
|
-
* Validate props against a schema. Returns validated props with defaults applied.
|
|
222
|
-
* In production mode (process.env.NODE_ENV === 'production'), validation is skipped
|
|
223
|
-
* and only defaults are applied for performance.
|
|
224
|
-
*/
|
|
225
|
-
declare function sbValidateProps<Props extends Record<string, unknown>>(props: Partial<Props>, schema: PropSchema<Props>): Props;
|
|
226
|
-
/**
|
|
227
|
-
* Define a component with runtime prop validation.
|
|
228
|
-
* Validates props in development mode, applies defaults, then calls setup.
|
|
229
|
-
*/
|
|
230
|
-
declare function sbDefineStrictComponent<Props extends Record<string, unknown>>(config: {
|
|
231
|
-
name: string;
|
|
232
|
-
props: PropSchema<Props>;
|
|
233
|
-
setup: (props: Props) => HTMLElement;
|
|
234
|
-
}): (props: Partial<Props>) => HTMLElement;
|
|
235
|
-
/**
|
|
236
|
-
* Assert that a value satisfies a contract at runtime.
|
|
237
|
-
* No-op in production builds.
|
|
238
|
-
*/
|
|
239
|
-
declare function sbAssertType<T>(value: unknown, validator: Validator<T>, label?: string): asserts value is T;
|
|
240
|
-
/**
|
|
241
|
-
* Create a type guard function from a validator.
|
|
242
|
-
*/
|
|
243
|
-
declare function sbCreateGuard<T>(validator: Validator<T>): (value: unknown) => value is T;
|
|
244
|
-
|
|
245
|
-
export { type ComponentProps as C, type PropDef as P, RenderProp as R, type Validator as V, type PropSchema as a, sbComposable as b, sbCompose as c, sbCreateGuard as d, sbCreateSlots as e, sbDefineComponent as f, sbDefineSlottedComponent as g, sbDefineStrictComponent as h, sbValidateProps as i, sbWithBoundary as j, sbWithDefaults as k, sbWithProps as l, sbWithWrapper as m, sbAssertType as s, validators as v };
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export interface ErrorBoundaryProps {
|
|
2
|
-
/**
|
|
3
|
-
* Function that renders child content or throws.
|
|
4
|
-
*/
|
|
5
|
-
children: () => HTMLElement;
|
|
6
|
-
/**
|
|
7
|
-
* Fallback renderer given an Error and optional retry callback.
|
|
8
|
-
*/
|
|
9
|
-
fallback?: (error: Error, retry?: () => void) => HTMLElement;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* ErrorBoundary component using SibuJS reactive pattern.
|
|
13
|
-
* Catches errors from children and displays fallback UI with retry functionality.
|
|
14
|
-
*/
|
|
15
|
-
export declare function ErrorBoundary({ children, fallback }: ErrorBoundaryProps): HTMLElement;
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import { useState } from "../core/useState";
|
|
2
|
-
import { div, h3, p, button, style } from "../core/html";
|
|
3
|
-
// CSS styles for ErrorBoundary
|
|
4
|
-
const errorBoundaryStyles = `
|
|
5
|
-
.error-fallback {
|
|
6
|
-
border: 2px solid #dc3545;
|
|
7
|
-
border-radius: 8px;
|
|
8
|
-
padding: 20px;
|
|
9
|
-
margin: 10px 0;
|
|
10
|
-
background-color: #ffebee;
|
|
11
|
-
box-shadow: 0 2px 8px rgba(220, 53, 69, 0.2);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.error-fallback .section-title {
|
|
15
|
-
margin: 0 0 15px 0;
|
|
16
|
-
color: #dc3545;
|
|
17
|
-
font-size: 1.2em;
|
|
18
|
-
font-weight: bold;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
.error-fallback .text-mono {
|
|
22
|
-
font-family: 'Courier New', 'Monaco', 'Menlo', monospace;
|
|
23
|
-
background-color: #f8f9fa;
|
|
24
|
-
padding: 8px 12px;
|
|
25
|
-
border-radius: 4px;
|
|
26
|
-
border: 1px solid #e9ecef;
|
|
27
|
-
margin: 10px 0;
|
|
28
|
-
color: #495057;
|
|
29
|
-
word-break: break-word;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.error-fallback .btn {
|
|
33
|
-
display: inline-block;
|
|
34
|
-
padding: 8px 16px;
|
|
35
|
-
border: none;
|
|
36
|
-
border-radius: 4px;
|
|
37
|
-
cursor: pointer;
|
|
38
|
-
font-size: 14px;
|
|
39
|
-
font-weight: 500;
|
|
40
|
-
text-decoration: none;
|
|
41
|
-
transition: all 0.2s ease;
|
|
42
|
-
margin: 4px 0;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
.error-fallback .btn:hover {
|
|
46
|
-
transform: translateY(-1px);
|
|
47
|
-
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
.error-fallback .btn:active {
|
|
51
|
-
transform: translateY(0);
|
|
52
|
-
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
.error-fallback .btn-danger {
|
|
56
|
-
background-color: #dc3545;
|
|
57
|
-
color: white;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
.error-fallback .btn-danger:hover {
|
|
61
|
-
background-color: #c82333;
|
|
62
|
-
}
|
|
63
|
-
`;
|
|
64
|
-
// Inject styles only once
|
|
65
|
-
let stylesInjected = false;
|
|
66
|
-
function injectStyles() {
|
|
67
|
-
if (!stylesInjected) {
|
|
68
|
-
const styleElement = style({ children: errorBoundaryStyles });
|
|
69
|
-
document.head.appendChild(styleElement);
|
|
70
|
-
stylesInjected = true;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* ErrorBoundary component using SibuJS reactive pattern.
|
|
75
|
-
* Catches errors from children and displays fallback UI with retry functionality.
|
|
76
|
-
*/
|
|
77
|
-
export function ErrorBoundary({ children, fallback }) {
|
|
78
|
-
// Inject styles when component is used
|
|
79
|
-
injectStyles();
|
|
80
|
-
const [error, setError] = useState(null);
|
|
81
|
-
const retry = () => setError(null);
|
|
82
|
-
// Default fallback with built-in styling
|
|
83
|
-
const defaultFallback = (error, retry) => div({
|
|
84
|
-
class: "error-fallback",
|
|
85
|
-
children: [
|
|
86
|
-
h3({
|
|
87
|
-
children: "🚨 Something went wrong!",
|
|
88
|
-
class: "section-title"
|
|
89
|
-
}),
|
|
90
|
-
p({
|
|
91
|
-
children: `Error: ${error.message}`,
|
|
92
|
-
class: "text-mono"
|
|
93
|
-
}),
|
|
94
|
-
retry ? button({
|
|
95
|
-
children: "🔄 Try Again",
|
|
96
|
-
class: "btn btn-danger",
|
|
97
|
-
on: { click: retry }
|
|
98
|
-
}) : null
|
|
99
|
-
].filter(Boolean)
|
|
100
|
-
});
|
|
101
|
-
return div({
|
|
102
|
-
children: () => {
|
|
103
|
-
const currentError = error();
|
|
104
|
-
if (currentError) {
|
|
105
|
-
return fallback ? fallback(currentError, retry) : defaultFallback(currentError, retry);
|
|
106
|
-
}
|
|
107
|
-
try {
|
|
108
|
-
return children();
|
|
109
|
-
}
|
|
110
|
-
catch (e) {
|
|
111
|
-
const errorObj = e instanceof Error ? e : new Error(String(e));
|
|
112
|
-
// Set error state and let next render cycle show the fallback
|
|
113
|
-
setError(errorObj);
|
|
114
|
-
// Return fallback immediately instead of temporary message
|
|
115
|
-
return fallback ? fallback(errorObj, retry) : defaultFallback(errorObj, retry);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
});
|
|
119
|
-
}
|
package/dist/src/core/catch.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
type ErrorHandler = (error: unknown, context?: any) => void;
|
|
2
|
-
/**
|
|
3
|
-
* Wraps any function in a try/catch block and optionally passes error to a handler.
|
|
4
|
-
* This is used internally by components or boundaries.
|
|
5
|
-
*/
|
|
6
|
-
export declare function catchError(fn: () => any, onError?: ErrorHandler): any;
|
|
7
|
-
/**
|
|
8
|
-
* Sets a global error handler used by default if no onError is provided.
|
|
9
|
-
*/
|
|
10
|
-
export declare function setGlobalErrorHandler(handler: ErrorHandler): void;
|
|
11
|
-
export {};
|
package/dist/src/core/catch.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
let globalErrorHandler = null;
|
|
2
|
-
/**
|
|
3
|
-
* Wraps any function in a try/catch block and optionally passes error to a handler.
|
|
4
|
-
* This is used internally by components or boundaries.
|
|
5
|
-
*/
|
|
6
|
-
export function catchError(fn, onError) {
|
|
7
|
-
try {
|
|
8
|
-
return fn();
|
|
9
|
-
}
|
|
10
|
-
catch (err) {
|
|
11
|
-
if (onError) {
|
|
12
|
-
onError(err);
|
|
13
|
-
}
|
|
14
|
-
else if (globalErrorHandler) {
|
|
15
|
-
globalErrorHandler(err);
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
console.error("Unhandled error in Sibu.catch:", err);
|
|
19
|
-
}
|
|
20
|
-
return null;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Sets a global error handler used by default if no onError is provided.
|
|
25
|
-
*/
|
|
26
|
-
export function setGlobalErrorHandler(handler) {
|
|
27
|
-
globalErrorHandler = handler;
|
|
28
|
-
}
|
package/dist/src/core/each.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { NodeChild } from "./types";
|
|
2
|
-
/**
|
|
3
|
-
* Renders a list of nodes efficiently with key-based diffing.
|
|
4
|
-
* Only removes nodes whose keys are absent, reuses existing nodes, and orders them.
|
|
5
|
-
*
|
|
6
|
-
* @param getArray A reactive getter returning an array.
|
|
7
|
-
* @param render A function that returns a NodeChild for each item.
|
|
8
|
-
* @param options A key function for unique identity of items.
|
|
9
|
-
* @returns A Comment node serving as the anchor for the list.
|
|
10
|
-
*/
|
|
11
|
-
export declare function each<T>(getArray: () => T[], render: (item: T, index: number) => NodeChild, options: {
|
|
12
|
-
key: (item: T) => string | number;
|
|
13
|
-
}): Comment;
|