@fangxinyan/lumina 0.6.8 → 0.6.9
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 +17 -6
- package/dist/{Card-M6UMBDD2.css → Card-4DKCXWFU.css} +4 -2
- package/dist/Card.cjs +2 -2
- package/dist/Card.js +1 -1
- package/dist/{chunk-BKI7JY4Z.js → chunk-HEBBQZUT.js} +1 -1
- package/dist/{chunk-TDYJ5ECR.cjs → chunk-OUSJMIZX.cjs} +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/styles.css +4 -2
- package/docs/llms/card.md +2 -2
- package/docs/llms.md +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -19,11 +19,20 @@
|
|
|
19
19
|
|
|
20
20
|
- **TypeScript 优先** — 全量类型定义,IDE 智能提示完善
|
|
21
21
|
- **拟态设计语言** — 统一的凸起/凹陷/柔光阴影系统,通过 CSS 变量自定义
|
|
22
|
-
- **
|
|
22
|
+
- **45+ 公共组件** — Button、Input、Table、Modal、Message、Calendar …
|
|
23
23
|
- **Electron 原生感** — `TitleBar`、`Sidebar`、`AppShell` 直接拼出窗口布局
|
|
24
24
|
- **主题化** — 明/暗模式、6 套强调色、3 档密度(紧凑/标准/宽松)
|
|
25
25
|
- **零运行时依赖** — 只依赖 React;样式纯 CSS 变量驱动
|
|
26
26
|
|
|
27
|
+
## Why Lumina matters for AI-assisted development
|
|
28
|
+
|
|
29
|
+
Lumina 不只是把组件打成 npm 包,也把“AI 能按需读懂组件”的上下文一起发布出去。
|
|
30
|
+
|
|
31
|
+
- **内置 LLM 文档** — 每个组件都有独立 `docs/llms/<id>.md`,覆盖导入方式、可复制示例和完整 Props 表,AI 不必一次读取整份 API。
|
|
32
|
+
- **按需组件文档** — `@fangxinyan/lumina/llms.md` 提供全局约定和组件索引,`@fangxinyan/lumina/llms/button.md` 这类子路径可直接定位到单组件。
|
|
33
|
+
- **零运行时依赖** — 运行时只依赖 React / React DOM,组件逻辑、主题 token 和样式入口都更容易被 AI 审查、迁移和解释。
|
|
34
|
+
- **Electron 场景优先** — `TitleBar`、`WindowControls`、`Sidebar`、`StatusBar`、`AppShell` 等桌面应用原语减少了业务侧临时拼装窗口 UI 的成本。
|
|
35
|
+
|
|
27
36
|
## 📦 安装
|
|
28
37
|
|
|
29
38
|
```bash
|
|
@@ -60,7 +69,7 @@ export default function App() {
|
|
|
60
69
|
## 🛠 本地开发(下载即用)
|
|
61
70
|
|
|
62
71
|
```bash
|
|
63
|
-
cd
|
|
72
|
+
cd lumina
|
|
64
73
|
npm install
|
|
65
74
|
npm run dev # 启动 Playground(http://localhost:5173)
|
|
66
75
|
npm run typecheck # 类型检查
|
|
@@ -73,16 +82,18 @@ npm run build:lib # 构建库 → dist/(ESM + CJS + .d.ts)
|
|
|
73
82
|
项目结构:
|
|
74
83
|
|
|
75
84
|
```
|
|
76
|
-
|
|
85
|
+
lumina/
|
|
77
86
|
├── src/
|
|
78
|
-
│ ├── components/ #
|
|
87
|
+
│ ├── components/ # 每个组件一个目录,包含 .tsx / .css / index.ts
|
|
79
88
|
│ ├── styles/
|
|
80
89
|
│ │ ├── tokens.css # 设计令牌(主题 / 颜色 / 阴影 / 间距)
|
|
81
90
|
│ │ ├── base.css # 基础样式(body / scrollbar / focus)
|
|
82
|
-
│ │
|
|
91
|
+
│ │ ├── shared.css # 共享动画 / 跨组件样式
|
|
92
|
+
│ │ └── index.css # 完整样式入口
|
|
83
93
|
│ └── index.ts # 公共出口
|
|
84
94
|
├── playground/ # 本地演示应用(Vite)
|
|
85
95
|
├── docs/ # 组件文档 & API 文档
|
|
96
|
+
├── scripts/ # 文档生成 / 公开 API 校验脚本
|
|
86
97
|
├── tsup.config.ts # 库构建配置
|
|
87
98
|
└── vite.config.ts # Playground 开发服务器
|
|
88
99
|
```
|
|
@@ -112,7 +123,7 @@ package/
|
|
|
112
123
|
|
|
113
124
|
## 📚 文档
|
|
114
125
|
|
|
115
|
-
- **[🤖 AI / LLM 组件参考(索引)](./docs/llms.md)** — 全局约定 +
|
|
126
|
+
- **[🤖 AI / LLM 组件参考(索引)](./docs/llms.md)** — 全局约定 + 完整组件索引
|
|
116
127
|
- **[单组件文档](./docs/llms/)** — 每个组件一份 `.md`,AI 按需读取(例如 [`llms/button.md`](./docs/llms/button.md))
|
|
117
128
|
- [设计令牌](./docs/tokens.md)
|
|
118
129
|
- [Electron 集成](./docs/electron.md)
|
|
@@ -66,8 +66,10 @@
|
|
|
66
66
|
border-radius: var(--r-md);
|
|
67
67
|
display: grid;
|
|
68
68
|
place-items: center;
|
|
69
|
-
background: color-mix(in
|
|
70
|
-
box-shadow:
|
|
69
|
+
background: color-mix(in srgb, var(--bg) 72%, var(--bg-sunken));
|
|
70
|
+
box-shadow:
|
|
71
|
+
inset calc(var(--shadow-inset-offset) * 0.45) calc(var(--shadow-inset-offset) * 0.45) calc(var(--shadow-inset-blur) * 0.45) color-mix(in oklch, var(--shadow-dark) 55%, transparent),
|
|
72
|
+
inset calc(var(--shadow-inset-offset) * -0.45) calc(var(--shadow-inset-offset) * -0.45) calc(var(--shadow-inset-blur) * 0.45) color-mix(in oklch, var(--shadow-light) 72%, transparent);
|
|
71
73
|
color: var(--fg-muted);
|
|
72
74
|
z-index: 1;
|
|
73
75
|
}
|
package/dist/Card.cjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkOUSJMIZX_cjs = require('./chunk-OUSJMIZX.cjs');
|
|
4
4
|
require('./chunk-MZCKPLHQ.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
Object.defineProperty(exports, "Card", {
|
|
9
9
|
enumerable: true,
|
|
10
|
-
get: function () { return
|
|
10
|
+
get: function () { return chunkOUSJMIZX_cjs.Card; }
|
|
11
11
|
});
|
package/dist/Card.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { Card } from './chunk-
|
|
1
|
+
export { Card } from './chunk-HEBBQZUT.js';
|
|
2
2
|
import './chunk-3GJZRYTD.js';
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var chunkMZCKPLHQ_cjs = require('./chunk-MZCKPLHQ.cjs');
|
|
4
4
|
require('./tokens-RGFJKRC7.css');
|
|
5
5
|
require('./shared-NJHRNLRH.css');
|
|
6
|
-
require('./Card-
|
|
6
|
+
require('./Card-4DKCXWFU.css');
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var jsxRuntime = require('react/jsx-runtime');
|
|
9
9
|
|
package/dist/index.cjs
CHANGED
|
@@ -29,7 +29,7 @@ var chunkN4JH6HHA_cjs = require('./chunk-N4JH6HHA.cjs');
|
|
|
29
29
|
var chunk3NSBPQBT_cjs = require('./chunk-3NSBPQBT.cjs');
|
|
30
30
|
var chunkPEFIXNAV_cjs = require('./chunk-PEFIXNAV.cjs');
|
|
31
31
|
var chunk4N64ZL5M_cjs = require('./chunk-4N64ZL5M.cjs');
|
|
32
|
-
var
|
|
32
|
+
var chunkOUSJMIZX_cjs = require('./chunk-OUSJMIZX.cjs');
|
|
33
33
|
var chunkMZCKPLHQ_cjs = require('./chunk-MZCKPLHQ.cjs');
|
|
34
34
|
var chunkAA2FRQUQ_cjs = require('./chunk-AA2FRQUQ.cjs');
|
|
35
35
|
var chunk5KGGB3EH_cjs = require('./chunk-5KGGB3EH.cjs');
|
|
@@ -51,7 +51,7 @@ var chunkHTW62OMX_cjs = require('./chunk-HTW62OMX.cjs');
|
|
|
51
51
|
var chunkGJAEGIPM_cjs = require('./chunk-GJAEGIPM.cjs');
|
|
52
52
|
|
|
53
53
|
// src/index.ts
|
|
54
|
-
var VERSION = "0.6.
|
|
54
|
+
var VERSION = "0.6.9";
|
|
55
55
|
|
|
56
56
|
Object.defineProperty(exports, "Tabs", {
|
|
57
57
|
enumerable: true,
|
|
@@ -271,7 +271,7 @@ Object.defineProperty(exports, "List", {
|
|
|
271
271
|
});
|
|
272
272
|
Object.defineProperty(exports, "Card", {
|
|
273
273
|
enumerable: true,
|
|
274
|
-
get: function () { return
|
|
274
|
+
get: function () { return chunkOUSJMIZX_cjs.Card; }
|
|
275
275
|
});
|
|
276
276
|
Object.defineProperty(exports, "Spin", {
|
|
277
277
|
enumerable: true,
|
package/dist/index.d.cts
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -27,7 +27,7 @@ export { Form, FormItem, useForm } from './chunk-ACZA7HHP.js';
|
|
|
27
27
|
export { Image, ImageGrid, LayeredImage, SpriteImage } from './chunk-GEANNF4T.js';
|
|
28
28
|
export { InputNumber } from './chunk-3VXBSLPT.js';
|
|
29
29
|
export { List } from './chunk-Q77BWQNG.js';
|
|
30
|
-
export { Card } from './chunk-
|
|
30
|
+
export { Card } from './chunk-HEBBQZUT.js';
|
|
31
31
|
export { Spin } from './chunk-3GJZRYTD.js';
|
|
32
32
|
export { Cascader } from './chunk-FPII6I52.js';
|
|
33
33
|
export { Checkbox } from './chunk-PHONNUK2.js';
|
|
@@ -49,6 +49,6 @@ export { Calendar } from './chunk-W72IIGOV.js';
|
|
|
49
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.
|
|
52
|
+
var VERSION = "0.6.9";
|
|
53
53
|
|
|
54
54
|
export { VERSION };
|
package/dist/styles.css
CHANGED
|
@@ -1199,8 +1199,10 @@ input, textarea, select { font-family: inherit; color: inherit; }
|
|
|
1199
1199
|
border-radius: var(--r-md);
|
|
1200
1200
|
display: grid;
|
|
1201
1201
|
place-items: center;
|
|
1202
|
-
background: color-mix(in
|
|
1203
|
-
box-shadow:
|
|
1202
|
+
background: color-mix(in srgb, var(--bg) 72%, var(--bg-sunken));
|
|
1203
|
+
box-shadow:
|
|
1204
|
+
inset calc(var(--shadow-inset-offset) * 0.45) calc(var(--shadow-inset-offset) * 0.45) calc(var(--shadow-inset-blur) * 0.45) color-mix(in oklch, var(--shadow-dark) 55%, transparent),
|
|
1205
|
+
inset calc(var(--shadow-inset-offset) * -0.45) calc(var(--shadow-inset-offset) * -0.45) calc(var(--shadow-inset-blur) * 0.45) color-mix(in oklch, var(--shadow-light) 72%, transparent);
|
|
1204
1206
|
color: var(--fg-muted);
|
|
1205
1207
|
z-index: 1;
|
|
1206
1208
|
}
|
package/docs/llms/card.md
CHANGED
|
@@ -61,10 +61,10 @@ bodyLayout 控制正文槽布局,bodyClassName / bodyStyle / bodyProps 直接
|
|
|
61
61
|
|
|
62
62
|
### 加载覆盖
|
|
63
63
|
|
|
64
|
-
loading
|
|
64
|
+
loading 会在正文区域显示中性 overlay;默认 Spin 跟随主题色,loadingOverlay 可替换内容。
|
|
65
65
|
|
|
66
66
|
```tsx
|
|
67
|
-
<Card loading
|
|
67
|
+
<Card loading>
|
|
68
68
|
...
|
|
69
69
|
</Card>
|
|
70
70
|
```
|
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.
|
|
6
|
+
- **版本**: `0.6.9`
|
|
7
7
|
- **React 最低版本**: 18
|
|
8
8
|
- **环境**: 带打包器的 React 工程(Vite / Next.js / Webpack / Remix / Electron + Vite 等)
|
|
9
9
|
- **零运行时依赖**: 只依赖 `react` / `react-dom` (peer deps)
|