@fangxinyan/lumina 0.2.1 → 0.4.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 (296) hide show
  1. package/dist/{Accordion-3TQPKNN3.css → Accordion-REMDCQUD.css} +0 -1
  2. package/dist/Accordion.cjs +3 -3
  3. package/dist/Accordion.js +2 -2
  4. package/dist/Alert.cjs +3 -3
  5. package/dist/Alert.js +2 -2
  6. package/dist/AppShell.cjs +5 -5
  7. package/dist/AppShell.js +1 -1
  8. package/dist/AutoComplete-P5KZMZO5.css +54 -0
  9. package/dist/AutoComplete.cjs +15 -0
  10. package/dist/AutoComplete.cjs.map +1 -0
  11. package/dist/AutoComplete.d.cts +51 -0
  12. package/dist/AutoComplete.d.ts +51 -0
  13. package/dist/AutoComplete.js +6 -0
  14. package/dist/AutoComplete.js.map +1 -0
  15. package/dist/Avatar.cjs +2 -2
  16. package/dist/Avatar.js +1 -1
  17. package/dist/Button.cjs +4 -4
  18. package/dist/Button.js +2 -2
  19. package/dist/Calendar.cjs +3 -3
  20. package/dist/Calendar.js +2 -2
  21. package/dist/Card.cjs +3 -3
  22. package/dist/Card.js +1 -1
  23. package/dist/{Cascader-DTRTTXC2.css → Cascader-VSYEKQCG.css} +1 -1
  24. package/dist/Cascader.cjs +3 -3
  25. package/dist/Cascader.js +2 -2
  26. package/dist/Checkbox.cjs +4 -4
  27. package/dist/Checkbox.js +2 -2
  28. package/dist/{ColorPicker-GP7AQYUU.css → ColorPicker-SDDQGHCM.css} +1 -1
  29. package/dist/ColorPicker.cjs +2 -2
  30. package/dist/ColorPicker.js +1 -1
  31. package/dist/CommandPalette-T45DBMPY.css +139 -0
  32. package/dist/CommandPalette.cjs +14 -0
  33. package/dist/CommandPalette.cjs.map +1 -0
  34. package/dist/CommandPalette.d.cts +65 -0
  35. package/dist/CommandPalette.d.ts +65 -0
  36. package/dist/CommandPalette.js +5 -0
  37. package/dist/CommandPalette.js.map +1 -0
  38. package/dist/ContextMenu-FKW6CQW4.css +76 -0
  39. package/dist/ContextMenu.cjs +12 -0
  40. package/dist/ContextMenu.cjs.map +1 -0
  41. package/dist/ContextMenu.d.cts +50 -0
  42. package/dist/ContextMenu.d.ts +50 -0
  43. package/dist/ContextMenu.js +3 -0
  44. package/dist/ContextMenu.js.map +1 -0
  45. package/dist/Divider.cjs +2 -2
  46. package/dist/Divider.js +1 -1
  47. package/dist/Drawer.cjs +3 -3
  48. package/dist/Drawer.js +2 -2
  49. package/dist/Empty.cjs +4 -4
  50. package/dist/Empty.js +1 -1
  51. package/dist/Form-5GRVZNDO.css +67 -0
  52. package/dist/Form.cjs +20 -0
  53. package/dist/Form.cjs.map +1 -0
  54. package/dist/Form.d.cts +85 -0
  55. package/dist/Form.d.ts +85 -0
  56. package/dist/Form.js +3 -0
  57. package/dist/Form.js.map +1 -0
  58. package/dist/Icon.cjs +3 -3
  59. package/dist/Icon.d.cts +1 -1
  60. package/dist/Icon.d.ts +1 -1
  61. package/dist/Icon.js +1 -1
  62. package/dist/{Image-WYWORJT4.css → Image-4MN34O6P.css} +1 -1
  63. package/dist/Image.cjs +4 -4
  64. package/dist/Image.js +2 -2
  65. package/dist/Input.cjs +4 -4
  66. package/dist/Input.js +2 -2
  67. package/dist/InputNumber-VXQIWLQC.css +40 -0
  68. package/dist/InputNumber.cjs +14 -0
  69. package/dist/InputNumber.cjs.map +1 -0
  70. package/dist/InputNumber.d.cts +46 -0
  71. package/dist/InputNumber.d.ts +46 -0
  72. package/dist/InputNumber.js +5 -0
  73. package/dist/InputNumber.js.map +1 -0
  74. package/dist/List.cjs +2 -2
  75. package/dist/List.js +1 -1
  76. package/dist/{Modal-N4YVLEWW.css → Modal-XSDMU4XJ.css} +1 -1
  77. package/dist/Modal.cjs +4 -4
  78. package/dist/Modal.js +3 -3
  79. package/dist/Pagination.cjs +5 -5
  80. package/dist/Pagination.js +4 -4
  81. package/dist/{Popover-MGCMOXYP.css → Popover-NYEKT5CQ.css} +1 -1
  82. package/dist/Popover.cjs +2 -2
  83. package/dist/Popover.js +1 -1
  84. package/dist/Progress.cjs +3 -3
  85. package/dist/Progress.js +1 -1
  86. package/dist/{Select-EDG37C37.css → Select-J3CCVFJ7.css} +1 -1
  87. package/dist/Select.cjs +4 -4
  88. package/dist/Select.js +3 -3
  89. package/dist/Slider.cjs +2 -2
  90. package/dist/Slider.js +1 -1
  91. package/dist/Splitter-DHNOY4NC.css +66 -0
  92. package/dist/Splitter.cjs +12 -0
  93. package/dist/Splitter.cjs.map +1 -0
  94. package/dist/Splitter.d.cts +44 -0
  95. package/dist/Splitter.d.ts +44 -0
  96. package/dist/Splitter.js +3 -0
  97. package/dist/Splitter.js.map +1 -0
  98. package/dist/StatusBar-CDS2GPSI.css +58 -0
  99. package/dist/StatusBar.cjs +16 -0
  100. package/dist/StatusBar.cjs.map +1 -0
  101. package/dist/StatusBar.d.cts +39 -0
  102. package/dist/StatusBar.d.ts +39 -0
  103. package/dist/StatusBar.js +3 -0
  104. package/dist/StatusBar.js.map +1 -0
  105. package/dist/Switch.cjs +2 -2
  106. package/dist/Switch.js +1 -1
  107. package/dist/{Table-YKVM42SW.css → Table-2LPTOUIR.css} +1 -1
  108. package/dist/Table.cjs +8 -8
  109. package/dist/Table.js +6 -6
  110. package/dist/Tabs.cjs +3 -3
  111. package/dist/Tabs.js +1 -1
  112. package/dist/Tag.cjs +4 -4
  113. package/dist/Tag.js +2 -2
  114. package/dist/Theme.cjs +10 -10
  115. package/dist/Theme.js +1 -1
  116. package/dist/{Toast-ERHDN3WG.css → Toast-6PVSAXQ5.css} +1 -1
  117. package/dist/Toast.cjs +4 -4
  118. package/dist/Toast.js +2 -2
  119. package/dist/Tooltip.cjs +2 -2
  120. package/dist/Tooltip.js +1 -1
  121. package/dist/Typography.cjs +7 -7
  122. package/dist/Typography.js +2 -2
  123. package/dist/{chunk-IKI5CS4L.cjs → chunk-2ENTRT7R.cjs} +7 -7
  124. package/dist/{chunk-IKI5CS4L.cjs.map → chunk-2ENTRT7R.cjs.map} +1 -1
  125. package/dist/{chunk-FI7QO3I5.cjs → chunk-33TIL25B.cjs} +3 -3
  126. package/dist/{chunk-FI7QO3I5.cjs.map → chunk-33TIL25B.cjs.map} +1 -1
  127. package/dist/{chunk-5WF6M47X.cjs → chunk-3BZ47QNV.cjs} +8 -8
  128. package/dist/{chunk-5WF6M47X.cjs.map → chunk-3BZ47QNV.cjs.map} +1 -1
  129. package/dist/{chunk-NE4YEBFH.js → chunk-3UU2PUK4.js} +4 -4
  130. package/dist/{chunk-NE4YEBFH.js.map → chunk-3UU2PUK4.js.map} +1 -1
  131. package/dist/chunk-47Z4NIU4.js +118 -0
  132. package/dist/chunk-47Z4NIU4.js.map +1 -0
  133. package/dist/{chunk-4U4OY5RA.js → chunk-4SCDDSXY.js} +3 -3
  134. package/dist/{chunk-4U4OY5RA.js.map → chunk-4SCDDSXY.js.map} +1 -1
  135. package/dist/{chunk-NXOAYNG2.cjs → chunk-5BFETKVP.cjs} +3 -3
  136. package/dist/{chunk-NXOAYNG2.cjs.map → chunk-5BFETKVP.cjs.map} +1 -1
  137. package/dist/{chunk-VICGQC6G.cjs → chunk-5EAVXFFD.cjs} +3 -3
  138. package/dist/{chunk-VICGQC6G.cjs.map → chunk-5EAVXFFD.cjs.map} +1 -1
  139. package/dist/{chunk-OYGFMXAA.js → chunk-5N7347MI.js} +3 -3
  140. package/dist/{chunk-OYGFMXAA.js.map → chunk-5N7347MI.js.map} +1 -1
  141. package/dist/{chunk-VJN637MT.js → chunk-5PREWYTB.js} +3 -3
  142. package/dist/{chunk-VJN637MT.js.map → chunk-5PREWYTB.js.map} +1 -1
  143. package/dist/{chunk-BBPNQ44M.js → chunk-6GNFRP2H.js} +3 -3
  144. package/dist/{chunk-BBPNQ44M.js.map → chunk-6GNFRP2H.js.map} +1 -1
  145. package/dist/{chunk-ZVCMXDTP.js → chunk-6XZ362VL.js} +6 -6
  146. package/dist/{chunk-ZVCMXDTP.js.map → chunk-6XZ362VL.js.map} +1 -1
  147. package/dist/chunk-6Z24VO3K.js +184 -0
  148. package/dist/chunk-6Z24VO3K.js.map +1 -0
  149. package/dist/{chunk-K7PVJLW4.cjs → chunk-77TZHI76.cjs} +8 -8
  150. package/dist/{chunk-K7PVJLW4.cjs.map → chunk-77TZHI76.cjs.map} +1 -1
  151. package/dist/{chunk-QPZZNSRB.js → chunk-7M7NAMR5.js} +5 -5
  152. package/dist/{chunk-QPZZNSRB.js.map → chunk-7M7NAMR5.js.map} +1 -1
  153. package/dist/chunk-7T2SLRNL.cjs +140 -0
  154. package/dist/chunk-7T2SLRNL.cjs.map +1 -0
  155. package/dist/chunk-7YQWG7HR.cjs +45 -0
  156. package/dist/chunk-7YQWG7HR.cjs.map +1 -0
  157. package/dist/{chunk-TYQ5CN2C.js → chunk-AESLEYST.js} +5 -5
  158. package/dist/{chunk-TYQ5CN2C.js.map → chunk-AESLEYST.js.map} +1 -1
  159. package/dist/{chunk-PBBHUUXU.cjs → chunk-B5JH7NRZ.cjs} +3 -3
  160. package/dist/{chunk-PBBHUUXU.cjs.map → chunk-B5JH7NRZ.cjs.map} +1 -1
  161. package/dist/chunk-BCPAY65C.cjs +169 -0
  162. package/dist/chunk-BCPAY65C.cjs.map +1 -0
  163. package/dist/{chunk-E6R63QOL.js → chunk-CTYW42GG.js} +7 -7
  164. package/dist/{chunk-E6R63QOL.js.map → chunk-CTYW42GG.js.map} +1 -1
  165. package/dist/chunk-E62JFAHW.js +147 -0
  166. package/dist/chunk-E62JFAHW.js.map +1 -0
  167. package/dist/{chunk-WNGG25QX.js → chunk-FFZLSY2N.js} +3 -3
  168. package/dist/{chunk-WNGG25QX.js.map → chunk-FFZLSY2N.js.map} +1 -1
  169. package/dist/{chunk-IWVKITPN.js → chunk-FXQGPHK2.js} +4 -4
  170. package/dist/{chunk-IWVKITPN.js.map → chunk-FXQGPHK2.js.map} +1 -1
  171. package/dist/{chunk-Z7P6QGMT.js → chunk-GR5STMOA.js} +3 -3
  172. package/dist/{chunk-Z7P6QGMT.js.map → chunk-GR5STMOA.js.map} +1 -1
  173. package/dist/{chunk-RDLPX7RK.cjs → chunk-HJIKU6MF.cjs} +33 -7
  174. package/dist/chunk-HJIKU6MF.cjs.map +1 -0
  175. package/dist/{chunk-QESLHLTG.cjs → chunk-HXSAH4Y6.cjs} +9 -9
  176. package/dist/{chunk-QESLHLTG.cjs.map → chunk-HXSAH4Y6.cjs.map} +1 -1
  177. package/dist/{chunk-RPD2OIIP.js → chunk-I2HHC6QW.js} +4 -4
  178. package/dist/{chunk-RPD2OIIP.js.map → chunk-I2HHC6QW.js.map} +1 -1
  179. package/dist/{chunk-GZGZR4FT.js → chunk-I7WLFADD.js} +4 -4
  180. package/dist/{chunk-GZGZR4FT.js.map → chunk-I7WLFADD.js.map} +1 -1
  181. package/dist/chunk-IHACXMOI.js +307 -0
  182. package/dist/chunk-IHACXMOI.js.map +1 -0
  183. package/dist/chunk-IJA26LRY.cjs +209 -0
  184. package/dist/chunk-IJA26LRY.cjs.map +1 -0
  185. package/dist/chunk-IOWREUEP.js +170 -0
  186. package/dist/chunk-IOWREUEP.js.map +1 -0
  187. package/dist/{chunk-AXMEZGEG.cjs → chunk-IZDJCEMF.cjs} +3 -3
  188. package/dist/{chunk-AXMEZGEG.cjs.map → chunk-IZDJCEMF.cjs.map} +1 -1
  189. package/dist/{chunk-V34OPWKZ.js → chunk-JSDQVVQB.js} +3 -3
  190. package/dist/{chunk-V34OPWKZ.js.map → chunk-JSDQVVQB.js.map} +1 -1
  191. package/dist/{chunk-77BVQNAQ.js → chunk-JXHMJUVI.js} +4 -4
  192. package/dist/{chunk-77BVQNAQ.js.map → chunk-JXHMJUVI.js.map} +1 -1
  193. package/dist/{chunk-GIVMKGZN.js → chunk-KW7Z4IQC.js} +4 -4
  194. package/dist/{chunk-GIVMKGZN.js.map → chunk-KW7Z4IQC.js.map} +1 -1
  195. package/dist/{chunk-QTGDYQOT.cjs → chunk-LLNEDEST.cjs} +4 -4
  196. package/dist/{chunk-QTGDYQOT.cjs.map → chunk-LLNEDEST.cjs.map} +1 -1
  197. package/dist/{chunk-AJZKESHB.js → chunk-LXNR6TQK.js} +4 -4
  198. package/dist/{chunk-AJZKESHB.js.map → chunk-LXNR6TQK.js.map} +1 -1
  199. package/dist/{chunk-SBMOIE5C.cjs → chunk-MDQNUKCP.cjs} +14 -14
  200. package/dist/{chunk-SBMOIE5C.cjs.map → chunk-MDQNUKCP.cjs.map} +1 -1
  201. package/dist/{chunk-JKLQOB2F.cjs → chunk-MUFMJPRT.cjs} +3 -3
  202. package/dist/{chunk-JKLQOB2F.cjs.map → chunk-MUFMJPRT.cjs.map} +1 -1
  203. package/dist/{chunk-AEJJGUEN.cjs → chunk-N73JGXYZ.cjs} +5 -5
  204. package/dist/{chunk-AEJJGUEN.cjs.map → chunk-N73JGXYZ.cjs.map} +1 -1
  205. package/dist/{chunk-C5TGQ7CV.cjs → chunk-NN7WMXY4.cjs} +5 -5
  206. package/dist/{chunk-C5TGQ7CV.cjs.map → chunk-NN7WMXY4.cjs.map} +1 -1
  207. package/dist/{chunk-7H453VPW.cjs → chunk-NQQWCIE6.cjs} +3 -3
  208. package/dist/{chunk-7H453VPW.cjs.map → chunk-NQQWCIE6.cjs.map} +1 -1
  209. package/dist/{chunk-ZWP4LSS3.js → chunk-NS3C2ZSE.js} +3 -3
  210. package/dist/{chunk-ZWP4LSS3.js.map → chunk-NS3C2ZSE.js.map} +1 -1
  211. package/dist/{chunk-HKAQILD2.cjs → chunk-O2HMH5BI.cjs} +4 -4
  212. package/dist/{chunk-HKAQILD2.cjs.map → chunk-O2HMH5BI.cjs.map} +1 -1
  213. package/dist/{chunk-4MR4GVTD.js → chunk-O7C6S644.js} +32 -6
  214. package/dist/chunk-O7C6S644.js.map +1 -0
  215. package/dist/{chunk-K5MHL732.js → chunk-OM76QWUN.js} +5 -5
  216. package/dist/{chunk-K5MHL732.js.map → chunk-OM76QWUN.js.map} +1 -1
  217. package/dist/chunk-OWNVDXRQ.js +42 -0
  218. package/dist/chunk-OWNVDXRQ.js.map +1 -0
  219. package/dist/{chunk-3UFU63X7.cjs → chunk-OZVPJWXO.cjs} +3 -3
  220. package/dist/{chunk-3UFU63X7.cjs.map → chunk-OZVPJWXO.cjs.map} +1 -1
  221. package/dist/{chunk-M6CGYGEO.js → chunk-PKXXR76Q.js} +4 -4
  222. package/dist/{chunk-M6CGYGEO.js.map → chunk-PKXXR76Q.js.map} +1 -1
  223. package/dist/{chunk-7U6I44RV.cjs → chunk-Q7CDWNM6.cjs} +3 -3
  224. package/dist/{chunk-7U6I44RV.cjs.map → chunk-Q7CDWNM6.cjs.map} +1 -1
  225. package/dist/{chunk-437LB2V4.js → chunk-QJGKI2BD.js} +3 -3
  226. package/dist/{chunk-437LB2V4.js.map → chunk-QJGKI2BD.js.map} +1 -1
  227. package/dist/{chunk-GEYMWUW6.js → chunk-QOGROEVD.js} +23 -5
  228. package/dist/chunk-QOGROEVD.js.map +1 -0
  229. package/dist/chunk-QVFEKGKI.cjs +331 -0
  230. package/dist/chunk-QVFEKGKI.cjs.map +1 -0
  231. package/dist/chunk-RFU5HN4E.js +149 -0
  232. package/dist/chunk-RFU5HN4E.js.map +1 -0
  233. package/dist/{chunk-URF6RBW6.cjs → chunk-RQV7SMIZ.cjs} +6 -6
  234. package/dist/{chunk-URF6RBW6.cjs.map → chunk-RQV7SMIZ.cjs.map} +1 -1
  235. package/dist/{chunk-OPTTHURA.cjs → chunk-RWHWEQQX.cjs} +7 -7
  236. package/dist/{chunk-OPTTHURA.cjs.map → chunk-RWHWEQQX.cjs.map} +1 -1
  237. package/dist/{chunk-CCBHZYE6.cjs → chunk-SMHXSEBD.cjs} +9 -9
  238. package/dist/{chunk-CCBHZYE6.cjs.map → chunk-SMHXSEBD.cjs.map} +1 -1
  239. package/dist/{chunk-EPFYIR63.cjs → chunk-T4PI2ZX7.cjs} +16 -16
  240. package/dist/{chunk-EPFYIR63.cjs.map → chunk-T4PI2ZX7.cjs.map} +1 -1
  241. package/dist/{chunk-YEOARJKR.cjs → chunk-TQLCIXCK.cjs} +3 -3
  242. package/dist/{chunk-YEOARJKR.cjs.map → chunk-TQLCIXCK.cjs.map} +1 -1
  243. package/dist/{chunk-LSLYY5FN.js → chunk-TZLM5GF4.js} +6 -6
  244. package/dist/{chunk-LSLYY5FN.js.map → chunk-TZLM5GF4.js.map} +1 -1
  245. package/dist/{chunk-Z5X5AMLA.cjs → chunk-TZXEZFCI.cjs} +6 -6
  246. package/dist/{chunk-Z5X5AMLA.cjs.map → chunk-TZXEZFCI.cjs.map} +1 -1
  247. package/dist/{chunk-3WAFIUDQ.js → chunk-UQB5OHMO.js} +3 -3
  248. package/dist/{chunk-3WAFIUDQ.js.map → chunk-UQB5OHMO.js.map} +1 -1
  249. package/dist/chunk-VQBZKRIB.cjs +192 -0
  250. package/dist/chunk-VQBZKRIB.cjs.map +1 -0
  251. package/dist/{chunk-I7SSCSFH.js → chunk-W6I67HQQ.js} +3 -3
  252. package/dist/{chunk-I7SSCSFH.js.map → chunk-W6I67HQQ.js.map} +1 -1
  253. package/dist/{chunk-4GT5TOHP.js → chunk-WDBJVKSR.js} +3 -3
  254. package/dist/{chunk-4GT5TOHP.js.map → chunk-WDBJVKSR.js.map} +1 -1
  255. package/dist/{chunk-NSUD5B22.js → chunk-WUOFJPZ4.js} +4 -4
  256. package/dist/{chunk-NSUD5B22.js.map → chunk-WUOFJPZ4.js.map} +1 -1
  257. package/dist/{chunk-TWBJCFEJ.cjs → chunk-WVBFQB26.cjs} +8 -8
  258. package/dist/{chunk-TWBJCFEJ.cjs.map → chunk-WVBFQB26.cjs.map} +1 -1
  259. package/dist/chunk-WZ73TWB2.cjs +174 -0
  260. package/dist/chunk-WZ73TWB2.cjs.map +1 -0
  261. package/dist/{chunk-H6FCIJOP.js → chunk-XCYE4OQV.js} +4 -4
  262. package/dist/{chunk-H6FCIJOP.js.map → chunk-XCYE4OQV.js.map} +1 -1
  263. package/dist/{chunk-F7HW2PYR.cjs → chunk-XUT2Z2L6.cjs} +3 -3
  264. package/dist/{chunk-F7HW2PYR.cjs.map → chunk-XUT2Z2L6.cjs.map} +1 -1
  265. package/dist/{chunk-TZSWDH5T.cjs → chunk-XYVJ3FBQ.cjs} +6 -6
  266. package/dist/{chunk-TZSWDH5T.cjs.map → chunk-XYVJ3FBQ.cjs.map} +1 -1
  267. package/dist/{chunk-YVO7XO4W.cjs → chunk-YCHUHMNP.cjs} +22 -4
  268. package/dist/chunk-YCHUHMNP.cjs.map +1 -0
  269. package/dist/{chunk-LDENBYRC.cjs → chunk-YFBHVTKN.cjs} +8 -8
  270. package/dist/{chunk-LDENBYRC.cjs.map → chunk-YFBHVTKN.cjs.map} +1 -1
  271. package/dist/{chunk-IDM6JJLP.cjs → chunk-YZ2I7CDF.cjs} +3 -3
  272. package/dist/{chunk-IDM6JJLP.cjs.map → chunk-YZ2I7CDF.cjs.map} +1 -1
  273. package/dist/{chunk-OEHCA5IV.js → chunk-ZFJHUOFU.js} +5 -5
  274. package/dist/{chunk-OEHCA5IV.js.map → chunk-ZFJHUOFU.js.map} +1 -1
  275. package/dist/index.cjs +168 -121
  276. package/dist/index.cjs.map +1 -1
  277. package/dist/index.d.cts +8 -1
  278. package/dist/index.d.ts +8 -1
  279. package/dist/index.js +39 -32
  280. package/dist/index.js.map +1 -1
  281. package/dist/styles.css +25 -18
  282. package/dist/{tokens-HWQ7KWPG.css → tokens-BIIUTPKN.css} +17 -9
  283. package/dist/tokens.css +17 -9
  284. package/docs/llms/autocomplete.md +56 -0
  285. package/docs/llms/commandpalette.md +58 -0
  286. package/docs/llms/contextmenu.md +55 -0
  287. package/docs/llms/form.md +121 -0
  288. package/docs/llms/inputnumber.md +57 -0
  289. package/docs/llms/splitter.md +63 -0
  290. package/docs/llms/statusbar.md +53 -0
  291. package/docs/llms.md +8 -1
  292. package/package.json +1 -1
  293. package/dist/chunk-4MR4GVTD.js.map +0 -1
  294. package/dist/chunk-GEYMWUW6.js.map +0 -1
  295. package/dist/chunk-RDLPX7RK.cjs.map +0 -1
  296. package/dist/chunk-YVO7XO4W.cjs.map +0 -1
package/dist/styles.css CHANGED
@@ -17,14 +17,15 @@
17
17
  /* ---- Shadows ---- */
18
18
  --shadow-dark: rgba(163, 177, 198, 0.55);
19
19
  --shadow-light: rgba(255, 255, 255, 0.95);
20
- --shadow-blur: 16px;
21
- --shadow-offset: 6px;
22
- --shadow-inset-blur: 10px;
23
- --shadow-inset-offset: 4px;
24
20
 
25
- /* Distance multiplier (tweakable at runtime) */
21
+ /* Distance multiplier — driven by ThemeProvider `intensity` (1..10 → 0.4..1.6). */
26
22
  --d: 1;
27
23
 
24
+ --shadow-blur: calc(16px * var(--d));
25
+ --shadow-offset: calc(6px * var(--d));
26
+ --shadow-inset-blur: calc(10px * var(--d));
27
+ --shadow-inset-offset: calc(4px * var(--d));
28
+
28
29
  --neu-out:
29
30
  var(--shadow-offset) var(--shadow-offset) var(--shadow-blur) var(--shadow-dark),
30
31
  calc(var(--shadow-offset) * -1) calc(var(--shadow-offset) * -1) var(--shadow-blur) var(--shadow-light);
@@ -49,6 +50,13 @@
49
50
  1px 1px 2px var(--shadow-dark),
50
51
  -1px -1px 2px var(--shadow-light);
51
52
 
53
+ /* Floating-overlay elevation.
54
+ No top-left highlight — there's no continuous surface beneath an overlay
55
+ panel, so the neumorphic light-reflection metaphor would read as a halo. */
56
+ --neu-float:
57
+ 0 calc(var(--shadow-offset) * 1.8) calc(var(--shadow-blur) * 2.2) var(--shadow-dark),
58
+ 0 calc(var(--shadow-offset) * 0.4) calc(var(--shadow-blur) * 0.7) var(--shadow-dark);
59
+
52
60
  /* ---- Accent (default sky) ---- */
53
61
  --accent: oklch(68% 0.14 235);
54
62
  --accent-ink: oklch(42% 0.12 235);
@@ -114,10 +122,10 @@
114
122
  --shadow-dark: rgba(0, 0, 0, 0.55);
115
123
  --shadow-light: rgba(130, 145, 180, 0.06);
116
124
  /* 同时收紧阴影尺寸,深色模式下拟态更内敛 */
117
- --shadow-offset: 4px;
118
- --shadow-blur: 10px;
119
- --shadow-inset-offset: 3px;
120
- --shadow-inset-blur: 7px;
125
+ --shadow-offset: calc(4px * var(--d));
126
+ --shadow-blur: calc(10px * var(--d));
127
+ --shadow-inset-offset: calc(3px * var(--d));
128
+ --shadow-inset-blur: calc(7px * var(--d));
121
129
  --accent-soft: oklch(35% 0.06 235);
122
130
  --accent-ink: oklch(82% 0.09 235);
123
131
  --accent-glow: oklch(68% 0.14 235 / 0.18);
@@ -1084,7 +1092,6 @@ input, textarea, select { font-family: inherit; color: inherit; }
1084
1092
  color: var(--fg-muted);
1085
1093
  font-size: 13px;
1086
1094
  }
1087
- .accordion-item.open .accordion-body { max-height: 320px; }
1088
1095
  .accordion-body-inner { padding: 0 18px 16px; }
1089
1096
  .accordion-chev {
1090
1097
  transition: transform var(--dur) var(--ease), color var(--dur) var(--ease);
@@ -1311,7 +1318,7 @@ input, textarea, select { font-family: inherit; color: inherit; }
1311
1318
  .menu {
1312
1319
  background: var(--bg);
1313
1320
  border-radius: var(--r-md);
1314
- box-shadow: var(--neu-out-lg);
1321
+ box-shadow: var(--neu-float);
1315
1322
  padding: 6px;
1316
1323
  min-width: 180px;
1317
1324
  z-index: 1000;
@@ -1366,7 +1373,7 @@ input, textarea, select { font-family: inherit; color: inherit; }
1366
1373
  .modal {
1367
1374
  background: var(--bg);
1368
1375
  border-radius: var(--r-xl);
1369
- box-shadow: var(--neu-out-lg), 0 24px 60px -20px rgba(40, 55, 80, 0.3);
1376
+ box-shadow: var(--neu-float);
1370
1377
  padding: var(--gap-6);
1371
1378
  width: min(480px, 92vw);
1372
1379
  animation: modalIn var(--dur-slow) var(--ease);
@@ -1553,7 +1560,7 @@ input, textarea, select { font-family: inherit; color: inherit; }
1553
1560
  .toast {
1554
1561
  background: var(--bg);
1555
1562
  border-radius: var(--r-md);
1556
- box-shadow: var(--neu-out-lg);
1563
+ box-shadow: var(--neu-float);
1557
1564
  padding: 12px 16px;
1558
1565
  min-width: 240px;
1559
1566
  display: flex; align-items: flex-start; gap: 10px;
@@ -1588,7 +1595,7 @@ input, textarea, select { font-family: inherit; color: inherit; }
1588
1595
  border-radius: var(--r-md);
1589
1596
  padding: var(--gap-3);
1590
1597
  min-width: 220px;
1591
- box-shadow: var(--neu-out-lg);
1598
+ box-shadow: var(--neu-float);
1592
1599
  animation: menuIn var(--dur) var(--ease);
1593
1600
  }
1594
1601
  /* ============ Alert ============ */
@@ -1819,7 +1826,7 @@ input, textarea, select { font-family: inherit; color: inherit; }
1819
1826
  max-width: 260px;
1820
1827
  background: var(--bg);
1821
1828
  border-radius: var(--r-md);
1822
- box-shadow: var(--neu-out-lg);
1829
+ box-shadow: var(--neu-float);
1823
1830
  padding: 10px;
1824
1831
  animation: menuIn var(--dur) var(--ease);
1825
1832
  }
@@ -2333,7 +2340,7 @@ input, textarea, select { font-family: inherit; color: inherit; }
2333
2340
  max-width: 80vw;
2334
2341
  max-height: 80vh;
2335
2342
  border-radius: var(--r-lg);
2336
- box-shadow: var(--neu-out-lg), 0 40px 80px -20px rgba(0,0,0,0.25);
2343
+ box-shadow: var(--neu-float);
2337
2344
  }
2338
2345
  /* ============ Cascader ============ */
2339
2346
  .cascader {
@@ -2366,7 +2373,7 @@ input, textarea, select { font-family: inherit; color: inherit; }
2366
2373
  display: flex;
2367
2374
  background: var(--bg);
2368
2375
  border-radius: var(--r-md);
2369
- box-shadow: var(--neu-out-lg);
2376
+ box-shadow: var(--neu-float);
2370
2377
  padding: 6px;
2371
2378
  animation: menuIn var(--dur) var(--ease);
2372
2379
  gap: 4px;
@@ -2695,7 +2702,7 @@ input, textarea, select { font-family: inherit; color: inherit; }
2695
2702
  padding: 12px;
2696
2703
  background: var(--bg);
2697
2704
  border-radius: var(--r-md);
2698
- box-shadow: var(--neu-out);
2705
+ box-shadow: var(--neu-float);
2699
2706
  display: flex;
2700
2707
  flex-direction: column;
2701
2708
  gap: 10px;
@@ -17,14 +17,15 @@
17
17
  /* ---- Shadows ---- */
18
18
  --shadow-dark: rgba(163, 177, 198, 0.55);
19
19
  --shadow-light: rgba(255, 255, 255, 0.95);
20
- --shadow-blur: 16px;
21
- --shadow-offset: 6px;
22
- --shadow-inset-blur: 10px;
23
- --shadow-inset-offset: 4px;
24
20
 
25
- /* Distance multiplier (tweakable at runtime) */
21
+ /* Distance multiplier — driven by ThemeProvider `intensity` (1..10 → 0.4..1.6). */
26
22
  --d: 1;
27
23
 
24
+ --shadow-blur: calc(16px * var(--d));
25
+ --shadow-offset: calc(6px * var(--d));
26
+ --shadow-inset-blur: calc(10px * var(--d));
27
+ --shadow-inset-offset: calc(4px * var(--d));
28
+
28
29
  --neu-out:
29
30
  var(--shadow-offset) var(--shadow-offset) var(--shadow-blur) var(--shadow-dark),
30
31
  calc(var(--shadow-offset) * -1) calc(var(--shadow-offset) * -1) var(--shadow-blur) var(--shadow-light);
@@ -49,6 +50,13 @@
49
50
  1px 1px 2px var(--shadow-dark),
50
51
  -1px -1px 2px var(--shadow-light);
51
52
 
53
+ /* Floating-overlay elevation.
54
+ No top-left highlight — there's no continuous surface beneath an overlay
55
+ panel, so the neumorphic light-reflection metaphor would read as a halo. */
56
+ --neu-float:
57
+ 0 calc(var(--shadow-offset) * 1.8) calc(var(--shadow-blur) * 2.2) var(--shadow-dark),
58
+ 0 calc(var(--shadow-offset) * 0.4) calc(var(--shadow-blur) * 0.7) var(--shadow-dark);
59
+
52
60
  /* ---- Accent (default sky) ---- */
53
61
  --accent: oklch(68% 0.14 235);
54
62
  --accent-ink: oklch(42% 0.12 235);
@@ -115,10 +123,10 @@
115
123
  --shadow-dark: rgba(0, 0, 0, 0.55);
116
124
  --shadow-light: rgba(130, 145, 180, 0.06);
117
125
  /* 同时收紧阴影尺寸,深色模式下拟态更内敛 */
118
- --shadow-offset: 4px;
119
- --shadow-blur: 10px;
120
- --shadow-inset-offset: 3px;
121
- --shadow-inset-blur: 7px;
126
+ --shadow-offset: calc(4px * var(--d));
127
+ --shadow-blur: calc(10px * var(--d));
128
+ --shadow-inset-offset: calc(3px * var(--d));
129
+ --shadow-inset-blur: calc(7px * var(--d));
122
130
  --accent-soft: oklch(35% 0.06 235);
123
131
  --accent-ink: oklch(82% 0.09 235);
124
132
  --accent-glow: oklch(68% 0.14 235 / 0.18);
package/dist/tokens.css CHANGED
@@ -17,14 +17,15 @@
17
17
  /* ---- Shadows ---- */
18
18
  --shadow-dark: rgba(163, 177, 198, 0.55);
19
19
  --shadow-light: rgba(255, 255, 255, 0.95);
20
- --shadow-blur: 16px;
21
- --shadow-offset: 6px;
22
- --shadow-inset-blur: 10px;
23
- --shadow-inset-offset: 4px;
24
20
 
25
- /* Distance multiplier (tweakable at runtime) */
21
+ /* Distance multiplier — driven by ThemeProvider `intensity` (1..10 → 0.4..1.6). */
26
22
  --d: 1;
27
23
 
24
+ --shadow-blur: calc(16px * var(--d));
25
+ --shadow-offset: calc(6px * var(--d));
26
+ --shadow-inset-blur: calc(10px * var(--d));
27
+ --shadow-inset-offset: calc(4px * var(--d));
28
+
28
29
  --neu-out:
29
30
  var(--shadow-offset) var(--shadow-offset) var(--shadow-blur) var(--shadow-dark),
30
31
  calc(var(--shadow-offset) * -1) calc(var(--shadow-offset) * -1) var(--shadow-blur) var(--shadow-light);
@@ -49,6 +50,13 @@
49
50
  1px 1px 2px var(--shadow-dark),
50
51
  -1px -1px 2px var(--shadow-light);
51
52
 
53
+ /* Floating-overlay elevation.
54
+ No top-left highlight — there's no continuous surface beneath an overlay
55
+ panel, so the neumorphic light-reflection metaphor would read as a halo. */
56
+ --neu-float:
57
+ 0 calc(var(--shadow-offset) * 1.8) calc(var(--shadow-blur) * 2.2) var(--shadow-dark),
58
+ 0 calc(var(--shadow-offset) * 0.4) calc(var(--shadow-blur) * 0.7) var(--shadow-dark);
59
+
52
60
  /* ---- Accent (default sky) ---- */
53
61
  --accent: oklch(68% 0.14 235);
54
62
  --accent-ink: oklch(42% 0.12 235);
@@ -115,10 +123,10 @@
115
123
  --shadow-dark: rgba(0, 0, 0, 0.55);
116
124
  --shadow-light: rgba(130, 145, 180, 0.06);
117
125
  /* 同时收紧阴影尺寸,深色模式下拟态更内敛 */
118
- --shadow-offset: 4px;
119
- --shadow-blur: 10px;
120
- --shadow-inset-offset: 3px;
121
- --shadow-inset-blur: 7px;
126
+ --shadow-offset: calc(4px * var(--d));
127
+ --shadow-blur: calc(10px * var(--d));
128
+ --shadow-inset-offset: calc(3px * var(--d));
129
+ --shadow-inset-blur: calc(7px * var(--d));
122
130
  --accent-soft: oklch(35% 0.06 235);
123
131
  --accent-ink: oklch(82% 0.09 235);
124
132
  --accent-glow: oklch(68% 0.14 235 / 0.18);
@@ -0,0 +1,56 @@
1
+ # AutoComplete 自动补全
2
+
3
+ > 输入时展示建议下拉,不限定必须从候选中选。
4
+
5
+ ## 示例
6
+
7
+ ### 基础
8
+
9
+ ```tsx
10
+ <AutoComplete
11
+ options={[
12
+ { value: "light" },
13
+ { value: "dark" },
14
+ { value: "system" },
15
+ ]}
16
+ placeholder="主题"
17
+ />
18
+ ```
19
+
20
+ ### 自定义 label
21
+
22
+ ```tsx
23
+ options={[{ value: "zh", label: "中文 · Chinese" }]}
24
+ ```
25
+
26
+ ### 动态加载
27
+
28
+ onSearch 在用户输入时触发,常配合后端检索使用。
29
+
30
+ ```tsx
31
+ const [opts, setOpts] = useState([]);
32
+ <AutoComplete
33
+ options={opts}
34
+ onSearch={(text) => setOpts(generate(text))}
35
+ />
36
+ ```
37
+
38
+ ## API
39
+
40
+ **AutoComplete**
41
+
42
+ | Prop | 类型 | 默认 | 说明 |
43
+ | --- | --- | --- | --- |
44
+ | value / defaultValue | `string` | — | 受控 / 初始值 |
45
+ | onChange | `(value, option?) => void` | — | 文本变更 |
46
+ | onSelect | `(value, option) => void` | — | 选中项回调 |
47
+ | onSearch | `(text) => void` | — | 输入变化回调 |
48
+ | options \* | `{ value, label?, disabled? }[]` | — | 候选项 |
49
+ | filterOption | `boolean | (input, option) => boolean` | `true` | 过滤函数,false 关闭过滤 |
50
+ | notFoundContent | `ReactNode` | — | 无匹配占位 |
51
+ | allowClear / disabled / size / autoFocus / placeholder | `-` | — | 常规属性 |
52
+ | matchTriggerWidth | `boolean` | `true` | 下拉宽度跟随输入框 |
53
+
54
+
55
+ ---
56
+ [← 回到索引](../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,121 @@
1
+ # Form 表单
2
+
3
+ > 受控表单,字段绑定 + 校验,API 对齐 antd。
4
+
5
+ ## 示例
6
+
7
+ ### 基础
8
+
9
+ ```tsx
10
+ const [form] = Form.useForm();
11
+
12
+ <Form form={form} layout="vertical" onFinish={(values) => console.log(values)}>
13
+ <Form.Item name="username" label="用户名" rules={[{ required: true }]}>
14
+ <Input placeholder="输入用户名" />
15
+ </Form.Item>
16
+ <Form.Item name="email" label="邮箱" rules={[{ type: "email", message: "邮箱格式不正确" }]}>
17
+ <Input placeholder="foo@example.com" />
18
+ </Form.Item>
19
+ <Form.Item>
20
+ <Button type="submit" variant="primary">提交</Button>
21
+ </Form.Item>
22
+ </Form>
23
+ ```
24
+
25
+ ### 复合校验 + 自定义 validator
26
+
27
+ rules 支持 required / min / max / pattern / type / validator。validator 可返回 Promise。
28
+
29
+ ```tsx
30
+ rules={[
31
+ { required: true, message: "必填" },
32
+ { pattern: /^[a-z0-9_]+$/, message: "只允许小写字母、数字和下划线" },
33
+ {
34
+ validator: async (_, value) => {
35
+ if (value === "admin") throw new Error("admin 已被占用");
36
+ },
37
+ },
38
+ ]}
39
+ ```
40
+
41
+ ### 非 value 类控件
42
+
43
+ Checkbox / Switch 的绑定属性不是 value,需要用 valuePropName 指定;对应的 trigger 名称通常仍是 onChange。
44
+
45
+ ```tsx
46
+ <Form.Item name="agree" valuePropName="checked">
47
+ <Checkbox>同意协议</Checkbox>
48
+ </Form.Item>
49
+
50
+ <Form.Item name="notify" valuePropName="checked">
51
+ <Switch />
52
+ </Form.Item>
53
+ ```
54
+
55
+ ### 命令式 API
56
+
57
+ 通过 Form.useForm() 拿到实例,外部可主动 setFieldsValue / validateFields / resetFields。
58
+
59
+ ```tsx
60
+ form.setFieldsValue({ title: "..." })
61
+ form.validateFields().then(values => {...})
62
+ form.resetFields()
63
+ ```
64
+
65
+ ## API
66
+
67
+ **Form**
68
+
69
+ | Prop | 类型 | 默认 | 说明 |
70
+ | --- | --- | --- | --- |
71
+ | form | `FormInstance` | — | 由 useForm() 创建的实例,受控推荐传入 |
72
+ | layout | `"horizontal" | "vertical" | "inline"` | `"horizontal"` | 布局方式 |
73
+ | initialValues | `Partial<V>` | — | 字段初始值 |
74
+ | onFinish / onFinishFailed | `(values | {values, errorFields}) => void` | — | 提交成功/失败 |
75
+ | onValuesChange | `(changed, all) => void` | — | 任一字段变化 |
76
+ | requiredMark | `boolean` | `true` | 是否在必填 label 前显示 * |
77
+ | disabled | `boolean` | — | 整体禁用 |
78
+
79
+
80
+ **Form.Item**
81
+
82
+ | Prop | 类型 | 默认 | 说明 |
83
+ | --- | --- | --- | --- |
84
+ | name | `string` | — | 字段 key;省略则仅布局不绑定 |
85
+ | label | `ReactNode` | — | 字段标签 |
86
+ | rules | `Rule[]` | — | 校验规则数组 |
87
+ | noStyle | `boolean` | — | 不渲染外层 item 包装 |
88
+ | valuePropName | `string` | `"value"` | 注入值的 prop 名 |
89
+ | trigger | `string` | `"onChange"` | 监听的事件名 |
90
+ | initialValue | `any` | — | 此字段初始值;优先级低于 Form initialValues |
91
+ | help / extra | `ReactNode` | — | 辅助/补充说明 |
92
+ | hidden | `boolean` | — | 隐藏(字段仍保留) |
93
+
94
+
95
+ **Rule**
96
+
97
+ | Prop | 类型 | 默认 | 说明 |
98
+ | --- | --- | --- | --- |
99
+ | required | `boolean` | — | 必填 |
100
+ | message | `string` | — | 错误提示文案 |
101
+ | pattern | `RegExp` | — | 正则校验 |
102
+ | min / max / len | `number` | — | 字符串/数组长度或数字范围 |
103
+ | type | `string` | — | "string" \| "number" \| "email" \| "url" \| "array" |
104
+ | validator | `(rule, value) => Promise<void>` | — | 自定义,抛出错误或 reject 视为失败 |
105
+
106
+
107
+ **FormInstance**
108
+
109
+ | Prop | 类型 | 默认 | 说明 |
110
+ | --- | --- | --- | --- |
111
+ | getFieldValue / getFieldsValue | `(name?) => any` | — | 读取字段值 |
112
+ | setFieldValue / setFieldsValue | `(name/obj, value) => void` | — | 写入字段值 |
113
+ | validateFields | `(names?) => Promise<V>` | — | 触发校验,返回 Promise<values>,失败时 reject({errorFields}) |
114
+ | resetFields | `(names?) => void` | — | 重置到初始值 |
115
+ | isFieldTouched | `(name) => boolean` | — | 字段是否交互过 |
116
+ | getFieldError | `(name) => string[]` | — | 字段当前错误信息 |
117
+ | submit | `() => void` | — | 等同于触发提交 |
118
+
119
+
120
+ ---
121
+ [← 回到索引](../llms.md)
@@ -0,0 +1,57 @@
1
+ # InputNumber 数字输入
2
+
3
+ > 带步进按钮的数字输入框。
4
+
5
+ ## 示例
6
+
7
+ ### 基础
8
+
9
+ ```tsx
10
+ <InputNumber defaultValue={5} min={0} max={100} />
11
+ ```
12
+
13
+ ### 小数精度
14
+
15
+ ```tsx
16
+ <InputNumber defaultValue={0.5} min={0} max={1} step={0.1} precision={2} />
17
+ ```
18
+
19
+ ### 尺寸
20
+
21
+ ```tsx
22
+ <InputNumber size="sm" /> / <InputNumber /> / <InputNumber size="lg" />
23
+ ```
24
+
25
+ ### 隐藏步进按钮
26
+
27
+ ```tsx
28
+ <InputNumber controls={false} defaultValue={100} />
29
+ ```
30
+
31
+ ### 受控
32
+
33
+ ```tsx
34
+ const [v, setV] = useState(10);
35
+ <InputNumber value={v} onChange={setV} />
36
+ ```
37
+
38
+ ## API
39
+
40
+ **InputNumber**
41
+
42
+ | Prop | 类型 | 默认 | 说明 |
43
+ | --- | --- | --- | --- |
44
+ | value / defaultValue | `number | null` | — | 受控 / 初始值 |
45
+ | onChange | `(value: number | null) => void` | — | 变更回调 |
46
+ | onPressEnter | `(e) => void` | — | 回车事件 |
47
+ | min / max | `number` | — | 数值范围 |
48
+ | step | `number` | `1` | 步进值 |
49
+ | precision | `number` | — | 小数位数 |
50
+ | size | `"sm" | "md" | "lg"` | `"md"` | 尺寸 |
51
+ | controls | `boolean` | `true` | 是否显示步进按钮 |
52
+ | disabled / readOnly / placeholder | `-` | — | 常规属性 |
53
+ | prefix / suffix | `ReactNode` | — | 内嵌前/后置内容 |
54
+
55
+
56
+ ---
57
+ [← 回到索引](../llms.md)
@@ -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)