lingee-ui 0.0.9 → 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.d.mts +1 -1
- package/dist/button/index.d.ts +1 -1
- package/dist/chunk-45W5KD4T.js +2 -0
- package/dist/{chunk-QIMQMSJB.js → chunk-5RKADFB7.js} +1 -1
- package/dist/{chunk-6M7ESUQX.mjs → chunk-HI27RMCM.mjs} +1 -1
- package/dist/{chunk-XG3DE76O.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-ZXUYGVWB.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 +217 -17
- package/dist/index.d.ts +217 -17
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- 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/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 +43 -7
- package/skill/SKILL.md +20 -12
- package/skill/VERSION.json +4 -4
- package/skill/references/components/carousel.md +93 -0
- package/skill/references/components/dropdown.md +50 -1
- package/skill/references/components/empty.md +3 -2
- package/skill/references/components/select.md +1 -0
- package/skill/references/components/sidebar.md +1 -1
- 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 +41 -6
- package/dist/chunk-C5BDJQIO.js +0 -2
- package/dist/chunk-DIXO53WK.mjs +0 -1
- package/dist/chunk-H7GT6UT4.mjs +0 -1
- package/dist/chunk-IE7TAOTL.mjs +0 -2
- package/dist/chunk-M2SC5LED.js +0 -1
- package/dist/chunk-WAYZVZQB.js +0 -1
package/skill/AGENTS-SNIPPET.md
CHANGED
|
@@ -2,15 +2,16 @@
|
|
|
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` | 日期选择器 | 用于选择日期的输入组件。 |
|
|
@@ -64,7 +65,7 @@
|
|
|
64
65
|
|
|
65
66
|
按 CSS 属性选前缀:`color`/`fill`/`stroke` → `fg`,`background` → `bg`,`border-color`/`outline` → `border`。
|
|
66
67
|
|
|
67
|
-
亮暗变量名相同,`data-theme="dark"` 自动切换。色值列供**反查**(设计稿色值找 Token)与**比对**(少数 Token
|
|
68
|
+
亮暗变量名相同,`data-theme="dark"` 自动切换。色值列供**反查**(设计稿色值找 Token)与**比对**(少数 Token 亮暗语义不对称)使用,**不要把色值直接写进业务代码**。表里查不到所需颜色时可写硬编码(加注释标明来源),但**任何情况都不得引用 primitives**。
|
|
68
69
|
|
|
69
70
|
### ⚠️ 已废弃的错拼 Token
|
|
70
71
|
|
|
@@ -78,7 +79,7 @@
|
|
|
78
79
|
| `--lg-g-fg-color-violet-default` | ~~`--lg-g-fg-color-violet-defauit`~~ |
|
|
79
80
|
| `--lg-g-bg-color-emerald-translucent-soft` | ~~`--lg-g-bg-color-emeraid-translucent-soft`~~ |
|
|
80
81
|
|
|
81
|
-
#### 前景色 fg(
|
|
82
|
+
#### 前景色 fg(47)
|
|
82
83
|
|
|
83
84
|
| Token | 亮色 | 暗色 |
|
|
84
85
|
|-------|------|------|
|
|
@@ -116,8 +117,21 @@
|
|
|
116
117
|
| `--lg-g-fg-color-emerald-default` | `#009D72` | `#009D72` |
|
|
117
118
|
| `--lg-g-fg-color-lime-default` | `#5FBA04` | `#5FBA04` |
|
|
118
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` |
|
|
119
133
|
|
|
120
|
-
#### 背景色 bg(
|
|
134
|
+
#### 背景色 bg(99)
|
|
121
135
|
|
|
122
136
|
| Token | 亮色 | 暗色 |
|
|
123
137
|
|-------|------|------|
|
|
@@ -212,9 +226,16 @@
|
|
|
212
226
|
| `--lg-g-bg-color-violet-default` | `#572FF7` | `#572FF7` |
|
|
213
227
|
| `--lg-g-bg-color-fuchsia-translucent-soft` | `rgba(248, 88, 208, 0.08)` | `rgba(248, 88, 208, 0.08)` |
|
|
214
228
|
| `--lg-g-bg-color-fuchsia-default` | `#ED1DB9` | `#ED1DB9` |
|
|
215
|
-
| `--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)` |
|
|
216
237
|
|
|
217
|
-
#### 边框色 border(
|
|
238
|
+
#### 边框色 border(42)
|
|
218
239
|
|
|
219
240
|
| Token | 亮色 | 暗色 |
|
|
220
241
|
|-------|------|------|
|
|
@@ -245,6 +266,21 @@
|
|
|
245
266
|
| `--lg-g-border-color-blue-translucent-soft` | `rgba(77, 137, 255, 0.08)` | `rgba(77, 137, 255, 0.08)` |
|
|
246
267
|
| `--lg-g-border-color-blue-subtle` | `#E4EEFF` | `#183F96` |
|
|
247
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` |
|
|
248
284
|
#### 其他(3)
|
|
249
285
|
|
|
250
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,6 +59,7 @@ 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` | — |
|
|
@@ -133,16 +134,15 @@ import { Search, Trash } from "lingee-icon";
|
|
|
133
134
|
图标默认 `size="1em"`、`color="currentColor"`,即随父级字号与文字颜色走,
|
|
134
135
|
所以**优先用 CSS 控制颜色**而不是传 `color` prop。
|
|
135
136
|
|
|
136
|
-
完整 Props 见 `references/setup.md`,
|
|
137
|
+
完整 Props 见 `references/setup.md`,968 个图标的名称与中文语义索引见 `references/icons.md`。
|
|
137
138
|
选图标时必须从索引中查找,**不要凭猜测写图标名**,也不要从 `@ant-design/icons`、`lucide-react` 等其他库引入。
|
|
138
139
|
|
|
139
|
-
##
|
|
140
|
+
## 颜色:优先用语义 Token
|
|
140
141
|
|
|
141
|
-
|
|
142
|
+
两条铁律:
|
|
142
143
|
|
|
143
|
-
1.
|
|
144
|
-
2.
|
|
145
|
-
3. 只用语义层 `--lg-g-*` 变量,按 CSS 属性选前缀:
|
|
144
|
+
1. **禁止使用 primitives 色板变量**(`--lg-primary-600`、`--lg-black-82`),它们不随暗色模式切换,这条没有例外
|
|
145
|
+
2. 优先用语义层 `--lg-g-*` 变量,按 CSS 属性选前缀:
|
|
146
146
|
|
|
147
147
|
| CSS 属性 | Token 前缀 |
|
|
148
148
|
|----------|-----------|
|
|
@@ -189,12 +189,20 @@ import { Search, Trash } from "lingee-icon";
|
|
|
189
189
|
|
|
190
190
|
在旧代码里看到错拼名不要照抄延用,也不要把两者当成不同的 Token。
|
|
191
191
|
|
|
192
|
+
### 硬编码色值的允许场景
|
|
193
|
+
|
|
194
|
+
语义层覆盖不到时可以写硬编码,但只限这两种情况:
|
|
195
|
+
|
|
196
|
+
- **Token 表里查不到所需颜色** —— 写硬编码并加注释标明来源(如设计稿标注值),同时告知用户缺口
|
|
197
|
+
- **任何主题下都不变的装饰性颜色** —— 如品牌插画、固定配色的图表系列色
|
|
198
|
+
|
|
199
|
+
其余场景一律用语义 Token。**注意**:查不到 Token 时可以硬编码,但**不能自行新增 `--lg-g-*` 变量、也不能退回 primitives**。
|
|
200
|
+
|
|
192
201
|
### 拿设计稿色值找 Token
|
|
193
202
|
|
|
194
203
|
设计稿给的是 hex 时,到 `references/tokens.md` 搜该 hex,表格含亮/暗两列最终色值,可直接反查。
|
|
195
|
-
**搜不到不等于可以硬编码** —— 应向用户说明缺口并等设计确认,不要自行新增变量、也不要退回 primitives。
|
|
196
204
|
|
|
197
|
-
全量
|
|
205
|
+
全量 191 个语义 Token 见 `references/tokens.md`。
|
|
198
206
|
|
|
199
207
|
## 查阅详细 API
|
|
200
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` 增加胶囊底
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
向下弹出的操作菜单列表,支持图标、分组、危险操作、子菜单等。
|
|
4
4
|
|
|
5
5
|
- 导入:`import { Dropdown, DropdownTrigger, DropdownContent, DropdownItem, DropdownCheckboxItem, DropdownRadioGroup, DropdownRadioItem, DropdownLabel, DropdownSeparator, DropdownGroup, DropdownStatus, DropdownSub, DropdownSubTrigger, DropdownSubContent, DropdownButton } from "lingee-ui";`
|
|
6
|
-
- 可用类型:`DropdownProps`, `DropdownTriggerProps`, `DropdownContentProps`, `DropdownItemProps`, `DropdownCheckboxItemProps`, `DropdownRadioGroupProps`, `DropdownRadioItemProps`, `DropdownLabelProps`, `DropdownSeparatorProps`, `DropdownGroupProps`, `DropdownStatusProps`, `DropdownStatusType`, `DropdownStatusText`, `DropdownSubProps`, `DropdownSubTriggerProps`, `DropdownSubContentProps`, `DropdownItemData`, `DropdownMenuItemData`, `DropdownSeparatorData`, `DropdownLabelData`, `DropdownButtonProps`
|
|
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
|
|
|
@@ -68,8 +68,32 @@ export default function BasicDemo() {
|
|
|
68
68
|
| `icon` | 前缀图标 | `ReactNode` | - |
|
|
69
69
|
| `disabled` | 是否禁用 | `boolean` | `false` |
|
|
70
70
|
| `onMouseEnter` | 鼠标进入回调,在内部展开子菜单后执行,可用于懒加载数据 | `MouseEventHandler` | - |
|
|
71
|
+
| `ellipsisTooltip` | 文本溢出时悬浮显示完整内容,见 [长文本溢出提示](#长文本溢出提示) | `boolean \| ReactNode` | - |
|
|
71
72
|
| `children` | 触发项内容 | `ReactNode` | - |
|
|
72
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
|
+
|
|
73
97
|
### DropdownContent
|
|
74
98
|
|
|
75
99
|
| 属性 | 说明 | 类型 | 默认值 |
|
|
@@ -93,8 +117,33 @@ export default function BasicDemo() {
|
|
|
93
117
|
| `icon` | 前缀图标 | `ReactNode` | - |
|
|
94
118
|
| `description` | 副标题描述(显示在主文本下方) | `ReactNode` | - |
|
|
95
119
|
| `selected` | 是否选中(显示勾选) | `boolean` | `false` |
|
|
120
|
+
| `ellipsisTooltip` | 文本溢出时悬浮显示完整内容,详见下方章节 | `boolean \| ReactNode` | - |
|
|
96
121
|
| `children` | 菜单项内容 | `ReactNode` | - |
|
|
97
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
|
+
|
|
98
147
|
## DropdownButton 触发器按钮
|
|
99
148
|
|
|
100
149
|
统一的下拉触发器按钮组件,提供两种视觉态:
|
|
@@ -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` | - |
|
|
@@ -35,7 +35,59 @@ export default function BasicDemo() {
|
|
|
35
35
|
| `showFileList` | 是否显示文件列表 | `boolean` | `true` |
|
|
36
36
|
| `onChange` | 文件列表变化回调 | `(fileList: UploadFile[]) => void` | - |
|
|
37
37
|
| `onReject` | 校验未通过回调 | `(files: File[], reason: "size" \| "type" \| "count") => void` | - |
|
|
38
|
-
| `customRequest` |
|
|
38
|
+
| `customRequest` | 自定义上传请求。与 `action` 同时传入时优先 | `(options: CustomRequestOptions) => { abort }` | - |
|
|
39
|
+
| `action` | 上传地址,传入即启用内置 XHR(含真实进度) | `string \| (file) => string \| Promise<string>` | - |
|
|
40
|
+
| `method` | 请求方法。仅 `action` 模式生效 | `"POST" \| "PUT" \| "PATCH"` | `POST` |
|
|
41
|
+
| `headers` | 附加请求头。仅 `action` 模式生效 | `Record<string, string>` | - |
|
|
42
|
+
| `data` | 附加表单字段。仅 `action` 模式生效 | `Record<string, unknown> \| (file) => Record<string, unknown>` | - |
|
|
43
|
+
| `name` | 表单中文件字段名。仅 `action` 模式生效 | `string` | `file` |
|
|
44
|
+
| `withCredentials` | 跨域是否带 cookie。仅 `action` 模式生效 | `boolean` | `false` |
|
|
45
|
+
| `directory` | 是否选择文件夹(拖拽时递归遍历子目录) | `boolean` | `false` |
|
|
46
|
+
| `beforeUpload` | 上传前钩子,返回 `false` 阻止、返回 `File`/`Blob` 替换待传文件 | `(file, fileList) => boolean \| File \| Blob \| Promise<...>` | - |
|
|
39
47
|
| `pasteable` | 是否支持粘贴文件(如截图) | `boolean` | `false` |
|
|
40
48
|
| `validateAccept` | 是否按 `accept` 校验类型,拦住拖拽与粘贴 | `boolean` | `false` |
|
|
41
49
|
| `children` | 触发区域 | `ReactNode` | - |
|
|
50
|
+
|
|
51
|
+
## 内置 XHR 上传
|
|
52
|
+
|
|
53
|
+
传入 `action` 即启用内置请求,无需自行实现 `customRequest`,进度来自真实的 XHR `progress` 事件:
|
|
54
|
+
|
|
55
|
+
```tsx
|
|
56
|
+
<Upload
|
|
57
|
+
action="/api/upload"
|
|
58
|
+
name="file"
|
|
59
|
+
headers={{ Authorization: `Bearer ${token}` }}
|
|
60
|
+
data={(file) => ({ filename: file.name })}
|
|
61
|
+
onChange={setFileList}
|
|
62
|
+
>
|
|
63
|
+
<Button>上传</Button>
|
|
64
|
+
</Upload>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## 上传前处理文件
|
|
68
|
+
|
|
69
|
+
`beforeUpload` 在内置校验(类型/数量/大小)通过之后执行。返回 `File` 或 `Blob` 可替换实际上传的文件,用于压缩、转格式等场景;原始文件仍保留在 `originFile` 上:
|
|
70
|
+
|
|
71
|
+
```tsx
|
|
72
|
+
<Upload
|
|
73
|
+
action="/api/upload"
|
|
74
|
+
beforeUpload={async (file) => {
|
|
75
|
+
if (!file.type.startsWith("image/")) return true;
|
|
76
|
+
return await compressImage(file);
|
|
77
|
+
}}
|
|
78
|
+
>
|
|
79
|
+
<Button>上传图片</Button>
|
|
80
|
+
</Upload>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
返回 `false` 或 reject 则阻止该文件上传。
|
|
84
|
+
|
|
85
|
+
## 文件夹上传
|
|
86
|
+
|
|
87
|
+
`directory` 开启后点击选择整个目录,拖拽时递归遍历子目录。目录内的文件不经过选择器,组件会强制按 `accept` 过滤:
|
|
88
|
+
|
|
89
|
+
```tsx
|
|
90
|
+
<Upload directory accept=".png,.jpg" onChange={setFileList}>
|
|
91
|
+
<Button>选择文件夹</Button>
|
|
92
|
+
</Upload>
|
|
93
|
+
```
|
|
@@ -12,7 +12,7 @@ import { Search } from "lingee-icon";
|
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
共
|
|
15
|
+
共 968 个图标,27 个分类。图标名为 PascalCase,可直接作为 React 组件名或 SVG Sprite `<use href="#IconName">` 的引用 ID。
|
|
16
16
|
|
|
17
17
|
## 通用类(49)
|
|
18
18
|
|
|
@@ -68,7 +68,7 @@ import { Search } from "lingee-icon";
|
|
|
68
68
|
| ZoomIn | 放大 |
|
|
69
69
|
| ZoomOut | 缩小 |
|
|
70
70
|
|
|
71
|
-
## 符号标识(
|
|
71
|
+
## 符号标识(44)
|
|
72
72
|
|
|
73
73
|
| 图标名 | 语义/用途 |
|
|
74
74
|
|--------|----------|
|
|
@@ -79,6 +79,7 @@ import { Search } from "lingee-icon";
|
|
|
79
79
|
| Check2Circle1 | 圆形勾选(缺口) |
|
|
80
80
|
| Check2Square | 方形勾选(缺口) |
|
|
81
81
|
| CheckCircleFill | 圆形勾选(选中) — 成功 |
|
|
82
|
+
| CheckSmall | 小号勾/确认(细) |
|
|
82
83
|
| CheckSquare | 方形勾选 |
|
|
83
84
|
| CheckSquareFill | 方形勾选(选中) |
|
|
84
85
|
| CheckboxUnselected | 复选未选中 |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 接入指南
|
|
2
2
|
|
|
3
|
-
组件库 `0.0.
|
|
3
|
+
组件库 `0.0.10` | 图标库 `1.0.16`
|
|
4
4
|
|
|
5
5
|
## 安装
|
|
6
6
|
|
|
@@ -36,7 +36,7 @@ import "lingee-ui/styles.css";
|
|
|
36
36
|
import { LingeeProvider } from "lingee-ui";
|
|
37
37
|
|
|
38
38
|
createRoot(document.getElementById("root")!).render(
|
|
39
|
-
<LingeeProvider
|
|
39
|
+
<LingeeProvider>
|
|
40
40
|
<App />
|
|
41
41
|
</LingeeProvider>,
|
|
42
42
|
);
|
|
@@ -44,6 +44,18 @@ createRoot(document.getElementById("root")!).render(
|
|
|
44
44
|
|
|
45
45
|
未包 Provider 时 `toast.*` 不会显示,组件内置文案也无法本地化。
|
|
46
46
|
|
|
47
|
+
`locale` 接收**语言包对象**(不是 `"zh-CN"` 这样的字符串),默认中文,切换英文需显式传入 `enUS`:
|
|
48
|
+
|
|
49
|
+
```tsx
|
|
50
|
+
import { LingeeProvider, enUS } from "lingee-ui";
|
|
51
|
+
|
|
52
|
+
<LingeeProvider locale={enUS}>
|
|
53
|
+
<App />
|
|
54
|
+
</LingeeProvider>;
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
需要在业务代码里复用组件库文案时,用 `useLocale()` 取完整语言包,或 `useComponentLocale("Pagination")` 取单个组件的片段。
|
|
58
|
+
|
|
47
59
|
## 暗色模式
|
|
48
60
|
|
|
49
61
|
给 `<html>` 加 `data-theme="dark"`,全部语义 Token 自动切换:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 语义 Token 全表
|
|
2
2
|
|
|
3
|
-
组件库 `0.0.
|
|
3
|
+
组件库 `0.0.10`。仅列语义层(`--lg-g-*`)。
|
|
4
4
|
|
|
5
5
|
亮色与暗色**变量名完全相同**,给 `<html>` 加 `data-theme="dark"` 即自动切换,业务代码只写一次。
|
|
6
6
|
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
| `var(--lg-g-fg-color-violet-default)` | ~~`--lg-g-fg-color-violet-defauit`~~ |
|
|
25
25
|
| `var(--lg-g-bg-color-emerald-translucent-soft)` | ~~`--lg-g-bg-color-emeraid-translucent-soft`~~ |
|
|
26
26
|
|
|
27
|
-
## 前景色 fg(color / fill / stroke)(
|
|
27
|
+
## 前景色 fg(color / fill / stroke)(47)
|
|
28
28
|
|
|
29
29
|
| Token | 亮色 | 暗色 |
|
|
30
30
|
|-------|------|------|
|
|
@@ -62,8 +62,21 @@
|
|
|
62
62
|
| `var(--lg-g-fg-color-emerald-default)` | `#009D72` | `#009D72` |
|
|
63
63
|
| `var(--lg-g-fg-color-lime-default)` | `#5FBA04` | `#5FBA04` |
|
|
64
64
|
| `var(--lg-g-fg-color-violet-default)` | `#572FF7` | `#572FF7` |
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
| `var(--lg-g-fg-color-warning-low)` | `#FF8D42` | `#FF8D42` |
|
|
66
|
+
| `var(--lg-g-fg-color-success-low)` | `#08CC50` | `#08CC50` |
|
|
67
|
+
| `var(--lg-g-fg-color-amber-low)` | `#FFB200` | `#FFB200` |
|
|
68
|
+
| `var(--lg-g-fg-color-teal-low)` | `#00E5E5` | `#00E5E5` |
|
|
69
|
+
| `var(--lg-g-fg-color-purple-low)` | `#8F40FF` | `#8F40FF` |
|
|
70
|
+
| `var(--lg-g-fg-color-indigo-low)` | `#5155F6` | `#5155F6` |
|
|
71
|
+
| `var(--lg-g-fg-color-yellow-low)` | `#FFE500` | `#FFE500` |
|
|
72
|
+
| `var(--lg-g-fg-color-cyan-low)` | `#00A3F4` | `#00A3F4` |
|
|
73
|
+
| `var(--lg-g-fg-color-pink-low)` | `#FF246D` | `#FF246D` |
|
|
74
|
+
| `var(--lg-g-fg-color-fuchsia-low)` | `#F858D0` | `#F858D0` |
|
|
75
|
+
| `var(--lg-g-fg-color-emerald-low)` | `#08C787` | `#08C787` |
|
|
76
|
+
| `var(--lg-g-fg-color-lime-low)` | `#74D70B` | `#74D70B` |
|
|
77
|
+
| `var(--lg-g-fg-color-violet-low)` | `#7858F9` | `#7858F9` |
|
|
78
|
+
|
|
79
|
+
## 背景色 bg(background)(99)
|
|
67
80
|
|
|
68
81
|
| Token | 亮色 | 暗色 |
|
|
69
82
|
|-------|------|------|
|
|
@@ -158,9 +171,16 @@
|
|
|
158
171
|
| `var(--lg-g-bg-color-violet-default)` | `#572FF7` | `#572FF7` |
|
|
159
172
|
| `var(--lg-g-bg-color-fuchsia-translucent-soft)` | `rgba(248, 88, 208, 0.08)` | `rgba(248, 88, 208, 0.08)` |
|
|
160
173
|
| `var(--lg-g-bg-color-fuchsia-default)` | `#ED1DB9` | `#ED1DB9` |
|
|
161
|
-
| `var(--lg-g-bg-color-page-default)` | `#F7F7FA` | `#
|
|
174
|
+
| `var(--lg-g-bg-color-page-default)` | `#F7F7FA` | `#191A1B` |
|
|
175
|
+
| `var(--lg-g-bg-color-white)` | `#FAFAFA` | `#191A1B` |
|
|
176
|
+
| `var(--lg-g-bg-color-navigation)` | `#F1F1F6` | `#191A1B` |
|
|
177
|
+
| `var(--lg-g-bg-color-white-tabs)` | `#FFFFFF` | `rgba(255, 255, 255, 0.28)` |
|
|
178
|
+
| `var(--lg-g-bg-color-white-default)` | `rgba(255, 255, 255, 0.46)` | `rgba(0, 0, 0, 0.46)` |
|
|
179
|
+
| `var(--lg-g-bg-color-success-translucent-subtle)` | `rgba(8, 204, 80, 0.06)` | `rgba(8, 204, 80, 0.06)` |
|
|
180
|
+
| `var(--lg-g-bg-color-blue-translucent-subtle)` | `rgba(77, 137, 255, 0.06)` | `rgba(77, 137, 255, 0.06)` |
|
|
181
|
+
| `var(--lg-g-bg-color-blue-translucent-muted)` | `rgba(77, 137, 255, 0.12)` | `rgba(77, 137, 255, 0.28)` |
|
|
162
182
|
|
|
163
|
-
## 边框色 border(border-color / outline)(
|
|
183
|
+
## 边框色 border(border-color / outline)(42)
|
|
164
184
|
|
|
165
185
|
| Token | 亮色 | 暗色 |
|
|
166
186
|
|-------|------|------|
|
|
@@ -191,6 +211,21 @@
|
|
|
191
211
|
| `var(--lg-g-border-color-blue-translucent-soft)` | `rgba(77, 137, 255, 0.08)` | `rgba(77, 137, 255, 0.08)` |
|
|
192
212
|
| `var(--lg-g-border-color-blue-subtle)` | `#E4EEFF` | `#183F96` |
|
|
193
213
|
| `var(--lg-g-border-color-blue-default)` | `#2970FF` | `#2970FF` |
|
|
214
|
+
| `var(--lg-g-border-color-black-default)` | `rgba(0, 0, 0, 0.46)` | `rgba(255, 255, 255, 0.46)` |
|
|
215
|
+
| `var(--lg-g-border-color-warning-translucent-muted)` | `rgba(255, 119, 0, 0.12)` | `rgba(255, 119, 0, 0.12)` |
|
|
216
|
+
| `var(--lg-g-border-color-danger-translucent-muted)` | `rgba(255, 41, 59, 0.12)` | `rgba(255, 41, 59, 0.12)` |
|
|
217
|
+
| `var(--lg-g-border-color-success-translucent-muted)` | `rgba(8, 204, 80, 0.12)` | `rgba(8, 204, 80, 0.12)` |
|
|
218
|
+
| `var(--lg-g-border-color-blue-translucent-default)` | `rgba(77, 137, 255, 0.12)` | `rgba(77, 137, 255, 0.12)` |
|
|
219
|
+
| `var(--lg-g-border-color-amber-default)` | `#E28800` | `#E28800` |
|
|
220
|
+
| `var(--lg-g-border-color-teal-default)` | `#00BFB8` | `#00BFB8` |
|
|
221
|
+
| `var(--lg-g-border-color-emerald-default)` | `#009D72` | `#009D72` |
|
|
222
|
+
| `var(--lg-g-border-color-lime-default)` | `#5FBA04` | `#5FBA04` |
|
|
223
|
+
| `var(--lg-g-border-color-cyan-default)` | `#0083D4` | `#0083D4` |
|
|
224
|
+
| `var(--lg-g-border-color-purple-default)` | `#7F2AF3` | `#7F2AF3` |
|
|
225
|
+
| `var(--lg-g-border-color-indigo-default)` | `#4343F5` | `#4343F5` |
|
|
226
|
+
| `var(--lg-g-border-color-violet-default)` | `#572FF7` | `#572FF7` |
|
|
227
|
+
| `var(--lg-g-border-color-fuchsia-default)` | `#ED1DB9` | `#ED1DB9` |
|
|
228
|
+
| `var(--lg-g-border-color-pink-default)` | `#ED1165` | `#ED1165` |
|
|
194
229
|
|
|
195
230
|
## 其他(3)
|
|
196
231
|
|
package/dist/chunk-C5BDJQIO.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
'use strict';var chunkWAYZVZQB_js=require('./chunk-WAYZVZQB.js'),chunkDCDWEVW4_js=require('./chunk-DCDWEVW4.js'),_e=require('react'),Pe=require('@rc-component/tree'),lingeeIcon=require('lingee-icon'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var _e__default=/*#__PURE__*/_interopDefault(_e);var Pe__default=/*#__PURE__*/_interopDefault(Pe);var I=_e__default.default.forwardRef(({className:e,size:r="md",spinning:o=true,children:n,tip:a,...c},s)=>{let p=chunkWAYZVZQB_js.g("Spin"),i=n!=null,g=jsxRuntime.jsx("div",{className:"lg-spin__indicator"});return i?jsxRuntime.jsxs("div",{ref:s,className:chunkDCDWEVW4_js.a("lg-spin","lg-spin--nested",e),...c,children:[jsxRuntime.jsx("div",{className:chunkDCDWEVW4_js.a("lg-spin__content",o&&"lg-spin__content--loading"),children:n}),o&&jsxRuntime.jsxs("div",{className:"lg-spin__overlay",role:"status","aria-label":a||p.loading,children:[jsxRuntime.jsx("div",{className:chunkDCDWEVW4_js.a("lg-spin",`lg-spin--${r}`),children:g}),a&&jsxRuntime.jsx("span",{className:"lg-spin__tip",children:a})]})]}):jsxRuntime.jsx("div",{ref:s,className:chunkDCDWEVW4_js.a("lg-spin",`lg-spin--${r}`,!o&&"lg-spin--paused",e),role:"status","aria-label":a||p.loading,...c,children:g})});I.displayName="Spin";var Ne={block:16,inline:14};function Te(e,r){switch(e){case "loading":return jsxRuntime.jsx(lingeeIcon.LoaderCircle,{size:r,spin:true});case "error":return jsxRuntime.jsx(lingeeIcon.ExclamationCircle,{size:r});default:return jsxRuntime.jsx(lingeeIcon.Inbox,{size:r})}}var R=_e__default.default.forwardRef(({status:e,description:r,icon:o,variant:n="block",spacing:a="normal",onRetry:c,className:s,style:p,...i},g)=>{let _=Ne[n],v=o===null?null:o??Te(e,_),k=e==="error"&&typeof c=="function",h=chunkDCDWEVW4_js.a("lg-empty-card",`lg-empty-card--${n}`,`lg-empty-card--${e}`,`lg-empty-card--spacing-${a}`,k&&"lg-empty-card--retryable",s),w=jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[v&&jsxRuntime.jsx("span",{className:"lg-empty-card__icon","aria-hidden":"true",children:v}),jsxRuntime.jsx("span",{className:"lg-empty-card__text",children:r})]});return k?jsxRuntime.jsx("button",{ref:g,type:"button",className:h,style:p,onClick:c,...i,children:w}):jsxRuntime.jsx("div",{ref:g,className:h,style:p,role:e==="empty"?void 0:"status","aria-live":e==="empty"?void 0:"polite",...i,children:w})});R.displayName="Empty.Card";var F="lg-empty-gradient",V=`url(#${F})`,U=0,C=null;function Re(){if(U++>0||typeof document>"u")return;let e=document.createElementNS("http://www.w3.org/2000/svg","svg");e.setAttribute("width","0"),e.setAttribute("height","0"),e.setAttribute("aria-hidden","true"),e.style.position="absolute",e.style.overflow="hidden",e.innerHTML=`<defs><linearGradient id="${F}" x1="12" y1="2" x2="12" y2="22" gradientUnits="userSpaceOnUse"><stop stop-color="rgba(0,0,0,0.28)"/><stop offset="1" stop-color="rgba(0,0,0,0.12)"/></linearGradient></defs>`,document.body.appendChild(e),C=e;}function Le(){--U>0||C&&(C.remove(),C=null);}var Ae={lg:56,md:24,sm:16};function Ke(e){return typeof e=="function"||typeof e=="object"&&e!==null&&"render"in e&&typeof e.render=="function"}var Z=_e__default.default.forwardRef(({size:e="md",icon:r,description:o,className:n,style:a,...c},s)=>{_e.useEffect(()=>(Re(),Le),[]);let p=Ae[e],i;return r?Ke(r)?i=jsxRuntime.jsx(r,{size:p,fill:V}):i=r:i=jsxRuntime.jsx(lingeeIcon.DocumentLibrary,{size:p,fill:V}),jsxRuntime.jsxs("div",{ref:s,className:chunkDCDWEVW4_js.a("lg-empty",`lg-empty--${e}`,n),style:a,...c,children:[jsxRuntime.jsx("span",{className:"lg-empty__icon",children:i}),jsxRuntime.jsx("span",{className:"lg-empty__text",children:o})]})});Z.displayName="Empty";var X=Object.assign(Z,{Card:R});var $e={sm:30,md:34,lg:38},L=()=>({height:0,opacity:0}),J=e=>{let r=Array.from(e.children);return r.length===0?0:r.reduce((o,n)=>{let a=parseFloat(getComputedStyle(n).marginTop)||0;return o+n.getBoundingClientRect().height+a},0)},q=e=>({height:J(e),opacity:1}),je={motionName:"lg-tree-motion",motionDeadline:300,onAppearStart:L,onAppearActive:q,onEnterStart:L,onEnterActive:q,onLeaveStart:e=>({height:J(e),opacity:1}),onLeaveActive:L},Be=_e__default.default.forwardRef((e,r)=>{let{treeData:o,fieldNames:n,size:a="md",expandedKeys:c,defaultExpandedKeys:s,defaultExpandAll:p,autoExpandParent:i,expandAction:g="click",onExpand:_,selectable:v=true,multiple:k=false,selectedKeys:h,defaultSelectedKeys:w,onSelect:A,checkable:K=false,checkStrictly:Q=false,checkedKeys:M,defaultCheckedKeys:W,onCheck:H,showIcon:Y=false,icon:u,switcherIcon:b,indentGuide:ee="line",titleRender:te,loadData:re,loadedKeys:P,draggable:E=false,allowDrop:S,onDrop:G,height:oe,itemHeight:ne,virtual:ae,disabled:$=false,loading:j=false,empty:ie,onRightClick:le,animated:de=true,className:ce,style:pe}=e,se=chunkWAYZVZQB_js.g("Tree"),ge=_e.useMemo(()=>{if(u)return typeof u!="function"?u:t=>u(t.data,{expanded:!!t.expanded,isLeaf:!!t.isLeaf})},[u]),me=_e.useMemo(()=>b!==void 0?typeof b!="function"?b:t=>b({expanded:!!t.expanded,isLeaf:!!t.isLeaf}):t=>t.isLeaf?null:jsxRuntime.jsx(lingeeIcon.ChevronDown,{className:"lg-tree__switcher-icon",size:16,"aria-hidden":true}),[b]),ye=_e.useMemo(()=>{if(E)return {icon:false,nodeDraggable:typeof E=="function"?t=>E(t):void 0}},[E]),fe=_e.useCallback((t,l)=>{_?.(t,{node:l.node,expanded:l.expanded});},[_]),he=_e.useCallback((t,l)=>{A?.(t,{node:l.node,selected:l.selected,selectedNodes:l.selectedNodes});},[A]),ue=_e.useCallback((t,l)=>{H?.(t,{node:l.node,checked:l.checked,checkedNodes:l.checkedNodes,halfCheckedKeys:l.halfCheckedKeys});},[H]),be=_e.useCallback(t=>{G?.({dragNode:t.dragNode,node:t.node,dropPosition:t.dropPosition,dropToGap:t.dropToGap});},[G]),B=_e.useMemo(()=>{if(S)return t=>S({dragNode:t.dragNode,dropNode:t.dropNode,dropPosition:t.dropPosition})},[S]),xe=!o||o.length===0,y={};return c!==void 0&&(y.expandedKeys=c),h!==void 0&&(y.selectedKeys=h),M!==void 0&&(y.checkedKeys=M),P!==void 0&&(y.loadedKeys=P),B!==void 0&&(y.allowDrop=B),jsxRuntime.jsxs("div",{ref:r,className:chunkDCDWEVW4_js.a("lg-tree",`lg-tree--${a}`,`lg-tree--guide-${ee}`,K&&"lg-tree--checkable",$&&"lg-tree--disabled",j&&"lg-tree--loading",ce),style:pe,children:[j&&jsxRuntime.jsx("div",{className:"lg-tree__loading-mask",children:jsxRuntime.jsx(I,{size:"md"})}),xe?jsxRuntime.jsx("div",{className:"lg-tree__empty",children:ie??jsxRuntime.jsx(X,{size:"sm",description:se.empty})}):jsxRuntime.jsx(Pe__default.default,{prefixCls:"lg-tree",treeData:o,fieldNames:n,defaultExpandedKeys:s,defaultExpandAll:p,autoExpandParent:i,expandAction:g,onExpand:fe,selectable:v,multiple:k,defaultSelectedKeys:w,onSelect:he,checkable:K,checkStrictly:Q,defaultCheckedKeys:W,onCheck:ue,showIcon:Y,icon:ge,switcherIcon:me,titleRender:te,loadData:re,draggable:ye,onDrop:be,height:oe,itemHeight:ne??$e[a],virtual:ae,disabled:$,onRightClick:le,motion:de?je:void 0,...y})]})});Be.displayName="Tree";
|
|
2
|
-
exports.a=R;exports.b=X;exports.c=I;exports.d=Be;
|
package/dist/chunk-DIXO53WK.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import {a}from'./chunk-DN2VKVCV.mjs';import i from'react';import*as o from'@radix-ui/react-popover';import {jsx}from'react/jsx-runtime';function R({children:r,open:e,defaultOpen:a,onOpenChange:t,modal:n=false}){return jsx(o.Root,{open:e,defaultOpen:a,onOpenChange:t,modal:n,children:r})}R.displayName="Popover";var w=i.forwardRef(({children:r,asChild:e=true,...a},t)=>jsx(o.Trigger,{ref:t,asChild:e,...a,children:r}));w.displayName="PopoverTrigger";var C=i.forwardRef(({children:r,asChild:e=true,...a},t)=>jsx(o.Anchor,{ref:t,asChild:e,...a,children:r}));C.displayName="PopoverAnchor";var A=i.forwardRef(({children:r,className:e,side:a$1="bottom",align:t="center",sideOffset:n=4,alignOffset:d=0,container:l,collisionPadding:P=8,onEscapeKeyDown:m,onPointerDownOutside:f,onFocusOutside:g,onInteractOutside:c,onOpenAutoFocus:u,onCloseAutoFocus:x,...y},h)=>{let v=jsx(o.Content,{ref:h,className:a("lg-popover",e),side:a$1,align:t,sideOffset:n,alignOffset:d,collisionPadding:P,onEscapeKeyDown:m,onPointerDownOutside:f,onFocusOutside:g,onInteractOutside:c,onOpenAutoFocus:u,onCloseAutoFocus:x,...y,children:r});return l===null?v:jsx(o.Portal,{container:l,children:v})});A.displayName="PopoverContent";var b=i.forwardRef(({className:r,width:e=10,height:a$1=5,...t},n)=>jsx(o.Arrow,{ref:n,className:a("lg-popover__arrow",r),width:e,height:a$1,...t}));b.displayName="PopoverArrow";var T=i.forwardRef(({children:r,asChild:e=true,...a},t)=>jsx(o.Close,{ref:t,asChild:e,...a,children:r}));T.displayName="PopoverClose";export{R as a,w as b,C as c,A as d,b as e,T as f};
|
package/dist/chunk-H7GT6UT4.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import {a as a$1}from'./chunk-DN2VKVCV.mjs';import E,{createContext,useContext}from'react';import {Toaster,toast}from'sonner';import {ExclamationTriangle,ExclamationCircle,Check2Circle,Information1,XLg}from'lingee-icon';import {jsx,jsxs}from'react/jsx-runtime';var v={locale:"zh-CN",Button:{},Breadcrumb:{more:"\u66F4\u591A",back:"\u8FD4\u56DE"},Select:{loading:"\u52A0\u8F7D\u4E2D",loadError:"\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5",notFound:"\u641C\u7D22\u65E0\u7ED3\u679C",clear:"\u6E05\u7A7A"},Dropdown:{clear:"\u6E05\u9664",loading:"\u52A0\u8F7D\u4E2D",loadError:"\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5",empty:"\u6682\u65E0\u6570\u636E"},Tabs:{scrollLeft:"\u5411\u5DE6\u6EDA\u52A8",scrollRight:"\u5411\u53F3\u6EDA\u52A8"},Form:{required:"{label}\u4E0D\u80FD\u4E3A\u7A7A",requiredNoLabel:"\u6B64\u9879\u4E0D\u80FD\u4E3A\u7A7A"},Tag:{close:"\u5173\u95ED"},Upload:{retry:"\u91CD\u65B0\u4E0A\u4F20",remove:"\u79FB\u9664\u6587\u4EF6",removeShort:"\u79FB\u9664",dragText:"\u62D6\u62FD\u6587\u4EF6\u5230\u6B64\u5904\uFF0C\u6216",clickUpload:"\u70B9\u51FB\u4E0A\u4F20"},ColorPicker:{placeholder:"\u8BF7\u9009\u62E9\u989C\u8272"},DatePicker:{placeholder:"\u5E74/\u6708/\u65E5",today:"\u4ECA\u5929",prevYear:"\u4E0A\u4E00\u5E74",nextYear:"\u4E0B\u4E00\u5E74",prevMonth:"\u4E0A\u4E00\u6708",nextMonth:"\u4E0B\u4E00\u6708",prevDecade:"\u4E0A\u4E00\u7EC4\u5E74\u4EFD",nextDecade:"\u4E0B\u4E00\u7EC4\u5E74\u4EFD",months:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],yearFormat:"{year}\u5E74",monthFormat:"{month}\u6708"},RangePicker:{startPlaceholder:"\u5E74/\u6708/\u65E5",endPlaceholder:"\u5E74/\u6708/\u65E5"},TimePicker:{now:"\u73B0\u5728",confirm:"\u786E\u5B9A",placeholder:"\u65F6:\u5206",placeholderFull:"\u65F6:\u5206:\u79D2"},Table:{empty:"\u6682\u65E0\u6570\u636E"},Tree:{empty:"\u6682\u65E0\u6570\u636E"},Pagination:{total:"\u5171 {total} \u6761",prevPage:"\u4E0A\u4E00\u9875",nextPage:"\u4E0B\u4E00\u9875",itemsPerPage:"{size}\u6761/\u9875",jumpTo:"\u8DF3\u81F3",page:"\u9875"},Dialog:{close:"\u5173\u95ED"},Drawer:{close:"\u5173\u95ED"},Input:{clear:"\u6E05\u7A7A",expand:"\u5C55\u5F00\u8F93\u5165\u6846"},Alert:{close:"\u5173\u95ED"},Toast:{close:"\u5173\u95ED\u6D88\u606F"},Spin:{loading:"\u52A0\u8F7D\u4E2D"}},l=v;var T={locale:"en-US",Button:{},Breadcrumb:{more:"More",back:"Back"},Select:{loading:"Loading",loadError:"Failed to load, please retry",notFound:"No results found",clear:"Clear"},Dropdown:{clear:"Clear",loading:"Loading",loadError:"Failed to load, please retry",empty:"No data"},Tabs:{scrollLeft:"Scroll left",scrollRight:"Scroll right"},Form:{required:"{label} is required",requiredNoLabel:"This field is required"},Tag:{close:"Close"},Upload:{retry:"Retry upload",remove:"Remove file",removeShort:"Remove",dragText:"Drag files here, or ",clickUpload:"click to upload"},ColorPicker:{placeholder:"Select a color"},DatePicker:{placeholder:"YYYY/MM/DD",today:"Today",prevYear:"Previous year",nextYear:"Next year",prevMonth:"Previous month",nextMonth:"Next month",prevDecade:"Previous decade",nextDecade:"Next decade",months:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],yearFormat:"{year}",monthFormat:"{month}"},RangePicker:{startPlaceholder:"Start date",endPlaceholder:"End date"},TimePicker:{now:"Now",confirm:"OK",placeholder:"HH:mm",placeholderFull:"HH:mm:ss"},Table:{empty:"No data"},Tree:{empty:"No data"},Pagination:{total:"{total} items",prevPage:"Previous page",nextPage:"Next page",itemsPerPage:"{size} / page",jumpTo:"Go to",page:""},Dialog:{close:"Close"},Drawer:{close:"Close"},Input:{clear:"Clear",expand:"Expand input"},Alert:{close:"Close"},Toast:{close:"Close message"},Spin:{loading:"Loading"}},C=T;var m=createContext(l);function w({locale:o=l,children:e}){return jsxs(m.Provider,{value:o,children:[e,jsx(g,{})]})}w.displayName="LingeeProvider";function N(){return useContext(m)}function u(o){return N()[o]}var I={info:jsx(Information1,{size:20}),success:jsx(Check2Circle,{size:20}),warning:jsx(ExclamationCircle,{size:20}),error:jsx(ExclamationTriangle,{size:20})};function f({type:o,content:e,icon:t,closable:i,className:c,onClose:d}){let h=u("Toast"),y=()=>{if(t===null)return null;let b=t!==void 0?t:I[o];return jsx("span",{className:"lg-toast__icon",children:b})};return jsxs("div",{className:a$1("lg-toast",`lg-toast--${o}`,c),children:[y(),jsx("span",{className:"lg-toast__content",children:e}),i&&jsx("button",{className:"lg-toast__close",onClick:d,"aria-label":h.close,type:"button",children:jsx(XLg,{size:16})})]})}var a={};function g(){let o=a.top??16;return jsx(Toaster,{position:"top-center",offset:o,gap:8,closeButton:false,toastOptions:{unstyled:true,className:"lg-toast-wrapper"},style:{"--width":"560px"}})}function A(o){let e=o[0];return typeof e=="object"&&e!==null&&!E.isValidElement(e)?e:{content:e,duration:o[1],onClose:o[2]}}function U(o,e){let t=e.duration!==void 0?e.duration<0?a.duration??3e3:e.duration:a.duration??3e3,i=t===0?1/0:t,c=toast.custom(d=>jsx(f,{type:o,content:e.content,icon:e.icon,closable:e.closable,className:e.className,onClose:()=>toast.dismiss(d)}),{...e.key!==void 0&&{id:e.key},duration:i,onAutoClose:()=>e.onClose?.(),onDismiss:()=>e.onClose?.()});return ()=>toast.dismiss(c)}function n(o){return (...e)=>{let t=A(e);return U(o,t)}}var se={info:n("info"),success:n("success"),warning:n("warning"),error:n("error"),destroy:()=>toast.dismiss(),config:o=>{a={...a,...o};}};export{g as a,se as b,l as c,C as d,w as e,N as f,u as g};
|