@manohub/ui 0.10.2 → 0.10.4

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.
Files changed (54) hide show
  1. package/README.md +1 -1
  2. package/dist/components/badge/index.d.ts +46 -1
  3. package/dist/components/badge/index.js +42 -9
  4. package/dist/components/card/index.d.ts +1 -1
  5. package/dist/components/drawer/index.d.ts +1 -1
  6. package/dist/components/filter/index.d.ts +74 -6
  7. package/dist/components/filter/index.js +38 -10
  8. package/dist/components/form/index.d.ts +50 -1
  9. package/dist/components/form/index.js +20 -2
  10. package/dist/components/input/index.js +1 -0
  11. package/dist/components/nav/index.d.ts +27 -0
  12. package/dist/components/nav/index.js +12 -0
  13. package/dist/components/notice/index.d.ts +1 -1
  14. package/dist/components/notification/index.d.ts +2 -2
  15. package/dist/components/select/index.d.ts +9 -0
  16. package/dist/components/select/index.js +57 -12
  17. package/dist/components/select/select-list.d.ts +42 -8
  18. package/dist/components/select/select-list.js +36 -11
  19. package/dist/components/select/select-panel.d.ts +36 -8
  20. package/dist/components/select/select-panel.js +18 -4
  21. package/dist/components/select/select-shared.d.ts +51 -10
  22. package/dist/components/select/select-shared.js +12 -2
  23. package/dist/components/select/select-tree.d.ts +25 -3
  24. package/dist/components/select/select-tree.js +17 -6
  25. package/dist/components/select/select-trigger.d.ts +21 -0
  26. package/dist/components/select/select-trigger.js +15 -1
  27. package/dist/components/tabs/index.d.ts +22 -0
  28. package/dist/components/tabs/index.js +6 -0
  29. package/dist/components/tag/index.d.ts +32 -153
  30. package/dist/components/tag/index.js +102 -101
  31. package/dist/components/text/index.d.ts +1 -1
  32. package/dist/components/tooltip/index.d.ts +1 -1
  33. package/dist/components/tree/index.d.ts +65 -0
  34. package/dist/components/tree/index.js +29 -2
  35. package/dist/index.d.ts +2 -2
  36. package/dist/styles/components/avatar.css +2 -2
  37. package/dist/styles/components/badge.css +21 -1
  38. package/dist/styles/components/badge.tokens.css +24 -0
  39. package/dist/styles/components/button.css +7 -6
  40. package/dist/styles/components/button.tokens.css +5 -2
  41. package/dist/styles/components/capsule.css +8 -0
  42. package/dist/styles/components/divider.css +8 -4
  43. package/dist/styles/components/divider.tokens.css +2 -1
  44. package/dist/styles/components/form.css +51 -0
  45. package/dist/styles/components/notification.css +1 -1
  46. package/dist/styles/components/select.css +62 -39
  47. package/dist/styles/components/select.tokens.css +15 -8
  48. package/dist/styles/components/tag.css +77 -154
  49. package/dist/styles/components/tag.tokens.css +13 -22
  50. package/dist/styles/components/tree.css +37 -3
  51. package/dist/styles/components/tree.tokens.css +4 -3
  52. package/dist/styles/components/upload.tokens.css +1 -1
  53. package/dist/styles/index.css +2 -1
  54. package/package.json +2 -2
@@ -7,12 +7,17 @@
7
7
 
8
8
  /* ===== Tree(自建树:节点行 + 缩进 + 展开箭头 + 计数徽标位)=====
9
9
  几何与各态对齐 `@aihub/theme` 的 `components/tree.css` 与设计稿 `0:3921` 组织树实测:
10
- - 行高 34(紧凑档 28)、**行间距 6(节距 40)**、圆角 6、字号 13、
11
- 行内 padding 承载缩进(**行底满宽、只有内容缩进**)
10
+ - 行高 34(紧凑档 28)、**行挨行(不加间距,节距 = 行高)**、圆角 6、字号 13、
11
+ 行内 padding 承载缩进(**行底满宽、只有内容缩进**)
12
+ ⚠️ 行距原为 6(节距 40,取自设计稿行文本 y 差):2026-09-30 按使用方拍板去掉 ——
13
+ 树行与选择器面板里的选项行是**同一套行**(行高 / 圆角 / 内距 / 字号 / 行态逐项同源),
14
+ 那边是行挨行的平铺列表,两处当然该同一节距(去掉行距后 select 面板里的树与列表也一致了)。
12
15
  - 缩进 = 基础内距 8 + level × 步进 10,**无上限**;level 由组件在行上下发
13
16
  - 三态:滑过 `--ui-primary-weak`、点击瞬态 `--ui-primary-subtle`、
14
17
  选中 `--ui-primary-subtle` 底 + 主色字(设计:选中行 = `#2660ff` 底 10% + 蓝字)
15
18
  - 箭头 = 常规图标档(`--ui-font-icon`,收起态转 −90°);叶子节点用占位保持层级对齐
19
+ - 行内图标位只有两处:箭头(`.mh-tree__caret`,可被 `renderCaret` 替换)与标签前的
20
+ 节点图标槽(`.mh-tree__icon`,`renderIcon` 才会出现)。两者都取全局图标档、颜色跟随行色
16
21
 
17
22
  **行态的取色口径与 Table / ListView 统一**:行类表面的「滑过」用 `--ui-primary-weak`(浅主色)、
18
23
  「选中」用 `--ui-primary-subtle`(深一档主色)—— 三者同一套规则,不再出现「树用中性底、
@@ -24,10 +29,12 @@
24
29
  一步算出(`padding-left: calc(8px + attr(...) * 10px)`);为兼容尚无该能力的引擎,这里由组件
25
30
  同时下发 `--mh-tree-level`,公式仍在 CSS 内(数值只取令牌,不散落字面量)。 */
26
31
 
32
+ /* 树是**行挨行**的列容器(不加行距,节距 = 行高 34):
33
+ 行底满宽、只有内容缩进,行态(滑过 / 按下 / 选中)的底因此是连着的 ——
34
+ 与选择器面板里的选项行同一节距(见文件头「行距原为 6」那条)。 */
27
35
  .mh-tree {
28
36
  display: flex;
29
37
  flex-direction: column;
30
- row-gap: var(--ui-tree-row-gap);
31
38
  width: 100%;
32
39
  }
33
40
 
@@ -88,6 +95,14 @@
88
95
  transition: transform 0.15s ease;
89
96
  }
90
97
 
98
+ /* 自定义箭头(`renderCaret`):消费方给的字形落在槽里即取同一档,不必自己写 size
99
+ —— 上面那条只认缺省字形的类名,故这里按**槽内的字形**给尺寸(`<Icon>` 的 width/height
100
+ 是属性,优先级低于类规则)。朝向不在这里转:自定义箭头由消费方按展开态自选字形。 */
101
+ .mh-tree__caret svg {
102
+ width: var(--ui-font-icon);
103
+ height: var(--ui-font-icon);
104
+ }
105
+
91
106
  .mh-tree__caret[data-expanded='false'] .mh-tree__caret-icon {
92
107
  transform: rotate(-90deg);
93
108
  }
@@ -98,6 +113,25 @@
98
113
  cursor: default;
99
114
  }
100
115
 
116
+ /* 节点图标槽(`renderIcon`):标签**前**的一位图标(文件夹 / 文件)。父 / 叶共用一位,
117
+ 叶子行上面那句箭头占位仍在,故图标列跨层级对齐。
118
+ **颜色不写死**:跟随行色 —— 选中行(面上已把行色换成主色 `--ui-primary`)与滑过态自动同步。 */
119
+
120
+ .mh-tree__icon {
121
+ display: inline-flex;
122
+ align-items: center;
123
+ justify-content: center;
124
+ flex-shrink: 0;
125
+ width: var(--ui-font-icon);
126
+ height: var(--ui-font-icon);
127
+ }
128
+
129
+ /* 槽内的字形同取全局图标档(同自定义箭头那条的理由) */
130
+ .mh-tree__icon svg {
131
+ width: var(--ui-font-icon);
132
+ height: var(--ui-font-icon);
133
+ }
134
+
101
135
  .mh-tree__label {
102
136
  flex: 1;
103
137
  min-width: 0;
@@ -1,8 +1,10 @@
1
1
  /**
2
2
  * 组件几何令牌(只服务本件,故不随主题进 `@manohub/theme`)。
3
- * 行高与节距取自设计稿《MH后台-0911》的组织树(`0:3921`):行高 **34**(`0:3923` 的
4
- * 高亮块 200×34)、**节距 40**(行文本 y = 3 / 43 / 83 / 123 / 163 ⇒ 40),故行间距 6。
3
+ * 行高取自设计稿《MH后台-0911》的组织树(`0:3921`):**34**(`0:3923` 的高亮块 200×34)。
5
4
  * ⚠️ 改前是「行高 30 + 间距 2」(节距 32)——两套来源(规范与设计)给的节距都更松。
5
+ * ⚠️ `--ui-tree-row-gap`(6)**已退场**(2026-09-30,使用方拍板):树行与选择器面板里的选项行
6
+ * 现在同一套行(行高 / 圆角 / 内距 / 字号 / 行态逐项同源),那边是行挨行的平铺列表,
7
+ * 节距就该一样(设计稿的节距 40 因此让位)。**无消费者不预置令牌**,别再把它加回来。
6
8
  *
7
9
  * ## 抽出说明
8
10
  * 本文件从面文件里抽出:这些是**基础值**,锚在 `[data-manohub-ui]`(跨包唯一作用域锚,
@@ -13,7 +15,6 @@
13
15
  [data-manohub-ui] {
14
16
  --ui-tree-row-height: 34px;
15
17
  --ui-tree-row-height-compact: 28px;
16
- --ui-tree-row-gap: 6px; /* 节距 40 = 行高 34 + 间距 6 */
17
18
  --ui-tree-indent-base: 8px;
18
19
  --ui-tree-indent-step: 10px;
19
20
  /* 箭头不再是本件自定的尺寸:**常规图标一律取全局图标档 `--ui-font-icon`**(见下方箭头规则) */
@@ -18,7 +18,7 @@
18
18
  --ui-upload-padding: 32px; /* 规范间距档 8(本仓间距刻度最大 24,故按实测值给) */
19
19
  --ui-upload-zone-max-width: 500px; /* 规范拖拽区帧宽 */
20
20
  --ui-upload-radius: var(--ui-radius-control);
21
- --ui-upload-line: var(--ui-base-300); /* 虚线边:全库唯一的「线 / 框」色(`base-400` 只服务勾选类小控件) */
21
+ --ui-upload-line: var(--ui-line-dashed); /* 虚线边:取线型档(口径「实线 base-300 / 虚线 base-400」) */
22
22
  --ui-upload-text: var(--ui-base-content-muted); /* 主提示 Te05 */
23
23
  --ui-upload-hint: var(--ui-base-content-subtle); /* 副提示 Te07 */
24
24
  --ui-upload-meta-size: var(--ui-font-caption); /* 大小/缩略图文字:规范 12,本仓字阶最小 13 */
@@ -12,7 +12,7 @@
12
12
  *
13
13
  * | 段 | 命名 | 落点 | 锚 |
14
14
  * |---|---|---|---|
15
- * | 全局令牌(跨件共用的值) | `--ui-{primary,base-*,space-*,radius-*,shadow-*,font-*}`、尺寸档(`--ui-control-height-*` / `--ui-mark-height-*`) | `@manohub/theme` | `[data-manohub-ui]` |
15
+ * | 全局令牌(跨件共用的值) | `--ui-{primary,base-*,space-*,radius-*,shadow-*,font-*}`、尺寸档(`--ui-control-height-*` / `--ui-mark-height-*`)、线型档(`--ui-line-dashed`) | `@manohub/theme` | `[data-manohub-ui]` |
16
16
  * | 组件令牌**基础值** | `--ui-<件>-*` | 本目录同名 `<件>.tokens.css` | `[data-manohub-ui]` |
17
17
  * | 组件令牌**档位改写** | `--ui-<件>-*` | 面文件 `<件>.css` 的**修饰符块** | `.mh-<件>--<档>` 等 |
18
18
  * | 内部状态变量 | `--mh-<件>-*` | 面文件(修饰符机制本身) | 组件根类 / 修饰符类 |
@@ -57,6 +57,7 @@
57
57
 
58
58
  /* 数据展示 */
59
59
  @import './components/tree.tokens.css';
60
+ @import './components/badge.tokens.css';
60
61
  @import './components/tag.tokens.css';
61
62
  @import './components/avatar.tokens.css';
62
63
  @import './components/skeleton.tokens.css';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@manohub/ui",
3
- "version": "0.10.2",
3
+ "version": "0.10.4",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "AIHub 自绘组件层:不依赖 farris 的手写 Vue TSX 组件 + 自带令牌层(Farris 规范视觉 · daisyUI 式语义令牌 · shadcn 式 API 词汇)。",
@@ -46,7 +46,7 @@
46
46
  "vue": "^3.5.0"
47
47
  },
48
48
  "dependencies": {
49
- "@manohub/icon": "^0.10.2"
49
+ "@manohub/icon": "^0.10.4"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@types/node": "^24.0.0",