@urbicon-ui/docs-gen 6.1.4

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 (263) hide show
  1. package/README.md +92 -0
  2. package/dist/cli/CLI.d.ts +10 -0
  3. package/dist/cli/CLI.d.ts.map +1 -0
  4. package/dist/cli/CLI.js +340 -0
  5. package/dist/cli/CLI.js.map +1 -0
  6. package/dist/cli/index.d.ts +2 -0
  7. package/dist/cli/index.d.ts.map +1 -0
  8. package/dist/cli/index.js +7 -0
  9. package/dist/cli/index.js.map +1 -0
  10. package/dist/core/discovery/ComponentFinder.d.ts +43 -0
  11. package/dist/core/discovery/ComponentFinder.d.ts.map +1 -0
  12. package/dist/core/discovery/ComponentFinder.js +421 -0
  13. package/dist/core/discovery/ComponentFinder.js.map +1 -0
  14. package/dist/core/discovery/FileStructureAnalyzer.d.ts +15 -0
  15. package/dist/core/discovery/FileStructureAnalyzer.d.ts.map +1 -0
  16. package/dist/core/discovery/FileStructureAnalyzer.js +35 -0
  17. package/dist/core/discovery/FileStructureAnalyzer.js.map +1 -0
  18. package/dist/core/discovery/MetadataExtractor.d.ts +15 -0
  19. package/dist/core/discovery/MetadataExtractor.d.ts.map +1 -0
  20. package/dist/core/discovery/MetadataExtractor.js +47 -0
  21. package/dist/core/discovery/MetadataExtractor.js.map +1 -0
  22. package/dist/core/discovery/index.d.ts +2 -0
  23. package/dist/core/discovery/index.d.ts.map +1 -0
  24. package/dist/core/discovery/index.js +2 -0
  25. package/dist/core/discovery/index.js.map +1 -0
  26. package/dist/core/enrichment/APIDataGenerator.d.ts +77 -0
  27. package/dist/core/enrichment/APIDataGenerator.d.ts.map +1 -0
  28. package/dist/core/enrichment/APIDataGenerator.js +663 -0
  29. package/dist/core/enrichment/APIDataGenerator.js.map +1 -0
  30. package/dist/core/enrichment/index.d.ts +2 -0
  31. package/dist/core/enrichment/index.d.ts.map +1 -0
  32. package/dist/core/enrichment/index.js +6 -0
  33. package/dist/core/enrichment/index.js.map +1 -0
  34. package/dist/core/extraction/ExtractionCoordinator.d.ts +53 -0
  35. package/dist/core/extraction/ExtractionCoordinator.d.ts.map +1 -0
  36. package/dist/core/extraction/ExtractionCoordinator.js +352 -0
  37. package/dist/core/extraction/ExtractionCoordinator.js.map +1 -0
  38. package/dist/core/extraction/index.d.ts +2 -0
  39. package/dist/core/extraction/index.d.ts.map +1 -0
  40. package/dist/core/extraction/index.js +2 -0
  41. package/dist/core/extraction/index.js.map +1 -0
  42. package/dist/core/generation/GenerationCoordinator.d.ts +51 -0
  43. package/dist/core/generation/GenerationCoordinator.d.ts.map +1 -0
  44. package/dist/core/generation/GenerationCoordinator.js +206 -0
  45. package/dist/core/generation/GenerationCoordinator.js.map +1 -0
  46. package/dist/core/generation/index.d.ts +2 -0
  47. package/dist/core/generation/index.d.ts.map +1 -0
  48. package/dist/core/generation/index.js +2 -0
  49. package/dist/core/generation/index.js.map +1 -0
  50. package/dist/core/index.d.ts +7 -0
  51. package/dist/core/index.d.ts.map +1 -0
  52. package/dist/core/index.js +16 -0
  53. package/dist/core/index.js.map +1 -0
  54. package/dist/core/pipeline/ErrorHandler.d.ts +129 -0
  55. package/dist/core/pipeline/ErrorHandler.d.ts.map +1 -0
  56. package/dist/core/pipeline/ErrorHandler.js +321 -0
  57. package/dist/core/pipeline/ErrorHandler.js.map +1 -0
  58. package/dist/core/pipeline/PipelineOrchestrator.d.ts +45 -0
  59. package/dist/core/pipeline/PipelineOrchestrator.d.ts.map +1 -0
  60. package/dist/core/pipeline/PipelineOrchestrator.js +216 -0
  61. package/dist/core/pipeline/PipelineOrchestrator.js.map +1 -0
  62. package/dist/core/pipeline/index.d.ts +1 -0
  63. package/dist/core/pipeline/index.d.ts.map +1 -0
  64. package/dist/core/pipeline/index.js +2 -0
  65. package/dist/core/pipeline/index.js.map +1 -0
  66. package/dist/extractors/BaseExtractor.d.ts +33 -0
  67. package/dist/extractors/BaseExtractor.d.ts.map +1 -0
  68. package/dist/extractors/BaseExtractor.js +68 -0
  69. package/dist/extractors/BaseExtractor.js.map +1 -0
  70. package/dist/extractors/ExtractorFactory.d.ts +35 -0
  71. package/dist/extractors/ExtractorFactory.d.ts.map +1 -0
  72. package/dist/extractors/ExtractorFactory.js +88 -0
  73. package/dist/extractors/ExtractorFactory.js.map +1 -0
  74. package/dist/extractors/documentation/index.d.ts +1 -0
  75. package/dist/extractors/documentation/index.d.ts.map +1 -0
  76. package/dist/extractors/documentation/index.js +2 -0
  77. package/dist/extractors/documentation/index.js.map +1 -0
  78. package/dist/extractors/index.d.ts +1 -0
  79. package/dist/extractors/index.d.ts.map +1 -0
  80. package/dist/extractors/index.js +2 -0
  81. package/dist/extractors/index.js.map +1 -0
  82. package/dist/extractors/typescript/ExamplesExtractor.d.ts +32 -0
  83. package/dist/extractors/typescript/ExamplesExtractor.d.ts.map +1 -0
  84. package/dist/extractors/typescript/ExamplesExtractor.js +209 -0
  85. package/dist/extractors/typescript/ExamplesExtractor.js.map +1 -0
  86. package/dist/extractors/typescript/InheritanceExtractor.d.ts +45 -0
  87. package/dist/extractors/typescript/InheritanceExtractor.d.ts.map +1 -0
  88. package/dist/extractors/typescript/InheritanceExtractor.js +368 -0
  89. package/dist/extractors/typescript/InheritanceExtractor.js.map +1 -0
  90. package/dist/extractors/typescript/LocalTypesExtractor.d.ts +20 -0
  91. package/dist/extractors/typescript/LocalTypesExtractor.d.ts.map +1 -0
  92. package/dist/extractors/typescript/LocalTypesExtractor.js +100 -0
  93. package/dist/extractors/typescript/LocalTypesExtractor.js.map +1 -0
  94. package/dist/extractors/typescript/PropsExtractor.d.ts +142 -0
  95. package/dist/extractors/typescript/PropsExtractor.d.ts.map +1 -0
  96. package/dist/extractors/typescript/PropsExtractor.js +709 -0
  97. package/dist/extractors/typescript/PropsExtractor.js.map +1 -0
  98. package/dist/extractors/typescript/TypeScriptBaseExtractor.d.ts +74 -0
  99. package/dist/extractors/typescript/TypeScriptBaseExtractor.d.ts.map +1 -0
  100. package/dist/extractors/typescript/TypeScriptBaseExtractor.js +249 -0
  101. package/dist/extractors/typescript/TypeScriptBaseExtractor.js.map +1 -0
  102. package/dist/extractors/typescript/index.d.ts +1 -0
  103. package/dist/extractors/typescript/index.d.ts.map +1 -0
  104. package/dist/extractors/typescript/index.js +2 -0
  105. package/dist/extractors/typescript/index.js.map +1 -0
  106. package/dist/extractors/variants/TailwindVariantsParser.d.ts +16 -0
  107. package/dist/extractors/variants/TailwindVariantsParser.d.ts.map +1 -0
  108. package/dist/extractors/variants/TailwindVariantsParser.js +53 -0
  109. package/dist/extractors/variants/TailwindVariantsParser.js.map +1 -0
  110. package/dist/extractors/variants/VariantsExtractor.d.ts +45 -0
  111. package/dist/extractors/variants/VariantsExtractor.d.ts.map +1 -0
  112. package/dist/extractors/variants/VariantsExtractor.js +340 -0
  113. package/dist/extractors/variants/VariantsExtractor.js.map +1 -0
  114. package/dist/extractors/variants/index.d.ts +2 -0
  115. package/dist/extractors/variants/index.d.ts.map +1 -0
  116. package/dist/extractors/variants/index.js +2 -0
  117. package/dist/extractors/variants/index.js.map +1 -0
  118. package/dist/generators/api/APIFileGenerator.d.ts +32 -0
  119. package/dist/generators/api/APIFileGenerator.d.ts.map +1 -0
  120. package/dist/generators/api/APIFileGenerator.js +450 -0
  121. package/dist/generators/api/APIFileGenerator.js.map +1 -0
  122. package/dist/generators/api/TypeDefinitionGenerator.d.ts +1 -0
  123. package/dist/generators/api/TypeDefinitionGenerator.d.ts.map +1 -0
  124. package/dist/generators/api/TypeDefinitionGenerator.js +2 -0
  125. package/dist/generators/api/TypeDefinitionGenerator.js.map +1 -0
  126. package/dist/generators/api/index.d.ts +2 -0
  127. package/dist/generators/api/index.d.ts.map +1 -0
  128. package/dist/generators/api/index.js +2 -0
  129. package/dist/generators/api/index.js.map +1 -0
  130. package/dist/generators/index.d.ts +5 -0
  131. package/dist/generators/index.d.ts.map +1 -0
  132. package/dist/generators/index.js +4 -0
  133. package/dist/generators/index.js.map +1 -0
  134. package/dist/generators/llm/LLMDocumentationGenerator.d.ts +34 -0
  135. package/dist/generators/llm/LLMDocumentationGenerator.d.ts.map +1 -0
  136. package/dist/generators/llm/LLMDocumentationGenerator.js +480 -0
  137. package/dist/generators/llm/LLMDocumentationGenerator.js.map +1 -0
  138. package/dist/generators/llm/LLMFormatter.d.ts +4 -0
  139. package/dist/generators/llm/LLMFormatter.d.ts.map +1 -0
  140. package/dist/generators/llm/LLMFormatter.js +8 -0
  141. package/dist/generators/llm/LLMFormatter.js.map +1 -0
  142. package/dist/generators/llm/LlmsFullAssembler.d.ts +20 -0
  143. package/dist/generators/llm/LlmsFullAssembler.d.ts.map +1 -0
  144. package/dist/generators/llm/LlmsFullAssembler.js +63 -0
  145. package/dist/generators/llm/LlmsFullAssembler.js.map +1 -0
  146. package/dist/generators/llm/index.d.ts +1 -0
  147. package/dist/generators/llm/index.d.ts.map +1 -0
  148. package/dist/generators/llm/index.js +2 -0
  149. package/dist/generators/llm/index.js.map +1 -0
  150. package/dist/generators/mcp/MCPCatalogAssembler.d.ts +27 -0
  151. package/dist/generators/mcp/MCPCatalogAssembler.d.ts.map +1 -0
  152. package/dist/generators/mcp/MCPCatalogAssembler.js +147 -0
  153. package/dist/generators/mcp/MCPCatalogAssembler.js.map +1 -0
  154. package/dist/generators/mcp/MCPCatalogGenerator.d.ts +55 -0
  155. package/dist/generators/mcp/MCPCatalogGenerator.d.ts.map +1 -0
  156. package/dist/generators/mcp/MCPCatalogGenerator.js +153 -0
  157. package/dist/generators/mcp/MCPCatalogGenerator.js.map +1 -0
  158. package/dist/generators/svelte/PageGenerator.d.ts +82 -0
  159. package/dist/generators/svelte/PageGenerator.d.ts.map +1 -0
  160. package/dist/generators/svelte/PageGenerator.js +557 -0
  161. package/dist/generators/svelte/PageGenerator.js.map +1 -0
  162. package/dist/generators/svelte/PlaygroundPresets.d.ts +2 -0
  163. package/dist/generators/svelte/PlaygroundPresets.d.ts.map +1 -0
  164. package/dist/generators/svelte/PlaygroundPresets.js +4 -0
  165. package/dist/generators/svelte/PlaygroundPresets.js.map +1 -0
  166. package/dist/generators/svelte/SectionMerger.d.ts +38 -0
  167. package/dist/generators/svelte/SectionMerger.d.ts.map +1 -0
  168. package/dist/generators/svelte/SectionMerger.js +154 -0
  169. package/dist/generators/svelte/SectionMerger.js.map +1 -0
  170. package/dist/generators/svelte/TemplateEngine.d.ts +91 -0
  171. package/dist/generators/svelte/TemplateEngine.d.ts.map +1 -0
  172. package/dist/generators/svelte/TemplateEngine.js +500 -0
  173. package/dist/generators/svelte/TemplateEngine.js.map +1 -0
  174. package/dist/generators/svelte/index.d.ts +8 -0
  175. package/dist/generators/svelte/index.d.ts.map +1 -0
  176. package/dist/generators/svelte/index.js +11 -0
  177. package/dist/generators/svelte/index.js.map +1 -0
  178. package/dist/generators/svelte/renderers/ApiRenderer.d.ts +17 -0
  179. package/dist/generators/svelte/renderers/ApiRenderer.d.ts.map +1 -0
  180. package/dist/generators/svelte/renderers/ApiRenderer.js +44 -0
  181. package/dist/generators/svelte/renderers/ApiRenderer.js.map +1 -0
  182. package/dist/generators/svelte/renderers/ExampleRenderer.d.ts +33 -0
  183. package/dist/generators/svelte/renderers/ExampleRenderer.d.ts.map +1 -0
  184. package/dist/generators/svelte/renderers/ExampleRenderer.js +137 -0
  185. package/dist/generators/svelte/renderers/ExampleRenderer.js.map +1 -0
  186. package/dist/generators/svelte/renderers/OverviewRenderer.d.ts +9 -0
  187. package/dist/generators/svelte/renderers/OverviewRenderer.d.ts.map +1 -0
  188. package/dist/generators/svelte/renderers/OverviewRenderer.js +45 -0
  189. package/dist/generators/svelte/renderers/OverviewRenderer.js.map +1 -0
  190. package/dist/generators/svelte/renderers/PlaygroundRenderer.d.ts +35 -0
  191. package/dist/generators/svelte/renderers/PlaygroundRenderer.d.ts.map +1 -0
  192. package/dist/generators/svelte/renderers/PlaygroundRenderer.js +319 -0
  193. package/dist/generators/svelte/renderers/PlaygroundRenderer.js.map +1 -0
  194. package/dist/generators/svelte/renderers/TypesRenderer.d.ts +9 -0
  195. package/dist/generators/svelte/renderers/TypesRenderer.d.ts.map +1 -0
  196. package/dist/generators/svelte/renderers/TypesRenderer.js +23 -0
  197. package/dist/generators/svelte/renderers/TypesRenderer.js.map +1 -0
  198. package/dist/generators/svelte/renderers/UsageRenderer.d.ts +14 -0
  199. package/dist/generators/svelte/renderers/UsageRenderer.d.ts.map +1 -0
  200. package/dist/generators/svelte/renderers/UsageRenderer.js +91 -0
  201. package/dist/generators/svelte/renderers/UsageRenderer.js.map +1 -0
  202. package/dist/generators/svelte/renderers/VariantsRenderer.d.ts +43 -0
  203. package/dist/generators/svelte/renderers/VariantsRenderer.d.ts.map +1 -0
  204. package/dist/generators/svelte/renderers/VariantsRenderer.js +277 -0
  205. package/dist/generators/svelte/renderers/VariantsRenderer.js.map +1 -0
  206. package/dist/generators/svelte/renderers/index.d.ts +8 -0
  207. package/dist/generators/svelte/renderers/index.d.ts.map +1 -0
  208. package/dist/generators/svelte/renderers/index.js +8 -0
  209. package/dist/generators/svelte/renderers/index.js.map +1 -0
  210. package/dist/generators/svelte/types.d.ts +13 -0
  211. package/dist/generators/svelte/types.d.ts.map +1 -0
  212. package/dist/generators/svelte/types.js +2 -0
  213. package/dist/generators/svelte/types.js.map +1 -0
  214. package/dist/index.d.ts +5 -0
  215. package/dist/index.d.ts.map +1 -0
  216. package/dist/index.js +4 -0
  217. package/dist/index.js.map +1 -0
  218. package/dist/parsers/SvelteDocsParser.d.ts +44 -0
  219. package/dist/parsers/SvelteDocsParser.d.ts.map +1 -0
  220. package/dist/parsers/SvelteDocsParser.js +141 -0
  221. package/dist/parsers/SvelteDocsParser.js.map +1 -0
  222. package/dist/parsers/index.d.ts +2 -0
  223. package/dist/parsers/index.d.ts.map +1 -0
  224. package/dist/parsers/index.js +6 -0
  225. package/dist/parsers/index.js.map +1 -0
  226. package/dist/schema/ConfigurationBuilder.d.ts +55 -0
  227. package/dist/schema/ConfigurationBuilder.d.ts.map +1 -0
  228. package/dist/schema/ConfigurationBuilder.js +447 -0
  229. package/dist/schema/ConfigurationBuilder.js.map +1 -0
  230. package/dist/schema/index.d.ts +1 -0
  231. package/dist/schema/index.d.ts.map +1 -0
  232. package/dist/schema/index.js +2 -0
  233. package/dist/schema/index.js.map +1 -0
  234. package/dist/tsconfig.tsbuildinfo +1 -0
  235. package/dist/types/configuration.d.ts +255 -0
  236. package/dist/types/configuration.d.ts.map +1 -0
  237. package/dist/types/configuration.js +2 -0
  238. package/dist/types/configuration.js.map +1 -0
  239. package/dist/types/core.d.ts +96 -0
  240. package/dist/types/core.d.ts.map +1 -0
  241. package/dist/types/core.js +2 -0
  242. package/dist/types/core.js.map +1 -0
  243. package/dist/types/docs-config.d.ts +5 -0
  244. package/dist/types/docs-config.d.ts.map +1 -0
  245. package/dist/types/docs-config.js +51 -0
  246. package/dist/types/docs-config.js.map +1 -0
  247. package/dist/types/index.d.ts +6 -0
  248. package/dist/types/index.d.ts.map +1 -0
  249. package/dist/types/index.js +9 -0
  250. package/dist/types/index.js.map +1 -0
  251. package/dist/types/validation.d.ts +321 -0
  252. package/dist/types/validation.d.ts.map +1 -0
  253. package/dist/types/validation.js +2 -0
  254. package/dist/types/validation.js.map +1 -0
  255. package/dist/utils/DeploymentManager.d.ts +80 -0
  256. package/dist/utils/DeploymentManager.d.ts.map +1 -0
  257. package/dist/utils/DeploymentManager.js +360 -0
  258. package/dist/utils/DeploymentManager.js.map +1 -0
  259. package/dist/utils/index.d.ts +1 -0
  260. package/dist/utils/index.d.ts.map +1 -0
  261. package/dist/utils/index.js +2 -0
  262. package/dist/utils/index.js.map +1 -0
  263. package/package.json +74 -0
@@ -0,0 +1,340 @@
1
+ import * as fs from 'node:fs/promises';
2
+ import * as path from 'node:path';
3
+ import * as ts from 'typescript';
4
+ import { TypeScriptBaseExtractor } from '../typescript/TypeScriptBaseExtractor';
5
+ /**
6
+ * Extracts variant information from Tailwind Variants files
7
+ * Supports tv() function calls and various variant configurations
8
+ */
9
+ export class VariantsExtractor extends TypeScriptBaseExtractor {
10
+ config;
11
+ constructor(tsConfig) {
12
+ super(tsConfig);
13
+ const ext = tsConfig
14
+ ?.extraction?.variants;
15
+ this.config = {
16
+ frameworks: ['tailwind-variants'],
17
+ extractDefaults: true,
18
+ includeComputed: false,
19
+ customParsers: [],
20
+ ...ext
21
+ };
22
+ }
23
+ /**
24
+ * Extract variants from component variants file
25
+ */
26
+ async extract(input) {
27
+ const startTime = Date.now();
28
+ if (!this.validateInput(input)) {
29
+ return this.handleError(new Error('Invalid input for variants extraction'), input);
30
+ }
31
+ try {
32
+ console.log(`🎨 Extracting variants for ${input.componentName}`);
33
+ // Find variants file
34
+ const variantsFilePath = input.variantsFilePath || (await this.findVariantsFile(input));
35
+ if (!variantsFilePath) {
36
+ const warning = this.addWarning('no_variants_file', `No variants file found for ${input.componentName}`, `Create a ${input.componentName.toLowerCase()}.variants.ts file to define component variants`);
37
+ return this.createSuccessResult([], [warning], input.componentPath, Date.now() - startTime);
38
+ }
39
+ console.log(`✅ Found variants file: ${path.relative(process.cwd(), variantsFilePath)}`);
40
+ // Parse variants from file
41
+ const variants = await this.parseVariantsFile(variantsFilePath, input.componentName);
42
+ console.log(`🎨 Extracted ${variants.length} variant groups from ${input.componentName}`);
43
+ const duration = Date.now() - startTime;
44
+ return this.createSuccessResult(variants, [], variantsFilePath, duration);
45
+ }
46
+ catch (error) {
47
+ return this.handleError(error, input);
48
+ }
49
+ }
50
+ // ==========================================
51
+ // VARIANTS FILE DISCOVERY
52
+ // ==========================================
53
+ async findVariantsFile(input) {
54
+ const componentDir = path.dirname(input.componentPath);
55
+ const componentName = input.componentName;
56
+ const kebab = componentName.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
57
+ const camel = componentName.charAt(0).toLowerCase() + componentName.slice(1);
58
+ // Try common patterns for variants files. Authors are inconsistent
59
+ // (some use lowercase, some camelCase, some kebab-case), so we
60
+ // probe each variant. Order is "most specific first".
61
+ const patterns = [
62
+ `${componentName.toLowerCase()}.variants.ts`,
63
+ `${componentName}.variants.ts`,
64
+ `${camel}.variants.ts`,
65
+ `${kebab}.variants.ts`,
66
+ 'variants.ts',
67
+ `${componentName.toLowerCase()}.variants.js`,
68
+ `${componentName}.variants.js`,
69
+ `${camel}.variants.js`,
70
+ `${kebab}.variants.js`
71
+ ];
72
+ // Discovery probes many candidates in sequence; we don't want each
73
+ // missing path to log a warning. Check existence first via fs.access
74
+ // and only call getSourceFile for paths that actually exist.
75
+ for (const pattern of patterns) {
76
+ const filePath = path.join(componentDir, pattern);
77
+ try {
78
+ await fs.access(filePath);
79
+ }
80
+ catch {
81
+ continue;
82
+ }
83
+ try {
84
+ const sourceFile = await this.getSourceFile(filePath);
85
+ if (sourceFile) {
86
+ return filePath;
87
+ }
88
+ }
89
+ catch {
90
+ // Continue to next pattern
91
+ }
92
+ }
93
+ return null;
94
+ }
95
+ // ==========================================
96
+ // VARIANTS FILE PARSING
97
+ // ==========================================
98
+ async parseVariantsFile(variantsFilePath, componentName) {
99
+ const sourceFile = await this.getSourceFile(variantsFilePath);
100
+ if (!sourceFile) {
101
+ throw new Error(`Could not load variants file: ${variantsFilePath}`);
102
+ }
103
+ // Find variants declaration
104
+ const variantsDeclaration = this.findVariantsDeclaration(sourceFile, componentName);
105
+ if (!variantsDeclaration) {
106
+ throw new Error(`No variants declaration found in ${variantsFilePath}`);
107
+ }
108
+ console.log(`🎯 Found variants declaration: ${variantsDeclaration.name?.getText()}`);
109
+ // Parse the variants based on framework
110
+ return this.parseVariantsDeclaration(variantsDeclaration, sourceFile);
111
+ }
112
+ findVariantsDeclaration(sourceFile, componentName) {
113
+ // camelCase covers the repo convention for multi-word components
114
+ // (`segmentGroupVariants`, `guidePanelVariants`); for single-word names it
115
+ // coincides with the lowercase candidate.
116
+ const camel = componentName.charAt(0).toLowerCase() + componentName.slice(1);
117
+ const possibleNames = [
118
+ `${componentName.toLowerCase()}Variants`,
119
+ `${camel}Variants`,
120
+ `${componentName}Variants`,
121
+ 'variants'
122
+ ];
123
+ let foundDeclaration = null;
124
+ const visit = (node) => {
125
+ if (ts.isVariableDeclaration(node) && node.name && ts.isIdentifier(node.name)) {
126
+ const declarationName = node.name.text;
127
+ if (possibleNames.includes(declarationName)) {
128
+ foundDeclaration = node;
129
+ return;
130
+ }
131
+ }
132
+ ts.forEachChild(node, visit);
133
+ };
134
+ visit(sourceFile);
135
+ return foundDeclaration;
136
+ }
137
+ parseVariantsDeclaration(declaration, _sourceFile) {
138
+ if (!declaration.initializer) {
139
+ throw new Error('Variants declaration has no initializer');
140
+ }
141
+ // Check for supported frameworks
142
+ for (const framework of this.config.frameworks) {
143
+ switch (framework) {
144
+ case 'tailwind-variants': {
145
+ const tvCall = this.findTailwindVariantsCall(declaration.initializer);
146
+ if (tvCall) {
147
+ return this.parseTailwindVariants(tvCall);
148
+ }
149
+ break;
150
+ }
151
+ // Add support for other frameworks here
152
+ case 'stitches':
153
+ // TODO: Implement Stitches support
154
+ break;
155
+ case 'vanilla-extract':
156
+ // TODO: Implement Vanilla Extract support
157
+ break;
158
+ }
159
+ }
160
+ throw new Error('Unsupported variants pattern - only Tailwind Variants (tv) is currently supported');
161
+ }
162
+ // ==========================================
163
+ // TAILWIND VARIANTS PARSING
164
+ // ==========================================
165
+ findTailwindVariantsCall(node) {
166
+ if (ts.isCallExpression(node)) {
167
+ if (ts.isIdentifier(node.expression) && node.expression.text === 'tv') {
168
+ return node;
169
+ }
170
+ }
171
+ let result = null;
172
+ ts.forEachChild(node, (child) => {
173
+ if (!result) {
174
+ result = this.findTailwindVariantsCall(child);
175
+ }
176
+ });
177
+ return result;
178
+ }
179
+ parseTailwindVariants(tvCall) {
180
+ const configObject = tvCall.arguments[0];
181
+ if (!configObject || !ts.isObjectLiteralExpression(configObject)) {
182
+ throw new Error('tv() first argument is not an object literal');
183
+ }
184
+ // Extract variants property
185
+ const variantsProperty = this.findPropertyInObject(configObject, 'variants');
186
+ if (!variantsProperty || !ts.isObjectLiteralExpression(variantsProperty)) {
187
+ throw new Error('No variants property found in tv() config');
188
+ }
189
+ // Extract default variants if present
190
+ const defaultVariants = this.findPropertyInObject(configObject, 'defaultVariants');
191
+ const defaults = defaultVariants ? this.extractDefaultVariants(defaultVariants) : {};
192
+ // Parse individual variant groups
193
+ return this.parseVariantGroups(variantsProperty, defaults);
194
+ }
195
+ findPropertyInObject(objectLiteral, propertyName) {
196
+ for (const property of objectLiteral.properties) {
197
+ if (ts.isPropertyAssignment(property)) {
198
+ const propName = this.getObjectPropertyName(property);
199
+ if (propName === propertyName) {
200
+ return property.initializer;
201
+ }
202
+ }
203
+ }
204
+ return null;
205
+ }
206
+ /**
207
+ * Helper method to extract property names from object literal properties
208
+ */
209
+ getObjectPropertyName(property) {
210
+ return this.extractPropertyName(property.name);
211
+ }
212
+ /**
213
+ * Helper method to extract property names from PropertyName nodes
214
+ */
215
+ extractPropertyName(propertyName) {
216
+ if (ts.isIdentifier(propertyName)) {
217
+ return propertyName.text;
218
+ }
219
+ if (ts.isStringLiteral(propertyName)) {
220
+ return propertyName.text;
221
+ }
222
+ if (ts.isNumericLiteral(propertyName)) {
223
+ return propertyName.text;
224
+ }
225
+ if (ts.isComputedPropertyName(propertyName)) {
226
+ // For computed property names like [key], we can't easily determine the name
227
+ return null;
228
+ }
229
+ return null;
230
+ }
231
+ extractDefaultVariants(defaultVariantsNode) {
232
+ const defaults = {};
233
+ if (ts.isObjectLiteralExpression(defaultVariantsNode)) {
234
+ for (const property of defaultVariantsNode.properties) {
235
+ if (ts.isPropertyAssignment(property)) {
236
+ const key = this.extractPropertyName(property.name);
237
+ const value = this.extractLiteralValue(property.initializer);
238
+ if (key && value) {
239
+ defaults[key] = value;
240
+ }
241
+ }
242
+ }
243
+ }
244
+ return defaults;
245
+ }
246
+ parseVariantGroups(variantsObject, defaults) {
247
+ const variants = [];
248
+ for (const property of variantsObject.properties) {
249
+ if (ts.isPropertyAssignment(property)) {
250
+ const variantName = this.extractPropertyName(property.name);
251
+ if (variantName && ts.isObjectLiteralExpression(property.initializer)) {
252
+ const variantInfo = this.parseVariantGroup(variantName, property.initializer, defaults[variantName]);
253
+ if (variantInfo) {
254
+ variants.push(variantInfo);
255
+ console.log(` 🎨 ${variantName}: [${variantInfo.values.join(', ')}]${variantInfo.defaultValue ? ` (default: ${variantInfo.defaultValue})` : ''}`);
256
+ }
257
+ }
258
+ }
259
+ }
260
+ return variants;
261
+ }
262
+ parseVariantGroup(variantName, variantObject, defaultValue) {
263
+ const values = [];
264
+ const examples = [];
265
+ // Extract variant values from object keys
266
+ for (const property of variantObject.properties) {
267
+ if (ts.isPropertyAssignment(property)) {
268
+ const variantValue = this.extractPropertyName(property.name);
269
+ if (variantValue) {
270
+ values.push(variantValue);
271
+ // Extract example classes if available
272
+ const classes = this.extractVariantClasses(property.initializer);
273
+ if (classes) {
274
+ examples.push({
275
+ value: variantValue,
276
+ label: variantValue,
277
+ description: `${variantName} variant with value "${variantValue}"`,
278
+ code: `<Component ${variantName}="${variantValue}" />`
279
+ });
280
+ }
281
+ }
282
+ }
283
+ else if (ts.isShorthandPropertyAssignment(property)) {
284
+ values.push(property.name.text);
285
+ }
286
+ else if (ts.isMethodDeclaration(property) && ts.isIdentifier(property.name)) {
287
+ values.push(property.name.text);
288
+ }
289
+ }
290
+ if (values.length === 0) {
291
+ return null;
292
+ }
293
+ // Sort values for consistency
294
+ values.sort();
295
+ const variantInfo = {
296
+ name: variantName,
297
+ values,
298
+ examples: examples.length > 0 ? examples : []
299
+ };
300
+ if (defaultValue) {
301
+ variantInfo.defaultValue = defaultValue;
302
+ }
303
+ return variantInfo;
304
+ }
305
+ extractVariantClasses(initializer) {
306
+ if (ts.isStringLiteral(initializer)) {
307
+ return initializer.text;
308
+ }
309
+ if (ts.isArrayLiteralExpression(initializer)) {
310
+ const classes = initializer.elements
311
+ .filter(ts.isStringLiteral)
312
+ .map((element) => element.text)
313
+ .join(' ');
314
+ return classes || null;
315
+ }
316
+ return null;
317
+ }
318
+ extractLiteralValue(node) {
319
+ if (ts.isStringLiteral(node)) {
320
+ return node.text;
321
+ }
322
+ if (ts.isNumericLiteral(node)) {
323
+ return node.text;
324
+ }
325
+ if (node.kind === ts.SyntaxKind.TrueKeyword) {
326
+ return 'true';
327
+ }
328
+ if (node.kind === ts.SyntaxKind.FalseKeyword) {
329
+ return 'false';
330
+ }
331
+ return null;
332
+ }
333
+ /**
334
+ * Clear any caches
335
+ */
336
+ clearCache() {
337
+ // No persistent cache in this implementation
338
+ }
339
+ }
340
+ //# sourceMappingURL=VariantsExtractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VariantsExtractor.js","sourceRoot":"","sources":["../../../src/extractors/variants/VariantsExtractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { VariantsExtractor } from './VariantsExtractor';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/extractors/variants/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { VariantsExtractor } from './VariantsExtractor';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/extractors/variants/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import type { APIData, APIOutputConfig, GeneratedOutput } from '../../types';
2
+ /**
3
+ * Generates the api-props.ts file that other phases can consume
4
+ * This is the critical output that enables the API-first architecture
5
+ */
6
+ export declare class APIFileGenerator {
7
+ private config;
8
+ constructor(config: APIOutputConfig);
9
+ /**
10
+ * Generate API file from API data
11
+ */
12
+ generate(apiData: APIData): Promise<GeneratedOutput>;
13
+ private generateTypeScriptFile;
14
+ private generateComponentInterface;
15
+ private toSlug;
16
+ private generatePerComponentTypeScriptFile;
17
+ private generateJSONFile;
18
+ private generateYAMLFile;
19
+ /**
20
+ * Validate API data before generation
21
+ */
22
+ validateAPIData(apiData: APIData): void;
23
+ /**
24
+ * Generate backup of existing API file if it exists
25
+ */
26
+ createBackup(): Promise<void>;
27
+ /**
28
+ * Compare with existing API file and report changes
29
+ */
30
+ reportChanges(newAPIData: APIData): Promise<void>;
31
+ }
32
+ //# sourceMappingURL=APIFileGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"APIFileGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/api/APIFileGenerator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAoB,eAAe,EAAE,MAAM,aAAa,CAAC;AAE/F;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAkB;gBAEpB,MAAM,EAAE,eAAe;IAInC;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IA4F1D,OAAO,CAAC,sBAAsB;IAyL9B,OAAO,CAAC,0BAA0B;IAgDlC,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,kCAAkC;IAqF1C,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,gBAAgB;IAkDxB;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAyBvC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAenC;;OAEG;IACG,aAAa,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAoBxD"}