@fangxinyan/lumina 0.1.6 → 0.2.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 (242) hide show
  1. package/README.md +18 -7
  2. package/dist/{Accordion-GSBY5T5U.css → Accordion-3TQPKNN3.css} +8 -1
  3. package/dist/Accordion.cjs +2 -2
  4. package/dist/Accordion.d.cts +12 -0
  5. package/dist/Accordion.d.ts +12 -0
  6. package/dist/Accordion.js +1 -1
  7. package/dist/{Alert-LSKBYDRI.css → Alert-JJ7GB3UU.css} +11 -0
  8. package/dist/Alert.cjs +2 -2
  9. package/dist/Alert.d.cts +4 -0
  10. package/dist/Alert.d.ts +4 -0
  11. package/dist/Alert.js +1 -1
  12. package/dist/{Avatar-OXDSG5Q6.css → Avatar-R5A4AFKZ.css} +4 -0
  13. package/dist/Avatar.cjs +2 -2
  14. package/dist/Avatar.d.cts +2 -0
  15. package/dist/Avatar.d.ts +2 -0
  16. package/dist/Avatar.js +1 -1
  17. package/dist/{Button-5UI7QXGU.css → Button-SDQD25AG.css} +2 -0
  18. package/dist/Button.cjs +3 -3
  19. package/dist/Button.d.cts +2 -0
  20. package/dist/Button.d.ts +2 -0
  21. package/dist/Button.js +1 -1
  22. package/dist/Calendar.cjs +2 -2
  23. package/dist/Calendar.d.cts +8 -0
  24. package/dist/Calendar.d.ts +8 -0
  25. package/dist/Calendar.js +1 -1
  26. package/dist/{Card-2CHHFD4Y.css → Card-RG7ECXL2.css} +11 -0
  27. package/dist/Card.cjs +3 -3
  28. package/dist/Card.d.cts +2 -0
  29. package/dist/Card.d.ts +2 -0
  30. package/dist/Card.js +1 -1
  31. package/dist/{Divider-Z37INS5E.css → Divider-OEE4Q2KS.css} +31 -0
  32. package/dist/Divider.cjs +2 -2
  33. package/dist/Divider.d.cts +7 -0
  34. package/dist/Divider.d.ts +7 -0
  35. package/dist/Divider.js +1 -1
  36. package/dist/{Empty-VM23UNLQ.css → Empty-NQ72W3D7.css} +22 -0
  37. package/dist/Empty.cjs +4 -4
  38. package/dist/Empty.d.cts +42 -2
  39. package/dist/Empty.d.ts +42 -2
  40. package/dist/Empty.js +1 -1
  41. package/dist/Input-33CAH4O6.css +134 -0
  42. package/dist/Input.cjs +3 -3
  43. package/dist/Input.d.cts +17 -1
  44. package/dist/Input.d.ts +17 -1
  45. package/dist/Input.js +1 -1
  46. package/dist/Modal.cjs +3 -3
  47. package/dist/Modal.js +2 -2
  48. package/dist/{Pagination-6FFOI4NM.css → Pagination-YIRYJUXP.css} +33 -0
  49. package/dist/Pagination.cjs +5 -2
  50. package/dist/Pagination.d.cts +14 -0
  51. package/dist/Pagination.d.ts +14 -0
  52. package/dist/Pagination.js +4 -1
  53. package/dist/Select.cjs +3 -3
  54. package/dist/Select.js +2 -2
  55. package/dist/{Slider-RE4HZQKF.css → Slider-X4PVA65R.css} +51 -2
  56. package/dist/Slider.cjs +2 -2
  57. package/dist/Slider.d.cts +20 -5
  58. package/dist/Slider.d.ts +20 -5
  59. package/dist/Slider.js +1 -1
  60. package/dist/Switch-36KJNDXM.css +92 -0
  61. package/dist/Switch.cjs +2 -2
  62. package/dist/Switch.d.cts +4 -0
  63. package/dist/Switch.d.ts +4 -0
  64. package/dist/Switch.js +1 -1
  65. package/dist/Table-YKVM42SW.css +295 -0
  66. package/dist/Table.cjs +7 -3
  67. package/dist/Table.d.cts +103 -7
  68. package/dist/Table.d.ts +103 -7
  69. package/dist/Table.js +5 -1
  70. package/dist/{Tabs-A27TSZOP.css → Tabs-RHK6XAFF.css} +7 -0
  71. package/dist/Tabs.cjs +3 -3
  72. package/dist/Tabs.d.cts +2 -0
  73. package/dist/Tabs.d.ts +2 -0
  74. package/dist/Tabs.js +1 -1
  75. package/dist/{Tag-EYOY3UWG.css → Tag-FGDY3W7E.css} +2 -0
  76. package/dist/Tag.cjs +3 -3
  77. package/dist/Tag.d.cts +5 -0
  78. package/dist/Tag.d.ts +5 -0
  79. package/dist/Tag.js +1 -1
  80. package/dist/chunk-437LB2V4.js +111 -0
  81. package/dist/chunk-437LB2V4.js.map +1 -0
  82. package/dist/chunk-4MR4GVTD.js +73 -0
  83. package/dist/chunk-4MR4GVTD.js.map +1 -0
  84. package/dist/{chunk-OXYFB2ZI.js → chunk-4U4OY5RA.js} +11 -5
  85. package/dist/chunk-4U4OY5RA.js.map +1 -0
  86. package/dist/{chunk-5EYI27B6.js → chunk-77BVQNAQ.js} +5 -3
  87. package/dist/chunk-77BVQNAQ.js.map +1 -0
  88. package/dist/{chunk-3QWHDCHJ.js → chunk-AJZKESHB.js} +13 -4
  89. package/dist/chunk-AJZKESHB.js.map +1 -0
  90. package/dist/{chunk-NZPJ7BUB.cjs → chunk-AXMEZGEG.cjs} +13 -4
  91. package/dist/chunk-AXMEZGEG.cjs.map +1 -0
  92. package/dist/{chunk-HTP6UEVR.js → chunk-BBPNQ44M.js} +22 -6
  93. package/dist/chunk-BBPNQ44M.js.map +1 -0
  94. package/dist/{chunk-QQXIWOI3.cjs → chunk-CCBHZYE6.cjs} +5 -5
  95. package/dist/{chunk-QQXIWOI3.cjs.map → chunk-CCBHZYE6.cjs.map} +1 -1
  96. package/dist/chunk-E6R63QOL.js +476 -0
  97. package/dist/chunk-E6R63QOL.js.map +1 -0
  98. package/dist/{chunk-KGYLUZOU.cjs → chunk-EPFYIR63.cjs} +5 -5
  99. package/dist/{chunk-KGYLUZOU.cjs.map → chunk-EPFYIR63.cjs.map} +1 -1
  100. package/dist/chunk-F7HW2PYR.cjs +119 -0
  101. package/dist/chunk-F7HW2PYR.cjs.map +1 -0
  102. package/dist/chunk-GIVMKGZN.js +39 -0
  103. package/dist/chunk-GIVMKGZN.js.map +1 -0
  104. package/dist/{chunk-FMG3ZPGK.js → chunk-H6FCIJOP.js} +5 -3
  105. package/dist/chunk-H6FCIJOP.js.map +1 -0
  106. package/dist/{chunk-ALFDP5WX.cjs → chunk-IDM6JJLP.cjs} +22 -6
  107. package/dist/chunk-IDM6JJLP.cjs.map +1 -0
  108. package/dist/{chunk-I2ERCHFV.cjs → chunk-JKLQOB2F.cjs} +11 -5
  109. package/dist/chunk-JKLQOB2F.cjs.map +1 -0
  110. package/dist/{chunk-IGHLSNXT.cjs → chunk-K7PVJLW4.cjs} +51 -4
  111. package/dist/chunk-K7PVJLW4.cjs.map +1 -0
  112. package/dist/chunk-LDENBYRC.cjs +210 -0
  113. package/dist/chunk-LDENBYRC.cjs.map +1 -0
  114. package/dist/{chunk-OOBSH7EL.js → chunk-LSLYY5FN.js} +3 -3
  115. package/dist/{chunk-OOBSH7EL.js.map → chunk-LSLYY5FN.js.map} +1 -1
  116. package/dist/chunk-NSUD5B22.js +187 -0
  117. package/dist/chunk-NSUD5B22.js.map +1 -0
  118. package/dist/{chunk-AAMYURWQ.cjs → chunk-OPTTHURA.cjs} +5 -3
  119. package/dist/chunk-OPTTHURA.cjs.map +1 -0
  120. package/dist/{chunk-F3NHM4GX.js → chunk-OYGFMXAA.js} +13 -4
  121. package/dist/chunk-OYGFMXAA.js.map +1 -0
  122. package/dist/chunk-PBBHUUXU.cjs +133 -0
  123. package/dist/chunk-PBBHUUXU.cjs.map +1 -0
  124. package/dist/chunk-RDLPX7RK.cjs +95 -0
  125. package/dist/chunk-RDLPX7RK.cjs.map +1 -0
  126. package/dist/chunk-SBMOIE5C.cjs +499 -0
  127. package/dist/chunk-SBMOIE5C.cjs.map +1 -0
  128. package/dist/{chunk-XFRP2MBR.js → chunk-TYQ5CN2C.js} +51 -4
  129. package/dist/chunk-TYQ5CN2C.js.map +1 -0
  130. package/dist/{chunk-7CKHWCEA.cjs → chunk-TZSWDH5T.cjs} +5 -3
  131. package/dist/chunk-TZSWDH5T.cjs.map +1 -0
  132. package/dist/{chunk-VMHNKD3N.cjs → chunk-URF6RBW6.cjs} +13 -4
  133. package/dist/chunk-URF6RBW6.cjs.map +1 -0
  134. package/dist/{chunk-G3UWXSNQ.js → chunk-V34OPWKZ.js} +5 -4
  135. package/dist/chunk-V34OPWKZ.js.map +1 -0
  136. package/dist/{chunk-ITGCHU3Y.cjs → chunk-VICGQC6G.cjs} +5 -4
  137. package/dist/chunk-VICGQC6G.cjs.map +1 -0
  138. package/dist/chunk-YEOARJKR.cjs +40 -0
  139. package/dist/chunk-YEOARJKR.cjs.map +1 -0
  140. package/dist/chunk-Z5X5AMLA.cjs +41 -0
  141. package/dist/chunk-Z5X5AMLA.cjs.map +1 -0
  142. package/dist/chunk-Z7P6QGMT.js +115 -0
  143. package/dist/chunk-Z7P6QGMT.js.map +1 -0
  144. package/dist/{chunk-OYH6A7IQ.js → chunk-ZVCMXDTP.js} +3 -3
  145. package/dist/{chunk-OYH6A7IQ.js.map → chunk-ZVCMXDTP.js.map} +1 -1
  146. package/dist/chunk-ZWP4LSS3.js +38 -0
  147. package/dist/chunk-ZWP4LSS3.js.map +1 -0
  148. package/dist/index.cjs +43 -43
  149. package/dist/index.cjs.map +1 -1
  150. package/dist/index.d.cts +4 -4
  151. package/dist/index.d.ts +4 -4
  152. package/dist/index.js +18 -18
  153. package/dist/index.js.map +1 -1
  154. package/dist/styles.css +455 -30
  155. package/docs/llms/accordion.md +66 -0
  156. package/docs/llms/alert.md +64 -0
  157. package/docs/llms/avatar.md +55 -0
  158. package/docs/llms/badge.md +41 -0
  159. package/docs/llms/button.md +122 -0
  160. package/docs/llms/calendar.md +44 -0
  161. package/docs/llms/card.md +68 -0
  162. package/docs/llms/cascader.md +33 -0
  163. package/docs/llms/checkbox.md +41 -0
  164. package/docs/llms/colorpicker.md +82 -0
  165. package/docs/llms/divider.md +69 -0
  166. package/docs/llms/drawer.md +70 -0
  167. package/docs/llms/empty.md +52 -0
  168. package/docs/llms/icon.md +34 -0
  169. package/docs/llms/image.md +39 -0
  170. package/docs/llms/input.md +127 -0
  171. package/docs/llms/intro.md +6 -0
  172. package/docs/llms/list.md +41 -0
  173. package/docs/llms/modal.md +89 -0
  174. package/docs/llms/pagination.md +82 -0
  175. package/docs/llms/popover.md +34 -0
  176. package/docs/llms/progress.md +58 -0
  177. package/docs/llms/radio.md +43 -0
  178. package/docs/llms/select.md +99 -0
  179. package/docs/llms/sidebar.md +43 -0
  180. package/docs/llms/skeleton.md +88 -0
  181. package/docs/llms/slider.md +72 -0
  182. package/docs/llms/spinner.md +58 -0
  183. package/docs/llms/switch.md +60 -0
  184. package/docs/llms/table.md +188 -0
  185. package/docs/llms/tablepro.md +56 -0
  186. package/docs/llms/tabs.md +50 -0
  187. package/docs/llms/tag.md +77 -0
  188. package/docs/llms/theme.md +165 -0
  189. package/docs/llms/titlebar.md +40 -0
  190. package/docs/llms/toast.md +51 -0
  191. package/docs/llms/tooltip.md +38 -0
  192. package/docs/llms/typography.md +103 -0
  193. package/docs/llms/windowcontrols.md +31 -0
  194. package/docs/llms.md +97 -0
  195. package/package.json +8 -2
  196. package/dist/Input-Z526ARZP.css +0 -66
  197. package/dist/Switch-NP7KKJOX.css +0 -44
  198. package/dist/Table-ZDPGWLH3.css +0 -139
  199. package/dist/chunk-2VA2HSL4.cjs +0 -121
  200. package/dist/chunk-2VA2HSL4.cjs.map +0 -1
  201. package/dist/chunk-2W2AJUZW.js +0 -118
  202. package/dist/chunk-2W2AJUZW.js.map +0 -1
  203. package/dist/chunk-3QWHDCHJ.js.map +0 -1
  204. package/dist/chunk-4AA22BOG.js +0 -63
  205. package/dist/chunk-4AA22BOG.js.map +0 -1
  206. package/dist/chunk-5EYI27B6.js.map +0 -1
  207. package/dist/chunk-77NP67ML.cjs +0 -70
  208. package/dist/chunk-77NP67ML.cjs.map +0 -1
  209. package/dist/chunk-7CKHWCEA.cjs.map +0 -1
  210. package/dist/chunk-7NM5BRUX.js +0 -91
  211. package/dist/chunk-7NM5BRUX.js.map +0 -1
  212. package/dist/chunk-7UJI437T.js +0 -49
  213. package/dist/chunk-7UJI437T.js.map +0 -1
  214. package/dist/chunk-AAMYURWQ.cjs.map +0 -1
  215. package/dist/chunk-ALFDP5WX.cjs.map +0 -1
  216. package/dist/chunk-F3NHM4GX.js.map +0 -1
  217. package/dist/chunk-FMG3ZPGK.js.map +0 -1
  218. package/dist/chunk-G3UWXSNQ.js.map +0 -1
  219. package/dist/chunk-HTP6UEVR.js.map +0 -1
  220. package/dist/chunk-I2ERCHFV.cjs.map +0 -1
  221. package/dist/chunk-IBZAGURN.cjs +0 -71
  222. package/dist/chunk-IBZAGURN.cjs.map +0 -1
  223. package/dist/chunk-IGHLSNXT.cjs.map +0 -1
  224. package/dist/chunk-ITGCHU3Y.cjs.map +0 -1
  225. package/dist/chunk-JNFCTYJT.cjs +0 -31
  226. package/dist/chunk-JNFCTYJT.cjs.map +0 -1
  227. package/dist/chunk-JWFVSBVX.cjs +0 -30
  228. package/dist/chunk-JWFVSBVX.cjs.map +0 -1
  229. package/dist/chunk-K67KIKX4.cjs +0 -67
  230. package/dist/chunk-K67KIKX4.cjs.map +0 -1
  231. package/dist/chunk-M6OTFXZA.js +0 -48
  232. package/dist/chunk-M6OTFXZA.js.map +0 -1
  233. package/dist/chunk-NWJW5KLN.js +0 -29
  234. package/dist/chunk-NWJW5KLN.js.map +0 -1
  235. package/dist/chunk-NZPJ7BUB.cjs.map +0 -1
  236. package/dist/chunk-OXYFB2ZI.js.map +0 -1
  237. package/dist/chunk-QT7SJITQ.cjs +0 -114
  238. package/dist/chunk-QT7SJITQ.cjs.map +0 -1
  239. package/dist/chunk-VMHNKD3N.cjs.map +0 -1
  240. package/dist/chunk-VXITDXLW.js +0 -28
  241. package/dist/chunk-VXITDXLW.js.map +0 -1
  242. package/dist/chunk-XFRP2MBR.js.map +0 -1
@@ -0,0 +1,66 @@
1
+ # Accordion 折叠面板
2
+
3
+ > 纵向折叠面板。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Accordion } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 基础
14
+
15
+ ```tsx
16
+ <Accordion items={[{ key, title, content }]} />
17
+ ```
18
+
19
+ ### 多项展开
20
+
21
+ multiple 允许同时展开多个面板。
22
+
23
+ ```tsx
24
+ <Accordion multiple defaultActiveKeys={["1", "2"]} ... />
25
+ ```
26
+
27
+ ### 手风琴模式
28
+
29
+ accordion={true} 同一时刻最多只展开一项;与 multiple 同时传入时 accordion 优先。
30
+
31
+ ```tsx
32
+ <Accordion accordion defaultActiveKeys={["1"]} ... />
33
+ ```
34
+
35
+ ### 仅图标可点
36
+
37
+ collapsible="icon" 将展开触发限制在右侧箭头图标上,标题区域不再响应。
38
+
39
+ ```tsx
40
+ <Accordion collapsible="icon" ... />
41
+ ```
42
+
43
+ ### 禁用展开
44
+
45
+ collapsible="disabled" 会禁用所有项的展开交互。
46
+
47
+ ```tsx
48
+ <Accordion collapsible="disabled" defaultActiveKeys={["1"]} ... />
49
+ ```
50
+
51
+ ## API
52
+
53
+ **Accordion**
54
+
55
+ | Prop | 类型 | 默认 | 说明 |
56
+ | --- | --- | --- | --- |
57
+ | items \* | `AccordionItem[]` | — | 面板数据 |
58
+ | multiple | `boolean` | `false` | 可同时展开多个 |
59
+ | accordion | `boolean` | `false` | 手风琴模式(同一时刻最多一项) |
60
+ | collapsible | `"header" | "icon" | "disabled"` | `"header"` | 展开触发区域 |
61
+ | activeKeys / defaultActiveKeys | `string[]` | — | 受控/初始展开 |
62
+ | onChange | `(keys: string[]) => void` | — | 展开变更 |
63
+
64
+
65
+ ---
66
+ [← 回到索引](../llms.md)
@@ -0,0 +1,64 @@
1
+ # Alert 警告提示
2
+
3
+ > 页面中嵌入的警告/提示。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Alert } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 四种语义
14
+
15
+ ```tsx
16
+ <Alert tone="info" title="标题">内容</Alert>
17
+ ```
18
+
19
+ ### 无标题 / 可关闭
20
+
21
+ ```tsx
22
+ <Alert tone="info" closable>仅一行的简短提示</Alert>
23
+ ```
24
+
25
+ ### 隐藏图标
26
+
27
+ showIcon={false} 可隐藏左侧语义图标,文本更紧凑。
28
+
29
+ ```tsx
30
+ <Alert tone="info" showIcon={false}>纯文本提示</Alert>
31
+ ```
32
+
33
+ ### 自定义操作区
34
+
35
+ action 插槽可以放置按钮等操作元素,位于内容与关闭按钮之间。
36
+
37
+ ```tsx
38
+ <Alert
39
+ tone="warning"
40
+ title="新版本可用"
41
+ action={<Button size="sm" variant="primary">立即更新</Button>}
42
+ closable
43
+ >
44
+ v1.2.0 已发布。
45
+ </Alert>
46
+ ```
47
+
48
+ ## API
49
+
50
+ **Alert**
51
+
52
+ | Prop | 类型 | 默认 | 说明 |
53
+ | --- | --- | --- | --- |
54
+ | tone | `"info" | "success" | "warning" | "danger"` | `"info"` | 语气 |
55
+ | title | `ReactNode` | — | 标题 |
56
+ | icon | `IconName` | — | 自定义图标 |
57
+ | showIcon | `boolean` | `true` | 是否显示语义图标 |
58
+ | action | `ReactNode` | — | 右侧操作区(如按钮) |
59
+ | closable | `boolean` | `false` | 可关闭 |
60
+ | onClose | `() => void` | — | 关闭回调 |
61
+
62
+
63
+ ---
64
+ [← 回到索引](../llms.md)
@@ -0,0 +1,55 @@
1
+ # Avatar 头像
2
+
3
+ > 用图像、首字母代表用户或事物。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Avatar } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 基础
14
+
15
+ 通过 alt 自动生成首字母。
16
+
17
+ ```tsx
18
+ <Avatar alt="金伟" />
19
+ <Avatar alt="陆" size="lg" />
20
+ ```
21
+
22
+ ### 方形头像
23
+
24
+ shape="square" 使用圆角方形,尺寸变化时圆角跟随变化。
25
+
26
+ ```tsx
27
+ <Avatar alt="金" shape="square" />
28
+ <Avatar alt="陆" shape="square" size="lg" />
29
+ ```
30
+
31
+ ### 状态
32
+
33
+ 在右下角显示状态点。
34
+
35
+ ```tsx
36
+ <Avatar alt="金" status="online" />
37
+ <Avatar alt="陆" status="busy" />
38
+ ```
39
+
40
+ ## API
41
+
42
+ **Avatar**
43
+
44
+ | Prop | 类型 | 默认 | 说明 |
45
+ | --- | --- | --- | --- |
46
+ | src | `string` | — | 图片 URL |
47
+ | alt | `string` | — | 替代文本/首字母来源 |
48
+ | initials | `string` | — | 自定义首字母 |
49
+ | size | `number | "sm" | "md" | "lg" | "xl"` | `"md"` | 尺寸 |
50
+ | shape | `"circle" | "square"` | `"circle"` | 形状 |
51
+ | status | `"online" | "busy" | "away" | "offline"` | — | 状态点 |
52
+
53
+
54
+ ---
55
+ [← 回到索引](../llms.md)
@@ -0,0 +1,41 @@
1
+ # Badge 徽标数
2
+
3
+ > 右上角的小型计数或状态指示器。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Badge } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 数字徽标
14
+
15
+ ```tsx
16
+ <Badge count={3}><IconButton icon="bell" /></Badge>
17
+ <Badge count={128} max={99}><IconButton icon="mail" /></Badge>
18
+ ```
19
+
20
+ ### 圆点
21
+
22
+ dot 模式不显示数字,只是状态指示。
23
+
24
+ ```tsx
25
+ <Badge dot><IconButton icon="user" /></Badge>
26
+ ```
27
+
28
+ ## API
29
+
30
+ **Badge**
31
+
32
+ | Prop | 类型 | 默认 | 说明 |
33
+ | --- | --- | --- | --- |
34
+ | count | `number` | — | 显示数字 |
35
+ | dot | `boolean` | `false` | 圆点模式 |
36
+ | max | `number` | `99` | 超过显示 max+ |
37
+ | tone | `"neutral" | "accent" | ...` | `"danger"` | 色调 |
38
+
39
+
40
+ ---
41
+ [← 回到索引](../llms.md)
@@ -0,0 +1,122 @@
1
+ # Button 按钮
2
+
3
+ > 标记一个操作命令,响应用户点击行为,触发相应业务逻辑。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Button, IconButton, Segmented } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 基础按钮
14
+
15
+ 四种风格:主要、默认、幽灵、危险。
16
+
17
+ ```tsx
18
+ <Button variant="primary">主按钮</Button>
19
+ <Button>默认按钮</Button>
20
+ <Button variant="ghost">幽灵按钮</Button>
21
+ <Button variant="danger">删除</Button>
22
+ ```
23
+
24
+ ### 图标按钮
25
+
26
+ icon 在前,trailingIcon 在后。
27
+
28
+ ```tsx
29
+ <Button variant="primary" icon="sparkle">新建</Button>
30
+ <Button icon="download">下载</Button>
31
+ <Button trailingIcon="arrowRight">下一步</Button>
32
+ ```
33
+
34
+ ### 加载与禁用
35
+
36
+ loading 期间禁用并显示 spinner。
37
+
38
+ ```tsx
39
+ <Button loading={loading} variant="primary" onClick={...}>点我加载</Button>
40
+ <Button disabled>已禁用</Button>
41
+ ```
42
+
43
+ ### 尺寸
44
+
45
+ 提供 sm / md / lg 三种高度。
46
+
47
+ ```tsx
48
+ <Button size="sm">Small</Button>
49
+ <Button>Medium</Button>
50
+ <Button size="lg">Large</Button>
51
+ ```
52
+
53
+ ### 块级按钮
54
+
55
+ block 让按钮撑满容器宽度,常用于底部主操作或表单提交。
56
+
57
+ ```tsx
58
+ <Button block variant="primary" icon="send">提交表单</Button>
59
+ <Button block>取消</Button>
60
+ ```
61
+
62
+ ### 纯图标按钮
63
+
64
+ IconButton 是只含图标的方形按钮,常配合 tip 使用。
65
+
66
+ ```tsx
67
+ <IconButton icon="heart" tip="收藏" />
68
+ <IconButton icon="bell" tip="通知" />
69
+ <IconButton icon="settings" tip="设置" />
70
+ ```
71
+
72
+ ### 分段控制器
73
+
74
+ 互斥多选项切换。
75
+
76
+ ```tsx
77
+ <Segmented
78
+ options={[
79
+ { value: "grid", label: "网格" },
80
+ { value: "list", label: "列表" },
81
+ { value: "card", label: "卡片" },
82
+ ]}
83
+ defaultValue="grid"
84
+ />
85
+ ```
86
+
87
+ ## API
88
+
89
+ **Button**
90
+
91
+ | Prop | 类型 | 默认 | 说明 |
92
+ | --- | --- | --- | --- |
93
+ | variant | `"default" | "primary" | "ghost" | "danger"` | `"default"` | 按钮风格 |
94
+ | size | `"sm" | "md" | "lg"` | `"md"` | 按钮尺寸 |
95
+ | icon | `IconName` | — | 前置图标 |
96
+ | trailingIcon | `IconName` | — | 后置图标 |
97
+ | loading | `boolean` | `false` | 加载态 |
98
+ | block | `boolean` | `false` | 撑满父容器宽度 |
99
+ | disabled | `boolean` | `false` | 禁用 |
100
+ | onClick | `(e: MouseEvent) => void` | — | 点击回调 |
101
+
102
+
103
+ **IconButton**
104
+
105
+ | Prop | 类型 | 默认 | 说明 |
106
+ | --- | --- | --- | --- |
107
+ | icon \* | `IconName` | — | 图标名 |
108
+ | tip | `string` | — | 悬浮提示 |
109
+ | size / variant | `—` | — | 继承自 Button |
110
+
111
+
112
+ **Segmented**
113
+
114
+ | Prop | 类型 | 默认 | 说明 |
115
+ | --- | --- | --- | --- |
116
+ | options \* | `{ value, label, disabled? }[]` | — | 选项数组 |
117
+ | value / defaultValue | `T` | — | 受控/初始选中值 |
118
+ | onChange | `(value: T) => void` | — | 切换回调 |
119
+
120
+
121
+ ---
122
+ [← 回到索引](../llms.md)
@@ -0,0 +1,44 @@
1
+ # Calendar 日历
2
+
3
+ > 查看与选择日期。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Calendar } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 基础用法
14
+
15
+ ```tsx
16
+ <Calendar value={date} onChange={setDate} />
17
+ ```
18
+
19
+ ### 禁用日期
20
+
21
+ 通过 disabledDate 将周末标灰并禁止点击;与 min/max 可叠加使用。
22
+
23
+ ```tsx
24
+ <Calendar
25
+ value={workDate}
26
+ onChange={setWorkDate}
27
+ disabledDate={(d) => d.getDay() === 0 || d.getDay() === 6}
28
+ />
29
+ ```
30
+
31
+ ## API
32
+
33
+ **Calendar**
34
+
35
+ | Prop | 类型 | 默认 | 说明 |
36
+ | --- | --- | --- | --- |
37
+ | value / defaultValue | `Date` | — | 受控/初始日期 |
38
+ | onChange | `(date: Date) => void` | — | 选择回调 |
39
+ | min / max | `Date` | — | 可选范围 |
40
+ | disabledDate | `(date: Date) => boolean` | — | 自定义禁用判断,返回 true 的日期不可选 |
41
+
42
+
43
+ ---
44
+ [← 回到索引](../llms.md)
@@ -0,0 +1,68 @@
1
+ # Card 卡片
2
+
3
+ > 信息分组容器,提供 raised / flat / sunken 三种视觉变体。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Card, Panel } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 三种变体
14
+
15
+ raised(默认凸起)、flat(扁平)、sunken(凹陷)。
16
+
17
+ ```tsx
18
+ <Card>raised</Card>
19
+ <Card variant="flat">flat</Card>
20
+ <Card variant="sunken">sunken</Card>
21
+ ```
22
+
23
+ ### 悬浮抬起
24
+
25
+ hoverable 在鼠标悬浮时轻微上移并加强阴影,适合可点击的卡片列表。
26
+
27
+ ```tsx
28
+ <Card hoverable>可点击卡片</Card>
29
+ ```
30
+
31
+ ### Panel
32
+
33
+ 带标题、描述、操作区。
34
+
35
+ ```tsx
36
+ <Panel title="月度营收" description="2026 年 4 月" actions={...}>
37
+ ¥ 12,480
38
+ </Panel>
39
+ ```
40
+
41
+ ### Panel 带操作
42
+
43
+ ```tsx
44
+ <Panel title="..." actions={<Button size="sm" icon="plus">邀请</Button>}>...</Panel>
45
+ ```
46
+
47
+ ## API
48
+
49
+ **Card**
50
+
51
+ | Prop | 类型 | 默认 | 说明 |
52
+ | --- | --- | --- | --- |
53
+ | variant | `"raised" | "flat" | "sunken"` | `"raised"` | 视觉变体 |
54
+ | padding | `"none" | "sm" | "md" | "lg"` | `"md"` | 内边距 |
55
+ | hoverable | `boolean` | `false` | 悬浮时抬起 |
56
+
57
+
58
+ **Panel**
59
+
60
+ | Prop | 类型 | 默认 | 说明 |
61
+ | --- | --- | --- | --- |
62
+ | title | `ReactNode` | — | 标题 |
63
+ | description | `ReactNode` | — | 副标题 |
64
+ | actions | `ReactNode` | — | 右上操作区 |
65
+
66
+
67
+ ---
68
+ [← 回到索引](../llms.md)
@@ -0,0 +1,33 @@
1
+ # Cascader 级联选择
2
+
3
+ > 层级关联数据集合中的多级选择。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Cascader } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 基础用法
14
+
15
+ ```tsx
16
+ <Cascader options={regions} value={addr} onChange={setAddr} />
17
+ ```
18
+
19
+ ## API
20
+
21
+ **Cascader**
22
+
23
+ | Prop | 类型 | 默认 | 说明 |
24
+ | --- | --- | --- | --- |
25
+ | options \* | `CascaderOption[]` | — | 层级选项树 |
26
+ | value / defaultValue | `string[]` | — | 受控/初始路径 |
27
+ | onChange | `(path: string[]) => void` | — | 选择叶子时触发 |
28
+ | placeholder | `string` | — | 占位文案 |
29
+ | disabled | `boolean` | `false` | 禁用 |
30
+
31
+
32
+ ---
33
+ [← 回到索引](../llms.md)
@@ -0,0 +1,41 @@
1
+ # Checkbox 复选框
2
+
3
+ > 在一组选项中进行多项选择,或独立切换某个开关项。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Checkbox } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 基础用法
14
+
15
+ ```tsx
16
+ <Checkbox checked={v} onChange={setV} label="同意协议" />
17
+ ```
18
+
19
+ ### 全选/半选
20
+
21
+ indeterminate 用来表示部分选中。
22
+
23
+ ```tsx
24
+ <Checkbox indeterminate={some} checked={all} onChange={...} label="全选" />
25
+ ```
26
+
27
+ ## API
28
+
29
+ **Checkbox**
30
+
31
+ | Prop | 类型 | 默认 | 说明 |
32
+ | --- | --- | --- | --- |
33
+ | checked / defaultChecked | `boolean` | — | 受控/初始 |
34
+ | indeterminate | `boolean` | `false` | 半选态 |
35
+ | onChange | `(checked: boolean) => void` | — | 变更 |
36
+ | label | `ReactNode` | — | 右侧文案 |
37
+ | disabled | `boolean` | `false` | 禁用 |
38
+
39
+
40
+ ---
41
+ [← 回到索引](../llms.md)
@@ -0,0 +1,82 @@
1
+ # ColorPicker 颜色选择
2
+
3
+ > 拟态风格的颜色选择器:HSV 色域、色相、hex 输入、预设调色板。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { ColorPicker } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 基础用法
14
+
15
+ 非受控用法,点击色块弹出面板。
16
+
17
+ ```tsx
18
+ <ColorPicker defaultValue="#ff6b6b" onChange={setColor} />
19
+ ```
20
+
21
+ ### 受控
22
+
23
+ 实时同步 value,失焦 / 拖拽结束时再调用 onChangeComplete。
24
+
25
+ ```tsx
26
+ <ColorPicker value={color} onChange={setColor} showText />
27
+ ```
28
+
29
+ ### 尺寸
30
+
31
+ ```tsx
32
+ <ColorPicker size="sm" />
33
+ <ColorPicker />
34
+ <ColorPicker size="lg" />
35
+ ```
36
+
37
+ ### 禁用
38
+
39
+ ```tsx
40
+ <ColorPicker disabled defaultValue="#868e96" />
41
+ ```
42
+
43
+ ### 自定义预设
44
+
45
+ presets 传入十六进制数组,面板底部会渲染一排色块。
46
+
47
+ ```tsx
48
+ <ColorPicker
49
+ presets={["#ff6b6b", "#ffd43b", "#51cf66", "#339af0", "#845ef7"]}
50
+ />
51
+ ```
52
+
53
+ ### 自定义触发器
54
+
55
+ 将 children 作为触发器;色块容器会继承传入的交互元素。
56
+
57
+ ```tsx
58
+ <ColorPicker value={brand} onChange={setBrand}>
59
+ <Button icon="palette">品牌色 · {brand}</Button>
60
+ </ColorPicker>
61
+ ```
62
+
63
+ ## API
64
+
65
+ **ColorPicker**
66
+
67
+ | Prop | 类型 | 默认 | 说明 |
68
+ | --- | --- | --- | --- |
69
+ | value / defaultValue | `string` | `"#845ef7"` | 十六进制颜色 |
70
+ | onChange | `(hex: string) => void` | — | 每次变化触发(拖拽 / 输入 / 预设点击) |
71
+ | onChangeComplete | `(hex: string) => void` | — | 拖拽/输入结束触发 |
72
+ | size | `"sm" | "md" | "lg"` | `"md"` | 触发器尺寸 |
73
+ | placement | `"top" | "bottom" | "left" | "right"` | `"bottom"` | 面板位置 |
74
+ | presets | `string[]` | — | 预设色数组 |
75
+ | showText | `boolean` | `false` | 触发器右侧显示 hex |
76
+ | disabled | `boolean` | `false` | 禁用 |
77
+ | open / defaultOpen / onOpenChange | `—` | — | 受控面板显隐 |
78
+ | children | `ReactNode` | — | 自定义触发器 |
79
+
80
+
81
+ ---
82
+ [← 回到索引](../llms.md)
@@ -0,0 +1,69 @@
1
+ # Divider 分隔符
2
+
3
+ > 对内容进行分割。
4
+
5
+ ## 导入
6
+
7
+ ```tsx
8
+ import { Divider } from "@fangxinyan/lumina";
9
+ ```
10
+
11
+ ## 示例
12
+
13
+ ### 水平分隔
14
+
15
+ ```tsx
16
+ <Divider />
17
+ ```
18
+
19
+ ### 带文字
20
+
21
+ ```tsx
22
+ <Divider label="分割标题" />
23
+ ```
24
+
25
+ ### 文字位置
26
+
27
+ orientation 控制文字在线上的位置。
28
+
29
+ ```tsx
30
+ <Divider label="左对齐" orientation="left" />
31
+ <Divider label="居中" orientation="center" />
32
+ <Divider label="右对齐" orientation="right" />
33
+ ```
34
+
35
+ ### 虚线
36
+
37
+ dashed 切换为虚线样式,也适用于带文字或垂直方向。
38
+
39
+ ```tsx
40
+ <Divider dashed />
41
+ <Divider dashed label="虚线带文字" />
42
+ <Row>
43
+ <span>左</span>
44
+ <Divider direction="vertical" dashed />
45
+ <span>右</span>
46
+ </Row>
47
+ ```
48
+
49
+ ### 垂直分隔
50
+
51
+ ```tsx
52
+ <Divider direction="vertical" />
53
+ ```
54
+
55
+ ## API
56
+
57
+ **Divider**
58
+
59
+ | Prop | 类型 | 默认 | 说明 |
60
+ | --- | --- | --- | --- |
61
+ | direction | `"horizontal" | "vertical"` | `"horizontal"` | 方向 |
62
+ | label | `ReactNode` | — | 中部文字 |
63
+ | orientation | `"left" | "center" | "right"` | `"center"` | 文字位置(仅水平) |
64
+ | dashed | `boolean` | `false` | 虚线样式 |
65
+ | sunken | `boolean` | `false` | 凹陷凹槽样式 |
66
+
67
+
68
+ ---
69
+ [← 回到索引](../llms.md)