react-public-components 1.2.3 → 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 (191) hide show
  1. package/dist/AudioPlayer/index.cjs +3 -3
  2. package/dist/AudioPlayer/index.js +2 -2
  3. package/dist/CodeSnippet/index.cjs +3 -2
  4. package/dist/CodeSnippet/index.css +157 -0
  5. package/dist/CodeSnippet/index.css.map +1 -1
  6. package/dist/CodeSnippet/index.d.ts +40 -4
  7. package/dist/CodeSnippet/index.js +2 -1
  8. package/dist/CodeSnippet/sandbox.d.ts +26 -0
  9. package/dist/CollapseBox/index.cjs +3 -3
  10. package/dist/CollapseBox/index.js +2 -2
  11. package/dist/ColorPicker/index.cjs +5 -5
  12. package/dist/ColorPicker/index.js +2 -2
  13. package/dist/ContextMenu/index.cjs +3 -3
  14. package/dist/ContextMenu/index.js +2 -2
  15. package/dist/CopyButton/index.cjs +3 -3
  16. package/dist/CopyButton/index.js +2 -2
  17. package/dist/CronPicker/index.cjs +4 -4
  18. package/dist/CronPicker/index.js +3 -3
  19. package/dist/DebounceSelect/index.cjs +3 -3
  20. package/dist/DebounceSelect/index.js +2 -2
  21. package/dist/DisabledBox/index.cjs +3 -3
  22. package/dist/DisabledBox/index.js +2 -2
  23. package/dist/DragSortList/index.cjs +3 -2
  24. package/dist/DragSortList/index.css +82 -13
  25. package/dist/DragSortList/index.css.map +1 -1
  26. package/dist/DragSortList/index.d.ts +8 -2
  27. package/dist/DragSortList/index.js +2 -1
  28. package/dist/FilePreviewer/index.cjs +4 -4
  29. package/dist/FilePreviewer/index.js +2 -2
  30. package/dist/Fullscreen/index.cjs +3 -3
  31. package/dist/Fullscreen/index.js +2 -2
  32. package/dist/GuidedTour/index.cjs +3 -3
  33. package/dist/GuidedTour/index.js +2 -2
  34. package/dist/ImageCropper/index.cjs +3 -3
  35. package/dist/ImageCropper/index.js +2 -2
  36. package/dist/InfiniteScrollList/index.cjs +3 -3
  37. package/dist/InfiniteScrollList/index.js +2 -2
  38. package/dist/JsonEditor/index.cjs +4 -4
  39. package/dist/JsonEditor/index.js +3 -3
  40. package/dist/KeyValEditor/index.cjs +3 -3
  41. package/dist/KeyValEditor/index.js +2 -2
  42. package/dist/PasswordStrength/index.cjs +4 -4
  43. package/dist/PasswordStrength/index.js +2 -2
  44. package/dist/PdfViewer/index.cjs +3 -3
  45. package/dist/PdfViewer/index.js +2 -2
  46. package/dist/QrCodeCard/index.cjs +3 -3
  47. package/dist/QrCodeCard/index.css +122 -32
  48. package/dist/QrCodeCard/index.css.map +1 -1
  49. package/dist/QrCodeCard/index.d.ts +10 -2
  50. package/dist/QrCodeCard/index.js +2 -2
  51. package/dist/SensitiveMask/index.cjs +5 -5
  52. package/dist/SensitiveMask/index.js +3 -3
  53. package/dist/Splitter/index.cjs +3 -3
  54. package/dist/Splitter/index.js +2 -2
  55. package/dist/TagInput/index.cjs +3 -3
  56. package/dist/TagInput/index.js +2 -2
  57. package/dist/TextEllipsis/index.cjs +4 -4
  58. package/dist/TextEllipsis/index.js +3 -3
  59. package/dist/TreeTransfer/index.cjs +3 -3
  60. package/dist/TreeTransfer/index.js +2 -2
  61. package/dist/VideoPlayer/index.cjs +3 -3
  62. package/dist/VideoPlayer/index.js +2 -2
  63. package/dist/{chunk-GV2RRQ2S.cjs → chunk-2EIAWXFA.cjs} +5 -5
  64. package/dist/{chunk-GV2RRQ2S.cjs.map → chunk-2EIAWXFA.cjs.map} +1 -1
  65. package/dist/{chunk-ISUXPTLV.js → chunk-2IDVNTKR.js} +93 -3
  66. package/dist/chunk-2IDVNTKR.js.map +1 -0
  67. package/dist/{chunk-6FVAQECF.js → chunk-2INP6NM4.js} +3 -3
  68. package/dist/{chunk-6FVAQECF.js.map → chunk-2INP6NM4.js.map} +1 -1
  69. package/dist/chunk-4KMVABTM.js +419 -0
  70. package/dist/chunk-4KMVABTM.js.map +1 -0
  71. package/dist/{chunk-VS2YVJOB.cjs → chunk-4TMBGQQE.cjs} +5 -5
  72. package/dist/{chunk-VS2YVJOB.cjs.map → chunk-4TMBGQQE.cjs.map} +1 -1
  73. package/dist/{chunk-PJB7ADK6.js → chunk-56VELHCH.js} +3 -3
  74. package/dist/{chunk-PJB7ADK6.js.map → chunk-56VELHCH.js.map} +1 -1
  75. package/dist/{chunk-4BDO5TJH.cjs → chunk-77ANKL4K.cjs} +8 -8
  76. package/dist/{chunk-4BDO5TJH.cjs.map → chunk-77ANKL4K.cjs.map} +1 -1
  77. package/dist/{chunk-OCN7L2ID.cjs → chunk-7ZBA4NHH.cjs} +4 -4
  78. package/dist/{chunk-OCN7L2ID.cjs.map → chunk-7ZBA4NHH.cjs.map} +1 -1
  79. package/dist/{chunk-MY4M7HVW.cjs → chunk-AHTRLNYK.cjs} +5 -5
  80. package/dist/{chunk-MY4M7HVW.cjs.map → chunk-AHTRLNYK.cjs.map} +1 -1
  81. package/dist/{chunk-WEOMKZC6.js → chunk-ANTFNDH4.js} +3 -3
  82. package/dist/{chunk-WEOMKZC6.js.map → chunk-ANTFNDH4.js.map} +1 -1
  83. package/dist/{chunk-EGZSSZBX.js → chunk-AXPVN2OO.js} +3 -3
  84. package/dist/{chunk-EGZSSZBX.js.map → chunk-AXPVN2OO.js.map} +1 -1
  85. package/dist/{chunk-LLWK5VKA.js → chunk-CURWX7OY.js} +3 -3
  86. package/dist/{chunk-LLWK5VKA.js.map → chunk-CURWX7OY.js.map} +1 -1
  87. package/dist/{chunk-WZRUBHS3.cjs → chunk-ED3ZG2VX.cjs} +5 -5
  88. package/dist/{chunk-WZRUBHS3.cjs.map → chunk-ED3ZG2VX.cjs.map} +1 -1
  89. package/dist/{chunk-BZXMWKD2.js → chunk-EDNBPLUS.js} +3 -3
  90. package/dist/{chunk-BZXMWKD2.js.map → chunk-EDNBPLUS.js.map} +1 -1
  91. package/dist/{chunk-MC3NERDH.js → chunk-EJYTTSW6.js} +3 -3
  92. package/dist/{chunk-MC3NERDH.js.map → chunk-EJYTTSW6.js.map} +1 -1
  93. package/dist/{chunk-3UNZXPOT.cjs → chunk-EKDJPOA3.cjs} +5 -5
  94. package/dist/{chunk-3UNZXPOT.cjs.map → chunk-EKDJPOA3.cjs.map} +1 -1
  95. package/dist/{chunk-XWXFENGT.js → chunk-EMT4NUI5.js} +3 -3
  96. package/dist/{chunk-XWXFENGT.js.map → chunk-EMT4NUI5.js.map} +1 -1
  97. package/dist/{chunk-HFPWBZID.js → chunk-ETFLLRTO.js} +3 -3
  98. package/dist/{chunk-HFPWBZID.js.map → chunk-ETFLLRTO.js.map} +1 -1
  99. package/dist/chunk-FZH5FL7X.cjs +167 -0
  100. package/dist/chunk-FZH5FL7X.cjs.map +1 -0
  101. package/dist/{chunk-6UKUAYN3.cjs → chunk-HKALWFWZ.cjs} +5 -5
  102. package/dist/{chunk-6UKUAYN3.cjs.map → chunk-HKALWFWZ.cjs.map} +1 -1
  103. package/dist/{chunk-IBOCJ2ZS.js → chunk-IF4XAUV3.js} +3 -3
  104. package/dist/{chunk-IBOCJ2ZS.js.map → chunk-IF4XAUV3.js.map} +1 -1
  105. package/dist/{chunk-MNY5P5EG.cjs → chunk-IPS7PC3M.cjs} +13 -13
  106. package/dist/{chunk-MNY5P5EG.cjs.map → chunk-IPS7PC3M.cjs.map} +1 -1
  107. package/dist/{chunk-V4O325BX.cjs → chunk-JHVPDKBM.cjs} +6 -6
  108. package/dist/{chunk-V4O325BX.cjs.map → chunk-JHVPDKBM.cjs.map} +1 -1
  109. package/dist/{chunk-6IXVUD2M.js → chunk-JNA5AQ2K.js} +3 -3
  110. package/dist/{chunk-6IXVUD2M.js.map → chunk-JNA5AQ2K.js.map} +1 -1
  111. package/dist/{chunk-NJIYP6SC.cjs → chunk-LFGBZXQH.cjs} +4 -4
  112. package/dist/{chunk-NJIYP6SC.cjs.map → chunk-LFGBZXQH.cjs.map} +1 -1
  113. package/dist/{chunk-ZLWY7QS2.cjs → chunk-M3GQ7RCV.cjs} +4 -4
  114. package/dist/{chunk-ZLWY7QS2.cjs.map → chunk-M3GQ7RCV.cjs.map} +1 -1
  115. package/dist/{chunk-AFR7V4A4.js → chunk-M4FZJALR.js} +4 -4
  116. package/dist/{chunk-AFR7V4A4.js.map → chunk-M4FZJALR.js.map} +1 -1
  117. package/dist/{chunk-CT66HLZ5.js → chunk-MQJBUHDB.js} +3 -3
  118. package/dist/{chunk-CT66HLZ5.js.map → chunk-MQJBUHDB.js.map} +1 -1
  119. package/dist/{chunk-V7IUSCQS.js → chunk-OLLVIQPL.js} +3 -3
  120. package/dist/{chunk-V7IUSCQS.js.map → chunk-OLLVIQPL.js.map} +1 -1
  121. package/dist/{chunk-2DIU347W.cjs → chunk-OONBZRPV.cjs} +4 -4
  122. package/dist/{chunk-2DIU347W.cjs.map → chunk-OONBZRPV.cjs.map} +1 -1
  123. package/dist/{chunk-56TD4LDC.js → chunk-P5CS7V4W.js} +3 -3
  124. package/dist/{chunk-56TD4LDC.js.map → chunk-P5CS7V4W.js.map} +1 -1
  125. package/dist/{chunk-HUXPCMNP.js → chunk-PTFKE67K.js} +3 -3
  126. package/dist/{chunk-HUXPCMNP.js.map → chunk-PTFKE67K.js.map} +1 -1
  127. package/dist/{chunk-PUTAVQJZ.js → chunk-PUMVD7CP.js} +3 -3
  128. package/dist/{chunk-PUTAVQJZ.js.map → chunk-PUMVD7CP.js.map} +1 -1
  129. package/dist/{chunk-KXZM322K.cjs → chunk-PYCSRJSF.cjs} +7 -7
  130. package/dist/{chunk-KXZM322K.cjs.map → chunk-PYCSRJSF.cjs.map} +1 -1
  131. package/dist/{chunk-PUJJHD22.js → chunk-Q7OVUH5K.js} +3 -3
  132. package/dist/{chunk-PUJJHD22.js.map → chunk-Q7OVUH5K.js.map} +1 -1
  133. package/dist/{chunk-2UCTE6YN.cjs → chunk-QP3RKA4J.cjs} +4 -4
  134. package/dist/{chunk-2UCTE6YN.cjs.map → chunk-QP3RKA4J.cjs.map} +1 -1
  135. package/dist/{chunk-OKCQZO5E.js → chunk-QRZ2GVVJ.js} +3 -3
  136. package/dist/{chunk-OKCQZO5E.js.map → chunk-QRZ2GVVJ.js.map} +1 -1
  137. package/dist/{chunk-MBOWSS4B.cjs → chunk-R4V3EJVP.cjs} +98 -2
  138. package/dist/chunk-R4V3EJVP.cjs.map +1 -0
  139. package/dist/{chunk-4OXVTRYV.cjs → chunk-RN5WU7KA.cjs} +7 -7
  140. package/dist/{chunk-4OXVTRYV.cjs.map → chunk-RN5WU7KA.cjs.map} +1 -1
  141. package/dist/{chunk-WWXBH57R.cjs → chunk-TNZ2OLGW.cjs} +4 -4
  142. package/dist/{chunk-WWXBH57R.cjs.map → chunk-TNZ2OLGW.cjs.map} +1 -1
  143. package/dist/chunk-TUDLE3RT.cjs +429 -0
  144. package/dist/chunk-TUDLE3RT.cjs.map +1 -0
  145. package/dist/{chunk-B7NN6SZD.cjs → chunk-TUEVILTA.cjs} +5 -5
  146. package/dist/{chunk-B7NN6SZD.cjs.map → chunk-TUEVILTA.cjs.map} +1 -1
  147. package/dist/{chunk-ZUW3XLZQ.cjs → chunk-U2EBNBGK.cjs} +4 -4
  148. package/dist/{chunk-ZUW3XLZQ.cjs.map → chunk-U2EBNBGK.cjs.map} +1 -1
  149. package/dist/{chunk-JAW7Q2YC.cjs → chunk-UAUP5TJK.cjs} +5 -5
  150. package/dist/{chunk-JAW7Q2YC.cjs.map → chunk-UAUP5TJK.cjs.map} +1 -1
  151. package/dist/{chunk-2MDYHFLH.cjs → chunk-UZB7GOEI.cjs} +4 -4
  152. package/dist/{chunk-2MDYHFLH.cjs.map → chunk-UZB7GOEI.cjs.map} +1 -1
  153. package/dist/{chunk-ZNFW6L3E.cjs → chunk-VJOO2DG3.cjs} +8 -8
  154. package/dist/{chunk-ZNFW6L3E.cjs.map → chunk-VJOO2DG3.cjs.map} +1 -1
  155. package/dist/{chunk-JECYRODB.js → chunk-W5JA3YTT.js} +3 -3
  156. package/dist/{chunk-JECYRODB.js.map → chunk-W5JA3YTT.js.map} +1 -1
  157. package/dist/{chunk-QZZGBUW4.js → chunk-WKF4C6TJ.js} +3 -3
  158. package/dist/{chunk-QZZGBUW4.js.map → chunk-WKF4C6TJ.js.map} +1 -1
  159. package/dist/{chunk-64LBDDZU.js → chunk-XLOGMDAQ.js} +3 -3
  160. package/dist/{chunk-64LBDDZU.js.map → chunk-XLOGMDAQ.js.map} +1 -1
  161. package/dist/chunk-XUAHWX6B.js +153 -0
  162. package/dist/chunk-XUAHWX6B.js.map +1 -0
  163. package/dist/chunk-Y54KVULF.js +161 -0
  164. package/dist/chunk-Y54KVULF.js.map +1 -0
  165. package/dist/{chunk-NUTVJGVT.cjs → chunk-YP4XTMK3.cjs} +4 -4
  166. package/dist/{chunk-NUTVJGVT.cjs.map → chunk-YP4XTMK3.cjs.map} +1 -1
  167. package/dist/{chunk-MGUNFP6P.js → chunk-ZCBT56AG.js} +3 -3
  168. package/dist/{chunk-MGUNFP6P.js.map → chunk-ZCBT56AG.js.map} +1 -1
  169. package/dist/chunk-ZWKUHYTV.cjs +155 -0
  170. package/dist/chunk-ZWKUHYTV.cjs.map +1 -0
  171. package/dist/index.cjs +74 -58
  172. package/dist/index.css +361 -45
  173. package/dist/index.css.map +1 -1
  174. package/dist/index.js +27 -27
  175. package/dist/src/icons.d.ts +18 -0
  176. package/dist/src/index.d.ts +3 -1
  177. package/package.json +1 -1
  178. package/dist/chunk-5VSEUDVY.js +0 -45
  179. package/dist/chunk-5VSEUDVY.js.map +0 -1
  180. package/dist/chunk-EOGYWPX7.cjs +0 -47
  181. package/dist/chunk-EOGYWPX7.cjs.map +0 -1
  182. package/dist/chunk-EQ7S5SYM.js +0 -67
  183. package/dist/chunk-EQ7S5SYM.js.map +0 -1
  184. package/dist/chunk-FYFL4PFD.cjs +0 -69
  185. package/dist/chunk-FYFL4PFD.cjs.map +0 -1
  186. package/dist/chunk-ISUXPTLV.js.map +0 -1
  187. package/dist/chunk-JEDW76LI.cjs +0 -107
  188. package/dist/chunk-JEDW76LI.cjs.map +0 -1
  189. package/dist/chunk-MBOWSS4B.cjs.map +0 -1
  190. package/dist/chunk-XOMV26WS.js +0 -105
  191. package/dist/chunk-XOMV26WS.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../KeyValEditor/index.tsx"],"names":[],"mappings":"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","file":"chunk-PUJJHD22.js","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
+ {"version":3,"sources":["../KeyValEditor/index.tsx"],"names":[],"mappings":"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","file":"chunk-Q7OVUH5K.js","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 chunkJAW7Q2YC_cjs = require('./chunk-JAW7Q2YC.cjs');
3
+ var chunkUAUP5TJK_cjs = require('./chunk-UAUP5TJK.cjs');
4
4
  var react = require('react');
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
 
@@ -133,7 +133,7 @@ var JsonEditor = ({
133
133
  }
134
134
  )
135
135
  ] }),
136
- /* @__PURE__ */ jsxRuntime.jsx(chunkJAW7Q2YC_cjs.CopyButton_default, { mode: "icon", text, tooltip: "\u590D\u5236 JSON" })
136
+ /* @__PURE__ */ jsxRuntime.jsx(chunkUAUP5TJK_cjs.CopyButton_default, { mode: "icon", text, tooltip: "\u590D\u5236 JSON" })
137
137
  ] })
138
138
  ] }),
139
139
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rpc_json_editor_body", children: [
@@ -172,5 +172,5 @@ var JsonEditor = ({
172
172
  var JsonEditor_default = JsonEditor;
173
173
 
174
174
  exports.JsonEditor_default = JsonEditor_default;
175
- //# sourceMappingURL=chunk-2UCTE6YN.cjs.map
176
- //# sourceMappingURL=chunk-2UCTE6YN.cjs.map
175
+ //# sourceMappingURL=chunk-QP3RKA4J.cjs.map
176
+ //# sourceMappingURL=chunk-QP3RKA4J.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../JsonEditor/index.tsx"],"names":["useMemo","useState","useRef","useEffect","jsxs","jsx","Fragment","CopyButton_default"],"mappings":"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","file":"chunk-2UCTE6YN.cjs","sourcesContent":["import React, { useState, useRef, useEffect, useMemo, CSSProperties } from 'react';\nimport CopyButton from '../CopyButton';\nimport './index.less';\n\nexport interface JsonEditorProps {\n\t/** JSON 数据内容(可传 JSON 字符串或 Object 对象) */\n\tvalue?: string | object;\n\t/** 默认 JSON 数据内容 */\n\tdefaultValue?: string | object;\n\t/** 内容变化回调 */\n\tonChange?: (rawJson: string, parsedObject?: unknown) => void;\n\t/** 是否只读模式,默认为 false */\n\treadOnly?: boolean;\n\t/** 缩进空格数,默认为 2 */\n\tindent?: number;\n\t/** 编辑器高度,默认为 280 */\n\theight?: number | string;\n\t/** 是否展示行号,默认为 true */\n\tshowLineNumbers?: boolean;\n\t/** 是否展示顶部工具栏,默认为 true */\n\tshowToolbar?: boolean;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\n// 格式化初始传入值\nfunction normalizeJson(val?: string | object, indent: number = 2): string {\n\tif (val === undefined || val === null) return '{\\n \\n}';\n\tif (typeof val === 'object') {\n\t\ttry {\n\t\t\treturn JSON.stringify(val, null, indent);\n\t\t} catch {\n\t\t\treturn '{}';\n\t\t}\n\t}\n\treturn String(val);\n}\n\nconst JsonEditor: React.FC<JsonEditorProps> = ({\n\tvalue: controlledValue,\n\tdefaultValue,\n\tonChange,\n\treadOnly = false,\n\tindent = 2,\n\theight = 280,\n\tshowLineNumbers = true,\n\tshowToolbar = true,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst initialText = useMemo(() => {\n\t\treturn normalizeJson(controlledValue !== undefined ? controlledValue : defaultValue, indent);\n\t}, [controlledValue, defaultValue, indent]);\n\n\tconst [text, setText] = useState<string>(initialText);\n\tconst [error, setError] = useState<string | null>(null);\n\n\tconst textareaRef = useRef<HTMLTextAreaElement>(null);\n\n\tuseEffect(() => {\n\t\tif (controlledValue !== undefined) {\n\t\t\tconst next = normalizeJson(controlledValue, indent);\n\t\t\tsetText(next);\n\t\t\tvalidate(next);\n\t\t}\n\t}, [controlledValue, indent]);\n\n\t// 校验 JSON\n\tconst validate = (content: string) => {\n\t\tif (!content.trim()) {\n\t\t\tsetError(null);\n\t\t\treturn true;\n\t\t}\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(content);\n\t\t\tsetError(null);\n\t\t\treturn parsed;\n\t\t} catch (err: any) {\n\t\t\tsetError(err.message || 'JSON 语法错误');\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tconst handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n\t\tconst nextText = e.target.value;\n\t\tsetText(nextText);\n\t\tconst parsed = validate(nextText);\n\t\tonChange?.(nextText, parsed !== false ? parsed : undefined);\n\t};\n\n\t// 一键美化格式化\n\tconst handleFormat = () => {\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(text);\n\t\t\tconst formatted = JSON.stringify(parsed, null, indent);\n\t\t\tsetText(formatted);\n\t\t\tsetError(null);\n\t\t\tonChange?.(formatted, parsed);\n\t\t} catch (err: any) {\n\t\t\tsetError(err.message || '格式化失败: 语法不合法');\n\t\t}\n\t};\n\n\t// 一键压缩 (Minify)\n\tconst handleMinify = () => {\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(text);\n\t\t\tconst minified = JSON.stringify(parsed);\n\t\t\tsetText(minified);\n\t\t\tsetError(null);\n\t\t\tonChange?.(minified, parsed);\n\t\t} catch (err: any) {\n\t\t\tsetError(err.message || '压缩失败: 语法不合法');\n\t\t}\n\t};\n\n\t// 处理 Tab 键缩进\n\tconst handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n\t\tif (e.key === 'Tab') {\n\t\t\te.preventDefault();\n\t\t\tconst textarea = textareaRef.current;\n\t\t\tif (!textarea) return;\n\n\t\t\tconst start = textarea.selectionStart;\n\t\t\tconst end = textarea.selectionEnd;\n\t\t\tconst spaces = ' '.repeat(indent);\n\n\t\t\tconst newText = text.substring(0, start) + spaces + text.substring(end);\n\t\t\tsetText(newText);\n\t\t\tvalidate(newText);\n\n\t\t\tsetTimeout(() => {\n\t\t\t\ttextarea.selectionStart = textarea.selectionEnd = start + indent;\n\t\t\t}, 0);\n\t\t}\n\t};\n\n\t// 计算总行数\n\tconst lineCount = useMemo(() => {\n\t\treturn text.split('\\n').length;\n\t}, [text]);\n\n\treturn (\n\t\t<div className={`rpc_json_editor ${className}`} style={{ height, ...style }}>\n\t\t\t{/* 顶部工具栏 */}\n\t\t\t{showToolbar && (\n\t\t\t\t<div className=\"rpc_json_editor_toolbar\">\n\t\t\t\t\t<div className=\"rpc_json_editor_title\">\n\t\t\t\t\t\t<span>{'{ }'}</span>\n\t\t\t\t\t\t<span>JSON {readOnly ? 'Viewer' : 'Editor'}</span>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"rpc_json_editor_actions\">\n\t\t\t\t\t\t{!readOnly && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclassName=\"rpc_json_editor_btn\"\n\t\t\t\t\t\t\t\t\tonClick={handleFormat}\n\t\t\t\t\t\t\t\t\ttitle=\"美化格式化\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t美化\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclassName=\"rpc_json_editor_btn\"\n\t\t\t\t\t\t\t\t\tonClick={handleMinify}\n\t\t\t\t\t\t\t\t\ttitle=\"单行压缩\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t压缩\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<CopyButton mode=\"icon\" text={text} tooltip=\"复制 JSON\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* 主体编辑区域 */}\n\t\t\t<div className=\"rpc_json_editor_body\">\n\t\t\t\t{showLineNumbers && (\n\t\t\t\t\t<div className=\"rpc_json_editor_line_numbers\">\n\t\t\t\t\t\t{Array.from({ length: Math.max(1, lineCount) }).map((_, i) => (\n\t\t\t\t\t\t\t<div key={i}>{i + 1}</div>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t<textarea\n\t\t\t\t\tref={textareaRef}\n\t\t\t\t\tvalue={text}\n\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\tspellCheck={false}\n\t\t\t\t\tclassName=\"rpc_json_editor_textarea\"\n\t\t\t\t\tplaceholder=\"在此输入或粘贴 JSON 字符串...\"\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t{/* 底部状态栏 */}\n\t\t\t<div\n\t\t\t\tclassName={`rpc_json_editor_status_bar ${error ? 'rpc_json_editor_status_bar_error' : ''}`}\n\t\t\t>\n\t\t\t\t<span>{error ? `⚠️ ${error}` : '✓ JSON 格式有效'}</span>\n\t\t\t\t<span>\n\t\t\t\t\t{lineCount} 行 · {text.length} 字符\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default JsonEditor;\n"]}
1
+ {"version":3,"sources":["../JsonEditor/index.tsx"],"names":["useMemo","useState","useRef","useEffect","jsxs","jsx","Fragment","CopyButton_default"],"mappings":"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","file":"chunk-QP3RKA4J.cjs","sourcesContent":["import React, { useState, useRef, useEffect, useMemo, CSSProperties } from 'react';\nimport CopyButton from '../CopyButton';\nimport './index.less';\n\nexport interface JsonEditorProps {\n\t/** JSON 数据内容(可传 JSON 字符串或 Object 对象) */\n\tvalue?: string | object;\n\t/** 默认 JSON 数据内容 */\n\tdefaultValue?: string | object;\n\t/** 内容变化回调 */\n\tonChange?: (rawJson: string, parsedObject?: unknown) => void;\n\t/** 是否只读模式,默认为 false */\n\treadOnly?: boolean;\n\t/** 缩进空格数,默认为 2 */\n\tindent?: number;\n\t/** 编辑器高度,默认为 280 */\n\theight?: number | string;\n\t/** 是否展示行号,默认为 true */\n\tshowLineNumbers?: boolean;\n\t/** 是否展示顶部工具栏,默认为 true */\n\tshowToolbar?: boolean;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\n// 格式化初始传入值\nfunction normalizeJson(val?: string | object, indent: number = 2): string {\n\tif (val === undefined || val === null) return '{\\n \\n}';\n\tif (typeof val === 'object') {\n\t\ttry {\n\t\t\treturn JSON.stringify(val, null, indent);\n\t\t} catch {\n\t\t\treturn '{}';\n\t\t}\n\t}\n\treturn String(val);\n}\n\nconst JsonEditor: React.FC<JsonEditorProps> = ({\n\tvalue: controlledValue,\n\tdefaultValue,\n\tonChange,\n\treadOnly = false,\n\tindent = 2,\n\theight = 280,\n\tshowLineNumbers = true,\n\tshowToolbar = true,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst initialText = useMemo(() => {\n\t\treturn normalizeJson(controlledValue !== undefined ? controlledValue : defaultValue, indent);\n\t}, [controlledValue, defaultValue, indent]);\n\n\tconst [text, setText] = useState<string>(initialText);\n\tconst [error, setError] = useState<string | null>(null);\n\n\tconst textareaRef = useRef<HTMLTextAreaElement>(null);\n\n\tuseEffect(() => {\n\t\tif (controlledValue !== undefined) {\n\t\t\tconst next = normalizeJson(controlledValue, indent);\n\t\t\tsetText(next);\n\t\t\tvalidate(next);\n\t\t}\n\t}, [controlledValue, indent]);\n\n\t// 校验 JSON\n\tconst validate = (content: string) => {\n\t\tif (!content.trim()) {\n\t\t\tsetError(null);\n\t\t\treturn true;\n\t\t}\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(content);\n\t\t\tsetError(null);\n\t\t\treturn parsed;\n\t\t} catch (err: any) {\n\t\t\tsetError(err.message || 'JSON 语法错误');\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tconst handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n\t\tconst nextText = e.target.value;\n\t\tsetText(nextText);\n\t\tconst parsed = validate(nextText);\n\t\tonChange?.(nextText, parsed !== false ? parsed : undefined);\n\t};\n\n\t// 一键美化格式化\n\tconst handleFormat = () => {\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(text);\n\t\t\tconst formatted = JSON.stringify(parsed, null, indent);\n\t\t\tsetText(formatted);\n\t\t\tsetError(null);\n\t\t\tonChange?.(formatted, parsed);\n\t\t} catch (err: any) {\n\t\t\tsetError(err.message || '格式化失败: 语法不合法');\n\t\t}\n\t};\n\n\t// 一键压缩 (Minify)\n\tconst handleMinify = () => {\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(text);\n\t\t\tconst minified = JSON.stringify(parsed);\n\t\t\tsetText(minified);\n\t\t\tsetError(null);\n\t\t\tonChange?.(minified, parsed);\n\t\t} catch (err: any) {\n\t\t\tsetError(err.message || '压缩失败: 语法不合法');\n\t\t}\n\t};\n\n\t// 处理 Tab 键缩进\n\tconst handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n\t\tif (e.key === 'Tab') {\n\t\t\te.preventDefault();\n\t\t\tconst textarea = textareaRef.current;\n\t\t\tif (!textarea) return;\n\n\t\t\tconst start = textarea.selectionStart;\n\t\t\tconst end = textarea.selectionEnd;\n\t\t\tconst spaces = ' '.repeat(indent);\n\n\t\t\tconst newText = text.substring(0, start) + spaces + text.substring(end);\n\t\t\tsetText(newText);\n\t\t\tvalidate(newText);\n\n\t\t\tsetTimeout(() => {\n\t\t\t\ttextarea.selectionStart = textarea.selectionEnd = start + indent;\n\t\t\t}, 0);\n\t\t}\n\t};\n\n\t// 计算总行数\n\tconst lineCount = useMemo(() => {\n\t\treturn text.split('\\n').length;\n\t}, [text]);\n\n\treturn (\n\t\t<div className={`rpc_json_editor ${className}`} style={{ height, ...style }}>\n\t\t\t{/* 顶部工具栏 */}\n\t\t\t{showToolbar && (\n\t\t\t\t<div className=\"rpc_json_editor_toolbar\">\n\t\t\t\t\t<div className=\"rpc_json_editor_title\">\n\t\t\t\t\t\t<span>{'{ }'}</span>\n\t\t\t\t\t\t<span>JSON {readOnly ? 'Viewer' : 'Editor'}</span>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"rpc_json_editor_actions\">\n\t\t\t\t\t\t{!readOnly && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclassName=\"rpc_json_editor_btn\"\n\t\t\t\t\t\t\t\t\tonClick={handleFormat}\n\t\t\t\t\t\t\t\t\ttitle=\"美化格式化\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t美化\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclassName=\"rpc_json_editor_btn\"\n\t\t\t\t\t\t\t\t\tonClick={handleMinify}\n\t\t\t\t\t\t\t\t\ttitle=\"单行压缩\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t压缩\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<CopyButton mode=\"icon\" text={text} tooltip=\"复制 JSON\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* 主体编辑区域 */}\n\t\t\t<div className=\"rpc_json_editor_body\">\n\t\t\t\t{showLineNumbers && (\n\t\t\t\t\t<div className=\"rpc_json_editor_line_numbers\">\n\t\t\t\t\t\t{Array.from({ length: Math.max(1, lineCount) }).map((_, i) => (\n\t\t\t\t\t\t\t<div key={i}>{i + 1}</div>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t<textarea\n\t\t\t\t\tref={textareaRef}\n\t\t\t\t\tvalue={text}\n\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\tspellCheck={false}\n\t\t\t\t\tclassName=\"rpc_json_editor_textarea\"\n\t\t\t\t\tplaceholder=\"在此输入或粘贴 JSON 字符串...\"\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t{/* 底部状态栏 */}\n\t\t\t<div\n\t\t\t\tclassName={`rpc_json_editor_status_bar ${error ? 'rpc_json_editor_status_bar_error' : ''}`}\n\t\t\t>\n\t\t\t\t<span>{error ? `⚠️ ${error}` : '✓ JSON 格式有效'}</span>\n\t\t\t\t<span>\n\t\t\t\t\t{lineCount} 行 · {text.length} 字符\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default JsonEditor;\n"]}
@@ -1,4 +1,4 @@
1
- import { ZoomInOutlined, ZoomOutOutlined, RotateRightOutlined, CloseOutlined, CheckOutlined } from './chunk-ISUXPTLV.js';
1
+ import { ZoomInOutlined, ZoomOutOutlined, RotateRightOutlined, CloseOutlined, CheckOutlined } from './chunk-2IDVNTKR.js';
2
2
  import { forwardRef, useRef, useState, useEffect, useCallback, useImperativeHandle } from 'react';
3
3
  import ReactDOM from 'react-dom';
4
4
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -311,5 +311,5 @@ ImageCropper.displayName = "ImageCropper";
311
311
  var ImageCropper_default = ImageCropper;
312
312
 
313
313
  export { ImageCropper_default };
314
- //# sourceMappingURL=chunk-OKCQZO5E.js.map
315
- //# sourceMappingURL=chunk-OKCQZO5E.js.map
314
+ //# sourceMappingURL=chunk-QRZ2GVVJ.js.map
315
+ //# sourceMappingURL=chunk-QRZ2GVVJ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../ImageCropper/index.tsx"],"names":["cropBox"],"mappings":"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","file":"chunk-OKCQZO5E.js","sourcesContent":["import React, {\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tuseCallback,\n\tuseImperativeHandle,\n\tforwardRef,\n\tReactNode,\n\tCSSProperties,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n\tRotateRightOutlined,\n\tZoomInOutlined,\n\tZoomOutOutlined,\n\tCloseOutlined,\n\tCheckOutlined,\n} from '../src/icons';\nimport './index.less';\n\nexport type CropShape = 'rect' | 'round';\n\nexport interface CropResult {\n\tdataURL: string;\n\tblob: Blob | null;\n\twidth: number;\n\theight: number;\n}\n\nexport interface ImageCropperRef {\n\t/** 获取当前裁剪结果(DataURL 与 Blob) */\n\tgetCroppedResult: (type?: string, quality?: number) => Promise<CropResult>;\n\t/** 顺时针旋转 90 度 */\n\trotate: (degree?: number) => void;\n\t/** 缩放图片 */\n\tzoom: (delta: number) => void;\n\t/** 重置所有变换参数 */\n\treset: () => void;\n}\n\nexport interface ImageCropperProps {\n\t/** 图片源地址或 Base64 字符串 */\n\tsrc: string;\n\t/** 裁剪框宽高比(如 1 代表 1:1 正方形,16/9 代表宽屏,0 代表自由矩形),默认为 1 */\n\taspectRatio?: number;\n\t/** 裁剪框形状:'rect' 矩形,'round' 圆形(适合头像),默认为 'rect' */\n\tshape?: CropShape;\n\t/** 是否以 Modal 模态弹窗形式展示,默认为 false */\n\tmodal?: boolean;\n\t/** Modal 模式下的标题,默认为 '图片裁剪' */\n\ttitle?: ReactNode;\n\t/** Modal 模式下的显隐受控状态 */\n\topen?: boolean;\n\t/** 确认裁剪回调 */\n\tonOk?: (result: CropResult) => void;\n\t/** 取消/关闭回调 */\n\tonCancel?: () => void;\n\t/** 容器高度(内联模式有效),默认为 360 */\n\theight?: number;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst ImageCropper = forwardRef<ImageCropperRef, ImageCropperProps>(\n\t(\n\t\t{\n\t\t\tsrc,\n\t\t\taspectRatio = 1,\n\t\t\tshape = 'rect',\n\t\t\tmodal = false,\n\t\t\ttitle = '图片裁剪',\n\t\t\topen = true,\n\t\t\tonOk,\n\t\t\tonCancel,\n\t\t\theight = 360,\n\t\t\tclassName = '',\n\t\t\tstyle,\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst canvasRef = useRef<HTMLCanvasElement>(null);\n\t\tconst containerRef = useRef<HTMLDivElement>(null);\n\t\tconst imgRef = useRef<HTMLImageElement | null>(null);\n\n\t\t// 图片变换参数\n\t\tconst [scale, setScale] = useState<number>(1);\n\t\tconst [rotateDeg, setRotateDeg] = useState<number>(0);\n\t\tconst [offset, setOffset] = useState<{ x: number; y: number }>({ x: 0, y: 0 });\n\t\tconst isDraggingRef = useRef<boolean>(false);\n\t\tconst dragStartRef = useRef<{ x: number; y: number }>({ x: 0, y: 0 });\n\n\t\t// 加载图片\n\t\tuseEffect(() => {\n\t\t\tif (!src) return;\n\t\t\tconst img = new Image();\n\t\t\timg.crossOrigin = 'anonymous';\n\t\t\timg.src = src;\n\t\t\timg.onload = () => {\n\t\t\t\timgRef.current = img;\n\t\t\t\t// 初始计算合适缩放比例\n\t\t\t\tsetScale(1);\n\t\t\t\tsetRotateDeg(0);\n\t\t\t\tsetOffset({ x: 0, y: 0 });\n\t\t\t\trenderCanvas(1, 0, { x: 0, y: 0 });\n\t\t\t};\n\t\t}, [src]);\n\n\t\t// 重新渲染 Canvas\n\t\tconst renderCanvas = useCallback(\n\t\t\t(curScale: number, curDeg: number, curOffset: { x: number; y: number }) => {\n\t\t\t\tconst canvas = canvasRef.current;\n\t\t\t\tconst img = imgRef.current;\n\t\t\t\tif (!canvas || !img) return;\n\n\t\t\t\tconst ctx = canvas.getContext('2d');\n\t\t\t\tif (!ctx) return;\n\n\t\t\t\tconst dpr = window.devicePixelRatio || 1;\n\t\t\t\tconst width = canvas.clientWidth || 400;\n\t\t\t\tconst canvasHeight = canvas.clientHeight || height;\n\n\t\t\t\tcanvas.width = width * dpr;\n\t\t\t\tcanvas.height = canvasHeight * dpr;\n\t\t\t\tctx.scale(dpr, dpr);\n\n\t\t\t\tctx.clearRect(0, 0, width, canvasHeight);\n\t\t\t\tctx.save();\n\n\t\t\t\t// 移动到中心点进行旋转、缩放与平移\n\t\t\t\tconst centerX = width / 2 + curOffset.x;\n\t\t\t\tconst centerY = canvasHeight / 2 + curOffset.y;\n\n\t\t\t\tctx.translate(centerX, centerY);\n\t\t\t\tctx.rotate((curDeg * Math.PI) / 180);\n\t\t\t\tctx.scale(curScale, curScale);\n\n\t\t\t\t// 居中绘制原始图像\n\t\t\t\tconst imgWidth = img.naturalWidth || img.width;\n\t\t\t\tconst imgHeight = img.naturalHeight || img.height;\n\n\t\t\t\t// 保持图像按比例自适应居中\n\t\t\t\tconst baseRatio = Math.min((width * 0.8) / imgWidth, (canvasHeight * 0.8) / imgHeight, 1);\n\t\t\t\tconst renderW = imgWidth * baseRatio;\n\t\t\t\tconst renderH = imgHeight * baseRatio;\n\n\t\t\t\tctx.drawImage(img, -renderW / 2, -renderH / 2, renderW, renderH);\n\t\t\t\tctx.restore();\n\t\t\t},\n\t\t\t[height],\n\t\t);\n\n\t\tuseEffect(() => {\n\t\t\trenderCanvas(scale, rotateDeg, offset);\n\t\t}, [scale, rotateDeg, offset, renderCanvas]);\n\n\t\t// 鼠标拖拽平移\n\t\tconst handleMouseDown = (e: React.MouseEvent) => {\n\t\t\tisDraggingRef.current = true;\n\t\t\tdragStartRef.current = { x: e.clientX - offset.x, y: e.clientY - offset.y };\n\t\t};\n\n\t\tconst handleMouseMove = (e: React.MouseEvent) => {\n\t\t\tif (!isDraggingRef.current) return;\n\t\t\tconst nextOffset = {\n\t\t\t\tx: e.clientX - dragStartRef.current.x,\n\t\t\t\ty: e.clientY - dragStartRef.current.y,\n\t\t\t};\n\t\t\tsetOffset(nextOffset);\n\t\t};\n\n\t\tconst handleMouseUp = () => {\n\t\t\tisDraggingRef.current = false;\n\t\t};\n\n\t\t// 滚轮缩放\n\t\tconst handleWheel = (e: React.WheelEvent) => {\n\t\t\te.preventDefault();\n\t\t\tconst zoomStep = e.deltaY < 0 ? 0.1 : -0.1;\n\t\t\tsetScale((prev) => Math.min(Math.max(0.2, prev + zoomStep), 5));\n\t\t};\n\n\t\t// 顺时针旋转\n\t\tconst handleRotate = (deg = 90) => {\n\t\t\tsetRotateDeg((prev) => (prev + deg) % 360);\n\t\t};\n\n\t\tconst handleZoom = (delta: number) => {\n\t\t\tsetScale((prev) => Math.min(Math.max(0.2, prev + delta), 5));\n\t\t};\n\n\t\tconst handleReset = () => {\n\t\t\tsetScale(1);\n\t\t\tsetRotateDeg(0);\n\t\t\tsetOffset({ x: 0, y: 0 });\n\t\t};\n\n\t\t// 计算裁剪框尺寸与位置\n\t\tconst getCropBoxRect = () => {\n\t\t\tconst container = containerRef.current;\n\t\t\tconst containerW = container?.clientWidth || 400;\n\t\t\tconst containerH = height;\n\n\t\t\tlet boxW = Math.min(containerW * 0.7, 240);\n\t\t\tlet boxH = aspectRatio ? boxW / aspectRatio : boxW;\n\n\t\t\tif (boxH > containerH * 0.8) {\n\t\t\t\tboxH = containerH * 0.8;\n\t\t\t\tboxW = aspectRatio ? boxH * aspectRatio : boxH;\n\t\t\t}\n\n\t\t\tconst boxLeft = (containerW - boxW) / 2;\n\t\t\tconst boxTop = (containerH - boxH) / 2;\n\n\t\t\treturn { left: boxLeft, top: boxTop, width: boxW, height: boxH };\n\t\t};\n\n\t\t// 提取裁剪区域生成图片\n\t\tconst getCroppedResult = useCallback(\n\t\t\tasync (type = 'image/png', quality = 0.92): Promise<CropResult> => {\n\t\t\t\tconst canvas = canvasRef.current;\n\t\t\t\tif (!canvas) throw new Error('Canvas not found');\n\n\t\t\t\tconst cropBox = getCropBoxRect();\n\t\t\t\tconst dpr = window.devicePixelRatio || 1;\n\n\t\t\t\tconst cropCanvas = document.createElement('canvas');\n\t\t\t\tcropCanvas.width = cropBox.width * dpr;\n\t\t\t\tcropCanvas.height = cropBox.height * dpr;\n\t\t\t\tconst cropCtx = cropCanvas.getContext('2d');\n\n\t\t\t\tif (!cropCtx) throw new Error('Failed to create canvas context');\n\n\t\t\t\tif (shape === 'round') {\n\t\t\t\t\tcropCtx.beginPath();\n\t\t\t\t\tcropCtx.arc(\n\t\t\t\t\t\t(cropBox.width * dpr) / 2,\n\t\t\t\t\t\t(cropBox.height * dpr) / 2,\n\t\t\t\t\t\t(cropBox.width * dpr) / 2,\n\t\t\t\t\t\t0,\n\t\t\t\t\t\tMath.PI * 2,\n\t\t\t\t\t);\n\t\t\t\t\tcropCtx.closePath();\n\t\t\t\t\tcropCtx.clip();\n\t\t\t\t}\n\n\t\t\t\tcropCtx.drawImage(\n\t\t\t\t\tcanvas,\n\t\t\t\t\tcropBox.left * dpr,\n\t\t\t\t\tcropBox.top * dpr,\n\t\t\t\t\tcropBox.width * dpr,\n\t\t\t\t\tcropBox.height * dpr,\n\t\t\t\t\t0,\n\t\t\t\t\t0,\n\t\t\t\t\tcropBox.width * dpr,\n\t\t\t\t\tcropBox.height * dpr,\n\t\t\t\t);\n\n\t\t\t\tconst dataURL = cropCanvas.toDataURL(type, quality);\n\t\t\t\tconst blob: Blob | null = await new Promise((resolve) => {\n\t\t\t\t\tcropCanvas.toBlob((b) => resolve(b), type, quality);\n\t\t\t\t});\n\n\t\t\t\treturn {\n\t\t\t\t\tdataURL,\n\t\t\t\t\tblob,\n\t\t\t\t\twidth: Math.round(cropBox.width),\n\t\t\t\t\theight: Math.round(cropBox.height),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[shape, aspectRatio, height],\n\t\t);\n\n\t\tuseImperativeHandle(\n\t\t\tref,\n\t\t\t() => ({\n\t\t\t\tgetCroppedResult,\n\t\t\t\trotate: handleRotate,\n\t\t\t\tzoom: handleZoom,\n\t\t\t\treset: handleReset,\n\t\t\t}),\n\t\t\t[getCroppedResult],\n\t\t);\n\n\t\tconst handleConfirm = async () => {\n\t\t\tconst res = await getCroppedResult();\n\t\t\tonOk?.(res);\n\t\t};\n\n\t\tconst cropBox = getCropBoxRect();\n\n\t\tconst coreContent = (\n\t\t\t<div className={`rpc_image_cropper ${className}`} style={{ ...style }}>\n\t\t\t\t<div\n\t\t\t\t\tref={containerRef}\n\t\t\t\t\tclassName=\"rpc_image_cropper_canvas_wrap\"\n\t\t\t\t\tstyle={{ height }}\n\t\t\t\t\tonMouseDown={handleMouseDown}\n\t\t\t\t\tonMouseMove={handleMouseMove}\n\t\t\t\t\tonMouseUp={handleMouseUp}\n\t\t\t\t\tonMouseLeave={handleMouseUp}\n\t\t\t\t\tonWheel={handleWheel}\n\t\t\t\t>\n\t\t\t\t\t<canvas\n\t\t\t\t\t\tref={canvasRef}\n\t\t\t\t\t\tclassName=\"rpc_image_cropper_canvas\"\n\t\t\t\t\t\tstyle={{ width: '100%', height }}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{/* 裁剪框与遮罩 */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={`rpc_image_cropper_crop_box ${\n\t\t\t\t\t\t\tshape === 'round' ? 'rpc_image_cropper_crop_box_round' : ''\n\t\t\t\t\t\t}`}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tleft: `${cropBox.left}px`,\n\t\t\t\t\t\t\ttop: `${cropBox.top}px`,\n\t\t\t\t\t\t\twidth: `${cropBox.width}px`,\n\t\t\t\t\t\t\theight: `${cropBox.height}px`,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{shape === 'rect' && <div className=\"rpc_image_cropper_crop_box_grid\" />}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{/* 底部工具栏 */}\n\t\t\t\t<div className=\"rpc_image_cropper_toolbar\">\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName=\"rpc_image_cropper_btn\"\n\t\t\t\t\t\tonClick={() => handleZoom(0.1)}\n\t\t\t\t\t\ttitle=\"放大\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ZoomInOutlined /> 放大\n\t\t\t\t\t</button>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName=\"rpc_image_cropper_btn\"\n\t\t\t\t\t\tonClick={() => handleZoom(-0.1)}\n\t\t\t\t\t\ttitle=\"缩小\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ZoomOutOutlined /> 缩小\n\t\t\t\t\t</button>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName=\"rpc_image_cropper_btn\"\n\t\t\t\t\t\tonClick={() => handleRotate(90)}\n\t\t\t\t\t\ttitle=\"顺时针旋转90°\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<RotateRightOutlined /> 旋转\n\t\t\t\t\t</button>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName=\"rpc_image_cropper_btn\"\n\t\t\t\t\t\tonClick={handleReset}\n\t\t\t\t\t\ttitle=\"重置\"\n\t\t\t\t\t>\n\t\t\t\t\t\t重置\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\n\t\tif (modal) {\n\t\t\tif (!open) return null;\n\t\t\treturn ReactDOM.createPortal(\n\t\t\t\t<div className=\"rpc_cropper_modal\" onClick={onCancel}>\n\t\t\t\t\t<div className=\"rpc_cropper_modal_card\" onClick={(e) => e.stopPropagation()}>\n\t\t\t\t\t\t<div className=\"rpc_cropper_modal_header\">\n\t\t\t\t\t\t\t<span>{title}</span>\n\t\t\t\t\t\t\t<CloseOutlined className=\"rpc_cropper_modal_close\" onClick={onCancel} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div style={{ padding: 16, background: '#141414' }}>{coreContent}</div>\n\t\t\t\t\t\t<div className=\"rpc_cropper_modal_footer\">\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_image_cropper_btn\"\n\t\t\t\t\t\t\t\tstyle={{ background: '#ffffff', color: '#262626', borderColor: '#d9d9d9' }}\n\t\t\t\t\t\t\t\tonClick={onCancel}\n\t\t\t\t\t\t\t>\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\t<button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tclassName=\"rpc_image_cropper_btn rpc_image_cropper_btn_primary\"\n\t\t\t\t\t\t\t\tonClick={handleConfirm}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<CheckOutlined /> 确定裁剪\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>,\n\t\t\t\tdocument.body,\n\t\t\t);\n\t\t}\n\n\t\treturn coreContent;\n\t},\n);\n\nImageCropper.displayName = 'ImageCropper';\n\nexport default ImageCropper;\n"]}
1
+ {"version":3,"sources":["../ImageCropper/index.tsx"],"names":["cropBox"],"mappings":"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","file":"chunk-QRZ2GVVJ.js","sourcesContent":["import React, {\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tuseCallback,\n\tuseImperativeHandle,\n\tforwardRef,\n\tReactNode,\n\tCSSProperties,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n\tRotateRightOutlined,\n\tZoomInOutlined,\n\tZoomOutOutlined,\n\tCloseOutlined,\n\tCheckOutlined,\n} from '../src/icons';\nimport './index.less';\n\nexport type CropShape = 'rect' | 'round';\n\nexport interface CropResult {\n\tdataURL: string;\n\tblob: Blob | null;\n\twidth: number;\n\theight: number;\n}\n\nexport interface ImageCropperRef {\n\t/** 获取当前裁剪结果(DataURL 与 Blob) */\n\tgetCroppedResult: (type?: string, quality?: number) => Promise<CropResult>;\n\t/** 顺时针旋转 90 度 */\n\trotate: (degree?: number) => void;\n\t/** 缩放图片 */\n\tzoom: (delta: number) => void;\n\t/** 重置所有变换参数 */\n\treset: () => void;\n}\n\nexport interface ImageCropperProps {\n\t/** 图片源地址或 Base64 字符串 */\n\tsrc: string;\n\t/** 裁剪框宽高比(如 1 代表 1:1 正方形,16/9 代表宽屏,0 代表自由矩形),默认为 1 */\n\taspectRatio?: number;\n\t/** 裁剪框形状:'rect' 矩形,'round' 圆形(适合头像),默认为 'rect' */\n\tshape?: CropShape;\n\t/** 是否以 Modal 模态弹窗形式展示,默认为 false */\n\tmodal?: boolean;\n\t/** Modal 模式下的标题,默认为 '图片裁剪' */\n\ttitle?: ReactNode;\n\t/** Modal 模式下的显隐受控状态 */\n\topen?: boolean;\n\t/** 确认裁剪回调 */\n\tonOk?: (result: CropResult) => void;\n\t/** 取消/关闭回调 */\n\tonCancel?: () => void;\n\t/** 容器高度(内联模式有效),默认为 360 */\n\theight?: number;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst ImageCropper = forwardRef<ImageCropperRef, ImageCropperProps>(\n\t(\n\t\t{\n\t\t\tsrc,\n\t\t\taspectRatio = 1,\n\t\t\tshape = 'rect',\n\t\t\tmodal = false,\n\t\t\ttitle = '图片裁剪',\n\t\t\topen = true,\n\t\t\tonOk,\n\t\t\tonCancel,\n\t\t\theight = 360,\n\t\t\tclassName = '',\n\t\t\tstyle,\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst canvasRef = useRef<HTMLCanvasElement>(null);\n\t\tconst containerRef = useRef<HTMLDivElement>(null);\n\t\tconst imgRef = useRef<HTMLImageElement | null>(null);\n\n\t\t// 图片变换参数\n\t\tconst [scale, setScale] = useState<number>(1);\n\t\tconst [rotateDeg, setRotateDeg] = useState<number>(0);\n\t\tconst [offset, setOffset] = useState<{ x: number; y: number }>({ x: 0, y: 0 });\n\t\tconst isDraggingRef = useRef<boolean>(false);\n\t\tconst dragStartRef = useRef<{ x: number; y: number }>({ x: 0, y: 0 });\n\n\t\t// 加载图片\n\t\tuseEffect(() => {\n\t\t\tif (!src) return;\n\t\t\tconst img = new Image();\n\t\t\timg.crossOrigin = 'anonymous';\n\t\t\timg.src = src;\n\t\t\timg.onload = () => {\n\t\t\t\timgRef.current = img;\n\t\t\t\t// 初始计算合适缩放比例\n\t\t\t\tsetScale(1);\n\t\t\t\tsetRotateDeg(0);\n\t\t\t\tsetOffset({ x: 0, y: 0 });\n\t\t\t\trenderCanvas(1, 0, { x: 0, y: 0 });\n\t\t\t};\n\t\t}, [src]);\n\n\t\t// 重新渲染 Canvas\n\t\tconst renderCanvas = useCallback(\n\t\t\t(curScale: number, curDeg: number, curOffset: { x: number; y: number }) => {\n\t\t\t\tconst canvas = canvasRef.current;\n\t\t\t\tconst img = imgRef.current;\n\t\t\t\tif (!canvas || !img) return;\n\n\t\t\t\tconst ctx = canvas.getContext('2d');\n\t\t\t\tif (!ctx) return;\n\n\t\t\t\tconst dpr = window.devicePixelRatio || 1;\n\t\t\t\tconst width = canvas.clientWidth || 400;\n\t\t\t\tconst canvasHeight = canvas.clientHeight || height;\n\n\t\t\t\tcanvas.width = width * dpr;\n\t\t\t\tcanvas.height = canvasHeight * dpr;\n\t\t\t\tctx.scale(dpr, dpr);\n\n\t\t\t\tctx.clearRect(0, 0, width, canvasHeight);\n\t\t\t\tctx.save();\n\n\t\t\t\t// 移动到中心点进行旋转、缩放与平移\n\t\t\t\tconst centerX = width / 2 + curOffset.x;\n\t\t\t\tconst centerY = canvasHeight / 2 + curOffset.y;\n\n\t\t\t\tctx.translate(centerX, centerY);\n\t\t\t\tctx.rotate((curDeg * Math.PI) / 180);\n\t\t\t\tctx.scale(curScale, curScale);\n\n\t\t\t\t// 居中绘制原始图像\n\t\t\t\tconst imgWidth = img.naturalWidth || img.width;\n\t\t\t\tconst imgHeight = img.naturalHeight || img.height;\n\n\t\t\t\t// 保持图像按比例自适应居中\n\t\t\t\tconst baseRatio = Math.min((width * 0.8) / imgWidth, (canvasHeight * 0.8) / imgHeight, 1);\n\t\t\t\tconst renderW = imgWidth * baseRatio;\n\t\t\t\tconst renderH = imgHeight * baseRatio;\n\n\t\t\t\tctx.drawImage(img, -renderW / 2, -renderH / 2, renderW, renderH);\n\t\t\t\tctx.restore();\n\t\t\t},\n\t\t\t[height],\n\t\t);\n\n\t\tuseEffect(() => {\n\t\t\trenderCanvas(scale, rotateDeg, offset);\n\t\t}, [scale, rotateDeg, offset, renderCanvas]);\n\n\t\t// 鼠标拖拽平移\n\t\tconst handleMouseDown = (e: React.MouseEvent) => {\n\t\t\tisDraggingRef.current = true;\n\t\t\tdragStartRef.current = { x: e.clientX - offset.x, y: e.clientY - offset.y };\n\t\t};\n\n\t\tconst handleMouseMove = (e: React.MouseEvent) => {\n\t\t\tif (!isDraggingRef.current) return;\n\t\t\tconst nextOffset = {\n\t\t\t\tx: e.clientX - dragStartRef.current.x,\n\t\t\t\ty: e.clientY - dragStartRef.current.y,\n\t\t\t};\n\t\t\tsetOffset(nextOffset);\n\t\t};\n\n\t\tconst handleMouseUp = () => {\n\t\t\tisDraggingRef.current = false;\n\t\t};\n\n\t\t// 滚轮缩放\n\t\tconst handleWheel = (e: React.WheelEvent) => {\n\t\t\te.preventDefault();\n\t\t\tconst zoomStep = e.deltaY < 0 ? 0.1 : -0.1;\n\t\t\tsetScale((prev) => Math.min(Math.max(0.2, prev + zoomStep), 5));\n\t\t};\n\n\t\t// 顺时针旋转\n\t\tconst handleRotate = (deg = 90) => {\n\t\t\tsetRotateDeg((prev) => (prev + deg) % 360);\n\t\t};\n\n\t\tconst handleZoom = (delta: number) => {\n\t\t\tsetScale((prev) => Math.min(Math.max(0.2, prev + delta), 5));\n\t\t};\n\n\t\tconst handleReset = () => {\n\t\t\tsetScale(1);\n\t\t\tsetRotateDeg(0);\n\t\t\tsetOffset({ x: 0, y: 0 });\n\t\t};\n\n\t\t// 计算裁剪框尺寸与位置\n\t\tconst getCropBoxRect = () => {\n\t\t\tconst container = containerRef.current;\n\t\t\tconst containerW = container?.clientWidth || 400;\n\t\t\tconst containerH = height;\n\n\t\t\tlet boxW = Math.min(containerW * 0.7, 240);\n\t\t\tlet boxH = aspectRatio ? boxW / aspectRatio : boxW;\n\n\t\t\tif (boxH > containerH * 0.8) {\n\t\t\t\tboxH = containerH * 0.8;\n\t\t\t\tboxW = aspectRatio ? boxH * aspectRatio : boxH;\n\t\t\t}\n\n\t\t\tconst boxLeft = (containerW - boxW) / 2;\n\t\t\tconst boxTop = (containerH - boxH) / 2;\n\n\t\t\treturn { left: boxLeft, top: boxTop, width: boxW, height: boxH };\n\t\t};\n\n\t\t// 提取裁剪区域生成图片\n\t\tconst getCroppedResult = useCallback(\n\t\t\tasync (type = 'image/png', quality = 0.92): Promise<CropResult> => {\n\t\t\t\tconst canvas = canvasRef.current;\n\t\t\t\tif (!canvas) throw new Error('Canvas not found');\n\n\t\t\t\tconst cropBox = getCropBoxRect();\n\t\t\t\tconst dpr = window.devicePixelRatio || 1;\n\n\t\t\t\tconst cropCanvas = document.createElement('canvas');\n\t\t\t\tcropCanvas.width = cropBox.width * dpr;\n\t\t\t\tcropCanvas.height = cropBox.height * dpr;\n\t\t\t\tconst cropCtx = cropCanvas.getContext('2d');\n\n\t\t\t\tif (!cropCtx) throw new Error('Failed to create canvas context');\n\n\t\t\t\tif (shape === 'round') {\n\t\t\t\t\tcropCtx.beginPath();\n\t\t\t\t\tcropCtx.arc(\n\t\t\t\t\t\t(cropBox.width * dpr) / 2,\n\t\t\t\t\t\t(cropBox.height * dpr) / 2,\n\t\t\t\t\t\t(cropBox.width * dpr) / 2,\n\t\t\t\t\t\t0,\n\t\t\t\t\t\tMath.PI * 2,\n\t\t\t\t\t);\n\t\t\t\t\tcropCtx.closePath();\n\t\t\t\t\tcropCtx.clip();\n\t\t\t\t}\n\n\t\t\t\tcropCtx.drawImage(\n\t\t\t\t\tcanvas,\n\t\t\t\t\tcropBox.left * dpr,\n\t\t\t\t\tcropBox.top * dpr,\n\t\t\t\t\tcropBox.width * dpr,\n\t\t\t\t\tcropBox.height * dpr,\n\t\t\t\t\t0,\n\t\t\t\t\t0,\n\t\t\t\t\tcropBox.width * dpr,\n\t\t\t\t\tcropBox.height * dpr,\n\t\t\t\t);\n\n\t\t\t\tconst dataURL = cropCanvas.toDataURL(type, quality);\n\t\t\t\tconst blob: Blob | null = await new Promise((resolve) => {\n\t\t\t\t\tcropCanvas.toBlob((b) => resolve(b), type, quality);\n\t\t\t\t});\n\n\t\t\t\treturn {\n\t\t\t\t\tdataURL,\n\t\t\t\t\tblob,\n\t\t\t\t\twidth: Math.round(cropBox.width),\n\t\t\t\t\theight: Math.round(cropBox.height),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[shape, aspectRatio, height],\n\t\t);\n\n\t\tuseImperativeHandle(\n\t\t\tref,\n\t\t\t() => ({\n\t\t\t\tgetCroppedResult,\n\t\t\t\trotate: handleRotate,\n\t\t\t\tzoom: handleZoom,\n\t\t\t\treset: handleReset,\n\t\t\t}),\n\t\t\t[getCroppedResult],\n\t\t);\n\n\t\tconst handleConfirm = async () => {\n\t\t\tconst res = await getCroppedResult();\n\t\t\tonOk?.(res);\n\t\t};\n\n\t\tconst cropBox = getCropBoxRect();\n\n\t\tconst coreContent = (\n\t\t\t<div className={`rpc_image_cropper ${className}`} style={{ ...style }}>\n\t\t\t\t<div\n\t\t\t\t\tref={containerRef}\n\t\t\t\t\tclassName=\"rpc_image_cropper_canvas_wrap\"\n\t\t\t\t\tstyle={{ height }}\n\t\t\t\t\tonMouseDown={handleMouseDown}\n\t\t\t\t\tonMouseMove={handleMouseMove}\n\t\t\t\t\tonMouseUp={handleMouseUp}\n\t\t\t\t\tonMouseLeave={handleMouseUp}\n\t\t\t\t\tonWheel={handleWheel}\n\t\t\t\t>\n\t\t\t\t\t<canvas\n\t\t\t\t\t\tref={canvasRef}\n\t\t\t\t\t\tclassName=\"rpc_image_cropper_canvas\"\n\t\t\t\t\t\tstyle={{ width: '100%', height }}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{/* 裁剪框与遮罩 */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={`rpc_image_cropper_crop_box ${\n\t\t\t\t\t\t\tshape === 'round' ? 'rpc_image_cropper_crop_box_round' : ''\n\t\t\t\t\t\t}`}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tleft: `${cropBox.left}px`,\n\t\t\t\t\t\t\ttop: `${cropBox.top}px`,\n\t\t\t\t\t\t\twidth: `${cropBox.width}px`,\n\t\t\t\t\t\t\theight: `${cropBox.height}px`,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{shape === 'rect' && <div className=\"rpc_image_cropper_crop_box_grid\" />}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{/* 底部工具栏 */}\n\t\t\t\t<div className=\"rpc_image_cropper_toolbar\">\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName=\"rpc_image_cropper_btn\"\n\t\t\t\t\t\tonClick={() => handleZoom(0.1)}\n\t\t\t\t\t\ttitle=\"放大\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ZoomInOutlined /> 放大\n\t\t\t\t\t</button>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName=\"rpc_image_cropper_btn\"\n\t\t\t\t\t\tonClick={() => handleZoom(-0.1)}\n\t\t\t\t\t\ttitle=\"缩小\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ZoomOutOutlined /> 缩小\n\t\t\t\t\t</button>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName=\"rpc_image_cropper_btn\"\n\t\t\t\t\t\tonClick={() => handleRotate(90)}\n\t\t\t\t\t\ttitle=\"顺时针旋转90°\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<RotateRightOutlined /> 旋转\n\t\t\t\t\t</button>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName=\"rpc_image_cropper_btn\"\n\t\t\t\t\t\tonClick={handleReset}\n\t\t\t\t\t\ttitle=\"重置\"\n\t\t\t\t\t>\n\t\t\t\t\t\t重置\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\n\t\tif (modal) {\n\t\t\tif (!open) return null;\n\t\t\treturn ReactDOM.createPortal(\n\t\t\t\t<div className=\"rpc_cropper_modal\" onClick={onCancel}>\n\t\t\t\t\t<div className=\"rpc_cropper_modal_card\" onClick={(e) => e.stopPropagation()}>\n\t\t\t\t\t\t<div className=\"rpc_cropper_modal_header\">\n\t\t\t\t\t\t\t<span>{title}</span>\n\t\t\t\t\t\t\t<CloseOutlined className=\"rpc_cropper_modal_close\" onClick={onCancel} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div style={{ padding: 16, background: '#141414' }}>{coreContent}</div>\n\t\t\t\t\t\t<div className=\"rpc_cropper_modal_footer\">\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_image_cropper_btn\"\n\t\t\t\t\t\t\t\tstyle={{ background: '#ffffff', color: '#262626', borderColor: '#d9d9d9' }}\n\t\t\t\t\t\t\t\tonClick={onCancel}\n\t\t\t\t\t\t\t>\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\t<button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tclassName=\"rpc_image_cropper_btn rpc_image_cropper_btn_primary\"\n\t\t\t\t\t\t\t\tonClick={handleConfirm}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<CheckOutlined /> 确定裁剪\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>,\n\t\t\t\tdocument.body,\n\t\t\t);\n\t\t}\n\n\t\treturn coreContent;\n\t},\n);\n\nImageCropper.displayName = 'ImageCropper';\n\nexport default ImageCropper;\n"]}
@@ -500,13 +500,107 @@ var ReloadOutlined = ({
500
500
  children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 96 512 96 282.2 96 96 282.2 96 512s186.2 416 416 416c196.4 0 361.3-136.2 404.7-319.4 1.2-5.1-1.9-10.2-7.1-11.4l-62.4-14.7c-5.1-1.2-10.2 1.9-11.4 7.1C800.7 724.8 667.6 832 512 832c-176.7 0-320-143.3-320-320s143.3-320 320-320c112.5 0 211.3 58 268.4 146.4l-75.1 58.7c-5.3 4.1-3.4 12.6 3.1 14.1l197.8 45.4c4.6 1.1 9.1-2.4 9.1-7.1l-1.9-202.9c0-6.6-8.2-9.7-12.7-4.9z" })
501
501
  }
502
502
  );
503
+ var CodeSandboxOutlined = ({ style, className, onClick }) => /* @__PURE__ */ jsxRuntime.jsx(
504
+ "svg",
505
+ {
506
+ viewBox: "0 0 1024 1024",
507
+ focusable: "false",
508
+ width: "1em",
509
+ height: "1em",
510
+ fill: "currentColor",
511
+ "aria-hidden": "true",
512
+ style: { ...baseStyle, ...style },
513
+ className,
514
+ onClick,
515
+ children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M959.8 274.7L527.9 25.5c-9.8-5.6-21.9-5.6-31.7 0L64.2 274.7c-9.9 5.7-16.1 16.3-16.1 27.7v499c0 11.4 6.1 22 16.1 27.7l432 249.2c4.9 2.8 10.4 4.3 15.9 4.3s11-1.4 15.9-4.3l432-249.2c9.9-5.7 16.1-16.3 16.1-27.7v-499c0-11.4-6.2-22-16.3-27.7zM512 100.8l363.6 209.9-146.9 84.8-363.6-209.9L512 100.8zM476 121.6v239.5L148.6 550.5V310.8L476 121.6zM112 590.2l364 210.2v240.8L112 831V590.2zM548 1041.2V800.4l364-210.2v240.8l-364 210.2zM911.4 550.5L548 339.7V100.2l363.4 209.8v240.5z" })
516
+ }
517
+ );
518
+ var CodePenOutlined = ({ style, className, onClick }) => /* @__PURE__ */ jsxRuntime.jsx(
519
+ "svg",
520
+ {
521
+ viewBox: "0 0 1024 1024",
522
+ focusable: "false",
523
+ width: "1em",
524
+ height: "1em",
525
+ fill: "currentColor",
526
+ "aria-hidden": "true",
527
+ style: { ...baseStyle, ...style },
528
+ className,
529
+ onClick,
530
+ children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M912 360L536 109.3c-14.7-9.8-35.3-9.8-50 0L112 360c-10.7 7.1-16 19.3-16 32v240c0 12.7 5.3 24.9 16 32l374 250.7c14.7 9.8 35.3 9.8 50 0l376-250.7c10.7-7.1 16-19.3 16-32V392c0-12.7-5.3-24.9-16-32zM512 195.4l280.9 187.3L670 464.6 512 359.3V195.4zM476 359.3L318 464.6 195.1 382.7 476 195.4v163.9zM160 441.2l98.5 65.7L160 572.6V441.2zM476 828.6L195.1 641.3 318 559.4 476 664.7v163.9zm36-248.8L382.8 512 512 425.8l129.2 86.2L512 579.8zm0 248.8V664.7l158-105.3 122.9 81.9L512 828.6zm352-256l-98.5-65.7 98.5-65.7v131.4z" })
531
+ }
532
+ );
533
+ var ThunderboltOutlined = ({ style, className, onClick }) => /* @__PURE__ */ jsxRuntime.jsx(
534
+ "svg",
535
+ {
536
+ viewBox: "64 64 896 896",
537
+ focusable: "false",
538
+ width: "1em",
539
+ height: "1em",
540
+ fill: "currentColor",
541
+ "aria-hidden": "true",
542
+ style: { ...baseStyle, ...style },
543
+ className,
544
+ onClick,
545
+ children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.6L183.1 915c-4.1 5.3-.4 13 6.3 13h342.7c2.8 0 5.5-1.5 6.9-4L854.9 371.3c3.1-5.3-.7-12-6.9-12z" })
546
+ }
547
+ );
548
+ var CodeOutlined = ({ style, className, onClick }) => /* @__PURE__ */ jsxRuntime.jsx(
549
+ "svg",
550
+ {
551
+ viewBox: "64 64 896 896",
552
+ focusable: "false",
553
+ width: "1em",
554
+ height: "1em",
555
+ fill: "currentColor",
556
+ "aria-hidden": "true",
557
+ style: { ...baseStyle, ...style },
558
+ className,
559
+ onClick,
560
+ children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M866.9 499.1L747.3 380.7c-6.2-6.2-16.4-6.2-22.6 0l-45.2 45.2c-6.2 6.2-6.2 16.4 0 22.6l75.4 75.4-75.4 75.4c-6.2 6.2-6.2 16.4 0 22.6l45.2 45.2c6.2 6.2 16.4 6.2 22.6 0l119.6-118.4a15.87 15.87 0 000-22.6zM344.5 448.5l-75.4-75.4c-6.2-6.2-16.4-6.2-22.6 0L126.9 491.5a15.87 15.87 0 000 22.6l119.6 118.4c6.2 6.2 16.4 6.2 22.6 0l45.2-45.2c6.2-6.2 6.2-16.4 0-22.6l-75.4-75.4 75.4-75.4c6.2-6.2 6.2-16.4 0-22.6l-45.2-45.2zM562.9 270.8c-7.9-3.2-16.9.7-20.1 8.6L378.1 729.1c-3.2 7.9.7 16.9 8.6 20.1l41.5 16.6c7.9 3.2 16.9-.7 20.1-8.6l164.7-449.7c3.2-7.9-.7-16.9-8.6-20.1l-41.5-16.6z" })
561
+ }
562
+ );
563
+ var ExportOutlined = ({ style, className, onClick }) => /* @__PURE__ */ jsxRuntime.jsx(
564
+ "svg",
565
+ {
566
+ viewBox: "64 64 896 896",
567
+ focusable: "false",
568
+ width: "1em",
569
+ height: "1em",
570
+ fill: "currentColor",
571
+ "aria-hidden": "true",
572
+ style: { ...baseStyle, ...style },
573
+ className,
574
+ onClick,
575
+ children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M868 732h-72c-4.4 0-8 3.6-8 8v84H236V200h84c4.4 0 8-3.6 8-8v-72c0-4.4-3.6-8-8-8H164c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h704c17.7 0 32-14.3 32-32V740c0-4.4-3.6-8-8-8zM884 104H628c-4.4 0-8 3.6-8 8v72c0 4.4 3.6 8 8 8h121.9L445.1 494.8a8.03 8.03 0 000 11.3l50.9 50.9c3.1 3.1 8.2 3.1 11.3 0L810 254.1V376c0 4.4 3.6 8 8 8h72c4.4 0 8-3.6 8-8V112c0-4.4-3.6-8-8-8z" })
576
+ }
577
+ );
578
+ var HolderOutlined = ({ style, className, onClick }) => /* @__PURE__ */ jsxRuntime.jsx(
579
+ "svg",
580
+ {
581
+ viewBox: "64 64 896 896",
582
+ focusable: "false",
583
+ width: "1em",
584
+ height: "1em",
585
+ fill: "currentColor",
586
+ "aria-hidden": "true",
587
+ style: { ...baseStyle, ...style },
588
+ className,
589
+ onClick,
590
+ children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M300 276a56 56 0 10112 0 56 56 0 10-112 0zm0 236a56 56 0 10112 0 56 56 0 10-112 0zm0 236a56 56 0 10112 0 56 56 0 10-112 0zm312-472a56 56 0 10112 0 56 56 0 10-112 0zm0 236a56 56 0 10112 0 56 56 0 10-112 0zm0 236a56 56 0 10112 0 56 56 0 10-112 0z" })
591
+ }
592
+ );
503
593
 
504
594
  exports.CheckOutlined = CheckOutlined;
505
595
  exports.CloseCircleFilled = CloseCircleFilled;
506
596
  exports.CloseOutlined = CloseOutlined;
597
+ exports.CodeOutlined = CodeOutlined;
598
+ exports.CodePenOutlined = CodePenOutlined;
599
+ exports.CodeSandboxOutlined = CodeSandboxOutlined;
507
600
  exports.CopyOutlined = CopyOutlined;
508
601
  exports.DownOutlined = DownOutlined;
509
602
  exports.DownloadOutlined = DownloadOutlined;
603
+ exports.ExportOutlined = ExportOutlined;
510
604
  exports.EyeInvisibleOutlined = EyeInvisibleOutlined;
511
605
  exports.EyeOutlined = EyeOutlined;
512
606
  exports.FileImageOutlined = FileImageOutlined;
@@ -515,6 +609,7 @@ exports.FilePdfOutlined = FilePdfOutlined;
515
609
  exports.FileTextOutlined = FileTextOutlined;
516
610
  exports.FullscreenExitOutlined = FullscreenExitOutlined;
517
611
  exports.FullscreenOutlined = FullscreenOutlined;
612
+ exports.HolderOutlined = HolderOutlined;
518
613
  exports.LeftOutlined = LeftOutlined;
519
614
  exports.LoadingOutlined = LoadingOutlined;
520
615
  exports.LockOutlined = LockOutlined;
@@ -523,8 +618,9 @@ exports.PlayCircleOutlined = PlayCircleOutlined;
523
618
  exports.ReloadOutlined = ReloadOutlined;
524
619
  exports.RightOutlined = RightOutlined;
525
620
  exports.RotateRightOutlined = RotateRightOutlined;
621
+ exports.ThunderboltOutlined = ThunderboltOutlined;
526
622
  exports.UpOutlined = UpOutlined;
527
623
  exports.ZoomInOutlined = ZoomInOutlined;
528
624
  exports.ZoomOutOutlined = ZoomOutOutlined;
529
- //# sourceMappingURL=chunk-MBOWSS4B.cjs.map
530
- //# sourceMappingURL=chunk-MBOWSS4B.cjs.map
625
+ //# sourceMappingURL=chunk-R4V3EJVP.cjs.map
626
+ //# sourceMappingURL=chunk-R4V3EJVP.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/icons.tsx"],"names":["jsx","jsxs"],"mappings":"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","file":"chunk-R4V3EJVP.cjs","sourcesContent":["import type { CSSProperties } from 'react';\n\ninterface IconProps {\n\tstyle?: CSSProperties;\n\tclassName?: string;\n}\n\nconst baseStyle: CSSProperties = {\n\tdisplay: 'inline-block',\n\twidth: '1em',\n\theight: '1em',\n\tverticalAlign: '-0.125em',\n};\n\nexport const LeftOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"left\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z\" />\n\t</svg>\n);\n\nexport const RightOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"right\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z\" />\n\t</svg>\n);\n\nexport const UpOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"up\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M890.5 755.3L537.4 268a31.96 31.96 0 00-50.8 0L133.5 755.3a7.95 7.95 0 006.3 12.7h75.5c4.9 0 9.6-2.3 12.6-6.1l281-360 281 360c3 3.8 7.7 6.1 12.6 6.1h75.5c6.7 0 10.4-7.6 6.1-12.7z\" />\n\t</svg>\n);\n\nexport const DownOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"down\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 37 17.6 49.8 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z\" />\n\t</svg>\n);\n\nexport const LockOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"lock\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M928 224H704v-64c0-88.4-71.6-160-160-160s-160 71.6-160 160v64H160c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h768c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zM456 160c0-44.2 35.8-80 80-80s80 35.8 80 80v64H456v-64zm408 696H224V296h640v560zM496 448c-30.9 0-56 25.1-56 56 0 24.7 16.1 45.6 38.4 52.7V680c0 9.7 7.8 17.5 17.6 17.5h32c9.7 0 17.6-7.8 17.6-17.5V556.7c22.3-7.1 38.4-28 38.4-52.7 0-30.9-25.1-56-56-56z\" />\n\t</svg>\n);\n\nexport const CloseCircleFilled = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"close-circle\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-66L512 516.8l-99.4 99.4-66-66L446 450.8 346.6 351.4l66-66L512 384.8l99.4-99.4 66 66L578 450.8l99.4 99.4z\" />\n\t</svg>\n);\n\nexport const CopyOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"copy\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v496c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V128c0-35.3-28.7-64-64-64zM704 192H192c-35.3 0-64 28.7-64 64v640c0 35.3 28.7 64 64 64h512c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64zm-8 648H200c-4.4 0-8-3.6-8-8V264c0-4.4 3.6-8 8-8h496c4.4 0 8 3.6 8 8v568c0 4.4-3.6 8-8 8z\" />\n\t</svg>\n);\n\nexport const CheckOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"check\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z\" />\n\t</svg>\n);\n\nexport const LoadingOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"loading\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"none\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{\n\t\t\t...baseStyle,\n\t\t\tanimation: 'rpc-spin 0.85s infinite linear',\n\t\t\t...style,\n\t\t}}\n\t\tclassName={`rpc_loading_icon ${className || ''}`}\n\t>\n\t\t<style>\n\t\t\t{`@keyframes rpc-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }`}\n\t\t</style>\n\t\t<circle cx=\"512\" cy=\"512\" r=\"380\" stroke=\"currentColor\" strokeWidth=\"96\" strokeOpacity=\"0.2\" />\n\t\t<path\n\t\t\td=\"M512 132c209.9 0 380 170.1 380 380\"\n\t\t\tstroke=\"currentColor\"\n\t\t\tstrokeWidth=\"96\"\n\t\t\tstrokeLinecap=\"round\"\n\t\t/>\n\t</svg>\n);\n\nexport const SearchOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"search\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M909.6 854.5L649.9 594.8C690.2 537.8 712 469 712 396c0-174.5-141.5-316-316-316S80 221.5 80 396s141.5 316 316 316c73 0 141.8-21.8 198.8-62.1l259.7 259.7c4.7 4.7 12.3 4.7 17 0l38.1-38.1c4.7-4.7 4.7-12.3 0-17zM396 644c-137 0-248-111-248-248S259 148 396 148s248 111 248 248-111 248-248 248z\" />\n\t</svg>\n);\n\nexport const CloseOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"close\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"none\"\n\t\tstroke=\"currentColor\"\n\t\tstrokeWidth=\"84\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M260 260l504 504M764 260L260 764\" />\n\t</svg>\n);\n\nexport const EditOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"edit\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-148.6L687.8 240.7l48.1 48.1-362.7 362.7-65.6 11.5 17.5-69.6zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z\" />\n\t</svg>\n);\n\nexport const DeleteOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"delete\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M864 256H704V144c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48v112H160c-17.7 0-32 14.3-32 32v24c0 4.4 3.6 8 8 8h60.5l52.6 578.6C251.2 922.3 273 944 298.8 944h426.4c25.8 0 47.6-21.7 49.7-47.4L827.5 320H888c4.4 0 8-3.6 8-8v-24c0-17.7-14.3-32-32-32zM384 168h256v88H384v-88zm377.9 713.8a8.04 8.04 0 01-8 7.2H298.8c-4.2 0-7.7-3.2-8-7.2L240.2 320h543.5l-51.8 561.8z\" />\n\t</svg>\n);\n\nexport const ShareAltOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"share-alt\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M752 664c-28.5 0-54.8 10-75.6 26.8L414.5 522.6c1.5-7.3 2.5-14.9 2.5-22.6s-1-15.3-2.5-22.6L676.4 309.2C697.2 326 723.5 336 752 336c66.3 0 120-53.7 120-120s-53.7-120-120-120-120 53.7-120 120c0 7.7 1 15.3 2.5 22.6L372.6 406.8C351.8 390 325.5 380 296 380c-66.3 0-120 53.7-120 120s53.7 120 120 120c29.5 0 55.8-10 76.6-26.8l261.9 168.2c-1.5 7.3-2.5 14.9-2.5 22.6 0 66.3 53.7 120 120 120s120-53.7 120-120-53.7-120-120-120z\" />\n\t</svg>\n);\n\nexport const FullscreenOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"fullscreen\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"none\"\n\t\tstroke=\"currentColor\"\n\t\tstrokeWidth=\"88\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t{/* 左上角 ↖ */}\n\t\t<path d=\"M380 180H180v200\" />\n\t\t<path d=\"M180 180l240 240\" />\n\t\t{/* 右上角 ↗ */}\n\t\t<path d=\"M644 180h200v200\" />\n\t\t<path d=\"M844 180L604 420\" />\n\t\t{/* 左下角 ↙ */}\n\t\t<path d=\"M180 644v200h200\" />\n\t\t<path d=\"M180 844l240-240\" />\n\t\t{/* 右下角 ↘ */}\n\t\t<path d=\"M844 644v200H644\" />\n\t\t<path d=\"M844 844L604 604\" />\n\t</svg>\n);\n\nexport const FullscreenExitOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"fullscreen-exit\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"none\"\n\t\tstroke=\"currentColor\"\n\t\tstrokeWidth=\"88\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t{/* 左上角内聚 ↘ */}\n\t\t<path d=\"M180 420h240V180\" />\n\t\t<path d=\"M420 420L180 180\" />\n\t\t{/* 右上角内聚 ↙ */}\n\t\t<path d=\"M844 420H604V180\" />\n\t\t<path d=\"M604 420l240-240\" />\n\t\t{/* 左下角内聚 ↗ */}\n\t\t<path d=\"M180 604h240v240\" />\n\t\t<path d=\"M420 604L180 844\" />\n\t\t{/* 右下角内聚 ↖ */}\n\t\t<path d=\"M844 604H604v240\" />\n\t\t<path d=\"M604 604l240 240\" />\n\t</svg>\n);\n\nexport const RotateRightOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"rotate-right\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"none\"\n\t\tstroke=\"currentColor\"\n\t\tstrokeWidth=\"80\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t{/* 顺时针旋转主体圆弧 */}\n\t\t<path d=\"M896 512a384 384 0 1 1-112.5-271.5L896 341\" />\n\t\t{/* 顺时针旋转折线箭头 */}\n\t\t<path d=\"M896 128v213h-213\" />\n\t</svg>\n);\n\nexport const ZoomInOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"zoom-in\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"none\"\n\t\tstroke=\"currentColor\"\n\t\tstrokeWidth=\"76\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t{/* 放大镜圆镜框 */}\n\t\t<circle cx=\"440\" cy=\"440\" r=\"280\" />\n\t\t{/* 放大镜手柄 */}\n\t\t<path d=\"M640 640l220 220\" strokeWidth=\"88\" />\n\t\t{/* 放大镜内部清晰加号 */}\n\t\t<path d=\"M440 320v240M320 440h240\" strokeWidth=\"80\" />\n\t</svg>\n);\n\nexport const ZoomOutOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"zoom-out\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"none\"\n\t\tstroke=\"currentColor\"\n\t\tstrokeWidth=\"76\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t{/* 放大镜圆镜框 */}\n\t\t<circle cx=\"440\" cy=\"440\" r=\"280\" />\n\t\t{/* 放大镜手柄 */}\n\t\t<path d=\"M640 640l220 220\" strokeWidth=\"88\" />\n\t\t{/* 放大镜内部清晰减号 */}\n\t\t<path d=\"M320 440h240\" strokeWidth=\"80\" />\n\t</svg>\n);\n\nexport const DownloadOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"download\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"none\"\n\t\tstroke=\"currentColor\"\n\t\tstrokeWidth=\"76\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t{/* 下载向下箭头 */}\n\t\t<path d=\"M512 160v460M330 450l182 182 182-182\" />\n\t\t{/* 底部托盘 */}\n\t\t<path d=\"M200 680v160h624V680\" />\n\t</svg>\n);\n\nexport const FileOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"file\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zM224 896V128h314v230c0 17.7 14.3 32 32 32h230v506H224z\" />\n\t</svg>\n);\n\nexport const FilePdfOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"file-pdf\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M532 531.3c-7.9-25.1-17.9-57.9-29.2-94.8 17.4-44.5 28.5-84.5 32.8-118.6 6.8-54.6-1.5-87.1-23.7-92.3-15.6-3.7-33 11-40.4 46.1-5.1 24.3-3.6 56.4 4.3 93.3-8.8 33-21.9 76.5-38.3 125.7-18.7 56.2-41.2 108.6-66.2 153.8-37.1 20.3-69 41.5-92.9 63.8-38.2 35.6-46.7 67.2-24.1 89.8 12.8 12.8 31.6 15.3 54.1 7.2 28.8-10.4 62.9-38.9 98.7-83.3 43.1-13.8 91.5-26.3 143.1-37.2 32.8 23.3 64.9 39.8 94.6 48.7 32 9.6 57 8.3 69.8-3.9 15.6-14.8 11.6-42.3-11.4-78.7-17.7-27.9-43.9-51.5-76.3-69.6-1.4-.8-2.8-1.5-4.2-2.3zm-180.2 277c-7.8-7.8-7.8-21.1 0-38.2 11.3-24.8 29.5-48.4 52.8-68.5-25.3 47.9-43.2 86.8-52.8 106.7zm134.7-474c1.6-18.1 4.5-28.7 8.3-30.8 2.2-1.2 5-.8 8.1 1.2 5.1 3.3 7 14.5 5.5 32.5-1.9 22.8-8.2 49.3-18.4 78.4-3.2-30.1-4.7-57.2-3.5-81.3zm-27.1 257.6c17.5-47.5 31.8-90.8 42.1-127.3 9.4 29.6 17.5 56.4 24 79.2-21.6 4.9-43.9 10.3-66.1 16.1v32zm251.4 69.7c15.1 18.8 18.4 32.1 9.4 39.5-3.3 2.7-8.9 3.2-16.4.7-12.7-4.2-27.7-13.5-43.9-27.1 22.8 3.8 41.5-1.1 50.9-13.1zM854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zM224 896V128h314v230c0 17.7 14.3 32 32 32h230v506H224z\" />\n\t</svg>\n);\n\nexport const FileImageOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"file-image\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zM224 896V128h314v230c0 17.7 14.3 32 32 32h230v506H224zm136-280a48 48 0 1096 0 48 48 0 10-96 0zm336 96L552 544l-96 112-48-56-112 112h400z\" />\n\t</svg>\n);\n\nexport const FileTextOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"file-text\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zM224 896V128h314v230c0 17.7 14.3 32 32 32h230v506H224zm120-480h160c4.4 0 8-3.6 8-8v-32c0-4.4-3.6-8-8-8H344c-4.4 0-8 3.6-8 8v32c0 4.4 3.6 8 8 8zm0 120h336c4.4 0 8-3.6 8-8v-32c0-4.4-3.6-8-8-8H344c-4.4 0-8 3.6-8 8v32c0 4.4 3.6 8 8 8zm0 120h336c4.4 0 8-3.6 8-8v-32c0-4.4-3.6-8-8-8H344c-4.4 0-8 3.6-8 8v32c0 4.4 3.6 8 8 8z\" />\n\t</svg>\n);\n\nexport const EyeOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"eye\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.2a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.4 684.2 673.3 766 512 766zm-1-438c-101.6 0-184 82.4-184 184s82.4 184 184 184 184-82.4 184-184-82.4-184-184-184zm0 296c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z\" />\n\t</svg>\n);\n\nexport const EyeInvisibleOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"eye-invisible\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M942.2 486.2Q889.47 375.11 804.85 296.83l57.75-57.75a8.03 8.03 0 000-11.32l-39.6-39.6a8.03 8.03 0 00-11.31 0L117.82 882.03a8.03 8.03 0 000 11.32l39.6 39.6a8.03 8.03 0 0011.31 0l79.47-79.47C333.62 882.35 421.36 900 512 900c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 828c-161.3 0-279.4-81.8-362.7-254 38.67-80.44 94.67-142.75 163.66-184.22l81.65 81.65a184.07 184.07 0 00231.42 231.42l77.72 77.72C637.38 812.59 576.84 828 512 828zm-399.7-331.4C108.6 489.1 106 480 106 470c0-10 2.6-19.1 6.3-26.6 94.8-199.7 238-300.2 430.2-300.2 73.1 0 141.7 14.5 204.6 41.5l-63.5 63.5A384.85 384.85 0 00512 210c-161.3 0-279.4 81.8-362.7 254 18.23 37.93 40.54 70.83 66.27 98.42l-51.3 51.3a549.9 549.9 0 01-51.97-117.12z\" />\n\t</svg>\n);\n\nexport const PlayCircleOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"play-circle\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm-88-532.7v325.4c0 10.7 11.9 17.1 20.9 11.3l244-162.7a13.6 13.6 0 000-22.6l-244-162.7c-9-5.8-20.9.6-20.9 11.3z\" />\n\t</svg>\n);\n\nexport const PauseCircleOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"pause-circle\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm-128-524c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360zm160 0c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360z\" />\n\t</svg>\n);\n\nexport const UndoOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"undo\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M758 416H428.8l93.7-93.7c3.1-3.1 3.1-8.2 0-11.3l-22.6-22.6a8.03 8.03 0 00-11.3 0L303.3 473.7a8.03 8.03 0 000 11.3l185.3 185.3c3.1 3.1 8.2 3.1 11.3 0l22.6-22.6c3.1-3.1 3.1-8.2 0-11.3L428.8 544H758c56.3 0 102 45.7 102 102s-45.7 102-102 102H260c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h498c120.4 0 218-97.6 218-218s-97.6-218-218-218z\" />\n\t</svg>\n);\n\nexport const RedoOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"redo\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M758.2 338.3L572.9 153c-3.1-3.1-8.2-3.1-11.3 0l-22.6 22.6a8.03 8.03 0 000 11.3l93.7 93.7H266c-120.4 0-218 97.6-218 218s97.6 218 218 218h498c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H266c-56.3 0-102-45.7-102-102s45.7-102 102-102h366.7l-93.7 93.7c-3.1 3.1-3.1 8.2 0 11.3l22.6 22.6c3.1 3.1 8.2 3.1 11.3 0l185.3-185.3a8.03 8.03 0 000-11.3z\" />\n\t</svg>\n);\n\nexport const ReloadOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"reload\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 96 512 96 282.2 96 96 282.2 96 512s186.2 416 416 416c196.4 0 361.3-136.2 404.7-319.4 1.2-5.1-1.9-10.2-7.1-11.4l-62.4-14.7c-5.1-1.2-10.2 1.9-11.4 7.1C800.7 724.8 667.6 832 512 832c-176.7 0-320-143.3-320-320s143.3-320 320-320c112.5 0 211.3 58 268.4 146.4l-75.1 58.7c-5.3 4.1-3.4 12.6 3.1 14.1l197.8 45.4c4.6 1.1 9.1-2.4 9.1-7.1l-1.9-202.9c0-6.6-8.2-9.7-12.7-4.9z\" />\n\t</svg>\n);\n\nexport const SoundOutlined = ({ style, className }: IconProps) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"sound\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t>\n\t\t<path d=\"M625.9 115c-5.9 0-11.9 1.6-17.2 4.9L354.8 280H192c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h162.8l253.9 160.1c5.3 3.3 11.3 4.9 17.2 4.9 18.2 0 33.1-14.9 33.1-33.1V148.1c0-18.2-14.9-33.1-33.1-33.1zm-32.9 663.2L367.6 634.6a8 8 0 00-4.3-1.2H232V390.6h131.3a8 8 0 004.3-1.2L593 245.8v532.4zM704 398.7a32 32 0 00-32 32v162.6a32 32 0 0064 0V430.7a32 32 0 00-32-32zm96-99.3a32 32 0 00-32 32v361.3a32 32 0 0064 0V331.4a32 32 0 00-32-32z\" />\n\t</svg>\n);\n\nexport const SendOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"send\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M931.4 498.9L94.9 79.5c-3.4-1.7-7.3-2.1-11-1.2a15.8 15.8 0 00-11.8 17.9L173 496H512v32H173L72.1 927.8c-1.8 7.3 1.9 14.9 8.8 17.7 2.3.9 4.7 1.2 7.1.7 3.7-.7 7.1-2.9 9.1-6L931.4 525.1c6.1-4.7 7.4-13.5 2.7-19.6-.8-1-1.7-1.8-2.7-2.6z\" />\n\t</svg>\n);\n\nexport const LikeOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"like\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M885.9 533.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-85-65.6-104.2l-21.8-10.3 8.5-22.6c8.6-22.8 13-46.9 13-71.9 0-94.8-77-172-171.8-172-35.4 0-69.2 10.9-97.7 31.5L462.6 193c-2.4 1.7-4.6 3.6-6.6 5.6L348 306.6c-4.4 4.4-6.9 10.4-6.9 16.6V768c0 13.3 10.7 24 24 24h356c32.1 0 61.5-16.7 77.8-44.1l21.2-35.7 38.6-6.4c35.4-5.9 64.3-30.8 74.9-64.6l6.8-21.6 22 4.4c2.8.6 5.6.8 8.4.8 28.3 0 54.8-12.8 72.1-35.3 16.8-22.2 21.6-50.6 13.1-77.9l-6.8-21.6 22 4.4c2.8.6 5.6.8 8.4.8 28.3 0 54.8-12.8 72.1-35.3 16.8-22.2 21.6-50.6 13.1-77.9l-8.9-28.7zM792 720H406V336l96-96c21.2-21.2 46.3-37.4 73.9-47.5 12.8-4.7 26.3-7.1 40.1-7.1 55.1 0 100 44.9 100 100 0 18.2-4.1 36.1-11.9 52.3l-19.1 39.5H846c24.6 0 45.4 17.5 49.3 41.8 1.9 12-1 24.1-8.1 33.4L870.3 475l16.9 5.6c11.9 3.9 21.3 12.8 25.8 24.4s3 24.4-4.2 33.9L892 560l16.9 5.6c11.9 3.9 21.3 12.8 25.8 24.4s3 24.4-4.2 33.9L913.6 645l-12.1 38.6c-5.8 18.5-21.7 32.1-41.1 35.3L792 720zm-536 72h-80c-4.4 0-8-3.6-8-8V328c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v456c0 4.4-3.6 8-8 8z\" />\n\t</svg>\n);\n\nexport const DislikeOutlined = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"dislike\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M885.9 490.3l8.9-28.7c8.5-27.3 3.7-55.7-13.1-77.9-17.3-22.5-43.8-35.3-72.1-35.3-2.8 0-5.6.3-8.4.8l-22 4.4 6.8-21.6c8.5-27.3 3.7-55.7-13.1-77.9-17.3-22.5-43.8-35.3-72.1-35.3-2.8 0-5.6.3-8.4.8l-22 4.4-6.8-21.6c-10.6-33.8-39.5-58.7-74.9-64.6l-38.6-6.4-21.2-35.7C620.5 106.7 591.1 90 559 90H203c-13.3 0-24 10.7-24 24v444.8c0 6.2 2.5 12.2 6.9 16.6l108 108c2 2 4.2 3.9 6.6 5.6l113.8 81.3c28.5 20.6 62.3 31.5 97.7 31.5 94.8 0 171.8-77.2 171.8-172 0-25-4.4-49.1-13-71.9l-8.5-22.6 21.8-10.3c40.5-19.2 65.6-59.3 65.6-104.2.1-28.3-9.2-55.5-26-77.7zM792 304l68.4-1.1c19.4 3.2 35.3 16.8 41.1 35.3l12.1 38.6 16.9 21.2c7.2 9.5 8.7 22.3 4.2 33.9s-13.9 20.5-25.8 24.4L892 462l16.9 21.2c7.2 9.5 8.7 22.3 4.2 33.9s-13.9 20.5-25.8 24.4l-16.9 5.6 14.8 17.9c7.1 9.3 10 21.4 8.1 33.4-3.9 24.3-24.7 41.8-49.3 41.8H741l19.1 39.5c7.8 16.2 11.9 34.1 11.9 52.3 0 55.1-44.9 100-100 100-13.8 0-27.3-2.4-40.1-7.1-27.6-10.1-52.7-26.3-73.9-47.5l-96-96V232h386zM256 232h-80c-4.4 0-8 3.6-8 8v456c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V240c0-4.4-3.6-8-8-8z\" />\n\t</svg>\n);\n\nexport const StarFilled = ({\n\tstyle,\n\tclassName,\n\tonClick,\n}: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\tdata-icon=\"star\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M908.1 353.1l-253.9-36.9L540.7 86.6c-9.7-19.7-37.7-19.7-47.4 0L379.8 316.2l-253.9 36.9c-21.9 3.2-30.6 30-14.7 45.5l183.7 179-43.4 252.9c-3.7 21.8 19.1 38.4 38.8 28.1L512 740l221.7 116.6c19.7 10.4 42.5-6.3 38.8-28.1l-43.4-252.9 183.7-179c15.9-15.5 7.2-42.3-14.7-45.5z\" />\n\t</svg>\n);\n\nexport const CodeSandboxOutlined = ({ style, className, onClick }: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M959.8 274.7L527.9 25.5c-9.8-5.6-21.9-5.6-31.7 0L64.2 274.7c-9.9 5.7-16.1 16.3-16.1 27.7v499c0 11.4 6.1 22 16.1 27.7l432 249.2c4.9 2.8 10.4 4.3 15.9 4.3s11-1.4 15.9-4.3l432-249.2c9.9-5.7 16.1-16.3 16.1-27.7v-499c0-11.4-6.2-22-16.3-27.7zM512 100.8l363.6 209.9-146.9 84.8-363.6-209.9L512 100.8zM476 121.6v239.5L148.6 550.5V310.8L476 121.6zM112 590.2l364 210.2v240.8L112 831V590.2zM548 1041.2V800.4l364-210.2v240.8l-364 210.2zM911.4 550.5L548 339.7V100.2l363.4 209.8v240.5z\" />\n\t</svg>\n);\n\nexport const CodePenOutlined = ({ style, className, onClick }: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"0 0 1024 1024\"\n\t\tfocusable=\"false\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M912 360L536 109.3c-14.7-9.8-35.3-9.8-50 0L112 360c-10.7 7.1-16 19.3-16 32v240c0 12.7 5.3 24.9 16 32l374 250.7c14.7 9.8 35.3 9.8 50 0l376-250.7c10.7-7.1 16-19.3 16-32V392c0-12.7-5.3-24.9-16-32zM512 195.4l280.9 187.3L670 464.6 512 359.3V195.4zM476 359.3L318 464.6 195.1 382.7 476 195.4v163.9zM160 441.2l98.5 65.7L160 572.6V441.2zM476 828.6L195.1 641.3 318 559.4 476 664.7v163.9zm36-248.8L382.8 512 512 425.8l129.2 86.2L512 579.8zm0 248.8V664.7l158-105.3 122.9 81.9L512 828.6zm352-256l-98.5-65.7 98.5-65.7v131.4z\" />\n\t</svg>\n);\n\nexport const ThunderboltOutlined = ({ style, className, onClick }: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.6L183.1 915c-4.1 5.3-.4 13 6.3 13h342.7c2.8 0 5.5-1.5 6.9-4L854.9 371.3c3.1-5.3-.7-12-6.9-12z\" />\n\t</svg>\n);\n\nexport const CodeOutlined = ({ style, className, onClick }: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M866.9 499.1L747.3 380.7c-6.2-6.2-16.4-6.2-22.6 0l-45.2 45.2c-6.2 6.2-6.2 16.4 0 22.6l75.4 75.4-75.4 75.4c-6.2 6.2-6.2 16.4 0 22.6l45.2 45.2c6.2 6.2 16.4 6.2 22.6 0l119.6-118.4a15.87 15.87 0 000-22.6zM344.5 448.5l-75.4-75.4c-6.2-6.2-16.4-6.2-22.6 0L126.9 491.5a15.87 15.87 0 000 22.6l119.6 118.4c6.2 6.2 16.4 6.2 22.6 0l45.2-45.2c6.2-6.2 6.2-16.4 0-22.6l-75.4-75.4 75.4-75.4c6.2-6.2 6.2-16.4 0-22.6l-45.2-45.2zM562.9 270.8c-7.9-3.2-16.9.7-20.1 8.6L378.1 729.1c-3.2 7.9.7 16.9 8.6 20.1l41.5 16.6c7.9 3.2 16.9-.7 20.1-8.6l164.7-449.7c3.2-7.9-.7-16.9-8.6-20.1l-41.5-16.6z\" />\n\t</svg>\n);\n\nexport const ExportOutlined = ({ style, className, onClick }: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M868 732h-72c-4.4 0-8 3.6-8 8v84H236V200h84c4.4 0 8-3.6 8-8v-72c0-4.4-3.6-8-8-8H164c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h704c17.7 0 32-14.3 32-32V740c0-4.4-3.6-8-8-8zM884 104H628c-4.4 0-8 3.6-8 8v72c0 4.4 3.6 8 8 8h121.9L445.1 494.8a8.03 8.03 0 000 11.3l50.9 50.9c3.1 3.1 8.2 3.1 11.3 0L810 254.1V376c0 4.4 3.6 8 8 8h72c4.4 0 8-3.6 8-8V112c0-4.4-3.6-8-8-8z\" />\n\t</svg>\n);\n\nexport const HolderOutlined = ({ style, className, onClick }: IconProps & { onClick?: (e: React.MouseEvent) => void }) => (\n\t<svg\n\t\tviewBox=\"64 64 896 896\"\n\t\tfocusable=\"false\"\n\t\twidth=\"1em\"\n\t\theight=\"1em\"\n\t\tfill=\"currentColor\"\n\t\taria-hidden=\"true\"\n\t\tstyle={{ ...baseStyle, ...style }}\n\t\tclassName={className}\n\t\tonClick={onClick}\n\t>\n\t\t<path d=\"M300 276a56 56 0 10112 0 56 56 0 10-112 0zm0 236a56 56 0 10112 0 56 56 0 10-112 0zm0 236a56 56 0 10112 0 56 56 0 10-112 0zm312-472a56 56 0 10112 0 56 56 0 10-112 0zm0 236a56 56 0 10112 0 56 56 0 10-112 0zm0 236a56 56 0 10112 0 56 56 0 10-112 0z\" />\n\t</svg>\n);\n\n\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkMBOWSS4B_cjs = require('./chunk-MBOWSS4B.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
 
@@ -8,10 +8,10 @@ var formatDimension = (value) => {
8
8
  if (value === void 0 || value === null) return void 0;
9
9
  return typeof value === "number" ? `${value}px` : value;
10
10
  };
11
- var ChevronLeft = () => /* @__PURE__ */ jsxRuntime.jsx(chunkMBOWSS4B_cjs.LeftOutlined, {});
12
- var ChevronRight = () => /* @__PURE__ */ jsxRuntime.jsx(chunkMBOWSS4B_cjs.RightOutlined, {});
13
- var ChevronUp = () => /* @__PURE__ */ jsxRuntime.jsx(chunkMBOWSS4B_cjs.UpOutlined, {});
14
- var ChevronDown = () => /* @__PURE__ */ jsxRuntime.jsx(chunkMBOWSS4B_cjs.DownOutlined, {});
11
+ var ChevronLeft = () => /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.LeftOutlined, {});
12
+ var ChevronRight = () => /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.RightOutlined, {});
13
+ var ChevronUp = () => /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.UpOutlined, {});
14
+ var ChevronDown = () => /* @__PURE__ */ jsxRuntime.jsx(chunkR4V3EJVP_cjs.DownOutlined, {});
15
15
  var CollapsibleBox = ({
16
16
  children,
17
17
  title = "\u5185\u5BB9\u533A\u57DF",
@@ -102,5 +102,5 @@ var CollapsibleBox = ({
102
102
  var CollapseBox_default = CollapsibleBox;
103
103
 
104
104
  exports.CollapseBox_default = CollapseBox_default;
105
- //# sourceMappingURL=chunk-4OXVTRYV.cjs.map
106
- //# sourceMappingURL=chunk-4OXVTRYV.cjs.map
105
+ //# sourceMappingURL=chunk-RN5WU7KA.cjs.map
106
+ //# sourceMappingURL=chunk-RN5WU7KA.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../CollapseBox/index.tsx"],"names":["jsx","LeftOutlined","RightOutlined","UpOutlined","DownOutlined","useState","jsxs"],"mappings":"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","file":"chunk-4OXVTRYV.cjs","sourcesContent":["import { useState, type CSSProperties, type ReactNode } from 'react';\nimport { DownOutlined, LeftOutlined, RightOutlined, UpOutlined } from '../src/icons';\nimport './index.less';\n\nexport type CollapseBoxDirection = 'horizontal' | 'vertical';\nexport type CollapseBoxButtonPosition = 'left' | 'right' | 'top' | 'bottom';\n\nexport interface CollapseBoxProps {\n\tchildren?: ReactNode;\n\ttitle?: string;\n\tdirection?: CollapseBoxDirection;\n\tbuttonPosition?: CollapseBoxButtonPosition;\n\tdefaultWidth?: number | string;\n\tdefaultHeight?: number | string;\n\tcontentPadding?: string;\n\theaderHeight?: number;\n\tclassName?: string;\n}\n\nconst formatDimension = (value?: number | string): string | undefined => {\n\tif (value === undefined || value === null) return undefined;\n\treturn typeof value === 'number' ? `${value}px` : value;\n};\n\nconst ChevronLeft = () => <LeftOutlined />;\n\nconst ChevronRight = () => <RightOutlined />;\n\nconst ChevronUp = () => <UpOutlined />;\n\nconst ChevronDown = () => <DownOutlined />;\n\nconst CollapsibleBox = ({\n\tchildren,\n\ttitle = '内容区域',\n\tdirection = 'horizontal',\n\tbuttonPosition = 'right',\n\tdefaultWidth = 600,\n\tdefaultHeight = 300,\n\tcontentPadding = '16px',\n\theaderHeight = 16,\n\tclassName,\n}: CollapseBoxProps) => {\n\tconst [isExpanded, setIsExpanded] = useState(true);\n\n\tconst getContentMaxHeight = () => {\n\t\tif (typeof defaultHeight === 'number') {\n\t\t\treturn `${defaultHeight - headerHeight}px`;\n\t\t}\n\t\tif (typeof defaultHeight === 'string') {\n\t\t\treturn headerHeight ? `calc(${defaultHeight} - ${headerHeight}px)` : defaultHeight;\n\t\t}\n\t\treturn '100%';\n\t};\n\n\tconst getIcon = () => {\n\t\tif (direction === 'horizontal') {\n\t\t\tif (buttonPosition === 'right') {\n\t\t\t\treturn isExpanded ? <ChevronRight /> : <ChevronLeft />;\n\t\t\t}\n\t\t\treturn isExpanded ? <ChevronLeft /> : <ChevronRight />;\n\t\t}\n\t\tif (buttonPosition === 'bottom') {\n\t\t\treturn isExpanded ? <ChevronDown /> : <ChevronUp />;\n\t\t}\n\t\treturn isExpanded ? <ChevronUp /> : <ChevronDown />;\n\t};\n\n\tconst getButtonClass = () => {\n\t\tif (direction === 'horizontal') {\n\t\t\treturn buttonPosition === 'right' ? 'button-right' : 'button-left';\n\t\t}\n\t\treturn buttonPosition === 'bottom' ? 'button-bottom' : 'button-top';\n\t};\n\n\tconst getContainerStyle = (): CSSProperties => {\n\t\tif (direction === 'horizontal') {\n\t\t\treturn {\n\t\t\t\twidth: isExpanded ? '100%' : '0px',\n\t\t\t\theight: '100%',\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\theight: isExpanded ? '100%' : '0px',\n\t\t\twidth: '100%',\n\t\t};\n\t};\n\n\tconst baseWrapperClass =\n\t\tdirection === 'horizontal' ? 'collapsible-wrapper horizontal' : 'collapsible-wrapper vertical';\n\tconst wrapperClass = className ? `${baseWrapperClass} ${className}` : baseWrapperClass;\n\n\tconst containerClass = [\n\t\t'collapsible-container',\n\t\tdirection === 'horizontal' && buttonPosition === 'right' ? 'align-right' : '',\n\t\tdirection === 'vertical' && buttonPosition === 'bottom' ? 'align-bottom' : '',\n\t]\n\t\t.filter(Boolean)\n\t\t.join(' ');\n\n\tconst height = getContentMaxHeight();\n\tconst contentStyle: CSSProperties = {\n\t\tmaxHeight: direction === 'vertical' ? (isExpanded ? height : '0px') : height,\n\t\toverflowY: 'auto',\n\t\tpadding: contentPadding,\n\t\tboxSizing: 'border-box',\n\t};\n\n\tconst formattedWidth = formatDimension(defaultWidth);\n\tconst formattedHeight = formatDimension(defaultHeight);\n\tconst wrapperStyle: CSSProperties = {\n\t\twidth: formattedWidth,\n\t\theight: formattedHeight,\n\t};\n\n\treturn (\n\t\t<div className={wrapperClass} style={wrapperStyle}>\n\t\t\t<div style={getContainerStyle()} className={containerClass}>\n\t\t\t\t{title && (\n\t\t\t\t\t<div className=\"collapsible-header\" style={{ display: 'none' }}>\n\t\t\t\t\t\t<h3>{title}</h3>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t<div className=\"collapsible-content\" style={contentStyle}>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tonClick={() => setIsExpanded(!isExpanded)}\n\t\t\t\tclassName={`toggle-button ${getButtonClass()}`}\n\t\t\t\ttitle={isExpanded ? '隐藏' : '展开'}\n\t\t\t>\n\t\t\t\t{getIcon()}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default CollapsibleBox;\n"]}
1
+ {"version":3,"sources":["../CollapseBox/index.tsx"],"names":["jsx","LeftOutlined","RightOutlined","UpOutlined","DownOutlined","useState","jsxs"],"mappings":"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","file":"chunk-RN5WU7KA.cjs","sourcesContent":["import { useState, type CSSProperties, type ReactNode } from 'react';\nimport { DownOutlined, LeftOutlined, RightOutlined, UpOutlined } from '../src/icons';\nimport './index.less';\n\nexport type CollapseBoxDirection = 'horizontal' | 'vertical';\nexport type CollapseBoxButtonPosition = 'left' | 'right' | 'top' | 'bottom';\n\nexport interface CollapseBoxProps {\n\tchildren?: ReactNode;\n\ttitle?: string;\n\tdirection?: CollapseBoxDirection;\n\tbuttonPosition?: CollapseBoxButtonPosition;\n\tdefaultWidth?: number | string;\n\tdefaultHeight?: number | string;\n\tcontentPadding?: string;\n\theaderHeight?: number;\n\tclassName?: string;\n}\n\nconst formatDimension = (value?: number | string): string | undefined => {\n\tif (value === undefined || value === null) return undefined;\n\treturn typeof value === 'number' ? `${value}px` : value;\n};\n\nconst ChevronLeft = () => <LeftOutlined />;\n\nconst ChevronRight = () => <RightOutlined />;\n\nconst ChevronUp = () => <UpOutlined />;\n\nconst ChevronDown = () => <DownOutlined />;\n\nconst CollapsibleBox = ({\n\tchildren,\n\ttitle = '内容区域',\n\tdirection = 'horizontal',\n\tbuttonPosition = 'right',\n\tdefaultWidth = 600,\n\tdefaultHeight = 300,\n\tcontentPadding = '16px',\n\theaderHeight = 16,\n\tclassName,\n}: CollapseBoxProps) => {\n\tconst [isExpanded, setIsExpanded] = useState(true);\n\n\tconst getContentMaxHeight = () => {\n\t\tif (typeof defaultHeight === 'number') {\n\t\t\treturn `${defaultHeight - headerHeight}px`;\n\t\t}\n\t\tif (typeof defaultHeight === 'string') {\n\t\t\treturn headerHeight ? `calc(${defaultHeight} - ${headerHeight}px)` : defaultHeight;\n\t\t}\n\t\treturn '100%';\n\t};\n\n\tconst getIcon = () => {\n\t\tif (direction === 'horizontal') {\n\t\t\tif (buttonPosition === 'right') {\n\t\t\t\treturn isExpanded ? <ChevronRight /> : <ChevronLeft />;\n\t\t\t}\n\t\t\treturn isExpanded ? <ChevronLeft /> : <ChevronRight />;\n\t\t}\n\t\tif (buttonPosition === 'bottom') {\n\t\t\treturn isExpanded ? <ChevronDown /> : <ChevronUp />;\n\t\t}\n\t\treturn isExpanded ? <ChevronUp /> : <ChevronDown />;\n\t};\n\n\tconst getButtonClass = () => {\n\t\tif (direction === 'horizontal') {\n\t\t\treturn buttonPosition === 'right' ? 'button-right' : 'button-left';\n\t\t}\n\t\treturn buttonPosition === 'bottom' ? 'button-bottom' : 'button-top';\n\t};\n\n\tconst getContainerStyle = (): CSSProperties => {\n\t\tif (direction === 'horizontal') {\n\t\t\treturn {\n\t\t\t\twidth: isExpanded ? '100%' : '0px',\n\t\t\t\theight: '100%',\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\theight: isExpanded ? '100%' : '0px',\n\t\t\twidth: '100%',\n\t\t};\n\t};\n\n\tconst baseWrapperClass =\n\t\tdirection === 'horizontal' ? 'collapsible-wrapper horizontal' : 'collapsible-wrapper vertical';\n\tconst wrapperClass = className ? `${baseWrapperClass} ${className}` : baseWrapperClass;\n\n\tconst containerClass = [\n\t\t'collapsible-container',\n\t\tdirection === 'horizontal' && buttonPosition === 'right' ? 'align-right' : '',\n\t\tdirection === 'vertical' && buttonPosition === 'bottom' ? 'align-bottom' : '',\n\t]\n\t\t.filter(Boolean)\n\t\t.join(' ');\n\n\tconst height = getContentMaxHeight();\n\tconst contentStyle: CSSProperties = {\n\t\tmaxHeight: direction === 'vertical' ? (isExpanded ? height : '0px') : height,\n\t\toverflowY: 'auto',\n\t\tpadding: contentPadding,\n\t\tboxSizing: 'border-box',\n\t};\n\n\tconst formattedWidth = formatDimension(defaultWidth);\n\tconst formattedHeight = formatDimension(defaultHeight);\n\tconst wrapperStyle: CSSProperties = {\n\t\twidth: formattedWidth,\n\t\theight: formattedHeight,\n\t};\n\n\treturn (\n\t\t<div className={wrapperClass} style={wrapperStyle}>\n\t\t\t<div style={getContainerStyle()} className={containerClass}>\n\t\t\t\t{title && (\n\t\t\t\t\t<div className=\"collapsible-header\" style={{ display: 'none' }}>\n\t\t\t\t\t\t<h3>{title}</h3>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t<div className=\"collapsible-content\" style={contentStyle}>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tonClick={() => setIsExpanded(!isExpanded)}\n\t\t\t\tclassName={`toggle-button ${getButtonClass()}`}\n\t\t\t\ttitle={isExpanded ? '隐藏' : '展开'}\n\t\t\t>\n\t\t\t\t{getIcon()}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default CollapsibleBox;\n"]}