one-design-next 0.0.27 → 0.0.29
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 +23 -11
- package/dist/drawer/index.d.ts +5 -0
- package/dist/drawer/index.js +3 -1
- package/dist/drawer/style/index.css +16 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
|
|
17
17
|
## 概览
|
|
18
18
|
|
|
19
|
-
One Design Next 是腾讯 TAD / WXAD 团队维护的 React 组件库,提供 **
|
|
19
|
+
One Design Next 是腾讯 TAD / WXAD 团队维护的 React 组件库,提供 **70+** 组件,涵盖:
|
|
20
20
|
|
|
21
21
|
- **基础 UI** — 按钮、表单、表格、对话框、导航等通用控件
|
|
22
|
-
- **平台布局** — 如翼(RuyiLayout)、MP(MpLayout)等业务平台专用布局
|
|
22
|
+
- **平台布局** — 如翼(RuyiLayout)、MP(MpLayout)、互选(HuxuanLayout)等业务平台专用布局
|
|
23
23
|
- **GenUI** — AI 对话场景组件(Composer、StreamText、ChatItem、AgentStep 等)
|
|
24
24
|
- **AI Skill 系统** — 配套 Cursor Skill 流水线,支撑需求分析到页面落地的全流程
|
|
25
25
|
|
|
@@ -54,13 +54,13 @@ import { Button, Table, Dialog, Composer } from 'one-design-next';
|
|
|
54
54
|
|
|
55
55
|
| 分类 | 组件 |
|
|
56
56
|
|:-----|:-----|
|
|
57
|
-
| **通用** | `Button` `Icon` `Link` `Avatar` `HoverFill` `ConfigProvider` |
|
|
58
|
-
| **布局** | `Card` `Collapse` `ScrollArea` `RuyiLayout` `MpLayout` |
|
|
57
|
+
| **通用** | `Button` `Icon` `Link` `Avatar` `Image` `HoverFill` `ConfigProvider` |
|
|
58
|
+
| **布局** | `Card` `Collapse` `ScrollArea` `RuyiLayout` `MpLayout` `HuxuanLayout` |
|
|
59
59
|
| **导航** | `Tabs` `Dropdown` `Pagination` `Cascader` `TreeSelect` |
|
|
60
60
|
| **数据录入** | `Form` `Input` `InputNumber` `InputOtp` `Select` `AutoComplete` `Checkbox` `Radio` `Switch` `Slider` `ColorPicker` `DatePicker` `DateRangePicker` `TimePicker` `Calendar` |
|
|
61
61
|
| **数据展示** | `Table` `Chart` `VirtualList` `NumberFlow` `EllipsisText` `TextSwap` `Empty` |
|
|
62
62
|
| **反馈** | `Dialog` `Drawer` `Message` `Alert` `Tooltip` `Popover` `Loading` |
|
|
63
|
-
| **GenUI** | `Composer` `StreamText` `ChatItem` `AgentStep` `AgentThink` `CodeBlock` `PreviewPanel` `ActionBar` `Attachments` `Sources` `Suggestions` `SkillSlot` `UserBubble` `Welcome` `ErrorBlock` `Fab` |
|
|
63
|
+
| **GenUI** | `Composer` `StreamText` `ChatItem` `AgentStep` `AgentThink` `Artifact` `Invocation` `Mention` `CodeBlock` `PreviewPanel` `ActionBar` `Attachments` `MessageImage` `Sources` `Provenance` `Suggestions` `SkillSlot` `UserBubble` `Welcome` `ErrorBlock` `Fab` |
|
|
64
64
|
| **底层** | `ModalBase` 系列 `PopBase` 系列 `Collapsible` 日期 / 时间工具函数 |
|
|
65
65
|
|
|
66
66
|
> GenUI 共享类型(`ToolCall`、`ChatMessage`、`Conversation` 等)通过 `_genui-types` 统一导出。
|
|
@@ -95,14 +95,21 @@ pnpm run docs:build
|
|
|
95
95
|
### 常用脚本
|
|
96
96
|
|
|
97
97
|
| 命令 | 说明 |
|
|
98
|
-
|
|
98
|
+
|:-----|:-----|
|
|
99
99
|
| `pnpm run dev` | 启动本地开发文档站 |
|
|
100
100
|
| `pnpm run build` | 构建组件库(father + 样式) |
|
|
101
101
|
| `pnpm run docs:build` | 静态构建文档站(含 LLM 知识生成) |
|
|
102
|
+
| `pnpm run docs:preview` | 本地预览文档产物 |
|
|
103
|
+
| `pnpm run build:skills` | 构建多产品 Skill 发布包 |
|
|
102
104
|
| `pnpm run create-component` | 创建新组件脚手架 |
|
|
103
105
|
| `pnpm run create-skill` | 创建新 AI Skill |
|
|
106
|
+
| `pnpm run test` | 运行 Vitest(watch 模式) |
|
|
107
|
+
| `pnpm run test:ci` | 运行 Vitest(CI 模式) |
|
|
108
|
+
| `pnpm run test:changed` | 仅测试改动相关用例 |
|
|
109
|
+
| `pnpm run typecheck` | TypeScript 类型检查 |
|
|
104
110
|
| `pnpm run benchmark` | 运行性能基准测试 |
|
|
105
111
|
| `pnpm run benchmark:compare` | 对比性能基准 |
|
|
112
|
+
| `pnpm run benchmark:auto` | 仅运行自动基准任务 |
|
|
106
113
|
| `pnpm run lint` | ESLint + Stylelint 代码检查 |
|
|
107
114
|
| `pnpm run release` | 版本发布 |
|
|
108
115
|
|
|
@@ -127,6 +134,8 @@ one-design-next/
|
|
|
127
134
|
├── .cursor/skills/ # AI Skill 知识包与流程(SKILL.md 为总入口)
|
|
128
135
|
├── .dumi/ # Dumi 配置与构建数据
|
|
129
136
|
├── scripts/ # 构建、benchmark、反馈等工具脚本
|
|
137
|
+
├── benchmark/ # benchmark 原始数据与对比结果
|
|
138
|
+
├── tests/ # 组件与文档回归测试
|
|
130
139
|
├── skills/ # 对外发布 Skill(多产品)
|
|
131
140
|
│ ├── src/
|
|
132
141
|
│ │ ├── shared/ # 共享:ODN 组件知识、流水线 GUIDE
|
|
@@ -179,15 +188,18 @@ bash skills/build.sh huxuan # 只构建互选
|
|
|
179
188
|
|
|
180
189
|
在 `~/.npmrc` 中配置 npm 账号的 `_authToken`(需有 `one-design-next` 包的发布权限)。
|
|
181
190
|
|
|
182
|
-
###
|
|
191
|
+
### 发布流程(推荐)
|
|
183
192
|
|
|
184
193
|
```bash
|
|
185
194
|
git checkout master && git pull origin master
|
|
186
195
|
|
|
187
|
-
#
|
|
188
|
-
pnpm
|
|
189
|
-
|
|
190
|
-
|
|
196
|
+
# 自动执行:版本号更新 + CHANGELOG 生成 + build + git push + npm publish
|
|
197
|
+
pnpm run release
|
|
198
|
+
|
|
199
|
+
# 可选:指定版本策略
|
|
200
|
+
pnpm run release patch
|
|
201
|
+
pnpm run release minor
|
|
202
|
+
pnpm run release major
|
|
191
203
|
```
|
|
192
204
|
|
|
193
205
|
提交信息遵循 [Conventional Commits](https://www.conventionalcommits.org/) 规范(通过 `commitlint` + `husky` 钩子校验)。
|
package/dist/drawer/index.d.ts
CHANGED
package/dist/drawer/index.js
CHANGED
|
@@ -56,6 +56,7 @@ var Drawer = function Drawer(_ref) {
|
|
|
56
56
|
width = _ref.width,
|
|
57
57
|
className = _ref.className,
|
|
58
58
|
zIndex = _ref.zIndex,
|
|
59
|
+
keepMounted = _ref.keepMounted,
|
|
59
60
|
container = _ref.container,
|
|
60
61
|
title = _ref.title,
|
|
61
62
|
desc = _ref.desc,
|
|
@@ -157,7 +158,8 @@ var Drawer = function Drawer(_ref) {
|
|
|
157
158
|
onOpenChange: onVisibleChange,
|
|
158
159
|
disablePointerDismissal: true
|
|
159
160
|
}, /*#__PURE__*/React.createElement(ModalPortal, {
|
|
160
|
-
container: container
|
|
161
|
+
container: container,
|
|
162
|
+
keepMounted: keepMounted
|
|
161
163
|
}, maskVisible && /*#__PURE__*/React.createElement(ModalOverlay, {
|
|
162
164
|
visible: visible,
|
|
163
165
|
"data-odn-modal-overlay": "drawer",
|
|
@@ -63,6 +63,16 @@ html {
|
|
|
63
63
|
overflow: hidden !important;
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
+
/**
|
|
67
|
+
* keepMounted 模式修复:Drawer 关闭后遮罩层 / 内容层不应拦截点击。
|
|
68
|
+
* keepMounted 时 portal 内容会以 data-state='closed' / data-closed 留在 DOM 中,
|
|
69
|
+
* 透明遮罩仍是 inset:0 全屏铺满、内容层虽已滑出视口但仍在 DOM 内,
|
|
70
|
+
* 若不禁用 pointer-events 就会拦截正常页面的鼠标 / 触摸交互。
|
|
71
|
+
*/
|
|
72
|
+
[data-odn-modal-overlay=drawer][data-state=closed] {
|
|
73
|
+
pointer-events: none;
|
|
74
|
+
}
|
|
75
|
+
|
|
66
76
|
[data-odn-drawer-content] {
|
|
67
77
|
position: fixed;
|
|
68
78
|
z-index: var(--odn-z-index-modal);
|
|
@@ -73,6 +83,12 @@ html {
|
|
|
73
83
|
overflow: auto;
|
|
74
84
|
}
|
|
75
85
|
|
|
86
|
+
/* keepMounted 时关闭态的内容层(已滑出视口但仍在 DOM 中)禁止拦截点击 */
|
|
87
|
+
[data-odn-drawer-content][data-state=closed],
|
|
88
|
+
[data-odn-drawer-content][data-closed] {
|
|
89
|
+
pointer-events: none;
|
|
90
|
+
}
|
|
91
|
+
|
|
76
92
|
[data-odn-drawer-content][data-odn-drawer-placement=left],
|
|
77
93
|
[data-odn-drawer-content][data-odn-drawer-placement=right] {
|
|
78
94
|
top: 0;
|