logicstamp-context 0.2.4 → 0.2.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/LLM_CONTEXT.md +2 -2
- package/README.md +28 -19
- package/dist/cli/commands/compare.d.ts.map +1 -1
- package/dist/cli/commands/compare.js +120 -13
- package/dist/cli/commands/compare.js.map +1 -1
- package/dist/cli/commands/context/fileWriter.d.ts.map +1 -1
- package/dist/cli/commands/context/fileWriter.js +68 -6
- package/dist/cli/commands/context/fileWriter.js.map +1 -1
- package/dist/cli/commands/context/tokenEstimator.d.ts.map +1 -1
- package/dist/cli/commands/context/tokenEstimator.js +12 -4
- package/dist/cli/commands/context/tokenEstimator.js.map +1 -1
- package/dist/cli/commands/context.d.ts.map +1 -1
- package/dist/cli/commands/context.js +71 -2
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/validate.d.ts.map +1 -1
- package/dist/cli/commands/validate.js +84 -8
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/handlers/compareHandler.d.ts.map +1 -1
- package/dist/cli/handlers/compareHandler.js +123 -9
- package/dist/cli/handlers/compareHandler.js.map +1 -1
- package/dist/core/astParser/detectors.d.ts.map +1 -1
- package/dist/core/astParser/detectors.js +130 -57
- package/dist/core/astParser/detectors.js.map +1 -1
- package/dist/core/astParser/extractors/componentExtractor.d.ts.map +1 -1
- package/dist/core/astParser/extractors/componentExtractor.js +89 -20
- package/dist/core/astParser/extractors/componentExtractor.js.map +1 -1
- package/dist/core/astParser/extractors/eventExtractor.d.ts.map +1 -1
- package/dist/core/astParser/extractors/eventExtractor.js +83 -28
- package/dist/core/astParser/extractors/eventExtractor.js.map +1 -1
- package/dist/core/astParser/extractors/propExtractor.d.ts.map +1 -1
- package/dist/core/astParser/extractors/propExtractor.js +142 -51
- package/dist/core/astParser/extractors/propExtractor.js.map +1 -1
- package/dist/core/astParser/extractors/stateExtractor.d.ts.map +1 -1
- package/dist/core/astParser/extractors/stateExtractor.js +95 -44
- package/dist/core/astParser/extractors/stateExtractor.js.map +1 -1
- package/dist/core/astParser.d.ts +4 -1
- package/dist/core/astParser.d.ts.map +1 -1
- package/dist/core/astParser.js +183 -26
- package/dist/core/astParser.js.map +1 -1
- package/dist/core/contractBuilder.d.ts.map +1 -1
- package/dist/core/contractBuilder.js +11 -15
- package/dist/core/contractBuilder.js.map +1 -1
- package/dist/core/manifest.d.ts.map +1 -1
- package/dist/core/manifest.js +82 -4
- package/dist/core/manifest.js.map +1 -1
- package/dist/core/pack/loader.d.ts.map +1 -1
- package/dist/core/pack/loader.js +22 -2
- package/dist/core/pack/loader.js.map +1 -1
- package/dist/core/pack.d.ts.map +1 -1
- package/dist/core/pack.js +57 -1
- package/dist/core/pack.js.map +1 -1
- package/dist/core/styleExtractor/index.d.ts +1 -0
- package/dist/core/styleExtractor/index.d.ts.map +1 -1
- package/dist/core/styleExtractor/index.js +1 -0
- package/dist/core/styleExtractor/index.js.map +1 -1
- package/dist/core/styleExtractor/layout.d.ts +13 -2
- package/dist/core/styleExtractor/layout.d.ts.map +1 -1
- package/dist/core/styleExtractor/layout.js +135 -65
- package/dist/core/styleExtractor/layout.js.map +1 -1
- package/dist/core/styleExtractor/material.d.ts.map +1 -1
- package/dist/core/styleExtractor/material.js +291 -66
- package/dist/core/styleExtractor/material.js.map +1 -1
- package/dist/core/styleExtractor/motion.d.ts +2 -2
- package/dist/core/styleExtractor/motion.d.ts.map +1 -1
- package/dist/core/styleExtractor/motion.js +425 -56
- package/dist/core/styleExtractor/motion.js.map +1 -1
- package/dist/core/styleExtractor/radix.d.ts +29 -0
- package/dist/core/styleExtractor/radix.d.ts.map +1 -0
- package/dist/core/styleExtractor/radix.js +315 -0
- package/dist/core/styleExtractor/radix.js.map +1 -0
- package/dist/core/styleExtractor/scss.d.ts.map +1 -1
- package/dist/core/styleExtractor/scss.js +37 -23
- package/dist/core/styleExtractor/scss.js.map +1 -1
- package/dist/core/styleExtractor/shadcn.d.ts +20 -0
- package/dist/core/styleExtractor/shadcn.d.ts.map +1 -0
- package/dist/core/styleExtractor/shadcn.js +345 -0
- package/dist/core/styleExtractor/shadcn.js.map +1 -0
- package/dist/core/styleExtractor/styleExtractor.d.ts.map +1 -1
- package/dist/core/styleExtractor/styleExtractor.js +267 -89
- package/dist/core/styleExtractor/styleExtractor.js.map +1 -1
- package/dist/core/styleExtractor/styled.d.ts +1 -1
- package/dist/core/styleExtractor/styled.d.ts.map +1 -1
- package/dist/core/styleExtractor/styled.js +308 -23
- package/dist/core/styleExtractor/styled.js.map +1 -1
- package/dist/core/styleExtractor/tailwind.d.ts +21 -3
- package/dist/core/styleExtractor/tailwind.d.ts.map +1 -1
- package/dist/core/styleExtractor/tailwind.js +279 -46
- package/dist/core/styleExtractor/tailwind.js.map +1 -1
- package/dist/types/UIFContract.d.ts +34 -0
- package/dist/types/UIFContract.d.ts.map +1 -1
- package/dist/types/UIFContract.js.map +1 -1
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +41 -2
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/debug.d.ts +12 -0
- package/dist/utils/debug.d.ts.map +1 -0
- package/dist/utils/debug.js +16 -0
- package/dist/utils/debug.js.map +1 -0
- package/dist/utils/fsx.d.ts +2 -1
- package/dist/utils/fsx.d.ts.map +1 -1
- package/dist/utils/fsx.js +99 -28
- package/dist/utils/fsx.js.map +1 -1
- package/dist/utils/gitignore.d.ts.map +1 -1
- package/dist/utils/gitignore.js +28 -1
- package/dist/utils/gitignore.js.map +1 -1
- package/package.json +1 -1
- package/schema/logicstamp.context.schema.json +26 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Material UI extractor - Extracts Material UI component library usage
|
|
3
3
|
*/
|
|
4
|
+
import { SyntaxKind } from 'ts-morph';
|
|
5
|
+
import { debugError } from '../../utils/debug.js';
|
|
4
6
|
/**
|
|
5
7
|
* Common Material UI component names
|
|
6
8
|
*/
|
|
@@ -14,7 +16,7 @@ const MUI_COMPONENTS = [
|
|
|
14
16
|
'Popper', 'Radio', 'RadioGroup', 'Rating', 'Select', 'Skeleton', 'Slider', 'Snackbar',
|
|
15
17
|
'SpeedDial', 'Stack', 'Stepper', 'Switch', 'Tab', 'Table', 'TableBody', 'TableCell',
|
|
16
18
|
'TableContainer', 'TableFooter', 'TableHead', 'TablePagination', 'TableRow', 'Tabs', 'TextField',
|
|
17
|
-
'ToggleButton', 'ToggleButtonGroup', 'Toolbar', 'Tooltip', 'Typography', 'Zoom'
|
|
19
|
+
'ToggleButton', 'ToggleButtonGroup', 'Toolbar', 'Tooltip', 'Typography', 'Zoom',
|
|
18
20
|
];
|
|
19
21
|
/**
|
|
20
22
|
* Material UI package patterns
|
|
@@ -27,77 +29,300 @@ const MUI_PACKAGE_PATTERNS = [
|
|
|
27
29
|
* Extract Material UI usage from a source file
|
|
28
30
|
*/
|
|
29
31
|
export function extractMaterialUI(source) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
32
|
+
try {
|
|
33
|
+
// Track component usage counts so we can rank by frequency
|
|
34
|
+
const componentCounts = new Map();
|
|
35
|
+
const packages = new Set();
|
|
36
|
+
const localToMui = new Map(); // local alias → canonical MUI component
|
|
37
|
+
// Cache import declarations for reuse across multiple checks
|
|
38
|
+
let importDeclarations = [];
|
|
39
|
+
try {
|
|
40
|
+
importDeclarations = source.getImportDeclarations();
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
debugError('material', 'extractMaterialUI', {
|
|
44
|
+
error: error instanceof Error ? error.message : String(error),
|
|
45
|
+
context: 'getImportDeclarations',
|
|
46
|
+
});
|
|
47
|
+
// Continue with empty array - imports won't be detected but other checks can proceed
|
|
48
|
+
}
|
|
49
|
+
// Check for Material UI imports
|
|
50
|
+
try {
|
|
51
|
+
importDeclarations.forEach(imp => {
|
|
52
|
+
const moduleSpecifier = imp.getModuleSpecifierValue();
|
|
53
|
+
// Check if it's a Material UI package
|
|
54
|
+
const isMuiPackage = MUI_PACKAGE_PATTERNS.some(pattern => pattern.test(moduleSpecifier));
|
|
55
|
+
if (isMuiPackage) {
|
|
56
|
+
packages.add(moduleSpecifier);
|
|
57
|
+
// Extract component names from imports (including aliases)
|
|
58
|
+
const namedImports = imp.getNamedImports();
|
|
59
|
+
namedImports.forEach(namedImport => {
|
|
60
|
+
const importName = namedImport.getName(); // canonical name
|
|
61
|
+
const aliasNode = namedImport.getAliasNode();
|
|
62
|
+
const localName = aliasNode?.getText() ?? importName; // local alias or original
|
|
63
|
+
if (MUI_COMPONENTS.includes(importName)) {
|
|
64
|
+
componentCounts.set(importName, (componentCounts.get(importName) ?? 0) + 1);
|
|
65
|
+
localToMui.set(localName, importName);
|
|
66
|
+
localToMui.set(importName, importName); // self-map
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
// Default imports (e.g., import Button from "@mui/material/Button")
|
|
70
|
+
// Also handles aliases: import Btn from "@mui/material/Button"
|
|
71
|
+
const defaultImport = imp.getDefaultImport();
|
|
72
|
+
if (defaultImport) {
|
|
73
|
+
const aliasName = defaultImport.getText();
|
|
74
|
+
// Try to derive canonical name from module specifier path
|
|
75
|
+
// e.g., "@mui/material/Button" -> "Button"
|
|
76
|
+
const pathSegments = moduleSpecifier.split('/');
|
|
77
|
+
const canonicalName = pathSegments[pathSegments.length - 1];
|
|
78
|
+
if (MUI_COMPONENTS.includes(canonicalName)) {
|
|
79
|
+
componentCounts.set(canonicalName, (componentCounts.get(canonicalName) ?? 0) + 1);
|
|
80
|
+
localToMui.set(aliasName, canonicalName);
|
|
81
|
+
localToMui.set(canonicalName, canonicalName); // self-map
|
|
82
|
+
}
|
|
83
|
+
// Fallback: check if alias itself is a known component
|
|
84
|
+
else if (MUI_COMPONENTS.includes(aliasName)) {
|
|
85
|
+
componentCounts.set(aliasName, (componentCounts.get(aliasName) ?? 0) + 1);
|
|
86
|
+
localToMui.set(aliasName, aliasName);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
46
89
|
}
|
|
47
90
|
});
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
debugError('material', 'extractMaterialUI', {
|
|
94
|
+
error: error instanceof Error ? error.message : String(error),
|
|
95
|
+
context: 'extractMaterialUIImports',
|
|
96
|
+
});
|
|
97
|
+
// Continue with empty imports - can still check JSX usage
|
|
98
|
+
}
|
|
99
|
+
const hasMuiImports = packages.size > 0;
|
|
100
|
+
// Also check for component usage in JSX using AST – but only trust it if we saw MUI imports
|
|
101
|
+
let jsxElements = [];
|
|
102
|
+
try {
|
|
103
|
+
jsxElements = [
|
|
104
|
+
...source.getDescendantsOfKind(SyntaxKind.JsxElement),
|
|
105
|
+
...source.getDescendantsOfKind(SyntaxKind.JsxSelfClosingElement),
|
|
106
|
+
];
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
debugError('material', 'extractMaterialUI', {
|
|
110
|
+
error: error instanceof Error ? error.message : String(error),
|
|
111
|
+
context: 'getJsxElements',
|
|
112
|
+
});
|
|
113
|
+
// Continue with empty array - will skip JSX-based component detection
|
|
114
|
+
}
|
|
115
|
+
if (hasMuiImports) {
|
|
116
|
+
try {
|
|
117
|
+
for (const element of jsxElements) {
|
|
118
|
+
const openingElement = 'getOpeningElement' in element
|
|
119
|
+
? element.getOpeningElement()
|
|
120
|
+
: element;
|
|
121
|
+
const rawTag = openingElement.getTagNameNode().getText();
|
|
122
|
+
// Handle namespace tags like <Box.Root> or <Grid.Item>
|
|
123
|
+
const baseTag = rawTag.includes('.')
|
|
124
|
+
? rawTag.split('.')[0]
|
|
125
|
+
: rawTag;
|
|
126
|
+
// Map local alias back to canonical MUI component name
|
|
127
|
+
const componentName = localToMui.get(baseTag) ?? baseTag;
|
|
128
|
+
if (MUI_COMPONENTS.includes(componentName)) {
|
|
129
|
+
componentCounts.set(componentName, (componentCounts.get(componentName) ?? 0) + 1);
|
|
130
|
+
}
|
|
54
131
|
}
|
|
55
132
|
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
debugError('material', 'extractMaterialUI', {
|
|
135
|
+
error: error instanceof Error ? error.message : String(error),
|
|
136
|
+
context: 'processJsxElements',
|
|
137
|
+
});
|
|
138
|
+
// Continue - component detection may be incomplete but not fatal
|
|
139
|
+
}
|
|
56
140
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
141
|
+
const usesMui = hasMuiImports || componentCounts.size > 0;
|
|
142
|
+
// Check for theme usage using AST
|
|
143
|
+
let usesTheme = false;
|
|
144
|
+
try {
|
|
145
|
+
usesTheme =
|
|
146
|
+
source.getDescendantsOfKind(SyntaxKind.CallExpression).some(callExpr => {
|
|
147
|
+
const expr = callExpr.getExpression();
|
|
148
|
+
if (expr.getKind() !== SyntaxKind.Identifier)
|
|
149
|
+
return false;
|
|
150
|
+
const name = expr.getText();
|
|
151
|
+
return name === 'useTheme' || name === 'createTheme';
|
|
152
|
+
}) ||
|
|
153
|
+
importDeclarations.some(imp => {
|
|
154
|
+
// Named ThemeProvider import from any MUI package
|
|
155
|
+
return imp.getNamedImports().some(n => n.getName() === 'ThemeProvider');
|
|
156
|
+
}) ||
|
|
157
|
+
// theme.property access
|
|
158
|
+
source.getDescendantsOfKind(SyntaxKind.PropertyAccessExpression).some(propAccess => {
|
|
159
|
+
const expr = propAccess.getExpression();
|
|
160
|
+
return expr.getKind() === SyntaxKind.Identifier && expr.getText() === 'theme';
|
|
161
|
+
}) ||
|
|
162
|
+
// theme usage in tagged template literals (styled, emotion, etc.)
|
|
163
|
+
source.getDescendantsOfKind(SyntaxKind.TaggedTemplateExpression).some(taggedTemplate => {
|
|
164
|
+
const template = taggedTemplate.getTemplate();
|
|
165
|
+
const text = template.getText();
|
|
166
|
+
return /theme\./.test(text);
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
debugError('material', 'extractMaterialUI', {
|
|
171
|
+
error: error instanceof Error ? error.message : String(error),
|
|
172
|
+
context: 'checkThemeUsage',
|
|
173
|
+
});
|
|
174
|
+
// Default to false on error
|
|
175
|
+
}
|
|
176
|
+
// Check for sx prop usage (only meaningful if MUI is present)
|
|
177
|
+
let usesSxProp = false;
|
|
178
|
+
try {
|
|
179
|
+
usesSxProp =
|
|
180
|
+
usesMui &&
|
|
181
|
+
source.getDescendantsOfKind(SyntaxKind.JsxAttribute).some(attr => {
|
|
182
|
+
const jsxAttr = attr;
|
|
183
|
+
const attrName = jsxAttr.getNameNode().getText();
|
|
184
|
+
return attrName === 'sx';
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
debugError('material', 'extractMaterialUI', {
|
|
189
|
+
error: error instanceof Error ? error.message : String(error),
|
|
190
|
+
context: 'checkSxPropUsage',
|
|
191
|
+
});
|
|
192
|
+
// Default to false on error
|
|
193
|
+
}
|
|
194
|
+
// Check for styled from MUI styles packages using AST
|
|
195
|
+
let usesStyled = false;
|
|
196
|
+
try {
|
|
197
|
+
usesStyled =
|
|
198
|
+
importDeclarations.some(imp => {
|
|
199
|
+
const mod = imp.getModuleSpecifierValue();
|
|
200
|
+
const isMuiStyles = [
|
|
201
|
+
'@mui/material/styles',
|
|
202
|
+
'@mui/styles',
|
|
203
|
+
'@mui/system',
|
|
204
|
+
'@material-ui/core/styles',
|
|
205
|
+
'@material-ui/styles',
|
|
206
|
+
].includes(mod);
|
|
207
|
+
if (!isMuiStyles)
|
|
208
|
+
return false;
|
|
209
|
+
// styled as named or default import
|
|
210
|
+
if (imp.getNamedImports().some(n => n.getName() === 'styled'))
|
|
211
|
+
return true;
|
|
212
|
+
const def = imp.getDefaultImport();
|
|
213
|
+
return def?.getText() === 'styled';
|
|
214
|
+
}) ||
|
|
215
|
+
// fallback: call expression named styled, but only if we know MUI is present
|
|
216
|
+
(usesMui &&
|
|
217
|
+
source.getDescendantsOfKind(SyntaxKind.CallExpression).some(callExpr => {
|
|
218
|
+
const expr = callExpr.getExpression();
|
|
219
|
+
return expr.getKind() === SyntaxKind.Identifier && expr.getText() === 'styled';
|
|
220
|
+
}));
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
debugError('material', 'extractMaterialUI', {
|
|
224
|
+
error: error instanceof Error ? error.message : String(error),
|
|
225
|
+
context: 'checkStyledUsage',
|
|
226
|
+
});
|
|
227
|
+
// Default to false on error
|
|
228
|
+
}
|
|
229
|
+
// Check for makeStyles (legacy Material UI styling) using AST
|
|
230
|
+
let usesMakeStyles = false;
|
|
231
|
+
try {
|
|
232
|
+
usesMakeStyles =
|
|
233
|
+
source.getDescendantsOfKind(SyntaxKind.CallExpression).some(callExpr => {
|
|
234
|
+
const expr = callExpr.getExpression();
|
|
235
|
+
return expr.getKind() === SyntaxKind.Identifier && expr.getText() === 'makeStyles';
|
|
236
|
+
}) ||
|
|
237
|
+
importDeclarations.some(imp => {
|
|
238
|
+
const mod = imp.getModuleSpecifierValue();
|
|
239
|
+
return mod === '@mui/styles' || mod === '@material-ui/styles';
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
catch (error) {
|
|
243
|
+
debugError('material', 'extractMaterialUI', {
|
|
244
|
+
error: error instanceof Error ? error.message : String(error),
|
|
245
|
+
context: 'checkMakeStylesUsage',
|
|
246
|
+
});
|
|
247
|
+
// Default to false on error
|
|
248
|
+
}
|
|
249
|
+
// Check for system props (spacing, color, etc. on Box/Stack components) using AST
|
|
250
|
+
const systemProps = [
|
|
251
|
+
'spacing', 'color', 'bgcolor', 'p', 'm', 'px', 'py', 'mx', 'my',
|
|
252
|
+
'pt', 'pb', 'pl', 'pr', 'mt', 'mb', 'ml', 'mr',
|
|
66
253
|
];
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
254
|
+
let usesSystemProps = false;
|
|
255
|
+
try {
|
|
256
|
+
usesSystemProps =
|
|
257
|
+
usesMui &&
|
|
258
|
+
jsxElements.some(element => {
|
|
259
|
+
const openingElement = 'getOpeningElement' in element
|
|
260
|
+
? element.getOpeningElement()
|
|
261
|
+
: element;
|
|
262
|
+
const rawTag = openingElement.getTagNameNode().getText();
|
|
263
|
+
const baseTag = rawTag.includes('.') ? rawTag.split('.')[0] : rawTag;
|
|
264
|
+
const componentName = localToMui.get(baseTag) ?? baseTag;
|
|
265
|
+
if (!['Box', 'Stack', 'Grid', 'Container'].includes(componentName)) {
|
|
266
|
+
return false;
|
|
267
|
+
}
|
|
268
|
+
const attributes = openingElement.getAttributes();
|
|
269
|
+
return attributes.some((attr) => {
|
|
270
|
+
if (attr.getKind() !== SyntaxKind.JsxAttribute)
|
|
271
|
+
return false;
|
|
272
|
+
const jsxAttr = attr;
|
|
273
|
+
const attrName = jsxAttr.getNameNode().getText();
|
|
274
|
+
return systemProps.includes(attrName);
|
|
275
|
+
});
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
catch (error) {
|
|
279
|
+
debugError('material', 'extractMaterialUI', {
|
|
280
|
+
error: error instanceof Error ? error.message : String(error),
|
|
281
|
+
context: 'checkSystemPropsUsage',
|
|
282
|
+
});
|
|
283
|
+
// Default to false on error
|
|
284
|
+
}
|
|
285
|
+
// Rank components by frequency, then alphabetically, and return up to 20
|
|
286
|
+
let components = [];
|
|
287
|
+
try {
|
|
288
|
+
components = Array.from(componentCounts.entries())
|
|
289
|
+
.sort((a, b) => {
|
|
290
|
+
if (b[1] !== a[1])
|
|
291
|
+
return b[1] - a[1]; // by count desc
|
|
292
|
+
return a[0].localeCompare(b[0]); // then alpha
|
|
293
|
+
})
|
|
294
|
+
.slice(0, 20)
|
|
295
|
+
.map(([name]) => name);
|
|
296
|
+
}
|
|
297
|
+
catch (error) {
|
|
298
|
+
debugError('material', 'extractMaterialUI', {
|
|
299
|
+
error: error instanceof Error ? error.message : String(error),
|
|
300
|
+
context: 'rankComponents',
|
|
301
|
+
});
|
|
302
|
+
// Default to empty array on error
|
|
303
|
+
}
|
|
304
|
+
return {
|
|
305
|
+
components, // up to 20 components, ranked by usage frequency
|
|
306
|
+
packages: Array.from(packages).sort(),
|
|
307
|
+
features: {
|
|
308
|
+
...(usesTheme && { usesTheme: true }),
|
|
309
|
+
...(usesSxProp && { usesSxProp: true }),
|
|
310
|
+
...(usesStyled && { usesStyled: true }),
|
|
311
|
+
...(usesMakeStyles && { usesMakeStyles: true }),
|
|
312
|
+
...(usesSystemProps && { usesSystemProps: true }),
|
|
313
|
+
},
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
catch (error) {
|
|
317
|
+
debugError('material', 'extractMaterialUI', {
|
|
318
|
+
error: error instanceof Error ? error.message : String(error),
|
|
71
319
|
});
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
// Check for sx prop usage (Material UI's styling prop)
|
|
80
|
-
const usesSxProp = /sx\s*=\s*\{/.test(sourceText);
|
|
81
|
-
// Check for styled from @mui/material/styles
|
|
82
|
-
const usesStyled = /from\s+['"]@mui\/material\/styles['"]/.test(sourceText) ||
|
|
83
|
-
/from\s+['"]@material-ui\/core\/styles['"]/.test(sourceText) ||
|
|
84
|
-
/styled\(/.test(sourceText);
|
|
85
|
-
// Check for makeStyles (legacy Material UI styling)
|
|
86
|
-
const usesMakeStyles = /makeStyles\(/.test(sourceText) ||
|
|
87
|
-
/from\s+['"]@mui\/styles['"]/.test(sourceText) ||
|
|
88
|
-
/from\s+['"]@material-ui\/styles['"]/.test(sourceText);
|
|
89
|
-
// Check for system props (spacing, color, etc. on Box/Stack components)
|
|
90
|
-
const usesSystemProps = /(?:Box|Stack|Grid|Container).*?(?:spacing|color|bgcolor|p|m|px|py|mx|my|pt|pb|pl|pr|mt|mb|ml|mr)\s*=/s.test(sourceText);
|
|
91
|
-
return {
|
|
92
|
-
components: Array.from(components).sort().slice(0, 20), // Top 20 components
|
|
93
|
-
packages: Array.from(packages).sort(),
|
|
94
|
-
features: {
|
|
95
|
-
...(usesTheme && { usesTheme: true }),
|
|
96
|
-
...(usesSxProp && { usesSxProp: true }),
|
|
97
|
-
...(usesStyled && { usesStyled: true }),
|
|
98
|
-
...(usesMakeStyles && { usesMakeStyles: true }),
|
|
99
|
-
...(usesSystemProps && { usesSystemProps: true }),
|
|
100
|
-
},
|
|
101
|
-
};
|
|
320
|
+
// Return empty/default values on unexpected errors
|
|
321
|
+
return {
|
|
322
|
+
components: [],
|
|
323
|
+
packages: [],
|
|
324
|
+
features: {},
|
|
325
|
+
};
|
|
326
|
+
}
|
|
102
327
|
}
|
|
103
328
|
//# sourceMappingURL=material.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"material.js","sourceRoot":"","sources":["../../../src/core/styleExtractor/material.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"material.js","sourceRoot":"","sources":["../../../src/core/styleExtractor/material.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { SourceFile } from 'ts-morph';
|
|
5
5
|
import type { AnimationMetadata } from '../../types/UIFContract.js';
|
|
6
6
|
/**
|
|
7
|
-
* Extract Framer Motion animation configurations
|
|
7
|
+
* Extract Framer Motion animation configurations using AST
|
|
8
8
|
*/
|
|
9
9
|
export declare function extractMotionConfig(source: SourceFile): {
|
|
10
10
|
components: string[];
|
|
@@ -14,7 +14,7 @@ export declare function extractMotionConfig(source: SourceFile): {
|
|
|
14
14
|
hasViewport: boolean;
|
|
15
15
|
};
|
|
16
16
|
/**
|
|
17
|
-
* Extract animation metadata
|
|
17
|
+
* Extract animation metadata using AST
|
|
18
18
|
*/
|
|
19
19
|
export declare function extractAnimationMetadata(source: SourceFile): AnimationMetadata;
|
|
20
20
|
//# sourceMappingURL=motion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"motion.d.ts","sourceRoot":"","sources":["../../../src/core/styleExtractor/motion.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"motion.d.ts","sourceRoot":"","sources":["../../../src/core/styleExtractor/motion.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAA2F,MAAM,UAAU,CAAC;AAC/H,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGpE;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG;IACvD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACtB,CAwPA;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,UAAU,GAAG,iBAAiB,CA2L9E"}
|