@manohub/icon 0.4.3 → 0.6.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 CHANGED
@@ -8,10 +8,10 @@ TS 源码、**不含 JSX**,`tsc` 一个命令直出 `dist`(不引 vite、不
8
8
  原先图标寄居在 `@manohub/ui/components/icon`(经子路径 `@manohub/ui/icon` 暴露)。问题:
9
9
 
10
10
  1. `@manohub/ui` 是 Tailwind + reka + cva 栈的组件库,**消费它意味着连带接受整套栈**;
11
- 2. `packages/app-kit`(farris 封装 + 原生 CSS,无 Tailwind)只需要一个图标,却因此成为 `@manohub/ui` 的依赖方;
11
+ 2. `packages/kit`(farris 封装 + 原生 CSS,无 Tailwind)只需要一个图标,却因此成为 `@manohub/ui` 的依赖方;
12
12
  3. 跨仓分发时,一个只想用图标的工程不应被迫安装组件库。
13
13
 
14
- 抽出后依赖方向变为:`@manohub/ui` 与 `@manohub/app-kit` **都依赖** `@manohub/icon`,图标成为两侧共享的底座,不再有"骨架层依赖组件库"的倒挂。
14
+ 抽出后依赖方向变为:`@manohub/ui` 与 `@manohub/kit` **都依赖** `@manohub/icon`,图标成为两侧共享的底座,不再有"骨架层依赖组件库"的倒挂。
15
15
 
16
16
  ## 两个入口
17
17
 
@@ -54,7 +54,7 @@ pnpm --filter @manohub/icon build # node ../../scripts/clean-dist.mjs &&
54
54
  pnpm --filter @manohub/icon type-check # tsc --noEmit -p tsconfig.json
55
55
  ```
56
56
 
57
- - `exports` 指向 `dist`(产物分发,与 `app-ui` / `app-kit` 一致),消费方无需任何别名或 `paths` 映射。
57
+ - `exports` 指向 `dist`(产物分发,与 `ui` / `kit` 一致),消费方无需任何别名或 `paths` 映射。
58
58
  - **不需要 vite、也不需要 vue-tsc**:源码里没有 JSX(图标数据是字符串,组件用 `h()` + `innerHTML` 渲染),
59
59
  没有 CSS、没有第三方运行时依赖,所以纯 `tsc` 就能同时产出 `dist/*.js` 与 `dist/*.d.ts`。
60
60
  - **类型是编译产出的**(`dist/*.d.ts`),不是手写声明 —— 新增图标时类型自动跟着内容表走,不会漂。
@@ -65,7 +65,7 @@ pnpm --filter @manohub/icon type-check # tsc --noEmit -p tsconfig.json
65
65
 
66
66
  - **零运行时依赖 + 零 CSS 依赖**:不引入 `clsx` / `tailwind-merge`,也不依赖任何 CSS 框架;类名直接透传,无需任何合并工具。
67
67
  - **基底样式为内联 style**:`{ display: 'inline-block', flexShrink: '0' }`。
68
- 原先是 Tailwind 工具类 `inline-block shrink-0` —— 在 Tailwind 仓(如 portal)生效,在非 Tailwind 仓(如 app-kit 各子应用)是**死类**,图标会丢掉 `flex-shrink: 0`、在 flex 行内被长文本压扁;改内联 style 后两种栈取值一致。
68
+ 原先是 Tailwind 工具类 `inline-block shrink-0` —— 在 Tailwind 仓(如 portal)生效,在非 Tailwind 仓(如 kit 各子应用)是**死类**,图标会丢掉 `flex-shrink: 0`、在 flex 行内被长文本压扁;改内联 style 后两种栈取值一致。
69
69
  **代价**:内联 style 优先级高于 class,**无法再用 class 覆盖 `display` / `flex-shrink`**(需要覆盖时请传 `style` —— Vue 会把回退的 style 与基底对象合并,同键以后者为准)。
70
70
  - **未知图标名渲染成空图标,不抛错**:消费方可能把业务侧来的字符串透传给 `icon`(如头像的图标档),
71
71
  抛错会把整棵组件树带崩;拼写错误由 `IconName` 类型在编译期拦住。
package/dist/glyphs.d.ts CHANGED
@@ -13,10 +13,8 @@
13
13
  export declare const ICON_GLYPHS: {
14
14
  readonly loading: "<circle cx=\"12\" cy=\"12\" r=\"10\" stroke-opacity=\"0.25\"/><path d=\"M12 2a10 10 0 0 1 10 10\"/>";
15
15
  readonly close: "<path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/>";
16
- readonly success: "<circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m9 12 2 2 4-4\"/>";
17
- readonly error: "<circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m15 9-6 6\"/><path d=\"m9 9 6 6\"/>";
18
- readonly info: "<circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 16v-4\"/><path d=\"M12 8h.01\"/>";
19
- readonly warning: "<path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 20h16a2 2 0 0 0 1.73-2Z\"/><path d=\"M12 9v4\"/><path d=\"M12 17h.01\"/>";
16
+ readonly info: "<path d=\"M12 10v9\"/><path d=\"M12 5h.01\"/>";
17
+ readonly alert: "<path d=\"M12 5v9\"/><path d=\"M12 19h.01\"/>";
20
18
  readonly 'chevron-left': "<path d=\"m15 18-6-6 6-6\"/>";
21
19
  readonly 'chevron-right': "<path d=\"m9 18 6-6-6-6\"/>";
22
20
  readonly 'chevron-down': "<path d=\"m6 9 6 6 6-6\"/>";
package/dist/glyphs.js CHANGED
@@ -13,10 +13,12 @@
13
13
  export const ICON_GLYPHS = {
14
14
  loading: '<circle cx="12" cy="12" r="10" stroke-opacity="0.25"/><path d="M12 2a10 10 0 0 1 10 10"/>',
15
15
  close: '<path d="M18 6 6 18"/><path d="m6 6 12 12"/>',
16
- success: '<circle cx="12" cy="12" r="10"/><path d="m9 12 2 2 4-4"/>',
17
- error: '<circle cx="12" cy="12" r="10"/><path d="m15 9-6 6"/><path d="m9 9 6 6"/>',
18
- info: '<circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/>',
19
- warning: '<path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 20h16a2 2 0 0 0 1.73-2Z"/><path d="M12 9v4"/><path d="M12 17h.01"/>',
16
+ /*
17
+ * 状态符号一律是**不带容器**的裸字形(色底由组件给:圆形色底自身就是那一圈,字形再自带一圈会叠成双圈)。
18
+ * 裸符号要与 `alert` 等重:上下撑满 5–19 —— 否则缩到 12px(Toast 的色底尺寸)会明显显小。
19
+ */
20
+ info: '<path d="M12 10v9"/><path d="M12 5h.01"/>',
21
+ alert: '<path d="M12 5v9"/><path d="M12 19h.01"/>',
20
22
  'chevron-left': '<path d="m15 18-6-6 6-6"/>',
21
23
  'chevron-right': '<path d="m9 18 6-6-6-6"/>',
22
24
  'chevron-down': '<path d="m6 9 6 6 6-6"/>',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@manohub/icon",
3
- "version": "0.4.3",
3
+ "version": "0.6.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "AIHub 图标包:内置 SVG 图标内容表 + 纯字符串渲染器 + <Icon> 组件。零运行时依赖(仅 peer vue),供任意 UI 栈消费",