react-public-components 1.2.2 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ActivityLog/index.cjs +2 -2
- package/dist/ActivityLog/index.js +1 -1
- package/dist/AudioPlayer/index.cjs +3 -3
- package/dist/AudioPlayer/index.js +2 -2
- package/dist/CascadeDrawer/index.cjs +2 -2
- package/dist/CascadeDrawer/index.d.ts +1 -1
- package/dist/CascadeDrawer/index.js +1 -1
- package/dist/CodeSnippet/index.cjs +3 -2
- package/dist/CodeSnippet/index.css +236 -11
- package/dist/CodeSnippet/index.css.map +1 -1
- package/dist/CodeSnippet/index.d.ts +49 -4
- package/dist/CodeSnippet/index.js +2 -1
- package/dist/CodeSnippet/sandbox.d.ts +26 -0
- package/dist/CollapseBox/index.cjs +3 -3
- package/dist/CollapseBox/index.js +2 -2
- package/dist/ColorPicker/index.cjs +5 -5
- package/dist/ColorPicker/index.js +2 -2
- package/dist/ContextMenu/index.cjs +3 -3
- package/dist/ContextMenu/index.js +2 -2
- package/dist/CopyButton/index.cjs +3 -3
- package/dist/CopyButton/index.js +2 -2
- package/dist/CountUp/index.cjs +2 -2
- package/dist/CountUp/index.js +1 -1
- package/dist/CronPicker/index.cjs +4 -4
- package/dist/CronPicker/index.js +3 -3
- package/dist/DebounceSelect/index.cjs +3 -3
- package/dist/DebounceSelect/index.d.ts +1 -1
- package/dist/DebounceSelect/index.js +2 -2
- package/dist/DiffViewer/index.cjs +2 -2
- package/dist/DiffViewer/index.js +1 -1
- package/dist/DisabledBox/index.cjs +3 -3
- package/dist/DisabledBox/index.d.ts +11 -3
- package/dist/DisabledBox/index.js +2 -2
- package/dist/DragSortList/index.cjs +3 -2
- package/dist/DragSortList/index.css +82 -13
- package/dist/DragSortList/index.css.map +1 -1
- package/dist/DragSortList/index.d.ts +8 -2
- package/dist/DragSortList/index.js +2 -1
- package/dist/EnvBadge/index.cjs +2 -2
- package/dist/EnvBadge/index.js +1 -1
- package/dist/FilePreviewer/index.cjs +4 -4
- package/dist/FilePreviewer/index.js +2 -2
- package/dist/Fullscreen/index.cjs +3 -3
- package/dist/Fullscreen/index.js +2 -2
- package/dist/GuidedTour/index.cjs +3 -3
- package/dist/GuidedTour/index.js +2 -2
- package/dist/ImageCropper/index.cjs +3 -3
- package/dist/ImageCropper/index.js +2 -2
- package/dist/InfiniteScrollList/index.cjs +3 -3
- package/dist/InfiniteScrollList/index.js +2 -2
- package/dist/JsonDiffViewer/index.cjs +2 -2
- package/dist/JsonDiffViewer/index.js +1 -1
- package/dist/JsonEditor/index.cjs +4 -4
- package/dist/JsonEditor/index.d.ts +1 -1
- package/dist/JsonEditor/index.js +3 -3
- package/dist/JsonTree/index.cjs +2 -2
- package/dist/JsonTree/index.d.ts +1 -1
- package/dist/JsonTree/index.js +1 -1
- package/dist/KanbanBoard/index.cjs +2 -2
- package/dist/KanbanBoard/index.js +1 -1
- package/dist/KeyValEditor/index.cjs +3 -3
- package/dist/KeyValEditor/index.js +2 -2
- package/dist/Marquee/index.cjs +2 -2
- package/dist/Marquee/index.js +1 -1
- package/dist/MetricCard/index.cjs +3 -3
- package/dist/MetricCard/index.js +2 -2
- package/dist/NumericRangeInput/index.cjs +2 -2
- package/dist/NumericRangeInput/index.js +1 -1
- package/dist/PasswordStrength/index.cjs +4 -4
- package/dist/PasswordStrength/index.js +2 -2
- package/dist/PdfViewer/index.cjs +3 -3
- package/dist/PdfViewer/index.js +2 -2
- package/dist/QrCodeCard/index.cjs +3 -3
- package/dist/QrCodeCard/index.css +122 -32
- package/dist/QrCodeCard/index.css.map +1 -1
- package/dist/QrCodeCard/index.d.ts +10 -2
- package/dist/QrCodeCard/index.js +2 -2
- package/dist/QuickDateRange/index.cjs +2 -2
- package/dist/QuickDateRange/index.js +1 -1
- package/dist/ScrollTracker/index.cjs +4 -4
- package/dist/ScrollTracker/index.js +1 -1
- package/dist/SegmentedProgress/index.cjs +2 -2
- package/dist/SegmentedProgress/index.js +1 -1
- package/dist/SensitiveMask/index.cjs +5 -5
- package/dist/SensitiveMask/index.js +3 -3
- package/dist/Splitter/index.cjs +3 -3
- package/dist/Splitter/index.js +2 -2
- package/dist/StatusTimeline/index.cjs +2 -2
- package/dist/StatusTimeline/index.js +1 -1
- package/dist/TagInput/index.cjs +3 -3
- package/dist/TagInput/index.js +2 -2
- package/dist/TextEllipsis/index.cjs +4 -4
- package/dist/TextEllipsis/index.js +3 -3
- package/dist/TreeFilterPanel/index.cjs +2 -2
- package/dist/TreeFilterPanel/index.js +1 -1
- package/dist/TreeTransfer/index.cjs +3 -3
- package/dist/TreeTransfer/index.js +2 -2
- package/dist/TrendIndicator/index.cjs +2 -2
- package/dist/TrendIndicator/index.js +1 -1
- package/dist/VideoPlayer/index.cjs +3 -3
- package/dist/VideoPlayer/index.js +2 -2
- package/dist/VirtualList/index.cjs +2 -2
- package/dist/VirtualList/index.js +1 -1
- package/dist/Watermark/index.cjs +2 -2
- package/dist/Watermark/index.js +1 -1
- package/dist/{chunk-L7ULSFW6.cjs → chunk-2EIAWXFA.cjs} +18 -8
- package/dist/chunk-2EIAWXFA.cjs.map +1 -0
- package/dist/{chunk-TGSKTHTV.js → chunk-2IDVNTKR.js} +119 -19
- package/dist/chunk-2IDVNTKR.js.map +1 -0
- package/dist/{chunk-DNRZCHZG.js → chunk-2INP6NM4.js} +4 -11
- package/dist/chunk-2INP6NM4.js.map +1 -0
- package/dist/{chunk-I3HBI52O.js → chunk-2O2A5XYF.js} +3 -11
- package/dist/chunk-2O2A5XYF.js.map +1 -0
- package/dist/{chunk-VTANPKPT.js → chunk-3R3NOO4K.js} +2 -2
- package/dist/chunk-3R3NOO4K.js.map +1 -0
- package/dist/chunk-4KMVABTM.js +419 -0
- package/dist/chunk-4KMVABTM.js.map +1 -0
- package/dist/{chunk-K5FWY6HB.cjs → chunk-4TMBGQQE.cjs} +5 -5
- package/dist/{chunk-K5FWY6HB.cjs.map → chunk-4TMBGQQE.cjs.map} +1 -1
- package/dist/{chunk-GZCNFM6C.js → chunk-56VELHCH.js} +8 -17
- package/dist/chunk-56VELHCH.js.map +1 -0
- package/dist/{chunk-PBPGBVQQ.cjs → chunk-5E36FGRP.cjs} +2 -2
- package/dist/chunk-5E36FGRP.cjs.map +1 -0
- package/dist/{chunk-PVKBGP6Q.js → chunk-5GLC2HU6.js} +2 -2
- package/dist/{chunk-PVKBGP6Q.js.map → chunk-5GLC2HU6.js.map} +1 -1
- package/dist/{chunk-QKSCFVN2.js → chunk-5HIRDMZH.js} +2 -2
- package/dist/chunk-5HIRDMZH.js.map +1 -0
- package/dist/{chunk-7AKHSOSZ.js → chunk-5R2YXBXM.js} +3 -11
- package/dist/chunk-5R2YXBXM.js.map +1 -0
- package/dist/{chunk-F42Z33L7.cjs → chunk-5V4UAS6I.cjs} +2 -2
- package/dist/chunk-5V4UAS6I.cjs.map +1 -0
- package/dist/{chunk-WWL4VEPH.js → chunk-6UTLBY6Y.js} +2 -2
- package/dist/chunk-6UTLBY6Y.js.map +1 -0
- package/dist/{chunk-QI7XQDFZ.cjs → chunk-77ANKL4K.cjs} +77 -85
- package/dist/chunk-77ANKL4K.cjs.map +1 -0
- package/dist/{chunk-4MRZVLM6.cjs → chunk-7SIUSULP.cjs} +2 -2
- package/dist/{chunk-4MRZVLM6.cjs.map → chunk-7SIUSULP.cjs.map} +1 -1
- package/dist/{chunk-DFHFXKR5.cjs → chunk-7ZBA4NHH.cjs} +5 -12
- package/dist/chunk-7ZBA4NHH.cjs.map +1 -0
- package/dist/{chunk-RTAQSOVE.cjs → chunk-AHTRLNYK.cjs} +5 -5
- package/dist/{chunk-RTAQSOVE.cjs.map → chunk-AHTRLNYK.cjs.map} +1 -1
- package/dist/{chunk-G564WB32.cjs → chunk-AMCCRVHG.cjs} +2 -2
- package/dist/chunk-AMCCRVHG.cjs.map +1 -0
- package/dist/{chunk-NFC2C2TD.js → chunk-ANTFNDH4.js} +65 -72
- package/dist/chunk-ANTFNDH4.js.map +1 -0
- package/dist/{chunk-LBEGRYTP.js → chunk-AXPVN2OO.js} +77 -85
- package/dist/chunk-AXPVN2OO.js.map +1 -0
- package/dist/{chunk-OYRX4AY6.js → chunk-BFQV5MYD.js} +2 -2
- package/dist/chunk-BFQV5MYD.js.map +1 -0
- package/dist/{chunk-AXHJC7FV.js → chunk-BRHXKRG6.js} +3 -11
- package/dist/chunk-BRHXKRG6.js.map +1 -0
- package/dist/{chunk-BXFP7EAW.cjs → chunk-CPQLXDBR.cjs} +2 -2
- package/dist/{chunk-BXFP7EAW.cjs.map → chunk-CPQLXDBR.cjs.map} +1 -1
- package/dist/{chunk-AIIXJB34.js → chunk-CURWX7OY.js} +3 -3
- package/dist/{chunk-AIIXJB34.js.map → chunk-CURWX7OY.js.map} +1 -1
- package/dist/{chunk-XMBTKO5I.cjs → chunk-DJQEBDEP.cjs} +3 -11
- package/dist/chunk-DJQEBDEP.cjs.map +1 -0
- package/dist/{chunk-ZQBEQK2I.cjs → chunk-ED3ZG2VX.cjs} +5 -5
- package/dist/{chunk-ZQBEQK2I.cjs.map → chunk-ED3ZG2VX.cjs.map} +1 -1
- package/dist/{chunk-IECISUOZ.js → chunk-EDNBPLUS.js} +61 -59
- package/dist/chunk-EDNBPLUS.js.map +1 -0
- package/dist/{chunk-5MQCVYVD.js → chunk-EJYTTSW6.js} +16 -6
- package/dist/chunk-EJYTTSW6.js.map +1 -0
- package/dist/{chunk-AVSFSS7S.cjs → chunk-EKDJPOA3.cjs} +63 -61
- package/dist/chunk-EKDJPOA3.cjs.map +1 -0
- package/dist/{chunk-5NI6HK5V.js → chunk-EMT4NUI5.js} +3 -3
- package/dist/{chunk-5NI6HK5V.js.map → chunk-EMT4NUI5.js.map} +1 -1
- package/dist/{chunk-5GCEQDBM.cjs → chunk-EPYD35KB.cjs} +2 -2
- package/dist/chunk-EPYD35KB.cjs.map +1 -0
- package/dist/{chunk-YPVRTMX6.js → chunk-ETFLLRTO.js} +4 -6
- package/dist/chunk-ETFLLRTO.js.map +1 -0
- package/dist/{chunk-ZSK74QFN.cjs → chunk-EUOBMHFF.cjs} +3 -7
- package/dist/chunk-EUOBMHFF.cjs.map +1 -0
- package/dist/chunk-FZH5FL7X.cjs +167 -0
- package/dist/chunk-FZH5FL7X.cjs.map +1 -0
- package/dist/{chunk-4IBF4R3H.cjs → chunk-GMZSBGSL.cjs} +2 -2
- package/dist/{chunk-4IBF4R3H.cjs.map → chunk-GMZSBGSL.cjs.map} +1 -1
- package/dist/{chunk-HTA5EG6X.cjs → chunk-HKALWFWZ.cjs} +5 -5
- package/dist/{chunk-HTA5EG6X.cjs.map → chunk-HKALWFWZ.cjs.map} +1 -1
- package/dist/{chunk-PMNTOEXC.js → chunk-HZERTFL6.js} +2 -2
- package/dist/chunk-HZERTFL6.js.map +1 -0
- package/dist/{chunk-DKTB6PKI.js → chunk-IBI6AT5Z.js} +3 -10
- package/dist/chunk-IBI6AT5Z.js.map +1 -0
- package/dist/{chunk-4VGH44DT.js → chunk-IBYFOFSS.js} +14 -4
- package/dist/chunk-IBYFOFSS.js.map +1 -0
- package/dist/{chunk-2ORGQ2IY.js → chunk-IF4XAUV3.js} +4 -10
- package/dist/chunk-IF4XAUV3.js.map +1 -0
- package/dist/{chunk-4GQ3X7MG.cjs → chunk-IPS7PC3M.cjs} +18 -27
- package/dist/chunk-IPS7PC3M.cjs.map +1 -0
- package/dist/{chunk-ELI3LL3K.cjs → chunk-JHVPDKBM.cjs} +14 -6
- package/dist/chunk-JHVPDKBM.cjs.map +1 -0
- package/dist/{chunk-5G3XVLJF.js → chunk-JNA5AQ2K.js} +3 -3
- package/dist/{chunk-5G3XVLJF.js.map → chunk-JNA5AQ2K.js.map} +1 -1
- package/dist/{chunk-W6BUNUQM.cjs → chunk-KGZNVN7P.cjs} +3 -10
- package/dist/chunk-KGZNVN7P.cjs.map +1 -0
- package/dist/{chunk-R7CRWOHG.js → chunk-L7X3RVEY.js} +2 -2
- package/dist/{chunk-R7CRWOHG.js.map → chunk-L7X3RVEY.js.map} +1 -1
- package/dist/{chunk-EIFN6XMU.cjs → chunk-LFGBZXQH.cjs} +11 -5
- package/dist/chunk-LFGBZXQH.cjs.map +1 -0
- package/dist/{chunk-XO6PBAAM.cjs → chunk-LFXMUCEO.cjs} +2 -2
- package/dist/chunk-LFXMUCEO.cjs.map +1 -0
- package/dist/{chunk-C5B5Y4S2.cjs → chunk-M3GQ7RCV.cjs} +4 -4
- package/dist/{chunk-C5B5Y4S2.cjs.map → chunk-M3GQ7RCV.cjs.map} +1 -1
- package/dist/{chunk-KBBLTGIU.js → chunk-M4FZJALR.js} +13 -5
- package/dist/chunk-M4FZJALR.js.map +1 -0
- package/dist/{chunk-N7IQ6LYD.cjs → chunk-MGYDOC76.cjs} +15 -5
- package/dist/chunk-MGYDOC76.cjs.map +1 -0
- package/dist/{chunk-WBN5SAY5.js → chunk-MLYM5LAX.js} +2 -2
- package/dist/{chunk-WBN5SAY5.js.map → chunk-MLYM5LAX.js.map} +1 -1
- package/dist/{chunk-62NPVN7T.js → chunk-MQJBUHDB.js} +3 -3
- package/dist/{chunk-62NPVN7T.js.map → chunk-MQJBUHDB.js.map} +1 -1
- package/dist/{chunk-X7EE5DXL.js → chunk-O2YTJPG4.js} +2 -2
- package/dist/{chunk-X7EE5DXL.js.map → chunk-O2YTJPG4.js.map} +1 -1
- package/dist/{chunk-OJEZ3TKT.js → chunk-OBK6XTUY.js} +2 -2
- package/dist/chunk-OBK6XTUY.js.map +1 -0
- package/dist/{chunk-6OKTK3AQ.cjs → chunk-ODNGFJVN.cjs} +3 -11
- package/dist/chunk-ODNGFJVN.cjs.map +1 -0
- package/dist/{chunk-Z5LFRNNJ.js → chunk-OLLVIQPL.js} +3 -3
- package/dist/{chunk-Z5LFRNNJ.js.map → chunk-OLLVIQPL.js.map} +1 -1
- package/dist/{chunk-FRGH3Q75.cjs → chunk-OONBZRPV.cjs} +4 -4
- package/dist/{chunk-FRGH3Q75.cjs.map → chunk-OONBZRPV.cjs.map} +1 -1
- package/dist/{chunk-UT5UXO44.js → chunk-P5CS7V4W.js} +3 -3
- package/dist/chunk-P5CS7V4W.js.map +1 -0
- package/dist/{chunk-HQ65GEM7.js → chunk-PTFKE67K.js} +3 -3
- package/dist/{chunk-HQ65GEM7.js.map → chunk-PTFKE67K.js.map} +1 -1
- package/dist/{chunk-U2TTRBES.js → chunk-PUMVD7CP.js} +3 -3
- package/dist/{chunk-U2TTRBES.js.map → chunk-PUMVD7CP.js.map} +1 -1
- package/dist/{chunk-4YPT2HUD.cjs → chunk-PYCSRJSF.cjs} +16 -7
- package/dist/chunk-PYCSRJSF.cjs.map +1 -0
- package/dist/{chunk-ZAHKA2V2.js → chunk-Q7OVUH5K.js} +3 -3
- package/dist/chunk-Q7OVUH5K.js.map +1 -0
- package/dist/{chunk-NMYXVZQP.cjs → chunk-QNSEJGF6.cjs} +2 -2
- package/dist/chunk-QNSEJGF6.cjs.map +1 -0
- package/dist/{chunk-KUW2ZR2A.cjs → chunk-QP3RKA4J.cjs} +65 -72
- package/dist/chunk-QP3RKA4J.cjs.map +1 -0
- package/dist/{chunk-IUR7SPDA.js → chunk-QRZ2GVVJ.js} +85 -92
- package/dist/chunk-QRZ2GVVJ.js.map +1 -0
- package/dist/{chunk-Q4QF6UYX.cjs → chunk-R4V3EJVP.cjs} +124 -18
- package/dist/chunk-R4V3EJVP.cjs.map +1 -0
- package/dist/{chunk-2ARM7X7A.js → chunk-RAF7I4A5.js} +2 -2
- package/dist/chunk-RAF7I4A5.js.map +1 -0
- package/dist/{chunk-7JLQOQJZ.cjs → chunk-RN5WU7KA.cjs} +7 -7
- package/dist/{chunk-7JLQOQJZ.cjs.map → chunk-RN5WU7KA.cjs.map} +1 -1
- package/dist/{chunk-FBOTWA6O.cjs → chunk-TNZ2OLGW.cjs} +5 -7
- package/dist/chunk-TNZ2OLGW.cjs.map +1 -0
- package/dist/chunk-TUDLE3RT.cjs +429 -0
- package/dist/chunk-TUDLE3RT.cjs.map +1 -0
- package/dist/{chunk-PIIJVF5D.cjs → chunk-TUEVILTA.cjs} +5 -5
- package/dist/chunk-TUEVILTA.cjs.map +1 -0
- package/dist/{chunk-RWZSTG6Q.cjs → chunk-U2EBNBGK.cjs} +4 -4
- package/dist/{chunk-RWZSTG6Q.cjs.map → chunk-U2EBNBGK.cjs.map} +1 -1
- package/dist/{chunk-5WHBZH44.cjs → chunk-UAUP5TJK.cjs} +5 -5
- package/dist/chunk-UAUP5TJK.cjs.map +1 -0
- package/dist/{chunk-SMVAHIBN.cjs → chunk-UCG7ZVK5.cjs} +2 -2
- package/dist/chunk-UCG7ZVK5.cjs.map +1 -0
- package/dist/{chunk-DATPWEQK.cjs → chunk-UZB7GOEI.cjs} +4 -4
- package/dist/{chunk-DATPWEQK.cjs.map → chunk-UZB7GOEI.cjs.map} +1 -1
- package/dist/{chunk-AJIIY2QT.cjs → chunk-VF5P7XMC.cjs} +2 -2
- package/dist/chunk-VF5P7XMC.cjs.map +1 -0
- package/dist/{chunk-R77VVMV5.cjs → chunk-VJOO2DG3.cjs} +87 -94
- package/dist/chunk-VJOO2DG3.cjs.map +1 -0
- package/dist/{chunk-XB3BT6BU.js → chunk-W5JA3YTT.js} +3 -3
- package/dist/{chunk-XB3BT6BU.js.map → chunk-W5JA3YTT.js.map} +1 -1
- package/dist/{chunk-ZGWBLJ6U.cjs → chunk-WDHU3BSM.cjs} +2 -2
- package/dist/{chunk-ZGWBLJ6U.cjs.map → chunk-WDHU3BSM.cjs.map} +1 -1
- package/dist/{chunk-NCNDJTOK.js → chunk-WEGDIRDB.js} +2 -2
- package/dist/chunk-WEGDIRDB.js.map +1 -0
- package/dist/{chunk-H5VPBP7U.js → chunk-WKF4C6TJ.js} +10 -4
- package/dist/chunk-WKF4C6TJ.js.map +1 -0
- package/dist/{chunk-EJNMH7ND.js → chunk-WN557PFJ.js} +2 -2
- package/dist/chunk-WN557PFJ.js.map +1 -0
- package/dist/{chunk-VPHHGQWP.js → chunk-XLOGMDAQ.js} +3 -3
- package/dist/{chunk-VPHHGQWP.js.map → chunk-XLOGMDAQ.js.map} +1 -1
- package/dist/chunk-XUAHWX6B.js +153 -0
- package/dist/chunk-XUAHWX6B.js.map +1 -0
- package/dist/chunk-Y54KVULF.js +161 -0
- package/dist/chunk-Y54KVULF.js.map +1 -0
- package/dist/{chunk-JD4TEUIV.js → chunk-YFHKH6HL.js} +3 -7
- package/dist/chunk-YFHKH6HL.js.map +1 -0
- package/dist/{chunk-XYJMP23P.cjs → chunk-YP4XTMK3.cjs} +4 -10
- package/dist/chunk-YP4XTMK3.cjs.map +1 -0
- package/dist/{chunk-7JRGQL63.js → chunk-ZCBT56AG.js} +13 -4
- package/dist/chunk-ZCBT56AG.js.map +1 -0
- package/dist/{chunk-GCMI5JGQ.cjs → chunk-ZKM664KC.cjs} +2 -2
- package/dist/chunk-ZKM664KC.cjs.map +1 -0
- package/dist/{chunk-24ND5WB7.cjs → chunk-ZVSN7ADO.cjs} +3 -11
- package/dist/chunk-ZVSN7ADO.cjs.map +1 -0
- package/dist/chunk-ZWKUHYTV.cjs +155 -0
- package/dist/chunk-ZWKUHYTV.cjs.map +1 -0
- package/dist/index.cjs +113 -97
- package/dist/index.css +440 -56
- package/dist/index.css.map +1 -1
- package/dist/index.js +46 -46
- package/dist/src/icons.d.ts +29 -11
- package/dist/src/index.d.ts +3 -1
- package/package.json +1 -1
- package/dist/chunk-24ND5WB7.cjs.map +0 -1
- package/dist/chunk-2ARM7X7A.js.map +0 -1
- package/dist/chunk-2ORGQ2IY.js.map +0 -1
- package/dist/chunk-4DUMEO5E.cjs +0 -107
- package/dist/chunk-4DUMEO5E.cjs.map +0 -1
- package/dist/chunk-4GQ3X7MG.cjs.map +0 -1
- package/dist/chunk-4VGH44DT.js.map +0 -1
- package/dist/chunk-4YPT2HUD.cjs.map +0 -1
- package/dist/chunk-5GCEQDBM.cjs.map +0 -1
- package/dist/chunk-5MQCVYVD.js.map +0 -1
- package/dist/chunk-5WHBZH44.cjs.map +0 -1
- package/dist/chunk-6OKTK3AQ.cjs.map +0 -1
- package/dist/chunk-7AKHSOSZ.js.map +0 -1
- package/dist/chunk-7JRGQL63.js.map +0 -1
- package/dist/chunk-AJIIY2QT.cjs.map +0 -1
- package/dist/chunk-AVSFSS7S.cjs.map +0 -1
- package/dist/chunk-AXHJC7FV.js.map +0 -1
- package/dist/chunk-DFHFXKR5.cjs.map +0 -1
- package/dist/chunk-DKTB6PKI.js.map +0 -1
- package/dist/chunk-DNRZCHZG.js.map +0 -1
- package/dist/chunk-EIFN6XMU.cjs.map +0 -1
- package/dist/chunk-EJNMH7ND.js.map +0 -1
- package/dist/chunk-ELI3LL3K.cjs.map +0 -1
- package/dist/chunk-EQ7S5SYM.js +0 -67
- package/dist/chunk-EQ7S5SYM.js.map +0 -1
- package/dist/chunk-F42Z33L7.cjs.map +0 -1
- package/dist/chunk-FBOTWA6O.cjs.map +0 -1
- package/dist/chunk-FWRVCH7T.js +0 -37
- package/dist/chunk-FWRVCH7T.js.map +0 -1
- package/dist/chunk-FYFL4PFD.cjs +0 -69
- package/dist/chunk-FYFL4PFD.cjs.map +0 -1
- package/dist/chunk-G564WB32.cjs.map +0 -1
- package/dist/chunk-GCMI5JGQ.cjs.map +0 -1
- package/dist/chunk-GZCNFM6C.js.map +0 -1
- package/dist/chunk-H5VPBP7U.js.map +0 -1
- package/dist/chunk-I3HBI52O.js.map +0 -1
- package/dist/chunk-IECISUOZ.js.map +0 -1
- package/dist/chunk-IUR7SPDA.js.map +0 -1
- package/dist/chunk-JD4TEUIV.js.map +0 -1
- package/dist/chunk-KBBLTGIU.js.map +0 -1
- package/dist/chunk-KUW2ZR2A.cjs.map +0 -1
- package/dist/chunk-L7ULSFW6.cjs.map +0 -1
- package/dist/chunk-LBEGRYTP.js.map +0 -1
- package/dist/chunk-N7IQ6LYD.cjs.map +0 -1
- package/dist/chunk-NCNDJTOK.js.map +0 -1
- package/dist/chunk-NFC2C2TD.js.map +0 -1
- package/dist/chunk-NMYXVZQP.cjs.map +0 -1
- package/dist/chunk-OJEZ3TKT.js.map +0 -1
- package/dist/chunk-OYRX4AY6.js.map +0 -1
- package/dist/chunk-PBPGBVQQ.cjs.map +0 -1
- package/dist/chunk-PIIJVF5D.cjs.map +0 -1
- package/dist/chunk-PMNTOEXC.js.map +0 -1
- package/dist/chunk-Q4QF6UYX.cjs.map +0 -1
- package/dist/chunk-QI7XQDFZ.cjs.map +0 -1
- package/dist/chunk-QKSCFVN2.js.map +0 -1
- package/dist/chunk-R77VVMV5.cjs.map +0 -1
- package/dist/chunk-SMVAHIBN.cjs.map +0 -1
- package/dist/chunk-TGSKTHTV.js.map +0 -1
- package/dist/chunk-UT5UXO44.js.map +0 -1
- package/dist/chunk-VTANPKPT.js.map +0 -1
- package/dist/chunk-W6BUNUQM.cjs.map +0 -1
- package/dist/chunk-WWL4VEPH.js.map +0 -1
- package/dist/chunk-X4MEHYWV.js +0 -105
- package/dist/chunk-X4MEHYWV.js.map +0 -1
- package/dist/chunk-XMBTKO5I.cjs.map +0 -1
- package/dist/chunk-XO6PBAAM.cjs.map +0 -1
- package/dist/chunk-XYJMP23P.cjs.map +0 -1
- package/dist/chunk-YJESCN4Y.cjs +0 -39
- package/dist/chunk-YJESCN4Y.cjs.map +0 -1
- package/dist/chunk-YPVRTMX6.js.map +0 -1
- package/dist/chunk-ZAHKA2V2.js.map +0 -1
- package/dist/chunk-ZSK74QFN.cjs.map +0 -1
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
import { CodeOutlined, CheckOutlined, CopyOutlined, ExportOutlined, ThunderboltOutlined, CodePenOutlined, CodeSandboxOutlined, UpOutlined, DownOutlined } from './chunk-2IDVNTKR.js';
|
|
2
|
+
import React, { useState } from 'react';
|
|
3
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
// CodeSnippet/sandbox.ts
|
|
6
|
+
var defaultPackageJson = (dependencies = {}, devDependencies = {}) => ({
|
|
7
|
+
name: "react-public-components-demo",
|
|
8
|
+
version: "1.0.0",
|
|
9
|
+
description: "Interactive demo generated by react-public-components",
|
|
10
|
+
main: "src/index.tsx",
|
|
11
|
+
dependencies: {
|
|
12
|
+
react: "^18.3.1",
|
|
13
|
+
"react-dom": "^18.3.1",
|
|
14
|
+
"react-public-components": "latest",
|
|
15
|
+
...dependencies
|
|
16
|
+
},
|
|
17
|
+
devDependencies: {
|
|
18
|
+
"@types/react": "^18.3.3",
|
|
19
|
+
"@types/react-dom": "^18.3.0",
|
|
20
|
+
typescript: "^5.5.0",
|
|
21
|
+
...devDependencies
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
var defaultHtml = `<!DOCTYPE html>
|
|
25
|
+
<html lang="zh-CN">
|
|
26
|
+
<head>
|
|
27
|
+
<meta charset="utf-8" />
|
|
28
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
29
|
+
<title>React Public Components Demo</title>
|
|
30
|
+
<link rel="stylesheet" href="https://unpkg.com/react-public-components/dist/index.css" />
|
|
31
|
+
<style>
|
|
32
|
+
* { box-sizing: border-box; }
|
|
33
|
+
body { margin: 0; padding: 24px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; background: #f8fafc; }
|
|
34
|
+
</style>
|
|
35
|
+
</head>
|
|
36
|
+
<body>
|
|
37
|
+
<div id="root"></div>
|
|
38
|
+
</body>
|
|
39
|
+
</html>`;
|
|
40
|
+
var defaultIndexTsx = `import React from 'react';
|
|
41
|
+
import { createRoot } from 'react-dom/client';
|
|
42
|
+
import 'react-public-components/dist/index.css';
|
|
43
|
+
import App from './App';
|
|
44
|
+
|
|
45
|
+
const container = document.getElementById('root');
|
|
46
|
+
if (container) {
|
|
47
|
+
const root = createRoot(container);
|
|
48
|
+
root.render(
|
|
49
|
+
<React.StrictMode>
|
|
50
|
+
<App />
|
|
51
|
+
</React.StrictMode>
|
|
52
|
+
);
|
|
53
|
+
}`;
|
|
54
|
+
function openInStackBlitz(code, config = {}) {
|
|
55
|
+
const form = document.createElement("form");
|
|
56
|
+
form.method = "POST";
|
|
57
|
+
form.action = "https://stackblitz.com/run";
|
|
58
|
+
form.target = "_blank";
|
|
59
|
+
form.style.display = "none";
|
|
60
|
+
const pkg = defaultPackageJson(config.dependencies, config.devDependencies);
|
|
61
|
+
const fields = {
|
|
62
|
+
"project[title]": config.title || "react-public-components Demo",
|
|
63
|
+
"project[description]": config.description || "Live Component Demo",
|
|
64
|
+
"project[template]": "create-react-app",
|
|
65
|
+
"project[files][package.json]": JSON.stringify(pkg, null, 2),
|
|
66
|
+
"project[files][public/index.html]": defaultHtml,
|
|
67
|
+
"project[files][src/index.tsx]": defaultIndexTsx,
|
|
68
|
+
"project[files][src/App.tsx]": code,
|
|
69
|
+
"project[files][tsconfig.json]": JSON.stringify(
|
|
70
|
+
{
|
|
71
|
+
compilerOptions: {
|
|
72
|
+
target: "es5",
|
|
73
|
+
lib: ["dom", "dom.iterable", "esnext"],
|
|
74
|
+
allowJs: true,
|
|
75
|
+
skipLibCheck: true,
|
|
76
|
+
esModuleInterop: true,
|
|
77
|
+
allowSyntheticDefaultImports: true,
|
|
78
|
+
strict: true,
|
|
79
|
+
forceConsistentCasingInFileNames: true,
|
|
80
|
+
noFallthroughCasesInSwitch: true,
|
|
81
|
+
module: "esnext",
|
|
82
|
+
moduleResolution: "node",
|
|
83
|
+
resolveJsonModule: true,
|
|
84
|
+
isolatedModules: true,
|
|
85
|
+
noEmit: true,
|
|
86
|
+
jsx: "react-jsx"
|
|
87
|
+
},
|
|
88
|
+
include: ["src"]
|
|
89
|
+
},
|
|
90
|
+
null,
|
|
91
|
+
2
|
|
92
|
+
)
|
|
93
|
+
};
|
|
94
|
+
Object.entries(fields).forEach(([key, val]) => {
|
|
95
|
+
const input = document.createElement("input");
|
|
96
|
+
input.type = "hidden";
|
|
97
|
+
input.name = key;
|
|
98
|
+
input.value = val;
|
|
99
|
+
form.appendChild(input);
|
|
100
|
+
});
|
|
101
|
+
document.body.appendChild(form);
|
|
102
|
+
form.submit();
|
|
103
|
+
document.body.removeChild(form);
|
|
104
|
+
}
|
|
105
|
+
function openInCodeSandbox(code, config = {}) {
|
|
106
|
+
const pkg = defaultPackageJson(config.dependencies, config.devDependencies);
|
|
107
|
+
const files = {
|
|
108
|
+
"package.json": {
|
|
109
|
+
content: JSON.stringify(pkg, null, 2)
|
|
110
|
+
},
|
|
111
|
+
"public/index.html": {
|
|
112
|
+
content: defaultHtml
|
|
113
|
+
},
|
|
114
|
+
"src/index.tsx": {
|
|
115
|
+
content: defaultIndexTsx
|
|
116
|
+
},
|
|
117
|
+
"src/App.tsx": {
|
|
118
|
+
content: code
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
fetch("https://codesandbox.io/api/v1/sandboxes/define?json=1", {
|
|
122
|
+
method: "POST",
|
|
123
|
+
headers: {
|
|
124
|
+
"Content-Type": "application/json",
|
|
125
|
+
Accept: "application/json"
|
|
126
|
+
},
|
|
127
|
+
body: JSON.stringify({ files })
|
|
128
|
+
}).then((res) => res.json()).then((data) => {
|
|
129
|
+
if (data && data.sandbox_id) {
|
|
130
|
+
window.open(`https://codesandbox.io/s/${data.sandbox_id}`, "_blank");
|
|
131
|
+
}
|
|
132
|
+
}).catch(() => {
|
|
133
|
+
openInStackBlitz(code, config);
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
function openInCodePen(code, config = {}) {
|
|
137
|
+
const form = document.createElement("form");
|
|
138
|
+
form.method = "POST";
|
|
139
|
+
form.action = "https://codepen.io/pen/define/";
|
|
140
|
+
form.target = "_blank";
|
|
141
|
+
form.style.display = "none";
|
|
142
|
+
let cleanJs = code.replace(/import\s+[\s\S]*?from\s+['"][^'"]+['"];?/g, "").replace(/export\s+default\s+App;?/g, "").replace(/export\s+default\s+/g, "");
|
|
143
|
+
cleanJs += '\n\nconst root = ReactDOM.createRoot(document.getElementById("root"));\nroot.render(<App />);';
|
|
144
|
+
const data = {
|
|
145
|
+
title: config.title || "react-public-components Demo",
|
|
146
|
+
description: config.description || "Live Component Demo",
|
|
147
|
+
html: '<div id="root"></div>',
|
|
148
|
+
js: cleanJs,
|
|
149
|
+
js_pre_processor: "babel",
|
|
150
|
+
css: 'body { margin: 0; padding: 24px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background: #f8fafc; }',
|
|
151
|
+
js_external: [
|
|
152
|
+
"https://unpkg.com/react@18/umd/react.production.min.js",
|
|
153
|
+
"https://unpkg.com/react-dom@18/umd/react-dom.production.min.js",
|
|
154
|
+
"https://unpkg.com/react-public-components/dist/index.umd.js"
|
|
155
|
+
].join(";"),
|
|
156
|
+
css_external: [
|
|
157
|
+
"https://unpkg.com/react-public-components/dist/index.css"
|
|
158
|
+
].join(";")
|
|
159
|
+
};
|
|
160
|
+
const input = document.createElement("input");
|
|
161
|
+
input.type = "hidden";
|
|
162
|
+
input.name = "data";
|
|
163
|
+
input.value = JSON.stringify(data);
|
|
164
|
+
form.appendChild(input);
|
|
165
|
+
document.body.appendChild(form);
|
|
166
|
+
form.submit();
|
|
167
|
+
document.body.removeChild(form);
|
|
168
|
+
}
|
|
169
|
+
function openInNewTab(code, title = "Demo Preview") {
|
|
170
|
+
const newWin = window.open("", "_blank");
|
|
171
|
+
if (!newWin) return;
|
|
172
|
+
const htmlContent = `<!DOCTYPE html>
|
|
173
|
+
<html>
|
|
174
|
+
<head>
|
|
175
|
+
<meta charset="utf-8" />
|
|
176
|
+
<title>${title}</title>
|
|
177
|
+
<link rel="stylesheet" href="https://unpkg.com/react-public-components/dist/index.css" />
|
|
178
|
+
<script src="https://unpkg.com/react@18/umd/react.production.min.js"></script>
|
|
179
|
+
<script src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script>
|
|
180
|
+
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
|
|
181
|
+
<style>
|
|
182
|
+
* { box-sizing: border-box; }
|
|
183
|
+
body { margin: 0; padding: 24px; background: #f8fafc; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
|
|
184
|
+
#root { background: #fff; padding: 32px; border-radius: 12px; box-shadow: 0 4px 16px rgba(0,0,0,0.06); max-width: 900px; margin: 0 auto; }
|
|
185
|
+
</style>
|
|
186
|
+
</head>
|
|
187
|
+
<body>
|
|
188
|
+
<div id="root"></div>
|
|
189
|
+
<script type="text/babel">
|
|
190
|
+
const { useState, useEffect, useRef, useMemo, useCallback } = React;
|
|
191
|
+
|
|
192
|
+
${code.replace(/import\s+[\s\S]*?from\s+['"][^'"]+['"];?/g, "").replace(/export\s+default\s+App;?/g, "").replace(/export\s+default\s+/g, "")}
|
|
193
|
+
|
|
194
|
+
if (typeof App !== 'undefined') {
|
|
195
|
+
const root = ReactDOM.createRoot(document.getElementById('root'));
|
|
196
|
+
root.render(<App />);
|
|
197
|
+
}
|
|
198
|
+
</script>
|
|
199
|
+
</body>
|
|
200
|
+
</html>`;
|
|
201
|
+
newWin.document.open();
|
|
202
|
+
newWin.document.write(htmlContent);
|
|
203
|
+
newWin.document.close();
|
|
204
|
+
}
|
|
205
|
+
var CodeSnippet = ({
|
|
206
|
+
code: singleCode = "",
|
|
207
|
+
language: defaultLang = "tsx",
|
|
208
|
+
theme = "dark",
|
|
209
|
+
title,
|
|
210
|
+
showLineNumbers = false,
|
|
211
|
+
copyable = true,
|
|
212
|
+
tabs,
|
|
213
|
+
activeTabKey: controlledTabKey,
|
|
214
|
+
defaultActiveTabKey,
|
|
215
|
+
onTabChange,
|
|
216
|
+
showActions = false,
|
|
217
|
+
actions = ["codesandbox", "codepen", "stackblitz", "external", "copy", "collapse"],
|
|
218
|
+
onAction,
|
|
219
|
+
sandboxConfig,
|
|
220
|
+
externalUrl,
|
|
221
|
+
collapsible = false,
|
|
222
|
+
defaultCollapsed = false,
|
|
223
|
+
collapsed: controlledCollapsed,
|
|
224
|
+
onCollapseChange,
|
|
225
|
+
showCollapseFooter = false,
|
|
226
|
+
className = "",
|
|
227
|
+
style
|
|
228
|
+
}) => {
|
|
229
|
+
const hasTabs = Array.isArray(tabs) && tabs.length > 0;
|
|
230
|
+
const [internalTabKey, setInternalTabKey] = useState(
|
|
231
|
+
defaultActiveTabKey != null ? defaultActiveTabKey : hasTabs ? tabs[0].key : ""
|
|
232
|
+
);
|
|
233
|
+
const activeKey = controlledTabKey !== void 0 ? controlledTabKey : internalTabKey;
|
|
234
|
+
const [internalCollapsed, setInternalCollapsed] = useState(defaultCollapsed);
|
|
235
|
+
const isCollapsed = controlledCollapsed !== void 0 ? controlledCollapsed : internalCollapsed;
|
|
236
|
+
const [copied, setCopied] = useState(false);
|
|
237
|
+
const currentTab = hasTabs ? tabs.find((t) => t.key === activeKey) || tabs[0] : null;
|
|
238
|
+
const currentCode = currentTab ? currentTab.code : singleCode;
|
|
239
|
+
const currentLanguage = currentTab ? currentTab.language || defaultLang : defaultLang;
|
|
240
|
+
const handleCopy = async () => {
|
|
241
|
+
try {
|
|
242
|
+
await navigator.clipboard.writeText(currentCode);
|
|
243
|
+
setCopied(true);
|
|
244
|
+
setTimeout(() => setCopied(false), 1500);
|
|
245
|
+
onAction == null ? void 0 : onAction("copy");
|
|
246
|
+
} catch (e) {
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
const handleToggleCollapse = () => {
|
|
250
|
+
const next = !isCollapsed;
|
|
251
|
+
if (controlledCollapsed === void 0) {
|
|
252
|
+
setInternalCollapsed(next);
|
|
253
|
+
}
|
|
254
|
+
onCollapseChange == null ? void 0 : onCollapseChange(next);
|
|
255
|
+
onAction == null ? void 0 : onAction("collapse");
|
|
256
|
+
};
|
|
257
|
+
const handleActionClick = (action) => {
|
|
258
|
+
const config = {
|
|
259
|
+
title: typeof title === "string" ? title : "react-public-components Demo",
|
|
260
|
+
...sandboxConfig
|
|
261
|
+
};
|
|
262
|
+
if (action === "codesandbox") {
|
|
263
|
+
openInCodeSandbox(currentCode, config);
|
|
264
|
+
} else if (action === "codepen") {
|
|
265
|
+
openInCodePen(currentCode, config);
|
|
266
|
+
} else if (action === "stackblitz") {
|
|
267
|
+
openInStackBlitz(currentCode, config);
|
|
268
|
+
} else if (action === "external") {
|
|
269
|
+
if (externalUrl) {
|
|
270
|
+
window.open(externalUrl, "_blank");
|
|
271
|
+
} else {
|
|
272
|
+
openInNewTab(currentCode, config.title || "Demo Preview");
|
|
273
|
+
}
|
|
274
|
+
} else if (action === "copy") {
|
|
275
|
+
handleCopy();
|
|
276
|
+
return;
|
|
277
|
+
} else if (action === "collapse") {
|
|
278
|
+
handleToggleCollapse();
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
281
|
+
onAction == null ? void 0 : onAction(action);
|
|
282
|
+
};
|
|
283
|
+
const handleTabClick = (key) => {
|
|
284
|
+
if (controlledTabKey === void 0) {
|
|
285
|
+
setInternalTabKey(key);
|
|
286
|
+
}
|
|
287
|
+
onTabChange == null ? void 0 : onTabChange(key);
|
|
288
|
+
};
|
|
289
|
+
const lines = currentCode.split("\n");
|
|
290
|
+
return /* @__PURE__ */ jsxs(
|
|
291
|
+
"div",
|
|
292
|
+
{
|
|
293
|
+
className: `rpc_code_snippet rpc_code_snippet_${theme} ${isCollapsed ? "rpc_code_snippet_collapsed" : ""} ${className}`,
|
|
294
|
+
style,
|
|
295
|
+
children: [
|
|
296
|
+
showActions && /* @__PURE__ */ jsx("div", { className: "rpc_code_snippet_actions_bar", children: /* @__PURE__ */ jsx("div", { className: "rpc_code_snippet_actions_list", children: actions.map((act, index) => {
|
|
297
|
+
if (typeof act !== "string") {
|
|
298
|
+
return /* @__PURE__ */ jsx(React.Fragment, { children: act }, index);
|
|
299
|
+
}
|
|
300
|
+
switch (act) {
|
|
301
|
+
case "codesandbox":
|
|
302
|
+
return /* @__PURE__ */ jsx(
|
|
303
|
+
"button",
|
|
304
|
+
{
|
|
305
|
+
type: "button",
|
|
306
|
+
className: "rpc_code_snippet_action_btn",
|
|
307
|
+
title: "\u5728 CodeSandbox \u4E2D\u6253\u5F00\u5E76\u5728\u7EBF\u8FD0\u884C",
|
|
308
|
+
onClick: () => handleActionClick("codesandbox"),
|
|
309
|
+
children: /* @__PURE__ */ jsx(CodeSandboxOutlined, {})
|
|
310
|
+
},
|
|
311
|
+
"codesandbox"
|
|
312
|
+
);
|
|
313
|
+
case "codepen":
|
|
314
|
+
return /* @__PURE__ */ jsx(
|
|
315
|
+
"button",
|
|
316
|
+
{
|
|
317
|
+
type: "button",
|
|
318
|
+
className: "rpc_code_snippet_action_btn",
|
|
319
|
+
title: "\u5728 CodePen \u4E2D\u6253\u5F00\u5E76\u6F14\u7EC3",
|
|
320
|
+
onClick: () => handleActionClick("codepen"),
|
|
321
|
+
children: /* @__PURE__ */ jsx(CodePenOutlined, {})
|
|
322
|
+
},
|
|
323
|
+
"codepen"
|
|
324
|
+
);
|
|
325
|
+
case "stackblitz":
|
|
326
|
+
return /* @__PURE__ */ jsx(
|
|
327
|
+
"button",
|
|
328
|
+
{
|
|
329
|
+
type: "button",
|
|
330
|
+
className: "rpc_code_snippet_action_btn",
|
|
331
|
+
title: "\u5728 StackBlitz \u4E2D\u6781\u901F\u542F\u52A8",
|
|
332
|
+
onClick: () => handleActionClick("stackblitz"),
|
|
333
|
+
children: /* @__PURE__ */ jsx(ThunderboltOutlined, {})
|
|
334
|
+
},
|
|
335
|
+
"stackblitz"
|
|
336
|
+
);
|
|
337
|
+
case "external":
|
|
338
|
+
return /* @__PURE__ */ jsx(
|
|
339
|
+
"button",
|
|
340
|
+
{
|
|
341
|
+
type: "button",
|
|
342
|
+
className: "rpc_code_snippet_action_btn",
|
|
343
|
+
title: "\u5728\u72EC\u7ACB\u65B0\u6807\u7B7E\u9875\u4E2D\u5168\u5C4F\u8FD0\u884C",
|
|
344
|
+
onClick: () => handleActionClick("external"),
|
|
345
|
+
children: /* @__PURE__ */ jsx(ExportOutlined, {})
|
|
346
|
+
},
|
|
347
|
+
"external"
|
|
348
|
+
);
|
|
349
|
+
case "copy":
|
|
350
|
+
return /* @__PURE__ */ jsx(
|
|
351
|
+
"button",
|
|
352
|
+
{
|
|
353
|
+
type: "button",
|
|
354
|
+
className: `rpc_code_snippet_action_btn ${copied ? "rpc_code_snippet_action_copied" : ""}`,
|
|
355
|
+
title: copied ? "\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F\uFF01" : "\u590D\u5236\u4EE3\u7801",
|
|
356
|
+
onClick: () => handleActionClick("copy"),
|
|
357
|
+
children: copied ? /* @__PURE__ */ jsx(CheckOutlined, { style: { color: "#52c41a" } }) : /* @__PURE__ */ jsx(CopyOutlined, {})
|
|
358
|
+
},
|
|
359
|
+
"copy"
|
|
360
|
+
);
|
|
361
|
+
case "collapse":
|
|
362
|
+
return /* @__PURE__ */ jsx(
|
|
363
|
+
"button",
|
|
364
|
+
{
|
|
365
|
+
type: "button",
|
|
366
|
+
className: `rpc_code_snippet_action_btn ${!isCollapsed ? "rpc_code_snippet_action_active" : ""}`,
|
|
367
|
+
title: isCollapsed ? "\u5C55\u5F00\u4EE3\u7801" : "\u6536\u8D77\u4EE3\u7801",
|
|
368
|
+
onClick: () => handleActionClick("collapse"),
|
|
369
|
+
children: /* @__PURE__ */ jsx(CodeOutlined, {})
|
|
370
|
+
},
|
|
371
|
+
"collapse"
|
|
372
|
+
);
|
|
373
|
+
default:
|
|
374
|
+
return null;
|
|
375
|
+
}
|
|
376
|
+
}) }) }),
|
|
377
|
+
hasTabs && /* @__PURE__ */ jsx("div", { className: "rpc_code_snippet_tabs_bar", children: tabs.map((tab) => /* @__PURE__ */ jsx(
|
|
378
|
+
"div",
|
|
379
|
+
{
|
|
380
|
+
className: `rpc_code_snippet_tab_item ${tab.key === activeKey ? "rpc_code_snippet_tab_active" : ""}`,
|
|
381
|
+
onClick: () => handleTabClick(tab.key),
|
|
382
|
+
children: tab.label
|
|
383
|
+
},
|
|
384
|
+
tab.key
|
|
385
|
+
)) }),
|
|
386
|
+
!showActions && /* @__PURE__ */ jsxs("div", { className: "rpc_code_snippet_top_bar", children: [
|
|
387
|
+
/* @__PURE__ */ jsxs("div", { className: "rpc_code_snippet_dots", children: [
|
|
388
|
+
/* @__PURE__ */ jsx("span", { className: "rpc_code_snippet_dot rpc_code_snippet_dot_red" }),
|
|
389
|
+
/* @__PURE__ */ jsx("span", { className: "rpc_code_snippet_dot rpc_code_snippet_dot_yellow" }),
|
|
390
|
+
/* @__PURE__ */ jsx("span", { className: "rpc_code_snippet_dot rpc_code_snippet_dot_green" })
|
|
391
|
+
] }),
|
|
392
|
+
/* @__PURE__ */ jsx("span", { className: "rpc_code_snippet_lang", children: title != null ? title : currentLanguage }),
|
|
393
|
+
copyable ? /* @__PURE__ */ jsx("button", { type: "button", className: "rpc_code_snippet_copy_btn", onClick: handleCopy, children: copied ? "\u2713 \u5DF2\u590D\u5236" : "\u590D\u5236" }) : /* @__PURE__ */ jsx("span", {})
|
|
394
|
+
] }),
|
|
395
|
+
!isCollapsed && /* @__PURE__ */ jsxs("div", { className: "rpc_code_snippet_body", children: [
|
|
396
|
+
showLineNumbers && /* @__PURE__ */ jsx("div", { className: "rpc_code_snippet_line_numbers", children: lines.map((_, idx) => /* @__PURE__ */ jsx("span", { className: "rpc_code_snippet_line_no", children: idx + 1 }, idx)) }),
|
|
397
|
+
/* @__PURE__ */ jsx("pre", { className: "rpc_code_snippet_content", children: /* @__PURE__ */ jsx("code", { children: currentCode }) }),
|
|
398
|
+
showActions && copyable && /* @__PURE__ */ jsxs("div", { className: "rpc_code_snippet_floating_copy", onClick: handleCopy, title: "\u590D\u5236\u4EE3\u7801", children: [
|
|
399
|
+
copied ? /* @__PURE__ */ jsx(CheckOutlined, { style: { color: "#52c41a" } }) : /* @__PURE__ */ jsx(CopyOutlined, {}),
|
|
400
|
+
/* @__PURE__ */ jsx("span", { style: { fontSize: 11, marginLeft: 4 }, children: currentLanguage })
|
|
401
|
+
] })
|
|
402
|
+
] }),
|
|
403
|
+
(showCollapseFooter || collapsible) && !isCollapsed && /* @__PURE__ */ jsxs("div", { className: "rpc_code_snippet_footer", onClick: handleToggleCollapse, children: [
|
|
404
|
+
/* @__PURE__ */ jsx(UpOutlined, { style: { marginRight: 6, fontSize: 12 } }),
|
|
405
|
+
/* @__PURE__ */ jsx("span", { children: "\u6536\u8D77\u4EE3\u7801" })
|
|
406
|
+
] }),
|
|
407
|
+
(showCollapseFooter || collapsible) && isCollapsed && /* @__PURE__ */ jsxs("div", { className: "rpc_code_snippet_footer", onClick: handleToggleCollapse, children: [
|
|
408
|
+
/* @__PURE__ */ jsx(DownOutlined, { style: { marginRight: 6, fontSize: 12 } }),
|
|
409
|
+
/* @__PURE__ */ jsx("span", { children: "\u5C55\u5F00\u4EE3\u7801" })
|
|
410
|
+
] })
|
|
411
|
+
]
|
|
412
|
+
}
|
|
413
|
+
);
|
|
414
|
+
};
|
|
415
|
+
var CodeSnippet_default = CodeSnippet;
|
|
416
|
+
|
|
417
|
+
export { CodeSnippet_default, openInCodePen, openInCodeSandbox, openInNewTab, openInStackBlitz };
|
|
418
|
+
//# sourceMappingURL=chunk-4KMVABTM.js.map
|
|
419
|
+
//# sourceMappingURL=chunk-4KMVABTM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../CodeSnippet/sandbox.ts","../CodeSnippet/index.tsx"],"names":[],"mappings":"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","file":"chunk-4KMVABTM.js","sourcesContent":["/**\n * 在线沙箱 (StackBlitz / CodeSandbox / CodePen) 一键调起工具\n * 零第三方 UI 库依赖,原生运行 react-public-components\n */\n\nexport interface SandboxConfig {\n\ttitle?: string;\n\tdescription?: string;\n\tdependencies?: Record<string, string>;\n\tdevDependencies?: Record<string, string>;\n}\n\nconst defaultPackageJson = (\n\tdependencies: Record<string, string> = {},\n\tdevDependencies: Record<string, string> = {},\n) => ({\n\tname: 'react-public-components-demo',\n\tversion: '1.0.0',\n\tdescription: 'Interactive demo generated by react-public-components',\n\tmain: 'src/index.tsx',\n\tdependencies: {\n\t\treact: '^18.3.1',\n\t\t'react-dom': '^18.3.1',\n\t\t'react-public-components': 'latest',\n\t\t...dependencies,\n\t},\n\tdevDependencies: {\n\t\t'@types/react': '^18.3.3',\n\t\t'@types/react-dom': '^18.3.0',\n\t\ttypescript: '^5.5.0',\n\t\t...devDependencies,\n\t},\n});\n\nconst defaultHtml = `<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <title>React Public Components Demo</title>\n <link rel=\"stylesheet\" href=\"https://unpkg.com/react-public-components/dist/index.css\" />\n <style>\n * { box-sizing: border-box; }\n body { margin: 0; padding: 24px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; background: #f8fafc; }\n </style>\n</head>\n<body>\n <div id=\"root\"></div>\n</body>\n</html>`;\n\nconst defaultIndexTsx = `import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport 'react-public-components/dist/index.css';\nimport App from './App';\n\nconst container = document.getElementById('root');\nif (container) {\n const root = createRoot(container);\n root.render(\n <React.StrictMode>\n <App />\n </React.StrictMode>\n );\n}`;\n\n/**\n * 在 StackBlitz 中打开项目(极速、免注册、支持完整 TSX 编译)\n */\nexport function openInStackBlitz(code: string, config: SandboxConfig = {}) {\n\tconst form = document.createElement('form');\n\tform.method = 'POST';\n\tform.action = 'https://stackblitz.com/run';\n\tform.target = '_blank';\n\tform.style.display = 'none';\n\n\tconst pkg = defaultPackageJson(config.dependencies, config.devDependencies);\n\n\tconst fields: Record<string, string> = {\n\t\t'project[title]': config.title || 'react-public-components Demo',\n\t\t'project[description]': config.description || 'Live Component Demo',\n\t\t'project[template]': 'create-react-app',\n\t\t'project[files][package.json]': JSON.stringify(pkg, null, 2),\n\t\t'project[files][public/index.html]': defaultHtml,\n\t\t'project[files][src/index.tsx]': defaultIndexTsx,\n\t\t'project[files][src/App.tsx]': code,\n\t\t'project[files][tsconfig.json]': JSON.stringify(\n\t\t\t{\n\t\t\t\tcompilerOptions: {\n\t\t\t\t\ttarget: 'es5',\n\t\t\t\t\tlib: ['dom', 'dom.iterable', 'esnext'],\n\t\t\t\t\tallowJs: true,\n\t\t\t\t\tskipLibCheck: true,\n\t\t\t\t\tesModuleInterop: true,\n\t\t\t\t\tallowSyntheticDefaultImports: true,\n\t\t\t\t\tstrict: true,\n\t\t\t\t\tforceConsistentCasingInFileNames: true,\n\t\t\t\t\tnoFallthroughCasesInSwitch: true,\n\t\t\t\t\tmodule: 'esnext',\n\t\t\t\t\tmoduleResolution: 'node',\n\t\t\t\t\tresolveJsonModule: true,\n\t\t\t\t\tisolatedModules: true,\n\t\t\t\t\tnoEmit: true,\n\t\t\t\t\tjsx: 'react-jsx',\n\t\t\t\t},\n\t\t\t\tinclude: ['src'],\n\t\t\t},\n\t\t\tnull,\n\t\t\t2,\n\t\t),\n\t};\n\n\tObject.entries(fields).forEach(([key, val]) => {\n\t\tconst input = document.createElement('input');\n\t\tinput.type = 'hidden';\n\t\tinput.name = key;\n\t\tinput.value = val;\n\t\tform.appendChild(input);\n\t});\n\n\tdocument.body.appendChild(form);\n\tform.submit();\n\tdocument.body.removeChild(form);\n}\n\n/**\n * 在 CodeSandbox 中打开项目\n */\nexport function openInCodeSandbox(code: string, config: SandboxConfig = {}) {\n\tconst pkg = defaultPackageJson(config.dependencies, config.devDependencies);\n\n\tconst files = {\n\t\t'package.json': {\n\t\t\tcontent: JSON.stringify(pkg, null, 2),\n\t\t},\n\t\t'public/index.html': {\n\t\t\tcontent: defaultHtml,\n\t\t},\n\t\t'src/index.tsx': {\n\t\t\tcontent: defaultIndexTsx,\n\t\t},\n\t\t'src/App.tsx': {\n\t\t\tcontent: code,\n\t\t},\n\t};\n\n\tfetch('https://codesandbox.io/api/v1/sandboxes/define?json=1', {\n\t\tmethod: 'POST',\n\t\theaders: {\n\t\t\t'Content-Type': 'application/json',\n\t\t\tAccept: 'application/json',\n\t\t},\n\t\tbody: JSON.stringify({ files }),\n\t})\n\t\t.then((res) => res.json())\n\t\t.then((data) => {\n\t\t\tif (data && data.sandbox_id) {\n\t\t\t\twindow.open(`https://codesandbox.io/s/${data.sandbox_id}`, '_blank');\n\t\t\t}\n\t\t})\n\t\t.catch(() => {\n\t\t\t// 降级使用 StackBlitz 打开\n\t\t\topenInStackBlitz(code, config);\n\t\t});\n}\n\n/**\n * 在 CodePen 中打开演练场\n */\nexport function openInCodePen(code: string, config: SandboxConfig = {}) {\n\tconst form = document.createElement('form');\n\tform.method = 'POST';\n\tform.action = 'https://codepen.io/pen/define/';\n\tform.target = '_blank';\n\tform.style.display = 'none';\n\n\tlet cleanJs = code\n\t\t.replace(/import\\s+[\\s\\S]*?from\\s+['\"][^'\"]+['\"];?/g, '')\n\t\t.replace(/export\\s+default\\s+App;?/g, '')\n\t\t.replace(/export\\s+default\\s+/g, '');\n\n\tcleanJs += '\\n\\nconst root = ReactDOM.createRoot(document.getElementById(\"root\"));\\nroot.render(<App />);';\n\n\tconst data = {\n\t\ttitle: config.title || 'react-public-components Demo',\n\t\tdescription: config.description || 'Live Component Demo',\n\t\thtml: '<div id=\"root\"></div>',\n\t\tjs: cleanJs,\n\t\tjs_pre_processor: 'babel',\n\t\tcss: 'body { margin: 0; padding: 24px; font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif; background: #f8fafc; }',\n\t\tjs_external: [\n\t\t\t'https://unpkg.com/react@18/umd/react.production.min.js',\n\t\t\t'https://unpkg.com/react-dom@18/umd/react-dom.production.min.js',\n\t\t\t'https://unpkg.com/react-public-components/dist/index.umd.js',\n\t\t].join(';'),\n\t\tcss_external: [\n\t\t\t'https://unpkg.com/react-public-components/dist/index.css',\n\t\t].join(';'),\n\t};\n\n\tconst input = document.createElement('input');\n\tinput.type = 'hidden';\n\tinput.name = 'data';\n\tinput.value = JSON.stringify(data);\n\tform.appendChild(input);\n\n\tdocument.body.appendChild(form);\n\tform.submit();\n\tdocument.body.removeChild(form);\n}\n\n/**\n * 在新标签页中独立打开运行\n */\nexport function openInNewTab(code: string, title: string = 'Demo Preview') {\n\tconst newWin = window.open('', '_blank');\n\tif (!newWin) return;\n\n\tconst htmlContent = `<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"utf-8\" />\n <title>${title}</title>\n <link rel=\"stylesheet\" href=\"https://unpkg.com/react-public-components/dist/index.css\" />\n <script src=\"https://unpkg.com/react@18/umd/react.production.min.js\"></script>\n <script src=\"https://unpkg.com/react-dom@18/umd/react-dom.production.min.js\"></script>\n <script src=\"https://unpkg.com/@babel/standalone/babel.min.js\"></script>\n <style>\n * { box-sizing: border-box; }\n body { margin: 0; padding: 24px; background: #f8fafc; font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif; }\n #root { background: #fff; padding: 32px; border-radius: 12px; box-shadow: 0 4px 16px rgba(0,0,0,0.06); max-width: 900px; margin: 0 auto; }\n </style>\n</head>\n<body>\n <div id=\"root\"></div>\n <script type=\"text/babel\">\n const { useState, useEffect, useRef, useMemo, useCallback } = React;\n \n ${code\n\t\t\t.replace(/import\\s+[\\s\\S]*?from\\s+['\"][^'\"]+['\"];?/g, '')\n\t\t\t.replace(/export\\s+default\\s+App;?/g, '')\n\t\t\t.replace(/export\\s+default\\s+/g, '')}\n\n if (typeof App !== 'undefined') {\n const root = ReactDOM.createRoot(document.getElementById('root'));\n root.render(<App />);\n }\n </script>\n</body>\n</html>`;\n\n\tnewWin.document.open();\n\tnewWin.document.write(htmlContent);\n\tnewWin.document.close();\n}\n","import React, { useState, ReactNode, CSSProperties } from 'react';\nimport {\n\tCodeSandboxOutlined,\n\tCodePenOutlined,\n\tThunderboltOutlined,\n\tCodeOutlined,\n\tExportOutlined,\n\tCopyOutlined,\n\tCheckOutlined,\n\tUpOutlined,\n\tDownOutlined,\n} from '../src/icons';\nimport {\n\topenInCodeSandbox,\n\topenInCodePen,\n\topenInStackBlitz,\n\topenInNewTab,\n\tSandboxConfig,\n} from './sandbox';\nimport './index.less';\n\nexport type CodeSnippetTheme = 'dark' | 'light';\n\nexport interface CodeTabItem {\n\tkey: string;\n\tlabel: ReactNode;\n\tcode: string;\n\tlanguage?: string;\n}\n\nexport type BuiltinAction =\n\t| 'codesandbox'\n\t| 'codepen'\n\t| 'stackblitz'\n\t| 'copy'\n\t| 'external'\n\t| 'collapse';\n\nexport interface CodeSnippetProps {\n\t/** 代码文本内容(单代码模式) */\n\tcode?: string;\n\t/** 编程语言标识,默认为 'tsx' */\n\tlanguage?: string;\n\t/** 代码块主题风格:'dark' 暗色(默认) / 'light' 亮色 */\n\ttheme?: CodeSnippetTheme;\n\t/** 顶部自定义标题或说明标签(不传时展示大写的 language) */\n\ttitle?: ReactNode;\n\t/** 是否显示代码行号,默认为 false */\n\tshowLineNumbers?: boolean;\n\t/** 是否展示一键复制按钮,默认为 true */\n\tcopyable?: boolean;\n\t/** 多语言/多版本 Tabs 切换(如 TypeScript / JavaScript) */\n\ttabs?: CodeTabItem[];\n\t/** 当前激活的 Tab key(受控) */\n\tactiveTabKey?: string;\n\t/** 默认激活的 Tab key */\n\tdefaultActiveTabKey?: string;\n\t/** Tab 切换回调 */\n\tonTabChange?: (key: string) => void;\n\t/** 是否展示上方经典操作工具栏(CodeSandbox、CodePen、StackBlitz、外部打开、复制、代码展开折叠) */\n\tshowActions?: boolean;\n\t/** 自定义操作栏按钮列表 */\n\tactions?: (BuiltinAction | ReactNode)[];\n\t/** 点击操作按钮时的回调函数 */\n\tonAction?: (actionKey: string) => void;\n\t/** 沙箱自定义配置(标题、依赖库等) */\n\tsandboxConfig?: SandboxConfig;\n\t/** 外部独立运行的完整页面 URL(若传则 external 按钮直接打开此链接,不传则自动在新窗口动态构建运行) */\n\texternalUrl?: string;\n\t/** 是否支持折叠/展开代码 */\n\tcollapsible?: boolean;\n\t/** 默认是否折叠 */\n\tdefaultCollapsed?: boolean;\n\t/** 当前是否折叠(受控) */\n\tcollapsed?: boolean;\n\t/** 折叠状态切换回调 */\n\tonCollapseChange?: (collapsed: boolean) => void;\n\t/** 是否展示底部的“收起 / 展开代码”控制条,默认为 false */\n\tshowCollapseFooter?: boolean;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst CodeSnippet: React.FC<CodeSnippetProps> = ({\n\tcode: singleCode = '',\n\tlanguage: defaultLang = 'tsx',\n\ttheme = 'dark',\n\ttitle,\n\tshowLineNumbers = false,\n\tcopyable = true,\n\ttabs,\n\tactiveTabKey: controlledTabKey,\n\tdefaultActiveTabKey,\n\tonTabChange,\n\tshowActions = false,\n\tactions = ['codesandbox', 'codepen', 'stackblitz', 'external', 'copy', 'collapse'],\n\tonAction,\n\tsandboxConfig,\n\texternalUrl,\n\tcollapsible = false,\n\tdefaultCollapsed = false,\n\tcollapsed: controlledCollapsed,\n\tonCollapseChange,\n\tshowCollapseFooter = false,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst hasTabs = Array.isArray(tabs) && tabs.length > 0;\n\tconst [internalTabKey, setInternalTabKey] = useState<string>(\n\t\tdefaultActiveTabKey ?? (hasTabs ? tabs[0].key : ''),\n\t);\n\tconst activeKey = controlledTabKey !== undefined ? controlledTabKey : internalTabKey;\n\n\tconst [internalCollapsed, setInternalCollapsed] = useState<boolean>(defaultCollapsed);\n\tconst isCollapsed = controlledCollapsed !== undefined ? controlledCollapsed : internalCollapsed;\n\n\tconst [copied, setCopied] = useState<boolean>(false);\n\n\t// 获取当前展示的代码与语言\n\tconst currentTab = hasTabs ? tabs.find((t) => t.key === activeKey) || tabs[0] : null;\n\tconst currentCode = currentTab ? currentTab.code : singleCode;\n\tconst currentLanguage = currentTab ? currentTab.language || defaultLang : defaultLang;\n\n\tconst handleCopy = async () => {\n\t\ttry {\n\t\t\tawait navigator.clipboard.writeText(currentCode);\n\t\t\tsetCopied(true);\n\t\t\tsetTimeout(() => setCopied(false), 1500);\n\t\t\tonAction?.('copy');\n\t\t} catch {\n\t\t\t// fallback\n\t\t}\n\t};\n\n\tconst handleToggleCollapse = () => {\n\t\tconst next = !isCollapsed;\n\t\tif (controlledCollapsed === undefined) {\n\t\t\tsetInternalCollapsed(next);\n\t\t}\n\t\tonCollapseChange?.(next);\n\t\tonAction?.('collapse');\n\t};\n\n\tconst handleActionClick = (action: string) => {\n\t\tconst config: SandboxConfig = {\n\t\t\ttitle: typeof title === 'string' ? title : 'react-public-components Demo',\n\t\t\t...sandboxConfig,\n\t\t};\n\n\t\tif (action === 'codesandbox') {\n\t\t\topenInCodeSandbox(currentCode, config);\n\t\t} else if (action === 'codepen') {\n\t\t\topenInCodePen(currentCode, config);\n\t\t} else if (action === 'stackblitz') {\n\t\t\topenInStackBlitz(currentCode, config);\n\t\t} else if (action === 'external') {\n\t\t\tif (externalUrl) {\n\t\t\t\twindow.open(externalUrl, '_blank');\n\t\t\t} else {\n\t\t\t\topenInNewTab(currentCode, config.title || 'Demo Preview');\n\t\t\t}\n\t\t} else if (action === 'copy') {\n\t\t\thandleCopy();\n\t\t\treturn;\n\t\t} else if (action === 'collapse') {\n\t\t\thandleToggleCollapse();\n\t\t\treturn;\n\t\t}\n\t\tonAction?.(action);\n\t};\n\n\tconst handleTabClick = (key: string) => {\n\t\tif (controlledTabKey === undefined) {\n\t\t\tsetInternalTabKey(key);\n\t\t}\n\t\tonTabChange?.(key);\n\t};\n\n\tconst lines = currentCode.split('\\n');\n\n\treturn (\n\t\t<div\n\t\t\tclassName={`rpc_code_snippet rpc_code_snippet_${theme} ${\n\t\t\t\tisCollapsed ? 'rpc_code_snippet_collapsed' : ''\n\t\t\t} ${className}`}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t{/* 1. 顶部操作工具栏(图1红色区域) */}\n\t\t\t{showActions && (\n\t\t\t\t<div className=\"rpc_code_snippet_actions_bar\">\n\t\t\t\t\t<div className=\"rpc_code_snippet_actions_list\">\n\t\t\t\t\t\t{actions.map((act, index) => {\n\t\t\t\t\t\t\tif (typeof act !== 'string') {\n\t\t\t\t\t\t\t\treturn <React.Fragment key={index}>{act}</React.Fragment>;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tswitch (act) {\n\t\t\t\t\t\t\t\tcase 'codesandbox':\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\tkey=\"codesandbox\"\n\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"rpc_code_snippet_action_btn\"\n\t\t\t\t\t\t\t\t\t\t\ttitle=\"在 CodeSandbox 中打开并在线运行\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => handleActionClick('codesandbox')}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<CodeSandboxOutlined />\n\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tcase 'codepen':\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\tkey=\"codepen\"\n\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"rpc_code_snippet_action_btn\"\n\t\t\t\t\t\t\t\t\t\t\ttitle=\"在 CodePen 中打开并演练\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => handleActionClick('codepen')}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<CodePenOutlined />\n\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tcase 'stackblitz':\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\tkey=\"stackblitz\"\n\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"rpc_code_snippet_action_btn\"\n\t\t\t\t\t\t\t\t\t\t\ttitle=\"在 StackBlitz 中极速启动\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => handleActionClick('stackblitz')}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<ThunderboltOutlined />\n\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tcase 'external':\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\tkey=\"external\"\n\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"rpc_code_snippet_action_btn\"\n\t\t\t\t\t\t\t\t\t\t\ttitle=\"在独立新标签页中全屏运行\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => handleActionClick('external')}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<ExportOutlined />\n\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tcase 'copy':\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\tkey=\"copy\"\n\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\tclassName={`rpc_code_snippet_action_btn ${\n\t\t\t\t\t\t\t\t\t\t\t\tcopied ? 'rpc_code_snippet_action_copied' : ''\n\t\t\t\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\t\t\t\ttitle={copied ? '已复制到剪贴板!' : '复制代码'}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => handleActionClick('copy')}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{copied ? <CheckOutlined style={{ color: '#52c41a' }} /> : <CopyOutlined />}\n\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tcase 'collapse':\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\tkey=\"collapse\"\n\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\tclassName={`rpc_code_snippet_action_btn ${\n\t\t\t\t\t\t\t\t\t\t\t\t!isCollapsed ? 'rpc_code_snippet_action_active' : ''\n\t\t\t\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\t\t\t\ttitle={isCollapsed ? '展开代码' : '收起代码'}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => handleActionClick('collapse')}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<CodeOutlined />\n\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* 2. 标签页切换栏(TypeScript / JavaScript) */}\n\t\t\t{hasTabs && (\n\t\t\t\t<div className=\"rpc_code_snippet_tabs_bar\">\n\t\t\t\t\t{tabs.map((tab) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={tab.key}\n\t\t\t\t\t\t\tclassName={`rpc_code_snippet_tab_item ${\n\t\t\t\t\t\t\t\ttab.key === activeKey ? 'rpc_code_snippet_tab_active' : ''\n\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\tonClick={() => handleTabClick(tab.key)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{tab.label}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* 3. 经典标题栏(无 showActions 时显示) */}\n\t\t\t{!showActions && (\n\t\t\t\t<div className=\"rpc_code_snippet_top_bar\">\n\t\t\t\t\t<div className=\"rpc_code_snippet_dots\">\n\t\t\t\t\t\t<span className=\"rpc_code_snippet_dot rpc_code_snippet_dot_red\" />\n\t\t\t\t\t\t<span className=\"rpc_code_snippet_dot rpc_code_snippet_dot_yellow\" />\n\t\t\t\t\t\t<span className=\"rpc_code_snippet_dot rpc_code_snippet_dot_green\" />\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<span className=\"rpc_code_snippet_lang\">{title ?? currentLanguage}</span>\n\n\t\t\t\t\t{copyable ? (\n\t\t\t\t\t\t<button type=\"button\" className=\"rpc_code_snippet_copy_btn\" onClick={handleCopy}>\n\t\t\t\t\t\t\t{copied ? '✓ 已复制' : '复制'}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<span />\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* 4. 代码内容主体 */}\n\t\t\t{!isCollapsed && (\n\t\t\t\t<div className=\"rpc_code_snippet_body\">\n\t\t\t\t\t{showLineNumbers && (\n\t\t\t\t\t\t<div className=\"rpc_code_snippet_line_numbers\">\n\t\t\t\t\t\t\t{lines.map((_, idx) => (\n\t\t\t\t\t\t\t\t<span key={idx} className=\"rpc_code_snippet_line_no\">\n\t\t\t\t\t\t\t\t\t{idx + 1}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t<pre className=\"rpc_code_snippet_content\">\n\t\t\t\t\t\t<code>{currentCode}</code>\n\t\t\t\t\t</pre>\n\t\t\t\t\t{showActions && copyable && (\n\t\t\t\t\t\t<div className=\"rpc_code_snippet_floating_copy\" onClick={handleCopy} title=\"复制代码\">\n\t\t\t\t\t\t\t{copied ? <CheckOutlined style={{ color: '#52c41a' }} /> : <CopyOutlined />}\n\t\t\t\t\t\t\t<span style={{ fontSize: 11, marginLeft: 4 }}>{currentLanguage}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* 5. 底部收起/展开控制条 */}\n\t\t\t{(showCollapseFooter || collapsible) && !isCollapsed && (\n\t\t\t\t<div className=\"rpc_code_snippet_footer\" onClick={handleToggleCollapse}>\n\t\t\t\t\t<UpOutlined style={{ marginRight: 6, fontSize: 12 }} />\n\t\t\t\t\t<span>收起代码</span>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{(showCollapseFooter || collapsible) && isCollapsed && (\n\t\t\t\t<div className=\"rpc_code_snippet_footer\" onClick={handleToggleCollapse}>\n\t\t\t\t\t<DownOutlined style={{ marginRight: 6, fontSize: 12 }} />\n\t\t\t\t\t<span>展开代码</span>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default CodeSnippet;\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkR4V3EJVP_cjs = require('./chunk-R4V3EJVP.cjs');
|
|
4
4
|
var react = require('react');
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
|
|
@@ -76,7 +76,7 @@ var AudioPlayer = ({
|
|
|
76
76
|
onEnded: () => setIsPlaying(false)
|
|
77
77
|
}
|
|
78
78
|
),
|
|
79
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "rpc_audio_player_play_btn", onClick: togglePlay, children: isPlaying ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
79
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "rpc_audio_player_play_btn", onClick: togglePlay, children: isPlaying ? /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.PauseCircleOutlined, {}) : /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.PlayCircleOutlined, {}) }),
|
|
80
80
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rpc_audio_player_info", children: [
|
|
81
81
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rpc_audio_player_title_row", children: [
|
|
82
82
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_audio_player_title", children: title || "\u97F3\u9891\u64AD\u653E" }),
|
|
@@ -116,7 +116,7 @@ var AudioPlayer = ({
|
|
|
116
116
|
className: "rpc_audio_player_download_btn",
|
|
117
117
|
title: "\u4E0B\u8F7D\u97F3\u9891\u6587\u4EF6",
|
|
118
118
|
onClick: (e) => e.stopPropagation(),
|
|
119
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
119
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.DownloadOutlined, {})
|
|
120
120
|
}
|
|
121
121
|
)
|
|
122
122
|
] })
|
|
@@ -125,5 +125,5 @@ var AudioPlayer = ({
|
|
|
125
125
|
var AudioPlayer_default = AudioPlayer;
|
|
126
126
|
|
|
127
127
|
exports.AudioPlayer_default = AudioPlayer_default;
|
|
128
|
-
//# sourceMappingURL=chunk-
|
|
129
|
-
//# sourceMappingURL=chunk-
|
|
128
|
+
//# sourceMappingURL=chunk-4TMBGQQE.cjs.map
|
|
129
|
+
//# sourceMappingURL=chunk-4TMBGQQE.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../AudioPlayer/index.tsx"],"names":["useRef","useState","jsx","PauseCircleOutlined","PlayCircleOutlined","jsxs","DownloadOutlined"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../AudioPlayer/index.tsx"],"names":["useRef","useState","jsx","PauseCircleOutlined","PlayCircleOutlined","jsxs","DownloadOutlined"],"mappings":"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","file":"chunk-4TMBGQQE.cjs","sourcesContent":["import React, { useState, useRef, useEffect, ReactNode, CSSProperties } from 'react';\nimport { PlayCircleOutlined, PauseCircleOutlined, DownloadOutlined } from '../src/icons';\nimport './index.less';\n\nexport interface AudioPlayerProps {\n\t/** 音频资源地址 */\n\tsrc: string;\n\t/** 音频标题或文件名 */\n\ttitle?: ReactNode;\n\t/** 默认倍速,默认为 1 */\n\tdefaultPlaybackRate?: number;\n\t/** 是否显示下载按钮,默认为 true */\n\tshowDownload?: boolean;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nfunction formatTime(seconds: number): string {\n\tif (isNaN(seconds) || seconds < 0) return '00:00';\n\tconst m = Math.floor(seconds / 60);\n\tconst s = Math.floor(seconds % 60);\n\treturn `${String(m).padStart(2, '0')}:${String(s).padStart(2, '0')}`;\n}\n\nconst speedOptions = [1.0, 1.25, 1.5, 2.0];\n\nconst AudioPlayer: React.FC<AudioPlayerProps> = ({\n\tsrc,\n\ttitle,\n\tdefaultPlaybackRate = 1.0,\n\tshowDownload = true,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst audioRef = useRef<HTMLAudioElement>(null);\n\tconst progressRef = useRef<HTMLDivElement>(null);\n\n\tconst [isPlaying, setIsPlaying] = useState<boolean>(false);\n\tconst [currentTime, setCurrentTime] = useState<number>(0);\n\tconst [duration, setDuration] = useState<number>(0);\n\tconst [speedIndex, setSpeedIndex] = useState<number>(\n\t\tMath.max(0, speedOptions.indexOf(defaultPlaybackRate)),\n\t);\n\n\tconst currentSpeed = speedOptions[speedIndex] || 1.0;\n\n\t// 播放 / 暂停切换\n\tconst togglePlay = () => {\n\t\tconst audio = audioRef.current;\n\t\tif (!audio) return;\n\t\tif (isPlaying) {\n\t\t\taudio.pause();\n\t\t\tsetIsPlaying(false);\n\t\t} else {\n\t\t\taudio.play();\n\t\t\tsetIsPlaying(true);\n\t\t}\n\t};\n\n\t// 监听时间更新\n\tconst handleTimeUpdate = () => {\n\t\tif (audioRef.current) {\n\t\t\tsetCurrentTime(audioRef.current.currentTime);\n\t\t}\n\t};\n\n\t// 监听时长加载\n\tconst handleLoadedMetadata = () => {\n\t\tif (audioRef.current) {\n\t\t\tsetDuration(audioRef.current.duration);\n\t\t}\n\t};\n\n\t// 切换倍速\n\tconst handleSpeedCycle = () => {\n\t\tconst nextIndex = (speedIndex + 1) % speedOptions.length;\n\t\tsetSpeedIndex(nextIndex);\n\t\tif (audioRef.current) {\n\t\t\taudioRef.current.playbackRate = speedOptions[nextIndex];\n\t\t}\n\t};\n\n\t// 拖拽进度条 Seek\n\tconst handleSeek = (e: React.MouseEvent<HTMLDivElement>) => {\n\t\tif (!progressRef.current || !audioRef.current || !duration) return;\n\t\tconst rect = progressRef.current.getBoundingClientRect();\n\t\tconst percent = Math.min(1, Math.max(0, (e.clientX - rect.left) / rect.width));\n\t\tconst targetTime = percent * duration;\n\t\taudioRef.current.currentTime = targetTime;\n\t\tsetCurrentTime(targetTime);\n\t};\n\n\tconst progressPercent = duration > 0 ? (currentTime / duration) * 100 : 0;\n\n\treturn (\n\t\t<div className={`rpc_audio_player ${className}`} style={style}>\n\t\t\t<audio\n\t\t\t\tref={audioRef}\n\t\t\t\tsrc={src}\n\t\t\t\tonTimeUpdate={handleTimeUpdate}\n\t\t\t\tonLoadedMetadata={handleLoadedMetadata}\n\t\t\t\tonEnded={() => setIsPlaying(false)}\n\t\t\t/>\n\n\t\t\t{/* 播放 / 暂停按钮 */}\n\t\t\t<div className=\"rpc_audio_player_play_btn\" onClick={togglePlay}>\n\t\t\t\t{isPlaying ? <PauseCircleOutlined /> : <PlayCircleOutlined />}\n\t\t\t</div>\n\n\t\t\t{/* 信息与进度条 */}\n\t\t\t<div className=\"rpc_audio_player_info\">\n\t\t\t\t<div className=\"rpc_audio_player_title_row\">\n\t\t\t\t\t<span className=\"rpc_audio_player_title\">{title || '音频播放'}</span>\n\t\t\t\t\t<span className=\"rpc_audio_player_time\">\n\t\t\t\t\t\t{formatTime(currentTime)} / {formatTime(duration)}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\n\t\t\t\t<div ref={progressRef} className=\"rpc_audio_player_progress_bar\" onClick={handleSeek}>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"rpc_audio_player_progress_fill\"\n\t\t\t\t\t\tstyle={{ width: `${progressPercent}%` }}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* 倍速与下载 */}\n\t\t\t<div className=\"rpc_audio_player_extra\">\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclassName=\"rpc_audio_player_speed_btn\"\n\t\t\t\t\tonClick={handleSpeedCycle}\n\t\t\t\t\ttitle=\"点击切换播放倍速\"\n\t\t\t\t>\n\t\t\t\t\t{currentSpeed}x\n\t\t\t\t</button>\n\n\t\t\t\t{showDownload && (\n\t\t\t\t\t<a\n\t\t\t\t\t\thref={src}\n\t\t\t\t\t\tdownload\n\t\t\t\t\t\tclassName=\"rpc_audio_player_download_btn\"\n\t\t\t\t\t\ttitle=\"下载音频文件\"\n\t\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t\t>\n\t\t\t\t\t\t<DownloadOutlined />\n\t\t\t\t\t</a>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default AudioPlayer;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ZoomInOutlined, ZoomOutOutlined, RotateRightOutlined, DownloadOutlined, CloseOutlined, FileOutlined, FileTextOutlined, FilePdfOutlined, FileImageOutlined } from './chunk-
|
|
1
|
+
import { ZoomInOutlined, ZoomOutOutlined, RotateRightOutlined, DownloadOutlined, CloseOutlined, FileOutlined, FileTextOutlined, FilePdfOutlined, FileImageOutlined } from './chunk-2IDVNTKR.js';
|
|
2
2
|
import { useState, useEffect } from 'react';
|
|
3
3
|
import ReactDOM from 'react-dom';
|
|
4
4
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -19,20 +19,14 @@ function inferFileType(urlOrName) {
|
|
|
19
19
|
if (["pdf"].includes(ext)) {
|
|
20
20
|
return "pdf";
|
|
21
21
|
}
|
|
22
|
-
if (["txt", "json", "js", "ts", "jsx", "tsx", "html", "css", "less", "md", "log", "xml"].includes(
|
|
22
|
+
if (["txt", "json", "js", "ts", "jsx", "tsx", "html", "css", "less", "md", "log", "xml"].includes(
|
|
23
|
+
ext
|
|
24
|
+
)) {
|
|
23
25
|
return "text";
|
|
24
26
|
}
|
|
25
27
|
return "unknown";
|
|
26
28
|
}
|
|
27
|
-
var FilePreviewer = ({
|
|
28
|
-
open,
|
|
29
|
-
file,
|
|
30
|
-
onCancel,
|
|
31
|
-
onDownload,
|
|
32
|
-
extraActions,
|
|
33
|
-
className = "",
|
|
34
|
-
style
|
|
35
|
-
}) => {
|
|
29
|
+
var FilePreviewer = ({ open, file, onCancel, onDownload, extraActions, className = "", style }) => {
|
|
36
30
|
const [imageScale, setImageScale] = useState(1);
|
|
37
31
|
const [imageRotate, setImageRotate] = useState(0);
|
|
38
32
|
useEffect(() => {
|
|
@@ -221,14 +215,11 @@ FilePreviewer.preview = (options) => {
|
|
|
221
215
|
ReactDOM.render(/* @__PURE__ */ jsx(Fragment, {}), div);
|
|
222
216
|
div.remove();
|
|
223
217
|
};
|
|
224
|
-
ReactDOM.render(
|
|
225
|
-
/* @__PURE__ */ jsx(FilePreviewer, { open: true, file: options, onCancel: close }),
|
|
226
|
-
div
|
|
227
|
-
);
|
|
218
|
+
ReactDOM.render(/* @__PURE__ */ jsx(FilePreviewer, { open: true, file: options, onCancel: close }), div);
|
|
228
219
|
return { close };
|
|
229
220
|
};
|
|
230
221
|
var FilePreviewer_default = FilePreviewer;
|
|
231
222
|
|
|
232
223
|
export { FilePreviewer_default, inferFileType };
|
|
233
|
-
//# sourceMappingURL=chunk-
|
|
234
|
-
//# sourceMappingURL=chunk-
|
|
224
|
+
//# sourceMappingURL=chunk-56VELHCH.js.map
|
|
225
|
+
//# sourceMappingURL=chunk-56VELHCH.js.map
|