@akashjs/runtime 0.2.6 → 0.2.7
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/a11y.cjs +2 -0
- package/dist/a11y.cjs.map +1 -0
- package/dist/a11y.d.cts +99 -0
- package/dist/a11y.d.ts +99 -0
- package/dist/a11y.js +2 -0
- package/dist/a11y.js.map +1 -0
- package/dist/async-component.cjs +2 -0
- package/dist/async-component.cjs.map +1 -0
- package/dist/async-component.d.cts +44 -0
- package/dist/async-component.d.ts +44 -0
- package/dist/async-component.js +2 -0
- package/dist/async-component.js.map +1 -0
- package/dist/await-block.cjs +2 -0
- package/dist/await-block.cjs.map +1 -0
- package/dist/await-block.d.cts +37 -0
- package/dist/await-block.d.ts +37 -0
- package/dist/await-block.js +2 -0
- package/dist/await-block.js.map +1 -0
- package/dist/browser.cjs +2 -0
- package/dist/browser.cjs.map +1 -0
- package/dist/browser.d.cts +125 -0
- package/dist/browser.d.ts +125 -0
- package/dist/browser.js +2 -0
- package/dist/browser.js.map +1 -0
- package/dist/chunk-2HLDEWRT.cjs +2 -0
- package/dist/chunk-2HLDEWRT.cjs.map +1 -0
- package/dist/{chunk-2U643GJZ.cjs → chunk-2LKFIID7.cjs} +2 -2
- package/dist/{chunk-2U643GJZ.cjs.map → chunk-2LKFIID7.cjs.map} +1 -1
- package/dist/chunk-34PQECMN.cjs +2 -0
- package/dist/chunk-34PQECMN.cjs.map +1 -0
- package/dist/chunk-36VM3RJW.cjs +2 -0
- package/dist/chunk-36VM3RJW.cjs.map +1 -0
- package/dist/chunk-3PGU24B5.cjs +3 -0
- package/dist/chunk-3PGU24B5.cjs.map +1 -0
- package/dist/chunk-3XREYIJH.cjs +2 -0
- package/dist/chunk-3XREYIJH.cjs.map +1 -0
- package/dist/chunk-45DPEU7T.cjs +2 -0
- package/dist/chunk-45DPEU7T.cjs.map +1 -0
- package/dist/chunk-4J3QBQVW.js +4 -0
- package/dist/chunk-4J3QBQVW.js.map +1 -0
- package/dist/{chunk-2Q6SYE5O.cjs → chunk-4NQEIKH5.cjs} +2 -2
- package/dist/{chunk-2Q6SYE5O.cjs.map → chunk-4NQEIKH5.cjs.map} +1 -1
- package/dist/chunk-5QCWH6QA.cjs +4 -0
- package/dist/chunk-5QCWH6QA.cjs.map +1 -0
- package/dist/chunk-6O46EMQS.cjs +2 -0
- package/dist/chunk-6O46EMQS.cjs.map +1 -0
- package/dist/chunk-7IJUJUXE.cjs +2 -0
- package/dist/chunk-7IJUJUXE.cjs.map +1 -0
- package/dist/chunk-7UX5CSGZ.cjs +2 -0
- package/dist/chunk-7UX5CSGZ.cjs.map +1 -0
- package/dist/chunk-7VBH4F3P.js +2 -0
- package/dist/chunk-7VBH4F3P.js.map +1 -0
- package/dist/chunk-7ZPSYZHD.cjs +2 -0
- package/dist/chunk-7ZPSYZHD.cjs.map +1 -0
- package/dist/chunk-AOFLE33X.js +5 -0
- package/dist/chunk-AOFLE33X.js.map +1 -0
- package/dist/chunk-AQQQVDBQ.cjs +2 -0
- package/dist/chunk-AQQQVDBQ.cjs.map +1 -0
- package/dist/chunk-AXB5GHGO.js +2 -0
- package/dist/chunk-AXB5GHGO.js.map +1 -0
- package/dist/chunk-AZCELE44.cjs +2 -0
- package/dist/chunk-AZCELE44.cjs.map +1 -0
- package/dist/chunk-BB7P6HTR.js +2 -0
- package/dist/chunk-BB7P6HTR.js.map +1 -0
- package/dist/chunk-BGSF77LF.js +2 -0
- package/dist/chunk-BGSF77LF.js.map +1 -0
- package/dist/chunk-BHP3UTTQ.cjs +3 -0
- package/dist/chunk-BHP3UTTQ.cjs.map +1 -0
- package/dist/chunk-CP6SK2B4.js +2 -0
- package/dist/{chunk-5NHDEY2C.js.map → chunk-CP6SK2B4.js.map} +1 -1
- package/dist/chunk-DFYXFKCH.cjs +2 -0
- package/dist/chunk-DFYXFKCH.cjs.map +1 -0
- package/dist/chunk-DHFVVFZF.cjs +2 -0
- package/dist/chunk-DHFVVFZF.cjs.map +1 -0
- package/dist/chunk-DP7G45QM.cjs +13 -0
- package/dist/chunk-DP7G45QM.cjs.map +1 -0
- package/dist/chunk-E6RB7PRO.js +2 -0
- package/dist/chunk-E6RB7PRO.js.map +1 -0
- package/dist/chunk-F4FXIPR3.js +2 -0
- package/dist/chunk-F4FXIPR3.js.map +1 -0
- package/dist/chunk-F6VSSM2P.js +2 -0
- package/dist/chunk-F6VSSM2P.js.map +1 -0
- package/dist/chunk-FUVSCPU4.cjs +2 -0
- package/dist/chunk-FUVSCPU4.cjs.map +1 -0
- package/dist/chunk-FVF3T4JJ.js +2 -0
- package/dist/chunk-FVF3T4JJ.js.map +1 -0
- package/dist/chunk-FVWHMFX6.cjs +5 -0
- package/dist/chunk-FVWHMFX6.cjs.map +1 -0
- package/dist/chunk-IHEW6F2H.js +2 -0
- package/dist/chunk-IHEW6F2H.js.map +1 -0
- package/dist/chunk-IJS2EMSE.js +2 -0
- package/dist/chunk-IJS2EMSE.js.map +1 -0
- package/dist/chunk-IKVHLORY.cjs +11 -0
- package/dist/chunk-IKVHLORY.cjs.map +1 -0
- package/dist/chunk-IQGSDFBI.cjs +2 -0
- package/dist/chunk-IQGSDFBI.cjs.map +1 -0
- package/dist/chunk-J6KDUWX6.cjs +2 -0
- package/dist/chunk-J6KDUWX6.cjs.map +1 -0
- package/dist/chunk-JD3LDHUI.cjs +2 -0
- package/dist/chunk-JD3LDHUI.cjs.map +1 -0
- package/dist/chunk-JEYTB4AG.js +2 -0
- package/dist/chunk-JEYTB4AG.js.map +1 -0
- package/dist/chunk-JFLZJPVN.js +2 -0
- package/dist/chunk-JFLZJPVN.js.map +1 -0
- package/dist/chunk-JLPJ22CE.js +2 -0
- package/dist/chunk-JLPJ22CE.js.map +1 -0
- package/dist/chunk-JQCN42XX.js +2 -0
- package/dist/chunk-JQCN42XX.js.map +1 -0
- package/dist/chunk-K2HB5VFA.cjs +2 -0
- package/dist/chunk-K2HB5VFA.cjs.map +1 -0
- package/dist/chunk-K7TMUF3F.cjs +2 -0
- package/dist/chunk-K7TMUF3F.cjs.map +1 -0
- package/dist/chunk-KE7BJTCD.js +2 -0
- package/dist/chunk-KE7BJTCD.js.map +1 -0
- package/dist/chunk-KMEGUPH2.js +3 -0
- package/dist/chunk-KMEGUPH2.js.map +1 -0
- package/dist/chunk-KUPL3ZVD.js +2 -0
- package/dist/chunk-KUPL3ZVD.js.map +1 -0
- package/dist/chunk-L3ZZX36S.js +2 -0
- package/dist/chunk-L3ZZX36S.js.map +1 -0
- package/dist/chunk-LD4C62JY.cjs +2 -0
- package/dist/chunk-LD4C62JY.cjs.map +1 -0
- package/dist/chunk-LWQPLKL6.cjs +20 -0
- package/dist/chunk-LWQPLKL6.cjs.map +1 -0
- package/dist/chunk-M5IACTFC.cjs +17 -0
- package/dist/chunk-M5IACTFC.cjs.map +1 -0
- package/dist/chunk-MADMPRT2.js +20 -0
- package/dist/chunk-MADMPRT2.js.map +1 -0
- package/dist/chunk-MDHWM3C2.js +2 -0
- package/dist/chunk-MDHWM3C2.js.map +1 -0
- package/dist/chunk-N3ITIHHM.js +5 -0
- package/dist/chunk-N3ITIHHM.js.map +1 -0
- package/dist/chunk-N5APNCPB.js +2 -0
- package/dist/chunk-N5APNCPB.js.map +1 -0
- package/dist/{chunk-U53YRJNV.js → chunk-NBYFHJWB.js} +3 -3
- package/dist/{chunk-U53YRJNV.js.map → chunk-NBYFHJWB.js.map} +1 -1
- package/dist/chunk-NCXMNJUN.js +2 -0
- package/dist/chunk-NCXMNJUN.js.map +1 -0
- package/dist/chunk-NEQ5TENE.cjs +2 -0
- package/dist/chunk-NEQ5TENE.cjs.map +1 -0
- package/dist/chunk-NGU2W4PD.cjs +2 -0
- package/dist/chunk-NGU2W4PD.cjs.map +1 -0
- package/dist/{chunk-ZYVQQ5VR.cjs → chunk-NHDYQTC5.cjs} +3 -3
- package/dist/{chunk-ZYVQQ5VR.cjs.map → chunk-NHDYQTC5.cjs.map} +1 -1
- package/dist/chunk-NJXXC5JB.js +2 -0
- package/dist/chunk-NJXXC5JB.js.map +1 -0
- package/dist/chunk-NQEY7DR5.cjs +2 -0
- package/dist/chunk-NQEY7DR5.cjs.map +1 -0
- package/dist/chunk-OQV3NYDH.js +3 -0
- package/dist/chunk-OQV3NYDH.js.map +1 -0
- package/dist/chunk-OZ4GNBKA.js +2 -0
- package/dist/chunk-OZ4GNBKA.js.map +1 -0
- package/dist/chunk-PPNEAFKE.cjs +5 -0
- package/dist/chunk-PPNEAFKE.cjs.map +1 -0
- package/dist/chunk-PYASLKWF.js +2 -0
- package/dist/chunk-PYASLKWF.js.map +1 -0
- package/dist/chunk-Q6S7SUOM.js +2 -0
- package/dist/chunk-Q6S7SUOM.js.map +1 -0
- package/dist/chunk-QE2TJ6P5.cjs +2 -0
- package/dist/chunk-QE2TJ6P5.cjs.map +1 -0
- package/dist/chunk-QNVMBXVH.js +2 -0
- package/dist/chunk-QNVMBXVH.js.map +1 -0
- package/dist/chunk-QQ725EZL.js +2 -0
- package/dist/chunk-QQ725EZL.js.map +1 -0
- package/dist/chunk-QQTZQ6UX.cjs +2 -0
- package/dist/chunk-QQTZQ6UX.cjs.map +1 -0
- package/dist/{chunk-AVVJKYT3.cjs → chunk-QSPRVXFV.cjs} +2 -2
- package/dist/{chunk-AVVJKYT3.cjs.map → chunk-QSPRVXFV.cjs.map} +1 -1
- package/dist/chunk-QTQ6RUX4.cjs +5 -0
- package/dist/chunk-QTQ6RUX4.cjs.map +1 -0
- package/dist/chunk-R65RPMQX.cjs +2 -0
- package/dist/chunk-R65RPMQX.cjs.map +1 -0
- package/dist/chunk-R7NUVVHP.js +2 -0
- package/dist/{chunk-5A7KDBDU.js.map → chunk-R7NUVVHP.js.map} +1 -1
- package/dist/chunk-SXYPAP4B.js +2 -0
- package/dist/chunk-SXYPAP4B.js.map +1 -0
- package/dist/chunk-T2RVAQEU.js +2 -0
- package/dist/chunk-T2RVAQEU.js.map +1 -0
- package/dist/chunk-T7A5YOEG.cjs +2 -0
- package/dist/chunk-T7A5YOEG.cjs.map +1 -0
- package/dist/chunk-TDKDZ3QJ.cjs +2 -0
- package/dist/chunk-TDKDZ3QJ.cjs.map +1 -0
- package/dist/chunk-TFEHO7SF.cjs +2 -0
- package/dist/chunk-TFEHO7SF.cjs.map +1 -0
- package/dist/chunk-TSFY5HKB.js +17 -0
- package/dist/chunk-TSFY5HKB.js.map +1 -0
- package/dist/chunk-TYTEJYUQ.cjs +2 -0
- package/dist/chunk-TYTEJYUQ.cjs.map +1 -0
- package/dist/chunk-TZHEZW6R.js +11 -0
- package/dist/chunk-TZHEZW6R.js.map +1 -0
- package/dist/chunk-U65WRXZC.js +13 -0
- package/dist/chunk-U65WRXZC.js.map +1 -0
- package/dist/chunk-UT4MWGJ3.js +2 -0
- package/dist/chunk-UT4MWGJ3.js.map +1 -0
- package/dist/chunk-V2JDKH3W.cjs +2 -0
- package/dist/chunk-V2JDKH3W.cjs.map +1 -0
- package/dist/chunk-VNDSKBXQ.cjs +2 -0
- package/dist/chunk-VNDSKBXQ.cjs.map +1 -0
- package/dist/chunk-VO4FCKHM.js +2 -0
- package/dist/chunk-VO4FCKHM.js.map +1 -0
- package/dist/chunk-VUMMC2P5.js +2 -0
- package/dist/chunk-VUMMC2P5.js.map +1 -0
- package/dist/chunk-VUSNUBNI.js +2 -0
- package/dist/chunk-VUSNUBNI.js.map +1 -0
- package/dist/chunk-VWTULWXF.js +2 -0
- package/dist/{chunk-TKFJGLUO.js.map → chunk-VWTULWXF.js.map} +1 -1
- package/dist/chunk-VX7PSSOU.js +5 -0
- package/dist/chunk-VX7PSSOU.js.map +1 -0
- package/dist/chunk-WLSXJU2N.js +13 -0
- package/dist/chunk-WLSXJU2N.js.map +1 -0
- package/dist/chunk-WOZWFMOK.cjs +2 -0
- package/dist/chunk-WOZWFMOK.cjs.map +1 -0
- package/dist/chunk-WTDTVWCQ.cjs +2 -0
- package/dist/chunk-WTDTVWCQ.cjs.map +1 -0
- package/dist/chunk-WZ5ULION.js +2 -0
- package/dist/chunk-WZ5ULION.js.map +1 -0
- package/dist/chunk-XPLIEN2G.cjs +13 -0
- package/dist/chunk-XPLIEN2G.cjs.map +1 -0
- package/dist/chunk-XWVNLE2W.cjs +2 -0
- package/dist/chunk-XWVNLE2W.cjs.map +1 -0
- package/dist/chunk-XZR3J626.cjs +2 -0
- package/dist/chunk-XZR3J626.cjs.map +1 -0
- package/dist/chunk-YDO5KARN.js +2 -0
- package/dist/chunk-YDO5KARN.js.map +1 -0
- package/dist/chunk-YURIYBTN.cjs +2 -0
- package/dist/chunk-YURIYBTN.cjs.map +1 -0
- package/dist/chunk-YXKQTEPR.js +2 -0
- package/dist/chunk-YXKQTEPR.js.map +1 -0
- package/dist/chunk-Z6K4FYG6.js +2 -0
- package/dist/chunk-Z6K4FYG6.js.map +1 -0
- package/dist/chunk-ZJULEDLY.js +2 -0
- package/dist/chunk-ZJULEDLY.js.map +1 -0
- package/dist/{component-C1WnFcRp.d.ts → component-CPVtkASo.d.ts} +2 -3
- package/dist/{component-C1WnFcRp.d.cts → component-CxlupKuc.d.cts} +2 -3
- package/dist/composables.cjs +2 -0
- package/dist/composables.cjs.map +1 -0
- package/dist/composables.d.cts +103 -0
- package/dist/composables.d.ts +103 -0
- package/dist/composables.js +2 -0
- package/dist/composables.js.map +1 -0
- package/dist/{context-CB1mCq2h.d.cts → context-Cwt7QCpk.d.cts} +1 -9
- package/dist/{context-CB1mCq2h.d.ts → context-Cwt7QCpk.d.ts} +1 -9
- package/dist/core.cjs +1 -1
- package/dist/core.d.cts +5 -4
- package/dist/core.d.ts +5 -4
- package/dist/core.js +1 -1
- package/dist/css.cjs +2 -0
- package/dist/css.cjs.map +1 -0
- package/dist/css.d.cts +42 -0
- package/dist/css.d.ts +42 -0
- package/dist/css.js +2 -0
- package/dist/css.js.map +1 -0
- package/dist/data-table.cjs +2 -0
- package/dist/data-table.cjs.map +1 -0
- package/dist/data-table.d.cts +97 -0
- package/dist/data-table.d.ts +97 -0
- package/dist/data-table.js +2 -0
- package/dist/data-table.js.map +1 -0
- package/dist/deep-signal.cjs +2 -0
- package/dist/deep-signal.cjs.map +1 -0
- package/dist/deep-signal.d.cts +48 -0
- package/dist/deep-signal.d.ts +48 -0
- package/dist/deep-signal.js +2 -0
- package/dist/deep-signal.js.map +1 -0
- package/dist/defer.cjs +2 -0
- package/dist/defer.cjs.map +1 -0
- package/dist/defer.d.cts +55 -0
- package/dist/defer.d.ts +55 -0
- package/dist/defer.js +2 -0
- package/dist/defer.js.map +1 -0
- package/dist/deprecation.cjs +2 -0
- package/dist/deprecation.cjs.map +1 -0
- package/dist/deprecation.d.cts +119 -0
- package/dist/deprecation.d.ts +119 -0
- package/dist/deprecation.js +2 -0
- package/dist/deprecation.js.map +1 -0
- package/dist/{devtools-overlay-CJWKBTP4.js → devtools-overlay-3WRM6GKM.js} +3 -3
- package/dist/{devtools-overlay-CJWKBTP4.js.map → devtools-overlay-3WRM6GKM.js.map} +1 -1
- package/dist/{devtools-overlay-EQ3G755P.cjs → devtools-overlay-WJGSIB4N.cjs} +4 -4
- package/dist/{devtools-overlay-EQ3G755P.cjs.map → devtools-overlay-WJGSIB4N.cjs.map} +1 -1
- package/dist/devtools.cjs +2 -0
- package/dist/devtools.cjs.map +1 -0
- package/dist/devtools.d.cts +78 -0
- package/dist/devtools.d.ts +78 -0
- package/dist/devtools.js +2 -0
- package/dist/devtools.js.map +1 -0
- package/dist/di.cjs +2 -0
- package/dist/di.cjs.map +1 -0
- package/dist/di.d.cts +93 -0
- package/dist/di.d.ts +93 -0
- package/dist/di.js +2 -0
- package/dist/di.js.map +1 -0
- package/dist/directive.cjs +2 -0
- package/dist/directive.cjs.map +1 -0
- package/dist/directive.d.cts +102 -0
- package/dist/directive.d.ts +102 -0
- package/dist/directive.js +2 -0
- package/dist/directive.js.map +1 -0
- package/dist/error-boundary.cjs +2 -0
- package/dist/error-boundary.cjs.map +1 -0
- package/dist/error-boundary.d.cts +17 -0
- package/dist/error-boundary.d.ts +17 -0
- package/dist/error-boundary.js +2 -0
- package/dist/error-boundary.js.map +1 -0
- package/dist/error-hints.cjs +2 -0
- package/dist/error-hints.cjs.map +1 -0
- package/dist/error-hints.d.cts +17 -0
- package/dist/error-hints.d.ts +17 -0
- package/dist/error-hints.js +2 -0
- package/dist/error-hints.js.map +1 -0
- package/dist/errors.cjs +2 -0
- package/dist/errors.cjs.map +1 -0
- package/dist/errors.d.cts +35 -0
- package/dist/errors.d.ts +35 -0
- package/dist/errors.js +2 -0
- package/dist/errors.js.map +1 -0
- package/dist/event-bus.cjs +2 -0
- package/dist/event-bus.cjs.map +1 -0
- package/dist/event-bus.d.cts +68 -0
- package/dist/event-bus.d.ts +68 -0
- package/dist/event-bus.js +2 -0
- package/dist/event-bus.js.map +1 -0
- package/dist/event-modifiers.cjs +2 -0
- package/dist/event-modifiers.cjs.map +1 -0
- package/dist/event-modifiers.d.cts +130 -0
- package/dist/event-modifiers.d.ts +130 -0
- package/dist/event-modifiers.js +2 -0
- package/dist/event-modifiers.js.map +1 -0
- package/dist/flip.cjs +2 -0
- package/dist/flip.cjs.map +1 -0
- package/dist/flip.d.cts +66 -0
- package/dist/flip.d.ts +66 -0
- package/dist/flip.js +2 -0
- package/dist/flip.js.map +1 -0
- package/dist/head.cjs +2 -0
- package/dist/head.cjs.map +1 -0
- package/dist/head.d.cts +70 -0
- package/dist/head.d.ts +70 -0
- package/dist/head.js +2 -0
- package/dist/head.js.map +1 -0
- package/dist/hydration.cjs +2 -0
- package/dist/hydration.cjs.map +1 -0
- package/dist/hydration.d.cts +84 -0
- package/dist/hydration.d.ts +84 -0
- package/dist/hydration.js +2 -0
- package/dist/hydration.js.map +1 -0
- package/dist/image.cjs +2 -0
- package/dist/image.cjs.map +1 -0
- package/dist/image.d.cts +54 -0
- package/dist/image.d.ts +54 -0
- package/dist/image.js +2 -0
- package/dist/image.js.map +1 -0
- package/dist/index.cjs +1 -63
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +50 -3155
- package/dist/index.d.ts +50 -3155
- package/dist/index.js +1 -63
- package/dist/index.js.map +1 -1
- package/dist/infinite-scroll.cjs +2 -0
- package/dist/infinite-scroll.cjs.map +1 -0
- package/dist/infinite-scroll.d.cts +49 -0
- package/dist/infinite-scroll.d.ts +49 -0
- package/dist/infinite-scroll.js +2 -0
- package/dist/infinite-scroll.js.map +1 -0
- package/dist/leak-detector.cjs +2 -0
- package/dist/leak-detector.cjs.map +1 -0
- package/dist/leak-detector.d.cts +71 -0
- package/dist/leak-detector.d.ts +71 -0
- package/dist/leak-detector.js +2 -0
- package/dist/leak-detector.js.map +1 -0
- package/dist/machine.cjs +1 -1
- package/dist/machine.d.cts +1 -1
- package/dist/machine.d.ts +1 -1
- package/dist/machine.js +1 -1
- package/dist/offline.cjs +1 -1
- package/dist/offline.d.cts +1 -1
- package/dist/offline.d.ts +1 -1
- package/dist/offline.js +1 -1
- package/dist/perf.cjs +2 -0
- package/dist/perf.cjs.map +1 -0
- package/dist/perf.d.cts +97 -0
- package/dist/perf.d.ts +97 -0
- package/dist/perf.js +2 -0
- package/dist/perf.js.map +1 -0
- package/dist/pipes.cjs +2 -0
- package/dist/pipes.cjs.map +1 -0
- package/dist/pipes.d.cts +130 -0
- package/dist/pipes.d.ts +130 -0
- package/dist/pipes.js +2 -0
- package/dist/pipes.js.map +1 -0
- package/dist/plugin.cjs +2 -0
- package/dist/plugin.cjs.map +1 -0
- package/dist/plugin.d.cts +70 -0
- package/dist/plugin.d.ts +70 -0
- package/dist/plugin.js +2 -0
- package/dist/plugin.js.map +1 -0
- package/dist/portal.cjs +2 -0
- package/dist/portal.cjs.map +1 -0
- package/dist/portal.d.cts +30 -0
- package/dist/portal.d.ts +30 -0
- package/dist/portal.js +2 -0
- package/dist/portal.js.map +1 -0
- package/dist/pwa.cjs +1 -1
- package/dist/pwa.d.cts +1 -1
- package/dist/pwa.d.ts +1 -1
- package/dist/pwa.js +1 -1
- package/dist/query-state.cjs +2 -0
- package/dist/query-state.cjs.map +1 -0
- package/dist/query-state.d.cts +82 -0
- package/dist/query-state.d.ts +82 -0
- package/dist/query-state.js +2 -0
- package/dist/query-state.js.map +1 -0
- package/dist/reconcile.cjs +2 -0
- package/dist/reconcile.cjs.map +1 -0
- package/dist/reconcile.d.cts +42 -0
- package/dist/reconcile.d.ts +42 -0
- package/dist/reconcile.js +2 -0
- package/dist/reconcile.js.map +1 -0
- package/dist/scheduler-CKi1esN-.d.cts +9 -0
- package/dist/scheduler-CKi1esN-.d.ts +9 -0
- package/dist/security.cjs +2 -0
- package/dist/security.cjs.map +1 -0
- package/dist/security.d.cts +193 -0
- package/dist/security.d.ts +193 -0
- package/dist/security.js +2 -0
- package/dist/security.js.map +1 -0
- package/dist/seo.cjs +2 -0
- package/dist/seo.cjs.map +1 -0
- package/dist/seo.d.cts +118 -0
- package/dist/seo.d.ts +118 -0
- package/dist/seo.js +2 -0
- package/dist/seo.js.map +1 -0
- package/dist/{signals-C7XfOHHR.d.cts → signals-DionyGGY.d.cts} +7 -0
- package/dist/{signals-C7XfOHHR.d.ts → signals-DionyGGY.d.ts} +7 -0
- package/dist/snippets.cjs +2 -0
- package/dist/snippets.cjs.map +1 -0
- package/dist/snippets.d.cts +109 -0
- package/dist/snippets.d.ts +109 -0
- package/dist/snippets.js +2 -0
- package/dist/snippets.js.map +1 -0
- package/dist/ssg.cjs +2 -0
- package/dist/ssg.cjs.map +1 -0
- package/dist/ssg.d.cts +82 -0
- package/dist/ssg.d.ts +82 -0
- package/dist/ssg.js +2 -0
- package/dist/ssg.js.map +1 -0
- package/dist/ssr.cjs +1 -1
- package/dist/ssr.d.cts +2 -1
- package/dist/ssr.d.ts +2 -1
- package/dist/ssr.js +1 -1
- package/dist/store.cjs +1 -1
- package/dist/store.d.cts +1 -1
- package/dist/store.d.ts +1 -1
- package/dist/store.js +1 -1
- package/dist/suspense.cjs +2 -0
- package/dist/suspense.cjs.map +1 -0
- package/dist/suspense.d.cts +36 -0
- package/dist/suspense.d.ts +36 -0
- package/dist/suspense.js +2 -0
- package/dist/suspense.js.map +1 -0
- package/dist/switch.cjs +2 -0
- package/dist/switch.cjs.map +1 -0
- package/dist/switch.d.cts +48 -0
- package/dist/switch.d.ts +48 -0
- package/dist/switch.js +2 -0
- package/dist/switch.js.map +1 -0
- package/dist/sync.cjs +1 -1
- package/dist/sync.d.cts +1 -1
- package/dist/sync.d.ts +1 -1
- package/dist/sync.js +1 -1
- package/dist/test.cjs +2 -2
- package/dist/test.cjs.map +1 -1
- package/dist/test.d.cts +5 -4
- package/dist/test.d.ts +5 -4
- package/dist/test.js +2 -2
- package/dist/test.js.map +1 -1
- package/dist/theme.cjs +2 -0
- package/dist/theme.cjs.map +1 -0
- package/dist/theme.d.cts +56 -0
- package/dist/theme.d.ts +56 -0
- package/dist/theme.js +2 -0
- package/dist/theme.js.map +1 -0
- package/dist/toast.cjs +2 -0
- package/dist/toast.cjs.map +1 -0
- package/dist/toast.d.cts +66 -0
- package/dist/toast.d.ts +66 -0
- package/dist/toast.js +2 -0
- package/dist/toast.js.map +1 -0
- package/dist/transition.cjs +2 -0
- package/dist/transition.cjs.map +1 -0
- package/dist/transition.d.cts +90 -0
- package/dist/transition.d.ts +90 -0
- package/dist/transition.js +2 -0
- package/dist/transition.js.map +1 -0
- package/dist/tweened.cjs +2 -0
- package/dist/tweened.cjs.map +1 -0
- package/dist/tweened.d.cts +59 -0
- package/dist/tweened.d.ts +59 -0
- package/dist/tweened.js +2 -0
- package/dist/tweened.js.map +1 -0
- package/dist/types-DjZCk1xT.d.cts +4 -0
- package/dist/types-DjZCk1xT.d.ts +4 -0
- package/dist/view-transition.cjs +2 -0
- package/dist/view-transition.cjs.map +1 -0
- package/dist/view-transition.d.cts +80 -0
- package/dist/view-transition.d.ts +80 -0
- package/dist/view-transition.js +2 -0
- package/dist/view-transition.js.map +1 -0
- package/dist/virtual-list.cjs +2 -0
- package/dist/virtual-list.cjs.map +1 -0
- package/dist/virtual-list.d.cts +67 -0
- package/dist/virtual-list.d.ts +67 -0
- package/dist/virtual-list.js +2 -0
- package/dist/virtual-list.js.map +1 -0
- package/dist/watch.cjs +2 -0
- package/dist/watch.cjs.map +1 -0
- package/dist/watch.d.cts +70 -0
- package/dist/watch.d.ts +70 -0
- package/dist/watch.js +2 -0
- package/dist/watch.js.map +1 -0
- package/dist/web-component.cjs +2 -0
- package/dist/web-component.cjs.map +1 -0
- package/dist/web-component.d.cts +51 -0
- package/dist/web-component.d.ts +51 -0
- package/dist/web-component.js +2 -0
- package/dist/web-component.js.map +1 -0
- package/package.json +249 -11
- package/dist/chunk-35DJOBEO.cjs +0 -2
- package/dist/chunk-35DJOBEO.cjs.map +0 -1
- package/dist/chunk-3GRR4VW2.js +0 -13
- package/dist/chunk-3GRR4VW2.js.map +0 -1
- package/dist/chunk-5A7KDBDU.js +0 -2
- package/dist/chunk-5NHDEY2C.js +0 -2
- package/dist/chunk-6GGYM5SF.cjs +0 -5
- package/dist/chunk-6GGYM5SF.cjs.map +0 -1
- package/dist/chunk-EEILP4OL.cjs +0 -13
- package/dist/chunk-EEILP4OL.cjs.map +0 -1
- package/dist/chunk-FTTNKDZQ.js +0 -5
- package/dist/chunk-FTTNKDZQ.js.map +0 -1
- package/dist/chunk-H2HNKYN2.js +0 -2
- package/dist/chunk-H2HNKYN2.js.map +0 -1
- package/dist/chunk-TKFJGLUO.js +0 -2
package/dist/test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/test.ts"],"names":["mount","component","options","container","props","provides","node","defineComponent","key","value","provide","mountedContainers","text","el","findByText","role","findImplicitRole","id","selector","fireEvent","tick","nativeInputValueSetter","resolve","root","best","walker","IMPLICIT_ROLES","tags","tag","roles","waitFor","assertion","timeout","interval","start","err","r","waitForElement","found","createTestSignal","initialValue","inner","signal","history","setCount","read","fn","newVal","cleanup","clearStores","createTestStore","useStore","store","mockFetch","responses","defaultStatus","recorded","input","init","url","method","body","headers","v","k","path","responseData","responseStatus","responseBody","_status","rest","isNullBody","mockQueryClient","cache"],"mappings":"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","file":"test.js","sourcesContent":["/**\n * @akashjs/runtime/test — Test utilities.\n *\n * Provides mount(), fireEvent, and query helpers for testing\n * AkashJS components with Vitest (or any test runner).\n *\n * No TestBed, no module configuration, no compileComponents().\n * Just mount a component and query the resulting DOM.\n */\n\nimport { defineComponent } from './component.js';\nimport { provide } from './context.js';\nimport { signal } from './signals.js';\nimport { flushSync } from './scheduler.js';\nimport { clearStores } from './store.js';\nimport type { Signal } from './signals.js';\nimport type { Component } from './component.js';\nimport type { InjectionKey } from './context.js';\nimport type { Store } from './store.js';\n\n// --- Mount result ---\n\nexport interface MountResult {\n /** The root container element */\n container: HTMLElement;\n /** Unmount the component and clean up */\n unmount(): void;\n /** Find the first element whose text content contains the given string */\n getByText(text: string): HTMLElement;\n /** Find the first element with the given ARIA role */\n getByRole(role: string): HTMLElement;\n /** Find the first element with the given data-testid */\n getByTestId(id: string): HTMLElement;\n /** Query all elements matching a CSS selector */\n queryAll(selector: string): HTMLElement[];\n /** Query the first element matching a CSS selector, or null */\n query(selector: string): HTMLElement | null;\n}\n\n// --- Mount options ---\n\nexport interface MountOptions<P extends Record<string, unknown>> {\n /** Props to pass to the component */\n props?: P;\n /** Context values to provide (Map of InjectionKey -> value) */\n provide?: Map<InjectionKey<any>, any>;\n}\n\n// --- mount() ---\n\n/**\n * Mount a component into a detached DOM element for testing.\n *\n * ```ts\n * const { getByText, getByRole } = mount(Counter, { props: { initial: 5 } });\n * expect(getByText('Count: 5')).toBeTruthy();\n * ```\n */\nexport function mount<P extends Record<string, unknown> = Record<string, unknown>>(\n component: Component<P>,\n options?: MountOptions<P>,\n): MountResult {\n const container = document.createElement('div');\n container.setAttribute('data-akash-test-root', '');\n\n const props = (options?.props ?? {}) as P & { children?: undefined };\n const provides = options?.provide;\n\n let node: Node;\n\n if (provides && provides.size > 0) {\n // Wrap in a provider component to inject context values\n const Wrapper = defineComponent(() => {\n for (const [key, value] of provides) {\n provide(key, value);\n }\n return () => component(props);\n });\n node = Wrapper({});\n } else {\n node = component(props);\n }\n\n container.appendChild(node);\n\n // Attach to document so queries work properly\n document.body.appendChild(container);\n mountedContainers.push(container);\n\n return {\n container,\n\n unmount() {\n container.remove();\n },\n\n getByText(text: string): HTMLElement {\n const el = findByText(container, text);\n if (!el) {\n throw new Error(\n `[AkashJS Test] Could not find element with text: \"${text}\"\\n` +\n ` Container HTML: ${container.innerHTML.slice(0, 200)}`,\n );\n }\n return el;\n },\n\n getByRole(role: string): HTMLElement {\n const el = container.querySelector<HTMLElement>(`[role=\"${role}\"]`)\n ?? findImplicitRole(container, role);\n if (!el) {\n throw new Error(\n `[AkashJS Test] Could not find element with role: \"${role}\"\\n` +\n ` Container HTML: ${container.innerHTML.slice(0, 200)}`,\n );\n }\n return el;\n },\n\n getByTestId(id: string): HTMLElement {\n const el = container.querySelector<HTMLElement>(`[data-testid=\"${id}\"]`);\n if (!el) {\n throw new Error(\n `[AkashJS Test] Could not find element with data-testid: \"${id}\"\\n` +\n ` Container HTML: ${container.innerHTML.slice(0, 200)}`,\n );\n }\n return el;\n },\n\n queryAll(selector: string): HTMLElement[] {\n return Array.from(container.querySelectorAll<HTMLElement>(selector));\n },\n\n query(selector: string): HTMLElement | null {\n return container.querySelector<HTMLElement>(selector);\n },\n };\n}\n\n// --- fireEvent ---\n\n/**\n * Fire DOM events on elements. Returns a promise that resolves\n * after a microtask, giving effects time to flush.\n *\n * ```ts\n * await fireEvent.click(button);\n * await fireEvent.input(input, 'hello');\n * ```\n */\nexport const fireEvent = {\n async click(el: HTMLElement): Promise<void> {\n el.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true }));\n await tick();\n },\n\n async input(el: HTMLInputElement | HTMLTextAreaElement, value: string): Promise<void> {\n // Set the value property directly (as a user typing would)\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n el instanceof HTMLTextAreaElement ? HTMLTextAreaElement.prototype : HTMLInputElement.prototype,\n 'value',\n )?.set;\n\n if (nativeInputValueSetter) {\n nativeInputValueSetter.call(el, value);\n } else {\n (el as any).value = value;\n }\n\n el.dispatchEvent(new Event('input', { bubbles: true }));\n el.dispatchEvent(new Event('change', { bubbles: true }));\n await tick();\n },\n\n async submit(el: HTMLFormElement): Promise<void> {\n el.dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));\n await tick();\n },\n\n async focus(el: HTMLElement): Promise<void> {\n el.focus();\n el.dispatchEvent(new FocusEvent('focus', { bubbles: true }));\n await tick();\n },\n\n async blur(el: HTMLElement): Promise<void> {\n el.blur();\n el.dispatchEvent(new FocusEvent('blur', { bubbles: true }));\n await tick();\n },\n\n async keyDown(el: HTMLElement, key: string, options?: KeyboardEventInit): Promise<void> {\n el.dispatchEvent(new KeyboardEvent('keydown', { key, bubbles: true, ...options }));\n await tick();\n },\n\n async keyUp(el: HTMLElement, key: string, options?: KeyboardEventInit): Promise<void> {\n el.dispatchEvent(new KeyboardEvent('keyup', { key, bubbles: true, ...options }));\n await tick();\n },\n};\n\n// --- Internal helpers ---\n\n/** Wait one microtask for effects to flush */\nfunction tick(): Promise<void> {\n return new Promise((resolve) => queueMicrotask(resolve));\n}\n\n/** Walk DOM tree to find the deepest element containing text */\nfunction findByText(root: HTMLElement, text: string): HTMLElement | null {\n // Walk all descendant elements; keep the deepest match\n let best: HTMLElement | null = null;\n\n const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT);\n let node: Node | null = walker.nextNode(); // skip root itself on first call\n\n while (node) {\n if (node instanceof HTMLElement && node.textContent?.includes(text)) {\n best = node; // deeper elements overwrite shallower ones\n }\n node = walker.nextNode();\n }\n\n // If no descendant matched, check root itself\n if (!best && root.textContent?.includes(text)) {\n best = root;\n }\n\n return best;\n}\n\nfunction getDirectTextContent(el: HTMLElement): string {\n let text = '';\n for (const child of el.childNodes) {\n if (child.nodeType === Node.TEXT_NODE) {\n text += child.textContent ?? '';\n }\n }\n return text;\n}\n\n/** Map of HTML tag names to their implicit ARIA roles */\nconst IMPLICIT_ROLES: Record<string, string[]> = {\n button: ['button'],\n a: ['link'],\n input: ['textbox', 'checkbox', 'radio', 'spinbutton', 'slider'],\n select: ['combobox', 'listbox'],\n textarea: ['textbox'],\n img: ['img'],\n form: ['form'],\n nav: ['navigation'],\n main: ['main'],\n header: ['banner'],\n footer: ['contentinfo'],\n aside: ['complementary'],\n section: ['region'],\n article: ['article'],\n ul: ['list'],\n ol: ['list'],\n li: ['listitem'],\n table: ['table'],\n th: ['columnheader'],\n td: ['cell'],\n h1: ['heading'],\n h2: ['heading'],\n h3: ['heading'],\n h4: ['heading'],\n h5: ['heading'],\n h6: ['heading'],\n};\n\nfunction findImplicitRole(root: HTMLElement, role: string): HTMLElement | null {\n // Find tags that implicitly have this role\n const tags: string[] = [];\n for (const [tag, roles] of Object.entries(IMPLICIT_ROLES)) {\n if (roles.includes(role)) tags.push(tag);\n }\n\n if (tags.length === 0) return null;\n\n const selector = tags.join(', ');\n return root.querySelector<HTMLElement>(selector);\n}\n\n// =========================================================================\n// Async helpers\n// =========================================================================\n\nexport interface WaitForOptions {\n /** Timeout in ms (default: 1000) */\n timeout?: number;\n /** Poll interval in ms (default: 50) */\n interval?: number;\n}\n\n/**\n * Wait for an assertion to pass. Retries until it doesn't throw or times out.\n *\n * ```ts\n * await waitFor(() => expect(getByText('loaded')).toBeTruthy());\n * ```\n */\nexport async function waitFor(\n assertion: () => void | Promise<void>,\n options?: WaitForOptions,\n): Promise<void> {\n const { timeout = 1000, interval = 50 } = options ?? {};\n const start = Date.now();\n\n while (true) {\n try {\n await assertion();\n return;\n } catch (err) {\n if (Date.now() - start >= timeout) throw err;\n await new Promise(r => setTimeout(r, interval));\n }\n }\n}\n\n/**\n * Wait for an element matching a selector to appear in the container.\n *\n * ```ts\n * const el = await waitForElement(container, '.loaded');\n * ```\n */\nexport async function waitForElement(\n container: HTMLElement,\n selector: string,\n options?: WaitForOptions,\n): Promise<HTMLElement> {\n let found: HTMLElement | null = null;\n await waitFor(() => {\n found = container.querySelector<HTMLElement>(selector);\n if (!found) throw new Error(`Element \"${selector}\" not found`);\n }, options);\n return found!;\n}\n\n/**\n * Synchronously flush all pending effects. Use after signal writes\n * when you need the DOM to update before asserting.\n *\n * ```ts\n * count.set(5);\n * flush();\n * expect(getByText('5')).toBeTruthy();\n * ```\n */\nexport { flushSync as flush };\n\n// =========================================================================\n// Signal test helpers\n// =========================================================================\n\nexport interface TestSignal<T> extends Signal<T> {\n /** History of all values set on this signal (including initial) */\n history: T[];\n /** Number of times set() or update() was called */\n setCount: number;\n /** Reset history and set count */\n resetHistory(): void;\n}\n\n/**\n * Create a signal with test inspection capabilities.\n *\n * ```ts\n * const count = createTestSignal(0);\n * count.set(1);\n * count.set(2);\n * expect(count.history).toEqual([0, 1, 2]);\n * expect(count.setCount).toBe(2);\n * ```\n */\nexport function createTestSignal<T>(initialValue: T): TestSignal<T> {\n const inner = signal(initialValue);\n const history: T[] = [initialValue];\n let setCount = 0;\n\n const read = (() => inner()) as TestSignal<T>;\n\n read.set = (value: T) => {\n inner.set(value);\n history.push(value);\n setCount++;\n };\n\n read.update = (fn: (prev: T) => T) => {\n const newVal = fn(inner.peek());\n read.set(newVal);\n };\n\n read.peek = () => inner.peek();\n\n Object.defineProperty(read, 'history', { get: () => [...history] });\n Object.defineProperty(read, 'setCount', { get: () => setCount });\n\n read.resetHistory = () => {\n history.length = 0;\n history.push(inner.peek());\n setCount = 0;\n };\n\n return read;\n}\n\n// =========================================================================\n// Store test helpers\n// =========================================================================\n\n/** Track mounted containers for cleanup */\nconst mountedContainers: HTMLElement[] = [];\n\n/**\n * Unmount all rendered components and clear store singletons.\n * Call in afterEach() for clean test isolation.\n */\nexport function cleanup(): void {\n for (const container of mountedContainers) {\n container.remove();\n }\n mountedContainers.length = 0;\n clearStores();\n}\n\n/**\n * Create a fresh store instance for testing, bypassing the singleton cache.\n * Automatically calls clearStores() first so the factory returns a new instance.\n *\n * ```ts\n * const store = createTestStore(useCounter);\n * store.increment();\n * expect(store.count()).toBe(1);\n * ```\n */\nexport function createTestStore<S, G, A>(\n useStore: () => Store<S, G, A>,\n): Store<S, G, A> {\n clearStores();\n const store = useStore();\n // Remove from singleton cache so subsequent useStore() calls create\n // independent instances, not the same test store\n clearStores();\n return store;\n}\n\n// =========================================================================\n// Mock fetch\n// =========================================================================\n\nexport interface MockFetchCall {\n url: string;\n method: string;\n body?: unknown;\n headers: Record<string, string>;\n}\n\nexport interface MockFetchInstance {\n /** The mock fetch function — pass to createHttpClient({ fetch }) */\n (input: RequestInfo | URL, init?: RequestInit): Promise<Response>;\n /** All recorded calls */\n calls: () => MockFetchCall[];\n /** Number of calls made */\n callCount: () => number;\n /** Reset call history */\n reset: () => void;\n}\n\n/**\n * Create a mock fetch that returns predefined responses.\n *\n * ```ts\n * const fetch = mockFetch({\n * '/api/users': [{ id: 1, name: 'Alice' }],\n * '/api/users/1': { id: 1, name: 'Alice' },\n * });\n * const res = await fetch('/api/users');\n * const data = await res.json(); // [{ id: 1, name: 'Alice' }]\n * expect(fetch.callCount()).toBe(1);\n * ```\n */\nexport function mockFetch(\n responses: Record<string, unknown> = {},\n defaultStatus = 200,\n): MockFetchInstance {\n const recorded: MockFetchCall[] = [];\n\n const fn = async (input: RequestInfo | URL, init?: RequestInit): Promise<Response> => {\n const url = typeof input === 'string' ? input\n : input instanceof URL ? input.toString()\n : input.url;\n const method = init?.method ?? 'GET';\n let body: unknown;\n if (init?.body) {\n try { body = JSON.parse(String(init.body)); } catch { body = init.body; }\n }\n const headers: Record<string, string> = {};\n if (init?.headers) {\n const h = new Headers(init.headers);\n h.forEach((v, k) => { headers[k] = v; });\n }\n\n recorded.push({ url, method, body, headers });\n\n // Match response by URL path\n const path = url.replace(/^https?:\\/\\/[^/]+/, '').split('?')[0];\n const responseData = responses[path] ?? responses[url];\n\n if (responseData === undefined) {\n return new Response('Not Found', { status: 404 });\n }\n\n // Support _status convention: { _status: 500, error: 'msg' }\n let responseStatus = defaultStatus;\n let responseBody: unknown = responseData;\n if (responseBody && typeof responseBody === 'object' && !Array.isArray(responseBody) && '_status' in (responseBody as Record<string, unknown>)) {\n const { _status, ...rest } = responseBody as Record<string, unknown>;\n responseStatus = Number(_status);\n responseBody = rest;\n }\n\n // Null-body statuses (204, 304) cannot have a response body\n const isNullBody = responseStatus === 204 || responseStatus === 304;\n return new Response(isNullBody ? null : JSON.stringify(responseBody), {\n status: responseStatus,\n headers: isNullBody ? {} : { 'Content-Type': 'application/json' },\n });\n };\n\n fn.calls = () => [...recorded];\n fn.callCount = () => recorded.length;\n fn.reset = () => { recorded.length = 0; };\n\n return fn as MockFetchInstance;\n}\n\n// =========================================================================\n// Mock query client\n// =========================================================================\n\n/**\n * Create a mock query client for testing. Behaves like createQueryClient\n * but with no real caching — each useCachedQuery gets a fresh context.\n *\n * ```ts\n * const qc = mockQueryClient();\n * const posts = useCachedQuery(qc, ['posts'], fetcher);\n * ```\n */\nexport function mockQueryClient(): {\n invalidate: (prefix: unknown) => void;\n setQueryData: (key: unknown, updater: unknown) => void;\n getQueryData: (key: unknown) => unknown;\n removeQuery: (key: unknown) => void;\n clear: () => void;\n _cache: Map<string, unknown>;\n _options: { defaultStaleTime?: number };\n} {\n const cache = new Map<string, unknown>();\n return {\n invalidate: () => {},\n setQueryData: () => {},\n getQueryData: () => undefined,\n removeQuery: (key) => { cache.delete(JSON.stringify(key)); },\n clear: () => { cache.clear(); },\n _cache: cache,\n _options: { defaultStaleTime: 0 },\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/test.ts"],"names":["mount","component","options","container","props","provides","node","defineComponent","key","value","provide","mountedContainers","text","el","findByText","role","findImplicitRole","id","selector","fireEvent","tick","nativeInputValueSetter","resolve","root","best","walker","IMPLICIT_ROLES","tags","tag","roles","waitFor","assertion","timeout","interval","start","err","r","waitForElement","found","createTestSignal","initialValue","inner","signal","history","setCount","read","fn","newVal","cleanup","clearStores","createTestStore","useStore","store","mockFetch","responses","defaultStatus","recorded","input","init","url","method","body","headers","v","k","path","responseData","responseStatus","responseBody","_status","rest","isNullBody","mockQueryClient","cache"],"mappings":"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","file":"test.js","sourcesContent":["/**\n * @akashjs/runtime/test — Test utilities.\n *\n * Provides mount(), fireEvent, and query helpers for testing\n * AkashJS components with Vitest (or any test runner).\n *\n * No TestBed, no module configuration, no compileComponents().\n * Just mount a component and query the resulting DOM.\n */\n\nimport { defineComponent } from './component.js';\nimport { provide } from './context.js';\nimport { signal } from './signals.js';\nimport { flushSync } from './scheduler.js';\nimport { clearStores } from './store.js';\nimport type { Signal } from './signals.js';\nimport type { Component } from './component.js';\nimport type { InjectionKey } from './context.js';\nimport type { Store } from './store.js';\n\n// --- Mount result ---\n\nexport interface MountResult {\n /** The root container element */\n container: HTMLElement;\n /** Unmount the component and clean up */\n unmount(): void;\n /** Find the first element whose text content contains the given string */\n getByText(text: string): HTMLElement;\n /** Find the first element with the given ARIA role */\n getByRole(role: string): HTMLElement;\n /** Find the first element with the given data-testid */\n getByTestId(id: string): HTMLElement;\n /** Query all elements matching a CSS selector */\n queryAll(selector: string): HTMLElement[];\n /** Query the first element matching a CSS selector, or null */\n query(selector: string): HTMLElement | null;\n}\n\n// --- Mount options ---\n\nexport interface MountOptions<P extends Record<string, unknown>> {\n /** Props to pass to the component */\n props?: P;\n /** Context values to provide (Map of InjectionKey -> value) */\n provide?: Map<InjectionKey<any>, any>;\n}\n\n// --- mount() ---\n\n/**\n * Mount a component into a detached DOM element for testing.\n *\n * ```ts\n * const { getByText, getByRole } = mount(Counter, { props: { initial: 5 } });\n * expect(getByText('Count: 5')).toBeTruthy();\n * ```\n */\nexport function mount<P extends Record<string, unknown> = Record<string, unknown>>(\n component: Component<P>,\n options?: MountOptions<P>,\n): MountResult {\n const container = document.createElement('div');\n container.setAttribute('data-akash-test-root', '');\n\n const props = (options?.props ?? {}) as P & { children?: undefined };\n const provides = options?.provide;\n\n let node: Node;\n\n if (provides && provides.size > 0) {\n // Wrap in a provider component to inject context values\n const Wrapper = defineComponent(() => {\n for (const [key, value] of provides) {\n provide(key, value);\n }\n return () => component(props);\n });\n node = Wrapper({});\n } else {\n node = component(props);\n }\n\n container.appendChild(node);\n\n // Attach to document so queries work properly\n document.body.appendChild(container);\n mountedContainers.push(container);\n\n return {\n container,\n\n unmount() {\n container.remove();\n },\n\n getByText(text: string): HTMLElement {\n const el = findByText(container, text);\n if (!el) {\n throw new Error(\n `[AkashJS Test] Could not find element with text: \"${text}\"\\n` +\n ` Container HTML: ${container.innerHTML.slice(0, 200)}`,\n );\n }\n return el;\n },\n\n getByRole(role: string): HTMLElement {\n const el = container.querySelector<HTMLElement>(`[role=\"${role}\"]`)\n ?? findImplicitRole(container, role);\n if (!el) {\n throw new Error(\n `[AkashJS Test] Could not find element with role: \"${role}\"\\n` +\n ` Container HTML: ${container.innerHTML.slice(0, 200)}`,\n );\n }\n return el;\n },\n\n getByTestId(id: string): HTMLElement {\n const el = container.querySelector<HTMLElement>(`[data-testid=\"${id}\"]`);\n if (!el) {\n throw new Error(\n `[AkashJS Test] Could not find element with data-testid: \"${id}\"\\n` +\n ` Container HTML: ${container.innerHTML.slice(0, 200)}`,\n );\n }\n return el;\n },\n\n queryAll(selector: string): HTMLElement[] {\n return Array.from(container.querySelectorAll<HTMLElement>(selector));\n },\n\n query(selector: string): HTMLElement | null {\n return container.querySelector<HTMLElement>(selector);\n },\n };\n}\n\n// --- fireEvent ---\n\n/**\n * Fire DOM events on elements. Returns a promise that resolves\n * after a microtask, giving effects time to flush.\n *\n * ```ts\n * await fireEvent.click(button);\n * await fireEvent.input(input, 'hello');\n * ```\n */\nexport const fireEvent = {\n async click(el: HTMLElement): Promise<void> {\n el.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true }));\n await tick();\n },\n\n async input(el: HTMLInputElement | HTMLTextAreaElement, value: string): Promise<void> {\n // Set the value property directly (as a user typing would)\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n el instanceof HTMLTextAreaElement ? HTMLTextAreaElement.prototype : HTMLInputElement.prototype,\n 'value',\n )?.set;\n\n if (nativeInputValueSetter) {\n nativeInputValueSetter.call(el, value);\n } else {\n (el as any).value = value;\n }\n\n el.dispatchEvent(new Event('input', { bubbles: true }));\n el.dispatchEvent(new Event('change', { bubbles: true }));\n await tick();\n },\n\n async submit(el: HTMLFormElement): Promise<void> {\n el.dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));\n await tick();\n },\n\n async focus(el: HTMLElement): Promise<void> {\n el.focus();\n el.dispatchEvent(new FocusEvent('focus', { bubbles: true }));\n await tick();\n },\n\n async blur(el: HTMLElement): Promise<void> {\n el.blur();\n el.dispatchEvent(new FocusEvent('blur', { bubbles: true }));\n await tick();\n },\n\n async keyDown(el: HTMLElement, key: string, options?: KeyboardEventInit): Promise<void> {\n el.dispatchEvent(new KeyboardEvent('keydown', { key, bubbles: true, ...options }));\n await tick();\n },\n\n async keyUp(el: HTMLElement, key: string, options?: KeyboardEventInit): Promise<void> {\n el.dispatchEvent(new KeyboardEvent('keyup', { key, bubbles: true, ...options }));\n await tick();\n },\n};\n\n// --- Internal helpers ---\n\n/** Wait one microtask for effects to flush */\nfunction tick(): Promise<void> {\n return new Promise((resolve) => queueMicrotask(resolve));\n}\n\n/** Walk DOM tree to find the deepest element containing text */\nfunction findByText(root: HTMLElement, text: string): HTMLElement | null {\n // Walk all descendant elements; keep the deepest match\n let best: HTMLElement | null = null;\n\n const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT);\n let node: Node | null = walker.nextNode(); // skip root itself on first call\n\n while (node) {\n if (node instanceof HTMLElement && node.textContent?.includes(text)) {\n best = node; // deeper elements overwrite shallower ones\n }\n node = walker.nextNode();\n }\n\n // If no descendant matched, check root itself\n if (!best && root.textContent?.includes(text)) {\n best = root;\n }\n\n return best;\n}\n\nfunction getDirectTextContent(el: HTMLElement): string {\n let text = '';\n for (const child of el.childNodes) {\n if (child.nodeType === Node.TEXT_NODE) {\n text += child.textContent ?? '';\n }\n }\n return text;\n}\n\n/** Map of HTML tag names to their implicit ARIA roles */\nconst IMPLICIT_ROLES: Record<string, string[]> = {\n button: ['button'],\n a: ['link'],\n input: ['textbox', 'checkbox', 'radio', 'spinbutton', 'slider'],\n select: ['combobox', 'listbox'],\n textarea: ['textbox'],\n img: ['img'],\n form: ['form'],\n nav: ['navigation'],\n main: ['main'],\n header: ['banner'],\n footer: ['contentinfo'],\n aside: ['complementary'],\n section: ['region'],\n article: ['article'],\n ul: ['list'],\n ol: ['list'],\n li: ['listitem'],\n table: ['table'],\n th: ['columnheader'],\n td: ['cell'],\n h1: ['heading'],\n h2: ['heading'],\n h3: ['heading'],\n h4: ['heading'],\n h5: ['heading'],\n h6: ['heading'],\n};\n\nfunction findImplicitRole(root: HTMLElement, role: string): HTMLElement | null {\n // Find tags that implicitly have this role\n const tags: string[] = [];\n for (const [tag, roles] of Object.entries(IMPLICIT_ROLES)) {\n if (roles.includes(role)) tags.push(tag);\n }\n\n if (tags.length === 0) return null;\n\n const selector = tags.join(', ');\n return root.querySelector<HTMLElement>(selector);\n}\n\n// =========================================================================\n// Async helpers\n// =========================================================================\n\nexport interface WaitForOptions {\n /** Timeout in ms (default: 1000) */\n timeout?: number;\n /** Poll interval in ms (default: 50) */\n interval?: number;\n}\n\n/**\n * Wait for an assertion to pass. Retries until it doesn't throw or times out.\n *\n * ```ts\n * await waitFor(() => expect(getByText('loaded')).toBeTruthy());\n * ```\n */\nexport async function waitFor(\n assertion: () => void | Promise<void>,\n options?: WaitForOptions,\n): Promise<void> {\n const { timeout = 1000, interval = 50 } = options ?? {};\n const start = Date.now();\n\n while (true) {\n try {\n await assertion();\n return;\n } catch (err) {\n if (Date.now() - start >= timeout) throw err;\n await new Promise(r => setTimeout(r, interval));\n }\n }\n}\n\n/**\n * Wait for an element matching a selector to appear in the container.\n *\n * ```ts\n * const el = await waitForElement(container, '.loaded');\n * ```\n */\nexport async function waitForElement(\n container: HTMLElement,\n selector: string,\n options?: WaitForOptions,\n): Promise<HTMLElement> {\n let found: HTMLElement | null = null;\n await waitFor(() => {\n found = container.querySelector<HTMLElement>(selector);\n if (!found) throw new Error(`Element \"${selector}\" not found`);\n }, options);\n return found!;\n}\n\n/**\n * Synchronously flush all pending effects. Use after signal writes\n * when you need the DOM to update before asserting.\n *\n * ```ts\n * count.set(5);\n * flush();\n * expect(getByText('5')).toBeTruthy();\n * ```\n */\nexport { flushSync as flush };\n\n// =========================================================================\n// Signal test helpers\n// =========================================================================\n\nexport interface TestSignal<T> extends Signal<T> {\n /** History of all values set on this signal (including initial) */\n history: T[];\n /** Number of times set() or update() was called */\n setCount: number;\n /** Reset history and set count */\n resetHistory(): void;\n}\n\n/**\n * Create a signal with test inspection capabilities.\n *\n * ```ts\n * const count = createTestSignal(0);\n * count.set(1);\n * count.set(2);\n * expect(count.history).toEqual([0, 1, 2]);\n * expect(count.setCount).toBe(2);\n * ```\n */\nexport function createTestSignal<T>(initialValue: T): TestSignal<T> {\n const inner = signal(initialValue);\n const history: T[] = [initialValue];\n let setCount = 0;\n\n const read = (() => inner()) as TestSignal<T>;\n\n read.set = (value: T) => {\n inner.set(value);\n history.push(value);\n setCount++;\n };\n\n read.update = (fn: (prev: T) => T) => {\n const newVal = fn(inner.peek());\n read.set(newVal);\n };\n\n read.peek = () => inner.peek();\n\n Object.defineProperty(read, 'history', { get: () => [...history] });\n Object.defineProperty(read, 'setCount', { get: () => setCount });\n\n read.resetHistory = () => {\n history.length = 0;\n history.push(inner.peek());\n setCount = 0;\n };\n\n return read;\n}\n\n// =========================================================================\n// Store test helpers\n// =========================================================================\n\n/** Track mounted containers for cleanup */\nconst mountedContainers: HTMLElement[] = [];\n\n/**\n * Unmount all rendered components and clear store singletons.\n * Call in afterEach() for clean test isolation.\n */\nexport function cleanup(): void {\n for (const container of mountedContainers) {\n container.remove();\n }\n mountedContainers.length = 0;\n clearStores();\n}\n\n/**\n * Create a fresh store instance for testing, bypassing the singleton cache.\n * Automatically calls clearStores() first so the factory returns a new instance.\n *\n * ```ts\n * const store = createTestStore(useCounter);\n * store.increment();\n * expect(store.count()).toBe(1);\n * ```\n */\nexport function createTestStore<S, G, A>(\n useStore: () => Store<S, G, A>,\n): Store<S, G, A> {\n clearStores();\n const store = useStore();\n // Remove from singleton cache so subsequent useStore() calls create\n // independent instances, not the same test store\n clearStores();\n return store;\n}\n\n// =========================================================================\n// Mock fetch\n// =========================================================================\n\nexport interface MockFetchCall {\n url: string;\n method: string;\n body?: unknown;\n headers: Record<string, string>;\n}\n\nexport interface MockFetchInstance {\n /** The mock fetch function — pass to createHttpClient({ fetch }) */\n (input: RequestInfo | URL, init?: RequestInit): Promise<Response>;\n /** All recorded calls */\n calls: () => MockFetchCall[];\n /** Number of calls made */\n callCount: () => number;\n /** Reset call history */\n reset: () => void;\n}\n\n/**\n * Create a mock fetch that returns predefined responses.\n *\n * ```ts\n * const fetch = mockFetch({\n * '/api/users': [{ id: 1, name: 'Alice' }],\n * '/api/users/1': { id: 1, name: 'Alice' },\n * });\n * const res = await fetch('/api/users');\n * const data = await res.json(); // [{ id: 1, name: 'Alice' }]\n * expect(fetch.callCount()).toBe(1);\n * ```\n */\nexport function mockFetch(\n responses: Record<string, unknown> = {},\n defaultStatus = 200,\n): MockFetchInstance {\n const recorded: MockFetchCall[] = [];\n\n const fn = async (input: RequestInfo | URL, init?: RequestInit): Promise<Response> => {\n const url = typeof input === 'string' ? input\n : input instanceof URL ? input.toString()\n : input.url;\n const method = init?.method ?? 'GET';\n let body: unknown;\n if (init?.body) {\n try { body = JSON.parse(String(init.body)); } catch { body = init.body; }\n }\n const headers: Record<string, string> = {};\n if (init?.headers) {\n const h = new Headers(init.headers);\n h.forEach((v, k) => { headers[k] = v; });\n }\n\n recorded.push({ url, method, body, headers });\n\n // Match response by URL path\n const path = url.replace(/^https?:\\/\\/[^/]+/, '').split('?')[0];\n const responseData = responses[path] ?? responses[url];\n\n if (responseData === undefined) {\n return new Response('Not Found', { status: 404 });\n }\n\n // Support _status convention: { _status: 500, error: 'msg' }\n let responseStatus = defaultStatus;\n let responseBody: unknown = responseData;\n if (responseBody && typeof responseBody === 'object' && !Array.isArray(responseBody) && '_status' in (responseBody as Record<string, unknown>)) {\n const { _status, ...rest } = responseBody as Record<string, unknown>;\n responseStatus = Number(_status);\n responseBody = rest;\n }\n\n // Null-body statuses (204, 304) cannot have a response body\n const isNullBody = responseStatus === 204 || responseStatus === 304;\n return new Response(isNullBody ? null : JSON.stringify(responseBody), {\n status: responseStatus,\n headers: isNullBody ? {} : { 'Content-Type': 'application/json' },\n });\n };\n\n fn.calls = () => [...recorded];\n fn.callCount = () => recorded.length;\n fn.reset = () => { recorded.length = 0; };\n\n return fn as MockFetchInstance;\n}\n\n// =========================================================================\n// Mock query client\n// =========================================================================\n\n/**\n * Create a mock query client for testing. Behaves like createQueryClient\n * but with no real caching — each useCachedQuery gets a fresh context.\n *\n * ```ts\n * const qc = mockQueryClient();\n * const posts = useCachedQuery(qc, ['posts'], fetcher);\n * ```\n */\nexport function mockQueryClient(): {\n invalidate: (prefix: unknown) => void;\n setQueryData: (key: unknown, updater: unknown) => void;\n getQueryData: (key: unknown) => unknown;\n removeQuery: (key: unknown) => void;\n clear: () => void;\n _cache: Map<string, unknown>;\n _options: { defaultStaleTime?: number };\n} {\n const cache = new Map<string, unknown>();\n return {\n invalidate: () => {},\n setQueryData: () => {},\n getQueryData: () => undefined,\n removeQuery: (key) => { cache.delete(JSON.stringify(key)); },\n clear: () => { cache.clear(); },\n _cache: cache,\n _options: { defaultStaleTime: 0 },\n };\n}\n"]}
|
package/dist/theme.cjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';var chunkXZR3J626_cjs=require('./chunk-XZR3J626.cjs');require('./chunk-WOZWFMOK.cjs'),require('./chunk-XPLIEN2G.cjs');Object.defineProperty(exports,"useTheme",{enumerable:true,get:function(){return chunkXZR3J626_cjs.a}});//# sourceMappingURL=theme.cjs.map
|
|
2
|
+
//# sourceMappingURL=theme.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"theme.cjs"}
|
package/dist/theme.d.cts
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { R as ReadonlySignal } from './signals-DionyGGY.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Theme / dark mode system.
|
|
5
|
+
*
|
|
6
|
+
* Signal-based theme management with system preference detection,
|
|
7
|
+
* CSS variable injection, and localStorage persistence.
|
|
8
|
+
*
|
|
9
|
+
* ```ts
|
|
10
|
+
* const theme = useTheme({
|
|
11
|
+
* themes: {
|
|
12
|
+
* light: { '--bg': '#fff', '--text': '#111' },
|
|
13
|
+
* dark: { '--bg': '#111', '--text': '#eee' },
|
|
14
|
+
* },
|
|
15
|
+
* });
|
|
16
|
+
*
|
|
17
|
+
* theme.current(); // 'light' or 'dark'
|
|
18
|
+
* theme.toggle(); // switch between light/dark
|
|
19
|
+
* theme.set('dark'); // set explicitly
|
|
20
|
+
* theme.isDark(); // boolean
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
type ThemeVariables = Record<string, string>;
|
|
25
|
+
interface ThemeConfig {
|
|
26
|
+
/** Theme definitions (name → CSS variables) */
|
|
27
|
+
themes?: Record<string, ThemeVariables>;
|
|
28
|
+
/** Default theme name (default: auto-detect from system) */
|
|
29
|
+
defaultTheme?: string;
|
|
30
|
+
/** localStorage key for persistence (default: 'akash-theme') */
|
|
31
|
+
storageKey?: string;
|
|
32
|
+
/** CSS attribute to set on <html> (default: 'data-theme') */
|
|
33
|
+
attribute?: string;
|
|
34
|
+
/** Whether to sync with system preference (default: true) */
|
|
35
|
+
syncSystem?: boolean;
|
|
36
|
+
}
|
|
37
|
+
interface Theme {
|
|
38
|
+
/** Current theme name (reactive) */
|
|
39
|
+
current: ReadonlySignal<string>;
|
|
40
|
+
/** Whether dark mode is active */
|
|
41
|
+
isDark: ReadonlySignal<boolean>;
|
|
42
|
+
/** Set a specific theme */
|
|
43
|
+
set(theme: string): void;
|
|
44
|
+
/** Toggle between light and dark */
|
|
45
|
+
toggle(): void;
|
|
46
|
+
/** Set the system preference strategy */
|
|
47
|
+
setSystem(): void;
|
|
48
|
+
/** Available theme names */
|
|
49
|
+
themes: string[];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Create a theme manager with system preference detection and persistence.
|
|
53
|
+
*/
|
|
54
|
+
declare function useTheme(config?: ThemeConfig): Theme;
|
|
55
|
+
|
|
56
|
+
export { type Theme, type ThemeConfig, type ThemeVariables, useTheme };
|
package/dist/theme.d.ts
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { R as ReadonlySignal } from './signals-DionyGGY.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Theme / dark mode system.
|
|
5
|
+
*
|
|
6
|
+
* Signal-based theme management with system preference detection,
|
|
7
|
+
* CSS variable injection, and localStorage persistence.
|
|
8
|
+
*
|
|
9
|
+
* ```ts
|
|
10
|
+
* const theme = useTheme({
|
|
11
|
+
* themes: {
|
|
12
|
+
* light: { '--bg': '#fff', '--text': '#111' },
|
|
13
|
+
* dark: { '--bg': '#111', '--text': '#eee' },
|
|
14
|
+
* },
|
|
15
|
+
* });
|
|
16
|
+
*
|
|
17
|
+
* theme.current(); // 'light' or 'dark'
|
|
18
|
+
* theme.toggle(); // switch between light/dark
|
|
19
|
+
* theme.set('dark'); // set explicitly
|
|
20
|
+
* theme.isDark(); // boolean
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
type ThemeVariables = Record<string, string>;
|
|
25
|
+
interface ThemeConfig {
|
|
26
|
+
/** Theme definitions (name → CSS variables) */
|
|
27
|
+
themes?: Record<string, ThemeVariables>;
|
|
28
|
+
/** Default theme name (default: auto-detect from system) */
|
|
29
|
+
defaultTheme?: string;
|
|
30
|
+
/** localStorage key for persistence (default: 'akash-theme') */
|
|
31
|
+
storageKey?: string;
|
|
32
|
+
/** CSS attribute to set on <html> (default: 'data-theme') */
|
|
33
|
+
attribute?: string;
|
|
34
|
+
/** Whether to sync with system preference (default: true) */
|
|
35
|
+
syncSystem?: boolean;
|
|
36
|
+
}
|
|
37
|
+
interface Theme {
|
|
38
|
+
/** Current theme name (reactive) */
|
|
39
|
+
current: ReadonlySignal<string>;
|
|
40
|
+
/** Whether dark mode is active */
|
|
41
|
+
isDark: ReadonlySignal<boolean>;
|
|
42
|
+
/** Set a specific theme */
|
|
43
|
+
set(theme: string): void;
|
|
44
|
+
/** Toggle between light and dark */
|
|
45
|
+
toggle(): void;
|
|
46
|
+
/** Set the system preference strategy */
|
|
47
|
+
setSystem(): void;
|
|
48
|
+
/** Available theme names */
|
|
49
|
+
themes: string[];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Create a theme manager with system preference detection and persistence.
|
|
53
|
+
*/
|
|
54
|
+
declare function useTheme(config?: ThemeConfig): Theme;
|
|
55
|
+
|
|
56
|
+
export { type Theme, type ThemeConfig, type ThemeVariables, useTheme };
|
package/dist/theme.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"theme.js"}
|
package/dist/toast.cjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';var chunkJ6KDUWX6_cjs=require('./chunk-J6KDUWX6.cjs');require('./chunk-WOZWFMOK.cjs'),require('./chunk-XPLIEN2G.cjs');Object.defineProperty(exports,"createToaster",{enumerable:true,get:function(){return chunkJ6KDUWX6_cjs.a}});//# sourceMappingURL=toast.cjs.map
|
|
2
|
+
//# sourceMappingURL=toast.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"toast.cjs"}
|
package/dist/toast.d.cts
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { R as ReadonlySignal } from './signals-DionyGGY.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Toast notification system.
|
|
5
|
+
*
|
|
6
|
+
* Signal-based toast queue with auto-dismiss, stacking, and positions.
|
|
7
|
+
*
|
|
8
|
+
* ```ts
|
|
9
|
+
* const toast = createToaster();
|
|
10
|
+
* toast.success('Saved!');
|
|
11
|
+
* toast.error('Something went wrong');
|
|
12
|
+
* toast.info('Tip: try dark mode', { duration: 5000 });
|
|
13
|
+
* toast.toasts(); // reactive list of active toasts
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
type ToastType = 'success' | 'error' | 'info' | 'warning';
|
|
18
|
+
type ToastPosition = 'top-right' | 'top-left' | 'top-center' | 'bottom-right' | 'bottom-left' | 'bottom-center';
|
|
19
|
+
interface Toast {
|
|
20
|
+
id: string;
|
|
21
|
+
type: ToastType;
|
|
22
|
+
message: string;
|
|
23
|
+
duration: number;
|
|
24
|
+
dismissible: boolean;
|
|
25
|
+
createdAt: number;
|
|
26
|
+
}
|
|
27
|
+
interface ToastOptions {
|
|
28
|
+
/** Duration in ms (default: 3000, 0 = no auto-dismiss) */
|
|
29
|
+
duration?: number;
|
|
30
|
+
/** Whether the toast can be manually dismissed (default: true) */
|
|
31
|
+
dismissible?: boolean;
|
|
32
|
+
}
|
|
33
|
+
interface ToasterOptions {
|
|
34
|
+
/** Max visible toasts (default: 5) */
|
|
35
|
+
maxVisible?: number;
|
|
36
|
+
/** Default duration in ms (default: 3000) */
|
|
37
|
+
defaultDuration?: number;
|
|
38
|
+
/** Position (default: 'top-right') */
|
|
39
|
+
position?: ToastPosition;
|
|
40
|
+
}
|
|
41
|
+
interface Toaster {
|
|
42
|
+
/** Active toasts (reactive signal) */
|
|
43
|
+
toasts: ReadonlySignal<Toast[]>;
|
|
44
|
+
/** Position setting */
|
|
45
|
+
position: ToastPosition;
|
|
46
|
+
/** Show a success toast */
|
|
47
|
+
success(message: string, options?: ToastOptions): string;
|
|
48
|
+
/** Show an error toast */
|
|
49
|
+
error(message: string, options?: ToastOptions): string;
|
|
50
|
+
/** Show an info toast */
|
|
51
|
+
info(message: string, options?: ToastOptions): string;
|
|
52
|
+
/** Show a warning toast */
|
|
53
|
+
warning(message: string, options?: ToastOptions): string;
|
|
54
|
+
/** Show a toast with custom type */
|
|
55
|
+
add(type: ToastType, message: string, options?: ToastOptions): string;
|
|
56
|
+
/** Dismiss a specific toast */
|
|
57
|
+
dismiss(id: string): void;
|
|
58
|
+
/** Dismiss all toasts */
|
|
59
|
+
dismissAll(): void;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Create a toast notification manager.
|
|
63
|
+
*/
|
|
64
|
+
declare function createToaster(options?: ToasterOptions): Toaster;
|
|
65
|
+
|
|
66
|
+
export { type Toast, type ToastOptions, type ToastPosition, type ToastType, type Toaster, type ToasterOptions, createToaster };
|
package/dist/toast.d.ts
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { R as ReadonlySignal } from './signals-DionyGGY.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Toast notification system.
|
|
5
|
+
*
|
|
6
|
+
* Signal-based toast queue with auto-dismiss, stacking, and positions.
|
|
7
|
+
*
|
|
8
|
+
* ```ts
|
|
9
|
+
* const toast = createToaster();
|
|
10
|
+
* toast.success('Saved!');
|
|
11
|
+
* toast.error('Something went wrong');
|
|
12
|
+
* toast.info('Tip: try dark mode', { duration: 5000 });
|
|
13
|
+
* toast.toasts(); // reactive list of active toasts
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
type ToastType = 'success' | 'error' | 'info' | 'warning';
|
|
18
|
+
type ToastPosition = 'top-right' | 'top-left' | 'top-center' | 'bottom-right' | 'bottom-left' | 'bottom-center';
|
|
19
|
+
interface Toast {
|
|
20
|
+
id: string;
|
|
21
|
+
type: ToastType;
|
|
22
|
+
message: string;
|
|
23
|
+
duration: number;
|
|
24
|
+
dismissible: boolean;
|
|
25
|
+
createdAt: number;
|
|
26
|
+
}
|
|
27
|
+
interface ToastOptions {
|
|
28
|
+
/** Duration in ms (default: 3000, 0 = no auto-dismiss) */
|
|
29
|
+
duration?: number;
|
|
30
|
+
/** Whether the toast can be manually dismissed (default: true) */
|
|
31
|
+
dismissible?: boolean;
|
|
32
|
+
}
|
|
33
|
+
interface ToasterOptions {
|
|
34
|
+
/** Max visible toasts (default: 5) */
|
|
35
|
+
maxVisible?: number;
|
|
36
|
+
/** Default duration in ms (default: 3000) */
|
|
37
|
+
defaultDuration?: number;
|
|
38
|
+
/** Position (default: 'top-right') */
|
|
39
|
+
position?: ToastPosition;
|
|
40
|
+
}
|
|
41
|
+
interface Toaster {
|
|
42
|
+
/** Active toasts (reactive signal) */
|
|
43
|
+
toasts: ReadonlySignal<Toast[]>;
|
|
44
|
+
/** Position setting */
|
|
45
|
+
position: ToastPosition;
|
|
46
|
+
/** Show a success toast */
|
|
47
|
+
success(message: string, options?: ToastOptions): string;
|
|
48
|
+
/** Show an error toast */
|
|
49
|
+
error(message: string, options?: ToastOptions): string;
|
|
50
|
+
/** Show an info toast */
|
|
51
|
+
info(message: string, options?: ToastOptions): string;
|
|
52
|
+
/** Show a warning toast */
|
|
53
|
+
warning(message: string, options?: ToastOptions): string;
|
|
54
|
+
/** Show a toast with custom type */
|
|
55
|
+
add(type: ToastType, message: string, options?: ToastOptions): string;
|
|
56
|
+
/** Dismiss a specific toast */
|
|
57
|
+
dismiss(id: string): void;
|
|
58
|
+
/** Dismiss all toasts */
|
|
59
|
+
dismissAll(): void;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Create a toast notification manager.
|
|
63
|
+
*/
|
|
64
|
+
declare function createToaster(options?: ToasterOptions): Toaster;
|
|
65
|
+
|
|
66
|
+
export { type Toast, type ToastOptions, type ToastPosition, type ToastType, type Toaster, type ToasterOptions, createToaster };
|
package/dist/toast.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"toast.js"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';var chunkM5IACTFC_cjs=require('./chunk-M5IACTFC.cjs');require('./chunk-XWVNLE2W.cjs'),require('./chunk-IQGSDFBI.cjs'),require('./chunk-PPNEAFKE.cjs'),require('./chunk-WOZWFMOK.cjs'),require('./chunk-XPLIEN2G.cjs');Object.defineProperty(exports,"Transition",{enumerable:true,get:function(){return chunkM5IACTFC_cjs.d}});Object.defineProperty(exports,"enterTransition",{enumerable:true,get:function(){return chunkM5IACTFC_cjs.b}});Object.defineProperty(exports,"exitTransition",{enumerable:true,get:function(){return chunkM5IACTFC_cjs.c}});Object.defineProperty(exports,"generateTransitionCSS",{enumerable:true,get:function(){return chunkM5IACTFC_cjs.e}});Object.defineProperty(exports,"getTransitionClasses",{enumerable:true,get:function(){return chunkM5IACTFC_cjs.a}});//# sourceMappingURL=transition.cjs.map
|
|
2
|
+
//# sourceMappingURL=transition.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"transition.cjs"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { C as Component } from './component-CxlupKuc.cjs';
|
|
2
|
+
import './types-DjZCk1xT.cjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Transition/Animation system.
|
|
6
|
+
*
|
|
7
|
+
* Provides CSS-based enter/exit transitions for elements.
|
|
8
|
+
* Works with <Transition> component or programmatic API.
|
|
9
|
+
*
|
|
10
|
+
* Class naming convention (matches Vue/Svelte):
|
|
11
|
+
* - `{name}-enter-from` — initial enter state
|
|
12
|
+
* - `{name}-enter-active` — active enter transition
|
|
13
|
+
* - `{name}-enter-to` — final enter state
|
|
14
|
+
* - `{name}-exit-from` — initial exit state
|
|
15
|
+
* - `{name}-exit-active` — active exit transition
|
|
16
|
+
* - `{name}-exit-to` — final exit state
|
|
17
|
+
*/
|
|
18
|
+
interface TransitionProps {
|
|
19
|
+
/** Transition name (used as CSS class prefix) */
|
|
20
|
+
name?: string;
|
|
21
|
+
/** Duration in ms (overrides CSS transition duration) */
|
|
22
|
+
duration?: number;
|
|
23
|
+
/** Whether the content is shown */
|
|
24
|
+
when: boolean;
|
|
25
|
+
/** CSS transition mode */
|
|
26
|
+
mode?: 'in-out' | 'out-in';
|
|
27
|
+
/** Callback when enter transition starts */
|
|
28
|
+
onEnter?: (el: HTMLElement) => void;
|
|
29
|
+
/** Callback when enter transition completes */
|
|
30
|
+
onAfterEnter?: (el: HTMLElement) => void;
|
|
31
|
+
/** Callback when exit transition starts */
|
|
32
|
+
onExit?: (el: HTMLElement) => void;
|
|
33
|
+
/** Callback when exit transition completes */
|
|
34
|
+
onAfterExit?: (el: HTMLElement) => void;
|
|
35
|
+
}
|
|
36
|
+
interface TransitionClasses {
|
|
37
|
+
enterFrom: string;
|
|
38
|
+
enterActive: string;
|
|
39
|
+
enterTo: string;
|
|
40
|
+
exitFrom: string;
|
|
41
|
+
exitActive: string;
|
|
42
|
+
exitTo: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get the transition CSS class names for a given transition name.
|
|
46
|
+
*/
|
|
47
|
+
declare function getTransitionClasses(name: string): TransitionClasses;
|
|
48
|
+
/**
|
|
49
|
+
* Run an enter transition on an element.
|
|
50
|
+
* Returns a promise that resolves when the transition completes.
|
|
51
|
+
*/
|
|
52
|
+
declare function enterTransition(el: HTMLElement, classes: TransitionClasses, duration?: number): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Run an exit transition on an element.
|
|
55
|
+
* Returns a promise that resolves when the transition completes.
|
|
56
|
+
*/
|
|
57
|
+
declare function exitTransition(el: HTMLElement, classes: TransitionClasses, duration?: number): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* <Transition> component.
|
|
60
|
+
*
|
|
61
|
+
* Applies CSS enter/exit transitions when `when` changes.
|
|
62
|
+
*
|
|
63
|
+
* ```html
|
|
64
|
+
* <Transition name="fade" when={isVisible()}>
|
|
65
|
+
* <div>Content</div>
|
|
66
|
+
* </Transition>
|
|
67
|
+
* ```
|
|
68
|
+
*
|
|
69
|
+
* CSS:
|
|
70
|
+
* ```css
|
|
71
|
+
* .fade-enter-active, .fade-exit-active {
|
|
72
|
+
* transition: opacity 0.3s;
|
|
73
|
+
* }
|
|
74
|
+
* .fade-enter-from, .fade-exit-to {
|
|
75
|
+
* opacity: 0;
|
|
76
|
+
* }
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
declare const Transition: Component<TransitionProps>;
|
|
80
|
+
/**
|
|
81
|
+
* Generate CSS for common transition presets.
|
|
82
|
+
* Inject this into your app's styles or use the CLI to generate it.
|
|
83
|
+
*/
|
|
84
|
+
declare function generateTransitionCSS(name: string, options?: {
|
|
85
|
+
property?: string;
|
|
86
|
+
duration?: string;
|
|
87
|
+
easing?: string;
|
|
88
|
+
}): string;
|
|
89
|
+
|
|
90
|
+
export { Transition, type TransitionClasses, type TransitionProps, enterTransition, exitTransition, generateTransitionCSS, getTransitionClasses };
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { C as Component } from './component-CPVtkASo.js';
|
|
2
|
+
import './types-DjZCk1xT.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Transition/Animation system.
|
|
6
|
+
*
|
|
7
|
+
* Provides CSS-based enter/exit transitions for elements.
|
|
8
|
+
* Works with <Transition> component or programmatic API.
|
|
9
|
+
*
|
|
10
|
+
* Class naming convention (matches Vue/Svelte):
|
|
11
|
+
* - `{name}-enter-from` — initial enter state
|
|
12
|
+
* - `{name}-enter-active` — active enter transition
|
|
13
|
+
* - `{name}-enter-to` — final enter state
|
|
14
|
+
* - `{name}-exit-from` — initial exit state
|
|
15
|
+
* - `{name}-exit-active` — active exit transition
|
|
16
|
+
* - `{name}-exit-to` — final exit state
|
|
17
|
+
*/
|
|
18
|
+
interface TransitionProps {
|
|
19
|
+
/** Transition name (used as CSS class prefix) */
|
|
20
|
+
name?: string;
|
|
21
|
+
/** Duration in ms (overrides CSS transition duration) */
|
|
22
|
+
duration?: number;
|
|
23
|
+
/** Whether the content is shown */
|
|
24
|
+
when: boolean;
|
|
25
|
+
/** CSS transition mode */
|
|
26
|
+
mode?: 'in-out' | 'out-in';
|
|
27
|
+
/** Callback when enter transition starts */
|
|
28
|
+
onEnter?: (el: HTMLElement) => void;
|
|
29
|
+
/** Callback when enter transition completes */
|
|
30
|
+
onAfterEnter?: (el: HTMLElement) => void;
|
|
31
|
+
/** Callback when exit transition starts */
|
|
32
|
+
onExit?: (el: HTMLElement) => void;
|
|
33
|
+
/** Callback when exit transition completes */
|
|
34
|
+
onAfterExit?: (el: HTMLElement) => void;
|
|
35
|
+
}
|
|
36
|
+
interface TransitionClasses {
|
|
37
|
+
enterFrom: string;
|
|
38
|
+
enterActive: string;
|
|
39
|
+
enterTo: string;
|
|
40
|
+
exitFrom: string;
|
|
41
|
+
exitActive: string;
|
|
42
|
+
exitTo: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get the transition CSS class names for a given transition name.
|
|
46
|
+
*/
|
|
47
|
+
declare function getTransitionClasses(name: string): TransitionClasses;
|
|
48
|
+
/**
|
|
49
|
+
* Run an enter transition on an element.
|
|
50
|
+
* Returns a promise that resolves when the transition completes.
|
|
51
|
+
*/
|
|
52
|
+
declare function enterTransition(el: HTMLElement, classes: TransitionClasses, duration?: number): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Run an exit transition on an element.
|
|
55
|
+
* Returns a promise that resolves when the transition completes.
|
|
56
|
+
*/
|
|
57
|
+
declare function exitTransition(el: HTMLElement, classes: TransitionClasses, duration?: number): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* <Transition> component.
|
|
60
|
+
*
|
|
61
|
+
* Applies CSS enter/exit transitions when `when` changes.
|
|
62
|
+
*
|
|
63
|
+
* ```html
|
|
64
|
+
* <Transition name="fade" when={isVisible()}>
|
|
65
|
+
* <div>Content</div>
|
|
66
|
+
* </Transition>
|
|
67
|
+
* ```
|
|
68
|
+
*
|
|
69
|
+
* CSS:
|
|
70
|
+
* ```css
|
|
71
|
+
* .fade-enter-active, .fade-exit-active {
|
|
72
|
+
* transition: opacity 0.3s;
|
|
73
|
+
* }
|
|
74
|
+
* .fade-enter-from, .fade-exit-to {
|
|
75
|
+
* opacity: 0;
|
|
76
|
+
* }
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
declare const Transition: Component<TransitionProps>;
|
|
80
|
+
/**
|
|
81
|
+
* Generate CSS for common transition presets.
|
|
82
|
+
* Inject this into your app's styles or use the CLI to generate it.
|
|
83
|
+
*/
|
|
84
|
+
declare function generateTransitionCSS(name: string, options?: {
|
|
85
|
+
property?: string;
|
|
86
|
+
duration?: string;
|
|
87
|
+
easing?: string;
|
|
88
|
+
}): string;
|
|
89
|
+
|
|
90
|
+
export { Transition, type TransitionClasses, type TransitionProps, enterTransition, exitTransition, generateTransitionCSS, getTransitionClasses };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export{d as Transition,b as enterTransition,c as exitTransition,e as generateTransitionCSS,a as getTransitionClasses}from'./chunk-TSFY5HKB.js';import'./chunk-KE7BJTCD.js';import'./chunk-VUMMC2P5.js';import'./chunk-AOFLE33X.js';import'./chunk-YXKQTEPR.js';import'./chunk-U65WRXZC.js';//# sourceMappingURL=transition.js.map
|
|
2
|
+
//# sourceMappingURL=transition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"transition.js"}
|
package/dist/tweened.cjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';var chunkLD4C62JY_cjs=require('./chunk-LD4C62JY.cjs');require('./chunk-WOZWFMOK.cjs'),require('./chunk-XPLIEN2G.cjs');Object.defineProperty(exports,"easings",{enumerable:true,get:function(){return chunkLD4C62JY_cjs.a}});Object.defineProperty(exports,"tweened",{enumerable:true,get:function(){return chunkLD4C62JY_cjs.b}});//# sourceMappingURL=tweened.cjs.map
|
|
2
|
+
//# sourceMappingURL=tweened.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"tweened.cjs"}
|