@vmz/ui-icons 0.3.5 → 0.3.6
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 +27 -27
- package/package.json +2 -2
- package/src/icon-types.ts +35 -35
package/README.md
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
# @vmz/ui-icons
|
|
2
|
-
|
|
3
|
-
Official **VMZ UI** icon suite (thin gate).
|
|
4
|
-
|
|
5
|
-
```text
|
|
6
|
-
@vmz/ui-icons ≠ loose SVG dump in apps
|
|
7
|
-
semantic name → registry mark → <Icon name="tool.base64" />
|
|
8
|
-
```
|
|
9
|
-
|
|
10
|
-
- Reuses application `/designs` semantic tokens (no brand hex).
|
|
11
|
-
- Does **not** ship Button / Field / Dialog / Tooltip — compose with `@vmz/ui`.
|
|
12
|
-
- Closed thin: semantic `name`, built-in registry, decorative vs labelled a11y, size density.
|
|
13
|
-
- Still open: multi-surface path sets, locale-aware marks, icon-only Button integration depth.
|
|
14
|
-
|
|
15
|
-
Registry kinds: `stroke` (outlined UI chrome and tools), `text-badge` (proprietary converter names such as `tool.base64` → `B64`). `feature.ssr` is intentionally absent — use title copy instead of an icon.
|
|
16
|
-
|
|
17
|
-
Verify:
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
pnpm verify -- ui-icons
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
Contact sheet (local review):
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
node packages/ui/vmz-ui-icons/scripts/contact-sheet.mjs
|
|
27
|
-
```
|
|
1
|
+
# @vmz/ui-icons
|
|
2
|
+
|
|
3
|
+
Official **VMZ UI** icon suite (thin gate).
|
|
4
|
+
|
|
5
|
+
```text
|
|
6
|
+
@vmz/ui-icons ≠ loose SVG dump in apps
|
|
7
|
+
semantic name → registry mark → <Icon name="tool.base64" />
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
- Reuses application `/designs` semantic tokens (no brand hex).
|
|
11
|
+
- Does **not** ship Button / Field / Dialog / Tooltip — compose with `@vmz/ui`.
|
|
12
|
+
- Closed thin: semantic `name`, built-in registry, decorative vs labelled a11y, size density.
|
|
13
|
+
- Still open: multi-surface path sets, locale-aware marks, icon-only Button integration depth.
|
|
14
|
+
|
|
15
|
+
Registry kinds: `stroke` (outlined UI chrome and tools), `text-badge` (proprietary converter names such as `tool.base64` → `B64`). `feature.ssr` is intentionally absent — use title copy instead of an icon.
|
|
16
|
+
|
|
17
|
+
Verify:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
pnpm verify -- ui-icons
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Contact sheet (local review):
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
node packages/ui/vmz-ui-icons/scripts/contact-sheet.mjs
|
|
27
|
+
```
|
package/package.json
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"name": "@vmz/ui-icons",
|
|
20
20
|
"peerDependencies": {
|
|
21
|
-
"@vmz/ui": "0.3.
|
|
21
|
+
"@vmz/ui": "0.3.6"
|
|
22
22
|
},
|
|
23
23
|
"publishConfig": {
|
|
24
24
|
"access": "public"
|
|
@@ -29,5 +29,5 @@
|
|
|
29
29
|
"url": "git+https://github.com/doki-land/vmz-framework.git"
|
|
30
30
|
},
|
|
31
31
|
"type": "module",
|
|
32
|
-
"version": "0.3.
|
|
32
|
+
"version": "0.3.6"
|
|
33
33
|
}
|
package/src/icon-types.ts
CHANGED
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
/** Structured icon definitions for `@vmz/ui-icons` registry. */
|
|
2
|
-
|
|
3
|
-
export type IconStrokeDef = {
|
|
4
|
-
kind: 'stroke';
|
|
5
|
-
paths: readonly string[];
|
|
6
|
-
circles?: readonly Readonly<{ cx: number; cy: number; r: number }>[];
|
|
7
|
-
dots?: readonly Readonly<{ cx: number; cy: number; r: number }>[];
|
|
8
|
-
strokeWidth?: number;
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export type IconFillDef = {
|
|
12
|
-
kind: 'fill';
|
|
13
|
-
d: string;
|
|
14
|
-
fillRule?: 'evenodd' | 'nonzero';
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
export type IconMixedNode = {
|
|
18
|
-
tag: 'path' | 'circle' | 'rect' | 'line';
|
|
19
|
-
attrs: Readonly<Record<string, string>>;
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
export type IconMixedDef = {
|
|
23
|
-
kind: 'mixed';
|
|
24
|
-
nodes: readonly IconMixedNode[];
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
/** Monospace text mark for proprietary converter names (2–4 chars). */
|
|
28
|
-
export type IconTextBadgeDef = {
|
|
29
|
-
kind: 'text-badge';
|
|
30
|
-
label: string;
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
export type IconDef = IconStrokeDef | IconFillDef | IconMixedDef | IconTextBadgeDef;
|
|
34
|
-
|
|
35
|
-
export const DEFAULT_STROKE_WIDTH = 1.75;
|
|
1
|
+
/** Structured icon definitions for `@vmz/ui-icons` registry. */
|
|
2
|
+
|
|
3
|
+
export type IconStrokeDef = {
|
|
4
|
+
kind: 'stroke';
|
|
5
|
+
paths: readonly string[];
|
|
6
|
+
circles?: readonly Readonly<{ cx: number; cy: number; r: number }>[];
|
|
7
|
+
dots?: readonly Readonly<{ cx: number; cy: number; r: number }>[];
|
|
8
|
+
strokeWidth?: number;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export type IconFillDef = {
|
|
12
|
+
kind: 'fill';
|
|
13
|
+
d: string;
|
|
14
|
+
fillRule?: 'evenodd' | 'nonzero';
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export type IconMixedNode = {
|
|
18
|
+
tag: 'path' | 'circle' | 'rect' | 'line';
|
|
19
|
+
attrs: Readonly<Record<string, string>>;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export type IconMixedDef = {
|
|
23
|
+
kind: 'mixed';
|
|
24
|
+
nodes: readonly IconMixedNode[];
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
/** Monospace text mark for proprietary converter names (2–4 chars). */
|
|
28
|
+
export type IconTextBadgeDef = {
|
|
29
|
+
kind: 'text-badge';
|
|
30
|
+
label: string;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export type IconDef = IconStrokeDef | IconFillDef | IconMixedDef | IconTextBadgeDef;
|
|
34
|
+
|
|
35
|
+
export const DEFAULT_STROKE_WIDTH = 1.75;
|