@tpitre/story-ui 2.1.5 → 2.3.0
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/.env.sample +82 -11
- package/README.md +130 -4
- package/dist/cli/deploy.d.ts +17 -0
- package/dist/cli/deploy.d.ts.map +1 -0
- package/dist/cli/deploy.js +696 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +55 -2
- package/dist/cli/setup.d.ts +11 -0
- package/dist/cli/setup.d.ts.map +1 -0
- package/dist/cli/setup.js +437 -110
- package/dist/mcp-server/index.d.ts +2 -0
- package/dist/mcp-server/index.d.ts.map +1 -0
- package/dist/mcp-server/index.js +138 -6
- package/dist/mcp-server/mcp-stdio-server.d.ts +3 -0
- package/dist/mcp-server/mcp-stdio-server.d.ts.map +1 -0
- package/dist/mcp-server/mcp-stdio-server.js +638 -0
- package/dist/mcp-server/routes/claude.d.ts +3 -0
- package/dist/mcp-server/routes/claude.d.ts.map +1 -0
- package/dist/mcp-server/routes/claude.js +60 -23
- package/dist/mcp-server/routes/components.d.ts +4 -0
- package/dist/mcp-server/routes/components.d.ts.map +1 -0
- package/dist/mcp-server/routes/frameworks.d.ts +38 -0
- package/dist/mcp-server/routes/frameworks.d.ts.map +1 -0
- package/dist/mcp-server/routes/frameworks.js +183 -0
- package/dist/mcp-server/routes/generateStory.d.ts +3 -0
- package/dist/mcp-server/routes/generateStory.d.ts.map +1 -0
- package/dist/mcp-server/routes/generateStory.js +274 -115
- package/dist/mcp-server/routes/generateStoryStream.d.ts +12 -0
- package/dist/mcp-server/routes/generateStoryStream.d.ts.map +1 -0
- package/dist/mcp-server/routes/generateStoryStream.js +947 -0
- package/dist/mcp-server/routes/hybridStories.d.ts +18 -0
- package/dist/mcp-server/routes/hybridStories.d.ts.map +1 -0
- package/dist/mcp-server/routes/hybridStories.js +214 -0
- package/dist/mcp-server/routes/mcpRemote.d.ts +14 -0
- package/dist/mcp-server/routes/mcpRemote.d.ts.map +1 -0
- package/dist/mcp-server/routes/mcpRemote.js +489 -0
- package/dist/mcp-server/routes/memoryStories.d.ts +26 -0
- package/dist/mcp-server/routes/memoryStories.d.ts.map +1 -0
- package/dist/mcp-server/routes/memoryStories.js +13 -7
- package/dist/mcp-server/routes/providers.d.ts +89 -0
- package/dist/mcp-server/routes/providers.d.ts.map +1 -0
- package/dist/mcp-server/routes/providers.js +369 -0
- package/dist/mcp-server/routes/storySync.d.ts +26 -0
- package/dist/mcp-server/routes/storySync.d.ts.map +1 -0
- package/dist/mcp-server/routes/streamTypes.d.ts +110 -0
- package/dist/mcp-server/routes/streamTypes.d.ts.map +1 -0
- package/dist/mcp-server/routes/streamTypes.js +18 -0
- package/dist/mcp-server/sessionManager.d.ts +50 -0
- package/dist/mcp-server/sessionManager.d.ts.map +1 -0
- package/dist/mcp-server/sessionManager.js +125 -0
- package/dist/story-generator/componentBlacklist.d.ts +21 -0
- package/dist/story-generator/componentBlacklist.d.ts.map +1 -0
- package/dist/story-generator/componentBlacklist.js +4 -0
- package/dist/story-generator/componentDiscovery.d.ts +28 -0
- package/dist/story-generator/componentDiscovery.d.ts.map +1 -0
- package/dist/story-generator/componentRegistryGenerator.d.ts +49 -0
- package/dist/story-generator/componentRegistryGenerator.d.ts.map +1 -0
- package/dist/story-generator/componentRegistryGenerator.js +205 -0
- package/dist/story-generator/configLoader.d.ts +33 -0
- package/dist/story-generator/configLoader.d.ts.map +1 -0
- package/dist/story-generator/configLoader.js +8 -1
- package/dist/story-generator/considerationsLoader.d.ts +32 -0
- package/dist/story-generator/considerationsLoader.d.ts.map +1 -0
- package/dist/story-generator/considerationsLoader.js +2 -1
- package/dist/story-generator/documentation-sources.d.ts +28 -0
- package/dist/story-generator/documentation-sources.d.ts.map +1 -0
- package/dist/story-generator/documentationLoader.d.ts +64 -0
- package/dist/story-generator/documentationLoader.d.ts.map +1 -0
- package/dist/story-generator/documentationLoader.js +4 -3
- package/dist/story-generator/dynamicPackageDiscovery.d.ts +97 -0
- package/dist/story-generator/dynamicPackageDiscovery.d.ts.map +1 -0
- package/dist/story-generator/dynamicPackageDiscovery.js +31 -22
- package/dist/story-generator/enhancedComponentDiscovery.d.ts +125 -0
- package/dist/story-generator/enhancedComponentDiscovery.d.ts.map +1 -0
- package/dist/story-generator/enhancedComponentDiscovery.js +162 -21
- package/dist/story-generator/framework-adapters/angular-adapter.d.ts +40 -0
- package/dist/story-generator/framework-adapters/angular-adapter.d.ts.map +1 -0
- package/dist/story-generator/framework-adapters/angular-adapter.js +427 -0
- package/dist/story-generator/framework-adapters/base-adapter.d.ts +75 -0
- package/dist/story-generator/framework-adapters/base-adapter.d.ts.map +1 -0
- package/dist/story-generator/framework-adapters/base-adapter.js +147 -0
- package/dist/story-generator/framework-adapters/framework-detector.d.ts +55 -0
- package/dist/story-generator/framework-adapters/framework-detector.d.ts.map +1 -0
- package/dist/story-generator/framework-adapters/framework-detector.js +323 -0
- package/dist/story-generator/framework-adapters/index.d.ts +97 -0
- package/dist/story-generator/framework-adapters/index.d.ts.map +1 -0
- package/dist/story-generator/framework-adapters/index.js +198 -0
- package/dist/story-generator/framework-adapters/react-adapter.d.ts +40 -0
- package/dist/story-generator/framework-adapters/react-adapter.d.ts.map +1 -0
- package/dist/story-generator/framework-adapters/react-adapter.js +316 -0
- package/dist/story-generator/framework-adapters/svelte-adapter.d.ts +40 -0
- package/dist/story-generator/framework-adapters/svelte-adapter.d.ts.map +1 -0
- package/dist/story-generator/framework-adapters/svelte-adapter.js +372 -0
- package/dist/story-generator/framework-adapters/types.d.ts +182 -0
- package/dist/story-generator/framework-adapters/types.d.ts.map +1 -0
- package/dist/story-generator/framework-adapters/types.js +8 -0
- package/dist/story-generator/framework-adapters/vue-adapter.d.ts +36 -0
- package/dist/story-generator/framework-adapters/vue-adapter.d.ts.map +1 -0
- package/dist/story-generator/framework-adapters/vue-adapter.js +336 -0
- package/dist/story-generator/framework-adapters/web-components-adapter.d.ts +54 -0
- package/dist/story-generator/framework-adapters/web-components-adapter.d.ts.map +1 -0
- package/dist/story-generator/framework-adapters/web-components-adapter.js +387 -0
- package/dist/story-generator/generateStory.d.ts +7 -0
- package/dist/story-generator/generateStory.d.ts.map +1 -0
- package/dist/story-generator/gitignoreManager.d.ts +50 -0
- package/dist/story-generator/gitignoreManager.d.ts.map +1 -0
- package/dist/story-generator/gitignoreManager.js +7 -6
- package/dist/story-generator/imageProcessor.d.ts +80 -0
- package/dist/story-generator/imageProcessor.d.ts.map +1 -0
- package/dist/story-generator/imageProcessor.js +391 -0
- package/dist/story-generator/inMemoryStoryService.d.ts +89 -0
- package/dist/story-generator/inMemoryStoryService.d.ts.map +1 -0
- package/dist/story-generator/llm-providers/base-provider.d.ts +36 -0
- package/dist/story-generator/llm-providers/base-provider.d.ts.map +1 -0
- package/dist/story-generator/llm-providers/base-provider.js +135 -0
- package/dist/story-generator/llm-providers/claude-provider.d.ts +23 -0
- package/dist/story-generator/llm-providers/claude-provider.d.ts.map +1 -0
- package/dist/story-generator/llm-providers/claude-provider.js +414 -0
- package/dist/story-generator/llm-providers/gemini-provider.d.ts +24 -0
- package/dist/story-generator/llm-providers/gemini-provider.d.ts.map +1 -0
- package/dist/story-generator/llm-providers/gemini-provider.js +406 -0
- package/dist/story-generator/llm-providers/index.d.ts +63 -0
- package/dist/story-generator/llm-providers/index.d.ts.map +1 -0
- package/dist/story-generator/llm-providers/index.js +169 -0
- package/dist/story-generator/llm-providers/openai-provider.d.ts +24 -0
- package/dist/story-generator/llm-providers/openai-provider.d.ts.map +1 -0
- package/dist/story-generator/llm-providers/openai-provider.js +458 -0
- package/dist/story-generator/llm-providers/settings-manager.d.ts +75 -0
- package/dist/story-generator/llm-providers/settings-manager.d.ts.map +1 -0
- package/dist/story-generator/llm-providers/settings-manager.js +173 -0
- package/dist/story-generator/llm-providers/story-llm-service.d.ts +79 -0
- package/dist/story-generator/llm-providers/story-llm-service.d.ts.map +1 -0
- package/dist/story-generator/llm-providers/story-llm-service.js +240 -0
- package/dist/story-generator/llm-providers/types.d.ts +153 -0
- package/dist/story-generator/llm-providers/types.d.ts.map +1 -0
- package/dist/story-generator/llm-providers/types.js +8 -0
- package/dist/story-generator/logger.d.ts +14 -0
- package/dist/story-generator/logger.d.ts.map +1 -0
- package/dist/story-generator/logger.js +119 -0
- package/dist/story-generator/postProcessStory.d.ts +6 -0
- package/dist/story-generator/postProcessStory.d.ts.map +1 -0
- package/dist/story-generator/postProcessStory.js +8 -7
- package/dist/story-generator/productionGitignoreManager.d.ts +91 -0
- package/dist/story-generator/productionGitignoreManager.d.ts.map +1 -0
- package/dist/story-generator/productionGitignoreManager.js +11 -10
- package/dist/story-generator/promptGenerator.d.ts +48 -0
- package/dist/story-generator/promptGenerator.d.ts.map +1 -0
- package/dist/story-generator/promptGenerator.js +186 -1
- package/dist/story-generator/storyHistory.d.ts +44 -0
- package/dist/story-generator/storyHistory.d.ts.map +1 -0
- package/dist/story-generator/storySync.d.ts +68 -0
- package/dist/story-generator/storySync.d.ts.map +1 -0
- package/dist/story-generator/storyTracker.d.ts +48 -0
- package/dist/story-generator/storyTracker.d.ts.map +1 -0
- package/dist/story-generator/storyTracker.js +2 -1
- package/dist/story-generator/storyValidator.d.ts +6 -0
- package/dist/story-generator/storyValidator.d.ts.map +1 -0
- package/dist/story-generator/universalDesignSystemAdapter.d.ts +68 -0
- package/dist/story-generator/universalDesignSystemAdapter.d.ts.map +1 -0
- package/dist/story-generator/universalDesignSystemAdapter.js +141 -3
- package/dist/story-generator/urlRedirectService.d.ts +21 -0
- package/dist/story-generator/urlRedirectService.d.ts.map +1 -0
- package/dist/story-generator/urlRedirectService.js +140 -0
- package/dist/story-generator/validateStory.d.ts +19 -0
- package/dist/story-generator/validateStory.d.ts.map +1 -0
- package/dist/story-generator/validateStory.js +6 -2
- package/dist/story-generator/visionPrompts.d.ts +88 -0
- package/dist/story-generator/visionPrompts.d.ts.map +1 -0
- package/dist/story-generator/visionPrompts.js +462 -0
- package/dist/story-ui.config.d.ts +78 -0
- package/dist/story-ui.config.d.ts.map +1 -0
- package/dist/templates/StoryUI/StoryUIPanel.d.ts +4 -0
- package/dist/templates/StoryUI/StoryUIPanel.d.ts.map +1 -0
- package/dist/templates/StoryUI/StoryUIPanel.js +1874 -0
- package/dist/templates/StoryUI/StoryUIPanel.stories.d.ts +18 -0
- package/dist/templates/StoryUI/StoryUIPanel.stories.d.ts.map +1 -0
- package/dist/templates/StoryUI/StoryUIPanel.stories.js +37 -0
- package/dist/templates/StoryUI/index.d.ts +3 -0
- package/dist/templates/StoryUI/index.d.ts.map +1 -0
- package/dist/templates/StoryUI/index.js +2 -0
- package/package.json +35 -4
- package/templates/StoryUI/StoryUIPanel.tsx +1973 -388
- package/templates/StoryUI/index.tsx +1 -1
- package/templates/StoryUI/manager.tsx +264 -0
- package/templates/mcp-config-claude.json +11 -0
- package/templates/mcp-example.md +76 -0
- package/templates/production-app/.env.example +11 -0
- package/templates/production-app/index.html +66 -0
- package/templates/production-app/package.json +30 -0
- package/templates/production-app/public/favicon.svg +5 -0
- package/templates/production-app/src/App.tsx +1157 -0
- package/templates/production-app/src/LivePreviewRenderer.tsx +420 -0
- package/templates/production-app/src/componentRegistry.ts +315 -0
- package/templates/production-app/src/considerations.ts +16 -0
- package/templates/production-app/src/index.css +284 -0
- package/templates/production-app/src/main.tsx +25 -0
- package/templates/production-app/tsconfig.json +32 -0
- package/templates/production-app/tsconfig.node.json +11 -0
- package/templates/production-app/vite.config.ts +83 -0
- package/templates/react-import-rule.json +2 -2
- package/dist/index.js +0 -12
- package/dist/story-ui.config.loader.js +0 -205
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { DynamicPackageDiscovery } from './dynamicPackageDiscovery.js';
|
|
4
|
+
import { logger } from './logger.js';
|
|
4
5
|
export class EnhancedComponentDiscovery {
|
|
5
6
|
constructor(config) {
|
|
6
7
|
this.discoveredComponents = new Map();
|
|
@@ -12,10 +13,10 @@ export class EnhancedComponentDiscovery {
|
|
|
12
13
|
* Priority: 1. Dynamic Discovery 2. Static Lists 3. Manual Config
|
|
13
14
|
*/
|
|
14
15
|
async discoverAll() {
|
|
15
|
-
|
|
16
|
+
logger.log('🔍 Starting comprehensive component discovery...');
|
|
16
17
|
// Step 1: Discover from all sources
|
|
17
18
|
const sources = this.identifySources();
|
|
18
|
-
|
|
19
|
+
logger.log(`📁 Found ${sources.length} discovery sources:`, sources.map(s => `${s.type}:${s.path}`));
|
|
19
20
|
for (const source of sources) {
|
|
20
21
|
try {
|
|
21
22
|
switch (source.type) {
|
|
@@ -42,7 +43,7 @@ export class EnhancedComponentDiscovery {
|
|
|
42
43
|
// Step 3: Resolve component conflicts and apply prioritization
|
|
43
44
|
this.resolveComponentConflicts();
|
|
44
45
|
const finalComponents = Array.from(this.discoveredComponents.values());
|
|
45
|
-
|
|
46
|
+
logger.log(`✅ Discovery complete: ${finalComponents.length} components found`);
|
|
46
47
|
// Log summary by source type
|
|
47
48
|
this.logDiscoverySummary(finalComponents);
|
|
48
49
|
return finalComponents;
|
|
@@ -64,7 +65,7 @@ export class EnhancedComponentDiscovery {
|
|
|
64
65
|
// Resolve conflicts using priority system
|
|
65
66
|
for (const [name, componentList] of conflicts) {
|
|
66
67
|
if (componentList.length > 1) {
|
|
67
|
-
|
|
68
|
+
logger.log(`⚠️ Resolving conflict for component "${name}" (${componentList.length} versions found)`);
|
|
68
69
|
// Priority order: local > manual config > npm
|
|
69
70
|
const prioritized = componentList.sort((a, b) => {
|
|
70
71
|
const getPriority = (comp) => {
|
|
@@ -82,7 +83,7 @@ export class EnhancedComponentDiscovery {
|
|
|
82
83
|
for (const loser of losers) {
|
|
83
84
|
this.discoveredComponents.delete(loser.name);
|
|
84
85
|
}
|
|
85
|
-
|
|
86
|
+
logger.log(`✅ Kept ${winner.source.type} version of "${name}" from ${winner.source.path}`);
|
|
86
87
|
}
|
|
87
88
|
}
|
|
88
89
|
}
|
|
@@ -97,7 +98,7 @@ export class EnhancedComponentDiscovery {
|
|
|
97
98
|
acc[sourceType]++;
|
|
98
99
|
return acc;
|
|
99
100
|
}, {});
|
|
100
|
-
|
|
101
|
+
logger.log('📊 Component discovery summary:', summary);
|
|
101
102
|
}
|
|
102
103
|
/**
|
|
103
104
|
* Get the project root directory from the config
|
|
@@ -259,17 +260,9 @@ export class EnhancedComponentDiscovery {
|
|
|
259
260
|
// Determine the project root from the generated stories path
|
|
260
261
|
const projectRoot = this.getProjectRoot();
|
|
261
262
|
const packagePath = path.join(projectRoot, 'node_modules', source.path);
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
}
|
|
266
|
-
console.log(`🔍 Dynamically discovering components from ${source.path}...`);
|
|
267
|
-
// Use dynamic discovery to get real exports
|
|
268
|
-
const dynamicDiscovery = new DynamicPackageDiscovery(source.path, projectRoot);
|
|
269
|
-
const packageExports = await dynamicDiscovery.getRealPackageExports();
|
|
270
|
-
if (!packageExports) {
|
|
271
|
-
console.log(`📋 ${source.path}: Using static component list (design system detected)`);
|
|
272
|
-
// Fallback to predefined components if dynamic discovery fails
|
|
263
|
+
// Helper function to load known components as fallback
|
|
264
|
+
const loadFallbackComponents = () => {
|
|
265
|
+
logger.log(`📋 ${source.path}: Using static component list (design system detected)`);
|
|
273
266
|
const knownComponents = this.getKnownDesignSystemComponents(source.path);
|
|
274
267
|
if (knownComponents.length > 0) {
|
|
275
268
|
for (const comp of knownComponents) {
|
|
@@ -280,13 +273,28 @@ export class EnhancedComponentDiscovery {
|
|
|
280
273
|
category: comp.category || this.categorizeComponent(comp.name || '', comp.description || '')
|
|
281
274
|
});
|
|
282
275
|
}
|
|
276
|
+
logger.log(`✅ Loaded ${knownComponents.length} known components for ${source.path}`);
|
|
283
277
|
}
|
|
278
|
+
};
|
|
279
|
+
if (!fs.existsSync(packagePath)) {
|
|
280
|
+
console.warn(`Package ${source.path} not found in node_modules at ${packagePath}`);
|
|
281
|
+
// Use fallback component list when package is not installed (e.g., in production)
|
|
282
|
+
loadFallbackComponents();
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
logger.log(`🔍 Dynamically discovering components from ${source.path}...`);
|
|
286
|
+
// Use dynamic discovery to get real exports
|
|
287
|
+
const dynamicDiscovery = new DynamicPackageDiscovery(source.path, projectRoot);
|
|
288
|
+
const packageExports = await dynamicDiscovery.getRealPackageExports();
|
|
289
|
+
if (!packageExports) {
|
|
290
|
+
// Fallback to predefined components if dynamic discovery fails
|
|
291
|
+
loadFallbackComponents();
|
|
284
292
|
return;
|
|
285
293
|
}
|
|
286
294
|
// Process the real components found in the package
|
|
287
295
|
const realComponents = packageExports.components.filter(comp => comp.isComponent);
|
|
288
296
|
console.log(`✅ Found ${realComponents.length} real components in ${source.path} v${packageExports.packageVersion}`);
|
|
289
|
-
|
|
297
|
+
logger.log(`📦 Available components: ${realComponents.map(c => c.name).join(', ')}`);
|
|
290
298
|
for (const realComp of realComponents) {
|
|
291
299
|
// Get enhanced metadata from predefined list if available
|
|
292
300
|
const knownComponents = this.getKnownDesignSystemComponents(source.path);
|
|
@@ -309,11 +317,144 @@ export class EnhancedComponentDiscovery {
|
|
|
309
317
|
}
|
|
310
318
|
/**
|
|
311
319
|
* Get known components for popular design systems
|
|
312
|
-
* Returns
|
|
320
|
+
* Returns a fallback list when dynamic discovery fails
|
|
313
321
|
*/
|
|
314
322
|
getKnownDesignSystemComponents(packageName) {
|
|
315
|
-
//
|
|
316
|
-
|
|
323
|
+
// Chakra UI fallback components
|
|
324
|
+
if (packageName === '@chakra-ui/react') {
|
|
325
|
+
const basicComponents = [
|
|
326
|
+
// Layout
|
|
327
|
+
'Box', 'Flex', 'Grid', 'Stack', 'HStack', 'VStack', 'Container', 'Center', 'Square', 'Circle',
|
|
328
|
+
'SimpleGrid', 'Wrap', 'WrapItem', 'AspectRatio', 'Spacer', 'Divider',
|
|
329
|
+
// Typography
|
|
330
|
+
'Text', 'Heading', 'Badge', 'Code', 'Kbd', 'Mark',
|
|
331
|
+
// Forms
|
|
332
|
+
'Button', 'IconButton', 'Input', 'InputGroup', 'InputLeftElement', 'InputRightElement',
|
|
333
|
+
'Textarea', 'Select', 'Checkbox', 'Radio', 'RadioGroup', 'Switch', 'Slider',
|
|
334
|
+
'FormControl', 'FormLabel', 'FormHelperText', 'FormErrorMessage',
|
|
335
|
+
// Feedback
|
|
336
|
+
'Alert', 'AlertIcon', 'AlertTitle', 'AlertDescription', 'Progress', 'Skeleton', 'Spinner',
|
|
337
|
+
'Toast', 'useToast', 'CircularProgress', 'CircularProgressLabel',
|
|
338
|
+
// Data Display
|
|
339
|
+
'Avatar', 'AvatarGroup', 'Card', 'CardHeader', 'CardBody', 'CardFooter',
|
|
340
|
+
'Image', 'Badge', 'Stat', 'StatLabel', 'StatNumber', 'StatHelpText', 'StatArrow',
|
|
341
|
+
'Table', 'Thead', 'Tbody', 'Tfoot', 'Tr', 'Th', 'Td', 'TableCaption',
|
|
342
|
+
// Navigation
|
|
343
|
+
'Breadcrumb', 'BreadcrumbItem', 'BreadcrumbLink', 'Link', 'LinkBox', 'LinkOverlay',
|
|
344
|
+
'Tabs', 'TabList', 'TabPanels', 'Tab', 'TabPanel',
|
|
345
|
+
// Overlay
|
|
346
|
+
'Modal', 'ModalOverlay', 'ModalContent', 'ModalHeader', 'ModalFooter', 'ModalBody', 'ModalCloseButton',
|
|
347
|
+
'Drawer', 'DrawerBody', 'DrawerFooter', 'DrawerHeader', 'DrawerOverlay', 'DrawerContent', 'DrawerCloseButton',
|
|
348
|
+
'Menu', 'MenuButton', 'MenuList', 'MenuItem', 'MenuItemOption', 'MenuGroup', 'MenuOptionGroup', 'MenuDivider',
|
|
349
|
+
'Popover', 'PopoverTrigger', 'PopoverContent', 'PopoverHeader', 'PopoverBody', 'PopoverFooter', 'PopoverArrow', 'PopoverCloseButton',
|
|
350
|
+
'Tooltip', 'AlertDialog', 'AlertDialogBody', 'AlertDialogFooter', 'AlertDialogHeader', 'AlertDialogContent', 'AlertDialogOverlay',
|
|
351
|
+
// Disclosure
|
|
352
|
+
'Accordion', 'AccordionItem', 'AccordionButton', 'AccordionPanel', 'AccordionIcon',
|
|
353
|
+
'VisuallyHidden', 'Show', 'Hide', 'Collapse',
|
|
354
|
+
// Media
|
|
355
|
+
'Icon', 'CloseButton'
|
|
356
|
+
];
|
|
357
|
+
return basicComponents.map(name => ({
|
|
358
|
+
name,
|
|
359
|
+
description: `${name} component from Chakra UI`,
|
|
360
|
+
category: this.categorizeComponent(name, '')
|
|
361
|
+
}));
|
|
362
|
+
}
|
|
363
|
+
// Mantine fallback components
|
|
364
|
+
if (packageName === '@mantine/core') {
|
|
365
|
+
const mantineComponents = [
|
|
366
|
+
// Layout
|
|
367
|
+
'Container', 'SimpleGrid', 'Grid', 'Group', 'Stack', 'Flex', 'Center', 'Space', 'Divider',
|
|
368
|
+
'AspectRatio', 'Box', 'AppShell', 'MediaQuery', 'Paper',
|
|
369
|
+
// Typography
|
|
370
|
+
'Text', 'Title', 'Anchor', 'Blockquote', 'Code', 'Highlight', 'Mark', 'List',
|
|
371
|
+
// Buttons & Actions
|
|
372
|
+
'Button', 'ActionIcon', 'CopyButton', 'FileButton', 'UnstyledButton', 'CloseButton',
|
|
373
|
+
// Inputs
|
|
374
|
+
'TextInput', 'NumberInput', 'PasswordInput', 'Textarea', 'Select', 'MultiSelect',
|
|
375
|
+
'Autocomplete', 'Checkbox', 'Switch', 'Radio', 'Slider', 'RangeSlider', 'Rating',
|
|
376
|
+
'SegmentedControl', 'ColorInput', 'ColorPicker', 'FileInput', 'JsonInput', 'PinInput',
|
|
377
|
+
'Chip', 'TransferList', 'NativeSelect',
|
|
378
|
+
// Navigation
|
|
379
|
+
'Anchor', 'Breadcrumbs', 'Burger', 'NavLink', 'Pagination', 'Stepper', 'Tabs',
|
|
380
|
+
// Data Display
|
|
381
|
+
'Accordion', 'Avatar', 'Badge', 'Card', 'Image', 'BackgroundImage', 'Indicator',
|
|
382
|
+
'Kbd', 'Spoiler', 'Table', 'ThemeIcon', 'Timeline', 'ColorSwatch',
|
|
383
|
+
// Overlays
|
|
384
|
+
'Dialog', 'Drawer', 'Modal', 'LoadingOverlay', 'Popover', 'Tooltip', 'Menu',
|
|
385
|
+
'HoverCard', 'Affix', 'Overlay',
|
|
386
|
+
// Feedback
|
|
387
|
+
'Alert', 'Loader', 'Notification', 'Progress', 'RingProgress', 'Skeleton',
|
|
388
|
+
// Misc
|
|
389
|
+
'Portal', 'Transition', 'ScrollArea', 'FocusTrap', 'Input', 'InputWrapper',
|
|
390
|
+
// Dates (from @mantine/dates)
|
|
391
|
+
'Calendar', 'DateInput', 'DatePicker', 'DateTimePicker', 'MonthPicker', 'YearPicker'
|
|
392
|
+
];
|
|
393
|
+
return mantineComponents.map(name => ({
|
|
394
|
+
name,
|
|
395
|
+
description: `${name} component from Mantine`,
|
|
396
|
+
category: this.categorizeComponent(name, '')
|
|
397
|
+
}));
|
|
398
|
+
}
|
|
399
|
+
// Material UI fallback components
|
|
400
|
+
if (packageName === '@mui/material') {
|
|
401
|
+
const muiComponents = [
|
|
402
|
+
// Inputs
|
|
403
|
+
'Autocomplete', 'Button', 'ButtonGroup', 'Checkbox', 'Fab', 'Radio', 'RadioGroup',
|
|
404
|
+
'Rating', 'Select', 'Slider', 'Switch', 'TextField', 'ToggleButton', 'ToggleButtonGroup',
|
|
405
|
+
// Data Display
|
|
406
|
+
'Avatar', 'AvatarGroup', 'Badge', 'Chip', 'Divider', 'Icon', 'List', 'ListItem',
|
|
407
|
+
'ListItemText', 'ListItemIcon', 'ListItemButton', 'Table', 'TableBody', 'TableCell',
|
|
408
|
+
'TableContainer', 'TableHead', 'TableRow', 'Tooltip', 'Typography',
|
|
409
|
+
// Feedback
|
|
410
|
+
'Alert', 'AlertTitle', 'Backdrop', 'CircularProgress', 'Dialog', 'DialogActions',
|
|
411
|
+
'DialogContent', 'DialogContentText', 'DialogTitle', 'LinearProgress', 'Skeleton', 'Snackbar',
|
|
412
|
+
// Surfaces
|
|
413
|
+
'Accordion', 'AccordionActions', 'AccordionDetails', 'AccordionSummary', 'AppBar',
|
|
414
|
+
'Card', 'CardActions', 'CardContent', 'CardHeader', 'CardMedia', 'Paper', 'Toolbar',
|
|
415
|
+
// Navigation
|
|
416
|
+
'BottomNavigation', 'BottomNavigationAction', 'Breadcrumbs', 'Drawer', 'Link',
|
|
417
|
+
'Menu', 'MenuItem', 'MenuList', 'Pagination', 'SpeedDial', 'SpeedDialAction',
|
|
418
|
+
'SpeedDialIcon', 'Stepper', 'Step', 'StepLabel', 'Tabs', 'Tab',
|
|
419
|
+
// Layout
|
|
420
|
+
'Box', 'Container', 'Grid', 'Stack', 'ImageList', 'ImageListItem',
|
|
421
|
+
// Utils
|
|
422
|
+
'ClickAwayListener', 'Modal', 'NoSsr', 'Popover', 'Popper', 'Portal', 'Collapse', 'Fade', 'Grow', 'Slide', 'Zoom'
|
|
423
|
+
];
|
|
424
|
+
return muiComponents.map(name => ({
|
|
425
|
+
name,
|
|
426
|
+
description: `${name} component from Material UI`,
|
|
427
|
+
category: this.categorizeComponent(name, '')
|
|
428
|
+
}));
|
|
429
|
+
}
|
|
430
|
+
// Ant Design fallback components
|
|
431
|
+
if (packageName === 'antd') {
|
|
432
|
+
const antdComponents = [
|
|
433
|
+
// General
|
|
434
|
+
'Button', 'FloatButton', 'Icon', 'Typography', 'Text', 'Title', 'Paragraph', 'Link',
|
|
435
|
+
// Layout
|
|
436
|
+
'Divider', 'Flex', 'Grid', 'Row', 'Col', 'Layout', 'Header', 'Footer', 'Sider', 'Content', 'Space',
|
|
437
|
+
// Navigation
|
|
438
|
+
'Anchor', 'Breadcrumb', 'Dropdown', 'Menu', 'Pagination', 'Steps',
|
|
439
|
+
// Data Entry
|
|
440
|
+
'AutoComplete', 'Cascader', 'Checkbox', 'ColorPicker', 'DatePicker', 'Form',
|
|
441
|
+
'Input', 'InputNumber', 'Mentions', 'Radio', 'Rate', 'Select', 'Slider',
|
|
442
|
+
'Switch', 'TimePicker', 'Transfer', 'TreeSelect', 'Upload',
|
|
443
|
+
// Data Display
|
|
444
|
+
'Avatar', 'Badge', 'Calendar', 'Card', 'Carousel', 'Collapse', 'Descriptions',
|
|
445
|
+
'Empty', 'Image', 'List', 'Popover', 'QRCode', 'Segmented', 'Statistic',
|
|
446
|
+
'Table', 'Tabs', 'Tag', 'Timeline', 'Tooltip', 'Tour', 'Tree',
|
|
447
|
+
// Feedback
|
|
448
|
+
'Alert', 'Drawer', 'Message', 'Modal', 'Notification', 'Popconfirm', 'Progress',
|
|
449
|
+
'Result', 'Skeleton', 'Spin', 'Watermark'
|
|
450
|
+
];
|
|
451
|
+
return antdComponents.map(name => ({
|
|
452
|
+
name,
|
|
453
|
+
description: `${name} component from Ant Design`,
|
|
454
|
+
category: this.categorizeComponent(name, '')
|
|
455
|
+
}));
|
|
456
|
+
}
|
|
457
|
+
// Default: return empty array
|
|
317
458
|
return [];
|
|
318
459
|
}
|
|
319
460
|
/**
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Angular Framework Adapter
|
|
3
|
+
*
|
|
4
|
+
* Generates Storybook stories for Angular components.
|
|
5
|
+
* Supports standalone components and module-based components.
|
|
6
|
+
*/
|
|
7
|
+
import { FrameworkType, StoryFramework, StoryGenerationOptions } from './types.js';
|
|
8
|
+
import { BaseFrameworkAdapter } from './base-adapter.js';
|
|
9
|
+
import { StoryUIConfig } from '../../story-ui.config.js';
|
|
10
|
+
import { DiscoveredComponent } from '../componentDiscovery.js';
|
|
11
|
+
export declare class AngularAdapter extends BaseFrameworkAdapter {
|
|
12
|
+
readonly type: FrameworkType;
|
|
13
|
+
readonly name = "Angular";
|
|
14
|
+
readonly supportedStoryFrameworks: StoryFramework[];
|
|
15
|
+
readonly defaultExtension = ".stories.ts";
|
|
16
|
+
generateSystemPrompt(config: StoryUIConfig, options?: StoryGenerationOptions): string;
|
|
17
|
+
generateExamples(config: StoryUIConfig): string;
|
|
18
|
+
generateSampleStory(config: StoryUIConfig, components: DiscoveredComponent[]): string;
|
|
19
|
+
getStoryTemplate(options?: StoryGenerationOptions): string;
|
|
20
|
+
/**
|
|
21
|
+
* Convert PascalCase to kebab-case for selectors
|
|
22
|
+
*/
|
|
23
|
+
private toKebabCase;
|
|
24
|
+
/**
|
|
25
|
+
* Post-process Angular stories
|
|
26
|
+
*/
|
|
27
|
+
postProcess(storyContent: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* Validate Angular story
|
|
30
|
+
*/
|
|
31
|
+
validate(storyContent: string): {
|
|
32
|
+
valid: boolean;
|
|
33
|
+
errors: string[];
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Factory function
|
|
38
|
+
*/
|
|
39
|
+
export declare function createAngularAdapter(): AngularAdapter;
|
|
40
|
+
//# sourceMappingURL=angular-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"angular-adapter.d.ts","sourceRoot":"","sources":["../../../story-generator/framework-adapters/angular-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,aAAa,EACb,cAAc,EACd,sBAAsB,EACvB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,qBAAa,cAAe,SAAQ,oBAAoB;IACtD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAa;IACzC,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,wBAAwB,EAAE,cAAc,EAAE,CAGjD;IACF,QAAQ,CAAC,gBAAgB,iBAAiB;IAE1C,oBAAoB,CAClB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,MAAM;IA0HT,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;IA+J/C,mBAAmB,CACjB,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,mBAAmB,EAAE,GAChC,MAAM;IAqDT,gBAAgB,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,MAAM;IA4B1D;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;OAEG;IACH,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAkBzC;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;CA2BrE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAErD"}
|