this.gui 1.0.14 → 1.0.16
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 +0 -39
- package/dist/style.css +1 -1
- package/dist/this-gui.es.js +3751 -1882
- package/dist/this-gui.umd.js +34 -22
- package/package.json +14 -12
- package/src/App.jsx +50 -21
- package/src/SiteBuilder.jsx +39 -0
- package/src/index.mdx +10 -0
- package/src/main.jsx +11 -14
- package/src/scripts/postinstall.js +28 -31
- package/src/scripts/verifyLayouts.js +175 -0
- package/src/scripts/verifyTemplates.js +154 -0
- package/src/stories/Atoms/Alert/Alert.css +196 -14
- package/src/stories/Atoms/Alert/Alert.jsx +43 -28
- package/src/stories/Atoms/Alert/Alert.stories.jsx +154 -28
- package/src/stories/Atoms/Audio/Audio.css +246 -16
- package/src/stories/Atoms/Audio/Audio.jsx +204 -29
- package/src/stories/Atoms/Audio/Audio.stories.jsx +178 -28
- package/src/stories/Atoms/Badge/Badge.css +234 -15
- package/src/stories/Atoms/Badge/Badge.jsx +44 -31
- package/src/stories/Atoms/Badge/Badge.stories.jsx +108 -29
- package/src/stories/Atoms/Button/Button.css +106 -45
- package/src/stories/Atoms/Button/Button.jsx +31 -82
- package/src/stories/Atoms/Button/Button.stories.jsx +170 -40
- package/src/stories/Atoms/Caption/Caption.css +156 -16
- package/src/stories/Atoms/Caption/Caption.jsx +62 -31
- package/src/stories/Atoms/Caption/Caption.stories.jsx +194 -28
- package/src/stories/Atoms/Checkbox/Checkbox.css +168 -15
- package/src/stories/Atoms/Checkbox/Checkbox.jsx +73 -31
- package/src/stories/Atoms/Checkbox/Checkbox.stories.jsx +98 -27
- package/src/stories/Atoms/Container/Container.css +75 -15
- package/src/stories/Atoms/Container/Container.jsx +41 -28
- package/src/stories/Atoms/Container/Container.stories.jsx +92 -29
- package/src/stories/Atoms/Divider/Divider.css +131 -13
- package/src/stories/Atoms/Divider/Divider.jsx +54 -33
- package/src/stories/Atoms/Divider/Divider.stories.jsx +93 -29
- package/src/stories/Atoms/Heading/Heading.css +99 -16
- package/src/stories/Atoms/Heading/Heading.jsx +57 -29
- package/src/stories/Atoms/Heading/Heading.stories.jsx +117 -28
- package/src/stories/Atoms/Icon/Icon.css +219 -27
- package/src/stories/Atoms/Icon/Icon.jsx +67 -38
- package/src/stories/Atoms/Icon/Icon.stories.jsx +156 -51
- package/src/stories/Atoms/Image/Image.css +231 -15
- package/src/stories/Atoms/Image/Image.jsx +166 -32
- package/src/stories/Atoms/Image/Image.stories.jsx +319 -28
- package/src/stories/Atoms/Label/Label.css +158 -16
- package/src/stories/Atoms/Label/Label.jsx +61 -31
- package/src/stories/Atoms/Label/Label.stories.jsx +167 -28
- package/src/stories/Atoms/Link/Link.css +58 -16
- package/src/stories/Atoms/Link/Link.jsx +73 -32
- package/src/stories/Atoms/Link/Link.stories.jsx +141 -29
- package/src/stories/Atoms/Loader/Loader.css +93 -16
- package/src/stories/Atoms/Loader/Loader.jsx +47 -30
- package/src/stories/Atoms/Loader/Loader.stories.jsx +86 -28
- package/src/stories/Atoms/Logo/Logo.css +94 -0
- package/src/stories/Atoms/Logo/Logo.jsx +53 -0
- package/src/stories/Atoms/Logo/Logo.stories.jsx +120 -0
- package/src/stories/Atoms/Paragraph/Paragraph.css +167 -16
- package/src/stories/Atoms/Paragraph/Paragraph.jsx +67 -31
- package/src/stories/Atoms/Paragraph/Paragraph.stories.jsx +130 -28
- package/src/stories/Atoms/ProgressBar/ProgressBar.css +115 -17
- package/src/stories/Atoms/ProgressBar/ProgressBar.jsx +30 -31
- package/src/stories/Atoms/ProgressBar/ProgressBar.stories.jsx +72 -27
- package/src/stories/Atoms/RadioButton/RadioButton.css +118 -17
- package/src/stories/Atoms/RadioButton/RadioButton.jsx +77 -31
- package/src/stories/Atoms/RadioButton/RadioButton.stories.jsx +99 -27
- package/src/stories/Atoms/Range/Range.css +169 -0
- package/src/stories/Atoms/Range/Range.jsx +87 -0
- package/src/stories/Atoms/Range/Range.stories.jsx +110 -0
- package/src/stories/Atoms/Select/Select.css +74 -16
- package/src/stories/Atoms/Select/Select.jsx +62 -30
- package/src/stories/Atoms/Select/Select.stories.jsx +95 -27
- package/src/stories/Atoms/Slider/Slider.css +77 -16
- package/src/stories/Atoms/Slider/Slider.jsx +119 -31
- package/src/stories/Atoms/Slider/Slider.stories.jsx +77 -28
- package/src/stories/Atoms/Snackbar/Snackbar.css +297 -13
- package/src/stories/Atoms/Snackbar/Snackbar.jsx +62 -31
- package/src/stories/Atoms/Snackbar/Snackbar.stories.jsx +63 -26
- package/src/stories/Atoms/Spacer/Spacer.css +101 -16
- package/src/stories/Atoms/Spacer/Spacer.jsx +26 -32
- package/src/stories/Atoms/Spacer/Spacer.stories.jsx +50 -30
- package/src/stories/Atoms/Spinner/Spinner.css +97 -16
- package/src/stories/Atoms/Spinner/Spinner.jsx +50 -26
- package/src/stories/Atoms/Spinner/Spinner.stories.jsx +47 -30
- package/src/stories/Atoms/Tag/Tag.css +97 -14
- package/src/stories/Atoms/Tag/Tag.jsx +58 -24
- package/src/stories/Atoms/Tag/Tag.stories.jsx +55 -29
- package/src/stories/Atoms/TextArea/TextArea.css +84 -15
- package/src/stories/Atoms/TextArea/TextArea.jsx +107 -31
- package/src/stories/Atoms/TextArea/TextArea.stories.jsx +24 -30
- package/src/stories/Atoms/TextInput/TextInput.css +89 -17
- package/src/stories/Atoms/TextInput/TextInput.jsx +118 -27
- package/src/stories/Atoms/TextInput/TextInput.stories.jsx +52 -25
- package/src/stories/Atoms/Toggle/Toggle.css +105 -17
- package/src/stories/Atoms/Toggle/Toggle.jsx +55 -28
- package/src/stories/Atoms/Toggle/Toggle.stories.jsx +23 -30
- package/src/stories/Atoms/Tooltip/Tooltip.css +367 -14
- package/src/stories/Atoms/Tooltip/Tooltip.jsx +32 -28
- package/src/stories/Atoms/Tooltip/Tooltip.stories.jsx +41 -31
- package/src/stories/Atoms/Video/Video.css +27 -18
- package/src/stories/Atoms/Video/Video.jsx +65 -29
- package/src/stories/Atoms/Video/Video.stories.jsx +29 -30
- package/src/stories/Atoms/index.js +5 -2
- package/src/stories/Atoms/meta_Atoms.js +3 -1
- package/src/stories/Layouts/Accordion/Accordion.css +16 -0
- package/src/stories/Layouts/Accordion/Accordion.jsx +31 -0
- package/src/stories/Layouts/Accordion/Accordion.stories.jsx +28 -0
- package/src/stories/Layouts/DropdownMenu/DropdownMenu.css +16 -0
- package/src/stories/Layouts/DropdownMenu/DropdownMenu.jsx +31 -0
- package/src/stories/Layouts/DropdownMenu/DropdownMenu.stories.jsx +28 -0
- package/src/stories/Layouts/Flexbox/Flexbox.css +16 -0
- package/src/stories/Layouts/Flexbox/Flexbox.jsx +11 -0
- package/src/stories/Layouts/Flexbox/Flexbox.stories.jsx +28 -0
- package/src/stories/Layouts/Footer/Footer.css +16 -0
- package/src/stories/Layouts/Footer/Footer.jsx +31 -0
- package/src/stories/Layouts/Footer/Footer.stories.jsx +28 -0
- package/src/stories/Layouts/Grid/Grid.jsx +2 -4
- package/src/stories/Layouts/Grid/Grid.stories.jsx +20 -18
- package/src/stories/Layouts/Header/Header.css +16 -0
- package/src/stories/Layouts/Header/Header.jsx +31 -0
- package/src/stories/Layouts/Header/Header.stories.jsx +28 -0
- package/src/stories/Layouts/HeroBanner/HeroBanner.css +16 -0
- package/src/stories/Layouts/HeroBanner/HeroBanner.jsx +31 -0
- package/src/stories/Layouts/HeroBanner/HeroBanner.stories.jsx +28 -0
- package/src/stories/Layouts/HeroImageVideo/HeroImageVideo.css +16 -0
- package/src/stories/Layouts/HeroImageVideo/HeroImageVideo.jsx +31 -0
- package/src/stories/Layouts/HeroImageVideo/HeroImageVideo.stories.jsx +28 -0
- package/src/stories/Layouts/Pagination/Pagination.css +16 -0
- package/src/stories/Layouts/Pagination/Pagination.jsx +31 -0
- package/src/stories/Layouts/Pagination/Pagination.stories.jsx +28 -0
- package/src/stories/Layouts/Section/Section.css +16 -0
- package/src/stories/Layouts/Section/Section.jsx +31 -0
- package/src/stories/Layouts/Section/Section.stories.jsx +28 -0
- package/src/stories/Layouts/Sidebar/Sidebar.css +16 -0
- package/src/stories/Layouts/Sidebar/Sidebar.jsx +71 -0
- package/src/stories/Layouts/Sidebar/Sidebar.stories.jsx +28 -0
- package/src/stories/Layouts/Tabs/Tabs.css +16 -0
- package/src/stories/Layouts/Tabs/Tabs.jsx +31 -0
- package/src/stories/Layouts/Tabs/Tabs.stories.jsx +28 -0
- package/src/stories/Layouts/index.js +31 -0
- package/src/stories/Layouts/meta_Layouts.js +31 -0
- package/src/stories/Molecules/Navbar/Navbar.css +63 -59
- package/src/stories/Molecules/Navbar/Navbar.jsx +43 -48
- package/src/stories/Molecules/Navbar/Navbar.stories.jsx +58 -8
- package/src/stories/Molecules/SearchBar/SearchBar.css +66 -1
- package/src/stories/Molecules/SearchBar/SearchBar.jsx +59 -11
- package/src/stories/Molecules/SearchBar/SearchBar.stories.jsx +16 -7
- package/src/stories/Molecules/SelectTheme/SelectTheme.jsx +16 -38
- package/src/stories/Molecules/SelectTheme/SelectTheme.stories.jsx +1 -2
- package/src/stories/Molecules/Sidebar/Sidebar.css +65 -2
- package/src/stories/Molecules/Sidebar/Sidebar.jsx +66 -11
- package/src/stories/Molecules/Sidebar/Sidebar.stories.jsx +20 -5
- package/src/stories/Templates/AdminDashboard/AdminDashboard.css +7 -0
- package/src/stories/Templates/AdminDashboard/AdminDashboard.jsx +24 -0
- package/src/stories/Templates/AdminDashboard/AdminDashboard.stories.jsx +20 -0
- package/src/stories/Templates/CallToAction/CallToAction.css +7 -0
- package/src/stories/Templates/CallToAction/CallToAction.jsx +24 -0
- package/src/stories/Templates/CallToAction/CallToAction.stories.jsx +20 -0
- package/src/stories/Templates/FeaturesList/FeaturesList.css +7 -0
- package/src/stories/Templates/FeaturesList/FeaturesList.jsx +24 -0
- package/src/stories/Templates/FeaturesList/FeaturesList.stories.jsx +20 -0
- package/src/stories/Templates/FormSection/FormSection.css +7 -0
- package/src/stories/Templates/FormSection/FormSection.jsx +24 -0
- package/src/stories/Templates/FormSection/FormSection.stories.jsx +20 -0
- package/src/stories/Templates/HeroSection/HeroSection.css +7 -0
- package/src/stories/Templates/HeroSection/HeroSection.jsx +24 -0
- package/src/stories/Templates/HeroSection/HeroSection.stories.jsx +20 -0
- package/src/stories/Templates/LocationInfo/LocationInfo.css +7 -0
- package/src/stories/Templates/LocationInfo/LocationInfo.jsx +24 -0
- package/src/stories/Templates/LocationInfo/LocationInfo.stories.jsx +20 -0
- package/src/stories/Templates/ProductPage/ProductPage.css +7 -0
- package/src/stories/Templates/ProductPage/ProductPage.jsx +24 -0
- package/src/stories/Templates/ProductPage/ProductPage.stories.jsx +20 -0
- package/src/stories/Templates/RegistrationPage/RegistrationPage.css +7 -0
- package/src/stories/Templates/RegistrationPage/RegistrationPage.jsx +24 -0
- package/src/stories/Templates/RegistrationPage/RegistrationPage.stories.jsx +20 -0
- package/src/stories/Templates/ShoppingCart/ShoppingCart.css +7 -0
- package/src/stories/Templates/ShoppingCart/ShoppingCart.jsx +24 -0
- package/src/stories/Templates/ShoppingCart/ShoppingCart.stories.jsx +20 -0
- package/src/stories/Templates/SidebarTopNav/SidebarTopNav.css +7 -0
- package/src/stories/Templates/SidebarTopNav/SidebarTopNav.jsx +24 -0
- package/src/stories/Templates/SidebarTopNav/SidebarTopNav.stories.jsx +20 -0
- package/src/stories/Templates/SignInPage/SignInPage.css +7 -0
- package/src/stories/Templates/SignInPage/SignInPage.jsx +24 -0
- package/src/stories/Templates/SignInPage/SignInPage.stories.jsx +20 -0
- package/src/stories/Templates/SocialMediaLinks/SocialMediaLinks.css +7 -0
- package/src/stories/Templates/SocialMediaLinks/SocialMediaLinks.jsx +24 -0
- package/src/stories/Templates/SocialMediaLinks/SocialMediaLinks.stories.jsx +20 -0
- package/src/stories/Templates/Testimonials/Testimonials.css +7 -0
- package/src/stories/Templates/Testimonials/Testimonials.jsx +24 -0
- package/src/stories/Templates/Testimonials/Testimonials.stories.jsx +20 -0
- package/src/stories/Templates/index.js +33 -0
- package/src/stories/Templates/{Templates.js → meta_Templates.js} +3 -1
- package/src/stories/assets/logo.png +0 -0
- package/src/stories/assets/logo.svg +106 -0
- package/src/stories/assets/test.svg +3 -0
- package/src/themes/README.md +301 -0
- package/src/themes/ThemeProvider.jsx +47 -22
- package/src/themes/styles/dracula/dark.css +0 -0
- package/src/themes/styles/dracula/light.css +0 -0
- package/src/themes/styles/github/dark.css +0 -0
- package/src/themes/styles/github/light.css +0 -0
- package/src/themes/styles/neurons/dark.css +247 -0
- package/src/themes/styles/neurons/light.css +280 -0
- package/dist/github-3688a83a.js +0 -5
- package/dist/gothic-94a7ecd6.js +0 -5
- package/dist/newsprint-32bf94d9.js +0 -5
- package/dist/night-4a954853.js +0 -5
- package/dist/pixyll-94de4610.js +0 -5
- package/dist/whitey-db68723e.js +0 -5
- package/src/MDXEditor.jsx +0 -32
- package/src/stories/Atoms/RangeInput/RangeInput.css +0 -29
- package/src/stories/Atoms/RangeInput/RangeInput.jsx +0 -41
- package/src/stories/Atoms/RangeInput/RangeInput.stories.jsx +0 -41
- package/src/stories/Components.md +0 -189
- package/src/stories/Layouts/Layout.js +0 -28
- package/src/styles/Header.modules.css +0 -32
- package/src/styles/global.css +0 -59
- package/src/themes/Themes.js +0 -44
- package/src/themes/dark.js +0 -22
- package/src/themes/light.js +0 -22
- package/src/themes/typ/Readme.md +0 -4
- package/src/themes/typ/github/open-sans-v17-latin-ext_latin-700.woff2 +0 -0
- package/src/themes/typ/github/open-sans-v17-latin-ext_latin-700italic.woff2 +0 -0
- package/src/themes/typ/github/open-sans-v17-latin-ext_latin-italic.woff2 +0 -0
- package/src/themes/typ/github/open-sans-v17-latin-ext_latin-regular.woff2 +0 -0
- package/src/themes/typ/github.css +0 -416
- package/src/themes/typ/gothic/GUST e-foundry License.txt +0 -29
- package/src/themes/typ/gothic/didact-gothic-c-ext.woff2 +0 -0
- package/src/themes/typ/gothic/didact-gothic-c.woff2 +0 -0
- package/src/themes/typ/gothic/texgyreadventor-bold.woff +0 -0
- package/src/themes/typ/gothic/texgyreadventor-bolditalic.woff +0 -0
- package/src/themes/typ/gothic/texgyreadventor-italic.woff +0 -0
- package/src/themes/typ/gothic/texgyreadventor-regular.woff +0 -0
- package/src/themes/typ/gothic.css +0 -410
- package/src/themes/typ/newsprint/pt-serif-v11-latin-700.woff2 +0 -0
- package/src/themes/typ/newsprint/pt-serif-v11-latin-700italic.woff2 +0 -0
- package/src/themes/typ/newsprint/pt-serif-v11-latin-italic.woff2 +0 -0
- package/src/themes/typ/newsprint/pt-serif-v11-latin-regular.woff2 +0 -0
- package/src/themes/typ/newsprint.css +0 -622
- package/src/themes/typ/night/codeblock.dark.css +0 -113
- package/src/themes/typ/night/credit.html +0 -1
- package/src/themes/typ/night/cursor.png +0 -0
- package/src/themes/typ/night/cursor@2x.png +0 -0
- package/src/themes/typ/night/mermaid.dark.css +0 -7
- package/src/themes/typ/night/sourcemode.dark.css +0 -38
- package/src/themes/typ/night.css +0 -1032
- package/src/themes/typ/pixyll/lato-v14-latin-300.woff +0 -0
- package/src/themes/typ/pixyll/lato-v14-latin-300italic.woff +0 -0
- package/src/themes/typ/pixyll/lato-v14-latin-900.woff +0 -0
- package/src/themes/typ/pixyll/lato-v14-latin-900italic.woff +0 -0
- package/src/themes/typ/pixyll/merriweather-v19-latin-300.woff +0 -0
- package/src/themes/typ/pixyll/merriweather-v19-latin-300italic.woff +0 -0
- package/src/themes/typ/pixyll/merriweather-v19-latin-700.woff +0 -0
- package/src/themes/typ/pixyll/merriweather-v19-latin-700italic.woff +0 -0
- package/src/themes/typ/pixyll.css +0 -528
- package/src/themes/typ/whitey.css +0 -299
- /package/src/stories/Molecules/{Molecules.js → meta_Molecules.js} +0 -0
- /package/src/stories/Organisms/{Organisms.js → meta_Organisms.js} +0 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import './Footer.css';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Footer layout component
|
|
8
|
+
*/
|
|
9
|
+
export const Footer = ({ children, primary, ...props }) => {
|
|
10
|
+
const mode = primary ? 'footer--primary' : 'footer--secondary';
|
|
11
|
+
return (
|
|
12
|
+
<div className={['footer', mode].join(' ')} {...props}>
|
|
13
|
+
{children}
|
|
14
|
+
</div>
|
|
15
|
+
);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
Footer.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
|
+
Footer.defaultProps = {
|
|
30
|
+
primary: false,
|
|
31
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
|
|
2
|
+
import { Footer } from './Footer';
|
|
3
|
+
|
|
4
|
+
// Storybook configuration for Footer component
|
|
5
|
+
export default {
|
|
6
|
+
title: 'Layouts/NavigationAndMenus/Footer',
|
|
7
|
+
component: Footer,
|
|
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 Footer layout.',
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export const Secondary = {
|
|
24
|
+
args: {
|
|
25
|
+
primary: false,
|
|
26
|
+
children: 'This is a secondary Footer layout.',
|
|
27
|
+
},
|
|
28
|
+
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import './Grid.css'; // Import the component-specific styles
|
|
4
4
|
|
|
5
|
-
const Grid = ({ children, columns = 3, gap = '10px' }) => {
|
|
5
|
+
export const Grid = ({ children, columns = 3, gap = '10px' }) => {
|
|
6
6
|
const gridStyle = {
|
|
7
7
|
display: 'grid',
|
|
8
8
|
gridTemplateColumns: `repeat(${columns}, 1fr)`,
|
|
@@ -10,6 +10,4 @@ const Grid = ({ children, columns = 3, gap = '10px' }) => {
|
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
return <div style={gridStyle} className="grid-container">{children}</div>;
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export default Grid;
|
|
13
|
+
};
|
|
@@ -1,26 +1,28 @@
|
|
|
1
|
-
// src/stories/Layout/Grid/Grid.stories.jsx
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import Grid from './Grid';
|
|
4
1
|
|
|
2
|
+
import { Grid } from './Grid';
|
|
3
|
+
|
|
4
|
+
// Storybook configuration for Grid component
|
|
5
5
|
export default {
|
|
6
|
-
title: '
|
|
6
|
+
title: 'Layouts/Grid/Grid',
|
|
7
7
|
component: Grid,
|
|
8
|
+
parameters: {
|
|
9
|
+
layout: 'fullscreen',
|
|
10
|
+
},
|
|
8
11
|
argTypes: {
|
|
9
|
-
|
|
10
|
-
gap: { control: 'text', defaultValue: '10px' },
|
|
12
|
+
children: { control: 'text' },
|
|
11
13
|
},
|
|
12
14
|
};
|
|
13
15
|
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
);
|
|
16
|
+
export const Primary = {
|
|
17
|
+
args: {
|
|
18
|
+
primary: true,
|
|
19
|
+
children: 'This is a primary Grid layout.',
|
|
20
|
+
},
|
|
21
|
+
};
|
|
21
22
|
|
|
22
|
-
export const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
23
|
+
export const Secondary = {
|
|
24
|
+
args: {
|
|
25
|
+
primary: false,
|
|
26
|
+
children: 'This is a secondary Grid layout.',
|
|
27
|
+
},
|
|
28
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import './Header.css';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Header layout component
|
|
8
|
+
*/
|
|
9
|
+
export const Header = ({ children, primary, ...props }) => {
|
|
10
|
+
const mode = primary ? 'header--primary' : 'header--secondary';
|
|
11
|
+
return (
|
|
12
|
+
<div className={['header', mode].join(' ')} {...props}>
|
|
13
|
+
{children}
|
|
14
|
+
</div>
|
|
15
|
+
);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
Header.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
|
+
Header.defaultProps = {
|
|
30
|
+
primary: false,
|
|
31
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
|
|
2
|
+
import { Header } from './Header';
|
|
3
|
+
|
|
4
|
+
// Storybook configuration for Header component
|
|
5
|
+
export default {
|
|
6
|
+
title: 'Layouts/NavigationAndMenus/Header',
|
|
7
|
+
component: Header,
|
|
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 Header layout.',
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export const Secondary = {
|
|
24
|
+
args: {
|
|
25
|
+
primary: false,
|
|
26
|
+
children: 'This is a secondary Header layout.',
|
|
27
|
+
},
|
|
28
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import './HeroBanner.css';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* HeroBanner layout component
|
|
8
|
+
*/
|
|
9
|
+
export const HeroBanner = ({ children, primary, ...props }) => {
|
|
10
|
+
const mode = primary ? 'herobanner--primary' : 'herobanner--secondary';
|
|
11
|
+
return (
|
|
12
|
+
<div className={['herobanner', mode].join(' ')} {...props}>
|
|
13
|
+
{children}
|
|
14
|
+
</div>
|
|
15
|
+
);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
HeroBanner.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
|
+
HeroBanner.defaultProps = {
|
|
30
|
+
primary: false,
|
|
31
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
|
|
2
|
+
import { HeroBanner } from './HeroBanner';
|
|
3
|
+
|
|
4
|
+
// Storybook configuration for HeroBanner component
|
|
5
|
+
export default {
|
|
6
|
+
title: 'Layouts/HeroSections/HeroBanner',
|
|
7
|
+
component: HeroBanner,
|
|
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 HeroBanner layout.',
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export const Secondary = {
|
|
24
|
+
args: {
|
|
25
|
+
primary: false,
|
|
26
|
+
children: 'This is a secondary HeroBanner layout.',
|
|
27
|
+
},
|
|
28
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import './HeroImageVideo.css';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* HeroImageVideo layout component
|
|
8
|
+
*/
|
|
9
|
+
export const HeroImageVideo = ({ children, primary, ...props }) => {
|
|
10
|
+
const mode = primary ? 'heroimagevideo--primary' : 'heroimagevideo--secondary';
|
|
11
|
+
return (
|
|
12
|
+
<div className={['heroimagevideo', mode].join(' ')} {...props}>
|
|
13
|
+
{children}
|
|
14
|
+
</div>
|
|
15
|
+
);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
HeroImageVideo.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
|
+
HeroImageVideo.defaultProps = {
|
|
30
|
+
primary: false,
|
|
31
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
|
|
2
|
+
import { HeroImageVideo } from './HeroImageVideo';
|
|
3
|
+
|
|
4
|
+
// Storybook configuration for HeroImageVideo component
|
|
5
|
+
export default {
|
|
6
|
+
title: 'Layouts/HeroSections/HeroImageVideo',
|
|
7
|
+
component: HeroImageVideo,
|
|
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 HeroImageVideo layout.',
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export const Secondary = {
|
|
24
|
+
args: {
|
|
25
|
+
primary: false,
|
|
26
|
+
children: 'This is a secondary HeroImageVideo layout.',
|
|
27
|
+
},
|
|
28
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import './Pagination.css';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Pagination layout component
|
|
8
|
+
*/
|
|
9
|
+
export const Pagination = ({ children, primary, ...props }) => {
|
|
10
|
+
const mode = primary ? 'pagination--primary' : 'pagination--secondary';
|
|
11
|
+
return (
|
|
12
|
+
<div className={['pagination', mode].join(' ')} {...props}>
|
|
13
|
+
{children}
|
|
14
|
+
</div>
|
|
15
|
+
);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
Pagination.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
|
+
Pagination.defaultProps = {
|
|
30
|
+
primary: false,
|
|
31
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
|
|
2
|
+
import { Pagination } from './Pagination';
|
|
3
|
+
|
|
4
|
+
// Storybook configuration for Pagination component
|
|
5
|
+
export default {
|
|
6
|
+
title: 'Layouts/NavigationAndMenus/Pagination',
|
|
7
|
+
component: Pagination,
|
|
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 Pagination layout.',
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export const Secondary = {
|
|
24
|
+
args: {
|
|
25
|
+
primary: false,
|
|
26
|
+
children: 'This is a secondary Pagination layout.',
|
|
27
|
+
},
|
|
28
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
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
|
+
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import './Sidebar.css';
|
|
4
|
+
|
|
5
|
+
export const Sidebar = ({
|
|
6
|
+
links = [], // Default value for links
|
|
7
|
+
logo = null, // Default value for logo
|
|
8
|
+
userControls = null, // Default value for userControls
|
|
9
|
+
styleOverrides = {}, // Default value for styleOverrides
|
|
10
|
+
}) => {
|
|
11
|
+
const style = {};
|
|
12
|
+
|
|
13
|
+
// Map of styleOverrides keys to CSS variable names
|
|
14
|
+
const cssVariableMap = {
|
|
15
|
+
sidebarBackgroundColor: '--sidebar-background-color',
|
|
16
|
+
sidebarBorderColor: '--sidebar-border-color',
|
|
17
|
+
sidebarPadding: '--sidebar-padding',
|
|
18
|
+
sidebarWidth: '--sidebar-width',
|
|
19
|
+
logoMarginBottom: '--sidebar-logo-margin-bottom',
|
|
20
|
+
itemMargin: '--sidebar-item-margin',
|
|
21
|
+
linkColor: '--sidebar-link-color',
|
|
22
|
+
linkPadding: '--sidebar-link-padding',
|
|
23
|
+
linkHoverBackgroundColor: '--sidebar-link-hover-background-color',
|
|
24
|
+
linkHoverBorderRadius: '--sidebar-link-hover-border-radius',
|
|
25
|
+
controlsMarginTop: '--sidebar-controls-margin-top',
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
// Set CSS variables based on styleOverrides
|
|
29
|
+
Object.keys(styleOverrides).forEach((key) => {
|
|
30
|
+
const cssVar = cssVariableMap[key];
|
|
31
|
+
if (cssVar) {
|
|
32
|
+
style[cssVar] = styleOverrides[key];
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
return (
|
|
37
|
+
<aside className="sidebar" style={style}>
|
|
38
|
+
<div className="sidebar__logo">
|
|
39
|
+
{logo}
|
|
40
|
+
</div>
|
|
41
|
+
<ul className="sidebar__links">
|
|
42
|
+
{links.map((link, index) => (
|
|
43
|
+
<li key={index} className="sidebar__item">
|
|
44
|
+
<a
|
|
45
|
+
href={link.url}
|
|
46
|
+
className={`sidebar__link ${link.isActive ? 'sidebar__link--active' : ''}`}
|
|
47
|
+
>
|
|
48
|
+
{link.label}
|
|
49
|
+
</a>
|
|
50
|
+
</li>
|
|
51
|
+
))}
|
|
52
|
+
</ul>
|
|
53
|
+
<div className="sidebar__controls">
|
|
54
|
+
{userControls}
|
|
55
|
+
</div>
|
|
56
|
+
</aside>
|
|
57
|
+
);
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
Sidebar.propTypes = {
|
|
61
|
+
links: PropTypes.arrayOf(
|
|
62
|
+
PropTypes.shape({
|
|
63
|
+
url: PropTypes.string.isRequired,
|
|
64
|
+
label: PropTypes.string.isRequired,
|
|
65
|
+
isActive: PropTypes.bool,
|
|
66
|
+
})
|
|
67
|
+
),
|
|
68
|
+
logo: PropTypes.node,
|
|
69
|
+
userControls: PropTypes.node,
|
|
70
|
+
styleOverrides: PropTypes.object,
|
|
71
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
|
|
2
|
+
import { Sidebar } from './Sidebar';
|
|
3
|
+
|
|
4
|
+
// Storybook configuration for Sidebar component
|
|
5
|
+
export default {
|
|
6
|
+
title: 'Layouts/ContentOrganization/Sidebar',
|
|
7
|
+
component: Sidebar,
|
|
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 Sidebar layout.',
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export const Secondary = {
|
|
24
|
+
args: {
|
|
25
|
+
primary: false,
|
|
26
|
+
children: 'This is a secondary Sidebar layout.',
|
|
27
|
+
},
|
|
28
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import './Tabs.css';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Tabs layout component
|
|
8
|
+
*/
|
|
9
|
+
export const Tabs = ({ children, primary, ...props }) => {
|
|
10
|
+
const mode = primary ? 'tabs--primary' : 'tabs--secondary';
|
|
11
|
+
return (
|
|
12
|
+
<div className={['tabs', mode].join(' ')} {...props}>
|
|
13
|
+
{children}
|
|
14
|
+
</div>
|
|
15
|
+
);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
Tabs.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
|
+
Tabs.defaultProps = {
|
|
30
|
+
primary: false,
|
|
31
|
+
};
|