@fangxinyan/lumina 0.6.18 → 0.8.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 (466) hide show
  1. package/dist/{Alert-HVPI6L4V.css → Alert-DJ3K7N7L.css} +9 -9
  2. package/dist/Alert.cjs +5 -3
  3. package/dist/Alert.d.cts +2 -2
  4. package/dist/Alert.d.ts +2 -2
  5. package/dist/Alert.js +4 -2
  6. package/dist/{AppShell-FZCD4C56.css → AppShell-OWJRJ4ZD.css} +57 -22
  7. package/dist/AppShell.cjs +8 -5
  8. package/dist/AppShell.d.cts +19 -16
  9. package/dist/AppShell.d.ts +19 -16
  10. package/dist/AppShell.js +4 -1
  11. package/dist/{AutoComplete-4YZBMW4E.css → AutoComplete-PNCYHU2T.css} +8 -8
  12. package/dist/AutoComplete.cjs +9 -6
  13. package/dist/AutoComplete.d.cts +2 -1
  14. package/dist/AutoComplete.d.ts +2 -1
  15. package/dist/AutoComplete.js +8 -5
  16. package/dist/Avatar-YBU2YZTW.css +48 -0
  17. package/dist/Avatar.cjs +4 -2
  18. package/dist/Avatar.d.cts +6 -2
  19. package/dist/Avatar.d.ts +6 -2
  20. package/dist/Avatar.js +3 -1
  21. package/dist/Badge-DBWJEV4C.css +22 -0
  22. package/dist/Badge.cjs +4 -2
  23. package/dist/Badge.d.cts +6 -2
  24. package/dist/Badge.d.ts +6 -2
  25. package/dist/Badge.js +3 -1
  26. package/dist/{Button-TUMZUQLI.css → Button-ILNZUX2N.css} +28 -21
  27. package/dist/Button.cjs +6 -4
  28. package/dist/Button.d.cts +2 -14
  29. package/dist/Button.d.ts +2 -14
  30. package/dist/Button.js +4 -2
  31. package/dist/{Calendar-I6NHCXIB.css → Calendar-QJ5HWEJQ.css} +26 -26
  32. package/dist/Calendar.cjs +5 -3
  33. package/dist/Calendar.d.cts +8 -4
  34. package/dist/Calendar.d.ts +8 -4
  35. package/dist/Calendar.js +4 -2
  36. package/dist/Card-VPMTWAWZ.css +98 -0
  37. package/dist/Card.cjs +7 -3
  38. package/dist/Card.d.cts +8 -4
  39. package/dist/Card.d.ts +8 -4
  40. package/dist/Card.js +6 -2
  41. package/dist/Cascader-YBVDK6DC.css +168 -0
  42. package/dist/Cascader.cjs +9 -6
  43. package/dist/Cascader.d.cts +21 -3
  44. package/dist/Cascader.d.ts +21 -3
  45. package/dist/Cascader.js +8 -5
  46. package/dist/Checkbox-IHFML4FV.css +50 -0
  47. package/dist/Checkbox.cjs +5 -3
  48. package/dist/Checkbox.d.cts +10 -2
  49. package/dist/Checkbox.d.ts +10 -2
  50. package/dist/Checkbox.js +4 -2
  51. package/dist/{Collapse-UNBHEPYP.css → Collapse-BTSBHBSY.css} +12 -7
  52. package/dist/Collapse.cjs +5 -3
  53. package/dist/Collapse.d.cts +2 -2
  54. package/dist/Collapse.d.ts +2 -2
  55. package/dist/Collapse.js +4 -2
  56. package/dist/{ColorPicker-LPG6QPYF.css → ColorPicker-GRZOKR5O.css} +17 -32
  57. package/dist/ColorPicker.cjs +9 -3
  58. package/dist/ColorPicker.d.cts +7 -11
  59. package/dist/ColorPicker.d.ts +7 -11
  60. package/dist/ColorPicker.js +8 -2
  61. package/dist/{CommandPalette-RTKWNH2D.css → CommandPalette-GHTX7AAA.css} +22 -23
  62. package/dist/CommandPalette.cjs +8 -5
  63. package/dist/CommandPalette.d.cts +5 -28
  64. package/dist/CommandPalette.d.ts +5 -28
  65. package/dist/CommandPalette.js +7 -4
  66. package/dist/{ContextMenu-WRR2SSWL.css → ContextMenu-NG524Y2P.css} +17 -17
  67. package/dist/ContextMenu.cjs +5 -2
  68. package/dist/ContextMenu.d.cts +2 -19
  69. package/dist/ContextMenu.d.ts +2 -19
  70. package/dist/ContextMenu.js +4 -1
  71. package/dist/{DatePicker-VDVSIARF.css → DatePicker-ZSFDXAYD.css} +4 -4
  72. package/dist/DatePicker.cjs +11 -8
  73. package/dist/DatePicker.d.cts +4 -7
  74. package/dist/DatePicker.d.ts +4 -7
  75. package/dist/DatePicker.js +10 -7
  76. package/dist/{DateTimePicker-DRX7XA74.css → DateTimePicker-EWSISVIF.css} +17 -17
  77. package/dist/DateTimePicker.cjs +11 -8
  78. package/dist/DateTimePicker.d.cts +4 -8
  79. package/dist/DateTimePicker.d.ts +4 -8
  80. package/dist/DateTimePicker.js +10 -7
  81. package/dist/{Divider-RPQCVH3J.css → Divider-OI2BXPBU.css} +10 -10
  82. package/dist/Divider.cjs +4 -2
  83. package/dist/Divider.d.cts +2 -2
  84. package/dist/Divider.d.ts +2 -2
  85. package/dist/Divider.js +3 -1
  86. package/dist/{Drawer-7KICRM4L.css → Drawer-VCXAXWV6.css} +30 -17
  87. package/dist/Drawer.cjs +6 -3
  88. package/dist/Drawer.d.cts +25 -3
  89. package/dist/Drawer.d.ts +25 -3
  90. package/dist/Drawer.js +5 -2
  91. package/dist/{Empty-CZTRZMZQ.css → Empty-U5CBLCAL.css} +5 -5
  92. package/dist/Empty.cjs +4 -2
  93. package/dist/Empty.d.cts +2 -2
  94. package/dist/Empty.d.ts +2 -2
  95. package/dist/Empty.js +3 -1
  96. package/dist/{Form-NGCQWTMZ.css → Form-DNEDZRJA.css} +7 -7
  97. package/dist/Form.cjs +7 -4
  98. package/dist/Form.d.cts +4 -3
  99. package/dist/Form.d.ts +4 -3
  100. package/dist/Form.js +4 -1
  101. package/dist/Icon-HJSUVW4O.css +12 -0
  102. package/dist/Icon.cjs +51 -49
  103. package/dist/Icon.d.cts +8 -8
  104. package/dist/Icon.d.ts +8 -8
  105. package/dist/Icon.js +3 -1
  106. package/dist/{Image-NISJRUWX.css → Image-CZJPPURT.css} +25 -23
  107. package/dist/Image.cjs +10 -7
  108. package/dist/Image.d.cts +5 -24
  109. package/dist/Image.d.ts +5 -24
  110. package/dist/Image.js +6 -3
  111. package/dist/{Input-7GDPGP3E.css → Input-ZUASNDXM.css} +15 -15
  112. package/dist/Input.cjs +7 -5
  113. package/dist/Input.d.cts +2 -1
  114. package/dist/Input.d.ts +2 -1
  115. package/dist/Input.js +5 -3
  116. package/dist/{InputNumber-VXQIWLQC.css → InputNumber-6NHBMRT4.css} +7 -7
  117. package/dist/InputNumber.cjs +7 -5
  118. package/dist/InputNumber.d.cts +2 -1
  119. package/dist/InputNumber.d.ts +2 -1
  120. package/dist/InputNumber.js +6 -4
  121. package/dist/List-6BQIFAIT.css +42 -0
  122. package/dist/List.cjs +4 -2
  123. package/dist/List.d.cts +2 -2
  124. package/dist/List.d.ts +2 -2
  125. package/dist/List.js +3 -1
  126. package/dist/{Message-H222YGR6.css → Message-OTZWQTQ5.css} +13 -13
  127. package/dist/Message.cjs +9 -6
  128. package/dist/Message.d.cts +18 -2
  129. package/dist/Message.d.ts +18 -2
  130. package/dist/Message.js +5 -2
  131. package/dist/{Modal-ZFWNFEA5.css → Modal-UI2FXNDR.css} +29 -18
  132. package/dist/Modal.cjs +7 -4
  133. package/dist/Modal.d.cts +13 -2
  134. package/dist/Modal.d.ts +13 -2
  135. package/dist/Modal.js +6 -3
  136. package/dist/Pagination-POJTWMYR.css +70 -0
  137. package/dist/Pagination.cjs +11 -8
  138. package/dist/Pagination.d.cts +2 -2
  139. package/dist/Pagination.d.ts +2 -2
  140. package/dist/Pagination.js +10 -7
  141. package/dist/{Popover-Y3LDCJPW.css → Popover-LCXLR3EU.css} +13 -14
  142. package/dist/Popover.cjs +6 -3
  143. package/dist/Popover.d.cts +3 -10
  144. package/dist/Popover.d.ts +3 -10
  145. package/dist/Popover.js +5 -2
  146. package/dist/Progress-33WE2NI7.css +90 -0
  147. package/dist/Progress.cjs +4 -2
  148. package/dist/Progress.d.cts +4 -2
  149. package/dist/Progress.d.ts +4 -2
  150. package/dist/Progress.js +3 -1
  151. package/dist/{Radio-IQKASYDF.css → Radio-RL7232MZ.css} +21 -13
  152. package/dist/Radio.cjs +5 -3
  153. package/dist/Radio.d.cts +18 -5
  154. package/dist/Radio.d.ts +18 -5
  155. package/dist/Radio.js +3 -1
  156. package/dist/{Select-YZ2NUJSX.css → Select-TU37MAHZ.css} +64 -40
  157. package/dist/Select.cjs +10 -7
  158. package/dist/Select.d.cts +28 -3
  159. package/dist/Select.d.ts +28 -3
  160. package/dist/Select.js +9 -6
  161. package/dist/{Skeleton-CVWH2VWN.css → Skeleton-FMFE3BRI.css} +9 -4
  162. package/dist/Skeleton.cjs +4 -2
  163. package/dist/Skeleton.d.cts +2 -4
  164. package/dist/Skeleton.d.ts +2 -4
  165. package/dist/Skeleton.js +3 -1
  166. package/dist/Slider-FZ5MI4X2.css +145 -0
  167. package/dist/Slider.cjs +4 -2
  168. package/dist/Slider.d.cts +6 -5
  169. package/dist/Slider.d.ts +6 -5
  170. package/dist/Slider.js +3 -1
  171. package/dist/{Spin-GONGPV4Q.css → Spin-F5YIEENO.css} +15 -9
  172. package/dist/Spin.cjs +4 -2
  173. package/dist/Spin.d.cts +2 -2
  174. package/dist/Spin.d.ts +2 -2
  175. package/dist/Spin.js +3 -1
  176. package/dist/{Splitter-DHNOY4NC.css → Splitter-IQ3PFIKK.css} +4 -4
  177. package/dist/Splitter.cjs +4 -2
  178. package/dist/Splitter.d.cts +18 -12
  179. package/dist/Splitter.d.ts +18 -12
  180. package/dist/Splitter.js +3 -1
  181. package/dist/{StatusBar-FJKEEPXU.css → StatusBar-TCGR3LXP.css} +23 -9
  182. package/dist/StatusBar.cjs +5 -3
  183. package/dist/StatusBar.d.cts +5 -17
  184. package/dist/StatusBar.d.ts +5 -17
  185. package/dist/StatusBar.js +3 -1
  186. package/dist/{Surface-UDDN3DGL.css → Surface-CTN775GD.css} +10 -10
  187. package/dist/Surface.cjs +6 -5
  188. package/dist/Surface.d.cts +10 -1
  189. package/dist/Surface.d.ts +10 -1
  190. package/dist/Surface.js +4 -3
  191. package/dist/{Switch-COAQIOMH.css → Switch-TATU3LPB.css} +16 -8
  192. package/dist/Switch.cjs +4 -2
  193. package/dist/Switch.d.cts +10 -4
  194. package/dist/Switch.d.ts +10 -4
  195. package/dist/Switch.js +3 -1
  196. package/dist/{Table-IWHIIGRJ.css → Table-KB6EEBDJ.css} +105 -53
  197. package/dist/Table.cjs +14 -10
  198. package/dist/Table.d.cts +38 -3
  199. package/dist/Table.d.ts +38 -3
  200. package/dist/Table.js +13 -9
  201. package/dist/{TablePro-3NGWERWT.css → TablePro-WYE6TXWJ.css} +5 -5
  202. package/dist/TablePro.cjs +15 -11
  203. package/dist/TablePro.d.cts +1 -0
  204. package/dist/TablePro.d.ts +1 -0
  205. package/dist/TablePro.js +14 -10
  206. package/dist/{Tabs-X5U5PCPV.css → Tabs-FB2AMBWL.css} +24 -10
  207. package/dist/Tabs.cjs +4 -2
  208. package/dist/Tabs.d.cts +8 -2
  209. package/dist/Tabs.d.ts +8 -2
  210. package/dist/Tabs.js +3 -1
  211. package/dist/Tag-5GIZLRAH.css +42 -0
  212. package/dist/Tag.cjs +5 -3
  213. package/dist/Tag.d.cts +2 -2
  214. package/dist/Tag.d.ts +2 -2
  215. package/dist/Tag.js +4 -2
  216. package/dist/{Textarea-YHWKHIFE.css → Textarea-ZGHBZNLX.css} +10 -10
  217. package/dist/Textarea.cjs +6 -4
  218. package/dist/Textarea.d.cts +2 -4
  219. package/dist/Textarea.d.ts +2 -4
  220. package/dist/Textarea.js +4 -2
  221. package/dist/Theme-CLedeJ_C.d.ts +193 -0
  222. package/dist/Theme-uQq2B0Yk.d.cts +193 -0
  223. package/dist/Theme.cjs +57 -11
  224. package/dist/Theme.d.cts +26 -145
  225. package/dist/Theme.d.ts +26 -145
  226. package/dist/Theme.js +3 -1
  227. package/dist/{ThemePanel-TEHB2JCQ.css → ThemePanel-EHNAS4RN.css} +52 -52
  228. package/dist/ThemePanel.cjs +17 -15
  229. package/dist/ThemePanel.d.cts +3 -13
  230. package/dist/ThemePanel.d.ts +3 -13
  231. package/dist/ThemePanel.js +14 -12
  232. package/dist/{TimePicker-ZBJOXH3U.css → TimePicker-WJ3FSK6A.css} +17 -17
  233. package/dist/TimePicker.cjs +10 -7
  234. package/dist/TimePicker.d.cts +2 -8
  235. package/dist/TimePicker.d.ts +2 -8
  236. package/dist/TimePicker.js +9 -6
  237. package/dist/{Timeline-CRFZ3I2W.css → Timeline-FUFO2UGY.css} +28 -13
  238. package/dist/Timeline.cjs +5 -3
  239. package/dist/Timeline.d.cts +2 -7
  240. package/dist/Timeline.d.ts +2 -7
  241. package/dist/Timeline.js +4 -2
  242. package/dist/{Tooltip-5FSPJWLX.css → Tooltip-2EUNTOTW.css} +3 -3
  243. package/dist/Tooltip.cjs +6 -3
  244. package/dist/Tooltip.d.cts +2 -2
  245. package/dist/Tooltip.d.ts +2 -2
  246. package/dist/Tooltip.js +5 -2
  247. package/dist/{Typography-32QQLD4F.css → Typography-CQ2OZXQH.css} +105 -42
  248. package/dist/Typography.cjs +11 -8
  249. package/dist/Typography.d.cts +12 -36
  250. package/dist/Typography.d.ts +12 -36
  251. package/dist/Typography.js +6 -3
  252. package/dist/chunk-2A4GYSN4.js +294 -0
  253. package/dist/{chunk-QMX67CVT.cjs → chunk-2AUXUZ3Z.cjs} +56 -31
  254. package/dist/chunk-2BIOTRQC.js +40 -0
  255. package/dist/{chunk-A6O25EP2.js → chunk-2HIN5NFM.js} +14 -6
  256. package/dist/{chunk-I7TOBKJO.js → chunk-3DKFS44V.js} +84 -23
  257. package/dist/{chunk-X5MYHDEQ.cjs → chunk-3EMWDDWK.cjs} +372 -117
  258. package/dist/chunk-3F424R5P.js +143 -0
  259. package/dist/chunk-3IZZBM56.js +269 -0
  260. package/dist/{chunk-DUFRASGO.js → chunk-3QXP2ZNP.js} +18 -23
  261. package/dist/{chunk-5QEI7GGA.cjs → chunk-434Y2JVW.cjs} +60 -27
  262. package/dist/{chunk-SOCYOUGM.js → chunk-4SKHRPDH.js} +168 -64
  263. package/dist/{chunk-R3DTXVP2.js → chunk-5AXNUX3J.js} +8 -5
  264. package/dist/chunk-5CZA33BK.cjs +229 -0
  265. package/dist/{chunk-6K5YI4ZE.js → chunk-62VV5COT.js} +16 -6
  266. package/dist/{chunk-2FOC3D6X.js → chunk-63RSKQID.js} +23 -7
  267. package/dist/chunk-6DKPJ5LV.cjs +294 -0
  268. package/dist/{chunk-OTSDPQPV.js → chunk-6RQJXSWN.js} +50 -30
  269. package/dist/{chunk-V5KUC5VH.cjs → chunk-77HU7JWK.cjs} +40 -13
  270. package/dist/chunk-7QAVPVMW.js +180 -0
  271. package/dist/chunk-7VLAHOA7.cjs +191 -0
  272. package/dist/chunk-ALAG4ZUH.js +72 -0
  273. package/dist/chunk-ARUN2DMD.js +39 -0
  274. package/dist/chunk-AUO2YYHB.js +248 -0
  275. package/dist/{chunk-6MEOLYNQ.js → chunk-AURYNA6G.js} +6 -5
  276. package/dist/chunk-BIPOXOHP.cjs +287 -0
  277. package/dist/{chunk-BVQOJKRX.js → chunk-BKW5PXEO.js} +115 -72
  278. package/dist/chunk-DRDDQCDD.js +322 -0
  279. package/dist/chunk-DU2DSERH.js +190 -0
  280. package/dist/chunk-DURKCGEM.js +496 -0
  281. package/dist/{chunk-PSQ3HNZP.cjs → chunk-E66PSVBU.cjs} +106 -19
  282. package/dist/chunk-EAUB6FEN.js +262 -0
  283. package/dist/chunk-EE5KXDRK.cjs +1223 -0
  284. package/dist/chunk-EE7IJ3MB.js +1 -0
  285. package/dist/chunk-EUTK2ZRJ.cjs +61 -0
  286. package/dist/{chunk-HSAJUEO7.cjs → chunk-F7WUCOBP.cjs} +150 -86
  287. package/dist/{chunk-YB3IWIOJ.cjs → chunk-FJB3243S.cjs} +18 -23
  288. package/dist/chunk-FKCPSVC4.cjs +188 -0
  289. package/dist/chunk-FMUHLIHB.cjs +94 -0
  290. package/dist/chunk-FY73C7JK.js +520 -0
  291. package/dist/{chunk-6EOSMK34.cjs → chunk-G5LCOBOT.cjs} +20 -1
  292. package/dist/{chunk-5ERD3W24.cjs → chunk-GFKWSDD6.cjs} +18 -8
  293. package/dist/{chunk-T2O4DTDE.cjs → chunk-GTFP7HA3.cjs} +58 -32
  294. package/dist/chunk-HQFKXTX6.js +60 -0
  295. package/dist/{chunk-V5SQOZPF.js → chunk-HQNDVNTQ.js} +38 -20
  296. package/dist/chunk-HSDMJUB6.cjs +319 -0
  297. package/dist/chunk-HVPUGYBY.js +166 -0
  298. package/dist/chunk-HYHBCHFM.cjs +167 -0
  299. package/dist/chunk-HYJSMFZA.cjs +2 -0
  300. package/dist/chunk-I4YPBAQ5.js +163 -0
  301. package/dist/chunk-IJDM2U3B.js +100 -0
  302. package/dist/chunk-J5UEQ3ZQ.js +226 -0
  303. package/dist/chunk-JBS353O4.cjs +248 -0
  304. package/dist/{chunk-IPSNC5VZ.js → chunk-JHM7MN3G.js} +15 -7
  305. package/dist/{chunk-6Q76VLCE.cjs → chunk-JKUXA3U6.cjs} +50 -30
  306. package/dist/{chunk-D7GK6H6V.js → chunk-K5HGHOG7.js} +50 -21
  307. package/dist/chunk-KATJAJUU.js +78 -0
  308. package/dist/chunk-KCDOC3HS.cjs +100 -0
  309. package/dist/{chunk-M4NJTJKV.cjs → chunk-LDX6Q6RK.cjs} +8 -5
  310. package/dist/chunk-LEDESWNL.js +83 -0
  311. package/dist/chunk-LG62MPMU.cjs +213 -0
  312. package/dist/{chunk-7NTTRKNT.js → chunk-LJVQQEME.js} +54 -28
  313. package/dist/{chunk-FDZG27IG.js → chunk-LQMOYVQF.js} +57 -32
  314. package/dist/{chunk-P2OQTJZP.cjs → chunk-MCDW3VKZ.cjs} +17 -6
  315. package/dist/{chunk-BT2RXFT4.cjs → chunk-MUZQWIMR.cjs} +121 -78
  316. package/dist/chunk-NRJXZPZR.cjs +351 -0
  317. package/dist/chunk-O6G3F5L4.js +311 -0
  318. package/dist/{chunk-3VSHGM54.js → chunk-OLYSSZHP.js} +126 -68
  319. package/dist/{chunk-A4Z7PLHV.cjs → chunk-PIJV2FHO.cjs} +135 -77
  320. package/dist/{chunk-L6GIV5DQ.cjs → chunk-PJFYIXBX.cjs} +40 -22
  321. package/dist/{chunk-NXBFEIUX.cjs → chunk-PNKNZREC.cjs} +266 -130
  322. package/dist/{chunk-FYSXJXNW.js → chunk-PQOBBASY.js} +10 -9
  323. package/dist/chunk-Q565GDVK.cjs +205 -0
  324. package/dist/{chunk-FDUQPAQE.cjs → chunk-Q5HLC56A.cjs} +122 -28
  325. package/dist/chunk-QDCPVI3S.cjs +333 -0
  326. package/dist/{chunk-ZR4IMROK.js → chunk-QDMFXRPI.js} +122 -28
  327. package/dist/chunk-QDY56GGO.js +234 -0
  328. package/dist/{chunk-4KDABJSY.cjs → chunk-QNQSNVCU.cjs} +86 -25
  329. package/dist/chunk-QYPA77OI.cjs +55 -0
  330. package/dist/{chunk-BW76ENTW.cjs → chunk-RERMZNF3.cjs} +10 -9
  331. package/dist/chunk-RMGFRAZ2.cjs +270 -0
  332. package/dist/chunk-RPO7657K.js +228 -0
  333. package/dist/chunk-RR7KWH26.cjs +122 -0
  334. package/dist/chunk-SF7BPXDJ.cjs +518 -0
  335. package/dist/chunk-STQDKMS5.cjs +288 -0
  336. package/dist/{chunk-HG6YS4I7.js → chunk-SXLRWYQQ.js} +71 -24
  337. package/dist/{chunk-SW2HMNCA.cjs → chunk-T4RR6NVU.cjs} +17 -9
  338. package/dist/{chunk-6SPMHY54.js → chunk-TSL3F2K3.js} +20 -2
  339. package/dist/{chunk-BNY2NVTL.cjs → chunk-TYZ6L7E6.cjs} +48 -28
  340. package/dist/{chunk-MOZ52KN6.js → chunk-U3SG2YT2.js} +39 -12
  341. package/dist/{chunk-POU3W5J3.cjs → chunk-U5YYOOLC.cjs} +13 -6
  342. package/dist/chunk-UE4HFGJ6.js +264 -0
  343. package/dist/chunk-ULTDRMGN.js +1175 -0
  344. package/dist/{chunk-6HF6UF73.js → chunk-UQI4R32R.js} +368 -113
  345. package/dist/{chunk-MWEHU7YO.cjs → chunk-VA3JWOAB.cjs} +172 -68
  346. package/dist/chunk-VQEMMJHC.js +33 -0
  347. package/dist/{chunk-S2ZGXBUH.cjs → chunk-VVRXNGYL.cjs} +218 -42
  348. package/dist/{chunk-JMFHL7GN.cjs → chunk-VX6MZO4K.cjs} +100 -22
  349. package/dist/{chunk-4ACCOYBY.cjs → chunk-WHBKQZU5.cjs} +24 -8
  350. package/dist/{chunk-UGAN4BBW.js → chunk-WMISXERU.js} +262 -126
  351. package/dist/{chunk-MYW7LNB2.cjs → chunk-WROF2PVG.cjs} +40 -21
  352. package/dist/{chunk-5VOUUQF5.js → chunk-Y22PTPA7.js} +145 -81
  353. package/dist/chunk-Y2MT6PI6.js +207 -0
  354. package/dist/chunk-YAYSXZZZ.cjs +82 -0
  355. package/dist/{chunk-6LN4VVX7.js → chunk-YBGMTQ2V.js} +48 -28
  356. package/dist/{chunk-TYLDISRK.js → chunk-YKHIIC7M.js} +13 -6
  357. package/dist/{chunk-3VXGZ3SJ.js → chunk-YPMQC5HX.js} +57 -24
  358. package/dist/{chunk-UWL6DRZW.cjs → chunk-YUJ7Z6N2.cjs} +74 -27
  359. package/dist/{chunk-LEMMFFEY.cjs → chunk-ZEYK37VW.cjs} +15 -7
  360. package/dist/{chunk-ES7AWMNH.cjs → chunk-ZHVR4YPB.cjs} +6 -5
  361. package/dist/{chunk-MPOO5VPW.cjs → chunk-ZYIE3BH7.cjs} +50 -21
  362. package/dist/componentThemeTypes-Jt4B5aU8.d.cts +77 -0
  363. package/dist/componentThemeTypes-Jt4B5aU8.d.ts +77 -0
  364. package/dist/index.cjs +253 -206
  365. package/dist/index.d.cts +11 -9
  366. package/dist/index.d.ts +11 -9
  367. package/dist/index.js +56 -53
  368. package/dist/styles.css +1663 -695
  369. package/dist/{tokens-RYJ3DFTU.css → tokens-CEJVVA3G.css} +10 -0
  370. package/dist/tokens.css +10 -0
  371. package/docs/llms/appshell.md +9 -6
  372. package/docs/llms/autocomplete.md +8 -2
  373. package/docs/llms/avatar.md +2 -0
  374. package/docs/llms/badge.md +2 -0
  375. package/docs/llms/calendar.md +7 -2
  376. package/docs/llms/card.md +20 -1
  377. package/docs/llms/cascader.md +27 -5
  378. package/docs/llms/checkbox.md +13 -0
  379. package/docs/llms/collapse.md +13 -5
  380. package/docs/llms/colorpicker.md +4 -3
  381. package/docs/llms/commandpalette.md +10 -2
  382. package/docs/llms/contextmenu.md +14 -2
  383. package/docs/llms/datepicker.md +7 -0
  384. package/docs/llms/datetimepicker.md +7 -0
  385. package/docs/llms/drawer.md +27 -4
  386. package/docs/llms/form.md +5 -2
  387. package/docs/llms/icon.md +25 -1
  388. package/docs/llms/image.md +3 -3
  389. package/docs/llms/list.md +11 -0
  390. package/docs/llms/message.md +31 -8
  391. package/docs/llms/modal.md +20 -8
  392. package/docs/llms/pagination.md +12 -4
  393. package/docs/llms/popover.md +11 -1
  394. package/docs/llms/progress.md +1 -0
  395. package/docs/llms/radio.md +13 -0
  396. package/docs/llms/select.md +48 -2
  397. package/docs/llms/sidebar.md +24 -0
  398. package/docs/llms/slider.md +5 -2
  399. package/docs/llms/splitter.md +17 -3
  400. package/docs/llms/switch.md +13 -0
  401. package/docs/llms/table.md +7 -8
  402. package/docs/llms/tablepro.md +23 -1
  403. package/docs/llms/tabs.md +21 -0
  404. package/docs/llms/theme.md +83 -28
  405. package/docs/llms/themepanel.md +1 -0
  406. package/docs/llms/titlebar.md +1 -0
  407. package/docs/llms/tooltip.md +7 -2
  408. package/docs/llms/typography.md +27 -3
  409. package/docs/llms/windowcontrols.md +11 -3
  410. package/docs/llms.md +2 -2
  411. package/package.json +212 -2
  412. package/dist/Avatar-TNPOHVY5.css +0 -40
  413. package/dist/Badge-DPGLV3D3.css +0 -22
  414. package/dist/Card-W3ATFUJW.css +0 -77
  415. package/dist/Cascader-ANEQUPMI.css +0 -150
  416. package/dist/Checkbox-EDNPZRIP.css +0 -42
  417. package/dist/List-LSMU5QAC.css +0 -26
  418. package/dist/Pagination-YSZSNFHG.css +0 -68
  419. package/dist/Progress-CZNXCYGW.css +0 -80
  420. package/dist/Slider-UM2IZZBH.css +0 -127
  421. package/dist/Tag-G2XWAL7A.css +0 -42
  422. package/dist/chunk-262ED6WQ.cjs +0 -88
  423. package/dist/chunk-4HJBF4GY.js +0 -218
  424. package/dist/chunk-4TTRHEGM.cjs +0 -217
  425. package/dist/chunk-5A6KSYWA.cjs +0 -67
  426. package/dist/chunk-5MOYKVB7.js +0 -192
  427. package/dist/chunk-7IO3EOHN.cjs +0 -200
  428. package/dist/chunk-7QXP6DXC.cjs +0 -129
  429. package/dist/chunk-AAPZLBHQ.js +0 -165
  430. package/dist/chunk-ARUPS7JH.js +0 -66
  431. package/dist/chunk-ATUPFAPZ.cjs +0 -76
  432. package/dist/chunk-CFZVWY5N.js +0 -178
  433. package/dist/chunk-DSLYWX4O.js +0 -25
  434. package/dist/chunk-E22OIVYP.js +0 -349
  435. package/dist/chunk-FQJY4D3T.cjs +0 -47
  436. package/dist/chunk-GNV6W4BN.js +0 -495
  437. package/dist/chunk-HBO7ZDEQ.js +0 -29
  438. package/dist/chunk-I777JTTG.js +0 -150
  439. package/dist/chunk-IOAOG5L7.js +0 -191
  440. package/dist/chunk-IOUAZYK2.cjs +0 -116
  441. package/dist/chunk-IZHH6CVY.js +0 -123
  442. package/dist/chunk-JFL2WMJZ.js +0 -106
  443. package/dist/chunk-KMPFESEV.js +0 -41
  444. package/dist/chunk-KYV75JPQ.js +0 -147
  445. package/dist/chunk-N7OQNSII.cjs +0 -145
  446. package/dist/chunk-P64NPZBG.js +0 -113
  447. package/dist/chunk-PKNRTFNE.cjs +0 -526
  448. package/dist/chunk-PU7VXDAS.js +0 -64
  449. package/dist/chunk-RFI5R42I.cjs +0 -138
  450. package/dist/chunk-RR2BKV65.js +0 -39
  451. package/dist/chunk-RSSOX4RQ.cjs +0 -240
  452. package/dist/chunk-RZEFKXL3.cjs +0 -104
  453. package/dist/chunk-S7IHWY24.js +0 -81
  454. package/dist/chunk-SOQ56ZI2.cjs +0 -49
  455. package/dist/chunk-TBNPJPYG.cjs +0 -61
  456. package/dist/chunk-TJECLLN4.js +0 -344
  457. package/dist/chunk-ULUD3FED.cjs +0 -138
  458. package/dist/chunk-UW57F3UO.cjs +0 -371
  459. package/dist/chunk-VA2I7ZAL.cjs +0 -190
  460. package/dist/chunk-VS3I5OKA.cjs +0 -214
  461. package/dist/chunk-WMGMIE2D.js +0 -113
  462. package/dist/chunk-X7XP6GEI.cjs +0 -63
  463. package/dist/chunk-XCXUGHDF.js +0 -91
  464. package/dist/chunk-YAFDVNXT.js +0 -27
  465. package/dist/chunk-ZD3L4V3H.js +0 -54
  466. package/dist/chunk-ZTCRD2FL.js +0 -45
@@ -127,6 +127,16 @@
127
127
  --dur-slow: 360ms;
128
128
  }
129
129
 
130
+ /* 尊重系统的减少动态效果偏好,同时保持组件状态切换事件可完成。 */
131
+ @media (prefers-reduced-motion: reduce) {
132
+ :root,
133
+ [data-theme] {
134
+ --dur-fast: 0.01ms;
135
+ --dur: 0.01ms;
136
+ --dur-slow: 0.01ms;
137
+ }
138
+ }
139
+
130
140
  /* Explicit light reset for scoped ThemeProvider instances.
131
141
  :root already has these defaults, but nested [data-theme="light"] must not
132
142
  inherit a dark or custom parent surface. */
package/dist/tokens.css CHANGED
@@ -127,6 +127,16 @@
127
127
  --dur-slow: 360ms;
128
128
  }
129
129
 
130
+ /* 尊重系统的减少动态效果偏好,同时保持组件状态切换事件可完成。 */
131
+ @media (prefers-reduced-motion: reduce) {
132
+ :root,
133
+ [data-theme] {
134
+ --dur-fast: 0.01ms;
135
+ --dur: 0.01ms;
136
+ --dur-slow: 0.01ms;
137
+ }
138
+ }
139
+
130
140
  /* Explicit light reset for scoped ThemeProvider instances.
131
141
  :root already has these defaults, but nested [data-theme="light"] must not
132
142
  inherit a dark or custom parent surface. */
@@ -13,12 +13,15 @@ import { AppShell, TitleBar, Sidebar, StatusBar } from "@fangxinyan/lumina";
13
13
  ### 完整工作台外壳
14
14
 
15
15
  ```tsx
16
- <AppShell
17
- titleBar={<TitleBar title="Lumina Mail" platform="mac" />}
18
- sidebar={<Sidebar items={items} activeKey={active} onSelect={setActive} />}
19
- >
20
- <main>...</main>
21
- </AppShell>
16
+ <div style={{ height: 480 }}>
17
+ <AppShell
18
+ style={{ height: "100%" }}
19
+ titleBar={<TitleBar title="Lumina Mail" platform="mac" />}
20
+ sidebar={<Sidebar items={items} activeKey={active} onSelect={setActive} />}
21
+ >
22
+ <main>...</main>
23
+ </AppShell>
24
+ </div>
22
25
  ```
23
26
 
24
27
  ## API
@@ -12,6 +12,8 @@ import { AutoComplete } from "@fangxinyan/lumina";
12
12
 
13
13
  ### 基础
14
14
 
15
+ 输入框使用 combobox / listbox 语义;方向键跳过禁用项,Enter 选择,Esc 或 Tab 关闭。
16
+
15
17
  ```tsx
16
18
  <AutoComplete
17
19
  options={[
@@ -25,6 +27,8 @@ import { AutoComplete } from "@fangxinyan/lumina";
25
27
 
26
28
  ### 自定义 label
27
29
 
30
+ label 可以是任意 ReactNode;disabled 选项会保留展示,但不会被键盘或鼠标选中。
31
+
28
32
  ```tsx
29
33
  options={[{ value: "zh", label: "中文 · Chinese" }]}
30
34
  ```
@@ -51,10 +55,12 @@ const [opts, setOpts] = useState([]);
51
55
  | onChange | `(value, option?) => void` | — | 文本变更 |
52
56
  | onSelect | `(value, option) => void` | — | 选中项回调 |
53
57
  | onSearch | `(text) => void` | — | 输入变化回调 |
54
- | options \* | `{ value, label?, disabled? }[]` | — | 候选项 |
58
+ | options \* | `{ value, label?, disabled? }[]` | — | 候选项;空字符串 value 会过滤,disabled 项不可选且键盘导航会跳过 |
55
59
  | filterOption | `boolean | (input, option) => boolean` | `true` | 过滤函数,false 关闭过滤 |
56
60
  | notFoundContent | `ReactNode` | — | 无匹配占位 |
57
- | allowClear / disabled / size / autoFocus / placeholder | `-` | — | 常规属性 |
61
+ | disabled | `boolean` | `false` | 禁用输入并立即关闭已打开的建议面板 |
62
+ | allowClear / size / autoFocus / placeholder | `-` | — | 常规输入属性 |
63
+ | dropdownClassName | `string` | — | Portal 下拉面板 className |
58
64
  | matchTriggerWidth | `boolean` | `true` | 下拉宽度跟随输入框 |
59
65
 
60
66
 
@@ -44,11 +44,13 @@ shape="square" 使用圆角方形,尺寸变化时圆角跟随变化。
44
44
  | Prop | 类型 | 默认 | 说明 |
45
45
  | --- | --- | --- | --- |
46
46
  | src | `string` | — | 图片 URL |
47
+ | fallbackSrc | `string` | — | 主图片失败后的备用地址 |
47
48
  | alt | `string` | — | 替代文本/首字母来源 |
48
49
  | initials | `string` | — | 自定义首字母 |
49
50
  | size | `number | "sm" | "md" | "lg" | "xl"` | `"md"` | 尺寸 |
50
51
  | shape | `"circle" | "square"` | `"circle"` | 形状 |
51
52
  | status | `"online" | "busy" | "away" | "offline"` | — | 状态点 |
53
+ | onImageError | `(event) => void` | — | 主图与备用图最终均失败时触发 |
52
54
 
53
55
 
54
56
  ---
@@ -33,6 +33,8 @@ dot 模式不显示数字,只是状态指示。
33
33
  | --- | --- | --- | --- |
34
34
  | count | `number` | — | 显示数字 |
35
35
  | dot | `boolean` | `false` | 圆点模式 |
36
+ | showZero | `boolean` | `false` | count 为 0 时仍显示 |
37
+ | statusLabel | `string` | — | 徽标可访问文本 |
36
38
  | max | `number` | `99` | 超过显示 max+ |
37
39
  | tone | `"neutral" | "accent" | ...` | `"danger"` | 色调 |
38
40
 
@@ -12,8 +12,12 @@ import { Calendar } from "@fangxinyan/lumina";
12
12
 
13
13
  ### 基础用法
14
14
 
15
+ 受控 value 可传 null 表示尚未选择,日历仍保留可操作的当前月份。
16
+
15
17
  ```tsx
16
- <Calendar value={date} onChange={setDate} />
18
+ <Calendar value={date} viewDate={viewDate}
19
+ onChange={setDate} onViewChange={setViewDate} />
20
+ <Button onClick={() => setDate(null)}>清空选择</Button>
17
21
  ```
18
22
 
19
23
  ### 禁用日期
@@ -34,8 +38,9 @@ import { Calendar } from "@fangxinyan/lumina";
34
38
 
35
39
  | Prop | 类型 | 默认 | 说明 |
36
40
  | --- | --- | --- | --- |
37
- | value / defaultValue | `Date` | — | 受控/初始日期 |
41
+ | value / defaultValue | `Date | null` | — | 受控/初始日期;null 表示没有选中日期 |
38
42
  | viewDate | `Date` | — | 外部日期变化时同步可视月份 |
43
+ | onViewChange | `(date: Date) => void` | — | 用户切换可视月份或年份时回调 |
39
44
  | onChange | `(date: Date) => void` | — | 选择回调 |
40
45
  | min / max | `Date` | — | 可选范围 |
41
46
  | disabledDate | `(date: Date) => boolean` | — | 自定义禁用判断,返回 true 的日期不可选 |
package/docs/llms/card.md CHANGED
@@ -28,6 +28,23 @@ hoverable 在鼠标悬浮时轻微上移并加强阴影,适合可点击的卡片
28
28
  <Card hoverable>可点击卡片</Card>
29
29
  ```
30
30
 
31
+ ### 整卡交互
32
+
33
+ interactive 提供按钮式焦点和键盘语义;标题区 actions 仍可独立响应,disabled 会隔离整张卡片。
34
+
35
+ ```tsx
36
+ <Card
37
+ interactive
38
+ hoverable
39
+ title="可操作卡片"
40
+ actions={<Button onClick={handleAction}>独立操作</Button>}
41
+ onClick={handleCardClick}
42
+ >
43
+ 点击卡片空白区域,或聚焦整卡后按 Enter / Space。
44
+ </Card>
45
+ <Card interactive disabled title="禁用卡片">不会响应</Card>
46
+ ```
47
+
31
48
  ### 自定义背景色
32
49
 
33
50
  background 可覆盖卡片根节点背景,纯色、主题 token、color-mix 与渐变都走同一个字段。
@@ -99,6 +116,8 @@ loading 会在正文区域显示中性 overlay;默认 Spin 跟随主题色,l
99
116
  | background | `CSSProperties["background"]` | — | 自定义卡片根节点背景,支持主题 token / color-mix / linear-gradient / radial-gradient 等 CSS 背景值 |
100
117
  | padding | `"none" | "sm" | "md" | "lg"` | `"md"` | 内边距 |
101
118
  | hoverable | `boolean` | `false` | 悬浮时抬起 |
119
+ | interactive | `boolean` | — | 启用按钮式键盘语义;提供 onClick 时自动开启,内部按钮等控件保持独立响应 |
120
+ | disabled | `boolean` | `false` | 禁用交互式卡片并隔离内部控件 |
102
121
  | title | `ReactNode` | — | 标题 |
103
122
  | description | `ReactNode` | — | 副标题 |
104
123
  | actions | `ReactNode` | — | 右上操作区 |
@@ -107,7 +126,7 @@ loading 会在正文区域显示中性 overlay;默认 Spin 跟随主题色,l
107
126
  | bodyClassName | `string` | — | 正文容器 className |
108
127
  | bodyStyle | `CSSProperties` | — | 正文容器内联样式 |
109
128
  | bodyProps | `HTMLAttributes<HTMLDivElement>` | — | 透传给正文容器的 DOM props |
110
- | loading | `boolean` | `false` | 显示正文加载覆盖层 |
129
+ | loading | `boolean` | `false` | 显示正文加载覆盖层,并暂时隔离正文与标题操作区控件 |
111
130
  | loadingOverlay | `ReactNode` | — | 自定义加载覆盖层内容 |
112
131
 
113
132
 
@@ -12,15 +12,31 @@ import { Cascader } from "@fangxinyan/lumina";
12
12
 
13
13
  ### 基础用法
14
14
 
15
- option.icon 支持 IconName 或 ReactNode。
15
+ option.icon 支持 IconName 或 ReactNode;禁用节点不可通过列选择或搜索结果绕过选中。
16
16
 
17
17
  ```tsx
18
18
  <Cascader options={regions} value={addr} onChange={setAddr} />
19
19
  ```
20
20
 
21
+ ### 复杂节点与独立选中渲染
22
+
23
+ optionRender 可为每一级节点添加多行信息;selectedRender 只在触发器中显示紧凑摘要。listHeight 与 popupStyle 控制列高和面板宽度。
24
+
25
+ ```tsx
26
+ <Cascader
27
+ options={assetOptions}
28
+ value={assetPath}
29
+ onChange={setAssetPath}
30
+ optionRender={(option, info) => <AssetNode option={option} selected={info.selected} />}
31
+ selectedRender={(selectedOptions) => <AssetPath options={selectedOptions} />}
32
+ listHeight={380}
33
+ popupStyle={{ minWidth: "min(680px, calc(100vw - 16px))" }}
34
+ />
35
+ ```
36
+
21
37
  ### 搜索与清除
22
38
 
23
- showSearch 开启路径搜索,allowClear 提供一键清空,popupClassName 可标记浮层。
39
+ showSearch 开启路径搜索,allowClear 提供一键清空;搜索框打开后自动聚焦,禁用任一节点的路径不会进入搜索结果。
24
40
 
25
41
  ```tsx
26
42
  <Cascader
@@ -41,13 +57,19 @@ showSearch 开启路径搜索,allowClear 提供一键清空,popupClassName 可
41
57
  | --- | --- | --- | --- |
42
58
  | options \* | `CascaderOption[]` | — | 层级选项树 |
43
59
  | options[].icon | `IconName | ReactNode` | — | 选项前置图标,可传内置图标名或自定义节点 |
60
+ | options[].text | `string` | — | 复杂 label 的独立默认搜索文本 |
61
+ | options[].ariaLabel | `string` | — | 复杂节点或 optionRender 的独立可访问名称 |
44
62
  | value / defaultValue | `string[]` | — | 受控/初始路径 |
45
- | onChange | `(path: string[]) => void` | — | 选择叶子时触发 |
63
+ | onChange | `(path: string[], selectedOptions?: CascaderOption[]) => void` | — | 提交路径时触发,同时返回对应选项对象 |
46
64
  | placeholder | `string` | — | 占位文案 |
47
- | disabled | `boolean` | `false` | 禁用 |
65
+ | disabled | `boolean` | `false` | 禁用触发器并立即关闭已打开的面板 |
48
66
  | allowClear | `boolean` | `false` | 显示清除按钮 |
49
67
  | showSearch | `boolean | { filter?, render?, limit? }` | — | 搜索路径,支持 boolean / 对象配置 |
50
- | popupClassName / dropdownClassName | `string` | — | 浮层面板 className |
68
+ | optionRender | `(option, info) => ReactNode` | — | 自定义每一级菜单节点内容,并获得 depth / selected / hasChildren 状态 |
69
+ | selectedRender | `(selectedOptions, values) => ReactNode` | — | 自定义触发器中的紧凑已选路径内容 |
70
+ | listHeight | `number` | `280` | 每列和搜索结果滚动区域的最大高度 |
71
+ | popupStyle | `CSSProperties` | — | Portal 浮层内联样式,可覆盖宽度或高度 |
72
+ | popupClassName / dropdownClassName | `string` | — | Portal 浮层面板 className;会自动跟随所属 Modal / Drawer 的层级 |
51
73
  | changeOnSelect | `boolean` | `false` | 允许选中非叶子节点 |
52
74
 
53
75
 
@@ -16,6 +16,17 @@ import { Checkbox } from "@fangxinyan/lumina";
16
16
  <Checkbox checked={v} onChange={setV} label="同意协议" />
17
17
  ```
18
18
 
19
+ ### 原生表单
20
+
21
+ name / value / required 会落到真实 checkbox,可直接参与浏览器表单提交与约束校验。
22
+
23
+ ```tsx
24
+ <form onSubmit={(event) => event.preventDefault()}>
25
+ <Checkbox name="agreement" value="accepted" required label="同意条款" />
26
+ <Button type="submit">验证提交</Button>
27
+ </form>
28
+ ```
29
+
19
30
  ### 全选/半选
20
31
 
21
32
  indeterminate 用来表示部分选中。
@@ -34,6 +45,8 @@ indeterminate 用来表示部分选中。
34
45
  | indeterminate | `boolean` | `false` | 半选态 |
35
46
  | onChange | `(checked: boolean) => void` | — | 变更 |
36
47
  | label | `ReactNode` | — | 右侧文案 |
48
+ | name / value | `string` | — | 原生表单字段名与选中时提交的值 |
49
+ | required / form | `boolean / string` | — | 原生必填约束与关联 form id |
37
50
  | disabled | `boolean` | `false` | 禁用 |
38
51
 
39
52
 
@@ -18,10 +18,18 @@ import { Collapse } from "@fangxinyan/lumina";
18
18
 
19
19
  ### 多项展开
20
20
 
21
- multiple 允许同时展开多个面板。
21
+ multiple={true} 允许同时展开多个面板,也是默认行为。
22
22
 
23
23
  ```tsx
24
- <Collapse defaultActiveKey={["1", "2"]} ... />
24
+ <Collapse multiple defaultActiveKey={["1", "2"]} ... />
25
+ ```
26
+
27
+ ### multiple={false}
28
+
29
+ 单开模式最多保留一项;即使 activeKey / defaultActiveKey 传入数组,也只采用首项。
30
+
31
+ ```tsx
32
+ <Collapse multiple={false} defaultActiveKey={["1", "2"]} ... />
25
33
  ```
26
34
 
27
35
  ### 手风琴模式
@@ -56,12 +64,12 @@ collapsible="disabled" 会禁用所有项的展开交互。
56
64
  | --- | --- | --- | --- |
57
65
  | items \* | `CollapseItem[]` | — | 面板数据 |
58
66
  | accordion | `boolean` | `false` | 手风琴模式(同一时刻最多一项) |
59
- | multiple | `boolean` | `true` | 可同时展开多个 |
67
+ | multiple | `boolean` | `true` | 是否可同时展开多个;false 时数组键值只保留首项 |
60
68
  | collapsible | `"header" | "icon" | "disabled"` | `"header"` | 展开触发区域 |
61
- | activeKey / defaultActiveKey | `string | string[]` | — | 受控/初始展开 |
69
+ | activeKey / defaultActiveKey | `string | string[]` | — | 受控/初始展开;单开模式会归一为至多一项 |
62
70
  | ghost | `boolean` | `false` | 无外框/阴影的轻量样式 |
63
71
  | size | `"small" | "middle" | "large"` | `"middle"` | 尺寸 |
64
- | onChange | `(keys: string[]) => void` | — | 展开变更 |
72
+ | onChange | `(keys: string[]) => void` | — | 展开变更;单开模式仍统一返回长度不超过 1 的数组 |
65
73
 
66
74
 
67
75
  ---
@@ -5,7 +5,7 @@
5
5
  ## 导入
6
6
 
7
7
  ```tsx
8
- import { ColorPicker } from "@fangxinyan/lumina";
8
+ import { ColorPicker, type ColorPickerTriggerElement } from "@fangxinyan/lumina";
9
9
  ```
10
10
 
11
11
  ## 示例
@@ -52,7 +52,7 @@ presets 传入十六进制数组,面板底部会渲染一排色块。
52
52
 
53
53
  ### 自定义触发器
54
54
 
55
- 将 children 作为触发器;色块容器会继承传入的交互元素。
55
+ 将 children 作为触发器;纯文本或不能接收 ref 的组件会自动获得可访问的包装节点。
56
56
 
57
57
  ```tsx
58
58
  <ColorPicker value={brand} onChange={setBrand}>
@@ -75,7 +75,8 @@ presets 传入十六进制数组,面板底部会渲染一排色块。
75
75
  | showText | `boolean` | `false` | 触发器右侧显示 hex |
76
76
  | disabled | `boolean` | `false` | 禁用 |
77
77
  | open / defaultOpen / onOpenChange | `—` | — | 受控面板显隐 |
78
- | children | `ReactNode` | — | 自定义触发器 |
78
+ | children | `ReactNode` | — | 自定义触发器;不能接收 ref 的节点会自动包装 |
79
+ | ref | `Ref<ColorPickerTriggerElement>` | — | 实际触发节点;自定义内容可能返回包装节点 |
79
80
 
80
81
 
81
82
  ---
@@ -12,7 +12,7 @@ import { CommandPalette } from "@fangxinyan/lumina";
12
12
 
13
13
  ### 基础 + 快捷键
14
14
 
15
- 在当前页面按 ⌘K / Ctrl+K 打开。分组、快捷键提示、键盘导航都已内置。
15
+ 在当前页面按 ⌘K / Ctrl+K 打开。方向键、Home / End 会跳过禁用项;Esc 只关闭当前最上层浮层。
16
16
 
17
17
  ```tsx
18
18
  const [open, setOpen] = useState(false);
@@ -27,7 +27,13 @@ useEffect(() => {
27
27
  return () => window.removeEventListener("keydown", h);
28
28
  }, []);
29
29
 
30
- <CommandPalette open={open} onOpenChange={setOpen} items={[...]} />
30
+ <CommandPalette
31
+ open={open}
32
+ onOpenChange={setOpen}
33
+ items={[...]}
34
+ className="app-command-panel"
35
+ overlayClassName="app-command-mask"
36
+ />
31
37
  ```
32
38
 
33
39
  ## API
@@ -43,6 +49,8 @@ useEffect(() => {
43
49
  | emptyText | `ReactNode` | — | 无结果占位 |
44
50
  | resetOnOpen | `boolean` | `true` | 打开时清空输入 |
45
51
  | footer | `ReactNode` | — | 底部区;null 隐藏 |
52
+ | className | `string` | — | 命令面板节点 className(ref 同样指向该节点) |
53
+ | overlayClassName | `string` | — | 全屏遮罩层 className |
46
54
 
47
55
 
48
56
  **CommandItem**
@@ -12,6 +12,8 @@ import { ContextMenu } from "@fangxinyan/lumina";
12
12
 
13
13
  ### 基础
14
14
 
15
+ 方向键、Home / End、Enter 提供完整键盘导航;Esc 会关闭并把焦点归还给打开前的控件,Tab 会退出并关闭菜单。
16
+
15
17
  ```tsx
16
18
  <ContextMenu items={[
17
19
  { key: "copy", label: "复制", shortcut: "⌘C", onSelect: () => {} },
@@ -31,6 +33,16 @@ import { ContextMenu } from "@fangxinyan/lumina";
31
33
  <ContextMenu items={[...]}>...
32
34
  ```
33
35
 
36
+ ### 禁用自定义菜单
37
+
38
+ disabled 会立即关闭已打开的菜单,之后不再拦截 contextmenu,浏览器原生菜单恢复可用。
39
+
40
+ ```tsx
41
+ <ContextMenu disabled items={items}>
42
+ <div>这里使用浏览器原生右键菜单</div>
43
+ </ContextMenu>
44
+ ```
45
+
34
46
  ## API
35
47
 
36
48
  **ContextMenu**
@@ -38,8 +50,8 @@ import { ContextMenu } from "@fangxinyan/lumina";
38
50
  | Prop | 类型 | 默认 | 说明 |
39
51
  | --- | --- | --- | --- |
40
52
  | items \* | `ContextMenuItem[]` | — | 菜单项 |
41
- | children \* | `ReactElement` | — | 触发元素(恰好一个) |
42
- | disabled | `boolean` | — | 禁用,恢复浏览器原生菜单 |
53
+ | children \* | `ReactNode` | — | 任意触发内容;内部 display: contents 包装不改变布局 |
54
+ | disabled | `boolean` | `false` | 禁用并关闭当前菜单,恢复浏览器原生菜单 |
43
55
  | minWidth | `number` | `180` | 面板最小宽度 |
44
56
 
45
57
 
@@ -47,6 +47,12 @@ min / max 与 disabledDate 会同步作用于 Calendar 单元格和手动输入
47
47
  <DatePicker size="lg" disabled />
48
48
  ```
49
49
 
50
+ ### 自定义格式与解析
51
+
52
+ ```tsx
53
+ <DatePicker format={formatDotDate} parse={parseDotDate} />
54
+ ```
55
+
50
56
  ## API
51
57
 
52
58
  **DatePicker**
@@ -56,6 +62,7 @@ min / max 与 disabledDate 会同步作用于 Calendar 单元格和手动输入
56
62
  | value / defaultValue | `Date | null` | — | 受控/初始日期 |
57
63
  | onChange | `(date: Date | null, dateString: string) => void` | — | 选择或清空时触发 |
58
64
  | format | `"YYYY-MM-DD" | "YYYY/MM/DD" | "YYYY年MM月DD日" | ((date) => string)` | `"YYYY-MM-DD"` | 显示格式或自定义格式化函数 |
65
+ | parse | `(input: string) => Date | null` | — | 自定义 format 函数对应的输入解析器 |
59
66
  | min / max | `Date` | — | 可选日期范围 |
60
67
  | disabledDate | `(date: Date) => boolean` | — | 自定义禁用日期 |
61
68
  | size | `"sm" | "md" | "lg"` | `"md"` | 输入框尺寸 |
@@ -58,6 +58,12 @@ const [startAt, setStartAt] = useState<Date | null>(new Date(2026, 4, 25, 9, 30)
58
58
  <DateTimePicker size="lg" disabled />
59
59
  ```
60
60
 
61
+ ### 自定义格式与解析
62
+
63
+ ```tsx
64
+ <DateTimePicker format={formatSlashDateTime} parse={parseSlashDateTime} />
65
+ ```
66
+
61
67
  ## API
62
68
 
63
69
  **DateTimePicker**
@@ -67,6 +73,7 @@ const [startAt, setStartAt] = useState<Date | null>(new Date(2026, 4, 25, 9, 30)
67
73
  | value / defaultValue | `Date | null` | — | 受控/初始日期时间 |
68
74
  | onChange | `(date: Date | null, dateString: string) => void` | — | 选择或清空时触发 |
69
75
  | format | `"YYYY-MM-DD HH:mm" | "YYYY-MM-DD HH:mm:ss" | ((date) => string)` | `"YYYY-MM-DD HH:mm"` | 显示格式或自定义格式化函数 |
76
+ | parse | `(input: string) => Date | null` | — | 自定义 format 函数对应的输入解析器 |
70
77
  | showSecond | `boolean` | — | 显示秒列 |
71
78
  | hourStep / minuteStep / secondStep | `number` | `1` | 列选项步进 |
72
79
  | min / max | `Date` | — | 可选日期时间范围 |
@@ -12,6 +12,8 @@ import { Drawer } from "@fangxinyan/lumina";
12
12
 
13
13
  ### 基础
14
14
 
15
+ 有遮罩时会锁定页面滚动并把焦点限制在抽屉及其子浮层;关闭后焦点回到原触发控件。
16
+
15
17
  ```tsx
16
18
  <Drawer open={d} onClose={...} title="标题">...</Drawer>
17
19
  ```
@@ -27,6 +29,23 @@ extra 渲染到标题右边,常用来放刷新 / 更多 / 保存按钮。
27
29
  />
28
30
  ```
29
31
 
32
+ ### 拟态阴影安全区
33
+
34
+ 抽屉只让正文区滚动,并自动为拟态阴影留出空间;全宽内容可通过 bodyInset="none" 贴边。
35
+
36
+ ```tsx
37
+ <Drawer
38
+ open={open}
39
+ title="连接配置"
40
+ bodyClassName="connection-drawer-body"
41
+ bodyStyle={{ scrollBehavior: "smooth" }}
42
+ bodyProps={{ "data-purpose": "connection-settings" }}
43
+ bodyOverflow="auto"
44
+ >
45
+ <Card title="远程节点">无需手工补 padding 或修改 overflow。</Card>
46
+ </Drawer>
47
+ ```
48
+
30
49
  ### 四个方向
31
50
 
32
51
  placement 控制滑出方向;top / bottom 用 size 控高度。
@@ -38,7 +57,7 @@ placement 控制滑出方向;top / bottom 用 size 控高度。
38
57
 
39
58
  ### 无遮罩 (mask={false})
40
59
 
41
- 关闭遮罩的抽屉不阻塞页面其他交互,适合辅助面板。
60
+ 关闭遮罩的抽屉不锁定滚动、不限制焦点,页面其他区域仍可交互;Esc 与关闭后的焦点归还仍然生效。
42
61
 
43
62
  ```tsx
44
63
  <Drawer mask={false} />
@@ -62,21 +81,25 @@ placement 控制滑出方向;top / bottom 用 size 控高度。
62
81
  | Prop | 类型 | 默认 | 说明 |
63
82
  | --- | --- | --- | --- |
64
83
  | open \* | `boolean` | — | 可见 |
65
- | onClose | `() => void` | — | 关闭回调 |
84
+ | onClose | `() => void` | — | 关闭回调;Esc 仅由当前最上层浮层响应 |
66
85
  | placement | `"left" | "right" | "top" | "bottom"` | `"right"` | 出现位置 |
67
86
  | size | `number | string` | `380` | 宽度(左右)或高度(上下) |
68
87
  | title / footer / children | `ReactNode` | — | 头/脚/主体 |
69
88
  | extra | `ReactNode` | — | 标题右侧的附加操作区 |
70
- | mask | `boolean` | `true` | 是否渲染遮罩 |
89
+ | bodyClassName / bodyStyle / bodyProps | `string / CSSProperties / HTMLAttributes<HTMLDivElement>` | — | 正文容器的 class、样式与 DOM 属性 |
90
+ | bodyOverflow | `CSSProperties['overflow']` | — | 正文容器 overflow 快捷控制 |
91
+ | bodyInset | `"safe" | "none"` | `"safe"` | 正文边缘留白;safe 自动保护拟态阴影,none 用于贴边内容 |
92
+ | mask | `boolean` | `true` | 是否渲染遮罩;有遮罩时启用焦点限制与页面滚动锁定 |
71
93
  | maskClosable | `boolean` | `true` | 点击遮罩关闭 |
72
94
  | maskClassName | `string` | — | 遮罩层 className |
73
95
  | maskStyle | `CSSProperties` | — | 遮罩层内联样式 |
96
+ | className | `string` | — | 抽屉面板 className;ref 同样指向面板 |
74
97
  | keyboard | `boolean` | `true` | Esc 关闭 |
75
98
  | closable | `boolean` | `true` | 右上角 × |
76
99
  | closeIcon | `ReactNode` | — | 自定义关闭图标 |
77
100
  | destroyOnClose | `boolean` | `false` | 关闭时卸载子树 |
78
101
  | afterOpenChange | `(open: boolean) => void` | — | 动画结束回调 |
79
- | zIndex | `number` | — | 覆盖 z-index |
102
+ | zIndex | `number` | — | 覆盖抽屉起始层级;所属子浮层会自动排在其上 |
80
103
 
81
104
 
82
105
  ---
package/docs/llms/form.md CHANGED
@@ -106,7 +106,7 @@ form.resetFields()
106
106
  | onFinish / onFinishFailed | `(values | {values, errorFields}) => void` | — | 提交成功/失败 |
107
107
  | onValuesChange | `(changed, all) => void` | — | 任一字段变化 |
108
108
  | requiredMark | `boolean` | `true` | 是否在必填 label 前显示 * |
109
- | disabled | `boolean` | — | 整体禁用 |
109
+ | disabled | `boolean` | — | 强制整体禁用;子控件 disabled={false} 不会覆盖 |
110
110
 
111
111
 
112
112
  **Form.Item**
@@ -119,9 +119,12 @@ form.resetFields()
119
119
  | noStyle | `boolean` | — | 不渲染外层 item 包装 |
120
120
  | valuePropName | `string` | `"value"` | 注入值的 prop 名 |
121
121
  | trigger | `string` | `"onChange"` | 监听的事件名 |
122
+ | validateTrigger | `string | string[]` | `"onChange"` | 触发校验的事件名,可配置多个 |
122
123
  | initialValue | `any` | — | 此字段初始值;优先级低于 Form initialValues |
124
+ | required | `boolean` | — | 显示必填标记并向真实控件注入 aria-required |
123
125
  | help / extra | `ReactNode` | — | 辅助/补充说明 |
124
126
  | hidden | `boolean` | — | 隐藏(字段仍保留) |
127
+ | ref / 原生 div 属性 | `Ref<HTMLDivElement> / HTMLAttributes` | — | ref 落到外层节点;支持 className / style / id / data-* / aria-* |
125
128
 
126
129
 
127
130
  **Rule**
@@ -132,7 +135,7 @@ form.resetFields()
132
135
  | message | `string` | — | 错误提示文案 |
133
136
  | pattern | `RegExp` | — | 正则校验 |
134
137
  | min / max / len | `number` | — | 字符串/数组长度或数字范围 |
135
- | type | `string` | — | "string" \| "number" \| "email" \| "url" \| "array" |
138
+ | type | `"string" | "number" | "email" | "url" | "array"` | — | 字符串、数字、数组及严格 email / url 格式校验 |
136
139
  | validator | `(rule, value) => Promise<void>` | — | 自定义,抛出错误或 reject 视为失败 |
137
140
 
138
141
 
package/docs/llms/icon.md CHANGED
@@ -5,7 +5,7 @@
5
5
  ## 导入
6
6
 
7
7
  ```tsx
8
- import { Icon } from "@fangxinyan/lumina";
8
+ import { Icon, DeleteOutlined, LoadingOutlined, StarFilled, ICON_NAMES } from "@fangxinyan/lumina";
9
9
  ```
10
10
 
11
11
  ## 示例
@@ -19,6 +19,20 @@ import { Icon } from "@fangxinyan/lumina";
19
19
  <Icon name="heart" size={20} stroke={1.5} />
20
20
  ```
21
21
 
22
+ ### 命名图标组件
23
+
24
+ Outlined / Filled 命名组件与 Icon 共用同一入口,也支持对应名称的包子路径。
25
+
26
+ ```tsx
27
+ import { DeleteOutlined } from "@fangxinyan/lumina/DeleteOutlined";
28
+ import { LoadingOutlined } from "@fangxinyan/lumina/LoadingOutlined";
29
+ import { StarFilled } from "@fangxinyan/lumina/StarFilled";
30
+
31
+ <DeleteOutlined aria-label="删除" />
32
+ <LoadingOutlined aria-label="加载中" />
33
+ <StarFilled aria-label="收藏" />
34
+ ```
35
+
22
36
  ## API
23
37
 
24
38
  **Icon**
@@ -28,6 +42,16 @@ import { Icon } from "@fangxinyan/lumina";
28
42
  | name \* | `IconName` | — | 图标名 |
29
43
  | size | `number` | `16` | 尺寸 (px) |
30
44
  | stroke | `number` | `2` | 描边粗细 |
45
+ | title | `string` | — | 语义图标的可访问标题;省略时默认作为装饰图标 |
46
+
47
+
48
+ **NamedIconProps**
49
+
50
+ | Prop | 类型 | 默认 | 说明 |
51
+ | --- | --- | --- | --- |
52
+ | size | `number | string` | `"1em"` | 尺寸 |
53
+ | spin | `boolean` | — | 旋转动画 |
54
+ | rotate | `number` | — | 静态旋转角度 |
31
55
 
32
56
 
33
57
  ---
@@ -30,7 +30,7 @@ import { Image, ImageGrid, SpriteImage, LayeredImage } from "@fangxinyan/lumina"
30
30
 
31
31
  ### 精细预览
32
32
 
33
- 预览层内置放大、缩小、适配窗口、1:1、滚轮缩放和拖拽平移;previewMaxWidth / previewMaxHeight 控制适配态尺寸,renderPreviewToolbar 可追加业务按钮。
33
+ 点击或按 Enter / Space 打开;预览层内置焦点限制、Esc 关闭与焦点归还,以及放大、缩小、适配窗口、1:1、滚轮缩放和拖拽平移。
34
34
 
35
35
  ```tsx
36
36
  <Image
@@ -98,11 +98,11 @@ LayeredImage 将多张图片叠在同一个盒子里,适合头像 + 头像框、
98
98
  | frame | `boolean` | `framed 时 true` | 是否保留内层凹陷 frame |
99
99
  | padding | `number | string` | — | 外层留白,raw/icon 默认 0 |
100
100
  | objectFit / objectPosition | `CSSProperties` | — | 底层 img 的 object-fit / object-position |
101
- | preview | `boolean` | `true` | 支持点击全屏预览 |
101
+ | preview | `boolean` | `framed 时 true` | 启用点击或 Enter / Space 全屏预览;打开时限制焦点并锁定滚动,Esc 关闭后归还焦点 |
102
102
  | previewClassName | `string` | — | 预览蒙层 className |
103
103
  | previewStyle | `CSSProperties` | — | 预览蒙层内联样式 |
104
104
  | previewMaxWidth / previewMaxHeight | `number | string` | `"80vw" / "80vh"` | 预览适配态的最大尺寸 |
105
- | renderPreviewToolbar | `(controls) => ReactNode` | — | 在预览工具栏追加自定义按钮 |
105
+ | renderPreviewToolbar | `(controls) => ReactNode` | — | 在预览工具栏追加自定义按钮;追加控件同样参与焦点循环 |
106
106
  | hover | `boolean` | `true` | 悬浮放大 |
107
107
  | placeholder | `ReactNode` | — | 占位/错误时内容 |
108
108
  | imgProps | `ImgHTMLAttributes` | — | 透传到底层 img 的属性 |
package/docs/llms/list.md CHANGED
@@ -16,6 +16,17 @@ import { List } from "@fangxinyan/lumina";
16
16
  <List items={[{ key, title, description, avatar, actions }]} />
17
17
  ```
18
18
 
19
+ ### 可点击与无分隔线
20
+
21
+ 提供 onClick 时整行获得按钮语义;dividers={false} 适合更轻量的操作列表。
22
+
23
+ ```tsx
24
+ <List
25
+ dividers={false}
26
+ items={[{ title: "下载构建产物", onClick: handleClick }]}
27
+ />
28
+ ```
29
+
19
30
  ## API
20
31
 
21
32
  **List**