this.gui 1.0.16 → 1.0.18
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 +191 -23
- package/dist/style.css +1 -1
- package/dist/this-gui.es.js +2879 -1945
- package/dist/this-gui.umd.js +24 -24
- package/package.json +3 -4
- package/src/App.jsx +19 -40
- package/src/CreatePage.jsx +61 -0
- package/src/MDXEditor.jsx +51 -0
- package/src/Page.jsx +28 -0
- package/src/PageDashboard.jsx +56 -0
- package/src/SiteBuilder.jsx +95 -26
- package/src/example.json +43 -0
- package/src/scripts/ComponentRegistry.js +70 -0
- package/src/scripts/postinstall.js +60 -10
- package/src/scripts/renderComponents.js +11 -0
- package/src/stories/Atoms/Badge/Badge.css +1 -0
- package/src/stories/Atoms/Badge/Badge.stories.jsx +1 -0
- package/src/stories/Atoms/Button/Button.css +259 -58
- package/src/stories/Atoms/Button/Button.jsx +8 -11
- package/src/stories/Atoms/Button/Button.stories.jsx +65 -40
- package/src/stories/Atoms/Container/Container.css +420 -39
- package/src/stories/Atoms/Container/Container.jsx +98 -36
- package/src/stories/Atoms/Container/Container.stories.jsx +120 -79
- package/src/stories/Atoms/Grid/Grid.css +160 -0
- package/src/stories/Atoms/Grid/Grid.jsx +43 -0
- package/src/stories/Atoms/Grid/Grid.stories.jsx +84 -0
- package/src/stories/Atoms/Link/Link.css +6 -26
- package/src/stories/Atoms/Link/Link.jsx +11 -21
- package/src/stories/Atoms/ProgressBar/ProgressBar.css +1 -1
- package/src/stories/Atoms/ProgressBar/ProgressBar.jsx +1 -1
- package/src/stories/Atoms/ProgressBar/ProgressBar.stories.jsx +1 -1
- package/src/stories/Atoms/Section/Section.css +268 -0
- package/src/stories/Atoms/Section/Section.jsx +63 -0
- package/src/stories/Atoms/Section/Section.stories.jsx +46 -0
- package/src/stories/Atoms/TextArea/TextArea.css +1 -0
- package/src/stories/Atoms/TextArea/TextArea.jsx +1 -0
- package/src/stories/Atoms/TextArea/TextArea.stories.jsx +1 -0
- package/src/stories/Atoms/TextInput/TextInput.css +1 -0
- package/src/stories/Atoms/TextInput/TextInput.jsx +1 -0
- package/src/stories/Atoms/TextInput/TextInput.stories.jsx +1 -0
- package/src/stories/Atoms/Toggle/Toggle.css +1 -0
- package/src/stories/Atoms/Toggle/Toggle.jsx +1 -0
- package/src/stories/Atoms/Toggle/Toggle.stories.jsx +1 -0
- package/src/stories/Atoms/Tooltip/Tooltip.css +1 -0
- package/src/stories/Atoms/Tooltip/Tooltip.jsx +1 -0
- package/src/stories/Atoms/Tooltip/Tooltip.stories.jsx +1 -0
- package/src/stories/Atoms/Video/Video.css +1 -0
- package/src/stories/Atoms/Video/Video.jsx +1 -0
- package/src/stories/Atoms/Video/Video.stories.jsx +1 -0
- package/src/stories/Atoms/index.js +4 -0
- package/src/stories/Atoms/meta_Atoms.js +4 -1
- package/src/stories/Layouts/Accordion/Accordion.css +285 -8
- package/src/stories/Layouts/Accordion/Accordion.jsx +62 -19
- package/src/stories/Layouts/Accordion/Accordion.stories.jsx +30 -19
- package/src/stories/Layouts/index.js +0 -6
- package/src/stories/Layouts/meta_Layouts.js +2 -5
- package/src/stories/Molecules/Accordion/Accordion.css +1 -1
- package/src/stories/Molecules/Accordion/Accordion.jsx +1 -1
- package/src/stories/Molecules/Accordion/Accordion.stories.jsx +1 -1
- package/src/stories/Molecules/AudioPlayer/AudioPlayer.css +95 -2
- package/src/stories/Molecules/AudioPlayer/AudioPlayer.jsx +232 -13
- package/src/stories/Molecules/AudioPlayer/AudioPlayer.stories.jsx +46 -11
- package/src/stories/Molecules/AvatarWithName/AvatarWithName.css +128 -2
- package/src/stories/Molecules/AvatarWithName/AvatarWithName.jsx +69 -14
- package/src/stories/Molecules/AvatarWithName/AvatarWithName.stories.jsx +12 -12
- package/src/stories/Molecules/Breadcrumbs/Breadcrumbs.css +145 -2
- package/src/stories/Molecules/Breadcrumbs/Breadcrumbs.jsx +39 -13
- package/src/stories/Molecules/Breadcrumbs/Breadcrumbs.stories.jsx +27 -11
- package/src/stories/Molecules/ButtonGroup/ButtonGroup.css +463 -2
- package/src/stories/Molecules/ButtonGroup/ButtonGroup.jsx +34 -12
- package/src/stories/Molecules/ButtonGroup/ButtonGroup.stories.jsx +36 -12
- package/src/stories/Molecules/Card/Card.css +39 -2
- package/src/stories/Molecules/Card/Card.jsx +80 -13
- package/src/stories/Molecules/Card/Card.stories.jsx +27 -13
- package/src/stories/Molecules/ComparisonTable/ComparisonTable.css +33 -2
- package/src/stories/Molecules/ComparisonTable/ComparisonTable.jsx +91 -12
- package/src/stories/Molecules/ComparisonTable/ComparisonTable.stories.jsx +73 -12
- package/src/stories/Molecules/Dropdown/Dropdown.css +192 -0
- package/src/stories/Molecules/Dropdown/Dropdown.jsx +96 -0
- package/src/stories/Molecules/Dropdown/Dropdown.stories.jsx +45 -0
- package/src/stories/Molecules/index.js +2 -1
- package/src/stories/Molecules/meta_Molecules.js +6 -3
- package/src/themes/styles/neurons/light.css +94 -204
- package/dist/Styles.md +0 -446
- package/dist/context.md +0 -942
- package/src/Theme.jsx +0 -28
- package/src/components/CodeBlock.jsx +0 -22
- package/src/components/ComponentFactory.jsx +0 -36
- package/src/components/ComponentRegistry.js +0 -21
- package/src/scripts/generateComponents.js +0 -166
- package/src/scripts/verifyLayouts.js +0 -175
- package/src/scripts/verifyMolecules.js +0 -158
- package/src/scripts/verifyTemplates.js +0 -154
- package/src/scripts/verify_and_install_atoms.js +0 -211
- package/src/stories/Layouts/DropdownMenu/DropdownMenu.css +0 -16
- package/src/stories/Layouts/DropdownMenu/DropdownMenu.jsx +0 -31
- package/src/stories/Layouts/DropdownMenu/DropdownMenu.stories.jsx +0 -28
- package/src/stories/Layouts/Grid/Grid.css +0 -4
- package/src/stories/Layouts/Grid/Grid.jsx +0 -13
- package/src/stories/Layouts/Grid/Grid.stories.jsx +0 -28
- package/src/stories/Layouts/Section/Section.css +0 -16
- package/src/stories/Layouts/Section/Section.jsx +0 -31
- package/src/stories/Layouts/Section/Section.stories.jsx +0 -28
- /package/src/themes/{README.md → README_Styles.md} +0 -0
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import { fileURLToPath } from 'url';
|
|
4
|
-
import Templates from '../stories/Templates/meta_Templates.js'; // Import the Templates constant
|
|
5
|
-
|
|
6
|
-
// Define __dirname for ES modules
|
|
7
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
8
|
-
const __dirname = path.dirname(__filename);
|
|
9
|
-
|
|
10
|
-
// Helper function to check if a file exists relative to the script's directory
|
|
11
|
-
const fileExists = (relativeFilePath) => {
|
|
12
|
-
const fullPath = path.resolve(__dirname, relativeFilePath);
|
|
13
|
-
return fs.existsSync(fullPath);
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
// Default CSS template for Templates
|
|
17
|
-
const createDefaultCSSTemplate = (componentName) => `
|
|
18
|
-
.${componentName.toLowerCase()} {
|
|
19
|
-
padding: 16px;
|
|
20
|
-
border-radius: 8px;
|
|
21
|
-
background-color: #f0f0f0;
|
|
22
|
-
border: 1px solid #ddd;
|
|
23
|
-
}
|
|
24
|
-
`;
|
|
25
|
-
|
|
26
|
-
// Default JSX template for Templates
|
|
27
|
-
const createDefaultJSX = (componentName) => `
|
|
28
|
-
import React from 'react';
|
|
29
|
-
import PropTypes from 'prop-types';
|
|
30
|
-
import './${componentName}.css';
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* ${componentName} template component
|
|
34
|
-
*/
|
|
35
|
-
export const ${componentName} = ({ children, ...props }) => {
|
|
36
|
-
return (
|
|
37
|
-
<div className="${componentName.toLowerCase()}" {...props}>
|
|
38
|
-
{children}
|
|
39
|
-
</div>
|
|
40
|
-
);
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
${componentName}.propTypes = {
|
|
44
|
-
/**
|
|
45
|
-
* Children components to be rendered inside the template
|
|
46
|
-
*/
|
|
47
|
-
children: PropTypes.node.isRequired,
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
export default ${componentName};
|
|
51
|
-
`;
|
|
52
|
-
|
|
53
|
-
// Default Storybook template for Templates
|
|
54
|
-
const createDefaultStorybookTemplate = (componentName, category) => `
|
|
55
|
-
import { ${componentName} } from './${componentName}';
|
|
56
|
-
|
|
57
|
-
// Storybook configuration for ${componentName} template
|
|
58
|
-
export default {
|
|
59
|
-
title: 'Templates/${category}/${componentName}',
|
|
60
|
-
component: ${componentName},
|
|
61
|
-
parameters: {
|
|
62
|
-
layout: 'fullscreen',
|
|
63
|
-
},
|
|
64
|
-
argTypes: {
|
|
65
|
-
children: { control: 'text' },
|
|
66
|
-
},
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
export const Default = {
|
|
70
|
-
args: {
|
|
71
|
-
children: 'This is a default ${componentName} template.',
|
|
72
|
-
},
|
|
73
|
-
};
|
|
74
|
-
`;
|
|
75
|
-
|
|
76
|
-
// Helper function to write files and create directories if needed
|
|
77
|
-
const writeFile = (filePath, content) => {
|
|
78
|
-
const fullPath = path.resolve(__dirname, filePath);
|
|
79
|
-
fs.mkdirSync(path.dirname(fullPath), { recursive: true });
|
|
80
|
-
fs.writeFileSync(fullPath, content, 'utf8');
|
|
81
|
-
console.log(`✅ Created: ${filePath}`);
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
// Function to verify each path and create missing files with default content
|
|
85
|
-
async function verifyPaths(component, paths, category) {
|
|
86
|
-
const missingFiles = []; // Initialize missingFiles array
|
|
87
|
-
|
|
88
|
-
for (const [key, filePath] of Object.entries(paths)) {
|
|
89
|
-
const componentName = component.name.trim();
|
|
90
|
-
const basePath = path.join('..', 'stories', 'Templates', category, componentName);
|
|
91
|
-
|
|
92
|
-
const adjustedPath = path.join(basePath, path.basename(filePath));
|
|
93
|
-
|
|
94
|
-
if (!fileExists(adjustedPath)) {
|
|
95
|
-
console.log(`❌ Missing: ${adjustedPath}`);
|
|
96
|
-
missingFiles.push(adjustedPath);
|
|
97
|
-
|
|
98
|
-
// Automatically create the missing file with default content
|
|
99
|
-
if (key === 'css') {
|
|
100
|
-
writeFile(adjustedPath, createDefaultCSSTemplate(componentName));
|
|
101
|
-
} else if (key === 'jsx') {
|
|
102
|
-
writeFile(adjustedPath, createDefaultJSX(componentName));
|
|
103
|
-
} else if (key === 'stories') {
|
|
104
|
-
writeFile(adjustedPath, createDefaultStorybookTemplate(componentName, category));
|
|
105
|
-
}
|
|
106
|
-
} else {
|
|
107
|
-
console.log(`✅ Exists: ${adjustedPath}`);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
return missingFiles; // Return missingFiles array
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
// Main function to handle installation and verification of Templates
|
|
115
|
-
async function installAndVerifyTemplates(Templates) {
|
|
116
|
-
const missingFilesReport = [];
|
|
117
|
-
|
|
118
|
-
// Loop through each category (LandingPages, DashboardLayouts, etc.)
|
|
119
|
-
for (const category of Object.keys(Templates.Templates)) {
|
|
120
|
-
console.log(`\nVerifying category: ${category}`);
|
|
121
|
-
|
|
122
|
-
// Loop through each component in the category
|
|
123
|
-
for (const component of Templates.Templates[category]) {
|
|
124
|
-
console.log(`\nVerifying component: ${component.name.trim()}`);
|
|
125
|
-
|
|
126
|
-
// Verify each path for the component and get missing files
|
|
127
|
-
const missingFiles = await verifyPaths(component, component.paths, category);
|
|
128
|
-
|
|
129
|
-
// If files are missing, report them
|
|
130
|
-
if (missingFiles.length > 0) {
|
|
131
|
-
missingFilesReport.push({
|
|
132
|
-
component: component.name.trim(),
|
|
133
|
-
missingFiles,
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
// If there are missing files, summarize the report
|
|
140
|
-
if (missingFilesReport.length > 0) {
|
|
141
|
-
console.log("\nInstallation or verification required for the following components:");
|
|
142
|
-
missingFilesReport.forEach((report) => {
|
|
143
|
-
console.log(`\nComponent: ${report.component}`);
|
|
144
|
-
report.missingFiles.forEach((file) => {
|
|
145
|
-
console.log(` ❌ Missing file: ${file}`);
|
|
146
|
-
});
|
|
147
|
-
});
|
|
148
|
-
} else {
|
|
149
|
-
console.log("\nAll components verified successfully! ✅");
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
// Run the verification script
|
|
154
|
-
installAndVerifyTemplates(Templates);
|
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import { fileURLToPath } from 'url';
|
|
4
|
-
import Atomic from '../stories/_Atomic/Atomic.js'; // Import the Atomic constant
|
|
5
|
-
|
|
6
|
-
// Define __dirname for ES modules
|
|
7
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
8
|
-
const __dirname = path.dirname(__filename);
|
|
9
|
-
|
|
10
|
-
// Helper function to check if a file exists relative to the script's directory
|
|
11
|
-
const fileExists = (relativeFilePath) => {
|
|
12
|
-
const fullPath = path.resolve(__dirname, relativeFilePath);
|
|
13
|
-
return fs.existsSync(fullPath);
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
// Default CSS template
|
|
17
|
-
const createDefaultCSSTemplate = (componentName) => `
|
|
18
|
-
.${componentName.toLowerCase()} {
|
|
19
|
-
padding: 16px;
|
|
20
|
-
border-radius: 8px;
|
|
21
|
-
background-color: #f0f0f0;
|
|
22
|
-
border: 1px solid #ddd;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
.${componentName.toLowerCase()}--primary {
|
|
26
|
-
background-color: #e3f2fd;
|
|
27
|
-
border-color: #1e88e5;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
.${componentName.toLowerCase()}--secondary {
|
|
31
|
-
background-color: #fff;
|
|
32
|
-
border-color: #ccc;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
.${componentName.toLowerCase()}--small {
|
|
36
|
-
padding: 8px;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.${componentName.toLowerCase()}--medium {
|
|
40
|
-
padding: 16px;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
.${componentName.toLowerCase()}--large {
|
|
44
|
-
padding: 32px;
|
|
45
|
-
}
|
|
46
|
-
`;
|
|
47
|
-
|
|
48
|
-
// Default JSX template
|
|
49
|
-
const createDefaultJSX = (componentName) => `
|
|
50
|
-
import React from 'react';
|
|
51
|
-
import PropTypes from 'prop-types';
|
|
52
|
-
import './${componentName}.css';
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* ${componentName} component for user interaction
|
|
56
|
-
*/
|
|
57
|
-
export const ${componentName} = ({ primary, size, children, ...props }) => {
|
|
58
|
-
const mode = primary ? '${componentName.toLowerCase()}--primary' : '${componentName.toLowerCase()}--secondary';
|
|
59
|
-
return (
|
|
60
|
-
<div
|
|
61
|
-
className={['${componentName.toLowerCase()}', \`${componentName.toLowerCase()}--\${size}\`, mode].join(' ')}
|
|
62
|
-
{...props}
|
|
63
|
-
>
|
|
64
|
-
{children}
|
|
65
|
-
</div>
|
|
66
|
-
);
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
${componentName}.propTypes = {
|
|
70
|
-
/**
|
|
71
|
-
* Is this the primary style for the component?
|
|
72
|
-
*/
|
|
73
|
-
primary: PropTypes.bool,
|
|
74
|
-
/**
|
|
75
|
-
* Size of the component
|
|
76
|
-
*/
|
|
77
|
-
size: PropTypes.oneOf(['small', 'medium', 'large']),
|
|
78
|
-
/**
|
|
79
|
-
* Content to be rendered inside the component
|
|
80
|
-
*/
|
|
81
|
-
children: PropTypes.node.isRequired,
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
${componentName}.defaultProps = {
|
|
85
|
-
primary: false,
|
|
86
|
-
size: 'medium',
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
export default ${componentName};
|
|
90
|
-
`;
|
|
91
|
-
// Default Storybook template
|
|
92
|
-
const createDefaultStorybookTemplate = (componentName) => `
|
|
93
|
-
import { ${componentName} } from './${componentName}';
|
|
94
|
-
|
|
95
|
-
// Storybook configuration for ${componentName} component
|
|
96
|
-
export default {
|
|
97
|
-
title: '_Atomic/${componentName}',
|
|
98
|
-
component: ${componentName},
|
|
99
|
-
parameters: {
|
|
100
|
-
layout: 'centered',
|
|
101
|
-
},
|
|
102
|
-
argTypes: {
|
|
103
|
-
children: { control: 'text' },
|
|
104
|
-
},
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
export const Primary = {
|
|
108
|
-
args: {
|
|
109
|
-
primary: true,
|
|
110
|
-
children: 'This is a primary ${componentName}',
|
|
111
|
-
},
|
|
112
|
-
};
|
|
113
|
-
|
|
114
|
-
export const Secondary = {
|
|
115
|
-
args: {
|
|
116
|
-
children: 'This is a secondary ${componentName}',
|
|
117
|
-
},
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
export const Large = {
|
|
121
|
-
args: {
|
|
122
|
-
size: 'large',
|
|
123
|
-
children: 'This is a large ${componentName}',
|
|
124
|
-
},
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
export const Small = {
|
|
128
|
-
args: {
|
|
129
|
-
size: 'small',
|
|
130
|
-
children: 'This is a small ${componentName}',
|
|
131
|
-
},
|
|
132
|
-
};
|
|
133
|
-
`;
|
|
134
|
-
|
|
135
|
-
// Helper function to write files
|
|
136
|
-
const writeFile = (filePath, content) => {
|
|
137
|
-
const fullPath = path.resolve(__dirname, filePath);
|
|
138
|
-
fs.mkdirSync(path.dirname(fullPath), { recursive: true });
|
|
139
|
-
fs.writeFileSync(fullPath, content, 'utf8');
|
|
140
|
-
console.log(`✅ Created: ${filePath}`);
|
|
141
|
-
};
|
|
142
|
-
|
|
143
|
-
// Function to verify each path and create missing files with default content
|
|
144
|
-
async function verifyPaths(component, paths) {
|
|
145
|
-
const missingFiles = []; // Initialize missingFiles array
|
|
146
|
-
|
|
147
|
-
for (const [key, filePath] of Object.entries(paths)) {
|
|
148
|
-
const categoryDir = component.name.trim().replace(' ', '');
|
|
149
|
-
const adjustedPath = path.join('..', 'stories', '_Atomic', categoryDir, filePath);
|
|
150
|
-
|
|
151
|
-
if (!fileExists(adjustedPath)) {
|
|
152
|
-
console.log(`❌ Missing: ${adjustedPath}`);
|
|
153
|
-
missingFiles.push(adjustedPath);
|
|
154
|
-
|
|
155
|
-
// Automatically create the missing file with default content
|
|
156
|
-
if (key === 'css') {
|
|
157
|
-
writeFile(adjustedPath, createDefaultCSSTemplate(component.name.trim()));
|
|
158
|
-
} else if (key === 'jsx') {
|
|
159
|
-
writeFile(adjustedPath, createDefaultJSX(component.name.trim()));
|
|
160
|
-
} else if (key === 'stories') {
|
|
161
|
-
writeFile(adjustedPath, createDefaultStorybookTemplate(component.name.trim()));
|
|
162
|
-
}
|
|
163
|
-
} else {
|
|
164
|
-
console.log(`✅ Exists: ${adjustedPath}`);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
return missingFiles; // Return missingFiles array
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
// Main function to handle installation and verification
|
|
172
|
-
async function installAndVerifyAtomic(Atomic) {
|
|
173
|
-
const missingFilesReport = [];
|
|
174
|
-
|
|
175
|
-
// Loop through each category (Text, Interactive, etc.)
|
|
176
|
-
for (const category of Object.keys(Atomic.Atomic)) {
|
|
177
|
-
console.log(`\nVerifying category: ${category}`);
|
|
178
|
-
|
|
179
|
-
// Loop through each component in the category
|
|
180
|
-
for (const component of Atomic.Atomic[category]) {
|
|
181
|
-
console.log(`\nVerifying component: ${component.name}`);
|
|
182
|
-
|
|
183
|
-
// Verify each path for the component and get missing files
|
|
184
|
-
const missingFiles = await verifyPaths(component, component.paths);
|
|
185
|
-
|
|
186
|
-
// If files are missing, report them
|
|
187
|
-
if (missingFiles.length > 0) {
|
|
188
|
-
missingFilesReport.push({
|
|
189
|
-
component: component.name,
|
|
190
|
-
missingFiles,
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
// If there are missing files, summarize the report
|
|
197
|
-
if (missingFilesReport.length > 0) {
|
|
198
|
-
console.log("\nInstallation or verification required for the following components:");
|
|
199
|
-
missingFilesReport.forEach((report) => {
|
|
200
|
-
console.log(`\nComponent: ${report.component}`);
|
|
201
|
-
report.missingFiles.forEach((file) => {
|
|
202
|
-
console.log(` ❌ Missing file: ${file}`);
|
|
203
|
-
});
|
|
204
|
-
});
|
|
205
|
-
} else {
|
|
206
|
-
console.log("\nAll components verified successfully! ✅");
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
// Run the verification script
|
|
211
|
-
installAndVerifyAtomic(Atomic);
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
|
-
import './DropdownMenu.css';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* DropdownMenu layout component
|
|
8
|
-
*/
|
|
9
|
-
export const DropdownMenu = ({ children, primary, ...props }) => {
|
|
10
|
-
const mode = primary ? 'dropdownmenu--primary' : 'dropdownmenu--secondary';
|
|
11
|
-
return (
|
|
12
|
-
<div className={['dropdownmenu', mode].join(' ')} {...props}>
|
|
13
|
-
{children}
|
|
14
|
-
</div>
|
|
15
|
-
);
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
DropdownMenu.propTypes = {
|
|
19
|
-
/**
|
|
20
|
-
* Primary style for the layout
|
|
21
|
-
*/
|
|
22
|
-
primary: PropTypes.bool,
|
|
23
|
-
/**
|
|
24
|
-
* Children components to be rendered inside the layout
|
|
25
|
-
*/
|
|
26
|
-
children: PropTypes.node.isRequired,
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
DropdownMenu.defaultProps = {
|
|
30
|
-
primary: false,
|
|
31
|
-
};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import { DropdownMenu } from './DropdownMenu';
|
|
3
|
-
|
|
4
|
-
// Storybook configuration for DropdownMenu component
|
|
5
|
-
export default {
|
|
6
|
-
title: 'Layouts/NavigationAndMenus/DropdownMenu',
|
|
7
|
-
component: DropdownMenu,
|
|
8
|
-
parameters: {
|
|
9
|
-
layout: 'fullscreen',
|
|
10
|
-
},
|
|
11
|
-
argTypes: {
|
|
12
|
-
children: { control: 'text' },
|
|
13
|
-
},
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export const Primary = {
|
|
17
|
-
args: {
|
|
18
|
-
primary: true,
|
|
19
|
-
children: 'This is a primary DropdownMenu layout.',
|
|
20
|
-
},
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export const Secondary = {
|
|
24
|
-
args: {
|
|
25
|
-
primary: false,
|
|
26
|
-
children: 'This is a secondary DropdownMenu layout.',
|
|
27
|
-
},
|
|
28
|
-
};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// src/stories/Layout/Grid/Grid.jsx
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import './Grid.css'; // Import the component-specific styles
|
|
4
|
-
|
|
5
|
-
export const Grid = ({ children, columns = 3, gap = '10px' }) => {
|
|
6
|
-
const gridStyle = {
|
|
7
|
-
display: 'grid',
|
|
8
|
-
gridTemplateColumns: `repeat(${columns}, 1fr)`,
|
|
9
|
-
gap,
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
return <div style={gridStyle} className="grid-container">{children}</div>;
|
|
13
|
-
};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import { Grid } from './Grid';
|
|
3
|
-
|
|
4
|
-
// Storybook configuration for Grid component
|
|
5
|
-
export default {
|
|
6
|
-
title: 'Layouts/Grid/Grid',
|
|
7
|
-
component: Grid,
|
|
8
|
-
parameters: {
|
|
9
|
-
layout: 'fullscreen',
|
|
10
|
-
},
|
|
11
|
-
argTypes: {
|
|
12
|
-
children: { control: 'text' },
|
|
13
|
-
},
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export const Primary = {
|
|
17
|
-
args: {
|
|
18
|
-
primary: true,
|
|
19
|
-
children: 'This is a primary Grid layout.',
|
|
20
|
-
},
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export const Secondary = {
|
|
24
|
-
args: {
|
|
25
|
-
primary: false,
|
|
26
|
-
children: 'This is a secondary Grid layout.',
|
|
27
|
-
},
|
|
28
|
-
};
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
|
-
import './Section.css';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Section layout component
|
|
8
|
-
*/
|
|
9
|
-
export const Section = ({ children, primary, ...props }) => {
|
|
10
|
-
const mode = primary ? 'section--primary' : 'section--secondary';
|
|
11
|
-
return (
|
|
12
|
-
<div className={['section', mode].join(' ')} {...props}>
|
|
13
|
-
{children}
|
|
14
|
-
</div>
|
|
15
|
-
);
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
Section.propTypes = {
|
|
19
|
-
/**
|
|
20
|
-
* Primary style for the layout
|
|
21
|
-
*/
|
|
22
|
-
primary: PropTypes.bool,
|
|
23
|
-
/**
|
|
24
|
-
* Children components to be rendered inside the layout
|
|
25
|
-
*/
|
|
26
|
-
children: PropTypes.node.isRequired,
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
Section.defaultProps = {
|
|
30
|
-
primary: false,
|
|
31
|
-
};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import { Section } from './Section';
|
|
3
|
-
|
|
4
|
-
// Storybook configuration for Section component
|
|
5
|
-
export default {
|
|
6
|
-
title: 'Layouts/Section/Section',
|
|
7
|
-
component: Section,
|
|
8
|
-
parameters: {
|
|
9
|
-
layout: 'fullscreen',
|
|
10
|
-
},
|
|
11
|
-
argTypes: {
|
|
12
|
-
children: { control: 'text' },
|
|
13
|
-
},
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export const Primary = {
|
|
17
|
-
args: {
|
|
18
|
-
primary: true,
|
|
19
|
-
children: 'This is a primary Section layout.',
|
|
20
|
-
},
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export const Secondary = {
|
|
24
|
-
args: {
|
|
25
|
-
primary: false,
|
|
26
|
-
children: 'This is a secondary Section layout.',
|
|
27
|
-
},
|
|
28
|
-
};
|
|
File without changes
|