@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.
- package/README.md +18 -7
- package/dist/{Accordion-GSBY5T5U.css → Accordion-3TQPKNN3.css} +8 -1
- package/dist/Accordion.cjs +2 -2
- package/dist/Accordion.d.cts +12 -0
- package/dist/Accordion.d.ts +12 -0
- package/dist/Accordion.js +1 -1
- package/dist/{Alert-LSKBYDRI.css → Alert-JJ7GB3UU.css} +11 -0
- package/dist/Alert.cjs +2 -2
- package/dist/Alert.d.cts +4 -0
- package/dist/Alert.d.ts +4 -0
- package/dist/Alert.js +1 -1
- package/dist/{Avatar-OXDSG5Q6.css → Avatar-R5A4AFKZ.css} +4 -0
- package/dist/Avatar.cjs +2 -2
- package/dist/Avatar.d.cts +2 -0
- package/dist/Avatar.d.ts +2 -0
- package/dist/Avatar.js +1 -1
- package/dist/{Button-5UI7QXGU.css → Button-SDQD25AG.css} +2 -0
- package/dist/Button.cjs +3 -3
- package/dist/Button.d.cts +2 -0
- package/dist/Button.d.ts +2 -0
- package/dist/Button.js +1 -1
- package/dist/Calendar.cjs +2 -2
- package/dist/Calendar.d.cts +8 -0
- package/dist/Calendar.d.ts +8 -0
- package/dist/Calendar.js +1 -1
- package/dist/{Card-2CHHFD4Y.css → Card-RG7ECXL2.css} +11 -0
- package/dist/Card.cjs +3 -3
- package/dist/Card.d.cts +2 -0
- package/dist/Card.d.ts +2 -0
- package/dist/Card.js +1 -1
- package/dist/{Divider-Z37INS5E.css → Divider-OEE4Q2KS.css} +31 -0
- package/dist/Divider.cjs +2 -2
- package/dist/Divider.d.cts +7 -0
- package/dist/Divider.d.ts +7 -0
- package/dist/Divider.js +1 -1
- package/dist/{Empty-VM23UNLQ.css → Empty-NQ72W3D7.css} +22 -0
- package/dist/Empty.cjs +4 -4
- package/dist/Empty.d.cts +42 -2
- package/dist/Empty.d.ts +42 -2
- package/dist/Empty.js +1 -1
- package/dist/Input-33CAH4O6.css +134 -0
- package/dist/Input.cjs +3 -3
- package/dist/Input.d.cts +17 -1
- package/dist/Input.d.ts +17 -1
- package/dist/Input.js +1 -1
- package/dist/Modal.cjs +3 -3
- package/dist/Modal.js +2 -2
- package/dist/{Pagination-6FFOI4NM.css → Pagination-YIRYJUXP.css} +33 -0
- package/dist/Pagination.cjs +5 -2
- package/dist/Pagination.d.cts +14 -0
- package/dist/Pagination.d.ts +14 -0
- package/dist/Pagination.js +4 -1
- package/dist/Select.cjs +3 -3
- package/dist/Select.js +2 -2
- package/dist/{Slider-RE4HZQKF.css → Slider-X4PVA65R.css} +51 -2
- package/dist/Slider.cjs +2 -2
- package/dist/Slider.d.cts +20 -5
- package/dist/Slider.d.ts +20 -5
- package/dist/Slider.js +1 -1
- package/dist/Switch-36KJNDXM.css +92 -0
- package/dist/Switch.cjs +2 -2
- package/dist/Switch.d.cts +4 -0
- package/dist/Switch.d.ts +4 -0
- package/dist/Switch.js +1 -1
- package/dist/Table-YKVM42SW.css +295 -0
- package/dist/Table.cjs +7 -3
- package/dist/Table.d.cts +103 -7
- package/dist/Table.d.ts +103 -7
- package/dist/Table.js +5 -1
- package/dist/{Tabs-A27TSZOP.css → Tabs-RHK6XAFF.css} +7 -0
- package/dist/Tabs.cjs +3 -3
- package/dist/Tabs.d.cts +2 -0
- package/dist/Tabs.d.ts +2 -0
- package/dist/Tabs.js +1 -1
- package/dist/{Tag-EYOY3UWG.css → Tag-FGDY3W7E.css} +2 -0
- package/dist/Tag.cjs +3 -3
- package/dist/Tag.d.cts +5 -0
- package/dist/Tag.d.ts +5 -0
- package/dist/Tag.js +1 -1
- package/dist/chunk-437LB2V4.js +111 -0
- package/dist/chunk-437LB2V4.js.map +1 -0
- package/dist/chunk-4MR4GVTD.js +73 -0
- package/dist/chunk-4MR4GVTD.js.map +1 -0
- package/dist/{chunk-OXYFB2ZI.js → chunk-4U4OY5RA.js} +11 -5
- package/dist/chunk-4U4OY5RA.js.map +1 -0
- package/dist/{chunk-5EYI27B6.js → chunk-77BVQNAQ.js} +5 -3
- package/dist/chunk-77BVQNAQ.js.map +1 -0
- package/dist/{chunk-3QWHDCHJ.js → chunk-AJZKESHB.js} +13 -4
- package/dist/chunk-AJZKESHB.js.map +1 -0
- package/dist/{chunk-NZPJ7BUB.cjs → chunk-AXMEZGEG.cjs} +13 -4
- package/dist/chunk-AXMEZGEG.cjs.map +1 -0
- package/dist/{chunk-HTP6UEVR.js → chunk-BBPNQ44M.js} +22 -6
- package/dist/chunk-BBPNQ44M.js.map +1 -0
- package/dist/{chunk-QQXIWOI3.cjs → chunk-CCBHZYE6.cjs} +5 -5
- package/dist/{chunk-QQXIWOI3.cjs.map → chunk-CCBHZYE6.cjs.map} +1 -1
- package/dist/chunk-E6R63QOL.js +476 -0
- package/dist/chunk-E6R63QOL.js.map +1 -0
- package/dist/{chunk-KGYLUZOU.cjs → chunk-EPFYIR63.cjs} +5 -5
- package/dist/{chunk-KGYLUZOU.cjs.map → chunk-EPFYIR63.cjs.map} +1 -1
- package/dist/chunk-F7HW2PYR.cjs +119 -0
- package/dist/chunk-F7HW2PYR.cjs.map +1 -0
- package/dist/chunk-GIVMKGZN.js +39 -0
- package/dist/chunk-GIVMKGZN.js.map +1 -0
- package/dist/{chunk-FMG3ZPGK.js → chunk-H6FCIJOP.js} +5 -3
- package/dist/chunk-H6FCIJOP.js.map +1 -0
- package/dist/{chunk-ALFDP5WX.cjs → chunk-IDM6JJLP.cjs} +22 -6
- package/dist/chunk-IDM6JJLP.cjs.map +1 -0
- package/dist/{chunk-I2ERCHFV.cjs → chunk-JKLQOB2F.cjs} +11 -5
- package/dist/chunk-JKLQOB2F.cjs.map +1 -0
- package/dist/{chunk-IGHLSNXT.cjs → chunk-K7PVJLW4.cjs} +51 -4
- package/dist/chunk-K7PVJLW4.cjs.map +1 -0
- package/dist/chunk-LDENBYRC.cjs +210 -0
- package/dist/chunk-LDENBYRC.cjs.map +1 -0
- package/dist/{chunk-OOBSH7EL.js → chunk-LSLYY5FN.js} +3 -3
- package/dist/{chunk-OOBSH7EL.js.map → chunk-LSLYY5FN.js.map} +1 -1
- package/dist/chunk-NSUD5B22.js +187 -0
- package/dist/chunk-NSUD5B22.js.map +1 -0
- package/dist/{chunk-AAMYURWQ.cjs → chunk-OPTTHURA.cjs} +5 -3
- package/dist/chunk-OPTTHURA.cjs.map +1 -0
- package/dist/{chunk-F3NHM4GX.js → chunk-OYGFMXAA.js} +13 -4
- package/dist/chunk-OYGFMXAA.js.map +1 -0
- package/dist/chunk-PBBHUUXU.cjs +133 -0
- package/dist/chunk-PBBHUUXU.cjs.map +1 -0
- package/dist/chunk-RDLPX7RK.cjs +95 -0
- package/dist/chunk-RDLPX7RK.cjs.map +1 -0
- package/dist/chunk-SBMOIE5C.cjs +499 -0
- package/dist/chunk-SBMOIE5C.cjs.map +1 -0
- package/dist/{chunk-XFRP2MBR.js → chunk-TYQ5CN2C.js} +51 -4
- package/dist/chunk-TYQ5CN2C.js.map +1 -0
- package/dist/{chunk-7CKHWCEA.cjs → chunk-TZSWDH5T.cjs} +5 -3
- package/dist/chunk-TZSWDH5T.cjs.map +1 -0
- package/dist/{chunk-VMHNKD3N.cjs → chunk-URF6RBW6.cjs} +13 -4
- package/dist/chunk-URF6RBW6.cjs.map +1 -0
- package/dist/{chunk-G3UWXSNQ.js → chunk-V34OPWKZ.js} +5 -4
- package/dist/chunk-V34OPWKZ.js.map +1 -0
- package/dist/{chunk-ITGCHU3Y.cjs → chunk-VICGQC6G.cjs} +5 -4
- package/dist/chunk-VICGQC6G.cjs.map +1 -0
- package/dist/chunk-YEOARJKR.cjs +40 -0
- package/dist/chunk-YEOARJKR.cjs.map +1 -0
- package/dist/chunk-Z5X5AMLA.cjs +41 -0
- package/dist/chunk-Z5X5AMLA.cjs.map +1 -0
- package/dist/chunk-Z7P6QGMT.js +115 -0
- package/dist/chunk-Z7P6QGMT.js.map +1 -0
- package/dist/{chunk-OYH6A7IQ.js → chunk-ZVCMXDTP.js} +3 -3
- package/dist/{chunk-OYH6A7IQ.js.map → chunk-ZVCMXDTP.js.map} +1 -1
- package/dist/chunk-ZWP4LSS3.js +38 -0
- package/dist/chunk-ZWP4LSS3.js.map +1 -0
- package/dist/index.cjs +43 -43
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +18 -18
- package/dist/index.js.map +1 -1
- package/dist/styles.css +455 -30
- package/docs/llms/accordion.md +66 -0
- package/docs/llms/alert.md +64 -0
- package/docs/llms/avatar.md +55 -0
- package/docs/llms/badge.md +41 -0
- package/docs/llms/button.md +122 -0
- package/docs/llms/calendar.md +44 -0
- package/docs/llms/card.md +68 -0
- package/docs/llms/cascader.md +33 -0
- package/docs/llms/checkbox.md +41 -0
- package/docs/llms/colorpicker.md +82 -0
- package/docs/llms/divider.md +69 -0
- package/docs/llms/drawer.md +70 -0
- package/docs/llms/empty.md +52 -0
- package/docs/llms/icon.md +34 -0
- package/docs/llms/image.md +39 -0
- package/docs/llms/input.md +127 -0
- package/docs/llms/intro.md +6 -0
- package/docs/llms/list.md +41 -0
- package/docs/llms/modal.md +89 -0
- package/docs/llms/pagination.md +82 -0
- package/docs/llms/popover.md +34 -0
- package/docs/llms/progress.md +58 -0
- package/docs/llms/radio.md +43 -0
- package/docs/llms/select.md +99 -0
- package/docs/llms/sidebar.md +43 -0
- package/docs/llms/skeleton.md +88 -0
- package/docs/llms/slider.md +72 -0
- package/docs/llms/spinner.md +58 -0
- package/docs/llms/switch.md +60 -0
- package/docs/llms/table.md +188 -0
- package/docs/llms/tablepro.md +56 -0
- package/docs/llms/tabs.md +50 -0
- package/docs/llms/tag.md +77 -0
- package/docs/llms/theme.md +165 -0
- package/docs/llms/titlebar.md +40 -0
- package/docs/llms/toast.md +51 -0
- package/docs/llms/tooltip.md +38 -0
- package/docs/llms/typography.md +103 -0
- package/docs/llms/windowcontrols.md +31 -0
- package/docs/llms.md +97 -0
- package/package.json +8 -2
- package/dist/Input-Z526ARZP.css +0 -66
- package/dist/Switch-NP7KKJOX.css +0 -44
- package/dist/Table-ZDPGWLH3.css +0 -139
- package/dist/chunk-2VA2HSL4.cjs +0 -121
- package/dist/chunk-2VA2HSL4.cjs.map +0 -1
- package/dist/chunk-2W2AJUZW.js +0 -118
- package/dist/chunk-2W2AJUZW.js.map +0 -1
- package/dist/chunk-3QWHDCHJ.js.map +0 -1
- package/dist/chunk-4AA22BOG.js +0 -63
- package/dist/chunk-4AA22BOG.js.map +0 -1
- package/dist/chunk-5EYI27B6.js.map +0 -1
- package/dist/chunk-77NP67ML.cjs +0 -70
- package/dist/chunk-77NP67ML.cjs.map +0 -1
- package/dist/chunk-7CKHWCEA.cjs.map +0 -1
- package/dist/chunk-7NM5BRUX.js +0 -91
- package/dist/chunk-7NM5BRUX.js.map +0 -1
- package/dist/chunk-7UJI437T.js +0 -49
- package/dist/chunk-7UJI437T.js.map +0 -1
- package/dist/chunk-AAMYURWQ.cjs.map +0 -1
- package/dist/chunk-ALFDP5WX.cjs.map +0 -1
- package/dist/chunk-F3NHM4GX.js.map +0 -1
- package/dist/chunk-FMG3ZPGK.js.map +0 -1
- package/dist/chunk-G3UWXSNQ.js.map +0 -1
- package/dist/chunk-HTP6UEVR.js.map +0 -1
- package/dist/chunk-I2ERCHFV.cjs.map +0 -1
- package/dist/chunk-IBZAGURN.cjs +0 -71
- package/dist/chunk-IBZAGURN.cjs.map +0 -1
- package/dist/chunk-IGHLSNXT.cjs.map +0 -1
- package/dist/chunk-ITGCHU3Y.cjs.map +0 -1
- package/dist/chunk-JNFCTYJT.cjs +0 -31
- package/dist/chunk-JNFCTYJT.cjs.map +0 -1
- package/dist/chunk-JWFVSBVX.cjs +0 -30
- package/dist/chunk-JWFVSBVX.cjs.map +0 -1
- package/dist/chunk-K67KIKX4.cjs +0 -67
- package/dist/chunk-K67KIKX4.cjs.map +0 -1
- package/dist/chunk-M6OTFXZA.js +0 -48
- package/dist/chunk-M6OTFXZA.js.map +0 -1
- package/dist/chunk-NWJW5KLN.js +0 -29
- package/dist/chunk-NWJW5KLN.js.map +0 -1
- package/dist/chunk-NZPJ7BUB.cjs.map +0 -1
- package/dist/chunk-OXYFB2ZI.js.map +0 -1
- package/dist/chunk-QT7SJITQ.cjs +0 -114
- package/dist/chunk-QT7SJITQ.cjs.map +0 -1
- package/dist/chunk-VMHNKD3N.cjs.map +0 -1
- package/dist/chunk-VXITDXLW.js +0 -28
- package/dist/chunk-VXITDXLW.js.map +0 -1
- package/dist/chunk-XFRP2MBR.js.map +0 -1
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Tabs 选项卡
|
|
2
|
+
|
|
3
|
+
> 同一层级的内容分组,通过标签切换。
|
|
4
|
+
|
|
5
|
+
## 导入
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Tabs } from "@fangxinyan/lumina";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 示例
|
|
12
|
+
|
|
13
|
+
### 基础
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<Tabs items={[
|
|
17
|
+
{ key: "general", label: "通用", content: <>...</> },
|
|
18
|
+
{ key: "account", label: "账户", content: <>...</> },
|
|
19
|
+
]} />
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### 下划线变体
|
|
23
|
+
|
|
24
|
+
```tsx
|
|
25
|
+
<Tabs variant="line" items={[...]} />
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### 居中对齐
|
|
29
|
+
|
|
30
|
+
centered 让标签条在容器中水平居中。
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
<Tabs centered items={[...]} />
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## API
|
|
37
|
+
|
|
38
|
+
**Tabs**
|
|
39
|
+
|
|
40
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
41
|
+
| --- | --- | --- | --- |
|
|
42
|
+
| items \* | `TabItem[]` | — | 标签数据 |
|
|
43
|
+
| activeKey / defaultActiveKey | `string` | — | 受控/初始激活 |
|
|
44
|
+
| onChange | `(key: string) => void` | — | 切换 |
|
|
45
|
+
| variant | `"line" | "pill" | "segmented"` | `"line"` | 样式 |
|
|
46
|
+
| centered | `boolean` | `false` | 标签条居中对齐 |
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
[← 回到索引](../llms.md)
|
package/docs/llms/tag.md
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Tag 标签
|
|
2
|
+
|
|
3
|
+
> 标记关键词、状态或分类。
|
|
4
|
+
|
|
5
|
+
## 导入
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Tag } from "@fangxinyan/lumina";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 示例
|
|
12
|
+
|
|
13
|
+
### 语气
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<Tag>Default</Tag>
|
|
17
|
+
<Tag tone="accent">Accent</Tag>
|
|
18
|
+
<Tag tone="success">Success</Tag>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### 实心
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
<Tag tone="accent" solid>Solid</Tag>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### 圆点状态
|
|
28
|
+
|
|
29
|
+
dot 渲染前置色块。
|
|
30
|
+
|
|
31
|
+
```tsx
|
|
32
|
+
<Tag tone="success" dot>在线</Tag>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### 前置图标
|
|
36
|
+
|
|
37
|
+
icon 使用内置 Icon 组件,颜色随语气自动适配。
|
|
38
|
+
|
|
39
|
+
```tsx
|
|
40
|
+
<Tag tone="success" icon="check2">已完成</Tag>
|
|
41
|
+
<Tag tone="info" icon="star">推荐</Tag>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 无边框
|
|
45
|
+
|
|
46
|
+
bordered={false} 去除 flat 阴影,只保留文本色。
|
|
47
|
+
|
|
48
|
+
```tsx
|
|
49
|
+
<Tag bordered={false}>Default</Tag>
|
|
50
|
+
<Tag tone="accent" bordered={false}>Accent</Tag>
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 可移除
|
|
54
|
+
|
|
55
|
+
removable + onRemove 实现关闭按钮。
|
|
56
|
+
|
|
57
|
+
```tsx
|
|
58
|
+
<Tag removable onRemove={() => remove(t.id)}>{t.label}</Tag>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## API
|
|
62
|
+
|
|
63
|
+
**Tag**
|
|
64
|
+
|
|
65
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
66
|
+
| --- | --- | --- | --- |
|
|
67
|
+
| tone | `"neutral" | "accent" | "info" | "success" | "warning" | "danger"` | `"neutral"` | 色调 |
|
|
68
|
+
| solid | `boolean` | `false` | 实心填充 |
|
|
69
|
+
| dot | `boolean` | `false` | 前置圆点 |
|
|
70
|
+
| icon | `IconName` | — | 前置图标 |
|
|
71
|
+
| bordered | `boolean` | `true` | 是否显示外框 flat 阴影 |
|
|
72
|
+
| removable | `boolean` | `false` | 显示 × |
|
|
73
|
+
| onRemove | `() => void` | — | 关闭回调 |
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
[← 回到索引](../llms.md)
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# Theme 主题
|
|
2
|
+
|
|
3
|
+
> ThemeProvider + useTheme,覆盖深浅色、强调色、密度、圆角、字体、阴影强度。
|
|
4
|
+
|
|
5
|
+
## 导入
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { ThemeProvider, useTheme, applyTheme } from "@fangxinyan/lumina";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 示例
|
|
12
|
+
|
|
13
|
+
### 基础用法
|
|
14
|
+
|
|
15
|
+
用 ThemeProvider 包住应用,所有 lumina 组件自动生效。
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
import { ThemeProvider } from "lumina";
|
|
19
|
+
|
|
20
|
+
function Root() {
|
|
21
|
+
return (
|
|
22
|
+
<ThemeProvider
|
|
23
|
+
mode="system" // "light" | "dark" | "system"
|
|
24
|
+
accent="violet" // 预设 或 自定义颜色
|
|
25
|
+
density="comfortable"
|
|
26
|
+
intensity={5} // 1..10 阴影强度
|
|
27
|
+
radius={20} // 圆角基准 px
|
|
28
|
+
font="sf" // 字体预设
|
|
29
|
+
storageKey="app:theme" // 持久化到 localStorage
|
|
30
|
+
>
|
|
31
|
+
<App />
|
|
32
|
+
</ThemeProvider>
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### useTheme Hook
|
|
38
|
+
|
|
39
|
+
子组件随时读/改主题。下面这块被独立的 ThemeProvider 包裹,不影响全局。
|
|
40
|
+
|
|
41
|
+
```tsx
|
|
42
|
+
const t = useTheme();
|
|
43
|
+
t.toggleMode(); // 切换深浅色
|
|
44
|
+
t.setAccent("coral"); // 换强调色
|
|
45
|
+
t.setDensity("compact"); // 改密度
|
|
46
|
+
t.update({ radius: 14 }); // 一次改多个
|
|
47
|
+
t.reset(); // 重置到 props 初值
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### 预设强调色
|
|
51
|
+
|
|
52
|
+
内置 6 种拟态强调色,点击切换。
|
|
53
|
+
|
|
54
|
+
```tsx
|
|
55
|
+
<ThemeProvider accent="sky" />
|
|
56
|
+
<ThemeProvider accent="coral" />
|
|
57
|
+
<ThemeProvider accent="mint" />
|
|
58
|
+
<ThemeProvider accent="violet" />
|
|
59
|
+
<ThemeProvider accent="amber" />
|
|
60
|
+
<ThemeProvider accent="rose" />
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### 自定义强调色
|
|
64
|
+
|
|
65
|
+
传任意 CSS 颜色(oklch / hex / rgb)。只给主色,ink / soft / glow 会用 color-mix 自动推导。
|
|
66
|
+
|
|
67
|
+
```tsx
|
|
68
|
+
// 只给主色,其他自动推导
|
|
69
|
+
<ThemeProvider accent="oklch(70% 0.18 180)" />
|
|
70
|
+
<ThemeProvider accent={{ accent: "#00b894" }} />
|
|
71
|
+
|
|
72
|
+
// 或给完整调色板
|
|
73
|
+
<ThemeProvider accent={{
|
|
74
|
+
accent: "oklch(70% 0.18 180)",
|
|
75
|
+
ink: "oklch(40% 0.14 180)",
|
|
76
|
+
soft: "oklch(93% 0.04 180)",
|
|
77
|
+
glow: "oklch(70% 0.18 180 / 0.35)",
|
|
78
|
+
}} />
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### 作用域嵌套
|
|
82
|
+
|
|
83
|
+
target="scope" 只作用于子树,可以层层嵌套。
|
|
84
|
+
|
|
85
|
+
```tsx
|
|
86
|
+
<ThemeProvider accent="sky">
|
|
87
|
+
<Page />
|
|
88
|
+
|
|
89
|
+
<ThemeProvider target="scope" accent="coral" as="section">
|
|
90
|
+
<PromoCard />
|
|
91
|
+
|
|
92
|
+
<ThemeProvider target="scope" accent="mint" as="div">
|
|
93
|
+
<InnerCallout />
|
|
94
|
+
</ThemeProvider>
|
|
95
|
+
</ThemeProvider>
|
|
96
|
+
</ThemeProvider>
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 覆盖任意 token
|
|
100
|
+
|
|
101
|
+
tokens prop 可以改 tokens.css 里任何变量 —— 键名可省略 --。
|
|
102
|
+
|
|
103
|
+
```tsx
|
|
104
|
+
<ThemeProvider
|
|
105
|
+
tokens={{
|
|
106
|
+
bg: "#f5f5f7", // 等价 --bg
|
|
107
|
+
"--bg-sunken": "#e8e8ed",
|
|
108
|
+
"shadow-dark": "rgba(0,0,0,0.18)",
|
|
109
|
+
"--font-display": '"Inter", sans-serif',
|
|
110
|
+
}}
|
|
111
|
+
/>
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### 命令式 API
|
|
115
|
+
|
|
116
|
+
脱离 React 直接给元素套主题 —— 适合 vanilla JS 或 SSR 早期水合。
|
|
117
|
+
|
|
118
|
+
```tsx
|
|
119
|
+
import { applyTheme } from "lumina";
|
|
120
|
+
|
|
121
|
+
applyTheme(document.documentElement, {
|
|
122
|
+
mode: "dark",
|
|
123
|
+
accent: "violet",
|
|
124
|
+
radius: 16,
|
|
125
|
+
});
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## API
|
|
129
|
+
|
|
130
|
+
**ThemeProvider Props**
|
|
131
|
+
|
|
132
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
133
|
+
| --- | --- | --- | --- |
|
|
134
|
+
| mode | `"light" | "dark" | "system"` | `"light"` | 深浅色模式 |
|
|
135
|
+
| accent | `AccentKey | CustomAccentInput` | `"sky"` | 强调色,预设或自定义 |
|
|
136
|
+
| density | `"compact" | "comfortable" | "spacious"` | `"comfortable"` | 密度 |
|
|
137
|
+
| intensity | `number` | `5` | 阴影强度 1-10 |
|
|
138
|
+
| radius | `number` | `20` | 圆角基准 px |
|
|
139
|
+
| font | `FontConfig` | `"sf"` | 字体预设或 CSS 栈 |
|
|
140
|
+
| tokens | `Record<string, string>` | — | 任意 CSS 变量覆写 |
|
|
141
|
+
| target | `"root" | "scope"` | `"root"` | 应用到根还是局部 |
|
|
142
|
+
| as | `keyof JSX.IntrinsicElements` | `"div"` | scope 模式的元素标签 |
|
|
143
|
+
| storageKey | `string` | — | localStorage 持久化 key |
|
|
144
|
+
| onChange | `(value: ThemeValue) => void` | — | 主题值变更回调 |
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
**useTheme() → ThemeValue**
|
|
148
|
+
|
|
149
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
150
|
+
| --- | --- | --- | --- |
|
|
151
|
+
| mode | `ThemeMode` | — | 请求的模式(保留 system) |
|
|
152
|
+
| resolvedMode | `"light" | "dark"` | — | 解析后的具体模式 |
|
|
153
|
+
| accent | `AccentKey | "custom"` | — | 预设 key 或 "custom" |
|
|
154
|
+
| accentPalette | `AccentPalette` | — | 当前完整调色板 |
|
|
155
|
+
| density / intensity / radius / font / tokens | `-` | — | 当前各维度状态 |
|
|
156
|
+
| setMode(m) | `(m: ThemeMode) => void` | — | 切换模式 |
|
|
157
|
+
| toggleMode() | `() => void` | — | light ⇄ dark 切换 |
|
|
158
|
+
| setAccent(a) | `(a: AccentKey | CustomAccentInput) => void` | — | 切换强调色 |
|
|
159
|
+
| setDensity / setIntensity / setRadius / setFont / setTokens | `-` | — | 对应字段的 setter |
|
|
160
|
+
| update(cfg) | `(cfg: Partial<ThemeConfig>) => void` | — | 浅合并多字段 |
|
|
161
|
+
| reset() | `() => void` | — | 重置到初始 props |
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
[← 回到索引](../llms.md)
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# TitleBar 标题栏
|
|
2
|
+
|
|
3
|
+
> Electron 应用窗口顶部的跨平台标题栏。
|
|
4
|
+
|
|
5
|
+
## 导入
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { TitleBar } from "@fangxinyan/lumina";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 示例
|
|
12
|
+
|
|
13
|
+
### macOS 风格
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<TitleBar platform="mac" title="无标题文档" actions={<>...</>} />
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Windows 风格
|
|
20
|
+
|
|
21
|
+
```tsx
|
|
22
|
+
<TitleBar platform="windows" title="..." actions={...} />
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## API
|
|
26
|
+
|
|
27
|
+
**TitleBar**
|
|
28
|
+
|
|
29
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
30
|
+
| --- | --- | --- | --- |
|
|
31
|
+
| title | `ReactNode` | — | 标题 |
|
|
32
|
+
| platform | `"mac" | "windows"` | `"mac"` | 平台风格 |
|
|
33
|
+
| actions | `ReactNode` | — | 右侧操作区 |
|
|
34
|
+
| center | `ReactNode` | — | 中部内容 |
|
|
35
|
+
| draggable | `boolean` | `true` | 整条作为拖拽区 |
|
|
36
|
+
| onMinimize / onMaximize / onClose | `() => void` | — | 窗口控件回调 |
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
[← 回到索引](../llms.md)
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Toast 通知
|
|
2
|
+
|
|
3
|
+
> 全局轻量提示,4 种语义。
|
|
4
|
+
|
|
5
|
+
## 导入
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { toast, ToastContainer } from "@fangxinyan/lumina";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 示例
|
|
12
|
+
|
|
13
|
+
### 四种语义
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
toast.info("已保存到草稿");
|
|
17
|
+
toast.success("操作完成");
|
|
18
|
+
toast.warn("请注意");
|
|
19
|
+
toast.error("发生错误");
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### 带标题
|
|
23
|
+
|
|
24
|
+
```tsx
|
|
25
|
+
toast.success("已上传 5 个文件", "上传完成");
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## API
|
|
29
|
+
|
|
30
|
+
**toast.***
|
|
31
|
+
|
|
32
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
33
|
+
| --- | --- | --- | --- |
|
|
34
|
+
| info(message, title?) | `(msg, title?) => id` | — | 信息提示 |
|
|
35
|
+
| success(message, title?) | `(msg, title?) => id` | — | 成功 |
|
|
36
|
+
| warn(message, title?) | `(msg, title?) => id` | — | 警告 |
|
|
37
|
+
| error(message, title?) | `(msg, title?) => id` | — | 错误 |
|
|
38
|
+
| show({ type, message, title?, duration? }) | `(item) => id` | — | 完整 API |
|
|
39
|
+
| dismiss(id) | `(id: number) => void` | — | 关闭一条 |
|
|
40
|
+
| clear() | `() => void` | — | 清空全部 |
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
**ToastContainer**
|
|
44
|
+
|
|
45
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
46
|
+
| --- | --- | --- | --- |
|
|
47
|
+
| placement | `"top-right" | "top-left" | "bottom-right" | "bottom-left" | "top-center"` | `"top-right"` | 位置 |
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
[← 回到索引](../llms.md)
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Tooltip 文字提示
|
|
2
|
+
|
|
3
|
+
> 鼠标悬浮触发的简短说明。
|
|
4
|
+
|
|
5
|
+
## 导入
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Tooltip } from "@fangxinyan/lumina";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 示例
|
|
12
|
+
|
|
13
|
+
### 基础
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<Tooltip content="新建文档"><IconButton icon="plus" /></Tooltip>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### 位置
|
|
20
|
+
|
|
21
|
+
```tsx
|
|
22
|
+
<Tooltip placement="bottom" content="..." />
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## API
|
|
26
|
+
|
|
27
|
+
**Tooltip**
|
|
28
|
+
|
|
29
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
30
|
+
| --- | --- | --- | --- |
|
|
31
|
+
| content \* | `ReactNode` | — | 提示内容 |
|
|
32
|
+
| placement | `"top" | "bottom" | "left" | "right"` | `"top"` | 位置 |
|
|
33
|
+
| delay | `number` | `250` | 悬浮延时 (ms) |
|
|
34
|
+
| disabled | `boolean` | `false` | 禁用提示 |
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
[← 回到索引](../llms.md)
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Typography 排版
|
|
2
|
+
|
|
3
|
+
> 标题、段落、文本、链接一体化排版组件,支持语义色、修饰、复制、编辑、省略。
|
|
4
|
+
|
|
5
|
+
## 导入
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Typography } from "@fangxinyan/lumina";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 示例
|
|
12
|
+
|
|
13
|
+
### 基础组合
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<Typography>
|
|
17
|
+
<Typography.Title level={2}>Lumina 排版</Typography.Title>
|
|
18
|
+
<Typography.Paragraph>...</Typography.Paragraph>
|
|
19
|
+
<Typography.Text type="secondary">次要文字</Typography.Text>
|
|
20
|
+
<Typography.Link href="..." external>外部链接</Typography.Link>
|
|
21
|
+
</Typography>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### 标题层级
|
|
25
|
+
|
|
26
|
+
```tsx
|
|
27
|
+
<Typography.Title level={1..5}>...</Typography.Title>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 语义色
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
<Typography.Text type="success">...</Typography.Text>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### 文字修饰
|
|
37
|
+
|
|
38
|
+
```tsx
|
|
39
|
+
<Typography.Text strong>...</Typography.Text>
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 可复制
|
|
43
|
+
|
|
44
|
+
点击右侧图标复制文本,自动切成 ✓ 状态并 2.4 秒后复位。
|
|
45
|
+
|
|
46
|
+
```tsx
|
|
47
|
+
<Typography.Text copyable>...</Typography.Text>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### 可编辑
|
|
51
|
+
|
|
52
|
+
点击图标或文本进入编辑状态,Enter 保存、Esc 取消。
|
|
53
|
+
|
|
54
|
+
```tsx
|
|
55
|
+
<Typography.Text editable={{ onChange, triggerType: ["icon", "text"] }}>{value}</Typography.Text>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### 省略截断
|
|
59
|
+
|
|
60
|
+
多行截断并支持「展开」。
|
|
61
|
+
|
|
62
|
+
```tsx
|
|
63
|
+
<Typography.Paragraph ellipsis={{ rows: 2, expandable: true }}>{long}</Typography.Paragraph>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### 链接
|
|
67
|
+
|
|
68
|
+
```tsx
|
|
69
|
+
<Typography.Link href="..." external>...</Typography.Link>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## API
|
|
73
|
+
|
|
74
|
+
**Typography.Title**
|
|
75
|
+
|
|
76
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
77
|
+
| --- | --- | --- | --- |
|
|
78
|
+
| level | `1 | 2 | 3 | 4 | 5` | `1` | 标题级别 |
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
**通用 Props (Title / Text / Paragraph / Link)**
|
|
82
|
+
|
|
83
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
84
|
+
| --- | --- | --- | --- |
|
|
85
|
+
| type | `"secondary" | "success" | "warning" | "danger"` | — | 语义色 |
|
|
86
|
+
| disabled | `boolean` | `false` | 禁用态 |
|
|
87
|
+
| mark / code / keyboard / underline / delete / strong / italic | `boolean` | `false` | 文字修饰 |
|
|
88
|
+
| copyable | `boolean | CopyableConfig` | — | 显示复制按钮 |
|
|
89
|
+
| editable | `boolean | EditableConfig` | — | 显示编辑按钮 |
|
|
90
|
+
| ellipsis | `boolean | EllipsisConfig` | — | 截断省略 |
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
**Typography.Link**
|
|
94
|
+
|
|
95
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
96
|
+
| --- | --- | --- | --- |
|
|
97
|
+
| href | `string` | — | 链接地址 |
|
|
98
|
+
| target / rel | `string` | — | 原生锚点属性 |
|
|
99
|
+
| external | `boolean` | `false` | 追加外链箭头 |
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
[← 回到索引](../llms.md)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# WindowControls 窗口控件
|
|
2
|
+
|
|
3
|
+
> 独立的窗口控件按钮组。
|
|
4
|
+
|
|
5
|
+
## 导入
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { WindowControls } from "@fangxinyan/lumina";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 示例
|
|
12
|
+
|
|
13
|
+
### 两种平台
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<WindowControls platform="mac" />
|
|
17
|
+
<WindowControls platform="windows" />
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## API
|
|
21
|
+
|
|
22
|
+
**WindowControls**
|
|
23
|
+
|
|
24
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
25
|
+
| --- | --- | --- | --- |
|
|
26
|
+
| platform | `"mac" | "windows"` | `"mac"` | 平台 |
|
|
27
|
+
| onMinimize / onMaximize / onClose | `() => void` | — | 回调 |
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
[← 回到索引](../llms.md)
|
package/docs/llms.md
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# @fangxinyan/lumina · LLM Reference
|
|
2
|
+
|
|
3
|
+
> 拟态风格的 React 18 组件库,目标是 Electron 桌面应用。**写给 AI 编程助手**的按需文档 —— 每个组件单独一个 `.md`,避免一次性读取全部。示例源自 playground 的 demo,可直接复制运行。
|
|
4
|
+
|
|
5
|
+
- **包名**: `@fangxinyan/lumina`
|
|
6
|
+
- **版本**: `0.2.1`
|
|
7
|
+
- **React 最低版本**: 18
|
|
8
|
+
- **环境**: 带打包器的 React 工程(Vite / Next.js / Webpack / Remix / Electron + Vite 等)
|
|
9
|
+
- **零运行时依赖**: 只依赖 `react` / `react-dom` (peer deps)
|
|
10
|
+
- **仓库**: git+https://github.com/LHorTL/lumina.git
|
|
11
|
+
|
|
12
|
+
## 用法建议(给 AI)
|
|
13
|
+
|
|
14
|
+
- **只需要某个组件时**: 直接读 `./llms/<id>.md`(例如 `./llms/button.md`)。每份 50-300 行,覆盖导入 / 示例 / 完整 Props 表。
|
|
15
|
+
- **需要全局概念时**(安装、主题、图标、浮层): 读本文件底部的「必读 · 全局约定」一节。
|
|
16
|
+
- **通过 npm 包内置路径**:
|
|
17
|
+
- 索引: `node_modules/@fangxinyan/lumina/docs/llms.md` 或子路径导出 `@fangxinyan/lumina/llms.md`
|
|
18
|
+
- 单组件: `node_modules/@fangxinyan/lumina/docs/llms/<id>.md`
|
|
19
|
+
|
|
20
|
+
## 必读 · 全局约定
|
|
21
|
+
|
|
22
|
+
1. **安装**
|
|
23
|
+
`npm install @fangxinyan/lumina`
|
|
24
|
+
2. **引入样式**(任一即可):
|
|
25
|
+
```tsx
|
|
26
|
+
import "@fangxinyan/lumina/styles"; // 一次性引入全部组件样式
|
|
27
|
+
```
|
|
28
|
+
或按组件单独引入(适合 tree-shake 到极限):
|
|
29
|
+
```tsx
|
|
30
|
+
import "@fangxinyan/lumina/tokens"; // 设计令牌 + 全局 reset
|
|
31
|
+
import { Button } from "@fangxinyan/lumina"; // 会自动带上 Button.css
|
|
32
|
+
```
|
|
33
|
+
3. **TypeScript**: 所有 `XxxProps` 接口都是 `export`,可直接 `import { Button, type ButtonProps } from "@fangxinyan/lumina";`
|
|
34
|
+
4. **主题**: 用 `<ThemeProvider>` 包根;运行时可通过 `useTheme()` 改。六种强调色 (`rose / sky / coral / mint / violet / amber`) × 两种模式 (`light / dark` + `system`) × 三档密度 (`compact / comfortable / spacious`)。详见 [`llms/theme.md`](./llms/theme.md)。
|
|
35
|
+
5. **图标**: 所有接受 `icon / leadingIcon / trailingIcon` 的 prop 用字符串 `IconName`。完整列表见 [`llms/icon.md`](./llms/icon.md)。
|
|
36
|
+
6. **浮层组件**(Tooltip / Popover / Select / Cascader / ColorPicker / Modal / Drawer): 内部已 `createPortal` 到 `document.body` + 视口边界翻转,放在 `overflow: hidden` 的容器里也不会被裁。
|
|
37
|
+
7. **Electron 专属组件**: `TitleBar` / `WindowControls` / `Sidebar` / `AppShell` 提供 macOS / Windows 原生风格的标题栏与导航。
|
|
38
|
+
|
|
39
|
+
## 组件索引
|
|
40
|
+
|
|
41
|
+
### 起步
|
|
42
|
+
|
|
43
|
+
- [Lumina](./llms/intro.md) — 为 Electron 应用定制的拟态风格 React 组件库。
|
|
44
|
+
- [Theme 主题](./llms/theme.md) — ThemeProvider + useTheme,覆盖深浅色、强调色、密度、圆角、字体、阴影强度。
|
|
45
|
+
|
|
46
|
+
### 通用
|
|
47
|
+
|
|
48
|
+
- [Button 按钮](./llms/button.md) — 标记一个操作命令,响应用户点击行为,触发相应业务逻辑。
|
|
49
|
+
- [Icon 图标](./llms/icon.md) — 线性图标集,继承当前文字颜色,可调整尺寸与描边。
|
|
50
|
+
- [Typography 排版](./llms/typography.md) — 标题、段落、文本、链接一体化排版组件,支持语义色、修饰、复制、编辑、省略。
|
|
51
|
+
|
|
52
|
+
### 表单
|
|
53
|
+
|
|
54
|
+
- [Input 输入框](./llms/input.md) — 凹陷凹槽式输入域,支持前后置图标、错误态、禁用态。
|
|
55
|
+
- [Switch 开关](./llms/switch.md) — 二元状态切换器。
|
|
56
|
+
- [Checkbox 复选框](./llms/checkbox.md) — 在一组选项中进行多项选择,或独立切换某个开关项。
|
|
57
|
+
- [Radio 单选](./llms/radio.md) — 在多个互斥选项中进行单项选择。
|
|
58
|
+
- [Slider 滑块](./llms/slider.md) — 在连续数值区间内取值。
|
|
59
|
+
- [Select 下拉选择](./llms/select.md) — 下拉选择,支持单/多选、搜索、分组、加载态。
|
|
60
|
+
- [Cascader 级联选择](./llms/cascader.md) — 层级关联数据集合中的多级选择。
|
|
61
|
+
- [ColorPicker 颜色选择](./llms/colorpicker.md) — 拟态风格的颜色选择器:HSV 色域、色相、hex 输入、预设调色板。
|
|
62
|
+
|
|
63
|
+
### 数据展示
|
|
64
|
+
|
|
65
|
+
- [Card 卡片](./llms/card.md) — 信息分组容器,提供 raised / flat / sunken 三种视觉变体。
|
|
66
|
+
- [Tag 标签](./llms/tag.md) — 标记关键词、状态或分类。
|
|
67
|
+
- [Badge 徽标数](./llms/badge.md) — 右上角的小型计数或状态指示器。
|
|
68
|
+
- [Avatar 头像](./llms/avatar.md) — 用图像、首字母代表用户或事物。
|
|
69
|
+
- [Divider 分隔符](./llms/divider.md) — 对内容进行分割。
|
|
70
|
+
- [Progress 进度](./llms/progress.md) — 条形进度 Progress 与环形进度 Ring。
|
|
71
|
+
- [List 列表](./llms/list.md) — 承载一组结构化的同质化数据。
|
|
72
|
+
- [Table 表格](./llms/table.md) — 结构化数据展示。
|
|
73
|
+
- [Table Pro](./llms/tablepro.md) — 带工具栏 / 搜索 / 筛选 / 排序 / 多选 / 分页的全功能表格。
|
|
74
|
+
- [Image 图片](./llms/image.md) — 凹陷外框包裹的图片容器,带预览、错误占位。
|
|
75
|
+
- [Calendar 日历](./llms/calendar.md) — 查看与选择日期。
|
|
76
|
+
- [Pagination 分页](./llms/pagination.md) — 分页控件,支持快速跳转与每页条数切换。
|
|
77
|
+
- [Tabs 选项卡](./llms/tabs.md) — 同一层级的内容分组,通过标签切换。
|
|
78
|
+
- [Accordion 折叠面板](./llms/accordion.md) — 纵向折叠面板。
|
|
79
|
+
|
|
80
|
+
### 反馈
|
|
81
|
+
|
|
82
|
+
- [Modal 对话框](./llms/modal.md) — 在不离开当前页面的前提下处理事务。
|
|
83
|
+
- [Drawer 抽屉](./llms/drawer.md) — 从屏幕边缘滑出的浮层。
|
|
84
|
+
- [Toast 通知](./llms/toast.md) — 全局轻量提示,4 种语义。
|
|
85
|
+
- [Tooltip 文字提示](./llms/tooltip.md) — 鼠标悬浮触发的简短说明。
|
|
86
|
+
- [Popover 气泡卡片](./llms/popover.md) — 比 Tooltip 更丰富,可承载交互内容。
|
|
87
|
+
- [Alert 警告提示](./llms/alert.md) — 页面中嵌入的警告/提示。
|
|
88
|
+
- [Empty 空状态](./llms/empty.md) — 列表、页面或容器无数据时的占位。
|
|
89
|
+
- [Spinner 加载](./llms/spinner.md) — 表示任务正在进行,提示用户等待。
|
|
90
|
+
- [Skeleton 骨架屏](./llms/skeleton.md) — 数据加载前展示页面结构轮廓。
|
|
91
|
+
|
|
92
|
+
### Electron
|
|
93
|
+
|
|
94
|
+
- [TitleBar 标题栏](./llms/titlebar.md) — Electron 应用窗口顶部的跨平台标题栏。
|
|
95
|
+
- [WindowControls 窗口控件](./llms/windowcontrols.md) — 独立的窗口控件按钮组。
|
|
96
|
+
- [Sidebar 侧边栏](./llms/sidebar.md) — 应用主导航,沿屏幕左侧垂直排列。
|
|
97
|
+
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fangxinyan/lumina",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Lumina — Neumorphic component library for Electron & React apps",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -14,6 +14,9 @@
|
|
|
14
14
|
},
|
|
15
15
|
"./styles": "./dist/styles.css",
|
|
16
16
|
"./tokens": "./dist/tokens.css",
|
|
17
|
+
"./llms.md": "./docs/llms.md",
|
|
18
|
+
"./llms/*": "./docs/llms/*",
|
|
19
|
+
"./package.json": "./package.json",
|
|
17
20
|
"./*": {
|
|
18
21
|
"types": "./dist/*.d.ts",
|
|
19
22
|
"import": "./dist/*.js",
|
|
@@ -22,6 +25,8 @@
|
|
|
22
25
|
},
|
|
23
26
|
"files": [
|
|
24
27
|
"dist",
|
|
28
|
+
"docs/llms.md",
|
|
29
|
+
"docs/llms",
|
|
25
30
|
"README.md",
|
|
26
31
|
"LICENSE"
|
|
27
32
|
],
|
|
@@ -34,7 +39,8 @@
|
|
|
34
39
|
"build:lib": "tsup",
|
|
35
40
|
"preview": "vite preview",
|
|
36
41
|
"typecheck": "tsc --noEmit",
|
|
37
|
-
"
|
|
42
|
+
"gen:docs": "node scripts/gen-llms-doc.mjs",
|
|
43
|
+
"prepublishOnly": "npm run typecheck && npm run gen:docs && npm run build:lib"
|
|
38
44
|
},
|
|
39
45
|
"peerDependencies": {
|
|
40
46
|
"react": ">=18",
|