@atezer/figma-mcp-bridge 1.7.23 → 1.7.24
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 +30 -0
- package/README.md +1 -1
- package/dist/core/config.d.ts +1 -5
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +11 -111
- package/dist/core/config.js.map +1 -1
- package/dist/core/plugin-bridge-server.d.ts.map +1 -1
- package/dist/core/plugin-bridge-server.js +1 -2
- package/dist/core/plugin-bridge-server.js.map +1 -1
- package/dist/core/types/index.d.ts +2 -98
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/local-plugin-only.d.ts.map +1 -1
- package/dist/local-plugin-only.js +14 -13
- package/dist/local-plugin-only.js.map +1 -1
- package/f-mcp-plugin/README.md +8 -15
- package/f-mcp-plugin/manifest.json +1 -3
- package/package.json +8 -31
- package/dist/browser/base.d.ts +0 -50
- package/dist/browser/base.d.ts.map +0 -1
- package/dist/browser/base.js +0 -6
- package/dist/browser/base.js.map +0 -1
- package/dist/browser/local.d.ts +0 -81
- package/dist/browser/local.d.ts.map +0 -1
- package/dist/browser/local.js +0 -283
- package/dist/browser/local.js.map +0 -1
- package/dist/core/console-monitor.d.ts +0 -82
- package/dist/core/console-monitor.d.ts.map +0 -1
- package/dist/core/console-monitor.js +0 -428
- package/dist/core/console-monitor.js.map +0 -1
- package/dist/core/design-system-manifest.d.ts +0 -272
- package/dist/core/design-system-manifest.d.ts.map +0 -1
- package/dist/core/design-system-manifest.js +0 -261
- package/dist/core/design-system-manifest.js.map +0 -1
- package/dist/core/enrichment/enrichment-service.d.ts +0 -52
- package/dist/core/enrichment/enrichment-service.d.ts.map +0 -1
- package/dist/core/enrichment/enrichment-service.js +0 -272
- package/dist/core/enrichment/enrichment-service.js.map +0 -1
- package/dist/core/enrichment/index.d.ts +0 -8
- package/dist/core/enrichment/index.d.ts.map +0 -1
- package/dist/core/enrichment/index.js +0 -8
- package/dist/core/enrichment/index.js.map +0 -1
- package/dist/core/enrichment/relationship-mapper.d.ts +0 -106
- package/dist/core/enrichment/relationship-mapper.d.ts.map +0 -1
- package/dist/core/enrichment/relationship-mapper.js +0 -352
- package/dist/core/enrichment/relationship-mapper.js.map +0 -1
- package/dist/core/enrichment/style-resolver.d.ts +0 -80
- package/dist/core/enrichment/style-resolver.d.ts.map +0 -1
- package/dist/core/enrichment/style-resolver.js +0 -327
- package/dist/core/enrichment/style-resolver.js.map +0 -1
- package/dist/core/figma-api.d.ts +0 -137
- package/dist/core/figma-api.d.ts.map +0 -1
- package/dist/core/figma-api.js +0 -274
- package/dist/core/figma-api.js.map +0 -1
- package/dist/core/figma-desktop-connector.d.ts +0 -242
- package/dist/core/figma-desktop-connector.d.ts.map +0 -1
- package/dist/core/figma-desktop-connector.js +0 -1042
- package/dist/core/figma-desktop-connector.js.map +0 -1
- package/dist/core/figma-reconstruction-spec.d.ts +0 -162
- package/dist/core/figma-reconstruction-spec.d.ts.map +0 -1
- package/dist/core/figma-reconstruction-spec.js +0 -387
- package/dist/core/figma-reconstruction-spec.js.map +0 -1
- package/dist/core/figma-tools.d.ts +0 -21
- package/dist/core/figma-tools.d.ts.map +0 -1
- package/dist/core/figma-tools.js +0 -2920
- package/dist/core/figma-tools.js.map +0 -1
- package/dist/core/snippet-injector.d.ts +0 -24
- package/dist/core/snippet-injector.d.ts.map +0 -1
- package/dist/core/snippet-injector.js +0 -97
- package/dist/core/snippet-injector.js.map +0 -1
- package/dist/core/types/enriched.d.ts +0 -213
- package/dist/core/types/enriched.d.ts.map +0 -1
- package/dist/core/types/enriched.js +0 -6
- package/dist/core/types/enriched.js.map +0 -1
- package/dist/local.d.ts +0 -73
- package/dist/local.d.ts.map +0 -1
- package/dist/local.js +0 -2605
- package/dist/local.js.map +0 -1
|
@@ -1,272 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Design System Manifest Types
|
|
3
|
-
*
|
|
4
|
-
* A structured representation of a Figma design system that enables
|
|
5
|
-
* high-fidelity AI-assisted design generation.
|
|
6
|
-
*/
|
|
7
|
-
export interface ColorToken {
|
|
8
|
-
name: string;
|
|
9
|
-
value: string;
|
|
10
|
-
variableId?: string;
|
|
11
|
-
description?: string;
|
|
12
|
-
scopes?: string[];
|
|
13
|
-
}
|
|
14
|
-
export interface SpacingToken {
|
|
15
|
-
name: string;
|
|
16
|
-
value: number;
|
|
17
|
-
variableId?: string;
|
|
18
|
-
description?: string;
|
|
19
|
-
}
|
|
20
|
-
export interface TypographyToken {
|
|
21
|
-
name: string;
|
|
22
|
-
fontFamily: string;
|
|
23
|
-
fontSize: number;
|
|
24
|
-
fontWeight: number;
|
|
25
|
-
lineHeight: number | {
|
|
26
|
-
value: number;
|
|
27
|
-
unit: 'PIXELS' | 'PERCENT' | 'AUTO';
|
|
28
|
-
};
|
|
29
|
-
letterSpacing?: number;
|
|
30
|
-
textCase?: 'ORIGINAL' | 'UPPER' | 'LOWER' | 'TITLE';
|
|
31
|
-
textDecoration?: 'NONE' | 'UNDERLINE' | 'STRIKETHROUGH';
|
|
32
|
-
styleId?: string;
|
|
33
|
-
description?: string;
|
|
34
|
-
}
|
|
35
|
-
export interface EffectToken {
|
|
36
|
-
name: string;
|
|
37
|
-
type: 'DROP_SHADOW' | 'INNER_SHADOW' | 'LAYER_BLUR' | 'BACKGROUND_BLUR';
|
|
38
|
-
effects: Array<{
|
|
39
|
-
type: string;
|
|
40
|
-
color?: {
|
|
41
|
-
r: number;
|
|
42
|
-
g: number;
|
|
43
|
-
b: number;
|
|
44
|
-
a: number;
|
|
45
|
-
};
|
|
46
|
-
offset?: {
|
|
47
|
-
x: number;
|
|
48
|
-
y: number;
|
|
49
|
-
};
|
|
50
|
-
radius?: number;
|
|
51
|
-
spread?: number;
|
|
52
|
-
visible?: boolean;
|
|
53
|
-
}>;
|
|
54
|
-
styleId?: string;
|
|
55
|
-
description?: string;
|
|
56
|
-
}
|
|
57
|
-
export interface TokenCollection {
|
|
58
|
-
id: string;
|
|
59
|
-
name: string;
|
|
60
|
-
modes: Array<{
|
|
61
|
-
modeId: string;
|
|
62
|
-
name: string;
|
|
63
|
-
}>;
|
|
64
|
-
defaultModeId: string;
|
|
65
|
-
}
|
|
66
|
-
export interface ComponentVariant {
|
|
67
|
-
name: string;
|
|
68
|
-
values: string[];
|
|
69
|
-
defaultValue?: string;
|
|
70
|
-
}
|
|
71
|
-
export interface ComponentProperty {
|
|
72
|
-
name: string;
|
|
73
|
-
type: 'TEXT' | 'BOOLEAN' | 'INSTANCE_SWAP' | 'VARIANT';
|
|
74
|
-
defaultValue?: string | boolean;
|
|
75
|
-
options?: string[];
|
|
76
|
-
}
|
|
77
|
-
export interface ComponentSpec {
|
|
78
|
-
key: string;
|
|
79
|
-
nodeId: string;
|
|
80
|
-
name: string;
|
|
81
|
-
description?: string;
|
|
82
|
-
variants?: ComponentVariant[];
|
|
83
|
-
properties?: ComponentProperty[];
|
|
84
|
-
defaultSize?: {
|
|
85
|
-
width: number;
|
|
86
|
-
height: number;
|
|
87
|
-
};
|
|
88
|
-
boundVariables?: Record<string, string>;
|
|
89
|
-
usage?: string;
|
|
90
|
-
category?: string;
|
|
91
|
-
}
|
|
92
|
-
export interface ComponentSet {
|
|
93
|
-
key: string;
|
|
94
|
-
nodeId: string;
|
|
95
|
-
name: string;
|
|
96
|
-
description?: string;
|
|
97
|
-
variants: ComponentSpec[];
|
|
98
|
-
variantAxes: ComponentVariant[];
|
|
99
|
-
}
|
|
100
|
-
export interface LayoutPattern {
|
|
101
|
-
name: string;
|
|
102
|
-
description: string;
|
|
103
|
-
properties: {
|
|
104
|
-
padding?: string | number;
|
|
105
|
-
gap?: string | number;
|
|
106
|
-
borderRadius?: number;
|
|
107
|
-
background?: string;
|
|
108
|
-
shadow?: string;
|
|
109
|
-
layoutMode?: 'HORIZONTAL' | 'VERTICAL' | 'NONE';
|
|
110
|
-
primaryAxisAlign?: 'MIN' | 'CENTER' | 'MAX' | 'SPACE_BETWEEN';
|
|
111
|
-
counterAxisAlign?: 'MIN' | 'CENTER' | 'MAX' | 'BASELINE';
|
|
112
|
-
};
|
|
113
|
-
usage?: string;
|
|
114
|
-
}
|
|
115
|
-
export interface DesignRule {
|
|
116
|
-
category: 'spacing' | 'color' | 'typography' | 'component' | 'layout';
|
|
117
|
-
rule: string;
|
|
118
|
-
priority: 'required' | 'recommended' | 'optional';
|
|
119
|
-
examples?: string[];
|
|
120
|
-
}
|
|
121
|
-
export interface DesignSystemManifest {
|
|
122
|
-
version: string;
|
|
123
|
-
generatedAt: number;
|
|
124
|
-
fileKey: string;
|
|
125
|
-
fileName?: string;
|
|
126
|
-
fileUrl?: string;
|
|
127
|
-
collections: TokenCollection[];
|
|
128
|
-
tokens: {
|
|
129
|
-
colors: Record<string, ColorToken>;
|
|
130
|
-
spacing: Record<string, SpacingToken>;
|
|
131
|
-
typography: Record<string, TypographyToken>;
|
|
132
|
-
effects: Record<string, EffectToken>;
|
|
133
|
-
other: Record<string, {
|
|
134
|
-
name: string;
|
|
135
|
-
type: string;
|
|
136
|
-
value: any;
|
|
137
|
-
variableId?: string;
|
|
138
|
-
}>;
|
|
139
|
-
};
|
|
140
|
-
components: Record<string, ComponentSpec>;
|
|
141
|
-
componentSets: Record<string, ComponentSet>;
|
|
142
|
-
patterns: Record<string, LayoutPattern>;
|
|
143
|
-
rules: DesignRule[];
|
|
144
|
-
summary: {
|
|
145
|
-
totalTokens: number;
|
|
146
|
-
totalComponents: number;
|
|
147
|
-
totalComponentSets: number;
|
|
148
|
-
colorPalette: string[];
|
|
149
|
-
spacingScale: number[];
|
|
150
|
-
typographyScale: string[];
|
|
151
|
-
componentCategories: string[];
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
export interface ManifestGenerationOptions {
|
|
155
|
-
includeTokens?: boolean;
|
|
156
|
-
includeComponents?: boolean;
|
|
157
|
-
includeStyles?: boolean;
|
|
158
|
-
includePatterns?: boolean;
|
|
159
|
-
componentCategories?: string[];
|
|
160
|
-
tokenCollections?: string[];
|
|
161
|
-
inferPatterns?: boolean;
|
|
162
|
-
verbose?: boolean;
|
|
163
|
-
}
|
|
164
|
-
export interface ManifestCacheEntry {
|
|
165
|
-
manifest: DesignSystemManifest;
|
|
166
|
-
timestamp: number;
|
|
167
|
-
fileKey: string;
|
|
168
|
-
rawComponents?: {
|
|
169
|
-
components: any[];
|
|
170
|
-
componentSets: any[];
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Cache for design system manifests with TTL-based invalidation.
|
|
175
|
-
* Singleton pattern to share cache across tool calls.
|
|
176
|
-
*/
|
|
177
|
-
export declare class DesignSystemManifestCache {
|
|
178
|
-
private static instance;
|
|
179
|
-
private cache;
|
|
180
|
-
private readonly TTL_MS;
|
|
181
|
-
private constructor();
|
|
182
|
-
static getInstance(): DesignSystemManifestCache;
|
|
183
|
-
get(fileKey: string): ManifestCacheEntry | null;
|
|
184
|
-
set(fileKey: string, manifest: DesignSystemManifest, rawComponents?: {
|
|
185
|
-
components: any[];
|
|
186
|
-
componentSets: any[];
|
|
187
|
-
}): void;
|
|
188
|
-
invalidate(fileKey: string): void;
|
|
189
|
-
invalidateAll(): void;
|
|
190
|
-
isValid(entry: ManifestCacheEntry): boolean;
|
|
191
|
-
getStats(): {
|
|
192
|
-
fileKey: string;
|
|
193
|
-
age: number;
|
|
194
|
-
componentCount: number;
|
|
195
|
-
tokenCount: number;
|
|
196
|
-
}[];
|
|
197
|
-
}
|
|
198
|
-
export interface ComponentSearchResult {
|
|
199
|
-
name: string;
|
|
200
|
-
key: string;
|
|
201
|
-
nodeId: string;
|
|
202
|
-
type: 'component' | 'componentSet';
|
|
203
|
-
description?: string;
|
|
204
|
-
category?: string;
|
|
205
|
-
variantCount?: number;
|
|
206
|
-
defaultSize?: {
|
|
207
|
-
width: number;
|
|
208
|
-
height: number;
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Search components by name, category, or description
|
|
213
|
-
*/
|
|
214
|
-
export declare function searchComponents(manifest: DesignSystemManifest, query: string, options?: {
|
|
215
|
-
category?: string;
|
|
216
|
-
limit?: number;
|
|
217
|
-
offset?: number;
|
|
218
|
-
}): {
|
|
219
|
-
results: ComponentSearchResult[];
|
|
220
|
-
total: number;
|
|
221
|
-
hasMore: boolean;
|
|
222
|
-
};
|
|
223
|
-
/**
|
|
224
|
-
* Get unique categories from manifest
|
|
225
|
-
*/
|
|
226
|
-
export declare function getCategories(manifest: DesignSystemManifest): {
|
|
227
|
-
name: string;
|
|
228
|
-
componentCount: number;
|
|
229
|
-
componentSetCount: number;
|
|
230
|
-
}[];
|
|
231
|
-
/**
|
|
232
|
-
* Get token categories and counts for summary
|
|
233
|
-
*/
|
|
234
|
-
export declare function getTokenSummary(manifest: DesignSystemManifest): {
|
|
235
|
-
colors: {
|
|
236
|
-
count: number;
|
|
237
|
-
groups: string[];
|
|
238
|
-
};
|
|
239
|
-
spacing: {
|
|
240
|
-
count: number;
|
|
241
|
-
scale: number[];
|
|
242
|
-
};
|
|
243
|
-
typography: {
|
|
244
|
-
count: number;
|
|
245
|
-
groups: string[];
|
|
246
|
-
};
|
|
247
|
-
effects: {
|
|
248
|
-
count: number;
|
|
249
|
-
};
|
|
250
|
-
collections: string[];
|
|
251
|
-
};
|
|
252
|
-
/**
|
|
253
|
-
* Convert RGB color object to hex string
|
|
254
|
-
*/
|
|
255
|
-
export declare function rgbToHex(color: {
|
|
256
|
-
r: number;
|
|
257
|
-
g: number;
|
|
258
|
-
b: number;
|
|
259
|
-
}): string;
|
|
260
|
-
/**
|
|
261
|
-
* Parse a Figma color value to hex
|
|
262
|
-
*/
|
|
263
|
-
export declare function figmaColorToHex(value: any): string;
|
|
264
|
-
/**
|
|
265
|
-
* Generate a human-readable summary of the manifest
|
|
266
|
-
*/
|
|
267
|
-
export declare function generateManifestSummary(manifest: DesignSystemManifest): string;
|
|
268
|
-
/**
|
|
269
|
-
* Create an empty manifest template
|
|
270
|
-
*/
|
|
271
|
-
export declare function createEmptyManifest(fileKey: string): DesignSystemManifest;
|
|
272
|
-
//# sourceMappingURL=design-system-manifest.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"design-system-manifest.d.ts","sourceRoot":"","sources":["../../src/core/design-system-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Design System Manifest Types
|
|
3
|
-
*
|
|
4
|
-
* A structured representation of a Figma design system that enables
|
|
5
|
-
* high-fidelity AI-assisted design generation.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Cache for design system manifests with TTL-based invalidation.
|
|
9
|
-
* Singleton pattern to share cache across tool calls.
|
|
10
|
-
*/
|
|
11
|
-
export class DesignSystemManifestCache {
|
|
12
|
-
constructor() {
|
|
13
|
-
this.cache = new Map();
|
|
14
|
-
this.TTL_MS = 5 * 60 * 1000; // 5 minutes
|
|
15
|
-
}
|
|
16
|
-
static getInstance() {
|
|
17
|
-
if (!DesignSystemManifestCache.instance) {
|
|
18
|
-
DesignSystemManifestCache.instance = new DesignSystemManifestCache();
|
|
19
|
-
}
|
|
20
|
-
return DesignSystemManifestCache.instance;
|
|
21
|
-
}
|
|
22
|
-
get(fileKey) {
|
|
23
|
-
const entry = this.cache.get(fileKey);
|
|
24
|
-
if (!entry)
|
|
25
|
-
return null;
|
|
26
|
-
if (!this.isValid(entry)) {
|
|
27
|
-
this.cache.delete(fileKey);
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
return entry;
|
|
31
|
-
}
|
|
32
|
-
set(fileKey, manifest, rawComponents) {
|
|
33
|
-
this.cache.set(fileKey, {
|
|
34
|
-
manifest,
|
|
35
|
-
timestamp: Date.now(),
|
|
36
|
-
fileKey,
|
|
37
|
-
rawComponents,
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
invalidate(fileKey) {
|
|
41
|
-
this.cache.delete(fileKey);
|
|
42
|
-
}
|
|
43
|
-
invalidateAll() {
|
|
44
|
-
this.cache.clear();
|
|
45
|
-
}
|
|
46
|
-
isValid(entry) {
|
|
47
|
-
return Date.now() - entry.timestamp < this.TTL_MS;
|
|
48
|
-
}
|
|
49
|
-
getStats() {
|
|
50
|
-
const stats = [];
|
|
51
|
-
for (const [fileKey, entry] of this.cache) {
|
|
52
|
-
stats.push({
|
|
53
|
-
fileKey,
|
|
54
|
-
age: Math.round((Date.now() - entry.timestamp) / 1000),
|
|
55
|
-
componentCount: entry.manifest.summary.totalComponents + entry.manifest.summary.totalComponentSets,
|
|
56
|
-
tokenCount: entry.manifest.summary.totalTokens,
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
return stats;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Search components by name, category, or description
|
|
64
|
-
*/
|
|
65
|
-
export function searchComponents(manifest, query, options) {
|
|
66
|
-
const limit = options?.limit ?? 10;
|
|
67
|
-
const offset = options?.offset ?? 0;
|
|
68
|
-
const queryLower = query.toLowerCase();
|
|
69
|
-
const categoryLower = options?.category?.toLowerCase();
|
|
70
|
-
const allResults = [];
|
|
71
|
-
// Search component sets first (they're typically the main design system components)
|
|
72
|
-
for (const [name, compSet] of Object.entries(manifest.componentSets)) {
|
|
73
|
-
const nameLower = name.toLowerCase();
|
|
74
|
-
const descLower = compSet.description?.toLowerCase() || '';
|
|
75
|
-
const matchesQuery = !query || nameLower.includes(queryLower) || descLower.includes(queryLower);
|
|
76
|
-
const matchesCategory = !categoryLower || inferCategory(name).toLowerCase().includes(categoryLower);
|
|
77
|
-
if (matchesQuery && matchesCategory) {
|
|
78
|
-
allResults.push({
|
|
79
|
-
name: compSet.name,
|
|
80
|
-
key: compSet.key,
|
|
81
|
-
nodeId: compSet.nodeId,
|
|
82
|
-
type: 'componentSet',
|
|
83
|
-
description: compSet.description,
|
|
84
|
-
category: inferCategory(name),
|
|
85
|
-
variantCount: compSet.variants?.length || 0,
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
// Then search standalone components
|
|
90
|
-
for (const [name, comp] of Object.entries(manifest.components)) {
|
|
91
|
-
const nameLower = name.toLowerCase();
|
|
92
|
-
const descLower = comp.description?.toLowerCase() || '';
|
|
93
|
-
const matchesQuery = !query || nameLower.includes(queryLower) || descLower.includes(queryLower);
|
|
94
|
-
const matchesCategory = !categoryLower || inferCategory(name).toLowerCase().includes(categoryLower);
|
|
95
|
-
if (matchesQuery && matchesCategory) {
|
|
96
|
-
allResults.push({
|
|
97
|
-
name: comp.name,
|
|
98
|
-
key: comp.key,
|
|
99
|
-
nodeId: comp.nodeId,
|
|
100
|
-
type: 'component',
|
|
101
|
-
description: comp.description,
|
|
102
|
-
category: inferCategory(name),
|
|
103
|
-
defaultSize: comp.defaultSize,
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
const total = allResults.length;
|
|
108
|
-
const paginatedResults = allResults.slice(offset, offset + limit);
|
|
109
|
-
const hasMore = offset + limit < total;
|
|
110
|
-
return { results: paginatedResults, total, hasMore };
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Infer category from component name (e.g., "Button/Primary" -> "Button")
|
|
114
|
-
*/
|
|
115
|
-
function inferCategory(name) {
|
|
116
|
-
const parts = name.split('/');
|
|
117
|
-
return parts[0] || 'Uncategorized';
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Get unique categories from manifest
|
|
121
|
-
*/
|
|
122
|
-
export function getCategories(manifest) {
|
|
123
|
-
const categories = new Map();
|
|
124
|
-
for (const name of Object.keys(manifest.componentSets)) {
|
|
125
|
-
const cat = inferCategory(name);
|
|
126
|
-
const existing = categories.get(cat) || { componentCount: 0, componentSetCount: 0 };
|
|
127
|
-
existing.componentSetCount++;
|
|
128
|
-
categories.set(cat, existing);
|
|
129
|
-
}
|
|
130
|
-
for (const name of Object.keys(manifest.components)) {
|
|
131
|
-
const cat = inferCategory(name);
|
|
132
|
-
const existing = categories.get(cat) || { componentCount: 0, componentSetCount: 0 };
|
|
133
|
-
existing.componentCount++;
|
|
134
|
-
categories.set(cat, existing);
|
|
135
|
-
}
|
|
136
|
-
return Array.from(categories.entries())
|
|
137
|
-
.map(([name, counts]) => ({ name, ...counts }))
|
|
138
|
-
.sort((a, b) => (b.componentCount + b.componentSetCount) - (a.componentCount + a.componentSetCount));
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Get token categories and counts for summary
|
|
142
|
-
*/
|
|
143
|
-
export function getTokenSummary(manifest) {
|
|
144
|
-
// Group colors by prefix (e.g., "primary/500" -> "primary")
|
|
145
|
-
const colorGroups = new Set();
|
|
146
|
-
for (const name of Object.keys(manifest.tokens.colors)) {
|
|
147
|
-
const group = name.split('/')[0];
|
|
148
|
-
colorGroups.add(group);
|
|
149
|
-
}
|
|
150
|
-
// Group typography by prefix
|
|
151
|
-
const typographyGroups = new Set();
|
|
152
|
-
for (const name of Object.keys(manifest.tokens.typography)) {
|
|
153
|
-
const group = name.split('/')[0];
|
|
154
|
-
typographyGroups.add(group);
|
|
155
|
-
}
|
|
156
|
-
// Get spacing scale values
|
|
157
|
-
const spacingValues = Object.values(manifest.tokens.spacing)
|
|
158
|
-
.map(t => t.value)
|
|
159
|
-
.filter((v, i, arr) => arr.indexOf(v) === i)
|
|
160
|
-
.sort((a, b) => a - b);
|
|
161
|
-
return {
|
|
162
|
-
colors: {
|
|
163
|
-
count: Object.keys(manifest.tokens.colors).length,
|
|
164
|
-
groups: Array.from(colorGroups).slice(0, 10),
|
|
165
|
-
},
|
|
166
|
-
spacing: {
|
|
167
|
-
count: Object.keys(manifest.tokens.spacing).length,
|
|
168
|
-
scale: spacingValues.slice(0, 15),
|
|
169
|
-
},
|
|
170
|
-
typography: {
|
|
171
|
-
count: Object.keys(manifest.tokens.typography).length,
|
|
172
|
-
groups: Array.from(typographyGroups).slice(0, 10),
|
|
173
|
-
},
|
|
174
|
-
effects: {
|
|
175
|
-
count: Object.keys(manifest.tokens.effects).length,
|
|
176
|
-
},
|
|
177
|
-
collections: manifest.collections.map(c => c.name),
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
|
-
// ============================================================================
|
|
181
|
-
// HELPER FUNCTIONS
|
|
182
|
-
// ============================================================================
|
|
183
|
-
/**
|
|
184
|
-
* Convert RGB color object to hex string
|
|
185
|
-
*/
|
|
186
|
-
export function rgbToHex(color) {
|
|
187
|
-
const toHex = (n) => Math.round(n * 255).toString(16).padStart(2, '0');
|
|
188
|
-
return `#${toHex(color.r)}${toHex(color.g)}${toHex(color.b)}`.toUpperCase();
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Parse a Figma color value to hex
|
|
192
|
-
*/
|
|
193
|
-
export function figmaColorToHex(value) {
|
|
194
|
-
if (typeof value === 'string')
|
|
195
|
-
return value;
|
|
196
|
-
if (value && typeof value === 'object' && 'r' in value) {
|
|
197
|
-
return rgbToHex(value);
|
|
198
|
-
}
|
|
199
|
-
return '#000000';
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* Generate a human-readable summary of the manifest
|
|
203
|
-
*/
|
|
204
|
-
export function generateManifestSummary(manifest) {
|
|
205
|
-
const lines = [
|
|
206
|
-
`# Design System Manifest`,
|
|
207
|
-
``,
|
|
208
|
-
`**File:** ${manifest.fileName || manifest.fileKey}`,
|
|
209
|
-
`**Generated:** ${new Date(manifest.generatedAt).toISOString()}`,
|
|
210
|
-
``,
|
|
211
|
-
`## Summary`,
|
|
212
|
-
`- **${manifest.summary.totalTokens}** design tokens`,
|
|
213
|
-
`- **${manifest.summary.totalComponents}** components`,
|
|
214
|
-
`- **${manifest.summary.totalComponentSets}** component sets`,
|
|
215
|
-
``,
|
|
216
|
-
`## Color Palette`,
|
|
217
|
-
manifest.summary.colorPalette.slice(0, 10).map(c => `- ${c}`).join('\n'),
|
|
218
|
-
``,
|
|
219
|
-
`## Spacing Scale`,
|
|
220
|
-
`${manifest.summary.spacingScale.join('px, ')}px`,
|
|
221
|
-
``,
|
|
222
|
-
`## Typography`,
|
|
223
|
-
manifest.summary.typographyScale.slice(0, 10).map(t => `- ${t}`).join('\n'),
|
|
224
|
-
``,
|
|
225
|
-
`## Component Categories`,
|
|
226
|
-
manifest.summary.componentCategories.map(c => `- ${c}`).join('\n'),
|
|
227
|
-
];
|
|
228
|
-
return lines.join('\n');
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Create an empty manifest template
|
|
232
|
-
*/
|
|
233
|
-
export function createEmptyManifest(fileKey) {
|
|
234
|
-
return {
|
|
235
|
-
version: '1.0.0',
|
|
236
|
-
generatedAt: Date.now(),
|
|
237
|
-
fileKey,
|
|
238
|
-
collections: [],
|
|
239
|
-
tokens: {
|
|
240
|
-
colors: {},
|
|
241
|
-
spacing: {},
|
|
242
|
-
typography: {},
|
|
243
|
-
effects: {},
|
|
244
|
-
other: {},
|
|
245
|
-
},
|
|
246
|
-
components: {},
|
|
247
|
-
componentSets: {},
|
|
248
|
-
patterns: {},
|
|
249
|
-
rules: [],
|
|
250
|
-
summary: {
|
|
251
|
-
totalTokens: 0,
|
|
252
|
-
totalComponents: 0,
|
|
253
|
-
totalComponentSets: 0,
|
|
254
|
-
colorPalette: [],
|
|
255
|
-
spacingScale: [],
|
|
256
|
-
typographyScale: [],
|
|
257
|
-
componentCategories: [],
|
|
258
|
-
},
|
|
259
|
-
};
|
|
260
|
-
}
|
|
261
|
-
//# sourceMappingURL=design-system-manifest.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"design-system-manifest.js","sourceRoot":"","sources":["../../src/core/design-system-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Enrichment Service
|
|
3
|
-
* Coordinates enrichment of Figma API responses
|
|
4
|
-
*/
|
|
5
|
-
import type pino from "pino";
|
|
6
|
-
import type { EnrichedStyle, EnrichedVariable, EnrichedComponent, EnrichedFileData, EnrichmentOptions } from "../types/enriched.js";
|
|
7
|
-
type Logger = pino.Logger;
|
|
8
|
-
export declare class EnrichmentService {
|
|
9
|
-
private logger;
|
|
10
|
-
private styleResolver;
|
|
11
|
-
private relationshipMapper;
|
|
12
|
-
private fileDataCache;
|
|
13
|
-
private lastEnrichmentTime;
|
|
14
|
-
private CACHE_TTL_MS;
|
|
15
|
-
constructor(logger: Logger);
|
|
16
|
-
/**
|
|
17
|
-
* Enrich styles response
|
|
18
|
-
*/
|
|
19
|
-
enrichStyles(styles: any[], fileKey: string, options?: EnrichmentOptions, fileData?: any): Promise<EnrichedStyle[]>;
|
|
20
|
-
/**
|
|
21
|
-
* Enrich variables response
|
|
22
|
-
*/
|
|
23
|
-
enrichVariables(variables: any[], fileKey: string, options?: EnrichmentOptions, fileData?: any): Promise<EnrichedVariable[]>;
|
|
24
|
-
/**
|
|
25
|
-
* Enrich component response
|
|
26
|
-
*/
|
|
27
|
-
enrichComponent(component: any, fileKey: string, options?: EnrichmentOptions, fileData?: any): Promise<EnrichedComponent>;
|
|
28
|
-
/**
|
|
29
|
-
* Enrich file data response
|
|
30
|
-
*/
|
|
31
|
-
enrichFileData(fileData: any, options?: EnrichmentOptions): Promise<EnrichedFileData>;
|
|
32
|
-
/**
|
|
33
|
-
* Get file data for enrichment (with caching)
|
|
34
|
-
* NOTE: This is a placeholder that returns the data passed in
|
|
35
|
-
* In a full implementation, this would fetch fresh data from Figma API
|
|
36
|
-
*/
|
|
37
|
-
private getFileDataForEnrichment;
|
|
38
|
-
/**
|
|
39
|
-
* Set file data in cache (called by tools that already have the data)
|
|
40
|
-
*/
|
|
41
|
-
setFileDataCache(fileKey: string, fileData: any): void;
|
|
42
|
-
/**
|
|
43
|
-
* Extract variables as a Map for efficient lookup
|
|
44
|
-
*/
|
|
45
|
-
private extractVariablesMap;
|
|
46
|
-
/**
|
|
47
|
-
* Clear all caches
|
|
48
|
-
*/
|
|
49
|
-
clearCache(): void;
|
|
50
|
-
}
|
|
51
|
-
export {};
|
|
52
|
-
//# sourceMappingURL=enrichment-service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"enrichment-service.d.ts","sourceRoot":"","sources":["../../../src/core/enrichment/enrichment-service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,OAAO,KAAK,EACX,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAEjB,MAAM,sBAAsB,CAAC;AAE9B,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAE1B,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,kBAAkB,CAAqB;IAG/C,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,kBAAkB,CAAkC;IAC5D,OAAO,CAAC,YAAY,CAAiB;gBAEzB,MAAM,EAAE,MAAM;IAM1B;;OAEG;IACG,YAAY,CACjB,MAAM,EAAE,GAAG,EAAE,EACb,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,iBAAsB,EAC/B,QAAQ,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,aAAa,EAAE,CAAC;IAsE3B;;OAEG;IACG,eAAe,CACpB,SAAS,EAAE,GAAG,EAAE,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,iBAAsB,EAC/B,QAAQ,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAgF9B;;OAEG;IACG,eAAe,CACpB,SAAS,EAAE,GAAG,EACd,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,iBAAsB,EAC/B,QAAQ,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,iBAAiB,CAAC;IAgE7B;;OAEG;IACG,cAAc,CACnB,QAAQ,EAAE,GAAG,EACb,OAAO,GAAE,iBAAsB,GAC7B,OAAO,CAAC,gBAAgB,CAAC;IAqD5B;;;;OAIG;YACW,wBAAwB;IA2BtC;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAKtD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,UAAU,IAAI,IAAI;CAMlB"}
|