@fangxinyan/lumina 0.6.7 → 0.6.8

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 (219) hide show
  1. package/dist/Alert.cjs +3 -3
  2. package/dist/Alert.js +2 -2
  3. package/dist/AppShell.cjs +5 -5
  4. package/dist/AppShell.js +1 -1
  5. package/dist/AutoComplete.cjs +5 -5
  6. package/dist/AutoComplete.js +4 -4
  7. package/dist/Avatar.cjs +2 -2
  8. package/dist/Avatar.js +1 -1
  9. package/dist/Badge.cjs +2 -2
  10. package/dist/Badge.js +1 -1
  11. package/dist/Button.cjs +7 -3
  12. package/dist/Button.d.cts +13 -1
  13. package/dist/Button.d.ts +13 -1
  14. package/dist/Button.js +2 -2
  15. package/dist/Calendar.cjs +3 -3
  16. package/dist/Calendar.js +2 -2
  17. package/dist/Card.cjs +3 -3
  18. package/dist/Card.js +2 -2
  19. package/dist/Cascader.cjs +5 -5
  20. package/dist/Cascader.js +4 -4
  21. package/dist/Checkbox.cjs +3 -3
  22. package/dist/Checkbox.js +2 -2
  23. package/dist/Collapse.cjs +3 -3
  24. package/dist/Collapse.js +2 -2
  25. package/dist/ColorPicker.cjs +2 -2
  26. package/dist/ColorPicker.js +1 -1
  27. package/dist/CommandPalette.cjs +5 -5
  28. package/dist/CommandPalette.js +4 -4
  29. package/dist/ContextMenu.cjs +2 -2
  30. package/dist/ContextMenu.js +1 -1
  31. package/dist/Divider.cjs +2 -2
  32. package/dist/Divider.js +1 -1
  33. package/dist/Drawer.cjs +3 -3
  34. package/dist/Drawer.js +2 -2
  35. package/dist/Empty.cjs +2 -2
  36. package/dist/Empty.js +1 -1
  37. package/dist/Form.cjs +4 -4
  38. package/dist/Form.js +1 -1
  39. package/dist/Icon.cjs +49 -49
  40. package/dist/Icon.js +1 -1
  41. package/dist/Image.cjs +6 -6
  42. package/dist/Image.js +2 -2
  43. package/dist/Input.cjs +5 -5
  44. package/dist/Input.js +3 -3
  45. package/dist/InputNumber.cjs +5 -5
  46. package/dist/InputNumber.js +4 -4
  47. package/dist/List.cjs +2 -2
  48. package/dist/List.js +1 -1
  49. package/dist/Message.cjs +6 -6
  50. package/dist/Message.js +2 -2
  51. package/dist/Modal.cjs +4 -4
  52. package/dist/Modal.js +3 -3
  53. package/dist/Pagination.cjs +7 -7
  54. package/dist/Pagination.js +6 -6
  55. package/dist/Popover.cjs +2 -2
  56. package/dist/Popover.js +1 -1
  57. package/dist/Progress.cjs +2 -2
  58. package/dist/Progress.js +1 -1
  59. package/dist/Radio.cjs +3 -3
  60. package/dist/Radio.js +1 -1
  61. package/dist/Select.cjs +6 -6
  62. package/dist/Select.js +5 -5
  63. package/dist/Skeleton.cjs +2 -2
  64. package/dist/Skeleton.js +1 -1
  65. package/dist/Slider.cjs +2 -2
  66. package/dist/Slider.js +1 -1
  67. package/dist/Spin.cjs +2 -2
  68. package/dist/Spin.js +1 -1
  69. package/dist/Splitter.cjs +2 -2
  70. package/dist/Splitter.js +1 -1
  71. package/dist/StatusBar.cjs +3 -3
  72. package/dist/StatusBar.js +1 -1
  73. package/dist/Surface.cjs +4 -4
  74. package/dist/Surface.js +2 -2
  75. package/dist/Switch.cjs +2 -2
  76. package/dist/Switch.js +1 -1
  77. package/dist/Table.cjs +9 -9
  78. package/dist/Table.js +8 -8
  79. package/dist/TablePro.cjs +10 -10
  80. package/dist/TablePro.d.cts +11 -7
  81. package/dist/TablePro.d.ts +11 -7
  82. package/dist/TablePro.js +9 -9
  83. package/dist/Tabs.cjs +2 -2
  84. package/dist/Tabs.js +1 -1
  85. package/dist/Tag.cjs +3 -3
  86. package/dist/Tag.js +2 -2
  87. package/dist/Textarea.cjs +4 -4
  88. package/dist/Textarea.js +2 -2
  89. package/dist/Theme.cjs +11 -11
  90. package/dist/Theme.js +1 -1
  91. package/dist/{ThemePanel-76LB3YA5.css → ThemePanel-TEHB2JCQ.css} +68 -0
  92. package/dist/ThemePanel.cjs +13 -13
  93. package/dist/ThemePanel.d.cts +12 -2
  94. package/dist/ThemePanel.d.ts +12 -2
  95. package/dist/ThemePanel.js +10 -10
  96. package/dist/Timeline.cjs +3 -3
  97. package/dist/Timeline.js +2 -2
  98. package/dist/Tooltip.cjs +2 -2
  99. package/dist/Tooltip.js +1 -1
  100. package/dist/Typography.cjs +7 -7
  101. package/dist/Typography.js +2 -2
  102. package/dist/{chunk-MOMLQP7B.cjs → chunk-2EY34PPA.cjs} +1 -1
  103. package/dist/{chunk-IHK2FRTS.cjs → chunk-2LM5UYNU.cjs} +1 -1
  104. package/dist/{chunk-Y5F7ZTBH.js → chunk-3GJZRYTD.js} +1 -1
  105. package/dist/{chunk-D5PCIVID.cjs → chunk-3HPHQV2L.cjs} +3 -3
  106. package/dist/{chunk-DYHNOYRC.cjs → chunk-3NSBPQBT.cjs} +6 -6
  107. package/dist/{chunk-LI4XJTEA.js → chunk-3VXBSLPT.js} +3 -3
  108. package/dist/{chunk-YVTLHTG6.js → chunk-44WHEN76.js} +1 -1
  109. package/dist/{chunk-NT6CJYI3.cjs → chunk-4LOOWTRX.cjs} +4 -4
  110. package/dist/{chunk-U2H4DRMV.cjs → chunk-4N64ZL5M.cjs} +1 -1
  111. package/dist/{chunk-6XVLERA3.cjs → chunk-5C3ZSOKF.cjs} +1 -1
  112. package/dist/{chunk-2ZFJTMEF.js → chunk-5CWTC3I2.js} +3 -3
  113. package/dist/{chunk-ZPKHGKVL.cjs → chunk-5KGGB3EH.cjs} +3 -3
  114. package/dist/{chunk-W5CJC7S7.js → chunk-62RPBEAW.js} +2 -2
  115. package/dist/{chunk-NE7IUGMK.js → chunk-64ZQHLHL.js} +2 -2
  116. package/dist/{chunk-YJEXAO2I.js → chunk-6VSNO7IH.js} +1 -1
  117. package/dist/{chunk-3YP7CBJT.js → chunk-762NV3E4.js} +2 -2
  118. package/dist/{chunk-SYWTT5TY.cjs → chunk-76OH42CM.cjs} +4 -4
  119. package/dist/{chunk-56PHETWO.js → chunk-7DNK5JB2.js} +2 -2
  120. package/dist/{chunk-I4M2RL2X.js → chunk-7IWYBQAE.js} +2 -2
  121. package/dist/{chunk-VAXWWJJP.cjs → chunk-7OYMY22O.cjs} +8 -8
  122. package/dist/{chunk-L27C5O4W.cjs → chunk-7UCXY4T5.cjs} +3 -3
  123. package/dist/{chunk-7NZ2A4MA.js → chunk-7ZCTEIOW.js} +1 -1
  124. package/dist/{chunk-QY76WTO5.cjs → chunk-AA2FRQUQ.cjs} +8 -8
  125. package/dist/{chunk-SABWUELE.js → chunk-ACZA7HHP.js} +1 -1
  126. package/dist/{chunk-GZCU6HXD.js → chunk-AHS2AFTD.js} +1 -1
  127. package/dist/{chunk-YSCIMHOI.cjs → chunk-AYZ4BWHG.cjs} +4 -4
  128. package/dist/{chunk-J7EQJXSJ.js → chunk-BKI7JY4Z.js} +2 -2
  129. package/dist/{chunk-NFXHIO3G.js → chunk-BY2YW5XN.js} +1 -1
  130. package/dist/{chunk-OGPDCBPD.cjs → chunk-CPBFUKSX.cjs} +11 -11
  131. package/dist/{chunk-R74TZKJS.cjs → chunk-D56CNYUP.cjs} +3 -3
  132. package/dist/{chunk-4UKM4KAC.cjs → chunk-DDCAHAAE.cjs} +1 -1
  133. package/dist/{chunk-N2COYOXE.cjs → chunk-DGB6KVU3.cjs} +1 -1
  134. package/dist/{chunk-PNZJFLMY.js → chunk-EXN64ADJ.js} +2 -2
  135. package/dist/{chunk-LFTCK2VM.cjs → chunk-F3DN2JGE.cjs} +489 -238
  136. package/dist/{chunk-IDJCFYPP.cjs → chunk-F65KYGPX.cjs} +14 -14
  137. package/dist/{chunk-RIUDYPRB.cjs → chunk-FJHFUES7.cjs} +1 -1
  138. package/dist/{chunk-66GXZQKL.cjs → chunk-FL25IGIG.cjs} +3 -3
  139. package/dist/{chunk-REMJWNAT.js → chunk-FPII6I52.js} +3 -3
  140. package/dist/{chunk-YSXD344H.js → chunk-FZITSOKH.js} +4 -4
  141. package/dist/{chunk-2NT5QKEX.js → chunk-GEANNF4T.js} +2 -2
  142. package/dist/{chunk-6LARTGLP.cjs → chunk-GJAEGIPM.cjs} +1 -1
  143. package/dist/{chunk-PVOQWCP2.cjs → chunk-GT34KAMX.cjs} +3 -3
  144. package/dist/{chunk-TVUBGXWA.js → chunk-GVPGJXZT.js} +1 -1
  145. package/dist/{chunk-6GQPF3EI.cjs → chunk-HFM4YKM5.cjs} +1 -1
  146. package/dist/{chunk-2SCXQ7QS.js → chunk-HR5QBBIS.js} +1 -1
  147. package/dist/{chunk-ACQSRMLF.cjs → chunk-HTW62OMX.cjs} +4 -4
  148. package/dist/{chunk-VNNQYJLT.js → chunk-I5XCHN67.js} +2 -2
  149. package/dist/{chunk-N3OLFKV5.cjs → chunk-IMAGOTLP.cjs} +1 -1
  150. package/dist/{chunk-Z4PZ2ZHI.cjs → chunk-J2R3BEEH.cjs} +1 -1
  151. package/dist/{chunk-PEJLXJQD.js → chunk-JPAYPF6H.js} +1 -1
  152. package/dist/{chunk-YNCDTKAE.cjs → chunk-JWZ6HJIF.cjs} +1 -1
  153. package/dist/{chunk-S6OKX4H7.cjs → chunk-KOY7GNP3.cjs} +1 -1
  154. package/dist/{chunk-NDO22RER.cjs → chunk-LF3ATJFY.cjs} +1 -1
  155. package/dist/{chunk-5NFSDFBB.cjs → chunk-LW6Z2WDZ.cjs} +3 -3
  156. package/dist/{chunk-YUKXNWVE.cjs → chunk-MLOT2AGK.cjs} +1 -1
  157. package/dist/{chunk-7D76MI37.js → chunk-MOLKLUSQ.js} +4 -4
  158. package/dist/{chunk-SG42F5VB.cjs → chunk-MZCKPLHQ.cjs} +1 -1
  159. package/dist/chunk-N24KHD5B.js +84 -0
  160. package/dist/{chunk-C24W6PTJ.cjs → chunk-N4JH6HHA.cjs} +1 -1
  161. package/dist/{chunk-5JNDDWFZ.js → chunk-NUF3EA7T.js} +2 -2
  162. package/dist/chunk-NUNPFMCM.cjs +106 -0
  163. package/dist/{chunk-AJH2O4WC.js → chunk-OVTB7FQQ.js} +2 -2
  164. package/dist/{chunk-HFUHQUPQ.js → chunk-P434GBHP.js} +1 -1
  165. package/dist/{chunk-66T76GII.cjs → chunk-PEFIXNAV.cjs} +6 -6
  166. package/dist/{chunk-WXWFMWWF.js → chunk-PHONNUK2.js} +2 -2
  167. package/dist/{chunk-MYRLCN6V.js → chunk-PWPL3DRN.js} +1 -1
  168. package/dist/{chunk-HU7T64Y3.js → chunk-Q5KHJ32P.js} +1 -1
  169. package/dist/{chunk-OHFZ7L4T.js → chunk-Q77BWQNG.js} +1 -1
  170. package/dist/{chunk-XVP7IKLZ.js → chunk-QDXBI3PV.js} +3 -3
  171. package/dist/{chunk-PKHITACT.js → chunk-QKWRN2JL.js} +1 -1
  172. package/dist/{chunk-7ZNGHWVS.js → chunk-R53WIZY5.js} +1 -1
  173. package/dist/{chunk-LQLOOUS3.js → chunk-RYRBNMCC.js} +1 -1
  174. package/dist/{chunk-2ZADGBUN.cjs → chunk-S4CZ3VO6.cjs} +9 -4
  175. package/dist/{chunk-N4USDBY2.js → chunk-SGNDIRZC.js} +3 -3
  176. package/dist/{chunk-YT5NLCRC.js → chunk-SNX4FZYB.js} +1 -1
  177. package/dist/{chunk-WHXSUPJB.cjs → chunk-TDYJ5ECR.cjs} +3 -3
  178. package/dist/{chunk-KMG7OMOS.js → chunk-TJB7U72Z.js} +1 -1
  179. package/dist/{chunk-SFAGHPBT.js → chunk-TWJAYAK2.js} +1 -1
  180. package/dist/{chunk-JFQ53MO4.cjs → chunk-VM6CJYP6.cjs} +1 -1
  181. package/dist/{chunk-CNGKJYGZ.js → chunk-VRA4CQCJ.js} +7 -3
  182. package/dist/{chunk-YU5JK247.cjs → chunk-VUTCNATX.cjs} +6 -6
  183. package/dist/{chunk-CEZ2DR4R.js → chunk-W72IIGOV.js} +2 -2
  184. package/dist/{chunk-QP7RXZES.js → chunk-WIBAYFBB.js} +1 -1
  185. package/dist/{chunk-O43DOE7V.js → chunk-WIZVOZNO.js} +2 -2
  186. package/dist/{chunk-SQIWPU6V.js → chunk-XN52S7PT.js} +1 -1
  187. package/dist/{chunk-O4BOBOYV.cjs → chunk-XOYMBL5R.cjs} +1 -1
  188. package/dist/{chunk-MYHBC3HA.cjs → chunk-XPV672EI.cjs} +1 -1
  189. package/dist/{chunk-DYSGXQUK.cjs → chunk-XVDD6JEU.cjs} +6 -6
  190. package/dist/{chunk-ZWCDB5PP.cjs → chunk-XWRQ7ZLT.cjs} +1 -1
  191. package/dist/{chunk-N2BTMKF2.cjs → chunk-Z35Q432P.cjs} +4 -4
  192. package/dist/{chunk-VSUMJX6Z.cjs → chunk-ZC5VDX4W.cjs} +1 -1
  193. package/dist/{chunk-ZPP7LTHP.js → chunk-ZCMFLRZS.js} +2 -2
  194. package/dist/{chunk-5PR7UWIZ.cjs → chunk-ZGDAYWWC.cjs} +10 -10
  195. package/dist/{chunk-NJCHFXGC.js → chunk-ZTIECMCF.js} +455 -204
  196. package/dist/index.cjs +177 -173
  197. package/dist/index.d.cts +3 -3
  198. package/dist/index.d.ts +3 -3
  199. package/dist/index.js +48 -48
  200. package/dist/styles.css +78 -0
  201. package/dist/{tokens-EF34LSWI.css → tokens-RGFJKRC7.css} +21 -0
  202. package/dist/tokens.css +21 -0
  203. package/docs/llms/autocomplete.md +6 -0
  204. package/docs/llms/button.md +16 -4
  205. package/docs/llms/commandpalette.md +6 -0
  206. package/docs/llms/contextmenu.md +6 -0
  207. package/docs/llms/form.md +6 -0
  208. package/docs/llms/inputnumber.md +6 -0
  209. package/docs/llms/splitter.md +6 -0
  210. package/docs/llms/statusbar.md +6 -0
  211. package/docs/llms/tablepro.md +2 -0
  212. package/docs/llms/textarea.md +83 -0
  213. package/docs/llms/themepanel.md +26 -5
  214. package/docs/llms/timeline.md +6 -0
  215. package/docs/llms/typography.md +1 -1
  216. package/docs/llms.md +2 -1
  217. package/package.json +51 -1
  218. package/dist/chunk-D64IPDUE.cjs +0 -28
  219. package/dist/chunk-GUZ2DNDC.js +0 -26
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  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, IconName, IconProps, IconSlot, LeftOutlined, LoadingOutlined, MinusCircleOutlined, MinusOutlined, NAMED_ICON_MAP, NamedIconComponentName, NamedIconProps, PictureOutlined, PlusOutlined, QqOutlined, ReloadOutlined, RenderIconSlotOptions, RightOutlined, RobotOutlined, SearchOutlined, SettingOutlined, StarFilled, StarOutlined, SwapOutlined, SwapRightOutlined, SyncOutlined, ThunderboltOutlined, TranslationOutlined, UnorderedListOutlined, UserOutlined, isIconName, renderIconSlot, resolveIconName } from './Icon.cjs';
2
- export { Button, ButtonProps, ButtonSize, ButtonVariant } from './Button.cjs';
2
+ export { Button, ButtonProps, ButtonSize, ButtonVariant, IconButton, IconButtonProps } from './Button.cjs';
3
3
  export { Input, InputComponent, InputPassword, InputPasswordProps, InputProps, InputTextAreaProps } from './Input.cjs';
4
4
  export { TextArea, Textarea, TextareaProps } from './Textarea.cjs';
5
5
  export { Switch, SwitchProps } from './Switch.cjs';
@@ -43,12 +43,12 @@ export { BaseTypographyProps, CopyableConfig, EditableConfig, EllipsisConfig, Li
43
43
  export { ColorPicker, ColorPickerProps } from './ColorPicker.cjs';
44
44
  export { Drawer, DrawerProps } from './Drawer.cjs';
45
45
  export { ACCENT_PRESETS, ACCENT_PRESETS_DARK, AccentKey, AccentPalette, BuiltInThemeMode, CustomAccentInput, DensityMode, FONT_STACKS, FontConfig, FontKey, ResolvedThemeMode, ThemeBaseMode, ThemeConfig, ThemeMode, ThemePreset, ThemePresets, ThemeProvider, ThemeProviderProps, ThemeTokens, ThemeValue, applyTheme, normalizeAccentInput, resolveThemeColorScheme, resolveThemeMode, useTheme, useThemeOptional } from './Theme.cjs';
46
- export { THEME_PANEL_DEFAULT_PRESET_OPTIONS, THEME_PANEL_DEFAULT_THEME_PRESETS, ThemePanel, ThemePanelCreateThemePayload, ThemePanelCreatedThemeMeta, ThemePanelDeleteThemePayload, ThemePanelModeOption, ThemePanelPresetOption, ThemePanelProps, ThemePanelSection } from './ThemePanel.cjs';
46
+ export { THEME_PANEL_DEFAULT_PRESET_OPTIONS, THEME_PANEL_DEFAULT_THEME_PRESETS, ThemePanel, ThemePanelCreateThemePayload, ThemePanelCreatedThemeMeta, ThemePanelDeleteThemePayload, ThemePanelModeOption, ThemePanelPresetOption, ThemePanelProps, ThemePanelSection, ThemePanelUpdateThemePayload } from './ThemePanel.cjs';
47
47
  export { Timeline, TimelineItemConfig, TimelineProps } from './Timeline.cjs';
48
48
  import 'react/jsx-runtime';
49
49
  import 'react';
50
50
 
51
51
  /** Package version — bumped by release scripts. */
52
- declare const VERSION = "0.6.7";
52
+ declare const VERSION = "0.6.8";
53
53
 
54
54
  export { VERSION };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  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, IconName, IconProps, IconSlot, LeftOutlined, LoadingOutlined, MinusCircleOutlined, MinusOutlined, NAMED_ICON_MAP, NamedIconComponentName, NamedIconProps, PictureOutlined, PlusOutlined, QqOutlined, ReloadOutlined, RenderIconSlotOptions, RightOutlined, RobotOutlined, SearchOutlined, SettingOutlined, StarFilled, StarOutlined, SwapOutlined, SwapRightOutlined, SyncOutlined, ThunderboltOutlined, TranslationOutlined, UnorderedListOutlined, UserOutlined, isIconName, renderIconSlot, resolveIconName } from './Icon.js';
2
- export { Button, ButtonProps, ButtonSize, ButtonVariant } from './Button.js';
2
+ export { Button, ButtonProps, ButtonSize, ButtonVariant, IconButton, IconButtonProps } from './Button.js';
3
3
  export { Input, InputComponent, InputPassword, InputPasswordProps, InputProps, InputTextAreaProps } from './Input.js';
4
4
  export { TextArea, Textarea, TextareaProps } from './Textarea.js';
5
5
  export { Switch, SwitchProps } from './Switch.js';
@@ -43,12 +43,12 @@ export { BaseTypographyProps, CopyableConfig, EditableConfig, EllipsisConfig, Li
43
43
  export { ColorPicker, ColorPickerProps } from './ColorPicker.js';
44
44
  export { Drawer, DrawerProps } from './Drawer.js';
45
45
  export { ACCENT_PRESETS, ACCENT_PRESETS_DARK, AccentKey, AccentPalette, BuiltInThemeMode, CustomAccentInput, DensityMode, FONT_STACKS, FontConfig, FontKey, ResolvedThemeMode, ThemeBaseMode, ThemeConfig, ThemeMode, ThemePreset, ThemePresets, ThemeProvider, ThemeProviderProps, ThemeTokens, ThemeValue, applyTheme, normalizeAccentInput, resolveThemeColorScheme, resolveThemeMode, useTheme, useThemeOptional } from './Theme.js';
46
- export { THEME_PANEL_DEFAULT_PRESET_OPTIONS, THEME_PANEL_DEFAULT_THEME_PRESETS, ThemePanel, ThemePanelCreateThemePayload, ThemePanelCreatedThemeMeta, ThemePanelDeleteThemePayload, ThemePanelModeOption, ThemePanelPresetOption, ThemePanelProps, ThemePanelSection } from './ThemePanel.js';
46
+ export { THEME_PANEL_DEFAULT_PRESET_OPTIONS, THEME_PANEL_DEFAULT_THEME_PRESETS, ThemePanel, ThemePanelCreateThemePayload, ThemePanelCreatedThemeMeta, ThemePanelDeleteThemePayload, ThemePanelModeOption, ThemePanelPresetOption, ThemePanelProps, ThemePanelSection, ThemePanelUpdateThemePayload } from './ThemePanel.js';
47
47
  export { Timeline, TimelineItemConfig, TimelineProps } from './Timeline.js';
48
48
  import 'react/jsx-runtime';
49
49
  import 'react';
50
50
 
51
51
  /** Package version — bumped by release scripts. */
52
- declare const VERSION = "0.6.7";
52
+ declare const VERSION = "0.6.8";
53
53
 
54
54
  export { VERSION };
package/dist/index.js CHANGED
@@ -1,54 +1,54 @@
1
- export { Tabs } from './chunk-TVUBGXWA.js';
2
- export { THEME_PANEL_DEFAULT_PRESET_OPTIONS, THEME_PANEL_DEFAULT_THEME_PRESETS, ThemePanel } from './chunk-NJCHFXGC.js';
3
- export { Timeline } from './chunk-I4M2RL2X.js';
4
- export { Tooltip } from './chunk-SFAGHPBT.js';
5
- export { Link, Paragraph, Text, Title, Typography } from './chunk-5JNDDWFZ.js';
6
- export { Slider } from './chunk-HU7T64Y3.js';
7
- export { Splitter } from './chunk-7ZNGHWVS.js';
8
- export { StatusBar, StatusBarItem } from './chunk-2SCXQ7QS.js';
9
- export { SURFACE_THEME_PRESETS, Surface } from './chunk-O43DOE7V.js';
1
+ export { Tabs } from './chunk-GVPGJXZT.js';
2
+ export { THEME_PANEL_DEFAULT_PRESET_OPTIONS, THEME_PANEL_DEFAULT_THEME_PRESETS, ThemePanel } from './chunk-ZTIECMCF.js';
3
+ export { Timeline } from './chunk-7IWYBQAE.js';
4
+ export { Tooltip } from './chunk-TWJAYAK2.js';
5
+ export { Link, Paragraph, Text, Title, Typography } from './chunk-NUF3EA7T.js';
6
+ export { Slider } from './chunk-Q5KHJ32P.js';
7
+ export { Splitter } from './chunk-R53WIZY5.js';
8
+ export { StatusBar, StatusBarItem } from './chunk-HR5QBBIS.js';
9
+ export { SURFACE_THEME_PRESETS, Surface } from './chunk-WIZVOZNO.js';
10
10
  import './chunk-6SPMHY54.js';
11
- export { ACCENT_PRESETS, ACCENT_PRESETS_DARK, FONT_STACKS, ThemeProvider, applyTheme, normalizeAccentInput, resolveThemeColorScheme, resolveThemeMode, useTheme, useThemeOptional } from './chunk-7NZ2A4MA.js';
12
- export { Switch } from './chunk-YJEXAO2I.js';
13
- export { TablePro } from './chunk-GUZ2DNDC.js';
14
- export { Table } from './chunk-YSXD344H.js';
15
- export { MessageContainer, ToastContainer, message, toast } from './chunk-W5CJC7S7.js';
16
- export { Modal } from './chunk-N4USDBY2.js';
17
- export { Pagination } from './chunk-2ZFJTMEF.js';
18
- export { Popover } from './chunk-PKHITACT.js';
19
- export { Progress } from './chunk-YVTLHTG6.js';
20
- export { Radio, RadioGroup } from './chunk-HFUHQUPQ.js';
21
- export { Select } from './chunk-7D76MI37.js';
22
- export { Tag } from './chunk-VNNQYJLT.js';
23
- export { Skeleton } from './chunk-PEJLXJQD.js';
24
- export { Drawer } from './chunk-PNZJFLMY.js';
25
- export { Empty } from './chunk-LQLOOUS3.js';
26
- export { Form, FormItem, useForm } from './chunk-SABWUELE.js';
27
- export { Image, ImageGrid, LayeredImage, SpriteImage } from './chunk-2NT5QKEX.js';
28
- export { InputNumber } from './chunk-LI4XJTEA.js';
29
- export { List } from './chunk-OHFZ7L4T.js';
30
- export { Card } from './chunk-J7EQJXSJ.js';
31
- export { Spin } from './chunk-Y5F7ZTBH.js';
32
- export { Cascader } from './chunk-REMJWNAT.js';
33
- export { Checkbox } from './chunk-WXWFMWWF.js';
34
- export { Collapse } from './chunk-AJH2O4WC.js';
35
- export { ColorPicker } from './chunk-GZCU6HXD.js';
36
- export { CommandPalette } from './chunk-NE7IUGMK.js';
37
- export { ContextMenu } from './chunk-SQIWPU6V.js';
38
- export { Divider } from './chunk-MYRLCN6V.js';
39
- export { Alert } from './chunk-3YP7CBJT.js';
40
- export { AppShell, Sidebar, TitleBar, WindowControls } from './chunk-QP7RXZES.js';
41
- export { AutoComplete } from './chunk-ZPP7LTHP.js';
11
+ export { ACCENT_PRESETS, ACCENT_PRESETS_DARK, FONT_STACKS, ThemeProvider, applyTheme, normalizeAccentInput, resolveThemeColorScheme, resolveThemeMode, useTheme, useThemeOptional } from './chunk-7ZCTEIOW.js';
12
+ export { Switch } from './chunk-6VSNO7IH.js';
13
+ export { TablePro } from './chunk-N24KHD5B.js';
14
+ export { Table } from './chunk-FZITSOKH.js';
15
+ export { MessageContainer, ToastContainer, message, toast } from './chunk-62RPBEAW.js';
16
+ export { Modal } from './chunk-SGNDIRZC.js';
17
+ export { Pagination } from './chunk-5CWTC3I2.js';
18
+ export { Popover } from './chunk-QKWRN2JL.js';
19
+ export { Progress } from './chunk-44WHEN76.js';
20
+ export { Radio, RadioGroup } from './chunk-P434GBHP.js';
21
+ export { Select } from './chunk-MOLKLUSQ.js';
22
+ export { Tag } from './chunk-I5XCHN67.js';
23
+ export { Skeleton } from './chunk-JPAYPF6H.js';
24
+ export { Drawer } from './chunk-EXN64ADJ.js';
25
+ export { Empty } from './chunk-RYRBNMCC.js';
26
+ export { Form, FormItem, useForm } from './chunk-ACZA7HHP.js';
27
+ export { Image, ImageGrid, LayeredImage, SpriteImage } from './chunk-GEANNF4T.js';
28
+ export { InputNumber } from './chunk-3VXBSLPT.js';
29
+ export { List } from './chunk-Q77BWQNG.js';
30
+ export { Card } from './chunk-BKI7JY4Z.js';
31
+ export { Spin } from './chunk-3GJZRYTD.js';
32
+ export { Cascader } from './chunk-FPII6I52.js';
33
+ export { Checkbox } from './chunk-PHONNUK2.js';
34
+ export { Collapse } from './chunk-OVTB7FQQ.js';
35
+ export { ColorPicker } from './chunk-AHS2AFTD.js';
36
+ export { CommandPalette } from './chunk-64ZQHLHL.js';
37
+ export { ContextMenu } from './chunk-XN52S7PT.js';
38
+ export { Divider } from './chunk-PWPL3DRN.js';
39
+ export { Alert } from './chunk-762NV3E4.js';
40
+ export { AppShell, Sidebar, TitleBar, WindowControls } from './chunk-WIBAYFBB.js';
41
+ export { AutoComplete } from './chunk-ZCMFLRZS.js';
42
42
  import './chunk-DUFRASGO.js';
43
- export { Input, InputPassword } from './chunk-XVP7IKLZ.js';
44
- export { TextArea, Textarea } from './chunk-56PHETWO.js';
45
- export { Avatar } from './chunk-KMG7OMOS.js';
46
- export { Badge } from './chunk-NFXHIO3G.js';
47
- export { Button } from './chunk-CNGKJYGZ.js';
48
- export { Calendar } from './chunk-CEZ2DR4R.js';
49
- 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-YT5NLCRC.js';
43
+ export { Input, InputPassword } from './chunk-QDXBI3PV.js';
44
+ export { TextArea, Textarea } from './chunk-7DNK5JB2.js';
45
+ export { Avatar } from './chunk-TJB7U72Z.js';
46
+ export { Badge } from './chunk-BY2YW5XN.js';
47
+ export { Button, IconButton } from './chunk-VRA4CQCJ.js';
48
+ export { Calendar } from './chunk-W72IIGOV.js';
49
+ 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-SNX4FZYB.js';
50
50
 
51
51
  // src/index.ts
52
- var VERSION = "0.6.7";
52
+ var VERSION = "0.6.8";
53
53
 
54
54
  export { VERSION };
package/dist/styles.css CHANGED
@@ -125,6 +125,26 @@
125
125
  --dur: 220ms;
126
126
  --dur-slow: 360ms;
127
127
  }
128
+ /* Explicit light reset for scoped ThemeProvider instances.
129
+ :root already has these defaults, but nested [data-theme="light"] must not
130
+ inherit a dark or custom parent surface. */
131
+ :root[data-theme="light"],
132
+ [data-theme="light"] {
133
+ --bg: #e8eef5;
134
+ --bg-raised: #edf2f8;
135
+ --bg-sunken: #dde4ed;
136
+ --fg: #3a4558;
137
+ --fg-muted: #7b8599;
138
+ --fg-subtle: #9ca7ba;
139
+ --border: rgba(130, 148, 175, 0.14);
140
+ --divider: rgba(130, 148, 175, 0.18);
141
+ --shadow-dark: rgba(163, 177, 198, 0.55);
142
+ --shadow-light: rgba(255, 255, 255, 0.95);
143
+ --shadow-offset: calc(6px * var(--d) * var(--shadow-scale));
144
+ --shadow-blur: calc(16px * var(--d) * var(--shadow-scale));
145
+ --shadow-inset-offset: calc(4px * var(--d) * var(--shadow-scale));
146
+ --shadow-inset-blur: calc(10px * var(--d) * var(--shadow-scale));
147
+ }
128
148
  /* ---- Dark theme ----
129
149
  深色模式的拟态不能照搬浅色思路:白色高光会变成刺眼的白圈。
130
150
  这里做法:保留深色阴影给"下沉"深度,把"上凸高光"压到很低 alpha,
@@ -3816,6 +3836,64 @@ input, textarea, select { font-family: inherit; color: inherit; }
3816
3836
  .theme-panel-shadow {
3817
3837
  gap: 7px;
3818
3838
  }
3839
+ .theme-panel-advanced-row {
3840
+ gap: 10px;
3841
+ }
3842
+ .theme-panel .theme-panel-advanced-toggle.btn {
3843
+ justify-content: center;
3844
+ }
3845
+ .theme-panel-live-advanced {
3846
+ display: flex;
3847
+ flex-direction: column;
3848
+ gap: 10px;
3849
+ padding: 10px;
3850
+ border-radius: var(--r-md);
3851
+ background: var(--bg);
3852
+ box-shadow: var(--neu-shadow-inset);
3853
+ }
3854
+ .theme-panel-advanced-actions {
3855
+ display: flex;
3856
+ flex-direction: column;
3857
+ gap: 8px;
3858
+ padding-top: 10px;
3859
+ border-top: 1px solid var(--divider);
3860
+ }
3861
+ .theme-panel-save-as-field {
3862
+ display: grid;
3863
+ grid-template-columns: auto minmax(0, 1fr);
3864
+ gap: 8px;
3865
+ align-items: center;
3866
+ }
3867
+ .theme-panel-save-as-field > span {
3868
+ color: var(--fg-muted);
3869
+ font-size: 11px;
3870
+ font-weight: 800;
3871
+ white-space: nowrap;
3872
+ }
3873
+ .theme-panel-advanced-footer {
3874
+ display: grid;
3875
+ grid-template-columns: minmax(0, 1fr) auto;
3876
+ gap: 8px;
3877
+ align-items: center;
3878
+ }
3879
+ .theme-panel-advanced-footer > span {
3880
+ min-width: 0;
3881
+ color: var(--fg-subtle);
3882
+ font-family: var(--font-mono);
3883
+ font-size: 10px;
3884
+ overflow: hidden;
3885
+ text-overflow: ellipsis;
3886
+ white-space: nowrap;
3887
+ }
3888
+ .theme-panel-advanced-buttons {
3889
+ display: flex;
3890
+ flex-wrap: wrap;
3891
+ justify-content: flex-end;
3892
+ gap: 6px;
3893
+ }
3894
+ .theme-panel-advanced-buttons .btn {
3895
+ white-space: nowrap;
3896
+ }
3819
3897
  .theme-panel-create-preview {
3820
3898
  min-height: 36px;
3821
3899
  display: flex;
@@ -126,6 +126,27 @@
126
126
  --dur-slow: 360ms;
127
127
  }
128
128
 
129
+ /* Explicit light reset for scoped ThemeProvider instances.
130
+ :root already has these defaults, but nested [data-theme="light"] must not
131
+ inherit a dark or custom parent surface. */
132
+ :root[data-theme="light"],
133
+ [data-theme="light"] {
134
+ --bg: #e8eef5;
135
+ --bg-raised: #edf2f8;
136
+ --bg-sunken: #dde4ed;
137
+ --fg: #3a4558;
138
+ --fg-muted: #7b8599;
139
+ --fg-subtle: #9ca7ba;
140
+ --border: rgba(130, 148, 175, 0.14);
141
+ --divider: rgba(130, 148, 175, 0.18);
142
+ --shadow-dark: rgba(163, 177, 198, 0.55);
143
+ --shadow-light: rgba(255, 255, 255, 0.95);
144
+ --shadow-offset: calc(6px * var(--d) * var(--shadow-scale));
145
+ --shadow-blur: calc(16px * var(--d) * var(--shadow-scale));
146
+ --shadow-inset-offset: calc(4px * var(--d) * var(--shadow-scale));
147
+ --shadow-inset-blur: calc(10px * var(--d) * var(--shadow-scale));
148
+ }
149
+
129
150
  /* ---- Dark theme ----
130
151
  深色模式的拟态不能照搬浅色思路:白色高光会变成刺眼的白圈。
131
152
  这里做法:保留深色阴影给"下沉"深度,把"上凸高光"压到很低 alpha,
package/dist/tokens.css CHANGED
@@ -126,6 +126,27 @@
126
126
  --dur-slow: 360ms;
127
127
  }
128
128
 
129
+ /* Explicit light reset for scoped ThemeProvider instances.
130
+ :root already has these defaults, but nested [data-theme="light"] must not
131
+ inherit a dark or custom parent surface. */
132
+ :root[data-theme="light"],
133
+ [data-theme="light"] {
134
+ --bg: #e8eef5;
135
+ --bg-raised: #edf2f8;
136
+ --bg-sunken: #dde4ed;
137
+ --fg: #3a4558;
138
+ --fg-muted: #7b8599;
139
+ --fg-subtle: #9ca7ba;
140
+ --border: rgba(130, 148, 175, 0.14);
141
+ --divider: rgba(130, 148, 175, 0.18);
142
+ --shadow-dark: rgba(163, 177, 198, 0.55);
143
+ --shadow-light: rgba(255, 255, 255, 0.95);
144
+ --shadow-offset: calc(6px * var(--d) * var(--shadow-scale));
145
+ --shadow-blur: calc(16px * var(--d) * var(--shadow-scale));
146
+ --shadow-inset-offset: calc(4px * var(--d) * var(--shadow-scale));
147
+ --shadow-inset-blur: calc(10px * var(--d) * var(--shadow-scale));
148
+ }
149
+
129
150
  /* ---- Dark theme ----
130
151
  深色模式的拟态不能照搬浅色思路:白色高光会变成刺眼的白圈。
131
152
  这里做法:保留深色阴影给"下沉"深度,把"上凸高光"压到很低 alpha,
@@ -2,6 +2,12 @@
2
2
 
3
3
  > 输入时展示建议下拉,不限定必须从候选中选。
4
4
 
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { AutoComplete } from "@fangxinyan/lumina";
9
+ ```
10
+
5
11
  ## 示例
6
12
 
7
13
  ### 基础
@@ -5,7 +5,7 @@
5
5
  ## 导入
6
6
 
7
7
  ```tsx
8
- import { Button } from "@fangxinyan/lumina";
8
+ import { Button, IconButton } from "@fangxinyan/lumina";
9
9
  ```
10
10
 
11
11
  ## 示例
@@ -62,12 +62,12 @@ block 让按钮撑满容器宽度,常用于底部主操作或表单提交。
62
62
 
63
63
  ### 纯图标按钮
64
64
 
65
- Button 在只有 icon 时自动呈现为方形按钮,常配合 tip 使用。
65
+ IconButton 是 Button 的方形图标专用封装;Button 在只有 icon 时也会自动呈现为同样形态。
66
66
 
67
67
  ```tsx
68
68
  <Button icon="heart" tip="收藏" />
69
- <Button icon="bell" tip="通知" />
70
- <Button icon="settings" tip="设置" />
69
+ <IconButton icon="bell" tip="通知" />
70
+ <IconButton icon="settings" tip="设置" />
71
71
  ```
72
72
 
73
73
  ## API
@@ -88,5 +88,17 @@ Button 在只有 icon 时自动呈现为方形按钮,常配合 tip 使用。
88
88
  | onClick | `(e: MouseEvent) => void` | — | 点击回调 |
89
89
 
90
90
 
91
+ **IconButton**
92
+
93
+ | Prop | 类型 | 默认 | 说明 |
94
+ | --- | --- | --- | --- |
95
+ | icon \* | `IconName | ReactNode` | — | 按钮图标,可传内置图标名或自定义节点 |
96
+ | tip | `string` | — | 原生悬浮提示,也会作为缺省 aria-label |
97
+ | variant | `"default" | "primary" | "ghost" | "danger"` | `"default"` | 按钮风格 |
98
+ | size | `"sm" | "md" | "lg"` | `"md"` | 按钮尺寸 |
99
+ | loading | `boolean` | `false` | 加载态 |
100
+ | disabled | `boolean` | `false` | 禁用 |
101
+
102
+
91
103
  ---
92
104
  [← 回到索引](../llms.md)
@@ -2,6 +2,12 @@
2
2
 
3
3
  > 全局命令搜索与执行入口。
4
4
 
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { CommandPalette } from "@fangxinyan/lumina";
9
+ ```
10
+
5
11
  ## 示例
6
12
 
7
13
  ### 基础 + 快捷键
@@ -2,6 +2,12 @@
2
2
 
3
3
  > 桌面应用风格的右键上下文菜单。
4
4
 
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { ContextMenu } from "@fangxinyan/lumina";
9
+ ```
10
+
5
11
  ## 示例
6
12
 
7
13
  ### 基础
package/docs/llms/form.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  > 受控表单,字段绑定 + 校验。
4
4
 
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Form, FormItem } from "@fangxinyan/lumina";
9
+ ```
10
+
5
11
  ## 示例
6
12
 
7
13
  ### 基础
@@ -2,6 +2,12 @@
2
2
 
3
3
  > 带步进按钮的数字输入框。
4
4
 
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { InputNumber } from "@fangxinyan/lumina";
9
+ ```
10
+
5
11
  ## 示例
6
12
 
7
13
  ### 基础
@@ -2,6 +2,12 @@
2
2
 
3
3
  > 两栏之间可拖拽的分隔条,支持横向、纵向与嵌套。
4
4
 
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Splitter } from "@fangxinyan/lumina";
9
+ ```
10
+
5
11
  ## 示例
6
12
 
7
13
  ### 水平分栏
@@ -2,6 +2,12 @@
2
2
 
3
3
  > 窗口底部状态栏,展示分支、编码、行列等应用元信息。
4
4
 
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { StatusBar, StatusBarItem } from "@fangxinyan/lumina";
9
+ ```
10
+
5
11
  ## 示例
6
12
 
7
13
  ### 基础
@@ -50,6 +50,8 @@ TablePro 直接透传 expandable 到 Table。
50
50
  | actions | `ReactNode` | — | 工具栏右侧操作 |
51
51
  | footer | `ReactNode` | — | 底部 (可选,传了会渲染在分页下方) |
52
52
  | title | `ReactNode` | — | 工具栏标题 |
53
+ | className / style / id / data-* / aria-* | `native attrs` | — | 透传到外层 table-card 根节点 |
54
+ | tableClassName / tableStyle | `string / CSSProperties` | — | 透传到内部 Table |
53
55
 
54
56
 
55
57
  ---
@@ -0,0 +1,83 @@
1
+ # Textarea 多行输入
2
+
3
+ > 多行文本输入域,支持清除、字数统计、错误态和原生 textarea 属性。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Textarea, TextArea, Input } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 基础用法
14
+
15
+ Textarea 直接暴露原生 textarea ref 和常用原生属性。
16
+
17
+ ```tsx
18
+ const [notes, setNotes] = useState("");
19
+
20
+ <Textarea
21
+ value={notes}
22
+ onValueChange={setNotes}
23
+ rows={4}
24
+ placeholder="写点什么..."
25
+ />
26
+ ```
27
+
28
+ ### 可清除与字数统计
29
+
30
+ allowClear、maxLength、showCount 可组合使用,适合受限文本输入。
31
+
32
+ ```tsx
33
+ <Textarea
34
+ value={feedback}
35
+ onValueChange={setFeedback}
36
+ allowClear
37
+ maxLength={160}
38
+ showCount
39
+ placeholder="最多输入 160 个字"
40
+ />
41
+ ```
42
+
43
+ ### 错误与禁用
44
+
45
+ invalid 只负责视觉状态;错误文案通常交给 Field 或 Form.Item 展示。
46
+
47
+ ```tsx
48
+ <Textarea invalid defaultValue="太短" />
49
+ <Textarea disabled defaultValue="只读说明..." />
50
+ ```
51
+
52
+ ### Input.TextArea 别名
53
+
54
+ 当表单统一从 Input 命名空间取控件时,Input.TextArea 与 Textarea 等价。
55
+
56
+ ```tsx
57
+ <Input.TextArea
58
+ defaultValue="Input.TextArea 与 Textarea 使用同一套能力"
59
+ allowClear
60
+ showCount
61
+ />
62
+ ```
63
+
64
+ ## API
65
+
66
+ **Textarea / TextArea / Input.TextArea**
67
+
68
+ | Prop | 类型 | 默认 | 说明 |
69
+ | --- | --- | --- | --- |
70
+ | value / defaultValue | `string` | — | 受控值 / 初值 |
71
+ | onChange | `(event) => void` | — | 变更回调,传入 React 原生事件 |
72
+ | onValueChange | `(value: string, event) => void` | — | 值回调便捷写法 |
73
+ | allowClear | `boolean` | `false` | 右上角显示清除按钮 |
74
+ | maxLength | `number` | — | 最大字符数,透传至原生 textarea |
75
+ | showCount | `boolean` | `false` | 显示字数统计;有 maxLength 时显示 N / max |
76
+ | invalid | `boolean` | `false` | 错误态 |
77
+ | disabled | `boolean` | `false` | 禁用 |
78
+ | rows | `number` | — | 文本域可见行数,透传至原生 textarea |
79
+ | className / style / id / data-* / aria-* | `native attrs` | — | 透传至原生 textarea |
80
+
81
+
82
+ ---
83
+ [← 回到索引](../llms.md)
@@ -12,7 +12,7 @@ import { ThemeProvider, ThemePanel, THEME_PANEL_DEFAULT_PRESET_OPTIONS, THEME_PA
12
12
 
13
13
  ### 完整面板
14
14
 
15
- 默认包含浅色、深色、瓷白、助手、助手暗五个主题卡片,并提供简洁/深度两档新建主题入口;其余控制项直接驱动 useTheme。
15
+ 默认包含浅色、深色、瓷白、助手、助手暗五个主题卡片,并提供简洁/深度两档新建主题入口;高级调整区可编辑当前主题的 token、palette 和自定义字体,默认主题另存时可填写新主题名和副标题,非默认主题可直接改名、修改副标题后保存。
16
16
 
17
17
  ```tsx
18
18
  <ThemeProvider>
@@ -22,7 +22,7 @@ import { ThemeProvider, ThemePanel, THEME_PANEL_DEFAULT_PRESET_OPTIONS, THEME_PA
22
22
 
23
23
  ### 外部保存与回灌
24
24
 
25
- onCreateTheme / onDeleteTheme 会把新建和删除事件交给业务侧;业务侧保存后通过 ThemeProvider themes 回灌。
25
+ onCreateTheme / onUpdateTheme / onDeleteTheme 会把新建、另存为、更新和删除事件交给业务侧;主题名和卡片第二行副标题会分别通过 payload.label / payload.description 传出,业务侧保存后通过 ThemeProvider themes 回灌。
26
26
 
27
27
  ```tsx
28
28
  import { ThemeProvider, ThemePanel, type ThemePresets } from "lumina";
@@ -45,6 +45,13 @@ const [themes, setThemes] = React.useState<ThemePresets>({});
45
45
  });
46
46
  deleteThemeFromServerOrStorage(payload);
47
47
  }}
48
+ onUpdateTheme={(payload) => {
49
+ setThemes((current) => ({
50
+ ...current,
51
+ [String(payload.key)]: payload.preset,
52
+ }));
53
+ saveThemeToServerOrStorage(payload);
54
+ }}
48
55
  />
49
56
  </ThemeProvider>
50
57
  ```
@@ -71,16 +78,18 @@ const [themes, setThemes] = React.useState<ThemePresets>({});
71
78
  | --- | --- | --- | --- |
72
79
  | title | `ReactNode` | `"主题"` | 面板标题;传 null 可隐藏标题文本 |
73
80
  | description | `ReactNode` | `"快速调整当前 Lumina 主题"` | 面板副标题 |
74
- | sections | `ThemePanelSection[]` | — | 展示的控制区及顺序;shadow 区同时控制 intensity / shadow-scale / shadow-float-scale |
81
+ | sections | `ThemePanelSection[]` | — | 展示的控制区及顺序;advanced 区提供完整 token / palette 编辑,shadow 区同时控制 intensity / shadow-scale / shadow-float-scale |
75
82
  | modeOptions | `ThemePanelModeOption[]` | — | 模式切换项 |
76
83
  | presetOptions | `ThemePanelPresetOption[]` | — | 命名主题预设卡片;不传时使用浅色/深色/瓷白/助手/助手暗 + theme.themes,也可完全由业务侧控制 |
77
84
  | defaultCustomAccent | `string` | `"#845ef7"` | 自定义强调色初始值 |
78
85
  | allowCreateTheme | `boolean` | `true` | 在预设区显示新建主题流程 |
79
86
  | defaultCreateThemeName | `string` | `"我的主题"` | 新建主题的默认名称 |
80
87
  | createThemeKeyPrefix | `string` | `"user"` | 生成自建主题 mode key 时使用的前缀 |
81
- | onCreateTheme | `(payload: ThemePanelCreateThemePayload) => void` | — | 保存自建主题后的回调,业务侧可把 payload.preset 存起来并通过 ThemeProvider themes 回灌 |
88
+ | onCreateTheme | `(payload: ThemePanelCreateThemePayload) => void` | — | 保存自建主题或高级区命名另存为后的回调;主题名和副标题通过 payload.label / payload.description 传出,业务侧可把 payload.preset 存起来并通过 ThemeProvider themes 回灌 |
82
89
  | allowDeleteTheme | `boolean` | `true` | 为非默认主题显示删除按钮;默认主题不会显示删除入口 |
83
90
  | onDeleteTheme | `(payload: ThemePanelDeleteThemePayload) => void` | — | 删除非默认主题后的回调,业务侧可同步删除外部存储 |
91
+ | allowUpdateTheme | `boolean` | `true` | 在高级调整区为非默认主题显示保存修改能力;默认主题保存时会另存为新主题 |
92
+ | onUpdateTheme | `(payload: ThemePanelUpdateThemePayload) => void` | — | 覆盖保存非默认主题修改后的回调;名称和副标题修改通过 payload.label / payload.description 传出,另存为仍走 onCreateTheme |
84
93
  | showReset | `boolean` | `true` | 显示重置按钮 |
85
94
  | compact | `boolean` | `false` | 紧凑布局 |
86
95
 
@@ -109,11 +118,23 @@ const [themes, setThemes] = React.useState<ThemePresets>({});
109
118
  | --- | --- | --- | --- |
110
119
  | key | `ThemeMode` | — | 保存后注册到 ThemeProvider 的 mode key |
111
120
  | label | `string` | — | 用户输入的主题名称 |
112
- | description | `string` | — | ThemePanel 生成的说明文案,如自建亮/自建暗 |
121
+ | description | `string` | — | 用户输入的主题副标题,会显示在主题卡片第二行 |
113
122
  | preset | `ThemePreset` | — | 最终保存到 theme.themes 的主题配置 |
114
123
  | presetOption | `ThemePanelPresetOption` | — | 可直接追加到受控 presetOptions 的卡片配置 |
115
124
 
116
125
 
126
+ **ThemePanelUpdateThemePayload**
127
+
128
+ | Prop | 类型 | 默认 | 说明 |
129
+ | --- | --- | --- | --- |
130
+ | key | `ThemeMode` | — | 被更新的主题 mode key |
131
+ | label | `string` | — | 被更新主题的展示名称 |
132
+ | description | `string` | — | 被更新主题的副标题,会显示在主题卡片第二行 |
133
+ | preset | `ThemePreset` | — | 从当前面板状态生成的新主题配置 |
134
+ | previousPreset | `ThemePreset` | — | 更新前的主题配置 |
135
+ | presetOption | `ThemePanelPresetOption` | — | 可直接回灌到受控 presetOptions 的卡片配置 |
136
+
137
+
117
138
  **ThemePanelDeleteThemePayload**
118
139
 
119
140
  | Prop | 类型 | 默认 | 说明 |
@@ -2,6 +2,12 @@
2
2
 
3
3
  > 垂直时间线,支持等待状态、自定义圆点、交替布局
4
4
 
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Timeline } from "@fangxinyan/lumina";
9
+ ```
10
+
5
11
  ## 示例
6
12
 
7
13
  ### 基础用法
@@ -5,7 +5,7 @@
5
5
  ## 导入
6
6
 
7
7
  ```tsx
8
- import { Typography } from "@fangxinyan/lumina";
8
+ import { Typography, Title, Text, Paragraph, Link } from "@fangxinyan/lumina";
9
9
  ```
10
10
 
11
11
  ## 示例
package/docs/llms.md CHANGED
@@ -3,7 +3,7 @@
3
3
  > 拟态风格的 React 18 组件库,目标是 Electron 桌面应用。**写给 AI 编程助手**的按需文档 —— 每个组件单独一个 `.md`,避免一次性读取全部。示例源自 playground 的 demo,可直接复制运行。
4
4
 
5
5
  - **包名**: `@fangxinyan/lumina`
6
- - **版本**: `0.6.7`
6
+ - **版本**: `0.6.8`
7
7
  - **React 最低版本**: 18
8
8
  - **环境**: 带打包器的 React 工程(Vite / Next.js / Webpack / Remix / Electron + Vite 等)
9
9
  - **零运行时依赖**: 只依赖 `react` / `react-dom` (peer deps)
@@ -55,6 +55,7 @@
55
55
  ### 表单
56
56
 
57
57
  - [Input 输入框](./llms/input.md) — 凹陷凹槽式输入域,支持前后置图标、错误态、禁用态。
58
+ - [Textarea 多行输入](./llms/textarea.md) — 多行文本输入域,支持清除、字数统计、错误态和原生 textarea 属性。
58
59
  - [InputNumber 数字输入](./llms/inputnumber.md) — 带步进按钮的数字输入框。
59
60
  - [Switch 开关](./llms/switch.md) — 二元状态切换器。
60
61
  - [Checkbox 复选框](./llms/checkbox.md) — 在一组选项中进行多项选择,或独立切换某个开关项。