@pareto-engineering/design-system 2.0.0-alpha.36 → 2.0.0-alpha.39

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 (167) hide show
  1. package/dist/cjs/a/Conversation/Conversation.js +3 -4
  2. package/dist/cjs/a/Conversation/common/Message/Message.js +1 -2
  3. package/dist/cjs/a/Conversation/styles.scss +49 -45
  4. package/dist/cjs/a/GradientBackground/GradientBackground.js +140 -0
  5. package/dist/cjs/a/GradientBackground/index.js +15 -0
  6. package/dist/cjs/a/GradientBackground/styles.scss +191 -0
  7. package/dist/cjs/b/Logo/Logo.js +25 -6
  8. package/dist/cjs/c/AcceptCookies/AcceptCookies.js +134 -0
  9. package/dist/cjs/c/AcceptCookies/index.js +15 -0
  10. package/dist/cjs/c/AcceptCookies/styles.scss +49 -0
  11. package/dist/cjs/c/BlogCategoryButton/BlogCategoryButton.js +95 -0
  12. package/dist/cjs/c/BlogCategoryButton/index.js +15 -0
  13. package/dist/cjs/c/BlogContext/BlogContextProvider.js +63 -0
  14. package/dist/cjs/c/BlogContext/Context.js +16 -0
  15. package/dist/cjs/c/BlogContext/ContextProvider.js +63 -0
  16. package/dist/cjs/c/BlogContext/index.js +31 -0
  17. package/dist/cjs/c/BlogContext/useBlog.js +16 -0
  18. package/dist/cjs/c/BlogPost/BlogPost.js +147 -0
  19. package/dist/cjs/c/BlogPost/index.js +15 -0
  20. package/dist/cjs/c/BlogPost/styles.scss +33 -0
  21. package/dist/cjs/c/BlogPostsList/BlogPostsList.js +73 -0
  22. package/dist/cjs/c/BlogPostsList/common/Card/Card.js +170 -0
  23. package/dist/cjs/c/BlogPostsList/common/Card/index.js +15 -0
  24. package/dist/cjs/c/BlogPostsList/common/index.js +13 -0
  25. package/dist/cjs/c/BlogPostsList/index.js +15 -0
  26. package/dist/cjs/c/BlogPostsList/styles.scss +72 -0
  27. package/dist/cjs/c/SiteFooter/SiteFooter.js +73 -0
  28. package/dist/cjs/c/SiteFooter/common/Section/Section.js +95 -0
  29. package/dist/cjs/c/SiteFooter/common/Section/index.js +15 -0
  30. package/dist/cjs/c/SiteFooter/common/index.js +13 -0
  31. package/dist/cjs/c/SiteFooter/index.js +15 -0
  32. package/dist/cjs/c/SiteFooter/styles.scss +34 -0
  33. package/dist/cjs/c/SiteHeaderCTA/SiteHeaderCTA.js +108 -0
  34. package/dist/cjs/c/SiteHeaderCTA/index.js +15 -0
  35. package/dist/cjs/c/SiteHeaderCTA/styles.scss +44 -0
  36. package/dist/cjs/c/SiteMission/SiteMission.js +113 -0
  37. package/dist/cjs/c/SiteMission/index.js +15 -0
  38. package/dist/cjs/c/SiteMission/styles.scss +30 -0
  39. package/dist/cjs/c/SiteNavigation/SiteNavigation.js +130 -0
  40. package/dist/cjs/c/SiteNavigation/index.js +15 -0
  41. package/dist/cjs/c/SiteNavigation/styles.scss +118 -0
  42. package/dist/cjs/c/SiteOnboardingStep/SiteOnboardingStep.js +98 -0
  43. package/dist/cjs/c/SiteOnboardingStep/index.js +15 -0
  44. package/dist/cjs/c/SiteOnboardingStep/styles.scss +51 -0
  45. package/dist/cjs/c/SitePricing/SitePricing.js +108 -0
  46. package/dist/cjs/c/SitePricing/index.js +15 -0
  47. package/dist/cjs/c/SitePricing/styles.scss +73 -0
  48. package/dist/cjs/c/SiteServices/SiteServices.js +211 -0
  49. package/dist/cjs/c/SiteServices/index.js +15 -0
  50. package/dist/cjs/c/SiteServices/styles.scss +138 -0
  51. package/dist/cjs/c/SocialMediaShareButton/SocialMediaShareButton.js +3 -4
  52. package/dist/cjs/c/TeamGallery/TeamGallery.js +80 -0
  53. package/dist/cjs/c/TeamGallery/common/PersonCard/PersonCard.js +84 -0
  54. package/dist/cjs/c/TeamGallery/common/PersonCard/index.js +15 -0
  55. package/dist/cjs/c/TeamGallery/common/index.js +13 -0
  56. package/dist/cjs/c/TeamGallery/index.js +15 -0
  57. package/dist/cjs/c/TeamGallery/styles.scss +100 -0
  58. package/dist/cjs/c/Testimonials/Testimonials.js +119 -0
  59. package/dist/cjs/c/Testimonials/index.js +15 -0
  60. package/dist/cjs/c/Testimonials/styles.scss +112 -0
  61. package/dist/cjs/experimental/GradientBackground/GradientBackground.js +98 -0
  62. package/dist/cjs/experimental/GradientBackground/index.js +15 -0
  63. package/dist/cjs/experimental/GradientBackground/styles.scss +64 -0
  64. package/dist/cjs/experimental/index.js +13 -0
  65. package/dist/cjs/f/fields/CheckboxInput/CheckboxInput.js +105 -0
  66. package/dist/cjs/f/fields/CheckboxInput/index.js +15 -0
  67. package/dist/cjs/f/fields/CheckboxInput/styles.scss +28 -0
  68. package/dist/cjs/f/fields/RadioInput/RadioInput.js +110 -0
  69. package/dist/cjs/f/fields/RadioInput/index.js +15 -0
  70. package/dist/cjs/f/fields/RadioInput/styles.scss +26 -0
  71. package/dist/cjs/f/fields/TaskRecommendation/TaskRecommendation.js +129 -0
  72. package/dist/cjs/f/fields/TaskRecommendation/index.js +15 -0
  73. package/dist/cjs/f/fields/TaskRecommendation/styles.scss +37 -0
  74. package/dist/cjs/f/fields/TaskRecommendationInput/TaskRecommendationInput.js +131 -0
  75. package/dist/cjs/f/fields/TaskRecommendationInput/index.js +15 -0
  76. package/dist/cjs/f/fields/TaskRecommendationInput/styles.scss +41 -0
  77. package/dist/cjs/f/fields/TextArea/TextArea.js +141 -0
  78. package/dist/cjs/f/fields/TextArea/index.js +15 -0
  79. package/dist/cjs/f/fields/TextArea/styles.scss +19 -0
  80. package/dist/es/a/Conversation/Conversation.js +3 -4
  81. package/dist/es/a/Conversation/common/Message/Message.js +1 -2
  82. package/dist/es/a/Conversation/styles.scss +49 -45
  83. package/dist/es/a/GradientBackground/GradientBackground.js +118 -0
  84. package/dist/es/a/GradientBackground/index.js +2 -0
  85. package/dist/es/a/GradientBackground/styles.scss +191 -0
  86. package/dist/es/b/Logo/Logo.js +25 -6
  87. package/dist/es/c/AcceptCookies/AcceptCookies.js +117 -0
  88. package/dist/es/c/AcceptCookies/index.js +2 -0
  89. package/dist/es/c/AcceptCookies/styles.scss +49 -0
  90. package/dist/es/c/BlogCategoryButton/BlogCategoryButton.js +68 -0
  91. package/dist/es/c/BlogCategoryButton/index.js +2 -0
  92. package/dist/es/c/BlogContext/BlogContextProvider.js +45 -0
  93. package/dist/es/c/BlogContext/Context.js +2 -0
  94. package/dist/es/c/BlogContext/ContextProvider.js +45 -0
  95. package/dist/es/c/BlogContext/index.js +4 -0
  96. package/dist/es/c/BlogContext/useBlog.js +3 -0
  97. package/dist/es/c/BlogPost/BlogPost.js +128 -0
  98. package/dist/es/c/BlogPost/index.js +2 -0
  99. package/dist/es/c/BlogPost/styles.scss +33 -0
  100. package/dist/es/c/BlogPostsList/BlogPostsList.js +56 -0
  101. package/dist/es/c/BlogPostsList/common/Card/Card.js +143 -0
  102. package/dist/es/c/BlogPostsList/common/Card/index.js +2 -0
  103. package/dist/es/c/BlogPostsList/common/index.js +1 -0
  104. package/dist/es/c/BlogPostsList/index.js +2 -0
  105. package/dist/es/c/BlogPostsList/styles.scss +72 -0
  106. package/dist/es/c/SiteFooter/SiteFooter.js +56 -0
  107. package/dist/es/c/SiteFooter/common/Section/Section.js +73 -0
  108. package/dist/es/c/SiteFooter/common/Section/index.js +2 -0
  109. package/dist/es/c/SiteFooter/common/index.js +1 -0
  110. package/dist/es/c/SiteFooter/index.js +2 -0
  111. package/dist/es/c/SiteFooter/styles.scss +34 -0
  112. package/dist/es/c/SiteHeaderCTA/SiteHeaderCTA.js +92 -0
  113. package/dist/es/c/SiteHeaderCTA/index.js +2 -0
  114. package/dist/es/c/SiteHeaderCTA/styles.scss +44 -0
  115. package/dist/es/c/SiteMission/SiteMission.js +96 -0
  116. package/dist/es/c/SiteMission/index.js +2 -0
  117. package/dist/es/c/SiteMission/styles.scss +30 -0
  118. package/dist/es/c/SiteNavigation/SiteNavigation.js +111 -0
  119. package/dist/es/c/SiteNavigation/index.js +2 -0
  120. package/dist/es/c/SiteNavigation/styles.scss +118 -0
  121. package/dist/es/c/SiteOnboardingStep/SiteOnboardingStep.js +81 -0
  122. package/dist/es/c/SiteOnboardingStep/index.js +2 -0
  123. package/dist/es/c/SiteOnboardingStep/styles.scss +51 -0
  124. package/dist/es/c/SitePricing/SitePricing.js +91 -0
  125. package/dist/es/c/SitePricing/index.js +2 -0
  126. package/dist/es/c/SitePricing/styles.scss +73 -0
  127. package/dist/es/c/SiteServices/SiteServices.js +195 -0
  128. package/dist/es/c/SiteServices/index.js +2 -0
  129. package/dist/es/c/SiteServices/styles.scss +138 -0
  130. package/dist/es/c/SocialMediaShareButton/SocialMediaShareButton.js +3 -4
  131. package/dist/es/c/TeamGallery/TeamGallery.js +64 -0
  132. package/dist/es/c/TeamGallery/common/PersonCard/PersonCard.js +64 -0
  133. package/dist/es/c/TeamGallery/common/PersonCard/index.js +2 -0
  134. package/dist/es/c/TeamGallery/common/index.js +1 -0
  135. package/dist/es/c/TeamGallery/index.js +2 -0
  136. package/dist/es/c/TeamGallery/styles.scss +100 -0
  137. package/dist/es/c/Testimonials/Testimonials.js +99 -0
  138. package/dist/es/c/Testimonials/index.js +2 -0
  139. package/dist/es/c/Testimonials/styles.scss +112 -0
  140. package/dist/es/experimental/GradientBackground/GradientBackground.js +76 -0
  141. package/dist/es/experimental/GradientBackground/index.js +2 -0
  142. package/dist/es/experimental/GradientBackground/styles.scss +64 -0
  143. package/dist/es/experimental/index.js +1 -0
  144. package/dist/es/f/fields/CheckboxInput/CheckboxInput.js +85 -0
  145. package/dist/es/f/fields/CheckboxInput/index.js +2 -0
  146. package/dist/es/f/fields/CheckboxInput/styles.scss +28 -0
  147. package/dist/es/f/fields/RadioInput/RadioInput.js +90 -0
  148. package/dist/es/f/fields/RadioInput/index.js +2 -0
  149. package/dist/es/f/fields/RadioInput/styles.scss +26 -0
  150. package/dist/es/f/fields/TaskRecommendation/TaskRecommendation.js +111 -0
  151. package/dist/es/f/fields/TaskRecommendation/index.js +2 -0
  152. package/dist/es/f/fields/TaskRecommendation/styles.scss +37 -0
  153. package/dist/es/f/fields/TaskRecommendationInput/TaskRecommendationInput.js +111 -0
  154. package/dist/es/f/fields/TaskRecommendationInput/index.js +2 -0
  155. package/dist/es/f/fields/TaskRecommendationInput/styles.scss +41 -0
  156. package/dist/es/f/fields/TextArea/TextArea.js +124 -0
  157. package/dist/es/f/fields/TextArea/index.js +2 -0
  158. package/dist/es/f/fields/TextArea/styles.scss +19 -0
  159. package/package.json +2 -2
  160. package/src/__snapshots__/Storyshots.test.js.snap +543 -6
  161. package/src/stories/b/Logo.stories.jsx +8 -0
  162. package/src/ui/a/Conversation/Conversation.jsx +2 -2
  163. package/src/ui/a/Conversation/common/Message/Message.jsx +1 -2
  164. package/src/ui/a/Conversation/styles.scss +49 -45
  165. package/src/ui/b/Logo/Logo.jsx +26 -3
  166. package/src/ui/c/SocialMediaShareButton/SocialMediaShareButton.jsx +4 -2
  167. package/stylelint.config.js +13 -13
@@ -0,0 +1,195 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ import * as React from 'react';
3
+ import { useState, useEffect, useLayoutEffect } from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import styleNames from '@pareto-engineering/bem'; // Local Definitions
6
+
7
+ const baseClassName = styleNames.base;
8
+ const componentClassName = 'services';
9
+ /**
10
+ * This is the component description.
11
+ */
12
+
13
+ const SiteServices = ({
14
+ id,
15
+ className: userClassName,
16
+ style,
17
+ deletePath,
18
+ servicesMap,
19
+ attachmentPath,
20
+ defaultService,
21
+ defaultServiceTask,
22
+ defaultTaskEmailContent // ...otherProps
23
+
24
+ }) => {
25
+ useLayoutEffect(() => {
26
+ import("./styles.scss");
27
+ }, []);
28
+ const [service, setService] = useState(defaultService);
29
+ const [serviceTask, setServiceTask] = useState(defaultServiceTask);
30
+ const [serviceTaskIndx, setServiceTaskIndx] = useState(0);
31
+ const [taskEmailContent, setTaskEmailContent] = useState(defaultTaskEmailContent);
32
+
33
+ const handleServiceClick = serviceArg => setService(serviceArg);
34
+
35
+ const handleTaskClick = taskArg => setServiceTask(taskArg);
36
+
37
+ useEffect(() => {
38
+ const serviceObjs = servicesMap[service];
39
+ setServiceTask(serviceObjs[0].task);
40
+ }, [service]);
41
+ useEffect(() => {
42
+ const serviceContent = servicesMap[service].find(serviceObj => serviceObj.task === serviceTask);
43
+ setTaskEmailContent(serviceContent.email);
44
+ }, [serviceTask]);
45
+ return /*#__PURE__*/React.createElement("div", {
46
+ id: id,
47
+ className: [baseClassName, componentClassName, userClassName, 'u2 v1'].filter(e => e).join(' '),
48
+ style: style
49
+ }, /*#__PURE__*/React.createElement("div", {
50
+ className: "btn-content v1 s-1 md-s0"
51
+ }, Object.keys(servicesMap).map(serviceName => /*#__PURE__*/React.createElement("button", {
52
+ className: `s1 ${serviceName === service && 'active-service-btn'}`,
53
+ key: serviceName,
54
+ type: "button",
55
+ onClick: () => {
56
+ handleServiceClick(serviceName);
57
+ setServiceTaskIndx(0);
58
+ }
59
+ }, serviceName))), /*#__PURE__*/React.createElement("div", {
60
+ className: "tasks-and-content s-1 md-s0"
61
+ }, /*#__PURE__*/React.createElement("div", {
62
+ className: "tasks"
63
+ }, servicesMap[service].map((serviceObj, index) => /*#__PURE__*/React.createElement("button", {
64
+ key: serviceObj.task,
65
+ className: `v1 mb-v ${serviceTaskIndx === index ? 'b-dark-y c-on-y' : 'b-on-y'}`,
66
+ type: "button",
67
+ onClick: () => {
68
+ handleTaskClick(serviceObj.task);
69
+ setServiceTaskIndx(index);
70
+ }
71
+ }, /*#__PURE__*/React.createElement("span", {
72
+ className: "v50 m-v"
73
+ }, serviceObj.icon), /*#__PURE__*/React.createElement("p", {
74
+ className: "ul"
75
+ }, serviceObj.task)))), /*#__PURE__*/React.createElement("div", {
76
+ className: "task-email b-on-y u2 p-u"
77
+ }, /*#__PURE__*/React.createElement("div", {
78
+ className: "task-email-header"
79
+ }, /*#__PURE__*/React.createElement("span", null, "To"), /*#__PURE__*/React.createElement("span", {
80
+ className: "ml-u"
81
+ }, "camille@hellopareto.com")), /*#__PURE__*/React.createElement("span", {
82
+ className: "v1 mv-v"
83
+ }, taskEmailContent.subject), /*#__PURE__*/React.createElement("p", {
84
+ className: "email-content v25 pb-v"
85
+ }, "Hi Camille,", /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null), taskEmailContent.description, /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null), "Warmly,", /*#__PURE__*/React.createElement("br", null), "Phoebe"), /*#__PURE__*/React.createElement("div", {
86
+ className: "u1 task-email-footer"
87
+ }, /*#__PURE__*/React.createElement("div", {
88
+ className: "task-footer-text"
89
+ }, /*#__PURE__*/React.createElement("span", {
90
+ className: "mr-u"
91
+ }, "Send"), /*#__PURE__*/React.createElement("span", {
92
+ className: "mr-u"
93
+ }, "Send later"), /*#__PURE__*/React.createElement("span", {
94
+ className: "mr-u"
95
+ }, "Remind me")), /*#__PURE__*/React.createElement("div", {
96
+ className: "task-footer-icons"
97
+ }, /*#__PURE__*/React.createElement("img", {
98
+ className: "ml-u",
99
+ alt: "attach",
100
+ src: attachmentPath
101
+ }), /*#__PURE__*/React.createElement("img", {
102
+ className: "ml-u",
103
+ alt: "delete",
104
+ src: deletePath
105
+ }))))));
106
+ };
107
+
108
+ SiteServices.propTypes = {
109
+ /**
110
+ * The HTML id for this element .
111
+ */
112
+ id: PropTypes.string,
113
+
114
+ /**
115
+ * The HTML class names for this element
116
+ */
117
+ className: PropTypes.string,
118
+
119
+ /**
120
+ * The React-written, css properties for this element.
121
+ */
122
+ style: PropTypes.objectOf(PropTypes.string),
123
+
124
+ /**
125
+ * services map
126
+ */
127
+ servicesMap: PropTypes.shape({
128
+ sales: PropTypes.arrayOf(PropTypes.shape({
129
+ task: PropTypes.string.isRequired,
130
+ icon: PropTypes.string.isRequired,
131
+ email: PropTypes.shape({
132
+ subject: PropTypes.string.isRequired,
133
+ description: PropTypes.string.isRequired
134
+ }).isRequired
135
+ })).isRequired,
136
+ product: PropTypes.arrayOf(PropTypes.shape({
137
+ task: PropTypes.string.isRequired,
138
+ icon: PropTypes.string.isRequired,
139
+ email: PropTypes.shape({
140
+ subject: PropTypes.string.isRequired,
141
+ description: PropTypes.string.isRequired
142
+ }).isRequired
143
+ })).isRequired,
144
+ hiring: PropTypes.arrayOf(PropTypes.shape({
145
+ task: PropTypes.string.isRequired,
146
+ icon: PropTypes.string.isRequired,
147
+ email: PropTypes.shape({
148
+ subject: PropTypes.string.isRequired,
149
+ description: PropTypes.string.isRequired
150
+ }).isRequired
151
+ })).isRequired,
152
+ admin: PropTypes.arrayOf(PropTypes.shape({
153
+ task: PropTypes.string.isRequired,
154
+ icon: PropTypes.string.isRequired,
155
+ email: PropTypes.shape({
156
+ subject: PropTypes.string.isRequired,
157
+ description: PropTypes.string.isRequired
158
+ }).isRequired
159
+ })).isRequired
160
+ }).isRequired,
161
+
162
+ /**
163
+ * default service
164
+ */
165
+ defaultService: PropTypes.string,
166
+
167
+ /**
168
+ * default service task
169
+ */
170
+ defaultServiceTask: PropTypes.string,
171
+
172
+ /**
173
+ * default service task
174
+ */
175
+ defaultTaskEmailContent: PropTypes.objectOf(PropTypes.string),
176
+
177
+ /**
178
+ * email attachment path
179
+ */
180
+ attachmentPath: PropTypes.string.isRequired,
181
+
182
+ /**
183
+ * delete attachment path
184
+ */
185
+ deletePath: PropTypes.string.isRequired
186
+ };
187
+ SiteServices.defaultProps = {
188
+ defaultService: 'sales',
189
+ defaultServiceTask: 'Generate sales leads',
190
+ defaultTaskEmailContent: {
191
+ subject: 'Fintech founder lead generation',
192
+ description: 'I need a list of all fintech founders featured in Forbes, Business Insider, CB Insights, and AngelList newsletters. Please send me a spreadsheet containing their name, title, company website, and email address within the week.'
193
+ }
194
+ };
195
+ export default SiteServices;
@@ -0,0 +1,2 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ export { default as SiteServices } from "./SiteServices";
@@ -0,0 +1,138 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+
3
+ @use "@pareto-engineering/bem";
4
+ @use "@aztlan/stylebook/src/mixins";
5
+ @use "@aztlan/stylebook/src/globals" as *;
6
+
7
+ $service-btn-color:var(--on-y);
8
+ $tasks-btn-width: 12em;
9
+ $tasks-btn-height: 6em;
10
+ $gap:2em;
11
+ $active-btn-border-v:5px solid transparent;
12
+ $active-btn-border-top:5px solid var(--on-y);
13
+ $active-task-bg:var(--dark-y);
14
+ $email-content-border-bottom:1px solid var(-metadata);
15
+ $btn-content-width:75%;
16
+ $tasks-and-content-sm-width:100%;
17
+ $btn-content-sm-width:100%;
18
+ $tasks-and-content-width:80%;
19
+ $active-btn-left:48%;
20
+ $active-btn-top:100%;
21
+ $box-shadow:0 2px 2px 0 var(--background2);
22
+
23
+
24
+ .#{bem.$base}.services {
25
+ @mixin common-button-styles {
26
+ border: 0;
27
+ cursor: pointer;
28
+ }
29
+
30
+ .btn-content {
31
+ column-gap: $gap;
32
+ display: grid;
33
+ grid-template-columns: repeat(4, 1fr);
34
+ margin: var(--v) auto;
35
+ width: $btn-content-width;
36
+
37
+ button {
38
+ @include common-button-styles;
39
+ background: none;
40
+ color: $service-btn-color;
41
+ text-transform: capitalize;
42
+ transition: all .1s;
43
+
44
+ &:hover {
45
+ transform: scale(1.1);
46
+ }
47
+ }
48
+ }
49
+
50
+
51
+ .active-service-btn {
52
+ transform: scale(1.1);
53
+
54
+ &::after {
55
+ border-left: $active-btn-border-v;
56
+ border-right: $active-btn-border-v;
57
+ border-top: $active-btn-border-top;
58
+ color: $service-btn-color;
59
+ content: "";
60
+ left: $active-btn-left;
61
+ position: absolute;
62
+ top: $active-btn-top;
63
+ }
64
+ }
65
+
66
+
67
+ .tasks-and-content {
68
+ column-gap: $gap;
69
+ display: grid;
70
+ grid-template-columns: 1fr 4fr;
71
+ margin: 0 auto;
72
+ width: $tasks-and-content-width;
73
+ }
74
+
75
+ .tasks {
76
+ align-items: center;
77
+ display: flex;
78
+ flex-direction: column;
79
+ justify-content: space-between;
80
+
81
+ button {
82
+ @include common-button-styles;
83
+ align-items: center;
84
+ border-radius: var(--theme-border-radius);
85
+ display: flex;
86
+ height: $tasks-btn-height;
87
+ width: $tasks-btn-width;
88
+ transition: background-color 0.5s ease-out;
89
+ p {
90
+ color: inherit;
91
+ }
92
+ }
93
+ }
94
+
95
+ .task-email {
96
+ //box-shadow: $box-shadow;
97
+ display: flex;
98
+ flex-direction: column;
99
+ justify-content: space-between;
100
+
101
+ .email-content {
102
+ border-bottom: $email-content-border-bottom;
103
+ color: var(--black);
104
+ }
105
+
106
+ .task-email-footer {
107
+ align-items: center;
108
+ display: flex;
109
+ justify-content: space-between;
110
+ }
111
+ }
112
+
113
+ @include mixins.media($to:$sm-md) {
114
+ padding: var(--v);
115
+
116
+ .tasks-and-content {
117
+ grid-template-columns: 1fr;
118
+ margin: 0 auto;
119
+ width: $tasks-and-content-sm-width;
120
+ }
121
+
122
+ .btn-content {
123
+ column-gap: var(--v);
124
+ width: $btn-content-sm-width;
125
+ }
126
+
127
+ .tasks {
128
+ display: none;
129
+ }
130
+
131
+ .task-email-footer {
132
+ display: flex;
133
+ flex-direction: column;
134
+ }
135
+ }
136
+ }
137
+
138
+
@@ -22,10 +22,9 @@ const SocialMediaShareButton = ({
22
22
  useLayoutEffect(() => {
23
23
  import("./styles.scss");
24
24
  }, []);
25
- const {
26
- title
27
- } = document;
28
- const link = window.location.href;
25
+ const isServer = typeof window === 'undefined';
26
+ const title = isServer ? '' : document.title;
27
+ const link = isServer ? '' : window.location.href;
29
28
  const defaultsMap = {
30
29
  facebook: {
31
30
  icon: 'f',
@@ -0,0 +1,64 @@
1
+ /* @pareto-engineering/generator-front 1.0.2 */
2
+ import * as React from 'react';
3
+ import { useLayoutEffect } from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import styleNames from '@pareto-engineering/bem'; // Imports from the component folder
6
+
7
+ import { PersonCard } from "./common"; // Local Definitions
8
+ // import('./styles.scss')
9
+
10
+ const baseClassName = styleNames.base;
11
+ const componentClassName = 'team-gallery';
12
+
13
+ const TeamGallery = ({
14
+ id,
15
+ className: userClassName,
16
+ style,
17
+ children,
18
+ title // ...otherProps
19
+
20
+ }) => {
21
+ useLayoutEffect(() => {
22
+ import("./styles.scss");
23
+ }, []);
24
+ return /*#__PURE__*/React.createElement("div", {
25
+ id: id,
26
+ className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
27
+ style: style
28
+ }, /*#__PURE__*/React.createElement("div", {
29
+ className: "title"
30
+ }, title), /*#__PURE__*/React.createElement("div", {
31
+ className: "content"
32
+ }, children));
33
+ };
34
+
35
+ TeamGallery.propTypes = {
36
+ /**
37
+ * The HTML id for this element
38
+ */
39
+ id: PropTypes.string,
40
+
41
+ /**
42
+ * The HTML class names for this element
43
+ */
44
+ className: PropTypes.string,
45
+
46
+ /**
47
+ * The React-written, css properties for this element.
48
+ */
49
+ style: PropTypes.objectOf(PropTypes.string),
50
+
51
+ /**
52
+ * The children JSX
53
+ */
54
+ children: PropTypes.node.isRequired,
55
+
56
+ /**
57
+ * Title of gallery
58
+ */
59
+ title: PropTypes.string.isRequired
60
+ };
61
+ TeamGallery.defaultProps = {// someProp:false
62
+ };
63
+ TeamGallery.PersonCard = PersonCard;
64
+ export default TeamGallery;
@@ -0,0 +1,64 @@
1
+ /* @pareto-engineering/generator-front 1.0.2 */
2
+ import * as React from 'react';
3
+ import PropTypes from 'prop-types';
4
+ import styleNames from '@pareto-engineering/bem'; // Imports from the component folder
5
+ // Local Definitions
6
+
7
+ const baseClassName = styleNames.base;
8
+ const componentClassName = 'person-card';
9
+
10
+ const PersonCard = ({
11
+ id,
12
+ className: userClassName,
13
+ style,
14
+ name,
15
+ position,
16
+ picture // ...otherProps
17
+
18
+ }) => /*#__PURE__*/React.createElement("div", {
19
+ id: id,
20
+ className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
21
+ style: style
22
+ }, /*#__PURE__*/React.createElement("header", null, /*#__PURE__*/React.createElement("img", {
23
+ src: picture,
24
+ alt: ""
25
+ })), /*#__PURE__*/React.createElement("main", null, /*#__PURE__*/React.createElement("p", {
26
+ className: "name"
27
+ }, /*#__PURE__*/React.createElement("strong", null, name)), /*#__PURE__*/React.createElement("p", {
28
+ className: "position"
29
+ }, position)));
30
+
31
+ PersonCard.propTypes = {
32
+ /**
33
+ * The HTML id for this element
34
+ */
35
+ id: PropTypes.string,
36
+
37
+ /**
38
+ * The HTML class names for this element
39
+ */
40
+ className: PropTypes.string,
41
+
42
+ /**
43
+ * The React-written, css properties for this element.
44
+ */
45
+ style: PropTypes.objectOf(PropTypes.string),
46
+
47
+ /**
48
+ * The name of the person.
49
+ */
50
+ name: PropTypes.string.isRequired,
51
+
52
+ /**
53
+ * The position of the person.
54
+ */
55
+ position: PropTypes.string.isRequired,
56
+
57
+ /**
58
+ * The picture of the person.
59
+ */
60
+ picture: PropTypes.string.isRequired
61
+ };
62
+ PersonCard.defaultProps = {// someProp:false
63
+ };
64
+ export default PersonCard;
@@ -0,0 +1,2 @@
1
+ /* @pareto-engineering/generator-front 1.0.2 */
2
+ export { default as PersonCard } from "./PersonCard";
@@ -0,0 +1 @@
1
+ export { PersonCard } from "./PersonCard";
@@ -0,0 +1,2 @@
1
+ /* @pareto-engineering/generator-front 1.0.2 */
2
+ export { default as TeamGallery } from "./TeamGallery";
@@ -0,0 +1,100 @@
1
+ /* @pareto-engineering/generator-front 1.0.2 */
2
+
3
+ @use "@pareto-engineering/bem";
4
+ @use "@aztlan/stylebook/src/mixins";
5
+ @use "@aztlan/stylebook/src/globals" as *;
6
+
7
+ $base-padding:1em;
8
+
9
+ $column-title-width-md:200px;
10
+ $content-grid-gap:$base-padding;
11
+ $content-padding:$base-padding;
12
+ $image-height-sm: 10em;
13
+ $image-height-md: 11em;
14
+ $picture-border-radius:.5em;
15
+
16
+ .#{bem.$base}.team-gallery {
17
+ display: grid;
18
+
19
+ @include mixins.media($to:$sm-md) {
20
+ grid-template-columns: 1fr;
21
+
22
+ .title {
23
+ text-align: center;
24
+ }
25
+ }
26
+
27
+ @include mixins.media($from:$sm-md) {
28
+ grid-template-columns: [title] $column-title-width-md [content] 1fr;
29
+
30
+ .title {
31
+ grid-column-start: title;
32
+ }
33
+
34
+ .content {
35
+ grid-column-start: content;
36
+ }
37
+ }
38
+
39
+ .title {
40
+ padding: $base-padding;
41
+ }
42
+
43
+ .content {
44
+ display: grid;
45
+ grid-gap: $content-grid-gap;
46
+ padding: $content-padding;
47
+ @include mixins.media($to:$sm-md) {
48
+ grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));
49
+ }
50
+
51
+ @include mixins.media($from:$sm-md) {
52
+ grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
53
+ }
54
+ }
55
+ }
56
+
57
+ .#{bem.$base}.team-gallery .#{bem.$base}.person-card {
58
+ background: transparent;
59
+
60
+ > header {
61
+ img {
62
+ border-radius: $picture-border-radius;
63
+ filter: grayscale(100%);
64
+ object-fit: cover;
65
+ width: 100%;
66
+ }
67
+ }
68
+
69
+ > main {
70
+ padding: $base-padding;
71
+ text-align: center;
72
+
73
+ .name {
74
+ font-size: calc(var(--s0) * 1rem);
75
+ margin: 0 0 $base-padding/2 0;
76
+ }
77
+
78
+ .position {
79
+ color: var(--light-paragraph);
80
+ font-family: var(--font-paragraph);
81
+ margin: 0 0 0 0;
82
+ }
83
+ }
84
+
85
+ @include mixins.media($to:$sm-md) {
86
+ > header {
87
+ img {
88
+ height: $image-height-sm;
89
+ }
90
+ }
91
+ }
92
+
93
+ @include mixins.media($from:$sm-md) {
94
+ > header {
95
+ img {
96
+ height: $image-height-md;
97
+ }
98
+ }
99
+ }
100
+ }
@@ -0,0 +1,99 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ import * as React from 'react';
3
+ import { useLayoutEffect } from 'react';
4
+ import { Swiper, SwiperSlide } from 'swiper/react';
5
+ import SwiperCore, { Navigation, Pagination, Autoplay } from 'swiper';
6
+ import PropTypes from 'prop-types';
7
+ import styleNames from '@pareto-engineering/bem'; // import 'swiper/swiper-bundle.css'
8
+ // Local Definitions
9
+
10
+ const baseClassName = styleNames.base;
11
+ const componentClassName = 'testimonials';
12
+ SwiperCore.use([Navigation, Pagination, Autoplay]);
13
+ /**
14
+ * This is the component description.
15
+ */
16
+
17
+ const Testimonials = ({
18
+ id,
19
+ className: userClassName,
20
+ style,
21
+ // children,
22
+ contentMap,
23
+ color // ...otherProps
24
+
25
+ }) => {
26
+ useLayoutEffect(() => {
27
+ import("./styles.scss");
28
+ }, []);
29
+ return /*#__PURE__*/React.createElement("div", {
30
+ id: id,
31
+ className: [baseClassName, componentClassName, userClassName, 'u3', `x-${color}`].filter(e => e).join(' '),
32
+ style: style // {...otherProps}
33
+
34
+ }, /*#__PURE__*/React.createElement(Swiper, {
35
+ loop: true,
36
+ navigation: true,
37
+ pagination: true,
38
+ spaceBetween: 0,
39
+ slidesPerView: 1,
40
+ autoplay: {
41
+ delay: 5000
42
+ }
43
+ }, contentMap.map(slide => /*#__PURE__*/React.createElement(SwiperSlide, {
44
+ key: `${slide.firstName}${slide.lastName}`
45
+ }, /*#__PURE__*/React.createElement("div", {
46
+ className: "slide s-1 md-s0 u4 md-u3 md-v3 v1 pv-u ph-v"
47
+ }, /*#__PURE__*/React.createElement("span", {
48
+ className: "openning-quote"
49
+ }, "\u201C"), /*#__PURE__*/React.createElement("img", {
50
+ className: "img",
51
+ src: slide.picture,
52
+ alt: ""
53
+ }), /*#__PURE__*/React.createElement("span", {
54
+ className: "name v50 mt-v"
55
+ }, `${slide.firstName} ${slide.lastName}`), /*#__PURE__*/React.createElement("span", {
56
+ className: "company v50 mb-v s-1"
57
+ }, slide.company), /*#__PURE__*/React.createElement("p", {
58
+ className: "uc s1 testimonial-content"
59
+ }, slide.testimonial), /*#__PURE__*/React.createElement("span", {
60
+ className: "closing-quote"
61
+ }, "\u201D"))))));
62
+ };
63
+
64
+ Testimonials.propTypes = {
65
+ /**
66
+ * The HTML id for this element
67
+ */
68
+ id: PropTypes.string,
69
+
70
+ /**
71
+ * The HTML class names for this element
72
+ */
73
+ className: PropTypes.string,
74
+
75
+ /**
76
+ * The React-written, css properties for this element.
77
+ */
78
+ style: PropTypes.objectOf(PropTypes.string),
79
+
80
+ /**
81
+ * The testimonial color
82
+ */
83
+ color: PropTypes.string,
84
+
85
+ /**
86
+ * The testimonial map
87
+ */
88
+ contentMap: PropTypes.arrayOf(PropTypes.shape({
89
+ firstName: PropTypes.string.isRequired,
90
+ lastName: PropTypes.string.isRequired,
91
+ picture: PropTypes.string.isRequired,
92
+ company: PropTypes.string.isRequired,
93
+ testimonial: PropTypes.string.isRequired
94
+ })).isRequired
95
+ };
96
+ Testimonials.defaultProps = {
97
+ color: 'main1'
98
+ };
99
+ export default Testimonials;
@@ -0,0 +1,2 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ export { default as Testimonials } from "./Testimonials";