lingee-ui 0.0.8 → 0.0.10
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/dist/button/index.css +1 -1
- package/dist/button/index.d.mts +1 -1
- package/dist/button/index.d.ts +1 -1
- package/dist/chunk-45W5KD4T.js +2 -0
- package/dist/{chunk-AEPAJEIR.js → chunk-5RKADFB7.js} +1 -1
- package/dist/{chunk-TO3JLUBX.mjs → chunk-HI27RMCM.mjs} +1 -1
- package/dist/{chunk-AP6UHKTU.mjs → chunk-HSJ3C3FP.mjs} +1 -1
- package/dist/chunk-HVFYR7UA.mjs +2 -0
- package/dist/chunk-LBNA6G3N.js +1 -0
- package/dist/chunk-MH2WNTQF.mjs +1 -0
- package/dist/chunk-N524EGAL.mjs +1 -0
- package/dist/chunk-TR5HCUR5.js +1 -0
- package/dist/{chunk-VHOWVMZ3.js → chunk-UXFCTPA5.js} +1 -1
- package/dist/{index-7pb5YOcq.d.mts → index-89atTLPD.d.mts} +2 -2
- package/dist/{index-7pb5YOcq.d.ts → index-89atTLPD.d.ts} +2 -2
- package/dist/index.css +1 -1
- package/dist/index.d.mts +693 -32
- package/dist/index.d.ts +693 -32
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/dist/input/index.css +1 -1
- package/dist/input/index.js +1 -1
- package/dist/input/index.mjs +1 -1
- package/dist/popover/index.css +1 -1
- package/dist/popover/index.js +1 -1
- package/dist/popover/index.mjs +1 -1
- package/dist/tabs/index.css +1 -1
- package/dist/tabs/index.js +1 -1
- package/dist/tabs/index.mjs +1 -1
- package/dist/textarea/index.css +1 -1
- package/dist/toast/index.js +1 -1
- package/dist/toast/index.mjs +1 -1
- package/dist/tokens.css +1 -1
- package/dist/tree/index.css +1 -1
- package/dist/tree/index.js +1 -1
- package/dist/tree/index.mjs +1 -1
- package/package.json +4 -1
- package/skill/AGENTS-SNIPPET.md +60 -23
- package/skill/SKILL.md +34 -23
- package/skill/VERSION.json +4 -4
- package/skill/references/components/carousel.md +93 -0
- package/skill/references/components/dropdown.md +81 -2
- package/skill/references/components/ellipsis-tooltip.md +44 -0
- package/skill/references/components/empty.md +3 -2
- package/skill/references/components/select.md +1 -0
- package/skill/references/components/sidebar.md +14 -4
- package/skill/references/components/upload.md +53 -1
- package/skill/references/icons.md +3 -2
- package/skill/references/setup.md +14 -2
- package/skill/references/tokens.md +56 -21
- package/dist/chunk-3U36GSZF.js +0 -2
- package/dist/chunk-7TZ6IXXG.js +0 -1
- package/dist/chunk-DIXO53WK.mjs +0 -1
- package/dist/chunk-M2SC5LED.js +0 -1
- package/dist/chunk-PKNSR23I.mjs +0 -2
- package/dist/chunk-QBEHOXXU.mjs +0 -1
package/skill/AGENTS-SNIPPET.md
CHANGED
|
@@ -2,22 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
> **本文件由 `packages/lingee-ui/scripts/gen-skill.mjs` 自动生成,禁止手工编辑。**
|
|
4
4
|
> 供根 `AGENTS.md` 引用,避免手写清单随组件库迭代脱节。
|
|
5
|
-
> 组件库 `0.0.
|
|
5
|
+
> 组件库 `0.0.10` | 图标库 `1.0.16`
|
|
6
6
|
|
|
7
|
-
## 可用组件(
|
|
7
|
+
## 可用组件(39)
|
|
8
8
|
|
|
9
9
|
| 组件 | 名称 | 说明 |
|
|
10
10
|
|------|------|------|
|
|
11
11
|
| `Alert` | 消息通知 | 消息提示组件,用于页面中展示重要的提示信息。 |
|
|
12
12
|
| `Avatar`、`AvatarGroup` | 头像 | 头像组件,用于展示用户头像或图标,支持图片、文字、默认图标三种形态。 |
|
|
13
13
|
| `Button` | 按钮 | 用于触发一个操作,是用户与系统交互的基础元素。 |
|
|
14
|
+
| `Carousel`、`CarouselItem` | 轮播容器 | 水平轮播容器,用于在一屏内循环展示一组内容,支持自动播放、拖拽切换与圆点指示器。 |
|
|
14
15
|
| `Checkbox`、`CheckboxGroup` | 多选框 | 在一组选项中进行多项选择。 |
|
|
15
16
|
| `ColorPicker` | 颜色选择器 | 用于选择颜色值的交互组件。 |
|
|
16
17
|
| `DatePicker` | 日期选择器 | 用于选择日期的输入组件。 |
|
|
17
18
|
| `Dialog` | 弹出窗 | 模态对话框,用于需要用户确认或填写信息的场景。支持声明式和命令式两种调用方式。 |
|
|
18
19
|
| `Divider` | 分割线 | 用于分隔内容区块,使页面结构更清晰。 |
|
|
19
20
|
| `Drawer` | 抽屉 | 从屏幕边缘滑出的浮层面板,用于承载表单或详情内容。 |
|
|
20
|
-
| `Dropdown` +
|
|
21
|
+
| `Dropdown` +14 个子组件 | 下拉菜单 | 向下弹出的操作菜单列表,支持图标、分组、危险操作、子菜单等。 |
|
|
22
|
+
| `EllipsisTooltip` | 省略提示 | 单行省略文本,仅在真正被截断时才悬停显示完整内容。 |
|
|
21
23
|
| `Empty`、`EmptyCard` | 空状态 | 当目标区域无数据时展示的空状态占位图,引导用户进行下一步操作。 |
|
|
22
24
|
| `Flex` | 弹性布局 | 弹性布局容器,用于快速搭建横向/纵向排列,避免为简单布局单独写样式文件。 |
|
|
23
25
|
| `Form` | 表单 | 数据录入和校验组件,支持垂直、水平、行内布局。 |
|
|
@@ -30,7 +32,7 @@
|
|
|
30
32
|
| `RangePicker` | 日期范围选择器 | 用于选择日期范围的输入组件。 |
|
|
31
33
|
| `ScrollArea`、`ScrollBar` | 自定义滚动区域 | 自定义样式的滚动容器组件,提供美观的滚动条体验。 |
|
|
32
34
|
| `Select` | 选择器 | 下拉选择器,支持单选、多选、搜索和远程加载。 |
|
|
33
|
-
| `Sidebar` +
|
|
35
|
+
| `Sidebar` +26 个子组件 | 侧边栏 | 侧边栏复合组件,提供根容器、页签、导航项、分组、列表项、占位项与底栏,通过 Sidebar.xxx 组合使用。 |
|
|
34
36
|
| `Skeleton` | 骨架屏 | 在数据加载完成前通过占位图形展示页面结构,降低用户等待焦虑。 |
|
|
35
37
|
| `Slider` | 数值滑块 | 滑动输入器,用于在数值区间内进行选择。 |
|
|
36
38
|
| `Spin` | 加载中 | 用于页面和区域的加载中状态指示器。 |
|
|
@@ -63,28 +65,28 @@
|
|
|
63
65
|
|
|
64
66
|
按 CSS 属性选前缀:`color`/`fill`/`stroke` → `fg`,`background` → `bg`,`border-color`/`outline` → `border`。
|
|
65
67
|
|
|
66
|
-
亮暗变量名相同,`data-theme="dark"` 自动切换。色值列供**反查**(设计稿色值找 Token)与**比对**(少数 Token
|
|
68
|
+
亮暗变量名相同,`data-theme="dark"` 自动切换。色值列供**反查**(设计稿色值找 Token)与**比对**(少数 Token 亮暗语义不对称)使用,**不要把色值直接写进业务代码**。表里查不到所需颜色时可写硬编码(加注释标明来源),但**任何情况都不得引用 primitives**。
|
|
67
69
|
|
|
68
|
-
### ⚠️
|
|
70
|
+
### ⚠️ 已废弃的错拼 Token
|
|
69
71
|
|
|
70
|
-
|
|
72
|
+
早期从设计源文件带入的拼写错误,现已提供正确拼写。错拼名仅作兼容别名保留(与正确名同值),**后续版本会移除**,新代码一律用左列:
|
|
71
73
|
|
|
72
|
-
|
|
|
73
|
-
|
|
74
|
-
| `--lg-g-fg-color-
|
|
75
|
-
| `--lg-g-fg-color-
|
|
76
|
-
| `--lg-g-fg-color-
|
|
77
|
-
| `--lg-g-
|
|
78
|
-
| `--lg-g-
|
|
74
|
+
| 正确拼写(用这个) | 已废弃 |
|
|
75
|
+
|-------------------|--------|
|
|
76
|
+
| `--lg-g-fg-color-black-faint` | ~~`--lg-g-fg-color-black-aint`~~ |
|
|
77
|
+
| `--lg-g-fg-color-indigo-default` | ~~`--lg-g-fg-color-indigo-defauit`~~ |
|
|
78
|
+
| `--lg-g-fg-color-lime-default` | ~~`--lg-g-fg-color-lime-defauit`~~ |
|
|
79
|
+
| `--lg-g-fg-color-violet-default` | ~~`--lg-g-fg-color-violet-defauit`~~ |
|
|
80
|
+
| `--lg-g-bg-color-emerald-translucent-soft` | ~~`--lg-g-bg-color-emeraid-translucent-soft`~~ |
|
|
79
81
|
|
|
80
|
-
#### 前景色 fg(
|
|
82
|
+
#### 前景色 fg(47)
|
|
81
83
|
|
|
82
84
|
| Token | 亮色 | 暗色 |
|
|
83
85
|
|-------|------|------|
|
|
84
86
|
| `--lg-g-fg-color-white-heavy` | `#FFFFFF` | `#FFFFFF` |
|
|
85
87
|
| `--lg-g-fg-color-white-dark` | `#FFFFFF` | `rgba(255, 255, 255, 0.28)` |
|
|
86
88
|
| `--lg-g-fg-color-black-moderate` | `rgba(0, 0, 0, 0.18)` | `rgba(255, 255, 255, 0.18)` |
|
|
87
|
-
| `--lg-g-fg-color-black-
|
|
89
|
+
| `--lg-g-fg-color-black-faint` | `rgba(0, 0, 0, 0.28)` | `rgba(255, 255, 255, 0.28)` |
|
|
88
90
|
| `--lg-g-fg-color-black-default` | `rgba(0, 0, 0, 0.46)` | `rgba(255, 255, 255, 0.46)` |
|
|
89
91
|
| `--lg-g-fg-color-black-muted` | `rgba(0, 0, 0, 0.64)` | `rgba(255, 255, 255, 0.64)` |
|
|
90
92
|
| `--lg-g-fg-color-black-strong` | `rgba(0, 0, 0, 0.82)` | `rgba(255, 255, 255, 0.82)` |
|
|
@@ -107,16 +109,29 @@
|
|
|
107
109
|
| `--lg-g-fg-color-amber-default` | `#E28800` | `#E28800` |
|
|
108
110
|
| `--lg-g-fg-color-teal-default` | `#00BFB8` | `#00BFB8` |
|
|
109
111
|
| `--lg-g-fg-color-purple-default` | `#7F2AF3` | `#7F2AF3` |
|
|
110
|
-
| `--lg-g-fg-color-indigo-
|
|
112
|
+
| `--lg-g-fg-color-indigo-default` | `#4343F5` | `#4343F5` |
|
|
111
113
|
| `--lg-g-fg-color-yellow-default` | `#D1A600` | `#D1A600` |
|
|
112
114
|
| `--lg-g-fg-color-cyan-default` | `#0083D4` | `#0083D4` |
|
|
113
115
|
| `--lg-g-fg-color-pink-default` | `#ED1165` | `#ED1165` |
|
|
114
116
|
| `--lg-g-fg-color-fuchsia-default` | `#ED1DB9` | `#ED1DB9` |
|
|
115
117
|
| `--lg-g-fg-color-emerald-default` | `#009D72` | `#009D72` |
|
|
116
|
-
| `--lg-g-fg-color-lime-
|
|
117
|
-
| `--lg-g-fg-color-violet-
|
|
118
|
+
| `--lg-g-fg-color-lime-default` | `#5FBA04` | `#5FBA04` |
|
|
119
|
+
| `--lg-g-fg-color-violet-default` | `#572FF7` | `#572FF7` |
|
|
120
|
+
| `--lg-g-fg-color-warning-low` | `#FF8D42` | `#FF8D42` |
|
|
121
|
+
| `--lg-g-fg-color-success-low` | `#08CC50` | `#08CC50` |
|
|
122
|
+
| `--lg-g-fg-color-amber-low` | `#FFB200` | `#FFB200` |
|
|
123
|
+
| `--lg-g-fg-color-teal-low` | `#00E5E5` | `#00E5E5` |
|
|
124
|
+
| `--lg-g-fg-color-purple-low` | `#8F40FF` | `#8F40FF` |
|
|
125
|
+
| `--lg-g-fg-color-indigo-low` | `#5155F6` | `#5155F6` |
|
|
126
|
+
| `--lg-g-fg-color-yellow-low` | `#FFE500` | `#FFE500` |
|
|
127
|
+
| `--lg-g-fg-color-cyan-low` | `#00A3F4` | `#00A3F4` |
|
|
128
|
+
| `--lg-g-fg-color-pink-low` | `#FF246D` | `#FF246D` |
|
|
129
|
+
| `--lg-g-fg-color-fuchsia-low` | `#F858D0` | `#F858D0` |
|
|
130
|
+
| `--lg-g-fg-color-emerald-low` | `#08C787` | `#08C787` |
|
|
131
|
+
| `--lg-g-fg-color-lime-low` | `#74D70B` | `#74D70B` |
|
|
132
|
+
| `--lg-g-fg-color-violet-low` | `#7858F9` | `#7858F9` |
|
|
118
133
|
|
|
119
|
-
#### 背景色 bg(
|
|
134
|
+
#### 背景色 bg(99)
|
|
120
135
|
|
|
121
136
|
| Token | 亮色 | 暗色 |
|
|
122
137
|
|-------|------|------|
|
|
@@ -201,7 +216,7 @@
|
|
|
201
216
|
| `--lg-g-bg-color-indigo-faint` | `#F5F6FF` | `rgba(81, 85, 246, 0.03)` |
|
|
202
217
|
| `--lg-g-bg-color-indigo-faint-dark` | `#F5F6FF` | `#222327` |
|
|
203
218
|
| `--lg-g-bg-color-gray-subtle` | `#F7F8FA` | `#F7F8FA` |
|
|
204
|
-
| `--lg-g-bg-color-
|
|
219
|
+
| `--lg-g-bg-color-emerald-translucent-soft` | `rgba(8, 199, 135, 0.08)` | `rgba(8, 199, 135, 0.08)` |
|
|
205
220
|
| `--lg-g-bg-color-emerald-default` | `#009D72` | `#009D72` |
|
|
206
221
|
| `--lg-g-bg-color-lime-translucent-soft` | `rgba(116, 215, 11, 0.08)` | `rgba(116, 215, 11, 0.08)` |
|
|
207
222
|
| `--lg-g-bg-color-lime-default` | `#5FBA04` | `#5FBA04` |
|
|
@@ -211,9 +226,16 @@
|
|
|
211
226
|
| `--lg-g-bg-color-violet-default` | `#572FF7` | `#572FF7` |
|
|
212
227
|
| `--lg-g-bg-color-fuchsia-translucent-soft` | `rgba(248, 88, 208, 0.08)` | `rgba(248, 88, 208, 0.08)` |
|
|
213
228
|
| `--lg-g-bg-color-fuchsia-default` | `#ED1DB9` | `#ED1DB9` |
|
|
214
|
-
| `--lg-g-bg-color-page-default` | `#F7F7FA` | `#
|
|
229
|
+
| `--lg-g-bg-color-page-default` | `#F7F7FA` | `#191A1B` |
|
|
230
|
+
| `--lg-g-bg-color-white` | `#FAFAFA` | `#191A1B` |
|
|
231
|
+
| `--lg-g-bg-color-navigation` | `#F1F1F6` | `#191A1B` |
|
|
232
|
+
| `--lg-g-bg-color-white-tabs` | `#FFFFFF` | `rgba(255, 255, 255, 0.28)` |
|
|
233
|
+
| `--lg-g-bg-color-white-default` | `rgba(255, 255, 255, 0.46)` | `rgba(0, 0, 0, 0.46)` |
|
|
234
|
+
| `--lg-g-bg-color-success-translucent-subtle` | `rgba(8, 204, 80, 0.06)` | `rgba(8, 204, 80, 0.06)` |
|
|
235
|
+
| `--lg-g-bg-color-blue-translucent-subtle` | `rgba(77, 137, 255, 0.06)` | `rgba(77, 137, 255, 0.06)` |
|
|
236
|
+
| `--lg-g-bg-color-blue-translucent-muted` | `rgba(77, 137, 255, 0.12)` | `rgba(77, 137, 255, 0.28)` |
|
|
215
237
|
|
|
216
|
-
#### 边框色 border(
|
|
238
|
+
#### 边框色 border(42)
|
|
217
239
|
|
|
218
240
|
| Token | 亮色 | 暗色 |
|
|
219
241
|
|-------|------|------|
|
|
@@ -244,6 +266,21 @@
|
|
|
244
266
|
| `--lg-g-border-color-blue-translucent-soft` | `rgba(77, 137, 255, 0.08)` | `rgba(77, 137, 255, 0.08)` |
|
|
245
267
|
| `--lg-g-border-color-blue-subtle` | `#E4EEFF` | `#183F96` |
|
|
246
268
|
| `--lg-g-border-color-blue-default` | `#2970FF` | `#2970FF` |
|
|
269
|
+
| `--lg-g-border-color-black-default` | `rgba(0, 0, 0, 0.46)` | `rgba(255, 255, 255, 0.46)` |
|
|
270
|
+
| `--lg-g-border-color-warning-translucent-muted` | `rgba(255, 119, 0, 0.12)` | `rgba(255, 119, 0, 0.12)` |
|
|
271
|
+
| `--lg-g-border-color-danger-translucent-muted` | `rgba(255, 41, 59, 0.12)` | `rgba(255, 41, 59, 0.12)` |
|
|
272
|
+
| `--lg-g-border-color-success-translucent-muted` | `rgba(8, 204, 80, 0.12)` | `rgba(8, 204, 80, 0.12)` |
|
|
273
|
+
| `--lg-g-border-color-blue-translucent-default` | `rgba(77, 137, 255, 0.12)` | `rgba(77, 137, 255, 0.12)` |
|
|
274
|
+
| `--lg-g-border-color-amber-default` | `#E28800` | `#E28800` |
|
|
275
|
+
| `--lg-g-border-color-teal-default` | `#00BFB8` | `#00BFB8` |
|
|
276
|
+
| `--lg-g-border-color-emerald-default` | `#009D72` | `#009D72` |
|
|
277
|
+
| `--lg-g-border-color-lime-default` | `#5FBA04` | `#5FBA04` |
|
|
278
|
+
| `--lg-g-border-color-cyan-default` | `#0083D4` | `#0083D4` |
|
|
279
|
+
| `--lg-g-border-color-purple-default` | `#7F2AF3` | `#7F2AF3` |
|
|
280
|
+
| `--lg-g-border-color-indigo-default` | `#4343F5` | `#4343F5` |
|
|
281
|
+
| `--lg-g-border-color-violet-default` | `#572FF7` | `#572FF7` |
|
|
282
|
+
| `--lg-g-border-color-fuchsia-default` | `#ED1DB9` | `#ED1DB9` |
|
|
283
|
+
| `--lg-g-border-color-pink-default` | `#ED1165` | `#ED1165` |
|
|
247
284
|
#### 其他(3)
|
|
248
285
|
|
|
249
286
|
| Token | 亮色 | 暗色 |
|
package/skill/SKILL.md
CHANGED
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
name: lingee-ui-usage
|
|
3
3
|
description: 使用 lingee-ui 组件库与 lingee-icon 图标库开发 React 界面。当需要编写含按钮、表单、弹窗、表格、下拉、页签、图标等 UI 的 React/TypeScript 代码,或需要查询 lingee-ui 组件 API、Design Token 语义变量、可用图标名时触发。关键词:lingee-ui、lingee-icon、组件库、图标库、Design Token、语义变量、lg- 前缀、UI 组件。
|
|
4
4
|
metadata:
|
|
5
|
-
lingeeUi: "0.0.
|
|
5
|
+
lingeeUi: "0.0.10"
|
|
6
6
|
lingeeIcon: "1.0.16"
|
|
7
7
|
generatedBy: "gen-skill.mjs"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# lingee-ui 组件库使用技能
|
|
11
11
|
|
|
12
|
-
Kingdee Lingee 设计体系的 React 组件库(
|
|
12
|
+
Kingdee Lingee 设计体系的 React 组件库(39 个组件)与图标库(968 个图标)。
|
|
13
13
|
本技能面向**消费方项目**,只覆盖「如何用」,不含组件库内部开发约定。
|
|
14
14
|
|
|
15
|
-
- 组件库版本 `0.0.
|
|
15
|
+
- 组件库版本 `0.0.10` | 图标库版本 `1.0.16`
|
|
16
16
|
- 组件在线预览:https://kingdee.github.io/lingee-ui/
|
|
17
17
|
- 图标在线预览:https://kingdee.github.io/lingee-icon/
|
|
18
18
|
|
|
@@ -44,7 +44,7 @@ import "lingee-ui/styles.css"; // 必须,否则组件完全无样式
|
|
|
44
44
|
import { LingeeProvider } from "lingee-ui";
|
|
45
45
|
|
|
46
46
|
createRoot(el).render(
|
|
47
|
-
<LingeeProvider
|
|
47
|
+
<LingeeProvider>
|
|
48
48
|
<App />
|
|
49
49
|
</LingeeProvider>,
|
|
50
50
|
);
|
|
@@ -59,13 +59,15 @@ createRoot(el).render(
|
|
|
59
59
|
| `Alert` | 消息通知 | 消息提示组件,用于页面中展示重要的提示信息。 | `alert.md` | — |
|
|
60
60
|
| `Avatar`、`AvatarGroup` | 头像 | 头像组件,用于展示用户头像或图标,支持图片、文字、默认图标三种形态。 | `avatar.md` | — |
|
|
61
61
|
| `Button` | 按钮 | 用于触发一个操作,是用户与系统交互的基础元素。 | `button.md` | ✓ |
|
|
62
|
+
| `Carousel`、`CarouselItem` | 轮播容器 | 水平轮播容器,用于在一屏内循环展示一组内容,支持自动播放、拖拽切换与圆点指示器。 | `carousel.md` | — |
|
|
62
63
|
| `Checkbox`、`CheckboxGroup` | 多选框 | 在一组选项中进行多项选择。 | `checkbox.md` | — |
|
|
63
64
|
| `ColorPicker` | 颜色选择器 | 用于选择颜色值的交互组件。 | `color-picker.md` | — |
|
|
64
65
|
| `DatePicker` | 日期选择器 | 用于选择日期的输入组件。 | `date-picker.md` | — |
|
|
65
66
|
| `Dialog` | 弹出窗 | 模态对话框,用于需要用户确认或填写信息的场景。支持声明式和命令式两种调用方式。 | `dialog.md` | — |
|
|
66
67
|
| `Divider` | 分割线 | 用于分隔内容区块,使页面结构更清晰。 | `divider.md` | — |
|
|
67
68
|
| `Drawer` | 抽屉 | 从屏幕边缘滑出的浮层面板,用于承载表单或详情内容。 | `drawer.md` | — |
|
|
68
|
-
| `Dropdown` +
|
|
69
|
+
| `Dropdown` +14 个子组件 | 下拉菜单 | 向下弹出的操作菜单列表,支持图标、分组、危险操作、子菜单等。 | `dropdown.md` | — |
|
|
70
|
+
| `EllipsisTooltip` | 省略提示 | 单行省略文本,仅在真正被截断时才悬停显示完整内容。 | `ellipsis-tooltip.md` | — |
|
|
69
71
|
| `Empty`、`EmptyCard` | 空状态 | 当目标区域无数据时展示的空状态占位图,引导用户进行下一步操作。 | `empty.md` | — |
|
|
70
72
|
| `Flex` | 弹性布局 | 弹性布局容器,用于快速搭建横向/纵向排列,避免为简单布局单独写样式文件。 | `flex.md` | — |
|
|
71
73
|
| `Form` | 表单 | 数据录入和校验组件,支持垂直、水平、行内布局。 | `form.md` | — |
|
|
@@ -78,7 +80,7 @@ createRoot(el).render(
|
|
|
78
80
|
| `RangePicker` | 日期范围选择器 | 用于选择日期范围的输入组件。 | `range-picker.md` | — |
|
|
79
81
|
| `ScrollArea`、`ScrollBar` | 自定义滚动区域 | 自定义样式的滚动容器组件,提供美观的滚动条体验。 | `scroll-area.md` | — |
|
|
80
82
|
| `Select` | 选择器 | 下拉选择器,支持单选、多选、搜索和远程加载。 | `select.md` | — |
|
|
81
|
-
| `Sidebar` +
|
|
83
|
+
| `Sidebar` +26 个子组件 | 侧边栏 | 侧边栏复合组件,提供根容器、页签、导航项、分组、列表项、占位项与底栏,通过 Sidebar.xxx 组合使用。 | `sidebar.md` | — |
|
|
82
84
|
| `Skeleton` | 骨架屏 | 在数据加载完成前通过占位图形展示页面结构,降低用户等待焦虑。 | `skeleton.md` | — |
|
|
83
85
|
| `Slider` | 数值滑块 | 滑动输入器,用于在数值区间内进行选择。 | `slider.md` | — |
|
|
84
86
|
| `Spin` | 加载中 | 用于页面和区域的加载中状态指示器。 | `spin.md` | — |
|
|
@@ -132,16 +134,15 @@ import { Search, Trash } from "lingee-icon";
|
|
|
132
134
|
图标默认 `size="1em"`、`color="currentColor"`,即随父级字号与文字颜色走,
|
|
133
135
|
所以**优先用 CSS 控制颜色**而不是传 `color` prop。
|
|
134
136
|
|
|
135
|
-
完整 Props 见 `references/setup.md`,
|
|
137
|
+
完整 Props 见 `references/setup.md`,968 个图标的名称与中文语义索引见 `references/icons.md`。
|
|
136
138
|
选图标时必须从索引中查找,**不要凭猜测写图标名**,也不要从 `@ant-design/icons`、`lucide-react` 等其他库引入。
|
|
137
139
|
|
|
138
|
-
##
|
|
140
|
+
## 颜色:优先用语义 Token
|
|
139
141
|
|
|
140
|
-
|
|
142
|
+
两条铁律:
|
|
141
143
|
|
|
142
|
-
1.
|
|
143
|
-
2.
|
|
144
|
-
3. 只用语义层 `--lg-g-*` 变量,按 CSS 属性选前缀:
|
|
144
|
+
1. **禁止使用 primitives 色板变量**(`--lg-primary-600`、`--lg-black-82`),它们不随暗色模式切换,这条没有例外
|
|
145
|
+
2. 优先用语义层 `--lg-g-*` 变量,按 CSS 属性选前缀:
|
|
145
146
|
|
|
146
147
|
| CSS 属性 | Token 前缀 |
|
|
147
148
|
|----------|-----------|
|
|
@@ -156,7 +157,7 @@ import { Search, Trash } from "lingee-icon";
|
|
|
156
157
|
| 文本-标题/正文 | `var(--lg-g-fg-color-black-strong)` | `rgba(0, 0, 0, 0.82)` |
|
|
157
158
|
| 文本-次要 | `var(--lg-g-fg-color-black-muted)` | `rgba(0, 0, 0, 0.64)` |
|
|
158
159
|
| 文本-辅助说明 | `var(--lg-g-fg-color-black-default)` | `rgba(0, 0, 0, 0.46)` |
|
|
159
|
-
| 文本-禁用/占位 | `var(--lg-g-fg-color-black-
|
|
160
|
+
| 文本-禁用/占位 | `var(--lg-g-fg-color-black-faint)` | `rgba(0, 0, 0, 0.28)` |
|
|
160
161
|
| 文本-品牌色 | `var(--lg-g-fg-color-primary-default)` | `#495DFF` |
|
|
161
162
|
| 文本-危险 | `var(--lg-g-fg-color-danger-default)` | `#F12234` |
|
|
162
163
|
| 文本-白色 | `var(--lg-g-fg-color-white-heavy)` | `#FFFFFF` |
|
|
@@ -175,23 +176,33 @@ import { Search, Trash } from "lingee-icon";
|
|
|
175
176
|
|
|
176
177
|
暗色模式给 `<html>` 加 `data-theme="dark"` 即自动切换,无需额外处理。
|
|
177
178
|
|
|
178
|
-
###
|
|
179
|
+
### 已废弃的错拼 Token
|
|
179
180
|
|
|
180
|
-
以下 Token
|
|
181
|
-
|
|
181
|
+
以下 Token 早期从设计源文件带入了拼写错误,现已提供正确拼写。错拼名作为兼容别名保留、与正确名同值,
|
|
182
|
+
但**会在后续版本移除**。改动存量代码时顺手换成正确名:
|
|
182
183
|
|
|
183
|
-
- `var(--lg-g-fg-color-
|
|
184
|
-
- `var(--lg-g-fg-color-
|
|
185
|
-
- `var(--lg-g-fg-color-
|
|
186
|
-
- `var(--lg-g-
|
|
187
|
-
- `var(--lg-g-
|
|
184
|
+
- `var(--lg-g-fg-color-black-faint)` ← 用这个,不要写 `--lg-g-fg-color-black-aint`
|
|
185
|
+
- `var(--lg-g-fg-color-indigo-default)` ← 用这个,不要写 `--lg-g-fg-color-indigo-defauit`
|
|
186
|
+
- `var(--lg-g-fg-color-lime-default)` ← 用这个,不要写 `--lg-g-fg-color-lime-defauit`
|
|
187
|
+
- `var(--lg-g-fg-color-violet-default)` ← 用这个,不要写 `--lg-g-fg-color-violet-defauit`
|
|
188
|
+
- `var(--lg-g-bg-color-emerald-translucent-soft)` ← 用这个,不要写 `--lg-g-bg-color-emeraid-translucent-soft`
|
|
189
|
+
|
|
190
|
+
在旧代码里看到错拼名不要照抄延用,也不要把两者当成不同的 Token。
|
|
191
|
+
|
|
192
|
+
### 硬编码色值的允许场景
|
|
193
|
+
|
|
194
|
+
语义层覆盖不到时可以写硬编码,但只限这两种情况:
|
|
195
|
+
|
|
196
|
+
- **Token 表里查不到所需颜色** —— 写硬编码并加注释标明来源(如设计稿标注值),同时告知用户缺口
|
|
197
|
+
- **任何主题下都不变的装饰性颜色** —— 如品牌插画、固定配色的图表系列色
|
|
198
|
+
|
|
199
|
+
其余场景一律用语义 Token。**注意**:查不到 Token 时可以硬编码,但**不能自行新增 `--lg-g-*` 变量、也不能退回 primitives**。
|
|
188
200
|
|
|
189
201
|
### 拿设计稿色值找 Token
|
|
190
202
|
|
|
191
203
|
设计稿给的是 hex 时,到 `references/tokens.md` 搜该 hex,表格含亮/暗两列最终色值,可直接反查。
|
|
192
|
-
**搜不到不等于可以硬编码** —— 应向用户说明缺口并等设计确认,不要自行新增变量、也不要退回 primitives。
|
|
193
204
|
|
|
194
|
-
全量
|
|
205
|
+
全量 191 个语义 Token 见 `references/tokens.md`。
|
|
195
206
|
|
|
196
207
|
## 查阅详细 API
|
|
197
208
|
|
package/skill/VERSION.json
CHANGED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Carousel 轮播容器
|
|
2
|
+
|
|
3
|
+
水平轮播容器,用于在一屏内循环展示一组内容,支持自动播放、拖拽切换与圆点指示器。
|
|
4
|
+
|
|
5
|
+
- 导入:`import { Carousel, CarouselItem } from "lingee-ui";`
|
|
6
|
+
- 可用类型:`CarouselProps`, `CarouselItemProps`, `CarouselApi`, `CarouselDotsPlacement`
|
|
7
|
+
|
|
8
|
+
## 最小示例
|
|
9
|
+
|
|
10
|
+
```tsx
|
|
11
|
+
import { Carousel } from "lingee-ui";
|
|
12
|
+
|
|
13
|
+
const slides = ["Slide 1", "Slide 2", "Slide 3"];
|
|
14
|
+
|
|
15
|
+
export default function BasicDemo() {
|
|
16
|
+
return (
|
|
17
|
+
<Carousel autoplay loop style={{ borderRadius: 24, overflow: "hidden" }}>
|
|
18
|
+
{slides.map((label) => (
|
|
19
|
+
<Carousel.Item key={label}>
|
|
20
|
+
<div
|
|
21
|
+
style={{
|
|
22
|
+
display: "flex",
|
|
23
|
+
alignItems: "center",
|
|
24
|
+
justifyContent: "center",
|
|
25
|
+
height: 200,
|
|
26
|
+
background: "var(--lg-g-bg-color-primary-translucent-soft)",
|
|
27
|
+
color: "var(--lg-g-fg-color-primary-default)",
|
|
28
|
+
fontSize: 32,
|
|
29
|
+
fontWeight: 600,
|
|
30
|
+
}}
|
|
31
|
+
>
|
|
32
|
+
{label}
|
|
33
|
+
</div>
|
|
34
|
+
</Carousel.Item>
|
|
35
|
+
))}
|
|
36
|
+
</Carousel>
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## API
|
|
42
|
+
|
|
43
|
+
### Carousel
|
|
44
|
+
|
|
45
|
+
| 属性 | 说明 | 类型 | 默认值 |
|
|
46
|
+
|------|------|------|--------|
|
|
47
|
+
| `children` | 轮播项,需为 `Carousel.Item` | `ReactNode` | - |
|
|
48
|
+
| `loop` | 是否循环轮播 | `boolean` | `true` |
|
|
49
|
+
| `autoplay` | 是否开启自动轮播 | `boolean` | `false` |
|
|
50
|
+
| `autoplayDelay` | 自动轮播间隔(ms),建议 3000 ~ 6000 | `number` | `4000` |
|
|
51
|
+
| `stopOnMouseEnter` | 鼠标移入时暂停,移出恢复 | `boolean` | `true` |
|
|
52
|
+
| `stopOnInteraction` | 手动交互后彻底停止自动轮播 | `boolean` | `false` |
|
|
53
|
+
| `draggable` | 是否允许拖拽 / 滑动切换 | `boolean` | `true` |
|
|
54
|
+
| `slidesPerView` | 每屏展示的轮播项数量 | `number` | `1` |
|
|
55
|
+
| `gap` | 轮播项之间的间距(px) | `number` | `0` |
|
|
56
|
+
| `defaultIndex` | 初始选中序号(0 开始) | `number` | `0` |
|
|
57
|
+
| `dots` | 是否展示圆点指示器 | `boolean` | `true` |
|
|
58
|
+
| `dotsPlacement` | 指示器位置 | `"inside" \| "outside"` | `"inside"` |
|
|
59
|
+
| `dotsGlassy` | 指示器是否使用半透明毛玻璃胶囊底 | `boolean` | `false` |
|
|
60
|
+
| `arrows` | 是否展示左右箭头 | `boolean` | `false` |
|
|
61
|
+
| `onChange` | 选中项变化回调 | `(index: number) => void` | - |
|
|
62
|
+
| `apiRef` | 获取轮播实例 | `Ref<CarouselApi>` | - |
|
|
63
|
+
| `className` | 自定义类名 | `string` | - |
|
|
64
|
+
| `style` | 自定义样式 | `CSSProperties` | - |
|
|
65
|
+
|
|
66
|
+
### Carousel.Item
|
|
67
|
+
|
|
68
|
+
| 属性 | 说明 | 类型 | 默认值 |
|
|
69
|
+
|------|------|------|--------|
|
|
70
|
+
| `children` | 轮播项内容 | `ReactNode` | - |
|
|
71
|
+
| `className` | 自定义类名 | `string` | - |
|
|
72
|
+
| `style` | 自定义样式 | `CSSProperties` | - |
|
|
73
|
+
|
|
74
|
+
### CarouselApi
|
|
75
|
+
|
|
76
|
+
| 方法 | 说明 | 类型 |
|
|
77
|
+
|------|------|------|
|
|
78
|
+
| `scrollTo` | 跳转到指定序号,`jump` 为 `true` 时不播放过渡 | `(index: number, jump?: boolean) => void` |
|
|
79
|
+
| `scrollPrev` | 上一张 | `() => void` |
|
|
80
|
+
| `scrollNext` | 下一张 | `() => void` |
|
|
81
|
+
| `canScrollPrev` | 是否可向前翻页(`loop` 下恒为 `true`) | `() => boolean` |
|
|
82
|
+
| `canScrollNext` | 是否可向后翻页(`loop` 下恒为 `true`) | `() => boolean` |
|
|
83
|
+
| `selectedIndex` | 当前选中序号 | `() => number` |
|
|
84
|
+
| `count` | 总页数 | `() => number` |
|
|
85
|
+
| `play` | 启动自动轮播 | `() => void` |
|
|
86
|
+
| `stop` | 暂停自动轮播 | `() => void` |
|
|
87
|
+
| `reInit` | 重新初始化 | `() => void` |
|
|
88
|
+
|
|
89
|
+
## 注意事项
|
|
90
|
+
|
|
91
|
+
- 圆角需设置在 `Carousel` 根节点上,内部 viewport 通过 `border-radius: inherit` 继承裁剪
|
|
92
|
+
- `autoplayDelay` 变化不会自动应用到已挂载的实例,如需动态切换请配合 `key` 强制重挂载
|
|
93
|
+
- 内容色彩复杂导致圆点对比度不足时,开启 `dotsGlassy` 增加胶囊底
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
向下弹出的操作菜单列表,支持图标、分组、危险操作、子菜单等。
|
|
4
4
|
|
|
5
|
-
- 导入:`import { Dropdown, DropdownTrigger, DropdownContent, DropdownItem, DropdownCheckboxItem, DropdownRadioGroup, DropdownRadioItem, DropdownLabel, DropdownSeparator, DropdownGroup, DropdownSub, DropdownSubTrigger, DropdownSubContent, DropdownButton } from "lingee-ui";`
|
|
6
|
-
- 可用类型:`DropdownProps`, `DropdownTriggerProps`, `DropdownContentProps`, `DropdownItemProps`, `DropdownCheckboxItemProps`, `DropdownRadioGroupProps`, `DropdownRadioItemProps`, `DropdownLabelProps`, `DropdownSeparatorProps`, `DropdownGroupProps`, `DropdownSubProps`, `DropdownSubTriggerProps`, `DropdownSubContentProps`, `DropdownItemData`, `DropdownMenuItemData`, `DropdownSeparatorData`, `DropdownLabelData`, `DropdownButtonProps`
|
|
5
|
+
- 导入:`import { Dropdown, DropdownTrigger, DropdownContent, DropdownItem, DropdownCheckboxItem, DropdownRadioGroup, DropdownRadioItem, DropdownLabel, DropdownSeparator, DropdownGroup, DropdownStatus, DropdownSub, DropdownSubTrigger, DropdownSubContent, DropdownButton } from "lingee-ui";`
|
|
6
|
+
- 可用类型:`DropdownEllipsisTooltip`, `DropdownProps`, `DropdownTriggerProps`, `DropdownContentProps`, `DropdownItemProps`, `DropdownCheckboxItemProps`, `DropdownRadioGroupProps`, `DropdownRadioItemProps`, `DropdownLabelProps`, `DropdownSeparatorProps`, `DropdownGroupProps`, `DropdownStatusProps`, `DropdownStatusType`, `DropdownStatusText`, `DropdownSubProps`, `DropdownSubTriggerProps`, `DropdownSubContentProps`, `DropdownItemData`, `DropdownMenuItemData`, `DropdownSeparatorData`, `DropdownLabelData`, `DropdownButtonProps`
|
|
7
7
|
|
|
8
8
|
## 最小示例
|
|
9
9
|
|
|
@@ -38,8 +38,62 @@ export default function BasicDemo() {
|
|
|
38
38
|
| `modal` | 是否为模态弹出 | `boolean` | `true` |
|
|
39
39
|
| `disabled` | 是否禁用 | `boolean` | `false` |
|
|
40
40
|
| `selectedKeys` | 选中项 key 数组(显示勾选) | `string[]` | - |
|
|
41
|
+
| `loading` | 加载中,面板显示加载占位 | `boolean` | `false` |
|
|
42
|
+
| `loadError` | 加载失败,面板显示失败占位(优先级低于 `loading`) | `boolean` | `false` |
|
|
43
|
+
| `onRetry` | 失败占位的重试回调,传入后占位可点击 | `() => void` | - |
|
|
44
|
+
| `statusText` | 覆盖三态文案,未传的键走语言包 | `DropdownStatusText` | - |
|
|
45
|
+
| `loadingContent` | 自定义加载中内容 | `ReactNode` | - |
|
|
46
|
+
| `errorContent` | 自定义失败内容 | `ReactNode` | - |
|
|
47
|
+
| `emptyContent` | 自定义空态内容 | `ReactNode` | - |
|
|
48
|
+
| `dropdownRender` | 包裹菜单内容 | `(menu: ReactNode) => ReactNode` | - |
|
|
49
|
+
| `header` | 固定头部内容 | `ReactNode` | - |
|
|
50
|
+
| `footer` | 固定底部内容 | `ReactNode` | - |
|
|
41
51
|
| `children` | 触发器元素 | `ReactNode` | - |
|
|
42
52
|
|
|
53
|
+
### DropdownStatus
|
|
54
|
+
|
|
55
|
+
面板内三态占位。`items` 模式下由 Dropdown 自动渲染,Compound Component 模式需手动使用。
|
|
56
|
+
|
|
57
|
+
| 属性 | 说明 | 类型 | 默认值 |
|
|
58
|
+
|------|------|------|--------|
|
|
59
|
+
| `status` | 占位状态 | `"loading" \| "empty" \| "error"` | - |
|
|
60
|
+
| `description` | 覆盖该状态的默认文案 | `ReactNode` | 取自语言包 |
|
|
61
|
+
| `onRetry` | 重试回调,仅 `status="error"` 生效 | `() => void` | - |
|
|
62
|
+
| `className` | 额外类名 | `string` | - |
|
|
63
|
+
|
|
64
|
+
### DropdownSubTrigger
|
|
65
|
+
|
|
66
|
+
| 属性 | 说明 | 类型 | 默认值 |
|
|
67
|
+
|------|------|------|--------|
|
|
68
|
+
| `icon` | 前缀图标 | `ReactNode` | - |
|
|
69
|
+
| `disabled` | 是否禁用 | `boolean` | `false` |
|
|
70
|
+
| `onMouseEnter` | 鼠标进入回调,在内部展开子菜单后执行,可用于懒加载数据 | `MouseEventHandler` | - |
|
|
71
|
+
| `ellipsisTooltip` | 文本溢出时悬浮显示完整内容,见 [长文本溢出提示](#长文本溢出提示) | `boolean \| ReactNode` | - |
|
|
72
|
+
| `children` | 触发项内容 | `ReactNode` | - |
|
|
73
|
+
|
|
74
|
+
### DropdownSubContent
|
|
75
|
+
|
|
76
|
+
| 属性 | 说明 | 类型 | 默认值 |
|
|
77
|
+
|------|------|------|--------|
|
|
78
|
+
| `side` | 弹出方向 | `"top" \| "bottom" \| "left" \| "right"` | `"right"` |
|
|
79
|
+
| `align` | 对齐方式 | `"start" \| "center" \| "end"` | `"start"` |
|
|
80
|
+
| `sideOffset` | 侧向偏移 | `number` | `8` |
|
|
81
|
+
| `style.maxHeight` | 覆盖面板高度上限 | `number \| string` | `346` |
|
|
82
|
+
| `children` | 子菜单内容 | `ReactNode` | - |
|
|
83
|
+
|
|
84
|
+
子菜单与主面板同口径限高:默认上限 346px(10 个菜单项),并始终与视口可用空间取较小值,超出部分由内置 ScrollArea 滚动。选项数量不受控的场景(如租户列表)无需额外处理。
|
|
85
|
+
|
|
86
|
+
承载设计高度更大的自定义面板时才需抬高上限,传 `style={{ maxHeight: ... }}` 或在类名上改 `--lg-dropdown-sub-max-height`:
|
|
87
|
+
|
|
88
|
+
```less
|
|
89
|
+
.myCustomSubPanel {
|
|
90
|
+
// 写面板实际需要的高度,不要写 100vh
|
|
91
|
+
--lg-dropdown-sub-max-height: 420px;
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
给一个具体像素值而非 `100vh`:视口兜底依赖 Radix 注入的 `--radix-popover-content-available-height`,该变量在未测量完或降级路径下为空,此时若上限也是 `100vh`,`min()` 两边同值,兜底就失效了。
|
|
96
|
+
|
|
43
97
|
### DropdownContent
|
|
44
98
|
|
|
45
99
|
| 属性 | 说明 | 类型 | 默认值 |
|
|
@@ -63,8 +117,33 @@ export default function BasicDemo() {
|
|
|
63
117
|
| `icon` | 前缀图标 | `ReactNode` | - |
|
|
64
118
|
| `description` | 副标题描述(显示在主文本下方) | `ReactNode` | - |
|
|
65
119
|
| `selected` | 是否选中(显示勾选) | `boolean` | `false` |
|
|
120
|
+
| `ellipsisTooltip` | 文本溢出时悬浮显示完整内容,详见下方章节 | `boolean \| ReactNode` | - |
|
|
66
121
|
| `children` | 菜单项内容 | `ReactNode` | - |
|
|
67
122
|
|
|
123
|
+
### 长文本溢出提示
|
|
124
|
+
|
|
125
|
+
面板宽度默认随内容撑开,长文案会把浮层顶出屏幕。给菜单项传 `ellipsisTooltip` 后文本带最大宽度(240px)并单行截断,**仅在真正被截断时**悬浮显示完整内容 —— 未截断不弹,不会出现重复可见文字的干扰提示。
|
|
126
|
+
|
|
127
|
+
```tsx
|
|
128
|
+
{/* true:取 children 作为提示内容 */}
|
|
129
|
+
<DropdownItem ellipsisTooltip>{tenantName}</DropdownItem>
|
|
130
|
+
|
|
131
|
+
{/* children 是 JSX 时显式传纯文本,否则整块 JSX 会被塞进浮层 */}
|
|
132
|
+
<DropdownItem ellipsisTooltip={file.name}>
|
|
133
|
+
<span>{file.name}</span><Tag>new</Tag>
|
|
134
|
+
</DropdownItem>
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
`DropdownItem` / `DropdownRadioItem` / `DropdownCheckboxItem` / `DropdownSubTrigger` 均支持,`items` 快捷模式在数据项上同名传入即可。
|
|
138
|
+
|
|
139
|
+
不传该属性时行为与此前完全一致(不限宽、不打点、不弹提示),故存量菜单无需改动。限宽可通过 `--lg-dropdown-label-max-width` 调整:
|
|
140
|
+
|
|
141
|
+
```less
|
|
142
|
+
.my-menu {
|
|
143
|
+
--lg-dropdown-label-max-width: 320px;
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
68
147
|
## DropdownButton 触发器按钮
|
|
69
148
|
|
|
70
149
|
统一的下拉触发器按钮组件,提供两种视觉态:
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# EllipsisTooltip 省略提示
|
|
2
|
+
|
|
3
|
+
单行省略文本,仅在真正被截断时才悬停显示完整内容。
|
|
4
|
+
|
|
5
|
+
- 导入:`import { EllipsisTooltip } from "lingee-ui";`
|
|
6
|
+
- 可用类型:`EllipsisTooltipProps`
|
|
7
|
+
|
|
8
|
+
## 最小示例
|
|
9
|
+
|
|
10
|
+
```tsx
|
|
11
|
+
import { EllipsisTooltip } from "lingee-ui";
|
|
12
|
+
|
|
13
|
+
const LONG_TEXT =
|
|
14
|
+
"A rather long single-line text that gets clipped and reveals its full content on hover";
|
|
15
|
+
|
|
16
|
+
export default function BasicDemo() {
|
|
17
|
+
return (
|
|
18
|
+
<div style={{ display: "flex", flexDirection: "column", gap: 12, width: 240 }}>
|
|
19
|
+
{/* Clipped: hover reveals the full text */}
|
|
20
|
+
<EllipsisTooltip content={LONG_TEXT}>{LONG_TEXT}</EllipsisTooltip>
|
|
21
|
+
|
|
22
|
+
{/* Not clipped: no tooltip, so it never repeats visible content */}
|
|
23
|
+
<EllipsisTooltip content="Short text">Short text</EllipsisTooltip>
|
|
24
|
+
</div>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## API
|
|
30
|
+
|
|
31
|
+
| 属性 | 说明 | 类型 | 默认值 |
|
|
32
|
+
|------|------|------|--------|
|
|
33
|
+
| `content` | 提示内容,为空时不弹出 | `ReactNode` | - |
|
|
34
|
+
| `children` | 文本内容 | `ReactNode` | - |
|
|
35
|
+
| `as` | 容器标签 | `"span" \| "div"` | `"span"` |
|
|
36
|
+
| `ellipsis` | 是否自带单行省略样式 | `boolean` | `true` |
|
|
37
|
+
| `threshold` | 触发阈值(0~1),文本宽度超过 `容器宽度 × threshold` 时弹出 | `number` | `1` |
|
|
38
|
+
| `maxLength` | 提示内容最大字符数,超出截断 | `number` | `2000` |
|
|
39
|
+
| `anchorClassName` | 祖先 className,浮层最大宽度对齐该祖先 | `string` | - |
|
|
40
|
+
| `getPopupContainer` | 浮层挂载容器,接收触发节点 | `(node: HTMLElement) => HTMLElement` | - |
|
|
41
|
+
| `placement` | 弹出方向 | `TooltipPlacement` | `"top"` |
|
|
42
|
+
| `maxWidth` | 浮层最大宽度(px),`anchorClassName` 命中时以后者为准 | `number` | `280` |
|
|
43
|
+
|
|
44
|
+
其余属性透传给 `Tooltip`(`delayDuration`、`sideOffset`、`arrow` 等)。
|
|
@@ -34,9 +34,10 @@ export default function BasicDemo() {
|
|
|
34
34
|
| `status` | 状态,决定默认图标与无障碍语义 | `"loading" \| "empty" \| "error"` | - |
|
|
35
35
|
| `description` | 描述文案 | `ReactNode` | - |
|
|
36
36
|
| `icon` | 覆盖默认图标;传 `null` 不渲染图标 | `ReactNode \| null` | 按 `status` 取 |
|
|
37
|
-
| `
|
|
37
|
+
| `size` | 尺寸,语义同 `Empty`,透传给内部 `Empty` | `"sm" \| "md" \| "lg"` | `"sm"` |
|
|
38
|
+
| `variant` | 留白密度:`block` 区块级 / `inline` 行内轻量 | `"block" \| "inline"` | `"block"` |
|
|
38
39
|
| `spacing` | 留白档位。`loose` 为顶部大留白(列表级空态) | `"none" \| "normal" \| "loose"` | `"normal"` |
|
|
39
|
-
| `onRetry` | 重试回调。仅 `status="error"`
|
|
40
|
+
| `onRetry` | 重试回调。仅 `status="error"` 生效,传入后整体可点击,并自动追加主题色「重试」 | `() => void` | - |
|
|
40
41
|
| `className` | 自定义类名 | `string` | - |
|
|
41
42
|
| `style` | 自定义内联样式 | `CSSProperties` | - |
|
|
42
43
|
|
|
@@ -46,6 +46,7 @@ export default function BasicDemo() {
|
|
|
46
46
|
| `allowClear` | 是否可清空 | `boolean` | `false` |
|
|
47
47
|
| `loading` | 是否加载中 | `boolean` | `false` |
|
|
48
48
|
| `loadError` | 是否加载失败 | `boolean` | `false` |
|
|
49
|
+
| `onRetry` | 加载失败后的重试回调。传入后失败缺省态可点击并追加「重试」 | `() => void` | - |
|
|
49
50
|
| `size` | 尺寸 | `"sm" \| "md" \| "lg"` | `"md"` |
|
|
50
51
|
| `suffixIcon` | 后缀图标 | `ReactNode` | - |
|
|
51
52
|
| `maxTagCount` | 多选模式最多显示 Tag 数 | `number` | - |
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
侧边栏复合组件,提供根容器、页签、导航项、分组、列表项、占位项与底栏,通过 Sidebar.xxx 组合使用。
|
|
4
4
|
|
|
5
|
-
- 导入:`import { Sidebar, SidebarRoot, SidebarHeader, SidebarTabBar, SidebarNavItem, SidebarCollapsibleNavItem, SidebarGroupHeader, SidebarListItem, SidebarCollapsibleListItem, SidebarFooter, SidebarFooterMenuStaticRow, SidebarFooterBadge, SidebarUsageBar, SidebarUsagePanel, SidebarUsagePanelSection } from "lingee-ui";`
|
|
6
|
-
- 可用类型:`SidebarRootProps`, `SidebarHeaderProps`, `SidebarTabBarProps`, `SidebarTabItem`, `SidebarNavItemProps`, `SidebarCollapsibleNavItemProps`, `SidebarCollapsibleNavItemChild`, `SidebarGroupHeaderProps`, `SidebarListItemProps`, `SidebarIndicatorType`, `SidebarCollapsibleListItemProps`, `SidebarCaretPlacement`, `SidebarFooterProps`, `SidebarFooterMenuStaticRowProps`, `SidebarFooterBadgeProps`, `SidebarUsageBarProps`, `SidebarUsageTone`, `SidebarUsagePanelProps`, `SidebarUsagePanelSectionProps`
|
|
5
|
+
- 导入:`import { Sidebar, SidebarRoot, SidebarHeader, SidebarTabBar, SidebarNavItem, SidebarCollapsibleNavItem, SidebarGroupHeader, SidebarListItem, SidebarCollapsibleListItem, SidebarFooter, SidebarFooterUser, SidebarFooterMenuStaticRow, SidebarFooterBadge, SidebarUsageBar, SidebarUsagePanel, SidebarUsagePanelSection, SidebarFeedbackModal, SidebarFeedbackSubmitPanel, SidebarFeedbackField, SidebarFeedbackFileWall, SidebarFeedbackHistoryPanel, SidebarFeedbackHistoryItem, SidebarFeedbackDetail, SidebarFeedbackAttachmentRow, SidebarFeedbackSimilarItem, SidebarAuthImage, formatFileSize } from "lingee-ui";`
|
|
6
|
+
- 可用类型:`FeedbackAttachment`, `FeedbackStatus`, `FeedbackHistoryItem`, `FeedbackReply`, `FeedbackSimilarItem`, `FeedbackHistoryDetail`, `FeedbackTabKey`, `FeedbackFileWallItem`, `SidebarFeedbackModalProps`, `SidebarFeedbackSubmitPanelProps`, `SidebarFeedbackFieldProps`, `SidebarFeedbackFileWallProps`, `SidebarFeedbackHistoryPanelProps`, `SidebarFeedbackHistoryItemProps`, `SidebarFeedbackDetailProps`, `SidebarFeedbackAttachmentRowProps`, `SidebarFeedbackSimilarItemProps`, `SidebarAuthImageProps`, `SidebarRootProps`, `SidebarHeaderProps`, `SidebarTabBarProps`, `SidebarTabItem`, `SidebarNavItemProps`, `SidebarCollapsibleNavItemProps`, `SidebarCollapsibleNavItemChild`, `SidebarGroupHeaderProps`, `SidebarListItemProps`, `SidebarIndicatorType`, `SidebarCollapsibleListItemProps`, `SidebarCaretPlacement`, `SidebarFooterProps`, `SidebarFooterUserProps`, `SidebarFooterMenuStaticRowProps`, `SidebarFooterBadgeProps`, `SidebarUsageBarProps`, `SidebarUsageTone`, `SidebarUsagePanelProps`, `SidebarUsagePanelSectionProps`
|
|
7
7
|
|
|
8
8
|
## 最小示例
|
|
9
9
|
|
|
@@ -122,7 +122,7 @@ export default function BasicDemo() {
|
|
|
122
122
|
| `onToggle` | 切换回调 | `() => void` | - |
|
|
123
123
|
| `actions` | 右侧操作区插槽 | `ReactNode` | - |
|
|
124
124
|
|
|
125
|
-
|
|
125
|
+
折叠箭头与操作区均仅悬停显现,展开态也不常显。
|
|
126
126
|
|
|
127
127
|
### Sidebar.ListItem
|
|
128
128
|
|
|
@@ -152,14 +152,24 @@ export default function BasicDemo() {
|
|
|
152
152
|
|
|
153
153
|
### Sidebar.Footer
|
|
154
154
|
|
|
155
|
+
继承 `Sidebar.FooterUser` 的全部属性(不传 `children` 时透传给内建用户区),另有:
|
|
156
|
+
|
|
157
|
+
| 属性 | 说明 | 类型 | 默认值 |
|
|
158
|
+
|------|------|------|--------|
|
|
159
|
+
| `actions` | 右侧动作区插槽 | `ReactNode` | - |
|
|
160
|
+
| `children` | 自定义左侧内容,传入时忽略 `avatar`/`name` 等 | `ReactNode` | - |
|
|
161
|
+
|
|
162
|
+
### Sidebar.FooterUser
|
|
163
|
+
|
|
155
164
|
| 属性 | 说明 | 类型 | 默认值 |
|
|
156
165
|
|------|------|------|--------|
|
|
157
166
|
| `avatar` | 头像插槽 | `ReactNode` | - |
|
|
158
167
|
| `name` | 名称,为空时不渲染身份区 | `ReactNode` | - |
|
|
159
168
|
| `nameSuffix` | 名称后插槽(套餐标签等) | `ReactNode` | - |
|
|
160
169
|
| `menuOpen` | 菜单展开态,驱动触发区高亮与箭头旋转 | `boolean` | `false` |
|
|
170
|
+
| `showCaret` | 是否显示展开箭头 | `boolean` | `false` |
|
|
171
|
+
| `nameTooltip` | 姓名超长时 hover 出全称提示 | `boolean` | `true` |
|
|
161
172
|
| `onTriggerClick` | 点击触发区,回传 `DOMRect` 供手动定位浮层 | `(rect: DOMRect) => void` | - |
|
|
162
|
-
| `actions` | 右侧动作区插槽 | `ReactNode` | - |
|
|
163
173
|
|
|
164
174
|
### Sidebar.FooterMenuStaticRow
|
|
165
175
|
|