@fangxinyan/lumina 0.7.0 → 0.9.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 (236) hide show
  1. package/dist/Alert.cjs +5 -5
  2. package/dist/Alert.js +4 -4
  3. package/dist/AppShell.cjs +8 -8
  4. package/dist/AppShell.js +4 -4
  5. package/dist/AutoComplete.cjs +7 -7
  6. package/dist/AutoComplete.js +6 -6
  7. package/dist/Avatar.cjs +4 -4
  8. package/dist/Avatar.js +3 -3
  9. package/dist/Badge.cjs +4 -4
  10. package/dist/Badge.js +3 -3
  11. package/dist/Button.cjs +6 -6
  12. package/dist/Button.js +4 -4
  13. package/dist/Calendar.cjs +5 -5
  14. package/dist/Calendar.js +4 -4
  15. package/dist/Card.cjs +7 -7
  16. package/dist/Card.js +6 -6
  17. package/dist/Cascader.cjs +7 -7
  18. package/dist/Cascader.js +6 -6
  19. package/dist/{Checkbox-IHFML4FV.css → Checkbox-YQ43GFUI.css} +7 -0
  20. package/dist/Checkbox.cjs +5 -5
  21. package/dist/Checkbox.d.cts +2 -0
  22. package/dist/Checkbox.d.ts +2 -0
  23. package/dist/Checkbox.js +4 -4
  24. package/dist/Collapse.cjs +5 -5
  25. package/dist/Collapse.js +4 -4
  26. package/dist/ColorPicker.cjs +7 -7
  27. package/dist/ColorPicker.js +6 -6
  28. package/dist/CommandPalette.cjs +7 -7
  29. package/dist/CommandPalette.js +6 -6
  30. package/dist/ContextMenu.cjs +4 -4
  31. package/dist/ContextMenu.js +3 -3
  32. package/dist/DatePicker.cjs +9 -9
  33. package/dist/DatePicker.js +8 -8
  34. package/dist/DateTimePicker.cjs +9 -9
  35. package/dist/DateTimePicker.js +8 -8
  36. package/dist/Divider.cjs +4 -4
  37. package/dist/Divider.js +3 -3
  38. package/dist/Drawer.cjs +5 -5
  39. package/dist/Drawer.js +4 -4
  40. package/dist/Empty.cjs +4 -4
  41. package/dist/Empty.js +3 -3
  42. package/dist/Form.cjs +6 -6
  43. package/dist/Form.js +3 -3
  44. package/dist/Icon.cjs +51 -51
  45. package/dist/Icon.js +3 -3
  46. package/dist/Image.cjs +9 -9
  47. package/dist/Image.js +5 -5
  48. package/dist/Input.cjs +7 -7
  49. package/dist/Input.js +5 -5
  50. package/dist/InputNumber.cjs +7 -7
  51. package/dist/InputNumber.js +6 -6
  52. package/dist/List.cjs +4 -4
  53. package/dist/List.js +3 -3
  54. package/dist/Message.cjs +8 -8
  55. package/dist/Message.js +4 -4
  56. package/dist/Modal.cjs +6 -6
  57. package/dist/Modal.js +5 -5
  58. package/dist/Pagination.cjs +9 -9
  59. package/dist/Pagination.js +8 -8
  60. package/dist/Popover.cjs +4 -4
  61. package/dist/Popover.js +3 -3
  62. package/dist/Progress.cjs +4 -4
  63. package/dist/Progress.js +3 -3
  64. package/dist/Radio.cjs +5 -5
  65. package/dist/Radio.js +3 -3
  66. package/dist/{Select-TU37MAHZ.css → Select-QPBB73KA.css} +34 -5
  67. package/dist/Select.cjs +8 -8
  68. package/dist/Select.d.cts +16 -1
  69. package/dist/Select.d.ts +16 -1
  70. package/dist/Select.js +7 -7
  71. package/dist/Skeleton.cjs +4 -4
  72. package/dist/Skeleton.js +3 -3
  73. package/dist/Slider.cjs +4 -4
  74. package/dist/Slider.js +3 -3
  75. package/dist/Spin.cjs +4 -4
  76. package/dist/Spin.js +3 -3
  77. package/dist/Splitter.cjs +4 -4
  78. package/dist/Splitter.d.cts +10 -0
  79. package/dist/Splitter.d.ts +10 -0
  80. package/dist/Splitter.js +3 -3
  81. package/dist/StatusBar.cjs +5 -5
  82. package/dist/StatusBar.js +3 -3
  83. package/dist/Surface.cjs +5 -5
  84. package/dist/Surface.js +3 -3
  85. package/dist/{Switch-TATU3LPB.css → Switch-3JV3LCPX.css} +3 -0
  86. package/dist/Switch.cjs +4 -4
  87. package/dist/Switch.d.cts +2 -0
  88. package/dist/Switch.d.ts +2 -0
  89. package/dist/Switch.js +3 -3
  90. package/dist/{Table-W4HPZ7MZ.css → Table-KB6EEBDJ.css} +28 -1
  91. package/dist/Table.cjs +12 -12
  92. package/dist/Table.d.cts +7 -1
  93. package/dist/Table.d.ts +7 -1
  94. package/dist/Table.js +11 -11
  95. package/dist/TablePro.cjs +13 -13
  96. package/dist/TablePro.js +12 -12
  97. package/dist/{Tabs-A3IG6UZ6.css → Tabs-FB2AMBWL.css} +14 -0
  98. package/dist/Tabs.cjs +4 -4
  99. package/dist/Tabs.d.cts +6 -0
  100. package/dist/Tabs.d.ts +6 -0
  101. package/dist/Tabs.js +3 -3
  102. package/dist/Tag.cjs +5 -5
  103. package/dist/Tag.js +4 -4
  104. package/dist/Textarea.cjs +6 -6
  105. package/dist/Textarea.js +4 -4
  106. package/dist/Theme.cjs +19 -19
  107. package/dist/Theme.js +1 -1
  108. package/dist/ThemePanel.cjs +14 -14
  109. package/dist/ThemePanel.js +11 -11
  110. package/dist/TimePicker.cjs +8 -8
  111. package/dist/TimePicker.js +7 -7
  112. package/dist/Timeline.cjs +5 -5
  113. package/dist/Timeline.js +4 -4
  114. package/dist/Tooltip.cjs +4 -4
  115. package/dist/Tooltip.js +3 -3
  116. package/dist/Typography.cjs +9 -9
  117. package/dist/Typography.js +4 -4
  118. package/dist/{chunk-LQMOYVQF.js → chunk-2BM65ITV.js} +2 -2
  119. package/dist/{chunk-UQI4R32R.js → chunk-2COQYOVG.js} +4 -4
  120. package/dist/{chunk-WMZV7PNO.js → chunk-2NECDEAJ.js} +7 -3
  121. package/dist/{chunk-I4YPBAQ5.js → chunk-2NXLVPF4.js} +3 -3
  122. package/dist/{chunk-7QAVPVMW.js → chunk-2V6RQQRI.js} +4 -4
  123. package/dist/{chunk-ZEYK37VW.cjs → chunk-2XDLXAZT.cjs} +6 -6
  124. package/dist/{chunk-TYZ6L7E6.cjs → chunk-33YRXHVK.cjs} +6 -6
  125. package/dist/{chunk-3EMWDDWK.cjs → chunk-3D5RJA7R.cjs} +16 -16
  126. package/dist/{chunk-VX6MZO4K.cjs → chunk-3J7HOTD6.cjs} +6 -6
  127. package/dist/{chunk-ARUN2DMD.js → chunk-427CDZDU.js} +2 -2
  128. package/dist/chunk-4JANYBXO.js +100 -0
  129. package/dist/{chunk-ZHVR4YPB.cjs → chunk-4LYJRFD2.cjs} +3 -3
  130. package/dist/{chunk-LG62MPMU.cjs → chunk-4MZW2KBN.cjs} +11 -11
  131. package/dist/{chunk-F7WUCOBP.cjs → chunk-4ZSFMWLF.cjs} +24 -24
  132. package/dist/{chunk-FMUHLIHB.cjs → chunk-53I3PWRH.cjs} +3 -3
  133. package/dist/{chunk-JHM7MN3G.js → chunk-563SQXH7.js} +3 -3
  134. package/dist/{chunk-DRDDQCDD.js → chunk-5HLNFDV4.js} +1 -1
  135. package/dist/{chunk-2HIN5NFM.js → chunk-5VLANZAJ.js} +3 -3
  136. package/dist/{chunk-ALAG4ZUH.js → chunk-6OVWY63D.js} +2 -2
  137. package/dist/{chunk-434Y2JVW.cjs → chunk-6WEXRX7K.cjs} +7 -7
  138. package/dist/{chunk-MCDW3VKZ.cjs → chunk-76CTKBXD.cjs} +3 -3
  139. package/dist/{chunk-VA3JWOAB.cjs → chunk-7IWUBBYX.cjs} +15 -15
  140. package/dist/{chunk-ENFLP7SN.cjs → chunk-7KA5D37Z.cjs} +40 -30
  141. package/dist/{chunk-Y2MT6PI6.js → chunk-7NKNQRK6.js} +4 -4
  142. package/dist/{chunk-EAUB6FEN.js → chunk-7PUYEPLK.js} +4 -4
  143. package/dist/{chunk-7VLAHOA7.cjs → chunk-7ZMUCSCJ.cjs} +8 -8
  144. package/dist/{chunk-RPO7657K.js → chunk-A34P5CU7.js} +3 -3
  145. package/dist/{chunk-FKCPSVC4.cjs → chunk-ADPXWCTK.cjs} +9 -9
  146. package/dist/{chunk-QDCPVI3S.cjs → chunk-AE5XWZ24.cjs} +14 -14
  147. package/dist/{chunk-XZXY3XCL.cjs → chunk-AEY76EAH.cjs} +55 -38
  148. package/dist/{chunk-3EHJ5QI3.js → chunk-AL2PYVVP.js} +99 -49
  149. package/dist/{chunk-PIJV2FHO.cjs → chunk-AQN3PD24.cjs} +30 -30
  150. package/dist/{chunk-RMGFRAZ2.cjs → chunk-AR3MT2ZT.cjs} +10 -10
  151. package/dist/{chunk-3F424R5P.js → chunk-AXZNZ2IH.js} +3 -3
  152. package/dist/{chunk-HVPUGYBY.js → chunk-BDPJ2BPN.js} +4 -4
  153. package/dist/{chunk-HQFKXTX6.js → chunk-BOBT7JUB.js} +2 -2
  154. package/dist/{chunk-O6G3F5L4.js → chunk-CFKAKB2B.js} +5 -5
  155. package/dist/{chunk-U5YYOOLC.cjs → chunk-CLJLBFNU.cjs} +4 -4
  156. package/dist/{chunk-HYHBCHFM.cjs → chunk-CNV7R2OZ.cjs} +7 -7
  157. package/dist/{chunk-ULTDRMGN.js → chunk-CPVUDSIY.js} +6 -6
  158. package/dist/{chunk-QDY56GGO.js → chunk-D2N7OXMK.js} +2 -2
  159. package/dist/{chunk-LJVQQEME.js → chunk-DQMG4XPX.js} +6 -6
  160. package/dist/{chunk-STQDKMS5.cjs → chunk-GFGMGJ5A.cjs} +13 -13
  161. package/dist/{chunk-BKW5PXEO.js → chunk-GMFOY7RD.js} +5 -5
  162. package/dist/{chunk-GTFP7HA3.cjs → chunk-GW77XQEF.cjs} +15 -15
  163. package/dist/{chunk-DU2DSERH.js → chunk-HAIWLYLR.js} +3 -3
  164. package/dist/{chunk-VVRXNGYL.cjs → chunk-HJGPUE67.cjs} +9 -9
  165. package/dist/{chunk-JINKQT6H.cjs → chunk-HMN65CDW.cjs} +10 -6
  166. package/dist/{chunk-MUZQWIMR.cjs → chunk-I2YL5XE4.cjs} +18 -18
  167. package/dist/{chunk-EE5KXDRK.cjs → chunk-I4GJZLJU.cjs} +6 -6
  168. package/dist/{chunk-QDMFXRPI.js → chunk-INCTDROH.js} +2 -2
  169. package/dist/{chunk-2BIOTRQC.js → chunk-ISK2RW7F.js} +2 -2
  170. package/dist/{chunk-OLYSSZHP.js → chunk-IU6PLLEL.js} +10 -10
  171. package/dist/{chunk-LOWTSOWT.js → chunk-J7D5CQDK.js} +34 -7
  172. package/dist/{chunk-EA3NZBCZ.js → chunk-JMYUO7V7.js} +20 -10
  173. package/dist/{chunk-D7YSY5RZ.cjs → chunk-K3KHQ77L.cjs} +111 -61
  174. package/dist/{chunk-AURYNA6G.js → chunk-KFCWDFBW.js} +2 -2
  175. package/dist/{chunk-KCDOC3HS.cjs → chunk-KPBZKHCS.cjs} +8 -6
  176. package/dist/{chunk-PQOBBASY.js → chunk-L2NEYHYG.js} +2 -2
  177. package/dist/{chunk-VQEMMJHC.js → chunk-LACXN5CI.js} +2 -2
  178. package/dist/{chunk-T4RR6NVU.cjs → chunk-M3JYP3V4.cjs} +7 -7
  179. package/dist/{chunk-FY73C7JK.js → chunk-MEBAE7DB.js} +4 -4
  180. package/dist/{chunk-5AXNUX3J.js → chunk-MFJHI472.js} +2 -2
  181. package/dist/{chunk-4SKHRPDH.js → chunk-MKVONDTB.js} +6 -6
  182. package/dist/{chunk-U7VEPMCX.cjs → chunk-MV56FOAD.cjs} +35 -8
  183. package/dist/{chunk-LEDESWNL.js → chunk-O6PRE6MZ.js} +5 -3
  184. package/dist/{chunk-EUTK2ZRJ.cjs → chunk-OBNGHJ3N.cjs} +3 -3
  185. package/dist/{chunk-62VV5COT.js → chunk-OGMI3TO5.js} +3 -3
  186. package/dist/{chunk-YAYSXZZZ.cjs → chunk-PYCAGTO7.cjs} +3 -3
  187. package/dist/{chunk-6DKPJ5LV.cjs → chunk-QI6BJJXM.cjs} +6 -6
  188. package/dist/{chunk-Y22PTPA7.js → chunk-QK3E6FAQ.js} +5 -5
  189. package/dist/{chunk-KATJAJUU.js → chunk-QSLXUNLM.js} +6 -4
  190. package/dist/{chunk-E66PSVBU.cjs → chunk-QTMI4ZA4.cjs} +5 -5
  191. package/dist/{chunk-LDX6Q6RK.cjs → chunk-RA5BULQ3.cjs} +3 -3
  192. package/dist/{chunk-BIPOXOHP.cjs → chunk-RWM44VCZ.cjs} +9 -9
  193. package/dist/{chunk-JKUXA3U6.cjs → chunk-RXITGNPX.cjs} +5 -5
  194. package/dist/{chunk-YPMQC5HX.js → chunk-RYF5ADJW.js} +3 -3
  195. package/dist/{chunk-SXLRWYQQ.js → chunk-SXT672KF.js} +5 -5
  196. package/dist/{chunk-U3SG2YT2.js → chunk-TALNKJQ2.js} +3 -3
  197. package/dist/{chunk-3IZZBM56.js → chunk-TNQJA5JF.js} +3 -3
  198. package/dist/{chunk-Q565GDVK.cjs → chunk-TPFY5SKB.cjs} +9 -9
  199. package/dist/{chunk-RERMZNF3.cjs → chunk-TTRU4TLQ.cjs} +3 -3
  200. package/dist/{chunk-UE4HFGJ6.js → chunk-TUXF2G2O.js} +4 -4
  201. package/dist/{chunk-3DKFS44V.js → chunk-TY5LOU3A.js} +3 -3
  202. package/dist/{chunk-6RQJXSWN.js → chunk-U7V2FOIM.js} +3 -3
  203. package/dist/{chunk-BJDQVVCG.js → chunk-UCE53RYR.js} +5 -5
  204. package/dist/{chunk-WROF2PVG.cjs → chunk-UQF7E32V.cjs} +6 -4
  205. package/dist/{chunk-NRJXZPZR.cjs → chunk-V6BLBIY6.cjs} +17 -17
  206. package/dist/{chunk-2AUXUZ3Z.cjs → chunk-VDVKY2IX.cjs} +4 -4
  207. package/dist/{chunk-YKHIIC7M.js → chunk-VLQ6XIAL.js} +2 -2
  208. package/dist/{chunk-GFKWSDD6.cjs → chunk-VNP5WB6M.cjs} +6 -6
  209. package/dist/{chunk-56I6ZKGU.cjs → chunk-VTN6YLRJ.cjs} +11 -11
  210. package/dist/{chunk-YBGMTQ2V.js → chunk-XFJTJVWD.js} +3 -3
  211. package/dist/{chunk-77HU7JWK.cjs → chunk-XHKSUKKL.cjs} +6 -6
  212. package/dist/{chunk-K5HGHOG7.js → chunk-Y3WFWA52.js} +2 -2
  213. package/dist/{chunk-QNQSNVCU.cjs → chunk-YU4LBDBD.cjs} +6 -6
  214. package/dist/{chunk-QYPA77OI.cjs → chunk-Z6AG7O4B.cjs} +3 -3
  215. package/dist/{chunk-AUO2YYHB.js → chunk-Z7GKR4LL.js} +4 -4
  216. package/dist/{chunk-ZYIE3BH7.cjs → chunk-ZBRFGD3I.cjs} +3 -3
  217. package/dist/{chunk-5CZA33BK.cjs → chunk-ZCAYS4KR.cjs} +8 -8
  218. package/dist/{chunk-Q5HLC56A.cjs → chunk-ZGZLEJKA.cjs} +4 -4
  219. package/dist/{chunk-YUJ7Z6N2.cjs → chunk-ZT7ZWAF2.cjs} +13 -13
  220. package/dist/index.cjs +189 -189
  221. package/dist/index.d.cts +3 -3
  222. package/dist/index.d.ts +3 -3
  223. package/dist/index.js +52 -52
  224. package/dist/styles.css +100 -20
  225. package/dist/{tokens-CEJVVA3G.css → tokens-223RYVVS.css} +14 -14
  226. package/dist/tokens.css +14 -14
  227. package/docs/llms/checkbox.md +22 -5
  228. package/docs/llms/drawer.md +8 -1
  229. package/docs/llms/select.md +50 -0
  230. package/docs/llms/splitter.md +12 -1
  231. package/docs/llms/switch.md +22 -5
  232. package/docs/llms/tablepro.md +23 -1
  233. package/docs/llms/tabs.md +21 -0
  234. package/docs/llms.md +1 -1
  235. package/package.json +1 -1
  236. package/dist/chunk-RAK6CENJ.js +0 -83
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';
@@ -21,7 +21,7 @@ export { MessageApi, MessageConfig, MessageContainer, MessageContainerProps, Mes
21
21
  export { Tooltip, TooltipPlacement, TooltipProps } from './Tooltip.cjs';
22
22
  export { Popover, PopoverPlacement, PopoverProps } from './Popover.cjs';
23
23
  export { Alert, AlertProps, AlertTone } from './Alert.cjs';
24
- export { ExpandableConfig, PaginationConfig, RowKey, RowSelectionConfig, Table, TableChangeAction, TableChangeInfo, TableColumn, TableColumnFilterItem, TablePaginationState, TableProps, TableScrollConfig, TableSorterState, TableVariant } from './Table.cjs';
24
+ export { ExpandableConfig, PaginationConfig, RowKey, RowSelectionConfig, Table, TableChangeAction, TableChangeInfo, TableColumn, TableColumnFilterItem, TablePaginationState, TableProps, TableRowClassName, TableScrollConfig, TableSorterState, TableVariant } from './Table.cjs';
25
25
  export { TablePro, TableProProps } from './TablePro.cjs';
26
26
  export { Pagination, PaginationProps } from './Pagination.cjs';
27
27
  export { DatePicker, DatePickerFormat, DatePickerProps, DatePickerSize } from './DatePicker.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.7.0";
57
+ declare const VERSION = "0.9.0";
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';
@@ -21,7 +21,7 @@ export { MessageApi, MessageConfig, MessageContainer, MessageContainerProps, Mes
21
21
  export { Tooltip, TooltipPlacement, TooltipProps } from './Tooltip.js';
22
22
  export { Popover, PopoverPlacement, PopoverProps } from './Popover.js';
23
23
  export { Alert, AlertProps, AlertTone } from './Alert.js';
24
- export { ExpandableConfig, PaginationConfig, RowKey, RowSelectionConfig, Table, TableChangeAction, TableChangeInfo, TableColumn, TableColumnFilterItem, TablePaginationState, TableProps, TableScrollConfig, TableSorterState, TableVariant } from './Table.js';
24
+ export { ExpandableConfig, PaginationConfig, RowKey, RowSelectionConfig, Table, TableChangeAction, TableChangeInfo, TableColumn, TableColumnFilterItem, TablePaginationState, TableProps, TableRowClassName, TableScrollConfig, TableSorterState, TableVariant } from './Table.js';
25
25
  export { TablePro, TableProProps } from './TablePro.js';
26
26
  export { Pagination, PaginationProps } from './Pagination.js';
27
27
  export { DatePicker, DatePickerFormat, DatePickerProps, DatePickerSize } from './DatePicker.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.7.0";
57
+ declare const VERSION = "0.9.0";
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-WMZV7PNO.js';
5
- export { Table } from './chunk-EA3NZBCZ.js';
6
- export { Tabs } from './chunk-RAK6CENJ.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-LOWTSOWT.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-BJDQVVCG.js';
22
- export { Select } from './chunk-3EHJ5QI3.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-GMFOY7RD.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.7.0";
59
+ var VERSION = "0.9.0";
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;
@@ -1444,6 +1454,13 @@ svg[data-lumina-icon-color],
1444
1454
  .surface > *:last-child { margin-bottom: 0; }
1445
1455
  /* ============ Tabs ============ */
1446
1456
  .tabs { display: flex; flex-direction: column; gap: var(--gap-3); }
1457
+ .tabs.fill {
1458
+ flex: 1 1 auto;
1459
+ width: 100%;
1460
+ height: 100%;
1461
+ min-width: 0;
1462
+ min-height: 0;
1463
+ }
1447
1464
  .tabs-nav {
1448
1465
  display: inline-flex;
1449
1466
  padding: 5px;
@@ -1452,6 +1469,7 @@ svg[data-lumina-icon-color],
1452
1469
  box-shadow: var(--lmn-tabs-neu-shadow-inset, var(--neu-shadow-inset));
1453
1470
  gap: 2px;
1454
1471
  align-self: flex-start;
1472
+ flex-shrink: 0;
1455
1473
  }
1456
1474
  .tabs-nav .tab {
1457
1475
  padding: 8px 16px;
@@ -1507,6 +1525,12 @@ svg[data-lumina-icon-color],
1507
1525
  .tabs.centered.line .tabs-nav .tab,
1508
1526
  .tabs.centered.underline .tabs-nav .tab { margin-right: 11px; margin-left: 11px; }
1509
1527
  .tabs-content { padding: var(--gap-2) 0; }
1528
+ .tabs.fill .tabs-content {
1529
+ flex: 1 1 auto;
1530
+ min-width: 0;
1531
+ min-height: 0;
1532
+ overflow: auto;
1533
+ }
1510
1534
  /* ============ Collapse ============ */
1511
1535
  .collapse { display: flex; flex-direction: column; gap: 10px; }
1512
1536
  .collapse-item {
@@ -1781,6 +1805,30 @@ button.collapse-chev {
1781
1805
  min-width: 0;
1782
1806
  text-align: left;
1783
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
+ }
1784
1832
  .menu-item-label {
1785
1833
  white-space: nowrap;
1786
1834
  overflow: hidden;
@@ -1794,14 +1842,18 @@ button.collapse-chev {
1794
1842
  text-overflow: ellipsis;
1795
1843
  }
1796
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))); }
1797
- /* Keyboard / hover highlight — soft raised pill */
1798
- .menu-item.highlight:not([disabled]) {
1845
+ /* Keyboard / hover highlight — inset styling stays inside the scrollport edge. */
1846
+ .menu-item-row.highlight:not(.disabled) {
1799
1847
  background: var(--lmn-select-bg, var(--bg));
1800
- 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 {
1801
1851
  color: var(--lmn-select-accent-ink, var(--accent-ink));
1802
1852
  }
1803
- .menu-item[disabled] {
1853
+ .menu-item-row.disabled {
1804
1854
  opacity: 0.45;
1855
+ }
1856
+ .menu-item-row.disabled .menu-item {
1805
1857
  cursor: not-allowed;
1806
1858
  }
1807
1859
  .menu {
@@ -1836,7 +1888,8 @@ button.collapse-chev {
1836
1888
  width: 100%;
1837
1889
  text-align: left;
1838
1890
  }
1839
- .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)); }
1840
1893
  .menu-item.active { color: var(--lmn-select-accent-ink, var(--accent-ink)); font-weight: 500; }
1841
1894
  .menu-item .tick { margin-left: auto; color: var(--lmn-select-accent, var(--accent)); opacity: 0; }
1842
1895
  .menu-item.active .tick { opacity: 1; }
@@ -2543,6 +2596,7 @@ button.collapse-chev {
2543
2596
  background: var(--lmn-table-bg, var(--bg));
2544
2597
  box-shadow: var(--lmn-table-neu-shadow-inset, var(--neu-shadow-inset));
2545
2598
  overflow: auto;
2599
+ container-type: inline-size;
2546
2600
  }
2547
2601
  /* When scroll=y is on, the wrap itself becomes the scroll region. */
2548
2602
  .table-wrap.scroll-y { overflow-y: auto; }
@@ -2610,6 +2664,10 @@ button.collapse-chev {
2610
2664
  .table.striped tbody tr:nth-child(even) td {
2611
2665
  background: color-mix(in oklch, var(--lmn-table-bg-sunken, var(--bg-sunken)) 40%, transparent);
2612
2666
  }
2667
+ .table:not(.cards) tbody tr.active-row td {
2668
+ background: color-mix(in oklch, var(--lmn-table-accent-soft, var(--accent-soft)) 72%, transparent);
2669
+ color: var(--lmn-table-accent-ink, var(--accent-ink));
2670
+ }
2613
2671
  /* Embossed: each row sits on the surface */
2614
2672
  .table.embossed { border-spacing: 0; }
2615
2673
  .table.embossed tbody td {
@@ -2664,10 +2722,32 @@ button.collapse-chev {
2664
2722
  }
2665
2723
  .table.cards.hoverable tbody tr:hover .card-row-surface { box-shadow: var(--lmn-table-neu-shadow-panel, var(--neu-shadow-panel)); }
2666
2724
  .table.cards.hoverable tbody tr:hover td { background: transparent; }
2725
+ .table.cards tbody tr.active-row .card-row-surface {
2726
+ box-shadow:
2727
+ var(--lmn-table-neu-shadow-control, var(--neu-shadow-control)),
2728
+ inset 0 0 0 2px var(--lmn-table-accent-glow, var(--accent-glow));
2729
+ }
2730
+ .table.cards tbody tr.active-row td {
2731
+ color: var(--lmn-table-accent-ink, var(--accent-ink));
2732
+ }
2667
2733
  .table .row-check { width: 44px; }
2668
2734
  .table .row-check .checkbox { display: inline-flex; }
2669
2735
  .table .row-expand { width: 40px; text-align: center; }
2670
- .table-empty { padding: 60px 20px; text-align: center; color: var(--lmn-table-fg-muted, var(--fg-muted)); }
2736
+ .table .table-empty {
2737
+ padding: 0;
2738
+ color: var(--lmn-table-fg-muted, var(--fg-muted));
2739
+ }
2740
+ .table-empty-content {
2741
+ box-sizing: border-box;
2742
+ width: 100%;
2743
+ padding: 60px 20px;
2744
+ text-align: center;
2745
+ }
2746
+ .table-wrap.scroll-x .table-empty-content {
2747
+ position: sticky;
2748
+ left: 0;
2749
+ width: 100cqi;
2750
+ }
2671
2751
  /* Expand button */
2672
2752
  .expand-btn {
2673
2753
  width: 22px; height: 22px;
@@ -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
 
@@ -34,7 +34,14 @@ extra 渲染到标题右边,常用来放刷新 / 更多 / 保存按钮。
34
34
  抽屉只让正文区滚动,并自动为拟态阴影留出空间;全宽内容可通过 bodyInset="none" 贴边。
35
35
 
36
36
  ```tsx
37
- <Drawer open={open} title="连接配置">
37
+ <Drawer
38
+ open={open}
39
+ title="连接配置"
40
+ bodyClassName="connection-drawer-body"
41
+ bodyStyle={{ scrollBehavior: "smooth" }}
42
+ bodyProps={{ "data-purpose": "connection-settings" }}
43
+ bodyOverflow="auto"
44
+ >
38
45
  <Card title="远程节点">无需手工补 padding 或修改 overflow。</Card>
39
46
  </Drawer>
40
47
  ```