@fangxinyan/lumina 0.2.0 → 0.3.0

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 (290) hide show
  1. package/README.md +18 -7
  2. package/dist/{Accordion-3TQPKNN3.css → Accordion-REMDCQUD.css} +0 -1
  3. package/dist/Accordion.cjs +2 -2
  4. package/dist/Accordion.js +1 -1
  5. package/dist/Alert.cjs +2 -2
  6. package/dist/Alert.js +1 -1
  7. package/dist/AppShell.cjs +5 -5
  8. package/dist/AppShell.js +1 -1
  9. package/dist/Avatar.cjs +2 -2
  10. package/dist/Avatar.js +1 -1
  11. package/dist/Button.cjs +3 -3
  12. package/dist/Button.js +1 -1
  13. package/dist/Calendar.cjs +2 -2
  14. package/dist/Calendar.js +1 -1
  15. package/dist/Card.cjs +3 -3
  16. package/dist/Card.js +1 -1
  17. package/dist/{Cascader-DTRTTXC2.css → Cascader-VSYEKQCG.css} +1 -1
  18. package/dist/Cascader.cjs +2 -2
  19. package/dist/Cascader.js +1 -1
  20. package/dist/Checkbox.cjs +3 -3
  21. package/dist/Checkbox.js +1 -1
  22. package/dist/{ColorPicker-GP7AQYUU.css → ColorPicker-SDDQGHCM.css} +1 -1
  23. package/dist/ColorPicker.cjs +2 -2
  24. package/dist/ColorPicker.js +1 -1
  25. package/dist/CommandPalette-T45DBMPY.css +139 -0
  26. package/dist/CommandPalette.cjs +14 -0
  27. package/dist/CommandPalette.cjs.map +1 -0
  28. package/dist/CommandPalette.d.cts +65 -0
  29. package/dist/CommandPalette.d.ts +65 -0
  30. package/dist/CommandPalette.js +5 -0
  31. package/dist/CommandPalette.js.map +1 -0
  32. package/dist/ContextMenu-FKW6CQW4.css +76 -0
  33. package/dist/ContextMenu.cjs +12 -0
  34. package/dist/ContextMenu.cjs.map +1 -0
  35. package/dist/ContextMenu.d.cts +50 -0
  36. package/dist/ContextMenu.d.ts +50 -0
  37. package/dist/ContextMenu.js +3 -0
  38. package/dist/ContextMenu.js.map +1 -0
  39. package/dist/Divider.cjs +2 -2
  40. package/dist/Divider.js +1 -1
  41. package/dist/Drawer.cjs +2 -2
  42. package/dist/Drawer.js +1 -1
  43. package/dist/Empty.cjs +4 -4
  44. package/dist/Empty.js +1 -1
  45. package/dist/{Image-WYWORJT4.css → Image-4MN34O6P.css} +1 -1
  46. package/dist/Image.cjs +3 -3
  47. package/dist/Image.js +1 -1
  48. package/dist/Input.cjs +3 -3
  49. package/dist/Input.js +1 -1
  50. package/dist/List.cjs +2 -2
  51. package/dist/List.js +1 -1
  52. package/dist/{Modal-N4YVLEWW.css → Modal-XSDMU4XJ.css} +1 -1
  53. package/dist/Modal.cjs +3 -3
  54. package/dist/Modal.js +2 -2
  55. package/dist/Pagination.cjs +4 -4
  56. package/dist/Pagination.js +3 -3
  57. package/dist/{Popover-MGCMOXYP.css → Popover-NYEKT5CQ.css} +1 -1
  58. package/dist/Popover.cjs +2 -2
  59. package/dist/Popover.js +1 -1
  60. package/dist/Progress.cjs +3 -3
  61. package/dist/Progress.js +1 -1
  62. package/dist/{Select-EDG37C37.css → Select-J3CCVFJ7.css} +1 -1
  63. package/dist/Select.cjs +3 -3
  64. package/dist/Select.js +2 -2
  65. package/dist/Slider.cjs +2 -2
  66. package/dist/Slider.js +1 -1
  67. package/dist/Splitter-DHNOY4NC.css +66 -0
  68. package/dist/Splitter.cjs +12 -0
  69. package/dist/Splitter.cjs.map +1 -0
  70. package/dist/Splitter.d.cts +44 -0
  71. package/dist/Splitter.d.ts +44 -0
  72. package/dist/Splitter.js +3 -0
  73. package/dist/Splitter.js.map +1 -0
  74. package/dist/StatusBar-CDS2GPSI.css +58 -0
  75. package/dist/StatusBar.cjs +16 -0
  76. package/dist/StatusBar.cjs.map +1 -0
  77. package/dist/StatusBar.d.cts +39 -0
  78. package/dist/StatusBar.d.ts +39 -0
  79. package/dist/StatusBar.js +3 -0
  80. package/dist/StatusBar.js.map +1 -0
  81. package/dist/Switch.cjs +2 -2
  82. package/dist/Switch.js +1 -1
  83. package/dist/{Table-ADVN6LXP.css → Table-2LPTOUIR.css} +2 -2
  84. package/dist/Table.cjs +7 -7
  85. package/dist/Table.js +5 -5
  86. package/dist/Tabs.cjs +3 -3
  87. package/dist/Tabs.js +1 -1
  88. package/dist/Tag.cjs +3 -3
  89. package/dist/Tag.js +1 -1
  90. package/dist/Theme.cjs +10 -10
  91. package/dist/Theme.js +1 -1
  92. package/dist/{Toast-ERHDN3WG.css → Toast-6PVSAXQ5.css} +1 -1
  93. package/dist/Toast.cjs +3 -3
  94. package/dist/Toast.js +1 -1
  95. package/dist/Tooltip.cjs +2 -2
  96. package/dist/Tooltip.js +1 -1
  97. package/dist/Typography.cjs +6 -6
  98. package/dist/Typography.js +1 -1
  99. package/dist/{chunk-5WF6M47X.cjs → chunk-24FAK7QU.cjs} +3 -3
  100. package/dist/{chunk-5WF6M47X.cjs.map → chunk-24FAK7QU.cjs.map} +1 -1
  101. package/dist/{chunk-AJZKESHB.js → chunk-276NALYW.js} +3 -3
  102. package/dist/{chunk-AJZKESHB.js.map → chunk-276NALYW.js.map} +1 -1
  103. package/dist/{chunk-FI7QO3I5.cjs → chunk-33TIL25B.cjs} +3 -3
  104. package/dist/{chunk-FI7QO3I5.cjs.map → chunk-33TIL25B.cjs.map} +1 -1
  105. package/dist/{chunk-RDLPX7RK.cjs → chunk-3HNRKO3M.cjs} +31 -5
  106. package/dist/chunk-3HNRKO3M.cjs.map +1 -0
  107. package/dist/{chunk-GZGZR4FT.js → chunk-3LI6QH2Q.js} +3 -3
  108. package/dist/{chunk-GZGZR4FT.js.map → chunk-3LI6QH2Q.js.map} +1 -1
  109. package/dist/{chunk-NE4YEBFH.js → chunk-3UU2PUK4.js} +4 -4
  110. package/dist/{chunk-NE4YEBFH.js.map → chunk-3UU2PUK4.js.map} +1 -1
  111. package/dist/chunk-47Z4NIU4.js +118 -0
  112. package/dist/chunk-47Z4NIU4.js.map +1 -0
  113. package/dist/{chunk-4U4OY5RA.js → chunk-4SCDDSXY.js} +3 -3
  114. package/dist/{chunk-4U4OY5RA.js.map → chunk-4SCDDSXY.js.map} +1 -1
  115. package/dist/{chunk-NXOAYNG2.cjs → chunk-5BFETKVP.cjs} +3 -3
  116. package/dist/{chunk-NXOAYNG2.cjs.map → chunk-5BFETKVP.cjs.map} +1 -1
  117. package/dist/{chunk-VICGQC6G.cjs → chunk-5EAVXFFD.cjs} +3 -3
  118. package/dist/{chunk-VICGQC6G.cjs.map → chunk-5EAVXFFD.cjs.map} +1 -1
  119. package/dist/{chunk-OYGFMXAA.js → chunk-5N7347MI.js} +3 -3
  120. package/dist/{chunk-OYGFMXAA.js.map → chunk-5N7347MI.js.map} +1 -1
  121. package/dist/{chunk-VJN637MT.js → chunk-5PREWYTB.js} +3 -3
  122. package/dist/{chunk-VJN637MT.js.map → chunk-5PREWYTB.js.map} +1 -1
  123. package/dist/{chunk-77BVQNAQ.js → chunk-5UOBYRYJ.js} +3 -3
  124. package/dist/{chunk-77BVQNAQ.js.map → chunk-5UOBYRYJ.js.map} +1 -1
  125. package/dist/{chunk-BBPNQ44M.js → chunk-6GNFRP2H.js} +3 -3
  126. package/dist/{chunk-BBPNQ44M.js.map → chunk-6GNFRP2H.js.map} +1 -1
  127. package/dist/{chunk-TZSWDH5T.cjs → chunk-7JYI5THC.cjs} +3 -3
  128. package/dist/{chunk-TZSWDH5T.cjs.map → chunk-7JYI5THC.cjs.map} +1 -1
  129. package/dist/chunk-7T2SLRNL.cjs +140 -0
  130. package/dist/chunk-7T2SLRNL.cjs.map +1 -0
  131. package/dist/chunk-7YQWG7HR.cjs +45 -0
  132. package/dist/chunk-7YQWG7HR.cjs.map +1 -0
  133. package/dist/chunk-AGN3JSUH.cjs +209 -0
  134. package/dist/chunk-AGN3JSUH.cjs.map +1 -0
  135. package/dist/{chunk-CCBHZYE6.cjs → chunk-AR4M7QGF.cjs} +7 -7
  136. package/dist/{chunk-CCBHZYE6.cjs.map → chunk-AR4M7QGF.cjs.map} +1 -1
  137. package/dist/{chunk-K7PVJLW4.cjs → chunk-AWLBLRQX.cjs} +5 -5
  138. package/dist/{chunk-K7PVJLW4.cjs.map → chunk-AWLBLRQX.cjs.map} +1 -1
  139. package/dist/{chunk-PBBHUUXU.cjs → chunk-B5JH7NRZ.cjs} +3 -3
  140. package/dist/{chunk-PBBHUUXU.cjs.map → chunk-B5JH7NRZ.cjs.map} +1 -1
  141. package/dist/{chunk-Z5X5AMLA.cjs → chunk-CALRTZZ7.cjs} +3 -3
  142. package/dist/{chunk-Z5X5AMLA.cjs.map → chunk-CALRTZZ7.cjs.map} +1 -1
  143. package/dist/{chunk-H6FCIJOP.js → chunk-DBJIK4JE.js} +3 -3
  144. package/dist/{chunk-H6FCIJOP.js.map → chunk-DBJIK4JE.js.map} +1 -1
  145. package/dist/{chunk-QESLHLTG.cjs → chunk-EHO2JH2L.cjs} +4 -4
  146. package/dist/{chunk-QESLHLTG.cjs.map → chunk-EHO2JH2L.cjs.map} +1 -1
  147. package/dist/{chunk-WNGG25QX.js → chunk-FFZLSY2N.js} +3 -3
  148. package/dist/{chunk-WNGG25QX.js.map → chunk-FFZLSY2N.js.map} +1 -1
  149. package/dist/{chunk-AEJJGUEN.cjs → chunk-GOIQR4OH.cjs} +3 -3
  150. package/dist/{chunk-AEJJGUEN.cjs.map → chunk-GOIQR4OH.cjs.map} +1 -1
  151. package/dist/{chunk-Z7P6QGMT.js → chunk-GR5STMOA.js} +3 -3
  152. package/dist/{chunk-Z7P6QGMT.js.map → chunk-GR5STMOA.js.map} +1 -1
  153. package/dist/{chunk-URF6RBW6.cjs → chunk-HNVRMOL3.cjs} +3 -3
  154. package/dist/{chunk-URF6RBW6.cjs.map → chunk-HNVRMOL3.cjs.map} +1 -1
  155. package/dist/{chunk-RPD2OIIP.js → chunk-I2HHC6QW.js} +4 -4
  156. package/dist/{chunk-RPD2OIIP.js.map → chunk-I2HHC6QW.js.map} +1 -1
  157. package/dist/{chunk-AXMEZGEG.cjs → chunk-IZDJCEMF.cjs} +3 -3
  158. package/dist/{chunk-AXMEZGEG.cjs.map → chunk-IZDJCEMF.cjs.map} +1 -1
  159. package/dist/{chunk-V34OPWKZ.js → chunk-JSDQVVQB.js} +3 -3
  160. package/dist/{chunk-V34OPWKZ.js.map → chunk-JSDQVVQB.js.map} +1 -1
  161. package/dist/{chunk-QTGDYQOT.cjs → chunk-LLNEDEST.cjs} +4 -4
  162. package/dist/{chunk-QTGDYQOT.cjs.map → chunk-LLNEDEST.cjs.map} +1 -1
  163. package/dist/{chunk-C5TGQ7CV.cjs → chunk-MFWOBALK.cjs} +3 -3
  164. package/dist/{chunk-C5TGQ7CV.cjs.map → chunk-MFWOBALK.cjs.map} +1 -1
  165. package/dist/{chunk-LDENBYRC.cjs → chunk-MKR4X57L.cjs} +3 -3
  166. package/dist/{chunk-LDENBYRC.cjs.map → chunk-MKR4X57L.cjs.map} +1 -1
  167. package/dist/{chunk-LSLYY5FN.js → chunk-MTCLJHXU.js} +5 -5
  168. package/dist/{chunk-LSLYY5FN.js.map → chunk-MTCLJHXU.js.map} +1 -1
  169. package/dist/{chunk-JKLQOB2F.cjs → chunk-MUFMJPRT.cjs} +3 -3
  170. package/dist/{chunk-JKLQOB2F.cjs.map → chunk-MUFMJPRT.cjs.map} +1 -1
  171. package/dist/{chunk-OEHCA5IV.js → chunk-NGQDVJH3.js} +4 -4
  172. package/dist/{chunk-OEHCA5IV.js.map → chunk-NGQDVJH3.js.map} +1 -1
  173. package/dist/{chunk-7H453VPW.cjs → chunk-NQQWCIE6.cjs} +3 -3
  174. package/dist/{chunk-7H453VPW.cjs.map → chunk-NQQWCIE6.cjs.map} +1 -1
  175. package/dist/{chunk-ZWP4LSS3.js → chunk-NS3C2ZSE.js} +3 -3
  176. package/dist/{chunk-ZWP4LSS3.js.map → chunk-NS3C2ZSE.js.map} +1 -1
  177. package/dist/{chunk-HKAQILD2.cjs → chunk-O2HMH5BI.cjs} +4 -4
  178. package/dist/{chunk-HKAQILD2.cjs.map → chunk-O2HMH5BI.cjs.map} +1 -1
  179. package/dist/chunk-OWNVDXRQ.js +42 -0
  180. package/dist/chunk-OWNVDXRQ.js.map +1 -0
  181. package/dist/{chunk-3UFU63X7.cjs → chunk-OZVPJWXO.cjs} +3 -3
  182. package/dist/{chunk-3UFU63X7.cjs.map → chunk-OZVPJWXO.cjs.map} +1 -1
  183. package/dist/{chunk-M6CGYGEO.js → chunk-Q2EXOT4B.js} +3 -3
  184. package/dist/{chunk-M6CGYGEO.js.map → chunk-Q2EXOT4B.js.map} +1 -1
  185. package/dist/{chunk-7U6I44RV.cjs → chunk-Q7CDWNM6.cjs} +3 -3
  186. package/dist/{chunk-7U6I44RV.cjs.map → chunk-Q7CDWNM6.cjs.map} +1 -1
  187. package/dist/{chunk-437LB2V4.js → chunk-QJGKI2BD.js} +3 -3
  188. package/dist/{chunk-437LB2V4.js.map → chunk-QJGKI2BD.js.map} +1 -1
  189. package/dist/chunk-RFU5HN4E.js +149 -0
  190. package/dist/chunk-RFU5HN4E.js.map +1 -0
  191. package/dist/{chunk-IKI5CS4L.cjs → chunk-RIDCBNCM.cjs} +4 -4
  192. package/dist/{chunk-IKI5CS4L.cjs.map → chunk-RIDCBNCM.cjs.map} +1 -1
  193. package/dist/{chunk-OPTTHURA.cjs → chunk-RSZNFKCQ.cjs} +3 -3
  194. package/dist/{chunk-OPTTHURA.cjs.map → chunk-RSZNFKCQ.cjs.map} +1 -1
  195. package/dist/{chunk-EPFYIR63.cjs → chunk-RVSWH4RH.cjs} +7 -7
  196. package/dist/{chunk-EPFYIR63.cjs.map → chunk-RVSWH4RH.cjs.map} +1 -1
  197. package/dist/{chunk-TWBJCFEJ.cjs → chunk-SVVB6POY.cjs} +4 -4
  198. package/dist/{chunk-TWBJCFEJ.cjs.map → chunk-SVVB6POY.cjs.map} +1 -1
  199. package/dist/{chunk-QPZZNSRB.js → chunk-TMZVX6NO.js} +4 -4
  200. package/dist/{chunk-QPZZNSRB.js.map → chunk-TMZVX6NO.js.map} +1 -1
  201. package/dist/{chunk-YEOARJKR.cjs → chunk-TQLCIXCK.cjs} +3 -3
  202. package/dist/{chunk-YEOARJKR.cjs.map → chunk-TQLCIXCK.cjs.map} +1 -1
  203. package/dist/{chunk-GIVMKGZN.js → chunk-TY5EAKEI.js} +3 -3
  204. package/dist/{chunk-GIVMKGZN.js.map → chunk-TY5EAKEI.js.map} +1 -1
  205. package/dist/{chunk-4MR4GVTD.js → chunk-U4K7HOMW.js} +31 -5
  206. package/dist/chunk-U4K7HOMW.js.map +1 -0
  207. package/dist/{chunk-IWVKITPN.js → chunk-U5BZ7E3F.js} +3 -3
  208. package/dist/{chunk-IWVKITPN.js.map → chunk-U5BZ7E3F.js.map} +1 -1
  209. package/dist/{chunk-3WAFIUDQ.js → chunk-UQB5OHMO.js} +3 -3
  210. package/dist/{chunk-3WAFIUDQ.js.map → chunk-UQB5OHMO.js.map} +1 -1
  211. package/dist/{chunk-ZVCMXDTP.js → chunk-URLSZPS5.js} +5 -5
  212. package/dist/{chunk-ZVCMXDTP.js.map → chunk-URLSZPS5.js.map} +1 -1
  213. package/dist/{chunk-I7SSCSFH.js → chunk-W6I67HQQ.js} +3 -3
  214. package/dist/{chunk-I7SSCSFH.js.map → chunk-W6I67HQQ.js.map} +1 -1
  215. package/dist/{chunk-NSUD5B22.js → chunk-WBMF7WM3.js} +3 -3
  216. package/dist/{chunk-NSUD5B22.js.map → chunk-WBMF7WM3.js.map} +1 -1
  217. package/dist/{chunk-4GT5TOHP.js → chunk-WDBJVKSR.js} +3 -3
  218. package/dist/{chunk-4GT5TOHP.js.map → chunk-WDBJVKSR.js.map} +1 -1
  219. package/dist/{chunk-TYQ5CN2C.js → chunk-WQFC5EMC.js} +4 -4
  220. package/dist/{chunk-TYQ5CN2C.js.map → chunk-WQFC5EMC.js.map} +1 -1
  221. package/dist/{chunk-IFERLHCL.cjs → chunk-WREHBIJ5.cjs} +10 -10
  222. package/dist/{chunk-IFERLHCL.cjs.map → chunk-WREHBIJ5.cjs.map} +1 -1
  223. package/dist/chunk-WZ73TWB2.cjs +174 -0
  224. package/dist/chunk-WZ73TWB2.cjs.map +1 -0
  225. package/dist/chunk-XDFZRV3V.js +184 -0
  226. package/dist/chunk-XDFZRV3V.js.map +1 -0
  227. package/dist/{chunk-F7HW2PYR.cjs → chunk-XUT2Z2L6.cjs} +3 -3
  228. package/dist/{chunk-F7HW2PYR.cjs.map → chunk-XUT2Z2L6.cjs.map} +1 -1
  229. package/dist/{chunk-55NTFU7Y.js → chunk-XZ22B3NW.js} +6 -6
  230. package/dist/{chunk-55NTFU7Y.js.map → chunk-XZ22B3NW.js.map} +1 -1
  231. package/dist/{chunk-K5MHL732.js → chunk-YXKJOPYT.js} +4 -4
  232. package/dist/{chunk-K5MHL732.js.map → chunk-YXKJOPYT.js.map} +1 -1
  233. package/dist/{chunk-IDM6JJLP.cjs → chunk-YZ2I7CDF.cjs} +3 -3
  234. package/dist/{chunk-IDM6JJLP.cjs.map → chunk-YZ2I7CDF.cjs.map} +1 -1
  235. package/dist/index.cjs +142 -118
  236. package/dist/index.cjs.map +1 -1
  237. package/dist/index.d.cts +5 -1
  238. package/dist/index.d.ts +5 -1
  239. package/dist/index.js +35 -31
  240. package/dist/index.js.map +1 -1
  241. package/dist/styles.css +26 -19
  242. package/dist/{tokens-HWQ7KWPG.css → tokens-BIIUTPKN.css} +17 -9
  243. package/dist/tokens.css +17 -9
  244. package/docs/llms/accordion.md +66 -0
  245. package/docs/llms/alert.md +64 -0
  246. package/docs/llms/avatar.md +55 -0
  247. package/docs/llms/badge.md +41 -0
  248. package/docs/llms/button.md +122 -0
  249. package/docs/llms/calendar.md +44 -0
  250. package/docs/llms/card.md +68 -0
  251. package/docs/llms/cascader.md +33 -0
  252. package/docs/llms/checkbox.md +41 -0
  253. package/docs/llms/colorpicker.md +82 -0
  254. package/docs/llms/commandpalette.md +58 -0
  255. package/docs/llms/contextmenu.md +55 -0
  256. package/docs/llms/divider.md +69 -0
  257. package/docs/llms/drawer.md +70 -0
  258. package/docs/llms/empty.md +52 -0
  259. package/docs/llms/icon.md +34 -0
  260. package/docs/llms/image.md +39 -0
  261. package/docs/llms/input.md +127 -0
  262. package/docs/llms/intro.md +6 -0
  263. package/docs/llms/list.md +41 -0
  264. package/docs/llms/modal.md +89 -0
  265. package/docs/llms/pagination.md +82 -0
  266. package/docs/llms/popover.md +34 -0
  267. package/docs/llms/progress.md +58 -0
  268. package/docs/llms/radio.md +43 -0
  269. package/docs/llms/select.md +99 -0
  270. package/docs/llms/sidebar.md +43 -0
  271. package/docs/llms/skeleton.md +88 -0
  272. package/docs/llms/slider.md +72 -0
  273. package/docs/llms/spinner.md +58 -0
  274. package/docs/llms/splitter.md +63 -0
  275. package/docs/llms/statusbar.md +53 -0
  276. package/docs/llms/switch.md +60 -0
  277. package/docs/llms/table.md +188 -0
  278. package/docs/llms/tablepro.md +56 -0
  279. package/docs/llms/tabs.md +50 -0
  280. package/docs/llms/tag.md +77 -0
  281. package/docs/llms/theme.md +165 -0
  282. package/docs/llms/titlebar.md +40 -0
  283. package/docs/llms/toast.md +51 -0
  284. package/docs/llms/tooltip.md +38 -0
  285. package/docs/llms/typography.md +103 -0
  286. package/docs/llms/windowcontrols.md +31 -0
  287. package/docs/llms.md +101 -0
  288. package/package.json +8 -2
  289. package/dist/chunk-4MR4GVTD.js.map +0 -1
  290. package/dist/chunk-RDLPX7RK.cjs.map +0 -1
@@ -0,0 +1,63 @@
1
+ # Splitter 可拖拽分栏
2
+
3
+ > 两栏之间可拖拽的分隔条,支持横向、纵向与嵌套。
4
+
5
+ ## 示例
6
+
7
+ ### 水平分栏
8
+
9
+ ```tsx
10
+ <Splitter defaultSize={200} min={120} max={360}>
11
+ <SidePanel />
12
+ <MainPanel />
13
+ </Splitter>
14
+ ```
15
+
16
+ ### 垂直分栏
17
+
18
+ direction="vertical" 让面板上下排列,分隔条变成横条。
19
+
20
+ ```tsx
21
+ <Splitter direction="vertical" defaultSize={120} min={60}>...</Splitter>
22
+ ```
23
+
24
+ ### 嵌套分栏
25
+
26
+ 组合使用两个 Splitter 可以搭出 IDE 风格的三区布局。
27
+
28
+ ```tsx
29
+ <Splitter defaultSize={180}>
30
+ <SideNav />
31
+ <Splitter direction="vertical" defaultSize={180}>
32
+ <Editor />
33
+ <Terminal />
34
+ </Splitter>
35
+ </Splitter>
36
+ ```
37
+
38
+ ### 受控模式
39
+
40
+ 通过 size / onResize 可以持久化宽度或与其他状态联动。
41
+
42
+ ```tsx
43
+ const [w, setW] = useState(220);
44
+ <Splitter size={w} onResize={setW}>...</Splitter>
45
+ ```
46
+
47
+ ## API
48
+
49
+ **Splitter**
50
+
51
+ | Prop | 类型 | 默认 | 说明 |
52
+ | --- | --- | --- | --- |
53
+ | direction | `"horizontal" | "vertical"` | `"horizontal"` | 布局方向 |
54
+ | defaultSize | `number` | `240` | 非受控初始宽/高 (px) |
55
+ | size / onResize | `number / (n: number) => void` | — | 受控宽/高 |
56
+ | onResizeEnd | `(n: number) => void` | — | 拖动结束回调 |
57
+ | min / max | `number` | `80 / Infinity` | 尺寸限制 (px) |
58
+ | step | `number` | `16` | 方向键步长 (px) |
59
+ | children \* | `[ReactNode, ReactNode]` | — | 必须恰好两个子节点 |
60
+
61
+
62
+ ---
63
+ [← 回到索引](../llms.md)
@@ -0,0 +1,53 @@
1
+ # StatusBar 状态栏
2
+
3
+ > 窗口底部状态栏,展示分支、编码、行列等应用元信息。
4
+
5
+ ## 示例
6
+
7
+ ### 基础
8
+
9
+ ```tsx
10
+ <StatusBar
11
+ left={<StatusBar.Item icon={<Icon name="check" size={12} />} tone="success">Ready</StatusBar.Item>}
12
+ right={<StatusBar.Item tone="muted">UTF-8</StatusBar.Item>}
13
+ />
14
+ ```
15
+
16
+ ### 可点击项
17
+
18
+ 为 Item 提供 onClick 会渲染成按钮,支持悬停高亮。
19
+
20
+ ```tsx
21
+ <StatusBar.Item onClick={...}>TypeScript</StatusBar.Item>
22
+ ```
23
+
24
+ ### 语义色
25
+
26
+ tone 控制文字颜色:default / muted / accent / success / warning / danger。
27
+
28
+ ```tsx
29
+ <StatusBar.Item tone="danger">3 errors</StatusBar.Item>
30
+ ```
31
+
32
+ ## API
33
+
34
+ **StatusBar**
35
+
36
+ | Prop | 类型 | 默认 | 说明 |
37
+ | --- | --- | --- | --- |
38
+ | left | `ReactNode` | — | 左侧槽位 |
39
+ | center | `ReactNode` | — | 中部槽位(绝对居中) |
40
+ | right | `ReactNode` | — | 右侧槽位 |
41
+
42
+
43
+ **StatusBar.Item**
44
+
45
+ | Prop | 类型 | 默认 | 说明 |
46
+ | --- | --- | --- | --- |
47
+ | icon | `ReactNode` | — | 前置图标 |
48
+ | tone | `"default" | "muted" | "accent" | "success" | "warning" | "danger"` | `"default"` | 语义色 |
49
+ | onClick | `(e) => void` | — | 点击回调(提供时渲染为 button) |
50
+
51
+
52
+ ---
53
+ [← 回到索引](../llms.md)
@@ -0,0 +1,60 @@
1
+ # Switch 开关
2
+
3
+ > 二元状态切换器。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Switch } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 基础用法
14
+
15
+ ```tsx
16
+ <Switch checked={v} onChange={setV} label="开启通知" />
17
+ ```
18
+
19
+ ### 尺寸
20
+
21
+ 提供 sm / md 两档。
22
+
23
+ ```tsx
24
+ <Switch size="sm" defaultChecked />
25
+ <Switch defaultChecked />
26
+ ```
27
+
28
+ ### 禁用
29
+
30
+ ```tsx
31
+ <Switch disabled label="不可用" />
32
+ <Switch disabled defaultChecked label="禁用且开启" />
33
+ ```
34
+
35
+ ### 轨道内文本
36
+
37
+ checkedChildren / unCheckedChildren 在轨道内显示简短文字(如 ON/OFF)。
38
+
39
+ ```tsx
40
+ <Switch defaultChecked checkedChildren="ON" unCheckedChildren="OFF" />
41
+ <Switch defaultChecked checkedChildren="1" unCheckedChildren="0" />
42
+ ```
43
+
44
+ ## API
45
+
46
+ **Switch**
47
+
48
+ | Prop | 类型 | 默认 | 说明 |
49
+ | --- | --- | --- | --- |
50
+ | checked / defaultChecked | `boolean` | — | 受控/初始 |
51
+ | onChange | `(checked: boolean) => void` | — | 状态变更 |
52
+ | label | `ReactNode` | — | 右侧文案 |
53
+ | checkedChildren | `ReactNode` | — | 轨道内选中状态文本/图标 |
54
+ | unCheckedChildren | `ReactNode` | — | 轨道内未选中状态文本/图标 |
55
+ | size | `"sm" | "md"` | `"md"` | 尺寸 |
56
+ | disabled | `boolean` | `false` | 禁用 |
57
+
58
+
59
+ ---
60
+ [← 回到索引](../llms.md)
@@ -0,0 +1,188 @@
1
+ # Table 表格
2
+
3
+ > 结构化数据展示。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Table } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 基础表格
14
+
15
+ ```tsx
16
+ <Table rowKey="id" columns={[...]} data={data} />
17
+ ```
18
+
19
+ ### 样式变体
20
+
21
+ 三种视觉变体:striped (条纹)、embossed (凸起)、cards (卡片行)。
22
+
23
+ ```tsx
24
+ <Table variant="striped" ... />
25
+ <Table variant="embossed" ... />
26
+ <Table variant="cards" ... />
27
+ ```
28
+
29
+ ### 内置分页
30
+
31
+ 传入 pagination 即可自动分页;data 会按当前页切片。传 false 关闭。
32
+
33
+ ```tsx
34
+ <Table
35
+ rowKey="id"
36
+ columns={[...]}
37
+ data={data} // 24 rows
38
+ pagination={{ pageSize: 6 }}
39
+ />
40
+ ```
41
+
42
+ ### 固定表头 / 横向滚动
43
+
44
+ scroll.y 固定表头并限制表体最大高度;scroll.x 设置内容最小宽度。
45
+
46
+ ```tsx
47
+ <Table
48
+ scroll={{ y: 220, x: 900 }}
49
+ columns={[...]}
50
+ data={data}
51
+ />
52
+ ```
53
+
54
+ ### 行选择 (rowSelection)
55
+
56
+ antd 风格的 rowSelection。表头多选框支持 indeterminate;可通过 getCheckboxProps 禁用指定行。
57
+
58
+ ```tsx
59
+ <Table
60
+ rowSelection={{
61
+ selectedRowKeys,
62
+ onChange: (keys, rows) => setSelectedKeys(keys),
63
+ getCheckboxProps: (row) => ({ disabled: row.status === "离线" }),
64
+ }}
65
+ columns={[...]}
66
+ data={data}
67
+ />
68
+ ```
69
+
70
+ ### 行选择 · 单选
71
+
72
+ 设置 rowSelection.type = 'radio' 变成单选模式。
73
+
74
+ ```tsx
75
+ <Table
76
+ rowSelection={{ type: "radio", defaultSelectedRowKeys: [1] }}
77
+ columns={[...]}
78
+ data={data}
79
+ />
80
+ ```
81
+
82
+ ### 可展开行
83
+
84
+ 点击左侧箭头按钮展开/收起,在行下方渲染自定义内容。
85
+
86
+ ```tsx
87
+ <Table
88
+ expandable={{
89
+ expandedRowRender: (row) => <div>…详情…</div>,
90
+ rowExpandable: (row) => row.status !== "离线",
91
+ }}
92
+ columns={[...]}
93
+ data={data}
94
+ />
95
+ ```
96
+
97
+ ### 列筛选
98
+
99
+ 在列上配置 filters 即可在列头显示漏斗图标;点击弹出勾选面板,勾选后过滤数据。
100
+
101
+ ```tsx
102
+ <Table
103
+ columns={[
104
+ {
105
+ key: "role", title: "部门", dataIndex: "role",
106
+ filters: [
107
+ { text: "设计", value: "设计" },
108
+ { text: "研发", value: "研发" },
109
+ ],
110
+ onFilter: (value, row) => row.role === value,
111
+ },
112
+ ]}
113
+ data={data}
114
+ />
115
+ ```
116
+
117
+ ## API
118
+
119
+ **Table**
120
+
121
+ | Prop | 类型 | 默认 | 说明 |
122
+ | --- | --- | --- | --- |
123
+ | columns \* | `TableColumn[]` | — | 列定义 |
124
+ | data \* | `Row[]` | — | 数据数组 |
125
+ | rowKey | `string | (row) => key` | — | 行键 |
126
+ | variant | `"default" | "striped" | "embossed" | "cards"` | `"default"` | 视觉变体 |
127
+ | pagination | `false | PaginationConfig` | — | 分页配置;false 关闭 |
128
+ | scroll | `TableScrollConfig` | — | 滚动配置:{ x?, y? } |
129
+ | rowSelection | `RowSelectionConfig` | — | 行选择配置 (antd 风格) |
130
+ | expandable | `ExpandableConfig` | — | 可展开行配置 |
131
+ | sortKey / sortDir / onSort | `—` | — | 受控排序 |
132
+ | onRowClick | `(row, i) => void` | — | 点击行 |
133
+ | selectable / selected / onSelect | `—` | — | 旧版多选 API (保留兼容,优先使用 rowSelection) |
134
+
135
+
136
+ **TableColumn**
137
+
138
+ | Prop | 类型 | 默认 | 说明 |
139
+ | --- | --- | --- | --- |
140
+ | key \* | `string` | — | 列唯一键 |
141
+ | title \* | `ReactNode` | — | 表头 |
142
+ | dataIndex | `keyof Row` | — | 取值字段 |
143
+ | render | `(value, row, index) => ReactNode` | — | 单元格渲染 |
144
+ | width | `number | string` | — | 列宽 |
145
+ | align | `"left" | "center" | "right"` | — | 对齐 |
146
+ | sortable | `boolean` | — | 是否可排序 |
147
+ | filters | `{ text, value }[]` | — | 筛选项 |
148
+ | onFilter | `(value, row) => boolean` | — | 筛选判定函数 |
149
+ | defaultFilteredValue | `(string | number)[]` | — | 非受控初始筛选 |
150
+ | filteredValue | `(string | number)[]` | — | 受控筛选值 |
151
+
152
+
153
+ **PaginationConfig**
154
+
155
+ | Prop | 类型 | 默认 | 说明 |
156
+ | --- | --- | --- | --- |
157
+ | current | `number` | — | 当前页 (1-indexed),受控 |
158
+ | defaultCurrent | `number` | `1` | 非受控初始页 |
159
+ | pageSize | `number` | `10` | 每页条数 |
160
+ | defaultPageSize | `number` | — | 非受控初始每页条数 |
161
+ | total | `number` | — | 数据总量;默认为 data.length |
162
+ | onChange | `(page, pageSize) => void` | — | 切页回调 |
163
+
164
+
165
+ **RowSelectionConfig**
166
+
167
+ | Prop | 类型 | 默认 | 说明 |
168
+ | --- | --- | --- | --- |
169
+ | type | `"checkbox" | "radio"` | `"checkbox"` | 多选或单选 |
170
+ | selectedRowKeys | `(string | number)[]` | — | 受控选中 key |
171
+ | defaultSelectedRowKeys | `(string | number)[]` | — | 非受控初始选中 |
172
+ | onChange | `(keys, rows) => void` | — | 选中变化 |
173
+ | getCheckboxProps | `(row) => { disabled? }` | — | 每行勾选框属性 |
174
+
175
+
176
+ **ExpandableConfig**
177
+
178
+ | Prop | 类型 | 默认 | 说明 |
179
+ | --- | --- | --- | --- |
180
+ | expandedRowKeys | `(string | number)[]` | — | 受控已展开 key |
181
+ | defaultExpandedRowKeys | `(string | number)[]` | — | 非受控初始展开 |
182
+ | onExpand | `(expanded, row) => void` | — | 展开/收起回调 |
183
+ | expandedRowRender | `(row, i) => ReactNode` | — | 展开面板渲染 |
184
+ | rowExpandable | `(row) => boolean` | — | 该行是否可展开 |
185
+
186
+
187
+ ---
188
+ [← 回到索引](../llms.md)
@@ -0,0 +1,56 @@
1
+ # Table Pro
2
+
3
+ > 带工具栏 / 搜索 / 筛选 / 排序 / 多选 / 分页的全功能表格。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { TablePro } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 全功能
14
+
15
+ 工具栏 + 排序 + 新版 rowSelection + 内置分页。相比旧版,Table 自己切片 data,不必外部 slice。
16
+
17
+ ```tsx
18
+ <TablePro
19
+ rowKey="id" data={filtered} columns={...}
20
+ rowSelection={{ selectedRowKeys, onChange }}
21
+ sortKey={sortKey} sortDir={sortDir} onSort={...}
22
+ pagination={{ pageSize: 4 }}
23
+ toolbar={<Input ... /> <Select ... />}
24
+ actions={<Button>新增</Button>}
25
+ />
26
+ ```
27
+
28
+ ### 带可展开行
29
+
30
+ TablePro 直接透传 expandable 到 Table。
31
+
32
+ ```tsx
33
+ <TablePro
34
+ title="成员详情"
35
+ expandable={{
36
+ expandedRowRender: (row) => <div>...展开内容...</div>,
37
+ }}
38
+ ...
39
+ />
40
+ ```
41
+
42
+ ## API
43
+
44
+ **TablePro**
45
+
46
+ | Prop | 类型 | 默认 | 说明 |
47
+ | --- | --- | --- | --- |
48
+ | ... | `TableProps` | — | 继承自 Table 全部 props (包括新的 pagination / scroll / rowSelection / expandable / filters) |
49
+ | toolbar | `ReactNode` | — | 工具栏内容 |
50
+ | actions | `ReactNode` | — | 工具栏右侧操作 |
51
+ | footer | `ReactNode` | — | 底部 (可选,传了会渲染在分页下方) |
52
+ | title | `ReactNode` | — | 工具栏标题 |
53
+
54
+
55
+ ---
56
+ [← 回到索引](../llms.md)
@@ -0,0 +1,50 @@
1
+ # Tabs 选项卡
2
+
3
+ > 同一层级的内容分组,通过标签切换。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Tabs } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 基础
14
+
15
+ ```tsx
16
+ <Tabs items={[
17
+ { key: "general", label: "通用", content: <>...</> },
18
+ { key: "account", label: "账户", content: <>...</> },
19
+ ]} />
20
+ ```
21
+
22
+ ### 下划线变体
23
+
24
+ ```tsx
25
+ <Tabs variant="line" items={[...]} />
26
+ ```
27
+
28
+ ### 居中对齐
29
+
30
+ centered 让标签条在容器中水平居中。
31
+
32
+ ```tsx
33
+ <Tabs centered items={[...]} />
34
+ ```
35
+
36
+ ## API
37
+
38
+ **Tabs**
39
+
40
+ | Prop | 类型 | 默认 | 说明 |
41
+ | --- | --- | --- | --- |
42
+ | items \* | `TabItem[]` | — | 标签数据 |
43
+ | activeKey / defaultActiveKey | `string` | — | 受控/初始激活 |
44
+ | onChange | `(key: string) => void` | — | 切换 |
45
+ | variant | `"line" | "pill" | "segmented"` | `"line"` | 样式 |
46
+ | centered | `boolean` | `false` | 标签条居中对齐 |
47
+
48
+
49
+ ---
50
+ [← 回到索引](../llms.md)
@@ -0,0 +1,77 @@
1
+ # Tag 标签
2
+
3
+ > 标记关键词、状态或分类。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Tag } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 语气
14
+
15
+ ```tsx
16
+ <Tag>Default</Tag>
17
+ <Tag tone="accent">Accent</Tag>
18
+ <Tag tone="success">Success</Tag>
19
+ ```
20
+
21
+ ### 实心
22
+
23
+ ```tsx
24
+ <Tag tone="accent" solid>Solid</Tag>
25
+ ```
26
+
27
+ ### 圆点状态
28
+
29
+ dot 渲染前置色块。
30
+
31
+ ```tsx
32
+ <Tag tone="success" dot>在线</Tag>
33
+ ```
34
+
35
+ ### 前置图标
36
+
37
+ icon 使用内置 Icon 组件,颜色随语气自动适配。
38
+
39
+ ```tsx
40
+ <Tag tone="success" icon="check2">已完成</Tag>
41
+ <Tag tone="info" icon="star">推荐</Tag>
42
+ ```
43
+
44
+ ### 无边框
45
+
46
+ bordered={false} 去除 flat 阴影,只保留文本色。
47
+
48
+ ```tsx
49
+ <Tag bordered={false}>Default</Tag>
50
+ <Tag tone="accent" bordered={false}>Accent</Tag>
51
+ ```
52
+
53
+ ### 可移除
54
+
55
+ removable + onRemove 实现关闭按钮。
56
+
57
+ ```tsx
58
+ <Tag removable onRemove={() => remove(t.id)}>{t.label}</Tag>
59
+ ```
60
+
61
+ ## API
62
+
63
+ **Tag**
64
+
65
+ | Prop | 类型 | 默认 | 说明 |
66
+ | --- | --- | --- | --- |
67
+ | tone | `"neutral" | "accent" | "info" | "success" | "warning" | "danger"` | `"neutral"` | 色调 |
68
+ | solid | `boolean` | `false` | 实心填充 |
69
+ | dot | `boolean` | `false` | 前置圆点 |
70
+ | icon | `IconName` | — | 前置图标 |
71
+ | bordered | `boolean` | `true` | 是否显示外框 flat 阴影 |
72
+ | removable | `boolean` | `false` | 显示 × |
73
+ | onRemove | `() => void` | — | 关闭回调 |
74
+
75
+
76
+ ---
77
+ [← 回到索引](../llms.md)