@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,33 @@
1
+ # Cascader 级联选择
2
+
3
+ > 层级关联数据集合中的多级选择。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Cascader } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 基础用法
14
+
15
+ ```tsx
16
+ <Cascader options={regions} value={addr} onChange={setAddr} />
17
+ ```
18
+
19
+ ## API
20
+
21
+ **Cascader**
22
+
23
+ | Prop | 类型 | 默认 | 说明 |
24
+ | --- | --- | --- | --- |
25
+ | options \* | `CascaderOption[]` | — | 层级选项树 |
26
+ | value / defaultValue | `string[]` | — | 受控/初始路径 |
27
+ | onChange | `(path: string[]) => void` | — | 选择叶子时触发 |
28
+ | placeholder | `string` | — | 占位文案 |
29
+ | disabled | `boolean` | `false` | 禁用 |
30
+
31
+
32
+ ---
33
+ [← 回到索引](../llms.md)
@@ -0,0 +1,41 @@
1
+ # Checkbox 复选框
2
+
3
+ > 在一组选项中进行多项选择,或独立切换某个开关项。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Checkbox } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 基础用法
14
+
15
+ ```tsx
16
+ <Checkbox checked={v} onChange={setV} label="同意协议" />
17
+ ```
18
+
19
+ ### 全选/半选
20
+
21
+ indeterminate 用来表示部分选中。
22
+
23
+ ```tsx
24
+ <Checkbox indeterminate={some} checked={all} onChange={...} label="全选" />
25
+ ```
26
+
27
+ ## API
28
+
29
+ **Checkbox**
30
+
31
+ | Prop | 类型 | 默认 | 说明 |
32
+ | --- | --- | --- | --- |
33
+ | checked / defaultChecked | `boolean` | — | 受控/初始 |
34
+ | indeterminate | `boolean` | `false` | 半选态 |
35
+ | onChange | `(checked: boolean) => void` | — | 变更 |
36
+ | label | `ReactNode` | — | 右侧文案 |
37
+ | disabled | `boolean` | `false` | 禁用 |
38
+
39
+
40
+ ---
41
+ [← 回到索引](../llms.md)
@@ -0,0 +1,82 @@
1
+ # ColorPicker 颜色选择
2
+
3
+ > 拟态风格的颜色选择器:HSV 色域、色相、hex 输入、预设调色板。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { ColorPicker } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 基础用法
14
+
15
+ 非受控用法,点击色块弹出面板。
16
+
17
+ ```tsx
18
+ <ColorPicker defaultValue="#ff6b6b" onChange={setColor} />
19
+ ```
20
+
21
+ ### 受控
22
+
23
+ 实时同步 value,失焦 / 拖拽结束时再调用 onChangeComplete。
24
+
25
+ ```tsx
26
+ <ColorPicker value={color} onChange={setColor} showText />
27
+ ```
28
+
29
+ ### 尺寸
30
+
31
+ ```tsx
32
+ <ColorPicker size="sm" />
33
+ <ColorPicker />
34
+ <ColorPicker size="lg" />
35
+ ```
36
+
37
+ ### 禁用
38
+
39
+ ```tsx
40
+ <ColorPicker disabled defaultValue="#868e96" />
41
+ ```
42
+
43
+ ### 自定义预设
44
+
45
+ presets 传入十六进制数组,面板底部会渲染一排色块。
46
+
47
+ ```tsx
48
+ <ColorPicker
49
+ presets={["#ff6b6b", "#ffd43b", "#51cf66", "#339af0", "#845ef7"]}
50
+ />
51
+ ```
52
+
53
+ ### 自定义触发器
54
+
55
+ 将 children 作为触发器;色块容器会继承传入的交互元素。
56
+
57
+ ```tsx
58
+ <ColorPicker value={brand} onChange={setBrand}>
59
+ <Button icon="palette">品牌色 · {brand}</Button>
60
+ </ColorPicker>
61
+ ```
62
+
63
+ ## API
64
+
65
+ **ColorPicker**
66
+
67
+ | Prop | 类型 | 默认 | 说明 |
68
+ | --- | --- | --- | --- |
69
+ | value / defaultValue | `string` | `"#845ef7"` | 十六进制颜色 |
70
+ | onChange | `(hex: string) => void` | — | 每次变化触发(拖拽 / 输入 / 预设点击) |
71
+ | onChangeComplete | `(hex: string) => void` | — | 拖拽/输入结束触发 |
72
+ | size | `"sm" | "md" | "lg"` | `"md"` | 触发器尺寸 |
73
+ | placement | `"top" | "bottom" | "left" | "right"` | `"bottom"` | 面板位置 |
74
+ | presets | `string[]` | — | 预设色数组 |
75
+ | showText | `boolean` | `false` | 触发器右侧显示 hex |
76
+ | disabled | `boolean` | `false` | 禁用 |
77
+ | open / defaultOpen / onOpenChange | `—` | — | 受控面板显隐 |
78
+ | children | `ReactNode` | — | 自定义触发器 |
79
+
80
+
81
+ ---
82
+ [← 回到索引](../llms.md)
@@ -0,0 +1,58 @@
1
+ # CommandPalette ⌘K 命令面板
2
+
3
+ > 全局命令搜索与执行入口。
4
+
5
+ ## 示例
6
+
7
+ ### 基础 + 快捷键
8
+
9
+ 在当前页面按 ⌘K / Ctrl+K 打开。分组、快捷键提示、键盘导航都已内置。
10
+
11
+ ```tsx
12
+ const [open, setOpen] = useState(false);
13
+ useEffect(() => {
14
+ const h = (e: KeyboardEvent) => {
15
+ if ((e.metaKey || e.ctrlKey) && e.key === "k") {
16
+ e.preventDefault();
17
+ setOpen(o => !o);
18
+ }
19
+ };
20
+ window.addEventListener("keydown", h);
21
+ return () => window.removeEventListener("keydown", h);
22
+ }, []);
23
+
24
+ <CommandPalette open={open} onOpenChange={setOpen} items={[...]} />
25
+ ```
26
+
27
+ ## API
28
+
29
+ **CommandPalette**
30
+
31
+ | Prop | 类型 | 默认 | 说明 |
32
+ | --- | --- | --- | --- |
33
+ | open / onOpenChange \* | `boolean / (open: boolean) => void` | — | 受控开关 |
34
+ | items \* | `CommandItem[]` | — | 所有命令项 |
35
+ | placeholder | `string` | `"搜索命令…"` | 搜索框占位文本 |
36
+ | filter | `(item, query) => boolean` | `子序列匹配` | 自定义过滤函数 |
37
+ | emptyText | `ReactNode` | — | 无结果占位 |
38
+ | resetOnOpen | `boolean` | `true` | 打开时清空输入 |
39
+ | footer | `ReactNode` | — | 底部区;null 隐藏 |
40
+
41
+
42
+ **CommandItem**
43
+
44
+ | Prop | 类型 | 默认 | 说明 |
45
+ | --- | --- | --- | --- |
46
+ | key \* | `string` | — | 唯一键 |
47
+ | label \* | `string` | — | 主文案(也参与搜索) |
48
+ | description | `ReactNode` | — | 副标题 |
49
+ | icon | `ReactNode` | — | 前置图标 |
50
+ | shortcut | `ReactNode` | — | 右侧快捷键 |
51
+ | keywords | `string[]` | — | 额外搜索关键词 |
52
+ | group | `string` | — | 分组标题 |
53
+ | disabled | `boolean` | — | 禁用 |
54
+ | onSelect | `() => void` | — | 选中回调(会自动关闭面板) |
55
+
56
+
57
+ ---
58
+ [← 回到索引](../llms.md)
@@ -0,0 +1,55 @@
1
+ # ContextMenu 右键菜单
2
+
3
+ > 桌面应用风格的右键上下文菜单。
4
+
5
+ ## 示例
6
+
7
+ ### 基础
8
+
9
+ ```tsx
10
+ <ContextMenu items={[
11
+ { key: "copy", label: "复制", shortcut: "⌘C", onSelect: () => {} },
12
+ { key: "cut", label: "剪切", shortcut: "⌘X", onSelect: () => {} },
13
+ { key: "d", type: "divider" },
14
+ { key: "del", label: "删除", danger: true, onSelect: () => {} },
15
+ ]}>
16
+ <div>右键点击我</div>
17
+ </ContextMenu>
18
+ ```
19
+
20
+ ### 文件管理器示例
21
+
22
+ 典型的文件右键菜单,带图标、快捷键、分组分隔、危险操作高亮。
23
+
24
+ ```tsx
25
+ <ContextMenu items={[...]}>...
26
+ ```
27
+
28
+ ## API
29
+
30
+ **ContextMenu**
31
+
32
+ | Prop | 类型 | 默认 | 说明 |
33
+ | --- | --- | --- | --- |
34
+ | items \* | `ContextMenuItem[]` | — | 菜单项 |
35
+ | children \* | `ReactElement` | — | 触发元素(恰好一个) |
36
+ | disabled | `boolean` | — | 禁用,恢复浏览器原生菜单 |
37
+ | minWidth | `number` | `180` | 面板最小宽度 |
38
+
39
+
40
+ **ContextMenuItem**
41
+
42
+ | Prop | 类型 | 默认 | 说明 |
43
+ | --- | --- | --- | --- |
44
+ | key \* | `string` | — | 唯一键 |
45
+ | label | `ReactNode` | — | 文案 |
46
+ | icon | `ReactNode` | — | 前置图标 |
47
+ | shortcut | `ReactNode` | — | 右侧快捷键提示 |
48
+ | disabled | `boolean` | — | 禁用 |
49
+ | danger | `boolean` | — | 危险态(红色) |
50
+ | type | `"divider"` | — | 置为 "divider" 渲染分隔线 |
51
+ | onSelect | `() => void` | — | 选中回调 |
52
+
53
+
54
+ ---
55
+ [← 回到索引](../llms.md)
@@ -0,0 +1,69 @@
1
+ # Divider 分隔符
2
+
3
+ > 对内容进行分割。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Divider } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 水平分隔
14
+
15
+ ```tsx
16
+ <Divider />
17
+ ```
18
+
19
+ ### 带文字
20
+
21
+ ```tsx
22
+ <Divider label="分割标题" />
23
+ ```
24
+
25
+ ### 文字位置
26
+
27
+ orientation 控制文字在线上的位置。
28
+
29
+ ```tsx
30
+ <Divider label="左对齐" orientation="left" />
31
+ <Divider label="居中" orientation="center" />
32
+ <Divider label="右对齐" orientation="right" />
33
+ ```
34
+
35
+ ### 虚线
36
+
37
+ dashed 切换为虚线样式,也适用于带文字或垂直方向。
38
+
39
+ ```tsx
40
+ <Divider dashed />
41
+ <Divider dashed label="虚线带文字" />
42
+ <Row>
43
+ <span>左</span>
44
+ <Divider direction="vertical" dashed />
45
+ <span>右</span>
46
+ </Row>
47
+ ```
48
+
49
+ ### 垂直分隔
50
+
51
+ ```tsx
52
+ <Divider direction="vertical" />
53
+ ```
54
+
55
+ ## API
56
+
57
+ **Divider**
58
+
59
+ | Prop | 类型 | 默认 | 说明 |
60
+ | --- | --- | --- | --- |
61
+ | direction | `"horizontal" | "vertical"` | `"horizontal"` | 方向 |
62
+ | label | `ReactNode` | — | 中部文字 |
63
+ | orientation | `"left" | "center" | "right"` | `"center"` | 文字位置(仅水平) |
64
+ | dashed | `boolean` | `false` | 虚线样式 |
65
+ | sunken | `boolean` | `false` | 凹陷凹槽样式 |
66
+
67
+
68
+ ---
69
+ [← 回到索引](../llms.md)
@@ -0,0 +1,70 @@
1
+ # Drawer 抽屉
2
+
3
+ > 从屏幕边缘滑出的浮层。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Drawer } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 基础
14
+
15
+ ```tsx
16
+ <Drawer open={d} onClose={...} title="标题">...</Drawer>
17
+ ```
18
+
19
+ ### 标题右侧 extra
20
+
21
+ extra 渲染到标题右边,常用来放刷新 / 更多 / 保存按钮。
22
+
23
+ ```tsx
24
+ <Drawer
25
+ title="订单详情"
26
+ extra={<><IconButton icon="edit" tip="编辑" /><Button variant="primary">保存</Button></>}
27
+ />
28
+ ```
29
+
30
+ ### 四个方向
31
+
32
+ placement 控制滑出方向;top / bottom 用 size 控高度。
33
+
34
+ ```tsx
35
+ <Drawer placement="left" size={320} />
36
+ <Drawer placement="top" size={240} />
37
+ ```
38
+
39
+ ### 无遮罩 (mask={false})
40
+
41
+ 关闭遮罩的抽屉不阻塞页面其他交互,适合辅助面板。
42
+
43
+ ```tsx
44
+ <Drawer mask={false} />
45
+ ```
46
+
47
+ ## API
48
+
49
+ **Drawer**
50
+
51
+ | Prop | 类型 | 默认 | 说明 |
52
+ | --- | --- | --- | --- |
53
+ | open \* | `boolean` | — | 可见 |
54
+ | onClose | `() => void` | — | 关闭回调 |
55
+ | placement | `"left" | "right" | "top" | "bottom"` | `"right"` | 出现位置 |
56
+ | size | `number | string` | `380` | 宽度(左右)或高度(上下) |
57
+ | title / footer / children | `ReactNode` | — | 头/脚/主体 |
58
+ | extra | `ReactNode` | — | 标题右侧的附加操作区 |
59
+ | mask | `boolean` | `true` | 是否渲染遮罩 |
60
+ | maskClosable | `boolean` | `true` | 点击遮罩关闭 |
61
+ | keyboard | `boolean` | `true` | Esc 关闭 |
62
+ | closable | `boolean` | `true` | 右上角 × |
63
+ | closeIcon | `ReactNode` | — | 自定义关闭图标 |
64
+ | destroyOnClose | `boolean` | `false` | 关闭时卸载子树 |
65
+ | afterOpenChange | `(open: boolean) => void` | — | 动画结束回调 |
66
+ | zIndex | `number` | — | 覆盖 z-index |
67
+
68
+
69
+ ---
70
+ [← 回到索引](../llms.md)
@@ -0,0 +1,52 @@
1
+ # Empty 空状态
2
+
3
+ > 列表、页面或容器无数据时的占位。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Empty } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 基础
14
+
15
+ ```tsx
16
+ <Empty title="暂无项目" description="创建一个开始吧" action={<Button>新建</Button>} />
17
+ ```
18
+
19
+ ### Subtle 变体
20
+
21
+ 去掉凹陷图标框,用于嵌入已有卡片/对话框中。
22
+
23
+ ```tsx
24
+ <Empty variant="subtle" icon={<Icon name="search" size={28} />} title="未找到结果" />
25
+ ```
26
+
27
+ ### 尺寸
28
+
29
+ sm 适合列表内嵌,md 是默认,lg 用作整页占位。
30
+
31
+ ```tsx
32
+ <Empty size="sm" title="暂无数据" />
33
+ <Empty size="md" title="暂无数据" />
34
+ <Empty size="lg" title="暂无数据" />
35
+ ```
36
+
37
+ ## API
38
+
39
+ **Empty**
40
+
41
+ | Prop | 类型 | 默认 | 说明 |
42
+ | --- | --- | --- | --- |
43
+ | title | `ReactNode` | `"暂无内容"` | 标题 |
44
+ | description | `ReactNode` | — | 描述 |
45
+ | icon | `ReactNode` | — | 图标 |
46
+ | action | `ReactNode` | — | 底部操作 |
47
+ | size | `"sm" | "md" | "lg"` | `"md"` | 尺寸 |
48
+ | variant | `"default" | "subtle"` | `"default"` | 样式 |
49
+
50
+
51
+ ---
52
+ [← 回到索引](../llms.md)
@@ -0,0 +1,34 @@
1
+ # Icon 图标
2
+
3
+ > 线性图标集,继承当前文字颜色,可调整尺寸与描边。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Icon } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 基础用法
14
+
15
+ 通过 name 指定图标,size 控制尺寸,stroke 控制描边粗细。
16
+
17
+ ```tsx
18
+ <Icon name="search" size={16} />
19
+ <Icon name="heart" size={20} stroke={1.5} />
20
+ ```
21
+
22
+ ## API
23
+
24
+ **Icon**
25
+
26
+ | Prop | 类型 | 默认 | 说明 |
27
+ | --- | --- | --- | --- |
28
+ | name \* | `IconName` | — | 图标名 |
29
+ | size | `number` | `16` | 尺寸 (px) |
30
+ | stroke | `number` | `2` | 描边粗细 |
31
+
32
+
33
+ ---
34
+ [← 回到索引](../llms.md)
@@ -0,0 +1,39 @@
1
+ # Image 图片
2
+
3
+ > 凹陷外框包裹的图片容器,带预览、错误占位。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Image, ImageGrid } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 基础
14
+
15
+ ```tsx
16
+ <Image src={url} width={240} height={160} />
17
+ ```
18
+
19
+ ### 图片组
20
+
21
+ ```tsx
22
+ <ImageGrid images={images} />
23
+ ```
24
+
25
+ ## API
26
+
27
+ **Image**
28
+
29
+ | Prop | 类型 | 默认 | 说明 |
30
+ | --- | --- | --- | --- |
31
+ | src | `string` | — | 图片 URL |
32
+ | width / height | `number | string` | — | 尺寸 |
33
+ | preview | `boolean` | `true` | 支持点击全屏预览 |
34
+ | hover | `boolean` | `true` | 悬浮放大 |
35
+ | placeholder | `ReactNode` | — | 占位/错误时内容 |
36
+
37
+
38
+ ---
39
+ [← 回到索引](../llms.md)
@@ -0,0 +1,127 @@
1
+ # Input 输入框
2
+
3
+ > 凹陷凹槽式输入域,支持前后置图标、错误态、禁用态。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Input, Textarea } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 基础用法
14
+
15
+ ```tsx
16
+ const [v, setV] = useState("");
17
+ <Input placeholder="输入用户名" value={v} onChange={setV} leadingIcon="user" />
18
+ ```
19
+
20
+ ### 前后置图标
21
+
22
+ leadingIcon / trailingIcon。
23
+
24
+ ```tsx
25
+ <Input placeholder="搜索..." leadingIcon="search" />
26
+ ```
27
+
28
+ ### 密码切换
29
+
30
+ trailingIcon 可点击切换密码可见性。
31
+
32
+ ```tsx
33
+ <Input
34
+ type={showPw ? "text" : "password"}
35
+ trailingIcon={showPw ? "eyeOff" : "eye"}
36
+ onTrailingIconClick={() => setShowPw(s => !s)}
37
+ />
38
+ ```
39
+
40
+ ### 校验错误
41
+
42
+ invalid 触发红色凹槽。
43
+
44
+ ```tsx
45
+ <Input invalid hint="请输入有效的邮箱" />
46
+ ```
47
+
48
+ ### 可清除
49
+
50
+ allowClear 在值非空时显示 × 按钮,点击即清空。
51
+
52
+ ```tsx
53
+ <Input value={v} onChange={setV} allowClear placeholder="输入后右侧会出现 ×" />
54
+ ```
55
+
56
+ ### 前缀 / 后缀
57
+
58
+ prefix/suffix 在输入框内部以静态文本形式呈现,常用于单位或协议。
59
+
60
+ ```tsx
61
+ <Input prefix="https://" suffix=".com" defaultValue="lumina" />
62
+ <Input prefix="¥" suffix="元" defaultValue="1280" />
63
+ ```
64
+
65
+ ### 字数统计 + maxLength
66
+
67
+ showCount 显示当前字数,配合 maxLength 显示 N / max。
68
+
69
+ ```tsx
70
+ <Input
71
+ value={v}
72
+ onChange={setV}
73
+ maxLength={20}
74
+ showCount
75
+ placeholder="最多输入 20 个字"
76
+ />
77
+ ```
78
+
79
+ ### 多行文本
80
+
81
+ Textarea 与 Input 共享同款凹槽,也支持 allowClear / maxLength / showCount。
82
+
83
+ ```tsx
84
+ <Textarea
85
+ placeholder="..."
86
+ value={msg}
87
+ onChange={setMsg}
88
+ allowClear
89
+ maxLength={300}
90
+ showCount
91
+ />
92
+ ```
93
+
94
+ ## API
95
+
96
+ **Input**
97
+
98
+ | Prop | 类型 | 默认 | 说明 |
99
+ | --- | --- | --- | --- |
100
+ | value / defaultValue | `string` | — | 受控值 / 初值 |
101
+ | onChange | `(value: string, e) => void` | — | 变更回调 |
102
+ | placeholder | `string` | — | 占位文案 |
103
+ | leadingIcon / trailingIcon | `IconName` | — | 前/后置图标 |
104
+ | prefix | `ReactNode` | — | 左侧内嵌内容(在 leadingIcon 之后) |
105
+ | suffix | `ReactNode` | — | 右侧内嵌内容(在 trailingIcon 之前) |
106
+ | allowClear | `boolean` | `false` | 显示内置的清除按钮 |
107
+ | maxLength | `number` | — | 最大字符数,透传至原生 input |
108
+ | showCount | `boolean` | `false` | 在输入框下方显示字数统计 |
109
+ | size | `"sm" | "md" | "lg"` | `"md"` | 尺寸 |
110
+ | invalid | `boolean` | `false` | 错误态 |
111
+ | disabled | `boolean` | `false` | 禁用 |
112
+
113
+
114
+ **Textarea**
115
+
116
+ | Prop | 类型 | 默认 | 说明 |
117
+ | --- | --- | --- | --- |
118
+ | value / defaultValue | `string` | — | 受控值 / 初值 |
119
+ | onChange | `(value: string, e) => void` | — | 变更回调 |
120
+ | allowClear | `boolean` | `false` | 右上角显示清除按钮 |
121
+ | maxLength | `number` | — | 最大字符数 |
122
+ | showCount | `boolean` | `false` | 显示字数统计 |
123
+ | invalid | `boolean` | `false` | 错误态 |
124
+
125
+
126
+ ---
127
+ [← 回到索引](../llms.md)
@@ -0,0 +1,6 @@
1
+ # Lumina
2
+
3
+ > 为 Electron 应用定制的拟态风格 React 组件库。
4
+
5
+ ---
6
+ [← 回到索引](../llms.md)