@shohojdhara/atomix 0.3.13 → 0.3.15
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/CHANGELOG.md +39 -0
- package/README.md +2 -0
- package/build-tools/EXAMPLES.md +372 -0
- package/build-tools/README.md +242 -0
- package/build-tools/__tests__/error-handler.test.js +230 -0
- package/build-tools/__tests__/index.test.js +141 -0
- package/build-tools/__tests__/rollup-plugin.test.js +194 -0
- package/build-tools/__tests__/utils.test.js +161 -0
- package/build-tools/__tests__/vite-plugin.test.js +129 -0
- package/build-tools/__tests__/webpack-loader.test.js +190 -0
- package/build-tools/error-handler.js +308 -0
- package/build-tools/index.d.ts +43 -0
- package/build-tools/index.js +88 -0
- package/build-tools/package.json +67 -0
- package/build-tools/rollup-plugin.js +236 -0
- package/build-tools/types.d.ts +163 -0
- package/build-tools/utils.js +203 -0
- package/build-tools/vite-plugin.js +161 -0
- package/build-tools/webpack-loader.js +123 -0
- package/dist/atomix.css +298 -167
- package/dist/atomix.css.map +1 -1
- package/dist/atomix.min.css +3 -3
- package/dist/atomix.min.css.map +1 -1
- package/dist/build-tools/EXAMPLES.md +372 -0
- package/dist/build-tools/README.md +242 -0
- package/dist/build-tools/__tests__/error-handler.test.js +230 -0
- package/dist/build-tools/__tests__/index.test.js +141 -0
- package/dist/build-tools/__tests__/rollup-plugin.test.js +194 -0
- package/dist/build-tools/__tests__/utils.test.js +161 -0
- package/dist/build-tools/__tests__/vite-plugin.test.js +129 -0
- package/dist/build-tools/__tests__/webpack-loader.test.js +190 -0
- package/dist/build-tools/error-handler.js +308 -0
- package/dist/build-tools/index.d.ts +43 -0
- package/dist/build-tools/index.js +88 -0
- package/dist/build-tools/package.json +67 -0
- package/dist/build-tools/rollup-plugin.js +236 -0
- package/dist/build-tools/types.d.ts +163 -0
- package/dist/build-tools/utils.js +203 -0
- package/dist/build-tools/vite-plugin.js +161 -0
- package/dist/build-tools/webpack-loader.js +123 -0
- package/dist/charts.d.ts +2 -2
- package/dist/charts.js +87 -58
- package/dist/charts.js.map +1 -1
- package/dist/core.d.ts +42 -12
- package/dist/core.js +175 -135
- package/dist/core.js.map +1 -1
- package/dist/forms.d.ts +30 -16
- package/dist/forms.js +146 -131
- package/dist/forms.js.map +1 -1
- package/dist/heavy.d.ts +2 -2
- package/dist/heavy.js +151 -118
- package/dist/heavy.js.map +1 -1
- package/dist/index.d.ts +130 -106
- package/dist/index.esm.js +1083 -465
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1102 -483
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/theme.d.ts +27 -2
- package/dist/theme.js +721 -108
- package/dist/theme.js.map +1 -1
- package/package.json +23 -8
- package/scripts/atomix-cli.js +749 -1153
- package/scripts/cli/__tests__/README.md +81 -0
- package/scripts/cli/__tests__/basic.test.js +115 -0
- package/scripts/cli/__tests__/component-generator.test.js +332 -0
- package/scripts/cli/__tests__/integration.test.js +327 -0
- package/scripts/cli/__tests__/test-setup.js +133 -0
- package/scripts/cli/__tests__/token-manager.test.js +251 -0
- package/scripts/cli/__tests__/utils.test.js +78 -118
- package/scripts/cli/component-generator.js +564 -0
- package/scripts/cli/dependency-checker.js +355 -0
- package/scripts/cli/documentation-sync.js +542 -0
- package/scripts/cli/interactive-init.js +129 -292
- package/scripts/cli/mappings.js +211 -0
- package/scripts/cli/migration-tools.js +95 -288
- package/scripts/cli/template-manager.js +105 -0
- package/scripts/cli/templates/README.md +123 -0
- package/scripts/cli/templates/common-templates.js +636 -0
- package/scripts/cli/templates/composable-templates.js +171 -0
- package/scripts/cli/templates/config-templates.js +126 -0
- package/scripts/cli/templates/index.js +102 -0
- package/scripts/cli/templates/project-templates.js +342 -0
- package/scripts/cli/templates/react-templates.js +331 -0
- package/scripts/cli/templates/scss-templates.js +155 -0
- package/scripts/cli/templates/storybook-templates.js +236 -0
- package/scripts/cli/templates/testing-templates.js +224 -0
- package/scripts/cli/templates/testing-utils.js +278 -0
- package/scripts/cli/templates/token-templates.js +447 -0
- package/scripts/cli/templates/types-templates.js +147 -0
- package/scripts/cli/templates.js +35 -0
- package/scripts/cli/theme-bridge.js +28 -16
- package/scripts/cli/token-manager.js +432 -247
- package/scripts/cli/utils.js +37 -26
- package/src/components/Accordion/Accordion.stories.tsx +369 -870
- package/src/components/Accordion/Accordion.test.tsx +57 -0
- package/src/components/Accordion/Accordion.tsx +4 -0
- package/src/components/AtomixGlass/AtomixGlass.tsx +80 -39
- package/src/components/AtomixGlass/AtomixGlassContainer.tsx +103 -81
- package/src/components/AtomixGlass/__snapshots__/AtomixGlass.test.tsx.snap +8 -7
- package/src/components/AtomixGlass/glass-utils.ts +2 -2
- package/src/components/AtomixGlass/shader-utils.ts +5 -0
- package/src/components/AtomixGlass/stories/Customization.stories.tsx +131 -0
- package/src/components/AtomixGlass/stories/Examples.stories.tsx +2965 -2861
- package/src/components/AtomixGlass/stories/Modes.stories.tsx +1 -1
- package/src/components/AtomixGlass/stories/Overview.stories.tsx +348 -0
- package/src/components/AtomixGlass/stories/Performance.stories.tsx +103 -0
- package/src/components/AtomixGlass/stories/Playground.stories.tsx +73 -59
- package/src/components/AtomixGlass/stories/{ShaderVariants.stories.tsx → Shaders.stories.tsx} +1 -1
- package/src/components/AtomixGlass/stories/shared-components.tsx +90 -190
- package/src/components/Avatar/Avatar.stories.tsx +239 -27
- package/src/components/Badge/Badge.stories.tsx +132 -373
- package/src/components/Badge/Badge.test.tsx +51 -0
- package/src/components/Badge/Badge.tsx +20 -1
- package/src/components/Block/Block.stories.tsx +26 -17
- package/src/components/Breadcrumb/Breadcrumb.stories.tsx +141 -23
- package/src/components/Breadcrumb/Breadcrumb.tsx +2 -2
- package/src/components/Button/Button.stories.tsx +463 -1126
- package/src/components/Button/Button.test.tsx +107 -0
- package/src/components/Button/Button.tsx +50 -54
- package/src/components/Button/ButtonGroup.stories.tsx +373 -217
- package/src/components/Button/README.md +5 -0
- package/src/components/Callout/Callout.stories.tsx +299 -644
- package/src/components/Callout/Callout.test.tsx +10 -10
- package/src/components/Callout/Callout.tsx +7 -7
- package/src/components/Callout/README.md +9 -8
- package/src/components/Card/Card.stories.tsx +248 -68
- package/src/components/Card/Card.tsx +2 -2
- package/src/components/Chart/Chart.stories.tsx +156 -14
- package/src/components/Chart/Chart.tsx +1 -1
- package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +151 -69
- package/src/components/Countdown/Countdown.stories.tsx +115 -8
- package/src/components/DataTable/DataTable.stories.tsx +346 -146
- package/src/components/DataTable/DataTable.tsx +14 -12
- package/src/components/DatePicker/DatePicker.stories.tsx +325 -1066
- package/src/components/Dropdown/Dropdown.stories.tsx +157 -37
- package/src/components/EdgePanel/EdgePanel.stories.tsx +230 -21
- package/src/components/Footer/Footer.stories.tsx +392 -328
- package/src/components/Form/Checkbox.stories.tsx +143 -9
- package/src/components/Form/Checkbox.test.tsx +63 -0
- package/src/components/Form/Checkbox.tsx +90 -52
- package/src/components/Form/Form.stories.tsx +121 -22
- package/src/components/Form/FormGroup.stories.tsx +128 -5
- package/src/components/Form/Input.stories.tsx +28 -16
- package/src/components/Form/Input.test.tsx +59 -0
- package/src/components/Form/Input.tsx +97 -95
- package/src/components/Form/Radio.stories.tsx +232 -97
- package/src/components/Form/Radio.tsx +2 -2
- package/src/components/Form/Select.stories.tsx +144 -12
- package/src/components/Form/Select.tsx +2 -2
- package/src/components/Form/Textarea.stories.tsx +171 -13
- package/src/components/Form/Textarea.test.tsx +45 -0
- package/src/components/Form/Textarea.tsx +88 -86
- package/src/components/Hero/Hero.stories.tsx +333 -32
- package/src/components/List/List.stories.tsx +143 -5
- package/src/components/Modal/Modal.stories.tsx +185 -46
- package/src/components/Navigation/Navbar/Navbar.stories.tsx +5 -5
- package/src/components/Navigation/Navbar/Navbar.tsx +1 -1
- package/src/components/Navigation/README.md +1 -1
- package/src/components/Pagination/Pagination.stories.tsx +5 -2
- package/src/components/Pagination/Pagination.tsx +1 -1
- package/src/components/PhotoViewer/PhotoViewer.stories.tsx +10 -10
- package/src/components/Popover/Popover.stories.tsx +449 -99
- package/src/components/ProductReview/ProductReview.tsx +1 -1
- package/src/components/Progress/Progress.stories.tsx +167 -5
- package/src/components/Progress/Progress.tsx +46 -46
- package/src/components/Rating/Rating.stories.tsx +4 -4
- package/src/components/Rating/Rating.tsx +8 -8
- package/src/components/River/River.stories.tsx +1 -1
- package/src/components/SectionIntro/SectionIntro.stories.tsx +240 -48
- package/src/components/Slider/Slider.stories.tsx +63 -63
- package/src/components/Spinner/Spinner.stories.tsx +104 -10
- package/src/components/Spinner/Spinner.test.tsx +35 -0
- package/src/components/Spinner/Spinner.tsx +9 -2
- package/src/components/Steps/Steps.stories.tsx +172 -43
- package/src/components/Tabs/Tabs.stories.tsx +136 -10
- package/src/components/Testimonial/Testimonial.stories.tsx +121 -4
- package/src/components/Todo/Todo.stories.tsx +198 -9
- package/src/components/Toggle/Toggle.stories.tsx +153 -43
- package/src/components/Toggle/Toggle.test.tsx +91 -0
- package/src/components/Toggle/Toggle.tsx +44 -27
- package/src/components/Tooltip/Tooltip.stories.tsx +194 -104
- package/src/components/Tooltip/Tooltip.tsx +1 -1
- package/src/components/Upload/Upload.stories.tsx +113 -24
- package/src/layouts/Grid/Grid.stories.tsx +49 -49
- package/src/layouts/MasonryGrid/MasonryGrid.stories.tsx +2 -2
- package/src/lib/README.md +2 -2
- package/src/lib/__tests__/theme-tools.test.ts +193 -0
- package/src/lib/composables/index.ts +2 -2
- package/src/lib/composables/useAccordion.ts +12 -3
- package/src/lib/composables/useAtomixGlass.ts +28 -56
- package/src/lib/composables/useBreadcrumb.ts +2 -2
- package/src/lib/composables/useCallout.ts +7 -7
- package/src/lib/composables/useChartExport.ts +2 -7
- package/src/lib/composables/useDataTable.ts +46 -29
- package/src/lib/composables/useNavbar.ts +1 -1
- package/src/lib/constants/components.ts +10 -33
- package/src/lib/storybook/InteractiveDemo.tsx +113 -0
- package/src/lib/storybook/PreviewContainer.tsx +36 -0
- package/src/lib/storybook/VariantsGrid.tsx +21 -0
- package/src/lib/storybook/index.ts +3 -0
- package/src/lib/theme/core/createThemeObject.ts +9 -5
- package/src/lib/theme/devtools/CLI.ts +155 -0
- package/src/lib/theme/devtools/DesignTokensCustomizer.stories.tsx +213 -0
- package/src/lib/theme/devtools/DesignTokensCustomizer.tsx +566 -0
- package/src/lib/theme/devtools/LiveEditor.tsx +2 -1
- package/src/lib/theme/devtools/index.ts +3 -0
- package/src/lib/theme/errors/errors.ts +8 -0
- package/src/lib/theme/runtime/ThemeProvider.tsx +117 -57
- package/src/lib/theme/runtime/__tests__/ThemeProvider.integration.test.tsx +305 -0
- package/src/lib/theme/runtime/__tests__/ThemeProvider.test.tsx +588 -0
- package/src/lib/theme/utils/__tests__/themeValidation.test.ts +264 -0
- package/src/lib/theme/utils/index.ts +1 -0
- package/src/lib/theme/utils/themeValidation.ts +501 -0
- package/src/lib/theme-tools.ts +32 -3
- package/src/lib/types/components.ts +82 -27
- package/src/lib/utils/__tests__/csv.test.ts +45 -0
- package/src/lib/utils/csv.ts +17 -0
- package/src/lib/utils/dataTableExport.ts +1 -10
- package/src/lib/utils/themeNaming.ts +1 -1
- package/src/styles/01-settings/_index.scss +2 -1
- package/src/styles/01-settings/_settings.accordion.scss +28 -7
- package/src/styles/01-settings/_settings.colors.scss +11 -11
- package/src/styles/01-settings/_settings.typography.scss +5 -5
- package/src/styles/02-tools/_tools.utility-api.scss +14 -0
- package/src/styles/06-components/_components.accordion.scss +56 -14
- package/src/styles/06-components/_components.callout.scss +29 -33
- package/src/styles/06-components/_components.checkbox.scss +23 -17
- package/src/styles/06-components/_index.scss +1 -1
- package/src/styles/99-utilities/_index.scss +2 -0
- package/src/styles/99-utilities/_utilities.display.scss +14 -3
- package/src/styles/99-utilities/_utilities.flex.scss +10 -10
- package/src/styles/99-utilities/_utilities.scss +3 -1
- package/src/styles/99-utilities/_utilities.text-gradient.scss +45 -0
- package/src/styles/99-utilities/_utilities.text.scss +28 -8
- package/themes/dark-complementary/README.md +98 -0
- package/themes/dark-complementary/index.scss +158 -0
- package/themes/default-light/README.md +81 -0
- package/themes/default-light/index.scss +154 -0
- package/themes/high-contrast/README.md +105 -0
- package/themes/high-contrast/index.scss +172 -0
- package/themes/test-theme/README.md +38 -0
- package/themes/test-theme/index.scss +47 -0
- package/scripts/cli/__tests__/cli-commands.test.js +0 -204
- package/scripts/cli/__tests__/vitest.config.js +0 -26
- package/src/components/AtomixGlass/stories/AtomixGlass.stories.tsx +0 -1438
- package/src/lib/composables/useButton.ts +0 -93
- package/src/lib/composables/useCheckbox.ts +0 -70
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Template Manager CLI
|
|
5
|
+
* Helper utility for managing Atomix CLI templates
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import templates from './templates/index.js';
|
|
9
|
+
|
|
10
|
+
const commands = {
|
|
11
|
+
list: () => {
|
|
12
|
+
console.log('\n📦 Available Templates:\n');
|
|
13
|
+
|
|
14
|
+
console.log('React Component Templates:');
|
|
15
|
+
Object.keys(templates.componentTemplates.react).forEach(name => {
|
|
16
|
+
console.log(` • ${name}`);
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
console.log('\nComposable Templates:');
|
|
20
|
+
Object.keys(templates.componentTemplates.composable).forEach(name => {
|
|
21
|
+
console.log(` • ${name}`);
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
console.log('\nToken Generators:');
|
|
25
|
+
Object.keys(templates).filter(k => k.startsWith('generate')).forEach(name => {
|
|
26
|
+
console.log(` • ${name}`);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
console.log('\nProject Templates:');
|
|
30
|
+
Object.keys(templates.projectTemplates).forEach(name => {
|
|
31
|
+
console.log(` • ${name}`);
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
console.log('\nConfig Templates:');
|
|
35
|
+
Object.keys(templates.configTemplates).forEach(name => {
|
|
36
|
+
console.log(` • ${name}`);
|
|
37
|
+
});
|
|
38
|
+
console.log();
|
|
39
|
+
},
|
|
40
|
+
|
|
41
|
+
validate: () => {
|
|
42
|
+
console.log('\n🔍 Validating Templates...\n');
|
|
43
|
+
|
|
44
|
+
let errors = 0;
|
|
45
|
+
|
|
46
|
+
// Test React templates
|
|
47
|
+
try {
|
|
48
|
+
const testReact = templates.componentTemplates.react.simple('TestComponent');
|
|
49
|
+
if (!testReact.includes('export const TestComponent')) {
|
|
50
|
+
console.log('❌ React simple template failed');
|
|
51
|
+
errors++;
|
|
52
|
+
} else {
|
|
53
|
+
console.log('✅ React simple template passed');
|
|
54
|
+
}
|
|
55
|
+
} catch (err) {
|
|
56
|
+
console.log('❌ React simple template error:', err.message);
|
|
57
|
+
errors++;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Test token generators
|
|
61
|
+
try {
|
|
62
|
+
const colorTokens = templates.generateColorTokens();
|
|
63
|
+
if (!colorTokens.includes('$custom-primary-6')) {
|
|
64
|
+
console.log('❌ Color tokens template failed');
|
|
65
|
+
errors++;
|
|
66
|
+
} else {
|
|
67
|
+
console.log('✅ Color tokens template passed');
|
|
68
|
+
}
|
|
69
|
+
} catch (err) {
|
|
70
|
+
console.log('❌ Color tokens template error:', err.message);
|
|
71
|
+
errors++;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
console.log(`\n${errors === 0 ? '✅' : '❌'} Template validation complete (${errors} errors)\n`);
|
|
75
|
+
|
|
76
|
+
return errors === 0;
|
|
77
|
+
},
|
|
78
|
+
|
|
79
|
+
help: () => {
|
|
80
|
+
console.log(`
|
|
81
|
+
🛠️ Template Manager - Atomix CLI
|
|
82
|
+
|
|
83
|
+
Usage:
|
|
84
|
+
node template-manager.js <command>
|
|
85
|
+
|
|
86
|
+
Commands:
|
|
87
|
+
list List all available templates
|
|
88
|
+
validate Validate all templates for syntax errors
|
|
89
|
+
help Show this help message
|
|
90
|
+
|
|
91
|
+
Examples:
|
|
92
|
+
node template-manager.js list
|
|
93
|
+
node template-manager.js validate
|
|
94
|
+
`);
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
const command = process.argv[2];
|
|
99
|
+
|
|
100
|
+
if (commands[command]) {
|
|
101
|
+
commands[command]();
|
|
102
|
+
} else {
|
|
103
|
+
console.log('Unknown command. Use "help" for available commands.');
|
|
104
|
+
commands.help();
|
|
105
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Templates Directory
|
|
2
|
+
|
|
3
|
+
This directory contains modular templates for the Atomix CLI. The templates have been split into separate files for better maintainability and organization.
|
|
4
|
+
|
|
5
|
+
## File Structure
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
templates/
|
|
9
|
+
├── README.md # This documentation file
|
|
10
|
+
├── index.js # Main export file that aggregates all templates
|
|
11
|
+
├── react-templates.js # React component templates (simple, medium, complex)
|
|
12
|
+
├── storybook-templates.js # Storybook story templates
|
|
13
|
+
├── testing-templates.js # Vitest testing templates
|
|
14
|
+
├── scss-templates.js # SCSS styling templates
|
|
15
|
+
├── types-templates.js # TypeScript definition templates
|
|
16
|
+
├── composable-templates.js # Custom hook templates
|
|
17
|
+
├── token-templates.js # Design system token generation functions
|
|
18
|
+
├── project-templates.js # Project scaffolding templates
|
|
19
|
+
└── config-templates.js # Configuration file templates
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Template Categories
|
|
23
|
+
|
|
24
|
+
### React Templates (`react-templates.js`)
|
|
25
|
+
- **simple**: Basic presentational components with minimal state
|
|
26
|
+
- **medium**: Components with state management and interactions
|
|
27
|
+
- **complex**: Advanced components with validation and accessibility
|
|
28
|
+
- **component**: Default template (backward compatibility)
|
|
29
|
+
|
|
30
|
+
### Storybook Templates (`storybook-templates.js`)
|
|
31
|
+
- **story**: Basic Storybook story with essential controls
|
|
32
|
+
- **storyEnhanced**: Enhanced story with detailed documentation and examples
|
|
33
|
+
|
|
34
|
+
### Testing Templates (`testing-templates.js`)
|
|
35
|
+
- **test**: Vitest test template for React components
|
|
36
|
+
|
|
37
|
+
### SCSS Templates (`scss-templates.js`)
|
|
38
|
+
- **scss**: Main SCSS component styles with CSS custom properties
|
|
39
|
+
- **scssSettings**: SCSS settings file with component-specific variables
|
|
40
|
+
- **scssModule**: Empty (CSS modules are not used by default)
|
|
41
|
+
|
|
42
|
+
### TypeScript Templates (`types-templates.js`)
|
|
43
|
+
- **types**: TypeScript interface definitions for component props
|
|
44
|
+
- **constants**: Component constants and selectors
|
|
45
|
+
- **index**: Index file for component exports
|
|
46
|
+
|
|
47
|
+
### Composable Templates (`composable-templates.js`)
|
|
48
|
+
- **hook**: Custom React hook template with state management and accessibility
|
|
49
|
+
|
|
50
|
+
### Token Templates (`token-templates.js`)
|
|
51
|
+
Design system token generation functions:
|
|
52
|
+
- **generateColorTokens**: Color palette tokens
|
|
53
|
+
- **generateSpacingTokens**: Spacing scale tokens
|
|
54
|
+
- **generateTypographyTokens**: Typography scale tokens
|
|
55
|
+
- **generateShadowTokens**: Box shadow tokens
|
|
56
|
+
- **generateRadiusTokens**: Border radius tokens
|
|
57
|
+
- **generateAnimationTokens**: Animation and transition tokens
|
|
58
|
+
|
|
59
|
+
### Project Templates (`project-templates.js`)
|
|
60
|
+
- **react**: React + Vite project setup
|
|
61
|
+
- **nextjs**: Next.js project setup
|
|
62
|
+
- **vanilla**: Vanilla TypeScript project setup
|
|
63
|
+
|
|
64
|
+
### Config Templates (`config-templates.js`)
|
|
65
|
+
- **basic**: Simple JSON configuration
|
|
66
|
+
- **advanced**: Advanced JavaScript configuration with all options
|
|
67
|
+
|
|
68
|
+
## Usage
|
|
69
|
+
|
|
70
|
+
Templates are imported through the main `index.js` file, which maintains backward compatibility with the original `templates.js` structure.
|
|
71
|
+
|
|
72
|
+
```javascript
|
|
73
|
+
import templates from './templates/index.js';
|
|
74
|
+
|
|
75
|
+
// Access React templates
|
|
76
|
+
const simpleTemplate = templates.componentTemplates.react.simple('MyComponent');
|
|
77
|
+
|
|
78
|
+
// Access token generators
|
|
79
|
+
const colorTokens = templates.generateColorTokens();
|
|
80
|
+
|
|
81
|
+
// Access project templates
|
|
82
|
+
const reactProject = templates.projectTemplates.react;
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Migration from Single File
|
|
86
|
+
|
|
87
|
+
The original `templates.js` file has been split for better maintainability:
|
|
88
|
+
|
|
89
|
+
1. **Backup**: Original file saved as `templates-original-backup.js`
|
|
90
|
+
2. **New structure**: Templates organized by category in separate files
|
|
91
|
+
3. **Compatibility**: All existing imports continue to work through `index.js`
|
|
92
|
+
4. **Benefits**:
|
|
93
|
+
- Easier to locate and edit specific templates
|
|
94
|
+
- Reduced file size for better editor performance
|
|
95
|
+
- Clear separation of concerns
|
|
96
|
+
- Better testability of individual template modules
|
|
97
|
+
|
|
98
|
+
## Adding New Templates
|
|
99
|
+
|
|
100
|
+
1. Choose the appropriate category file or create a new one
|
|
101
|
+
2. Add your template function following the existing pattern
|
|
102
|
+
3. Export it in the category's export object
|
|
103
|
+
4. Update `index.js` if you created a new category
|
|
104
|
+
|
|
105
|
+
Example of adding a new React template:
|
|
106
|
+
|
|
107
|
+
```javascript
|
|
108
|
+
// In react-templates.js
|
|
109
|
+
export const customTemplate = (name) => `// Your custom template code`;
|
|
110
|
+
|
|
111
|
+
// Update the export object
|
|
112
|
+
export const reactTemplates = {
|
|
113
|
+
simple: simpleTemplate,
|
|
114
|
+
medium: mediumTemplate,
|
|
115
|
+
complex: complexTemplate,
|
|
116
|
+
component: defaultTemplate,
|
|
117
|
+
custom: customTemplate, // New template
|
|
118
|
+
};
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Backward Compatibility
|
|
122
|
+
|
|
123
|
+
The modular structure maintains 100% backward compatibility. All existing imports and usage patterns continue to work exactly as before. The main `templates.js` file now imports from the modular structure, ensuring no breaking changes.
|