logicstamp-context 0.2.3 → 0.2.5

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 (102) hide show
  1. package/LLM_CONTEXT.md +2 -2
  2. package/README.md +96 -585
  3. package/dist/cli/commands/compare.d.ts.map +1 -1
  4. package/dist/cli/commands/compare.js +120 -13
  5. package/dist/cli/commands/compare.js.map +1 -1
  6. package/dist/cli/commands/context/fileWriter.d.ts.map +1 -1
  7. package/dist/cli/commands/context/fileWriter.js +68 -6
  8. package/dist/cli/commands/context/fileWriter.js.map +1 -1
  9. package/dist/cli/commands/context/tokenEstimator.d.ts.map +1 -1
  10. package/dist/cli/commands/context/tokenEstimator.js +12 -4
  11. package/dist/cli/commands/context/tokenEstimator.js.map +1 -1
  12. package/dist/cli/commands/context.d.ts.map +1 -1
  13. package/dist/cli/commands/context.js +71 -2
  14. package/dist/cli/commands/context.js.map +1 -1
  15. package/dist/cli/commands/validate.d.ts.map +1 -1
  16. package/dist/cli/commands/validate.js +84 -8
  17. package/dist/cli/commands/validate.js.map +1 -1
  18. package/dist/cli/handlers/compareHandler.d.ts.map +1 -1
  19. package/dist/cli/handlers/compareHandler.js +123 -9
  20. package/dist/cli/handlers/compareHandler.js.map +1 -1
  21. package/dist/core/astParser/detectors.d.ts.map +1 -1
  22. package/dist/core/astParser/detectors.js +130 -57
  23. package/dist/core/astParser/detectors.js.map +1 -1
  24. package/dist/core/astParser/extractors/componentExtractor.d.ts.map +1 -1
  25. package/dist/core/astParser/extractors/componentExtractor.js +89 -20
  26. package/dist/core/astParser/extractors/componentExtractor.js.map +1 -1
  27. package/dist/core/astParser/extractors/eventExtractor.d.ts.map +1 -1
  28. package/dist/core/astParser/extractors/eventExtractor.js +83 -28
  29. package/dist/core/astParser/extractors/eventExtractor.js.map +1 -1
  30. package/dist/core/astParser/extractors/propExtractor.d.ts.map +1 -1
  31. package/dist/core/astParser/extractors/propExtractor.js +130 -51
  32. package/dist/core/astParser/extractors/propExtractor.js.map +1 -1
  33. package/dist/core/astParser/extractors/stateExtractor.d.ts.map +1 -1
  34. package/dist/core/astParser/extractors/stateExtractor.js +95 -44
  35. package/dist/core/astParser/extractors/stateExtractor.js.map +1 -1
  36. package/dist/core/astParser.d.ts +1 -0
  37. package/dist/core/astParser.d.ts.map +1 -1
  38. package/dist/core/astParser.js +74 -26
  39. package/dist/core/astParser.js.map +1 -1
  40. package/dist/core/manifest.d.ts.map +1 -1
  41. package/dist/core/manifest.js +28 -1
  42. package/dist/core/manifest.js.map +1 -1
  43. package/dist/core/pack/loader.d.ts.map +1 -1
  44. package/dist/core/pack/loader.js +22 -2
  45. package/dist/core/pack/loader.js.map +1 -1
  46. package/dist/core/styleExtractor/index.d.ts +2 -0
  47. package/dist/core/styleExtractor/index.d.ts.map +1 -1
  48. package/dist/core/styleExtractor/index.js +2 -0
  49. package/dist/core/styleExtractor/index.js.map +1 -1
  50. package/dist/core/styleExtractor/layout.d.ts +13 -2
  51. package/dist/core/styleExtractor/layout.d.ts.map +1 -1
  52. package/dist/core/styleExtractor/layout.js +135 -65
  53. package/dist/core/styleExtractor/layout.js.map +1 -1
  54. package/dist/core/styleExtractor/material.d.ts +19 -0
  55. package/dist/core/styleExtractor/material.d.ts.map +1 -0
  56. package/dist/core/styleExtractor/material.js +328 -0
  57. package/dist/core/styleExtractor/material.js.map +1 -0
  58. package/dist/core/styleExtractor/motion.d.ts +2 -2
  59. package/dist/core/styleExtractor/motion.d.ts.map +1 -1
  60. package/dist/core/styleExtractor/motion.js +425 -56
  61. package/dist/core/styleExtractor/motion.js.map +1 -1
  62. package/dist/core/styleExtractor/radix.d.ts +29 -0
  63. package/dist/core/styleExtractor/radix.d.ts.map +1 -0
  64. package/dist/core/styleExtractor/radix.js +315 -0
  65. package/dist/core/styleExtractor/radix.js.map +1 -0
  66. package/dist/core/styleExtractor/scss.d.ts.map +1 -1
  67. package/dist/core/styleExtractor/scss.js +37 -23
  68. package/dist/core/styleExtractor/scss.js.map +1 -1
  69. package/dist/core/styleExtractor/shadcn.d.ts +20 -0
  70. package/dist/core/styleExtractor/shadcn.d.ts.map +1 -0
  71. package/dist/core/styleExtractor/shadcn.js +345 -0
  72. package/dist/core/styleExtractor/shadcn.js.map +1 -0
  73. package/dist/core/styleExtractor/styleExtractor.d.ts.map +1 -1
  74. package/dist/core/styleExtractor/styleExtractor.js +270 -78
  75. package/dist/core/styleExtractor/styleExtractor.js.map +1 -1
  76. package/dist/core/styleExtractor/styled.d.ts +1 -1
  77. package/dist/core/styleExtractor/styled.d.ts.map +1 -1
  78. package/dist/core/styleExtractor/styled.js +308 -23
  79. package/dist/core/styleExtractor/styled.js.map +1 -1
  80. package/dist/core/styleExtractor/tailwind.d.ts +21 -3
  81. package/dist/core/styleExtractor/tailwind.d.ts.map +1 -1
  82. package/dist/core/styleExtractor/tailwind.js +279 -46
  83. package/dist/core/styleExtractor/tailwind.js.map +1 -1
  84. package/dist/types/UIFContract.d.ts +45 -0
  85. package/dist/types/UIFContract.d.ts.map +1 -1
  86. package/dist/types/UIFContract.js.map +1 -1
  87. package/dist/utils/config.d.ts.map +1 -1
  88. package/dist/utils/config.js +41 -2
  89. package/dist/utils/config.js.map +1 -1
  90. package/dist/utils/debug.d.ts +12 -0
  91. package/dist/utils/debug.d.ts.map +1 -0
  92. package/dist/utils/debug.js +16 -0
  93. package/dist/utils/debug.js.map +1 -0
  94. package/dist/utils/fsx.d.ts +2 -1
  95. package/dist/utils/fsx.d.ts.map +1 -1
  96. package/dist/utils/fsx.js +99 -28
  97. package/dist/utils/fsx.js.map +1 -1
  98. package/dist/utils/gitignore.d.ts.map +1 -1
  99. package/dist/utils/gitignore.js +28 -1
  100. package/dist/utils/gitignore.js.map +1 -1
  101. package/package.json +1 -1
  102. package/schema/logicstamp.context.schema.json +48 -1
@@ -0,0 +1,315 @@
1
+ /**
2
+ * Radix UI extractor - Extracts Radix UI primitive usage
3
+ * Radix UI provides unstyled, accessible components/primitives
4
+ * Many teams use Radix directly, and ShadCN is built on top of it
5
+ */
6
+ import { SyntaxKind, } from 'ts-morph';
7
+ import { debugError } from '../../utils/debug.js';
8
+ /**
9
+ * Common Radix UI packages and their key components
10
+ */
11
+ const RADIX_PRIMITIVES = {
12
+ // Overlays
13
+ 'react-dialog': ['Dialog', 'DialogTrigger', 'DialogPortal', 'DialogOverlay', 'DialogContent', 'DialogTitle', 'DialogDescription', 'DialogClose'],
14
+ 'react-alert-dialog': ['AlertDialog', 'AlertDialogTrigger', 'AlertDialogPortal', 'AlertDialogOverlay', 'AlertDialogContent', 'AlertDialogTitle', 'AlertDialogDescription', 'AlertDialogAction', 'AlertDialogCancel'],
15
+ 'react-popover': ['Popover', 'PopoverTrigger', 'PopoverAnchor', 'PopoverPortal', 'PopoverContent', 'PopoverArrow', 'PopoverClose'],
16
+ 'react-tooltip': ['Tooltip', 'TooltipTrigger', 'TooltipPortal', 'TooltipContent', 'TooltipArrow', 'TooltipProvider'],
17
+ 'react-hover-card': ['HoverCard', 'HoverCardTrigger', 'HoverCardPortal', 'HoverCardContent', 'HoverCardArrow'],
18
+ // Menus
19
+ 'react-dropdown-menu': ['DropdownMenu', 'DropdownMenuTrigger', 'DropdownMenuPortal', 'DropdownMenuContent', 'DropdownMenuItem', 'DropdownMenuCheckboxItem', 'DropdownMenuRadioGroup', 'DropdownMenuRadioItem', 'DropdownMenuLabel', 'DropdownMenuSeparator', 'DropdownMenuShortcut', 'DropdownMenuGroup', 'DropdownMenuSub', 'DropdownMenuSubContent', 'DropdownMenuSubTrigger'],
20
+ 'react-context-menu': ['ContextMenu', 'ContextMenuTrigger', 'ContextMenuPortal', 'ContextMenuContent', 'ContextMenuItem', 'ContextMenuCheckboxItem', 'ContextMenuRadioGroup', 'ContextMenuRadioItem', 'ContextMenuLabel', 'ContextMenuSeparator', 'ContextMenuShortcut', 'ContextMenuGroup', 'ContextMenuSub', 'ContextMenuSubContent', 'ContextMenuSubTrigger'],
21
+ 'react-menubar': ['Menubar', 'MenubarMenu', 'MenubarTrigger', 'MenubarPortal', 'MenubarContent', 'MenubarItem', 'MenubarCheckboxItem', 'MenubarRadioGroup', 'MenubarRadioItem', 'MenubarLabel', 'MenubarSeparator', 'MenubarShortcut', 'MenubarGroup', 'MenubarSub', 'MenubarSubContent', 'MenubarSubTrigger'],
22
+ 'react-navigation-menu': ['NavigationMenu', 'NavigationMenuList', 'NavigationMenuItem', 'NavigationMenuTrigger', 'NavigationMenuContent', 'NavigationMenuLink', 'NavigationMenuIndicator', 'NavigationMenuViewport'],
23
+ // Disclosure
24
+ 'react-accordion': ['Accordion', 'AccordionItem', 'AccordionHeader', 'AccordionTrigger', 'AccordionContent'],
25
+ 'react-collapsible': ['Collapsible', 'CollapsibleTrigger', 'CollapsibleContent'],
26
+ 'react-tabs': ['Tabs', 'TabsList', 'TabsTrigger', 'TabsContent'],
27
+ // Form controls
28
+ 'react-checkbox': ['Checkbox', 'CheckboxIndicator'],
29
+ 'react-radio-group': ['RadioGroup', 'RadioGroupItem', 'RadioGroupIndicator'],
30
+ 'react-select': ['Select', 'SelectTrigger', 'SelectValue', 'SelectIcon', 'SelectPortal', 'SelectContent', 'SelectViewport', 'SelectGroup', 'SelectLabel', 'SelectItem', 'SelectItemText', 'SelectItemIndicator', 'SelectScrollUpButton', 'SelectScrollDownButton', 'SelectSeparator'],
31
+ 'react-slider': ['Slider', 'SliderTrack', 'SliderRange', 'SliderThumb'],
32
+ 'react-switch': ['Switch', 'SwitchThumb'],
33
+ 'react-toggle': ['Toggle'],
34
+ 'react-toggle-group': ['ToggleGroup', 'ToggleGroupItem'],
35
+ // Other
36
+ 'react-avatar': ['Avatar', 'AvatarImage', 'AvatarFallback'],
37
+ 'react-progress': ['Progress', 'ProgressIndicator'],
38
+ 'react-scroll-area': ['ScrollArea', 'ScrollAreaViewport', 'ScrollAreaScrollbar', 'ScrollAreaThumb', 'ScrollAreaCorner'],
39
+ 'react-separator': ['Separator'],
40
+ 'react-aspect-ratio': ['AspectRatio'],
41
+ 'react-label': ['Label'],
42
+ 'react-portal': ['Portal'],
43
+ 'react-visually-hidden': ['VisuallyHidden'],
44
+ };
45
+ /**
46
+ * Props that indicate controlled vs uncontrolled components
47
+ */
48
+ const CONTROL_PATTERNS = {
49
+ controlled: ['value', 'checked', 'open', 'pressed'],
50
+ uncontrolled: ['defaultValue', 'defaultChecked', 'defaultOpen', 'defaultPressed'],
51
+ };
52
+ /**
53
+ * Extract Radix UI primitive usage from a source file
54
+ */
55
+ export function extractRadixUI(source) {
56
+ try {
57
+ const primitives = new Map();
58
+ const controlled = new Set();
59
+ const uncontrolled = new Set();
60
+ let portalCount = 0;
61
+ let asChildCount = 0;
62
+ // Track accessibility features
63
+ let usesDirection = false;
64
+ let usesFocusManagement = false;
65
+ let usesKeyboardNav = false;
66
+ let usesModal = false;
67
+ // Check for Radix UI imports - wrap AST-risky operation
68
+ let importDeclarations = [];
69
+ try {
70
+ importDeclarations = source.getImportDeclarations();
71
+ }
72
+ catch {
73
+ // If AST traversal fails, return empty result
74
+ return {
75
+ primitives: {},
76
+ patterns: {
77
+ controlled: [],
78
+ uncontrolled: [],
79
+ portals: 0,
80
+ asChild: 0,
81
+ },
82
+ accessibility: {},
83
+ features: {},
84
+ };
85
+ }
86
+ importDeclarations.forEach(imp => {
87
+ const moduleSpecifier = imp.getModuleSpecifierValue();
88
+ const radixMatch = moduleSpecifier.match(/^@radix-ui\/(react-[\w-]+)$/);
89
+ if (radixMatch) {
90
+ const packageName = radixMatch[1];
91
+ const expectedComponents = RADIX_PRIMITIVES[packageName];
92
+ if (expectedComponents) {
93
+ // Extract component names from imports
94
+ const namedImports = imp.getNamedImports();
95
+ namedImports.forEach((namedImport) => {
96
+ const importName = namedImport.getName();
97
+ if (expectedComponents.includes(importName)) {
98
+ if (!primitives.has(packageName)) {
99
+ primitives.set(packageName, new Set());
100
+ }
101
+ primitives.get(packageName).add(importName);
102
+ }
103
+ });
104
+ // Check for namespace imports like `import * as Dialog from '@radix-ui/react-dialog'`
105
+ const namespaceImport = imp.getNamespaceImport();
106
+ if (namespaceImport) {
107
+ if (!primitives.has(packageName)) {
108
+ primitives.set(packageName, new Set());
109
+ }
110
+ // Add a marker that this package is imported as namespace
111
+ primitives.get(packageName).add(`${namespaceImport.getText()}.*`);
112
+ }
113
+ }
114
+ }
115
+ });
116
+ // Build a set of all Radix component names for filtering
117
+ const allRadixComponents = new Set();
118
+ Object.values(RADIX_PRIMITIVES).forEach(components => {
119
+ components.forEach(comp => allRadixComponents.add(comp));
120
+ });
121
+ // Analyze JSX elements for patterns using AST traversal
122
+ // This handles multi-line JSX properly
123
+ const processJsxElement = (element, tagName) => {
124
+ // Normalize namespace tags like <Dialog.Root> / <Dialog.Trigger>
125
+ // tagName is "Dialog.Root" / "Dialog.Trigger", while allRadixComponents has "Dialog" / "DialogTrigger"
126
+ const normalizedTag = tagName.includes('.') ? tagName.split('.').pop() ?? tagName : tagName;
127
+ // Helper to check if a tag name matches any Radix component
128
+ // Handles both direct usage (<DialogTrigger>) and namespace usage (<Dialog.Trigger>)
129
+ const isRadixComponent = (name) => {
130
+ if (allRadixComponents.has(name))
131
+ return true;
132
+ if (name.includes('.')) {
133
+ const parts = name.split('.');
134
+ const base = parts[0];
135
+ const component = parts[parts.length - 1];
136
+ // Try combined name (e.g., "Dialog" + "Trigger" -> "DialogTrigger")
137
+ return allRadixComponents.has(base + component) || allRadixComponents.has(component);
138
+ }
139
+ return false;
140
+ };
141
+ // Get the component name to use for tracking (prefer the actual component name from set)
142
+ const getComponentName = (name) => {
143
+ if (allRadixComponents.has(name))
144
+ return name;
145
+ if (name.includes('.')) {
146
+ const parts = name.split('.');
147
+ const base = parts[0];
148
+ const component = parts[parts.length - 1];
149
+ const combined = base + component;
150
+ if (allRadixComponents.has(combined))
151
+ return combined;
152
+ if (allRadixComponents.has(component))
153
+ return component;
154
+ }
155
+ return null;
156
+ };
157
+ // Check for Portal usage
158
+ if (normalizedTag.includes('Portal')) {
159
+ portalCount++;
160
+ }
161
+ // Get attributes for this element
162
+ let attributes = [];
163
+ try {
164
+ attributes = element.getAttributes();
165
+ }
166
+ catch {
167
+ // If getting attributes fails, skip this element
168
+ return;
169
+ }
170
+ attributes.forEach((attr) => {
171
+ try {
172
+ if (attr.getKind() === SyntaxKind.JsxAttribute) {
173
+ const jsxAttr = attr;
174
+ const attrName = jsxAttr.getNameNode().getText();
175
+ // Check for asChild composition pattern
176
+ if (attrName === 'asChild') {
177
+ asChildCount++;
178
+ }
179
+ // Check for controlled pattern (Radix components only)
180
+ if (CONTROL_PATTERNS.controlled.includes(attrName) && isRadixComponent(tagName)) {
181
+ const componentName = getComponentName(tagName);
182
+ if (componentName) {
183
+ controlled.add(componentName);
184
+ }
185
+ }
186
+ // Check for uncontrolled pattern (Radix components only)
187
+ if (CONTROL_PATTERNS.uncontrolled.includes(attrName) && isRadixComponent(tagName)) {
188
+ const componentName = getComponentName(tagName);
189
+ if (componentName) {
190
+ uncontrolled.add(componentName);
191
+ }
192
+ }
193
+ // Check for accessibility props
194
+ if (attrName === 'dir') {
195
+ usesDirection = true;
196
+ }
197
+ if (attrName === 'trapFocus' || attrName === 'restoreFocus') {
198
+ usesFocusManagement = true;
199
+ }
200
+ if (attrName === 'loop' || attrName === 'orientation') {
201
+ usesKeyboardNav = true;
202
+ }
203
+ if (attrName === 'modal') {
204
+ usesModal = true;
205
+ }
206
+ }
207
+ }
208
+ catch {
209
+ // Skip this attribute if processing fails
210
+ }
211
+ });
212
+ };
213
+ // Process JsxElement (e.g., <Dialog>...</Dialog>) - wrap AST-risky operation
214
+ let jsxElements = [];
215
+ try {
216
+ jsxElements = source.getDescendantsOfKind(SyntaxKind.JsxElement);
217
+ }
218
+ catch {
219
+ // If AST traversal fails, continue with self-closing elements only
220
+ }
221
+ jsxElements.forEach(element => {
222
+ try {
223
+ const openingElement = element.getOpeningElement();
224
+ const tagName = openingElement.getTagNameNode().getText();
225
+ processJsxElement(openingElement, tagName);
226
+ }
227
+ catch {
228
+ // Skip this element if processing fails
229
+ }
230
+ });
231
+ // Process JsxSelfClosingElement (e.g., <DialogTrigger />) - wrap AST-risky operation
232
+ let jsxSelfClosingElements = [];
233
+ try {
234
+ jsxSelfClosingElements = source.getDescendantsOfKind(SyntaxKind.JsxSelfClosingElement);
235
+ }
236
+ catch {
237
+ // If AST traversal fails, continue without self-closing elements
238
+ }
239
+ jsxSelfClosingElements.forEach(element => {
240
+ try {
241
+ const tagName = element.getTagNameNode().getText();
242
+ processJsxElement(element, tagName);
243
+ }
244
+ catch {
245
+ // Skip this element if processing fails
246
+ }
247
+ });
248
+ // Calculate composition depth based on component usage
249
+ let compositionDepth;
250
+ const totalPrimitives = Array.from(primitives.values()).reduce((sum, set) => sum + set.size, 0);
251
+ if (totalPrimitives > 0) {
252
+ // Simple: 1-3 primitives, low portal usage
253
+ // Moderate: 4-10 primitives, some portals
254
+ // Complex: 11+ primitives, heavy portal/composition usage
255
+ if (totalPrimitives <= 3 && portalCount <= 1) {
256
+ compositionDepth = 'simple';
257
+ }
258
+ else if (totalPrimitives <= 10 && portalCount <= 5) {
259
+ compositionDepth = 'moderate';
260
+ }
261
+ else {
262
+ compositionDepth = 'complex';
263
+ }
264
+ }
265
+ // Convert primitives Map to Record with sorted arrays
266
+ const primitivesRecord = {};
267
+ primitives.forEach((componentSet, packageName) => {
268
+ primitivesRecord[packageName] = Array.from(componentSet).sort();
269
+ });
270
+ // Build accessibility object
271
+ const accessibilityResult = {};
272
+ if (usesDirection)
273
+ accessibilityResult.usesDirection = true;
274
+ if (usesFocusManagement)
275
+ accessibilityResult.usesFocusManagement = true;
276
+ if (usesKeyboardNav)
277
+ accessibilityResult.usesKeyboardNav = true;
278
+ if (usesModal)
279
+ accessibilityResult.usesModal = true;
280
+ // Build features object
281
+ const featuresResult = {};
282
+ if (totalPrimitives > 0)
283
+ featuresResult.primitiveCount = totalPrimitives;
284
+ if (compositionDepth)
285
+ featuresResult.compositionDepth = compositionDepth;
286
+ return {
287
+ primitives: primitivesRecord,
288
+ patterns: {
289
+ controlled: Array.from(controlled).sort(),
290
+ uncontrolled: Array.from(uncontrolled).sort(),
291
+ portals: portalCount,
292
+ asChild: asChildCount,
293
+ },
294
+ accessibility: accessibilityResult,
295
+ features: featuresResult,
296
+ };
297
+ }
298
+ catch (error) {
299
+ debugError('radix', 'extractRadixUI', {
300
+ error: error instanceof Error ? error.message : String(error),
301
+ });
302
+ return {
303
+ primitives: {},
304
+ patterns: {
305
+ controlled: [],
306
+ uncontrolled: [],
307
+ portals: 0,
308
+ asChild: 0,
309
+ },
310
+ accessibility: {},
311
+ features: {},
312
+ };
313
+ }
314
+ }
315
+ //# sourceMappingURL=radix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radix.js","sourceRoot":"","sources":["../../../src/core/styleExtractor/radix.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scss.d.ts","sourceRoot":"","sources":["../../../src/core/styleExtractor/scss.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAItC;;GAEG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAClF,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC,CA2CD;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE;QACZ,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,QAAQ,EAAE;YACR,SAAS,CAAC,EAAE,OAAO,CAAC;YACpB,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB,MAAM,CAAC,EAAE,OAAO,CAAC;SAClB,CAAC;KACH,CAAC;CACH,CAAC,CAwCD"}
1
+ {"version":3,"file":"scss.d.ts","sourceRoot":"","sources":["../../../src/core/styleExtractor/scss.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAKtC;;GAEG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAClF,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC,CA+CD;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE;QACZ,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,QAAQ,EAAE;YACR,SAAS,CAAC,EAAE,OAAO,CAAC;YACpB,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB,MAAM,CAAC,EAAE,OAAO,CAAC;SAClB,CAAC;KACH,CAAC;CACH,CAAC,CAgDD"}
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { readFile } from 'node:fs/promises';
5
5
  import { resolve, dirname } from 'node:path';
6
+ import { debugError } from '../../utils/debug.js';
6
7
  /**
7
8
  * Parse SCSS/CSS file content to extract style information
8
9
  */
@@ -38,7 +39,11 @@ export async function parseStyleFile(filePath, importPath) {
38
39
  };
39
40
  }
40
41
  catch (error) {
41
- // File not found or can't be read
42
+ debugError('scss', 'parseStyleFile', {
43
+ filePath,
44
+ importPath,
45
+ error: error instanceof Error ? error.message : String(error),
46
+ });
42
47
  return {
43
48
  selectors: [],
44
49
  properties: [],
@@ -52,29 +57,38 @@ export async function parseStyleFile(filePath, importPath) {
52
57
  * Extract SCSS module metadata from source file
53
58
  */
54
59
  export async function extractScssMetadata(source, filePath) {
55
- const result = {};
56
- // Check for SCSS module imports and parse them
57
- const scssModuleImport = source.getImportDeclarations().find(imp => {
58
- const moduleSpecifier = imp.getModuleSpecifierValue();
59
- return moduleSpecifier.endsWith('.module.scss') || moduleSpecifier.endsWith('.scss');
60
- });
61
- if (scssModuleImport) {
62
- const moduleSpecifier = scssModuleImport.getModuleSpecifierValue();
63
- result.scssModule = moduleSpecifier;
64
- // Parse the SCSS file for detailed information
65
- const scssInfo = await parseStyleFile(filePath, moduleSpecifier);
66
- if (scssInfo.selectors.length > 0 || scssInfo.properties.length > 0) {
67
- result.scssDetails = {
68
- selectors: scssInfo.selectors,
69
- properties: scssInfo.properties,
70
- features: {
71
- ...(scssInfo.hasVariables && { variables: true }),
72
- ...(scssInfo.hasNesting && { nesting: true }),
73
- ...(scssInfo.hasMixins && { mixins: true }),
74
- },
75
- };
60
+ try {
61
+ const result = {};
62
+ // Check for SCSS module imports and parse them
63
+ const scssModuleImport = source.getImportDeclarations().find(imp => {
64
+ const moduleSpecifier = imp.getModuleSpecifierValue();
65
+ return moduleSpecifier.endsWith('.module.scss') || moduleSpecifier.endsWith('.scss');
66
+ });
67
+ if (scssModuleImport) {
68
+ const moduleSpecifier = scssModuleImport.getModuleSpecifierValue();
69
+ result.scssModule = moduleSpecifier;
70
+ // Parse the SCSS file for detailed information
71
+ const scssInfo = await parseStyleFile(filePath, moduleSpecifier);
72
+ if (scssInfo.selectors.length > 0 || scssInfo.properties.length > 0) {
73
+ result.scssDetails = {
74
+ selectors: scssInfo.selectors,
75
+ properties: scssInfo.properties,
76
+ features: {
77
+ ...(scssInfo.hasVariables && { variables: true }),
78
+ ...(scssInfo.hasNesting && { nesting: true }),
79
+ ...(scssInfo.hasMixins && { mixins: true }),
80
+ },
81
+ };
82
+ }
76
83
  }
84
+ return result;
85
+ }
86
+ catch (error) {
87
+ debugError('scss', 'extractScssMetadata', {
88
+ filePath,
89
+ error: error instanceof Error ? error.message : String(error),
90
+ });
91
+ return {};
77
92
  }
78
- return result;
79
93
  }
80
94
  //# sourceMappingURL=scss.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scss.js","sourceRoot":"","sources":["../../../src/core/styleExtractor/scss.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scss.js","sourceRoot":"","sources":["../../../src/core/styleExtractor/scss.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB,EAAE,UAAkB;IAOvE,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAEtD,wBAAwB;QACxB,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC;QACzE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,CAAC,CAAC;gBAAE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;QAED,yBAAyB;QACzB,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QACrC,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,kCAAkC;QAC9E,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE/C,OAAO;YACL,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YACpD,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YACtD,YAAY;YACZ,UAAU;YACV,SAAS;SACV,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,MAAM,EAAE,gBAAgB,EAAE;YACnC,QAAQ;YACR,UAAU;YACV,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC,CAAC;QACH,OAAO;YACL,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAkB,EAAE,QAAgB;IAY5E,IAAI,CAAC;QACH,MAAM,MAAM,GAWR,EAAE,CAAC;QAEP,+CAA+C;QAC/C,MAAM,gBAAgB,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACjE,MAAM,eAAe,GAAG,GAAG,CAAC,uBAAuB,EAAE,CAAC;YACtD,OAAO,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvF,CAAC,CAAC,CAAC;QAEH,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,eAAe,GAAG,gBAAgB,CAAC,uBAAuB,EAAE,CAAC;YACnE,MAAM,CAAC,UAAU,GAAG,eAAe,CAAC;YAEpC,+CAA+C;YAC/C,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;YACjE,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpE,MAAM,CAAC,WAAW,GAAG;oBACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,QAAQ,EAAE;wBACR,GAAG,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;wBACjD,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wBAC7C,GAAG,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;qBAC5C;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,MAAM,EAAE,qBAAqB,EAAE;YACxC,QAAQ;YACR,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC,CAAC;QACH,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * ShadCN/UI extractor - Extracts ShadCN/UI component library usage
3
+ * ShadCN/UI is a collection of re-usable components built with Radix UI and Tailwind CSS
4
+ */
5
+ import { SourceFile } from 'ts-morph';
6
+ /**
7
+ * Extract ShadCN/UI usage from a source file
8
+ */
9
+ export declare function extractShadcnUI(source: SourceFile): {
10
+ components: string[];
11
+ variants: Record<string, string[]>;
12
+ sizes: string[];
13
+ features: {
14
+ usesForm?: boolean;
15
+ usesTheme?: boolean;
16
+ usesIcons?: boolean;
17
+ componentDensity?: 'low' | 'medium' | 'high';
18
+ };
19
+ };
20
+ //# sourceMappingURL=shadcn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadcn.d.ts","sourceRoot":"","sources":["../../../src/core/styleExtractor/shadcn.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,UAAU,EAOX,MAAM,UAAU,CAAC;AAyFlB;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG;IACnD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACnC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE;QACR,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,gBAAgB,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;KAC9C,CAAC;CACH,CA4QA"}