@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.
Files changed (259) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +106 -0
  3. package/dist/bin.d.ts +1 -0
  4. package/dist/bin.js +4783 -0
  5. package/dist/bin.js.map +1 -0
  6. package/dist/chunk-4FDQSGKX.js +786 -0
  7. package/dist/chunk-4FDQSGKX.js.map +1 -0
  8. package/dist/chunk-7H2MMGYG.js +369 -0
  9. package/dist/chunk-7H2MMGYG.js.map +1 -0
  10. package/dist/chunk-BSCG3IP7.js +619 -0
  11. package/dist/chunk-BSCG3IP7.js.map +1 -0
  12. package/dist/chunk-LY2CFFPY.js +898 -0
  13. package/dist/chunk-LY2CFFPY.js.map +1 -0
  14. package/dist/chunk-MUZ6CM66.js +6636 -0
  15. package/dist/chunk-MUZ6CM66.js.map +1 -0
  16. package/dist/chunk-OAENNG3G.js +1489 -0
  17. package/dist/chunk-OAENNG3G.js.map +1 -0
  18. package/dist/chunk-XHNKNI6J.js +235 -0
  19. package/dist/chunk-XHNKNI6J.js.map +1 -0
  20. package/dist/core-DWKLGY4N.js +68 -0
  21. package/dist/core-DWKLGY4N.js.map +1 -0
  22. package/dist/generate-4LQNJ7SX.js +249 -0
  23. package/dist/generate-4LQNJ7SX.js.map +1 -0
  24. package/dist/index.d.ts +775 -0
  25. package/dist/index.js +41 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/init-EMVI47QG.js +416 -0
  28. package/dist/init-EMVI47QG.js.map +1 -0
  29. package/dist/mcp-bin.d.ts +1 -0
  30. package/dist/mcp-bin.js +1117 -0
  31. package/dist/mcp-bin.js.map +1 -0
  32. package/dist/scan-4YPRF7FV.js +12 -0
  33. package/dist/scan-4YPRF7FV.js.map +1 -0
  34. package/dist/service-QSZMZJBJ.js +208 -0
  35. package/dist/service-QSZMZJBJ.js.map +1 -0
  36. package/dist/static-viewer-MIPGZ4Z7.js +12 -0
  37. package/dist/static-viewer-MIPGZ4Z7.js.map +1 -0
  38. package/dist/test-SQ5ZHXWU.js +1067 -0
  39. package/dist/test-SQ5ZHXWU.js.map +1 -0
  40. package/dist/tokens-HSGMYK64.js +173 -0
  41. package/dist/tokens-HSGMYK64.js.map +1 -0
  42. package/dist/viewer-YRF4SQE4.js +11101 -0
  43. package/dist/viewer-YRF4SQE4.js.map +1 -0
  44. package/package.json +107 -0
  45. package/src/ai.ts +266 -0
  46. package/src/analyze.ts +265 -0
  47. package/src/bin.ts +916 -0
  48. package/src/build.ts +248 -0
  49. package/src/commands/a11y.ts +302 -0
  50. package/src/commands/add.ts +313 -0
  51. package/src/commands/audit.ts +195 -0
  52. package/src/commands/baseline.ts +221 -0
  53. package/src/commands/build.ts +144 -0
  54. package/src/commands/compare.ts +337 -0
  55. package/src/commands/context.ts +107 -0
  56. package/src/commands/dev.ts +107 -0
  57. package/src/commands/enhance.ts +858 -0
  58. package/src/commands/generate.ts +391 -0
  59. package/src/commands/init.ts +531 -0
  60. package/src/commands/link/figma.ts +645 -0
  61. package/src/commands/link/index.ts +10 -0
  62. package/src/commands/link/storybook.ts +267 -0
  63. package/src/commands/list.ts +49 -0
  64. package/src/commands/metrics.ts +114 -0
  65. package/src/commands/reset.ts +242 -0
  66. package/src/commands/scan.ts +537 -0
  67. package/src/commands/storygen.ts +207 -0
  68. package/src/commands/tokens.ts +251 -0
  69. package/src/commands/validate.ts +93 -0
  70. package/src/commands/verify.ts +215 -0
  71. package/src/core/composition.test.ts +262 -0
  72. package/src/core/composition.ts +255 -0
  73. package/src/core/config.ts +84 -0
  74. package/src/core/constants.ts +111 -0
  75. package/src/core/context.ts +380 -0
  76. package/src/core/defineSegment.ts +137 -0
  77. package/src/core/discovery.ts +337 -0
  78. package/src/core/figma.ts +263 -0
  79. package/src/core/fragment-types.ts +214 -0
  80. package/src/core/generators/context.ts +389 -0
  81. package/src/core/generators/index.ts +23 -0
  82. package/src/core/generators/registry.ts +364 -0
  83. package/src/core/generators/typescript-extractor.ts +374 -0
  84. package/src/core/importAnalyzer.ts +217 -0
  85. package/src/core/index.ts +149 -0
  86. package/src/core/loader.ts +155 -0
  87. package/src/core/node.ts +63 -0
  88. package/src/core/parser.ts +551 -0
  89. package/src/core/previewLoader.ts +172 -0
  90. package/src/core/schema/fragment.schema.json +189 -0
  91. package/src/core/schema/registry.schema.json +137 -0
  92. package/src/core/schema.ts +182 -0
  93. package/src/core/storyAdapter.test.ts +571 -0
  94. package/src/core/storyAdapter.ts +761 -0
  95. package/src/core/token-types.ts +287 -0
  96. package/src/core/types.ts +754 -0
  97. package/src/diff.ts +323 -0
  98. package/src/index.ts +43 -0
  99. package/src/mcp/__tests__/projectFields.test.ts +130 -0
  100. package/src/mcp/bin.ts +36 -0
  101. package/src/mcp/index.ts +8 -0
  102. package/src/mcp/server.ts +1310 -0
  103. package/src/mcp/utils.ts +54 -0
  104. package/src/mcp-bin.ts +36 -0
  105. package/src/migrate/__tests__/argTypes/argTypes.test.ts +189 -0
  106. package/src/migrate/__tests__/args/args.test.ts +452 -0
  107. package/src/migrate/__tests__/meta/meta.test.ts +198 -0
  108. package/src/migrate/__tests__/stories/stories.test.ts +278 -0
  109. package/src/migrate/__tests__/utils/utils.test.ts +371 -0
  110. package/src/migrate/__tests__/values/values.test.ts +303 -0
  111. package/src/migrate/bin.ts +108 -0
  112. package/src/migrate/converter.ts +658 -0
  113. package/src/migrate/detect.ts +196 -0
  114. package/src/migrate/index.ts +45 -0
  115. package/src/migrate/migrate.ts +163 -0
  116. package/src/migrate/parser.ts +1136 -0
  117. package/src/migrate/report.ts +624 -0
  118. package/src/migrate/types.ts +169 -0
  119. package/src/screenshot.ts +249 -0
  120. package/src/service/__tests__/ast-utils.test.ts +426 -0
  121. package/src/service/__tests__/enhance-scanner.test.ts +200 -0
  122. package/src/service/__tests__/figma/figma.test.ts +652 -0
  123. package/src/service/__tests__/metrics-store.test.ts +409 -0
  124. package/src/service/__tests__/patch-generator.test.ts +186 -0
  125. package/src/service/__tests__/props-extractor.test.ts +365 -0
  126. package/src/service/__tests__/token-registry.test.ts +267 -0
  127. package/src/service/analytics.ts +659 -0
  128. package/src/service/ast-utils.ts +444 -0
  129. package/src/service/browser-pool.ts +339 -0
  130. package/src/service/capture.ts +267 -0
  131. package/src/service/diff.ts +279 -0
  132. package/src/service/enhance/aggregator.ts +489 -0
  133. package/src/service/enhance/cache.ts +275 -0
  134. package/src/service/enhance/codebase-scanner.ts +357 -0
  135. package/src/service/enhance/context-generator.ts +529 -0
  136. package/src/service/enhance/doc-extractor.ts +523 -0
  137. package/src/service/enhance/index.ts +131 -0
  138. package/src/service/enhance/props-extractor.ts +665 -0
  139. package/src/service/enhance/scanner.ts +445 -0
  140. package/src/service/enhance/storybook-parser.ts +552 -0
  141. package/src/service/enhance/types.ts +346 -0
  142. package/src/service/enhance/variant-renderer.ts +479 -0
  143. package/src/service/figma.ts +1008 -0
  144. package/src/service/index.ts +249 -0
  145. package/src/service/metrics-store.ts +333 -0
  146. package/src/service/patch-generator.ts +349 -0
  147. package/src/service/report.ts +854 -0
  148. package/src/service/storage.ts +401 -0
  149. package/src/service/token-fixes.ts +281 -0
  150. package/src/service/token-parser.ts +504 -0
  151. package/src/service/token-registry.ts +721 -0
  152. package/src/service/utils.ts +172 -0
  153. package/src/setup.ts +241 -0
  154. package/src/shared/command-wrapper.ts +81 -0
  155. package/src/shared/dev-server-client.ts +199 -0
  156. package/src/shared/index.ts +8 -0
  157. package/src/shared/segment-loader.ts +59 -0
  158. package/src/shared/types.ts +147 -0
  159. package/src/static-viewer.ts +715 -0
  160. package/src/test/discovery.ts +172 -0
  161. package/src/test/index.ts +281 -0
  162. package/src/test/reporters/console.ts +194 -0
  163. package/src/test/reporters/json.ts +190 -0
  164. package/src/test/reporters/junit.ts +186 -0
  165. package/src/test/runner.ts +598 -0
  166. package/src/test/types.ts +245 -0
  167. package/src/test/watch.ts +200 -0
  168. package/src/validators.ts +152 -0
  169. package/src/viewer/__tests__/jsx-parser.test.ts +502 -0
  170. package/src/viewer/__tests__/render-utils.test.ts +232 -0
  171. package/src/viewer/__tests__/style-utils.test.ts +404 -0
  172. package/src/viewer/bin.ts +86 -0
  173. package/src/viewer/cli/health.ts +256 -0
  174. package/src/viewer/cli/index.ts +33 -0
  175. package/src/viewer/cli/scan.ts +124 -0
  176. package/src/viewer/cli/utils.ts +174 -0
  177. package/src/viewer/components/AccessibilityPanel.tsx +1404 -0
  178. package/src/viewer/components/ActionCapture.tsx +172 -0
  179. package/src/viewer/components/ActionsPanel.tsx +371 -0
  180. package/src/viewer/components/App.tsx +638 -0
  181. package/src/viewer/components/BottomPanel.tsx +224 -0
  182. package/src/viewer/components/CodePanel.tsx +589 -0
  183. package/src/viewer/components/CommandPalette.tsx +336 -0
  184. package/src/viewer/components/ComponentGraph.tsx +394 -0
  185. package/src/viewer/components/ComponentHeader.tsx +85 -0
  186. package/src/viewer/components/ContractPanel.tsx +234 -0
  187. package/src/viewer/components/ErrorBoundary.tsx +85 -0
  188. package/src/viewer/components/FigmaEmbed.tsx +231 -0
  189. package/src/viewer/components/FragmentEditor.tsx +485 -0
  190. package/src/viewer/components/HealthDashboard.tsx +452 -0
  191. package/src/viewer/components/HmrStatusIndicator.tsx +71 -0
  192. package/src/viewer/components/Icons.tsx +417 -0
  193. package/src/viewer/components/InteractionsPanel.tsx +720 -0
  194. package/src/viewer/components/IsolatedPreviewFrame.tsx +321 -0
  195. package/src/viewer/components/IsolatedRender.tsx +111 -0
  196. package/src/viewer/components/KeyboardShortcutsHelp.tsx +89 -0
  197. package/src/viewer/components/LandingPage.tsx +441 -0
  198. package/src/viewer/components/Layout.tsx +22 -0
  199. package/src/viewer/components/LeftSidebar.tsx +391 -0
  200. package/src/viewer/components/MultiViewportPreview.tsx +429 -0
  201. package/src/viewer/components/PreviewArea.tsx +404 -0
  202. package/src/viewer/components/PreviewFrameHost.tsx +310 -0
  203. package/src/viewer/components/PreviewPane.tsx +150 -0
  204. package/src/viewer/components/PreviewToolbar.tsx +176 -0
  205. package/src/viewer/components/PropsEditor.tsx +512 -0
  206. package/src/viewer/components/PropsTable.tsx +98 -0
  207. package/src/viewer/components/RelationsSection.tsx +57 -0
  208. package/src/viewer/components/ResizablePanel.tsx +328 -0
  209. package/src/viewer/components/RightSidebar.tsx +118 -0
  210. package/src/viewer/components/ScreenshotButton.tsx +90 -0
  211. package/src/viewer/components/Sidebar.tsx +169 -0
  212. package/src/viewer/components/SkeletonLoader.tsx +156 -0
  213. package/src/viewer/components/StoryRenderer.tsx +128 -0
  214. package/src/viewer/components/ThemeProvider.tsx +96 -0
  215. package/src/viewer/components/Toast.tsx +67 -0
  216. package/src/viewer/components/TokenStylePanel.tsx +708 -0
  217. package/src/viewer/components/UsageSection.tsx +95 -0
  218. package/src/viewer/components/VariantMatrix.tsx +350 -0
  219. package/src/viewer/components/VariantRenderer.tsx +131 -0
  220. package/src/viewer/components/VariantTabs.tsx +84 -0
  221. package/src/viewer/components/ViewportSelector.tsx +165 -0
  222. package/src/viewer/components/_future/CreatePage.tsx +836 -0
  223. package/src/viewer/composition-renderer.ts +381 -0
  224. package/src/viewer/constants/index.ts +1 -0
  225. package/src/viewer/constants/ui.ts +185 -0
  226. package/src/viewer/entry.tsx +299 -0
  227. package/src/viewer/hooks/index.ts +2 -0
  228. package/src/viewer/hooks/useA11yCache.ts +383 -0
  229. package/src/viewer/hooks/useA11yService.ts +498 -0
  230. package/src/viewer/hooks/useActions.ts +138 -0
  231. package/src/viewer/hooks/useAppState.ts +124 -0
  232. package/src/viewer/hooks/useFigmaIntegration.ts +132 -0
  233. package/src/viewer/hooks/useHmrStatus.ts +109 -0
  234. package/src/viewer/hooks/useKeyboardShortcuts.ts +222 -0
  235. package/src/viewer/hooks/usePreviewBridge.ts +347 -0
  236. package/src/viewer/hooks/useScrollSpy.ts +78 -0
  237. package/src/viewer/hooks/useUrlState.ts +330 -0
  238. package/src/viewer/hooks/useViewSettings.ts +125 -0
  239. package/src/viewer/index.html +28 -0
  240. package/src/viewer/index.ts +14 -0
  241. package/src/viewer/intelligence/healthReport.ts +505 -0
  242. package/src/viewer/intelligence/styleDrift.ts +340 -0
  243. package/src/viewer/intelligence/usageScanner.ts +309 -0
  244. package/src/viewer/jsx-parser.ts +485 -0
  245. package/src/viewer/postcss.config.js +6 -0
  246. package/src/viewer/preview-frame-entry.tsx +25 -0
  247. package/src/viewer/preview-frame.html +109 -0
  248. package/src/viewer/render-template.html +68 -0
  249. package/src/viewer/render-utils.ts +170 -0
  250. package/src/viewer/server.ts +276 -0
  251. package/src/viewer/style-utils.ts +414 -0
  252. package/src/viewer/styles/globals.css +355 -0
  253. package/src/viewer/tailwind.config.js +37 -0
  254. package/src/viewer/types/a11y.ts +197 -0
  255. package/src/viewer/utils/a11y-fixes.ts +471 -0
  256. package/src/viewer/utils/actionExport.ts +372 -0
  257. package/src/viewer/utils/colorSchemes.ts +201 -0
  258. package/src/viewer/utils/detectRelationships.ts +256 -0
  259. 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
+ }