@lytjs/ui 6.5.0 → 6.6.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 CHANGED
@@ -1,312 +1,312 @@
1
- # @lytjs/ui
2
-
3
- LytJS 官方 UI 组件库,零第三方依赖,支持主题切换,30+ 组件应有尽有。
4
-
5
- ## 特性
6
-
7
- - 🎨 **零第三方依赖** - 只依赖 LytJS 核心
8
- - 📱 **响应式设计** - 完美适配各种屏幕尺寸
9
- - 🎭 **主题系统** - 支持深色/浅色主题切换
10
- - 🔧 **TypeScript 支持** - 完整的类型定义
11
- - 📦 **Tree Shaking 友好** - 按需引入,减小体积
12
-
13
- ## 安装
14
-
15
- ```bash
16
- pnpm add @lytjs/ui
17
- ```
18
-
19
- ## 使用
20
-
21
- ### 全局注册
22
-
23
- ```typescript
24
- import { createApp } from '@lytjs/core';
25
- import LytUI from '@lytjs/ui';
26
- import '@lytjs/ui/styles';
27
-
28
- const app = createApp(App);
29
- app.use(LytUI);
30
- app.mount('#app');
31
- ```
32
-
33
- ### 按需引入
34
-
35
- ```typescript
36
- import { Button, Input, Table } from '@lytjs/ui';
37
- import '@lytjs/ui/styles/button.css';
38
- import '@lytjs/ui/styles/input.css';
39
- import '@lytjs/ui/styles/table.css';
40
- ```
41
-
42
- ## 组件列表
43
-
44
- ### 基础组件
45
-
46
- | 组件名 | 说明 |
47
- |--------|------|
48
- | Button | 按钮 |
49
- | Input | 输入框 |
50
- | Tag | 标签 |
51
- | Badge | 徽标数 |
52
- | Avatar | 头像 |
53
- | Icon | 图标 |
54
- | Progress | 进度条 |
55
- | Alert | 警告提示 |
56
- | Loading | 加载 |
57
- | Spin | 加载中 |
58
- | Empty | 空状态 |
59
- | Result | 结果页 |
60
- | Descriptions | 描述列表 |
61
- | Statistic | 统计数值 |
62
- | BackTop | 回到顶部 |
63
- | Affix | 固钉 |
64
- | Anchor | 锚点 |
65
- | ConfigProvider | 全局化配置 |
66
-
67
- ### 表单组件
68
-
69
- | 组件名 | 说明 |
70
- |--------|------|
71
- | Form | 表单 |
72
- | Input | 输入框 |
73
- | InputNumber | 数字输入框 |
74
- | Select | 选择器 |
75
- | TreeSelect | 树选择 |
76
- | Cascader | 级联选择 |
77
- | Checkbox | 多选框 |
78
- | Radio | 单选框 |
79
- | Switch | 开关 |
80
- | DatePicker | 日期选择 |
81
- | TimePicker | 时间选择 |
82
- | Upload | 上传 |
83
- | Rate | 评分 |
84
- | ColorPicker | 颜色选择 |
85
- | Slider | 滑动输入条 |
86
- | Transfer | 穿梭框 |
87
-
88
- ### 数据展示
89
-
90
- | 组件名 | 说明 |
91
- |--------|------|
92
- | Table | 表格 |
93
- | Tree | 树形控件 |
94
- | Pagination | 分页 |
95
- | Calendar | 日历 |
96
- | Timeline | 时间轴 |
97
- | Collapse | 折叠面板 |
98
- | Tabs | 标签页 |
99
- | Card | 卡片 |
100
- | Carousel | 走马灯 |
101
- | Image | 图片 |
102
-
103
- ### 导航组件
104
-
105
- | 组件名 | 说明 |
106
- |--------|------|
107
- | Menu | 导航菜单 |
108
- | Breadcrumb | 面包屑 |
109
- | Steps | 步骤条 |
110
- | PageHeader | 页头 |
111
- | Dropdown | 下拉菜单 |
112
-
113
- ### 反馈组件
114
-
115
- | 组件名 | 说明 |
116
- |--------|------|
117
- | Modal | 对话框 |
118
- | Drawer | 抽屉 |
119
- | Popconfirm | 气泡确认框 |
120
- | Tooltip | 文字提示 |
121
- | Popover | 气泡卡片 |
122
- | Message | 全局提示 |
123
- | Notification | 通知提醒框 |
124
- | Toast | 轻提示 |
125
-
126
- ### 布局组件
127
-
128
- | 组件名 | 说明 |
129
- |--------|------|
130
- | Layout | 布局 |
131
- | Container | 容器 |
132
- | Grid | 栅格 |
133
- | Space | 间距 |
134
- | Divider | 分割线 |
135
-
136
- ## 基础用法
137
-
138
- ### Button 按钮
139
-
140
- ```typescript
141
- import { Button } from '@lytjs/ui';
142
-
143
- // 基础按钮
144
- <Button type="primary">主要按钮</Button>
145
-
146
- // 按钮类型
147
- <Button type="default">默认</Button>
148
- <Button type="primary">主要</Button>
149
- <Button type="success">成功</Button>
150
- <Button type="warning">警告</Button>
151
- <Button type="danger">危险</Button>
152
-
153
- // 按钮尺寸
154
- <Button size="small">小</Button>
155
- <Button size="medium">中</Button>
156
- <Button size="large">大</Button>
157
-
158
- // 禁用状态
159
- <Button disabled>禁用</Button>
160
-
161
- // 加载状态
162
- <Button loading>加载中</Button>
163
- ```
164
-
165
- ### Input 输入框
166
-
167
- ```typescript
168
- import { Input } from '@lytjs/ui';
169
-
170
- // 基础输入框
171
- <Input placeholder="请输入内容" />
172
-
173
- // 密码输入框
174
- <Input type="password" placeholder="请输入密码" />
175
-
176
- // 可清空
177
- <Input clearable />
178
-
179
- // 禁用状态
180
- <Input disabled />
181
-
182
- // 前缀/后缀
183
- <Input prefix="https://" suffix=".com" />
184
- ```
185
-
186
- ### Table 表格
187
-
188
- ```typescript
189
- import { Table } from '@lytjs/ui';
190
-
191
- const columns = [
192
- { prop: 'name', label: '姓名', sortable: true },
193
- { prop: 'age', label: '年龄' },
194
- { prop: 'address', label: '地址' },
195
- ];
196
-
197
- const data = [
198
- { id: 1, name: '张三', age: 25, address: '北京市朝阳区' },
199
- { id: 2, name: '李四', age: 30, address: '上海市浦东新区' },
200
- ];
201
-
202
- <Table
203
- data={data}
204
- columns={columns}
205
- stripe
206
- border
207
- showSelection
208
- highlightCurrentRow
209
- />
210
- ```
211
-
212
- ### Tree 树形控件
213
-
214
- ```typescript
215
- import { Tree } from '@lytjs/ui';
216
-
217
- const treeData = [
218
- {
219
- id: 1,
220
- label: '一级 1',
221
- children: [
222
- { id: 11, label: '二级 1-1' },
223
- ],
224
- },
225
- ];
226
-
227
- <Tree
228
- data={treeData}
229
- showLine
230
- showCheckbox
231
- />
232
- ```
233
-
234
- ## API 文档
235
-
236
- ### Button Props
237
-
238
- | 属性 | 说明 | 类型 | 默认值 |
239
- |------|------|------|--------|
240
- | type | 按钮类型 | string | 'default' |
241
- | size | 按钮尺寸 | string | 'medium' |
242
- | disabled | 是否禁用 | boolean | false |
243
- | loading | 是否加载中 | boolean | false |
244
- | block | 是否块级元素 | boolean | false |
245
-
246
- ### Input Props
247
-
248
- | 属性 | 说明 | 类型 | 默认值 |
249
- |------|------|------|--------|
250
- | type | 输入框类型 | string | 'text' |
251
- | placeholder | 占位文本 | string | '' |
252
- | clearable | 是否可清空 | boolean | false |
253
- | disabled | 是否禁用 | boolean | false |
254
- | prefix | 前缀 | string | '' |
255
- | suffix | 后缀 | string | '' |
256
-
257
- ### Table Props
258
-
259
- | 属性 | 说明 | 类型 | 默认值 |
260
- |------|------|------|--------|
261
- | data | 表格数据 | Array | [] |
262
- | columns | 列配置 | Array | [] |
263
- | stripe | 是否斑马纹 | boolean | false |
264
- | border | 是否有边框 | boolean | false |
265
- | showSelection | 是否显示选择列 | boolean | false |
266
- | highlightCurrentRow | 是否高亮当前行 | boolean | false |
267
-
268
- ### Tree Props
269
-
270
- | 属性 | 说明 | 类型 | 默认值 |
271
- |------|------|------|--------|
272
- | data | 树形数据 | Array | [] |
273
- | showLine | 是否显示连接线 | boolean | false |
274
- | showCheckbox | 是否显示复选框 | boolean | false |
275
- | checkable | 是否可选中 | boolean | false |
276
- | draggable | 是否可拖拽 | boolean | false |
277
-
278
- ### Form Props
279
-
280
- | 属性 | 说明 | 类型 | 默认值 |
281
- |------|------|------|--------|
282
- | model | 表单数据对象 | Object | {} |
283
- | rules | 验证规则 | Object | {} |
284
- | labelWidth | 标签宽度 | string | '100px' |
285
- | labelPosition | 标签位置 | string | 'right' |
286
-
287
- ## 主题
288
-
289
- ### 主题配置
290
-
291
- ```typescript
292
- import { theme } from '@lytjs/ui';
293
-
294
- // 切换主题
295
- theme.set('dark'); // 深色主题
296
- theme.set('light'); // 浅色主题
297
-
298
- // 或使用全局配置
299
- app.use(LytUI, {
300
- theme: 'dark'
301
- });
302
- ```
303
-
304
- ## 注意事项
305
-
306
- - 本库零第三方依赖
307
- - 建议使用 TypeScript 以获得更好的类型提示
308
- - 样式采用 CSS-in-JS 方案,支持按需加载
309
-
310
- ## 许可证
311
-
312
- MIT
1
+ # @lytjs/ui
2
+
3
+ LytJS 官方 UI 组件库,零第三方依赖,支持主题切换,30+ 组件应有尽有。
4
+
5
+ ## 特性
6
+
7
+ - 🎨 **零第三方依赖** - 只依赖 LytJS 核心
8
+ - 📱 **响应式设计** - 完美适配各种屏幕尺寸
9
+ - 🎭 **主题系统** - 支持深色/浅色主题切换
10
+ - 🔧 **TypeScript 支持** - 完整的类型定义
11
+ - 📦 **Tree Shaking 友好** - 按需引入,减小体积
12
+
13
+ ## 安装
14
+
15
+ ```bash
16
+ pnpm add @lytjs/ui
17
+ ```
18
+
19
+ ## 使用
20
+
21
+ ### 全局注册
22
+
23
+ ```typescript
24
+ import { createApp } from '@lytjs/core';
25
+ import LytUI from '@lytjs/ui';
26
+ import '@lytjs/ui/styles';
27
+
28
+ const app = createApp(App);
29
+ app.use(LytUI);
30
+ app.mount('#app');
31
+ ```
32
+
33
+ ### 按需引入
34
+
35
+ ```typescript
36
+ import { Button, Input, Table } from '@lytjs/ui';
37
+ import '@lytjs/ui/styles/button.css';
38
+ import '@lytjs/ui/styles/input.css';
39
+ import '@lytjs/ui/styles/table.css';
40
+ ```
41
+
42
+ ## 组件列表
43
+
44
+ ### 基础组件
45
+
46
+ | 组件名 | 说明 |
47
+ | -------------- | ---------- |
48
+ | Button | 按钮 |
49
+ | Input | 输入框 |
50
+ | Tag | 标签 |
51
+ | Badge | 徽标数 |
52
+ | Avatar | 头像 |
53
+ | Icon | 图标 |
54
+ | Progress | 进度条 |
55
+ | Alert | 警告提示 |
56
+ | Loading | 加载 |
57
+ | Spin | 加载中 |
58
+ | Empty | 空状态 |
59
+ | Result | 结果页 |
60
+ | Descriptions | 描述列表 |
61
+ | Statistic | 统计数值 |
62
+ | BackTop | 回到顶部 |
63
+ | Affix | 固钉 |
64
+ | Anchor | 锚点 |
65
+ | ConfigProvider | 全局化配置 |
66
+
67
+ ### 表单组件
68
+
69
+ | 组件名 | 说明 |
70
+ | ----------- | ---------- |
71
+ | Form | 表单 |
72
+ | Input | 输入框 |
73
+ | InputNumber | 数字输入框 |
74
+ | Select | 选择器 |
75
+ | TreeSelect | 树选择 |
76
+ | Cascader | 级联选择 |
77
+ | Checkbox | 多选框 |
78
+ | Radio | 单选框 |
79
+ | Switch | 开关 |
80
+ | DatePicker | 日期选择 |
81
+ | TimePicker | 时间选择 |
82
+ | Upload | 上传 |
83
+ | Rate | 评分 |
84
+ | ColorPicker | 颜色选择 |
85
+ | Slider | 滑动输入条 |
86
+ | Transfer | 穿梭框 |
87
+
88
+ ### 数据展示
89
+
90
+ | 组件名 | 说明 |
91
+ | ---------- | -------- |
92
+ | Table | 表格 |
93
+ | Tree | 树形控件 |
94
+ | Pagination | 分页 |
95
+ | Calendar | 日历 |
96
+ | Timeline | 时间轴 |
97
+ | Collapse | 折叠面板 |
98
+ | Tabs | 标签页 |
99
+ | Card | 卡片 |
100
+ | Carousel | 走马灯 |
101
+ | Image | 图片 |
102
+
103
+ ### 导航组件
104
+
105
+ | 组件名 | 说明 |
106
+ | ---------- | -------- |
107
+ | Menu | 导航菜单 |
108
+ | Breadcrumb | 面包屑 |
109
+ | Steps | 步骤条 |
110
+ | PageHeader | 页头 |
111
+ | Dropdown | 下拉菜单 |
112
+
113
+ ### 反馈组件
114
+
115
+ | 组件名 | 说明 |
116
+ | ------------ | ---------- |
117
+ | Modal | 对话框 |
118
+ | Drawer | 抽屉 |
119
+ | Popconfirm | 气泡确认框 |
120
+ | Tooltip | 文字提示 |
121
+ | Popover | 气泡卡片 |
122
+ | Message | 全局提示 |
123
+ | Notification | 通知提醒框 |
124
+ | Toast | 轻提示 |
125
+
126
+ ### 布局组件
127
+
128
+ | 组件名 | 说明 |
129
+ | --------- | ------ |
130
+ | Layout | 布局 |
131
+ | Container | 容器 |
132
+ | Grid | 栅格 |
133
+ | Space | 间距 |
134
+ | Divider | 分割线 |
135
+
136
+ ## 基础用法
137
+
138
+ ### Button 按钮
139
+
140
+ ```typescript
141
+ import { Button } from '@lytjs/ui';
142
+
143
+ // 基础按钮
144
+ <Button type="primary">主要按钮</Button>
145
+
146
+ // 按钮类型
147
+ <Button type="default">默认</Button>
148
+ <Button type="primary">主要</Button>
149
+ <Button type="success">成功</Button>
150
+ <Button type="warning">警告</Button>
151
+ <Button type="danger">危险</Button>
152
+
153
+ // 按钮尺寸
154
+ <Button size="small">小</Button>
155
+ <Button size="medium">中</Button>
156
+ <Button size="large">大</Button>
157
+
158
+ // 禁用状态
159
+ <Button disabled>禁用</Button>
160
+
161
+ // 加载状态
162
+ <Button loading>加载中</Button>
163
+ ```
164
+
165
+ ### Input 输入框
166
+
167
+ ```typescript
168
+ import { Input } from '@lytjs/ui';
169
+
170
+ // 基础输入框
171
+ <Input placeholder="请输入内容" />
172
+
173
+ // 密码输入框
174
+ <Input type="password" placeholder="请输入密码" />
175
+
176
+ // 可清空
177
+ <Input clearable />
178
+
179
+ // 禁用状态
180
+ <Input disabled />
181
+
182
+ // 前缀/后缀
183
+ <Input prefix="https://" suffix=".com" />
184
+ ```
185
+
186
+ ### Table 表格
187
+
188
+ ```typescript
189
+ import { Table } from '@lytjs/ui';
190
+
191
+ const columns = [
192
+ { prop: 'name', label: '姓名', sortable: true },
193
+ { prop: 'age', label: '年龄' },
194
+ { prop: 'address', label: '地址' },
195
+ ];
196
+
197
+ const data = [
198
+ { id: 1, name: '张三', age: 25, address: '北京市朝阳区' },
199
+ { id: 2, name: '李四', age: 30, address: '上海市浦东新区' },
200
+ ];
201
+
202
+ <Table
203
+ data={data}
204
+ columns={columns}
205
+ stripe
206
+ border
207
+ showSelection
208
+ highlightCurrentRow
209
+ />
210
+ ```
211
+
212
+ ### Tree 树形控件
213
+
214
+ ```typescript
215
+ import { Tree } from '@lytjs/ui';
216
+
217
+ const treeData = [
218
+ {
219
+ id: 1,
220
+ label: '一级 1',
221
+ children: [
222
+ { id: 11, label: '二级 1-1' },
223
+ ],
224
+ },
225
+ ];
226
+
227
+ <Tree
228
+ data={treeData}
229
+ showLine
230
+ showCheckbox
231
+ />
232
+ ```
233
+
234
+ ## API 文档
235
+
236
+ ### Button Props
237
+
238
+ | 属性 | 说明 | 类型 | 默认值 |
239
+ | -------- | ------------ | ------- | --------- |
240
+ | type | 按钮类型 | string | 'default' |
241
+ | size | 按钮尺寸 | string | 'medium' |
242
+ | disabled | 是否禁用 | boolean | false |
243
+ | loading | 是否加载中 | boolean | false |
244
+ | block | 是否块级元素 | boolean | false |
245
+
246
+ ### Input Props
247
+
248
+ | 属性 | 说明 | 类型 | 默认值 |
249
+ | ----------- | ---------- | ------- | ------ |
250
+ | type | 输入框类型 | string | 'text' |
251
+ | placeholder | 占位文本 | string | '' |
252
+ | clearable | 是否可清空 | boolean | false |
253
+ | disabled | 是否禁用 | boolean | false |
254
+ | prefix | 前缀 | string | '' |
255
+ | suffix | 后缀 | string | '' |
256
+
257
+ ### Table Props
258
+
259
+ | 属性 | 说明 | 类型 | 默认值 |
260
+ | ------------------- | -------------- | ------- | ------ |
261
+ | data | 表格数据 | Array | [] |
262
+ | columns | 列配置 | Array | [] |
263
+ | stripe | 是否斑马纹 | boolean | false |
264
+ | border | 是否有边框 | boolean | false |
265
+ | showSelection | 是否显示选择列 | boolean | false |
266
+ | highlightCurrentRow | 是否高亮当前行 | boolean | false |
267
+
268
+ ### Tree Props
269
+
270
+ | 属性 | 说明 | 类型 | 默认值 |
271
+ | ------------ | -------------- | ------- | ------ |
272
+ | data | 树形数据 | Array | [] |
273
+ | showLine | 是否显示连接线 | boolean | false |
274
+ | showCheckbox | 是否显示复选框 | boolean | false |
275
+ | checkable | 是否可选中 | boolean | false |
276
+ | draggable | 是否可拖拽 | boolean | false |
277
+
278
+ ### Form Props
279
+
280
+ | 属性 | 说明 | 类型 | 默认值 |
281
+ | ------------- | ------------ | ------ | ------- |
282
+ | model | 表单数据对象 | Object | {} |
283
+ | rules | 验证规则 | Object | {} |
284
+ | labelWidth | 标签宽度 | string | '100px' |
285
+ | labelPosition | 标签位置 | string | 'right' |
286
+
287
+ ## 主题
288
+
289
+ ### 主题配置
290
+
291
+ ```typescript
292
+ import { theme } from '@lytjs/ui';
293
+
294
+ // 切换主题
295
+ theme.set('dark'); // 深色主题
296
+ theme.set('light'); // 浅色主题
297
+
298
+ // 或使用全局配置
299
+ app.use(LytUI, {
300
+ theme: 'dark',
301
+ });
302
+ ```
303
+
304
+ ## 注意事项
305
+
306
+ - 本库零第三方依赖
307
+ - 建议使用 TypeScript 以获得更好的类型提示
308
+ - 样式采用 CSS-in-JS 方案,支持按需加载
309
+
310
+ ## 许可证
311
+
312
+ MIT