@gyyxds/zy-ui 0.0.2 → 0.0.3
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/CHANGELOG.md +11 -0
- package/CONTRIBUTING.md +13 -6
- package/LICENSE +21 -0
- package/README.md +131 -105
- package/dist/zy-ui/index.d.ts +16 -0
- package/dist/zy-ui/mega-menu/ZyMegaMenu.vue.d.ts +8 -0
- package/dist/zy-ui/mega-menu/index.d.ts +16 -0
- package/dist/zy-ui/themes/basic.css +7 -2
- package/dist/zy-ui/themes/material.css +4 -0
- package/dist/zy-ui/themes/solid.css +665 -664
- package/dist/zy-ui/zy-ui.css +1 -1
- package/dist/zy-ui/zy-ui.js +239 -212
- package/package.json +6 -7
package/CHANGELOG.md
CHANGED
|
@@ -2,7 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
- **站点瘦身:回归组件库与组件文档本身**。移除动效页(`/animations`)、效果详情页、收藏页与 `src/effects/**` 片段体系,连同 `mocks/families.ts` / `mocks/catalog.ts` / favorites store / `PreviewHost` / `GlassCard` / `GlassButton` / `FilterChip` 一并删除;旧地址与未知路由统一回落首页。组件库公共 API 不变。
|
|
6
|
+
- **首页改为展示设计方案**:`/` 现在按「两根轴 → 四种组合 → 两套色板 → 设计原则 → 判据 → 落地清单」展示 `docs/theme` 的方案;四种组合可点击切换整站材质与光照。色板与文案的单一事实源迁到 `src/mocks/theme-design.ts`,四张展示板读同一份数据。
|
|
7
|
+
- 校验脚本收敛:`check:registry` 只校验组件注册表 ↔ 实现文件、`COMPONENT_TOTAL` 与 `--zy-*` 令牌完整性;移除 `check:snippets` 与 `sync:scoped`(片段体系已下线),CI 同步。
|
|
8
|
+
- **首页改用四张背景图**:`basic` / `solid` × 浅色 / 深色各一张 `1920 × 1200` PNG(`src/assets/backgrounds/`),按主题切换铺满视口,代替原来的页面渐变;左上阅读区保持近纯色,图纸的弧线 / 网格与键帽的挤出体只压在页边,生成脚本为 `scripts/gen_home_backgrounds.py`。
|
|
9
|
+
- 修复 `ZyMegaMenu` 在实色主题下一级选中与悬停不一致的问题:悬停、选中、展开统一为同一枚凸起的品牌键(不使用内凹槽,也不再为展开单独按下),开合只由箭头方向表示;图纸主题原本就是浅底常亮,行为不变。
|
|
10
|
+
- **顶栏导航改为胶囊滑行**:四个栏目不再铺轨道,选中胶囊直接浮在顶栏上,复用 `ZyRadioGroup` 分段按钮组的 400ms 回弹曲线与 320ms 品牌光晕;顶栏移到路由外,切栏目时不再重建,胶囊从上一格滑过去,同栏目内换组件页不闪。深色胶囊 / 字色另调,当前栏目补 `aria-current="page"`。
|
|
11
|
+
- **站点品牌文案统一为「智云UI」**:顶栏、页面标题、页脚、关于页、MegaMenu 示例与主题展示板里的 MotionVault 字样全部替换。主题存储键(`motionvault-theme` / `motionvault-zy-theme`)与仓库路径保持不变,避免已有访客的主题选择丢失。
|
|
12
|
+
- **主题页改为当前实现的真实演示**:`/theme` 用材质 / 光照两根轴的开关、9 颗真实 `ZyButton`(press / sweep / fill)、4 个材质验收样本(`raised`、`fill`、`hover-fill`)和品牌色 / 圆角令牌覆盖,替换原先手写按钮与站点变量样板;覆盖片段含深浅两档与悬停 / 按下派生令牌,可一键复制。
|
|
13
|
+
- 修正 README / AGENTS 的深色换肤示例:`html.dark` 的权重低于 `dark.css` 的 `html.dark[data-zy-theme]`,示例改用 `html.dark[data-zy-theme]` 并注明加载顺序。
|
|
14
|
+
- 文档更新:README / AGENTS / CONTRIBUTING / `docs/theme/README.md` / `dark-mode-design.md` 按新范围重写;删除已过时的 `docs/SPEC.md`。
|
|
5
15
|
- `ZyMegaMenu` 面板里的二级菜单在没有 `desc`(描述行)时,图标与名称改为垂直居中,行高由 56.5 收到 36(图标 30 → 24、上内距 9 → 6);有描述时排版不变。
|
|
16
|
+
- `ZyMegaMenu` 新增选中态 `active`(一级项 key)/ `activeLink`(二级链接标题):选中项沿用悬停那套底色常亮,一级和二级都不再随指针离开或面板收起消失;不传这两个 prop 时点击链接自动记下,并回传 `update:active` / `update:activeLink`。
|
|
6
17
|
- `ZyTag` 的 `effect="fill"` 与 `ZyButton` 对齐:图纸主题里没有实色键帽这一档,切到图纸时自动退回 Element 的浅底标签;组件页的「实色标签」舞台同样只在键帽主题下出现。
|
|
7
18
|
- 修复 `ZyTag` 在 `effect="fill"` + `closable` 时关闭图标与实色面同色、默认看不见的问题:关闭图标改跟标签字色(`--el-tag-text-color`),悬停不再被 Element 强制成「白图标 + type 色圆底」,改为压暗到挤出底座色,键盘焦点环也跟着字色走。
|
|
8
19
|
- 发布流程补前置体检:`npm run release` 现在先跑 `scripts/check-release-env.mjs`,检查 registry、账号登录、该版本是否已发布、有无待发 changeset;不通过直接退出并给出补法(原来要先跑完 40 秒构建,再在 `changeset publish` 上撞 `ENEEDAUTH`)。同时把 `.changeset/config.json` 的 `access` 从 `restricted` 改回 `public`,与 `package.json` 的 `publishConfig` 对齐。
|
package/CONTRIBUTING.md
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
## 先判断产物类型
|
|
4
4
|
|
|
5
|
-
- 有 props / events / slots,供业务项目 `import
|
|
6
|
-
-
|
|
7
|
-
-
|
|
5
|
+
- 有 props / events / slots,供业务项目 `import`:组件(`src/zy/`)。
|
|
6
|
+
- 组件的用法与设计依据:文档页(`src/views/`、`src/mocks/`)与设计规范(`docs/theme/`)。
|
|
7
|
+
- 动效片段体系已于 2026-10 下线;组件内的 `effect` 微动效属于组件 API,不单独建产物。
|
|
8
8
|
|
|
9
|
-
组件库改造规范见 [docs/ui-library-refactor-spec.md](docs/ui-library-refactor-spec.md)。
|
|
9
|
+
组件库改造规范见 [docs/ui-library-refactor-spec.md](docs/ui-library-refactor-spec.md),主题设计见 [docs/theme/README.md](docs/theme/README.md)。
|
|
10
10
|
|
|
11
11
|
## 本地开发
|
|
12
12
|
|
|
@@ -34,6 +34,14 @@ npm run dev
|
|
|
34
34
|
7. 视觉基线更新并经过人工审核。
|
|
35
35
|
8. README / 规范中的组件数量和说明同步。
|
|
36
36
|
|
|
37
|
+
## 新增或修改设计 / 首页
|
|
38
|
+
|
|
39
|
+
1. 主题名、立场、两档色板、材质解剖、原则与判据改 `src/mocks/theme-design.ts` —— 首页 `/` 与四张展示板共用这一份,不要在两处各写一份。
|
|
40
|
+
2. 令牌改 `src/zy/styles/tokens/`,材质改 `src/zy/styles/themes/`;主题层只消费 `--zy-*`。
|
|
41
|
+
3. 同步 `docs/theme/README.md`(推导与数值)并跑 `node docs/theme/tools/contrast.mjs`。
|
|
42
|
+
4. 首页结构改 `src/views/HomeView.vue`,保持「两根轴 → 四种组合 → 两套色板 → 原则 → 判据/落地」的信息顺序。
|
|
43
|
+
5. 视觉有变化时先人工确认,再 `npm run check:visual:update`。
|
|
44
|
+
|
|
37
45
|
## 主题约束
|
|
38
46
|
|
|
39
47
|
- 主题属性:`html[data-zy-theme="basic|solid"]`。
|
|
@@ -41,13 +49,12 @@ npm run dev
|
|
|
41
49
|
- 组件优先消费 `--zy-*` 语义令牌。
|
|
42
50
|
- 主题层不得引用展示板专用类名或站点专属变量。
|
|
43
51
|
- 不得依赖组件内部 `.el-*` 子结构作为公共 API。
|
|
44
|
-
-
|
|
52
|
+
- 深浅色在当前材质内切换(`solid` 深色 = 「键帽 · 夜」),不要回退到另一套材质,也不要在深色中叠加 `solid` 材质。
|
|
45
53
|
|
|
46
54
|
## 提交前验证
|
|
47
55
|
|
|
48
56
|
```bash
|
|
49
57
|
npm run check:registry
|
|
50
|
-
npm run check:snippets
|
|
51
58
|
npm run lint
|
|
52
59
|
npm run test
|
|
53
60
|
npm run build
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 @gyyxds/zy-ui contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
# Zy UI 组件库 ·
|
|
1
|
+
# Zy UI 组件库 · 智云UI
|
|
2
2
|
|
|
3
|
-
基于 **Vue 3 + TypeScript + Vite** 的 Element Plus
|
|
3
|
+
基于 **Vue 3 + TypeScript + Vite** 的 Element Plus 二次封装组件库,配套一套**组件文档 + 设计规范站**(智云UI)。
|
|
4
|
+
|
|
5
|
+
组件带 props / 事件 / 插槽,随包发布;文档站与展示板不发布,它们是这套组件的用法说明与设计依据。
|
|
4
6
|
|
|
5
7
|
| 属性 | 说明 |
|
|
6
8
|
| --- | --- |
|
|
@@ -9,21 +11,25 @@
|
|
|
9
11
|
| 构建工具 | Vite 8(库模式)+ vue-tsc |
|
|
10
12
|
| 模块格式 | 仅 ESM(`"type": "module"`),无 CJS 产物 |
|
|
11
13
|
| 组件数 | 28 |
|
|
12
|
-
|
|
|
13
|
-
|
|
14
|
-
## 先说清楚:两套产物,别混
|
|
14
|
+
| 设计主题 | 2 套材质(图纸 / 键帽)× 2 档光照(浅 / 深) |
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
> 它们没有 npm 导出路径、不进 `dist/zy-ui`、也不能 `import`;正确用法是在文档站复制三栏代码,粘到自己页面里跑。
|
|
16
|
+
## 仓库里有什么
|
|
18
17
|
|
|
19
|
-
| | 组件库(`src/zy/`) |
|
|
18
|
+
| | 组件库(`src/zy/`) | 文档与设计站(`src/views/`、`docs/theme/`) |
|
|
20
19
|
| --- | --- | --- |
|
|
21
|
-
| 是什么 | 有 props / 事件 / 插槽的 Vue 组件 |
|
|
22
|
-
| 怎么用 | `npm i @gyyxds/zy-ui` 后 `import` |
|
|
23
|
-
|
|
|
24
|
-
|
|
20
|
+
| 是什么 | 有 props / 事件 / 插槽的 Vue 组件 | 组件的用法文档 + 两套材质的设计方案 |
|
|
21
|
+
| 怎么用 | `npm i @gyyxds/zy-ui` 后 `import` | 浏览器打开站点;设计推导见 `docs/theme/` |
|
|
22
|
+
| 是否发布 | 进 lib 构建(`dist/zy-ui/`) | 不进包,只作为站点与设计资料 |
|
|
23
|
+
|
|
24
|
+
> 2026-10 站点瘦身:动效页(`/animations`)、收藏页(`/favorites`)与片段体系已下线,仓库回归「组件库 + 组件文档 + 设计规范」。
|
|
25
|
+
> 组件自带的 `effect` 微动效(按压缩放、色块扫入、实色键帽等)仍在组件库内,属于组件 API 的一部分。
|
|
25
26
|
|
|
26
|
-
|
|
27
|
+
站点产物与库产物分开放:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
dist/site/ # 文档站(npm run build)
|
|
31
|
+
dist/zy-ui/ # 组件库(npm run build:lib,进包)
|
|
32
|
+
```
|
|
27
33
|
|
|
28
34
|
## 功能特性
|
|
29
35
|
|
|
@@ -31,16 +37,18 @@
|
|
|
31
37
|
- 多个组件带一组 `effect` 微动效:按钮 `press` / `sweep` / `fill`,输入框 `underline` / `gradient` / `brutalist`,选择器 `underline` / `gradient` …
|
|
32
38
|
- 两套材质主题 × 深浅两档,四组配色互不回退:图纸(`basic`)与实色键帽(`solid`)
|
|
33
39
|
- 设计令牌随包发布(`--zy-*`),覆盖语义令牌即可换肤,无需改组件代码
|
|
34
|
-
-
|
|
35
|
-
-
|
|
40
|
+
- 首页是设计方案本身:两根正交的轴、四种组合、两套色板、原则与判据;点色卡即可切换整站主题
|
|
41
|
+
- TypeScript 类型声明随包发布;ESLint 0 警告门槛、Vitest 单测、消费方冒烟检查与视觉回归
|
|
36
42
|
|
|
37
43
|
## 组件列表(28 个)
|
|
38
44
|
|
|
45
|
+
分类与文档站一致(`src/mocks/element-components.ts`)。
|
|
46
|
+
|
|
39
47
|
### 基础(3)
|
|
40
48
|
|
|
41
49
|
| 组件 | 说明 |
|
|
42
50
|
| --- | --- |
|
|
43
|
-
| `ZyButton` | `type` / `plain` / `round` / `dashed` / `circle` 对齐 Element。`effect`:`press`(按压缩放,默认)/ `sweep`(左侧图标块 + 色块扫入)/ `fill`(实色键帽 +
|
|
51
|
+
| `ZyButton` | `type` / `plain` / `round` / `dashed` / `circle` 对齐 Element。`effect`:`press`(按压缩放,默认)/ `sweep`(左侧图标块 + 色块扫入)/ `fill`(实色键帽 + 悬停中心扩散,**仅键帽主题**,图纸主题下自动按 `press` 渲染) |
|
|
44
52
|
| `ZyIcon` | 内置 SVG 图标,`name` 取 `src/assets/icons/` 的文件名(如 `btn-search`);`size` / `label` / `spin` |
|
|
45
53
|
| `ZyLoading` | 纯 div + CSS,不基于 Element。`type`:`dots` 点环 / `line` 心电描线 / `text` 故障字 / `bar` 跳球柱形;`color` / `speed` / `width` / `height` / `label` |
|
|
46
54
|
|
|
@@ -48,13 +56,13 @@
|
|
|
48
56
|
|
|
49
57
|
| 组件 | 说明 |
|
|
50
58
|
| --- | --- |
|
|
51
|
-
| `ZyInput` | `effect`:`focus
|
|
52
|
-
| `ZyCodeInput` | 验证码输入。`length` / `status`(idle / error / success)/ `size` / `mask` / `caret` / `disabled
|
|
59
|
+
| `ZyInput` | `effect`:`focus`(默认,描边转主色)/ `underline`(下划线扫过)/ `gradient`(渐变边)/ `brutalist`;另有 `label` 浮动标签、`raised` 键帽凸起形态 |
|
|
60
|
+
| `ZyCodeInput` | 验证码输入。`length` / `status`(idle / error / success)/ `size` / `mask` / `caret` / `disabled`;`v-model` + `complete` 事件 |
|
|
53
61
|
| `ZySelect` | `effect`:`focus` / `underline` / `gradient`;其余 API 照 Element |
|
|
54
62
|
| `ZyCheckbox` / `ZyCheckboxGroup` | `effect`:`''` / `checkmark` / `tick`;Group 用 `v-model` 收集选中值 |
|
|
55
63
|
| `ZySwitch` | 自研全息开关(不基于 Element):扫描线 / 粒子 / 三环自转;`v-model` + `activeText` / `inactiveText` / `label` / `disabled` |
|
|
56
64
|
| `ZyRadio` / `ZyRadioGroup` / `ZyRadioButton` | 选中态辉光圆点 + 过冲弹跳;`effect`:`''` / `underline` |
|
|
57
|
-
| `ZySlideVerify` |
|
|
65
|
+
| `ZySlideVerify` | 滑块拼图验证(内置插画底图《缺口光谱》)。`gap` / `tolerance` / `image` / `darkImage` / `showRefresh` 与各档文案;事件:成功 / 失败 / 刷新 |
|
|
58
66
|
| `ZyDatePicker` / `ZyTimePicker` | 触发框与弹层形态重绘,API 照 Element |
|
|
59
67
|
|
|
60
68
|
### 数据(7)
|
|
@@ -62,12 +70,12 @@
|
|
|
62
70
|
| 组件 | 说明 |
|
|
63
71
|
| --- | --- |
|
|
64
72
|
| `ZyCard` | `shadow`(always / hover / never)、`hoverFill`(悬停铺色,可传颜色) |
|
|
65
|
-
| `ZyTag` | `effect`:`dark` / `light`(默认)/ `plain` / `fill
|
|
73
|
+
| `ZyTag` | `effect`:`dark` / `light`(默认)/ `plain` / `fill`(实色键帽,**仅键帽主题**;图纸主题下自动退回浅底;`closable` 时关闭图标跟标签字色) |
|
|
66
74
|
| `ZyBadge` | 等宽数字不跳宽;`effect`:`''` / `ping`(扩散圈) |
|
|
67
|
-
| `ZyProgress` | 轨道 +
|
|
75
|
+
| `ZyProgress` | 轨道 + 蓝→绿渐变填充 |
|
|
68
76
|
| `ZyTable` | 台账式表格,`lines`(all / row)控制网格线;数据与列走插槽 / Element 透传 |
|
|
69
77
|
| `ZyTree` | 引导线 + 折角接线 + 写实节点图标;`folderIcon` / `folderOpenIcon` / `fileIcon` |
|
|
70
|
-
| `ZyPagination` | 纸面按钮 /
|
|
78
|
+
| `ZyPagination` | 纸面按钮 / 中性键帽页码,跳页输入框 |
|
|
71
79
|
|
|
72
80
|
### 反馈(2)
|
|
73
81
|
|
|
@@ -85,22 +93,49 @@
|
|
|
85
93
|
| `ZyPanel` | 通用容器:有 `title` 分标题栏 + 正文,无 `title` 通体白面 |
|
|
86
94
|
| `ZyMegaMenu` | 数据驱动导航:`items`(有 `panel` = 下拉,无 `panel` + `href` = 普通链接)、`brand`;受控开合 `v-model:open`;`#panel-<key>` 接管面板内容 |
|
|
87
95
|
|
|
88
|
-
##
|
|
96
|
+
## 设计系统:两套语言 × 两档光照
|
|
89
97
|
|
|
90
|
-
|
|
91
|
-
- 每个片段一个目录,三件套 + 一份配置:
|
|
98
|
+
站点首页(`/`)展示的就是这套方案,数据源在 `src/mocks/theme-design.ts`;完整推导、逐组件增量与对比度体检在 [`docs/theme/README.md`](docs/theme/README.md)。
|
|
92
99
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
meta.ts 舞台与文档配置:scale / doc(棋盘底等可选字段)
|
|
100
|
-
```
|
|
100
|
+
### 两根正交的轴
|
|
101
|
+
|
|
102
|
+
| 轴 | 根属性(设在 `<html>` 上) | 取值 | 默认 |
|
|
103
|
+
| --- | --- | --- | --- |
|
|
104
|
+
| 材质主题 | `data-zy-theme` | `basic`(图纸)/ `solid`(实色键帽) | `solid` |
|
|
105
|
+
| 光照 | `data-zy-color-scheme` + `html.dark` class | `light` / `dark` | `light` |
|
|
101
106
|
|
|
102
|
-
|
|
103
|
-
|
|
107
|
+
两轴自由组合:深浅色在**当前选中的材质**内切换,不会把 `solid` 折叠回 `basic`。
|
|
108
|
+
|
|
109
|
+
### 四种组合
|
|
110
|
+
|
|
111
|
+
| 组合 | 一句话 | 主要落点 |
|
|
112
|
+
| --- | --- | --- |
|
|
113
|
+
| A · 图纸 / 浅色 | 白纸 + 发丝线 + 6px 方角,一张纸压一张纸 | `src/zy/styles/themes/basic.css` |
|
|
114
|
+
| A · 图纸 / 深色 | 同一张纸,夜里开了一盏台灯:只换光,不加厚度 | `basic.css` §0.1 + `tokens/dark.css` |
|
|
115
|
+
| B · 键帽 / 浅色 | 白键摆在灰桌上:凸起靠底座,凹槽靠内阴影 | `src/zy/styles/themes/solid.css` |
|
|
116
|
+
| B · 键帽 / 深色 | 同一张桌关了顶灯:顶光收薄、落影加重,厚度一分不减 | `solid.css` §0.1 / §0.2 |
|
|
117
|
+
|
|
118
|
+
两套语言只换材质,不动寸法:同一组件在两套主题下的高度差为 0(键高走 `box-shadow`,不进盒模型)。
|
|
119
|
+
|
|
120
|
+
### 判据
|
|
121
|
+
|
|
122
|
+
1. 正文 ≥ 4.5:1、控件边界 ≥ 2.4:1、分层 ≥ 1.1:1。
|
|
123
|
+
2. 主题不得改变形状、尺寸、圆角与位移方向。
|
|
124
|
+
3. 深色只换光照:不给 A 加厚度,也不去掉 B 的白弧与底座。
|
|
125
|
+
4. 字色跟着面走:面亮配墨、面深配白;同一语义允许在两档里给不同答案。
|
|
126
|
+
|
|
127
|
+
`node docs/theme/tools/contrast.mjs` 会逐对验算这四张板的色板。
|
|
128
|
+
|
|
129
|
+
### 首页展示什么
|
|
130
|
+
|
|
131
|
+
| 区块 | 内容 |
|
|
132
|
+
| --- | --- |
|
|
133
|
+
| 抬头 | 两套语言的立场、两根轴、28 个组件 / 2 套材质 / 2 档光照 |
|
|
134
|
+
| 四种组合 | 2 × 2 卡片,点任意一格把整站切到那套材质与光照 |
|
|
135
|
+
| 两套色板 | A / B 各一段,浅色与深色并排印出令牌名、用途与实际值 |
|
|
136
|
+
| 设计原则 | 两条语言各自的层级、只换材质、两档光照、字色跟面走 |
|
|
137
|
+
| 判据 | 对比度与尺寸的硬门槛 |
|
|
138
|
+
| 落地 | 令牌、材质层、展示板与对比度工具的位置 |
|
|
104
139
|
|
|
105
140
|
## 安装使用
|
|
106
141
|
|
|
@@ -132,7 +167,9 @@ createApp(App).use(ElementPlus).mount('#app')
|
|
|
132
167
|
| `@gyyxds/zy-ui/theme/basic.css` | 主题 A「基础用法 / 图纸」材质层 |
|
|
133
168
|
| `@gyyxds/zy-ui/theme/solid.css` | 主题 B「实色键帽」材质层 |
|
|
134
169
|
|
|
135
|
-
|
|
170
|
+
两个主题 CSS 可同时引入,由根元素属性决定谁生效。
|
|
171
|
+
|
|
172
|
+
### 三种引入方式
|
|
136
173
|
|
|
137
174
|
```ts
|
|
138
175
|
// ① 全局注册
|
|
@@ -161,7 +198,7 @@ const keyword = ref('')
|
|
|
161
198
|
</template>
|
|
162
199
|
```
|
|
163
200
|
|
|
164
|
-
|
|
201
|
+
### 使用约定
|
|
165
202
|
|
|
166
203
|
- 未显式声明的 Element props / 事件按 Vue 的 attribute 透传,落到内部 `El*` 上。
|
|
167
204
|
- 具名插槽原样转发给内部 Element 组件(如 `<ZyButton><template #icon>…</template></ZyButton>`),默认插槽由各组件自己安排位置。
|
|
@@ -169,44 +206,39 @@ const keyword = ref('')
|
|
|
169
206
|
- 图标属性传字符串时按本库内置图标名解析(`ZyIcon` / `ZyTree` 等);`ZyButton` 的 `icon` 目前只在 `sweep` 下解析字符串,`press` / `fill` 请按 Element 规则传组件或走 `#icon` 插槽。
|
|
170
207
|
- 不要依赖组件内部 `.el-*` 子结构与内部类名:只有 props / 事件 / 插槽 / `--zy-*` 令牌是稳定契约。
|
|
171
208
|
|
|
172
|
-
##
|
|
173
|
-
|
|
174
|
-
主题与明暗是两根独立的轴,都设在 `<html>` 上:
|
|
209
|
+
## 主题与令牌
|
|
175
210
|
|
|
176
211
|
```html
|
|
177
212
|
<html data-zy-theme="solid" data-zy-color-scheme="light"></html>
|
|
178
213
|
```
|
|
179
214
|
|
|
180
|
-
| 轴 | 属性 | 取值 | 默认 |
|
|
181
|
-
| --- | --- | --- | --- |
|
|
182
|
-
| 材质主题 | `data-zy-theme` | `basic`(图纸)/ `solid`(实色键帽) | `solid` |
|
|
183
|
-
| 明暗 | `data-zy-color-scheme` + `html.dark` class | `light` / `dark` | `light` |
|
|
184
|
-
|
|
185
|
-
- 两套材质各有深浅两档,切换深浅不会把当前材质换成另一套。
|
|
186
215
|
- 业务侧开深色:给 `<html>` 加 `dark` class 即可(`data-zy-color-scheme` 是语义标记)。
|
|
187
|
-
-
|
|
188
|
-
|
|
189
|
-
两套材质说的是什么:
|
|
190
|
-
|
|
191
|
-
- **`basic` 基础用法(图纸)**:信息优先。纸白面 + 1px 发丝描边 + 极轻双层影,6px 方角;层级靠描边与留白,不靠厚度。
|
|
192
|
-
- **`solid` 实色键帽(实物)**:能按的件是凸的(实色面 + 深一档挤出边 + 两侧白弧 + 落地影),装东西的件是凹的(内阴影);按下必然下沉。只改材质,不改形状与尺寸。
|
|
193
|
-
|
|
194
|
-
换肤:覆盖语义令牌即可,不要动组件内部结构。
|
|
216
|
+
- 换肤覆盖语义令牌,不要动组件内部结构:
|
|
195
217
|
|
|
196
218
|
```css
|
|
219
|
+
/* 业务侧换肤:覆盖语义令牌 */
|
|
197
220
|
:root {
|
|
198
221
|
--zy-brand: #0066a9;
|
|
199
222
|
--zy-radius: 6px;
|
|
200
223
|
--zy-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
|
|
201
224
|
}
|
|
202
|
-
|
|
203
|
-
|
|
225
|
+
/* 深色选择器要与 dark.css 同权重,并让业务 CSS 晚于主题 CSS 加载 */
|
|
226
|
+
html.dark[data-zy-theme] {
|
|
227
|
+
--zy-brand: #5aa6e4;
|
|
204
228
|
}
|
|
205
229
|
```
|
|
206
230
|
|
|
207
|
-
|
|
231
|
+
`html.dark` 的权重低于 `dark.css` 里的 `html.dark[data-zy-theme='basic' | 'solid']`,单独写会被盖住;`html.dark[data-zy-theme]` 与它同级,后加载即可覆盖。
|
|
232
|
+
|
|
233
|
+
深色实心件另消费 `--zy-brand-key`(键面),悬停 / 按下走 `--zy-brand-deep` / `--zy-brand-active`;换整套品牌色时一并覆盖,`/theme` 页有可复制片段。
|
|
234
|
+
|
|
235
|
+
令牌分层固定:`primitives.css`(原始值)→ `semantic.css`(语义值,业务应覆盖这一层)→ `element.css`(Element Plus 映射)→ `dark.css`(深色覆盖)。
|
|
208
236
|
|
|
209
|
-
|
|
237
|
+
常用语义令牌:`--zy-brand` / `--zy-green` / `--zy-danger` / `--zy-warning` / `--zy-info`、`--zy-ink` / `--zy-muted` / `--zy-inverse`、`--zy-paper` / `--zy-surface` / `--zy-hairline`、`--zy-radius`(6px)/ `--zy-radius-sm`(4px)/ `--zy-radius-pill`(999px)、`--zy-shadow-card` / `--zy-shadow-float` / `--zy-focus-ring`、`--zy-duration-fast` / `--zy-duration-press`、`--zy-ease-out` / `--zy-ease-soft` / `--zy-ease-overshoot`、`--zy-font-sans`。
|
|
238
|
+
|
|
239
|
+
键帽主题额外有 `--zy-desk` / `--zy-slot-*` / `--zy-key-*`,只在该主题下定义。组件级微调优先用组件暴露的局部变量,如按钮 sweep/fill 的 `--zy-btn-sweep-clr` / `--zy-btn-fill-clr` / `--zy-btn-fill-hover-clr`。
|
|
240
|
+
|
|
241
|
+
## 本地开发
|
|
210
242
|
|
|
211
243
|
### 1. 安装依赖
|
|
212
244
|
|
|
@@ -215,7 +247,7 @@ npm install
|
|
|
215
247
|
# 或 yarn install --ignore-engines(@changesets/cli 要求 yarn ≥ 4.5,本机 yarn 1.x 需跳过引擎检查)
|
|
216
248
|
```
|
|
217
249
|
|
|
218
|
-
Node.js 需
|
|
250
|
+
Node.js 需 `^20.19` 或 `>= 22.12`(Vite 8 要求)。
|
|
219
251
|
|
|
220
252
|
### 2. 启动开发服务
|
|
221
253
|
|
|
@@ -223,7 +255,7 @@ Node.js 需 ≥ 20.19(Vite 8 要求)。
|
|
|
223
255
|
npm run dev
|
|
224
256
|
```
|
|
225
257
|
|
|
226
|
-
该命令会先跑 `check:registry`
|
|
258
|
+
该命令会先跑 `check:registry` 校验组件注册表,再启动 Vite(默认端口 **5173**,`host: true` 便于局域网访问)。
|
|
227
259
|
|
|
228
260
|
### 3. 访问文档站
|
|
229
261
|
|
|
@@ -231,87 +263,79 @@ npm run dev
|
|
|
231
263
|
|
|
232
264
|
| 路由 | 内容 |
|
|
233
265
|
| --- | --- |
|
|
234
|
-
|
|
|
235
|
-
| `/
|
|
266
|
+
| `/` | 首页:设计方案(两根轴、四种组合、两套色板、原则与判据) |
|
|
267
|
+
| `/components/:id` | 组件页:左树右文 + 舞台 + 可复制 SFC + API 属性表 |
|
|
268
|
+
| `/theme` | 主题实验室:材质 / 光照切换、真实组件验收、品牌色与圆角令牌覆盖 |
|
|
269
|
+
| `/about` | 关于:项目说明、使用授权、更新日志 |
|
|
270
|
+
|
|
271
|
+
首页背景是四张 `1920 × 1200` PNG:`basic` / `solid` 两套材质 × 浅色 / 深色两档,分别铺满视口;首页不再使用页面渐变。图片由 `scripts/gen_home_backgrounds.py` 生成,设计与构图说明见 `docs/theme/home-backgrounds.md`。
|
|
236
272
|
|
|
237
|
-
|
|
273
|
+
顶栏可切深浅;顶栏菜单是一枚直接浮在顶栏上的胶囊(不铺轨道),复用 `ZyRadioGroup` 分段按钮组的 400ms 回弹节奏,切栏目时胶囊从上一格滑过去,不再重建。材质与光照在首页的四种组合或 `/theme` 切换。`?theme=dark&zyTheme=basic` 之类的查询参数可固定主题,方便截图与分享。
|
|
274
|
+
|
|
275
|
+
旧地址 `/animations`、`/favorites` 与未知路由都会回到首页。
|
|
238
276
|
|
|
239
277
|
### 4. 常用命令
|
|
240
278
|
|
|
241
279
|
| 命令 | 作用 |
|
|
242
280
|
| --- | --- |
|
|
243
|
-
| `npm run dev` | 文档站(前置跑 registry
|
|
281
|
+
| `npm run dev` | 文档站(前置跑 registry 校验) |
|
|
244
282
|
| `npm run build` | 构建站点 → `dist/site/` |
|
|
245
283
|
| `npm run build:lib` | 构建可发布库 → `dist/zy-ui/`(只含 28 个组件) |
|
|
246
284
|
| `npm run lint` | ESLint 检查(0 警告门槛) |
|
|
247
285
|
| `npm run test` | Vitest 单元测试 |
|
|
248
|
-
| `npm run check:registry` |
|
|
249
|
-
| `npm run check:snippets` | 片段硬规则体检 + scoped 样式同步检查 |
|
|
286
|
+
| `npm run check:registry` | 组件注册表 ↔ 实现文件、站点组件数、令牌完整性 |
|
|
250
287
|
| `npm run check:package` | 校验包导出目标与 `npm pack` 文件清单 |
|
|
251
288
|
| `npm run check:consumer` | 用 `npm pack` 产物在空项目安装、类型检查并构建 |
|
|
252
289
|
| `npm run check:theme-runtime` | 主题运行时校验(需先启动站点) |
|
|
253
290
|
| `npm run check:visual` / `:update` | 视觉回归 / 审核通过后更新基线(需先启动站点) |
|
|
254
|
-
| `npm run sync:scoped` | 由 `snippet.css` 生成 `snippet.scoped.css` |
|
|
255
291
|
| `npm run check:release-env` | 发布前置体检:registry / 登录 / 版本 / 待发 changeset |
|
|
256
292
|
| `npm run changeset` | 记录一次待发布变更 |
|
|
257
293
|
| `npm run release` | 体检 → 构建 → `changeset publish` |
|
|
258
294
|
|
|
259
|
-
|
|
295
|
+
站点与库产物分开放(`dist/site` 与 `dist/zy-ui`),互不覆盖。
|
|
260
296
|
|
|
261
297
|
### 5. 业务项目直接引用本仓库(`file:` 依赖)
|
|
262
298
|
|
|
263
|
-
业务项目里写 `"@gyyxds/zy-ui": "file:../motion-vault-components"`
|
|
299
|
+
业务项目里写 `"@gyyxds/zy-ui": "file:../motion-vault-components"` 时,**不会**触发本仓库的构建(`prepublishOnly` 只在 `npm publish` 时跑),装的就是仓库里现成的 `dist/zy-ui`。所以改了组件后要手动重建一次:
|
|
264
300
|
|
|
265
301
|
```bash
|
|
266
302
|
# 本仓库:改了 src/zy 之后都要跑一遍(约 30 秒,跑完 lint / 测试再打更稳)
|
|
267
303
|
npm run build:lib
|
|
268
304
|
|
|
269
305
|
# 业务项目:file: 依赖是软链,重建后产物已经生效,下面这步一般不需要;
|
|
270
|
-
# 只有 package.json 的 exports /
|
|
306
|
+
# 只有 package.json 的 exports / 版本号变了才重装
|
|
271
307
|
npm install
|
|
272
308
|
```
|
|
273
309
|
|
|
274
|
-
验证是不是跑上了最新的:
|
|
275
|
-
|
|
276
|
-
```bash
|
|
277
|
-
# 1. 产物时间应该是刚才 build:lib 的时间(dist 被 .gitignore 忽略,但 file: 依赖照样读得到)
|
|
278
|
-
dir node_modules\@gyyxds\zy-ui\dist\zy-ui\zy-ui.js
|
|
279
|
-
|
|
280
|
-
# 2. 版本号与仓库 package.json 一致(现在是 0.0.1)
|
|
281
|
-
npm ls @gyyxds/zy-ui
|
|
282
|
-
|
|
283
|
-
# 3. 打开页面确认:控制台无报错,改动的样式 / 行为已生效
|
|
284
|
-
```
|
|
285
|
-
|
|
286
310
|
几条注意:
|
|
287
311
|
|
|
288
|
-
- `file:` 依赖是软链,`node_modules/@gyyxds/zy-ui`
|
|
289
|
-
- 业务项目的 dev server 会缓存 `node_modules/.vite`:重建后没变化就删掉它、重启 dev
|
|
312
|
+
- `file:` 依赖是软链,`node_modules/@gyyxds/zy-ui` 指向本仓库根目录;本仓库删掉 `dist` 后业务项目会立刻报「找不到入口」,重建就好。
|
|
313
|
+
- 业务项目的 dev server 会缓存 `node_modules/.vite`:重建后没变化就删掉它、重启 dev。
|
|
290
314
|
- 单页调试用 `npm run dev`(文档站)最快;`file:` 链路是给「在自己的业务页面里验证」用的。
|
|
291
315
|
- 样式三件套别漏:Element 样式 → `@gyyxds/zy-ui/style.css` → 一份主题 CSS(`theme/basic.css` 或 `theme/solid.css`)。
|
|
292
316
|
|
|
293
|
-
|
|
294
|
-
### 6. 收录新内容
|
|
317
|
+
### 6. 新增 / 更新内容
|
|
295
318
|
|
|
296
319
|
**新组件**
|
|
297
320
|
|
|
298
321
|
1. 实现放 `src/zy/<Name>/`(含 `index.ts`),并在 `src/zy/index.ts` 追加导出
|
|
299
|
-
2.
|
|
300
|
-
3.
|
|
322
|
+
2. 文档条目写进 `src/mocks/element-components.ts`(描述、完整 SFC、API 属性表;成族组件共用一页时给 `count`)
|
|
323
|
+
3. 同步 `src/mocks/components.ts` 的 `COMPONENT_TOTAL` 与 README / AGENTS 的组件数
|
|
324
|
+
4. `npm run check:registry` 会拦住「实现了没注册」「注册了不存在」与漏定义的 `--zy-*` 令牌
|
|
301
325
|
|
|
302
|
-
|
|
326
|
+
**改设计 / 主题**
|
|
303
327
|
|
|
304
|
-
1.
|
|
305
|
-
2.
|
|
306
|
-
3. `
|
|
307
|
-
4.
|
|
328
|
+
1. 色板与文案改 `src/mocks/theme-design.ts`(首页与四张展示板共用这一份)
|
|
329
|
+
2. 令牌改 `src/zy/styles/tokens/`,材质改 `src/zy/styles/themes/`
|
|
330
|
+
3. 同步 `docs/theme/README.md` 的推导与数值,跑 `node docs/theme/tools/contrast.mjs`
|
|
331
|
+
4. 视觉有变化时先人工确认,再 `npm run check:visual:update`
|
|
308
332
|
|
|
309
333
|
## 发布到 npm
|
|
310
334
|
|
|
311
335
|
包名 `@gyyxds/zy-ui`,发布地址固定 `https://registry.npmjs.org/`(`publishConfig` 已配 `access: public` + `registry`)。发布账号 **gyy-xds**(@gyyxds 组织),已开启 2FA。
|
|
312
336
|
|
|
313
337
|
```bash
|
|
314
|
-
# 1. 打包(前置自动跑 registry
|
|
338
|
+
# 1. 打包(前置自动跑 registry 校验 → vue-tsc → vite lib 构建 → check:package)
|
|
315
339
|
npm run build:lib
|
|
316
340
|
|
|
317
341
|
# 2. 登录 npm(须为 gyy-xds 或 @gyyxds 组织成员;浏览器完成认证)
|
|
@@ -343,27 +367,29 @@ src/zy/ # 组件库源码(只有这部分会进发布产物
|
|
|
343
367
|
│ └── themes/ # basic.css(图纸)/ solid.css(键帽)/ material.css
|
|
344
368
|
└── index.ts # 库入口:导出 + install
|
|
345
369
|
|
|
346
|
-
src/
|
|
347
|
-
src/
|
|
348
|
-
src/
|
|
349
|
-
src/
|
|
350
|
-
src/
|
|
351
|
-
scripts/ # 校验与构建脚本(registry /
|
|
370
|
+
src/views/ # 文档站页面:首页(设计方案)/ 组件页 / 主题页 / 关于
|
|
371
|
+
src/components/ # 站点自身组件(布局、舞台、代码面板、UI 小件)
|
|
372
|
+
src/mocks/ # 站点数据:组件元信息、设计方案、关于页内容
|
|
373
|
+
src/stores/ # Pinia:主题(材质 + 光照)
|
|
374
|
+
src/assets/styles/ # 站点外壳令牌与动效(不影响组件库)
|
|
375
|
+
scripts/ # 校验与构建脚本(registry / package / consumer / theme-runtime / visual)
|
|
352
376
|
tests/ # Vitest 单测 + 视觉回归基线
|
|
353
|
-
docs/
|
|
354
|
-
|
|
355
|
-
dist/site/ # 站点产物(npm run build)
|
|
356
|
-
dist/zy-ui/ # 库产物(npm run build:lib,进包)
|
|
377
|
+
docs/theme/ # 设计规范:两套语言、两档光照、四张展示板、对比度工具
|
|
357
378
|
```
|
|
358
379
|
|
|
359
380
|
## 浏览器支持
|
|
360
381
|
|
|
361
382
|
现代浏览器。样式用到 `color-mix()`、`:has()`、嵌套与 CSS 自定义属性,旧 WebView / IE 需先评估降级方案,详见 [浏览器支持](docs/browser-support.md)。
|
|
362
383
|
|
|
384
|
+
## 许可
|
|
385
|
+
|
|
386
|
+
MIT © 2026 @gyyxds/zy-ui contributors。可自由用于个人与商业项目,保留版权与许可声明即可分发;完整文本见 [LICENSE](LICENSE)。
|
|
387
|
+
|
|
363
388
|
## 团队协作
|
|
364
389
|
|
|
365
390
|
- [贡献规范](CONTRIBUTING.md)
|
|
366
|
-
- [
|
|
391
|
+
- [主题设计规范](docs/theme/README.md)
|
|
392
|
+
- [两档光照推导](docs/theme/dark-mode-design.md)
|
|
367
393
|
- [从 Element Plus 迁移](docs/migration-from-element.md)
|
|
368
394
|
- [改造规范与进度](docs/ui-library-refactor-spec.md)
|
|
369
395
|
- [发布检查清单](docs/release-checklist.md)
|
package/dist/zy-ui/index.d.ts
CHANGED
|
@@ -677,10 +677,14 @@ export declare const components: {
|
|
|
677
677
|
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<{
|
|
678
678
|
items?: import("./mega-menu").MegaMenuItem[];
|
|
679
679
|
open?: string | null;
|
|
680
|
+
active?: string | null;
|
|
681
|
+
activeLink?: string | null;
|
|
680
682
|
label?: string;
|
|
681
683
|
brand?: import("./mega-menu").MegaMenuBrand | null;
|
|
682
684
|
}> & Readonly<{
|
|
683
685
|
"onUpdate:open"?: ((value: string | null) => any) | undefined;
|
|
686
|
+
"onUpdate:active"?: ((value: string | null) => any) | undefined;
|
|
687
|
+
"onUpdate:activeLink"?: ((value: string | null) => any) | undefined;
|
|
684
688
|
onNavigate?: ((payload: {
|
|
685
689
|
item: import("./mega-menu").MegaMenuItem;
|
|
686
690
|
title: string;
|
|
@@ -689,6 +693,8 @@ export declare const components: {
|
|
|
689
693
|
}) => any) | undefined;
|
|
690
694
|
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
691
695
|
"update:open": (value: string | null) => any;
|
|
696
|
+
"update:active": (value: string | null) => any;
|
|
697
|
+
"update:activeLink": (value: string | null) => any;
|
|
692
698
|
navigate: (payload: {
|
|
693
699
|
item: import("./mega-menu").MegaMenuItem;
|
|
694
700
|
title: string;
|
|
@@ -709,10 +715,14 @@ export declare const components: {
|
|
|
709
715
|
}, Readonly<{
|
|
710
716
|
items?: import("./mega-menu").MegaMenuItem[];
|
|
711
717
|
open?: string | null;
|
|
718
|
+
active?: string | null;
|
|
719
|
+
activeLink?: string | null;
|
|
712
720
|
label?: string;
|
|
713
721
|
brand?: import("./mega-menu").MegaMenuBrand | null;
|
|
714
722
|
}> & Readonly<{
|
|
715
723
|
"onUpdate:open"?: ((value: string | null) => any) | undefined;
|
|
724
|
+
"onUpdate:active"?: ((value: string | null) => any) | undefined;
|
|
725
|
+
"onUpdate:activeLink"?: ((value: string | null) => any) | undefined;
|
|
716
726
|
onNavigate?: ((payload: {
|
|
717
727
|
item: import("./mega-menu").MegaMenuItem;
|
|
718
728
|
title: string;
|
|
@@ -730,10 +740,14 @@ export declare const components: {
|
|
|
730
740
|
} & import("vue").ComponentOptionsBase<Readonly<{
|
|
731
741
|
items?: import("./mega-menu").MegaMenuItem[];
|
|
732
742
|
open?: string | null;
|
|
743
|
+
active?: string | null;
|
|
744
|
+
activeLink?: string | null;
|
|
733
745
|
label?: string;
|
|
734
746
|
brand?: import("./mega-menu").MegaMenuBrand | null;
|
|
735
747
|
}> & Readonly<{
|
|
736
748
|
"onUpdate:open"?: ((value: string | null) => any) | undefined;
|
|
749
|
+
"onUpdate:active"?: ((value: string | null) => any) | undefined;
|
|
750
|
+
"onUpdate:activeLink"?: ((value: string | null) => any) | undefined;
|
|
737
751
|
onNavigate?: ((payload: {
|
|
738
752
|
item: import("./mega-menu").MegaMenuItem;
|
|
739
753
|
title: string;
|
|
@@ -742,6 +756,8 @@ export declare const components: {
|
|
|
742
756
|
}) => any) | undefined;
|
|
743
757
|
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
744
758
|
"update:open": (value: string | null) => any;
|
|
759
|
+
"update:active": (value: string | null) => any;
|
|
760
|
+
"update:activeLink": (value: string | null) => any;
|
|
745
761
|
navigate: (payload: {
|
|
746
762
|
item: import("./mega-menu").MegaMenuItem;
|
|
747
763
|
title: string;
|
|
@@ -4,6 +4,10 @@ type __VLS_Props = {
|
|
|
4
4
|
items?: MegaMenuItem[];
|
|
5
5
|
/** 受控展开项(v-model:open);不传则自己管 */
|
|
6
6
|
open?: string | null;
|
|
7
|
+
/** 当前选中的一级项 key:选中态常亮,不随面板开合消失;不传则点了自己记 */
|
|
8
|
+
active?: string | null;
|
|
9
|
+
/** 当前选中的二级链接标题(同一面板内唯一);不传则点了自己记 */
|
|
10
|
+
activeLink?: string | null;
|
|
7
11
|
/** 导航区的无障碍名称 */
|
|
8
12
|
label?: string;
|
|
9
13
|
/** 左侧品牌区(也可以整块用 #brand 插槽接管) */
|
|
@@ -21,6 +25,8 @@ type __VLS_Slots = {} & {
|
|
|
21
25
|
};
|
|
22
26
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
23
27
|
"update:open": (value: string | null) => any;
|
|
28
|
+
"update:active": (value: string | null) => any;
|
|
29
|
+
"update:activeLink": (value: string | null) => any;
|
|
24
30
|
navigate: (payload: {
|
|
25
31
|
item: MegaMenuItem;
|
|
26
32
|
title: string;
|
|
@@ -29,6 +35,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
29
35
|
}) => any;
|
|
30
36
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
31
37
|
"onUpdate:open"?: ((value: string | null) => any) | undefined;
|
|
38
|
+
"onUpdate:active"?: ((value: string | null) => any) | undefined;
|
|
39
|
+
"onUpdate:activeLink"?: ((value: string | null) => any) | undefined;
|
|
32
40
|
onNavigate?: ((payload: {
|
|
33
41
|
item: MegaMenuItem;
|
|
34
42
|
title: string;
|