@fangxinyan/lumina 0.6.0 → 0.6.2

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 (460) hide show
  1. package/dist/Alert.cjs +3 -5
  2. package/dist/Alert.js +2 -4
  3. package/dist/AppShell.cjs +5 -7
  4. package/dist/AppShell.js +1 -3
  5. package/dist/AutoComplete.cjs +6 -7
  6. package/dist/AutoComplete.d.cts +1 -1
  7. package/dist/AutoComplete.d.ts +1 -1
  8. package/dist/AutoComplete.js +5 -6
  9. package/dist/Avatar.cjs +2 -4
  10. package/dist/Avatar.js +1 -3
  11. package/dist/Badge-DPGLV3D3.css +22 -0
  12. package/dist/Badge.cjs +10 -0
  13. package/dist/Badge.d.cts +18 -0
  14. package/dist/Badge.d.ts +18 -0
  15. package/dist/Badge.js +1 -0
  16. package/dist/Button.cjs +3 -9
  17. package/dist/Button.d.cts +5 -10
  18. package/dist/Button.d.ts +5 -10
  19. package/dist/Button.js +2 -4
  20. package/dist/Calendar.cjs +3 -5
  21. package/dist/Calendar.js +2 -4
  22. package/dist/{Card-RG7ECXL2.css → Card-6RMVIHWX.css} +7 -13
  23. package/dist/Card.cjs +2 -8
  24. package/dist/Card.d.cts +7 -11
  25. package/dist/Card.d.ts +7 -11
  26. package/dist/Card.js +1 -3
  27. package/dist/{Cascader-VSYEKQCG.css → Cascader-C2DFSMKJ.css} +64 -0
  28. package/dist/Cascader.cjs +6 -6
  29. package/dist/Cascader.d.cts +18 -2
  30. package/dist/Cascader.d.ts +18 -2
  31. package/dist/Cascader.js +5 -5
  32. package/dist/{Checkbox-SKJATVSN.css → Checkbox-U5EUDSYS.css} +5 -35
  33. package/dist/Checkbox.cjs +3 -9
  34. package/dist/Checkbox.d.cts +1 -18
  35. package/dist/Checkbox.d.ts +1 -18
  36. package/dist/Checkbox.js +2 -4
  37. package/dist/Collapse-66U5YJFY.css +53 -0
  38. package/dist/Collapse.cjs +11 -0
  39. package/dist/Collapse.d.cts +32 -0
  40. package/dist/Collapse.d.ts +32 -0
  41. package/dist/Collapse.js +2 -0
  42. package/dist/ColorPicker.cjs +3 -5
  43. package/dist/ColorPicker.js +2 -4
  44. package/dist/CommandPalette.cjs +5 -6
  45. package/dist/CommandPalette.js +4 -5
  46. package/dist/ContextMenu.cjs +2 -4
  47. package/dist/ContextMenu.js +1 -3
  48. package/dist/Divider.cjs +2 -4
  49. package/dist/Divider.js +1 -3
  50. package/dist/Drawer.cjs +3 -5
  51. package/dist/Drawer.js +2 -4
  52. package/dist/Empty-DC2LPORC.css +28 -0
  53. package/dist/Empty.cjs +2 -12
  54. package/dist/Empty.d.cts +1 -62
  55. package/dist/Empty.d.ts +1 -62
  56. package/dist/Empty.js +1 -3
  57. package/dist/Form.cjs +4 -6
  58. package/dist/Form.d.cts +1 -1
  59. package/dist/Form.d.ts +1 -1
  60. package/dist/Form.js +1 -3
  61. package/dist/Icon.cjs +179 -5
  62. package/dist/Icon.d.cts +96 -3
  63. package/dist/Icon.d.ts +96 -3
  64. package/dist/Icon.js +1 -3
  65. package/dist/Image.cjs +4 -6
  66. package/dist/Image.js +2 -4
  67. package/dist/{Input-33CAH4O6.css → Input-3G4ONWNU.css} +15 -42
  68. package/dist/Input.cjs +6 -7
  69. package/dist/Input.d.cts +19 -23
  70. package/dist/Input.d.ts +19 -23
  71. package/dist/Input.js +3 -4
  72. package/dist/InputNumber.cjs +5 -6
  73. package/dist/InputNumber.d.cts +1 -1
  74. package/dist/InputNumber.d.ts +1 -1
  75. package/dist/InputNumber.js +4 -5
  76. package/dist/List.cjs +2 -4
  77. package/dist/List.js +1 -3
  78. package/dist/Message-2MZ3LFPU.css +45 -0
  79. package/dist/Message.cjs +23 -0
  80. package/dist/Message.d.cts +54 -0
  81. package/dist/Message.d.ts +54 -0
  82. package/dist/Message.js +2 -0
  83. package/dist/{Modal-XSDMU4XJ.css → Modal-2QNDW4SO.css} +27 -0
  84. package/dist/Modal.cjs +4 -6
  85. package/dist/Modal.d.cts +28 -4
  86. package/dist/Modal.d.ts +28 -4
  87. package/dist/Modal.js +3 -5
  88. package/dist/Pagination.cjs +8 -8
  89. package/dist/Pagination.js +7 -7
  90. package/dist/Popover.cjs +3 -5
  91. package/dist/Popover.d.cts +11 -3
  92. package/dist/Popover.d.ts +11 -3
  93. package/dist/Popover.js +2 -4
  94. package/dist/Progress.cjs +2 -4
  95. package/dist/Progress.js +1 -3
  96. package/dist/Radio-GVFDPAZM.css +97 -0
  97. package/dist/Radio.cjs +14 -0
  98. package/dist/Radio.d.cts +36 -0
  99. package/dist/Radio.d.ts +36 -0
  100. package/dist/Radio.js +1 -0
  101. package/dist/{Select-J3CCVFJ7.css → Select-JVBQAZBG.css} +7 -23
  102. package/dist/Select.cjs +7 -7
  103. package/dist/Select.d.cts +25 -4
  104. package/dist/Select.d.ts +25 -4
  105. package/dist/Select.js +6 -6
  106. package/dist/Skeleton-CVWH2VWN.css +40 -0
  107. package/dist/Skeleton.cjs +10 -0
  108. package/dist/Skeleton.d.cts +30 -0
  109. package/dist/Skeleton.d.ts +30 -0
  110. package/dist/Skeleton.js +1 -0
  111. package/dist/Slider.cjs +2 -4
  112. package/dist/Slider.js +1 -3
  113. package/dist/Spin-3GJNMSIH.css +94 -0
  114. package/dist/Spin.cjs +10 -0
  115. package/dist/Spin.d.cts +20 -0
  116. package/dist/Spin.d.ts +20 -0
  117. package/dist/Spin.js +1 -0
  118. package/dist/Splitter.cjs +2 -4
  119. package/dist/Splitter.js +1 -3
  120. package/dist/StatusBar.cjs +3 -5
  121. package/dist/StatusBar.js +1 -3
  122. package/dist/Switch.cjs +2 -4
  123. package/dist/Switch.js +1 -3
  124. package/dist/{Table-2LPTOUIR.css → Table-ATJJQLKU.css} +0 -53
  125. package/dist/Table.cjs +10 -14
  126. package/dist/Table.d.cts +2 -21
  127. package/dist/Table.d.ts +2 -21
  128. package/dist/Table.js +9 -9
  129. package/dist/TablePro-3XVHYLSL.css +45 -0
  130. package/dist/TablePro.cjs +19 -0
  131. package/dist/TablePro.d.cts +21 -0
  132. package/dist/TablePro.d.ts +21 -0
  133. package/dist/TablePro.js +10 -0
  134. package/dist/{Tabs-RHK6XAFF.css → Tabs-BLSNI2T5.css} +0 -34
  135. package/dist/Tabs.cjs +2 -8
  136. package/dist/Tabs.d.cts +1 -16
  137. package/dist/Tabs.d.ts +1 -16
  138. package/dist/Tabs.js +1 -3
  139. package/dist/Tag-LB3OOJAO.css +29 -0
  140. package/dist/Tag.cjs +3 -9
  141. package/dist/Tag.d.cts +1 -11
  142. package/dist/Tag.d.ts +1 -11
  143. package/dist/Tag.js +2 -4
  144. package/dist/Textarea-YNET7IBH.css +54 -0
  145. package/dist/Textarea.cjs +15 -0
  146. package/dist/Textarea.d.cts +25 -0
  147. package/dist/Textarea.d.ts +25 -0
  148. package/dist/Textarea.js +2 -0
  149. package/dist/Theme.cjs +10 -12
  150. package/dist/Theme.js +1 -3
  151. package/dist/{Timeline-RHZAZKZ7.css → Timeline-3ZHOHPXT.css} +2 -2
  152. package/dist/Timeline.cjs +3 -5
  153. package/dist/Timeline.d.cts +1 -1
  154. package/dist/Timeline.d.ts +1 -1
  155. package/dist/Timeline.js +2 -4
  156. package/dist/Tooltip.cjs +3 -5
  157. package/dist/Tooltip.d.cts +17 -4
  158. package/dist/Tooltip.d.ts +17 -4
  159. package/dist/Tooltip.js +2 -4
  160. package/dist/Typography.cjs +7 -9
  161. package/dist/Typography.js +2 -4
  162. package/dist/{chunk-74VZZAUT.cjs → chunk-2TL37AP5.cjs} +0 -2
  163. package/dist/{chunk-4DNHASZU.js → chunk-33NCTOEB.js} +1 -3
  164. package/dist/{chunk-KA3XLPQJ.cjs → chunk-35ZGBAA3.cjs} +3 -5
  165. package/dist/{chunk-IL523MTN.cjs → chunk-3AS5B7MQ.cjs} +13 -34
  166. package/dist/{chunk-ZA36BJIY.cjs → chunk-3YJU3D5S.cjs} +30 -9
  167. package/dist/chunk-45VJGBGN.js +25 -0
  168. package/dist/{chunk-JS6U7UQS.js → chunk-46VXFTEC.js} +3 -5
  169. package/dist/{chunk-V24B7KWT.cjs → chunk-4WTU5P3O.cjs} +3 -5
  170. package/dist/{chunk-3LJO33HI.js → chunk-5C2AI2SD.js} +0 -2
  171. package/dist/{chunk-FCIPCZAK.cjs → chunk-5JSDQ6QQ.cjs} +0 -2
  172. package/dist/{chunk-A3IJM7IX.js → chunk-5TKC6IEN.js} +4 -57
  173. package/dist/{chunk-JF2WNLPF.cjs → chunk-5WAXZJG5.cjs} +12 -21
  174. package/dist/{chunk-E6K6GYUC.js → chunk-65FIH5A3.js} +0 -2
  175. package/dist/chunk-6ACKL3WH.cjs +138 -0
  176. package/dist/{chunk-DCX36FYD.js → chunk-6BWELOCT.js} +0 -2
  177. package/dist/{chunk-WFFWVQK4.cjs → chunk-6LZ54NPO.cjs} +70 -76
  178. package/dist/{chunk-2LIX7ZHX.js → chunk-6YQTMI55.js} +0 -2
  179. package/dist/{chunk-SREMTSVI.cjs → chunk-7ABFUIOB.cjs} +0 -2
  180. package/dist/{chunk-2TZ2R7L2.js → chunk-7JN6FJ55.js} +0 -2
  181. package/dist/{chunk-DB5JMXOI.js → chunk-7NGMQIST.js} +2 -4
  182. package/dist/{chunk-Y7BZMMAV.cjs → chunk-7PNJI5UE.cjs} +0 -2
  183. package/dist/{chunk-KWE2PXJQ.js → chunk-7PQJCLIR.js} +0 -2
  184. package/dist/{chunk-5VIOJW6M.js → chunk-AWXCSX6J.js} +6 -26
  185. package/dist/chunk-AXZ7ELMA.js +41 -0
  186. package/dist/{chunk-XMINE4TN.cjs → chunk-B2KEZQ6S.cjs} +5 -7
  187. package/dist/chunk-CEJ7VBR6.js +283 -0
  188. package/dist/{chunk-ZPDMAMWC.js → chunk-CHMCL7AV.js} +1 -3
  189. package/dist/{chunk-MU4GGX6C.cjs → chunk-CUXV6QNN.cjs} +5 -7
  190. package/dist/{chunk-WLFMOWUY.js → chunk-CXWEOAVU.js} +1 -3
  191. package/dist/{chunk-D242UJZO.js → chunk-DQTSTJ6O.js} +3 -20
  192. package/dist/{chunk-ANAQER3T.js → chunk-DUFRASGO.js} +0 -2
  193. package/dist/{chunk-EARCKSI7.js → chunk-EC4WGEAJ.js} +0 -2
  194. package/dist/chunk-EIY7KEJ3.cjs +132 -0
  195. package/dist/{chunk-LSQD2GFA.js → chunk-EJBHR2P5.js} +3 -5
  196. package/dist/chunk-ELNT3CFO.js +64 -0
  197. package/dist/{chunk-ZN6VS6SO.js → chunk-EQEJTN3V.js} +3 -45
  198. package/dist/chunk-F6RYCBQG.js +25 -0
  199. package/dist/{chunk-S3OSBW7R.cjs → chunk-FBVVRTX2.cjs} +3 -46
  200. package/dist/chunk-FFZ6OMZI.js +110 -0
  201. package/dist/{chunk-MXIWTYNC.js → chunk-FJNWUELL.js} +3 -5
  202. package/dist/chunk-GENABQYA.cjs +47 -0
  203. package/dist/chunk-GMN74OEY.cjs +63 -0
  204. package/dist/{chunk-AXRABZLY.cjs → chunk-GNEZD7KE.cjs} +0 -2
  205. package/dist/chunk-GNEZQMKH.js +218 -0
  206. package/dist/{chunk-JAGJQDAV.cjs → chunk-HPFQXYKG.cjs} +159 -10
  207. package/dist/{chunk-XYGRVPUA.js → chunk-HWFM4MAT.js} +19 -9
  208. package/dist/{chunk-TC5ZL2OS.cjs → chunk-HZSIUOCN.cjs} +2 -57
  209. package/dist/{chunk-N6ZLZUBF.cjs → chunk-IZOHYJUQ.cjs} +0 -2
  210. package/dist/{chunk-6FSOJLY6.js → chunk-JD7A6VM3.js} +11 -19
  211. package/dist/chunk-K2KYM7LW.cjs +28 -0
  212. package/dist/{chunk-X3QINITU.js → chunk-K6F25JXT.js} +1 -3
  213. package/dist/{chunk-NRP3X3PE.cjs → chunk-KD4YYIIO.cjs} +1 -34
  214. package/dist/chunk-KGSADAOD.cjs +170 -0
  215. package/dist/{chunk-ZHCQEJ2Z.js → chunk-KLEKKZ73.js} +0 -2
  216. package/dist/{chunk-QRSPBK3X.js → chunk-LKK2AA7W.js} +0 -2
  217. package/dist/{chunk-V5KSJITO.cjs → chunk-MQV2XN4B.cjs} +5 -7
  218. package/dist/{chunk-2TNJ7TC4.cjs → chunk-MT7UWY6T.cjs} +2 -4
  219. package/dist/chunk-MUXP7ASL.js +26 -0
  220. package/dist/{chunk-W6I67HQQ.js → chunk-NN25YMOL.js} +0 -2
  221. package/dist/{chunk-474MXYO5.cjs → chunk-NTS5L4NQ.cjs} +3 -5
  222. package/dist/{chunk-CVEGVB2C.js → chunk-OBEKX4VR.js} +2 -34
  223. package/dist/chunk-OF3SGLZY.js +385 -0
  224. package/dist/{chunk-6TRVGFFX.cjs → chunk-OF7JIYBY.cjs} +2 -4
  225. package/dist/chunk-ON4DEDMI.js +113 -0
  226. package/dist/chunk-OQBDU5I2.cjs +104 -0
  227. package/dist/{chunk-ZM4P6ELG.cjs → chunk-OYMJVU66.cjs} +50 -41
  228. package/dist/{chunk-4JHFGSNH.js → chunk-PH3YECMF.js} +1 -3
  229. package/dist/{chunk-3EGZ6TBF.cjs → chunk-PL6DRFUO.cjs} +0 -2
  230. package/dist/chunk-Q5SZIU7Z.cjs +47 -0
  231. package/dist/{chunk-SWB57EA2.js → chunk-QCILPZWP.js} +0 -2
  232. package/dist/chunk-QGHYQCF3.cjs +240 -0
  233. package/dist/chunk-QKQHZIF3.cjs +86 -0
  234. package/dist/{chunk-Q7CDWNM6.cjs → chunk-RF2EY5JS.cjs} +0 -2
  235. package/dist/{chunk-2K5HZLXW.cjs → chunk-S3VXH5L4.cjs} +0 -2
  236. package/dist/{chunk-P4CGE5C7.cjs → chunk-SKMP2A5O.cjs} +5 -7
  237. package/dist/{chunk-RXL26GSI.cjs → chunk-SWBWZIL4.cjs} +0 -2
  238. package/dist/{chunk-YRAQRENN.js → chunk-TEEFR2FD.js} +29 -8
  239. package/dist/{chunk-YVSZLQTQ.cjs → chunk-TEG7NJHS.cjs} +3 -5
  240. package/dist/{chunk-DH4NYYJP.cjs → chunk-TJII7BQ2.cjs} +263 -4
  241. package/dist/{chunk-HHSVGNJA.cjs → chunk-TZJH5HBT.cjs} +6 -8
  242. package/dist/{chunk-T7ZBJJC4.js → chunk-UMDGS4BP.js} +1 -3
  243. package/dist/chunk-USQ43DJ5.js +147 -0
  244. package/dist/{chunk-RNVE2LMJ.cjs → chunk-UUHFKIWP.cjs} +20 -10
  245. package/dist/chunk-WGZ2KJTZ.js +81 -0
  246. package/dist/{chunk-RHZOBQON.js → chunk-WKKSAGYH.js} +40 -31
  247. package/dist/{chunk-XXE5TQ7I.cjs → chunk-WNM5RVXR.cjs} +0 -2
  248. package/dist/{chunk-4XSP4HHZ.js → chunk-XD3JGL5O.js} +2 -4
  249. package/dist/{chunk-44AVDO3T.js → chunk-XRR3CYQL.js} +0 -2
  250. package/dist/{chunk-ZZXNHPF3.js → chunk-XTIN5545.js} +68 -74
  251. package/dist/{chunk-3XIDJEYR.cjs → chunk-YB3IWIOJ.cjs} +0 -2
  252. package/dist/{chunk-EHZXEZI2.cjs → chunk-YLIQ37KY.cjs} +0 -2
  253. package/dist/{chunk-QCNHDDSD.cjs → chunk-ZIP7F4UF.cjs} +4 -22
  254. package/dist/index.cjs +346 -158
  255. package/dist/index.d.cts +23 -17
  256. package/dist/index.d.ts +23 -17
  257. package/dist/index.js +47 -43
  258. package/dist/styles.css +313 -192
  259. package/docs/llms/badge.md +3 -3
  260. package/docs/llms/button.md +7 -38
  261. package/docs/llms/card.md +6 -12
  262. package/docs/llms/cascader.md +19 -0
  263. package/docs/llms/{accordion.md → collapse.md} +13 -11
  264. package/docs/llms/drawer.md +1 -1
  265. package/docs/llms/form.md +1 -1
  266. package/docs/llms/input.md +25 -16
  267. package/docs/llms/message.md +63 -0
  268. package/docs/llms/modal.md +30 -0
  269. package/docs/llms/popover.md +18 -1
  270. package/docs/llms/radio.md +37 -1
  271. package/docs/llms/select.md +20 -0
  272. package/docs/llms/spin.md +59 -0
  273. package/docs/llms/table.md +3 -3
  274. package/docs/llms/tooltip.md +16 -3
  275. package/docs/llms.md +5 -5
  276. package/package.json +19 -53
  277. package/dist/Accordion-REMDCQUD.css +0 -44
  278. package/dist/Accordion.cjs +0 -13
  279. package/dist/Accordion.cjs.map +0 -1
  280. package/dist/Accordion.d.cts +0 -33
  281. package/dist/Accordion.d.ts +0 -33
  282. package/dist/Accordion.js +0 -4
  283. package/dist/Accordion.js.map +0 -1
  284. package/dist/Alert.cjs.map +0 -1
  285. package/dist/Alert.js.map +0 -1
  286. package/dist/AppShell.cjs.map +0 -1
  287. package/dist/AppShell.js.map +0 -1
  288. package/dist/AutoComplete.cjs.map +0 -1
  289. package/dist/AutoComplete.js.map +0 -1
  290. package/dist/Avatar.cjs.map +0 -1
  291. package/dist/Avatar.js.map +0 -1
  292. package/dist/Button.cjs.map +0 -1
  293. package/dist/Button.js.map +0 -1
  294. package/dist/Calendar.cjs.map +0 -1
  295. package/dist/Calendar.js.map +0 -1
  296. package/dist/Card.cjs.map +0 -1
  297. package/dist/Card.js.map +0 -1
  298. package/dist/Cascader.cjs.map +0 -1
  299. package/dist/Cascader.js.map +0 -1
  300. package/dist/Checkbox.cjs.map +0 -1
  301. package/dist/Checkbox.js.map +0 -1
  302. package/dist/ColorPicker.cjs.map +0 -1
  303. package/dist/ColorPicker.js.map +0 -1
  304. package/dist/CommandPalette.cjs.map +0 -1
  305. package/dist/CommandPalette.js.map +0 -1
  306. package/dist/ContextMenu.cjs.map +0 -1
  307. package/dist/ContextMenu.js.map +0 -1
  308. package/dist/Divider.cjs.map +0 -1
  309. package/dist/Divider.js.map +0 -1
  310. package/dist/Drawer.cjs.map +0 -1
  311. package/dist/Drawer.js.map +0 -1
  312. package/dist/Empty-NQ72W3D7.css +0 -160
  313. package/dist/Empty.cjs.map +0 -1
  314. package/dist/Empty.js.map +0 -1
  315. package/dist/Form.cjs.map +0 -1
  316. package/dist/Form.js.map +0 -1
  317. package/dist/Icon.cjs.map +0 -1
  318. package/dist/Icon.js.map +0 -1
  319. package/dist/Image.cjs.map +0 -1
  320. package/dist/Image.js.map +0 -1
  321. package/dist/Input.cjs.map +0 -1
  322. package/dist/Input.js.map +0 -1
  323. package/dist/InputNumber.cjs.map +0 -1
  324. package/dist/InputNumber.js.map +0 -1
  325. package/dist/List.cjs.map +0 -1
  326. package/dist/List.js.map +0 -1
  327. package/dist/Modal.cjs.map +0 -1
  328. package/dist/Modal.js.map +0 -1
  329. package/dist/Pagination.cjs.map +0 -1
  330. package/dist/Pagination.js.map +0 -1
  331. package/dist/Popover.cjs.map +0 -1
  332. package/dist/Popover.js.map +0 -1
  333. package/dist/Progress.cjs.map +0 -1
  334. package/dist/Progress.js.map +0 -1
  335. package/dist/Select.cjs.map +0 -1
  336. package/dist/Select.js.map +0 -1
  337. package/dist/Slider.cjs.map +0 -1
  338. package/dist/Slider.js.map +0 -1
  339. package/dist/Splitter.cjs.map +0 -1
  340. package/dist/Splitter.js.map +0 -1
  341. package/dist/StatusBar.cjs.map +0 -1
  342. package/dist/StatusBar.js.map +0 -1
  343. package/dist/Switch.cjs.map +0 -1
  344. package/dist/Switch.js.map +0 -1
  345. package/dist/Table.cjs.map +0 -1
  346. package/dist/Table.js.map +0 -1
  347. package/dist/Tabs.cjs.map +0 -1
  348. package/dist/Tabs.js.map +0 -1
  349. package/dist/Tag-FGDY3W7E.css +0 -51
  350. package/dist/Tag.cjs.map +0 -1
  351. package/dist/Tag.js.map +0 -1
  352. package/dist/Theme.cjs.map +0 -1
  353. package/dist/Theme.js.map +0 -1
  354. package/dist/Timeline.cjs.map +0 -1
  355. package/dist/Timeline.js.map +0 -1
  356. package/dist/Toast-YSACW3EM.css +0 -45
  357. package/dist/Toast.cjs +0 -17
  358. package/dist/Toast.cjs.map +0 -1
  359. package/dist/Toast.d.cts +0 -26
  360. package/dist/Toast.d.ts +0 -26
  361. package/dist/Toast.js +0 -4
  362. package/dist/Toast.js.map +0 -1
  363. package/dist/Tooltip.cjs.map +0 -1
  364. package/dist/Tooltip.js.map +0 -1
  365. package/dist/Typography.cjs.map +0 -1
  366. package/dist/Typography.js.map +0 -1
  367. package/dist/chunk-2K5HZLXW.cjs.map +0 -1
  368. package/dist/chunk-2LIX7ZHX.js.map +0 -1
  369. package/dist/chunk-2TNJ7TC4.cjs.map +0 -1
  370. package/dist/chunk-2TZ2R7L2.js.map +0 -1
  371. package/dist/chunk-3EGZ6TBF.cjs.map +0 -1
  372. package/dist/chunk-3LJO33HI.js.map +0 -1
  373. package/dist/chunk-3XIDJEYR.cjs.map +0 -1
  374. package/dist/chunk-44AVDO3T.js.map +0 -1
  375. package/dist/chunk-474MXYO5.cjs.map +0 -1
  376. package/dist/chunk-4DNHASZU.js.map +0 -1
  377. package/dist/chunk-4JHFGSNH.js.map +0 -1
  378. package/dist/chunk-4SCDDSXY.js +0 -41
  379. package/dist/chunk-4SCDDSXY.js.map +0 -1
  380. package/dist/chunk-4XSP4HHZ.js.map +0 -1
  381. package/dist/chunk-5VIOJW6M.js.map +0 -1
  382. package/dist/chunk-6CAEGNCK.js +0 -101
  383. package/dist/chunk-6CAEGNCK.js.map +0 -1
  384. package/dist/chunk-6FSOJLY6.js.map +0 -1
  385. package/dist/chunk-6TRVGFFX.cjs.map +0 -1
  386. package/dist/chunk-74VZZAUT.cjs.map +0 -1
  387. package/dist/chunk-A3IJM7IX.js.map +0 -1
  388. package/dist/chunk-ANAQER3T.js.map +0 -1
  389. package/dist/chunk-AXRABZLY.cjs.map +0 -1
  390. package/dist/chunk-BSHHQOFY.js +0 -170
  391. package/dist/chunk-BSHHQOFY.js.map +0 -1
  392. package/dist/chunk-CVEGVB2C.js.map +0 -1
  393. package/dist/chunk-D242UJZO.js.map +0 -1
  394. package/dist/chunk-DB5JMXOI.js.map +0 -1
  395. package/dist/chunk-DCX36FYD.js.map +0 -1
  396. package/dist/chunk-DH4NYYJP.cjs.map +0 -1
  397. package/dist/chunk-DUNQNSVK.js +0 -125
  398. package/dist/chunk-DUNQNSVK.js.map +0 -1
  399. package/dist/chunk-E6K6GYUC.js.map +0 -1
  400. package/dist/chunk-EARCKSI7.js.map +0 -1
  401. package/dist/chunk-EHZXEZI2.cjs.map +0 -1
  402. package/dist/chunk-FBQLNAUI.cjs +0 -123
  403. package/dist/chunk-FBQLNAUI.cjs.map +0 -1
  404. package/dist/chunk-FCIPCZAK.cjs.map +0 -1
  405. package/dist/chunk-FSOJHDXH.js +0 -76
  406. package/dist/chunk-FSOJHDXH.js.map +0 -1
  407. package/dist/chunk-HHSVGNJA.cjs.map +0 -1
  408. package/dist/chunk-HQO7EZNQ.cjs +0 -147
  409. package/dist/chunk-HQO7EZNQ.cjs.map +0 -1
  410. package/dist/chunk-IL523MTN.cjs.map +0 -1
  411. package/dist/chunk-JAGJQDAV.cjs.map +0 -1
  412. package/dist/chunk-JF2WNLPF.cjs.map +0 -1
  413. package/dist/chunk-JS6U7UQS.js.map +0 -1
  414. package/dist/chunk-KA3XLPQJ.cjs.map +0 -1
  415. package/dist/chunk-KWE2PXJQ.js.map +0 -1
  416. package/dist/chunk-LSQD2GFA.js.map +0 -1
  417. package/dist/chunk-MU4GGX6C.cjs.map +0 -1
  418. package/dist/chunk-MUFMJPRT.cjs +0 -64
  419. package/dist/chunk-MUFMJPRT.cjs.map +0 -1
  420. package/dist/chunk-MXIWTYNC.js.map +0 -1
  421. package/dist/chunk-N6ZLZUBF.cjs.map +0 -1
  422. package/dist/chunk-NRP3X3PE.cjs.map +0 -1
  423. package/dist/chunk-P4CGE5C7.cjs.map +0 -1
  424. package/dist/chunk-PX5ABNKV.js +0 -134
  425. package/dist/chunk-PX5ABNKV.js.map +0 -1
  426. package/dist/chunk-Q7CDWNM6.cjs.map +0 -1
  427. package/dist/chunk-QCNHDDSD.cjs.map +0 -1
  428. package/dist/chunk-QRSPBK3X.js.map +0 -1
  429. package/dist/chunk-RHZOBQON.js.map +0 -1
  430. package/dist/chunk-RNVE2LMJ.cjs.map +0 -1
  431. package/dist/chunk-RXL26GSI.cjs.map +0 -1
  432. package/dist/chunk-S3OSBW7R.cjs.map +0 -1
  433. package/dist/chunk-SREMTSVI.cjs.map +0 -1
  434. package/dist/chunk-SWB57EA2.js.map +0 -1
  435. package/dist/chunk-T7ZBJJC4.js.map +0 -1
  436. package/dist/chunk-TC5ZL2OS.cjs.map +0 -1
  437. package/dist/chunk-V24B7KWT.cjs.map +0 -1
  438. package/dist/chunk-V5KSJITO.cjs.map +0 -1
  439. package/dist/chunk-W6I67HQQ.js.map +0 -1
  440. package/dist/chunk-WFFWVQK4.cjs.map +0 -1
  441. package/dist/chunk-WLFMOWUY.js.map +0 -1
  442. package/dist/chunk-X3QINITU.js.map +0 -1
  443. package/dist/chunk-XMFVAYBP.cjs +0 -102
  444. package/dist/chunk-XMFVAYBP.cjs.map +0 -1
  445. package/dist/chunk-XMINE4TN.cjs.map +0 -1
  446. package/dist/chunk-XXE5TQ7I.cjs.map +0 -1
  447. package/dist/chunk-XYGRVPUA.js.map +0 -1
  448. package/dist/chunk-Y7BZMMAV.cjs.map +0 -1
  449. package/dist/chunk-YRAQRENN.js.map +0 -1
  450. package/dist/chunk-YVSZLQTQ.cjs.map +0 -1
  451. package/dist/chunk-ZA36BJIY.cjs.map +0 -1
  452. package/dist/chunk-ZHCQEJ2Z.js.map +0 -1
  453. package/dist/chunk-ZM4P6ELG.cjs.map +0 -1
  454. package/dist/chunk-ZN6VS6SO.js.map +0 -1
  455. package/dist/chunk-ZPDMAMWC.js.map +0 -1
  456. package/dist/chunk-ZZXNHPF3.js.map +0 -1
  457. package/dist/index.cjs.map +0 -1
  458. package/dist/index.js.map +0 -1
  459. package/docs/llms/spinner.md +0 -58
  460. package/docs/llms/toast.md +0 -51
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Table/Table.tsx"],"names":["React","v","jsxs","Fragment","jsx","Checkbox","Icon","Pagination","useFloating","createPortal"],"mappings":"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","file":"chunk-IL523MTN.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Table.css\";\nimport * as React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Icon } from \"../Icon\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Pagination } from \"../Pagination\";\nimport { useFloating } from \"../../utils/useFloating\";\n\nexport type RowKey = string | number;\n\nexport interface TableColumnFilterItem {\n text: React.ReactNode;\n value: string | number;\n}\n\nexport interface TableColumn<Row = any> {\n key: string;\n title: React.ReactNode;\n /** Data key to read from row, or custom render. */\n dataIndex?: keyof Row;\n render?: (value: any, row: Row, index: number) => React.ReactNode;\n width?: number | string;\n align?: \"left\" | \"center\" | \"right\";\n sortable?: boolean;\n /** Filter options shown in header dropdown. Requires `onFilter` (or data index match). */\n filters?: TableColumnFilterItem[];\n /**\n * Predicate to decide whether a row matches a given filter value.\n * If omitted, falls back to strict equality on `row[dataIndex]`.\n */\n onFilter?: (value: string | number, row: Row) => boolean;\n /**\n * Default active filter values. When `filteredValue` is controlled externally via\n * `Table.filteredValue`, prefer managing it at the table level.\n */\n defaultFilteredValue?: (string | number)[];\n /** Controlled filter selection — when provided, makes the column's filter controlled. */\n filteredValue?: (string | number)[];\n}\n\nexport type TableVariant = \"default\" | \"striped\" | \"embossed\" | \"cards\";\n\nexport interface PaginationConfig {\n /** Current page (1-indexed). Makes pagination controlled. */\n current?: number;\n /** Uncontrolled initial page. */\n defaultCurrent?: number;\n /** Items per page. */\n pageSize?: number;\n /** Default items per page (uncontrolled). */\n defaultPageSize?: number;\n /** Total item count. Defaults to `data.length` when omitted. */\n total?: number;\n /** Fired when user picks a page or changes page size. */\n onChange?: (page: number, pageSize: number) => void;\n /** Reserved for future: jump-to-page input. */\n showQuickJumper?: boolean;\n /** Reserved for future: page size dropdown. */\n showSizeChanger?: boolean;\n /** Reserved for future: selectable page sizes. */\n pageSizeOptions?: number[];\n}\n\nexport interface RowSelectionConfig<Row = any> {\n /** \"checkbox\" (default) allows multi-select; \"radio\" allows only one row at a time. */\n type?: \"checkbox\" | \"radio\";\n /** Controlled list of selected row keys. */\n selectedRowKeys?: RowKey[];\n /** Uncontrolled initial selection. */\n defaultSelectedRowKeys?: RowKey[];\n /** Fired on selection change; receives the new keys and matching rows. */\n onChange?: (selectedRowKeys: RowKey[], selectedRows: Row[]) => void;\n /** Per-row switch toggling checkbox disabled state. */\n getCheckboxProps?: (row: Row) => { disabled?: boolean };\n}\n\nexport interface ExpandableConfig<Row = any> {\n /** Controlled expanded row keys. */\n expandedRowKeys?: RowKey[];\n /** Uncontrolled initial expanded row keys. */\n defaultExpandedRowKeys?: RowKey[];\n /** Fired when a row expands / collapses. */\n onExpand?: (expanded: boolean, row: Row) => void;\n /** Render function for the expanded panel. When omitted, no expand UI renders. */\n expandedRowRender?: (row: Row, index: number) => React.ReactNode;\n /** Decide whether a given row can be expanded. */\n rowExpandable?: (row: Row) => boolean;\n}\n\nexport interface TableScrollConfig {\n /** Horizontal scroll: min-width of the inner table. */\n x?: number | string;\n /** Vertical scroll: max body height (with sticky header). */\n y?: number | string;\n}\n\nexport interface TableProps<Row = any>\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onSelect\"> {\n columns: TableColumn<Row>[];\n data: Row[];\n rowKey?: keyof Row | ((row: Row) => RowKey);\n /** Visual variant. */\n variant?: TableVariant;\n /** Hoverable rows. */\n hoverable?: boolean;\n /** Striped rows (shortcut for variant=\"striped\"). */\n striped?: boolean;\n\n /** Sort state — controlled. */\n sortKey?: string;\n sortDir?: \"asc\" | \"desc\";\n onSort?: (key: string) => void;\n\n /**\n * Row selection config — preferred API (antd-style).\n * When provided, takes precedence over `selectable` / `selected` / `onSelect`.\n */\n rowSelection?: RowSelectionConfig<Row>;\n\n /**\n * @deprecated Use `rowSelection` instead. Kept for backwards compatibility.\n */\n selectable?: boolean;\n /**\n * @deprecated Use `rowSelection.selectedRowKeys` instead.\n */\n selected?: RowKey[];\n /**\n * @deprecated Use `rowSelection.onChange` instead.\n */\n onSelect?: (keys: RowKey[]) => void;\n\n /** Expandable row config. */\n expandable?: ExpandableConfig<Row>;\n\n /**\n * Pagination config — `false` disables pagination; otherwise renders a bottom\n * pagination bar and slices the data accordingly.\n */\n pagination?: false | PaginationConfig;\n\n /** Horizontal / vertical scroll config. */\n scroll?: TableScrollConfig;\n\n /** Called when user clicks a row. */\n onRowClick?: (row: Row, index: number) => void;\n /** Empty state. */\n empty?: React.ReactNode;\n className?: string;\n}\n\ntype TableComponent = <Row extends Record<string, any> = any>(\n props: TableProps<Row> & React.RefAttributes<HTMLDivElement>\n) => React.ReactElement | null;\n\nconst TableInner = <Row extends Record<string, any> = any>({\n columns,\n data,\n rowKey,\n variant,\n hoverable = true,\n striped,\n sortKey,\n sortDir = \"asc\",\n onSort,\n rowSelection,\n selectable,\n selected = [],\n onSelect,\n expandable,\n pagination,\n scroll,\n onRowClick,\n empty = \"暂无数据\",\n className = \"\",\n style,\n ...rest\n}: TableProps<Row>, ref: React.ForwardedRef<HTMLDivElement>) => {\n const keyOf = React.useCallback(\n (row: Row, i: number): RowKey => {\n if (typeof rowKey === \"function\") return rowKey(row);\n if (rowKey) return row[rowKey] as any;\n return i;\n },\n [rowKey]\n );\n\n // ---------- Selection (rowSelection OR legacy selectable) ----------\n const selectionMode = rowSelection ? \"new\" : selectable ? \"legacy\" : \"off\";\n const selectionType = rowSelection?.type ?? \"checkbox\";\n\n const [innerSel, setInnerSel] = React.useState<RowKey[]>(\n rowSelection?.defaultSelectedRowKeys ?? []\n );\n const selControlledNew = rowSelection?.selectedRowKeys !== undefined;\n const selectedKeys: RowKey[] =\n selectionMode === \"new\"\n ? selControlledNew\n ? rowSelection!.selectedRowKeys!\n : innerSel\n : selectionMode === \"legacy\"\n ? selected\n : [];\n\n const commitSelected = (next: RowKey[], rows: Row[]) => {\n if (selectionMode === \"new\") {\n if (!selControlledNew) setInnerSel(next);\n rowSelection!.onChange?.(next, rows);\n } else if (selectionMode === \"legacy\") {\n onSelect?.(next);\n }\n };\n\n // ---------- Filters ----------\n // Per-column active filter values (internal state for uncontrolled columns).\n const [innerFilters, setInnerFilters] = React.useState<Record<string, (string | number)[]>>(\n () => {\n const out: Record<string, (string | number)[]> = {};\n for (const c of columns) {\n if (c.defaultFilteredValue && c.defaultFilteredValue.length) {\n out[c.key] = c.defaultFilteredValue;\n }\n }\n return out;\n }\n );\n const activeFilters: Record<string, (string | number)[]> = React.useMemo(() => {\n const out: Record<string, (string | number)[]> = {};\n for (const c of columns) {\n if (!c.filters?.length) continue;\n if (c.filteredValue !== undefined) {\n if (c.filteredValue.length) out[c.key] = c.filteredValue;\n } else if (innerFilters[c.key]?.length) {\n out[c.key] = innerFilters[c.key];\n }\n }\n return out;\n }, [columns, innerFilters]);\n\n const setColumnFilter = (col: TableColumn<Row>, values: (string | number)[]) => {\n if (col.filteredValue !== undefined) return; // controlled — parent must handle\n setInnerFilters((prev) => {\n const next = { ...prev };\n if (values.length === 0) delete next[col.key];\n else next[col.key] = values;\n return next;\n });\n };\n\n const filteredData = React.useMemo(() => {\n const entries = Object.entries(activeFilters);\n if (entries.length === 0) return data;\n return data.filter((row) => {\n for (const [colKey, vals] of entries) {\n const col = columns.find((c) => c.key === colKey);\n if (!col) continue;\n const match = vals.some((v) => {\n if (col.onFilter) return col.onFilter(v, row);\n if (col.dataIndex != null) {\n const cell = (row as any)[col.dataIndex];\n return cell === v || String(cell) === String(v);\n }\n return false;\n });\n if (!match) return false;\n }\n return true;\n });\n }, [data, columns, activeFilters]);\n\n // ---------- Pagination ----------\n const pagEnabled = pagination !== false && pagination !== undefined;\n const pagCfg: PaginationConfig = pagEnabled ? pagination! : {};\n const [innerPage, setInnerPage] = React.useState<number>(\n pagCfg.defaultCurrent ?? 1\n );\n const [innerPageSize, setInnerPageSize] = React.useState<number>(\n pagCfg.defaultPageSize ?? pagCfg.pageSize ?? 10\n );\n const pageControlled = pagCfg.current !== undefined;\n const curPage = pageControlled ? pagCfg.current! : innerPage;\n const curPageSize = pagCfg.pageSize ?? innerPageSize;\n const totalCount = pagCfg.total ?? filteredData.length;\n // Keep internal state in sync when caller changes pageSize uncontrolled->new.\n React.useEffect(() => {\n if (pagCfg.pageSize !== undefined && pagCfg.pageSize !== innerPageSize) {\n setInnerPageSize(pagCfg.pageSize);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pagCfg.pageSize]);\n\n // Reset to page 1 if filters pushed us past the last page\n React.useEffect(() => {\n if (!pagEnabled) return;\n const pages = Math.max(1, Math.ceil(filteredData.length / curPageSize));\n if (!pageControlled && curPage > pages) setInnerPage(pages);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [filteredData.length, curPageSize, pagEnabled]);\n\n const pagedData = React.useMemo(() => {\n if (!pagEnabled) return filteredData;\n // If caller passes a pre-sliced page (total != data length and current is\n // controlled), trust them and don't re-slice.\n if (pagCfg.total !== undefined && pageControlled) {\n return filteredData;\n }\n const start = (curPage - 1) * curPageSize;\n return filteredData.slice(start, start + curPageSize);\n }, [pagEnabled, filteredData, curPage, curPageSize, pagCfg.total, pageControlled]);\n\n const onPageChange = (p: number) => {\n if (!pageControlled) setInnerPage(p);\n pagCfg.onChange?.(p, curPageSize);\n };\n\n // ---------- Expandable ----------\n const [innerExpanded, setInnerExpanded] = React.useState<RowKey[]>(\n expandable?.defaultExpandedRowKeys ?? []\n );\n const expandControlled = expandable?.expandedRowKeys !== undefined;\n const expandedKeys: RowKey[] = expandControlled\n ? expandable!.expandedRowKeys!\n : innerExpanded;\n const hasExpandable = !!expandable?.expandedRowRender;\n\n const toggleExpand = (row: Row, k: RowKey) => {\n const isOpen = expandedKeys.includes(k);\n const next = isOpen ? expandedKeys.filter((x) => x !== k) : [...expandedKeys, k];\n if (!expandControlled) setInnerExpanded(next);\n expandable?.onExpand?.(!isOpen, row);\n };\n\n // ---------- Derived bits ----------\n const v: TableVariant = variant ?? (striped ? \"striped\" : \"default\");\n const rowsToRender = pagedData;\n\n const selectableKeysOnPage = rowsToRender\n .map((r, i) => ({ row: r, k: keyOf(r, i) }))\n .filter(({ row }) => {\n if (selectionMode !== \"new\") return true;\n const props = rowSelection?.getCheckboxProps?.(row);\n return !props?.disabled;\n });\n\n const allSelectedOnPage =\n selectionMode !== \"off\" &&\n selectableKeysOnPage.length > 0 &&\n selectableKeysOnPage.every(({ k }) => selectedKeys.includes(k));\n const someSelectedOnPage =\n selectionMode !== \"off\" &&\n selectableKeysOnPage.some(({ k }) => selectedKeys.includes(k)) &&\n !allSelectedOnPage;\n\n const toggleRow = (row: Row, k: RowKey) => {\n if (selectionMode === \"new\") {\n const props = rowSelection?.getCheckboxProps?.(row);\n if (props?.disabled) return;\n let next: RowKey[];\n if (selectionType === \"radio\") {\n next = [k];\n } else {\n next = selectedKeys.includes(k)\n ? selectedKeys.filter((x) => x !== k)\n : [...selectedKeys, k];\n }\n const nextRows = data.filter((r, i) => next.includes(keyOf(r, i)));\n commitSelected(next, nextRows);\n } else if (selectionMode === \"legacy\") {\n const next = selectedKeys.includes(k)\n ? selectedKeys.filter((x) => x !== k)\n : [...selectedKeys, k];\n commitSelected(next, []);\n }\n };\n const toggleAll = () => {\n if (selectionMode === \"off\") return;\n if (selectionType === \"radio\") return; // radio doesn't support bulk toggle\n if (allSelectedOnPage) {\n // Deselect keys that appear on the current page\n const pageKeys = new Set(selectableKeysOnPage.map(({ k }) => k));\n const next = selectedKeys.filter((k) => !pageKeys.has(k));\n const nextRows = data.filter((r, i) => next.includes(keyOf(r, i)));\n commitSelected(next, nextRows);\n } else {\n // Select union of existing selection + page's selectable keys\n const set = new Set(selectedKeys);\n selectableKeysOnPage.forEach(({ k }) => set.add(k));\n const next = Array.from(set);\n const nextRows = data.filter((r, i) => next.includes(keyOf(r, i)));\n commitSelected(next, nextRows);\n }\n };\n\n const showSelCol = selectionMode !== \"off\";\n const showExpandCol = hasExpandable;\n const extraColCount = (showSelCol ? 1 : 0) + (showExpandCol ? 1 : 0);\n const totalColCount = columns.length + extraColCount;\n\n // ---------- Wrapper styling for scroll ----------\n const wrapStyle: React.CSSProperties = {};\n const innerTableStyle: React.CSSProperties = {};\n let wrapClass = \"table-wrap\";\n if (scroll?.y != null) {\n wrapStyle.maxHeight = scroll.y;\n wrapStyle.overflowY = \"auto\";\n wrapClass += \" scroll-y\";\n }\n if (scroll?.x != null) {\n wrapStyle.overflowX = \"auto\";\n innerTableStyle.minWidth = scroll.x;\n wrapClass += \" scroll-x\";\n }\n\n // ---------- Render ----------\n return (\n <>\n <div\n ref={ref}\n className={`${wrapClass} ${className}`}\n style={{ ...wrapStyle, ...style }}\n {...rest}\n >\n <table\n className={`table ${v} ${hoverable ? \"hoverable\" : \"\"} ${scroll?.y != null ? \"sticky-head\" : \"\"}`}\n style={innerTableStyle}\n >\n <thead>\n <tr>\n {showExpandCol && <th className=\"row-expand\" style={{ width: 40 }} />}\n {showSelCol && (\n <th className=\"row-check\" style={{ width: 44 }}>\n {selectionType === \"checkbox\" && (\n <Checkbox\n checked={allSelectedOnPage}\n indeterminate={someSelectedOnPage}\n onChange={toggleAll}\n />\n )}\n </th>\n )}\n {columns.map((c) => {\n const sorted = sortKey === c.key;\n const hasFilters = !!c.filters?.length;\n const filterActive = !!activeFilters[c.key]?.length;\n return (\n <th\n key={c.key}\n className={`${c.sortable ? \"sortable\" : \"\"} ${sorted ? \"sorted\" : \"\"} ${hasFilters ? \"filterable\" : \"\"}`}\n style={{ width: c.width, textAlign: c.align ?? \"left\" }}\n onClick={() => c.sortable && onSort?.(c.key)}\n >\n <span className=\"th-label\">{c.title}</span>\n {c.sortable && (\n <span className=\"sort-ind\">\n <Icon\n name={sorted ? (sortDir === \"asc\" ? \"chevUp\" : \"chevDown\") : \"chevDown\"}\n size={10}\n />\n </span>\n )}\n {hasFilters && (\n <ColumnFilterButton\n column={c}\n activeValues={activeFilters[c.key] ?? []}\n onApply={(values) => setColumnFilter(c, values)}\n active={filterActive}\n />\n )}\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {rowsToRender.length === 0 ? (\n <tr>\n <td colSpan={totalColCount} className=\"table-empty\">\n {empty}\n </td>\n </tr>\n ) : (\n rowsToRender.map((row, i) => {\n const k = keyOf(row, i);\n const isSel = selectedKeys.includes(k);\n const selProps = rowSelection?.getCheckboxProps?.(row);\n const canExpand =\n hasExpandable && (expandable?.rowExpandable?.(row) ?? true);\n const isExpanded = canExpand && expandedKeys.includes(k);\n return (\n <React.Fragment key={k}>\n <tr\n className={`${onRowClick ? \"clickable\" : \"\"} ${isSel ? \"selected\" : \"\"}`}\n onClick={onRowClick ? () => onRowClick(row, i) : undefined}\n >\n {showExpandCol && (\n <td\n className=\"row-expand\"\n onClick={(e) => {\n e.stopPropagation();\n if (canExpand) toggleExpand(row, k);\n }}\n >\n {canExpand && (\n <button\n type=\"button\"\n className={`expand-btn ${isExpanded ? \"open\" : \"\"}`}\n aria-expanded={isExpanded}\n aria-label={isExpanded ? \"Collapse row\" : \"Expand row\"}\n onClick={(e) => {\n e.stopPropagation();\n toggleExpand(row, k);\n }}\n >\n <Icon name=\"chevRight\" size={12} />\n </button>\n )}\n </td>\n )}\n {showSelCol && (\n <td\n className=\"row-check\"\n onClick={(e) => {\n e.stopPropagation();\n toggleRow(row, k);\n }}\n >\n {selectionType === \"radio\" ? (\n <button\n type=\"button\"\n role=\"radio\"\n aria-checked={isSel}\n disabled={selProps?.disabled}\n className={`radio-dot ${isSel ? \"checked\" : \"\"}`}\n onClick={(e) => {\n e.stopPropagation();\n toggleRow(row, k);\n }}\n />\n ) : (\n <Checkbox\n checked={isSel}\n disabled={selProps?.disabled}\n onChange={() => toggleRow(row, k)}\n />\n )}\n </td>\n )}\n {columns.map((c) => {\n const val = c.dataIndex ? row[c.dataIndex] : undefined;\n return (\n <td key={c.key} style={{ textAlign: c.align ?? \"left\" }}>\n {c.render ? c.render(val, row, i) : (val as React.ReactNode)}\n </td>\n );\n })}\n </tr>\n {isExpanded && expandable?.expandedRowRender && (\n <tr className=\"expanded-row\">\n <td colSpan={totalColCount}>\n <div className=\"expanded-panel\">\n {expandable.expandedRowRender(row, i)}\n </div>\n </td>\n </tr>\n )}\n </React.Fragment>\n );\n })\n )}\n </tbody>\n </table>\n </div>\n {pagEnabled && (\n <div className=\"table-pagination\">\n <Pagination\n total={totalCount}\n pageSize={curPageSize}\n page={curPage}\n onChange={onPageChange}\n />\n </div>\n )}\n </>\n );\n};\n\n/** `Table` — neumorphic data table with sorting, selection and visual variants. */\nexport const Table = React.forwardRef(TableInner) as TableComponent;\n(Table as any).displayName = \"Table\";\n\n/* ============ Column filter button (header popover) ============ */\n\ninterface ColumnFilterButtonProps<Row> {\n column: TableColumn<Row>;\n activeValues: (string | number)[];\n onApply: (values: (string | number)[]) => void;\n active: boolean;\n}\n\nfunction ColumnFilterButton<Row>({\n column,\n activeValues,\n onApply,\n active,\n}: ColumnFilterButtonProps<Row>) {\n const [open, setOpen] = React.useState(false);\n const [draft, setDraft] = React.useState<(string | number)[]>(activeValues);\n const panelRef = React.useRef<HTMLDivElement>(null);\n\n const { triggerRef, floatingStyle } = useFloating<HTMLButtonElement>({\n open,\n placement: \"bottom\",\n panelWidth: 200,\n panelHeight: Math.min(260, (column.filters?.length ?? 0) * 32 + 80),\n alignCross: \"end\",\n });\n\n React.useEffect(() => {\n if (open) setDraft(activeValues);\n }, [open, activeValues]);\n\n React.useEffect(() => {\n if (!open) return;\n const h = (e: MouseEvent) => {\n const t = e.target as Node;\n if (triggerRef.current?.contains(t)) return;\n if (panelRef.current?.contains(t)) return;\n setOpen(false);\n };\n document.addEventListener(\"mousedown\", h);\n return () => document.removeEventListener(\"mousedown\", h);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n\n const toggle = (v: string | number) =>\n setDraft((d) => (d.includes(v) ? d.filter((x) => x !== v) : [...d, v]));\n\n return (\n <>\n <button\n ref={triggerRef}\n type=\"button\"\n className={`filter-ind ${active ? \"active\" : \"\"}`}\n aria-label=\"Filter column\"\n onClick={(e) => {\n e.stopPropagation();\n setOpen((o) => !o);\n }}\n >\n <Icon name=\"filter\" size={10} />\n </button>\n {open &&\n typeof document !== \"undefined\" &&\n createPortal(\n <div\n ref={panelRef}\n className=\"table-filter-panel\"\n style={floatingStyle}\n onClick={(e) => e.stopPropagation()}\n >\n <div className=\"table-filter-options\">\n {(column.filters ?? []).map((f) => (\n <label key={String(f.value)} className=\"table-filter-item\">\n <Checkbox\n checked={draft.includes(f.value)}\n onChange={() => toggle(f.value)}\n />\n <span>{f.text}</span>\n </label>\n ))}\n </div>\n <div className=\"table-filter-actions\">\n <button\n type=\"button\"\n className=\"tf-btn ghost\"\n onClick={() => {\n setDraft([]);\n onApply([]);\n setOpen(false);\n }}\n >\n 重置\n </button>\n <button\n type=\"button\"\n className=\"tf-btn primary\"\n onClick={() => {\n onApply(draft);\n setOpen(false);\n }}\n >\n 确定\n </button>\n </div>\n </div>,\n document.body\n )}\n </>\n );\n}\n\n/* ============ TablePro ============ */\n\nexport interface TableProProps<Row = any> extends Omit<TableProps<Row>, \"title\"> {\n /** Toolbar slot — search input, filter, etc. */\n toolbar?: React.ReactNode;\n /** Right-aligned actions slot in toolbar. */\n actions?: React.ReactNode;\n /** Footer slot — usually <Pagination />. Optional now that `pagination` is built-in. */\n footer?: React.ReactNode;\n /** Title shown above the toolbar. */\n title?: React.ReactNode;\n}\n\n/**\n * `TablePro` — full-featured table card with toolbar, sortable/selectable rows,\n * variants, and a footer slot for pagination.\n *\n * Prefer the built-in `pagination` prop over rendering a `<Pagination />` in the\n * `footer` slot; `footer` still works for custom footers.\n */\nexport function TablePro<Row extends Record<string, any> = any>({\n toolbar,\n actions,\n footer,\n title,\n className = \"\",\n ...tableProps\n}: TableProProps<Row>) {\n return (\n <div className={`table-card ${className}`}>\n {(title || toolbar || actions) && (\n <div className=\"table-toolbar\">\n {title && <div className=\"table-title\">{title}</div>}\n <div className=\"table-toolbar-main\">{toolbar}</div>\n {actions && <div className=\"table-toolbar-actions\">{actions}</div>}\n </div>\n )}\n <Table {...tableProps} className=\"joined\" />\n {footer && <div className=\"table-footer\">{footer}</div>}\n </div>\n );\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Modal/Modal.tsx"],"names":["React","jsxs","Fragment","jsx","Button","ReactDOM","Icon"],"mappings":"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","file":"chunk-JAGJQDAV.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Modal.css\";\nimport * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Icon } from \"../Icon\";\nimport { Button, type ButtonProps } from \"../Button\";\n\nexport interface ModalProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"title\" | \"children\" | \"onClose\"> {\n /** Whether the modal is visible. */\n open: boolean;\n /** Fired by mask click / close button / Esc. Also the fallback for cancel. */\n onClose?: () => void;\n /** Dedicated Cancel callback. Falls back to `onClose` when omitted. */\n onCancel?: () => void;\n /** Fired when the default OK button is clicked. */\n onOk?: () => void;\n title?: React.ReactNode;\n description?: React.ReactNode;\n /**\n * Footer content. Pass `null` to hide the footer, or a custom node to\n * replace the default OK / Cancel buttons.\n */\n footer?: React.ReactNode;\n children?: React.ReactNode;\n width?: number | string;\n /** Show the close (×) button. Default true. */\n closable?: boolean;\n /** Override the close icon node. */\n closeIcon?: React.ReactNode;\n /** Close when clicking the mask. Default true. */\n maskClosable?: boolean;\n /** Close on Escape key. Default true. */\n escClosable?: boolean;\n /** Label for the default OK button. */\n okText?: React.ReactNode;\n /** Label for the default Cancel button. */\n cancelText?: React.ReactNode;\n /** Extra props forwarded to the default OK button. */\n okButtonProps?: Partial<ButtonProps>;\n /** Extra props forwarded to the default Cancel button. */\n cancelButtonProps?: Partial<ButtonProps>;\n /** Show a spinner on the OK button (e.g. while an async submit is running). */\n confirmLoading?: boolean;\n /**\n * When true the modal's children are unmounted every time it closes.\n * Default `false` — children stay mounted so internal state survives\n * reopens, matching antd's default.\n */\n destroyOnClose?: boolean;\n /** Fires after the open/close animation finishes. */\n afterOpenChange?: (open: boolean) => void;\n /** Override the z-index of the overlay. */\n zIndex?: number;\n className?: string;\n}\n\nconst ANIM_MS = 280;\n\n/** `Modal` — centered dialog with mask. Renders into `document.body`. */\nexport const Modal = React.forwardRef<HTMLDivElement, ModalProps>(({\n open,\n onClose,\n onCancel,\n onOk,\n title,\n description,\n footer,\n children,\n width = 440,\n closable = true,\n closeIcon,\n maskClosable = true,\n escClosable = true,\n okText = \"确定\",\n cancelText = \"取消\",\n okButtonProps,\n cancelButtonProps,\n confirmLoading,\n destroyOnClose = false,\n afterOpenChange,\n zIndex,\n className = \"\",\n style,\n onClick,\n ...rest\n}, ref) => {\n const [hasOpenedOnce, setHasOpenedOnce] = React.useState(open);\n React.useEffect(() => {\n if (open) setHasOpenedOnce(true);\n }, [open]);\n\n const handleCancel = React.useCallback(() => {\n if (onCancel) onCancel();\n else onClose?.();\n }, [onCancel, onClose]);\n\n React.useEffect(() => {\n if (!open || !escClosable) return;\n const h = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") handleCancel();\n };\n window.addEventListener(\"keydown\", h);\n return () => window.removeEventListener(\"keydown\", h);\n }, [open, escClosable, handleCancel]);\n\n const prevOpen = React.useRef(open);\n React.useEffect(() => {\n if (prevOpen.current !== open) {\n prevOpen.current = open;\n if (afterOpenChange) {\n const id = window.setTimeout(() => afterOpenChange(open), ANIM_MS);\n return () => window.clearTimeout(id);\n }\n }\n }, [open, afterOpenChange]);\n\n if (typeof document === \"undefined\") return null;\n if (!hasOpenedOnce) return null;\n if (!open && destroyOnClose) return null;\n\n const overlayStyle: React.CSSProperties | undefined =\n zIndex != null ? { zIndex } : undefined;\n\n const defaultFooter = (\n <>\n <Button variant=\"ghost\" onClick={handleCancel} {...cancelButtonProps}>\n {cancelText}\n </Button>\n <Button\n variant=\"primary\"\n loading={confirmLoading}\n onClick={() => onOk?.()}\n {...okButtonProps}\n >\n {okText}\n </Button>\n </>\n );\n\n return ReactDOM.createPortal(\n <div\n className={`modal-overlay ${open ? \"\" : \"hidden\"} ${className}`}\n style={overlayStyle}\n onClick={() => maskClosable && handleCancel()}\n role=\"presentation\"\n >\n <div\n ref={ref}\n className=\"modal\"\n style={{ width, ...style }}\n onClick={(e) => {\n onClick?.(e);\n e.stopPropagation();\n }}\n role=\"dialog\"\n aria-modal\n aria-hidden={!open}\n {...rest}\n >\n {(title || description || closable) && (\n <div className=\"modal-head\">\n <div className=\"modal-titles\">\n {title && <div className=\"modal-title\">{title}</div>}\n {description && <div className=\"modal-desc\">{description}</div>}\n </div>\n {closable && (\n <button\n type=\"button\"\n className=\"modal-close\"\n onClick={handleCancel}\n aria-label=\"Close\"\n >\n {closeIcon ?? <Icon name=\"x\" size={16} />}\n </button>\n )}\n </div>\n )}\n <div className=\"modal-body\">{children}</div>\n {footer === null ? null : (\n <div className=\"modal-foot\">{footer ?? defaultFooter}</div>\n )}\n </div>\n </div>,\n document.body\n );\n});\nModal.displayName = \"Modal\";\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Button/Button.tsx"],"names":["React","jsxs","jsx","Icon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCO,IAAM,MAAA,GAAeA,gBAAA,CAAA,UAAA;AAAA,EAC1B,CACE;AAAA,IACE,QAAA;AAAA,IACA,OAAA,GAAU,SAAA;AAAA,IACV,IAAA,GAAO,IAAA;AAAA,IACP,IAAA;AAAA,IACA,YAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA,GAAY,EAAA;AAAA,IACZ,IAAA,GAAO,QAAA;AAAA,IACP,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,GAAA,GAAM;AAAA,MACV,KAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAS,IAAA,IAAQ,IAAA;AAAA,MACjB,OAAA,IAAW,SAAA;AAAA,MACX,KAAA,IAAS,OAAA;AAAA,MACT,QAAA,IAAY,UAAA;AAAA,MACZ;AAAA,KACF,CACG,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AAEX,IAAA,uBACEC,eAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA;AAAA,QACA,SAAA,EAAW,GAAA;AAAA,QACX,UAAU,QAAA,IAAY,OAAA;AAAA,QACrB,GAAG,IAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,OAAA,mBACCC,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAU,eAAW,IAAA,EAAC,CAAA,GACpC,IAAA,mBACFA,cAAA,CAACC,sBAAA,EAAA,EAAK,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA,GAC1B,IAAA;AAAA,UACH,QAAA;AAAA,UACA,gCAAgBD,cAAA,CAACC,sBAAA,EAAA,EAAK,IAAA,EAAM,YAAA,EAAc,MAAM,EAAA,EAAI;AAAA;AAAA;AAAA,KACvD;AAAA,EAEJ;AACF;AACA,MAAA,CAAO,WAAA,GAAc,QAAA;AAYd,IAAM,UAAA,GAAmBH,gBAAA,CAAA,UAAA;AAAA,EAC9B,CAAC,EAAE,IAAA,EAAM,GAAA,EAAK,YAAY,EAAA,EAAI,GAAG,IAAA,EAAK,EAAG,GAAA,qBACvCE,cAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,QAAQ,SAAS,CAAA,CAAA;AAAA,MAC5B,YAAA,EAAY,GAAA,IAAO,IAAA,CAAK,YAAY,CAAA,IAAK,IAAA;AAAA,MACzC,KAAA,EAAO,GAAA;AAAA,MACN,GAAG,IAAA;AAAA,MAEJ,QAAA,kBAAAA,cAAA,CAACC,sBAAA,EAAA,EAAK,IAAA,EAAM,IAAA,EAAM,MAAM,EAAA,EAAI;AAAA;AAAA;AAGlC;AACA,UAAA,CAAW,WAAA,GAAc,YAAA","file":"chunk-JF2WNLPF.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Button.css\";\nimport * as React from \"react\";\nimport type { IconName } from \"../Icon\";\nimport { Icon } from \"../Icon\";\n\nexport type ButtonVariant = \"default\" | \"primary\" | \"ghost\" | \"danger\";\nexport type ButtonSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface ButtonProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"type\"> {\n /** Visual variant. `primary` uses the accent color; `ghost` is borderless; `danger` is red. */\n variant?: ButtonVariant;\n /** Control height preset. */\n size?: ButtonSize;\n /** Leading icon. */\n icon?: IconName;\n /** Trailing icon. */\n trailingIcon?: IconName;\n /** Show spinner + disable interaction. */\n loading?: boolean;\n /** Make the button fill the container's width. */\n block?: boolean;\n /** Button type attribute. Defaults to \"button\" to avoid accidental form submits. */\n type?: \"button\" | \"submit\" | \"reset\";\n /** Extra class names. */\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * `Button` — the primary action surface.\n *\n * @example\n * <Button variant=\"primary\" icon=\"plus\">新建</Button>\n * <Button variant=\"ghost\" loading>保存</Button>\n */\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n children,\n variant = \"default\",\n size = \"md\",\n icon,\n trailingIcon,\n loading,\n block,\n disabled,\n className = \"\",\n type = \"button\",\n ...rest\n },\n ref\n ) => {\n const cls = [\n \"btn\",\n variant,\n size !== \"md\" && size,\n loading && \"loading\",\n block && \"block\",\n disabled && \"disabled\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <button\n ref={ref}\n type={type}\n className={cls}\n disabled={disabled || loading}\n {...rest}\n >\n {loading ? (\n <span className=\"spinner\" aria-hidden />\n ) : icon ? (\n <Icon name={icon} size={15} />\n ) : null}\n {children}\n {trailingIcon && <Icon name={trailingIcon} size={15} />}\n </button>\n );\n }\n);\nButton.displayName = \"Button\";\n\nexport interface IconButtonProps\n extends Omit<ButtonProps, \"icon\" | \"children\"> {\n icon: IconName;\n tip?: string;\n \"aria-label\"?: string;\n}\n\n/**\n * `IconButton` — square button containing just an icon. Pair with a tooltip.\n */\nexport const IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(\n ({ icon, tip, className = \"\", ...rest }, ref) => (\n <Button\n ref={ref}\n className={`icon ${className}`}\n aria-label={tip || rest[\"aria-label\"] || icon}\n title={tip}\n {...rest}\n >\n <Icon name={icon} size={16} />\n </Button>\n )\n);\nIconButton.displayName = \"IconButton\";\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Timeline/Timeline.tsx"],"names":[],"mappings":"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","file":"chunk-JS6U7UQS.js","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Timeline.css\";\nimport * as React from \"react\";\nimport { Spinner } from \"../Empty\";\n\nexport interface TimelineItemConfig {\n /** Unique key for the item */\n key?: string;\n /** Content displayed on the right (or main side) */\n children?: React.ReactNode;\n /** Label displayed on the opposite side (alternate/label mode) */\n label?: React.ReactNode;\n /** Dot color */\n color?: \"accent\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"muted\";\n /** Custom dot content (replaces default dot) */\n dot?: React.ReactNode;\n}\n\nexport interface TimelineProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"children\"> {\n /** Timeline items */\n items: TimelineItemConfig[];\n /**\n * Show a pending (loading) item at the end.\n * `true` renders a default spinner; a ReactNode renders custom content.\n */\n pending?: boolean | React.ReactNode;\n /** Text shown as the pending item's content */\n pendingContent?: React.ReactNode;\n /** Layout mode */\n mode?: \"left\" | \"right\" | \"alternate\";\n /** Reverse the order of items */\n reverse?: boolean;\n}\n\n/**\n * `Timeline` — vertical timeline with pending/loading state.\n *\n * @example\n * <Timeline items={[{ children: \"Created\" }, { children: \"In Progress\" }]} pending />\n */\nexport const Timeline = React.forwardRef<HTMLDivElement, TimelineProps>(\n (\n {\n items,\n pending = false,\n pendingContent = \"加载中...\",\n mode = \"left\",\n reverse = false,\n className = \"\",\n ...rest\n },\n ref\n ) => {\n const displayItems = [...items];\n if (reverse) displayItems.reverse();\n\n const hasPending = pending !== false;\n\n return (\n <div\n ref={ref}\n className={`timeline timeline-${mode} ${className}`}\n {...rest}\n >\n {displayItems.map((item, i) => (\n <TimelineItem\n key={item.key ?? i}\n item={item}\n isLast={!hasPending && i === displayItems.length - 1}\n position={getPosition(mode, i)}\n />\n ))}\n {hasPending && (\n <TimelineItem\n item={{\n children: pendingContent,\n dot: typeof pending === \"boolean\" ? undefined : pending,\n color: \"muted\",\n }}\n isLast\n isPending\n position={getPosition(mode, displayItems.length)}\n />\n )}\n </div>\n );\n }\n);\nTimeline.displayName = \"Timeline\";\n\nfunction getPosition(\n mode: \"left\" | \"right\" | \"alternate\",\n index: number\n): \"left\" | \"right\" {\n if (mode === \"left\") return \"left\";\n if (mode === \"right\") return \"right\";\n return index % 2 === 0 ? \"left\" : \"right\";\n}\n\ninterface TimelineItemInternalProps {\n item: TimelineItemConfig;\n isLast: boolean;\n isPending?: boolean;\n position: \"left\" | \"right\";\n}\n\nconst TimelineItem: React.FC<TimelineItemInternalProps> = ({\n item,\n isLast,\n isPending,\n position,\n}) => {\n const color = item.color ?? \"accent\";\n const cls = [\n \"timeline-item\",\n `timeline-item-${position}`,\n isLast ? \"timeline-item-last\" : \"\",\n isPending ? \"timeline-item-pending\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <div className={cls}>\n <div className=\"timeline-item-label\">{item.label}</div>\n <div className=\"timeline-item-head\">\n <div className={`timeline-item-dot ${color} ${isPending ? \"pending\" : \"\"}`}>\n {item.dot ?? (isPending && <Spinner size={14} />)}\n </div>\n {!isLast && <div className=\"timeline-item-tail\" />}\n </div>\n <div className=\"timeline-item-content\">{item.children}</div>\n </div>\n );\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Alert/Alert.tsx"],"names":["React","jsxs","jsx","Icon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBO,IAAM,KAAA,GAAcA,4BAAuC,CAAC;AAAA,EACjE,IAAA,GAAO,MAAA;AAAA,EACP,KAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA,GAAW,IAAA;AAAA,EACX,QAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAG,GAAA,KAAQ;AACT,EAAA,MAAM,QAAA,GACJ,SAAS,IAAA,KAAS,SAAA,GAAY,WAAW,IAAA,KAAS,SAAA,IAAa,IAAA,KAAS,QAAA,GAAW,OAAA,GAAU,MAAA,CAAA;AAC/F,EAAA,uBACEC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,CAAA,MAAA,EAAS,IAAI,CAAA,CAAA,EAAI,KAAA,GAAQ,EAAA,GAAK,UAAU,CAAA,CAAA,EAAI,QAAA,GAAW,EAAA,GAAK,SAAS,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA;AAAA,MAC7F,IAAA,EAAK,OAAA;AAAA,MACJ,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA,oBACCC,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAA,EACd,QAAA,kBAAAA,cAAA,CAACC,0BAAK,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,EAAA,EAAI,CAAA,EAClC,CAAA;AAAA,wBAEFF,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,YAAA,EACZ,QAAA,EAAA;AAAA,UAAA,KAAA,oBAASC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,aAAA,EAAe,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,UAC7C,QAAA,oBAAYA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAc,QAAA,EAAS;AAAA,SAAA,EACrD,CAAA;AAAA,QACC,MAAA,oBAAUA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAgB,QAAA,EAAA,MAAA,EAAO,CAAA;AAAA,QAChD,4BACCA,cAAA,CAAC,QAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,WAAU,aAAA,EAAc,OAAA,EAAS,OAAA,EAAS,YAAA,EAAW,WACzE,QAAA,kBAAAA,cAAA,CAACC,sBAAA,EAAA,EAAK,MAAK,GAAA,EAAI,IAAA,EAAM,IAAI,CAAA,EAC3B;AAAA;AAAA;AAAA,GAEJ;AAEJ,CAAC;AACD,KAAA,CAAM,WAAA,GAAc,OAAA","file":"chunk-KA3XLPQJ.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Alert.css\";\nimport * as React from \"react\";\nimport { Icon, type IconName } from \"../Icon\";\n\nexport type AlertTone = \"info\" | \"success\" | \"warning\" | \"danger\";\n\nexport interface AlertProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"title\" | \"children\"> {\n tone?: AlertTone;\n title?: React.ReactNode;\n children?: React.ReactNode;\n icon?: IconName;\n /** Controls the leading semantic icon. Defaults to `true`. */\n showIcon?: boolean;\n closable?: boolean;\n onClose?: () => void;\n /** Right-side action area, rendered after the content and before the close button. */\n action?: React.ReactNode;\n className?: string;\n}\n\n/** `Alert` — inline contextual message. */\nexport const Alert = React.forwardRef<HTMLDivElement, AlertProps>(({\n tone = \"info\",\n title,\n children,\n icon,\n showIcon = true,\n closable,\n onClose,\n action,\n className = \"\",\n ...rest\n}, ref) => {\n const iconName: IconName =\n icon ?? (tone === \"success\" ? \"check2\" : tone === \"warning\" || tone === \"danger\" ? \"alert\" : \"info\");\n return (\n <div\n ref={ref}\n className={`alert ${tone} ${title ? \"\" : \"no-title\"} ${showIcon ? \"\" : \"no-icon\"} ${className}`}\n role=\"alert\"\n {...rest}\n >\n {showIcon && (\n <span className=\"alert-ico\">\n <Icon name={iconName} size={14} />\n </span>\n )}\n <div className=\"alert-body\">\n {title && <div className=\"alert-title\">{title}</div>}\n {children && <div className=\"alert-desc\">{children}</div>}\n </div>\n {action && <div className=\"alert-action\">{action}</div>}\n {closable && (\n <button type=\"button\" className=\"alert-close\" onClick={onClose} aria-label=\"Dismiss\">\n <Icon name=\"x\" size={12} />\n </button>\n )}\n </div>\n );\n});\nAlert.displayName = \"Alert\";\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":";;;;;;;AAkBO,IAAM,MAAA,GAAe,iBAAwC,CAAC;AAAA,EACnE,GAAA;AAAA,EACA,GAAA,GAAM,EAAA;AAAA,EACN,QAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,KAAA,GAAQ,QAAA;AAAA,EACR,MAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAG,GAAA,KAAQ;AACT,EAAA,MAAM,UAAU,OAAO,IAAA,KAAS,QAAA,IAAY,IAAA,KAAS,OAAO,IAAA,GAAO,EAAA;AACnE,EAAA,MAAM,QAAA,GAAW,KAAA,KAAU,QAAA,GAAW,QAAA,GAAW,EAAA;AACjD,EAAA,MAAM,WAAA,GACJ,OAAO,IAAA,KAAS,QAAA,GAAW,EAAE,CAAC,QAAiB,GAAG,CAAA,EAAG,IAAI,CAAA,EAAA,CAAA,EAAM,GAAG,KAAA,EAAM,GAAI,SAAS,EAAC;AACxF,EAAA,MAAM,QAAQ,QAAA,IAAY,GAAA,CAAI,MAAM,CAAA,EAAG,CAAC,EAAE,WAAA,EAAY;AACtD,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,CAAA,OAAA,EAAU,OAAO,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA,CAAG,IAAA,EAAK,CAAE,OAAA,CAAQ,MAAA,EAAQ,GAAG,CAAA;AAAA,MAClF,KAAA,EAAO,WAAA;AAAA,MACN,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,GAAA,uBAAO,KAAA,EAAA,EAAI,GAAA,EAAU,KAAU,CAAA,mBAAK,GAAA,CAAC,UAAM,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,QACjD,0BAAU,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,CAAA,cAAA,EAAiB,MAAM,CAAA,CAAA,EAAI;AAAA;AAAA;AAAA,GACzD;AAEJ,CAAC;AACD,MAAA,CAAO,WAAA,GAAc,QAAA","file":"chunk-KWE2PXJQ.js","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Avatar.css\";\nimport * as React from \"react\";\n\nexport interface AvatarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"children\"> {\n src?: string;\n alt?: string;\n /** Initials if no image. Auto-derived from `alt` if omitted. */\n initials?: string;\n size?: number | \"sm\" | \"md\" | \"lg\" | \"xl\";\n /** Shape — circular (default) or rounded-square. */\n shape?: \"circle\" | \"square\";\n /** Status dot. */\n status?: \"online\" | \"busy\" | \"away\" | \"offline\";\n}\n\n/** `Avatar` — user image or initials chip. */\nexport const Avatar = React.forwardRef<HTMLDivElement, AvatarProps>(({\n src,\n alt = \"\",\n initials,\n size = \"md\",\n shape = \"circle\",\n status,\n className = \"\",\n style,\n ...rest\n}, ref) => {\n const sizeCls = typeof size === \"string\" && size !== \"md\" ? size : \"\";\n const shapeCls = shape === \"square\" ? \"square\" : \"\";\n const customStyle: React.CSSProperties =\n typeof size === \"number\" ? { [\"--size\" as never]: `${size}px`, ...style } : style ?? {};\n const shown = initials ?? alt.slice(0, 2).toUpperCase();\n return (\n <div\n ref={ref}\n className={`avatar ${sizeCls} ${shapeCls} ${className}`.trim().replace(/\\s+/g, \" \")}\n style={customStyle}\n {...rest}\n >\n {src ? <img src={src} alt={alt} /> : <span>{shown}</span>}\n {status && <span className={`avatar-status ${status}`} />}\n </div>\n );\n});\nAvatar.displayName = \"Avatar\";\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/InputNumber/InputNumber.tsx"],"names":[],"mappings":"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","file":"chunk-LSQD2GFA.js","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./InputNumber.css\";\nimport * as React from \"react\";\nimport { Input } from \"../Input\";\nimport { Icon } from \"../Icon\";\n\nexport interface InputNumberProps\n extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"value\" | \"defaultValue\" | \"onChange\" | \"size\" | \"prefix\" | \"suffix\" | \"type\"\n > {\n /** Controlled value. `null` = empty field. */\n value?: number | null;\n /** Uncontrolled initial value. */\n defaultValue?: number;\n /** Fires with the parsed number (or `null` when the input is emptied). */\n onChange?: (value: number | null) => void;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n /** Fires when the Enter key is pressed (matches antd's `onPressEnter`). */\n onPressEnter?: React.KeyboardEventHandler<HTMLInputElement>;\n min?: number;\n max?: number;\n /** Step for up/down buttons + arrow keys. Default 1. */\n step?: number;\n /** Number of decimal places to round to. Omit for no rounding. */\n precision?: number;\n size?: \"sm\" | \"md\" | \"lg\";\n disabled?: boolean;\n readOnly?: boolean;\n placeholder?: string;\n /** Show the up/down stepper buttons. Default true. */\n controls?: boolean;\n invalid?: boolean;\n className?: string;\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n}\n\n/**\n * `InputNumber` — numeric input with up/down stepper buttons. Arrow-key\n * and mouse-wheel increments; min / max clamping; optional rounding.\n *\n * @example\n * ```tsx\n * <InputNumber min={0} max={100} step={1} defaultValue={10} onChange={...} />\n * ```\n */\nexport const InputNumber = React.forwardRef<HTMLInputElement, InputNumberProps>(\n (\n {\n value,\n defaultValue,\n onChange,\n onBlur,\n onFocus,\n onPressEnter,\n min = -Infinity,\n max = Infinity,\n step = 1,\n precision,\n size = \"md\",\n disabled,\n readOnly,\n placeholder,\n controls = true,\n invalid,\n className = \"\",\n prefix,\n suffix,\n autoFocus,\n id,\n name,\n },\n ref\n ) => {\n const [inner, setInner] = React.useState<number | null>(defaultValue ?? null);\n const isControlled = value !== undefined;\n const current = isControlled ? (value as number | null) : inner;\n\n const [text, setText] = React.useState<string>(current == null ? \"\" : String(current));\n\n React.useEffect(() => {\n if (isControlled) setText(value == null ? \"\" : String(value));\n }, [value, isControlled]);\n\n const clamp = React.useCallback(\n (n: number) => Math.max(min, Math.min(max, n)),\n [min, max]\n );\n const round = React.useCallback(\n (n: number) => (precision != null ? Number(n.toFixed(precision)) : n),\n [precision]\n );\n\n const commit = (next: number | null) => {\n if (!isControlled) setInner(next);\n onChange?.(next);\n };\n\n const handleInput = (v: string) => {\n setText(v);\n if (v === \"\" || v === \"-\") {\n commit(null);\n return;\n }\n const parsed = Number(v);\n if (!Number.isNaN(parsed)) commit(clamp(round(parsed)));\n };\n\n const handleBlur: React.FocusEventHandler<HTMLInputElement> = (e) => {\n // Normalize displayed text to the committed numeric value.\n if (current == null) setText(\"\");\n else setText(String(current));\n onBlur?.(e);\n };\n\n const increment = (delta: number) => {\n if (disabled || readOnly) return;\n const base = current ?? 0;\n const next = clamp(round(base + delta));\n if (!isControlled) setInner(next);\n setText(String(next));\n onChange?.(next);\n };\n\n const handleKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (e) => {\n if (e.key === \"ArrowUp\") { e.preventDefault(); increment(step); }\n if (e.key === \"ArrowDown\") { e.preventDefault(); increment(-step); }\n if (e.key === \"Enter\") onPressEnter?.(e);\n };\n\n const upDisabled = disabled || readOnly || (current != null && current >= max);\n const downDisabled = disabled || readOnly || (current != null && current <= min);\n\n const stepperSuffix = controls ? (\n <span className=\"ipn-steppers\" aria-hidden>\n <button\n type=\"button\"\n className=\"ipn-step up\"\n tabIndex={-1}\n disabled={upDisabled}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => increment(step)}\n >\n <Icon name=\"chevUp\" size={10} stroke={2.5} />\n </button>\n <button\n type=\"button\"\n className=\"ipn-step down\"\n tabIndex={-1}\n disabled={downDisabled}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => increment(-step)}\n >\n <Icon name=\"chevDown\" size={10} stroke={2.5} />\n </button>\n </span>\n ) : null;\n\n const finalSuffix =\n stepperSuffix && suffix\n ? (<>{suffix}{stepperSuffix}</>)\n : stepperSuffix ?? suffix;\n\n return (\n <Input\n ref={ref}\n id={id}\n name={name}\n size={size}\n value={text}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n invalid={invalid}\n autoFocus={autoFocus}\n prefix={prefix}\n suffix={finalSuffix}\n className={`input-number ${className}`}\n inputMode=\"decimal\"\n onChange={handleInput}\n onKeyDown={handleKeyDown}\n onBlur={handleBlur}\n onFocus={onFocus}\n />\n );\n }\n);\nInputNumber.displayName = \"InputNumber\";\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Pagination/Pagination.tsx"],"names":["React","jsxs","jsx","Icon","Select"],"mappings":"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","file":"chunk-MU4GGX6C.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Pagination.css\";\nimport * as React from \"react\";\nimport { Icon } from \"../Icon\";\nimport { Select } from \"../Select\";\n\nexport interface PaginationProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n /** Total number of items. */\n total: number;\n /** Items per page. */\n pageSize?: number;\n /** Current page (1-indexed). */\n page?: number;\n defaultPage?: number;\n onChange?: (page: number) => void;\n /** Max visible page buttons (before ellipsis logic). */\n siblings?: number;\n /**\n * Render a \"跳至 N 页\" input to the right of the page buttons. Enter key commits\n * and clamps to `1..totalPages`.\n */\n showQuickJumper?: boolean;\n /**\n * Render a Select to let the user switch the page size. Resetting the size sends the\n * user back to page 1 and calls both `onShowSizeChange` and `onChange(1)`.\n */\n showSizeChanger?: boolean;\n /** Page size choices for `showSizeChanger`. Defaults to `[10, 20, 50, 100]`. */\n pageSizeOptions?: number[];\n /** Fires when the user picks a new page size via the size changer. */\n onShowSizeChange?: (current: number, size: number) => void;\n className?: string;\n}\n\nconst DEFAULT_SIZE_OPTIONS = [10, 20, 50, 100];\n\n/** `Pagination` — page number controls. */\nexport const Pagination = React.forwardRef<HTMLDivElement, PaginationProps>(({\n total,\n pageSize = 10,\n page,\n defaultPage = 1,\n onChange,\n siblings = 1,\n showQuickJumper = false,\n showSizeChanger = false,\n pageSizeOptions = DEFAULT_SIZE_OPTIONS,\n onShowSizeChange,\n className = \"\",\n ...rest\n}, ref) => {\n const [inner, setInner] = React.useState(defaultPage);\n const isControlled = page !== undefined;\n const cur = isControlled ? page! : inner;\n const pages = Math.max(1, Math.ceil(total / pageSize));\n const [jumpDraft, setJumpDraft] = React.useState(\"\");\n\n const go = (p: number) => {\n const next = Math.min(pages, Math.max(1, p));\n if (!isControlled) setInner(next);\n onChange?.(next);\n };\n\n const handleJump = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key !== \"Enter\") return;\n const n = Number(jumpDraft);\n if (!Number.isFinite(n) || n < 1) {\n setJumpDraft(\"\");\n return;\n }\n go(Math.trunc(n));\n setJumpDraft(\"\");\n };\n\n const handleSizeChange = (size: number) => {\n onShowSizeChange?.(cur, size);\n // reset to page 1 — Ant Design parity\n if (!isControlled) setInner(1);\n onChange?.(1);\n };\n\n const range = (): (number | \"...\")[] => {\n const out: (number | \"...\")[] = [];\n const add = (n: number | \"...\") => out.push(n);\n const s = Math.max(2, cur - siblings);\n const e = Math.min(pages - 1, cur + siblings);\n add(1);\n if (s > 2) add(\"...\");\n for (let i = s; i <= e; i++) add(i);\n if (e < pages - 1) add(\"...\");\n if (pages > 1) add(pages);\n return out;\n };\n\n return (\n <div ref={ref} className={`pagination ${className}`} {...rest}>\n <span className=\"pg-info\">\n 共 {total} 条 · 第 {cur} / {pages} 页\n </span>\n <div className=\"pg-controls\">\n <button\n type=\"button\"\n className={`pg ${cur === 1 ? \"disabled\" : \"\"}`}\n onClick={() => cur > 1 && go(cur - 1)}\n aria-label=\"Previous\"\n >\n <Icon name=\"chevLeft\" size={12} />\n </button>\n {range().map((p, i) =>\n p === \"...\" ? (\n <span key={`e${i}`} className=\"ellipsis\">…</span>\n ) : (\n <button\n key={p}\n type=\"button\"\n className={`pg ${p === cur ? \"active\" : \"\"}`}\n onClick={() => go(p)}\n >\n {p}\n </button>\n )\n )}\n <button\n type=\"button\"\n className={`pg ${cur === pages ? \"disabled\" : \"\"}`}\n onClick={() => cur < pages && go(cur + 1)}\n aria-label=\"Next\"\n >\n <Icon name=\"chevRight\" size={12} />\n </button>\n {showSizeChanger && (\n <div className=\"pg-size-changer\">\n <Select<number>\n value={pageSize}\n size=\"sm\"\n options={pageSizeOptions.map((n) => ({ value: n, label: `${n} 条/页` }))}\n onChange={handleSizeChange}\n />\n </div>\n )}\n {showQuickJumper && (\n <label className=\"pg-jumper\">\n <span className=\"pg-jumper-label\">跳至</span>\n <input\n type=\"text\"\n inputMode=\"numeric\"\n className=\"pg-jumper-input\"\n value={jumpDraft}\n onChange={(e) => setJumpDraft(e.target.value.replace(/[^\\d]/g, \"\"))}\n onKeyDown={handleJump}\n aria-label=\"跳转到指定页\"\n />\n <span className=\"pg-jumper-label\">页</span>\n </label>\n )}\n </div>\n </div>\n );\n});\nPagination.displayName = \"Pagination\";\n"]}
@@ -1,64 +0,0 @@
1
- 'use strict';
2
-
3
- require('./tokens-BIIUTPKN.css');
4
- require('./shared-NJHRNLRH.css');
5
- require('./Card-RG7ECXL2.css');
6
- var React = require('react');
7
- var jsxRuntime = require('react/jsx-runtime');
8
-
9
- function _interopNamespace(e) {
10
- if (e && e.__esModule) return e;
11
- var n = Object.create(null);
12
- if (e) {
13
- Object.keys(e).forEach(function (k) {
14
- if (k !== 'default') {
15
- var d = Object.getOwnPropertyDescriptor(e, k);
16
- Object.defineProperty(n, k, d.get ? d : {
17
- enumerable: true,
18
- get: function () { return e[k]; }
19
- });
20
- }
21
- });
22
- }
23
- n.default = e;
24
- return Object.freeze(n);
25
- }
26
-
27
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
28
-
29
- // src/components/Card/Card.tsx
30
- var Card = React__namespace.forwardRef(
31
- ({ variant = "raised", padding = "md", hoverable, className = "", children, ...rest }, ref) => {
32
- const cls = [
33
- "card",
34
- variant,
35
- padding !== "md" && `pad-${padding}`,
36
- hoverable && "hoverable",
37
- className
38
- ].filter(Boolean).join(" ");
39
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cls, ...rest, children });
40
- }
41
- );
42
- Card.displayName = "Card";
43
- var Panel = ({
44
- title,
45
- description,
46
- actions,
47
- children,
48
- className = "",
49
- ...rest
50
- }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `panel ${className}`, ...rest, children: [
51
- (title || actions) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "panel-head", children: [
52
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "panel-titles", children: [
53
- title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "panel-title", children: title }),
54
- description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "panel-desc", children: description })
55
- ] }),
56
- actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "panel-actions", children: actions })
57
- ] }),
58
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "panel-body", children })
59
- ] });
60
-
61
- exports.Card = Card;
62
- exports.Panel = Panel;
63
- //# sourceMappingURL=chunk-MUFMJPRT.cjs.map
64
- //# sourceMappingURL=chunk-MUFMJPRT.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Card/Card.tsx"],"names":["React","jsxs","jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBO,IAAM,IAAA,GAAaA,gBAAA,CAAA,UAAA;AAAA,EACxB,CAAC,EAAE,OAAA,GAAU,QAAA,EAAU,OAAA,GAAU,IAAA,EAAM,SAAA,EAAW,SAAA,GAAY,EAAA,EAAI,QAAA,EAAU,GAAG,IAAA,IAAQ,GAAA,KAAQ;AAC7F,IAAA,MAAM,GAAA,GAAM;AAAA,MACV,MAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA,KAAY,IAAA,IAAQ,CAAA,IAAA,EAAO,OAAO,CAAA,CAAA;AAAA,MAClC,SAAA,IAAa,WAAA;AAAA,MACb;AAAA,KACF,CACG,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AACX,IAAA,sCACG,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,GAAA,EAAM,GAAG,MAChC,QAAA,EACH,CAAA;AAAA,EAEJ;AACF;AACA,IAAA,CAAK,WAAA,GAAc,MAAA;AAYZ,IAAM,QAA8B,CAAC;AAAA,EAC1C,KAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,qCACG,KAAA,EAAA,EAAI,SAAA,EAAW,SAAS,SAAS,CAAA,CAAA,EAAK,GAAG,IAAA,EACtC,QAAA,EAAA;AAAA,EAAA,CAAA,KAAA,IAAS,OAAA,qBACTC,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,YAAA,EACb,QAAA,EAAA;AAAA,oBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,cAAA,EACZ,QAAA,EAAA;AAAA,MAAA,KAAA,oBAASC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,aAAA,EAAe,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,MAC7C,WAAA,oBAAeA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAc,QAAA,EAAA,WAAA,EAAY;AAAA,KAAA,EAC3D,CAAA;AAAA,IACC,OAAA,oBAAWA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAiB,QAAA,EAAA,OAAA,EAAQ;AAAA,GAAA,EACtD,CAAA;AAAA,kBAEFA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,YAAA,EAAc,QAAA,EAAS;AAAA,CAAA,EACxC","file":"chunk-MUFMJPRT.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Card.css\";\nimport * as React from \"react\";\n\nexport interface CardProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Visual variant. `raised` protrudes; `sunken` recesses; `flat` is subtle. */\n variant?: \"raised\" | \"sunken\" | \"flat\";\n /** Inner padding. */\n padding?: \"none\" | \"sm\" | \"md\" | \"lg\";\n /** When true, the card raises and lifts on hover. */\n hoverable?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * `Card` — neumorphic surface container. Use to group related content.\n */\nexport const Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ variant = \"raised\", padding = \"md\", hoverable, className = \"\", children, ...rest }, ref) => {\n const cls = [\n \"card\",\n variant,\n padding !== \"md\" && `pad-${padding}`,\n hoverable && \"hoverable\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n return (\n <div ref={ref} className={cls} {...rest}>\n {children}\n </div>\n );\n }\n);\nCard.displayName = \"Card\";\n\nexport interface PanelProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"title\"> {\n title?: React.ReactNode;\n description?: React.ReactNode;\n actions?: React.ReactNode;\n children?: React.ReactNode;\n}\n\n/**\n * `Panel` — a titled `Card` with optional actions row.\n */\nexport const Panel: React.FC<PanelProps> = ({\n title,\n description,\n actions,\n children,\n className = \"\",\n ...rest\n}) => (\n <div className={`panel ${className}`} {...rest}>\n {(title || actions) && (\n <div className=\"panel-head\">\n <div className=\"panel-titles\">\n {title && <div className=\"panel-title\">{title}</div>}\n {description && <div className=\"panel-desc\">{description}</div>}\n </div>\n {actions && <div className=\"panel-actions\">{actions}</div>}\n </div>\n )}\n <div className=\"panel-body\">{children}</div>\n </div>\n);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/AutoComplete/AutoComplete.tsx"],"names":[],"mappings":"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","file":"chunk-MXIWTYNC.js","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./AutoComplete.css\";\nimport * as React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Input } from \"../Input\";\nimport { useFloating } from \"../../utils/useFloating\";\n\nexport interface AutoCompleteOption {\n value: string;\n /** Display label. Defaults to `value`. */\n label?: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface AutoCompleteProps\n extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"value\" | \"defaultValue\" | \"onChange\" | \"onSelect\" | \"size\"\n > {\n value?: string;\n defaultValue?: string;\n onChange?: (value: string, option?: AutoCompleteOption) => void;\n /** Fires when a suggestion is selected (click or Enter). */\n onSelect?: (value: string, option: AutoCompleteOption) => void;\n /** Fires on every keystroke — typically used to fetch fresh suggestions. */\n onSearch?: (text: string) => void;\n /** Suggestion list. Empty-string value is filtered out. */\n options: AutoCompleteOption[];\n placeholder?: string;\n disabled?: boolean;\n allowClear?: boolean;\n /** Override the default substring filter. `false` keeps every option. */\n filterOption?: boolean | ((input: string, option: AutoCompleteOption) => boolean);\n /** Content shown when no option matches. */\n notFoundContent?: React.ReactNode;\n size?: \"sm\" | \"md\" | \"lg\";\n className?: string;\n /** Class on the popped-out panel. */\n dropdownClassName?: string;\n /** Force the panel to be as wide as the input. Default true. */\n matchTriggerWidth?: boolean;\n}\n\nconst DEFAULT_FILTER = (input: string, option: AutoCompleteOption) => {\n if (!input) return true;\n const hay = `${option.value} ${typeof option.label === \"string\" ? option.label : \"\"}`.toLowerCase();\n return hay.includes(input.toLowerCase());\n};\n\n/**\n * `AutoComplete` — text input with a filtered suggestion dropdown.\n * Follows antd's API shape (value / onChange / onSelect / options / filterOption).\n *\n * @example\n * ```tsx\n * <AutoComplete\n * options={[{ value: \"light\" }, { value: \"dark\" }]}\n * onSelect={(v) => console.log(v)}\n * placeholder=\"主题\"\n * />\n * ```\n */\nexport const AutoComplete = React.forwardRef<HTMLInputElement, AutoCompleteProps>(\n (\n {\n value,\n defaultValue,\n onChange,\n onSelect,\n onSearch,\n options,\n placeholder,\n disabled,\n allowClear,\n filterOption = true,\n notFoundContent = \"暂无匹配结果\",\n size = \"md\",\n autoFocus,\n className = \"\",\n dropdownClassName = \"\",\n matchTriggerWidth = true,\n id,\n name,\n onFocus,\n onKeyDown,\n ...rest\n },\n ref\n ) => {\n const [inner, setInner] = React.useState(defaultValue ?? \"\");\n const isControlled = value !== undefined;\n const text = isControlled ? (value as string) : inner;\n\n const [open, setOpen] = React.useState(false);\n const [active, setActive] = React.useState(0);\n const panelRef = React.useRef<HTMLDivElement>(null);\n\n const filtered = React.useMemo(() => {\n if (filterOption === false) return options;\n const fn = typeof filterOption === \"function\" ? filterOption : DEFAULT_FILTER;\n return options.filter((o) => fn(text, o));\n }, [options, text, filterOption]);\n\n const { triggerRef, floatingStyle } = useFloating<HTMLDivElement>({\n open,\n placement: \"bottom\",\n matchTriggerWidth,\n panelHeight: Math.min(filtered.length * 36 + 12, 280),\n });\n\n React.useEffect(() => {\n setActive(0);\n }, [filtered.length, open]);\n\n // Close on outside click.\n React.useEffect(() => {\n if (!open) return;\n const onDown = (e: MouseEvent) => {\n if (\n !triggerRef.current?.contains(e.target as Node) &&\n !panelRef.current?.contains(e.target as Node)\n ) {\n setOpen(false);\n }\n };\n window.addEventListener(\"mousedown\", onDown);\n return () => window.removeEventListener(\"mousedown\", onDown);\n }, [open, triggerRef]);\n\n const commit = (next: string, option?: AutoCompleteOption) => {\n if (!isControlled) setInner(next);\n onChange?.(next, option);\n };\n\n const handleInput = (v: string) => {\n commit(v);\n onSearch?.(v);\n setOpen(true);\n };\n\n const pick = (o: AutoCompleteOption) => {\n if (o.disabled) return;\n commit(o.value, o);\n onSelect?.(o.value, o);\n setOpen(false);\n };\n\n const onKey: React.KeyboardEventHandler<HTMLInputElement> = (e) => {\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n if (!open) { setOpen(true); return; }\n setActive((a) => {\n if (filtered.length === 0) return 0;\n for (let n = 1; n <= filtered.length; n++) {\n const i = (a + n) % filtered.length;\n if (!filtered[i].disabled) return i;\n }\n return a;\n });\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n setActive((a) => {\n if (filtered.length === 0) return 0;\n for (let n = 1; n <= filtered.length; n++) {\n const i = (a - n + filtered.length) % filtered.length;\n if (!filtered[i].disabled) return i;\n }\n return a;\n });\n } else if (e.key === \"Enter\") {\n if (open && filtered[active]) {\n e.preventDefault();\n pick(filtered[active]);\n }\n } else if (e.key === \"Escape\") {\n if (open) { e.preventDefault(); setOpen(false); }\n }\n };\n\n const panel = open && typeof document !== \"undefined\"\n ? createPortal(\n <div\n ref={panelRef}\n className={`autocomplete-panel ${dropdownClassName}`}\n style={floatingStyle}\n onMouseDown={(e) => e.preventDefault()}\n >\n {filtered.length === 0 ? (\n <div className=\"autocomplete-empty\">{notFoundContent}</div>\n ) : (\n filtered.map((o, i) => (\n <button\n key={o.value}\n type=\"button\"\n role=\"option\"\n aria-selected={i === active}\n disabled={o.disabled}\n className={`autocomplete-item ${i === active ? \"active\" : \"\"}`}\n onMouseEnter={() => setActive(i)}\n onClick={() => pick(o)}\n >\n {o.label ?? o.value}\n </button>\n ))\n )}\n </div>,\n document.body\n )\n : null;\n\n return (\n <div ref={triggerRef} className={`autocomplete ${className}`}>\n <Input\n ref={ref}\n {...rest}\n id={id}\n name={name}\n size={size}\n value={text}\n placeholder={placeholder}\n disabled={disabled}\n allowClear={allowClear}\n autoFocus={autoFocus}\n onChange={handleInput}\n onFocus={(event) => {\n onFocus?.(event);\n if (!disabled) setOpen(true);\n }}\n onKeyDown={(event) => {\n onKeyDown?.(event);\n onKey(event);\n }}\n />\n {panel}\n </div>\n );\n }\n);\nAutoComplete.displayName = \"AutoComplete\";\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Slider/Slider.tsx"],"names":["React","jsxs","jsx"],"mappings":"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","file":"chunk-N6ZLZUBF.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Slider.css\";\nimport * as React from \"react\";\n\nexport type SliderRangeValue = [number, number];\nexport type SliderValue = number | SliderRangeValue;\n\ninterface SliderBaseProps {\n min?: number;\n max?: number;\n step?: number;\n disabled?: boolean;\n showValue?: boolean;\n tone?: \"accent\" | \"success\" | \"warning\" | \"danger\";\n /** Custom gradient colors mapped from min→max. Overrides `tone` for fill & thumb. */\n colors?: string[];\n /** Tick marks with labels. Clicking a mark snaps to it. */\n marks?: Record<number, React.ReactNode>;\n className?: string;\n}\n\nexport interface SliderSingleProps extends SliderBaseProps {\n range?: false;\n value?: number;\n defaultValue?: number;\n onChange?: (value: number) => void;\n}\n\nexport interface SliderRangeProps extends SliderBaseProps {\n range: true;\n value?: SliderRangeValue;\n defaultValue?: SliderRangeValue;\n onChange?: (value: SliderRangeValue) => void;\n}\n\nexport type SliderProps = SliderSingleProps | SliderRangeProps;\n\nfunction clamp(v: number, lo: number, hi: number) {\n return Math.max(lo, Math.min(hi, v));\n}\n\nfunction snap(raw: number, step: number, min: number) {\n return Math.round((raw - min) / step) * step + min;\n}\n\nfunction lerpColor(colors: string[], t: number): string {\n const pos = Math.max(0, Math.min(1, t)) * (colors.length - 1);\n const i = Math.min(Math.floor(pos), colors.length - 2);\n const frac = pos - i;\n if (frac === 0) return colors[i];\n return `color-mix(in oklch, ${colors[i + 1]} ${Math.round(frac * 100)}%, ${colors[i]})`;\n}\n\n/** `Slider` — neumorphic range input with grooved track.\n * @example <Slider defaultValue={40} showValue />\n */\nexport const Slider = React.forwardRef<HTMLDivElement, SliderProps>(\n (props, ref) => {\n const {\n min = 0,\n max = 100,\n step = 1,\n disabled,\n showValue,\n tone = \"accent\",\n colors,\n marks,\n className = \"\",\n } = props;\n\n const range = (props as SliderRangeProps).range === true;\n const controlled = (props as { value?: SliderValue }).value;\n const defaultVal = (props as { defaultValue?: SliderValue }).defaultValue;\n const onChange = (props as { onChange?: (v: any) => void }).onChange;\n\n const initRef = React.useRef<number[]>(\n defaultVal !== undefined\n ? Array.isArray(defaultVal)\n ? [...defaultVal]\n : [defaultVal]\n : range\n ? [min, max]\n : [min]\n );\n const [inner, setInner] = React.useState<number[]>(initRef.current);\n\n const isControlled = controlled !== undefined;\n const vals = isControlled\n ? Array.isArray(controlled)\n ? controlled\n : [controlled]\n : inner;\n\n const valsRef = React.useRef(vals);\n valsRef.current = vals;\n\n const trackRef = React.useRef<HTMLDivElement>(null);\n const thumbEls = React.useRef<(HTMLDivElement | null)[]>([]);\n const dragging = React.useRef<number | null>(null);\n\n const pct = (n: number) => ((n - min) / (max - min)) * 100;\n\n const commit = React.useCallback(\n (next: number[]) => {\n if (!isControlled) setInner(next);\n if (range) {\n onChange?.([next[0], next[1]] as SliderRangeValue);\n } else {\n onChange?.(next[0]);\n }\n },\n [isControlled, range, onChange]\n );\n\n const setAt = React.useCallback(\n (index: number, raw: number) => {\n const snapped = snap(clamp(raw, min, max), step, min);\n const clamped = clamp(snapped, min, max);\n const out = [...valsRef.current];\n out[index] = clamped;\n if (range && out.length === 2 && out[0] > out[1]) out.sort((a, b) => a - b);\n commit(out);\n },\n [min, max, step, range, commit]\n );\n\n const valFromX = React.useCallback(\n (clientX: number) => {\n const rect = trackRef.current?.getBoundingClientRect();\n if (!rect) return min;\n const ratio = clamp((clientX - rect.left) / rect.width, 0, 1);\n return min + ratio * (max - min);\n },\n [min, max]\n );\n\n const closerIndex = React.useCallback(\n (target: number) => {\n const v = valsRef.current;\n if (!range || v.length < 2) return 0;\n const d0 = Math.abs(v[0] - target);\n const d1 = Math.abs(v[1] - target);\n if (d0 === d1) return target < v[0] ? 0 : 1;\n return d0 < d1 ? 0 : 1;\n },\n [range]\n );\n\n const onPointerDown = React.useCallback(\n (e: React.PointerEvent<HTMLDivElement>) => {\n if (disabled) return;\n e.preventDefault();\n const val = valFromX(e.clientX);\n const idx = closerIndex(val);\n dragging.current = idx;\n setAt(idx, val);\n trackRef.current?.setPointerCapture(e.pointerId);\n thumbEls.current[idx]?.focus();\n },\n [disabled, valFromX, closerIndex, setAt]\n );\n\n const onPointerMove = React.useCallback(\n (e: React.PointerEvent<HTMLDivElement>) => {\n if (dragging.current === null) return;\n setAt(dragging.current, valFromX(e.clientX));\n },\n [valFromX, setAt]\n );\n\n const onPointerUp = React.useCallback(() => {\n dragging.current = null;\n }, []);\n\n const handleKey = React.useCallback(\n (index: number, e: React.KeyboardEvent) => {\n if (disabled) return;\n let delta = 0;\n if (e.key === \"ArrowRight\" || e.key === \"ArrowUp\") delta = step;\n else if (e.key === \"ArrowLeft\" || e.key === \"ArrowDown\") delta = -step;\n else if (e.key === \"Home\") { setAt(index, min); return; }\n else if (e.key === \"End\") { setAt(index, max); return; }\n else return;\n e.preventDefault();\n setAt(index, valsRef.current[index] + delta);\n },\n [disabled, step, min, max, setAt]\n );\n\n const handleMarkClick = React.useCallback(\n (mark: number) => {\n if (disabled) return;\n setAt(closerIndex(mark), mark);\n },\n [disabled, closerIndex, setAt]\n );\n\n const fillLeft = range ? pct(Math.min(vals[0], vals[1])) : 0;\n const fillRight = range\n ? 100 - pct(Math.max(vals[0], vals[1]))\n : 100 - pct(vals[0]);\n\n const hasGradient = colors && colors.length >= 2;\n\n const fillStyle: React.CSSProperties = {\n left: `${fillLeft}%`,\n right: `${fillRight}%`,\n };\n if (hasGradient) {\n const w = 100 - fillLeft - fillRight;\n if (w > 0) {\n const stops = colors.map((c, i) => {\n const orig = (i / (colors.length - 1)) * 100;\n return `${c} ${((orig - fillLeft) / w * 100).toFixed(2)}%`;\n }).join(\", \");\n fillStyle.background = `linear-gradient(to right, ${stops})`;\n fillStyle.boxShadow = \"none\";\n }\n }\n\n return (\n <div\n ref={ref}\n className={`slider ${range ? \"range\" : \"\"} ${hasGradient ? \"gradient\" : tone} ${disabled ? \"disabled\" : \"\"} ${marks ? \"has-marks\" : \"\"} ${className}`}\n >\n <div className=\"slider-rail\">\n <div\n className=\"slider-track\"\n ref={trackRef}\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={onPointerUp}\n >\n <div className=\"slider-fill\" style={fillStyle} />\n </div>\n\n {vals.map((n, i) => {\n const thumbStyle: React.CSSProperties = { left: `${pct(n)}%` };\n if (hasGradient) {\n (thumbStyle as any)[\"--slider-thumb-color\"] = lerpColor(colors, (n - min) / (max - min));\n }\n return (\n <div\n key={i}\n ref={(el) => { thumbEls.current[i] = el; }}\n className=\"slider-thumb\"\n style={thumbStyle}\n role=\"slider\"\n tabIndex={disabled ? -1 : 0}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={n}\n aria-disabled={disabled || undefined}\n onKeyDown={(e) => handleKey(i, e)}\n onPointerDown={(e) => {\n if (disabled) return;\n e.preventDefault();\n e.stopPropagation();\n dragging.current = i;\n trackRef.current?.setPointerCapture(e.pointerId);\n e.currentTarget.focus();\n }}\n />\n );\n })}\n\n {marks && (\n <div className=\"slider-marks\">\n {Object.entries(marks).map(([k, label]) => {\n const n = Number(k);\n const active = range\n ? n >= Math.min(vals[0], vals[1]) && n <= Math.max(vals[0], vals[1])\n : n <= vals[0];\n return (\n <span\n key={k}\n className={`slider-mark ${active ? \"active\" : \"\"}`}\n style={{ left: `${pct(n)}%` }}\n onClick={() => handleMarkClick(n)}\n >\n <span className=\"slider-mark-dot\" />\n <span className=\"slider-mark-label\">{label}</span>\n </span>\n );\n })}\n </div>\n )}\n </div>\n\n {showValue && (\n <span className=\"slider-value\">\n {range ? `${vals[0]} – ${vals[1]}` : vals[0]}\n </span>\n )}\n </div>\n );\n }\n);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Tabs/Tabs.tsx"],"names":["React","jsxs","jsx"],"mappings":"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","file":"chunk-NRP3X3PE.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Tabs.css\";\nimport * as React from \"react\";\n\nexport interface TabItem {\n key: string;\n label: React.ReactNode;\n disabled?: boolean;\n content?: React.ReactNode;\n}\n\nexport interface TabsProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n items: TabItem[];\n activeKey?: string;\n defaultActiveKey?: string;\n onChange?: (key: string) => void;\n variant?: \"line\" | \"pill\" | \"segmented\";\n /** Center-align the tab bar horizontally. */\n centered?: boolean;\n className?: string;\n}\n\n/** `Tabs` — switchable sections. */\nexport const Tabs = React.forwardRef<HTMLDivElement, TabsProps>(({\n items,\n activeKey,\n defaultActiveKey,\n onChange,\n variant = \"line\",\n centered,\n className = \"\",\n ...rest\n}, ref) => {\n const [inner, setInner] = React.useState(defaultActiveKey ?? items[0]?.key);\n const isControlled = activeKey !== undefined;\n const current = isControlled ? activeKey! : inner;\n\n const select = (k: string) => {\n if (!isControlled) setInner(k);\n onChange?.(k);\n };\n\n const active = items.find((i) => i.key === current);\n\n return (\n <div ref={ref} className={`tabs ${variant} ${centered ? \"centered\" : \"\"} ${className}`} {...rest}>\n <div className=\"tabs-nav\" role=\"tablist\">\n {items.map((it) => (\n <button\n key={it.key}\n type=\"button\"\n role=\"tab\"\n aria-selected={current === it.key}\n disabled={it.disabled}\n className={`tab ${current === it.key ? \"active\" : \"\"}`}\n onClick={() => select(it.key)}\n >\n {it.label}\n </button>\n ))}\n </div>\n {active?.content !== undefined && <div className=\"tabs-content\">{active.content}</div>}\n </div>\n );\n});\nTabs.displayName = \"Tabs\";\n\nexport interface SegmentedProps<T extends string = string>\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\" | \"defaultValue\"> {\n options: { value: T; label: React.ReactNode; disabled?: boolean }[];\n value?: T;\n defaultValue?: T;\n onChange?: (value: T) => void;\n size?: \"sm\" | \"md\";\n className?: string;\n}\n\ntype SegmentedComponent = <T extends string = string>(\n props: SegmentedProps<T> & React.RefAttributes<HTMLDivElement>\n) => React.ReactElement | null;\n\nconst SegmentedInner = <T extends string = string>({\n options,\n value,\n defaultValue,\n onChange,\n size = \"md\",\n className = \"\",\n ...rest\n}: SegmentedProps<T>, ref: React.ForwardedRef<HTMLDivElement>) => {\n const [inner, setInner] = React.useState<T | undefined>(defaultValue ?? options[0]?.value);\n const isControlled = value !== undefined;\n const v = isControlled ? value : inner;\n const pick = (next: T) => {\n if (!isControlled) setInner(next);\n onChange?.(next);\n };\n return (\n <div ref={ref} className={`segmented ${size} ${className}`} {...rest}>\n {options.map((o) => (\n <button\n key={String(o.value)}\n type=\"button\"\n disabled={o.disabled}\n className={`seg ${v === o.value ? \"active\" : \"\"}`}\n onClick={() => pick(o.value)}\n >\n {o.label}\n </button>\n ))}\n </div>\n );\n};\n\n/** `Segmented` — exclusive choice chip row. */\nexport const Segmented = React.forwardRef(SegmentedInner) as SegmentedComponent;\n(Segmented as any).displayName = \"Segmented\";\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/AutoComplete/AutoComplete.tsx"],"names":["React","useFloating","createPortal","jsx","Input"],"mappings":"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","file":"chunk-P4CGE5C7.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./AutoComplete.css\";\nimport * as React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Input } from \"../Input\";\nimport { useFloating } from \"../../utils/useFloating\";\n\nexport interface AutoCompleteOption {\n value: string;\n /** Display label. Defaults to `value`. */\n label?: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface AutoCompleteProps\n extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"value\" | \"defaultValue\" | \"onChange\" | \"onSelect\" | \"size\"\n > {\n value?: string;\n defaultValue?: string;\n onChange?: (value: string, option?: AutoCompleteOption) => void;\n /** Fires when a suggestion is selected (click or Enter). */\n onSelect?: (value: string, option: AutoCompleteOption) => void;\n /** Fires on every keystroke — typically used to fetch fresh suggestions. */\n onSearch?: (text: string) => void;\n /** Suggestion list. Empty-string value is filtered out. */\n options: AutoCompleteOption[];\n placeholder?: string;\n disabled?: boolean;\n allowClear?: boolean;\n /** Override the default substring filter. `false` keeps every option. */\n filterOption?: boolean | ((input: string, option: AutoCompleteOption) => boolean);\n /** Content shown when no option matches. */\n notFoundContent?: React.ReactNode;\n size?: \"sm\" | \"md\" | \"lg\";\n className?: string;\n /** Class on the popped-out panel. */\n dropdownClassName?: string;\n /** Force the panel to be as wide as the input. Default true. */\n matchTriggerWidth?: boolean;\n}\n\nconst DEFAULT_FILTER = (input: string, option: AutoCompleteOption) => {\n if (!input) return true;\n const hay = `${option.value} ${typeof option.label === \"string\" ? option.label : \"\"}`.toLowerCase();\n return hay.includes(input.toLowerCase());\n};\n\n/**\n * `AutoComplete` — text input with a filtered suggestion dropdown.\n * Follows antd's API shape (value / onChange / onSelect / options / filterOption).\n *\n * @example\n * ```tsx\n * <AutoComplete\n * options={[{ value: \"light\" }, { value: \"dark\" }]}\n * onSelect={(v) => console.log(v)}\n * placeholder=\"主题\"\n * />\n * ```\n */\nexport const AutoComplete = React.forwardRef<HTMLInputElement, AutoCompleteProps>(\n (\n {\n value,\n defaultValue,\n onChange,\n onSelect,\n onSearch,\n options,\n placeholder,\n disabled,\n allowClear,\n filterOption = true,\n notFoundContent = \"暂无匹配结果\",\n size = \"md\",\n autoFocus,\n className = \"\",\n dropdownClassName = \"\",\n matchTriggerWidth = true,\n id,\n name,\n onFocus,\n onKeyDown,\n ...rest\n },\n ref\n ) => {\n const [inner, setInner] = React.useState(defaultValue ?? \"\");\n const isControlled = value !== undefined;\n const text = isControlled ? (value as string) : inner;\n\n const [open, setOpen] = React.useState(false);\n const [active, setActive] = React.useState(0);\n const panelRef = React.useRef<HTMLDivElement>(null);\n\n const filtered = React.useMemo(() => {\n if (filterOption === false) return options;\n const fn = typeof filterOption === \"function\" ? filterOption : DEFAULT_FILTER;\n return options.filter((o) => fn(text, o));\n }, [options, text, filterOption]);\n\n const { triggerRef, floatingStyle } = useFloating<HTMLDivElement>({\n open,\n placement: \"bottom\",\n matchTriggerWidth,\n panelHeight: Math.min(filtered.length * 36 + 12, 280),\n });\n\n React.useEffect(() => {\n setActive(0);\n }, [filtered.length, open]);\n\n // Close on outside click.\n React.useEffect(() => {\n if (!open) return;\n const onDown = (e: MouseEvent) => {\n if (\n !triggerRef.current?.contains(e.target as Node) &&\n !panelRef.current?.contains(e.target as Node)\n ) {\n setOpen(false);\n }\n };\n window.addEventListener(\"mousedown\", onDown);\n return () => window.removeEventListener(\"mousedown\", onDown);\n }, [open, triggerRef]);\n\n const commit = (next: string, option?: AutoCompleteOption) => {\n if (!isControlled) setInner(next);\n onChange?.(next, option);\n };\n\n const handleInput = (v: string) => {\n commit(v);\n onSearch?.(v);\n setOpen(true);\n };\n\n const pick = (o: AutoCompleteOption) => {\n if (o.disabled) return;\n commit(o.value, o);\n onSelect?.(o.value, o);\n setOpen(false);\n };\n\n const onKey: React.KeyboardEventHandler<HTMLInputElement> = (e) => {\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n if (!open) { setOpen(true); return; }\n setActive((a) => {\n if (filtered.length === 0) return 0;\n for (let n = 1; n <= filtered.length; n++) {\n const i = (a + n) % filtered.length;\n if (!filtered[i].disabled) return i;\n }\n return a;\n });\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n setActive((a) => {\n if (filtered.length === 0) return 0;\n for (let n = 1; n <= filtered.length; n++) {\n const i = (a - n + filtered.length) % filtered.length;\n if (!filtered[i].disabled) return i;\n }\n return a;\n });\n } else if (e.key === \"Enter\") {\n if (open && filtered[active]) {\n e.preventDefault();\n pick(filtered[active]);\n }\n } else if (e.key === \"Escape\") {\n if (open) { e.preventDefault(); setOpen(false); }\n }\n };\n\n const panel = open && typeof document !== \"undefined\"\n ? createPortal(\n <div\n ref={panelRef}\n className={`autocomplete-panel ${dropdownClassName}`}\n style={floatingStyle}\n onMouseDown={(e) => e.preventDefault()}\n >\n {filtered.length === 0 ? (\n <div className=\"autocomplete-empty\">{notFoundContent}</div>\n ) : (\n filtered.map((o, i) => (\n <button\n key={o.value}\n type=\"button\"\n role=\"option\"\n aria-selected={i === active}\n disabled={o.disabled}\n className={`autocomplete-item ${i === active ? \"active\" : \"\"}`}\n onMouseEnter={() => setActive(i)}\n onClick={() => pick(o)}\n >\n {o.label ?? o.value}\n </button>\n ))\n )}\n </div>,\n document.body\n )\n : null;\n\n return (\n <div ref={triggerRef} className={`autocomplete ${className}`}>\n <Input\n ref={ref}\n {...rest}\n id={id}\n name={name}\n size={size}\n value={text}\n placeholder={placeholder}\n disabled={disabled}\n allowClear={allowClear}\n autoFocus={autoFocus}\n onChange={handleInput}\n onFocus={(event) => {\n onFocus?.(event);\n if (!disabled) setOpen(true);\n }}\n onKeyDown={(event) => {\n onKeyDown?.(event);\n onKey(event);\n }}\n />\n {panel}\n </div>\n );\n }\n);\nAutoComplete.displayName = \"AutoComplete\";\n"]}
@@ -1,134 +0,0 @@
1
- import { Button } from './chunk-6FSOJLY6.js';
2
- import { Icon } from './chunk-BSHHQOFY.js';
3
- import './tokens-BIIUTPKN.css';
4
- import './shared-NJHRNLRH.css';
5
- import './Modal-XSDMU4XJ.css';
6
- import * as React from 'react';
7
- import ReactDOM from 'react-dom';
8
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
9
-
10
- var ANIM_MS = 280;
11
- var Modal = React.forwardRef(({
12
- open,
13
- onClose,
14
- onCancel,
15
- onOk,
16
- title,
17
- description,
18
- footer,
19
- children,
20
- width = 440,
21
- closable = true,
22
- closeIcon,
23
- maskClosable = true,
24
- escClosable = true,
25
- okText = "\u786E\u5B9A",
26
- cancelText = "\u53D6\u6D88",
27
- okButtonProps,
28
- cancelButtonProps,
29
- confirmLoading,
30
- destroyOnClose = false,
31
- afterOpenChange,
32
- zIndex,
33
- className = "",
34
- style,
35
- onClick,
36
- ...rest
37
- }, ref) => {
38
- const [hasOpenedOnce, setHasOpenedOnce] = React.useState(open);
39
- React.useEffect(() => {
40
- if (open) setHasOpenedOnce(true);
41
- }, [open]);
42
- const handleCancel = React.useCallback(() => {
43
- if (onCancel) onCancel();
44
- else onClose?.();
45
- }, [onCancel, onClose]);
46
- React.useEffect(() => {
47
- if (!open || !escClosable) return;
48
- const h = (e) => {
49
- if (e.key === "Escape") handleCancel();
50
- };
51
- window.addEventListener("keydown", h);
52
- return () => window.removeEventListener("keydown", h);
53
- }, [open, escClosable, handleCancel]);
54
- const prevOpen = React.useRef(open);
55
- React.useEffect(() => {
56
- if (prevOpen.current !== open) {
57
- prevOpen.current = open;
58
- if (afterOpenChange) {
59
- const id = window.setTimeout(() => afterOpenChange(open), ANIM_MS);
60
- return () => window.clearTimeout(id);
61
- }
62
- }
63
- }, [open, afterOpenChange]);
64
- if (typeof document === "undefined") return null;
65
- if (!hasOpenedOnce) return null;
66
- if (!open && destroyOnClose) return null;
67
- const overlayStyle = zIndex != null ? { zIndex } : void 0;
68
- const defaultFooter = /* @__PURE__ */ jsxs(Fragment, { children: [
69
- /* @__PURE__ */ jsx(Button, { variant: "ghost", onClick: handleCancel, ...cancelButtonProps, children: cancelText }),
70
- /* @__PURE__ */ jsx(
71
- Button,
72
- {
73
- variant: "primary",
74
- loading: confirmLoading,
75
- onClick: () => onOk?.(),
76
- ...okButtonProps,
77
- children: okText
78
- }
79
- )
80
- ] });
81
- return ReactDOM.createPortal(
82
- /* @__PURE__ */ jsx(
83
- "div",
84
- {
85
- className: `modal-overlay ${open ? "" : "hidden"} ${className}`,
86
- style: overlayStyle,
87
- onClick: () => maskClosable && handleCancel(),
88
- role: "presentation",
89
- children: /* @__PURE__ */ jsxs(
90
- "div",
91
- {
92
- ref,
93
- className: "modal",
94
- style: { width, ...style },
95
- onClick: (e) => {
96
- onClick?.(e);
97
- e.stopPropagation();
98
- },
99
- role: "dialog",
100
- "aria-modal": true,
101
- "aria-hidden": !open,
102
- ...rest,
103
- children: [
104
- (title || description || closable) && /* @__PURE__ */ jsxs("div", { className: "modal-head", children: [
105
- /* @__PURE__ */ jsxs("div", { className: "modal-titles", children: [
106
- title && /* @__PURE__ */ jsx("div", { className: "modal-title", children: title }),
107
- description && /* @__PURE__ */ jsx("div", { className: "modal-desc", children: description })
108
- ] }),
109
- closable && /* @__PURE__ */ jsx(
110
- "button",
111
- {
112
- type: "button",
113
- className: "modal-close",
114
- onClick: handleCancel,
115
- "aria-label": "Close",
116
- children: closeIcon ?? /* @__PURE__ */ jsx(Icon, { name: "x", size: 16 })
117
- }
118
- )
119
- ] }),
120
- /* @__PURE__ */ jsx("div", { className: "modal-body", children }),
121
- footer === null ? null : /* @__PURE__ */ jsx("div", { className: "modal-foot", children: footer ?? defaultFooter })
122
- ]
123
- }
124
- )
125
- }
126
- ),
127
- document.body
128
- );
129
- });
130
- Modal.displayName = "Modal";
131
-
132
- export { Modal };
133
- //# sourceMappingURL=chunk-PX5ABNKV.js.map
134
- //# sourceMappingURL=chunk-PX5ABNKV.js.map