@fangxinyan/lumina 0.6.17 → 0.7.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 (464) 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-TDCXJISG.css → Image-CZJPPURT.css} +95 -14
  107. package/dist/Image.cjs +10 -6
  108. package/dist/Image.d.cts +23 -25
  109. package/dist/Image.d.ts +23 -25
  110. package/dist/Image.js +6 -2
  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 +24 -3
  159. package/dist/Select.d.ts +24 -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 +8 -12
  179. package/dist/Splitter.d.ts +8 -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-W4HPZ7MZ.css} +78 -53
  197. package/dist/Table.cjs +14 -10
  198. package/dist/Table.d.cts +32 -3
  199. package/dist/Table.d.ts +32 -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-A3IG6UZ6.css} +10 -10
  207. package/dist/Tabs.cjs +4 -2
  208. package/dist/Tabs.d.cts +2 -2
  209. package/dist/Tabs.d.ts +2 -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-E22OIVYP.js → chunk-3EHJ5QI3.js} +202 -69
  258. package/dist/{chunk-X5MYHDEQ.cjs → chunk-3EMWDDWK.cjs} +372 -117
  259. package/dist/chunk-3F424R5P.js +143 -0
  260. package/dist/chunk-3IZZBM56.js +269 -0
  261. package/dist/{chunk-DUFRASGO.js → chunk-3QXP2ZNP.js} +18 -23
  262. package/dist/{chunk-5QEI7GGA.cjs → chunk-434Y2JVW.cjs} +60 -27
  263. package/dist/{chunk-SOCYOUGM.js → chunk-4SKHRPDH.js} +168 -64
  264. package/dist/{chunk-L6GIV5DQ.cjs → chunk-56I6ZKGU.cjs} +40 -22
  265. package/dist/{chunk-R3DTXVP2.js → chunk-5AXNUX3J.js} +8 -5
  266. package/dist/chunk-5CZA33BK.cjs +229 -0
  267. package/dist/{chunk-6K5YI4ZE.js → chunk-62VV5COT.js} +16 -6
  268. package/dist/chunk-6DKPJ5LV.cjs +294 -0
  269. package/dist/{chunk-OTSDPQPV.js → chunk-6RQJXSWN.js} +50 -30
  270. package/dist/{chunk-V5KUC5VH.cjs → chunk-77HU7JWK.cjs} +40 -13
  271. package/dist/chunk-7QAVPVMW.js +180 -0
  272. package/dist/chunk-7VLAHOA7.cjs +191 -0
  273. package/dist/chunk-ALAG4ZUH.js +72 -0
  274. package/dist/chunk-ARUN2DMD.js +39 -0
  275. package/dist/chunk-AUO2YYHB.js +248 -0
  276. package/dist/{chunk-6MEOLYNQ.js → chunk-AURYNA6G.js} +6 -5
  277. package/dist/chunk-BIPOXOHP.cjs +287 -0
  278. package/dist/{chunk-V5SQOZPF.js → chunk-BJDQVVCG.js} +38 -20
  279. package/dist/{chunk-BVQOJKRX.js → chunk-BKW5PXEO.js} +115 -72
  280. package/dist/{chunk-UW57F3UO.cjs → chunk-D7YSY5RZ.cjs} +208 -75
  281. package/dist/chunk-DRDDQCDD.js +322 -0
  282. package/dist/chunk-DU2DSERH.js +190 -0
  283. package/dist/{chunk-PSQ3HNZP.cjs → chunk-E66PSVBU.cjs} +106 -19
  284. package/dist/{chunk-UGAN4BBW.js → chunk-EA3NZBCZ.js} +251 -125
  285. package/dist/chunk-EAUB6FEN.js +262 -0
  286. package/dist/chunk-EE5KXDRK.cjs +1223 -0
  287. package/dist/chunk-EE7IJ3MB.js +1 -0
  288. package/dist/{chunk-NXBFEIUX.cjs → chunk-ENFLP7SN.cjs} +255 -129
  289. package/dist/chunk-EUTK2ZRJ.cjs +61 -0
  290. package/dist/chunk-F7WUCOBP.cjs +828 -0
  291. package/dist/{chunk-YB3IWIOJ.cjs → chunk-FJB3243S.cjs} +18 -23
  292. package/dist/chunk-FKCPSVC4.cjs +188 -0
  293. package/dist/chunk-FMUHLIHB.cjs +94 -0
  294. package/dist/chunk-FY73C7JK.js +520 -0
  295. package/dist/{chunk-6EOSMK34.cjs → chunk-G5LCOBOT.cjs} +20 -1
  296. package/dist/{chunk-5ERD3W24.cjs → chunk-GFKWSDD6.cjs} +18 -8
  297. package/dist/{chunk-T2O4DTDE.cjs → chunk-GTFP7HA3.cjs} +58 -32
  298. package/dist/chunk-HQFKXTX6.js +60 -0
  299. package/dist/chunk-HSDMJUB6.cjs +319 -0
  300. package/dist/chunk-HVPUGYBY.js +166 -0
  301. package/dist/chunk-HYHBCHFM.cjs +167 -0
  302. package/dist/chunk-HYJSMFZA.cjs +2 -0
  303. package/dist/chunk-I4YPBAQ5.js +163 -0
  304. package/dist/{chunk-IPSNC5VZ.js → chunk-JHM7MN3G.js} +15 -7
  305. package/dist/{chunk-4ACCOYBY.cjs → chunk-JINKQT6H.cjs} +20 -8
  306. package/dist/{chunk-6Q76VLCE.cjs → chunk-JKUXA3U6.cjs} +50 -30
  307. package/dist/{chunk-D7GK6H6V.js → chunk-K5HGHOG7.js} +50 -21
  308. package/dist/chunk-KATJAJUU.js +78 -0
  309. package/dist/chunk-KCDOC3HS.cjs +100 -0
  310. package/dist/{chunk-M4NJTJKV.cjs → chunk-LDX6Q6RK.cjs} +8 -5
  311. package/dist/chunk-LEDESWNL.js +83 -0
  312. package/dist/chunk-LG62MPMU.cjs +213 -0
  313. package/dist/{chunk-7NTTRKNT.js → chunk-LJVQQEME.js} +54 -28
  314. package/dist/chunk-LOWTSOWT.js +199 -0
  315. package/dist/{chunk-FDZG27IG.js → chunk-LQMOYVQF.js} +57 -32
  316. package/dist/{chunk-P2OQTJZP.cjs → chunk-MCDW3VKZ.cjs} +17 -6
  317. package/dist/{chunk-BT2RXFT4.cjs → chunk-MUZQWIMR.cjs} +121 -78
  318. package/dist/chunk-NRJXZPZR.cjs +351 -0
  319. package/dist/chunk-O6G3F5L4.js +311 -0
  320. package/dist/{chunk-3VSHGM54.js → chunk-OLYSSZHP.js} +126 -68
  321. package/dist/{chunk-A4Z7PLHV.cjs → chunk-PIJV2FHO.cjs} +135 -77
  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-RAK6CENJ.js +83 -0
  331. package/dist/{chunk-BW76ENTW.cjs → chunk-RERMZNF3.cjs} +10 -9
  332. package/dist/chunk-RMGFRAZ2.cjs +270 -0
  333. package/dist/chunk-RPO7657K.js +228 -0
  334. package/dist/chunk-STQDKMS5.cjs +288 -0
  335. package/dist/{chunk-HG6YS4I7.js → chunk-SXLRWYQQ.js} +71 -24
  336. package/dist/{chunk-SW2HMNCA.cjs → chunk-T4RR6NVU.cjs} +17 -9
  337. package/dist/{chunk-6SPMHY54.js → chunk-TSL3F2K3.js} +20 -2
  338. package/dist/{chunk-BNY2NVTL.cjs → chunk-TYZ6L7E6.cjs} +48 -28
  339. package/dist/{chunk-MOZ52KN6.js → chunk-U3SG2YT2.js} +39 -12
  340. package/dist/{chunk-POU3W5J3.cjs → chunk-U5YYOOLC.cjs} +13 -6
  341. package/dist/chunk-U7VEPMCX.cjs +221 -0
  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-2FOC3D6X.js → chunk-WMZV7PNO.js} +19 -7
  350. package/dist/{chunk-MYW7LNB2.cjs → chunk-WROF2PVG.cjs} +40 -21
  351. package/dist/chunk-XZXY3XCL.cjs +105 -0
  352. package/dist/chunk-Y22PTPA7.js +800 -0
  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 +12 -10
  366. package/dist/index.d.ts +12 -10
  367. package/dist/index.js +56 -53
  368. package/dist/styles.css +1697 -692
  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 +20 -4
  386. package/docs/llms/form.md +5 -2
  387. package/docs/llms/icon.md +25 -1
  388. package/docs/llms/image.md +22 -1
  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 +29 -2
  397. package/docs/llms/sidebar.md +24 -0
  398. package/docs/llms/slider.md +5 -2
  399. package/docs/llms/splitter.md +5 -2
  400. package/docs/llms/switch.md +13 -0
  401. package/docs/llms/table.md +7 -8
  402. package/docs/llms/theme.md +83 -28
  403. package/docs/llms/themepanel.md +1 -0
  404. package/docs/llms/titlebar.md +1 -0
  405. package/docs/llms/tooltip.md +7 -2
  406. package/docs/llms/typography.md +27 -3
  407. package/docs/llms/windowcontrols.md +11 -3
  408. package/docs/llms.md +2 -2
  409. package/package.json +212 -2
  410. package/dist/Avatar-TNPOHVY5.css +0 -40
  411. package/dist/Badge-DPGLV3D3.css +0 -22
  412. package/dist/Card-W3ATFUJW.css +0 -77
  413. package/dist/Cascader-ANEQUPMI.css +0 -150
  414. package/dist/Checkbox-EDNPZRIP.css +0 -42
  415. package/dist/List-LSMU5QAC.css +0 -26
  416. package/dist/Pagination-YSZSNFHG.css +0 -68
  417. package/dist/Progress-CZNXCYGW.css +0 -80
  418. package/dist/Slider-UM2IZZBH.css +0 -127
  419. package/dist/Tag-G2XWAL7A.css +0 -42
  420. package/dist/chunk-262ED6WQ.cjs +0 -88
  421. package/dist/chunk-4HJBF4GY.js +0 -218
  422. package/dist/chunk-4TTRHEGM.cjs +0 -217
  423. package/dist/chunk-5A6KSYWA.cjs +0 -67
  424. package/dist/chunk-5MOYKVB7.js +0 -192
  425. package/dist/chunk-7IO3EOHN.cjs +0 -200
  426. package/dist/chunk-7QXP6DXC.cjs +0 -129
  427. package/dist/chunk-AAPZLBHQ.js +0 -165
  428. package/dist/chunk-ARUPS7JH.js +0 -66
  429. package/dist/chunk-ATUPFAPZ.cjs +0 -76
  430. package/dist/chunk-CFZVWY5N.js +0 -178
  431. package/dist/chunk-DSLYWX4O.js +0 -25
  432. package/dist/chunk-EQ4FPOQQ.js +0 -253
  433. package/dist/chunk-FQJY4D3T.cjs +0 -47
  434. package/dist/chunk-GNV6W4BN.js +0 -495
  435. package/dist/chunk-HBO7ZDEQ.js +0 -29
  436. package/dist/chunk-I777JTTG.js +0 -150
  437. package/dist/chunk-IOAOG5L7.js +0 -191
  438. package/dist/chunk-IOUAZYK2.cjs +0 -116
  439. package/dist/chunk-IZHH6CVY.js +0 -123
  440. package/dist/chunk-JFL2WMJZ.js +0 -106
  441. package/dist/chunk-KMPFESEV.js +0 -41
  442. package/dist/chunk-KYV75JPQ.js +0 -147
  443. package/dist/chunk-N7OQNSII.cjs +0 -145
  444. package/dist/chunk-P64NPZBG.js +0 -113
  445. package/dist/chunk-PKNRTFNE.cjs +0 -526
  446. package/dist/chunk-PU7VXDAS.js +0 -64
  447. package/dist/chunk-RFI5R42I.cjs +0 -138
  448. package/dist/chunk-RMFSX7DO.cjs +0 -281
  449. package/dist/chunk-RR2BKV65.js +0 -39
  450. package/dist/chunk-RSSOX4RQ.cjs +0 -240
  451. package/dist/chunk-RZEFKXL3.cjs +0 -104
  452. package/dist/chunk-S7IHWY24.js +0 -81
  453. package/dist/chunk-SOQ56ZI2.cjs +0 -49
  454. package/dist/chunk-TBNPJPYG.cjs +0 -61
  455. package/dist/chunk-TJECLLN4.js +0 -344
  456. package/dist/chunk-ULUD3FED.cjs +0 -138
  457. package/dist/chunk-VA2I7ZAL.cjs +0 -190
  458. package/dist/chunk-VS3I5OKA.cjs +0 -214
  459. package/dist/chunk-WMGMIE2D.js +0 -113
  460. package/dist/chunk-X7XP6GEI.cjs +0 -63
  461. package/dist/chunk-XCXUGHDF.js +0 -91
  462. package/dist/chunk-YAFDVNXT.js +0 -27
  463. package/dist/chunk-ZD3L4V3H.js +0 -54
  464. package/dist/chunk-ZTCRD2FL.js +0 -45
@@ -1,11 +1,11 @@
1
1
  # Theme 主题
2
2
 
3
- > ThemeProvider + useTheme,覆盖深浅色、自定义模式、强调色、密度、圆角、字体、阴影强度。
3
+ > ThemeProvider + 组件 theme,支持页面、区域、组件和 Portal 使用不同色板,并可按组件类型定向覆盖。
4
4
 
5
5
  ## 导入
6
6
 
7
7
  ```tsx
8
- import { ThemeProvider, useTheme, applyTheme } from "@fangxinyan/lumina";
8
+ import { ThemeProvider, useTheme, applyTheme, LUMINA_THEME_PRESETS, cloneLuminaThemePreset, pickLuminaThemePresets, Select } from "@fangxinyan/lumina";
9
9
  ```
10
10
 
11
11
  ## 示例
@@ -35,6 +35,56 @@ function Root() {
35
35
  }
36
36
  ```
37
37
 
38
+ ### 页面与组件多色组合
39
+
40
+ baseColor 会生成完整拟态色板;普通组件的 theme 默认只作用于自身,Portal 浮层会复制同一色板。
41
+
42
+ ```tsx
43
+ <ThemeProvider target="scope" baseColor="#e7f0fa">
44
+ <Card theme={{
45
+ baseColor: "#f5dfd4",
46
+ colors: { fg: "#4d342b" },
47
+ }}>
48
+ 暖色卡片
49
+ </Card>
50
+
51
+ <Select
52
+ theme={{ baseColor: "#eee3f8", accent: "violet" }}
53
+ options={options}
54
+ />
55
+
56
+ <AimOutlined
57
+ theme={{ colors: { fg: "#7357c8" } }}
58
+ size={28}
59
+ />
60
+ </ThemeProvider>
61
+ ```
62
+
63
+ ### 容器内定向修改组件
64
+
65
+ components 按公共组件名称匹配后代实例,可分别覆盖派生色板、精确颜色、组件 token 与静态插槽样式。
66
+
67
+ ```tsx
68
+ <Surface
69
+ baseColor="#f0ece6"
70
+ components={{
71
+ Button: {
72
+ baseColor: "#dceaf8",
73
+ accent: "violet",
74
+ tokens: { hoverBackground: "#cbdff2" },
75
+ styles: { root: { borderRadius: 999 } },
76
+ },
77
+ Tag: {
78
+ colors: { fgMuted: "#70483c" },
79
+ },
80
+ }}
81
+ >
82
+ <Button>只影响容器内 Button</Button>
83
+ <Tag>只影响容器内 Tag</Tag>
84
+ <Input placeholder="未配置,继续继承容器色板" />
85
+ </Surface>
86
+ ```
87
+
38
88
  ### useTheme Hook
39
89
 
40
90
  子组件随时读/改主题。下面这块被独立的 ThemeProvider 包裹,不影响全局。
@@ -96,33 +146,13 @@ t.setTokens({
96
146
 
97
147
  ### 自定义主题模式
98
148
 
99
- mode 可以指向 themes 中的命名 preset。base 决定 light/dark 基底,tokens 决定完整视觉。
149
+ mode 可以指向 themes 中的命名 preset;可直接复用公开的 Lumina 内置预设。
100
150
 
101
151
  ```tsx
152
+ import { LUMINA_THEME_PRESETS, ThemeProvider } from "lumina";
153
+
102
154
  const themes = {
103
- graphite: {
104
- label: "Graphite",
105
- description: "深色",
106
- base: "dark",
107
- accent: {
108
- accent: "oklch(72% 0.13 190)",
109
- ink: "oklch(85% 0.1 190)",
110
- soft: "oklch(31% 0.05 190)",
111
- glow: "oklch(72% 0.13 190 / 0.18)",
112
- },
113
- intensity: 4,
114
- radius: 18,
115
- tokens: {
116
- bg: "#181b22",
117
- "bg-raised": "#20242d",
118
- "bg-sunken": "#11141a",
119
- fg: "#edf1f7",
120
- "shadow-dark": "rgba(0,0,0,.58)",
121
- "shadow-light": "rgba(128,146,166,.07)",
122
- "shadow-scale": "1",
123
- "shadow-float-scale": "1",
124
- },
125
- },
155
+ graphite: LUMINA_THEME_PRESETS.graphite,
126
156
  };
127
157
 
128
158
  <ThemeProvider mode="graphite" themes={themes}>
@@ -132,7 +162,7 @@ const themes = {
132
162
 
133
163
  ### 作用域嵌套
134
164
 
135
- target="scope" 只作用于子树,可以层层嵌套。
165
+ target="scope" 只作用于子树,可以层层嵌套;Select 等 Portal 浮层也会继承所属作用域主题。
136
166
 
137
167
  ```tsx
138
168
  <ThemeProvider accent="sky">
@@ -143,6 +173,7 @@ target="scope" 只作用于子树,可以层层嵌套。
143
173
 
144
174
  <ThemeProvider target="scope" accent="mint" as="div">
145
175
  <InnerCallout />
176
+ <Select options={[{ label: "Mint 浮层", value: "mint" }]} />
146
177
  </ThemeProvider>
147
178
  </ThemeProvider>
148
179
  </ThemeProvider>
@@ -187,17 +218,24 @@ applyTheme(document.documentElement, {
187
218
  | --- | --- | --- | --- |
188
219
  | mode | `ThemeMode` | `"light"` | 深浅色模式或自定义模式名 |
189
220
  | colorScheme | `"light" | "dark"` | `"light"` | 自定义模式使用的 light/dark 基底 |
221
+ | baseColor | `string` | — | 表面基色;自动生成背景、文字、边框、阴影与默认强调色 |
190
222
  | accent | `AccentKey | CustomAccentInput` | `"sky"` | 强调色,预设或自定义 |
223
+ | colors | `ThemeColorOverrides` | — | 对派生色板做最终精确覆盖;未提供字段继续继承 |
224
+ | components | `ComponentThemeOverrides` | — | 按公共组件名定向覆盖容器内实例 |
191
225
  | density | `"compact" | "comfortable" | "spacious"` | `"comfortable"` | 密度 |
192
226
  | intensity | `number` | `5` | 阴影强度;ThemePanel 默认调节范围 0-20 |
193
227
  | radius | `number` | `20` | 圆角基准 px |
194
228
  | font | `FontConfig` | `"sf"` | 字体预设或 CSS 栈 |
195
229
  | tokens | `Record<string, string>` | — | 任意 CSS 变量覆写;推荐用语义阴影 token 和 shadow-scale(0.2-3) / shadow-float-scale(0.2-4) 控制阴影系统 |
196
230
  | themes | `Record<string, ThemePreset>` | — | 命名自定义模式 preset |
231
+ | LUMINA_THEME_PRESETS | `Record<BuiltInLuminaThemePresetKey, ThemePreset>` | — | 可复用的 light/dark/porcelain/graphite/ember/assistant 内置预设 |
232
+ | cloneLuminaThemePreset / pickLuminaThemePresets | `function` | — | 克隆单个或挑选多个内置主题,避免修改共享预设 |
197
233
  | ThemePreset.label / description | `string` | — | 可选展示元信息;ThemePanel 会读取它作为卡片标题和说明 |
198
234
  | target | `"root" | "scope"` | `"root"` | 应用到根还是局部 |
199
235
  | as | `keyof JSX.IntrinsicElements` | `"div"` | scope 模式的元素标签 |
200
- | storageKey | `string` | — | localStorage 持久化 key,包含当前主题状态与自定义 themes |
236
+ | asChild | `boolean` | `false` | scope 模式把主题直接合并到唯一子元素,不增加包装节点 |
237
+ | enabled | `boolean` | `true` | 关闭当前主题层但保留 Provider 与 DOM 拓扑,适合平滑切换局部主题 |
238
+ | storageKey | `string` | — | 带版本号的 localStorage 持久化 key;同源多窗口会自动同步当前主题与自定义 themes |
201
239
  | onChange | `(value: ThemeValue) => void` | — | 主题值变更回调 |
202
240
 
203
241
 
@@ -208,6 +246,7 @@ applyTheme(document.documentElement, {
208
246
  | mode | `ThemeMode` | — | 请求的模式(保留 system) |
209
247
  | resolvedMode | `ResolvedThemeMode` | — | 解析后的具体模式;自定义模式保留名称 |
210
248
  | colorScheme | `"light" | "dark"` | — | 当前 light/dark 基底 |
249
+ | baseColor / colors / components | `-` | — | 当前基色、精确颜色与组件类型覆盖 |
211
250
  | accent | `AccentKey | "custom"` | — | 预设 key 或 "custom" |
212
251
  | accentPalette | `AccentPalette` | — | 当前完整调色板 |
213
252
  | density / intensity / radius / font / tokens | `-` | — | 当前各维度状态 |
@@ -215,10 +254,26 @@ applyTheme(document.documentElement, {
215
254
  | setMode(m) | `(m: ThemeMode) => void` | — | 切换模式 |
216
255
  | toggleMode() | `() => void` | — | light ⇄ dark 切换 |
217
256
  | setAccent(a) | `(a: AccentKey | CustomAccentInput) => void` | — | 切换强调色 |
257
+ | setBaseColor / setColors / setComponents | `-` | — | 更新多色主题与组件类型覆盖 |
218
258
  | setDensity / setIntensity / setRadius / setFont / setTokens / setThemes | `-` | — | 对应字段的 setter |
219
259
  | update(cfg) | `(cfg: Partial<ThemeConfig>) => void` | — | 浅合并多字段 |
220
260
  | reset() | `() => void` | — | 重置到初始 props |
221
261
 
222
262
 
263
+ **组件 theme 与定向覆盖**
264
+
265
+ | Prop | 类型 | 默认 | 说明 |
266
+ | --- | --- | --- | --- |
267
+ | theme | `ComponentTheme` | — | 所有公共 UI 组件共享;强调色 key 或其他颜色字符串可直接简写 |
268
+ | theme.scope | `"self" | "subtree"` | `"self"` | self 只改当前组件;subtree 同时向业务后代传递完整色板 |
269
+ | baseColor | `string` | — | 生成背景、文字、边框、阴影和默认强调色 |
270
+ | colorScheme / accent / intensity | `-` | — | 控制深浅基底、强调色和拟态强度 |
271
+ | colors | `ThemeColorOverrides` | — | 精确覆盖 bg / fg / border / shadow / accent / semantic 等颜色槽 |
272
+ | tokens | `ThemeTokens` | — | 短键会写入组件前缀变量;以 -- 开头的键作为高级原始变量逃生口 |
273
+ | components | `ComponentThemeOverrides` | — | 继续定向配置当前组件内部或 subtree 后代的组件类型 |
274
+ | styles.root | `CSSProperties` | — | 所有组件都支持真实视觉根节点;调用方 style 仍保持最高优先级 |
275
+ | styles.popup / overlay / body | `CSSProperties` | — | 浮层、遮罩和正文等组件专用静态插槽;定位与用户 popupStyle 不会被覆盖 |
276
+
277
+
223
278
  ---
224
279
  [← 回到索引](../llms.md)
@@ -31,6 +31,7 @@ const [themes, setThemes] = React.useState<ThemePresets>({});
31
31
 
32
32
  <ThemeProvider themes={themes} storageKey="app:theme">
33
33
  <ThemePanel
34
+ sections={["presets", "advanced"]}
34
35
  onCreateTheme={(payload) => {
35
36
  setThemes((current) => ({
36
37
  ...current,
@@ -33,6 +33,7 @@ import { TitleBar } from "@fangxinyan/lumina";
33
33
  | actions | `ReactNode` | — | 右侧操作区 |
34
34
  | center | `ReactNode` | — | 中部内容 |
35
35
  | draggable | `boolean` | `true` | 整条作为拖拽区 |
36
+ | maximized | `boolean` | `false` | 切换最大化/还原图标与可访问名称 |
36
37
  | onMinimize / onMaximize / onClose | `() => void` | — | 窗口控件回调 |
37
38
 
38
39
 
@@ -12,6 +12,8 @@ import { Tooltip } from "@fangxinyan/lumina";
12
12
 
13
13
  ### 基础
14
14
 
15
+ 聚焦触发器同样会显示提示;Esc 只关闭当前最上层提示,不影响下面的 Modal / Drawer。
16
+
15
17
  ```tsx
16
18
  <Tooltip content="新建文档"><Button icon="plus" /></Tooltip>
17
19
  ```
@@ -43,9 +45,12 @@ title 与 content 等价,也支持 bottomLeft 等细分位置。
43
45
  | placement | `"top" | "bottom" | "left" | "right" | ...` | `"top"` | 位置,支持 bottomLeft 等细分方向 |
44
46
  | delay | `number` | `250` | 悬浮延时 (ms) |
45
47
  | closeDelay | `number` | `300` | 离开触发器或提示浮层后的关闭延时 (ms) |
46
- | disabled | `boolean` | `false` | 禁用提示 |
47
- | open / visible | `boolean` | — | 受控显示状态 |
48
+ | disabled | `boolean` | `false` | 禁用提示;即使受控状态为 true 也不渲染浮层 |
49
+ | open / visible | `boolean` | — | 受控显示状态(open 优先) |
50
+ | defaultOpen | `boolean` | `false` | 非受控初始显示状态 |
51
+ | onOpenChange / onVisibleChange | `(open: boolean) => void` | — | 显示状态变化回调;重复状态不会重复触发 |
48
52
  | overlayClassName / popupClassName | `string` | — | 浮层 className |
53
+ | className | `string` | — | 触发器包装节点 className |
49
54
 
50
55
 
51
56
  ---
@@ -49,18 +49,19 @@ import { Typography, Title, Text, Paragraph, Link } from "@fangxinyan/lumina";
49
49
 
50
50
  ### 可编辑
51
51
 
52
- 点击图标或文本进入编辑状态,Enter 保存、Esc 取消。
52
+ 点击图标或文本进入编辑状态,Enter 或确认按钮保存,Esc 或失焦取消。
53
53
 
54
54
  ```tsx
55
- <Typography.Text editable={{ onChange, triggerType: ["icon", "text"] }}>{value}</Typography.Text>
55
+ <Typography.Text editable={{ onChange, triggerType: ["icon", "text"], enterIcon: <Icon name="check" /> }}>{value}</Typography.Text>
56
56
  ```
57
57
 
58
58
  ### 省略截断
59
59
 
60
- 多行截断支持「展开」,悬停时可查看完整内容。
60
+ 多行截断支持「展开」,悬停时可查看完整内容;suffix 会始终保留在裁切区域外。
61
61
 
62
62
  ```tsx
63
63
  <Typography.Paragraph ellipsis={{ rows: 2, expandable: true, tooltip: true }}>{long}</Typography.Paragraph>
64
+ <Typography.Text ellipsis={{ suffix: "— Lumina" }}>{long}</Typography.Text>
64
65
  ```
65
66
 
66
67
  ### 链接
@@ -88,6 +89,18 @@ import { Typography, Title, Text, Paragraph, Link } from "@fangxinyan/lumina";
88
89
  | copyable | `boolean | CopyableConfig` | — | 显示复制按钮 |
89
90
  | editable | `boolean | EditableConfig` | — | 显示编辑按钮 |
90
91
  | ellipsis | `boolean | EllipsisConfig` | — | 截断省略 |
92
+ | id / data-* / aria-* / 原生事件 | `native attrs` | — | 透传到实际标题、文本、段落或链接根节点 |
93
+
94
+
95
+ **EditableConfig**
96
+
97
+ | Prop | 类型 | 默认 | 说明 |
98
+ | --- | --- | --- | --- |
99
+ | editing | `boolean` | — | 受控编辑状态 |
100
+ | text | `string` | — | 编辑器受控文本来源 |
101
+ | triggerType | `Array<"icon" | "text">` | `["icon"]` | 进入编辑态的触发方式 |
102
+ | enterIcon | `ReactNode` | `check icon` | 单行编辑器的确认按钮内容;传 null 隐藏 |
103
+ | onChange / onCancel / onStart / onEnd | `function` | — | 编辑生命周期回调 |
91
104
 
92
105
 
93
106
  **EllipsisConfig**
@@ -98,6 +111,17 @@ import { Typography, Title, Text, Paragraph, Link } from "@fangxinyan/lumina";
98
111
  | expandable | `boolean` | `false` | 显示展开入口 |
99
112
  | tooltip | `boolean | ReactNode` | `false` | 悬停显示完整内容 |
100
113
  | symbol | `ReactNode` | `"展开"` | 自定义展开文案 |
114
+ | suffix | `string` | — | 追加到截断文本末尾的后缀 |
115
+
116
+
117
+ **CopyableConfig**
118
+
119
+ | Prop | 类型 | 默认 | 说明 |
120
+ | --- | --- | --- | --- |
121
+ | text | `string` | — | 覆盖复制文本 |
122
+ | format | `"text/plain" | "text/html"` | `"text/plain"` | 剪贴板文本格式 |
123
+ | onCopy | `(event) => void` | — | 浏览器确认复制成功后触发 |
124
+ | onCopyError | `(error) => void` | — | 复制失败时触发 |
101
125
 
102
126
 
103
127
  **Typography.Link**
@@ -10,11 +10,18 @@ import { WindowControls } from "@fangxinyan/lumina";
10
10
 
11
11
  ## 示例
12
12
 
13
- ### 两种平台
13
+ ### 平台与回调
14
+
15
+ 点击窗口按钮可观察回调;最大化按钮会在最大化与还原图标间切换。
14
16
 
15
17
  ```tsx
16
- <WindowControls platform="mac" />
17
- <WindowControls platform="windows" />
18
+ <WindowControls
19
+ platform="windows"
20
+ maximized={maximized}
21
+ onMinimize={handleMinimize}
22
+ onMaximize={handleMaximize}
23
+ onClose={handleClose}
24
+ />
18
25
  ```
19
26
 
20
27
  ## API
@@ -25,6 +32,7 @@ import { WindowControls } from "@fangxinyan/lumina";
25
32
  | --- | --- | --- | --- |
26
33
  | platform | `"mac" | "windows"` | `"mac"` | 平台 |
27
34
  | onMinimize / onMaximize / onClose | `() => void` | — | 回调 |
35
+ | maximized | `boolean` | `false` | 显示还原状态 |
28
36
 
29
37
 
30
38
  ---
package/docs/llms.md CHANGED
@@ -3,7 +3,7 @@
3
3
  > 拟态风格的 React 18 组件库,目标是 Electron 桌面应用。**写给 AI 编程助手**的按需文档 —— 每个组件单独一个 `.md`,避免一次性读取全部。示例源自 playground 的 demo,可直接复制运行。
4
4
 
5
5
  - **包名**: `@fangxinyan/lumina`
6
- - **版本**: `0.6.17`
6
+ - **版本**: `0.7.0`
7
7
  - **React 最低版本**: 18
8
8
  - **环境**: 带打包器的 React 工程(Vite / Next.js / Webpack / Remix / Electron + Vite 等)
9
9
  - **零运行时依赖**: 只依赖 `react` / `react-dom` (peer deps)
@@ -42,7 +42,7 @@
42
42
  ### 起步
43
43
 
44
44
  - [Lumina](./llms/intro.md) — 为 Electron 应用定制的拟态风格 React 组件库。
45
- - [Theme 主题](./llms/theme.md) — ThemeProvider + useTheme,覆盖深浅色、自定义模式、强调色、密度、圆角、字体、阴影强度。
45
+ - [Theme 主题](./llms/theme.md) — ThemeProvider + 组件 theme,支持页面、区域、组件和 Portal 使用不同色板,并可按组件类型定向覆盖。
46
46
  - [Surface 背景面](./llms/surface.md) — 主题感知的背景承载容器,用于给特殊色调内容提供正确的拟态 token 语境。
47
47
  - [ThemePanel 主题面板](./llms/themepanel.md) — 可复用的主题快速调节面板,直接驱动最近的 ThemeProvider。
48
48
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fangxinyan/lumina",
3
- "version": "0.6.17",
3
+ "version": "0.7.0",
4
4
  "description": "Lumina — Neumorphic component library for Electron & React apps",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -122,6 +122,216 @@
122
122
  "import": "./dist/Image.js",
123
123
  "require": "./dist/Image.cjs"
124
124
  },
125
+ "./AimOutlined": {
126
+ "types": "./dist/Icon.d.ts",
127
+ "import": "./dist/Icon.js",
128
+ "require": "./dist/Icon.cjs"
129
+ },
130
+ "./AppstoreOutlined": {
131
+ "types": "./dist/Icon.d.ts",
132
+ "import": "./dist/Icon.js",
133
+ "require": "./dist/Icon.cjs"
134
+ },
135
+ "./BarChartOutlined": {
136
+ "types": "./dist/Icon.d.ts",
137
+ "import": "./dist/Icon.js",
138
+ "require": "./dist/Icon.cjs"
139
+ },
140
+ "./BlockOutlined": {
141
+ "types": "./dist/Icon.d.ts",
142
+ "import": "./dist/Icon.js",
143
+ "require": "./dist/Icon.cjs"
144
+ },
145
+ "./BorderOutlined": {
146
+ "types": "./dist/Icon.d.ts",
147
+ "import": "./dist/Icon.js",
148
+ "require": "./dist/Icon.cjs"
149
+ },
150
+ "./CameraOutlined": {
151
+ "types": "./dist/Icon.d.ts",
152
+ "import": "./dist/Icon.js",
153
+ "require": "./dist/Icon.cjs"
154
+ },
155
+ "./CaretDownOutlined": {
156
+ "types": "./dist/Icon.d.ts",
157
+ "import": "./dist/Icon.js",
158
+ "require": "./dist/Icon.cjs"
159
+ },
160
+ "./CaretUpOutlined": {
161
+ "types": "./dist/Icon.d.ts",
162
+ "import": "./dist/Icon.js",
163
+ "require": "./dist/Icon.cjs"
164
+ },
165
+ "./CheckCircleFilled": {
166
+ "types": "./dist/Icon.d.ts",
167
+ "import": "./dist/Icon.js",
168
+ "require": "./dist/Icon.cjs"
169
+ },
170
+ "./CheckCircleOutlined": {
171
+ "types": "./dist/Icon.d.ts",
172
+ "import": "./dist/Icon.js",
173
+ "require": "./dist/Icon.cjs"
174
+ },
175
+ "./CheckOutlined": {
176
+ "types": "./dist/Icon.d.ts",
177
+ "import": "./dist/Icon.js",
178
+ "require": "./dist/Icon.cjs"
179
+ },
180
+ "./ClockCircleFilled": {
181
+ "types": "./dist/Icon.d.ts",
182
+ "import": "./dist/Icon.js",
183
+ "require": "./dist/Icon.cjs"
184
+ },
185
+ "./CloseCircleOutlined": {
186
+ "types": "./dist/Icon.d.ts",
187
+ "import": "./dist/Icon.js",
188
+ "require": "./dist/Icon.cjs"
189
+ },
190
+ "./CloseOutlined": {
191
+ "types": "./dist/Icon.d.ts",
192
+ "import": "./dist/Icon.js",
193
+ "require": "./dist/Icon.cjs"
194
+ },
195
+ "./CopyOutlined": {
196
+ "types": "./dist/Icon.d.ts",
197
+ "import": "./dist/Icon.js",
198
+ "require": "./dist/Icon.cjs"
199
+ },
200
+ "./DashboardOutlined": {
201
+ "types": "./dist/Icon.d.ts",
202
+ "import": "./dist/Icon.js",
203
+ "require": "./dist/Icon.cjs"
204
+ },
205
+ "./DeleteOutlined": {
206
+ "types": "./dist/Icon.d.ts",
207
+ "import": "./dist/Icon.js",
208
+ "require": "./dist/Icon.cjs"
209
+ },
210
+ "./DownOutlined": {
211
+ "types": "./dist/Icon.d.ts",
212
+ "import": "./dist/Icon.js",
213
+ "require": "./dist/Icon.cjs"
214
+ },
215
+ "./EnvironmentOutlined": {
216
+ "types": "./dist/Icon.d.ts",
217
+ "import": "./dist/Icon.js",
218
+ "require": "./dist/Icon.cjs"
219
+ },
220
+ "./ExclamationCircleOutlined": {
221
+ "types": "./dist/Icon.d.ts",
222
+ "import": "./dist/Icon.js",
223
+ "require": "./dist/Icon.cjs"
224
+ },
225
+ "./FolderOpenOutlined": {
226
+ "types": "./dist/Icon.d.ts",
227
+ "import": "./dist/Icon.js",
228
+ "require": "./dist/Icon.cjs"
229
+ },
230
+ "./LeftOutlined": {
231
+ "types": "./dist/Icon.d.ts",
232
+ "import": "./dist/Icon.js",
233
+ "require": "./dist/Icon.cjs"
234
+ },
235
+ "./LoadingOutlined": {
236
+ "types": "./dist/Icon.d.ts",
237
+ "import": "./dist/Icon.js",
238
+ "require": "./dist/Icon.cjs"
239
+ },
240
+ "./MinusCircleOutlined": {
241
+ "types": "./dist/Icon.d.ts",
242
+ "import": "./dist/Icon.js",
243
+ "require": "./dist/Icon.cjs"
244
+ },
245
+ "./MinusOutlined": {
246
+ "types": "./dist/Icon.d.ts",
247
+ "import": "./dist/Icon.js",
248
+ "require": "./dist/Icon.cjs"
249
+ },
250
+ "./PictureOutlined": {
251
+ "types": "./dist/Icon.d.ts",
252
+ "import": "./dist/Icon.js",
253
+ "require": "./dist/Icon.cjs"
254
+ },
255
+ "./PlusOutlined": {
256
+ "types": "./dist/Icon.d.ts",
257
+ "import": "./dist/Icon.js",
258
+ "require": "./dist/Icon.cjs"
259
+ },
260
+ "./QqOutlined": {
261
+ "types": "./dist/Icon.d.ts",
262
+ "import": "./dist/Icon.js",
263
+ "require": "./dist/Icon.cjs"
264
+ },
265
+ "./ReloadOutlined": {
266
+ "types": "./dist/Icon.d.ts",
267
+ "import": "./dist/Icon.js",
268
+ "require": "./dist/Icon.cjs"
269
+ },
270
+ "./RightOutlined": {
271
+ "types": "./dist/Icon.d.ts",
272
+ "import": "./dist/Icon.js",
273
+ "require": "./dist/Icon.cjs"
274
+ },
275
+ "./RobotOutlined": {
276
+ "types": "./dist/Icon.d.ts",
277
+ "import": "./dist/Icon.js",
278
+ "require": "./dist/Icon.cjs"
279
+ },
280
+ "./SearchOutlined": {
281
+ "types": "./dist/Icon.d.ts",
282
+ "import": "./dist/Icon.js",
283
+ "require": "./dist/Icon.cjs"
284
+ },
285
+ "./SettingOutlined": {
286
+ "types": "./dist/Icon.d.ts",
287
+ "import": "./dist/Icon.js",
288
+ "require": "./dist/Icon.cjs"
289
+ },
290
+ "./StarFilled": {
291
+ "types": "./dist/Icon.d.ts",
292
+ "import": "./dist/Icon.js",
293
+ "require": "./dist/Icon.cjs"
294
+ },
295
+ "./StarOutlined": {
296
+ "types": "./dist/Icon.d.ts",
297
+ "import": "./dist/Icon.js",
298
+ "require": "./dist/Icon.cjs"
299
+ },
300
+ "./SwapOutlined": {
301
+ "types": "./dist/Icon.d.ts",
302
+ "import": "./dist/Icon.js",
303
+ "require": "./dist/Icon.cjs"
304
+ },
305
+ "./SwapRightOutlined": {
306
+ "types": "./dist/Icon.d.ts",
307
+ "import": "./dist/Icon.js",
308
+ "require": "./dist/Icon.cjs"
309
+ },
310
+ "./SyncOutlined": {
311
+ "types": "./dist/Icon.d.ts",
312
+ "import": "./dist/Icon.js",
313
+ "require": "./dist/Icon.cjs"
314
+ },
315
+ "./ThunderboltOutlined": {
316
+ "types": "./dist/Icon.d.ts",
317
+ "import": "./dist/Icon.js",
318
+ "require": "./dist/Icon.cjs"
319
+ },
320
+ "./TranslationOutlined": {
321
+ "types": "./dist/Icon.d.ts",
322
+ "import": "./dist/Icon.js",
323
+ "require": "./dist/Icon.cjs"
324
+ },
325
+ "./UnorderedListOutlined": {
326
+ "types": "./dist/Icon.d.ts",
327
+ "import": "./dist/Icon.js",
328
+ "require": "./dist/Icon.cjs"
329
+ },
330
+ "./UserOutlined": {
331
+ "types": "./dist/Icon.d.ts",
332
+ "import": "./dist/Icon.js",
333
+ "require": "./dist/Icon.cjs"
334
+ },
125
335
  "./*": {
126
336
  "types": "./dist/*.d.ts",
127
337
  "import": "./dist/*.js",
@@ -141,7 +351,7 @@
141
351
  "scripts": {
142
352
  "dev": "vite",
143
353
  "build": "vite build",
144
- "build:lib": "tsup",
354
+ "build:lib": "node --max-old-space-size=6144 ./node_modules/tsup/dist/cli-default.js",
145
355
  "preview": "vite preview",
146
356
  "typecheck": "tsc --noEmit",
147
357
  "test:unit": "vitest run --root . --environment jsdom",
@@ -1,40 +0,0 @@
1
- /* ============ Avatar ============ */
2
- .avatar {
3
- --size: 40px;
4
- width: var(--size); height: var(--size);
5
- border-radius: 999px;
6
- background: var(--bg);
7
- box-shadow: var(--neu-shadow-control);
8
- display: grid; place-items: center;
9
- overflow: hidden;
10
- color: var(--accent-ink);
11
- font-weight: 600;
12
- font-size: calc(var(--size) / 2.6);
13
- position: relative;
14
- flex-shrink: 0;
15
- }
16
- .avatar.sm { --size: 28px; }
17
- .avatar.lg { --size: 56px; }
18
- .avatar.xl { --size: 80px; }
19
- .avatar.square { border-radius: var(--r-md); }
20
- .avatar.square.sm { border-radius: var(--r-sm); }
21
- .avatar.square.lg,
22
- .avatar.square.xl { border-radius: var(--r-lg); }
23
- .avatar img { width: 100%; height: 100%; object-fit: cover; }
24
- .avatar-status {
25
- position: absolute;
26
- bottom: 0; right: 0;
27
- width: 25%; height: 25%;
28
- min-width: 8px; min-height: 8px;
29
- border-radius: 999px;
30
- background: var(--success);
31
- box-shadow: 0 0 0 2px var(--bg);
32
- }
33
- .avatar-status.online { background: var(--success); }
34
- .avatar-status.busy { background: var(--danger); }
35
- .avatar-status.away { background: var(--warning); }
36
- .avatar-status.offline { background: var(--fg-subtle); }
37
-
38
- .avatar-group { display: inline-flex; }
39
- .avatar-group .avatar { border: 3px solid var(--bg); box-sizing: content-box; }
40
- .avatar-group .avatar + .avatar { margin-left: -12px; }
@@ -1,22 +0,0 @@
1
- /* ============ Badge ============ */
2
- .badge {
3
- display: inline-flex;
4
- align-items: center; justify-content: center;
5
- min-width: 18px; height: 18px;
6
- padding: 0 6px;
7
- border-radius: 999px;
8
- font-size: 10px;
9
- font-weight: 700;
10
- background: var(--danger);
11
- color: var(--bg);
12
- box-shadow: 0 1px 4px color-mix(in oklch, var(--shadow-dark) 35%, transparent);
13
- font-variant-numeric: tabular-nums;
14
- }
15
- .badge.dot { min-width: 10px; height: 10px; padding: 0; }
16
- .badge.accent { background: var(--accent); box-shadow: 0 1px 4px var(--accent-glow); }
17
- .badge.info { background: var(--info); box-shadow: 0 1px 4px color-mix(in oklch, var(--info) 35%, transparent); }
18
- .badge.success { background: var(--success); box-shadow: 0 1px 4px color-mix(in oklch, var(--success) 35%, transparent); }
19
- .badge.warning { background: var(--warning); box-shadow: 0 1px 4px color-mix(in oklch, var(--warning) 35%, transparent); }
20
- .badge.neutral { background: var(--fg-muted); box-shadow: 0 1px 4px color-mix(in oklch, var(--shadow-dark) 35%, transparent); }
21
- .badge-wrap { position: relative; display: inline-block; }
22
- .badge-wrap > .badge { position: absolute; top: -4px; right: -4px; }