@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
package/README.md ADDED
@@ -0,0 +1,92 @@
1
+ # @urbicon-ui/docs-gen
2
+
3
+ Documentation generator for UI component libraries. Extracts props, variants, and inheritance from TypeScript/Svelte components and generates API data files and LLM-friendly documentation.
4
+
5
+ ## Usage
6
+
7
+ ### From workspace root
8
+
9
+ ```bash
10
+ # Generate docs for all packages (blocks, docs, table)
11
+ bun run docs:gen:all
12
+
13
+ # Generate for a specific package
14
+ bun run docs:gen:blocks
15
+ bun run docs:gen:docs
16
+ bun run docs:gen:table
17
+ ```
18
+
19
+ ### From this package
20
+
21
+ ```bash
22
+ bun run docs:gen # Generate all targets
23
+ ```
24
+
25
+ ### CLI
26
+
27
+ ```
28
+ docs-gen [command] [options]
29
+
30
+ Commands:
31
+ generate, build Generate documentation (default)
32
+ help Show help
33
+
34
+ Options:
35
+ --target <type> Target: 'blocks', 'docs', 'table', or 'all' (default: 'all')
36
+ ```
37
+
38
+ ## Architecture
39
+
40
+ The pipeline follows a strict sequence: **Discovery → Extraction → Enrichment → Generation**.
41
+
42
+ ```
43
+ Phase 1: Discovery → Find components via glob patterns (ComponentFinder)
44
+ Phase 2: Extraction → Extract props, variants, inheritance from TypeScript
45
+ Phase 3: Enrichment → Resolve cross-refs, calculate stats, produce APIData
46
+ Phase 4: Generation → Write API file first, then LLM docs
47
+ ```
48
+
49
+ Discovery yields one component per `index.ts` (named after its directory). A
50
+ multi-component `index.ts` can opt additional exports into their own catalog
51
+ entries via an `@standalone` JSDoc tag on the export's `<Name>Props` interface
52
+ (plus a matching `export { default as Name } from './Name.svelte'`) — used by
53
+ the Guide surfaces. Exports without the tag are treated as compound
54
+ subcomponents and stay folded into the directory component's entry.
55
+
56
+ ### Key modules
57
+
58
+ | Path | Purpose |
59
+ |------|---------|
60
+ | `src/core/pipeline/PipelineOrchestrator.ts` | Main pipeline coordinator |
61
+ | `src/core/discovery/ComponentFinder.ts` | Component discovery |
62
+ | `src/core/extraction/ExtractionCoordinator.ts` | Orchestrates extractors |
63
+ | `src/core/enrichment/APIDataGenerator.ts` | API data generation |
64
+ | `src/core/generation/GenerationCoordinator.ts` | Output coordination |
65
+ | `src/generators/api/APIFileGenerator.ts` | Per-component `api.ts` files |
66
+ | `src/generators/llm/LLMDocumentationGenerator.ts` | LLM text output |
67
+
68
+ ## Configuration
69
+
70
+ Configuration is built via `DocsConfigurationBuilder` and `ConfigurationFactory`. Presets:
71
+
72
+ - `ConfigurationFactory.blocks()` — `@urbicon-ui/blocks`
73
+ - `ConfigurationFactory.docs()` — `@urbicon-ui/docs`
74
+ - `ConfigurationFactory.table()` — `@urbicon-ui/table`
75
+
76
+ ### Output paths
77
+
78
+ | Target | API output | LLM output |
79
+ |--------|-----------|------------|
80
+ | blocks | `apps/docs/src/routes/blocks/` | `apps/docs/static/blocks/` |
81
+ | docs | `apps/docs/src/routes/docs/` | `apps/docs/static/docs/` |
82
+ | table | `apps/docs/src/routes/table/` | `apps/docs/static/table/` |
83
+
84
+ ## Scripts
85
+
86
+ | Script | Description |
87
+ |--------|-------------|
88
+ | `bun run docs:gen` | Generate documentation |
89
+ | `bun run test` | Run Vitest |
90
+ | `bun run test:watch` | Watch mode tests |
91
+ | `bun run build` | Build TypeScript |
92
+ | `bun run typecheck` | Type check only |
@@ -0,0 +1,10 @@
1
+ export declare class DocsGeneratorCLI {
2
+ run(args?: string[]): Promise<void>;
3
+ private generateCommand;
4
+ private generateTarget;
5
+ private assembleLlmsFull;
6
+ private scaffoldCommand;
7
+ private parseOptions;
8
+ private showHelp;
9
+ }
10
+ //# sourceMappingURL=CLI.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CLI.d.ts","sourceRoot":"","sources":["../../src/cli/CLI.ts"],"names":[],"mappings":"AAaA,qBAAa,gBAAgB;IACrB,GAAG,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;YA8BlD,eAAe;YAwBf,cAAc;YAyCd,gBAAgB;YAiDhB,eAAe;IA6L7B,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,QAAQ;CAuBjB"}
@@ -0,0 +1,340 @@
1
+ import * as fs from 'node:fs/promises';
2
+ import * as path from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { LlmsFullAssembler } from '../generators/llm/LlmsFullAssembler';
5
+ import { MCPCatalogAssembler } from '../generators/mcp/MCPCatalogAssembler';
6
+ import { ConfigurationFactory } from '../schema/ConfigurationBuilder';
7
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
8
+ function resolveFromDocsGen(...segments) {
9
+ return path.resolve(__dirname, '..', '..', ...segments);
10
+ }
11
+ export class DocsGeneratorCLI {
12
+ async run(args = process.argv.slice(2)) {
13
+ const command = args[0] || 'generate';
14
+ const options = this.parseOptions(args.slice(1));
15
+ try {
16
+ switch (command) {
17
+ case 'generate':
18
+ case 'build':
19
+ await this.generateCommand(options);
20
+ break;
21
+ case 'scaffold':
22
+ await this.scaffoldCommand(args.slice(1));
23
+ break;
24
+ case 'help':
25
+ this.showHelp();
26
+ break;
27
+ default:
28
+ console.error(`Unknown command: ${command}`);
29
+ this.showHelp();
30
+ process.exit(1);
31
+ }
32
+ }
33
+ catch (error) {
34
+ console.error('❌ Command failed:', error);
35
+ process.exit(1);
36
+ }
37
+ }
38
+ async generateCommand(options) {
39
+ const target = options.target || 'all';
40
+ if (target === 'all' || target === 'both') {
41
+ console.log('📚 Generating documentation for all packages...');
42
+ await this.generateTarget('blocks');
43
+ await this.generateTarget('docs');
44
+ await this.generateTarget('table');
45
+ await this.generateTarget('auth');
46
+ await this.assembleLlmsFull();
47
+ }
48
+ else if (target === 'blocks' ||
49
+ target === 'docs' ||
50
+ target === 'table' ||
51
+ target === 'auth') {
52
+ console.log(`📚 Generating documentation for ${target}...`);
53
+ await this.generateTarget(target);
54
+ }
55
+ else {
56
+ console.error(`Unknown target: ${target}. Valid: blocks, docs, table, auth, all`);
57
+ process.exit(1);
58
+ }
59
+ }
60
+ async generateTarget(target) {
61
+ console.log(`\n🔄 Processing ${target} package...`);
62
+ const configMap = {
63
+ blocks: ConfigurationFactory.blocks,
64
+ docs: ConfigurationFactory.docs,
65
+ table: ConfigurationFactory.table,
66
+ auth: ConfigurationFactory.auth
67
+ };
68
+ const config = configMap[target]();
69
+ console.log(`✅ Configuration loaded: ${config.input.packages.length} packages`);
70
+ const { PipelineOrchestrator } = await import('../core/pipeline/PipelineOrchestrator');
71
+ const orchestrator = new PipelineOrchestrator(config);
72
+ const result = await orchestrator.execute();
73
+ if (result.success) {
74
+ console.log(`🎉 ${target} documentation generation completed successfully!`);
75
+ console.log(`📊 Generated ${result.stats.totalComponents} components in ${result.duration}ms`);
76
+ if (result.outputs.length > 0) {
77
+ console.log('📄 Generated outputs:');
78
+ result.outputs.forEach((output) => {
79
+ console.log(` - ${output.type}: ${output.path} (${output.components.length} components)`);
80
+ });
81
+ }
82
+ }
83
+ else {
84
+ console.error(`❌ ${target} documentation generation failed`);
85
+ result.errors.forEach((error) => {
86
+ console.error(` - ${error.type}: ${error.message}`);
87
+ });
88
+ throw new Error(`${target} generation failed`);
89
+ }
90
+ }
91
+ async assembleLlmsFull() {
92
+ console.log('\n🔗 Assembling llms-full.txt...');
93
+ const assembler = new LlmsFullAssembler({
94
+ templatePath: resolveFromDocsGen('templates', 'llms-full-template.md'),
95
+ staticDirs: [
96
+ resolveFromDocsGen('..', '..', 'apps', 'docs', 'static', 'blocks'),
97
+ resolveFromDocsGen('..', '..', 'apps', 'docs', 'static', 'docs'),
98
+ resolveFromDocsGen('..', '..', 'apps', 'docs', 'static', 'table'),
99
+ resolveFromDocsGen('..', '..', 'apps', 'docs', 'static', 'auth')
100
+ ],
101
+ outputPaths: [
102
+ resolveFromDocsGen('..', '..', 'llms-full.txt'),
103
+ resolveFromDocsGen('..', '..', 'apps', 'docs', 'static', 'llms-full.txt')
104
+ ]
105
+ });
106
+ const result = await assembler.assemble();
107
+ console.log(`✅ llms-full.txt assembled (${result.componentCount} components)`);
108
+ // Assemble MCP component catalog
109
+ console.log('\n📦 Assembling MCP component catalog...');
110
+ const catalogAssembler = new MCPCatalogAssembler({
111
+ staticDirs: [
112
+ resolveFromDocsGen('..', '..', 'apps', 'docs', 'static', 'blocks'),
113
+ resolveFromDocsGen('..', '..', 'apps', 'docs', 'static', 'docs'),
114
+ resolveFromDocsGen('..', '..', 'apps', 'docs', 'static', 'table'),
115
+ resolveFromDocsGen('..', '..', 'apps', 'docs', 'static', 'auth')
116
+ ],
117
+ recipesDir: resolveFromDocsGen('..', '..', 'apps', 'docs', 'src', 'routes', 'recipes'),
118
+ outputPath: resolveFromDocsGen('..', '..', 'apps', 'docs', 'static', 'mcp', 'component-catalog.json'),
119
+ version: '0.2.38'
120
+ });
121
+ const catalogResult = await catalogAssembler.assemble();
122
+ console.log(`✅ MCP catalog assembled (${catalogResult.componentCount} components, ${catalogResult.recipeCount} recipes)`);
123
+ }
124
+ async scaffoldCommand(args) {
125
+ const name = args[0];
126
+ const options = this.parseOptions(args.slice(1));
127
+ const group = options.group || 'primitives';
128
+ if (!name) {
129
+ console.error('❌ Component name required. Usage: docs-gen scaffold Button --group primitives');
130
+ process.exit(1);
131
+ }
132
+ if (group !== 'primitives' && group !== 'components') {
133
+ console.error(`❌ Invalid group "${group}". Must be "primitives" or "components".`);
134
+ process.exit(1);
135
+ }
136
+ const slug = name
137
+ .replace(/([a-z0-9])([A-Z])/g, '$1-$2')
138
+ .replace(/_/g, '-')
139
+ .toLowerCase();
140
+ const docsDir = resolveFromDocsGen('..', '..', 'apps', 'docs', 'src', 'routes', 'blocks', group, slug);
141
+ // Check if directory already exists
142
+ try {
143
+ await fs.access(docsDir);
144
+ console.error(`❌ Directory already exists: ${docsDir}`);
145
+ process.exit(1);
146
+ }
147
+ catch {
148
+ // Expected — directory doesn't exist yet
149
+ }
150
+ await fs.mkdir(docsDir, { recursive: true });
151
+ // Generate +page.svelte
152
+ const pageSvelte = `<script lang="ts">
153
+ import { page } from '$app/state';
154
+ import { asset } from '$app/paths';
155
+ import {
156
+ ApiReference,
157
+ CodeExample,
158
+ DocsLayout as DocsPageLayout,
159
+ extractPlaygroundDocs,
160
+ PlaygroundConfigurator,
161
+ Section
162
+ } from '@urbicon-ui/docs';
163
+ import PrevNextNav from '$lib/PrevNextNav.svelte';
164
+ import SeoMeta from '$lib/SeoMeta.svelte';
165
+ import CustomDocs from './Docs.svelte';
166
+ import { componentData } from './api';
167
+ import { ${name} } from '@urbicon-ui/blocks';
168
+
169
+ const { propDocs, variantKeys } = extractPlaygroundDocs(componentData?.props ?? []);
170
+
171
+ const navigation = [
172
+ { id: 'playground', label: 'Playground', order: 1 },
173
+ { id: 'examples', label: 'Examples', order: 2 },
174
+ { id: 'customization', label: 'Customization', order: 3 },
175
+ { id: 'accessibility', label: 'Accessibility', order: 4 },
176
+ { id: 'api', label: 'API Reference', order: 10 },
177
+ { id: 'installation', label: 'Installation', order: 11 }
178
+ ];
179
+ </script>
180
+
181
+ <SeoMeta title="${name} Component" />
182
+
183
+ <DocsPageLayout
184
+ maxWidth="2xl"
185
+ showToc={true}
186
+ title="${name}"
187
+ description=""
188
+ breadcrumbs={[
189
+ { label: 'Blocks', href: '/blocks' },
190
+ { label: '${group === 'primitives' ? 'Primitives' : 'Components'}', href: '/blocks/${group}' }
191
+ ]}
192
+ {navigation}
193
+ >
194
+ <Section id="playground" title="Playground" intent="primary">
195
+ <PlaygroundConfigurator
196
+ showHeader={false}
197
+ {propDocs}
198
+ {variantKeys}
199
+ componentName="${name}"
200
+ controls={[
201
+ // TODO: Add playground controls
202
+ ]}
203
+ >
204
+ {#snippet children(values)}
205
+ <${name} {...values}>
206
+ <!-- TODO: Add component content -->
207
+ </${name}>
208
+ {/snippet}
209
+ </PlaygroundConfigurator>
210
+ </Section>
211
+
212
+ <CustomDocs />
213
+
214
+ <Section id="api" title="API Reference" intent="secondary">
215
+ <ApiReference props={componentData?.props ?? []} />
216
+ </Section>
217
+
218
+ <Section id="installation" title="Installation">
219
+ <CodeExample
220
+ title="Import"
221
+ code={\`import { ${name} } from '@urbicon-ui/blocks';\`}
222
+ language="svelte"
223
+ hasPreview={false}
224
+ />
225
+ </Section>
226
+
227
+ <div class="mt-6 text-right">
228
+ <a
229
+ href={asset('/blocks/${group}/${slug}/llm.txt')}
230
+ target="_blank"
231
+ rel="noopener"
232
+ class="text-text-tertiary hover:text-primary text-xs transition-colors"
233
+ >
234
+ llm.txt
235
+ </a>
236
+ </div>
237
+
238
+ <PrevNextNav currentPath={page.url.pathname} />
239
+ </DocsPageLayout>
240
+ `;
241
+ // Generate Docs.svelte
242
+ const docsSvelte = `<script lang="ts">
243
+ import type { SvelteDocsConfig } from '@urbicon-ui/shared-types';
244
+ import { CodeExample, Section } from '@urbicon-ui/docs';
245
+
246
+ export const docsConfig: SvelteDocsConfig = {
247
+ generation: {
248
+ overview: { enabled: false },
249
+ playground: { enabled: true, order: 1 },
250
+ variants: { enabled: false },
251
+ examples: false,
252
+ api: { showInheritance: true, groupBy: 'category', enabled: true, order: 14 },
253
+ usage: false
254
+ },
255
+ llm: { include: true },
256
+ meta: { title: '${name} Component', showToc: true }
257
+ };
258
+ </script>
259
+
260
+ <!-- ─── Examples ─── -->
261
+ <Section id="examples" title="Examples">
262
+ <div class="space-y-8">
263
+ <!-- TODO: Add examples -->
264
+ </div>
265
+ </Section>
266
+
267
+ <!-- ─── Customization ─── -->
268
+ <Section id="customization" title="Customization">
269
+ <div class="space-y-4">
270
+ <!-- TODO: Add customization examples -->
271
+ </div>
272
+ </Section>
273
+
274
+ <!-- ─── Accessibility ─── -->
275
+ <Section id="accessibility" title="Accessibility">
276
+ <div class="prose prose-sm">
277
+ <!-- TODO: Document accessibility features -->
278
+ </div>
279
+ </Section>
280
+ `;
281
+ await fs.writeFile(path.join(docsDir, '+page.svelte'), pageSvelte, 'utf-8');
282
+ await fs.writeFile(path.join(docsDir, 'Docs.svelte'), docsSvelte, 'utf-8');
283
+ console.log(`✅ Scaffolded docs page for ${name}:`);
284
+ console.log(` ${docsDir}/+page.svelte`);
285
+ console.log(` ${docsDir}/Docs.svelte`);
286
+ console.log(`\n📝 Next steps:`);
287
+ console.log(` 1. Add playground controls to +page.svelte`);
288
+ console.log(` 2. Add examples, customization, and accessibility content to Docs.svelte`);
289
+ console.log(` 3. Run \`bun run docs:gen:all\` to generate the api.ts file`);
290
+ }
291
+ parseOptions(args) {
292
+ const options = {};
293
+ for (let i = 0; i < args.length; i++) {
294
+ const arg = args[i];
295
+ if (arg?.startsWith('--')) {
296
+ const key = arg.slice(2);
297
+ const value = args[i + 1];
298
+ if (value && !value.startsWith('--')) {
299
+ options[key] = value;
300
+ i++;
301
+ }
302
+ else {
303
+ options[key] = true;
304
+ }
305
+ }
306
+ }
307
+ return options;
308
+ }
309
+ showHelp() {
310
+ console.log(`
311
+ 📚 Docs Generator
312
+
313
+ Usage:
314
+ docs-gen [command] [options]
315
+
316
+ Commands:
317
+ generate, build Generate documentation (default)
318
+ scaffold <Name> Scaffold a new docs page for a component
319
+ help Show this help
320
+
321
+ Options:
322
+ --target <type> Target package: 'blocks', 'docs', 'table', or 'all' (default: 'all')
323
+ --group <group> Component group for scaffold: 'primitives' or 'components' (default: 'primitives')
324
+
325
+ Examples:
326
+ docs-gen # Generate all packages
327
+ docs-gen --target blocks # Generate only blocks docs
328
+ docs-gen scaffold Button # Scaffold docs for Button (primitives)
329
+ docs-gen scaffold DatePicker --group components # Scaffold docs for DatePicker (components)
330
+ `);
331
+ }
332
+ }
333
+ if (import.meta.url === `file://${process.argv[1]}`) {
334
+ const cli = new DocsGeneratorCLI();
335
+ cli.run().catch((error) => {
336
+ console.error('❌ CLI execution failed:', error);
337
+ process.exit(1);
338
+ });
339
+ }
340
+ //# sourceMappingURL=CLI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CLI.js","sourceRoot":"","sources":["../../src/cli/CLI.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { DocsGeneratorCLI } from './CLI';
2
+ const cli = new DocsGeneratorCLI();
3
+ cli.run().catch((error) => {
4
+ console.error('❌ CLI execution failed:', error);
5
+ process.exit(1);
6
+ });
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAEzC,MAAM,GAAG,GAAG,IAAI,gBAAgB,EAAE,CAAC;AACnC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACxB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,43 @@
1
+ import type { ComponentManifest, ExtractionResult, PackageConfig, PackageInfo } from '../../types';
2
+ /**
3
+ * Finds and analyzes components in packages using glob patterns
4
+ */
5
+ export declare class ComponentFinder {
6
+ private cache;
7
+ /**
8
+ * Find all components in a package
9
+ */
10
+ findComponents(packageConfig: PackageConfig): Promise<ComponentManifest[]>;
11
+ /**
12
+ * Clear the cache (useful for watch mode)
13
+ */
14
+ clearCache(): void;
15
+ /**
16
+ * Get package info from package.json
17
+ */
18
+ getPackageInfo(packagePath: string): Promise<PackageInfo>;
19
+ private discoverComponents;
20
+ /**
21
+ * Find component exports in an index.ts that opt into their own catalog entry.
22
+ *
23
+ * An export qualifies when both hold:
24
+ * 1. it is re-exported from a Svelte file: `export { default as X } from './X.svelte'`
25
+ * 2. a local `interface XProps` carries the `@standalone` JSDoc tag
26
+ *
27
+ * The tag is the explicit opt-in that separates independent surfaces (Guide family) from
28
+ * compound subcomponents (TabItem, MenuItem, CalendarDay, …), which carry the same
29
+ * `@description`/`@tag` metadata but must NOT become standalone catalog entries.
30
+ */
31
+ private findStandaloneComponentNames;
32
+ private findComponentFiles;
33
+ private createComponentManifest;
34
+ private extractComponentName;
35
+ private discoverRelatedFiles;
36
+ private findRelatedFile;
37
+ private findRelatedFiles;
38
+ /**
39
+ * Validate that a component manifest is complete and valid
40
+ */
41
+ validateManifest(manifest: ComponentManifest): Promise<ExtractionResult<ComponentManifest>>;
42
+ }
43
+ //# sourceMappingURL=ComponentFinder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentFinder.d.ts","sourceRoot":"","sources":["../../../src/core/discovery/ComponentFinder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAGV,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACZ,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAA0C;IAEvD;;OAEG;IACG,cAAc,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAyBhF;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;YA6BjD,kBAAkB;IAgEhC;;;;;;;;;;OAUG;YACW,4BAA4B;YAuE5B,kBAAkB;YAwClB,uBAAuB;IAoDrC,OAAO,CAAC,oBAAoB;YAmCd,oBAAoB;YAsDpB,eAAe;YASf,gBAAgB;IA8E9B;;OAEG;IACG,gBAAgB,CACpB,QAAQ,EAAE,iBAAiB,GAC1B,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;CAkDhD"}