lvetech-ui-lib 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +242 -0
- package/dist/index.d.ts +1072 -0
- package/dist/index.esm.js +4595 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.js +90 -0
- package/dist/index.js.map +1 -0
- package/package.json +88 -0
package/README.md
ADDED
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
# 🎨 Micro UI 组件库
|
|
2
|
+
|
|
3
|
+
一个现代化的 React UI 组件库,基于 Tailwind CSS,支持可视化设计编辑器。
|
|
4
|
+
|
|
5
|
+
## ✨ 特性
|
|
6
|
+
|
|
7
|
+
- 🧩 **丰富的组件** - 包含 20+ 精心设计的 UI 组件
|
|
8
|
+
- 🎨 **可视化设计器** - 拖拽式组件编排,实时预览,一键导出代码
|
|
9
|
+
- 📦 **模板系统** - 预设多种常用模板,快速开始设计
|
|
10
|
+
- 💻 **代码编辑器** - 内置代码编辑器,支持自定义组件开发
|
|
11
|
+
- 🔄 **撤销/重做** - 完整的历史记录功能
|
|
12
|
+
- 📱 **响应式** - 所有组件支持响应式设计
|
|
13
|
+
- 🌈 **主题定制** - 灵活的主题系统
|
|
14
|
+
|
|
15
|
+
## 📦 安装
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# npm
|
|
19
|
+
npm install @lvetech/ui-lib
|
|
20
|
+
|
|
21
|
+
# pnpm
|
|
22
|
+
pnpm add @lvetech/ui-lib
|
|
23
|
+
|
|
24
|
+
# yarn
|
|
25
|
+
yarn add @lvetech/ui-lib
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## 🚀 快速开始
|
|
29
|
+
|
|
30
|
+
### 使用组件
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
import { Button, Card, Input, Alert } from '@lvetech/ui-lib'
|
|
34
|
+
|
|
35
|
+
function App() {
|
|
36
|
+
return (
|
|
37
|
+
<Card title="欢迎" variant="elevated">
|
|
38
|
+
<Input label="用户名" placeholder="请输入用户名" />
|
|
39
|
+
<Button variant="primary">登录</Button>
|
|
40
|
+
</Card>
|
|
41
|
+
)
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 使用可视化设计器
|
|
46
|
+
|
|
47
|
+
```tsx
|
|
48
|
+
import { ComponentDesigner } from '@lvetech/ui-lib'
|
|
49
|
+
|
|
50
|
+
function DesignerPage() {
|
|
51
|
+
return (
|
|
52
|
+
<ComponentDesigner
|
|
53
|
+
height="100vh"
|
|
54
|
+
onChange={(nodes) => console.log('设计更新:', nodes)}
|
|
55
|
+
onExport={(code) => console.log('导出代码:', code)}
|
|
56
|
+
/>
|
|
57
|
+
)
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## 🎨 可视化设计器
|
|
62
|
+
|
|
63
|
+
设计器提供了强大的可视化界面设计能力:
|
|
64
|
+
|
|
65
|
+
### 功能特点
|
|
66
|
+
|
|
67
|
+
| 功能 | 描述 |
|
|
68
|
+
|------|------|
|
|
69
|
+
| 🧩 组件面板 | 拖拽添加 10+ 种组件 |
|
|
70
|
+
| 📦 模板系统 | 15+ 预设模板快速开始 |
|
|
71
|
+
| ✨ 自定义代码 | 内置代码编辑器 |
|
|
72
|
+
| ⚙️ 属性编辑 | 可视化配置组件属性 |
|
|
73
|
+
| 🔄 撤销/重做 | 支持 50 步历史记录 |
|
|
74
|
+
| 📋 导入/导出 | JSON 格式导入导出设计 |
|
|
75
|
+
| 💻 代码生成 | 一键导出 React 代码 |
|
|
76
|
+
|
|
77
|
+
### 视图模式
|
|
78
|
+
|
|
79
|
+
- **设计模式** - 拖拽编排组件
|
|
80
|
+
- **代码模式** - 编写自定义代码
|
|
81
|
+
- **分屏模式** - 同时查看设计和代码
|
|
82
|
+
|
|
83
|
+
### 预设模板
|
|
84
|
+
|
|
85
|
+
| 分类 | 模板 |
|
|
86
|
+
|------|------|
|
|
87
|
+
| 📋 表单 | 登录表单、注册表单、联系表单 |
|
|
88
|
+
| 🃏 卡片 | 用户卡片、产品卡片、统计卡片 |
|
|
89
|
+
| 💬 反馈 | 成功提示、错误提示、加载状态 |
|
|
90
|
+
| 📐 布局 | 操作栏、设置区块 |
|
|
91
|
+
| 📄 页面 | 首页头部、定价卡片 |
|
|
92
|
+
|
|
93
|
+
## 🧩 组件列表
|
|
94
|
+
|
|
95
|
+
### 基础组件
|
|
96
|
+
- `Button` - 按钮
|
|
97
|
+
- `Input` - 输入框
|
|
98
|
+
- `Card` - 卡片
|
|
99
|
+
|
|
100
|
+
### 表单组件
|
|
101
|
+
- `Select` - 选择器
|
|
102
|
+
- `Checkbox` - 复选框
|
|
103
|
+
- `Switch` - 开关
|
|
104
|
+
- `Radio` / `RadioGroup` - 单选框
|
|
105
|
+
- `Textarea` - 文本域
|
|
106
|
+
|
|
107
|
+
### 反馈组件
|
|
108
|
+
- `Toast` / `ToastProvider` - 轻提示
|
|
109
|
+
- `Alert` - 警告提示
|
|
110
|
+
- `Progress` - 进度条
|
|
111
|
+
- `Skeleton` - 骨架屏
|
|
112
|
+
- `Spinner` - 加载动画
|
|
113
|
+
|
|
114
|
+
### 布局组件
|
|
115
|
+
- `Flex` - 弹性布局
|
|
116
|
+
- `Grid` / `GridItem` - 网格布局
|
|
117
|
+
- `Container` - 容器
|
|
118
|
+
- `Space` - 间距
|
|
119
|
+
- `Divider` - 分割线
|
|
120
|
+
|
|
121
|
+
### 数据展示
|
|
122
|
+
- `Avatar` / `AvatarGroup` - 头像
|
|
123
|
+
- `Badge` / `BadgeWrapper` - 徽标
|
|
124
|
+
- `Tag` - 标签
|
|
125
|
+
- `Tabs` - 标签页
|
|
126
|
+
- `Tooltip` - 文字提示
|
|
127
|
+
|
|
128
|
+
## 💻 代码编辑器
|
|
129
|
+
|
|
130
|
+
独立使用代码编辑器组件:
|
|
131
|
+
|
|
132
|
+
```tsx
|
|
133
|
+
import { CodeEditor } from '@lvetech/ui-lib'
|
|
134
|
+
|
|
135
|
+
function MyEditor() {
|
|
136
|
+
const [code, setCode] = useState('')
|
|
137
|
+
|
|
138
|
+
return (
|
|
139
|
+
<CodeEditor
|
|
140
|
+
value={code}
|
|
141
|
+
onChange={setCode}
|
|
142
|
+
language="tsx"
|
|
143
|
+
theme="dark"
|
|
144
|
+
height={400}
|
|
145
|
+
showLineNumbers
|
|
146
|
+
/>
|
|
147
|
+
)
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### CodeEditor Props
|
|
152
|
+
|
|
153
|
+
| 属性 | 类型 | 默认值 | 描述 |
|
|
154
|
+
|------|------|--------|------|
|
|
155
|
+
| value | string | - | 代码内容 |
|
|
156
|
+
| onChange | (value: string) => void | - | 内容变化回调 |
|
|
157
|
+
| language | 'tsx' \| 'jsx' \| 'css' \| 'json' | 'tsx' | 语言类型 |
|
|
158
|
+
| theme | 'dark' \| 'light' | 'dark' | 主题 |
|
|
159
|
+
| readOnly | boolean | false | 是否只读 |
|
|
160
|
+
| height | string \| number | 300 | 高度 |
|
|
161
|
+
| showLineNumbers | boolean | true | 显示行号 |
|
|
162
|
+
|
|
163
|
+
## 🔧 Hooks
|
|
164
|
+
|
|
165
|
+
### useDesignerHistory
|
|
166
|
+
|
|
167
|
+
管理设计器历史记录:
|
|
168
|
+
|
|
169
|
+
```tsx
|
|
170
|
+
import { useDesignerHistory } from '@lvetech/ui-lib'
|
|
171
|
+
|
|
172
|
+
function MyDesigner() {
|
|
173
|
+
const {
|
|
174
|
+
nodes,
|
|
175
|
+
setNodes,
|
|
176
|
+
undo,
|
|
177
|
+
redo,
|
|
178
|
+
canUndo,
|
|
179
|
+
canRedo,
|
|
180
|
+
} = useDesignerHistory([])
|
|
181
|
+
|
|
182
|
+
// ...
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## 📖 更多示例
|
|
187
|
+
|
|
188
|
+
### 登录表单
|
|
189
|
+
|
|
190
|
+
```tsx
|
|
191
|
+
import { Card, Input, Button, Checkbox } from '@lvetech/ui-lib'
|
|
192
|
+
|
|
193
|
+
function LoginForm() {
|
|
194
|
+
return (
|
|
195
|
+
<Card title="用户登录" variant="elevated" className="max-w-md mx-auto">
|
|
196
|
+
<div className="space-y-4">
|
|
197
|
+
<Input label="用户名" placeholder="请输入用户名" required />
|
|
198
|
+
<Input label="密码" placeholder="请输入密码" required />
|
|
199
|
+
<Checkbox label="记住我" />
|
|
200
|
+
<Button variant="primary" fullWidth>登录</Button>
|
|
201
|
+
</div>
|
|
202
|
+
</Card>
|
|
203
|
+
)
|
|
204
|
+
}
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### 统计仪表盘
|
|
208
|
+
|
|
209
|
+
```tsx
|
|
210
|
+
import { Card, Progress, Tag, Flex } from '@lvetech/ui-lib'
|
|
211
|
+
|
|
212
|
+
function Dashboard() {
|
|
213
|
+
return (
|
|
214
|
+
<Flex gap={4}>
|
|
215
|
+
<Card title="销售额" variant="glass">
|
|
216
|
+
<div className="text-3xl font-bold">¥128,430</div>
|
|
217
|
+
<Tag color="emerald" variant="soft">+12.5%</Tag>
|
|
218
|
+
<Progress value={75} color="gradient" />
|
|
219
|
+
</Card>
|
|
220
|
+
|
|
221
|
+
<Card title="订单数" variant="glass">
|
|
222
|
+
<div className="text-3xl font-bold">1,234</div>
|
|
223
|
+
<Tag color="cyan" variant="soft">+8.2%</Tag>
|
|
224
|
+
<Progress value={60} color="cyan" />
|
|
225
|
+
</Card>
|
|
226
|
+
</Flex>
|
|
227
|
+
)
|
|
228
|
+
}
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
## 🎯 路线图
|
|
232
|
+
|
|
233
|
+
- [ ] 更多组件(Table、Tree、Drawer)
|
|
234
|
+
- [ ] 拖拽排序
|
|
235
|
+
- [ ] 组件嵌套
|
|
236
|
+
- [ ] 自定义主题编辑器
|
|
237
|
+
- [ ] 组件市场
|
|
238
|
+
- [ ] 协作设计
|
|
239
|
+
|
|
240
|
+
## 📄 许可证
|
|
241
|
+
|
|
242
|
+
MIT License
|