@hxdhxd/harmony-flow-ui 0.1.1 → 0.2.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 +312 -197
- package/dist/index.cjs +3536 -1341
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +1316 -132
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +329 -2
- package/dist/index.d.ts +329 -2
- package/dist/index.js +3485 -1312
- package/dist/index.js.map +1 -1
- package/package.json +118 -115
package/README.md
CHANGED
|
@@ -1,197 +1,312 @@
|
|
|
1
|
-
# Harmony Flow UI
|
|
2
|
-
|
|
3
|
-
面向通用 React 场景的轻量组件库。默认视觉取意 HarmonyOS 7:清透白底、云水浅蓝、柔和层级与克制动效,同时通过 CSS Design Tokens 支持运行时定制。
|
|
4
|
-
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
##
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
`
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
npm
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
##
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
-
|
|
157
|
-
-
|
|
158
|
-
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
1
|
+
# Harmony Flow UI
|
|
2
|
+
|
|
3
|
+
面向通用 React 场景的轻量组件库。默认视觉取意 HarmonyOS 7:清透白底、云水浅蓝、柔和层级与克制动效,同时通过 CSS Design Tokens 支持运行时定制。
|
|
4
|
+
|
|
5
|
+
## 组件工作区布局改造(2026-09-03)
|
|
6
|
+
|
|
7
|
+
展示站现采用顶部产品导航、九类组件导航、159组件卡片/列表浏览、全局搜索、收藏与最近访问。组件详情保持原URL,提供本页目录、真实预览与基于文档Props的属性控制。复杂对象和回调沿用可运行示例,浮层开关由示例触发器管理。
|
|
8
|
+
|
|
9
|
+
- 本地预览:`npm run build:demo` 后运行 `npm run serve`,访问 `http://127.0.0.1:6633`。
|
|
10
|
+
- 构建产物:`build/workspace-<构建时间>`;`demo-dist` 为兼容运行入口,旧产物先归档到 `laji`。
|
|
11
|
+
- 组件查找:Ctrl/Cmd+K、分类、中文用途/英文别名、首字母、分页、收藏和最近访问。
|
|
12
|
+
- 组合与模板:六个组合模式、三个现有模板、源码预览及完整模板ZIP。
|
|
13
|
+
- [改造执行与验收](./plan/frontend/component-workspace-20260903/04-执行与验收.md)
|
|
14
|
+
|
|
15
|
+
## 0.2.0 版本
|
|
16
|
+
|
|
17
|
+
前十批交互组件和组件工作区统一纳入0.2.0,保留0.1.2公开API。发布记录见[0.2.0](./plan/release/0.2.0.md)。
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
npm install @hxdhxd/harmony-flow-ui@0.2.0
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## 项目概览
|
|
24
|
+
|
|
25
|
+
- 当前工作区含 159 个可用组件(0.2.0新增共 22 个交互组件,另增强原有看板),覆盖基础控件、表单、导航、数据展示、反馈、布局、协作、调度与 AI 交互场景
|
|
26
|
+
- React + TypeScript 实现,同时输出 ESM、CommonJS、类型声明和独立样式文件
|
|
27
|
+
- 内置组件展厅、成品场景、交互示例、Props 文档与无障碍说明
|
|
28
|
+
- 支持主题 Token、界面密度以及桌面、平板和移动视口预览
|
|
29
|
+
- 统一质量门覆盖类型检查、构建、166 项公开 API、164 条展示路由、浏览器交互和视觉回归
|
|
30
|
+
|
|
31
|
+
## 第十批:乐观更新(2026-09-07,纳入0.2.0)
|
|
32
|
+
|
|
33
|
+
新增泛型 `OptimisticUpdate`:收藏、通知偏好等目标值先显示,再串行保存;等待期间合并最后一次意图,最终失败回滚最近确认值,支持重试及对象切换后的旧响应隔离。
|
|
34
|
+
|
|
35
|
+
`initialValue`仅初始化;业务对象或服务端版本变化时更新`operationKey`。`onUpdate(next, signal)`须返回服务端确认值,业务负责超时、取消配合和版本冲突。用于绝对目标值设置,不用于必须逐条执行的命令。
|
|
36
|
+
|
|
37
|
+
预览 `/components/optimisticupdate`;构建 `node test/build-douyin-batch10.mjs`;专项 `python test/verify-douyin-batch10.py`;兼容 `node test/verify-douyin-batch10-api.mjs`。详见[第十批执行与验收](./plan/development/douyin-20260907-10/执行与验收.md)及[后续总计划](./plan/development/抖音参考交互模式总计划.md)。
|
|
38
|
+
|
|
39
|
+
## 抖音参考交互总计划与第九批(2026-09-07,纳入0.2.0)
|
|
40
|
+
|
|
41
|
+
- [未覆盖交互总计划:第九至二十五批](./plan/development/抖音参考交互模式总计划.md):新增、增强、组合与可选动效统一排期,避免与旧质量整改批次混淆。
|
|
42
|
+
- 第九批新增 `LoadMore`(异步加载与显式重试)、`InfiniteScroll`(进入底部触发并保留手动入口)、`LazyLoad`(首次进入视口挂载并保留子树)。
|
|
43
|
+
- 预览:`/components/loadmore`、`/components/infinitescroll`、`/components/lazyload`。
|
|
44
|
+
- 构建:`node test/build-douyin-batch9.mjs`;专项:`python test/verify-douyin-batch9.py`;兼容:`node test/verify-douyin-batch9-api.mjs`。
|
|
45
|
+
- [第九批执行与验收](./plan/development/douyin-20260907-09/执行与验收.md)。`onLoad(signal)` 由业务维护游标、追加数据、检查取消信号;`resetKey` 更换查询。触底持续可见不自动循环拉取,失败由用户重试。
|
|
46
|
+
|
|
47
|
+
## 第七批:操作后撤销(2026-09-03,纳入0.2.0)
|
|
48
|
+
|
|
49
|
+
新增 `UndoNotice`,区分异步撤销中、成功、失败重试与过期;默认无倒计时,不自动消失。`onUndo(signal)` 只有在业务确认恢复成功后才 resolve;业务负责权限、幂等、超时和持久恢复入口。更换 `operationKey` 重置会话并中止旧请求信号。
|
|
50
|
+
|
|
51
|
+
预览 `/components/undonotice`。无删除构建:`node test/build-douyin.mjs --batch7`,产物 `build/douyin-20260903-07`;复验 `python test/verify-douyin-batch7.py`。[第七批执行与验收](./plan/development/douyin-20260903-07/执行与验收.md)。
|
|
52
|
+
|
|
53
|
+
## 第六批:行操作与逐项确认(2026-09-03,纳入0.2.0)
|
|
54
|
+
|
|
55
|
+
- `SwipeActions`:左滑露出行操作,右滑/Escape收起;显式按钮提供键盘替代,滑动不执行删除。预览 `/components/swipeactions`。
|
|
56
|
+
- `ChecklistConfirm`:逐项确认全部后提交,内容/对象变化清空,每次提交后重新确认。预览 `/components/checklistconfirm`。
|
|
57
|
+
|
|
58
|
+
组件只发出操作请求,业务负责权限、幂等和异步结果。运行 `node test/build-douyin.mjs --batch6` 构建到 `build/douyin-20260903-06`,运行 `python test/verify-douyin-batch6.py` 复验。[第六批执行与验收](./plan/development/douyin-20260903-06/执行与验收.md)。
|
|
59
|
+
|
|
60
|
+
## 第五批:防误触确认(2026-09-02,纳入0.2.0)
|
|
61
|
+
|
|
62
|
+
- `HoldToConfirm`:长按达到时长才发出请求,提前松开或失焦取消;提供无需持续按住的分步确认。预览 `/components/holdtoconfirm`。
|
|
63
|
+
- `TypedConfirm`:确认文字精确匹配后才可提交,发出请求后清空;操作对象变化重置。预览 `/components/typedconfirm`。
|
|
64
|
+
|
|
65
|
+
两者均只提供前端确认,不执行数据删除,不替代后端权限与幂等校验。业务通过 `loading`、`error` 管理结果;更换操作对象必须更新 `actionKey`。执行 `node test/build-douyin.mjs --batch5` 生成项目内正式产物及测试夹具,再运行 `python test/verify-douyin-batch5.py`。范围与证据见 [第五批执行与验收](./plan/development/douyin-20260902-05/执行与验收.md)。
|
|
66
|
+
|
|
67
|
+
## 本地新增交互组件(2026-09-02,纳入0.2.0)
|
|
68
|
+
|
|
69
|
+
| 组件 | 用途 | 本地预览路径 |
|
|
70
|
+
| --- | --- | --- |
|
|
71
|
+
| ReadMore | 长文原地展开/收起,短文自动隐藏操作 | `/components/readmore` |
|
|
72
|
+
| AnnouncementBar | 可暂停轮播公告,支持焦点、后台与减少动态暂停 | `/components/announcementbar` |
|
|
73
|
+
| OnboardingChecklist | 由业务状态驱动的任务清单与进度反馈 | `/components/onboardingchecklist` |
|
|
74
|
+
| SortableList | 同列表指针/触摸/键盘排序,支持取消与禁用 | `/components/sortablelist` |
|
|
75
|
+
|
|
76
|
+
素材对应关系、范围、测试证据和回滚说明见 [本批执行与验收](./plan/development/douyin-20260902/执行与验收.md)。本批正式产物位于 `build/douyin-20260902-01`;开发时未单独发布,本次统一纳入0.2.0。
|
|
77
|
+
|
|
78
|
+
本批可复验命令:
|
|
79
|
+
|
|
80
|
+
```powershell
|
|
81
|
+
node test/build-douyin.mjs
|
|
82
|
+
node test/verify-douyin-api.mjs
|
|
83
|
+
npm run test:api
|
|
84
|
+
# 先启动 npm run serve,以下浏览器测试使用本地 6633 端口
|
|
85
|
+
python test/verify-douyin-patterns.py
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
`test/build-douyin.mjs` 关闭构建自动清理,追加备份旧产物并在项目内生成构建,同时同步既有 `dist` 和 `demo-dist` 兼容入口。安装包测试使用项目内临时目录,并将测试结束后的目录移动到 `laji/package-tests`,不会永久删除。
|
|
89
|
+
|
|
90
|
+
## 项目结构
|
|
91
|
+
|
|
92
|
+
```text
|
|
93
|
+
src/ 组件实现、主题 Token 与样式
|
|
94
|
+
demo/ 组件展厅、文档和成品场景
|
|
95
|
+
scripts/ 构建、静态服务与维护脚本
|
|
96
|
+
test/ API、浏览器、文档、视觉及完整性测试
|
|
97
|
+
plan/ 批次计划与完成记录
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## 本地运行
|
|
101
|
+
|
|
102
|
+
```powershell
|
|
103
|
+
npm install
|
|
104
|
+
npm run check
|
|
105
|
+
npm run build
|
|
106
|
+
npm run build:demo
|
|
107
|
+
npm run serve
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
默认静态服务地址为 `http://127.0.0.1:6633`。服务监听 `0.0.0.0`,可通过服务器 IP 从外部访问。
|
|
111
|
+
|
|
112
|
+
`npm run test:quality` 是统一质量门,覆盖类型、正式构建、公共 API、浏览器路由、组件文档、视觉证据与完整性。质量门还会锁定 HarmonyOS 7 的白+浅蓝主题,并按文件阻止新增渐变、毛玻璃、超限圆角、阴影和组件文档裸色值;现有功能性视觉与历史样式只允许逐步减少,不允许数量反弹或转移到其他文件。
|
|
113
|
+
|
|
114
|
+
可单独执行以下视觉规范检查:
|
|
115
|
+
|
|
116
|
+
```powershell
|
|
117
|
+
npm run test:theme-contract
|
|
118
|
+
npm run test:ui-quality-gate
|
|
119
|
+
npm run test:ui-quality-gate:self-test
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
展示页由 esbuild 正式构建,并由项目内 Node 静态服务托管,不使用 Vite。
|
|
123
|
+
|
|
124
|
+
## 部署预览页
|
|
125
|
+
|
|
126
|
+
执行以下命令生成可直接上传服务器的部署目录:
|
|
127
|
+
|
|
128
|
+
```powershell
|
|
129
|
+
npm run build:preview
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
将生成的 `preview-deploy/` 整个上传到服务器。服务器只需安装 Node.js 18 或更高版本,不需要上传源码、`node_modules/`、测试、计划、备份或开发依赖,也不需要执行 `npm install`。
|
|
133
|
+
|
|
134
|
+
在服务器的 `preview-deploy/` 目录中启动:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
npm start
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
默认监听 `0.0.0.0:6633`,请同时在服务器防火墙或云安全组放行 TCP 6633。需要守护进程时,可使用服务器已有的 systemd、Supervisor 或 PM2 托管 `npm start`。
|
|
141
|
+
|
|
142
|
+
展示页提供概览、组件、组合模式、页面模板、设计与资源入口。组件通过分类、全局搜索和卡片浏览发现;安装说明集中在资源页,主题说明集中在设计页。
|
|
143
|
+
|
|
144
|
+
核心组件详情支持可复制 URL,例如 `/components/button`;成品页支持 `/templates/dashboard`、`/templates/onboarding` 与 `/templates/insights` 全屏预览。全屏预览可实时切换主题色、界面密度以及桌面、平板和移动视口。
|
|
145
|
+
|
|
146
|
+
## 发布状态与下一步
|
|
147
|
+
|
|
148
|
+
正式 npm 包名为 `@hxdhxd/harmony-flow-ui`,当前版本为 `0.1.1`。后续建议在每次发布前更新版本号、运行完整质量门,并在 GitHub 创建对应 Release 或维护变更日志。
|
|
149
|
+
|
|
150
|
+
本项目采用 [MIT License](./LICENSE),允许免费用于个人和商业项目;再分发时须保留原许可证和版权声明。
|
|
151
|
+
|
|
152
|
+
## 在其他项目中使用
|
|
153
|
+
|
|
154
|
+
### 环境要求
|
|
155
|
+
|
|
156
|
+
- Node.js 18 或更高版本
|
|
157
|
+
- React 18 或更高版本
|
|
158
|
+
- React DOM 18 或更高版本
|
|
159
|
+
|
|
160
|
+
### npm 正式安装
|
|
161
|
+
|
|
162
|
+
在目标 React 项目中执行:
|
|
163
|
+
|
|
164
|
+
```powershell
|
|
165
|
+
npm install @hxdhxd/harmony-flow-ui
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
如果目标项目还没有 React:
|
|
169
|
+
|
|
170
|
+
```powershell
|
|
171
|
+
npm install react react-dom @hxdhxd/harmony-flow-ui
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
在应用入口导入一次全局样式,然后直接使用组件:
|
|
175
|
+
|
|
176
|
+
```tsx
|
|
177
|
+
import { Button, ThemeProvider } from '@hxdhxd/harmony-flow-ui';
|
|
178
|
+
import '@hxdhxd/harmony-flow-ui/style.css';
|
|
179
|
+
|
|
180
|
+
export default function App() {
|
|
181
|
+
return (
|
|
182
|
+
<ThemeProvider tokens={{ colorPrimary: '#0a7cff' }}>
|
|
183
|
+
<Button onClick={() => console.log('saved')}>保存更改</Button>
|
|
184
|
+
</ThemeProvider>
|
|
185
|
+
);
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
`ThemeProvider` 建议放在应用根部。主题覆盖支持颜色、形状、阴影与动效语义令牌。新代码优先使用 `radiusControl`、`radiusPanel`、`radiusOverlay`、`shadowPopover` 与 `shadowModal`;`radiusMd`、`radiusLg`、`shadowElevated` 仅为现有消费者保留,后续版本将逐步迁移。
|
|
190
|
+
|
|
191
|
+
默认主题继续遵循 HarmonyOS 7 的白色内容面、浅蓝窗口背景、鸿蒙蓝主强调色与深蓝正文。形状和深度令牌建议按语义覆盖,而不是为单个组件写死圆角或阴影。
|
|
192
|
+
|
|
193
|
+
### Next.js App Router
|
|
194
|
+
|
|
195
|
+
在 `app/layout.tsx` 中导入全局样式,并通过客户端组件挂载主题:
|
|
196
|
+
|
|
197
|
+
```tsx
|
|
198
|
+
// app/providers.tsx
|
|
199
|
+
'use client';
|
|
200
|
+
|
|
201
|
+
import { ThemeProvider } from '@hxdhxd/harmony-flow-ui';
|
|
202
|
+
|
|
203
|
+
export function Providers({ children }: { children: React.ReactNode }) {
|
|
204
|
+
return <ThemeProvider>{children}</ThemeProvider>;
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
```tsx
|
|
209
|
+
// app/layout.tsx
|
|
210
|
+
import '@hxdhxd/harmony-flow-ui/style.css';
|
|
211
|
+
import { Providers } from './providers';
|
|
212
|
+
|
|
213
|
+
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
|
214
|
+
return (
|
|
215
|
+
<html lang="zh-CN">
|
|
216
|
+
<body><Providers>{children}</Providers></body>
|
|
217
|
+
</html>
|
|
218
|
+
);
|
|
219
|
+
}
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### 在其他项目中安装本地构建包
|
|
223
|
+
|
|
224
|
+
先在本仓库生成经过验证的 npm 压缩包:
|
|
225
|
+
|
|
226
|
+
```powershell
|
|
227
|
+
npm run test:package
|
|
228
|
+
npm pack
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
然后在目标项目中安装生成的 `.tgz` 文件(请替换为实际路径和文件名):
|
|
232
|
+
|
|
233
|
+
```powershell
|
|
234
|
+
npm install "D:\path\to\harmony-flow-ui-0.1.1.tgz"
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
安装后仍按正式 npm 包的方式从 `@hxdhxd/harmony-flow-ui` 导入。当前不建议直接通过 GitHub URL 安装,因为仓库不提交 `dist/`,Git 依赖安装流程无法保证生成完整发布产物。
|
|
238
|
+
|
|
239
|
+
### 更新版本
|
|
240
|
+
|
|
241
|
+
在目标项目中更新到最新版:
|
|
242
|
+
|
|
243
|
+
```powershell
|
|
244
|
+
npm install @hxdhxd/harmony-flow-ui@latest
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
## 构建产物
|
|
248
|
+
|
|
249
|
+
执行 `npm run build` 后,`dist/` 将包含:
|
|
250
|
+
|
|
251
|
+
- `index.js`:ESM 入口
|
|
252
|
+
- `index.cjs`:CommonJS 入口
|
|
253
|
+
- `index.d.ts` / `index.d.cts`:类型声明
|
|
254
|
+
- `index.css`:组件样式
|
|
255
|
+
|
|
256
|
+
## 发布
|
|
257
|
+
|
|
258
|
+
包名使用当前 npm 账号的个人 scope `@hxdhxd`。发布账号必须拥有该 scope,并登录 npm 官方注册表:
|
|
259
|
+
|
|
260
|
+
```powershell
|
|
261
|
+
npm login --registry=https://registry.npmjs.org/
|
|
262
|
+
npm whoami --registry=https://registry.npmjs.org/
|
|
263
|
+
npm view @hxdhxd/harmony-flow-ui --registry=https://registry.npmjs.org/
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
发布前可在本地验证实际 tarball 内容:
|
|
267
|
+
|
|
268
|
+
```powershell
|
|
269
|
+
npm run build
|
|
270
|
+
npm run test:package
|
|
271
|
+
npm pack
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
正式发布:
|
|
275
|
+
|
|
276
|
+
```powershell
|
|
277
|
+
npm publish --access public --registry=https://registry.npmjs.org/
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
发布完成后验证注册表中的版本:
|
|
281
|
+
|
|
282
|
+
```powershell
|
|
283
|
+
npm view @hxdhxd/harmony-flow-ui version --registry=https://registry.npmjs.org/
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
`npm publish` 会先执行完整质量门;`prepack` 会重新检查类型、构建 ESM/CJS/CSS/类型声明,并验证发布包只包含 README、LICENSE、package.json 和 `dist/`。
|
|
287
|
+
|
|
288
|
+
## 视频交互扩充第二批(0.2.0)
|
|
289
|
+
|
|
290
|
+
新增 `ProductTour` 分步高亮导览、`LegendFilter` 交互图例、`RangeBrush` 双端点区间刷选、`ExpandablePanel` 可展开内容面板。原有 API 保持兼容,不新增依赖。区间滑块实时请求更新,不支持选区整体平移;导览不代替业务完成状态。
|
|
291
|
+
|
|
292
|
+
无删除构建:`node test/build-douyin.mjs --batch2`,产物位于 `build/douyin-20260902-02`;通过原有 Node 服务预览(不使用 Vite)。执行与验收记录见 `plan/development/douyin-20260902-02/执行与验收.md`。
|
|
293
|
+
|
|
294
|
+
## 视频交互扩充第三批(0.2.0)
|
|
295
|
+
|
|
296
|
+
第三批本地扩充新增 `HotspotGuide` 热点提示、`ChartCrosshair` 单序列逐点读数和 `DrilldownChart` 层级条形数据下钻。使用 `node test/build-douyin.mjs --batch3` 无删除构建,产物位于 `build/douyin-20260902-03`。验收及范围见 `plan/development/douyin-20260902-03/执行与验收.md`。纳入0.2.0。
|
|
297
|
+
|
|
298
|
+
## 视频交互扩充第四批(0.2.0)
|
|
299
|
+
|
|
300
|
+
第四批增强已有 `KanbanBoard` 的指针/触摸/键盘跨列移动、取消和跨实例隔离,保持原有公开接口;新增 `ZoomableChart`,组合逐点读数与区间筛选提供放大、缩小、平移及还原。无删除构建:`node test/build-douyin.mjs --batch4`,产物 `build/douyin-20260902-04`,记录 `plan/development/douyin-20260902-04/执行与验收.md`。纳入0.2.0。
|
|
301
|
+
|
|
302
|
+
## 导航组件
|
|
303
|
+
|
|
304
|
+
导航模块包含 `FloatingNav`、`Sidebar`、`Breadcrumb`、`DropdownMenu`、`MegaMenu`、`MobileNavigation`、`Scrollspy` 与 `ShrinkNav`。`MobileNavigation` 通过 `mode="drawer | fullscreen"` 覆盖汉堡抽屉和全屏导航。
|
|
305
|
+
|
|
306
|
+
所有导航组件共享 `NavigationItem`,业务选择事件统一为 `onItemSelect(item)`;该命名刻意避开 React 原生 DOM 的 `onSelect` 事件。
|
|
307
|
+
|
|
308
|
+
## 视频交互扩充第八批(0.2.0)
|
|
309
|
+
|
|
310
|
+
新增 `ReadingProgress` 阅读进度,支持整页与独立滚动容器,自动响应内容与尺寸变化。表示滚动位置,不记录已读或业务完成度;不可滚动内容显示100%,未挂载目标显示0%。沿用现有主题,无新依赖。
|
|
311
|
+
|
|
312
|
+
无删除构建:`node test/build-douyin-batch8.mjs`;行为与旧组件像素回归:`python test/verify-douyin-batch8.py`。记录见 `plan/development/douyin-20260905-08/执行与验收.md`。
|