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.
Files changed (368) hide show
  1. package/dist/ActivityLog/index.cjs +2 -2
  2. package/dist/ActivityLog/index.js +1 -1
  3. package/dist/AudioPlayer/index.cjs +3 -3
  4. package/dist/AudioPlayer/index.js +2 -2
  5. package/dist/CascadeDrawer/index.cjs +2 -2
  6. package/dist/CascadeDrawer/index.d.ts +1 -1
  7. package/dist/CascadeDrawer/index.js +1 -1
  8. package/dist/CodeSnippet/index.cjs +3 -2
  9. package/dist/CodeSnippet/index.css +236 -11
  10. package/dist/CodeSnippet/index.css.map +1 -1
  11. package/dist/CodeSnippet/index.d.ts +49 -4
  12. package/dist/CodeSnippet/index.js +2 -1
  13. package/dist/CodeSnippet/sandbox.d.ts +26 -0
  14. package/dist/CollapseBox/index.cjs +3 -3
  15. package/dist/CollapseBox/index.js +2 -2
  16. package/dist/ColorPicker/index.cjs +5 -5
  17. package/dist/ColorPicker/index.js +2 -2
  18. package/dist/ContextMenu/index.cjs +3 -3
  19. package/dist/ContextMenu/index.js +2 -2
  20. package/dist/CopyButton/index.cjs +3 -3
  21. package/dist/CopyButton/index.js +2 -2
  22. package/dist/CountUp/index.cjs +2 -2
  23. package/dist/CountUp/index.js +1 -1
  24. package/dist/CronPicker/index.cjs +4 -4
  25. package/dist/CronPicker/index.js +3 -3
  26. package/dist/DebounceSelect/index.cjs +3 -3
  27. package/dist/DebounceSelect/index.d.ts +1 -1
  28. package/dist/DebounceSelect/index.js +2 -2
  29. package/dist/DiffViewer/index.cjs +2 -2
  30. package/dist/DiffViewer/index.js +1 -1
  31. package/dist/DisabledBox/index.cjs +3 -3
  32. package/dist/DisabledBox/index.d.ts +11 -3
  33. package/dist/DisabledBox/index.js +2 -2
  34. package/dist/DragSortList/index.cjs +3 -2
  35. package/dist/DragSortList/index.css +82 -13
  36. package/dist/DragSortList/index.css.map +1 -1
  37. package/dist/DragSortList/index.d.ts +8 -2
  38. package/dist/DragSortList/index.js +2 -1
  39. package/dist/EnvBadge/index.cjs +2 -2
  40. package/dist/EnvBadge/index.js +1 -1
  41. package/dist/FilePreviewer/index.cjs +4 -4
  42. package/dist/FilePreviewer/index.js +2 -2
  43. package/dist/Fullscreen/index.cjs +3 -3
  44. package/dist/Fullscreen/index.js +2 -2
  45. package/dist/GuidedTour/index.cjs +3 -3
  46. package/dist/GuidedTour/index.js +2 -2
  47. package/dist/ImageCropper/index.cjs +3 -3
  48. package/dist/ImageCropper/index.js +2 -2
  49. package/dist/InfiniteScrollList/index.cjs +3 -3
  50. package/dist/InfiniteScrollList/index.js +2 -2
  51. package/dist/JsonDiffViewer/index.cjs +2 -2
  52. package/dist/JsonDiffViewer/index.js +1 -1
  53. package/dist/JsonEditor/index.cjs +4 -4
  54. package/dist/JsonEditor/index.d.ts +1 -1
  55. package/dist/JsonEditor/index.js +3 -3
  56. package/dist/JsonTree/index.cjs +2 -2
  57. package/dist/JsonTree/index.d.ts +1 -1
  58. package/dist/JsonTree/index.js +1 -1
  59. package/dist/KanbanBoard/index.cjs +2 -2
  60. package/dist/KanbanBoard/index.js +1 -1
  61. package/dist/KeyValEditor/index.cjs +3 -3
  62. package/dist/KeyValEditor/index.js +2 -2
  63. package/dist/Marquee/index.cjs +2 -2
  64. package/dist/Marquee/index.js +1 -1
  65. package/dist/MetricCard/index.cjs +3 -3
  66. package/dist/MetricCard/index.js +2 -2
  67. package/dist/NumericRangeInput/index.cjs +2 -2
  68. package/dist/NumericRangeInput/index.js +1 -1
  69. package/dist/PasswordStrength/index.cjs +4 -4
  70. package/dist/PasswordStrength/index.js +2 -2
  71. package/dist/PdfViewer/index.cjs +3 -3
  72. package/dist/PdfViewer/index.js +2 -2
  73. package/dist/QrCodeCard/index.cjs +3 -3
  74. package/dist/QrCodeCard/index.css +122 -32
  75. package/dist/QrCodeCard/index.css.map +1 -1
  76. package/dist/QrCodeCard/index.d.ts +10 -2
  77. package/dist/QrCodeCard/index.js +2 -2
  78. package/dist/QuickDateRange/index.cjs +2 -2
  79. package/dist/QuickDateRange/index.js +1 -1
  80. package/dist/ScrollTracker/index.cjs +4 -4
  81. package/dist/ScrollTracker/index.js +1 -1
  82. package/dist/SegmentedProgress/index.cjs +2 -2
  83. package/dist/SegmentedProgress/index.js +1 -1
  84. package/dist/SensitiveMask/index.cjs +5 -5
  85. package/dist/SensitiveMask/index.js +3 -3
  86. package/dist/Splitter/index.cjs +3 -3
  87. package/dist/Splitter/index.js +2 -2
  88. package/dist/StatusTimeline/index.cjs +2 -2
  89. package/dist/StatusTimeline/index.js +1 -1
  90. package/dist/TagInput/index.cjs +3 -3
  91. package/dist/TagInput/index.js +2 -2
  92. package/dist/TextEllipsis/index.cjs +4 -4
  93. package/dist/TextEllipsis/index.js +3 -3
  94. package/dist/TreeFilterPanel/index.cjs +2 -2
  95. package/dist/TreeFilterPanel/index.js +1 -1
  96. package/dist/TreeTransfer/index.cjs +3 -3
  97. package/dist/TreeTransfer/index.js +2 -2
  98. package/dist/TrendIndicator/index.cjs +2 -2
  99. package/dist/TrendIndicator/index.js +1 -1
  100. package/dist/VideoPlayer/index.cjs +3 -3
  101. package/dist/VideoPlayer/index.js +2 -2
  102. package/dist/VirtualList/index.cjs +2 -2
  103. package/dist/VirtualList/index.js +1 -1
  104. package/dist/Watermark/index.cjs +2 -2
  105. package/dist/Watermark/index.js +1 -1
  106. package/dist/{chunk-L7ULSFW6.cjs → chunk-2EIAWXFA.cjs} +18 -8
  107. package/dist/chunk-2EIAWXFA.cjs.map +1 -0
  108. package/dist/{chunk-TGSKTHTV.js → chunk-2IDVNTKR.js} +119 -19
  109. package/dist/chunk-2IDVNTKR.js.map +1 -0
  110. package/dist/{chunk-DNRZCHZG.js → chunk-2INP6NM4.js} +4 -11
  111. package/dist/chunk-2INP6NM4.js.map +1 -0
  112. package/dist/{chunk-I3HBI52O.js → chunk-2O2A5XYF.js} +3 -11
  113. package/dist/chunk-2O2A5XYF.js.map +1 -0
  114. package/dist/{chunk-VTANPKPT.js → chunk-3R3NOO4K.js} +2 -2
  115. package/dist/chunk-3R3NOO4K.js.map +1 -0
  116. package/dist/chunk-4KMVABTM.js +419 -0
  117. package/dist/chunk-4KMVABTM.js.map +1 -0
  118. package/dist/{chunk-K5FWY6HB.cjs → chunk-4TMBGQQE.cjs} +5 -5
  119. package/dist/{chunk-K5FWY6HB.cjs.map → chunk-4TMBGQQE.cjs.map} +1 -1
  120. package/dist/{chunk-GZCNFM6C.js → chunk-56VELHCH.js} +8 -17
  121. package/dist/chunk-56VELHCH.js.map +1 -0
  122. package/dist/{chunk-PBPGBVQQ.cjs → chunk-5E36FGRP.cjs} +2 -2
  123. package/dist/chunk-5E36FGRP.cjs.map +1 -0
  124. package/dist/{chunk-PVKBGP6Q.js → chunk-5GLC2HU6.js} +2 -2
  125. package/dist/{chunk-PVKBGP6Q.js.map → chunk-5GLC2HU6.js.map} +1 -1
  126. package/dist/{chunk-QKSCFVN2.js → chunk-5HIRDMZH.js} +2 -2
  127. package/dist/chunk-5HIRDMZH.js.map +1 -0
  128. package/dist/{chunk-7AKHSOSZ.js → chunk-5R2YXBXM.js} +3 -11
  129. package/dist/chunk-5R2YXBXM.js.map +1 -0
  130. package/dist/{chunk-F42Z33L7.cjs → chunk-5V4UAS6I.cjs} +2 -2
  131. package/dist/chunk-5V4UAS6I.cjs.map +1 -0
  132. package/dist/{chunk-WWL4VEPH.js → chunk-6UTLBY6Y.js} +2 -2
  133. package/dist/chunk-6UTLBY6Y.js.map +1 -0
  134. package/dist/{chunk-QI7XQDFZ.cjs → chunk-77ANKL4K.cjs} +77 -85
  135. package/dist/chunk-77ANKL4K.cjs.map +1 -0
  136. package/dist/{chunk-4MRZVLM6.cjs → chunk-7SIUSULP.cjs} +2 -2
  137. package/dist/{chunk-4MRZVLM6.cjs.map → chunk-7SIUSULP.cjs.map} +1 -1
  138. package/dist/{chunk-DFHFXKR5.cjs → chunk-7ZBA4NHH.cjs} +5 -12
  139. package/dist/chunk-7ZBA4NHH.cjs.map +1 -0
  140. package/dist/{chunk-RTAQSOVE.cjs → chunk-AHTRLNYK.cjs} +5 -5
  141. package/dist/{chunk-RTAQSOVE.cjs.map → chunk-AHTRLNYK.cjs.map} +1 -1
  142. package/dist/{chunk-G564WB32.cjs → chunk-AMCCRVHG.cjs} +2 -2
  143. package/dist/chunk-AMCCRVHG.cjs.map +1 -0
  144. package/dist/{chunk-NFC2C2TD.js → chunk-ANTFNDH4.js} +65 -72
  145. package/dist/chunk-ANTFNDH4.js.map +1 -0
  146. package/dist/{chunk-LBEGRYTP.js → chunk-AXPVN2OO.js} +77 -85
  147. package/dist/chunk-AXPVN2OO.js.map +1 -0
  148. package/dist/{chunk-OYRX4AY6.js → chunk-BFQV5MYD.js} +2 -2
  149. package/dist/chunk-BFQV5MYD.js.map +1 -0
  150. package/dist/{chunk-AXHJC7FV.js → chunk-BRHXKRG6.js} +3 -11
  151. package/dist/chunk-BRHXKRG6.js.map +1 -0
  152. package/dist/{chunk-BXFP7EAW.cjs → chunk-CPQLXDBR.cjs} +2 -2
  153. package/dist/{chunk-BXFP7EAW.cjs.map → chunk-CPQLXDBR.cjs.map} +1 -1
  154. package/dist/{chunk-AIIXJB34.js → chunk-CURWX7OY.js} +3 -3
  155. package/dist/{chunk-AIIXJB34.js.map → chunk-CURWX7OY.js.map} +1 -1
  156. package/dist/{chunk-XMBTKO5I.cjs → chunk-DJQEBDEP.cjs} +3 -11
  157. package/dist/chunk-DJQEBDEP.cjs.map +1 -0
  158. package/dist/{chunk-ZQBEQK2I.cjs → chunk-ED3ZG2VX.cjs} +5 -5
  159. package/dist/{chunk-ZQBEQK2I.cjs.map → chunk-ED3ZG2VX.cjs.map} +1 -1
  160. package/dist/{chunk-IECISUOZ.js → chunk-EDNBPLUS.js} +61 -59
  161. package/dist/chunk-EDNBPLUS.js.map +1 -0
  162. package/dist/{chunk-5MQCVYVD.js → chunk-EJYTTSW6.js} +16 -6
  163. package/dist/chunk-EJYTTSW6.js.map +1 -0
  164. package/dist/{chunk-AVSFSS7S.cjs → chunk-EKDJPOA3.cjs} +63 -61
  165. package/dist/chunk-EKDJPOA3.cjs.map +1 -0
  166. package/dist/{chunk-5NI6HK5V.js → chunk-EMT4NUI5.js} +3 -3
  167. package/dist/{chunk-5NI6HK5V.js.map → chunk-EMT4NUI5.js.map} +1 -1
  168. package/dist/{chunk-5GCEQDBM.cjs → chunk-EPYD35KB.cjs} +2 -2
  169. package/dist/chunk-EPYD35KB.cjs.map +1 -0
  170. package/dist/{chunk-YPVRTMX6.js → chunk-ETFLLRTO.js} +4 -6
  171. package/dist/chunk-ETFLLRTO.js.map +1 -0
  172. package/dist/{chunk-ZSK74QFN.cjs → chunk-EUOBMHFF.cjs} +3 -7
  173. package/dist/chunk-EUOBMHFF.cjs.map +1 -0
  174. package/dist/chunk-FZH5FL7X.cjs +167 -0
  175. package/dist/chunk-FZH5FL7X.cjs.map +1 -0
  176. package/dist/{chunk-4IBF4R3H.cjs → chunk-GMZSBGSL.cjs} +2 -2
  177. package/dist/{chunk-4IBF4R3H.cjs.map → chunk-GMZSBGSL.cjs.map} +1 -1
  178. package/dist/{chunk-HTA5EG6X.cjs → chunk-HKALWFWZ.cjs} +5 -5
  179. package/dist/{chunk-HTA5EG6X.cjs.map → chunk-HKALWFWZ.cjs.map} +1 -1
  180. package/dist/{chunk-PMNTOEXC.js → chunk-HZERTFL6.js} +2 -2
  181. package/dist/chunk-HZERTFL6.js.map +1 -0
  182. package/dist/{chunk-DKTB6PKI.js → chunk-IBI6AT5Z.js} +3 -10
  183. package/dist/chunk-IBI6AT5Z.js.map +1 -0
  184. package/dist/{chunk-4VGH44DT.js → chunk-IBYFOFSS.js} +14 -4
  185. package/dist/chunk-IBYFOFSS.js.map +1 -0
  186. package/dist/{chunk-2ORGQ2IY.js → chunk-IF4XAUV3.js} +4 -10
  187. package/dist/chunk-IF4XAUV3.js.map +1 -0
  188. package/dist/{chunk-4GQ3X7MG.cjs → chunk-IPS7PC3M.cjs} +18 -27
  189. package/dist/chunk-IPS7PC3M.cjs.map +1 -0
  190. package/dist/{chunk-ELI3LL3K.cjs → chunk-JHVPDKBM.cjs} +14 -6
  191. package/dist/chunk-JHVPDKBM.cjs.map +1 -0
  192. package/dist/{chunk-5G3XVLJF.js → chunk-JNA5AQ2K.js} +3 -3
  193. package/dist/{chunk-5G3XVLJF.js.map → chunk-JNA5AQ2K.js.map} +1 -1
  194. package/dist/{chunk-W6BUNUQM.cjs → chunk-KGZNVN7P.cjs} +3 -10
  195. package/dist/chunk-KGZNVN7P.cjs.map +1 -0
  196. package/dist/{chunk-R7CRWOHG.js → chunk-L7X3RVEY.js} +2 -2
  197. package/dist/{chunk-R7CRWOHG.js.map → chunk-L7X3RVEY.js.map} +1 -1
  198. package/dist/{chunk-EIFN6XMU.cjs → chunk-LFGBZXQH.cjs} +11 -5
  199. package/dist/chunk-LFGBZXQH.cjs.map +1 -0
  200. package/dist/{chunk-XO6PBAAM.cjs → chunk-LFXMUCEO.cjs} +2 -2
  201. package/dist/chunk-LFXMUCEO.cjs.map +1 -0
  202. package/dist/{chunk-C5B5Y4S2.cjs → chunk-M3GQ7RCV.cjs} +4 -4
  203. package/dist/{chunk-C5B5Y4S2.cjs.map → chunk-M3GQ7RCV.cjs.map} +1 -1
  204. package/dist/{chunk-KBBLTGIU.js → chunk-M4FZJALR.js} +13 -5
  205. package/dist/chunk-M4FZJALR.js.map +1 -0
  206. package/dist/{chunk-N7IQ6LYD.cjs → chunk-MGYDOC76.cjs} +15 -5
  207. package/dist/chunk-MGYDOC76.cjs.map +1 -0
  208. package/dist/{chunk-WBN5SAY5.js → chunk-MLYM5LAX.js} +2 -2
  209. package/dist/{chunk-WBN5SAY5.js.map → chunk-MLYM5LAX.js.map} +1 -1
  210. package/dist/{chunk-62NPVN7T.js → chunk-MQJBUHDB.js} +3 -3
  211. package/dist/{chunk-62NPVN7T.js.map → chunk-MQJBUHDB.js.map} +1 -1
  212. package/dist/{chunk-X7EE5DXL.js → chunk-O2YTJPG4.js} +2 -2
  213. package/dist/{chunk-X7EE5DXL.js.map → chunk-O2YTJPG4.js.map} +1 -1
  214. package/dist/{chunk-OJEZ3TKT.js → chunk-OBK6XTUY.js} +2 -2
  215. package/dist/chunk-OBK6XTUY.js.map +1 -0
  216. package/dist/{chunk-6OKTK3AQ.cjs → chunk-ODNGFJVN.cjs} +3 -11
  217. package/dist/chunk-ODNGFJVN.cjs.map +1 -0
  218. package/dist/{chunk-Z5LFRNNJ.js → chunk-OLLVIQPL.js} +3 -3
  219. package/dist/{chunk-Z5LFRNNJ.js.map → chunk-OLLVIQPL.js.map} +1 -1
  220. package/dist/{chunk-FRGH3Q75.cjs → chunk-OONBZRPV.cjs} +4 -4
  221. package/dist/{chunk-FRGH3Q75.cjs.map → chunk-OONBZRPV.cjs.map} +1 -1
  222. package/dist/{chunk-UT5UXO44.js → chunk-P5CS7V4W.js} +3 -3
  223. package/dist/chunk-P5CS7V4W.js.map +1 -0
  224. package/dist/{chunk-HQ65GEM7.js → chunk-PTFKE67K.js} +3 -3
  225. package/dist/{chunk-HQ65GEM7.js.map → chunk-PTFKE67K.js.map} +1 -1
  226. package/dist/{chunk-U2TTRBES.js → chunk-PUMVD7CP.js} +3 -3
  227. package/dist/{chunk-U2TTRBES.js.map → chunk-PUMVD7CP.js.map} +1 -1
  228. package/dist/{chunk-4YPT2HUD.cjs → chunk-PYCSRJSF.cjs} +16 -7
  229. package/dist/chunk-PYCSRJSF.cjs.map +1 -0
  230. package/dist/{chunk-ZAHKA2V2.js → chunk-Q7OVUH5K.js} +3 -3
  231. package/dist/chunk-Q7OVUH5K.js.map +1 -0
  232. package/dist/{chunk-NMYXVZQP.cjs → chunk-QNSEJGF6.cjs} +2 -2
  233. package/dist/chunk-QNSEJGF6.cjs.map +1 -0
  234. package/dist/{chunk-KUW2ZR2A.cjs → chunk-QP3RKA4J.cjs} +65 -72
  235. package/dist/chunk-QP3RKA4J.cjs.map +1 -0
  236. package/dist/{chunk-IUR7SPDA.js → chunk-QRZ2GVVJ.js} +85 -92
  237. package/dist/chunk-QRZ2GVVJ.js.map +1 -0
  238. package/dist/{chunk-Q4QF6UYX.cjs → chunk-R4V3EJVP.cjs} +124 -18
  239. package/dist/chunk-R4V3EJVP.cjs.map +1 -0
  240. package/dist/{chunk-2ARM7X7A.js → chunk-RAF7I4A5.js} +2 -2
  241. package/dist/chunk-RAF7I4A5.js.map +1 -0
  242. package/dist/{chunk-7JLQOQJZ.cjs → chunk-RN5WU7KA.cjs} +7 -7
  243. package/dist/{chunk-7JLQOQJZ.cjs.map → chunk-RN5WU7KA.cjs.map} +1 -1
  244. package/dist/{chunk-FBOTWA6O.cjs → chunk-TNZ2OLGW.cjs} +5 -7
  245. package/dist/chunk-TNZ2OLGW.cjs.map +1 -0
  246. package/dist/chunk-TUDLE3RT.cjs +429 -0
  247. package/dist/chunk-TUDLE3RT.cjs.map +1 -0
  248. package/dist/{chunk-PIIJVF5D.cjs → chunk-TUEVILTA.cjs} +5 -5
  249. package/dist/chunk-TUEVILTA.cjs.map +1 -0
  250. package/dist/{chunk-RWZSTG6Q.cjs → chunk-U2EBNBGK.cjs} +4 -4
  251. package/dist/{chunk-RWZSTG6Q.cjs.map → chunk-U2EBNBGK.cjs.map} +1 -1
  252. package/dist/{chunk-5WHBZH44.cjs → chunk-UAUP5TJK.cjs} +5 -5
  253. package/dist/chunk-UAUP5TJK.cjs.map +1 -0
  254. package/dist/{chunk-SMVAHIBN.cjs → chunk-UCG7ZVK5.cjs} +2 -2
  255. package/dist/chunk-UCG7ZVK5.cjs.map +1 -0
  256. package/dist/{chunk-DATPWEQK.cjs → chunk-UZB7GOEI.cjs} +4 -4
  257. package/dist/{chunk-DATPWEQK.cjs.map → chunk-UZB7GOEI.cjs.map} +1 -1
  258. package/dist/{chunk-AJIIY2QT.cjs → chunk-VF5P7XMC.cjs} +2 -2
  259. package/dist/chunk-VF5P7XMC.cjs.map +1 -0
  260. package/dist/{chunk-R77VVMV5.cjs → chunk-VJOO2DG3.cjs} +87 -94
  261. package/dist/chunk-VJOO2DG3.cjs.map +1 -0
  262. package/dist/{chunk-XB3BT6BU.js → chunk-W5JA3YTT.js} +3 -3
  263. package/dist/{chunk-XB3BT6BU.js.map → chunk-W5JA3YTT.js.map} +1 -1
  264. package/dist/{chunk-ZGWBLJ6U.cjs → chunk-WDHU3BSM.cjs} +2 -2
  265. package/dist/{chunk-ZGWBLJ6U.cjs.map → chunk-WDHU3BSM.cjs.map} +1 -1
  266. package/dist/{chunk-NCNDJTOK.js → chunk-WEGDIRDB.js} +2 -2
  267. package/dist/chunk-WEGDIRDB.js.map +1 -0
  268. package/dist/{chunk-H5VPBP7U.js → chunk-WKF4C6TJ.js} +10 -4
  269. package/dist/chunk-WKF4C6TJ.js.map +1 -0
  270. package/dist/{chunk-EJNMH7ND.js → chunk-WN557PFJ.js} +2 -2
  271. package/dist/chunk-WN557PFJ.js.map +1 -0
  272. package/dist/{chunk-VPHHGQWP.js → chunk-XLOGMDAQ.js} +3 -3
  273. package/dist/{chunk-VPHHGQWP.js.map → chunk-XLOGMDAQ.js.map} +1 -1
  274. package/dist/chunk-XUAHWX6B.js +153 -0
  275. package/dist/chunk-XUAHWX6B.js.map +1 -0
  276. package/dist/chunk-Y54KVULF.js +161 -0
  277. package/dist/chunk-Y54KVULF.js.map +1 -0
  278. package/dist/{chunk-JD4TEUIV.js → chunk-YFHKH6HL.js} +3 -7
  279. package/dist/chunk-YFHKH6HL.js.map +1 -0
  280. package/dist/{chunk-XYJMP23P.cjs → chunk-YP4XTMK3.cjs} +4 -10
  281. package/dist/chunk-YP4XTMK3.cjs.map +1 -0
  282. package/dist/{chunk-7JRGQL63.js → chunk-ZCBT56AG.js} +13 -4
  283. package/dist/chunk-ZCBT56AG.js.map +1 -0
  284. package/dist/{chunk-GCMI5JGQ.cjs → chunk-ZKM664KC.cjs} +2 -2
  285. package/dist/chunk-ZKM664KC.cjs.map +1 -0
  286. package/dist/{chunk-24ND5WB7.cjs → chunk-ZVSN7ADO.cjs} +3 -11
  287. package/dist/chunk-ZVSN7ADO.cjs.map +1 -0
  288. package/dist/chunk-ZWKUHYTV.cjs +155 -0
  289. package/dist/chunk-ZWKUHYTV.cjs.map +1 -0
  290. package/dist/index.cjs +113 -97
  291. package/dist/index.css +440 -56
  292. package/dist/index.css.map +1 -1
  293. package/dist/index.js +46 -46
  294. package/dist/src/icons.d.ts +29 -11
  295. package/dist/src/index.d.ts +3 -1
  296. package/package.json +1 -1
  297. package/dist/chunk-24ND5WB7.cjs.map +0 -1
  298. package/dist/chunk-2ARM7X7A.js.map +0 -1
  299. package/dist/chunk-2ORGQ2IY.js.map +0 -1
  300. package/dist/chunk-4DUMEO5E.cjs +0 -107
  301. package/dist/chunk-4DUMEO5E.cjs.map +0 -1
  302. package/dist/chunk-4GQ3X7MG.cjs.map +0 -1
  303. package/dist/chunk-4VGH44DT.js.map +0 -1
  304. package/dist/chunk-4YPT2HUD.cjs.map +0 -1
  305. package/dist/chunk-5GCEQDBM.cjs.map +0 -1
  306. package/dist/chunk-5MQCVYVD.js.map +0 -1
  307. package/dist/chunk-5WHBZH44.cjs.map +0 -1
  308. package/dist/chunk-6OKTK3AQ.cjs.map +0 -1
  309. package/dist/chunk-7AKHSOSZ.js.map +0 -1
  310. package/dist/chunk-7JRGQL63.js.map +0 -1
  311. package/dist/chunk-AJIIY2QT.cjs.map +0 -1
  312. package/dist/chunk-AVSFSS7S.cjs.map +0 -1
  313. package/dist/chunk-AXHJC7FV.js.map +0 -1
  314. package/dist/chunk-DFHFXKR5.cjs.map +0 -1
  315. package/dist/chunk-DKTB6PKI.js.map +0 -1
  316. package/dist/chunk-DNRZCHZG.js.map +0 -1
  317. package/dist/chunk-EIFN6XMU.cjs.map +0 -1
  318. package/dist/chunk-EJNMH7ND.js.map +0 -1
  319. package/dist/chunk-ELI3LL3K.cjs.map +0 -1
  320. package/dist/chunk-EQ7S5SYM.js +0 -67
  321. package/dist/chunk-EQ7S5SYM.js.map +0 -1
  322. package/dist/chunk-F42Z33L7.cjs.map +0 -1
  323. package/dist/chunk-FBOTWA6O.cjs.map +0 -1
  324. package/dist/chunk-FWRVCH7T.js +0 -37
  325. package/dist/chunk-FWRVCH7T.js.map +0 -1
  326. package/dist/chunk-FYFL4PFD.cjs +0 -69
  327. package/dist/chunk-FYFL4PFD.cjs.map +0 -1
  328. package/dist/chunk-G564WB32.cjs.map +0 -1
  329. package/dist/chunk-GCMI5JGQ.cjs.map +0 -1
  330. package/dist/chunk-GZCNFM6C.js.map +0 -1
  331. package/dist/chunk-H5VPBP7U.js.map +0 -1
  332. package/dist/chunk-I3HBI52O.js.map +0 -1
  333. package/dist/chunk-IECISUOZ.js.map +0 -1
  334. package/dist/chunk-IUR7SPDA.js.map +0 -1
  335. package/dist/chunk-JD4TEUIV.js.map +0 -1
  336. package/dist/chunk-KBBLTGIU.js.map +0 -1
  337. package/dist/chunk-KUW2ZR2A.cjs.map +0 -1
  338. package/dist/chunk-L7ULSFW6.cjs.map +0 -1
  339. package/dist/chunk-LBEGRYTP.js.map +0 -1
  340. package/dist/chunk-N7IQ6LYD.cjs.map +0 -1
  341. package/dist/chunk-NCNDJTOK.js.map +0 -1
  342. package/dist/chunk-NFC2C2TD.js.map +0 -1
  343. package/dist/chunk-NMYXVZQP.cjs.map +0 -1
  344. package/dist/chunk-OJEZ3TKT.js.map +0 -1
  345. package/dist/chunk-OYRX4AY6.js.map +0 -1
  346. package/dist/chunk-PBPGBVQQ.cjs.map +0 -1
  347. package/dist/chunk-PIIJVF5D.cjs.map +0 -1
  348. package/dist/chunk-PMNTOEXC.js.map +0 -1
  349. package/dist/chunk-Q4QF6UYX.cjs.map +0 -1
  350. package/dist/chunk-QI7XQDFZ.cjs.map +0 -1
  351. package/dist/chunk-QKSCFVN2.js.map +0 -1
  352. package/dist/chunk-R77VVMV5.cjs.map +0 -1
  353. package/dist/chunk-SMVAHIBN.cjs.map +0 -1
  354. package/dist/chunk-TGSKTHTV.js.map +0 -1
  355. package/dist/chunk-UT5UXO44.js.map +0 -1
  356. package/dist/chunk-VTANPKPT.js.map +0 -1
  357. package/dist/chunk-W6BUNUQM.cjs.map +0 -1
  358. package/dist/chunk-WWL4VEPH.js.map +0 -1
  359. package/dist/chunk-X4MEHYWV.js +0 -105
  360. package/dist/chunk-X4MEHYWV.js.map +0 -1
  361. package/dist/chunk-XMBTKO5I.cjs.map +0 -1
  362. package/dist/chunk-XO6PBAAM.cjs.map +0 -1
  363. package/dist/chunk-XYJMP23P.cjs.map +0 -1
  364. package/dist/chunk-YJESCN4Y.cjs +0 -39
  365. package/dist/chunk-YJESCN4Y.cjs.map +0 -1
  366. package/dist/chunk-YPVRTMX6.js.map +0 -1
  367. package/dist/chunk-ZAHKA2V2.js.map +0 -1
  368. package/dist/chunk-ZSK74QFN.cjs.map +0 -1
@@ -0,0 +1,429 @@
1
+ 'use strict';
2
+
3
+ var chunkR4V3EJVP_cjs = require('./chunk-R4V3EJVP.cjs');
4
+ var React = require('react');
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ var React__default = /*#__PURE__*/_interopDefault(React);
10
+
11
+ // CodeSnippet/sandbox.ts
12
+ var defaultPackageJson = (dependencies = {}, devDependencies = {}) => ({
13
+ name: "react-public-components-demo",
14
+ version: "1.0.0",
15
+ description: "Interactive demo generated by react-public-components",
16
+ main: "src/index.tsx",
17
+ dependencies: {
18
+ react: "^18.3.1",
19
+ "react-dom": "^18.3.1",
20
+ "react-public-components": "latest",
21
+ ...dependencies
22
+ },
23
+ devDependencies: {
24
+ "@types/react": "^18.3.3",
25
+ "@types/react-dom": "^18.3.0",
26
+ typescript: "^5.5.0",
27
+ ...devDependencies
28
+ }
29
+ });
30
+ var defaultHtml = `<!DOCTYPE html>
31
+ <html lang="zh-CN">
32
+ <head>
33
+ <meta charset="utf-8" />
34
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
35
+ <title>React Public Components Demo</title>
36
+ <link rel="stylesheet" href="https://unpkg.com/react-public-components/dist/index.css" />
37
+ <style>
38
+ * { box-sizing: border-box; }
39
+ body { margin: 0; padding: 24px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; background: #f8fafc; }
40
+ </style>
41
+ </head>
42
+ <body>
43
+ <div id="root"></div>
44
+ </body>
45
+ </html>`;
46
+ var defaultIndexTsx = `import React from 'react';
47
+ import { createRoot } from 'react-dom/client';
48
+ import 'react-public-components/dist/index.css';
49
+ import App from './App';
50
+
51
+ const container = document.getElementById('root');
52
+ if (container) {
53
+ const root = createRoot(container);
54
+ root.render(
55
+ <React.StrictMode>
56
+ <App />
57
+ </React.StrictMode>
58
+ );
59
+ }`;
60
+ function openInStackBlitz(code, config = {}) {
61
+ const form = document.createElement("form");
62
+ form.method = "POST";
63
+ form.action = "https://stackblitz.com/run";
64
+ form.target = "_blank";
65
+ form.style.display = "none";
66
+ const pkg = defaultPackageJson(config.dependencies, config.devDependencies);
67
+ const fields = {
68
+ "project[title]": config.title || "react-public-components Demo",
69
+ "project[description]": config.description || "Live Component Demo",
70
+ "project[template]": "create-react-app",
71
+ "project[files][package.json]": JSON.stringify(pkg, null, 2),
72
+ "project[files][public/index.html]": defaultHtml,
73
+ "project[files][src/index.tsx]": defaultIndexTsx,
74
+ "project[files][src/App.tsx]": code,
75
+ "project[files][tsconfig.json]": JSON.stringify(
76
+ {
77
+ compilerOptions: {
78
+ target: "es5",
79
+ lib: ["dom", "dom.iterable", "esnext"],
80
+ allowJs: true,
81
+ skipLibCheck: true,
82
+ esModuleInterop: true,
83
+ allowSyntheticDefaultImports: true,
84
+ strict: true,
85
+ forceConsistentCasingInFileNames: true,
86
+ noFallthroughCasesInSwitch: true,
87
+ module: "esnext",
88
+ moduleResolution: "node",
89
+ resolveJsonModule: true,
90
+ isolatedModules: true,
91
+ noEmit: true,
92
+ jsx: "react-jsx"
93
+ },
94
+ include: ["src"]
95
+ },
96
+ null,
97
+ 2
98
+ )
99
+ };
100
+ Object.entries(fields).forEach(([key, val]) => {
101
+ const input = document.createElement("input");
102
+ input.type = "hidden";
103
+ input.name = key;
104
+ input.value = val;
105
+ form.appendChild(input);
106
+ });
107
+ document.body.appendChild(form);
108
+ form.submit();
109
+ document.body.removeChild(form);
110
+ }
111
+ function openInCodeSandbox(code, config = {}) {
112
+ const pkg = defaultPackageJson(config.dependencies, config.devDependencies);
113
+ const files = {
114
+ "package.json": {
115
+ content: JSON.stringify(pkg, null, 2)
116
+ },
117
+ "public/index.html": {
118
+ content: defaultHtml
119
+ },
120
+ "src/index.tsx": {
121
+ content: defaultIndexTsx
122
+ },
123
+ "src/App.tsx": {
124
+ content: code
125
+ }
126
+ };
127
+ fetch("https://codesandbox.io/api/v1/sandboxes/define?json=1", {
128
+ method: "POST",
129
+ headers: {
130
+ "Content-Type": "application/json",
131
+ Accept: "application/json"
132
+ },
133
+ body: JSON.stringify({ files })
134
+ }).then((res) => res.json()).then((data) => {
135
+ if (data && data.sandbox_id) {
136
+ window.open(`https://codesandbox.io/s/${data.sandbox_id}`, "_blank");
137
+ }
138
+ }).catch(() => {
139
+ openInStackBlitz(code, config);
140
+ });
141
+ }
142
+ function openInCodePen(code, config = {}) {
143
+ const form = document.createElement("form");
144
+ form.method = "POST";
145
+ form.action = "https://codepen.io/pen/define/";
146
+ form.target = "_blank";
147
+ form.style.display = "none";
148
+ let cleanJs = code.replace(/import\s+[\s\S]*?from\s+['"][^'"]+['"];?/g, "").replace(/export\s+default\s+App;?/g, "").replace(/export\s+default\s+/g, "");
149
+ cleanJs += '\n\nconst root = ReactDOM.createRoot(document.getElementById("root"));\nroot.render(<App />);';
150
+ const data = {
151
+ title: config.title || "react-public-components Demo",
152
+ description: config.description || "Live Component Demo",
153
+ html: '<div id="root"></div>',
154
+ js: cleanJs,
155
+ js_pre_processor: "babel",
156
+ css: 'body { margin: 0; padding: 24px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background: #f8fafc; }',
157
+ js_external: [
158
+ "https://unpkg.com/react@18/umd/react.production.min.js",
159
+ "https://unpkg.com/react-dom@18/umd/react-dom.production.min.js",
160
+ "https://unpkg.com/react-public-components/dist/index.umd.js"
161
+ ].join(";"),
162
+ css_external: [
163
+ "https://unpkg.com/react-public-components/dist/index.css"
164
+ ].join(";")
165
+ };
166
+ const input = document.createElement("input");
167
+ input.type = "hidden";
168
+ input.name = "data";
169
+ input.value = JSON.stringify(data);
170
+ form.appendChild(input);
171
+ document.body.appendChild(form);
172
+ form.submit();
173
+ document.body.removeChild(form);
174
+ }
175
+ function openInNewTab(code, title = "Demo Preview") {
176
+ const newWin = window.open("", "_blank");
177
+ if (!newWin) return;
178
+ const htmlContent = `<!DOCTYPE html>
179
+ <html>
180
+ <head>
181
+ <meta charset="utf-8" />
182
+ <title>${title}</title>
183
+ <link rel="stylesheet" href="https://unpkg.com/react-public-components/dist/index.css" />
184
+ <script src="https://unpkg.com/react@18/umd/react.production.min.js"></script>
185
+ <script src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script>
186
+ <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
187
+ <style>
188
+ * { box-sizing: border-box; }
189
+ body { margin: 0; padding: 24px; background: #f8fafc; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
190
+ #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; }
191
+ </style>
192
+ </head>
193
+ <body>
194
+ <div id="root"></div>
195
+ <script type="text/babel">
196
+ const { useState, useEffect, useRef, useMemo, useCallback } = React;
197
+
198
+ ${code.replace(/import\s+[\s\S]*?from\s+['"][^'"]+['"];?/g, "").replace(/export\s+default\s+App;?/g, "").replace(/export\s+default\s+/g, "")}
199
+
200
+ if (typeof App !== 'undefined') {
201
+ const root = ReactDOM.createRoot(document.getElementById('root'));
202
+ root.render(<App />);
203
+ }
204
+ </script>
205
+ </body>
206
+ </html>`;
207
+ newWin.document.open();
208
+ newWin.document.write(htmlContent);
209
+ newWin.document.close();
210
+ }
211
+ var CodeSnippet = ({
212
+ code: singleCode = "",
213
+ language: defaultLang = "tsx",
214
+ theme = "dark",
215
+ title,
216
+ showLineNumbers = false,
217
+ copyable = true,
218
+ tabs,
219
+ activeTabKey: controlledTabKey,
220
+ defaultActiveTabKey,
221
+ onTabChange,
222
+ showActions = false,
223
+ actions = ["codesandbox", "codepen", "stackblitz", "external", "copy", "collapse"],
224
+ onAction,
225
+ sandboxConfig,
226
+ externalUrl,
227
+ collapsible = false,
228
+ defaultCollapsed = false,
229
+ collapsed: controlledCollapsed,
230
+ onCollapseChange,
231
+ showCollapseFooter = false,
232
+ className = "",
233
+ style
234
+ }) => {
235
+ const hasTabs = Array.isArray(tabs) && tabs.length > 0;
236
+ const [internalTabKey, setInternalTabKey] = React.useState(
237
+ defaultActiveTabKey != null ? defaultActiveTabKey : hasTabs ? tabs[0].key : ""
238
+ );
239
+ const activeKey = controlledTabKey !== void 0 ? controlledTabKey : internalTabKey;
240
+ const [internalCollapsed, setInternalCollapsed] = React.useState(defaultCollapsed);
241
+ const isCollapsed = controlledCollapsed !== void 0 ? controlledCollapsed : internalCollapsed;
242
+ const [copied, setCopied] = React.useState(false);
243
+ const currentTab = hasTabs ? tabs.find((t) => t.key === activeKey) || tabs[0] : null;
244
+ const currentCode = currentTab ? currentTab.code : singleCode;
245
+ const currentLanguage = currentTab ? currentTab.language || defaultLang : defaultLang;
246
+ const handleCopy = async () => {
247
+ try {
248
+ await navigator.clipboard.writeText(currentCode);
249
+ setCopied(true);
250
+ setTimeout(() => setCopied(false), 1500);
251
+ onAction == null ? void 0 : onAction("copy");
252
+ } catch (e) {
253
+ }
254
+ };
255
+ const handleToggleCollapse = () => {
256
+ const next = !isCollapsed;
257
+ if (controlledCollapsed === void 0) {
258
+ setInternalCollapsed(next);
259
+ }
260
+ onCollapseChange == null ? void 0 : onCollapseChange(next);
261
+ onAction == null ? void 0 : onAction("collapse");
262
+ };
263
+ const handleActionClick = (action) => {
264
+ const config = {
265
+ title: typeof title === "string" ? title : "react-public-components Demo",
266
+ ...sandboxConfig
267
+ };
268
+ if (action === "codesandbox") {
269
+ openInCodeSandbox(currentCode, config);
270
+ } else if (action === "codepen") {
271
+ openInCodePen(currentCode, config);
272
+ } else if (action === "stackblitz") {
273
+ openInStackBlitz(currentCode, config);
274
+ } else if (action === "external") {
275
+ if (externalUrl) {
276
+ window.open(externalUrl, "_blank");
277
+ } else {
278
+ openInNewTab(currentCode, config.title || "Demo Preview");
279
+ }
280
+ } else if (action === "copy") {
281
+ handleCopy();
282
+ return;
283
+ } else if (action === "collapse") {
284
+ handleToggleCollapse();
285
+ return;
286
+ }
287
+ onAction == null ? void 0 : onAction(action);
288
+ };
289
+ const handleTabClick = (key) => {
290
+ if (controlledTabKey === void 0) {
291
+ setInternalTabKey(key);
292
+ }
293
+ onTabChange == null ? void 0 : onTabChange(key);
294
+ };
295
+ const lines = currentCode.split("\n");
296
+ return /* @__PURE__ */ jsxRuntime.jsxs(
297
+ "div",
298
+ {
299
+ className: `rpc_code_snippet rpc_code_snippet_${theme} ${isCollapsed ? "rpc_code_snippet_collapsed" : ""} ${className}`,
300
+ style,
301
+ children: [
302
+ showActions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rpc_code_snippet_actions_bar", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rpc_code_snippet_actions_list", children: actions.map((act, index) => {
303
+ if (typeof act !== "string") {
304
+ return /* @__PURE__ */ jsxRuntime.jsx(React__default.default.Fragment, { children: act }, index);
305
+ }
306
+ switch (act) {
307
+ case "codesandbox":
308
+ return /* @__PURE__ */ jsxRuntime.jsx(
309
+ "button",
310
+ {
311
+ type: "button",
312
+ className: "rpc_code_snippet_action_btn",
313
+ title: "\u5728 CodeSandbox \u4E2D\u6253\u5F00\u5E76\u5728\u7EBF\u8FD0\u884C",
314
+ onClick: () => handleActionClick("codesandbox"),
315
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.CodeSandboxOutlined, {})
316
+ },
317
+ "codesandbox"
318
+ );
319
+ case "codepen":
320
+ return /* @__PURE__ */ jsxRuntime.jsx(
321
+ "button",
322
+ {
323
+ type: "button",
324
+ className: "rpc_code_snippet_action_btn",
325
+ title: "\u5728 CodePen \u4E2D\u6253\u5F00\u5E76\u6F14\u7EC3",
326
+ onClick: () => handleActionClick("codepen"),
327
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.CodePenOutlined, {})
328
+ },
329
+ "codepen"
330
+ );
331
+ case "stackblitz":
332
+ return /* @__PURE__ */ jsxRuntime.jsx(
333
+ "button",
334
+ {
335
+ type: "button",
336
+ className: "rpc_code_snippet_action_btn",
337
+ title: "\u5728 StackBlitz \u4E2D\u6781\u901F\u542F\u52A8",
338
+ onClick: () => handleActionClick("stackblitz"),
339
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.ThunderboltOutlined, {})
340
+ },
341
+ "stackblitz"
342
+ );
343
+ case "external":
344
+ return /* @__PURE__ */ jsxRuntime.jsx(
345
+ "button",
346
+ {
347
+ type: "button",
348
+ className: "rpc_code_snippet_action_btn",
349
+ title: "\u5728\u72EC\u7ACB\u65B0\u6807\u7B7E\u9875\u4E2D\u5168\u5C4F\u8FD0\u884C",
350
+ onClick: () => handleActionClick("external"),
351
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.ExportOutlined, {})
352
+ },
353
+ "external"
354
+ );
355
+ case "copy":
356
+ return /* @__PURE__ */ jsxRuntime.jsx(
357
+ "button",
358
+ {
359
+ type: "button",
360
+ className: `rpc_code_snippet_action_btn ${copied ? "rpc_code_snippet_action_copied" : ""}`,
361
+ title: copied ? "\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F\uFF01" : "\u590D\u5236\u4EE3\u7801",
362
+ onClick: () => handleActionClick("copy"),
363
+ children: copied ? /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.CheckOutlined, { style: { color: "#52c41a" } }) : /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.CopyOutlined, {})
364
+ },
365
+ "copy"
366
+ );
367
+ case "collapse":
368
+ return /* @__PURE__ */ jsxRuntime.jsx(
369
+ "button",
370
+ {
371
+ type: "button",
372
+ className: `rpc_code_snippet_action_btn ${!isCollapsed ? "rpc_code_snippet_action_active" : ""}`,
373
+ title: isCollapsed ? "\u5C55\u5F00\u4EE3\u7801" : "\u6536\u8D77\u4EE3\u7801",
374
+ onClick: () => handleActionClick("collapse"),
375
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.CodeOutlined, {})
376
+ },
377
+ "collapse"
378
+ );
379
+ default:
380
+ return null;
381
+ }
382
+ }) }) }),
383
+ hasTabs && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rpc_code_snippet_tabs_bar", children: tabs.map((tab) => /* @__PURE__ */ jsxRuntime.jsx(
384
+ "div",
385
+ {
386
+ className: `rpc_code_snippet_tab_item ${tab.key === activeKey ? "rpc_code_snippet_tab_active" : ""}`,
387
+ onClick: () => handleTabClick(tab.key),
388
+ children: tab.label
389
+ },
390
+ tab.key
391
+ )) }),
392
+ !showActions && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rpc_code_snippet_top_bar", children: [
393
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rpc_code_snippet_dots", children: [
394
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_code_snippet_dot rpc_code_snippet_dot_red" }),
395
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_code_snippet_dot rpc_code_snippet_dot_yellow" }),
396
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_code_snippet_dot rpc_code_snippet_dot_green" })
397
+ ] }),
398
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_code_snippet_lang", children: title != null ? title : currentLanguage }),
399
+ copyable ? /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "rpc_code_snippet_copy_btn", onClick: handleCopy, children: copied ? "\u2713 \u5DF2\u590D\u5236" : "\u590D\u5236" }) : /* @__PURE__ */ jsxRuntime.jsx("span", {})
400
+ ] }),
401
+ !isCollapsed && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rpc_code_snippet_body", children: [
402
+ showLineNumbers && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rpc_code_snippet_line_numbers", children: lines.map((_, idx) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_code_snippet_line_no", children: idx + 1 }, idx)) }),
403
+ /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "rpc_code_snippet_content", children: /* @__PURE__ */ jsxRuntime.jsx("code", { children: currentCode }) }),
404
+ showActions && copyable && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rpc_code_snippet_floating_copy", onClick: handleCopy, title: "\u590D\u5236\u4EE3\u7801", children: [
405
+ copied ? /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.CheckOutlined, { style: { color: "#52c41a" } }) : /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.CopyOutlined, {}),
406
+ /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: 11, marginLeft: 4 }, children: currentLanguage })
407
+ ] })
408
+ ] }),
409
+ (showCollapseFooter || collapsible) && !isCollapsed && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rpc_code_snippet_footer", onClick: handleToggleCollapse, children: [
410
+ /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.UpOutlined, { style: { marginRight: 6, fontSize: 12 } }),
411
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "\u6536\u8D77\u4EE3\u7801" })
412
+ ] }),
413
+ (showCollapseFooter || collapsible) && isCollapsed && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rpc_code_snippet_footer", onClick: handleToggleCollapse, children: [
414
+ /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.DownOutlined, { style: { marginRight: 6, fontSize: 12 } }),
415
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "\u5C55\u5F00\u4EE3\u7801" })
416
+ ] })
417
+ ]
418
+ }
419
+ );
420
+ };
421
+ var CodeSnippet_default = CodeSnippet;
422
+
423
+ exports.CodeSnippet_default = CodeSnippet_default;
424
+ exports.openInCodePen = openInCodePen;
425
+ exports.openInCodeSandbox = openInCodeSandbox;
426
+ exports.openInNewTab = openInNewTab;
427
+ exports.openInStackBlitz = openInStackBlitz;
428
+ //# sourceMappingURL=chunk-TUDLE3RT.cjs.map
429
+ //# sourceMappingURL=chunk-TUDLE3RT.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../CodeSnippet/sandbox.ts","../CodeSnippet/index.tsx"],"names":["useState","jsxs","jsx","React","CodeSandboxOutlined","CodePenOutlined","ThunderboltOutlined","ExportOutlined","CheckOutlined","CopyOutlined","CodeOutlined","UpOutlined","DownOutlined"],"mappings":";;;;;;;;;;;AAYA,IAAM,qBAAqB,CAC1B,YAAA,GAAuC,EAAC,EACxC,eAAA,GAA0C,EAAC,MACtC;AAAA,EACL,IAAA,EAAM,8BAAA;AAAA,EACN,OAAA,EAAS,OAAA;AAAA,EACT,WAAA,EAAa,uDAAA;AAAA,EACb,IAAA,EAAM,eAAA;AAAA,EACN,YAAA,EAAc;AAAA,IACb,KAAA,EAAO,SAAA;AAAA,IACP,WAAA,EAAa,SAAA;AAAA,IACb,yBAAA,EAA2B,QAAA;AAAA,IAC3B,GAAG;AAAA,GACJ;AAAA,EACA,eAAA,EAAiB;AAAA,IAChB,cAAA,EAAgB,SAAA;AAAA,IAChB,kBAAA,EAAoB,SAAA;AAAA,IACpB,UAAA,EAAY,QAAA;AAAA,IACZ,GAAG;AAAA;AAEL,CAAA,CAAA;AAEA,IAAM,WAAA,GAAc,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAA,CAAA;AAiBpB,IAAM,eAAA,GAAkB,CAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA,CAAA;AAkBjB,SAAS,gBAAA,CAAiB,IAAA,EAAc,MAAA,GAAwB,EAAC,EAAG;AAC1E,EAAA,MAAM,IAAA,GAAO,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA;AAC1C,EAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AACd,EAAA,IAAA,CAAK,MAAA,GAAS,4BAAA;AACd,EAAA,IAAA,CAAK,MAAA,GAAS,QAAA;AACd,EAAA,IAAA,CAAK,MAAM,OAAA,GAAU,MAAA;AAErB,EAAA,MAAM,GAAA,GAAM,kBAAA,CAAmB,MAAA,CAAO,YAAA,EAAc,OAAO,eAAe,CAAA;AAE1E,EAAA,MAAM,MAAA,GAAiC;AAAA,IACtC,gBAAA,EAAkB,OAAO,KAAA,IAAS,8BAAA;AAAA,IAClC,sBAAA,EAAwB,OAAO,WAAA,IAAe,qBAAA;AAAA,IAC9C,mBAAA,EAAqB,kBAAA;AAAA,IACrB,8BAAA,EAAgC,IAAA,CAAK,SAAA,CAAU,GAAA,EAAK,MAAM,CAAC,CAAA;AAAA,IAC3D,mCAAA,EAAqC,WAAA;AAAA,IACrC,+BAAA,EAAiC,eAAA;AAAA,IACjC,6BAAA,EAA+B,IAAA;AAAA,IAC/B,iCAAiC,IAAA,CAAK,SAAA;AAAA,MACrC;AAAA,QACC,eAAA,EAAiB;AAAA,UAChB,MAAA,EAAQ,KAAA;AAAA,UACR,GAAA,EAAK,CAAC,KAAA,EAAO,cAAA,EAAgB,QAAQ,CAAA;AAAA,UACrC,OAAA,EAAS,IAAA;AAAA,UACT,YAAA,EAAc,IAAA;AAAA,UACd,eAAA,EAAiB,IAAA;AAAA,UACjB,4BAAA,EAA8B,IAAA;AAAA,UAC9B,MAAA,EAAQ,IAAA;AAAA,UACR,gCAAA,EAAkC,IAAA;AAAA,UAClC,0BAAA,EAA4B,IAAA;AAAA,UAC5B,MAAA,EAAQ,QAAA;AAAA,UACR,gBAAA,EAAkB,MAAA;AAAA,UAClB,iBAAA,EAAmB,IAAA;AAAA,UACnB,eAAA,EAAiB,IAAA;AAAA,UACjB,MAAA,EAAQ,IAAA;AAAA,UACR,GAAA,EAAK;AAAA,SACN;AAAA,QACA,OAAA,EAAS,CAAC,KAAK;AAAA,OAChB;AAAA,MACA,IAAA;AAAA,MACA;AAAA;AACD,GACD;AAEA,EAAA,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,GAAA,EAAK,GAAG,CAAA,KAAM;AAC9C,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA;AAC5C,IAAA,KAAA,CAAM,IAAA,GAAO,QAAA;AACb,IAAA,KAAA,CAAM,IAAA,GAAO,GAAA;AACb,IAAA,KAAA,CAAM,KAAA,GAAQ,GAAA;AACd,IAAA,IAAA,CAAK,YAAY,KAAK,CAAA;AAAA,EACvB,CAAC,CAAA;AAED,EAAA,QAAA,CAAS,IAAA,CAAK,YAAY,IAAI,CAAA;AAC9B,EAAA,IAAA,CAAK,MAAA,EAAO;AACZ,EAAA,QAAA,CAAS,IAAA,CAAK,YAAY,IAAI,CAAA;AAC/B;AAKO,SAAS,iBAAA,CAAkB,IAAA,EAAc,MAAA,GAAwB,EAAC,EAAG;AAC3E,EAAA,MAAM,GAAA,GAAM,kBAAA,CAAmB,MAAA,CAAO,YAAA,EAAc,OAAO,eAAe,CAAA;AAE1E,EAAA,MAAM,KAAA,GAAQ;AAAA,IACb,cAAA,EAAgB;AAAA,MACf,OAAA,EAAS,IAAA,CAAK,SAAA,CAAU,GAAA,EAAK,MAAM,CAAC;AAAA,KACrC;AAAA,IACA,mBAAA,EAAqB;AAAA,MACpB,OAAA,EAAS;AAAA,KACV;AAAA,IACA,eAAA,EAAiB;AAAA,MAChB,OAAA,EAAS;AAAA,KACV;AAAA,IACA,aAAA,EAAe;AAAA,MACd,OAAA,EAAS;AAAA;AACV,GACD;AAEA,EAAA,KAAA,CAAM,uDAAA,EAAyD;AAAA,IAC9D,MAAA,EAAQ,MAAA;AAAA,IACR,OAAA,EAAS;AAAA,MACR,cAAA,EAAgB,kBAAA;AAAA,MAChB,MAAA,EAAQ;AAAA,KACT;AAAA,IACA,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,EAAE,OAAO;AAAA,GAC9B,CAAA,CACC,IAAA,CAAK,CAAC,GAAA,KAAQ,GAAA,CAAI,IAAA,EAAM,CAAA,CACxB,IAAA,CAAK,CAAC,IAAA,KAAS;AACf,IAAA,IAAI,IAAA,IAAQ,KAAK,UAAA,EAAY;AAC5B,MAAA,MAAA,CAAO,IAAA,CAAK,CAAA,yBAAA,EAA4B,IAAA,CAAK,UAAU,IAAI,QAAQ,CAAA;AAAA,IACpE;AAAA,EACD,CAAC,CAAA,CACA,KAAA,CAAM,MAAM;AAEZ,IAAA,gBAAA,CAAiB,MAAM,MAAM,CAAA;AAAA,EAC9B,CAAC,CAAA;AACH;AAKO,SAAS,aAAA,CAAc,IAAA,EAAc,MAAA,GAAwB,EAAC,EAAG;AACvE,EAAA,MAAM,IAAA,GAAO,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA;AAC1C,EAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AACd,EAAA,IAAA,CAAK,MAAA,GAAS,gCAAA;AACd,EAAA,IAAA,CAAK,MAAA,GAAS,QAAA;AACd,EAAA,IAAA,CAAK,MAAM,OAAA,GAAU,MAAA;AAErB,EAAA,IAAI,OAAA,GAAU,IAAA,CACZ,OAAA,CAAQ,2CAAA,EAA6C,EAAE,CAAA,CACvD,OAAA,CAAQ,2BAAA,EAA6B,EAAE,CAAA,CACvC,OAAA,CAAQ,sBAAA,EAAwB,EAAE,CAAA;AAEpC,EAAA,OAAA,IAAW,+FAAA;AAEX,EAAA,MAAM,IAAA,GAAO;AAAA,IACZ,KAAA,EAAO,OAAO,KAAA,IAAS,8BAAA;AAAA,IACvB,WAAA,EAAa,OAAO,WAAA,IAAe,qBAAA;AAAA,IACnC,IAAA,EAAM,uBAAA;AAAA,IACN,EAAA,EAAI,OAAA;AAAA,IACJ,gBAAA,EAAkB,OAAA;AAAA,IAClB,GAAA,EAAK,yIAAA;AAAA,IACL,WAAA,EAAa;AAAA,MACZ,wDAAA;AAAA,MACA,gEAAA;AAAA,MACA;AAAA,KACD,CAAE,KAAK,GAAG,CAAA;AAAA,IACV,YAAA,EAAc;AAAA,MACb;AAAA,KACD,CAAE,KAAK,GAAG;AAAA,GACX;AAEA,EAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA;AAC5C,EAAA,KAAA,CAAM,IAAA,GAAO,QAAA;AACb,EAAA,KAAA,CAAM,IAAA,GAAO,MAAA;AACb,EAAA,KAAA,CAAM,KAAA,GAAQ,IAAA,CAAK,SAAA,CAAU,IAAI,CAAA;AACjC,EAAA,IAAA,CAAK,YAAY,KAAK,CAAA;AAEtB,EAAA,QAAA,CAAS,IAAA,CAAK,YAAY,IAAI,CAAA;AAC9B,EAAA,IAAA,CAAK,MAAA,EAAO;AACZ,EAAA,QAAA,CAAS,IAAA,CAAK,YAAY,IAAI,CAAA;AAC/B;AAKO,SAAS,YAAA,CAAa,IAAA,EAAc,KAAA,GAAgB,cAAA,EAAgB;AAC1E,EAAA,MAAM,MAAA,GAAS,MAAA,CAAO,IAAA,CAAK,EAAA,EAAI,QAAQ,CAAA;AACvC,EAAA,IAAI,CAAC,MAAA,EAAQ;AAEb,EAAA,MAAM,WAAA,GAAc,CAAA;AAAA;AAAA;AAAA;AAAA,SAAA,EAIV,KAAK,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA,EAgBV,IAAA,CACF,OAAA,CAAQ,2CAAA,EAA6C,EAAE,CAAA,CACvD,OAAA,CAAQ,2BAAA,EAA6B,EAAE,CAAA,CACvC,OAAA,CAAQ,sBAAA,EAAwB,EAAE,CAAC;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAA,CAAA;AAUtC,EAAA,MAAA,CAAO,SAAS,IAAA,EAAK;AACrB,EAAA,MAAA,CAAO,QAAA,CAAS,MAAM,WAAW,CAAA;AACjC,EAAA,MAAA,CAAO,SAAS,KAAA,EAAM;AACvB;ACzKA,IAAM,cAA0C,CAAC;AAAA,EAChD,MAAM,UAAA,GAAa,EAAA;AAAA,EACnB,UAAU,WAAA,GAAc,KAAA;AAAA,EACxB,KAAA,GAAQ,MAAA;AAAA,EACR,KAAA;AAAA,EACA,eAAA,GAAkB,KAAA;AAAA,EAClB,QAAA,GAAW,IAAA;AAAA,EACX,IAAA;AAAA,EACA,YAAA,EAAc,gBAAA;AAAA,EACd,mBAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA,GAAc,KAAA;AAAA,EACd,UAAU,CAAC,aAAA,EAAe,WAAW,YAAA,EAAc,UAAA,EAAY,QAAQ,UAAU,CAAA;AAAA,EACjF,QAAA;AAAA,EACA,aAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA,GAAc,KAAA;AAAA,EACd,gBAAA,GAAmB,KAAA;AAAA,EACnB,SAAA,EAAW,mBAAA;AAAA,EACX,gBAAA;AAAA,EACA,kBAAA,GAAqB,KAAA;AAAA,EACrB,SAAA,GAAY,EAAA;AAAA,EACZ;AACD,CAAA,KAAM;AACL,EAAA,MAAM,UAAU,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,IAAK,KAAK,MAAA,GAAS,CAAA;AACrD,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAIA,cAAA;AAAA,IAC3C,mBAAA,IAAA,IAAA,GAAA,mBAAA,GAAwB,OAAA,GAAU,IAAA,CAAK,CAAC,EAAE,GAAA,GAAM;AAAA,GACjD;AACA,EAAA,MAAM,SAAA,GAAY,gBAAA,KAAqB,MAAA,GAAY,gBAAA,GAAmB,cAAA;AAEtE,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAIA,eAAkB,gBAAgB,CAAA;AACpF,EAAA,MAAM,WAAA,GAAc,mBAAA,KAAwB,MAAA,GAAY,mBAAA,GAAsB,iBAAA;AAE9E,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,eAAkB,KAAK,CAAA;AAGnD,EAAA,MAAM,UAAA,GAAa,OAAA,GAAU,IAAA,CAAK,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,GAAA,KAAQ,SAAS,CAAA,IAAK,IAAA,CAAK,CAAC,CAAA,GAAI,IAAA;AAChF,EAAA,MAAM,WAAA,GAAc,UAAA,GAAa,UAAA,CAAW,IAAA,GAAO,UAAA;AACnD,EAAA,MAAM,eAAA,GAAkB,UAAA,GAAa,UAAA,CAAW,QAAA,IAAY,WAAA,GAAc,WAAA;AAE1E,EAAA,MAAM,aAAa,YAAY;AAC9B,IAAA,IAAI;AACH,MAAA,MAAM,SAAA,CAAU,SAAA,CAAU,SAAA,CAAU,WAAW,CAAA;AAC/C,MAAA,SAAA,CAAU,IAAI,CAAA;AACd,MAAA,UAAA,CAAW,MAAM,SAAA,CAAU,KAAK,CAAA,EAAG,IAAI,CAAA;AACvC,MAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAW,MAAA,CAAA;AAAA,IACZ,CAAA,CAAA,OAAQ,CAAA,EAAA;AAAA,IAER;AAAA,EACD,CAAA;AAEA,EAAA,MAAM,uBAAuB,MAAM;AAClC,IAAA,MAAM,OAAO,CAAC,WAAA;AACd,IAAA,IAAI,wBAAwB,MAAA,EAAW;AACtC,MAAA,oBAAA,CAAqB,IAAI,CAAA;AAAA,IAC1B;AACA,IAAA,gBAAA,IAAA,IAAA,GAAA,MAAA,GAAA,gBAAA,CAAmB,IAAA,CAAA;AACnB,IAAA,QAAA,IAAA,IAAA,GAAA,MAAA,GAAA,QAAA,CAAW,UAAA,CAAA;AAAA,EACZ,CAAA;AAEA,EAAA,MAAM,iBAAA,GAAoB,CAAC,MAAA,KAAmB;AAC7C,IAAA,MAAM,MAAA,GAAwB;AAAA,MAC7B,KAAA,EAAO,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,GAAQ,8BAAA;AAAA,MAC3C,GAAG;AAAA,KACJ;AAEA,IAAA,IAAI,WAAW,aAAA,EAAe;AAC7B,MAAA,iBAAA,CAAkB,aAAa,MAAM,CAAA;AAAA,IACtC,CAAA,MAAA,IAAW,WAAW,SAAA,EAAW;AAChC,MAAA,aAAA,CAAc,aAAa,MAAM,CAAA;AAAA,IAClC,CAAA,MAAA,IAAW,WAAW,YAAA,EAAc;AACnC,MAAA,gBAAA,CAAiB,aAAa,MAAM,CAAA;AAAA,IACrC,CAAA,MAAA,IAAW,WAAW,UAAA,EAAY;AACjC,MAAA,IAAI,WAAA,EAAa;AAChB,QAAA,MAAA,CAAO,IAAA,CAAK,aAAa,QAAQ,CAAA;AAAA,MAClC,CAAA,MAAO;AACN,QAAA,YAAA,CAAa,WAAA,EAAa,MAAA,CAAO,KAAA,IAAS,cAAc,CAAA;AAAA,MACzD;AAAA,IACD,CAAA,MAAA,IAAW,WAAW,MAAA,EAAQ;AAC7B,MAAA,UAAA,EAAW;AACX,MAAA;AAAA,IACD,CAAA,MAAA,IAAW,WAAW,UAAA,EAAY;AACjC,MAAA,oBAAA,EAAqB;AACrB,MAAA;AAAA,IACD;AACA,IAAA,QAAA,IAAA,IAAA,GAAA,MAAA,GAAA,QAAA,CAAW,MAAA,CAAA;AAAA,EACZ,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,CAAC,GAAA,KAAgB;AACvC,IAAA,IAAI,qBAAqB,MAAA,EAAW;AACnC,MAAA,iBAAA,CAAkB,GAAG,CAAA;AAAA,IACtB;AACA,IAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAc,GAAA,CAAA;AAAA,EACf,CAAA;AAEA,EAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,KAAA,CAAM,IAAI,CAAA;AAEpC,EAAA,uBACCC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,SAAA,EAAW,qCAAqC,KAAK,CAAA,CAAA,EACpD,cAAc,4BAAA,GAA+B,EAC9C,IAAI,SAAS,CAAA,CAAA;AAAA,MACb,KAAA;AAAA,MAGC,QAAA,EAAA;AAAA,QAAA,WAAA,oBACAC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8BAAA,EACd,QAAA,kBAAAA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,+BAAA,EACb,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,GAAA,EAAK,KAAA,KAAU;AAC5B,UAAA,IAAI,OAAO,QAAQ,QAAA,EAAU;AAC5B,YAAA,uBAAOA,cAAA,CAACC,sBAAA,CAAM,QAAA,EAAN,EAA4B,iBAAR,KAAY,CAAA;AAAA,UACzC;AAEA,UAAA,QAAQ,GAAA;AAAK,YACZ,KAAK,aAAA;AACJ,cAAA,uBACCD,cAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBAEA,IAAA,EAAK,QAAA;AAAA,kBACL,SAAA,EAAU,6BAAA;AAAA,kBACV,KAAA,EAAM,qEAAA;AAAA,kBACN,OAAA,EAAS,MAAM,iBAAA,CAAkB,aAAa,CAAA;AAAA,kBAE9C,yCAACE,qCAAA,EAAA,EAAoB;AAAA,iBAAA;AAAA,gBANjB;AAAA,eAOL;AAAA,YAEF,KAAK,SAAA;AACJ,cAAA,uBACCF,cAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBAEA,IAAA,EAAK,QAAA;AAAA,kBACL,SAAA,EAAU,6BAAA;AAAA,kBACV,KAAA,EAAM,qDAAA;AAAA,kBACN,OAAA,EAAS,MAAM,iBAAA,CAAkB,SAAS,CAAA;AAAA,kBAE1C,yCAACG,iCAAA,EAAA,EAAgB;AAAA,iBAAA;AAAA,gBANb;AAAA,eAOL;AAAA,YAEF,KAAK,YAAA;AACJ,cAAA,uBACCH,cAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBAEA,IAAA,EAAK,QAAA;AAAA,kBACL,SAAA,EAAU,6BAAA;AAAA,kBACV,KAAA,EAAM,kDAAA;AAAA,kBACN,OAAA,EAAS,MAAM,iBAAA,CAAkB,YAAY,CAAA;AAAA,kBAE7C,yCAACI,qCAAA,EAAA,EAAoB;AAAA,iBAAA;AAAA,gBANjB;AAAA,eAOL;AAAA,YAEF,KAAK,UAAA;AACJ,cAAA,uBACCJ,cAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBAEA,IAAA,EAAK,QAAA;AAAA,kBACL,SAAA,EAAU,6BAAA;AAAA,kBACV,KAAA,EAAM,0EAAA;AAAA,kBACN,OAAA,EAAS,MAAM,iBAAA,CAAkB,UAAU,CAAA;AAAA,kBAE3C,yCAACK,gCAAA,EAAA,EAAe;AAAA,iBAAA;AAAA,gBANZ;AAAA,eAOL;AAAA,YAEF,KAAK,MAAA;AACJ,cAAA,uBACCL,cAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBAEA,IAAA,EAAK,QAAA;AAAA,kBACL,SAAA,EAAW,CAAA,4BAAA,EACV,MAAA,GAAS,gCAAA,GAAmC,EAC7C,CAAA,CAAA;AAAA,kBACA,KAAA,EAAO,SAAS,kDAAA,GAAa,0BAAA;AAAA,kBAC7B,OAAA,EAAS,MAAM,iBAAA,CAAkB,MAAM,CAAA;AAAA,kBAEtC,QAAA,EAAA,MAAA,mBAASA,cAAA,CAACM,+BAAA,EAAA,EAAc,KAAA,EAAO,EAAE,OAAO,SAAA,EAAU,EAAG,CAAA,mBAAKN,cAAA,CAACO,8BAAA,EAAA,EAAa;AAAA,iBAAA;AAAA,gBARrE;AAAA,eASL;AAAA,YAEF,KAAK,UAAA;AACJ,cAAA,uBACCP,cAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBAEA,IAAA,EAAK,QAAA;AAAA,kBACL,SAAA,EAAW,CAAA,4BAAA,EACV,CAAC,WAAA,GAAc,mCAAmC,EACnD,CAAA,CAAA;AAAA,kBACA,KAAA,EAAO,cAAc,0BAAA,GAAS,0BAAA;AAAA,kBAC9B,OAAA,EAAS,MAAM,iBAAA,CAAkB,UAAU,CAAA;AAAA,kBAE3C,yCAACQ,8BAAA,EAAA,EAAa;AAAA,iBAAA;AAAA,gBARV;AAAA,eASL;AAAA,YAEF;AACC,cAAA,OAAO,IAAA;AAAA;AACT,QACD,CAAC,GACF,CAAA,EACD,CAAA;AAAA,QAIA,OAAA,mCACC,KAAA,EAAA,EAAI,SAAA,EAAU,6BACb,QAAA,EAAA,IAAA,CAAK,GAAA,CAAI,CAAC,GAAA,qBACVR,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YAEA,WAAW,CAAA,0BAAA,EACV,GAAA,CAAI,GAAA,KAAQ,SAAA,GAAY,gCAAgC,EACzD,CAAA,CAAA;AAAA,YACA,OAAA,EAAS,MAAM,cAAA,CAAe,GAAA,CAAI,GAAG,CAAA;AAAA,YAEpC,QAAA,EAAA,GAAA,CAAI;AAAA,WAAA;AAAA,UANA,GAAA,CAAI;AAAA,SAQV,CAAA,EACF,CAAA;AAAA,QAIA,CAAC,WAAA,oBACDD,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,0BAAA,EACd,QAAA,EAAA;AAAA,0BAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,uBAAA,EACd,QAAA,EAAA;AAAA,4BAAAC,cAAA,CAAC,MAAA,EAAA,EAAK,WAAU,+CAAA,EAAgD,CAAA;AAAA,4BAChEA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kDAAA,EAAmD,CAAA;AAAA,4BACnEA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iDAAA,EAAkD;AAAA,WAAA,EACnE,CAAA;AAAA,0BAEAA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EAAyB,kCAAS,eAAA,EAAgB,CAAA;AAAA,UAEjE,QAAA,mBACAA,cAAA,CAAC,QAAA,EAAA,EAAO,IAAA,EAAK,UAAS,SAAA,EAAU,2BAAA,EAA4B,OAAA,EAAS,UAAA,EACnE,QAAA,EAAA,MAAA,GAAS,2BAAA,GAAU,cAAA,EACrB,CAAA,kCAEC,MAAA,EAAA,EAAK;AAAA,SAAA,EAER,CAAA;AAAA,QAIA,CAAC,WAAA,oBACDD,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,uBAAA,EACb,QAAA,EAAA;AAAA,UAAA,eAAA,mCACC,KAAA,EAAA,EAAI,SAAA,EAAU,+BAAA,EACb,QAAA,EAAA,KAAA,CAAM,IAAI,CAAC,CAAA,EAAG,GAAA,qBACdC,cAAA,CAAC,UAAe,SAAA,EAAU,0BAAA,EACxB,gBAAM,CAAA,EAAA,EADG,GAEX,CACA,CAAA,EACF,CAAA;AAAA,yCAEA,KAAA,EAAA,EAAI,SAAA,EAAU,4BACd,QAAA,kBAAAA,cAAA,CAAC,MAAA,EAAA,EAAM,uBAAY,CAAA,EACpB,CAAA;AAAA,UACC,WAAA,IAAe,4BACfD,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,gCAAA,EAAiC,OAAA,EAAS,UAAA,EAAY,KAAA,EAAM,0BAAA,EACzE,QAAA,EAAA;AAAA,YAAA,MAAA,mBAASC,cAAA,CAACM,mCAAc,KAAA,EAAO,EAAE,OAAO,SAAA,EAAU,EAAG,CAAA,mBAAKN,cAAA,CAACO,8BAAA,EAAA,EAAa,CAAA;AAAA,4BACzEP,cAAA,CAAC,UAAK,KAAA,EAAO,EAAE,UAAU,EAAA,EAAI,UAAA,EAAY,CAAA,EAAE,EAAI,QAAA,EAAA,eAAA,EAAgB;AAAA,WAAA,EAChE;AAAA,SAAA,EAEF,CAAA;AAAA,QAAA,CAIC,kBAAA,IAAsB,gBAAgB,CAAC,WAAA,oCACvC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EAA0B,OAAA,EAAS,oBAAA,EACjD,QAAA,EAAA;AAAA,0BAAAA,cAAA,CAACS,gCAAW,KAAA,EAAO,EAAE,aAAa,CAAA,EAAG,QAAA,EAAU,IAAG,EAAG,CAAA;AAAA,0BACrDT,cAAA,CAAC,UAAK,QAAA,EAAA,0BAAA,EAAI;AAAA,SAAA,EACX,CAAA;AAAA,QAAA,CAGC,kBAAA,IAAsB,gBAAgB,WAAA,oBACvCD,eAAA,CAAC,SAAI,SAAA,EAAU,yBAAA,EAA0B,SAAS,oBAAA,EACjD,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAACU,kCAAa,KAAA,EAAO,EAAE,aAAa,CAAA,EAAG,QAAA,EAAU,IAAG,EAAG,CAAA;AAAA,0BACvDV,cAAA,CAAC,UAAK,QAAA,EAAA,0BAAA,EAAI;AAAA,SAAA,EACX;AAAA;AAAA;AAAA,GAEF;AAEF,CAAA;AAEA,IAAO,mBAAA,GAAQ","file":"chunk-TUDLE3RT.cjs","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 chunkQ4QF6UYX_cjs = require('./chunk-Q4QF6UYX.cjs');
3
+ var chunkR4V3EJVP_cjs = require('./chunk-R4V3EJVP.cjs');
4
4
  var react = require('react');
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
 
@@ -83,7 +83,7 @@ var KeyValEditor = ({
83
83
  }
84
84
  },
85
85
  title: item.isSecret ? "\u5207\u6362\u663E\u793A/\u9690\u85CF" : "\u8BBE\u4E3A\u654F\u611F\u5BC6\u7801",
86
- children: item.isSecret ? visibleSecrets[index] ? /* @__PURE__ */ jsxRuntime.jsx(chunkQ4QF6UYX_cjs.EyeOutlined, {}) : /* @__PURE__ */ jsxRuntime.jsx(chunkQ4QF6UYX_cjs.EyeInvisibleOutlined, {}) : /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: 11, color: "#8c8c8c" }, children: "\u{1F512}" })
86
+ children: item.isSecret ? visibleSecrets[index] ? /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.EyeOutlined, {}) : /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.EyeInvisibleOutlined, {}) : /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: 11, color: "#8c8c8c" }, children: "\u{1F512}" })
87
87
  }
88
88
  ),
89
89
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -93,7 +93,7 @@ var KeyValEditor = ({
93
93
  className: "rpc_key_val_editor_btn_icon",
94
94
  onClick: () => handleDelete(index),
95
95
  title: "\u5220\u9664\u6B64\u884C",
96
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkQ4QF6UYX_cjs.CloseOutlined, {})
96
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.CloseOutlined, {})
97
97
  }
98
98
  )
99
99
  ] }, index);
@@ -104,5 +104,5 @@ var KeyValEditor = ({
104
104
  var KeyValEditor_default = KeyValEditor;
105
105
 
106
106
  exports.KeyValEditor_default = KeyValEditor_default;
107
- //# sourceMappingURL=chunk-PIIJVF5D.cjs.map
108
- //# sourceMappingURL=chunk-PIIJVF5D.cjs.map
107
+ //# sourceMappingURL=chunk-TUEVILTA.cjs.map
108
+ //# sourceMappingURL=chunk-TUEVILTA.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../KeyValEditor/index.tsx"],"names":["useState","jsxs","jsx","EyeOutlined","EyeInvisibleOutlined","CloseOutlined"],"mappings":"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","file":"chunk-TUEVILTA.cjs","sourcesContent":["import React, { useState, CSSProperties } from 'react';\nimport { CloseOutlined, EyeOutlined, EyeInvisibleOutlined } from '../src/icons';\nimport './index.less';\n\nexport interface KeyValItem {\n\tkey: string;\n\tvalue: string;\n\tenabled?: boolean;\n\tisSecret?: boolean;\n}\n\nexport interface KeyValEditorProps {\n\t/** 键值对数组(受控) */\n\tvalue?: KeyValItem[];\n\t/** 默认键值对数组 */\n\tdefaultValue?: KeyValItem[];\n\t/** 变化回调 */\n\tonChange?: (items: KeyValItem[]) => void;\n\t/** Key 输入框占位文案,默认为 'Key 键名' */\n\tkeyPlaceholder?: string;\n\t/** Value 输入框占位文案,默认为 'Value 键值' */\n\tvalPlaceholder?: string;\n\t/** 是否允许配置 Secret 密码掩码,默认为 true */\n\tallowSecret?: boolean;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst KeyValEditor: React.FC<KeyValEditorProps> = ({\n\tvalue: controlledValue,\n\tdefaultValue = [{ key: '', value: '', enabled: true }],\n\tonChange,\n\tkeyPlaceholder = 'Key 键名',\n\tvalPlaceholder = 'Value 键值',\n\tallowSecret = true,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [internalVal, setInternalVal] = useState<KeyValItem[]>(defaultValue);\n\tconst items = controlledValue !== undefined ? controlledValue : internalVal;\n\n\tconst [visibleSecrets, setVisibleSecrets] = useState<Record<number, boolean>>({});\n\n\tconst triggerChange = (newItems: KeyValItem[]) => {\n\t\tif (controlledValue === undefined) setInternalVal(newItems);\n\t\tonChange?.(newItems);\n\t};\n\n\tconst handleItemChange = (index: number, field: keyof KeyValItem, val: any) => {\n\t\tconst next = items.map((item, i) => (i === index ? { ...item, [field]: val } : item));\n\t\ttriggerChange(next);\n\t};\n\n\tconst handleAdd = () => {\n\t\ttriggerChange([...items, { key: '', value: '', enabled: true }]);\n\t};\n\n\tconst handleDelete = (index: number) => {\n\t\ttriggerChange(items.filter((_, i) => i !== index));\n\t};\n\n\tconst toggleSecretVisibility = (index: number) => {\n\t\tsetVisibleSecrets((prev) => ({ ...prev, [index]: !prev[index] }));\n\t};\n\n\treturn (\n\t\t<div className={`rpc_key_val_editor ${className}`} style={style}>\n\t\t\t{items.map((item, index) => {\n\t\t\t\tconst isSecret = item.isSecret && !visibleSecrets[index];\n\n\t\t\t\treturn (\n\t\t\t\t\t<div key={index} className=\"rpc_key_val_editor_row\">\n\t\t\t\t\t\t{/* 启用/禁用勾选 */}\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\tchecked={item.enabled !== false}\n\t\t\t\t\t\t\tonChange={(e) => handleItemChange(index, 'enabled', e.target.checked)}\n\t\t\t\t\t\t\tclassName=\"rpc_key_val_editor_checkbox\"\n\t\t\t\t\t\t\ttitle=\"启用/禁用此条目\"\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t{/* Key 输入 */}\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tplaceholder={keyPlaceholder}\n\t\t\t\t\t\t\tvalue={item.key}\n\t\t\t\t\t\t\tdisabled={item.enabled === false}\n\t\t\t\t\t\t\tonChange={(e) => handleItemChange(index, 'key', e.target.value)}\n\t\t\t\t\t\t\tclassName=\"rpc_key_val_editor_input\"\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t{/* Value 输入 */}\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype={isSecret ? 'password' : 'text'}\n\t\t\t\t\t\t\tplaceholder={valPlaceholder}\n\t\t\t\t\t\t\tvalue={item.value}\n\t\t\t\t\t\t\tdisabled={item.enabled === false}\n\t\t\t\t\t\t\tonChange={(e) => handleItemChange(index, 'value', e.target.value)}\n\t\t\t\t\t\t\tclassName=\"rpc_key_val_editor_input\"\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t{/* 密码明文切换 */}\n\t\t\t\t\t\t{allowSecret && (\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tclassName=\"rpc_key_val_editor_btn_icon\"\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\tif (!item.isSecret) {\n\t\t\t\t\t\t\t\t\t\thandleItemChange(index, 'isSecret', true);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ttoggleSecretVisibility(index);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\ttitle={item.isSecret ? '切换显示/隐藏' : '设为敏感密码'}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{item.isSecret ? (\n\t\t\t\t\t\t\t\t\tvisibleSecrets[index] ? (\n\t\t\t\t\t\t\t\t\t\t<EyeOutlined />\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<EyeInvisibleOutlined />\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<span style={{ fontSize: 11, color: '#8c8c8c' }}>🔒</span>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{/* 删除行 */}\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclassName=\"rpc_key_val_editor_btn_icon\"\n\t\t\t\t\t\t\tonClick={() => handleDelete(index)}\n\t\t\t\t\t\t\ttitle=\"删除此行\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<CloseOutlined />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t})}\n\n\t\t\t<div className=\"rpc_key_val_editor_footer\">\n\t\t\t\t<button type=\"button\" className=\"rpc_key_val_editor_add_btn\" onClick={handleAdd}>\n\t\t\t\t\t+ 添加键值对\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default KeyValEditor;\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkQ4QF6UYX_cjs = require('./chunk-Q4QF6UYX.cjs');
3
+ var chunkR4V3EJVP_cjs = require('./chunk-R4V3EJVP.cjs');
4
4
  var react = require('react');
5
5
  var ReactDOM = require('react-dom');
6
6
  var jsxRuntime = require('react/jsx-runtime');
@@ -90,7 +90,7 @@ var ContextMenu = ({
90
90
  item.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_context_menu_item_icon", children: item.icon }),
91
91
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_context_menu_item_label", children: item.label }),
92
92
  item.shortcut && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_context_menu_item_shortcut", children: item.shortcut }),
93
- hasSub && /* @__PURE__ */ jsxRuntime.jsx(chunkQ4QF6UYX_cjs.RightOutlined, { className: "rpc_context_menu_item_arrow" }),
93
+ hasSub && /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.RightOutlined, { className: "rpc_context_menu_item_arrow" }),
94
94
  hasSub && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rpc_context_menu_submenu", children: item.children.map((sub) => renderMenuItem(sub)) })
95
95
  ] }, item.key);
96
96
  };
@@ -127,5 +127,5 @@ var ContextMenu = ({
127
127
  var ContextMenu_default = ContextMenu;
128
128
 
129
129
  exports.ContextMenu_default = ContextMenu_default;
130
- //# sourceMappingURL=chunk-RWZSTG6Q.cjs.map
131
- //# sourceMappingURL=chunk-RWZSTG6Q.cjs.map
130
+ //# sourceMappingURL=chunk-U2EBNBGK.cjs.map
131
+ //# sourceMappingURL=chunk-U2EBNBGK.cjs.map