@fangxinyan/lumina 0.8.0 → 0.9.1

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 (324) hide show
  1. package/dist/Alert.cjs +5 -5
  2. package/dist/Alert.d.cts +1 -1
  3. package/dist/Alert.d.ts +1 -1
  4. package/dist/Alert.js +4 -4
  5. package/dist/AppShell.cjs +8 -8
  6. package/dist/AppShell.d.cts +1 -1
  7. package/dist/AppShell.d.ts +1 -1
  8. package/dist/AppShell.js +4 -4
  9. package/dist/AutoComplete.cjs +7 -7
  10. package/dist/AutoComplete.d.cts +1 -1
  11. package/dist/AutoComplete.d.ts +1 -1
  12. package/dist/AutoComplete.js +6 -6
  13. package/dist/Avatar.cjs +4 -4
  14. package/dist/Avatar.d.cts +1 -1
  15. package/dist/Avatar.d.ts +1 -1
  16. package/dist/Avatar.js +3 -3
  17. package/dist/Badge.cjs +4 -4
  18. package/dist/Badge.d.cts +1 -1
  19. package/dist/Badge.d.ts +1 -1
  20. package/dist/Badge.js +3 -3
  21. package/dist/Button.cjs +6 -6
  22. package/dist/Button.d.cts +1 -1
  23. package/dist/Button.d.ts +1 -1
  24. package/dist/Button.js +4 -4
  25. package/dist/Calendar.cjs +5 -5
  26. package/dist/Calendar.d.cts +1 -1
  27. package/dist/Calendar.d.ts +1 -1
  28. package/dist/Calendar.js +4 -4
  29. package/dist/Card.cjs +7 -7
  30. package/dist/Card.d.cts +1 -1
  31. package/dist/Card.d.ts +1 -1
  32. package/dist/Card.js +6 -6
  33. package/dist/Cascader.cjs +7 -7
  34. package/dist/Cascader.d.cts +1 -1
  35. package/dist/Cascader.d.ts +1 -1
  36. package/dist/Cascader.js +6 -6
  37. package/dist/{Checkbox-IHFML4FV.css → Checkbox-YQ43GFUI.css} +7 -0
  38. package/dist/Checkbox.cjs +5 -5
  39. package/dist/Checkbox.d.cts +3 -1
  40. package/dist/Checkbox.d.ts +3 -1
  41. package/dist/Checkbox.js +4 -4
  42. package/dist/Collapse.cjs +5 -5
  43. package/dist/Collapse.d.cts +1 -1
  44. package/dist/Collapse.d.ts +1 -1
  45. package/dist/Collapse.js +4 -4
  46. package/dist/ColorPicker.cjs +7 -7
  47. package/dist/ColorPicker.d.cts +1 -1
  48. package/dist/ColorPicker.d.ts +1 -1
  49. package/dist/ColorPicker.js +6 -6
  50. package/dist/CommandPalette.cjs +7 -7
  51. package/dist/CommandPalette.d.cts +1 -1
  52. package/dist/CommandPalette.d.ts +1 -1
  53. package/dist/CommandPalette.js +6 -6
  54. package/dist/ContextMenu.cjs +4 -4
  55. package/dist/ContextMenu.d.cts +1 -1
  56. package/dist/ContextMenu.d.ts +1 -1
  57. package/dist/ContextMenu.js +3 -3
  58. package/dist/DatePicker.cjs +9 -9
  59. package/dist/DatePicker.d.cts +1 -1
  60. package/dist/DatePicker.d.ts +1 -1
  61. package/dist/DatePicker.js +8 -8
  62. package/dist/DateTimePicker.cjs +9 -9
  63. package/dist/DateTimePicker.d.cts +1 -1
  64. package/dist/DateTimePicker.d.ts +1 -1
  65. package/dist/DateTimePicker.js +8 -8
  66. package/dist/Divider.cjs +4 -4
  67. package/dist/Divider.d.cts +1 -1
  68. package/dist/Divider.d.ts +1 -1
  69. package/dist/Divider.js +3 -3
  70. package/dist/Drawer.cjs +5 -5
  71. package/dist/Drawer.d.cts +1 -1
  72. package/dist/Drawer.d.ts +1 -1
  73. package/dist/Drawer.js +4 -4
  74. package/dist/Empty.cjs +4 -4
  75. package/dist/Empty.d.cts +1 -1
  76. package/dist/Empty.d.ts +1 -1
  77. package/dist/Empty.js +3 -3
  78. package/dist/Form.cjs +6 -6
  79. package/dist/Form.d.cts +1 -1
  80. package/dist/Form.d.ts +1 -1
  81. package/dist/Form.js +3 -3
  82. package/dist/Icon.cjs +51 -51
  83. package/dist/Icon.d.cts +1 -1
  84. package/dist/Icon.d.ts +1 -1
  85. package/dist/Icon.js +3 -3
  86. package/dist/Image.cjs +9 -9
  87. package/dist/Image.d.cts +1 -1
  88. package/dist/Image.d.ts +1 -1
  89. package/dist/Image.js +5 -5
  90. package/dist/Input.cjs +7 -7
  91. package/dist/Input.d.cts +1 -1
  92. package/dist/Input.d.ts +1 -1
  93. package/dist/Input.js +5 -5
  94. package/dist/InputNumber.cjs +7 -7
  95. package/dist/InputNumber.d.cts +1 -1
  96. package/dist/InputNumber.d.ts +1 -1
  97. package/dist/InputNumber.js +6 -6
  98. package/dist/List.cjs +4 -4
  99. package/dist/List.d.cts +1 -1
  100. package/dist/List.d.ts +1 -1
  101. package/dist/List.js +3 -3
  102. package/dist/Message.cjs +8 -8
  103. package/dist/Message.d.cts +1 -1
  104. package/dist/Message.d.ts +1 -1
  105. package/dist/Message.js +4 -4
  106. package/dist/{Modal-UI2FXNDR.css → Modal-KLLX3Z2M.css} +23 -6
  107. package/dist/Modal.cjs +6 -6
  108. package/dist/Modal.d.cts +1 -1
  109. package/dist/Modal.d.ts +1 -1
  110. package/dist/Modal.js +5 -5
  111. package/dist/Pagination.cjs +9 -9
  112. package/dist/Pagination.d.cts +1 -1
  113. package/dist/Pagination.d.ts +1 -1
  114. package/dist/Pagination.js +8 -8
  115. package/dist/Popover.cjs +4 -4
  116. package/dist/Popover.d.cts +1 -1
  117. package/dist/Popover.d.ts +1 -1
  118. package/dist/Popover.js +3 -3
  119. package/dist/Progress.cjs +4 -4
  120. package/dist/Progress.d.cts +1 -1
  121. package/dist/Progress.d.ts +1 -1
  122. package/dist/Progress.js +3 -3
  123. package/dist/Radio.cjs +5 -5
  124. package/dist/Radio.d.cts +1 -1
  125. package/dist/Radio.d.ts +1 -1
  126. package/dist/Radio.js +3 -3
  127. package/dist/{Select-TU37MAHZ.css → Select-QPBB73KA.css} +34 -5
  128. package/dist/Select.cjs +8 -8
  129. package/dist/Select.d.cts +13 -2
  130. package/dist/Select.d.ts +13 -2
  131. package/dist/Select.js +7 -7
  132. package/dist/Skeleton.cjs +4 -4
  133. package/dist/Skeleton.d.cts +1 -1
  134. package/dist/Skeleton.d.ts +1 -1
  135. package/dist/Skeleton.js +3 -3
  136. package/dist/Slider.cjs +4 -4
  137. package/dist/Slider.d.cts +1 -1
  138. package/dist/Slider.d.ts +1 -1
  139. package/dist/Slider.js +3 -3
  140. package/dist/Spin.cjs +4 -4
  141. package/dist/Spin.d.cts +1 -1
  142. package/dist/Spin.d.ts +1 -1
  143. package/dist/Spin.js +3 -3
  144. package/dist/Splitter.cjs +4 -4
  145. package/dist/Splitter.d.cts +1 -1
  146. package/dist/Splitter.d.ts +1 -1
  147. package/dist/Splitter.js +3 -3
  148. package/dist/StatusBar.cjs +5 -5
  149. package/dist/StatusBar.d.cts +1 -1
  150. package/dist/StatusBar.d.ts +1 -1
  151. package/dist/StatusBar.js +3 -3
  152. package/dist/Surface.cjs +5 -5
  153. package/dist/Surface.d.cts +2 -2
  154. package/dist/Surface.d.ts +2 -2
  155. package/dist/Surface.js +3 -3
  156. package/dist/{Switch-TATU3LPB.css → Switch-3JV3LCPX.css} +3 -0
  157. package/dist/Switch.cjs +4 -4
  158. package/dist/Switch.d.cts +3 -1
  159. package/dist/Switch.d.ts +3 -1
  160. package/dist/Switch.js +3 -3
  161. package/dist/Table.cjs +12 -12
  162. package/dist/Table.d.cts +1 -1
  163. package/dist/Table.d.ts +1 -1
  164. package/dist/Table.js +11 -11
  165. package/dist/TablePro.cjs +13 -13
  166. package/dist/TablePro.d.cts +1 -1
  167. package/dist/TablePro.d.ts +1 -1
  168. package/dist/TablePro.js +12 -12
  169. package/dist/Tabs.cjs +4 -4
  170. package/dist/Tabs.d.cts +1 -1
  171. package/dist/Tabs.d.ts +1 -1
  172. package/dist/Tabs.js +3 -3
  173. package/dist/Tag.cjs +5 -5
  174. package/dist/Tag.d.cts +1 -1
  175. package/dist/Tag.d.ts +1 -1
  176. package/dist/Tag.js +4 -4
  177. package/dist/Textarea.cjs +6 -6
  178. package/dist/Textarea.d.cts +1 -1
  179. package/dist/Textarea.d.ts +1 -1
  180. package/dist/Textarea.js +4 -4
  181. package/dist/{Theme-uQq2B0Yk.d.cts → Theme-BJa0Nb3w.d.cts} +1 -1
  182. package/dist/{Theme-CLedeJ_C.d.ts → Theme-DTtq_WWg.d.ts} +1 -1
  183. package/dist/Theme.cjs +19 -19
  184. package/dist/Theme.d.cts +4 -4
  185. package/dist/Theme.d.ts +4 -4
  186. package/dist/Theme.js +1 -1
  187. package/dist/ThemePanel.cjs +14 -14
  188. package/dist/ThemePanel.d.cts +2 -2
  189. package/dist/ThemePanel.d.ts +2 -2
  190. package/dist/ThemePanel.js +11 -11
  191. package/dist/TimePicker.cjs +8 -8
  192. package/dist/TimePicker.d.cts +1 -1
  193. package/dist/TimePicker.d.ts +1 -1
  194. package/dist/TimePicker.js +7 -7
  195. package/dist/Timeline.cjs +5 -5
  196. package/dist/Timeline.d.cts +1 -1
  197. package/dist/Timeline.d.ts +1 -1
  198. package/dist/Timeline.js +4 -4
  199. package/dist/Tooltip.cjs +4 -4
  200. package/dist/Tooltip.d.cts +1 -1
  201. package/dist/Tooltip.d.ts +1 -1
  202. package/dist/Tooltip.js +3 -3
  203. package/dist/Typography.cjs +9 -9
  204. package/dist/Typography.d.cts +1 -1
  205. package/dist/Typography.d.ts +1 -1
  206. package/dist/Typography.js +4 -4
  207. package/dist/{chunk-LQMOYVQF.js → chunk-2BM65ITV.js} +2 -2
  208. package/dist/{chunk-UQI4R32R.js → chunk-2COQYOVG.js} +4 -4
  209. package/dist/{chunk-63RSKQID.js → chunk-2NECDEAJ.js} +3 -3
  210. package/dist/{chunk-I4YPBAQ5.js → chunk-2NXLVPF4.js} +3 -3
  211. package/dist/{chunk-7QAVPVMW.js → chunk-2V6RQQRI.js} +4 -4
  212. package/dist/{chunk-ZEYK37VW.cjs → chunk-2XDLXAZT.cjs} +6 -6
  213. package/dist/{chunk-TYZ6L7E6.cjs → chunk-33YRXHVK.cjs} +6 -6
  214. package/dist/{chunk-3EMWDDWK.cjs → chunk-3D5RJA7R.cjs} +16 -16
  215. package/dist/{chunk-VX6MZO4K.cjs → chunk-3J7HOTD6.cjs} +6 -6
  216. package/dist/{chunk-ARUN2DMD.js → chunk-427CDZDU.js} +2 -2
  217. package/dist/{chunk-IJDM2U3B.js → chunk-4JANYBXO.js} +2 -2
  218. package/dist/{chunk-ZHVR4YPB.cjs → chunk-4LYJRFD2.cjs} +3 -3
  219. package/dist/{chunk-LG62MPMU.cjs → chunk-4MZW2KBN.cjs} +11 -11
  220. package/dist/{chunk-F7WUCOBP.cjs → chunk-4ZSFMWLF.cjs} +24 -24
  221. package/dist/{chunk-FMUHLIHB.cjs → chunk-53I3PWRH.cjs} +3 -3
  222. package/dist/{chunk-JHM7MN3G.js → chunk-563SQXH7.js} +3 -3
  223. package/dist/{chunk-DRDDQCDD.js → chunk-5HLNFDV4.js} +1 -1
  224. package/dist/{chunk-2HIN5NFM.js → chunk-5VLANZAJ.js} +3 -3
  225. package/dist/{chunk-ALAG4ZUH.js → chunk-6OVWY63D.js} +2 -2
  226. package/dist/{chunk-434Y2JVW.cjs → chunk-6WEXRX7K.cjs} +7 -7
  227. package/dist/{chunk-MCDW3VKZ.cjs → chunk-76CTKBXD.cjs} +3 -3
  228. package/dist/{chunk-VA3JWOAB.cjs → chunk-7IWUBBYX.cjs} +15 -15
  229. package/dist/{chunk-PNKNZREC.cjs → chunk-7KA5D37Z.cjs} +27 -27
  230. package/dist/{chunk-Y2MT6PI6.js → chunk-7NKNQRK6.js} +4 -4
  231. package/dist/{chunk-EAUB6FEN.js → chunk-7PUYEPLK.js} +4 -4
  232. package/dist/{chunk-7VLAHOA7.cjs → chunk-7ZMUCSCJ.cjs} +8 -8
  233. package/dist/{chunk-RPO7657K.js → chunk-A34P5CU7.js} +3 -3
  234. package/dist/{chunk-FKCPSVC4.cjs → chunk-ADPXWCTK.cjs} +9 -9
  235. package/dist/{chunk-QDCPVI3S.cjs → chunk-AE5XWZ24.cjs} +14 -14
  236. package/dist/{chunk-RR7KWH26.cjs → chunk-AEY76EAH.cjs} +3 -3
  237. package/dist/{chunk-DURKCGEM.js → chunk-AL2PYVVP.js} +74 -38
  238. package/dist/{chunk-PIJV2FHO.cjs → chunk-AQN3PD24.cjs} +30 -30
  239. package/dist/{chunk-RMGFRAZ2.cjs → chunk-AR3MT2ZT.cjs} +10 -10
  240. package/dist/{chunk-3F424R5P.js → chunk-AXZNZ2IH.js} +3 -3
  241. package/dist/{chunk-HVPUGYBY.js → chunk-BDPJ2BPN.js} +4 -4
  242. package/dist/{chunk-HQFKXTX6.js → chunk-BOBT7JUB.js} +2 -2
  243. package/dist/{chunk-O6G3F5L4.js → chunk-CFKAKB2B.js} +5 -5
  244. package/dist/{chunk-U5YYOOLC.cjs → chunk-CLJLBFNU.cjs} +4 -4
  245. package/dist/{chunk-HYHBCHFM.cjs → chunk-CNV7R2OZ.cjs} +7 -7
  246. package/dist/{chunk-ULTDRMGN.js → chunk-CPVUDSIY.js} +6 -6
  247. package/dist/{chunk-QDY56GGO.js → chunk-D2N7OXMK.js} +2 -2
  248. package/dist/{chunk-LJVQQEME.js → chunk-DQMG4XPX.js} +6 -6
  249. package/dist/{chunk-STQDKMS5.cjs → chunk-GFGMGJ5A.cjs} +13 -13
  250. package/dist/{chunk-GTFP7HA3.cjs → chunk-GW77XQEF.cjs} +15 -15
  251. package/dist/{chunk-DU2DSERH.js → chunk-HAIWLYLR.js} +3 -3
  252. package/dist/{chunk-VVRXNGYL.cjs → chunk-HJGPUE67.cjs} +9 -9
  253. package/dist/{chunk-WHBKQZU5.cjs → chunk-HMN65CDW.cjs} +6 -6
  254. package/dist/{chunk-EE5KXDRK.cjs → chunk-I4GJZLJU.cjs} +6 -6
  255. package/dist/{chunk-QDMFXRPI.js → chunk-INCTDROH.js} +2 -2
  256. package/dist/{chunk-2BIOTRQC.js → chunk-ISK2RW7F.js} +2 -2
  257. package/dist/{chunk-OLYSSZHP.js → chunk-IU6PLLEL.js} +10 -10
  258. package/dist/{chunk-J5UEQ3ZQ.js → chunk-J7D5CQDK.js} +2 -2
  259. package/dist/{chunk-WMISXERU.js → chunk-JMYUO7V7.js} +7 -7
  260. package/dist/{chunk-SF7BPXDJ.cjs → chunk-K3KHQ77L.cjs} +86 -50
  261. package/dist/{chunk-AURYNA6G.js → chunk-KFCWDFBW.js} +2 -2
  262. package/dist/{chunk-KCDOC3HS.cjs → chunk-KPBZKHCS.cjs} +8 -6
  263. package/dist/{chunk-PQOBBASY.js → chunk-L2NEYHYG.js} +2 -2
  264. package/dist/{chunk-VQEMMJHC.js → chunk-LACXN5CI.js} +2 -2
  265. package/dist/{chunk-T4RR6NVU.cjs → chunk-M3JYP3V4.cjs} +7 -7
  266. package/dist/{chunk-FY73C7JK.js → chunk-MEBAE7DB.js} +4 -4
  267. package/dist/{chunk-5AXNUX3J.js → chunk-MFJHI472.js} +2 -2
  268. package/dist/{chunk-4SKHRPDH.js → chunk-MKVONDTB.js} +6 -6
  269. package/dist/{chunk-JBS353O4.cjs → chunk-MV56FOAD.cjs} +3 -3
  270. package/dist/{chunk-LEDESWNL.js → chunk-O6PRE6MZ.js} +5 -3
  271. package/dist/{chunk-EUTK2ZRJ.cjs → chunk-OBNGHJ3N.cjs} +3 -3
  272. package/dist/{chunk-62VV5COT.js → chunk-OGMI3TO5.js} +3 -3
  273. package/dist/{chunk-YAYSXZZZ.cjs → chunk-PYCAGTO7.cjs} +3 -3
  274. package/dist/{chunk-6DKPJ5LV.cjs → chunk-QI6BJJXM.cjs} +6 -6
  275. package/dist/{chunk-Y22PTPA7.js → chunk-QK3E6FAQ.js} +5 -5
  276. package/dist/{chunk-KATJAJUU.js → chunk-QSLXUNLM.js} +6 -4
  277. package/dist/{chunk-E66PSVBU.cjs → chunk-QTMI4ZA4.cjs} +5 -5
  278. package/dist/{chunk-LDX6Q6RK.cjs → chunk-RA5BULQ3.cjs} +3 -3
  279. package/dist/{chunk-BKW5PXEO.js → chunk-RJCPXAZ3.js} +15 -9
  280. package/dist/{chunk-BIPOXOHP.cjs → chunk-RWM44VCZ.cjs} +9 -9
  281. package/dist/{chunk-JKUXA3U6.cjs → chunk-RXITGNPX.cjs} +5 -5
  282. package/dist/{chunk-YPMQC5HX.js → chunk-RYF5ADJW.js} +3 -3
  283. package/dist/{chunk-MUZQWIMR.cjs → chunk-SOAGRYM3.cjs} +28 -22
  284. package/dist/{chunk-SXLRWYQQ.js → chunk-SXT672KF.js} +5 -5
  285. package/dist/{chunk-U3SG2YT2.js → chunk-TALNKJQ2.js} +3 -3
  286. package/dist/{chunk-3IZZBM56.js → chunk-TNQJA5JF.js} +3 -3
  287. package/dist/{chunk-Q565GDVK.cjs → chunk-TPFY5SKB.cjs} +9 -9
  288. package/dist/{chunk-RERMZNF3.cjs → chunk-TTRU4TLQ.cjs} +3 -3
  289. package/dist/{chunk-UE4HFGJ6.js → chunk-TUXF2G2O.js} +4 -4
  290. package/dist/{chunk-3DKFS44V.js → chunk-TY5LOU3A.js} +3 -3
  291. package/dist/{chunk-6RQJXSWN.js → chunk-U7V2FOIM.js} +3 -3
  292. package/dist/{chunk-HQNDVNTQ.js → chunk-UCE53RYR.js} +5 -5
  293. package/dist/{chunk-WROF2PVG.cjs → chunk-UQF7E32V.cjs} +6 -4
  294. package/dist/{chunk-NRJXZPZR.cjs → chunk-V6BLBIY6.cjs} +17 -17
  295. package/dist/{chunk-2AUXUZ3Z.cjs → chunk-VDVKY2IX.cjs} +4 -4
  296. package/dist/{chunk-YKHIIC7M.js → chunk-VLQ6XIAL.js} +2 -2
  297. package/dist/{chunk-GFKWSDD6.cjs → chunk-VNP5WB6M.cjs} +6 -6
  298. package/dist/{chunk-PJFYIXBX.cjs → chunk-VTN6YLRJ.cjs} +11 -11
  299. package/dist/{chunk-YBGMTQ2V.js → chunk-XFJTJVWD.js} +3 -3
  300. package/dist/{chunk-77HU7JWK.cjs → chunk-XHKSUKKL.cjs} +6 -6
  301. package/dist/{chunk-K5HGHOG7.js → chunk-Y3WFWA52.js} +2 -2
  302. package/dist/{chunk-QNQSNVCU.cjs → chunk-YU4LBDBD.cjs} +6 -6
  303. package/dist/{chunk-QYPA77OI.cjs → chunk-Z6AG7O4B.cjs} +3 -3
  304. package/dist/{chunk-AUO2YYHB.js → chunk-Z7GKR4LL.js} +4 -4
  305. package/dist/{chunk-ZYIE3BH7.cjs → chunk-ZBRFGD3I.cjs} +3 -3
  306. package/dist/{chunk-5CZA33BK.cjs → chunk-ZCAYS4KR.cjs} +8 -8
  307. package/dist/{chunk-Q5HLC56A.cjs → chunk-ZGZLEJKA.cjs} +4 -4
  308. package/dist/{chunk-YUJ7Z6N2.cjs → chunk-ZT7ZWAF2.cjs} +13 -13
  309. package/dist/{componentThemeTypes-Jt4B5aU8.d.ts → componentThemeTypes-C7lS3Hi8.d.cts} +6 -2
  310. package/dist/{componentThemeTypes-Jt4B5aU8.d.cts → componentThemeTypes-C7lS3Hi8.d.ts} +6 -2
  311. package/dist/index.cjs +189 -189
  312. package/dist/index.d.cts +4 -4
  313. package/dist/index.d.ts +4 -4
  314. package/dist/index.js +52 -52
  315. package/dist/styles.css +81 -25
  316. package/dist/{tokens-CEJVVA3G.css → tokens-223RYVVS.css} +14 -14
  317. package/dist/tokens.css +14 -14
  318. package/docs/llms/checkbox.md +22 -5
  319. package/docs/llms/modal.md +24 -2
  320. package/docs/llms/select.md +31 -0
  321. package/docs/llms/switch.md +22 -5
  322. package/docs/llms/theme.md +1 -1
  323. package/docs/llms.md +1 -1
  324. package/package.json +1 -1
package/dist/index.d.cts CHANGED
@@ -6,7 +6,7 @@ export { Switch, SwitchProps } from './Switch.cjs';
6
6
  export { Checkbox, CheckboxProps } from './Checkbox.cjs';
7
7
  export { Radio, RadioGroup, RadioGroupProps, RadioOption, RadioProps } from './Radio.cjs';
8
8
  export { Slider, SliderBaseProps, SliderProps, SliderRangeProps, SliderRangeValue, SliderSingleProps, SliderValue } from './Slider.cjs';
9
- export { MultiSelectProps, Select, SelectFilterOption, SelectItem, SelectMultiChangeHandler, SelectOption, SelectOptionGroup, SelectOptionRenderInfo, SelectProps, SelectSelectedRenderInfo, SelectSingleChangeHandler, SingleSelectProps } from './Select.cjs';
9
+ export { MultiSelectProps, Select, SelectFilterOption, SelectItem, SelectMultiChangeHandler, SelectOption, SelectOptionExtraRenderInfo, SelectOptionGroup, SelectOptionRenderInfo, SelectProps, SelectSelectedRenderInfo, SelectSingleChangeHandler, SingleSelectProps } from './Select.cjs';
10
10
  export { TabItem, Tabs, TabsProps } from './Tabs.cjs';
11
11
  export { Collapse, CollapseItem, CollapseProps } from './Collapse.cjs';
12
12
  export { Card, CardProps } from './Card.cjs';
@@ -45,8 +45,8 @@ export { Cascader, CascaderOption, CascaderOptionRenderInfo, CascaderProps, Casc
45
45
  export { BaseTypographyProps, CopyableConfig, EditableConfig, EllipsisConfig, Link, LinkProps, Paragraph, ParagraphProps, Text, TextProps, Title, TitleLevel, TitleProps, Typography, TypographyProps, TypographyType } from './Typography.cjs';
46
46
  export { ColorPicker, ColorPickerProps, ColorPickerTriggerElement } from './ColorPicker.cjs';
47
47
  export { Drawer, DrawerBodyInset, DrawerProps } from './Drawer.cjs';
48
- export { A as AccentKey, a as AccentPalette, C as ComponentTheme, b as ComponentThemeName, c as ComponentThemeOptions, d as ComponentThemeOverride, e as ComponentThemeOverrides, f as ComponentThemeProps, g as ComponentThemeScope, h as CustomAccentInput, R as ResolvedThemeColors, T as ThemeBaseMode, i as ThemeColorOverrides, j as ThemeSemanticColors, k as ThemeSurfacePalette, l as ThemeTokens } from './componentThemeTypes-Jt4B5aU8.cjs';
49
- export { A as ACCENT_PRESETS, a as ACCENT_PRESETS_DARK, B as BuiltInThemeMode, D as DEFAULT_THEME_COLORS, b as DensityMode, F as FONT_STACKS, c as FontConfig, d as FontKey, R as ResolvedThemeMode, T as ThemeConfig, e as ThemeMode, f as ThemePreset, g as ThemePresets, h as ThemeProvider, i as ThemeProviderConfig, j as ThemeProviderProps, k as ThemeValue, l as applyTheme, m as componentTokensToStyle, n as deriveThemeColors, o as normalizeAccentInput, r as resolveThemeColorScheme, p as resolveThemeColors, q as resolveThemeMode, s as resolveVisualThemeSnapshot, t as themeColorsToStyle, u as themeTokenToKebabCase, v as useTheme, w as useThemeOptional, x as visualThemeToStyle } from './Theme-uQq2B0Yk.cjs';
48
+ export { A as AccentKey, a as AccentPalette, C as ComponentTheme, b as ComponentThemeName, c as ComponentThemeOptions, d as ComponentThemeOverride, e as ComponentThemeOverrides, f as ComponentThemeProps, g as ComponentThemeScope, h as CustomAccentInput, M as ModalThemeSlot, R as ResolvedThemeColors, T as ThemeBaseMode, i as ThemeColorOverrides, j as ThemeSemanticColors, k as ThemeSurfacePalette, l as ThemeTokens } from './componentThemeTypes-C7lS3Hi8.cjs';
49
+ export { A as ACCENT_PRESETS, a as ACCENT_PRESETS_DARK, B as BuiltInThemeMode, D as DEFAULT_THEME_COLORS, b as DensityMode, F as FONT_STACKS, c as FontConfig, d as FontKey, R as ResolvedThemeMode, T as ThemeConfig, e as ThemeMode, f as ThemePreset, g as ThemePresets, h as ThemeProvider, i as ThemeProviderConfig, j as ThemeProviderProps, k as ThemeValue, l as applyTheme, m as componentTokensToStyle, n as deriveThemeColors, o as normalizeAccentInput, r as resolveThemeColorScheme, p as resolveThemeColors, q as resolveThemeMode, s as resolveVisualThemeSnapshot, t as themeColorsToStyle, u as themeTokenToKebabCase, v as useTheme, w as useThemeOptional, x as visualThemeToStyle } from './Theme-BJa0Nb3w.cjs';
50
50
  export { BuiltInLuminaThemePresetKey, LUMINA_THEME_PRESETS, cloneLuminaThemePreset, pickLuminaThemePresets } from './Theme.cjs';
51
51
  export { THEME_PANEL_DEFAULT_PRESET_OPTIONS, THEME_PANEL_DEFAULT_THEME_PRESETS, ThemePanel, ThemePanelCreateThemePayload, ThemePanelCreatedThemeMeta, ThemePanelDeleteThemePayload, ThemePanelModeOption, ThemePanelPresetOption, ThemePanelProps, ThemePanelSection, ThemePanelUpdateThemePayload } from './ThemePanel.cjs';
52
52
  export { Timeline, TimelineItemConfig, TimelineProps } from './Timeline.cjs';
@@ -54,6 +54,6 @@ import 'react/jsx-runtime';
54
54
  import 'react';
55
55
 
56
56
  /** Package version — bumped by release scripts. */
57
- declare const VERSION = "0.8.0";
57
+ declare const VERSION = "0.9.1";
58
58
 
59
59
  export { VERSION };
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@ export { Switch, SwitchProps } from './Switch.js';
6
6
  export { Checkbox, CheckboxProps } from './Checkbox.js';
7
7
  export { Radio, RadioGroup, RadioGroupProps, RadioOption, RadioProps } from './Radio.js';
8
8
  export { Slider, SliderBaseProps, SliderProps, SliderRangeProps, SliderRangeValue, SliderSingleProps, SliderValue } from './Slider.js';
9
- export { MultiSelectProps, Select, SelectFilterOption, SelectItem, SelectMultiChangeHandler, SelectOption, SelectOptionGroup, SelectOptionRenderInfo, SelectProps, SelectSelectedRenderInfo, SelectSingleChangeHandler, SingleSelectProps } from './Select.js';
9
+ export { MultiSelectProps, Select, SelectFilterOption, SelectItem, SelectMultiChangeHandler, SelectOption, SelectOptionExtraRenderInfo, SelectOptionGroup, SelectOptionRenderInfo, SelectProps, SelectSelectedRenderInfo, SelectSingleChangeHandler, SingleSelectProps } from './Select.js';
10
10
  export { TabItem, Tabs, TabsProps } from './Tabs.js';
11
11
  export { Collapse, CollapseItem, CollapseProps } from './Collapse.js';
12
12
  export { Card, CardProps } from './Card.js';
@@ -45,8 +45,8 @@ export { Cascader, CascaderOption, CascaderOptionRenderInfo, CascaderProps, Casc
45
45
  export { BaseTypographyProps, CopyableConfig, EditableConfig, EllipsisConfig, Link, LinkProps, Paragraph, ParagraphProps, Text, TextProps, Title, TitleLevel, TitleProps, Typography, TypographyProps, TypographyType } from './Typography.js';
46
46
  export { ColorPicker, ColorPickerProps, ColorPickerTriggerElement } from './ColorPicker.js';
47
47
  export { Drawer, DrawerBodyInset, DrawerProps } from './Drawer.js';
48
- export { A as AccentKey, a as AccentPalette, C as ComponentTheme, b as ComponentThemeName, c as ComponentThemeOptions, d as ComponentThemeOverride, e as ComponentThemeOverrides, f as ComponentThemeProps, g as ComponentThemeScope, h as CustomAccentInput, R as ResolvedThemeColors, T as ThemeBaseMode, i as ThemeColorOverrides, j as ThemeSemanticColors, k as ThemeSurfacePalette, l as ThemeTokens } from './componentThemeTypes-Jt4B5aU8.js';
49
- export { A as ACCENT_PRESETS, a as ACCENT_PRESETS_DARK, B as BuiltInThemeMode, D as DEFAULT_THEME_COLORS, b as DensityMode, F as FONT_STACKS, c as FontConfig, d as FontKey, R as ResolvedThemeMode, T as ThemeConfig, e as ThemeMode, f as ThemePreset, g as ThemePresets, h as ThemeProvider, i as ThemeProviderConfig, j as ThemeProviderProps, k as ThemeValue, l as applyTheme, m as componentTokensToStyle, n as deriveThemeColors, o as normalizeAccentInput, r as resolveThemeColorScheme, p as resolveThemeColors, q as resolveThemeMode, s as resolveVisualThemeSnapshot, t as themeColorsToStyle, u as themeTokenToKebabCase, v as useTheme, w as useThemeOptional, x as visualThemeToStyle } from './Theme-CLedeJ_C.js';
48
+ export { A as AccentKey, a as AccentPalette, C as ComponentTheme, b as ComponentThemeName, c as ComponentThemeOptions, d as ComponentThemeOverride, e as ComponentThemeOverrides, f as ComponentThemeProps, g as ComponentThemeScope, h as CustomAccentInput, M as ModalThemeSlot, R as ResolvedThemeColors, T as ThemeBaseMode, i as ThemeColorOverrides, j as ThemeSemanticColors, k as ThemeSurfacePalette, l as ThemeTokens } from './componentThemeTypes-C7lS3Hi8.js';
49
+ export { A as ACCENT_PRESETS, a as ACCENT_PRESETS_DARK, B as BuiltInThemeMode, D as DEFAULT_THEME_COLORS, b as DensityMode, F as FONT_STACKS, c as FontConfig, d as FontKey, R as ResolvedThemeMode, T as ThemeConfig, e as ThemeMode, f as ThemePreset, g as ThemePresets, h as ThemeProvider, i as ThemeProviderConfig, j as ThemeProviderProps, k as ThemeValue, l as applyTheme, m as componentTokensToStyle, n as deriveThemeColors, o as normalizeAccentInput, r as resolveThemeColorScheme, p as resolveThemeColors, q as resolveThemeMode, s as resolveVisualThemeSnapshot, t as themeColorsToStyle, u as themeTokenToKebabCase, v as useTheme, w as useThemeOptional, x as visualThemeToStyle } from './Theme-DTtq_WWg.js';
50
50
  export { BuiltInLuminaThemePresetKey, LUMINA_THEME_PRESETS, cloneLuminaThemePreset, pickLuminaThemePresets } from './Theme.js';
51
51
  export { THEME_PANEL_DEFAULT_PRESET_OPTIONS, THEME_PANEL_DEFAULT_THEME_PRESETS, ThemePanel, ThemePanelCreateThemePayload, ThemePanelCreatedThemeMeta, ThemePanelDeleteThemePayload, ThemePanelModeOption, ThemePanelPresetOption, ThemePanelProps, ThemePanelSection, ThemePanelUpdateThemePayload } from './ThemePanel.js';
52
52
  export { Timeline, TimelineItemConfig, TimelineProps } from './Timeline.js';
@@ -54,6 +54,6 @@ import 'react/jsx-runtime';
54
54
  import 'react';
55
55
 
56
56
  /** Package version — bumped by release scripts. */
57
- declare const VERSION = "0.8.0";
57
+ declare const VERSION = "0.9.1";
58
58
 
59
59
  export { VERSION };
package/dist/index.js CHANGED
@@ -1,61 +1,61 @@
1
- export { Timeline } from './chunk-6RQJXSWN.js';
2
- export { Tooltip } from './chunk-U3SG2YT2.js';
3
- export { Link, Paragraph, Text, Title, Typography } from './chunk-UQI4R32R.js';
4
- export { TablePro } from './chunk-63RSKQID.js';
5
- export { Table } from './chunk-WMISXERU.js';
6
- export { Tabs } from './chunk-IJDM2U3B.js';
1
+ export { Timeline } from './chunk-U7V2FOIM.js';
2
+ export { Tooltip } from './chunk-TALNKJQ2.js';
3
+ export { Link, Paragraph, Text, Title, Typography } from './chunk-2COQYOVG.js';
4
+ export { TablePro } from './chunk-2NECDEAJ.js';
5
+ export { Table } from './chunk-JMYUO7V7.js';
6
+ export { Tabs } from './chunk-4JANYBXO.js';
7
7
  import './chunk-EE7IJ3MB.js';
8
- export { THEME_PANEL_DEFAULT_PRESET_OPTIONS, THEME_PANEL_DEFAULT_THEME_PRESETS, ThemePanel } from './chunk-OLYSSZHP.js';
9
- export { TimePicker } from './chunk-SXLRWYQQ.js';
10
- export { Skeleton } from './chunk-5AXNUX3J.js';
11
- export { Slider } from './chunk-K5HGHOG7.js';
12
- export { Splitter } from './chunk-J5UEQ3ZQ.js';
13
- export { StatusBar, StatusBarItem } from './chunk-YKHIIC7M.js';
14
- export { SURFACE_THEME_PRESETS, Surface } from './chunk-DU2DSERH.js';
8
+ export { THEME_PANEL_DEFAULT_PRESET_OPTIONS, THEME_PANEL_DEFAULT_THEME_PRESETS, ThemePanel } from './chunk-IU6PLLEL.js';
9
+ export { TimePicker } from './chunk-SXT672KF.js';
10
+ export { Skeleton } from './chunk-MFJHI472.js';
11
+ export { Slider } from './chunk-Y3WFWA52.js';
12
+ export { Splitter } from './chunk-J7D5CQDK.js';
13
+ export { StatusBar, StatusBarItem } from './chunk-VLQ6XIAL.js';
14
+ export { SURFACE_THEME_PRESETS, Surface } from './chunk-HAIWLYLR.js';
15
15
  export { LUMINA_THEME_PRESETS, cloneLuminaThemePreset, pickLuminaThemePresets } from './chunk-TSL3F2K3.js';
16
- export { Switch } from './chunk-LEDESWNL.js';
17
- export { InputNumber } from './chunk-YPMQC5HX.js';
18
- export { List } from './chunk-VQEMMJHC.js';
19
- export { MessageContainer, ToastContainer, message, toast } from './chunk-7QAVPVMW.js';
20
- export { Modal } from './chunk-BKW5PXEO.js';
21
- export { Pagination } from './chunk-HQNDVNTQ.js';
22
- export { Select } from './chunk-DURKCGEM.js';
23
- export { Tag } from './chunk-62VV5COT.js';
24
- export { Popover } from './chunk-RPO7657K.js';
25
- export { Progress } from './chunk-HQFKXTX6.js';
26
- export { Radio, RadioGroup } from './chunk-QDY56GGO.js';
27
- export { DateTimePicker } from './chunk-4SKHRPDH.js';
28
- export { Divider } from './chunk-2BIOTRQC.js';
29
- export { Drawer } from './chunk-HVPUGYBY.js';
30
- export { Empty } from './chunk-AURYNA6G.js';
31
- export { Form, FormItem, useForm } from './chunk-QDMFXRPI.js';
32
- export { Image, ImageGrid, LayeredImage, SpriteImage } from './chunk-Y22PTPA7.js';
33
- export { Card } from './chunk-Y2MT6PI6.js';
34
- export { Spin } from './chunk-PQOBBASY.js';
35
- export { Cascader } from './chunk-O6G3F5L4.js';
36
- export { Checkbox } from './chunk-KATJAJUU.js';
37
- export { Collapse } from './chunk-YBGMTQ2V.js';
38
- export { ColorPicker } from './chunk-FY73C7JK.js';
39
- export { CommandPalette } from './chunk-EAUB6FEN.js';
40
- export { ContextMenu } from './chunk-3IZZBM56.js';
41
- export { DatePicker } from './chunk-LJVQQEME.js';
16
+ export { Switch } from './chunk-O6PRE6MZ.js';
17
+ export { InputNumber } from './chunk-RYF5ADJW.js';
18
+ export { List } from './chunk-LACXN5CI.js';
19
+ export { MessageContainer, ToastContainer, message, toast } from './chunk-2V6RQQRI.js';
20
+ export { Modal } from './chunk-RJCPXAZ3.js';
21
+ export { Pagination } from './chunk-UCE53RYR.js';
22
+ export { Select } from './chunk-AL2PYVVP.js';
23
+ export { Tag } from './chunk-OGMI3TO5.js';
24
+ export { Popover } from './chunk-A34P5CU7.js';
25
+ export { Progress } from './chunk-BOBT7JUB.js';
26
+ export { Radio, RadioGroup } from './chunk-D2N7OXMK.js';
27
+ export { DateTimePicker } from './chunk-MKVONDTB.js';
28
+ export { Divider } from './chunk-ISK2RW7F.js';
29
+ export { Drawer } from './chunk-BDPJ2BPN.js';
30
+ export { Empty } from './chunk-KFCWDFBW.js';
31
+ export { Form, FormItem, useForm } from './chunk-INCTDROH.js';
32
+ export { Image, ImageGrid, LayeredImage, SpriteImage } from './chunk-QK3E6FAQ.js';
33
+ export { Card } from './chunk-7NKNQRK6.js';
34
+ export { Spin } from './chunk-L2NEYHYG.js';
35
+ export { Cascader } from './chunk-CFKAKB2B.js';
36
+ export { Checkbox } from './chunk-QSLXUNLM.js';
37
+ export { Collapse } from './chunk-XFJTJVWD.js';
38
+ export { ColorPicker } from './chunk-MEBAE7DB.js';
39
+ export { CommandPalette } from './chunk-7PUYEPLK.js';
40
+ export { ContextMenu } from './chunk-TNQJA5JF.js';
41
+ export { DatePicker } from './chunk-DQMG4XPX.js';
42
42
  import './chunk-RC6ULCQP.js';
43
- export { Alert } from './chunk-2HIN5NFM.js';
44
- export { AppShell, Sidebar, TitleBar, WindowControls } from './chunk-I4YPBAQ5.js';
45
- export { AutoComplete } from './chunk-AUO2YYHB.js';
43
+ export { Alert } from './chunk-5VLANZAJ.js';
44
+ export { AppShell, Sidebar, TitleBar, WindowControls } from './chunk-2NXLVPF4.js';
45
+ export { AutoComplete } from './chunk-Z7GKR4LL.js';
46
46
  import './chunk-3QXP2ZNP.js';
47
- export { Input, InputPassword } from './chunk-UE4HFGJ6.js';
48
- export { TextArea, Textarea } from './chunk-3F424R5P.js';
47
+ export { Input, InputPassword } from './chunk-TUXF2G2O.js';
48
+ export { TextArea, Textarea } from './chunk-AXZNZ2IH.js';
49
49
  import './chunk-2A4GYSN4.js';
50
- export { Avatar } from './chunk-ALAG4ZUH.js';
51
- export { Badge } from './chunk-ARUN2DMD.js';
52
- export { Button, IconButton } from './chunk-JHM7MN3G.js';
53
- export { Calendar } from './chunk-3DKFS44V.js';
54
- export { AimOutlined, AppstoreOutlined, BarChartOutlined, BlockOutlined, BorderOutlined, CameraOutlined, CaretDownOutlined, CaretUpOutlined, CheckCircleFilled, CheckCircleOutlined, CheckOutlined, ClockCircleFilled, CloseCircleOutlined, CloseOutlined, CopyOutlined, DashboardOutlined, DeleteOutlined, DownOutlined, EnvironmentOutlined, ExclamationCircleOutlined, FolderOpenOutlined, ICON_NAMES, Icon, LeftOutlined, LoadingOutlined, MinusCircleOutlined, MinusOutlined, NAMED_ICON_MAP, PictureOutlined, PlusOutlined, QqOutlined, ReloadOutlined, RightOutlined, RobotOutlined, SearchOutlined, SettingOutlined, StarFilled, StarOutlined, SwapOutlined, SwapRightOutlined, SyncOutlined, ThunderboltOutlined, TranslationOutlined, UnorderedListOutlined, UserOutlined, isIconName, renderIconSlot, resolveIconName } from './chunk-LQMOYVQF.js';
55
- import './chunk-DRDDQCDD.js';
56
- export { ACCENT_PRESETS, ACCENT_PRESETS_DARK, DEFAULT_THEME_COLORS, FONT_STACKS, ThemeProvider, applyTheme, componentTokensToStyle, deriveThemeColors, normalizeAccentInput, resolveThemeColorScheme, resolveThemeColors, resolveThemeMode, resolveVisualThemeSnapshot, themeColorsToStyle, themeTokenToKebabCase, useTheme, useThemeOptional, visualThemeToStyle } from './chunk-ULTDRMGN.js';
50
+ export { Avatar } from './chunk-6OVWY63D.js';
51
+ export { Badge } from './chunk-427CDZDU.js';
52
+ export { Button, IconButton } from './chunk-563SQXH7.js';
53
+ export { Calendar } from './chunk-TY5LOU3A.js';
54
+ export { AimOutlined, AppstoreOutlined, BarChartOutlined, BlockOutlined, BorderOutlined, CameraOutlined, CaretDownOutlined, CaretUpOutlined, CheckCircleFilled, CheckCircleOutlined, CheckOutlined, ClockCircleFilled, CloseCircleOutlined, CloseOutlined, CopyOutlined, DashboardOutlined, DeleteOutlined, DownOutlined, EnvironmentOutlined, ExclamationCircleOutlined, FolderOpenOutlined, ICON_NAMES, Icon, LeftOutlined, LoadingOutlined, MinusCircleOutlined, MinusOutlined, NAMED_ICON_MAP, PictureOutlined, PlusOutlined, QqOutlined, ReloadOutlined, RightOutlined, RobotOutlined, SearchOutlined, SettingOutlined, StarFilled, StarOutlined, SwapOutlined, SwapRightOutlined, SyncOutlined, ThunderboltOutlined, TranslationOutlined, UnorderedListOutlined, UserOutlined, isIconName, renderIconSlot, resolveIconName } from './chunk-2BM65ITV.js';
55
+ import './chunk-5HLNFDV4.js';
56
+ export { ACCENT_PRESETS, ACCENT_PRESETS_DARK, DEFAULT_THEME_COLORS, FONT_STACKS, ThemeProvider, applyTheme, componentTokensToStyle, deriveThemeColors, normalizeAccentInput, resolveThemeColorScheme, resolveThemeColors, resolveThemeMode, resolveVisualThemeSnapshot, themeColorsToStyle, themeTokenToKebabCase, useTheme, useThemeOptional, visualThemeToStyle } from './chunk-CPVUDSIY.js';
57
57
 
58
58
  // src/index.ts
59
- var VERSION = "0.8.0";
59
+ var VERSION = "0.9.1";
60
60
 
61
61
  export { VERSION };
package/dist/styles.css CHANGED
@@ -24,10 +24,10 @@
24
24
  --shadow-scale: 1;
25
25
  --shadow-float-scale: 1;
26
26
 
27
- --shadow-blur: calc(16px * var(--d) * var(--shadow-scale));
28
- --shadow-offset: calc(6px * var(--d) * var(--shadow-scale));
29
- --shadow-inset-blur: calc(10px * var(--d) * var(--shadow-scale));
30
- --shadow-inset-offset: calc(4px * var(--d) * var(--shadow-scale));
27
+ --shadow-blur: calc(12px * var(--d) * var(--shadow-scale));
28
+ --shadow-offset: calc(5px * var(--d) * var(--shadow-scale));
29
+ --shadow-inset-blur: calc(8px * var(--d) * var(--shadow-scale));
30
+ --shadow-inset-offset: calc(3px * var(--d) * var(--shadow-scale));
31
31
 
32
32
  --neu-shadow-panel:
33
33
  var(--shadow-offset) var(--shadow-offset) var(--shadow-blur) var(--shadow-dark),
@@ -50,8 +50,8 @@
50
50
  inset calc(var(--shadow-inset-offset) * -0.6) calc(var(--shadow-inset-offset) * -0.6) calc(var(--shadow-inset-blur) * 0.6) var(--shadow-light);
51
51
 
52
52
  --neu-shadow-subtle:
53
- 1px 1px 2px var(--shadow-dark),
54
- -1px -1px 2px var(--shadow-light);
53
+ 0.75px 0.75px 1.5px var(--shadow-dark),
54
+ -0.75px -0.75px 1.5px var(--shadow-light);
55
55
 
56
56
  /* Floating-overlay elevation.
57
57
  No top-left highlight — there's no continuous surface beneath an overlay
@@ -151,10 +151,10 @@
151
151
  --mask-bg: color-mix(in oklch, black 18%, transparent);
152
152
  --shadow-dark: rgba(163, 177, 198, 0.55);
153
153
  --shadow-light: rgba(255, 255, 255, 0.95);
154
- --shadow-offset: calc(6px * var(--d) * var(--shadow-scale));
155
- --shadow-blur: calc(16px * var(--d) * var(--shadow-scale));
156
- --shadow-inset-offset: calc(4px * var(--d) * var(--shadow-scale));
157
- --shadow-inset-blur: calc(10px * var(--d) * var(--shadow-scale));
154
+ --shadow-offset: calc(5px * var(--d) * var(--shadow-scale));
155
+ --shadow-blur: calc(12px * var(--d) * var(--shadow-scale));
156
+ --shadow-inset-offset: calc(3px * var(--d) * var(--shadow-scale));
157
+ --shadow-inset-blur: calc(8px * var(--d) * var(--shadow-scale));
158
158
  }
159
159
  /* ---- Dark theme ----
160
160
  深色模式的拟态不能照搬浅色思路:白色高光会变成刺眼的白圈。
@@ -175,10 +175,10 @@
175
175
  --shadow-dark: rgba(0, 0, 0, 0.55);
176
176
  --shadow-light: rgba(130, 145, 180, 0.06);
177
177
  /* 同时收紧阴影尺寸,深色模式下拟态更内敛 */
178
- --shadow-offset: calc(4px * var(--d) * var(--shadow-scale));
179
- --shadow-blur: calc(10px * var(--d) * var(--shadow-scale));
180
- --shadow-inset-offset: calc(3px * var(--d) * var(--shadow-scale));
181
- --shadow-inset-blur: calc(7px * var(--d) * var(--shadow-scale));
178
+ --shadow-offset: calc(3px * var(--d) * var(--shadow-scale));
179
+ --shadow-blur: calc(8px * var(--d) * var(--shadow-scale));
180
+ --shadow-inset-offset: calc(2px * var(--d) * var(--shadow-scale));
181
+ --shadow-inset-blur: calc(5px * var(--d) * var(--shadow-scale));
182
182
  --accent-soft: oklch(35% 0.06 235);
183
183
  --accent-ink: oklch(82% 0.09 235);
184
184
  --accent-glow: oklch(68% 0.14 235 / 0.18);
@@ -681,6 +681,9 @@ svg[data-lumina-icon-color],
681
681
  flex-shrink: 0;
682
682
  transition: all var(--dur) var(--ease);
683
683
  }
684
+ .switch.invalid .switch-track {
685
+ box-shadow: var(--lmn-switch-neu-shadow-inset, var(--neu-shadow-inset)), 0 0 0 2px color-mix(in oklch, var(--lmn-switch-danger, var(--danger)) 30%, transparent);
686
+ }
684
687
  .switch.sm { --w: 36px; --h: 20px; }
685
688
  .switch.lg { --w: 58px; --h: 32px; }
686
689
  /* When checkedChildren / unCheckedChildren are present, widen the track to fit. */
@@ -781,6 +784,9 @@ svg[data-lumina-icon-color],
781
784
  color: var(--lmn-checkbox-bg, var(--bg));
782
785
  transition: all var(--dur) var(--ease);
783
786
  }
787
+ .checkbox.invalid .checkbox-box {
788
+ box-shadow: var(--lmn-checkbox-neu-shadow-inset, var(--neu-shadow-inset)), 0 0 0 2px color-mix(in oklch, var(--lmn-checkbox-danger, var(--danger)) 30%, transparent);
789
+ }
784
790
  .checkbox-box svg { opacity: 0; transform: scale(0.6); transition: all var(--dur) var(--ease); }
785
791
  .checkbox.checked .checkbox-box {
786
792
  background: var(--lmn-checkbox-accent, var(--accent));
@@ -791,6 +797,10 @@ svg[data-lumina-icon-color],
791
797
  background: var(--lmn-checkbox-accent, var(--accent));
792
798
  box-shadow: var(--lmn-checkbox-neu-shadow-control, var(--neu-shadow-control)), 0 2px 8px var(--lmn-checkbox-accent-glow, var(--accent-glow));
793
799
  }
800
+ .checkbox.checked.invalid .checkbox-box,
801
+ .checkbox.indeterminate.invalid .checkbox-box {
802
+ box-shadow: var(--lmn-checkbox-neu-shadow-control, var(--neu-shadow-control)), 0 2px 8px var(--lmn-checkbox-accent-glow, var(--accent-glow)), 0 0 0 2px color-mix(in oklch, var(--lmn-checkbox-danger, var(--danger)) 30%, transparent);
803
+ }
794
804
  .checkbox.indeterminate .checkbox-box::after {
795
805
  content: "";
796
806
  width: 10px; height: 2px;
@@ -1795,6 +1805,30 @@ button.collapse-chev {
1795
1805
  min-width: 0;
1796
1806
  text-align: left;
1797
1807
  }
1808
+ .menu-item-row {
1809
+ display: flex;
1810
+ align-items: center;
1811
+ min-width: 0;
1812
+ border-radius: var(--r-sm);
1813
+ transition: all var(--dur-fast) var(--ease);
1814
+ }
1815
+ .menu-item-row > .menu-item {
1816
+ flex: 1;
1817
+ min-width: 0;
1818
+ width: auto;
1819
+ }
1820
+ .menu-item-extra {
1821
+ display: inline-flex;
1822
+ align-items: center;
1823
+ justify-content: center;
1824
+ flex-shrink: 0;
1825
+ padding: 0 8px 0 2px;
1826
+ color: var(--lmn-select-fg-subtle, var(--fg-subtle));
1827
+ }
1828
+ .menu-item-extra:focus-within,
1829
+ .menu-item-extra:hover {
1830
+ color: var(--lmn-select-accent-ink, var(--accent-ink));
1831
+ }
1798
1832
  .menu-item-label {
1799
1833
  white-space: nowrap;
1800
1834
  overflow: hidden;
@@ -1808,14 +1842,18 @@ button.collapse-chev {
1808
1842
  text-overflow: ellipsis;
1809
1843
  }
1810
1844
  .menu-item.active .menu-item-desc { color: color-mix(in oklch, var(--lmn-select-accent-ink, var(--accent-ink)) 70%, var(--lmn-select-fg-subtle, var(--fg-subtle))); }
1811
- /* Keyboard / hover highlight — soft raised pill */
1812
- .menu-item.highlight:not([disabled]) {
1845
+ /* Keyboard / hover highlight — inset styling stays inside the scrollport edge. */
1846
+ .menu-item-row.highlight:not(.disabled) {
1813
1847
  background: var(--lmn-select-bg, var(--bg));
1814
- box-shadow: var(--lmn-select-neu-shadow-control, var(--neu-shadow-control));
1848
+ box-shadow: var(--lmn-select-neu-shadow-inset, var(--neu-shadow-inset));
1849
+ }
1850
+ .menu-item-row.highlight:not(.disabled) .menu-item {
1815
1851
  color: var(--lmn-select-accent-ink, var(--accent-ink));
1816
1852
  }
1817
- .menu-item[disabled] {
1853
+ .menu-item-row.disabled {
1818
1854
  opacity: 0.45;
1855
+ }
1856
+ .menu-item-row.disabled .menu-item {
1819
1857
  cursor: not-allowed;
1820
1858
  }
1821
1859
  .menu {
@@ -1850,7 +1888,8 @@ button.collapse-chev {
1850
1888
  width: 100%;
1851
1889
  text-align: left;
1852
1890
  }
1853
- .menu-item:hover { background: var(--lmn-select-bg, var(--bg)); box-shadow: var(--lmn-select-neu-shadow-subtle, var(--neu-shadow-subtle)); color: var(--lmn-select-accent-ink, var(--accent-ink)); }
1891
+ .menu-item-row:hover:not(.disabled) { background: var(--lmn-select-bg, var(--bg)); box-shadow: var(--lmn-select-neu-shadow-inset, var(--neu-shadow-inset)); }
1892
+ .menu-item-row:hover:not(.disabled) .menu-item { color: var(--lmn-select-accent-ink, var(--accent-ink)); }
1854
1893
  .menu-item.active { color: var(--lmn-select-accent-ink, var(--accent-ink)); font-weight: 500; }
1855
1894
  .menu-item .tick { margin-left: auto; color: var(--lmn-select-accent, var(--accent)); opacity: 0; }
1856
1895
  .menu-item.active .tick { opacity: 1; }
@@ -1958,6 +1997,8 @@ button.collapse-chev {
1958
1997
  }
1959
1998
  .modal-head {
1960
1999
  display: flex;
2000
+ flex: 0 0 auto;
2001
+ min-width: 0;
1961
2002
  align-items: flex-start;
1962
2003
  justify-content: space-between;
1963
2004
  gap: var(--gap-3);
@@ -1972,26 +2013,41 @@ button.collapse-chev {
1972
2013
  .modal-body {
1973
2014
  min-width: 0;
1974
2015
  min-height: 0;
1975
- margin-inline: calc(var(--gap-6) * -1);
2016
+ margin-inline: calc(var(--overlay-shadow-safe-area) * -1);
1976
2017
  padding: var(--overlay-shadow-safe-area);
1977
2018
  color: var(--lmn-modal-fg-muted, var(--fg-muted));
1978
2019
  font-size: 13px;
1979
2020
  line-height: 1.6;
1980
- flex: 1;
2021
+ flex: 1 1 auto;
2022
+ overflow-x: hidden;
1981
2023
  overflow-y: auto;
1982
2024
  }
1983
2025
  .modal-body:first-child {
1984
- margin-top: calc(var(--gap-6) * -1);
2026
+ margin-top: calc(var(--overlay-shadow-safe-area) * -1);
1985
2027
  }
1986
- .modal-body:last-child {
1987
- margin-bottom: calc(var(--gap-6) * -1);
2028
+ .modal-body.default-overflow > * {
2029
+ min-width: 0;
2030
+ max-width: 100%;
2031
+ flex-shrink: 0;
1988
2032
  }
1989
2033
  .modal-body.inset-none {
2034
+ margin-inline: calc(var(--gap-6) * -1);
1990
2035
  padding: 0;
1991
2036
  }
2037
+ .modal-body.inset-none:first-child {
2038
+ margin-top: calc(var(--gap-6) * -1);
2039
+ }
2040
+ .modal-body.inset-none:last-child {
2041
+ margin-bottom: calc(var(--gap-6) * -1);
2042
+ }
1992
2043
  .modal-foot {
1993
2044
  display: flex;
1994
- gap: 10px;
2045
+ flex: 0 0 auto;
2046
+ min-width: 0;
2047
+ min-height: var(--lmn-modal-footer-min-height, var(--ctrl-h));
2048
+ margin-top: var(--lmn-modal-footer-gap, var(--gap-4));
2049
+ align-items: center;
2050
+ gap: var(--lmn-modal-footer-action-gap, var(--gap-3));
1995
2051
  justify-content: flex-end;
1996
2052
  }
1997
2053
  .modal-close {
@@ -24,10 +24,10 @@
24
24
  --shadow-scale: 1;
25
25
  --shadow-float-scale: 1;
26
26
 
27
- --shadow-blur: calc(16px * var(--d) * var(--shadow-scale));
28
- --shadow-offset: calc(6px * var(--d) * var(--shadow-scale));
29
- --shadow-inset-blur: calc(10px * var(--d) * var(--shadow-scale));
30
- --shadow-inset-offset: calc(4px * var(--d) * var(--shadow-scale));
27
+ --shadow-blur: calc(12px * var(--d) * var(--shadow-scale));
28
+ --shadow-offset: calc(5px * var(--d) * var(--shadow-scale));
29
+ --shadow-inset-blur: calc(8px * var(--d) * var(--shadow-scale));
30
+ --shadow-inset-offset: calc(3px * var(--d) * var(--shadow-scale));
31
31
 
32
32
  --neu-shadow-panel:
33
33
  var(--shadow-offset) var(--shadow-offset) var(--shadow-blur) var(--shadow-dark),
@@ -50,8 +50,8 @@
50
50
  inset calc(var(--shadow-inset-offset) * -0.6) calc(var(--shadow-inset-offset) * -0.6) calc(var(--shadow-inset-blur) * 0.6) var(--shadow-light);
51
51
 
52
52
  --neu-shadow-subtle:
53
- 1px 1px 2px var(--shadow-dark),
54
- -1px -1px 2px var(--shadow-light);
53
+ 0.75px 0.75px 1.5px var(--shadow-dark),
54
+ -0.75px -0.75px 1.5px var(--shadow-light);
55
55
 
56
56
  /* Floating-overlay elevation.
57
57
  No top-left highlight — there's no continuous surface beneath an overlay
@@ -153,10 +153,10 @@
153
153
  --mask-bg: color-mix(in oklch, black 18%, transparent);
154
154
  --shadow-dark: rgba(163, 177, 198, 0.55);
155
155
  --shadow-light: rgba(255, 255, 255, 0.95);
156
- --shadow-offset: calc(6px * var(--d) * var(--shadow-scale));
157
- --shadow-blur: calc(16px * var(--d) * var(--shadow-scale));
158
- --shadow-inset-offset: calc(4px * var(--d) * var(--shadow-scale));
159
- --shadow-inset-blur: calc(10px * var(--d) * var(--shadow-scale));
156
+ --shadow-offset: calc(5px * var(--d) * var(--shadow-scale));
157
+ --shadow-blur: calc(12px * var(--d) * var(--shadow-scale));
158
+ --shadow-inset-offset: calc(3px * var(--d) * var(--shadow-scale));
159
+ --shadow-inset-blur: calc(8px * var(--d) * var(--shadow-scale));
160
160
  }
161
161
 
162
162
  /* ---- Dark theme ----
@@ -178,10 +178,10 @@
178
178
  --shadow-dark: rgba(0, 0, 0, 0.55);
179
179
  --shadow-light: rgba(130, 145, 180, 0.06);
180
180
  /* 同时收紧阴影尺寸,深色模式下拟态更内敛 */
181
- --shadow-offset: calc(4px * var(--d) * var(--shadow-scale));
182
- --shadow-blur: calc(10px * var(--d) * var(--shadow-scale));
183
- --shadow-inset-offset: calc(3px * var(--d) * var(--shadow-scale));
184
- --shadow-inset-blur: calc(7px * var(--d) * var(--shadow-scale));
181
+ --shadow-offset: calc(3px * var(--d) * var(--shadow-scale));
182
+ --shadow-blur: calc(8px * var(--d) * var(--shadow-scale));
183
+ --shadow-inset-offset: calc(2px * var(--d) * var(--shadow-scale));
184
+ --shadow-inset-blur: calc(5px * var(--d) * var(--shadow-scale));
185
185
  --accent-soft: oklch(35% 0.06 235);
186
186
  --accent-ink: oklch(82% 0.09 235);
187
187
  --accent-glow: oklch(68% 0.14 235 / 0.18);
package/dist/tokens.css CHANGED
@@ -24,10 +24,10 @@
24
24
  --shadow-scale: 1;
25
25
  --shadow-float-scale: 1;
26
26
 
27
- --shadow-blur: calc(16px * var(--d) * var(--shadow-scale));
28
- --shadow-offset: calc(6px * var(--d) * var(--shadow-scale));
29
- --shadow-inset-blur: calc(10px * var(--d) * var(--shadow-scale));
30
- --shadow-inset-offset: calc(4px * var(--d) * var(--shadow-scale));
27
+ --shadow-blur: calc(12px * var(--d) * var(--shadow-scale));
28
+ --shadow-offset: calc(5px * var(--d) * var(--shadow-scale));
29
+ --shadow-inset-blur: calc(8px * var(--d) * var(--shadow-scale));
30
+ --shadow-inset-offset: calc(3px * var(--d) * var(--shadow-scale));
31
31
 
32
32
  --neu-shadow-panel:
33
33
  var(--shadow-offset) var(--shadow-offset) var(--shadow-blur) var(--shadow-dark),
@@ -50,8 +50,8 @@
50
50
  inset calc(var(--shadow-inset-offset) * -0.6) calc(var(--shadow-inset-offset) * -0.6) calc(var(--shadow-inset-blur) * 0.6) var(--shadow-light);
51
51
 
52
52
  --neu-shadow-subtle:
53
- 1px 1px 2px var(--shadow-dark),
54
- -1px -1px 2px var(--shadow-light);
53
+ 0.75px 0.75px 1.5px var(--shadow-dark),
54
+ -0.75px -0.75px 1.5px var(--shadow-light);
55
55
 
56
56
  /* Floating-overlay elevation.
57
57
  No top-left highlight — there's no continuous surface beneath an overlay
@@ -153,10 +153,10 @@
153
153
  --mask-bg: color-mix(in oklch, black 18%, transparent);
154
154
  --shadow-dark: rgba(163, 177, 198, 0.55);
155
155
  --shadow-light: rgba(255, 255, 255, 0.95);
156
- --shadow-offset: calc(6px * var(--d) * var(--shadow-scale));
157
- --shadow-blur: calc(16px * var(--d) * var(--shadow-scale));
158
- --shadow-inset-offset: calc(4px * var(--d) * var(--shadow-scale));
159
- --shadow-inset-blur: calc(10px * var(--d) * var(--shadow-scale));
156
+ --shadow-offset: calc(5px * var(--d) * var(--shadow-scale));
157
+ --shadow-blur: calc(12px * var(--d) * var(--shadow-scale));
158
+ --shadow-inset-offset: calc(3px * var(--d) * var(--shadow-scale));
159
+ --shadow-inset-blur: calc(8px * var(--d) * var(--shadow-scale));
160
160
  }
161
161
 
162
162
  /* ---- Dark theme ----
@@ -178,10 +178,10 @@
178
178
  --shadow-dark: rgba(0, 0, 0, 0.55);
179
179
  --shadow-light: rgba(130, 145, 180, 0.06);
180
180
  /* 同时收紧阴影尺寸,深色模式下拟态更内敛 */
181
- --shadow-offset: calc(4px * var(--d) * var(--shadow-scale));
182
- --shadow-blur: calc(10px * var(--d) * var(--shadow-scale));
183
- --shadow-inset-offset: calc(3px * var(--d) * var(--shadow-scale));
184
- --shadow-inset-blur: calc(7px * var(--d) * var(--shadow-scale));
181
+ --shadow-offset: calc(3px * var(--d) * var(--shadow-scale));
182
+ --shadow-blur: calc(8px * var(--d) * var(--shadow-scale));
183
+ --shadow-inset-offset: calc(2px * var(--d) * var(--shadow-scale));
184
+ --shadow-inset-blur: calc(5px * var(--d) * var(--shadow-scale));
185
185
  --accent-soft: oklch(35% 0.06 235);
186
186
  --accent-ink: oklch(82% 0.09 235);
187
187
  --accent-glow: oklch(68% 0.14 235 / 0.18);
@@ -16,15 +16,31 @@ import { Checkbox } from "@fangxinyan/lumina";
16
16
  <Checkbox checked={v} onChange={setV} label="同意协议" />
17
17
  ```
18
18
 
19
- ### 原生表单
19
+ ### Lumina 表单校验
20
20
 
21
- name / value / required 会落到真实 checkbox,可直接参与浏览器表单提交与约束校验。
21
+ 通过 Form.Item 与 message 提供一致的组件反馈,不再触发浏览器原生 required 气泡。name / value 仍会透传到真实 checkbox。
22
22
 
23
23
  ```tsx
24
- <form onSubmit={(event) => event.preventDefault()}>
25
- <Checkbox name="agreement" value="accepted" required label="同意条款" />
24
+ <Form
25
+ layout="inline"
26
+ onFinish={() => message.success({ key: "checkbox-validation", content: "条款已确认" })}
27
+ onFinishFailed={() => message.warning({ key: "checkbox-validation", content: "请先同意条款" })}
28
+ >
29
+ <Form.Item
30
+ name="agreement"
31
+ valuePropName="checked"
32
+ rules={[{
33
+ required: true,
34
+ message: "请同意条款",
35
+ validator: (_rule, checked) => checked
36
+ ? Promise.resolve()
37
+ : Promise.reject(new Error("请同意条款")),
38
+ }]}
39
+ >
40
+ <Checkbox name="agreement" value="accepted" label="同意条款" />
41
+ </Form.Item>
26
42
  <Button type="submit">验证提交</Button>
27
- </form>
43
+ </Form>
28
44
  ```
29
45
 
30
46
  ### 全选/半选
@@ -47,6 +63,7 @@ indeterminate 用来表示部分选中。
47
63
  | label | `ReactNode` | — | 右侧文案 |
48
64
  | name / value | `string` | — | 原生表单字段名与选中时提交的值 |
49
65
  | required / form | `boolean / string` | — | 原生必填约束与关联 form id |
66
+ | invalid | `boolean` | `false` | 错误态,可由 Form.Item 自动注入 |
50
67
  | disabled | `boolean` | `false` | 禁用 |
51
68
 
52
69
 
@@ -104,6 +104,28 @@ closable={false} 隐藏右上角 ×,closeIcon 可自定义。
104
104
  </Modal>
105
105
  ```
106
106
 
107
+ ### 长内容与独立 footer
108
+
109
+ 默认正文只纵向滚动并保留底部安全区;直接子控件不会被纵向压缩。footer 独立于滚动区,bodyOverflow="hidden" 仍可交给内层容器滚动。
110
+
111
+ ```tsx
112
+ <Modal
113
+ footer={null}
114
+ bodyStyle={{ maxHeight: 360, display: "flex", flexDirection: "column" }}
115
+ >
116
+ <Input placeholder="固定高度的搜索框" />
117
+ <LongList />
118
+ </Modal>
119
+
120
+ <Modal bodyStyle={{ maxHeight: 360 }}>
121
+ <LongForm />
122
+ </Modal>
123
+
124
+ <Modal bodyOverflow="hidden">
125
+ <InnerScrollableLayout />
126
+ </Modal>
127
+ ```
128
+
107
129
  ### 嵌套浮层与 Esc 顺序
108
130
 
109
131
  子 Select 即使 Portal 到对话框之外,也会保持在 Modal 上方并参与同一焦点范围;连续按 Esc 会先关 Select,再关 Modal。
@@ -125,14 +147,14 @@ closable={false} 隐藏右上角 ×,closeIcon 可自定义。
125
147
  | onOk | `() => void` | — | 默认 OK 按钮点击 |
126
148
  | onCancel | `() => void` | — | 默认 Cancel 按钮 / Esc / 关闭 / 遮罩触发,缺省则用 onClose |
127
149
  | title / description | `ReactNode` | — | 标题/说明 |
128
- | footer | `ReactNode` | — | 自定义底部(null 去除) |
150
+ | footer | `ReactNode` | — | 独立于正文滚动区的底部区域;自定义内容,null 去除 |
129
151
  | okText / cancelText | `ReactNode` | `"确定" / "取消"` | 默认按钮文案 |
130
152
  | okButtonProps / cancelButtonProps | `Partial<ButtonProps>` | — | 透传给默认按钮 |
131
153
  | confirmLoading | `boolean` | `false` | OK 按钮显示 spinner 并禁用 |
132
154
  | bodyClassName | `string` | — | 正文容器 className |
133
155
  | bodyStyle | `CSSProperties` | — | 正文容器内联样式 |
134
156
  | bodyProps | `HTMLAttributes<HTMLDivElement>` | — | 透传给正文容器的 DOM props |
135
- | bodyOverflow | `CSSProperties['overflow']` | — | 正文容器 overflow 快捷控制 |
157
+ | bodyOverflow | `CSSProperties['overflow']` | — | 正文容器 overflow 快捷控制;hidden 可让复杂内层布局接管滚动 |
136
158
  | bodyInset | `"safe" | "none"` | `"safe"` | 正文边缘留白;safe 自动保护拟态阴影,none 用于贴边内容 |
137
159
  | closable | `boolean` | `true` | 显示右上角 × |
138
160
  | closeIcon | `ReactNode` | — | 自定义关闭图标 |
@@ -87,6 +87,26 @@ optionRender 承载多行菜单内容;selectedRender 提供适合固定高度
87
87
  />
88
88
  ```
89
89
 
90
+ ### 置顶分组与额外操作
91
+
92
+ 分组设置 pinned 后会稳定提升到菜单顶部;optionExtraRender 提供不会触发选中的独立尾部区域。收藏仅是业务侧示例。
93
+
94
+ ```tsx
95
+ const groups = [
96
+ { label: "其他服务", options: otherOptions },
97
+ { label: "已收藏", pinned: true, options: favoriteOptions },
98
+ ];
99
+
100
+ <Select
101
+ value={service}
102
+ onChange={setService}
103
+ options={groups}
104
+ optionExtraRender={(option) => (
105
+ <IconButton icon={isFavorite(option) ? "starFilled" : "star"} />
106
+ )}
107
+ />
108
+ ```
109
+
90
110
  ### 分组
91
111
 
92
112
  options 接受 { label, options } 表示分组。
@@ -140,6 +160,7 @@ loading 时显示 spinner,emptyContent 自定义空态。
140
160
  | loading | `boolean` | `false` | 加载态 |
141
161
  | emptyContent | `ReactNode` | — | 空态文案 |
142
162
  | optionRender | `(option, info) => ReactNode` | — | 自定义菜单内完整选项内容,并获得 selected / active / index 状态 |
163
+ | optionExtraRender | `(option, info) => ReactNode` | — | 自定义选项尾部的独立内容或操作,不触发选中;info 含 disabled / groupPinned |
143
164
  | selectedRender | `(option, info) => ReactNode` | — | 自定义触发器中的紧凑已选内容;单选和多选标签均支持 |
144
165
  | listHeight | `number` | `260` | 菜单选项滚动区域最大高度 |
145
166
  | popupStyle | `CSSProperties` | — | Portal 菜单内联样式,可覆盖宽度或高度 |
@@ -158,8 +179,18 @@ loading 时显示 spinner,emptyContent 自定义空态。
158
179
  | ariaLabel | `string` | — | 复杂选项或 optionRender 的独立可访问名称 |
159
180
  | icon | `IconName | ReactNode` | — | 前置图标,可传内置图标名或自定义节点 |
160
181
  | description | `ReactNode` | — | 次要描述 |
182
+ | extra | `ReactNode` | — | 选项尾部的静态独立内容或操作;optionExtraRender 存在时由其覆盖 |
161
183
  | disabled | `boolean` | `false` | 禁用项 |
162
184
 
163
185
 
186
+ **SelectOptionGroup**
187
+
188
+ | Prop | 类型 | 默认 | 说明 |
189
+ | --- | --- | --- | --- |
190
+ | label \* | `ReactNode` | — | 分组标题 |
191
+ | options \* | `SelectOption<T>[]` | — | 分组内选项 |
192
+ | pinned | `boolean` | `false` | 稳定提升到菜单顶部,其他项目保持原始顺序 |
193
+
194
+
164
195
  ---
165
196
  [← 回到索引](../llms.md)