@nadicodeai/design-system 0.13.0 → 0.15.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.
Files changed (36) hide show
  1. package/AGENTS.md +1 -1
  2. package/DESIGN.md +63 -47
  3. package/README.md +29 -0
  4. package/dist/assets/logo-lockup-inverse.png +0 -0
  5. package/dist/assets/logo-lockup-inverse.svg +4 -0
  6. package/dist/assets/logo-lockup-mono.png +0 -0
  7. package/dist/assets/logo-lockup-mono.svg +4 -0
  8. package/dist/assets/logo-lockup-on-verde.png +0 -0
  9. package/dist/assets/logo-lockup-on-verde.svg +4 -0
  10. package/dist/assets/logo-lockup.png +0 -0
  11. package/dist/assets/logo-lockup.svg +4 -0
  12. package/dist/assets/logo-mark-inverse.png +0 -0
  13. package/dist/assets/logo-mark-inverse.svg +6 -0
  14. package/dist/assets/logo-mark-mono.png +0 -0
  15. package/dist/assets/logo-mark-mono.svg +6 -0
  16. package/dist/assets/logo-mark-on-verde.png +0 -0
  17. package/dist/assets/logo-mark-on-verde.svg +6 -0
  18. package/dist/assets/logo-mark.png +0 -0
  19. package/dist/assets/logo-mark.svg +4 -4
  20. package/dist/assets/logo-wordmark-inverse.png +0 -0
  21. package/dist/assets/logo-wordmark-inverse.svg +4 -0
  22. package/dist/assets/logo-wordmark-mono.png +0 -0
  23. package/dist/assets/logo-wordmark-mono.svg +4 -0
  24. package/dist/assets/logo-wordmark-on-verde.png +0 -0
  25. package/dist/assets/logo-wordmark-on-verde.svg +4 -0
  26. package/dist/assets/logo-wordmark.png +0 -0
  27. package/dist/assets/logo-wordmark.svg +2 -2
  28. package/dist/css/index.css +41 -41
  29. package/dist/favicon/favicon.svg +1 -1
  30. package/dist/favicon/site.webmanifest +2 -2
  31. package/dist/tailwind/nadicode.tailwind.json +40 -40
  32. package/dist/tokens/nadicode.dtcg.json +150 -150
  33. package/package.json +91 -2
  34. package/src/assets/logo-geometry.d.ts +1 -0
  35. package/src/assets/logo-geometry.js +23 -1
  36. package/src/assets/logo-lockup.d.ts +2 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nadicodeai/design-system",
3
- "version": "0.13.0",
3
+ "version": "0.15.0",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -19,10 +19,98 @@
19
19
  "types": "./src/assets/logo-mark.d.ts",
20
20
  "default": "./dist/assets/logo-mark.svg"
21
21
  },
22
+ "./assets/logo-mark-inverse": {
23
+ "types": "./src/assets/logo-mark.d.ts",
24
+ "default": "./dist/assets/logo-mark-inverse.svg"
25
+ },
26
+ "./assets/logo-mark-mono": {
27
+ "types": "./src/assets/logo-mark.d.ts",
28
+ "default": "./dist/assets/logo-mark-mono.svg"
29
+ },
30
+ "./assets/logo-mark-on-verde": {
31
+ "types": "./src/assets/logo-mark.d.ts",
32
+ "default": "./dist/assets/logo-mark-on-verde.svg"
33
+ },
34
+ "./assets/logo-mark.png": {
35
+ "types": "./src/assets/logo-mark.d.ts",
36
+ "default": "./dist/assets/logo-mark.png"
37
+ },
38
+ "./assets/logo-mark-inverse.png": {
39
+ "types": "./src/assets/logo-mark.d.ts",
40
+ "default": "./dist/assets/logo-mark-inverse.png"
41
+ },
42
+ "./assets/logo-mark-mono.png": {
43
+ "types": "./src/assets/logo-mark.d.ts",
44
+ "default": "./dist/assets/logo-mark-mono.png"
45
+ },
46
+ "./assets/logo-mark-on-verde.png": {
47
+ "types": "./src/assets/logo-mark.d.ts",
48
+ "default": "./dist/assets/logo-mark-on-verde.png"
49
+ },
22
50
  "./assets/logo-wordmark": {
23
51
  "types": "./src/assets/logo-wordmark.d.ts",
24
52
  "default": "./dist/assets/logo-wordmark.svg"
25
53
  },
54
+ "./assets/logo-wordmark-inverse": {
55
+ "types": "./src/assets/logo-wordmark.d.ts",
56
+ "default": "./dist/assets/logo-wordmark-inverse.svg"
57
+ },
58
+ "./assets/logo-wordmark-mono": {
59
+ "types": "./src/assets/logo-wordmark.d.ts",
60
+ "default": "./dist/assets/logo-wordmark-mono.svg"
61
+ },
62
+ "./assets/logo-wordmark-on-verde": {
63
+ "types": "./src/assets/logo-wordmark.d.ts",
64
+ "default": "./dist/assets/logo-wordmark-on-verde.svg"
65
+ },
66
+ "./assets/logo-wordmark.png": {
67
+ "types": "./src/assets/logo-wordmark.d.ts",
68
+ "default": "./dist/assets/logo-wordmark.png"
69
+ },
70
+ "./assets/logo-wordmark-inverse.png": {
71
+ "types": "./src/assets/logo-wordmark.d.ts",
72
+ "default": "./dist/assets/logo-wordmark-inverse.png"
73
+ },
74
+ "./assets/logo-wordmark-mono.png": {
75
+ "types": "./src/assets/logo-wordmark.d.ts",
76
+ "default": "./dist/assets/logo-wordmark-mono.png"
77
+ },
78
+ "./assets/logo-wordmark-on-verde.png": {
79
+ "types": "./src/assets/logo-wordmark.d.ts",
80
+ "default": "./dist/assets/logo-wordmark-on-verde.png"
81
+ },
82
+ "./assets/logo-lockup": {
83
+ "types": "./src/assets/logo-lockup.d.ts",
84
+ "default": "./dist/assets/logo-lockup.svg"
85
+ },
86
+ "./assets/logo-lockup-inverse": {
87
+ "types": "./src/assets/logo-lockup.d.ts",
88
+ "default": "./dist/assets/logo-lockup-inverse.svg"
89
+ },
90
+ "./assets/logo-lockup-mono": {
91
+ "types": "./src/assets/logo-lockup.d.ts",
92
+ "default": "./dist/assets/logo-lockup-mono.svg"
93
+ },
94
+ "./assets/logo-lockup-on-verde": {
95
+ "types": "./src/assets/logo-lockup.d.ts",
96
+ "default": "./dist/assets/logo-lockup-on-verde.svg"
97
+ },
98
+ "./assets/logo-lockup.png": {
99
+ "types": "./src/assets/logo-lockup.d.ts",
100
+ "default": "./dist/assets/logo-lockup.png"
101
+ },
102
+ "./assets/logo-lockup-inverse.png": {
103
+ "types": "./src/assets/logo-lockup.d.ts",
104
+ "default": "./dist/assets/logo-lockup-inverse.png"
105
+ },
106
+ "./assets/logo-lockup-mono.png": {
107
+ "types": "./src/assets/logo-lockup.d.ts",
108
+ "default": "./dist/assets/logo-lockup-mono.png"
109
+ },
110
+ "./assets/logo-lockup-on-verde.png": {
111
+ "types": "./src/assets/logo-lockup.d.ts",
112
+ "default": "./dist/assets/logo-lockup-on-verde.png"
113
+ },
26
114
  "./assets/logo-geometry": {
27
115
  "types": "./src/assets/logo-geometry.d.ts",
28
116
  "import": "./src/assets/logo-geometry.js",
@@ -60,11 +148,12 @@
60
148
  },
61
149
  "devDependencies": {
62
150
  "@google/design.md": "0.1.1",
63
- "@types/node": "^22",
64
151
  "@playwright/test": "^1.57.0",
152
+ "@types/node": "^22",
65
153
  "esbuild": "^0.28.0",
66
154
  "eslint": "^9.39.4",
67
155
  "lucide-static": "1.21.0",
156
+ "sharp": "^0.34.5",
68
157
  "style-dictionary": "^5.4.3",
69
158
  "tsx": "^4.21.0",
70
159
  "typescript": "^5",
@@ -21,6 +21,7 @@ export type LogoGeometryBindings = Readonly<{
21
21
 
22
22
  export declare const logoMarkGeometry: LogoGeometry;
23
23
  export declare const logoWordmarkGeometry: LogoGeometry;
24
+ export declare const logoLockupGeometry: LogoGeometry;
24
25
  export declare function resolveLogoGeometry(
25
26
  geometry: LogoGeometry,
26
27
  bindings: LogoGeometryBindings,
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Framework-neutral SVG geometry for the NadicodeAI mark and wordmark.
2
+ * Framework-neutral SVG geometry for the NadicodeAI mark, wordmark, and lockup.
3
3
  *
4
4
  * Attribute values use two renderer bindings:
5
5
  * - `{paint:ink}` / `{paint:primary}` select presentation colors.
@@ -175,6 +175,28 @@ export const logoWordmarkGeometry = freezeGeometry({
175
175
  ],
176
176
  });
177
177
 
178
+ /**
179
+ * The horizontal lockup preserves the approved July 2026 composition: the
180
+ * mark sits to the left, scaled to the wordmark's capital height, and both
181
+ * forms share one baseline. The extra view-box width is part of that approved
182
+ * asset and must not be tightened independently by a consumer.
183
+ */
184
+ export const logoLockupGeometry = freezeGeometry({
185
+ viewBox: "0 0 480 100",
186
+ nodes: [
187
+ {
188
+ element: "g",
189
+ attributes: { transform: "translate(-16 10) scale(0.5)" },
190
+ children: [...logoMarkGeometry.nodes],
191
+ },
192
+ {
193
+ element: "g",
194
+ attributes: { transform: "translate(72 0)" },
195
+ children: [...logoWordmarkGeometry.nodes],
196
+ },
197
+ ],
198
+ });
199
+
178
200
  const resolveAttributeValue = (value, paints, idPrefix) => {
179
201
  if (value === "{paint:ink}") return paints.ink;
180
202
  if (value === "{paint:primary}") return paints.primary;
@@ -0,0 +1,2 @@
1
+ declare const asset: string | { src: string };
2
+ export default asset;