@fragments-sdk/cli 0.2.2
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/LICENSE +21 -0
- package/README.md +106 -0
- package/dist/bin.d.ts +1 -0
- package/dist/bin.js +4783 -0
- package/dist/bin.js.map +1 -0
- package/dist/chunk-4FDQSGKX.js +786 -0
- package/dist/chunk-4FDQSGKX.js.map +1 -0
- package/dist/chunk-7H2MMGYG.js +369 -0
- package/dist/chunk-7H2MMGYG.js.map +1 -0
- package/dist/chunk-BSCG3IP7.js +619 -0
- package/dist/chunk-BSCG3IP7.js.map +1 -0
- package/dist/chunk-LY2CFFPY.js +898 -0
- package/dist/chunk-LY2CFFPY.js.map +1 -0
- package/dist/chunk-MUZ6CM66.js +6636 -0
- package/dist/chunk-MUZ6CM66.js.map +1 -0
- package/dist/chunk-OAENNG3G.js +1489 -0
- package/dist/chunk-OAENNG3G.js.map +1 -0
- package/dist/chunk-XHNKNI6J.js +235 -0
- package/dist/chunk-XHNKNI6J.js.map +1 -0
- package/dist/core-DWKLGY4N.js +68 -0
- package/dist/core-DWKLGY4N.js.map +1 -0
- package/dist/generate-4LQNJ7SX.js +249 -0
- package/dist/generate-4LQNJ7SX.js.map +1 -0
- package/dist/index.d.ts +775 -0
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -0
- package/dist/init-EMVI47QG.js +416 -0
- package/dist/init-EMVI47QG.js.map +1 -0
- package/dist/mcp-bin.d.ts +1 -0
- package/dist/mcp-bin.js +1117 -0
- package/dist/mcp-bin.js.map +1 -0
- package/dist/scan-4YPRF7FV.js +12 -0
- package/dist/scan-4YPRF7FV.js.map +1 -0
- package/dist/service-QSZMZJBJ.js +208 -0
- package/dist/service-QSZMZJBJ.js.map +1 -0
- package/dist/static-viewer-MIPGZ4Z7.js +12 -0
- package/dist/static-viewer-MIPGZ4Z7.js.map +1 -0
- package/dist/test-SQ5ZHXWU.js +1067 -0
- package/dist/test-SQ5ZHXWU.js.map +1 -0
- package/dist/tokens-HSGMYK64.js +173 -0
- package/dist/tokens-HSGMYK64.js.map +1 -0
- package/dist/viewer-YRF4SQE4.js +11101 -0
- package/dist/viewer-YRF4SQE4.js.map +1 -0
- package/package.json +107 -0
- package/src/ai.ts +266 -0
- package/src/analyze.ts +265 -0
- package/src/bin.ts +916 -0
- package/src/build.ts +248 -0
- package/src/commands/a11y.ts +302 -0
- package/src/commands/add.ts +313 -0
- package/src/commands/audit.ts +195 -0
- package/src/commands/baseline.ts +221 -0
- package/src/commands/build.ts +144 -0
- package/src/commands/compare.ts +337 -0
- package/src/commands/context.ts +107 -0
- package/src/commands/dev.ts +107 -0
- package/src/commands/enhance.ts +858 -0
- package/src/commands/generate.ts +391 -0
- package/src/commands/init.ts +531 -0
- package/src/commands/link/figma.ts +645 -0
- package/src/commands/link/index.ts +10 -0
- package/src/commands/link/storybook.ts +267 -0
- package/src/commands/list.ts +49 -0
- package/src/commands/metrics.ts +114 -0
- package/src/commands/reset.ts +242 -0
- package/src/commands/scan.ts +537 -0
- package/src/commands/storygen.ts +207 -0
- package/src/commands/tokens.ts +251 -0
- package/src/commands/validate.ts +93 -0
- package/src/commands/verify.ts +215 -0
- package/src/core/composition.test.ts +262 -0
- package/src/core/composition.ts +255 -0
- package/src/core/config.ts +84 -0
- package/src/core/constants.ts +111 -0
- package/src/core/context.ts +380 -0
- package/src/core/defineSegment.ts +137 -0
- package/src/core/discovery.ts +337 -0
- package/src/core/figma.ts +263 -0
- package/src/core/fragment-types.ts +214 -0
- package/src/core/generators/context.ts +389 -0
- package/src/core/generators/index.ts +23 -0
- package/src/core/generators/registry.ts +364 -0
- package/src/core/generators/typescript-extractor.ts +374 -0
- package/src/core/importAnalyzer.ts +217 -0
- package/src/core/index.ts +149 -0
- package/src/core/loader.ts +155 -0
- package/src/core/node.ts +63 -0
- package/src/core/parser.ts +551 -0
- package/src/core/previewLoader.ts +172 -0
- package/src/core/schema/fragment.schema.json +189 -0
- package/src/core/schema/registry.schema.json +137 -0
- package/src/core/schema.ts +182 -0
- package/src/core/storyAdapter.test.ts +571 -0
- package/src/core/storyAdapter.ts +761 -0
- package/src/core/token-types.ts +287 -0
- package/src/core/types.ts +754 -0
- package/src/diff.ts +323 -0
- package/src/index.ts +43 -0
- package/src/mcp/__tests__/projectFields.test.ts +130 -0
- package/src/mcp/bin.ts +36 -0
- package/src/mcp/index.ts +8 -0
- package/src/mcp/server.ts +1310 -0
- package/src/mcp/utils.ts +54 -0
- package/src/mcp-bin.ts +36 -0
- package/src/migrate/__tests__/argTypes/argTypes.test.ts +189 -0
- package/src/migrate/__tests__/args/args.test.ts +452 -0
- package/src/migrate/__tests__/meta/meta.test.ts +198 -0
- package/src/migrate/__tests__/stories/stories.test.ts +278 -0
- package/src/migrate/__tests__/utils/utils.test.ts +371 -0
- package/src/migrate/__tests__/values/values.test.ts +303 -0
- package/src/migrate/bin.ts +108 -0
- package/src/migrate/converter.ts +658 -0
- package/src/migrate/detect.ts +196 -0
- package/src/migrate/index.ts +45 -0
- package/src/migrate/migrate.ts +163 -0
- package/src/migrate/parser.ts +1136 -0
- package/src/migrate/report.ts +624 -0
- package/src/migrate/types.ts +169 -0
- package/src/screenshot.ts +249 -0
- package/src/service/__tests__/ast-utils.test.ts +426 -0
- package/src/service/__tests__/enhance-scanner.test.ts +200 -0
- package/src/service/__tests__/figma/figma.test.ts +652 -0
- package/src/service/__tests__/metrics-store.test.ts +409 -0
- package/src/service/__tests__/patch-generator.test.ts +186 -0
- package/src/service/__tests__/props-extractor.test.ts +365 -0
- package/src/service/__tests__/token-registry.test.ts +267 -0
- package/src/service/analytics.ts +659 -0
- package/src/service/ast-utils.ts +444 -0
- package/src/service/browser-pool.ts +339 -0
- package/src/service/capture.ts +267 -0
- package/src/service/diff.ts +279 -0
- package/src/service/enhance/aggregator.ts +489 -0
- package/src/service/enhance/cache.ts +275 -0
- package/src/service/enhance/codebase-scanner.ts +357 -0
- package/src/service/enhance/context-generator.ts +529 -0
- package/src/service/enhance/doc-extractor.ts +523 -0
- package/src/service/enhance/index.ts +131 -0
- package/src/service/enhance/props-extractor.ts +665 -0
- package/src/service/enhance/scanner.ts +445 -0
- package/src/service/enhance/storybook-parser.ts +552 -0
- package/src/service/enhance/types.ts +346 -0
- package/src/service/enhance/variant-renderer.ts +479 -0
- package/src/service/figma.ts +1008 -0
- package/src/service/index.ts +249 -0
- package/src/service/metrics-store.ts +333 -0
- package/src/service/patch-generator.ts +349 -0
- package/src/service/report.ts +854 -0
- package/src/service/storage.ts +401 -0
- package/src/service/token-fixes.ts +281 -0
- package/src/service/token-parser.ts +504 -0
- package/src/service/token-registry.ts +721 -0
- package/src/service/utils.ts +172 -0
- package/src/setup.ts +241 -0
- package/src/shared/command-wrapper.ts +81 -0
- package/src/shared/dev-server-client.ts +199 -0
- package/src/shared/index.ts +8 -0
- package/src/shared/segment-loader.ts +59 -0
- package/src/shared/types.ts +147 -0
- package/src/static-viewer.ts +715 -0
- package/src/test/discovery.ts +172 -0
- package/src/test/index.ts +281 -0
- package/src/test/reporters/console.ts +194 -0
- package/src/test/reporters/json.ts +190 -0
- package/src/test/reporters/junit.ts +186 -0
- package/src/test/runner.ts +598 -0
- package/src/test/types.ts +245 -0
- package/src/test/watch.ts +200 -0
- package/src/validators.ts +152 -0
- package/src/viewer/__tests__/jsx-parser.test.ts +502 -0
- package/src/viewer/__tests__/render-utils.test.ts +232 -0
- package/src/viewer/__tests__/style-utils.test.ts +404 -0
- package/src/viewer/bin.ts +86 -0
- package/src/viewer/cli/health.ts +256 -0
- package/src/viewer/cli/index.ts +33 -0
- package/src/viewer/cli/scan.ts +124 -0
- package/src/viewer/cli/utils.ts +174 -0
- package/src/viewer/components/AccessibilityPanel.tsx +1404 -0
- package/src/viewer/components/ActionCapture.tsx +172 -0
- package/src/viewer/components/ActionsPanel.tsx +371 -0
- package/src/viewer/components/App.tsx +638 -0
- package/src/viewer/components/BottomPanel.tsx +224 -0
- package/src/viewer/components/CodePanel.tsx +589 -0
- package/src/viewer/components/CommandPalette.tsx +336 -0
- package/src/viewer/components/ComponentGraph.tsx +394 -0
- package/src/viewer/components/ComponentHeader.tsx +85 -0
- package/src/viewer/components/ContractPanel.tsx +234 -0
- package/src/viewer/components/ErrorBoundary.tsx +85 -0
- package/src/viewer/components/FigmaEmbed.tsx +231 -0
- package/src/viewer/components/FragmentEditor.tsx +485 -0
- package/src/viewer/components/HealthDashboard.tsx +452 -0
- package/src/viewer/components/HmrStatusIndicator.tsx +71 -0
- package/src/viewer/components/Icons.tsx +417 -0
- package/src/viewer/components/InteractionsPanel.tsx +720 -0
- package/src/viewer/components/IsolatedPreviewFrame.tsx +321 -0
- package/src/viewer/components/IsolatedRender.tsx +111 -0
- package/src/viewer/components/KeyboardShortcutsHelp.tsx +89 -0
- package/src/viewer/components/LandingPage.tsx +441 -0
- package/src/viewer/components/Layout.tsx +22 -0
- package/src/viewer/components/LeftSidebar.tsx +391 -0
- package/src/viewer/components/MultiViewportPreview.tsx +429 -0
- package/src/viewer/components/PreviewArea.tsx +404 -0
- package/src/viewer/components/PreviewFrameHost.tsx +310 -0
- package/src/viewer/components/PreviewPane.tsx +150 -0
- package/src/viewer/components/PreviewToolbar.tsx +176 -0
- package/src/viewer/components/PropsEditor.tsx +512 -0
- package/src/viewer/components/PropsTable.tsx +98 -0
- package/src/viewer/components/RelationsSection.tsx +57 -0
- package/src/viewer/components/ResizablePanel.tsx +328 -0
- package/src/viewer/components/RightSidebar.tsx +118 -0
- package/src/viewer/components/ScreenshotButton.tsx +90 -0
- package/src/viewer/components/Sidebar.tsx +169 -0
- package/src/viewer/components/SkeletonLoader.tsx +156 -0
- package/src/viewer/components/StoryRenderer.tsx +128 -0
- package/src/viewer/components/ThemeProvider.tsx +96 -0
- package/src/viewer/components/Toast.tsx +67 -0
- package/src/viewer/components/TokenStylePanel.tsx +708 -0
- package/src/viewer/components/UsageSection.tsx +95 -0
- package/src/viewer/components/VariantMatrix.tsx +350 -0
- package/src/viewer/components/VariantRenderer.tsx +131 -0
- package/src/viewer/components/VariantTabs.tsx +84 -0
- package/src/viewer/components/ViewportSelector.tsx +165 -0
- package/src/viewer/components/_future/CreatePage.tsx +836 -0
- package/src/viewer/composition-renderer.ts +381 -0
- package/src/viewer/constants/index.ts +1 -0
- package/src/viewer/constants/ui.ts +185 -0
- package/src/viewer/entry.tsx +299 -0
- package/src/viewer/hooks/index.ts +2 -0
- package/src/viewer/hooks/useA11yCache.ts +383 -0
- package/src/viewer/hooks/useA11yService.ts +498 -0
- package/src/viewer/hooks/useActions.ts +138 -0
- package/src/viewer/hooks/useAppState.ts +124 -0
- package/src/viewer/hooks/useFigmaIntegration.ts +132 -0
- package/src/viewer/hooks/useHmrStatus.ts +109 -0
- package/src/viewer/hooks/useKeyboardShortcuts.ts +222 -0
- package/src/viewer/hooks/usePreviewBridge.ts +347 -0
- package/src/viewer/hooks/useScrollSpy.ts +78 -0
- package/src/viewer/hooks/useUrlState.ts +330 -0
- package/src/viewer/hooks/useViewSettings.ts +125 -0
- package/src/viewer/index.html +28 -0
- package/src/viewer/index.ts +14 -0
- package/src/viewer/intelligence/healthReport.ts +505 -0
- package/src/viewer/intelligence/styleDrift.ts +340 -0
- package/src/viewer/intelligence/usageScanner.ts +309 -0
- package/src/viewer/jsx-parser.ts +485 -0
- package/src/viewer/postcss.config.js +6 -0
- package/src/viewer/preview-frame-entry.tsx +25 -0
- package/src/viewer/preview-frame.html +109 -0
- package/src/viewer/render-template.html +68 -0
- package/src/viewer/render-utils.ts +170 -0
- package/src/viewer/server.ts +276 -0
- package/src/viewer/style-utils.ts +414 -0
- package/src/viewer/styles/globals.css +355 -0
- package/src/viewer/tailwind.config.js +37 -0
- package/src/viewer/types/a11y.ts +197 -0
- package/src/viewer/utils/a11y-fixes.ts +471 -0
- package/src/viewer/utils/actionExport.ts +372 -0
- package/src/viewer/utils/colorSchemes.ts +201 -0
- package/src/viewer/utils/detectRelationships.ts +256 -0
- package/src/viewer/vite-plugin.ts +2143 -0
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Design Token Types for Fragments
|
|
3
|
+
*
|
|
4
|
+
* These types define the structure for CSS custom property (CSS variable) discovery,
|
|
5
|
+
* parsing, and reverse lookup capabilities. The token system enables:
|
|
6
|
+
*
|
|
7
|
+
* 1. Automatic discovery of design tokens from CSS/SCSS files
|
|
8
|
+
* 2. Reverse lookup: given a computed value, find which token(s) produce it
|
|
9
|
+
* 3. Detection of hardcoded values vs token usage
|
|
10
|
+
* 4. AI-friendly fix suggestions
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Token categories for grouping and filtering
|
|
15
|
+
*/
|
|
16
|
+
export type TokenCategory =
|
|
17
|
+
| "color"
|
|
18
|
+
| "spacing"
|
|
19
|
+
| "typography"
|
|
20
|
+
| "radius"
|
|
21
|
+
| "shadow"
|
|
22
|
+
| "sizing"
|
|
23
|
+
| "border"
|
|
24
|
+
| "animation"
|
|
25
|
+
| "z-index"
|
|
26
|
+
| "other";
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* A single design token (CSS custom property)
|
|
30
|
+
*/
|
|
31
|
+
export interface DesignToken {
|
|
32
|
+
/** Token name with leading dashes (e.g., "--color-primary") */
|
|
33
|
+
name: string;
|
|
34
|
+
|
|
35
|
+
/** Raw value as written in CSS (e.g., "var(--color-cobalt-50)") */
|
|
36
|
+
rawValue: string;
|
|
37
|
+
|
|
38
|
+
/** Fully resolved value (e.g., "#0051c2") */
|
|
39
|
+
resolvedValue: string;
|
|
40
|
+
|
|
41
|
+
/** Inferred category based on naming convention */
|
|
42
|
+
category: TokenCategory;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Token level in the design system hierarchy:
|
|
46
|
+
* - 1 = Base/primitive tokens (raw values like colors, sizes)
|
|
47
|
+
* - 2 = Semantic tokens (references to base tokens with meaning)
|
|
48
|
+
* - 3 = Component tokens (component-specific tokens)
|
|
49
|
+
*/
|
|
50
|
+
level: 1 | 2 | 3;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Reference chain showing how the value was resolved
|
|
54
|
+
* e.g., ["--color-primary", "--color-cobalt-50"] means
|
|
55
|
+
* --color-primary references --color-cobalt-50
|
|
56
|
+
*/
|
|
57
|
+
referenceChain: string[];
|
|
58
|
+
|
|
59
|
+
/** Source file where this token was defined */
|
|
60
|
+
sourceFile: string;
|
|
61
|
+
|
|
62
|
+
/** Line number in source file */
|
|
63
|
+
lineNumber?: number;
|
|
64
|
+
|
|
65
|
+
/** Theme this token belongs to (e.g., "default", "dark", "light") */
|
|
66
|
+
theme: string;
|
|
67
|
+
|
|
68
|
+
/** CSS selector where this token is defined (e.g., ":root", "[data-theme='dark']") */
|
|
69
|
+
selector: string;
|
|
70
|
+
|
|
71
|
+
/** Optional description from comments */
|
|
72
|
+
description?: string;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Token registry for fast lookups
|
|
77
|
+
*/
|
|
78
|
+
export interface TokenRegistry {
|
|
79
|
+
/** Lookup by token name (e.g., "--color-primary") */
|
|
80
|
+
byName: Map<string, DesignToken>;
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* REVERSE lookup: resolved value -> token names
|
|
84
|
+
* Key is normalized value (e.g., "#0051c2" lowercase)
|
|
85
|
+
* Value is array of token names that resolve to this value
|
|
86
|
+
*/
|
|
87
|
+
byValue: Map<string, string[]>;
|
|
88
|
+
|
|
89
|
+
/** Tokens grouped by theme */
|
|
90
|
+
byTheme: Map<string, DesignToken[]>;
|
|
91
|
+
|
|
92
|
+
/** Tokens grouped by category */
|
|
93
|
+
byCategory: Map<TokenCategory, DesignToken[]>;
|
|
94
|
+
|
|
95
|
+
/** Registry metadata */
|
|
96
|
+
meta: TokenRegistryMeta;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Token registry metadata
|
|
101
|
+
*/
|
|
102
|
+
export interface TokenRegistryMeta {
|
|
103
|
+
/** When tokens were discovered */
|
|
104
|
+
discoveredAt: Date;
|
|
105
|
+
|
|
106
|
+
/** Source files that were parsed */
|
|
107
|
+
sourceFiles: string[];
|
|
108
|
+
|
|
109
|
+
/** Total number of tokens discovered */
|
|
110
|
+
totalTokens: number;
|
|
111
|
+
|
|
112
|
+
/** Time taken to parse (ms) */
|
|
113
|
+
parseTimeMs: number;
|
|
114
|
+
|
|
115
|
+
/** Number of circular references detected */
|
|
116
|
+
circularRefs: number;
|
|
117
|
+
|
|
118
|
+
/** Number of unresolved references */
|
|
119
|
+
unresolvedRefs: number;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Enhanced style diff item with token information
|
|
124
|
+
*/
|
|
125
|
+
export interface EnhancedStyleDiffItem {
|
|
126
|
+
/** CSS property name (e.g., "backgroundColor") */
|
|
127
|
+
property: string;
|
|
128
|
+
|
|
129
|
+
/** Value from Figma design */
|
|
130
|
+
figma: string;
|
|
131
|
+
|
|
132
|
+
/** Value from rendered component */
|
|
133
|
+
rendered: string;
|
|
134
|
+
|
|
135
|
+
/** Whether values match (within tolerance) */
|
|
136
|
+
match: boolean;
|
|
137
|
+
|
|
138
|
+
/** Token name if Figma value matches a known token */
|
|
139
|
+
figmaToken?: string;
|
|
140
|
+
|
|
141
|
+
/** Token name if rendered value uses a token */
|
|
142
|
+
renderedToken?: string;
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* True if rendered value doesn't use a token but should
|
|
146
|
+
* (i.e., Figma uses a token but code uses hardcoded value)
|
|
147
|
+
*/
|
|
148
|
+
isHardcoded: boolean;
|
|
149
|
+
|
|
150
|
+
/** Suggested fix if hardcoded */
|
|
151
|
+
suggestedFix?: TokenFix;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Token-based fix suggestion
|
|
156
|
+
*/
|
|
157
|
+
export interface TokenFix {
|
|
158
|
+
/** Token name to use (e.g., "--color-primary") */
|
|
159
|
+
tokenName: string;
|
|
160
|
+
|
|
161
|
+
/** Token's resolved value */
|
|
162
|
+
tokenValue: string;
|
|
163
|
+
|
|
164
|
+
/** Code snippet to fix the issue */
|
|
165
|
+
codeFix: string;
|
|
166
|
+
|
|
167
|
+
/** Confidence score 0-1 */
|
|
168
|
+
confidence: number;
|
|
169
|
+
|
|
170
|
+
/** Human-readable explanation */
|
|
171
|
+
reason: string;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Configuration for token discovery
|
|
176
|
+
*/
|
|
177
|
+
export interface TokenConfig {
|
|
178
|
+
/**
|
|
179
|
+
* Glob patterns for files to scan for tokens
|
|
180
|
+
* e.g., ["src/styles/theme.scss", "src/styles/variables.css"]
|
|
181
|
+
*/
|
|
182
|
+
include: string[];
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Glob patterns to exclude
|
|
186
|
+
* @example ["node_modules"]
|
|
187
|
+
*/
|
|
188
|
+
exclude?: string[];
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Map CSS selectors to theme names
|
|
192
|
+
* @example { ":root": "default", "[data-theme='dark']": "dark" }
|
|
193
|
+
*/
|
|
194
|
+
themeSelectors?: Record<string, string>;
|
|
195
|
+
|
|
196
|
+
/** Enable token comparison in style diffs (default: true) */
|
|
197
|
+
enabled?: boolean;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Result of parsing a CSS/SCSS file for tokens
|
|
202
|
+
*/
|
|
203
|
+
export interface TokenParseResult {
|
|
204
|
+
/** Tokens discovered in the file */
|
|
205
|
+
tokens: DesignToken[];
|
|
206
|
+
|
|
207
|
+
/** Errors encountered during parsing */
|
|
208
|
+
errors: TokenParseError[];
|
|
209
|
+
|
|
210
|
+
/** Warnings (non-fatal issues) */
|
|
211
|
+
warnings: string[];
|
|
212
|
+
|
|
213
|
+
/** Parse time in ms */
|
|
214
|
+
parseTimeMs: number;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Error during token parsing
|
|
219
|
+
*/
|
|
220
|
+
export interface TokenParseError {
|
|
221
|
+
/** Error message */
|
|
222
|
+
message: string;
|
|
223
|
+
|
|
224
|
+
/** File where error occurred */
|
|
225
|
+
file: string;
|
|
226
|
+
|
|
227
|
+
/** Line number if known */
|
|
228
|
+
line?: number;
|
|
229
|
+
|
|
230
|
+
/** The problematic content if available */
|
|
231
|
+
content?: string;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Request to match a value to tokens
|
|
236
|
+
*/
|
|
237
|
+
export interface TokenMatchRequest {
|
|
238
|
+
/** The value to find tokens for (e.g., "#0051c2") */
|
|
239
|
+
value: string;
|
|
240
|
+
|
|
241
|
+
/** Property type hint for better matching (e.g., "color") */
|
|
242
|
+
propertyType?: "color" | "spacing" | "typography" | "other";
|
|
243
|
+
|
|
244
|
+
/** Specific theme to search in */
|
|
245
|
+
theme?: string;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* Result of token matching
|
|
250
|
+
*/
|
|
251
|
+
export interface TokenMatchResult {
|
|
252
|
+
/** Exact matches (same resolved value) */
|
|
253
|
+
exactMatches: DesignToken[];
|
|
254
|
+
|
|
255
|
+
/** Close matches (similar value, useful for colors) */
|
|
256
|
+
closeMatches: Array<{
|
|
257
|
+
token: DesignToken;
|
|
258
|
+
/** How close the match is (0-1, 1 = exact) */
|
|
259
|
+
similarity: number;
|
|
260
|
+
}>;
|
|
261
|
+
|
|
262
|
+
/** Whether any match was found */
|
|
263
|
+
found: boolean;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Summary of token usage in a component
|
|
268
|
+
*/
|
|
269
|
+
export interface TokenUsageSummary {
|
|
270
|
+
/** Total CSS properties checked */
|
|
271
|
+
totalProperties: number;
|
|
272
|
+
|
|
273
|
+
/** Properties using design tokens */
|
|
274
|
+
usingTokens: number;
|
|
275
|
+
|
|
276
|
+
/** Properties with hardcoded values */
|
|
277
|
+
hardcoded: number;
|
|
278
|
+
|
|
279
|
+
/** Properties matching but not using tokens explicitly */
|
|
280
|
+
implicitMatches: number;
|
|
281
|
+
|
|
282
|
+
/** Compliance percentage (usingTokens / totalProperties * 100) */
|
|
283
|
+
compliancePercent: number;
|
|
284
|
+
|
|
285
|
+
/** List of hardcoded properties with fix suggestions */
|
|
286
|
+
hardcodedProperties: EnhancedStyleDiffItem[];
|
|
287
|
+
}
|