@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,557 @@
1
+ import * as path from 'path';
2
+ import * as fs from 'fs/promises';
3
+ import { ApiRenderer, ExampleRenderer, OverviewRenderer, PlaygroundRenderer, TypesRenderer, UsageRenderer, VariantsRenderer } from './renderers';
4
+ import { TemplateEngine } from './TemplateEngine';
5
+ import { SvelteDocsParser } from '@/parsers';
6
+ import { SectionMerger } from './SectionMerger';
7
+ /**
8
+ * Generates Svelte documentation pages from API data and enriched component information
9
+ * This is the main generator for Session 5 - creates pages that match the existing docs structure
10
+ */
11
+ export class SveltePageGenerator {
12
+ config;
13
+ overviewRenderer;
14
+ playgroundRenderer;
15
+ exampleRenderer;
16
+ variantsRenderer;
17
+ apiRenderer;
18
+ typesRenderer;
19
+ usageRenderer;
20
+ templateEngine;
21
+ svelteDocsParser;
22
+ sectionMerger;
23
+ constructor(config) {
24
+ this.config = config;
25
+ this.overviewRenderer = new OverviewRenderer();
26
+ this.playgroundRenderer = new PlaygroundRenderer();
27
+ this.exampleRenderer = new ExampleRenderer();
28
+ this.variantsRenderer = new VariantsRenderer();
29
+ this.apiRenderer = new ApiRenderer();
30
+ this.typesRenderer = new TypesRenderer();
31
+ this.usageRenderer = new UsageRenderer();
32
+ this.templateEngine = new TemplateEngine(config.template);
33
+ this.svelteDocsParser = new SvelteDocsParser();
34
+ this.sectionMerger = new SectionMerger();
35
+ // Legacy docs.ts renderer removed in hybrid architecture
36
+ }
37
+ toSlug(input) {
38
+ return input
39
+ .replace(/([a-z0-9])([A-Z])/g, '$1-$2')
40
+ .replace(/_/g, '-')
41
+ .replace(/\s+/g, '-')
42
+ .toLowerCase();
43
+ }
44
+ /**
45
+ * Generate Svelte documentation pages for all components
46
+ */
47
+ async generate(enrichedComponents, apiData) {
48
+ console.log(`📝 Generating Svelte pages for ${enrichedComponents.length} components`);
49
+ const startTime = Date.now();
50
+ const generatedFiles = [];
51
+ try {
52
+ // Ensure output directory exists
53
+ await fs.mkdir(this.config.outputDir, { recursive: true });
54
+ // Generate index page with navigation
55
+ const indexPath = await this.generateIndexPage(enrichedComponents, apiData);
56
+ generatedFiles.push(indexPath);
57
+ // Generate individual component pages
58
+ for (const component of enrichedComponents) {
59
+ const componentApiData = apiData.components[component.name];
60
+ if (componentApiData) {
61
+ const componentPath = await this.generateComponentPage(component, componentApiData);
62
+ generatedFiles.push(componentPath);
63
+ console.log(` ✅ Generated page for ${component.name}`);
64
+ }
65
+ }
66
+ // Generate navigation data
67
+ if (this.config.navigation?.generate) {
68
+ const navPath = await this.generateNavigationData(enrichedComponents, apiData);
69
+ generatedFiles.push(navPath);
70
+ }
71
+ const duration = Date.now() - startTime;
72
+ const totalSize = await this.calculateTotalSize(generatedFiles);
73
+ console.log(`✅ Svelte page generation complete in ${duration}ms`);
74
+ console.log(` 📄 Generated ${generatedFiles.length} files`);
75
+ console.log(` 📦 Total size: ${Math.round(totalSize / 1024)}KB`);
76
+ return {
77
+ type: 'svelte',
78
+ path: this.config.outputDir,
79
+ size: totalSize,
80
+ components: enrichedComponents.map((c) => c.name)
81
+ };
82
+ }
83
+ catch (error) {
84
+ throw new Error(`Failed to generate Svelte pages: ${error instanceof Error ? error.message : String(error)}`);
85
+ }
86
+ }
87
+ // ==========================================
88
+ // INDEX PAGE GENERATION
89
+ // ==========================================
90
+ /**
91
+ * Generate the main index page with component overview
92
+ */
93
+ async generateIndexPage(components, apiData) {
94
+ console.log(' 📄 Generating index page...');
95
+ // Group components by package or tier
96
+ const groupedComponents = this.groupComponents(components);
97
+ // Calculate stats
98
+ const stats = {
99
+ totalComponents: components.length,
100
+ totalProps: Object.values(apiData.components).reduce((sum, comp) => sum + comp.props.length, 0),
101
+ averageProps: Math.round(Object.values(apiData.components).reduce((sum, comp) => sum + comp.props.length, 0) /
102
+ components.length),
103
+ lastGenerated: apiData.metadata.generated
104
+ };
105
+ const indexContent = this.templateEngine.renderIndexPage({
106
+ title: 'Component Documentation',
107
+ description: `Comprehensive documentation for ${components.length} components`,
108
+ groupedComponents,
109
+ stats,
110
+ showTiers: this.config.navigation?.showTiers ?? true,
111
+ showStats: this.config.navigation?.showStats ?? true,
112
+ });
113
+ const indexPath = path.join(this.config.outputDir, '+page.svelte');
114
+ await fs.writeFile(indexPath, indexContent, 'utf-8');
115
+ return indexPath;
116
+ }
117
+ // ==========================================
118
+ // COMPONENT PAGE GENERATION
119
+ // ==========================================
120
+ /**
121
+ * Generate the main component page
122
+ */
123
+ async generateComponentPage(component, componentApiData) {
124
+ console.log(`📄 Generating component page for ${component.name}`);
125
+ // Generate sections using hybrid approach
126
+ const sections = await this.generateSections(component, componentApiData);
127
+ // Collect script data from all sections
128
+ const scriptData = this.collectScriptData(sections);
129
+ // Generate navigation from sections
130
+ let navigation = this.generatePageNavigation(sections);
131
+ // Resolve docs.svelte path early (used for both nav extraction and file copy)
132
+ const docsFilePath = path.join(path.dirname(component.filePath), 'docs.svelte');
133
+ // Merge navigation items from custom docs.svelte sections (lightweight extraction)
134
+ try {
135
+ const customNav = await this.extractCustomSectionsForNavigation(docsFilePath);
136
+ if (customNav.length > 0) {
137
+ const seen = new Set(navigation.map((n) => n.id));
138
+ const startOrder = (navigation.reduce((max, n) => Math.max(max, n.order ?? 0), 0) || 0) + 1;
139
+ const mergedCustom = customNav
140
+ .filter((item) => !seen.has(item.id))
141
+ .map((item, idx) => ({ ...item, order: item.order ?? startOrder + idx }));
142
+ navigation = [...navigation, ...mergedCustom];
143
+ }
144
+ }
145
+ catch (e) {
146
+ // Non-fatal: failure to read custom docs shouldn't break generation
147
+ console.warn(`📄 PageGenerator: Failed to extract custom navigation: ${e.message}`);
148
+ }
149
+ // Detect and copy custom docs.svelte if present
150
+ const componentDir = path.join(this.config.outputDir, this.toSlug(component.name));
151
+ let includeCustomDocs = false;
152
+ try {
153
+ await fs.access(docsFilePath);
154
+ await fs.mkdir(componentDir, { recursive: true });
155
+ const customTarget = path.join(componentDir, 'DocsCustom.svelte');
156
+ await fs.copyFile(docsFilePath, customTarget);
157
+ includeCustomDocs = true;
158
+ console.log(`📄 PageGenerator: Copied custom docs to ${customTarget}`);
159
+ }
160
+ catch (err) {
161
+ console.log(`📄 PageGenerator: No custom docs.svelte found for ${component.name} (${err.message})`);
162
+ }
163
+ // Prepare template data
164
+ const templateData = {
165
+ component,
166
+ componentApiData,
167
+ sections,
168
+ title: `${component.name} Component`,
169
+ description: `Documentation for the ${component.name} component with ${componentApiData.props.length} properties and ${componentApiData.variants.length} variants`,
170
+ navigation,
171
+ scriptData,
172
+ includeCustomDocs
173
+ };
174
+ // Render the page using template engine
175
+ const pageContent = this.templateEngine.renderComponentPage(templateData);
176
+ console.log(`🔍 PageGenerator: Generated page content length: ${pageContent.length} chars`);
177
+ console.log(`🔍 PageGenerator: Contains interactiveControls: ${pageContent.includes('interactiveControls')}`);
178
+ console.log(`🔍 PageGenerator: Contains IntentVariantMatrix import: ${pageContent.includes('IntentVariantMatrix')}`);
179
+ console.log(`🔍 PageGenerator: First 500 chars:`, pageContent.substring(0, 500));
180
+ // Ensure component directory exists (may already exist if custom docs was copied)
181
+ await fs.mkdir(componentDir, { recursive: true });
182
+ // Write component page
183
+ const pagePath = path.join(componentDir, '+page.svelte');
184
+ await fs.writeFile(pagePath, pageContent, 'utf-8');
185
+ console.log(`📄 PageGenerator: Wrote file to ${pagePath}`);
186
+ console.log(`📄 PageGenerator: File size after write: ${(await fs.stat(pagePath)).size} bytes`);
187
+ // Write layout file
188
+ const layoutContent = this.templateEngine.renderComponentLayout(component);
189
+ const layoutPath = path.join(componentDir, '+layout.svelte');
190
+ await fs.writeFile(layoutPath, layoutContent, 'utf-8');
191
+ return pagePath;
192
+ }
193
+ // ==========================================
194
+ // NAVIGATION GENERATION
195
+ // ==========================================
196
+ /**
197
+ * Generate navigation data for the documentation
198
+ */
199
+ async generateNavigationData(components, apiData) {
200
+ console.log(' 🧭 Generating navigation data...');
201
+ const navigation = {
202
+ items: this.buildNavigationTree(components),
203
+ metadata: {
204
+ generated: new Date().toISOString(),
205
+ totalComponents: components.length,
206
+ totalProps: Object.values(apiData.components).reduce((sum, comp) => sum + comp.props.length, 0)
207
+ }
208
+ };
209
+ const navContent = `// Auto-generated navigation data
210
+ // Generated: ${navigation.metadata.generated}
211
+ export const navigationData = ${JSON.stringify(navigation, null, 2)};
212
+ export type NavigationData = typeof navigationData;
213
+ `;
214
+ const navPath = path.join(this.config.outputDir, 'navigation.ts');
215
+ await fs.writeFile(navPath, navContent, 'utf-8');
216
+ return navPath;
217
+ }
218
+ // ==========================================
219
+ // SECTION GENERATION METHODS
220
+ // ==========================================
221
+ /**
222
+ * Generate sections from component documentation using hybrid approach:
223
+ * 1. Parse docs.svelte for docsConfig and custom sections
224
+ * 2. Generate auto-sections based on config
225
+ * 3. Merge auto + custom sections intelligently
226
+ */
227
+ async generateSections(component, componentApiData) {
228
+ console.log(`📚 PageGenerator: Generating sections for ${component.name} using hybrid approach`);
229
+ // 1. Parse docs.svelte file for configuration
230
+ const docsFilePath = path.join(path.dirname(component.filePath), 'docs.svelte');
231
+ const parseResult = await this.svelteDocsParser.parseDocsFile(component.name, docsFilePath);
232
+ console.log(`📚 PageGenerator: Parse result - exists: ${parseResult.exists}, ${parseResult.sections.length} sections, ${parseResult.errors.length} errors`);
233
+ if (parseResult.errors.length > 0) {
234
+ console.warn(`⚠️ PageGenerator: Errors parsing docs.svelte for ${component.name}:`, parseResult.errors);
235
+ }
236
+ if (parseResult.warnings.length > 0) {
237
+ console.log(`📋 PageGenerator: Warnings for ${component.name}:`, parseResult.warnings);
238
+ }
239
+ // 2. Generate auto-sections based on configuration
240
+ const autoSections = this.generateAutoSections(component, componentApiData, parseResult.docsConfig);
241
+ console.log(`🤖 PageGenerator: Generated ${autoSections.length} auto-sections`);
242
+ // 3. Merge auto + custom sections (legacy removed)
243
+ const mergeResult = this.sectionMerger.merge([...autoSections], parseResult.docsConfig);
244
+ const stats = this.sectionMerger.getMergeStats(mergeResult);
245
+ console.log(`✅ PageGenerator: Merge complete - ${stats.total} total (${stats.auto} auto, ${stats.custom} custom, ${stats.replaced} replaced, ${stats.added} added)`);
246
+ if (mergeResult.conflicts.length > 0) {
247
+ console.warn(`⚠️ PageGenerator: ${mergeResult.conflicts.length} merge conflicts resolved`);
248
+ }
249
+ // 4. Convert merged sections back to RenderedSection format
250
+ const finalSections = mergeResult.sections.map((section) => ({
251
+ id: section.id,
252
+ title: section.title,
253
+ content: section.content,
254
+ type: section.type === 'auto' ? this.mapToSectionType(section.id) : 'custom',
255
+ order: section.order,
256
+ scriptData: section.scriptData // Transfer script data from merged sections
257
+ }));
258
+ console.log(`📝 PageGenerator: Final sections (${finalSections.length}): ${finalSections.map((s) => s.id).join(', ')}`);
259
+ return finalSections;
260
+ }
261
+ /**
262
+ * Generate auto-sections based on SvelteDocsConfig
263
+ */
264
+ generateAutoSections(component, componentApiData, docsConfig) {
265
+ const sections = [];
266
+ console.log(`🤖 PageGenerator: Generating auto-sections with config:`, docsConfig.generation);
267
+ console.log(`🤖 PageGenerator: Examples config specifically:`, docsConfig.generation?.examples);
268
+ // 1. Overview section (always included unless explicitly disabled)
269
+ if (docsConfig.generation?.overview?.enabled !== false) {
270
+ sections.push({
271
+ ...this.overviewRenderer.renderAuto(component, componentApiData),
272
+ order: docsConfig.generation?.overview?.order || 1
273
+ });
274
+ }
275
+ // 2. Playground section (if component has variants and not disabled)
276
+ if (componentApiData.variants.length > 0 &&
277
+ docsConfig.generation?.playground?.enabled !== false) {
278
+ sections.push({
279
+ ...this.playgroundRenderer.renderAuto(component, componentApiData, docsConfig.generation?.playground),
280
+ order: docsConfig.generation?.playground?.order || 2
281
+ });
282
+ }
283
+ // 3. Examples section (if enabled and not providing custom)
284
+ const shouldGenerateExamples = docsConfig.generation?.examples !== false &&
285
+ !(typeof docsConfig.generation?.examples === 'object' &&
286
+ docsConfig.generation?.examples?.enabled === false) &&
287
+ componentApiData.examples.length > 0;
288
+ console.log(`🤖 PageGenerator: Should generate examples? ${shouldGenerateExamples}`);
289
+ console.log(` - examples !== false: ${docsConfig.generation?.examples !== false}`);
290
+ console.log(` - not disabled object: ${!(typeof docsConfig.generation?.examples === 'object' && docsConfig.generation?.examples?.enabled === false)}`);
291
+ console.log(` - has examples: ${componentApiData.examples.length > 0}`);
292
+ if (shouldGenerateExamples) {
293
+ const examplesOrder = typeof docsConfig.generation?.examples === 'object'
294
+ ? docsConfig.generation.examples.order
295
+ : 3;
296
+ sections.push({
297
+ ...this.exampleRenderer.renderAuto(component, componentApiData),
298
+ order: examplesOrder || 3
299
+ });
300
+ console.log(`🤖 PageGenerator: Added auto-generated examples section`);
301
+ }
302
+ else {
303
+ console.log(`🤖 PageGenerator: Skipped auto-generated examples section`);
304
+ }
305
+ // 4. Variants section (if variants exist and not disabled)
306
+ if (componentApiData.variants.length > 0 &&
307
+ docsConfig.generation?.variants?.enabled !== false) {
308
+ sections.push({
309
+ ...this.variantsRenderer.renderAuto(component, componentApiData, docsConfig.generation?.variants),
310
+ order: docsConfig.generation?.variants?.order || 4
311
+ });
312
+ }
313
+ // 5. API Reference section (always included unless explicitly disabled)
314
+ if (docsConfig.generation?.api?.enabled !== false) {
315
+ sections.push({
316
+ ...this.apiRenderer.renderAuto(component, componentApiData, docsConfig.generation?.api),
317
+ order: docsConfig.generation?.api?.order || 9
318
+ });
319
+ }
320
+ // 6. Types section (if local types exist)
321
+ const hasLocalTypes = Array.isArray(component.localTypes) && component.localTypes.length > 0;
322
+ if (hasLocalTypes) {
323
+ sections.push({
324
+ ...this.typesRenderer.renderAuto(component, componentApiData),
325
+ order: 10
326
+ });
327
+ }
328
+ // 7. Usage notes (configurable)
329
+ const usageCfg = docsConfig.generation?.usage;
330
+ const usageEnabled = typeof usageCfg === 'object' ? usageCfg.enabled !== false : usageCfg !== false;
331
+ if (usageEnabled && this.shouldIncludeUsageNotes(componentApiData)) {
332
+ sections.push({
333
+ ...this.usageRenderer.renderAuto(component, componentApiData),
334
+ order: (typeof usageCfg === 'object' && usageCfg.order) || 8
335
+ });
336
+ }
337
+ console.log(`🤖 PageGenerator: Generated ${sections.length} auto-sections: ${sections.map((s) => s.id).join(', ')}`);
338
+ return sections;
339
+ }
340
+ // Legacy docs.ts support removed in refactor
341
+ /**
342
+ * Map section ID to section type for rendering
343
+ */
344
+ mapToSectionType(sectionId) {
345
+ const typeMap = {
346
+ overview: 'overview',
347
+ playground: 'playground',
348
+ examples: 'examples',
349
+ variants: 'variants',
350
+ api: 'api',
351
+ usage: 'usage',
352
+ patterns: 'usage',
353
+ 'best-practices': 'usage'
354
+ };
355
+ return typeMap[sectionId] || 'overview';
356
+ }
357
+ // ==========================================
358
+ // SCRIPT DATA COLLECTION
359
+ // ==========================================
360
+ /**
361
+ * Collect and merge script data from all sections
362
+ */
363
+ collectScriptData(sections) {
364
+ console.log(`🔍 Collecting script data from ${sections.length} sections...`);
365
+ const mergedScriptData = {
366
+ variables: {},
367
+ functions: {},
368
+ imports: []
369
+ };
370
+ sections.forEach((section, index) => {
371
+ console.log(` 📄 Section ${index + 1}: ${section.id} (type: ${section.type})`);
372
+ if (section.scriptData) {
373
+ console.log(` 📝 Has script data: ${Object.keys(section.scriptData.variables || {}).length} vars, ${Object.keys(section.scriptData.functions || {}).length} functions, ${(section.scriptData.imports || []).length} imports`);
374
+ // Merge variables
375
+ Object.assign(mergedScriptData.variables, section.scriptData.variables);
376
+ // Merge functions
377
+ Object.assign(mergedScriptData.functions, section.scriptData.functions);
378
+ // Merge imports (avoid duplicates)
379
+ const importList = (section.scriptData.imports || []);
380
+ importList.forEach((imp) => {
381
+ if (!mergedScriptData.imports.includes(imp)) {
382
+ mergedScriptData.imports.push(imp);
383
+ }
384
+ });
385
+ }
386
+ else {
387
+ console.log(` ⚪ No script data for this section`);
388
+ }
389
+ });
390
+ console.log(`✅ Merged script data: ${Object.keys(mergedScriptData.variables).length} variables, ${Object.keys(mergedScriptData.functions).length} functions, ${mergedScriptData.imports.length} imports`);
391
+ if (Object.keys(mergedScriptData.variables).length > 0) {
392
+ console.log(` 📋 Variables: ${Object.keys(mergedScriptData.variables).join(', ')}`);
393
+ }
394
+ return mergedScriptData;
395
+ }
396
+ // ==========================================
397
+ // UTILITY METHODS
398
+ // ==========================================
399
+ /**
400
+ * Group components by specified strategy
401
+ */
402
+ groupComponents(components, groupBy = 'package') {
403
+ const groups = {};
404
+ for (const component of components) {
405
+ let groupKey;
406
+ switch (groupBy) {
407
+ case 'package':
408
+ groupKey = component.packageName;
409
+ break;
410
+ default:
411
+ groupKey = 'Components';
412
+ }
413
+ const list = groups[groupKey] ?? [];
414
+ list.push(component);
415
+ groups[groupKey] = list;
416
+ }
417
+ // Sort components within each group
418
+ for (const groupKey of Object.keys(groups)) {
419
+ const key = groupKey;
420
+ const list = groups[key];
421
+ if (Array.isArray(list)) {
422
+ list.sort((a, b) => a.name.localeCompare(b.name));
423
+ }
424
+ else {
425
+ groups[key] = [];
426
+ }
427
+ }
428
+ return groups;
429
+ }
430
+ /**
431
+ * Build navigation tree for ToC
432
+ */
433
+ buildNavigationTree(components) {
434
+ return components.map((component) => ({
435
+ id: this.toSlug(component.name),
436
+ label: component.name,
437
+ href: `./${this.toSlug(component.name)}`,
438
+ level: 1,
439
+ children: [
440
+ {
441
+ id: `${this.toSlug(component.name)}-overview`,
442
+ label: 'Overview',
443
+ href: `./${this.toSlug(component.name)}#overview`,
444
+ level: 2
445
+ },
446
+ {
447
+ id: `${this.toSlug(component.name)}-playground`,
448
+ label: 'Playground',
449
+ href: `./${this.toSlug(component.name)}#playground`,
450
+ level: 2
451
+ },
452
+ {
453
+ id: `${this.toSlug(component.name)}-examples`,
454
+ label: 'Examples',
455
+ href: `./${this.toSlug(component.name)}#examples`,
456
+ level: 2
457
+ },
458
+ {
459
+ id: `${this.toSlug(component.name)}-variants`,
460
+ label: 'Variants',
461
+ href: `./${this.toSlug(component.name)}#variants`,
462
+ level: 2
463
+ },
464
+ {
465
+ id: `${this.toSlug(component.name)}-api`,
466
+ label: 'API Reference',
467
+ href: `./${this.toSlug(component.name)}#api`,
468
+ level: 2
469
+ }
470
+ ]
471
+ }));
472
+ }
473
+ /**
474
+ * Generate navigation for a single page
475
+ */
476
+ generatePageNavigation(sections) {
477
+ return sections.map((section) => ({
478
+ id: section.id,
479
+ title: section.title,
480
+ order: section.order ?? 999
481
+ }));
482
+ }
483
+ /**
484
+ * Heuristically extract Section anchors from docs.svelte for ToC without full parsing.
485
+ * Looks for `<Section id="..." title="...">` occurrences and returns id/title pairs.
486
+ */
487
+ async extractCustomSectionsForNavigation(docsFilePath) {
488
+ try {
489
+ const content = await fs.readFile(docsFilePath, 'utf-8');
490
+ const results = [];
491
+ // Regex to find Section tags with id and optional title attributes
492
+ const sectionTagRegex = /<Section\s+([^>]*?)>/g;
493
+ let match;
494
+ while ((match = sectionTagRegex.exec(content)) !== null) {
495
+ const attrs = match[1] ?? '';
496
+ const idMatch = attrs.match(/\bid\s*=\s*"([^"]+)"/);
497
+ if (!idMatch)
498
+ continue;
499
+ const id = idMatch[1] ?? '';
500
+ const titleMatch = attrs.match(/\btitle\s*=\s*"([^"]+)"/);
501
+ const title = (titleMatch?.[1] ?? this.slugToTitle(id));
502
+ results.push({ id, title });
503
+ }
504
+ // Deduplicate by id while preserving order
505
+ const seen = new Set();
506
+ const deduped = results.filter((r) => {
507
+ if (seen.has(r.id))
508
+ return false;
509
+ seen.add(r.id);
510
+ return true;
511
+ });
512
+ return deduped;
513
+ }
514
+ catch (err) {
515
+ // If file doesn't exist or cannot be read, return empty
516
+ return [];
517
+ }
518
+ }
519
+ slugToTitle(slug) {
520
+ return slug
521
+ .replaceAll('-', ' ')
522
+ .replace(/\b\w/g, (c) => c.toUpperCase())
523
+ .trim();
524
+ }
525
+ /**
526
+ * Determine if usage notes should be included
527
+ */
528
+ shouldIncludeUsageNotes(componentApiData) {
529
+ // Include usage notes if component has:
530
+ // - Complex props (many properties)
531
+ // - Deprecated props
532
+ // - Experimental props
533
+ // - Complex inheritance
534
+ const hasComplexProps = componentApiData.props.length > 10;
535
+ const hasDeprecatedProps = componentApiData.props.some((prop) => prop.deprecated);
536
+ const hasExperimentalProps = componentApiData.props.some((prop) => prop.experimental);
537
+ const hasInheritance = componentApiData.inheritance.length > 0;
538
+ return hasComplexProps || hasDeprecatedProps || hasExperimentalProps || hasInheritance;
539
+ }
540
+ /**
541
+ * Calculate total size of generated files
542
+ */
543
+ async calculateTotalSize(filePaths) {
544
+ let totalSize = 0;
545
+ for (const filePath of filePaths) {
546
+ try {
547
+ const stats = await fs.stat(filePath);
548
+ totalSize += stats.size;
549
+ }
550
+ catch (error) {
551
+ // File might not exist, skip
552
+ }
553
+ }
554
+ return totalSize;
555
+ }
556
+ }
557
+ //# sourceMappingURL=PageGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageGenerator.js","sourceRoot":"","sources":["../../../src/generators/svelte/PageGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAQlC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACjJ,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IACvB,MAAM,CAAqB;IAC3B,gBAAgB,CAAmB;IACnC,kBAAkB,CAAqB;IACvC,eAAe,CAAkB;IACjC,gBAAgB,CAAmB;IACnC,WAAW,CAAc;IACzB,aAAa,CAAgB;IAC7B,aAAa,CAAgB;IAC7B,cAAc,CAAiB;IAC/B,gBAAgB,CAAmB;IACnC,aAAa,CAAgB;IAErC,YAAY,MAA0B;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAC/C,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACnD,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAC/C,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QACvC,yDAAyD;IAC5D,CAAC;IAEO,MAAM,CAAC,KAAa;QAC3B,OAAO,KAAK;aACV,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;aACtC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;aAClB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,WAAW,EAAE,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CACb,kBAA2C,EAC3C,OAAgB;QAEhB,OAAO,CAAC,GAAG,CAAC,kCAAkC,kBAAkB,CAAC,MAAM,aAAa,CAAC,CAAC;QAEtF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,cAAc,GAAa,EAAE,CAAC;QAEpC,IAAI,CAAC;YACJ,iCAAiC;YACjC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE3D,sCAAsC;YACtC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;YAC5E,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE/B,sCAAsC;YACtC,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;gBAC5C,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC5D,IAAI,gBAAgB,EAAE,CAAC;oBACtB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;oBACpF,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBAEnC,OAAO,CAAC,GAAG,CAAC,0BAA0B,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzD,CAAC;YACF,CAAC;YAED,2BAA2B;YAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC;gBACtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;gBAC/E,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;YAEhE,OAAO,CAAC,GAAG,CAAC,wCAAwC,QAAQ,IAAI,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,mBAAmB,cAAc,CAAC,MAAM,QAAQ,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAEnE,OAAO;gBACN,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC3B,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aACjD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACd,oCAAoC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC5F,CAAC;QACH,CAAC;IACF,CAAC;IAED,6CAA6C;IAC7C,wBAAwB;IACxB,6CAA6C;IAE7C;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAC9B,UAAmC,EACnC,OAAgB;QAEhB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAE7C,sCAAsC;QACtC,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAE3D,kBAAkB;QAClB,MAAM,KAAK,GAAG;YACb,eAAe,EAAE,UAAU,CAAC,MAAM;YAClC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CACnD,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EACtC,CAAC,CACD;YACD,YAAY,EAAE,IAAI,CAAC,KAAK,CACvB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBAClF,UAAU,CAAC,MAAM,CAClB;YACD,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS;SACzC,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC;YACxD,KAAK,EAAE,yBAAyB;YAChC,WAAW,EAAE,mCAAmC,UAAU,CAAC,MAAM,aAAa;YAC9E,iBAAiB;YACjB,KAAK;YACL,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,IAAI,IAAI;YACpD,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,IAAI,IAAI;SAEpD,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACnE,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QAErD,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,6CAA6C;IAC7C,4BAA4B;IAC5B,6CAA6C;IAE7C;;OAEG;IACK,KAAK,CAAC,qBAAqB,CAClC,SAAgC,EAChC,gBAAkC;QAElC,OAAO,CAAC,GAAG,CAAC,oCAAqC,SAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;QAE3E,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAE1E,wCAAwC;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAEpD,oCAAoC;QAClC,IAAI,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAEvD,8EAA8E;QAC9E,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC;QAEhF,mFAAmF;QACnF,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kCAAkC,CAAC,YAAY,CAAC,CAAC;YAC9E,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvD,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACzG,MAAM,YAAY,GAAG,SAAS;qBAC3B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;qBACpC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC5E,UAAU,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,YAAY,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,oEAAoE;YACpE,OAAO,CAAC,IAAI,CAAC,0DAA2D,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACjG,CAAC;QAED,gDAAgD;QAChD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAE,SAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5F,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC9B,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAClD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;YAClE,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YAC9C,iBAAiB,GAAG,IAAI,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,2CAA2C,YAAY,EAAE,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CACT,qDAAsD,SAAiB,CAAC,IAAI,KAAM,GAAa,CAAC,OAAO,GAAG,CAC3G,CAAC;QACJ,CAAC;QAED,wBAAwB;QAC1B,MAAM,YAAY,GAAG;YACpB,SAAS;YACT,gBAAgB;YAChB,QAAQ;YACR,KAAK,EAAE,GAAI,SAAiB,CAAC,IAAI,YAAY;YAC7C,WAAW,EAAE,yBAA0B,SAAiB,CAAC,IAAI,mBAAmB,gBAAgB,CAAC,KAAK,CAAC,MAAM,mBAAmB,gBAAgB,CAAC,QAAQ,CAAC,MAAM,WAAW;YACxK,UAAU;YACV,UAAU;YACV,iBAAiB;SACpB,CAAC;QAEF,wCAAwC;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAE1E,OAAO,CAAC,GAAG,CAAC,oDAAoD,WAAW,CAAC,MAAM,QAAQ,CAAC,CAAC;QAC5F,OAAO,CAAC,GAAG,CACV,mDAAmD,WAAW,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAChG,CAAC;QACF,OAAO,CAAC,GAAG,CACV,0DAA0D,WAAW,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CACvG,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAE/E,kFAAkF;QAClF,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpD,uBAAuB;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QACzD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAEnD,OAAO,CAAC,GAAG,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC;QAEhG,oBAAoB;QACpB,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;QAC7D,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QAEvD,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,6CAA6C;IAC7C,wBAAwB;IACxB,6CAA6C;IAE7C;;OAEG;IACK,KAAK,CAAC,sBAAsB,CACnC,UAAmC,EACnC,OAAgB;QAEhB,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAElD,MAAM,UAAU,GAAG;YAClB,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC;YAC3C,QAAQ,EAAE;gBACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,eAAe,EAAE,UAAU,CAAC,MAAM;gBAClC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CACnD,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EACtC,CAAC,CACD;aACD;SACD,CAAC;QAEF,MAAM,UAAU,GAAG;gBACL,UAAU,CAAC,QAAQ,CAAC,SAAS;gCACb,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;;CAElE,CAAC;QAEA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QAClE,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAEjD,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,6CAA6C;IAC7C,6BAA6B;IAC7B,6CAA6C;IAE7C;;;;;OAKG;IACK,KAAK,CAAC,gBAAgB,CAC7B,SAAgC,EAChC,gBAAkC;QAElC,OAAO,CAAC,GAAG,CACV,6CAA6C,SAAS,CAAC,IAAI,wBAAwB,CACnF,CAAC;QAEA,8CAA8C;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC;QAChF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,CACV,4CAA4C,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,QAAQ,CAAC,MAAM,cAAc,WAAW,CAAC,MAAM,CAAC,MAAM,SAAS,CAC9I,CAAC;QAEF,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CACX,oDAAoD,SAAS,CAAC,IAAI,GAAG,EACrE,WAAW,CAAC,MAAM,CAClB,CAAC;QACH,CAAC;QAED,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,kCAAkC,SAAS,CAAC,IAAI,GAAG,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;QACxF,CAAC;QAED,mDAAmD;QACnD,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAC7C,SAAS,EACT,gBAAgB,EAChB,WAAW,CAAC,UAAU,CACtB,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,+BAA+B,YAAY,CAAC,MAAM,gBAAgB,CAAC,CAAC;QAE9E,mDAAmD;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,YAAY,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;QAE9F,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CACV,qCAAqC,KAAK,CAAC,KAAK,WAAW,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,MAAM,YAAY,KAAK,CAAC,QAAQ,cAAc,KAAK,CAAC,KAAK,SAAS,CACvJ,CAAC;QAEF,IAAI,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,qBAAqB,WAAW,CAAC,SAAS,CAAC,MAAM,2BAA2B,CAAC,CAAC;QAC5F,CAAC;QAEC,4DAA4D;QAC9D,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC5D,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ;YAC5E,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,4CAA4C;SAC3E,CAAC,CAAC,CAAC;QAEJ,OAAO,CAAC,GAAG,CACV,qCAAqC,aAAa,CAAC,MAAM,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1G,CAAC;QACF,OAAO,aAAa,CAAC;IACtB,CAAC;IAED;;OAEG;IACK,oBAAoB,CAC3B,SAAgC,EAChC,gBAAkC,EAClC,UAA4B;QAE5B,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,yDAAyD,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,iDAAiD,EAAE,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEhG,mEAAmE;QACnE,IAAI,UAAU,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YACxD,QAAQ,CAAC,IAAI,CAAC;gBACb,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,SAAS,EAAE,gBAAgB,CAAC;gBAChE,KAAK,EAAE,UAAU,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;aAClD,CAAC,CAAC;QACJ,CAAC;QAED,qEAAqE;QACnE,IACE,gBAAgB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YACpC,UAAU,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,KAAK,KAAK,EACpD,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC;gBACZ,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CACnC,SAAS,EACT,gBAAgB,EAChB,UAAU,CAAC,UAAU,EAAE,UAAiB,CACzC;gBACD,KAAK,EAAE,UAAU,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;aACrD,CAAC,CAAC;QACP,CAAC;QAED,4DAA4D;QAC5D,MAAM,sBAAsB,GAC3B,UAAU,CAAC,UAAU,EAAE,QAAQ,KAAK,KAAK;YACzC,CAAC,CACA,OAAO,UAAU,CAAC,UAAU,EAAE,QAAQ,KAAK,QAAQ;gBACnD,UAAU,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,KAAK,KAAK,CAClD;YACD,gBAAgB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAEtC,OAAO,CAAC,GAAG,CAAC,+CAA+C,sBAAsB,EAAE,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,2BAA2B,UAAU,CAAC,UAAU,EAAE,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CACV,4BAA4B,CAAC,CAAC,OAAO,UAAU,CAAC,UAAU,EAAE,QAAQ,KAAK,QAAQ,IAAI,UAAU,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,KAAK,KAAK,CAAC,EAAE,CAC1I,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,qBAAqB,gBAAgB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;QAEzE,IAAI,sBAAsB,EAAE,CAAC;YAC5B,MAAM,aAAa,GAClB,OAAO,UAAU,CAAC,UAAU,EAAE,QAAQ,KAAK,QAAQ;gBAClD,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK;gBACtC,CAAC,CAAC,CAAC,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC;gBACb,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,SAAS,EAAE,gBAAgB,CAAC;gBAC/D,KAAK,EAAE,aAAa,IAAI,CAAC;aACzB,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;QAC1E,CAAC;QAED,2DAA2D;QACzD,IACE,gBAAgB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YACpC,UAAU,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,KAAK,KAAK,EAClD,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC;gBACZ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CACjC,SAAS,EACT,gBAAgB,EAChB,UAAU,CAAC,UAAU,EAAE,QAAe,CACvC;gBACD,KAAK,EAAE,UAAU,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;aACnD,CAAC,CAAC;QACP,CAAC;QAED,wEAAwE;QACtE,IAAI,UAAU,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YAClD,QAAQ,CAAC,IAAI,CAAC;gBACZ,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAC5B,SAAS,EACT,gBAAgB,EAChB,UAAU,CAAC,UAAU,EAAE,GAAU,CAClC;gBACD,KAAK,EAAE,UAAU,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;aAC9C,CAAC,CAAC;QACP,CAAC;QAED,0CAA0C;QAC1C,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAE,SAAiB,CAAC,UAAU,CAAC,IAAK,SAAiB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/G,IAAI,aAAa,EAAE,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC;gBACb,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,gBAAgB,CAAC;gBAC7D,KAAK,EAAE,EAAE;aACT,CAAC,CAAC;QACJ,CAAC;QAED,gCAAgC;QAChC,MAAM,QAAQ,GAAI,UAAU,CAAC,UAAkB,EAAE,KAAK,CAAC;QACvD,MAAM,YAAY,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC;QACpG,IAAI,YAAY,IAAI,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACpE,QAAQ,CAAC,IAAI,CAAC;gBACb,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,gBAAgB,CAAC;gBAC7D,KAAK,EAAE,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;aAC5D,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,GAAG,CACV,+BAA+B,QAAQ,CAAC,MAAM,mBAAmB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACvG,CAAC;QACF,OAAO,QAAQ,CAAC;IACjB,CAAC;IAEA,6CAA6C;IAE9C;;OAEG;IACK,gBAAgB,CAAC,SAAiB;QACzC,MAAM,OAAO,GAA2B;YACvC,QAAQ,EAAE,UAAU;YACpB,UAAU,EAAE,YAAY;YACxB,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,UAAU;YACpB,GAAG,EAAE,KAAK;YACV,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,OAAO;YACjB,gBAAgB,EAAE,OAAO;SACzB,CAAC;QAEF,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC;IACzC,CAAC;IAED,6CAA6C;IAC7C,yBAAyB;IACzB,6CAA6C;IAE7C;;OAEG;IACM,iBAAiB,CAAC,QAAe;QACzC,OAAO,CAAC,GAAG,CAAC,kCAAkC,QAAQ,CAAC,MAAM,cAAc,CAAC,CAAC;QAE3E,MAAM,gBAAgB,GAIlB;YACF,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,EAAE;SACZ,CAAC;QAEJ,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YACnC,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG,CAAC,KAAK,OAAO,CAAC,EAAE,WAAW,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;YAChF,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CACV,2BAA2B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,UAAU,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,UAAU,CACnN,CAAC;gBAEF,kBAAkB;gBAClB,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBAExE,kBAAkB;gBAClB,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBAExE,mCAAmC;gBAC/B,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,CAAa,CAAC;gBAClE,UAAU,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;oBACjC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC5C,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACrC,CAAC;gBACH,CAAC,CAAC,CAAC;YACR,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YACtD,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CACV,yBAAyB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,MAAM,eAAe,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,MAAM,eAAe,gBAAgB,CAAC,OAAO,CAAC,MAAM,UAAU,CAC5L,CAAC;QAEF,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,OAAO,gBAAgB,CAAC;IACzB,CAAC;IAED,6CAA6C;IAC7C,kBAAkB;IAClB,6CAA6C;IAE7C;;OAEG;IACK,eAAe,CACtB,UAAmC,EACnC,OAAO,GAAG,SAAS;QAEnB,MAAM,MAAM,GAA4C,EAAE,CAAC;QAE3D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACpC,IAAI,QAAgB,CAAC;YAErB,QAAQ,OAAO,EAAE,CAAC;gBACjB,KAAK,SAAS;oBACb,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC;oBACjC,MAAM;gBACP;oBACC,QAAQ,GAAG,YAAY,CAAC;YAC1B,CAAC;YAEE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrB,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;QAC5B,CAAC;QAED,oCAAoC;QAClC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,QAA+B,CAAC;YAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;QAEH,OAAO,MAAM,CAAC;IACf,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,UAAmC;QAC5D,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACpC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YAC/B,KAAK,EAAE,SAAS,CAAC,IAAI;YACrB,IAAI,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC3C,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE;gBACT;oBACM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW;oBAClD,KAAK,EAAE,UAAU;oBACZ,IAAI,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW;oBACtD,KAAK,EAAE,CAAC;iBACR;gBACD;oBACM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa;oBACpD,KAAK,EAAE,YAAY;oBACd,IAAI,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa;oBACxD,KAAK,EAAE,CAAC;iBACR;gBACD;oBACM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW;oBAClD,KAAK,EAAE,UAAU;oBACZ,IAAI,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW;oBACtD,KAAK,EAAE,CAAC;iBACR;gBACD;oBACM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW;oBAClD,KAAK,EAAE,UAAU;oBACZ,IAAI,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW;oBACtD,KAAK,EAAE,CAAC;iBACR;gBACD;oBACM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM;oBAC7C,KAAK,EAAE,eAAe;oBACjB,IAAI,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM;oBACjD,KAAK,EAAE,CAAC;iBACR;aACD;SACD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACM,sBAAsB,CAAC,QAAe;QAC5C,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAChC,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG;SAC5B,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,kCAAkC,CAAC,YAAoB;QACnE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACzD,MAAM,OAAO,GAAyC,EAAE,CAAC;YAEzD,mEAAmE;YACnE,MAAM,eAAe,GAAG,uBAAuB,CAAC;YAChD,IAAI,KAA6B,CAAC;YAClC,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACxD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBACpD,IAAI,CAAC,OAAO;oBAAE,SAAS;gBACvB,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBAC1D,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9B,CAAC;YAED,2CAA2C;YAC3C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;YAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBACnC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACjC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACf,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,wDAAwD;YACxD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,IAAY;QAC9B,OAAO,IAAI;aACR,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;aACpB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;aACxC,IAAI,EAAE,CAAC;IACZ,CAAC;IAEF;;OAEG;IACK,uBAAuB,CAAC,gBAAkC;QACjE,wCAAwC;QACxC,oCAAoC;QACpC,qBAAqB;QACrB,uBAAuB;QACvB,wBAAwB;QAExB,MAAM,eAAe,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;QAC3D,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClF,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtF,MAAM,cAAc,GAAG,gBAAgB,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QAE/D,OAAO,eAAe,IAAI,kBAAkB,IAAI,oBAAoB,IAAI,cAAc,CAAC;IACxF,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAAC,SAAmB;QACnD,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC;gBACJ,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC;YACzB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,6BAA6B;YAC9B,CAAC;QACF,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;CACD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=PlaygroundPresets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlaygroundPresets.d.ts","sourceRoot":"","sources":["../../../src/generators/svelte/PlaygroundPresets.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ // Deprecated: originally used to inject codebase-specific presets into docs-gen.
2
+ // After feedback, we rely on author-provided DocsPlaygroundConfig in docs.svelte instead.
3
+ export {};
4
+ //# sourceMappingURL=PlaygroundPresets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlaygroundPresets.js","sourceRoot":"","sources":["../../../src/generators/svelte/PlaygroundPresets.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,0FAA0F;AAC1F,OAAO,EAAE,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { SvelteDocsConfig } from '@urbicon-ui/shared-types';
2
+ import type { RenderedSection } from './types';
3
+ import { type SectionMergeResult } from '@/types';
4
+ /**
5
+ * Merges auto-generated sections with custom Svelte sections
6
+ * Implements the "Auto-First + Svelte Override" strategy
7
+ */
8
+ export declare class SectionMerger {
9
+ /**
10
+ * Merge auto-generated sections and apply docsConfig filters/order.
11
+ * Note: Custom Svelte sections are not parsed anymore; they are included separately as a component.
12
+ */
13
+ merge(autoSections: RenderedSection[], docsConfig: SvelteDocsConfig): SectionMergeResult;
14
+ /**
15
+ * Apply configuration filters (disable sections, etc.)
16
+ */
17
+ private applyConfigFilters;
18
+ /**
19
+ * Sort sections by order value
20
+ */
21
+ private sortSections;
22
+ /**
23
+ * Determine if section should be included in LLM documentation
24
+ */
25
+ private shouldIncludeInLLM;
26
+ /**
27
+ * Get statistics about the merge operation
28
+ */
29
+ getMergeStats(result: SectionMergeResult): {
30
+ total: number;
31
+ auto: number;
32
+ custom: number;
33
+ replaced: number;
34
+ added: number;
35
+ llmIncluded: number;
36
+ };
37
+ }
38
+ //# sourceMappingURL=SectionMerger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SectionMerger.d.ts","sourceRoot":"","sources":["../../../src/generators/svelte/SectionMerger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,qBAAa,aAAa;IACxB;;;OAGG;IACH,KAAK,CAAC,YAAY,EAAE,eAAe,EAAE,EAAE,UAAU,EAAE,gBAAgB,GAAG,kBAAkB;IA4DxF;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8D1B;;OAEG;IACH,OAAO,CAAC,YAAY;IAYpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA2B1B;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG;QACzC,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;KACrB;CAcF"}