umwd-components 0.1.57 → 0.1.59
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/dist/cjs/components/FeaturesSection.js +122 -0
- package/dist/cjs/components/HeroSection.js +73 -0
- package/dist/cjs/components/NavBar.js +5 -1
- package/dist/cjs/components/Page.js +2 -2
- package/dist/cjs/components/StrapiImage.js +33 -0
- package/dist/cjs/components/TextImageBlock.js +11 -5
- package/dist/esm/components/FeaturesSection.js +120 -0
- package/dist/esm/components/HeroSection.js +71 -0
- package/dist/esm/components/NavBar.js +6 -2
- package/dist/esm/components/Page.js +2 -2
- package/dist/esm/components/StrapiImage.js +31 -0
- package/dist/esm/components/TextImageBlock.js +12 -6
- package/package.json +1 -1
- package/src/components/FeaturesSection.tsx +125 -0
- package/src/components/HeroSection.tsx +81 -0
- package/src/components/Logo.tsx +44 -0
- package/src/components/NavBar.js +7 -1
- package/src/components/Page.js +2 -2
- package/src/components/StrapiImage.tsx +33 -0
- package/src/components/TextImageBlock.js +116 -113
- package/src/stories/Page.stories.js +2 -2
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* UMWD-Components
|
|
3
|
+
* @copyright Jelle Paulus
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
|
|
10
|
+
var React = require('react');
|
|
11
|
+
var material = require('@mui/material');
|
|
12
|
+
|
|
13
|
+
function getIcon(name) {
|
|
14
|
+
switch (name) {
|
|
15
|
+
case "CLOCK_ICON":
|
|
16
|
+
return /*#__PURE__*/React.createElement(ClockIcon, {
|
|
17
|
+
className: "w-12 h-12 mb-4 text-gray-900"
|
|
18
|
+
});
|
|
19
|
+
case "CHECK_ICON":
|
|
20
|
+
return /*#__PURE__*/React.createElement(CheckIcon, {
|
|
21
|
+
className: "w-12 h-12 mb-4 text-gray-900"
|
|
22
|
+
});
|
|
23
|
+
case "CLOUD_ICON":
|
|
24
|
+
return /*#__PURE__*/React.createElement(CloudIcon, {
|
|
25
|
+
className: "w-12 h-12 mb-4 text-gray-900"
|
|
26
|
+
});
|
|
27
|
+
default:
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function FeatureSection(_ref) {
|
|
32
|
+
let {
|
|
33
|
+
data
|
|
34
|
+
} = _ref;
|
|
35
|
+
const {
|
|
36
|
+
feature
|
|
37
|
+
} = data;
|
|
38
|
+
return /*#__PURE__*/React.createElement(material.Container, {
|
|
39
|
+
maxWidth: "lg",
|
|
40
|
+
sx: {
|
|
41
|
+
my: 1
|
|
42
|
+
}
|
|
43
|
+
}, /*#__PURE__*/React.createElement(material.Stack, {
|
|
44
|
+
spacing: 2,
|
|
45
|
+
direction: "row",
|
|
46
|
+
sx: {
|
|
47
|
+
width: "100%",
|
|
48
|
+
height: "100%"
|
|
49
|
+
}
|
|
50
|
+
}, feature.map(feature => /*#__PURE__*/React.createElement(material.Card, {
|
|
51
|
+
key: feature.id,
|
|
52
|
+
sx: {
|
|
53
|
+
height: "100%",
|
|
54
|
+
minHeight: "250px",
|
|
55
|
+
width: "32%"
|
|
56
|
+
}
|
|
57
|
+
}, /*#__PURE__*/React.createElement(material.CardContent, {
|
|
58
|
+
sx: {
|
|
59
|
+
display: "flex",
|
|
60
|
+
flexDirection: "column",
|
|
61
|
+
alignItems: "center",
|
|
62
|
+
justifyContent: "center"
|
|
63
|
+
}
|
|
64
|
+
}, getIcon(feature.icon), /*#__PURE__*/React.createElement(material.Typography, {
|
|
65
|
+
variant: "h2",
|
|
66
|
+
align: "center"
|
|
67
|
+
}, feature.heading), /*#__PURE__*/React.createElement(material.Typography, {
|
|
68
|
+
variant: "body1",
|
|
69
|
+
align: "center"
|
|
70
|
+
}, feature.subHeading))))));
|
|
71
|
+
}
|
|
72
|
+
function CheckIcon(props) {
|
|
73
|
+
return /*#__PURE__*/React.createElement("svg", _rollupPluginBabelHelpers.extends({}, props, {
|
|
74
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
75
|
+
width: "24",
|
|
76
|
+
height: "24",
|
|
77
|
+
viewBox: "0 0 24 24",
|
|
78
|
+
fill: "none",
|
|
79
|
+
stroke: "currentColor",
|
|
80
|
+
strokeWidth: "2",
|
|
81
|
+
strokeLinecap: "round",
|
|
82
|
+
strokeLinejoin: "round"
|
|
83
|
+
}), /*#__PURE__*/React.createElement("polyline", {
|
|
84
|
+
points: "20 6 9 17 4 12"
|
|
85
|
+
}));
|
|
86
|
+
}
|
|
87
|
+
function ClockIcon(props) {
|
|
88
|
+
return /*#__PURE__*/React.createElement("svg", _rollupPluginBabelHelpers.extends({}, props, {
|
|
89
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
90
|
+
width: "24",
|
|
91
|
+
height: "24",
|
|
92
|
+
viewBox: "0 0 24 24",
|
|
93
|
+
fill: "none",
|
|
94
|
+
stroke: "currentColor",
|
|
95
|
+
strokeWidth: "2",
|
|
96
|
+
strokeLinecap: "round",
|
|
97
|
+
strokeLinejoin: "round"
|
|
98
|
+
}), /*#__PURE__*/React.createElement("circle", {
|
|
99
|
+
cx: "12",
|
|
100
|
+
cy: "12",
|
|
101
|
+
r: "10"
|
|
102
|
+
}), /*#__PURE__*/React.createElement("polyline", {
|
|
103
|
+
points: "12 6 12 12 16 14"
|
|
104
|
+
}));
|
|
105
|
+
}
|
|
106
|
+
function CloudIcon(props) {
|
|
107
|
+
return /*#__PURE__*/React.createElement("svg", _rollupPluginBabelHelpers.extends({}, props, {
|
|
108
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
109
|
+
width: "24",
|
|
110
|
+
height: "24",
|
|
111
|
+
viewBox: "0 0 24 24",
|
|
112
|
+
fill: "none",
|
|
113
|
+
stroke: "currentColor",
|
|
114
|
+
strokeWidth: "2",
|
|
115
|
+
strokeLinecap: "round",
|
|
116
|
+
strokeLinejoin: "round"
|
|
117
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
118
|
+
d: "M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z"
|
|
119
|
+
}));
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
exports.FeatureSection = FeatureSection;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* UMWD-Components
|
|
3
|
+
* @copyright Jelle Paulus
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var React = require('react');
|
|
10
|
+
var Link = require('next/link');
|
|
11
|
+
var material = require('@mui/material');
|
|
12
|
+
var StrapiImage = require('./StrapiImage.js');
|
|
13
|
+
|
|
14
|
+
function HeroSection(_ref) {
|
|
15
|
+
let {
|
|
16
|
+
data
|
|
17
|
+
} = _ref;
|
|
18
|
+
const {
|
|
19
|
+
heading,
|
|
20
|
+
subHeading,
|
|
21
|
+
image,
|
|
22
|
+
link
|
|
23
|
+
} = data;
|
|
24
|
+
return /*#__PURE__*/React.createElement("header", {
|
|
25
|
+
className: "relative h-[600px] overflow-hidden"
|
|
26
|
+
}, /*#__PURE__*/React.createElement(material.Box, {
|
|
27
|
+
sx: {
|
|
28
|
+
display: "flex",
|
|
29
|
+
flexDirection: "column",
|
|
30
|
+
alignItems: "center",
|
|
31
|
+
justifyContent: "center",
|
|
32
|
+
width: "100vw",
|
|
33
|
+
overflow: "hidden",
|
|
34
|
+
backgroundColor: "pink",
|
|
35
|
+
minHeight: "600px"
|
|
36
|
+
}
|
|
37
|
+
}, /*#__PURE__*/React.createElement(StrapiImage.StrapiImage, {
|
|
38
|
+
alt: "Background",
|
|
39
|
+
style: {
|
|
40
|
+
position: "absolute",
|
|
41
|
+
inset: 0,
|
|
42
|
+
objectFit: "cover",
|
|
43
|
+
width: "100%",
|
|
44
|
+
height: "100%"
|
|
45
|
+
},
|
|
46
|
+
height: 1080,
|
|
47
|
+
src: image.url,
|
|
48
|
+
width: 1920
|
|
49
|
+
}), /*#__PURE__*/React.createElement(material.Stack, {
|
|
50
|
+
spacing: 2,
|
|
51
|
+
sx: {
|
|
52
|
+
width: "max-content",
|
|
53
|
+
maxWidth: "600px",
|
|
54
|
+
zIndex: 1
|
|
55
|
+
}
|
|
56
|
+
}, /*#__PURE__*/React.createElement(material.Typography, {
|
|
57
|
+
variant: "h1",
|
|
58
|
+
align: "center"
|
|
59
|
+
}, heading), /*#__PURE__*/React.createElement(material.Typography, {
|
|
60
|
+
variant: "body1",
|
|
61
|
+
align: "center"
|
|
62
|
+
}, subHeading), /*#__PURE__*/React.createElement(Link, {
|
|
63
|
+
href: link.url
|
|
64
|
+
}, /*#__PURE__*/React.createElement(material.Button, {
|
|
65
|
+
variant: "contained",
|
|
66
|
+
sx: {
|
|
67
|
+
width: "100%",
|
|
68
|
+
fontSize: "1.5rem"
|
|
69
|
+
}
|
|
70
|
+
}, link.text)))));
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
exports.HeroSection = HeroSection;
|
|
@@ -60,8 +60,12 @@ function NavBar(_ref) {
|
|
|
60
60
|
console.log(newValue);
|
|
61
61
|
setCurrentTab(newValue);
|
|
62
62
|
};
|
|
63
|
+
const theme = material.useTheme();
|
|
63
64
|
return /*#__PURE__*/React.createElement(material.AppBar, {
|
|
64
|
-
position: "sticky"
|
|
65
|
+
position: "sticky",
|
|
66
|
+
sx: {
|
|
67
|
+
backgroundColor: theme.palette.primary.main
|
|
68
|
+
}
|
|
65
69
|
}, /*#__PURE__*/React.createElement(material.Container, {
|
|
66
70
|
maxWidth: maxWidth
|
|
67
71
|
}, /*#__PURE__*/React.createElement(material.Toolbar, {
|
|
@@ -13,8 +13,8 @@ var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.j
|
|
|
13
13
|
var React = require('react');
|
|
14
14
|
var PropTypes = require('prop-types');
|
|
15
15
|
var TextImageBlock = require('./TextImageBlock.js');
|
|
16
|
-
var HeroSection = require('./
|
|
17
|
-
var FeaturesSection = require('./
|
|
16
|
+
var HeroSection = require('./HeroSection.js');
|
|
17
|
+
var FeaturesSection = require('./FeaturesSection.js');
|
|
18
18
|
|
|
19
19
|
function blockRenderer(block) {
|
|
20
20
|
switch (block.__component) {
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* UMWD-Components
|
|
3
|
+
* @copyright Jelle Paulus
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var React = require('react');
|
|
10
|
+
var Image = require('next/image');
|
|
11
|
+
var utils = require('../lib/utils.js');
|
|
12
|
+
|
|
13
|
+
function StrapiImage(_ref) {
|
|
14
|
+
let {
|
|
15
|
+
src,
|
|
16
|
+
alt,
|
|
17
|
+
height,
|
|
18
|
+
width,
|
|
19
|
+
style
|
|
20
|
+
} = _ref;
|
|
21
|
+
if (!src) return null;
|
|
22
|
+
const imageUrl = utils.getStrapiMedia(src);
|
|
23
|
+
const imageFallback = "https://placehold.co/".concat(width, "x").concat(height);
|
|
24
|
+
return /*#__PURE__*/React.createElement(Image, {
|
|
25
|
+
src: imageUrl !== null && imageUrl !== void 0 ? imageUrl : imageFallback,
|
|
26
|
+
alt: alt,
|
|
27
|
+
height: height,
|
|
28
|
+
width: width,
|
|
29
|
+
style: style
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
exports.StrapiImage = StrapiImage;
|
|
@@ -29,16 +29,22 @@ function TextImageBlock(_ref) {
|
|
|
29
29
|
|
|
30
30
|
/* TODO Text_content should deal with linebreaks */
|
|
31
31
|
|
|
32
|
-
return /*#__PURE__*/React.createElement(material.
|
|
32
|
+
return /*#__PURE__*/React.createElement(material.Container, {
|
|
33
|
+
maxWidth: "lg",
|
|
34
|
+
sx: {
|
|
35
|
+
my: 1
|
|
36
|
+
}
|
|
37
|
+
}, /*#__PURE__*/React.createElement(material.Grid, {
|
|
33
38
|
container: true,
|
|
34
39
|
sx: [{
|
|
35
|
-
|
|
36
|
-
|
|
40
|
+
margin: "auto",
|
|
41
|
+
p: 2
|
|
37
42
|
}, text === undefined && {
|
|
38
43
|
display: "grid",
|
|
39
44
|
alignItems: "center",
|
|
40
45
|
justifyContent: "center"
|
|
41
|
-
}]
|
|
46
|
+
}],
|
|
47
|
+
component: material.Paper
|
|
42
48
|
}, title && /*#__PURE__*/React.createElement(material.Grid, {
|
|
43
49
|
item: true,
|
|
44
50
|
xs: 12,
|
|
@@ -118,7 +124,7 @@ function TextImageBlock(_ref) {
|
|
|
118
124
|
width: image.width,
|
|
119
125
|
height: image.height,
|
|
120
126
|
alt: image.alt
|
|
121
|
-
})))));
|
|
127
|
+
}))))));
|
|
122
128
|
}
|
|
123
129
|
TextImageBlock.propTypes = {
|
|
124
130
|
title: PropTypes.string,
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* UMWD-Components
|
|
3
|
+
* @copyright Jelle Paulus
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { extends as _extends } from '../_virtual/_rollupPluginBabelHelpers.js';
|
|
8
|
+
import React from 'react';
|
|
9
|
+
import { Container, Stack, Card, CardContent, Typography } from '@mui/material';
|
|
10
|
+
|
|
11
|
+
function getIcon(name) {
|
|
12
|
+
switch (name) {
|
|
13
|
+
case "CLOCK_ICON":
|
|
14
|
+
return /*#__PURE__*/React.createElement(ClockIcon, {
|
|
15
|
+
className: "w-12 h-12 mb-4 text-gray-900"
|
|
16
|
+
});
|
|
17
|
+
case "CHECK_ICON":
|
|
18
|
+
return /*#__PURE__*/React.createElement(CheckIcon, {
|
|
19
|
+
className: "w-12 h-12 mb-4 text-gray-900"
|
|
20
|
+
});
|
|
21
|
+
case "CLOUD_ICON":
|
|
22
|
+
return /*#__PURE__*/React.createElement(CloudIcon, {
|
|
23
|
+
className: "w-12 h-12 mb-4 text-gray-900"
|
|
24
|
+
});
|
|
25
|
+
default:
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function FeatureSection(_ref) {
|
|
30
|
+
let {
|
|
31
|
+
data
|
|
32
|
+
} = _ref;
|
|
33
|
+
const {
|
|
34
|
+
feature
|
|
35
|
+
} = data;
|
|
36
|
+
return /*#__PURE__*/React.createElement(Container, {
|
|
37
|
+
maxWidth: "lg",
|
|
38
|
+
sx: {
|
|
39
|
+
my: 1
|
|
40
|
+
}
|
|
41
|
+
}, /*#__PURE__*/React.createElement(Stack, {
|
|
42
|
+
spacing: 2,
|
|
43
|
+
direction: "row",
|
|
44
|
+
sx: {
|
|
45
|
+
width: "100%",
|
|
46
|
+
height: "100%"
|
|
47
|
+
}
|
|
48
|
+
}, feature.map(feature => /*#__PURE__*/React.createElement(Card, {
|
|
49
|
+
key: feature.id,
|
|
50
|
+
sx: {
|
|
51
|
+
height: "100%",
|
|
52
|
+
minHeight: "250px",
|
|
53
|
+
width: "32%"
|
|
54
|
+
}
|
|
55
|
+
}, /*#__PURE__*/React.createElement(CardContent, {
|
|
56
|
+
sx: {
|
|
57
|
+
display: "flex",
|
|
58
|
+
flexDirection: "column",
|
|
59
|
+
alignItems: "center",
|
|
60
|
+
justifyContent: "center"
|
|
61
|
+
}
|
|
62
|
+
}, getIcon(feature.icon), /*#__PURE__*/React.createElement(Typography, {
|
|
63
|
+
variant: "h2",
|
|
64
|
+
align: "center"
|
|
65
|
+
}, feature.heading), /*#__PURE__*/React.createElement(Typography, {
|
|
66
|
+
variant: "body1",
|
|
67
|
+
align: "center"
|
|
68
|
+
}, feature.subHeading))))));
|
|
69
|
+
}
|
|
70
|
+
function CheckIcon(props) {
|
|
71
|
+
return /*#__PURE__*/React.createElement("svg", _extends({}, props, {
|
|
72
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
73
|
+
width: "24",
|
|
74
|
+
height: "24",
|
|
75
|
+
viewBox: "0 0 24 24",
|
|
76
|
+
fill: "none",
|
|
77
|
+
stroke: "currentColor",
|
|
78
|
+
strokeWidth: "2",
|
|
79
|
+
strokeLinecap: "round",
|
|
80
|
+
strokeLinejoin: "round"
|
|
81
|
+
}), /*#__PURE__*/React.createElement("polyline", {
|
|
82
|
+
points: "20 6 9 17 4 12"
|
|
83
|
+
}));
|
|
84
|
+
}
|
|
85
|
+
function ClockIcon(props) {
|
|
86
|
+
return /*#__PURE__*/React.createElement("svg", _extends({}, props, {
|
|
87
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
88
|
+
width: "24",
|
|
89
|
+
height: "24",
|
|
90
|
+
viewBox: "0 0 24 24",
|
|
91
|
+
fill: "none",
|
|
92
|
+
stroke: "currentColor",
|
|
93
|
+
strokeWidth: "2",
|
|
94
|
+
strokeLinecap: "round",
|
|
95
|
+
strokeLinejoin: "round"
|
|
96
|
+
}), /*#__PURE__*/React.createElement("circle", {
|
|
97
|
+
cx: "12",
|
|
98
|
+
cy: "12",
|
|
99
|
+
r: "10"
|
|
100
|
+
}), /*#__PURE__*/React.createElement("polyline", {
|
|
101
|
+
points: "12 6 12 12 16 14"
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
104
|
+
function CloudIcon(props) {
|
|
105
|
+
return /*#__PURE__*/React.createElement("svg", _extends({}, props, {
|
|
106
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
107
|
+
width: "24",
|
|
108
|
+
height: "24",
|
|
109
|
+
viewBox: "0 0 24 24",
|
|
110
|
+
fill: "none",
|
|
111
|
+
stroke: "currentColor",
|
|
112
|
+
strokeWidth: "2",
|
|
113
|
+
strokeLinecap: "round",
|
|
114
|
+
strokeLinejoin: "round"
|
|
115
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
116
|
+
d: "M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z"
|
|
117
|
+
}));
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export { FeatureSection };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* UMWD-Components
|
|
3
|
+
* @copyright Jelle Paulus
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import Link from 'next/link';
|
|
9
|
+
import { Box, Stack, Typography, Button } from '@mui/material';
|
|
10
|
+
import { StrapiImage } from './StrapiImage.js';
|
|
11
|
+
|
|
12
|
+
function HeroSection(_ref) {
|
|
13
|
+
let {
|
|
14
|
+
data
|
|
15
|
+
} = _ref;
|
|
16
|
+
const {
|
|
17
|
+
heading,
|
|
18
|
+
subHeading,
|
|
19
|
+
image,
|
|
20
|
+
link
|
|
21
|
+
} = data;
|
|
22
|
+
return /*#__PURE__*/React.createElement("header", {
|
|
23
|
+
className: "relative h-[600px] overflow-hidden"
|
|
24
|
+
}, /*#__PURE__*/React.createElement(Box, {
|
|
25
|
+
sx: {
|
|
26
|
+
display: "flex",
|
|
27
|
+
flexDirection: "column",
|
|
28
|
+
alignItems: "center",
|
|
29
|
+
justifyContent: "center",
|
|
30
|
+
width: "100vw",
|
|
31
|
+
overflow: "hidden",
|
|
32
|
+
backgroundColor: "pink",
|
|
33
|
+
minHeight: "600px"
|
|
34
|
+
}
|
|
35
|
+
}, /*#__PURE__*/React.createElement(StrapiImage, {
|
|
36
|
+
alt: "Background",
|
|
37
|
+
style: {
|
|
38
|
+
position: "absolute",
|
|
39
|
+
inset: 0,
|
|
40
|
+
objectFit: "cover",
|
|
41
|
+
width: "100%",
|
|
42
|
+
height: "100%"
|
|
43
|
+
},
|
|
44
|
+
height: 1080,
|
|
45
|
+
src: image.url,
|
|
46
|
+
width: 1920
|
|
47
|
+
}), /*#__PURE__*/React.createElement(Stack, {
|
|
48
|
+
spacing: 2,
|
|
49
|
+
sx: {
|
|
50
|
+
width: "max-content",
|
|
51
|
+
maxWidth: "600px",
|
|
52
|
+
zIndex: 1
|
|
53
|
+
}
|
|
54
|
+
}, /*#__PURE__*/React.createElement(Typography, {
|
|
55
|
+
variant: "h1",
|
|
56
|
+
align: "center"
|
|
57
|
+
}, heading), /*#__PURE__*/React.createElement(Typography, {
|
|
58
|
+
variant: "body1",
|
|
59
|
+
align: "center"
|
|
60
|
+
}, subHeading), /*#__PURE__*/React.createElement(Link, {
|
|
61
|
+
href: link.url
|
|
62
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
63
|
+
variant: "contained",
|
|
64
|
+
sx: {
|
|
65
|
+
width: "100%",
|
|
66
|
+
fontSize: "1.5rem"
|
|
67
|
+
}
|
|
68
|
+
}, link.text)))));
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export { HeroSection };
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import React from 'react';
|
|
9
9
|
import Link from 'next/link';
|
|
10
10
|
import Image from 'next/image';
|
|
11
|
-
import { AppBar, Container, Toolbar, Box, Typography, Button, Tabs, Tab, Dialog, List, ListItem, ListItemText, Divider } from '@mui/material';
|
|
11
|
+
import { useTheme, AppBar, Container, Toolbar, Box, Typography, Button, Tabs, Tab, Dialog, List, ListItem, ListItemText, Divider } from '@mui/material';
|
|
12
12
|
import CloseIcon from '@mui/icons-material/Close';
|
|
13
13
|
import MoreVertIcon from '@mui/icons-material/MoreVert';
|
|
14
14
|
import { useRouter } from 'next/navigation';
|
|
@@ -56,8 +56,12 @@ function NavBar(_ref) {
|
|
|
56
56
|
console.log(newValue);
|
|
57
57
|
setCurrentTab(newValue);
|
|
58
58
|
};
|
|
59
|
+
const theme = useTheme();
|
|
59
60
|
return /*#__PURE__*/React.createElement(AppBar, {
|
|
60
|
-
position: "sticky"
|
|
61
|
+
position: "sticky",
|
|
62
|
+
sx: {
|
|
63
|
+
backgroundColor: theme.palette.primary.main
|
|
64
|
+
}
|
|
61
65
|
}, /*#__PURE__*/React.createElement(Container, {
|
|
62
66
|
maxWidth: maxWidth
|
|
63
67
|
}, /*#__PURE__*/React.createElement(Toolbar, {
|
|
@@ -9,8 +9,8 @@ import { extends as _extends } from '../_virtual/_rollupPluginBabelHelpers.js';
|
|
|
9
9
|
import React from 'react';
|
|
10
10
|
import PropTypes from 'prop-types';
|
|
11
11
|
import TextImageBlock from './TextImageBlock.js';
|
|
12
|
-
import { HeroSection } from './
|
|
13
|
-
import { FeatureSection } from './
|
|
12
|
+
import { HeroSection } from './HeroSection.js';
|
|
13
|
+
import { FeatureSection } from './FeaturesSection.js';
|
|
14
14
|
|
|
15
15
|
function blockRenderer(block) {
|
|
16
16
|
switch (block.__component) {
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* UMWD-Components
|
|
3
|
+
* @copyright Jelle Paulus
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import Image from 'next/image';
|
|
9
|
+
import { getStrapiMedia } from '../lib/utils.js';
|
|
10
|
+
|
|
11
|
+
function StrapiImage(_ref) {
|
|
12
|
+
let {
|
|
13
|
+
src,
|
|
14
|
+
alt,
|
|
15
|
+
height,
|
|
16
|
+
width,
|
|
17
|
+
style
|
|
18
|
+
} = _ref;
|
|
19
|
+
if (!src) return null;
|
|
20
|
+
const imageUrl = getStrapiMedia(src);
|
|
21
|
+
const imageFallback = "https://placehold.co/".concat(width, "x").concat(height);
|
|
22
|
+
return /*#__PURE__*/React.createElement(Image, {
|
|
23
|
+
src: imageUrl !== null && imageUrl !== void 0 ? imageUrl : imageFallback,
|
|
24
|
+
alt: alt,
|
|
25
|
+
height: height,
|
|
26
|
+
width: width,
|
|
27
|
+
style: style
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export { StrapiImage };
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import React from 'react';
|
|
9
|
-
import { Grid, Typography, Box } from '@mui/material';
|
|
9
|
+
import { Container, Grid, Paper, Typography, Box } from '@mui/material';
|
|
10
10
|
import Image from 'next/image';
|
|
11
11
|
import { MuiMarkdown } from 'mui-markdown';
|
|
12
12
|
import PropTypes from 'prop-types';
|
|
@@ -25,16 +25,22 @@ function TextImageBlock(_ref) {
|
|
|
25
25
|
|
|
26
26
|
/* TODO Text_content should deal with linebreaks */
|
|
27
27
|
|
|
28
|
-
return /*#__PURE__*/React.createElement(
|
|
28
|
+
return /*#__PURE__*/React.createElement(Container, {
|
|
29
|
+
maxWidth: "lg",
|
|
30
|
+
sx: {
|
|
31
|
+
my: 1
|
|
32
|
+
}
|
|
33
|
+
}, /*#__PURE__*/React.createElement(Grid, {
|
|
29
34
|
container: true,
|
|
30
35
|
sx: [{
|
|
31
|
-
|
|
32
|
-
|
|
36
|
+
margin: "auto",
|
|
37
|
+
p: 2
|
|
33
38
|
}, text === undefined && {
|
|
34
39
|
display: "grid",
|
|
35
40
|
alignItems: "center",
|
|
36
41
|
justifyContent: "center"
|
|
37
|
-
}]
|
|
42
|
+
}],
|
|
43
|
+
component: Paper
|
|
38
44
|
}, title && /*#__PURE__*/React.createElement(Grid, {
|
|
39
45
|
item: true,
|
|
40
46
|
xs: 12,
|
|
@@ -114,7 +120,7 @@ function TextImageBlock(_ref) {
|
|
|
114
120
|
width: image.width,
|
|
115
121
|
height: image.height,
|
|
116
122
|
alt: image.alt
|
|
117
|
-
})))));
|
|
123
|
+
}))))));
|
|
118
124
|
}
|
|
119
125
|
TextImageBlock.propTypes = {
|
|
120
126
|
title: PropTypes.string,
|
package/package.json
CHANGED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Stack, Card, CardContent, Typography, Container } from "@mui/material";
|
|
3
|
+
|
|
4
|
+
function getIcon(name: string) {
|
|
5
|
+
switch (name) {
|
|
6
|
+
case "CLOCK_ICON":
|
|
7
|
+
return <ClockIcon className="w-12 h-12 mb-4 text-gray-900" />;
|
|
8
|
+
case "CHECK_ICON":
|
|
9
|
+
return <CheckIcon className="w-12 h-12 mb-4 text-gray-900" />;
|
|
10
|
+
case "CLOUD_ICON":
|
|
11
|
+
return <CloudIcon className="w-12 h-12 mb-4 text-gray-900" />;
|
|
12
|
+
default:
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
interface FeatureProps {
|
|
18
|
+
id: number;
|
|
19
|
+
heading: string;
|
|
20
|
+
subHeading: string;
|
|
21
|
+
icon: string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
interface FeatureSectionProps {
|
|
25
|
+
id: number;
|
|
26
|
+
__component: string;
|
|
27
|
+
title: string;
|
|
28
|
+
description: string;
|
|
29
|
+
feature: FeatureProps[];
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export function FeatureSection({
|
|
33
|
+
data,
|
|
34
|
+
}: {
|
|
35
|
+
readonly data: FeatureSectionProps;
|
|
36
|
+
}) {
|
|
37
|
+
const { feature } = data;
|
|
38
|
+
return (
|
|
39
|
+
<Container maxWidth="lg" sx={{ my: 1 }}>
|
|
40
|
+
<Stack spacing={2} direction="row" sx={{ width: "100%", height: "100%" }}>
|
|
41
|
+
{feature.map((feature) => (
|
|
42
|
+
<Card
|
|
43
|
+
key={feature.id}
|
|
44
|
+
sx={{ height: "100%", minHeight: "250px", width: "32%" }}
|
|
45
|
+
>
|
|
46
|
+
<CardContent
|
|
47
|
+
sx={{
|
|
48
|
+
display: "flex",
|
|
49
|
+
flexDirection: "column",
|
|
50
|
+
alignItems: "center",
|
|
51
|
+
justifyContent: "center",
|
|
52
|
+
}}
|
|
53
|
+
>
|
|
54
|
+
{getIcon(feature.icon)}
|
|
55
|
+
<Typography variant="h2" align="center">
|
|
56
|
+
{feature.heading}
|
|
57
|
+
</Typography>
|
|
58
|
+
<Typography variant="body1" align="center">
|
|
59
|
+
{feature.subHeading}
|
|
60
|
+
</Typography>
|
|
61
|
+
</CardContent>
|
|
62
|
+
</Card>
|
|
63
|
+
))}
|
|
64
|
+
</Stack>
|
|
65
|
+
</Container>
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function CheckIcon(props: any) {
|
|
70
|
+
return (
|
|
71
|
+
<svg
|
|
72
|
+
{...props}
|
|
73
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
74
|
+
width="24"
|
|
75
|
+
height="24"
|
|
76
|
+
viewBox="0 0 24 24"
|
|
77
|
+
fill="none"
|
|
78
|
+
stroke="currentColor"
|
|
79
|
+
strokeWidth="2"
|
|
80
|
+
strokeLinecap="round"
|
|
81
|
+
strokeLinejoin="round"
|
|
82
|
+
>
|
|
83
|
+
<polyline points="20 6 9 17 4 12" />
|
|
84
|
+
</svg>
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function ClockIcon(props: any) {
|
|
89
|
+
return (
|
|
90
|
+
<svg
|
|
91
|
+
{...props}
|
|
92
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
93
|
+
width="24"
|
|
94
|
+
height="24"
|
|
95
|
+
viewBox="0 0 24 24"
|
|
96
|
+
fill="none"
|
|
97
|
+
stroke="currentColor"
|
|
98
|
+
strokeWidth="2"
|
|
99
|
+
strokeLinecap="round"
|
|
100
|
+
strokeLinejoin="round"
|
|
101
|
+
>
|
|
102
|
+
<circle cx="12" cy="12" r="10" />
|
|
103
|
+
<polyline points="12 6 12 12 16 14" />
|
|
104
|
+
</svg>
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
function CloudIcon(props: any) {
|
|
109
|
+
return (
|
|
110
|
+
<svg
|
|
111
|
+
{...props}
|
|
112
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
113
|
+
width="24"
|
|
114
|
+
height="24"
|
|
115
|
+
viewBox="0 0 24 24"
|
|
116
|
+
fill="none"
|
|
117
|
+
stroke="currentColor"
|
|
118
|
+
strokeWidth="2"
|
|
119
|
+
strokeLinecap="round"
|
|
120
|
+
strokeLinejoin="round"
|
|
121
|
+
>
|
|
122
|
+
<path d="M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z" />
|
|
123
|
+
</svg>
|
|
124
|
+
);
|
|
125
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Link from "next/link";
|
|
3
|
+
import { Box, Button, Stack, Typography } from "@mui/material";
|
|
4
|
+
import { StrapiImage } from "./StrapiImage.tsx";
|
|
5
|
+
|
|
6
|
+
interface ImageProps {
|
|
7
|
+
id: number;
|
|
8
|
+
url: string;
|
|
9
|
+
alternativeText: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
interface LinkProps {
|
|
13
|
+
id: number;
|
|
14
|
+
url: string;
|
|
15
|
+
text: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
interface HeroSectionProps {
|
|
19
|
+
data: {
|
|
20
|
+
id: number;
|
|
21
|
+
__component: string;
|
|
22
|
+
heading: string;
|
|
23
|
+
subHeading: string;
|
|
24
|
+
image: ImageProps;
|
|
25
|
+
link: LinkProps;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function HeroSection({ data }: Readonly<HeroSectionProps>) {
|
|
30
|
+
const { heading, subHeading, image, link } = data;
|
|
31
|
+
|
|
32
|
+
return (
|
|
33
|
+
<header className="relative h-[600px] overflow-hidden">
|
|
34
|
+
<Box
|
|
35
|
+
sx={{
|
|
36
|
+
display: "flex",
|
|
37
|
+
flexDirection: "column",
|
|
38
|
+
alignItems: "center",
|
|
39
|
+
justifyContent: "center",
|
|
40
|
+
width: "100vw",
|
|
41
|
+
overflow: "hidden",
|
|
42
|
+
backgroundColor: "pink",
|
|
43
|
+
minHeight: "600px",
|
|
44
|
+
}}
|
|
45
|
+
>
|
|
46
|
+
<StrapiImage
|
|
47
|
+
alt="Background"
|
|
48
|
+
style={{
|
|
49
|
+
position: "absolute",
|
|
50
|
+
inset: 0,
|
|
51
|
+
objectFit: "cover",
|
|
52
|
+
width: "100%",
|
|
53
|
+
height: "100%",
|
|
54
|
+
}}
|
|
55
|
+
height={1080}
|
|
56
|
+
src={image.url}
|
|
57
|
+
width={1920}
|
|
58
|
+
/>
|
|
59
|
+
<Stack
|
|
60
|
+
spacing={2}
|
|
61
|
+
sx={{ width: "max-content", maxWidth: "600px", zIndex: 1 }}
|
|
62
|
+
>
|
|
63
|
+
<Typography variant="h1" align="center">
|
|
64
|
+
{heading}
|
|
65
|
+
</Typography>
|
|
66
|
+
<Typography variant="body1" align="center">
|
|
67
|
+
{subHeading}
|
|
68
|
+
</Typography>
|
|
69
|
+
<Link href={link.url}>
|
|
70
|
+
<Button
|
|
71
|
+
variant="contained"
|
|
72
|
+
sx={{ width: "100%", fontSize: "1.5rem" }}
|
|
73
|
+
>
|
|
74
|
+
{link.text}
|
|
75
|
+
</Button>
|
|
76
|
+
</Link>
|
|
77
|
+
</Stack>
|
|
78
|
+
</Box>
|
|
79
|
+
</header>
|
|
80
|
+
);
|
|
81
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Link from "next/link";
|
|
3
|
+
|
|
4
|
+
function MountainIcon(props: any) {
|
|
5
|
+
return (
|
|
6
|
+
<svg
|
|
7
|
+
{...props}
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
width="24"
|
|
10
|
+
height="24"
|
|
11
|
+
viewBox="0 0 24 24"
|
|
12
|
+
fill="none"
|
|
13
|
+
stroke="currentColor"
|
|
14
|
+
strokeWidth="2"
|
|
15
|
+
strokeLinecap="round"
|
|
16
|
+
strokeLinejoin="round"
|
|
17
|
+
>
|
|
18
|
+
<path d="m8 3 4 8 5-5 5 15H2L8 3z" />
|
|
19
|
+
</svg>
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
interface LogoProps {
|
|
24
|
+
text?: string;
|
|
25
|
+
dark?: boolean;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export function Logo({
|
|
29
|
+
text = "Logo Text",
|
|
30
|
+
dark = false,
|
|
31
|
+
}: Readonly<LogoProps>) {
|
|
32
|
+
return (
|
|
33
|
+
<Link className="flex items-center gap-2" href="/">
|
|
34
|
+
<MountainIcon className={"h-6 w-6 text-pink-500"} />
|
|
35
|
+
<span
|
|
36
|
+
className={`text-lg font-semibold ${
|
|
37
|
+
dark ? "text-white" : "text-slate-900"
|
|
38
|
+
}`}
|
|
39
|
+
>
|
|
40
|
+
{text}
|
|
41
|
+
</span>
|
|
42
|
+
</Link>
|
|
43
|
+
);
|
|
44
|
+
}
|
package/src/components/NavBar.js
CHANGED
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
ListItemText,
|
|
19
19
|
Tabs,
|
|
20
20
|
Tab,
|
|
21
|
+
useTheme,
|
|
21
22
|
} from "@mui/material";
|
|
22
23
|
|
|
23
24
|
import CloseIcon from "@mui/icons-material/Close";
|
|
@@ -78,8 +79,13 @@ function NavBar({
|
|
|
78
79
|
setCurrentTab(newValue);
|
|
79
80
|
};
|
|
80
81
|
|
|
82
|
+
const theme = useTheme();
|
|
83
|
+
|
|
81
84
|
return (
|
|
82
|
-
<AppBar
|
|
85
|
+
<AppBar
|
|
86
|
+
position="sticky"
|
|
87
|
+
sx={{ backgroundColor: theme.palette.primary.main }}
|
|
88
|
+
>
|
|
83
89
|
<Container maxWidth={maxWidth}>
|
|
84
90
|
<Toolbar
|
|
85
91
|
disableGutters
|
package/src/components/Page.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
import React from "react";
|
|
4
4
|
import PropTypes from "prop-types";
|
|
5
5
|
import TextImageBlock from "./TextImageBlock";
|
|
6
|
-
import { HeroSection } from "./
|
|
7
|
-
import { FeatureSection } from "./
|
|
6
|
+
import { HeroSection } from "./HeroSection.tsx";
|
|
7
|
+
import { FeatureSection } from "./FeaturesSection.tsx";
|
|
8
8
|
|
|
9
9
|
function blockRenderer(block) {
|
|
10
10
|
switch (block.__component) {
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Image from "next/image";
|
|
3
|
+
import { getStrapiMedia } from "../lib/utils.ts";
|
|
4
|
+
|
|
5
|
+
interface StrapiImageProps {
|
|
6
|
+
src: string;
|
|
7
|
+
alt: string;
|
|
8
|
+
height: number;
|
|
9
|
+
width: number;
|
|
10
|
+
style: React.CSSProperties;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function StrapiImage({
|
|
14
|
+
src,
|
|
15
|
+
alt,
|
|
16
|
+
height,
|
|
17
|
+
width,
|
|
18
|
+
style,
|
|
19
|
+
}: Readonly<StrapiImageProps>) {
|
|
20
|
+
if (!src) return null;
|
|
21
|
+
const imageUrl = getStrapiMedia(src);
|
|
22
|
+
const imageFallback = `https://placehold.co/${width}x${height}`;
|
|
23
|
+
|
|
24
|
+
return (
|
|
25
|
+
<Image
|
|
26
|
+
src={imageUrl ?? imageFallback}
|
|
27
|
+
alt={alt}
|
|
28
|
+
height={height}
|
|
29
|
+
width={width}
|
|
30
|
+
style={style}
|
|
31
|
+
/>
|
|
32
|
+
);
|
|
33
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
import React from "react";
|
|
4
|
-
import { Box, Grid, Typography } from "@mui/material";
|
|
4
|
+
import { Box, Container, Grid, Paper, Typography } from "@mui/material";
|
|
5
5
|
import Image from "next/image";
|
|
6
6
|
import { MuiMarkdown } from "mui-markdown";
|
|
7
7
|
import PropTypes from "prop-types";
|
|
@@ -14,131 +14,134 @@ function TextImageBlock({ title, text, image, reverse, maxWidth, minHeight }) {
|
|
|
14
14
|
/* TODO Text_content should deal with linebreaks */
|
|
15
15
|
|
|
16
16
|
return (
|
|
17
|
-
<
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
{
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
alignItems: "center",
|
|
24
|
-
justifyContent: "center",
|
|
25
|
-
},
|
|
26
|
-
]}
|
|
27
|
-
>
|
|
28
|
-
{title && (
|
|
29
|
-
<Grid
|
|
30
|
-
item
|
|
31
|
-
xs={12}
|
|
32
|
-
sx={{
|
|
33
|
-
p: 1,
|
|
17
|
+
<Container maxWidth="lg" sx={{ my: 1 }}>
|
|
18
|
+
<Grid
|
|
19
|
+
container
|
|
20
|
+
sx={[
|
|
21
|
+
{ margin: "auto", p: 2 },
|
|
22
|
+
text === undefined && {
|
|
34
23
|
display: "grid",
|
|
35
24
|
alignItems: "center",
|
|
36
25
|
justifyContent: "center",
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
26
|
+
},
|
|
27
|
+
]}
|
|
28
|
+
component={Paper}
|
|
29
|
+
>
|
|
30
|
+
{title && (
|
|
31
|
+
<Grid
|
|
32
|
+
item
|
|
33
|
+
xs={12}
|
|
34
|
+
sx={{
|
|
35
|
+
p: 1,
|
|
36
|
+
display: "grid",
|
|
37
|
+
alignItems: "center",
|
|
38
|
+
justifyContent: "center",
|
|
39
|
+
}}
|
|
40
|
+
>
|
|
41
|
+
<Typography variant="h1">{title}</Typography>
|
|
42
|
+
</Grid>
|
|
43
|
+
)}
|
|
44
|
+
{reverse ? (
|
|
45
|
+
<>
|
|
46
|
+
{image?.url !== undefined && (
|
|
47
|
+
<Grid
|
|
48
|
+
item
|
|
49
|
+
xs={text !== null && text !== undefined ? 6 : 12}
|
|
57
50
|
sx={{
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
display: "flex",
|
|
51
|
+
padding: "10px",
|
|
52
|
+
minHeight: minHeight || "300px",
|
|
53
|
+
display: "grid",
|
|
62
54
|
alignItems: "center",
|
|
63
55
|
justifyContent: "center",
|
|
64
56
|
}}
|
|
65
57
|
>
|
|
66
|
-
<
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
)}
|
|
90
|
-
</>
|
|
91
|
-
) : (
|
|
92
|
-
<>
|
|
93
|
-
{text && (
|
|
94
|
-
<Grid
|
|
95
|
-
item
|
|
96
|
-
xs={image?.url !== undefined ? 6 : 12}
|
|
97
|
-
sx={{
|
|
98
|
-
p: 1,
|
|
99
|
-
minHeight: minHeight || "300px",
|
|
100
|
-
display: "grid",
|
|
101
|
-
alignItems: "center",
|
|
102
|
-
justifyContent: "center",
|
|
103
|
-
}}
|
|
104
|
-
>
|
|
105
|
-
<MuiMarkdown>{text}</MuiMarkdown>
|
|
106
|
-
</Grid>
|
|
107
|
-
)}
|
|
108
|
-
{image?.url !== undefined && (
|
|
109
|
-
<Grid
|
|
110
|
-
item
|
|
111
|
-
xs={text !== null && text !== undefined ? 6 : 12}
|
|
112
|
-
sx={{
|
|
113
|
-
padding: "10px",
|
|
114
|
-
minHeight: minHeight || "300px",
|
|
115
|
-
display: "grid",
|
|
116
|
-
alignItems: "center",
|
|
117
|
-
justifyContent: "center",
|
|
118
|
-
}}
|
|
119
|
-
>
|
|
120
|
-
<Box
|
|
58
|
+
<Box
|
|
59
|
+
sx={{
|
|
60
|
+
width: "100%",
|
|
61
|
+
height: "100%",
|
|
62
|
+
overflow: "hidden",
|
|
63
|
+
display: "flex",
|
|
64
|
+
alignItems: "center",
|
|
65
|
+
justifyContent: "center",
|
|
66
|
+
}}
|
|
67
|
+
>
|
|
68
|
+
<Image
|
|
69
|
+
src={image.url}
|
|
70
|
+
width={image.width}
|
|
71
|
+
height={image.height}
|
|
72
|
+
alt={image.name}
|
|
73
|
+
/>
|
|
74
|
+
</Box>
|
|
75
|
+
</Grid>
|
|
76
|
+
)}
|
|
77
|
+
{text !== null && text !== undefined && (
|
|
78
|
+
<Grid
|
|
79
|
+
item
|
|
80
|
+
xs={image?.url !== undefined ? 6 : 12}
|
|
121
81
|
sx={{
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
display: "flex",
|
|
82
|
+
p: 1,
|
|
83
|
+
minHeight: minHeight || "300px",
|
|
84
|
+
display: "grid",
|
|
126
85
|
alignItems: "center",
|
|
127
86
|
justifyContent: "center",
|
|
128
87
|
}}
|
|
129
88
|
>
|
|
130
|
-
<
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
89
|
+
<MuiMarkdown>{text}</MuiMarkdown>
|
|
90
|
+
</Grid>
|
|
91
|
+
)}
|
|
92
|
+
</>
|
|
93
|
+
) : (
|
|
94
|
+
<>
|
|
95
|
+
{text && (
|
|
96
|
+
<Grid
|
|
97
|
+
item
|
|
98
|
+
xs={image?.url !== undefined ? 6 : 12}
|
|
99
|
+
sx={{
|
|
100
|
+
p: 1,
|
|
101
|
+
minHeight: minHeight || "300px",
|
|
102
|
+
display: "grid",
|
|
103
|
+
alignItems: "center",
|
|
104
|
+
justifyContent: "center",
|
|
105
|
+
}}
|
|
106
|
+
>
|
|
107
|
+
<MuiMarkdown>{text}</MuiMarkdown>
|
|
108
|
+
</Grid>
|
|
109
|
+
)}
|
|
110
|
+
{image?.url !== undefined && (
|
|
111
|
+
<Grid
|
|
112
|
+
item
|
|
113
|
+
xs={text !== null && text !== undefined ? 6 : 12}
|
|
114
|
+
sx={{
|
|
115
|
+
padding: "10px",
|
|
116
|
+
minHeight: minHeight || "300px",
|
|
117
|
+
display: "grid",
|
|
118
|
+
alignItems: "center",
|
|
119
|
+
justifyContent: "center",
|
|
120
|
+
}}
|
|
121
|
+
>
|
|
122
|
+
<Box
|
|
123
|
+
sx={{
|
|
124
|
+
width: "100%",
|
|
125
|
+
height: "100%",
|
|
126
|
+
overflow: "hidden",
|
|
127
|
+
display: "flex",
|
|
128
|
+
alignItems: "center",
|
|
129
|
+
justifyContent: "center",
|
|
130
|
+
}}
|
|
131
|
+
>
|
|
132
|
+
<Image
|
|
133
|
+
src={image.url}
|
|
134
|
+
width={image.width}
|
|
135
|
+
height={image.height}
|
|
136
|
+
alt={image.alt}
|
|
137
|
+
/>
|
|
138
|
+
</Box>
|
|
139
|
+
</Grid>
|
|
140
|
+
)}
|
|
141
|
+
</>
|
|
142
|
+
)}
|
|
143
|
+
</Grid>
|
|
144
|
+
</Container>
|
|
142
145
|
);
|
|
143
146
|
}
|
|
144
147
|
|
|
@@ -42,13 +42,13 @@ HelloWorld.args = {
|
|
|
42
42
|
id: 1,
|
|
43
43
|
heading: "Resources",
|
|
44
44
|
subHeading: "A place for all your resources",
|
|
45
|
-
icon: "
|
|
45
|
+
icon: "CLOUD_ICON",
|
|
46
46
|
},
|
|
47
47
|
{
|
|
48
48
|
id: 2,
|
|
49
49
|
heading: "Contact",
|
|
50
50
|
subHeading: "A place for all your resources",
|
|
51
|
-
icon: "
|
|
51
|
+
icon: "CHECK_ICON",
|
|
52
52
|
},
|
|
53
53
|
],
|
|
54
54
|
},
|