@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.
- package/README.md +92 -0
- package/dist/cli/CLI.d.ts +10 -0
- package/dist/cli/CLI.d.ts.map +1 -0
- package/dist/cli/CLI.js +340 -0
- package/dist/cli/CLI.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +7 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/core/discovery/ComponentFinder.d.ts +43 -0
- package/dist/core/discovery/ComponentFinder.d.ts.map +1 -0
- package/dist/core/discovery/ComponentFinder.js +421 -0
- package/dist/core/discovery/ComponentFinder.js.map +1 -0
- package/dist/core/discovery/FileStructureAnalyzer.d.ts +15 -0
- package/dist/core/discovery/FileStructureAnalyzer.d.ts.map +1 -0
- package/dist/core/discovery/FileStructureAnalyzer.js +35 -0
- package/dist/core/discovery/FileStructureAnalyzer.js.map +1 -0
- package/dist/core/discovery/MetadataExtractor.d.ts +15 -0
- package/dist/core/discovery/MetadataExtractor.d.ts.map +1 -0
- package/dist/core/discovery/MetadataExtractor.js +47 -0
- package/dist/core/discovery/MetadataExtractor.js.map +1 -0
- package/dist/core/discovery/index.d.ts +2 -0
- package/dist/core/discovery/index.d.ts.map +1 -0
- package/dist/core/discovery/index.js +2 -0
- package/dist/core/discovery/index.js.map +1 -0
- package/dist/core/enrichment/APIDataGenerator.d.ts +77 -0
- package/dist/core/enrichment/APIDataGenerator.d.ts.map +1 -0
- package/dist/core/enrichment/APIDataGenerator.js +663 -0
- package/dist/core/enrichment/APIDataGenerator.js.map +1 -0
- package/dist/core/enrichment/index.d.ts +2 -0
- package/dist/core/enrichment/index.d.ts.map +1 -0
- package/dist/core/enrichment/index.js +6 -0
- package/dist/core/enrichment/index.js.map +1 -0
- package/dist/core/extraction/ExtractionCoordinator.d.ts +53 -0
- package/dist/core/extraction/ExtractionCoordinator.d.ts.map +1 -0
- package/dist/core/extraction/ExtractionCoordinator.js +352 -0
- package/dist/core/extraction/ExtractionCoordinator.js.map +1 -0
- package/dist/core/extraction/index.d.ts +2 -0
- package/dist/core/extraction/index.d.ts.map +1 -0
- package/dist/core/extraction/index.js +2 -0
- package/dist/core/extraction/index.js.map +1 -0
- package/dist/core/generation/GenerationCoordinator.d.ts +51 -0
- package/dist/core/generation/GenerationCoordinator.d.ts.map +1 -0
- package/dist/core/generation/GenerationCoordinator.js +206 -0
- package/dist/core/generation/GenerationCoordinator.js.map +1 -0
- package/dist/core/generation/index.d.ts +2 -0
- package/dist/core/generation/index.d.ts.map +1 -0
- package/dist/core/generation/index.js +2 -0
- package/dist/core/generation/index.js.map +1 -0
- package/dist/core/index.d.ts +7 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +16 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/pipeline/ErrorHandler.d.ts +129 -0
- package/dist/core/pipeline/ErrorHandler.d.ts.map +1 -0
- package/dist/core/pipeline/ErrorHandler.js +321 -0
- package/dist/core/pipeline/ErrorHandler.js.map +1 -0
- package/dist/core/pipeline/PipelineOrchestrator.d.ts +45 -0
- package/dist/core/pipeline/PipelineOrchestrator.d.ts.map +1 -0
- package/dist/core/pipeline/PipelineOrchestrator.js +216 -0
- package/dist/core/pipeline/PipelineOrchestrator.js.map +1 -0
- package/dist/core/pipeline/index.d.ts +1 -0
- package/dist/core/pipeline/index.d.ts.map +1 -0
- package/dist/core/pipeline/index.js +2 -0
- package/dist/core/pipeline/index.js.map +1 -0
- package/dist/extractors/BaseExtractor.d.ts +33 -0
- package/dist/extractors/BaseExtractor.d.ts.map +1 -0
- package/dist/extractors/BaseExtractor.js +68 -0
- package/dist/extractors/BaseExtractor.js.map +1 -0
- package/dist/extractors/ExtractorFactory.d.ts +35 -0
- package/dist/extractors/ExtractorFactory.d.ts.map +1 -0
- package/dist/extractors/ExtractorFactory.js +88 -0
- package/dist/extractors/ExtractorFactory.js.map +1 -0
- package/dist/extractors/documentation/index.d.ts +1 -0
- package/dist/extractors/documentation/index.d.ts.map +1 -0
- package/dist/extractors/documentation/index.js +2 -0
- package/dist/extractors/documentation/index.js.map +1 -0
- package/dist/extractors/index.d.ts +1 -0
- package/dist/extractors/index.d.ts.map +1 -0
- package/dist/extractors/index.js +2 -0
- package/dist/extractors/index.js.map +1 -0
- package/dist/extractors/typescript/ExamplesExtractor.d.ts +32 -0
- package/dist/extractors/typescript/ExamplesExtractor.d.ts.map +1 -0
- package/dist/extractors/typescript/ExamplesExtractor.js +209 -0
- package/dist/extractors/typescript/ExamplesExtractor.js.map +1 -0
- package/dist/extractors/typescript/InheritanceExtractor.d.ts +45 -0
- package/dist/extractors/typescript/InheritanceExtractor.d.ts.map +1 -0
- package/dist/extractors/typescript/InheritanceExtractor.js +368 -0
- package/dist/extractors/typescript/InheritanceExtractor.js.map +1 -0
- package/dist/extractors/typescript/LocalTypesExtractor.d.ts +20 -0
- package/dist/extractors/typescript/LocalTypesExtractor.d.ts.map +1 -0
- package/dist/extractors/typescript/LocalTypesExtractor.js +100 -0
- package/dist/extractors/typescript/LocalTypesExtractor.js.map +1 -0
- package/dist/extractors/typescript/PropsExtractor.d.ts +142 -0
- package/dist/extractors/typescript/PropsExtractor.d.ts.map +1 -0
- package/dist/extractors/typescript/PropsExtractor.js +709 -0
- package/dist/extractors/typescript/PropsExtractor.js.map +1 -0
- package/dist/extractors/typescript/TypeScriptBaseExtractor.d.ts +74 -0
- package/dist/extractors/typescript/TypeScriptBaseExtractor.d.ts.map +1 -0
- package/dist/extractors/typescript/TypeScriptBaseExtractor.js +249 -0
- package/dist/extractors/typescript/TypeScriptBaseExtractor.js.map +1 -0
- package/dist/extractors/typescript/index.d.ts +1 -0
- package/dist/extractors/typescript/index.d.ts.map +1 -0
- package/dist/extractors/typescript/index.js +2 -0
- package/dist/extractors/typescript/index.js.map +1 -0
- package/dist/extractors/variants/TailwindVariantsParser.d.ts +16 -0
- package/dist/extractors/variants/TailwindVariantsParser.d.ts.map +1 -0
- package/dist/extractors/variants/TailwindVariantsParser.js +53 -0
- package/dist/extractors/variants/TailwindVariantsParser.js.map +1 -0
- package/dist/extractors/variants/VariantsExtractor.d.ts +45 -0
- package/dist/extractors/variants/VariantsExtractor.d.ts.map +1 -0
- package/dist/extractors/variants/VariantsExtractor.js +340 -0
- package/dist/extractors/variants/VariantsExtractor.js.map +1 -0
- package/dist/extractors/variants/index.d.ts +2 -0
- package/dist/extractors/variants/index.d.ts.map +1 -0
- package/dist/extractors/variants/index.js +2 -0
- package/dist/extractors/variants/index.js.map +1 -0
- package/dist/generators/api/APIFileGenerator.d.ts +32 -0
- package/dist/generators/api/APIFileGenerator.d.ts.map +1 -0
- package/dist/generators/api/APIFileGenerator.js +450 -0
- package/dist/generators/api/APIFileGenerator.js.map +1 -0
- package/dist/generators/api/TypeDefinitionGenerator.d.ts +1 -0
- package/dist/generators/api/TypeDefinitionGenerator.d.ts.map +1 -0
- package/dist/generators/api/TypeDefinitionGenerator.js +2 -0
- package/dist/generators/api/TypeDefinitionGenerator.js.map +1 -0
- package/dist/generators/api/index.d.ts +2 -0
- package/dist/generators/api/index.d.ts.map +1 -0
- package/dist/generators/api/index.js +2 -0
- package/dist/generators/api/index.js.map +1 -0
- package/dist/generators/index.d.ts +5 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +4 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/generators/llm/LLMDocumentationGenerator.d.ts +34 -0
- package/dist/generators/llm/LLMDocumentationGenerator.d.ts.map +1 -0
- package/dist/generators/llm/LLMDocumentationGenerator.js +480 -0
- package/dist/generators/llm/LLMDocumentationGenerator.js.map +1 -0
- package/dist/generators/llm/LLMFormatter.d.ts +4 -0
- package/dist/generators/llm/LLMFormatter.d.ts.map +1 -0
- package/dist/generators/llm/LLMFormatter.js +8 -0
- package/dist/generators/llm/LLMFormatter.js.map +1 -0
- package/dist/generators/llm/LlmsFullAssembler.d.ts +20 -0
- package/dist/generators/llm/LlmsFullAssembler.d.ts.map +1 -0
- package/dist/generators/llm/LlmsFullAssembler.js +63 -0
- package/dist/generators/llm/LlmsFullAssembler.js.map +1 -0
- package/dist/generators/llm/index.d.ts +1 -0
- package/dist/generators/llm/index.d.ts.map +1 -0
- package/dist/generators/llm/index.js +2 -0
- package/dist/generators/llm/index.js.map +1 -0
- package/dist/generators/mcp/MCPCatalogAssembler.d.ts +27 -0
- package/dist/generators/mcp/MCPCatalogAssembler.d.ts.map +1 -0
- package/dist/generators/mcp/MCPCatalogAssembler.js +147 -0
- package/dist/generators/mcp/MCPCatalogAssembler.js.map +1 -0
- package/dist/generators/mcp/MCPCatalogGenerator.d.ts +55 -0
- package/dist/generators/mcp/MCPCatalogGenerator.d.ts.map +1 -0
- package/dist/generators/mcp/MCPCatalogGenerator.js +153 -0
- package/dist/generators/mcp/MCPCatalogGenerator.js.map +1 -0
- package/dist/generators/svelte/PageGenerator.d.ts +82 -0
- package/dist/generators/svelte/PageGenerator.d.ts.map +1 -0
- package/dist/generators/svelte/PageGenerator.js +557 -0
- package/dist/generators/svelte/PageGenerator.js.map +1 -0
- package/dist/generators/svelte/PlaygroundPresets.d.ts +2 -0
- package/dist/generators/svelte/PlaygroundPresets.d.ts.map +1 -0
- package/dist/generators/svelte/PlaygroundPresets.js +4 -0
- package/dist/generators/svelte/PlaygroundPresets.js.map +1 -0
- package/dist/generators/svelte/SectionMerger.d.ts +38 -0
- package/dist/generators/svelte/SectionMerger.d.ts.map +1 -0
- package/dist/generators/svelte/SectionMerger.js +154 -0
- package/dist/generators/svelte/SectionMerger.js.map +1 -0
- package/dist/generators/svelte/TemplateEngine.d.ts +91 -0
- package/dist/generators/svelte/TemplateEngine.d.ts.map +1 -0
- package/dist/generators/svelte/TemplateEngine.js +500 -0
- package/dist/generators/svelte/TemplateEngine.js.map +1 -0
- package/dist/generators/svelte/index.d.ts +8 -0
- package/dist/generators/svelte/index.d.ts.map +1 -0
- package/dist/generators/svelte/index.js +11 -0
- package/dist/generators/svelte/index.js.map +1 -0
- package/dist/generators/svelte/renderers/ApiRenderer.d.ts +17 -0
- package/dist/generators/svelte/renderers/ApiRenderer.d.ts.map +1 -0
- package/dist/generators/svelte/renderers/ApiRenderer.js +44 -0
- package/dist/generators/svelte/renderers/ApiRenderer.js.map +1 -0
- package/dist/generators/svelte/renderers/ExampleRenderer.d.ts +33 -0
- package/dist/generators/svelte/renderers/ExampleRenderer.d.ts.map +1 -0
- package/dist/generators/svelte/renderers/ExampleRenderer.js +137 -0
- package/dist/generators/svelte/renderers/ExampleRenderer.js.map +1 -0
- package/dist/generators/svelte/renderers/OverviewRenderer.d.ts +9 -0
- package/dist/generators/svelte/renderers/OverviewRenderer.d.ts.map +1 -0
- package/dist/generators/svelte/renderers/OverviewRenderer.js +45 -0
- package/dist/generators/svelte/renderers/OverviewRenderer.js.map +1 -0
- package/dist/generators/svelte/renderers/PlaygroundRenderer.d.ts +35 -0
- package/dist/generators/svelte/renderers/PlaygroundRenderer.d.ts.map +1 -0
- package/dist/generators/svelte/renderers/PlaygroundRenderer.js +319 -0
- package/dist/generators/svelte/renderers/PlaygroundRenderer.js.map +1 -0
- package/dist/generators/svelte/renderers/TypesRenderer.d.ts +9 -0
- package/dist/generators/svelte/renderers/TypesRenderer.d.ts.map +1 -0
- package/dist/generators/svelte/renderers/TypesRenderer.js +23 -0
- package/dist/generators/svelte/renderers/TypesRenderer.js.map +1 -0
- package/dist/generators/svelte/renderers/UsageRenderer.d.ts +14 -0
- package/dist/generators/svelte/renderers/UsageRenderer.d.ts.map +1 -0
- package/dist/generators/svelte/renderers/UsageRenderer.js +91 -0
- package/dist/generators/svelte/renderers/UsageRenderer.js.map +1 -0
- package/dist/generators/svelte/renderers/VariantsRenderer.d.ts +43 -0
- package/dist/generators/svelte/renderers/VariantsRenderer.d.ts.map +1 -0
- package/dist/generators/svelte/renderers/VariantsRenderer.js +277 -0
- package/dist/generators/svelte/renderers/VariantsRenderer.js.map +1 -0
- package/dist/generators/svelte/renderers/index.d.ts +8 -0
- package/dist/generators/svelte/renderers/index.d.ts.map +1 -0
- package/dist/generators/svelte/renderers/index.js +8 -0
- package/dist/generators/svelte/renderers/index.js.map +1 -0
- package/dist/generators/svelte/types.d.ts +13 -0
- package/dist/generators/svelte/types.d.ts.map +1 -0
- package/dist/generators/svelte/types.js +2 -0
- package/dist/generators/svelte/types.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/parsers/SvelteDocsParser.d.ts +44 -0
- package/dist/parsers/SvelteDocsParser.d.ts.map +1 -0
- package/dist/parsers/SvelteDocsParser.js +141 -0
- package/dist/parsers/SvelteDocsParser.js.map +1 -0
- package/dist/parsers/index.d.ts +2 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/parsers/index.js +6 -0
- package/dist/parsers/index.js.map +1 -0
- package/dist/schema/ConfigurationBuilder.d.ts +55 -0
- package/dist/schema/ConfigurationBuilder.d.ts.map +1 -0
- package/dist/schema/ConfigurationBuilder.js +447 -0
- package/dist/schema/ConfigurationBuilder.js.map +1 -0
- package/dist/schema/index.d.ts +1 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +2 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/configuration.d.ts +255 -0
- package/dist/types/configuration.d.ts.map +1 -0
- package/dist/types/configuration.js +2 -0
- package/dist/types/configuration.js.map +1 -0
- package/dist/types/core.d.ts +96 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/core.js +2 -0
- package/dist/types/core.js.map +1 -0
- package/dist/types/docs-config.d.ts +5 -0
- package/dist/types/docs-config.d.ts.map +1 -0
- package/dist/types/docs-config.js +51 -0
- package/dist/types/docs-config.js.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +9 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/validation.d.ts +321 -0
- package/dist/types/validation.d.ts.map +1 -0
- package/dist/types/validation.js +2 -0
- package/dist/types/validation.js.map +1 -0
- package/dist/utils/DeploymentManager.d.ts +80 -0
- package/dist/utils/DeploymentManager.d.ts.map +1 -0
- package/dist/utils/DeploymentManager.js +360 -0
- package/dist/utils/DeploymentManager.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -0
- 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":"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"}
|
|
@@ -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 @@
|
|
|
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"}
|