umwd-components 0.1.116 → 0.1.117

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.
Files changed (145) hide show
  1. package/dist/cjs/components/BlockRendererClient.js +93 -0
  2. package/dist/cjs/components/BulletList.js +43 -0
  3. package/dist/cjs/components/Button.js +45 -0
  4. package/dist/cjs/components/ColumnsSection.js +69 -0
  5. package/dist/cjs/components/ContactForm.js +223 -0
  6. package/dist/cjs/components/FeaturesSection.js +100 -0
  7. package/dist/cjs/components/FleetSection.js +153 -0
  8. package/dist/cjs/components/Footer.js +211 -0
  9. package/dist/cjs/components/HeroSection.js +100 -0
  10. package/dist/cjs/components/IconSection.js +67 -0
  11. package/dist/cjs/components/MuiLink.js +27 -0
  12. package/dist/cjs/components/NavBar.js +307 -0
  13. package/dist/cjs/components/Page.js +89 -0
  14. package/dist/cjs/components/PersonaliaSection.js +100 -0
  15. package/dist/cjs/components/Stack.js +37 -0
  16. package/dist/cjs/components/StrapiImage.js +33 -0
  17. package/dist/cjs/components/TextImageSection.js +94 -0
  18. package/dist/cjs/components/WebsitePlaceholder.js +129 -0
  19. package/dist/cjs/components/WhatsAppClickToChatButton.js +78 -0
  20. package/dist/cjs/index.js +31 -0
  21. package/dist/cjs/lib/AmbulanceIcon.js +45 -0
  22. package/dist/cjs/lib/getIcon.js +97 -0
  23. package/dist/cjs/lib/utils.js +57 -0
  24. package/dist/esm/components/BlockRendererClient.js +91 -0
  25. package/dist/esm/components/BulletList.js +39 -0
  26. package/dist/esm/components/Button.js +41 -0
  27. package/dist/esm/components/ColumnsSection.js +67 -0
  28. package/dist/esm/components/ContactForm.js +219 -0
  29. package/dist/esm/components/FeaturesSection.js +98 -0
  30. package/dist/esm/components/FleetSection.js +151 -0
  31. package/dist/esm/components/Footer.js +207 -0
  32. package/dist/esm/components/HeroSection.js +98 -0
  33. package/dist/esm/components/IconSection.js +65 -0
  34. package/dist/esm/components/MuiLink.js +25 -0
  35. package/dist/esm/components/NavBar.js +303 -0
  36. package/dist/esm/components/Page.js +85 -0
  37. package/dist/esm/components/PersonaliaSection.js +98 -0
  38. package/dist/esm/components/Stack.js +33 -0
  39. package/dist/esm/components/StrapiImage.js +31 -0
  40. package/dist/esm/components/TextImageSection.js +90 -0
  41. package/dist/esm/components/WebsitePlaceholder.js +125 -0
  42. package/dist/esm/components/WhatsAppClickToChatButton.js +74 -0
  43. package/dist/esm/index.js +16 -0
  44. package/dist/esm/lib/AmbulanceIcon.js +22 -0
  45. package/dist/esm/lib/getIcon.js +93 -0
  46. package/dist/esm/lib/utils.js +53 -0
  47. package/package.json +4 -4
  48. package/src/components/BlockRendererClient.tsx +2 -0
  49. package/src/components/PersonaliaSection.tsx +2 -0
  50. package/.next/app-build-manifest.json +0 -14
  51. package/.next/build-manifest.json +0 -19
  52. package/.next/cache/webpack/client-development/0.pack.gz +0 -0
  53. package/.next/cache/webpack/client-development/1.pack.gz +0 -0
  54. package/.next/cache/webpack/client-development/2.pack.gz +0 -0
  55. package/.next/cache/webpack/client-development/3.pack.gz +0 -0
  56. package/.next/cache/webpack/client-development/4.pack.gz +0 -0
  57. package/.next/cache/webpack/client-development/index.pack.gz +0 -0
  58. package/.next/cache/webpack/client-development/index.pack.gz.old +0 -0
  59. package/.next/cache/webpack/client-development-fallback/0.pack.gz +0 -0
  60. package/.next/cache/webpack/client-development-fallback/index.pack.gz.old +0 -0
  61. package/.next/cache/webpack/server-development/0.pack.gz +0 -0
  62. package/.next/cache/webpack/server-development/1.pack.gz +0 -0
  63. package/.next/cache/webpack/server-development/2.pack.gz +0 -0
  64. package/.next/cache/webpack/server-development/3.pack.gz +0 -0
  65. package/.next/cache/webpack/server-development/4.pack.gz +0 -0
  66. package/.next/cache/webpack/server-development/5.pack.gz +0 -0
  67. package/.next/cache/webpack/server-development/6.pack.gz +0 -0
  68. package/.next/cache/webpack/server-development/7.pack.gz +0 -0
  69. package/.next/cache/webpack/server-development/8.pack.gz +0 -0
  70. package/.next/cache/webpack/server-development/9.pack.gz +0 -0
  71. package/.next/cache/webpack/server-development/index.pack.gz +0 -0
  72. package/.next/cache/webpack/server-development/index.pack.gz.old +0 -0
  73. package/.next/fallback-build-manifest.json +0 -27
  74. package/.next/package.json +0 -1
  75. package/.next/react-loadable-manifest.json +0 -1
  76. package/.next/server/_error.js +0 -76
  77. package/.next/server/app/_not-found_client-reference-manifest.js +0 -1
  78. package/.next/server/app/not-found.js +0 -144
  79. package/.next/server/app/not-found_client-reference-manifest.js +0 -1
  80. package/.next/server/app/page.js +0 -443
  81. package/.next/server/app-paths-manifest.json +0 -3
  82. package/.next/server/middleware-build-manifest.js +0 -1
  83. package/.next/server/middleware-manifest.json +0 -6
  84. package/.next/server/middleware-react-loadable-manifest.js +0 -1
  85. package/.next/server/next-font-manifest.js +0 -1
  86. package/.next/server/next-font-manifest.json +0 -1
  87. package/.next/server/pages/_app.js +0 -46
  88. package/.next/server/pages/_document.js +0 -66
  89. package/.next/server/pages/_error.js +0 -76
  90. package/.next/server/pages-manifest.json +0 -5
  91. package/.next/server/server-reference-manifest.js +0 -1
  92. package/.next/server/server-reference-manifest.json +0 -5
  93. package/.next/server/vendor-chunks/@babel.js +0 -85
  94. package/.next/server/vendor-chunks/@emotion.js +0 -165
  95. package/.next/server/vendor-chunks/@mui.js +0 -3999
  96. package/.next/server/vendor-chunks/@popperjs.js +0 -575
  97. package/.next/server/vendor-chunks/@strapi.js +0 -87
  98. package/.next/server/vendor-chunks/call-bind.js +0 -35
  99. package/.next/server/vendor-chunks/clsx.js +0 -25
  100. package/.next/server/vendor-chunks/define-data-property.js +0 -25
  101. package/.next/server/vendor-chunks/es-define-property.js +0 -25
  102. package/.next/server/vendor-chunks/es-errors.js +0 -85
  103. package/.next/server/vendor-chunks/function-bind.js +0 -35
  104. package/.next/server/vendor-chunks/get-intrinsic.js +0 -25
  105. package/.next/server/vendor-chunks/gopd.js +0 -25
  106. package/.next/server/vendor-chunks/has-property-descriptors.js +0 -25
  107. package/.next/server/vendor-chunks/has-proto.js +0 -25
  108. package/.next/server/vendor-chunks/has-symbols.js +0 -35
  109. package/.next/server/vendor-chunks/hasown.js +0 -25
  110. package/.next/server/vendor-chunks/hoist-non-react-statics.js +0 -45
  111. package/.next/server/vendor-chunks/markdown-to-jsx.js +0 -25
  112. package/.next/server/vendor-chunks/mui-markdown.js +0 -25
  113. package/.next/server/vendor-chunks/next.js +0 -2765
  114. package/.next/server/vendor-chunks/object-assign.js +0 -35
  115. package/.next/server/vendor-chunks/object-inspect.js +0 -35
  116. package/.next/server/vendor-chunks/prop-types.js +0 -155
  117. package/.next/server/vendor-chunks/qs.js +0 -65
  118. package/.next/server/vendor-chunks/react-is.js +0 -35
  119. package/.next/server/vendor-chunks/react-transition-group.js +0 -85
  120. package/.next/server/vendor-chunks/set-function-length.js +0 -25
  121. package/.next/server/vendor-chunks/side-channel.js +0 -25
  122. package/.next/server/vendor-chunks/stylis.js +0 -85
  123. package/.next/server/vendor-chunks/validator.js +0 -75
  124. package/.next/server/webpack-runtime.js +0 -215
  125. package/.next/static/chunks/app/layout.js +0 -28
  126. package/.next/static/chunks/app/not-found.js +0 -39
  127. package/.next/static/chunks/app-pages-internals.js +0 -116
  128. package/.next/static/chunks/fallback/amp.js +0 -1182
  129. package/.next/static/chunks/fallback/main.js +0 -1626
  130. package/.next/static/chunks/fallback/pages/_app.js +0 -28
  131. package/.next/static/chunks/fallback/pages/_error.js +0 -28
  132. package/.next/static/chunks/fallback/react-refresh.js +0 -62
  133. package/.next/static/chunks/fallback/webpack.js +0 -1219
  134. package/.next/static/chunks/main-app.js +0 -2238
  135. package/.next/static/chunks/polyfills.js +0 -1
  136. package/.next/static/chunks/webpack.js +0 -1405
  137. package/.next/static/development/_buildManifest.js +0 -1
  138. package/.next/static/development/_ssgManifest.js +0 -1
  139. package/.next/static/webpack/250113d3f66f1de5.webpack.hot-update.json +0 -1
  140. package/.next/static/webpack/633457081244afec._.hot-update.json +0 -1
  141. package/.next/static/webpack/webpack.250113d3f66f1de5.hot-update.js +0 -48
  142. package/.next/trace +0 -110
  143. package/.next/types/app/layout.ts +0 -79
  144. package/.next/types/app/page.ts +0 -79
  145. package/.next/types/package.json +0 -1
@@ -0,0 +1,93 @@
1
+ "use client";
2
+ /*
3
+ * UMWD-Components
4
+ * @copyright Jelle Paulus
5
+ * @license MIT
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ var React = require('react');
11
+ var blocksReactRenderer = require('@strapi/blocks-react-renderer');
12
+ var material = require('@mui/material');
13
+
14
+ function BlockRendererClient(_ref) {
15
+ let {
16
+ content
17
+ } = _ref;
18
+ if (!content) return null;
19
+ return /*#__PURE__*/React.createElement(blocksReactRenderer.BlocksRenderer, {
20
+ content: content,
21
+ blocks: {
22
+ // You can use the default components to set class names...
23
+ paragraph: _ref2 => {
24
+ let {
25
+ children
26
+ } = _ref2;
27
+ return /*#__PURE__*/React.createElement(material.Typography, {
28
+ variant: "body1",
29
+ sx: {
30
+ mb: 2
31
+ }
32
+ }, children);
33
+ },
34
+ // ...or point to a design system
35
+ heading: _ref3 => {
36
+ let {
37
+ children,
38
+ level
39
+ } = _ref3;
40
+ switch (level) {
41
+ case 1:
42
+ return /*#__PURE__*/React.createElement(material.Typography, {
43
+ variant: "h1"
44
+ }, children);
45
+ case 2:
46
+ return /*#__PURE__*/React.createElement(material.Typography, {
47
+ variant: "h2"
48
+ }, children);
49
+ case 3:
50
+ return /*#__PURE__*/React.createElement(material.Typography, {
51
+ variant: "h3"
52
+ }, children);
53
+ case 4:
54
+ return /*#__PURE__*/React.createElement(material.Typography, {
55
+ variant: "h4"
56
+ }, children);
57
+ case 5:
58
+ return /*#__PURE__*/React.createElement(material.Typography, {
59
+ variant: "h5"
60
+ }, children);
61
+ case 6:
62
+ return /*#__PURE__*/React.createElement(material.Typography, {
63
+ variant: "h6"
64
+ }, children);
65
+ default:
66
+ return /*#__PURE__*/React.createElement(material.Typography, {
67
+ variant: "h1"
68
+ }, children);
69
+ }
70
+ }
71
+ // For links, you may want to use the component from your router or framework
72
+ // link: ({ children, url }) => <Link to={url}>{children}</Link>,
73
+ },
74
+ modifiers: {
75
+ bold: _ref4 => {
76
+ let {
77
+ children
78
+ } = _ref4;
79
+ return /*#__PURE__*/React.createElement("strong", null, children);
80
+ },
81
+ italic: _ref5 => {
82
+ let {
83
+ children
84
+ } = _ref5;
85
+ return /*#__PURE__*/React.createElement("span", {
86
+ className: "italic"
87
+ }, children);
88
+ }
89
+ }
90
+ });
91
+ }
92
+
93
+ exports.BlockRendererClient = BlockRendererClient;
@@ -0,0 +1,43 @@
1
+ "use client";
2
+ /*
3
+ * UMWD-Components
4
+ * @copyright Jelle Paulus
5
+ * @license MIT
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ Object.defineProperty(exports, '__esModule', { value: true });
11
+
12
+ var React = require('react');
13
+ var PropTypes = require('prop-types');
14
+ var material = require('@mui/material');
15
+ var FiberManualRecordIcon = require('@mui/icons-material/FiberManualRecord');
16
+
17
+ function BulletList(_ref) {
18
+ let {
19
+ bullets,
20
+ bulletSVG
21
+ } = _ref;
22
+ console.log("bulletSVG2", bulletSVG);
23
+ return /*#__PURE__*/React.createElement(material.Stack, {
24
+ spacing: 2
25
+ }, bullets.map((bullet, index) => /*#__PURE__*/React.createElement(material.Typography, {
26
+ key: index,
27
+ sx: {
28
+ verticalAlign: "center",
29
+ alignItems: "center",
30
+ justifyContent: "flex-start",
31
+ display: "inline-flex"
32
+ }
33
+ }, bulletSVG ? /*#__PURE__*/React.createElement(material.SvgIcon, {
34
+ sx: {
35
+ mr: 1
36
+ }
37
+ }, bulletSVG) : /*#__PURE__*/React.createElement(FiberManualRecordIcon, null), bullet)));
38
+ }
39
+ BulletList.propTypes = {
40
+ bullets: PropTypes.arrayOf(PropTypes.string).isRequired
41
+ };
42
+
43
+ exports.default = BulletList;
@@ -0,0 +1,45 @@
1
+ /*
2
+ * UMWD-Components
3
+ * @copyright Jelle Paulus
4
+ * @license MIT
5
+ */
6
+
7
+ 'use strict';
8
+
9
+ Object.defineProperty(exports, '__esModule', { value: true });
10
+
11
+ var React = require('react');
12
+ var PropTypes = require('prop-types');
13
+
14
+ function Button(_ref) {
15
+ let {
16
+ label,
17
+ backgroundColor = "red",
18
+ size = "md",
19
+ onClick
20
+ } = _ref;
21
+ let scale = 1;
22
+ if (size === "sm") {
23
+ scale = 0.75;
24
+ }
25
+ if (size === "lg") {
26
+ scale = 1.25;
27
+ }
28
+ const style = {
29
+ backgroundColor,
30
+ padding: "".concat(0.5 * scale, "rem ").concat(1 * scale, "rem"),
31
+ border: "none"
32
+ };
33
+ return /*#__PURE__*/React.createElement("button", {
34
+ style: style,
35
+ onClick: onClick
36
+ }, label);
37
+ }
38
+ Button.propTypes = {
39
+ label: PropTypes.string,
40
+ backgroundColor: PropTypes.string,
41
+ size: PropTypes.oneOf(["sm", "md", "lg"]),
42
+ onClick: PropTypes.func
43
+ };
44
+
45
+ exports.default = Button;
@@ -0,0 +1,69 @@
1
+ /*
2
+ * UMWD-Components
3
+ * @copyright Jelle Paulus
4
+ * @license MIT
5
+ */
6
+
7
+ 'use strict';
8
+
9
+ var React = require('react');
10
+ var material = require('@mui/material');
11
+ var getIcon = require('../lib/getIcon.js');
12
+
13
+ function ColumnsSection(_ref) {
14
+ let {
15
+ data
16
+ } = _ref;
17
+ const {
18
+ column,
19
+ maxWidth
20
+ } = data;
21
+
22
+ // TODO make suitable for multiple column layouts
23
+
24
+ return /*#__PURE__*/React.createElement(material.Container, {
25
+ maxWidth: maxWidth || "lg",
26
+ sx: {
27
+ my: 1
28
+ }
29
+ }, /*#__PURE__*/React.createElement(material.Grid, {
30
+ container: true,
31
+ spacing: 2
32
+ }, column.map(column => {
33
+ const Icon = getIcon.default(column.icon);
34
+ return /*#__PURE__*/React.createElement(material.Grid, {
35
+ item: true,
36
+ xs: 12,
37
+ md: 6,
38
+ key: column.id
39
+ }, /*#__PURE__*/React.createElement(material.Paper, {
40
+ sx: {
41
+ p: 2,
42
+ height: "100%"
43
+ }
44
+ }, /*#__PURE__*/React.createElement(material.Typography, {
45
+ variant: "h5",
46
+ sx: {
47
+ mb: 2,
48
+ display: "flex",
49
+ justifyContent: "flex-start",
50
+ alignItems: "center"
51
+ }
52
+ }, Icon !== null && /*#__PURE__*/React.createElement(Icon, {
53
+ sx: {
54
+ mr: 2,
55
+ mt: 0.2,
56
+ width: "50px",
57
+ height: "50px",
58
+ fill: "currentColor",
59
+ stroke: "none"
60
+ }
61
+ }), column.heading), /*#__PURE__*/React.createElement(material.Typography, {
62
+ variant: "body2",
63
+ color: "text.secondary",
64
+ component: "div"
65
+ }, column.text)));
66
+ })));
67
+ }
68
+
69
+ exports.ColumnsSection = ColumnsSection;
@@ -0,0 +1,223 @@
1
+ "use client";
2
+ /*
3
+ * UMWD-Components
4
+ * @copyright Jelle Paulus
5
+ * @license MIT
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ Object.defineProperty(exports, '__esModule', { value: true });
11
+
12
+ var React = require('react');
13
+ var material = require('@mui/material');
14
+ var isEmail = require('validator/lib/isEmail');
15
+
16
+ function ContactForm(_ref) {
17
+ let {
18
+ data
19
+ } = _ref;
20
+ const {
21
+ maxWidth
22
+ } = data;
23
+ const [formValues, setFormValues] = React.useState({
24
+ name: "",
25
+ email: "",
26
+ subject: "",
27
+ message: ""
28
+ });
29
+ const [formErrors, setFormErrors] = React.useState({});
30
+
31
+ // Setting button text on form submission
32
+ React.useState("Send");
33
+
34
+ // Setting success or failure messages states
35
+ const [showSuccessMessage, setShowSuccessMessage] = React.useState(false);
36
+ const [showFailureMessage, setShowFailureMessage] = React.useState(false);
37
+ const handleChange = e => {
38
+ const {
39
+ name,
40
+ value
41
+ } = e.target;
42
+ setFormValues({
43
+ ...formValues,
44
+ [name]: value
45
+ });
46
+ };
47
+ const handleBlur = e => {
48
+ const {
49
+ name
50
+ } = e.target;
51
+ const errors = validate(formValues);
52
+ if (errors[name]) {
53
+ setFormErrors(prevErrors => ({
54
+ ...prevErrors,
55
+ [name]: errors[name]
56
+ }));
57
+ } else {
58
+ setFormErrors(prevErrors => {
59
+ const updatedErrors = {
60
+ ...prevErrors
61
+ };
62
+ delete updatedErrors[name];
63
+ return updatedErrors;
64
+ });
65
+ }
66
+ };
67
+ const handleClear = () => {
68
+ setFormValues({
69
+ name: "",
70
+ email: "",
71
+ subject: "",
72
+ message: ""
73
+ });
74
+ };
75
+
76
+ /* const handleSendCallback = () => {
77
+ console.log("Send callback");
78
+ }; */
79
+
80
+ const handleSubmit = async e => {
81
+ e.preventDefault();
82
+ let isValidForm = validate(formValues);
83
+ console.log("isValidForm", isValidForm);
84
+ if (Object.keys(isValidForm).length === 0) {
85
+ const res = await fetch("/api/sendgrid", {
86
+ body: JSON.stringify({
87
+ email: formValues.email,
88
+ fullname: formValues.name,
89
+ subject: formValues.subject,
90
+ message: formValues.message
91
+ }),
92
+ headers: {
93
+ "Content-Type": "application/json"
94
+ },
95
+ method: "POST"
96
+ });
97
+ const {
98
+ error
99
+ } = await res.json();
100
+ if (error) {
101
+ setShowFailureMessage(true);
102
+ console.log(error);
103
+ return;
104
+ } else {
105
+ setShowSuccessMessage(true);
106
+ }
107
+ }
108
+ };
109
+ const validate = values => {
110
+ console.log("values from validate", values);
111
+ let errors = {};
112
+ if (values.name === "") {
113
+ errors.name = "Name is required";
114
+ }
115
+ if (values.email === "") {
116
+ errors.email = "Email is required";
117
+ } else if (!isEmail(values.email)) {
118
+ errors.email = "Invalid email";
119
+ }
120
+ if (values.subject === "") {
121
+ errors.subject = "Subject is required";
122
+ }
123
+ if (values.message === "") {
124
+ errors.message = "Message is required";
125
+ }
126
+ console.log("errors from validate", errors);
127
+ return errors;
128
+ };
129
+ return /*#__PURE__*/React.createElement(material.Container, {
130
+ maxWidth: maxWidth ? maxWidth : "lg",
131
+ sx: {
132
+ my: 1
133
+ }
134
+ }, /*#__PURE__*/React.createElement(material.Stack, {
135
+ spacing: 2,
136
+ sx: {
137
+ width: "100%"
138
+ }
139
+ }, /*#__PURE__*/React.createElement(material.Typography, {
140
+ variant: "h6",
141
+ align: "center"
142
+ }, "Write us"), /*#__PURE__*/React.createElement(material.Typography, {
143
+ variant: "body1",
144
+ align: "center"
145
+ }, "We're open for any suggestion or just to have a chat"), showSuccessMessage && /*#__PURE__*/React.createElement(material.Paper, {
146
+ sx: {
147
+ p: 2
148
+ }
149
+ }, /*#__PURE__*/React.createElement(material.Stack, {
150
+ spacing: 2
151
+ }, /*#__PURE__*/React.createElement(material.Typography, {
152
+ variant: "h6"
153
+ }, "Thank you!"), /*#__PURE__*/React.createElement(material.Typography, null, "Your e-mail has been successfully sent!"))), showFailureMessage && /*#__PURE__*/React.createElement(material.Paper, {
154
+ sx: {
155
+ p: 2
156
+ }
157
+ }, /*#__PURE__*/React.createElement(material.Stack, {
158
+ spacing: 2
159
+ }, /*#__PURE__*/React.createElement(material.Typography, null, "I am sorry, something went wrong, you could email me directly on info@jellepaulus.nl"), /*#__PURE__*/React.createElement(material.Button, {
160
+ variant: "contained"
161
+ }, "try again")))), !showSuccessMessage && !showFailureMessage && /*#__PURE__*/React.createElement(material.Paper, {
162
+ sx: {
163
+ p: 2
164
+ }
165
+ }, /*#__PURE__*/React.createElement(material.Stack, {
166
+ spacing: 2
167
+ }, /*#__PURE__*/React.createElement(material.TextField, {
168
+ id: "name",
169
+ name: "name",
170
+ label: "Name",
171
+ value: formValues.name,
172
+ variant: "outlined",
173
+ onBlur: handleBlur,
174
+ onChange: handleChange,
175
+ error: formErrors.name != undefined ? true : false,
176
+ helperText: formErrors.name
177
+ }), /*#__PURE__*/React.createElement(material.TextField, {
178
+ id: "email",
179
+ name: "email",
180
+ label: "Email",
181
+ value: formValues.email,
182
+ variant: "outlined",
183
+ onBlur: handleBlur,
184
+ onChange: handleChange,
185
+ error: formErrors.email != undefined ? true : false,
186
+ helperText: formErrors.email
187
+ }), /*#__PURE__*/React.createElement(material.TextField, {
188
+ id: "subject",
189
+ name: "subject",
190
+ label: "Subject",
191
+ value: formValues.subject,
192
+ variant: "outlined",
193
+ onBlur: handleBlur,
194
+ onChange: handleChange,
195
+ error: formErrors.subject != undefined,
196
+ helperText: formErrors.subject
197
+ }), /*#__PURE__*/React.createElement(material.TextField, {
198
+ id: "message",
199
+ name: "message",
200
+ label: "Message",
201
+ value: formValues.message,
202
+ variant: "outlined",
203
+ multiline: true,
204
+ minRows: 5,
205
+ onBlur: handleBlur,
206
+ onChange: handleChange,
207
+ error: formErrors.message != undefined,
208
+ helperText: formErrors.message
209
+ }), /*#__PURE__*/React.createElement(material.Stack, {
210
+ direction: "row",
211
+ spacing: 2,
212
+ justifyContent: "end"
213
+ }, /*#__PURE__*/React.createElement(material.Button, {
214
+ variant: "outlined",
215
+ color: "primary",
216
+ onClick: handleClear
217
+ }, "Clear"), /*#__PURE__*/React.createElement(material.Button, {
218
+ variant: "contained",
219
+ onClick: handleSubmit
220
+ }, "Send")))));
221
+ }
222
+
223
+ exports.default = ContactForm;
@@ -0,0 +1,100 @@
1
+ /*
2
+ * UMWD-Components
3
+ * @copyright Jelle Paulus
4
+ * @license MIT
5
+ */
6
+
7
+ 'use strict';
8
+
9
+ var React = require('react');
10
+ var material = require('@mui/material');
11
+ var getIcon = require('../lib/getIcon.js');
12
+
13
+ function FeatureSection(_ref) {
14
+ let {
15
+ data
16
+ } = _ref;
17
+ const {
18
+ feature,
19
+ maxWidth
20
+ } = data;
21
+ const theme = material.useTheme();
22
+ return /*#__PURE__*/React.createElement(material.Container, {
23
+ maxWidth: maxWidth || "lg",
24
+ sx: {
25
+ my: 1
26
+ }
27
+ }, /*#__PURE__*/React.createElement(material.Stack, {
28
+ spacing: 2,
29
+ direction: "row",
30
+ justifyContent: "stretch",
31
+ flexWrap: "wrap",
32
+ sx: {
33
+ width: "100%",
34
+ [theme.breakpoints.up("xs")]: {
35
+ flexDirection: "column"
36
+ },
37
+ [theme.breakpoints.up("sm")]: {
38
+ flexDirection: "row"
39
+ }
40
+ },
41
+ useFlexGap: true
42
+ }, feature.map(feature => {
43
+ const Icon = getIcon.default(feature.icon);
44
+ return /*#__PURE__*/React.createElement(material.Card, {
45
+ key: feature.id,
46
+ sx: {
47
+ display: "flex",
48
+ flexDirection: "column",
49
+ justifyContent: "space-between",
50
+ flex: 1,
51
+ minWidth: 275
52
+ }
53
+ }, /*#__PURE__*/React.createElement(material.CardContent, null, /*#__PURE__*/React.createElement(material.Box, {
54
+ sx: {
55
+ height: 140,
56
+ display: "grid",
57
+ alignItems: "center",
58
+ justifyContent: "center"
59
+ }
60
+ }, Icon !== null && /*#__PURE__*/React.createElement(Icon, {
61
+ sx: {
62
+ mr: 2,
63
+ mt: 0.2,
64
+ width: "75px",
65
+ height: "75px",
66
+ fill: "none",
67
+ stroke: "currentColor",
68
+ strokeWidth: 0.5
69
+ }
70
+ })), /*#__PURE__*/React.createElement(material.Typography, {
71
+ variant: "h5",
72
+ align: "center",
73
+ component: "div",
74
+ sx: {
75
+ mb: 2
76
+ }
77
+ }, feature.heading), /*#__PURE__*/React.createElement(material.Typography, {
78
+ variant: "h6",
79
+ align: "center",
80
+ component: "div",
81
+ sx: {
82
+ mb: 2
83
+ }
84
+ }, feature.subHeading.substring(0, 50)), /*#__PURE__*/React.createElement(material.Typography, {
85
+ variant: "body2",
86
+ color: "text.secondary",
87
+ component: "div"
88
+ }, feature.subHeading)), /*#__PURE__*/React.createElement(material.CardActions, {
89
+ sx: {
90
+ mb: 0
91
+ }
92
+ }, /*#__PURE__*/React.createElement(material.Button, {
93
+ size: "small"
94
+ }, "Contact"), /*#__PURE__*/React.createElement(material.Button, {
95
+ size: "small"
96
+ }, "Learn More")));
97
+ })));
98
+ }
99
+
100
+ exports.FeatureSection = FeatureSection;