luna-one 1.0.232 → 1.0.237
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1630 -1630
- package/dist/global-styles/content/icon.scss +361 -361
- package/dist/global-styles/content/typography.scss +99 -99
- package/dist/global-styles/fonts/benton.scss +5 -5
- package/dist/global-styles/global-terra.scss +11 -11
- package/dist/global-styles/global-vars.scss +535 -535
- package/dist/global-styles/layout/_css-grid.scss +24 -24
- package/dist/global-styles/layout/_media-queries.scss +35 -35
- package/dist/global-styles/layout/_normalize.scss +340 -340
- package/dist/global-styles/layout/_reset.scss +13 -13
- package/dist/global-styles/mixins/_box-shadow.scss +6 -6
- package/dist/global-styles/mixins/_mixins.scss +5 -5
- package/dist/global-styles/mixins/_organism-padding-hack.scss +7 -7
- package/dist/global-styles/mixins/_typography.scss +80 -80
- package/dist/global-styles/mixins/_yiq.scss +50 -50
- package/dist/global-styles/mixins/_z-index.scss +3 -3
- package/dist/global-styles/terra.scss +12 -12
- package/dist/global-styles/utilities/_box-shadow.scss +8 -8
- package/dist/global-styles/utilities/_display.scss +48 -48
- package/dist/global-styles/utilities/_font-family.scss +15 -15
- package/dist/global-styles/utilities/_parallax.scss +23 -23
- package/dist/global-styles/utilities/_text-align.scss +24 -24
- package/dist/luna/components/AdminCategoryData/AdminCategoryData.scss +81 -81
- package/dist/luna/components/AdminProductData/AdminProductData.scss +74 -74
- package/dist/luna/components/BrowserSupportBanner/BrowserSupportBanner.scss +6 -6
- package/dist/luna/components/EventCard/EventCard.scss +130 -130
- package/dist/luna/components/LanguageSelector/LanguageSelector.scss +139 -139
- package/dist/luna/components/MegaMenu/MegaMenu.js +1 -1
- package/dist/luna/components/MegaMenu/MegaMenu.scss +209 -209
- package/dist/luna/components/MegaMenu/RightSection.js +16 -16
- package/dist/luna/components/MiniFeatDropdown/MiniFeatDropdown.js +4 -3
- package/dist/luna/components/MiniFeatDropdown/MiniFeatDropdown.scss +106 -106
- package/dist/luna/components/MobileMegaMenu/MobileMegaMenu.scss +147 -147
- package/dist/luna/components/MobileMenu/MobileMenu.scss +65 -65
- package/dist/luna/components/MobileNav/MobileNav.js +1 -1
- package/dist/luna/components/MobileNav/MobileNav.scss +104 -104
- package/dist/luna/components/NavBarTop/NavBarTop.js +182 -160
- package/dist/luna/components/NavBarTop/NavBarTop.scss +235 -235
- package/dist/luna/components/NavSearch/NavSearch.scss +38 -38
- package/dist/luna/components/RegionCard/RegionCard.scss +84 -84
- package/dist/luna/components/StoreFrontCard/StoreFrontCard.scss +434 -434
- package/dist/luna/components/SupportCard/SupportCard.scss +150 -150
- package/dist/luna/components/VariableContentCard/VariableContentCard.scss +288 -288
- package/dist/luna/components/VidyardModal/VidyardModal.scss +23 -23
- package/dist/luna/depracated/Feat10/Feat10.js +3 -3
- package/dist/luna/depracated/Feat10/Feat10.scss +30 -30
- package/dist/luna/depracated/Feat4Flex/Feat4Flex.js +1 -1
- package/dist/luna/depracated/Feat4Flex/Feat4Flex.scss +118 -118
- package/dist/luna/depracated/Feat4Flex/Feat4FlexMethods.js +2 -2
- package/dist/luna/depracated/Feat5/Feat5.js +2 -2
- package/dist/luna/depracated/Feat5/Feat5.scss +209 -209
- package/dist/luna/depracated/Feat7/Feat7.js +1 -1
- package/dist/luna/depracated/Feat7/Feat7.scss +220 -220
- package/dist/luna/depracated/Feat8/Feat8.js +1 -1
- package/dist/luna/depracated/Feat8/Feat8.scss +173 -173
- package/dist/luna/depracated/Hero5/Hero5.js +2 -2
- package/dist/luna/depracated/Hero5/Hero5.scss +197 -197
- package/dist/luna/depracated/MegaFeat/MegaFeat.js +2 -2
- package/dist/luna/depracated/MegaFeat/MegaFeat.scss +141 -141
- package/dist/luna/depracated/MegaFeat/MegaFeatMethods.js +2 -2
- package/dist/luna/depracated/MegaMenu/MegaMenu.scss +115 -115
- package/dist/luna/depracated/ParallaxBackground/ParallaxBackground.js +6 -5
- package/dist/luna/featurettes/CustomFeat/CustomFeat.js +4 -3
- package/dist/luna/featurettes/CustomFeat/CustomFeat.scss +17 -17
- package/dist/luna/featurettes/Feat1/Feat1.js +2 -2
- package/dist/luna/featurettes/Feat1/Feat1.scss +146 -146
- package/dist/luna/featurettes/Feat2A/Feat2A.scss +192 -192
- package/dist/luna/featurettes/Feat2B/Feat2B.scss +317 -317
- package/dist/luna/featurettes/Feat3/Feat3.scss +78 -78
- package/dist/luna/featurettes/Feat4/Feat4.js +2 -2
- package/dist/luna/featurettes/Feat4/Feat4.scss +168 -168
- package/dist/luna/featurettes/Feat4/LazyBackgroundImage.js +1 -1
- package/dist/luna/featurettes/Feat5/Feat5.js +2 -2
- package/dist/luna/featurettes/Feat5/Feat5.scss +282 -282
- package/dist/luna/featurettes/Feat6/Feat6.scss +170 -170
- package/dist/luna/featurettes/Feat6/ico-quote-white.svg +3 -3
- package/dist/luna/featurettes/Feat6/ico-quote.svg +3 -3
- package/dist/luna/featurettes/Feat7/Feat7.scss +57 -57
- package/dist/luna/heroes/FilterHero/FilterHero.js +4 -3
- package/dist/luna/heroes/FilterHero/FilterHero.scss +151 -151
- package/dist/luna/heroes/Hero1/Hero1.scss +269 -269
- package/dist/luna/heroes/Hero2/Hero2.scss +171 -171
- package/dist/luna/heroes/Hero3/Hero3.js +1 -1
- package/dist/luna/heroes/Hero3/Hero3.scss +350 -350
- package/dist/luna/heroes/Hero4/Hero4.scss +157 -157
- package/dist/luna/heroes/Hero6/Hero6.scss +142 -142
- package/dist/luna/heroes/HeroRatioWrapper/HeroRatioWrapper.scss +16 -16
- package/dist/luna/images/close-button.svg +42 -42
- package/dist/luna/images/down-caret-dark-gray.svg +4 -4
- package/dist/luna/images/down-caret-light-gray.svg +4 -4
- package/dist/luna/images/play.svg +6 -6
- package/dist/luna/images/right-caret-light-gray.svg +4 -4
- package/dist/luna/images/right-caret-medium-gray.svg +4 -4
- package/dist/luna/images/search-highlighted.svg +9 -9
- package/dist/luna/images/search.svg +9 -9
- package/dist/luna/images/skipicon.svg +154 -154
- package/dist/luna/images/worldwide.svg +19 -19
- package/dist/luna/list-feats/ListFeat/ListFeat.js +2 -2
- package/dist/luna/list-feats/ListFeat/ListFeat.scss +153 -153
- package/dist/luna/list-feats/ListFeat1/ListFeat1.scss +68 -68
- package/dist/luna/list-feats/ListFeat2/ListFeat2.scss +31 -31
- package/dist/luna/list-feats/ListFeat3/ListFeat3.scss +28 -28
- package/dist/luna/list-feats/ListFeat4/ListFeat4.scss +41 -41
- package/dist/luna/list-feats/ListFeat5/ListFeat5.scss +43 -43
- package/dist/luna/list-feats/ListFeat6/ListFeat6.scss +63 -63
- package/dist/luna/list-feats/ListFeat7/ListFeat7.scss +13 -13
- package/dist/luna/list-feats/ListFeatCustom/ListFeatCustom.scss +4 -4
- package/dist/luna/other-organisms/Footer/Footer.scss +237 -237
- package/dist/luna/other-organisms/MarketoForm/MarketoForm.js +4 -3
- package/dist/luna/other-organisms/MarketoForm/MarketoForm.scss +56 -56
- package/dist/luna/other-organisms/NavBar/NavBar.js +369 -246
- package/dist/luna/other-organisms/NavBar/NavBar.scss +375 -375
- package/dist/luna/utils/generateBackgroundImage.js +1 -1
- package/package.json +80 -80
package/README.md
CHANGED
|
@@ -1,1630 +1,1630 @@
|
|
|
1
|
-
#Luna React Component Library
|
|
2
|
-
|
|
3
|
-
The Luna React Component Library represents the organisms used by the Trimble Creative Strategies team in web development. It consists of a series of heros and featurettes. Examples of each with required an optional props can be found below. Using this library requires that the Terra React Component Library is also installed, which can be done with `npm i --save terra-component-lib`.
|
|
4
|
-
|
|
5
|
-
## External Libraries Used:
|
|
6
|
-
|
|
7
|
-
- [React Helmet](https://www.npmjs.com/package/react-helmet) - for meta information in the document `<head>`
|
|
8
|
-
- [React Player](https://www.npmjs.com/package/react-player) - for rendering YouTube and Vimeo videos
|
|
9
|
-
- [React Reveal](https://www.npmjs.com/package/react-reveal) - for handling organism animation when they are scrolled into view
|
|
10
|
-
- [React Scroll](https://www.npmjs.com/package/react-scroll) - for direct scrolling behavior from the navigation bar to specific organisms
|
|
11
|
-
- [Vidyard](https://www.npmjs.com/package/@vidyard/embed-code) - for rendering Vidyard videos
|
|
12
|
-
- [Node Sass v4.12.x](https://www.npmjs.com/package/node-sass) - for compiling SASS into CSS
|
|
13
|
-
|
|
14
|
-
## Luna Organisms
|
|
15
|
-
|
|
16
|
-
#### Hero1 -
|
|
17
|
-
|
|
18
|
-
###### Props -
|
|
19
|
-
|
|
20
|
-
- `content` **(required)** - object containing `images`, `header`, `text`, `ctas`
|
|
21
|
-
- images **(required)** - object consisting of `desktop`, `tablet`, and `mobile` image objects
|
|
22
|
-
- `desktop` - object with `url` and `altText` strings for the desktop image view
|
|
23
|
-
- `url` - string that indicates the source of the image
|
|
24
|
-
- `altText` - string that generates accessibility text for images
|
|
25
|
-
- `tablet` - object with `url` and `altText` strings for the tablet image view
|
|
26
|
-
- `url` - string that indicates the source of the image
|
|
27
|
-
- `altText` - string that generates accessibility text for images
|
|
28
|
-
- `mobile` - object with `url` and `altText` strings for the mobile image view
|
|
29
|
-
- `url` - string that indicates the source of the image
|
|
30
|
-
- `altText` - string that generates accessibility text for images
|
|
31
|
-
- `header` **(required)** - string for generating header text
|
|
32
|
-
- `text` - string for generating body text
|
|
33
|
-
- `ctas` - object used to populate a `<CTASection>`
|
|
34
|
-
- `ctaOne`: object with `text` and `url` strings
|
|
35
|
-
- `ctaTwo`: object with `text` and `url` strings
|
|
36
|
-
- `subCTA`: object with `text` and `url` strings
|
|
37
|
-
- `contentSide` - string that indicates whether content is on the `right` or `left` side of the component. Defaults to `right`.
|
|
38
|
-
- theme - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
39
|
-
- `id` - string used for generating the component's id attribute. Will default to the organism's header text or the organism type.
|
|
40
|
-
- `motion` - boolean that indicates whether to use the animation to render the component.
|
|
41
|
-
|
|
42
|
-
###### Example -
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
const ctas = {
|
|
46
|
-
ctaOne: {
|
|
47
|
-
text: "Button",
|
|
48
|
-
url: "/#"
|
|
49
|
-
},
|
|
50
|
-
ctaTwo: {
|
|
51
|
-
text: "Button",
|
|
52
|
-
url: "/#"
|
|
53
|
-
},
|
|
54
|
-
subCTA: {
|
|
55
|
-
text: "Button",
|
|
56
|
-
url: "/#"
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
const images = {
|
|
61
|
-
desktop: {
|
|
62
|
-
url: "https://fpoimg.com/1600x1200",
|
|
63
|
-
altText: "placeholder image"
|
|
64
|
-
},
|
|
65
|
-
tablet: {
|
|
66
|
-
url: "https://fpoimg.com/800x600",
|
|
67
|
-
altText: "placeholder image" },
|
|
68
|
-
mobile: {
|
|
69
|
-
url: "https://fpoimg.com/400x400",
|
|
70
|
-
altText: "placeholder image"
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
const content = {
|
|
75
|
-
images,
|
|
76
|
-
ctas,
|
|
77
|
-
header: 'Design',
|
|
78
|
-
text: 'I am text'
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return (
|
|
82
|
-
<Hero1
|
|
83
|
-
content={content}
|
|
84
|
-
motion
|
|
85
|
-
theme='theme-2'
|
|
86
|
-
/>
|
|
87
|
-
);
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
#### Hero2
|
|
91
|
-
|
|
92
|
-
###### Props -
|
|
93
|
-
|
|
94
|
-
- content **(required)** - object containing images, ctas, headers, subheaders, button
|
|
95
|
-
- `images` **(required)** - an object that contains two objects, `desktop` and `mobile`. `desktop` is the 4x1 image object. `mobile` is the 2x1 image object. Each image object consists have `url` and `altText` strings.
|
|
96
|
-
- `desktop` - object consisting of `url` and `altText` strings for generating the desktop-size image
|
|
97
|
-
- `url` - string that points to the image source
|
|
98
|
-
- `altText` - string that generates image accessibility text
|
|
99
|
-
- `mobile` - object consisting of `url` and `altText` strings for generating the mobile-size image
|
|
100
|
-
- `url` - string that points to the image source
|
|
101
|
-
- `altText` - string that generates image accessibility text
|
|
102
|
-
- `header` **(required)** - string used for generating header text
|
|
103
|
-
- `subHeader` **(required)** - string used for generating sub-header text
|
|
104
|
-
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
105
|
-
- `id` - string used for generating the component's `id` attribute. Will default to the organism's `header` text or the organism type.
|
|
106
|
-
- `motion` - object containing `motion`, `motionDistance`, and `motionDirection` keys. -`motion` value is a boolen to indicate if motion will be on this component -`motionDistance` - string indicating the direction that the component should travel from as it fades in -`motionDirection` - string indicating the distance that the component travels during motion. **Motion is currently not enabled in `Hero2`**
|
|
107
|
-
|
|
108
|
-
###### Example -
|
|
109
|
-
|
|
110
|
-
```
|
|
111
|
-
const content = {
|
|
112
|
-
header="Good Design is innovative",
|
|
113
|
-
subHeader="Esse aliquip ad in et ut ipsum paEu elit consectetur aliquip excepteur fugiat ut qui dolor pariatur consectetur.riatur elit quis.",
|
|
114
|
-
images: {
|
|
115
|
-
desktop: {
|
|
116
|
-
url: "http://fpoimg.com/1600x400?text=4:1",
|
|
117
|
-
altText: "placeholder image"
|
|
118
|
-
},
|
|
119
|
-
mobile: {
|
|
120
|
-
url: "http://fpoimg.com/1600x800?text=2:1",
|
|
121
|
-
altText: "placeholder image"
|
|
122
|
-
}
|
|
123
|
-
},
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
return (
|
|
127
|
-
<Hero2
|
|
128
|
-
content={content}
|
|
129
|
-
/>
|
|
130
|
-
);
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
#### Hero3
|
|
134
|
-
|
|
135
|
-
###### Props -
|
|
136
|
-
|
|
137
|
-
- `content` **(required)** - object containing `header`, `text`, `thumbnail`, and `video` data
|
|
138
|
-
- `header` - string for the header content
|
|
139
|
-
- `text` - string for the body text content
|
|
140
|
-
- `thumbnail` - object for generating the thumbnail with `url` and `altText` strings
|
|
141
|
-
- `url` **(required)** - string that points to the image source
|
|
142
|
-
- `altText` - string for creating accessibility text
|
|
143
|
-
- `video` - object for rendering the video embed
|
|
144
|
-
- `url` - string that points to the video source on YouTube
|
|
145
|
-
- `uuid` - string used for rendering Vidyard video embeds
|
|
146
|
-
- `vidyard` - boolean for indicating that a Vidyard component should be rendered
|
|
147
|
-
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
148
|
-
- `id` - string used for generating the component's id attribute. Will default to the organism's header text or the organism type.
|
|
149
|
-
- `motion` - boolean that indicates whether to use the react-reveal library to render the component inside a `<Fade>` component.
|
|
150
|
-
|
|
151
|
-
---
|
|
152
|
-
|
|
153
|
-
#### Hero4/Hero5
|
|
154
|
-
|
|
155
|
-
###### Props -
|
|
156
|
-
|
|
157
|
-
- `content` **(required)** - object containing header, subHeader, text, ctas, and image data
|
|
158
|
-
- `header` **(required)** - string for generating header text
|
|
159
|
-
- `subHeader` - string for generating sub-header text
|
|
160
|
-
- `text` - string for generating body text
|
|
161
|
-
- `ctas` - object for generating a `<CTASection>` component
|
|
162
|
-
- `image` - object for generating <img> element with url and altText strings
|
|
163
|
-
- `zIndex` - number indicating the desired z-index of the background image.- backgroundColor - string for specifying color for the background. Accepts RGB, RGBA, hex, etc.
|
|
164
|
-
- `theme` - string indicating the theme that styles the organism. Options are theme-1, theme-2, theme-3, theme-4, theme-5.
|
|
165
|
-
- `id` - string used for generating the component's id attribute. Will default to the organism's header text or the organism type.
|
|
166
|
-
- `motion` - boolean that indicates whether to use the react-reveal library to render the component inside a `<Fade>` component.
|
|
167
|
-
|
|
168
|
-
###### Example -
|
|
169
|
-
|
|
170
|
-
```
|
|
171
|
-
const mockCTALinks = {
|
|
172
|
-
ctaOne: {
|
|
173
|
-
text: "Button",
|
|
174
|
-
url: "/#"
|
|
175
|
-
},
|
|
176
|
-
ctaTwo: {
|
|
177
|
-
text: "Button",
|
|
178
|
-
url: "/#"
|
|
179
|
-
},
|
|
180
|
-
subCTA: {
|
|
181
|
-
text: "Button",
|
|
182
|
-
url: "/#"
|
|
183
|
-
}
|
|
184
|
-
};
|
|
185
|
-
|
|
186
|
-
const mockImage = {
|
|
187
|
-
url: "./1-to-1.png",
|
|
188
|
-
altText: "placeholder"
|
|
189
|
-
};
|
|
190
|
-
|
|
191
|
-
const content = {
|
|
192
|
-
ctas: mockCTALinks,
|
|
193
|
-
image: mockImage,
|
|
194
|
-
header: 'Header',
|
|
195
|
-
text: 'I am text'
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
<Hero4
|
|
199
|
-
content={content}
|
|
200
|
-
motion
|
|
201
|
-
theme='theme-1'
|
|
202
|
-
/>
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
---
|
|
206
|
-
|
|
207
|
-
#### Hero6
|
|
208
|
-
|
|
209
|
-
###### Props -
|
|
210
|
-
|
|
211
|
-
- `content` **(required)** - object containing images, header, text, ctas, and subHeader
|
|
212
|
-
- `header` **(required)** - string for generating header text
|
|
213
|
-
- `subHeader` - string for generating sub-header text
|
|
214
|
-
- `text` **(required)** - string for generating body text
|
|
215
|
-
- `ctas` - object for generating a `<CTASection>` component
|
|
216
|
-
- `images` **(required)** - object consisting of three image objects, each with url and altText strings. The objects are `desktop`, `tablet`, and `mobile`.
|
|
217
|
-
- `desktop` - object with `url` and `altText` strings for generating the desktop hero image
|
|
218
|
-
- `url` - string that links to a 3x2 image source
|
|
219
|
-
- `altText` - string for generating image accessibility text
|
|
220
|
-
- `tablet` - object with `url` and `altText` strings for generating the desktop hero image
|
|
221
|
-
- `url` - string that links to a 1x1 image source
|
|
222
|
-
- `altText` - string for generating image accessibility text
|
|
223
|
-
- `mobile` - object with `url` and `altText` strings for generating the desktop hero image
|
|
224
|
-
- `url` - string that links to a 4x3 image source
|
|
225
|
-
- `altText` - string for generating image accessibility text
|
|
226
|
-
- `imageSide` - string used for indicating the side of the page that the image should render on. Defaults to right.
|
|
227
|
-
- `theme` - string indicating the theme that styles the organism. Options are theme-1, theme-2, theme-3, theme-4, theme-5.
|
|
228
|
-
- `id` - string used for generating the component's id attribute. Will default to the organism's header text or the organism type.
|
|
229
|
-
- `motion` - boolean that indicates whether to use the react-reveal library to render the component inside a `<Fade>` component.
|
|
230
|
-
|
|
231
|
-
###### Example -
|
|
232
|
-
|
|
233
|
-
```
|
|
234
|
-
const images = {
|
|
235
|
-
desktop : {
|
|
236
|
-
url: "http://fpoimg.com/2400x1600?text=3:2",
|
|
237
|
-
altText: "placeholder image"
|
|
238
|
-
},
|
|
239
|
-
mobile: {
|
|
240
|
-
url: "http://fpoimg.com/1600x1200?text=4:3",
|
|
241
|
-
altText: "placeholder image"
|
|
242
|
-
},
|
|
243
|
-
tablet: {
|
|
244
|
-
url: "http://fpoimg.com/1600x1600?text=1:1",
|
|
245
|
-
altText: "placeholder image"
|
|
246
|
-
}
|
|
247
|
-
};
|
|
248
|
-
|
|
249
|
-
const ctas = {
|
|
250
|
-
ctaOne: {
|
|
251
|
-
url: "/#",
|
|
252
|
-
text: "Button"
|
|
253
|
-
},
|
|
254
|
-
ctaTwo: {
|
|
255
|
-
url: "/#",
|
|
256
|
-
text: "Button"
|
|
257
|
-
}
|
|
258
|
-
};
|
|
259
|
-
|
|
260
|
-
const content {
|
|
261
|
-
images,
|
|
262
|
-
ctas,
|
|
263
|
-
header: 'Header',
|
|
264
|
-
text: 'Text!'
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
return (
|
|
268
|
-
<Hero6
|
|
269
|
-
imageSide="left"
|
|
270
|
-
content={content}
|
|
271
|
-
motion
|
|
272
|
-
theme='theme-4'
|
|
273
|
-
/>
|
|
274
|
-
);
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
#### FilterHero
|
|
278
|
-
|
|
279
|
-
###### Props -
|
|
280
|
-
|
|
281
|
-
- `header` - string for generating header text
|
|
282
|
-
- `text` - string for generating body text.
|
|
283
|
-
- `dropdowns` - an array used for generating Dropdown components - see example for structuring
|
|
284
|
-
- `checkboxes` - an array used for generating Checkbox components - see example for structuring
|
|
285
|
-
- `handleDropdownChange` - method used for handling new dropdown selections - takes the new selection and the associated name of the dropdown from the event object arguments.
|
|
286
|
-
- `handleCheckboxChange` - method used for handling checkbox toggling - takes a boolean for the status of the checkbox and the name of the checkbox from the event object as arguments.
|
|
287
|
-
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
288
|
-
- `motion` - boolean that indicates whether to use the react-reveal library to render the component inside a `<Fade>` component.
|
|
289
|
-
|
|
290
|
-
###### Example -
|
|
291
|
-
|
|
292
|
-
```
|
|
293
|
-
handleDropdownChange = (selection, name) => {
|
|
294
|
-
this.setState({[name]: selection})
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
handleCheckboxChange = (bool, name) => {
|
|
298
|
-
this.setState({[name]: bool})
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
const header = 'I am a header'
|
|
302
|
-
const text = 'Tempor ex esse ipsum sit eiusmod dolor mollit cupidatat elit cupidatat pariatur commodo non est.'
|
|
303
|
-
|
|
304
|
-
const dropdownOne = {
|
|
305
|
-
options: ["trade one", "trade two", "trade three"],
|
|
306
|
-
defaultText: "All",
|
|
307
|
-
name: "Trade"
|
|
308
|
-
};
|
|
309
|
-
const dropdownTwo = {
|
|
310
|
-
options: ["category one", "category two", "category three"],
|
|
311
|
-
defaultText: "All",
|
|
312
|
-
name: "Category"
|
|
313
|
-
};
|
|
314
|
-
const dropdowns = [dropdownOne, dropdownTwo]
|
|
315
|
-
|
|
316
|
-
const checkboxOne = {
|
|
317
|
-
name: "Checkbox One"
|
|
318
|
-
};
|
|
319
|
-
const checkboxTwo = { name: "Checkbox Two" };
|
|
320
|
-
const checkboxes = [checkboxOne, checkboxTwo];
|
|
321
|
-
|
|
322
|
-
return (
|
|
323
|
-
<FilterHero
|
|
324
|
-
header={header}
|
|
325
|
-
text={text}
|
|
326
|
-
dropdowns={dropdowns}
|
|
327
|
-
checkboxes={checkboxes}
|
|
328
|
-
handleDropdownChange={this.handleDropdownChange}
|
|
329
|
-
handleCheckboxChange={this.handleCheckboxChange}
|
|
330
|
-
backgroundColor='#5e5e5e'
|
|
331
|
-
/>
|
|
332
|
-
)
|
|
333
|
-
```
|
|
334
|
-
|
|
335
|
-
---
|
|
336
|
-
|
|
337
|
-
#### Feat1
|
|
338
|
-
|
|
339
|
-
###### Props -
|
|
340
|
-
|
|
341
|
-
- `content` **(required)** - object containing the objects content (see example)
|
|
342
|
-
- `header` **(required)** - string for generating header text
|
|
343
|
-
- `subHeader` - string for generating sub-header text
|
|
344
|
-
- `text` **(required)** - string for generating body text
|
|
345
|
-
- `cta` - object for generating a `<ButtonLink>` component requiring `url` and `text` strings
|
|
346
|
-
- `image` **(required)** - object consisting of `url` and `altText` strings.
|
|
347
|
-
- `backgroundImage` - url string that points to a background image address
|
|
348
|
-
- `backgroundPosition` - string indicating where the background image appears. Options are `top`, `top-left`, `top-right`, `bottom`, `bottom-left`, `bottom-right`, `right`, `left` and `center`.
|
|
349
|
-
- `backgroundImageWidth` - number indicating the width of the background image in pixels
|
|
350
|
-
- `backgroundImageHeight` - number indicating the height of the background image in pixels
|
|
351
|
-
- `backgroundOffsetY` - number indicating the offset of the background image on the Y axis
|
|
352
|
-
- `backgroundOffsetX` - number indicating the offset of the background image on the X axis
|
|
353
|
-
- `parallaxPosition` - number indicating the current scrollY position of the page, should come from Redux
|
|
354
|
-
- `zIndex` - number indicating the desired `z-index` of the background image.- `backgroundColor` - string for specifying color for the background. Accepts RGB, RGBA, hex, etc.
|
|
355
|
-
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
356
|
-
- `id` - string used for generating the component's `id` attribute. Will default to the organism's `header` text or the organism type.
|
|
357
|
-
- `motion` - boolean that indicates whether to use the `react-reveal` library to render the component inside a `<Fade>` component.
|
|
358
|
-
|
|
359
|
-
###### Example -
|
|
360
|
-
|
|
361
|
-
```
|
|
362
|
-
const content = {
|
|
363
|
-
header: 'Header',
|
|
364
|
-
subHeader: 'Sub Header',
|
|
365
|
-
text: '<p>Sunt elit officia id aute esse dolore elit Lorem officia.</p>'
|
|
366
|
-
cta: {
|
|
367
|
-
url: '/',
|
|
368
|
-
text: 'link'
|
|
369
|
-
},
|
|
370
|
-
image: {
|
|
371
|
-
url: '/',
|
|
372
|
-
altText: 'Image'
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
const background = {
|
|
377
|
-
backgroundImage: './image.png',
|
|
378
|
-
backgroundPosition: 'right',
|
|
379
|
-
backgroundImageWidth: 900,
|
|
380
|
-
backgroundImageHeight: 900,
|
|
381
|
-
backgroundOFfsetY: 0,
|
|
382
|
-
backgroundOffsetX: 100
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
return (
|
|
386
|
-
<Feat1
|
|
387
|
-
content={content}
|
|
388
|
-
motion
|
|
389
|
-
background={background}
|
|
390
|
-
parallaxPosition={this.props.parallaxPosition}
|
|
391
|
-
theme='theme-2',
|
|
392
|
-
id={data.id}
|
|
393
|
-
/>
|
|
394
|
-
);
|
|
395
|
-
```
|
|
396
|
-
|
|
397
|
-
---
|
|
398
|
-
|
|
399
|
-
#### Feat2A
|
|
400
|
-
|
|
401
|
-
###### Props -
|
|
402
|
-
|
|
403
|
-
- `image` **(required)** - object with `url` and `altText` strings
|
|
404
|
-
- `<AccordionFold>` **(required)** - child component for rendering folds in the `<Accordion>` component with each fold taking a `header` string as a prop
|
|
405
|
-
- `zIndex` - number indicating the desired `z-index` of the background image.- `backgroundColor` - string for specifying color for the background. Accepts RGB, RGBA, hex, etc.
|
|
406
|
-
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
407
|
-
- `id` - string used for generating the component's `id` attribute. Will default to the organism's `header` text or the organism type.
|
|
408
|
-
- `motion` - boolean that indicates whether to use the `react-reveal` library to render the component inside a `<Fade>` component.
|
|
409
|
-
|
|
410
|
-
###### Example -
|
|
411
|
-
|
|
412
|
-
```
|
|
413
|
-
import { AccordionFold } from 'terra-component-lib'
|
|
414
|
-
|
|
415
|
-
const mockImage = {
|
|
416
|
-
url: "https://fpoimg.com/500x500",
|
|
417
|
-
altText: "Placeholder image"
|
|
418
|
-
};
|
|
419
|
-
|
|
420
|
-
return (
|
|
421
|
-
<Feat2A
|
|
422
|
-
image={mockImage}
|
|
423
|
-
header="Good design is a thing, apparently."
|
|
424
|
-
text="Veniam laboris laboris consequat et."
|
|
425
|
-
>
|
|
426
|
-
<AccordionFold header="Test one">
|
|
427
|
-
<p>
|
|
428
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer
|
|
429
|
-
lobortis augue ligula, eget gravida tellus lacinia id. Sed ultricies
|
|
430
|
-
mi malesuada tincidunt dapibus. Donec porta ligula sagittis elit
|
|
431
|
-
sollicitudin.
|
|
432
|
-
</p>
|
|
433
|
-
</AccordionFold>
|
|
434
|
-
<AccordionFold header="Test two">
|
|
435
|
-
<p>
|
|
436
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer
|
|
437
|
-
lobortis augue ligula, eget gravida tellus lacinia id. Sed ultricies
|
|
438
|
-
mi malesuada tincidunt dapibus. Donec porta ligula sagittis elit
|
|
439
|
-
sollicitudin.
|
|
440
|
-
</p>
|
|
441
|
-
</AccordionFold>
|
|
442
|
-
<AccordionFold header="Test three">
|
|
443
|
-
<p>
|
|
444
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer
|
|
445
|
-
lobortis augue ligula, eget gravida tellus lacinia id. Sed ultricies
|
|
446
|
-
mi malesuada tincidunt dapibus. Donec porta ligula sagittis elit
|
|
447
|
-
sollicitudin.
|
|
448
|
-
</p>
|
|
449
|
-
</AccordionFold>
|
|
450
|
-
</Feat2>
|
|
451
|
-
);
|
|
452
|
-
```
|
|
453
|
-
|
|
454
|
-
---
|
|
455
|
-
|
|
456
|
-
#### Feat2B
|
|
457
|
-
|
|
458
|
-
###### Props -
|
|
459
|
-
|
|
460
|
-
- content **(required)** - object containing images and cards (see Example)
|
|
461
|
-
- `cards` **(required)** - array of objects used for generating `IconListItem` components with `text` and `header` strings
|
|
462
|
-
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
463
|
-
- `id` - string used for generating the component's `id` attribute. Will default to the organism's `header` text or the organism type.
|
|
464
|
-
- `motion` - boolean that indicates whether to use the `react-reveal` library to render the component inside a `<Fade>` component.
|
|
465
|
-
|
|
466
|
-
###### Example -
|
|
467
|
-
|
|
468
|
-
```
|
|
469
|
-
const content = {
|
|
470
|
-
images: {
|
|
471
|
-
desktop: {
|
|
472
|
-
url: "http://fpoimg.com/1600x400?text=4:1",
|
|
473
|
-
altText: "placeholder image"
|
|
474
|
-
},
|
|
475
|
-
mobile: {
|
|
476
|
-
url: "http://fpoimg.com/1600x800?text=2:1",
|
|
477
|
-
altText: "placeholder image"
|
|
478
|
-
}
|
|
479
|
-
},
|
|
480
|
-
cards: [
|
|
481
|
-
{
|
|
482
|
-
header: "Header",
|
|
483
|
-
text:
|
|
484
|
-
"Anim aliquip aliqua aliqua id qui aute anim reprehenderit tempor velit est sint laborum."
|
|
485
|
-
},
|
|
486
|
-
{
|
|
487
|
-
header: "Header",
|
|
488
|
-
text:
|
|
489
|
-
"Anim aliquip aliqua aliqua id qui aute anim reprehenderit tempor velit est sint laborum."
|
|
490
|
-
},
|
|
491
|
-
{
|
|
492
|
-
header: "Header",
|
|
493
|
-
text:
|
|
494
|
-
"Anim aliquip aliqua aliqua id qui aute anim reprehenderit tempor velit est sint laborum."
|
|
495
|
-
}
|
|
496
|
-
]
|
|
497
|
-
}
|
|
498
|
-
|
|
499
|
-
return (
|
|
500
|
-
<Feat2B
|
|
501
|
-
content={content}
|
|
502
|
-
motion
|
|
503
|
-
theme='theme-2'
|
|
504
|
-
id={data.id}
|
|
505
|
-
/>
|
|
506
|
-
);
|
|
507
|
-
```
|
|
508
|
-
|
|
509
|
-
---
|
|
510
|
-
|
|
511
|
-
#### Feat3
|
|
512
|
-
|
|
513
|
-
###### Description -
|
|
514
|
-
|
|
515
|
-
Featurette with a large image, header, and sub-header text
|
|
516
|
-
|
|
517
|
-
###### Props -
|
|
518
|
-
|
|
519
|
-
- `content` **(required)** - object containing, images, header, and text
|
|
520
|
-
- `header` - string used for generating the feat header
|
|
521
|
-
- `subHeader` - string used for generating the feat sub-header
|
|
522
|
-
- `images` - object containing mobile and desktop images
|
|
523
|
-
- `mobile` - object containing the mobile image source and alt text
|
|
524
|
-
- `url` - string pointing to the image source
|
|
525
|
-
- `altText` - string used for assisted alternate text for screen readers
|
|
526
|
-
- `desktop` - object containing the desktop image source and alt text
|
|
527
|
-
- `url` - string pointing to the image source
|
|
528
|
-
- `altText` - string used for assisted alternate text for screen readers
|
|
529
|
-
- `motion` - boolean indicating if component animation is active
|
|
530
|
-
- `id` - string used for generating the component's id, defaults to the header text (spaces removed)
|
|
531
|
-
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
532
|
-
|
|
533
|
-
###### Example -
|
|
534
|
-
|
|
535
|
-
```
|
|
536
|
-
const content = {
|
|
537
|
-
header: "Feat 3 Header",
|
|
538
|
-
subHeader: "This is sub-header text",
|
|
539
|
-
images: {
|
|
540
|
-
mobile: {
|
|
541
|
-
url: "www.image.com/mobile-image.jpg",
|
|
542
|
-
altText: "image alt text
|
|
543
|
-
},
|
|
544
|
-
desktop: {
|
|
545
|
-
url: "www.image.com/desktop-image.jpg",
|
|
546
|
-
altText: "image alt text
|
|
547
|
-
}
|
|
548
|
-
},
|
|
549
|
-
theme: "theme-2",
|
|
550
|
-
motion: true
|
|
551
|
-
}
|
|
552
|
-
|
|
553
|
-
return <Feat3 content={content} />
|
|
554
|
-
```
|
|
555
|
-
|
|
556
|
-
---
|
|
557
|
-
|
|
558
|
-
#### Feat4
|
|
559
|
-
|
|
560
|
-
###### Props -
|
|
561
|
-
|
|
562
|
-
- content **(required)** - object containing, ctas, headers, subheaders
|
|
563
|
-
|
|
564
|
-
- `header` **(required)** - string used for generating header text
|
|
565
|
-
- `subHeader` **(required)** - string used for generating sub-header text
|
|
566
|
-
|
|
567
|
-
- background - object containing `backgroundImage` which value is a string, `backgroundPosition` which value is a number, `backgroundColor` which value is a string, `backgroundOffsetX` which value is a number, `backgroundOffsetY` which value is a number, `backgroundImageHeight` which value is a number and `backgroundImageWidth` which value is anumber
|
|
568
|
-
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
569
|
-
- `id` - string used for generating the component's `id` attribute. Will default to the organism's `header` text or the organism type.
|
|
570
|
-
- `motion` - object containing `motion`, `motionDistance`, and `motionDirection` keys. -`motion` value is a boolen to indicate if motion will be on this component -`motionDistance` - string indicating the direction that the component should travel from as it fades in -`motionDirection` - string indicating the distance that the component travels during motion.
|
|
571
|
-
|
|
572
|
-
###### Example -
|
|
573
|
-
|
|
574
|
-
```
|
|
575
|
-
const content = {
|
|
576
|
-
header="Good Design is innovative",
|
|
577
|
-
subHeader="Esse aliquip ad in et ut ipsum paEu elit consectetur aliquip excepteur fugiat ut qui dolor pariatur consectetur.riatur elit quis.",
|
|
578
|
-
const ctas = {
|
|
579
|
-
ctaOne: {
|
|
580
|
-
text: "Button",
|
|
581
|
-
url: "/#"
|
|
582
|
-
},
|
|
583
|
-
ctaTwo: {
|
|
584
|
-
text: "Button",
|
|
585
|
-
url: "/#"
|
|
586
|
-
}
|
|
587
|
-
};
|
|
588
|
-
}
|
|
589
|
-
|
|
590
|
-
return (
|
|
591
|
-
<Feat4
|
|
592
|
-
content={content}
|
|
593
|
-
/>
|
|
594
|
-
);
|
|
595
|
-
```
|
|
596
|
-
|
|
597
|
-
---
|
|
598
|
-
|
|
599
|
-
#### Feat5
|
|
600
|
-
|
|
601
|
-
###### Props -
|
|
602
|
-
|
|
603
|
-
- `dumplings` **(required)** - an array of objects used for generating `<Dumpling>` components; see the Terra component library for requirements
|
|
604
|
-
- `type` - string used to determine whether or not small or large dumplings are used (`'a'` is large, `'b'` is small)
|
|
605
|
-
- `header` **(required)** - string used for generating header text
|
|
606
|
-
- `subHeader` - string used for generating sub-header text
|
|
607
|
-
- `backgroundImage` - url string that points to a background image address
|
|
608
|
-
- `backgroundPosition` - string indicating where the background image appears. Options are `top`, `top-left`, `top-right`, `bottom`, `bottom-left`, `bottom-right`, `right`, `left` and `center`.
|
|
609
|
-
- `backgroundImageWidth` - number indicating the width of the background image in pixels
|
|
610
|
-
- `backgroundImageHeight` - number indicating the height of the background image in pixels
|
|
611
|
-
- `backgroundOffsetY` - number indicating the offset of the background image on the Y axis
|
|
612
|
-
- `backgroundOffsetX` - number indicating the offset of the background image on the X axis
|
|
613
|
-
- `zIndex` - number indicating the desired `z-index` of the background image.- `backgroundColor` - string for specifying color for the background. Accepts RGB, RGBA, hex, etc.
|
|
614
|
-
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
615
|
-
- `className` - string that is interpolated into the organisms class for targeted styling and/or manipulation
|
|
616
|
-
- `id` - string used for generating the component's `id` attribute. Will default to the organism's `header` text or the organism type.
|
|
617
|
-
- `motion` - boolean that indicates whether to use the `react-reveal` library to render the component inside a `<Fade>` component.
|
|
618
|
-
- `motionDirection` - string indicating the direction that the component should travel from as it fades in.
|
|
619
|
-
- `motionDistance` - string indicating the distance that the component travels during motion
|
|
620
|
-
|
|
621
|
-
###### Example -
|
|
622
|
-
|
|
623
|
-
```
|
|
624
|
-
const mockDumplings = [
|
|
625
|
-
{
|
|
626
|
-
header: "Dumplin'",
|
|
627
|
-
link: { url: "/#" },
|
|
628
|
-
size: "small",
|
|
629
|
-
icon: { type: "enclosed-check-dark-48px", size: "48px" }
|
|
630
|
-
},
|
|
631
|
-
{
|
|
632
|
-
header: "Dumplin'",
|
|
633
|
-
link: { url: "/#" },
|
|
634
|
-
size: "small",
|
|
635
|
-
icon: { type: "enclosed-check-dark-48px", size: "48px" }
|
|
636
|
-
}
|
|
637
|
-
];
|
|
638
|
-
|
|
639
|
-
return (
|
|
640
|
-
<Feat5
|
|
641
|
-
dumplings={mockDumplings}
|
|
642
|
-
type="a"
|
|
643
|
-
header="Design is design"
|
|
644
|
-
subHeader="It's like, this thing, you know?"
|
|
645
|
-
/>
|
|
646
|
-
);
|
|
647
|
-
```
|
|
648
|
-
|
|
649
|
-
---
|
|
650
|
-
|
|
651
|
-
#### Feat6
|
|
652
|
-
|
|
653
|
-
###### Props -
|
|
654
|
-
|
|
655
|
-
- content **(required)** - object containing quotes, ctas, button
|
|
656
|
-
|
|
657
|
-
- quote (required) - object consisting of text, source, and sourceTitle strings
|
|
658
|
-
- `images` **(required)** - an object that contains two objects, `desktop` and `mobile`. `desktop` is the 4x1 image object. `mobile` is the 2x1 image object. Each image object consists have `url` and `altText` strings.
|
|
659
|
-
|
|
660
|
-
- `header` **(required)** - string used for generating header text
|
|
661
|
-
- `subHeader` **(required)** - string used for generating sub-header text
|
|
662
|
-
|
|
663
|
-
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
664
|
-
- `id` - string used for generating the component's `id` attribute. Will default to the organism's `header` text or the organism type.
|
|
665
|
-
- `motion` - object containing `motion`, `motionDistance`, and `motionDirection` keys. -`motion` value is a boolen to indicate if motion will be on this component -`motionDistance` - string indicating the direction that the component should travel from as it fades in -`motionDirection` - string indicating the distance that the component travels during motion.
|
|
666
|
-
|
|
667
|
-
###### Example -
|
|
668
|
-
|
|
669
|
-
```
|
|
670
|
-
const content = {
|
|
671
|
-
image:{
|
|
672
|
-
url: "http://fpoimg.com/800x800",
|
|
673
|
-
altText: "placeholder image"
|
|
674
|
-
},
|
|
675
|
-
quote:{
|
|
676
|
-
text: `Excepteur incididunt magna commodo amet est fugiat."`,
|
|
677
|
-
source: "Leonard Sciarra",
|
|
678
|
-
sourceTitle: "Senior Associate at Gensler, AIA, ASHRAE, LEED AP+"
|
|
679
|
-
},
|
|
680
|
-
cta:{
|
|
681
|
-
text: "CTA",
|
|
682
|
-
url: "/#"
|
|
683
|
-
},
|
|
684
|
-
}
|
|
685
|
-
|
|
686
|
-
return (
|
|
687
|
-
<Feat6
|
|
688
|
-
content={content}
|
|
689
|
-
/>
|
|
690
|
-
|
|
691
|
-
```
|
|
692
|
-
|
|
693
|
-
---
|
|
694
|
-
|
|
695
|
-
#### Feat7
|
|
696
|
-
|
|
697
|
-
###### Props -
|
|
698
|
-
|
|
699
|
-
- `content` **(required)** - array of objects use for generating 'cards' consisting of `header`, `text`, and `url` strings.
|
|
700
|
-
- `header` **(required)** - string used for generating header text
|
|
701
|
-
- `backgroundImage` - url string that points to a background image address
|
|
702
|
-
- `backgroundPosition` - string indicating where the background image appears. Options are `top`, `top-left`, `top-right`, `bottom`, `bottom-left`, `bottom-right`, `right`, `left` and `center`.
|
|
703
|
-
- `backgroundImageWidth` - number indicating the width of the background image in pixels
|
|
704
|
-
- `backgroundImageHeight` - number indicating the height of the background image in pixels
|
|
705
|
-
- `backgroundOffsetY` - number indicating the offset of the background image on the Y axis
|
|
706
|
-
- `backgroundOffsetX` - number indicating the offset of the background image on the X axis
|
|
707
|
-
- `zIndex` - number indicating the desired `z-index` of the background image.- `backgroundColor` - string for specifying color for the background. Accepts RGB, RGBA, hex, etc.
|
|
708
|
-
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
709
|
-
- `className` - string that is interpolated into the organisms class for targeted styling and/or manipulation
|
|
710
|
-
- `id` - string used for generating the component's `id` attribute. Will default to the organism's `header` text or the organism type.
|
|
711
|
-
- `motion` - boolean that indicates whether to use the `react-reveal` library to render the component inside a `<Fade>` component.
|
|
712
|
-
- `motionDirection` - string indicating the direction that the component should travel from as it fades in.
|
|
713
|
-
- `motionDistance` - string indicating the distance that the component travels during motion
|
|
714
|
-
|
|
715
|
-
###### Example -
|
|
716
|
-
|
|
717
|
-
```
|
|
718
|
-
const content = [
|
|
719
|
-
{
|
|
720
|
-
header: "Design!",
|
|
721
|
-
text:
|
|
722
|
-
"Enim laborum ad anim laborum ad minim ipsum proident est cillum aliqua. Irure laboris aute ullamco ad Lorem et culpa id commodo quis sunt labore in id.",
|
|
723
|
-
url: "/#"
|
|
724
|
-
},
|
|
725
|
-
{
|
|
726
|
-
header: "Aesthetics!",
|
|
727
|
-
text:
|
|
728
|
-
"Enim laborum ad anim laborum ad minim ipsum proident est cillum aliqua.",
|
|
729
|
-
url: "/#"
|
|
730
|
-
}
|
|
731
|
-
];
|
|
732
|
-
return <Feat7 header="I am a header" content={content} />;
|
|
733
|
-
```
|
|
734
|
-
|
|
735
|
-
---
|
|
736
|
-
|
|
737
|
-
#### ParallaxBackground
|
|
738
|
-
|
|
739
|
-
###### Props -
|
|
740
|
-
|
|
741
|
-
- `backgroundImage` - string for the URL that points to the background image to be rendered
|
|
742
|
-
- `speed` - integer used for determining the speed of the parallax effect. Defaults to `2`. A speed of `1` will keep the background image fixed, while a speed of `2` will cause it to scroll at half speed.
|
|
743
|
-
- `styles` - object of style properties that are passed to the parent container.
|
|
744
|
-
- `children` - JSX passed inside the tags that will be rendered within the container and will scroll at normal speed.
|
|
745
|
-
|
|
746
|
-
###### Example -
|
|
747
|
-
|
|
748
|
-
```
|
|
749
|
-
const backgroundImage = 'https://www.images.com/images/image.jpg
|
|
750
|
-
|
|
751
|
-
return (
|
|
752
|
-
<ParallaxBackground
|
|
753
|
-
backgroundImage={backgroundImage}
|
|
754
|
-
styles={{padding: '0 40px'}}
|
|
755
|
-
speed={1.4}
|
|
756
|
-
>
|
|
757
|
-
<p>Content!</p>
|
|
758
|
-
</ParallaxBackground>
|
|
759
|
-
)
|
|
760
|
-
```
|
|
761
|
-
|
|
762
|
-
#### NavBar
|
|
763
|
-
|
|
764
|
-
###### Notes -
|
|
765
|
-
|
|
766
|
-
This component uses the `react-slidedown` library for the innerpage navigation links in the `utilityNav`. The `link.url` string should be a reference to the name of the `<Element>` that wraps the cooresponding organism that the window should scroll to.
|
|
767
|
-
|
|
768
|
-
###### Props -
|
|
769
|
-
|
|
770
|
-
- `rightLinks` - array of objects used for generating links to the right of the search icon. Each object requires `url` and `text` strings.
|
|
771
|
-
- `logo` **(required)** - object consisting of `url` and `altText` strings (for generating the logo image) in addition to a link object with a `url` string for generating the `href` property.
|
|
772
|
-
- `divisionName` **(required)** - string used for generating the name of the Trimble division that is to the right of the logo.n
|
|
773
|
-
- `navCTA` - object consiting of a `className` string for formating the button (see Terra buttons) and a `link` object with `url` and `text` strings used for generating the CTA in the lower right corner of the Nav
|
|
774
|
-
- `navOptions` - array of objects used for generating the middle section of the nav. All objects will have a type indicating whether to render a (`MegaMenu`), a simple drop down of links (`miniMenus`), or a single link (`singleLink`). See examples below on how to load up these objects. The `MegaMenu` can both render a links both with and without subcategories.
|
|
775
|
-
- `utilityNav` - object consisting of a `pageTitle` string as well as a `links` array of objects consisting of `text` and `url` strings. See example below.
|
|
776
|
-
- `currentLanguage` - object with `region` and `language` strings that indicate the current region and language selected.
|
|
777
|
-
- `languageSelectorData` - object consisting of data needed to populate the `LanguageSelector` component. See example below.
|
|
778
|
-
- `setLanguage` - method used to set the region and language, which it takes as string key/values in an object as an argument
|
|
779
|
-
- `location` - prop used to close the mobile menu when a user clicks on one of the rightLinks. In your project, pass in `location={this.props.location}`
|
|
780
|
-
|
|
781
|
-
###### Example -
|
|
782
|
-
|
|
783
|
-
```
|
|
784
|
-
const rightLinks = [
|
|
785
|
-
{
|
|
786
|
-
url: "/#",
|
|
787
|
-
text: "Support"
|
|
788
|
-
}
|
|
789
|
-
];
|
|
790
|
-
|
|
791
|
-
const logo = {
|
|
792
|
-
url: Logo (should be imported in the application),
|
|
793
|
-
altText: 'Trimble Logo',
|
|
794
|
-
link: {
|
|
795
|
-
url: 'www.trimble.com'
|
|
796
|
-
}
|
|
797
|
-
};
|
|
798
|
-
|
|
799
|
-
const divisionName = 'Geospatial';
|
|
800
|
-
const location = 'N. America';
|
|
801
|
-
|
|
802
|
-
const navCTA = {
|
|
803
|
-
className: 'ter-button--primary--1',
|
|
804
|
-
link: {
|
|
805
|
-
url: '/#',
|
|
806
|
-
text: 'Contact Sales'
|
|
807
|
-
}
|
|
808
|
-
}
|
|
809
|
-
|
|
810
|
-
const location = this.props.location
|
|
811
|
-
|
|
812
|
-
const utilityNav = {
|
|
813
|
-
pageTitle: "Trimble Accubid Enterprise",
|
|
814
|
-
links: [
|
|
815
|
-
{
|
|
816
|
-
text: "Product Anchor One",
|
|
817
|
-
url: "/#"
|
|
818
|
-
},
|
|
819
|
-
{
|
|
820
|
-
text: "Product Anchor Two",
|
|
821
|
-
url: "/#"
|
|
822
|
-
}
|
|
823
|
-
]
|
|
824
|
-
};
|
|
825
|
-
|
|
826
|
-
const megaMenu = {
|
|
827
|
-
type: "mega menu",
|
|
828
|
-
bottomLink: {
|
|
829
|
-
url: "/#",
|
|
830
|
-
text: "All Products"
|
|
831
|
-
},
|
|
832
|
-
text: "Products",
|
|
833
|
-
links: [
|
|
834
|
-
{
|
|
835
|
-
text: "Mechanical",
|
|
836
|
-
links: [
|
|
837
|
-
{
|
|
838
|
-
url: "/#",
|
|
839
|
-
text: "BIM Collaboration"
|
|
840
|
-
},
|
|
841
|
-
{
|
|
842
|
-
url: "/#",
|
|
843
|
-
text: "MEP Content"
|
|
844
|
-
}
|
|
845
|
-
]
|
|
846
|
-
},
|
|
847
|
-
{
|
|
848
|
-
text: "Electrical",
|
|
849
|
-
links: [
|
|
850
|
-
{
|
|
851
|
-
url: "/#",
|
|
852
|
-
text: "Design/Detailing"
|
|
853
|
-
},
|
|
854
|
-
{
|
|
855
|
-
url: "/#",
|
|
856
|
-
text: "Project Management"
|
|
857
|
-
}
|
|
858
|
-
]
|
|
859
|
-
},
|
|
860
|
-
{
|
|
861
|
-
text: "Plumbing",
|
|
862
|
-
link: {url: "/#"}
|
|
863
|
-
},
|
|
864
|
-
]
|
|
865
|
-
};
|
|
866
|
-
|
|
867
|
-
const miniMenus = [
|
|
868
|
-
{
|
|
869
|
-
type: "mini menu",
|
|
870
|
-
text: "Services",
|
|
871
|
-
links: [
|
|
872
|
-
{
|
|
873
|
-
url: "/#",
|
|
874
|
-
text: "Link One"
|
|
875
|
-
},
|
|
876
|
-
{
|
|
877
|
-
url: "/#",
|
|
878
|
-
text: "Link Two"
|
|
879
|
-
}
|
|
880
|
-
]
|
|
881
|
-
},
|
|
882
|
-
{
|
|
883
|
-
type: "mini menu",
|
|
884
|
-
text: "Resources",
|
|
885
|
-
links: [
|
|
886
|
-
{
|
|
887
|
-
url: "/#",
|
|
888
|
-
text: "Link One"
|
|
889
|
-
},
|
|
890
|
-
{
|
|
891
|
-
url: "/#",
|
|
892
|
-
text: "Link Two"
|
|
893
|
-
}
|
|
894
|
-
]
|
|
895
|
-
}
|
|
896
|
-
];
|
|
897
|
-
|
|
898
|
-
const singleLink = {
|
|
899
|
-
type: "link",
|
|
900
|
-
url: "/#",
|
|
901
|
-
text: "Process"
|
|
902
|
-
};
|
|
903
|
-
|
|
904
|
-
const languageSelectorData = {
|
|
905
|
-
labels: {
|
|
906
|
-
currentRegion: "Current Region",
|
|
907
|
-
cancel: "Cancel",
|
|
908
|
-
save: "Save"
|
|
909
|
-
},
|
|
910
|
-
regions: [
|
|
911
|
-
{
|
|
912
|
-
region: "North America",
|
|
913
|
-
languages: [
|
|
914
|
-
"EN: English (US)",
|
|
915
|
-
"EN-UK: English (UK)",
|
|
916
|
-
"FR: French",
|
|
917
|
-
"DE: German",
|
|
918
|
-
"NL: Dutch"
|
|
919
|
-
]
|
|
920
|
-
},
|
|
921
|
-
{
|
|
922
|
-
region: "UK and Middle East",
|
|
923
|
-
languages: [
|
|
924
|
-
"EN: English (US)",
|
|
925
|
-
"EN-UK: English (UK)",
|
|
926
|
-
"FR: French",
|
|
927
|
-
"DE: German",
|
|
928
|
-
"NL: Dutch"
|
|
929
|
-
]
|
|
930
|
-
},
|
|
931
|
-
{
|
|
932
|
-
region: "France",
|
|
933
|
-
languages: [
|
|
934
|
-
"EN: English (US)",
|
|
935
|
-
"EN-UK: English (UK)",
|
|
936
|
-
"FR: French",
|
|
937
|
-
"DE: German",
|
|
938
|
-
"NL: Dutch"
|
|
939
|
-
]
|
|
940
|
-
},
|
|
941
|
-
{
|
|
942
|
-
region: "Germany and Austria",
|
|
943
|
-
languages: [
|
|
944
|
-
"EN: English (US)",
|
|
945
|
-
"EN-UK: English (UK)",
|
|
946
|
-
"FR: French",
|
|
947
|
-
"DE: German",
|
|
948
|
-
"NL: Dutch"
|
|
949
|
-
]
|
|
950
|
-
},
|
|
951
|
-
{
|
|
952
|
-
region: "Switzerland",
|
|
953
|
-
languages: [
|
|
954
|
-
"EN: English (US)",
|
|
955
|
-
"EN-UK: English (UK)",
|
|
956
|
-
"FR: French",
|
|
957
|
-
"DE: German",
|
|
958
|
-
"NL: Dutch"
|
|
959
|
-
]
|
|
960
|
-
}
|
|
961
|
-
],
|
|
962
|
-
currentRegionLanguage: {
|
|
963
|
-
region: "UK and Middle East",
|
|
964
|
-
language: "EN-UK"
|
|
965
|
-
},
|
|
966
|
-
|
|
967
|
-
activeRegion: {
|
|
968
|
-
region: "UK and Middle East",
|
|
969
|
-
language: "EN: English"
|
|
970
|
-
},
|
|
971
|
-
|
|
972
|
-
companyDivision: "MEP"
|
|
973
|
-
};
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
return (
|
|
977
|
-
<NavBar
|
|
978
|
-
location={location}
|
|
979
|
-
rightLinks={rightLinks}
|
|
980
|
-
currentLanguage={{ region: "N. America", language: "EN: English" }}
|
|
981
|
-
logo={logo}
|
|
982
|
-
divisionName="MEP"
|
|
983
|
-
navCTA={navCTA}
|
|
984
|
-
navOptions={[megaMenu, ...miniMenus, singleLink]}
|
|
985
|
-
utilityNav={utilityNav}
|
|
986
|
-
languageSelectorData={languageSelectorData}
|
|
987
|
-
/>
|
|
988
|
-
)
|
|
989
|
-
|
|
990
|
-
```
|
|
991
|
-
|
|
992
|
-
---
|
|
993
|
-
|
|
994
|
-
#### Footer
|
|
995
|
-
|
|
996
|
-
###### Props -
|
|
997
|
-
|
|
998
|
-
- `logo` - object consisting of a `url` and `altText` strings
|
|
999
|
-
- `trimbleText` - string from generating the main content on the left side
|
|
1000
|
-
- `trimbleLink` - object consisting of `text` and `url` strings for generating a link below the left-side text
|
|
1001
|
-
- `siteText` - text string that appears above the secondary link
|
|
1002
|
-
- `siteLink` - object consisting of `url` and `text` string for generating the secondary link on the left side
|
|
1003
|
-
- `linksOne` - array of objects consisting of `url` and `text` strings for generating the links that take up the left-center of the footer space
|
|
1004
|
-
- `linksTwo` - array of objects consisting of `url` and `text` strings for generating the links that take up the right-center of the footer space
|
|
1005
|
-
- `socialLinks` - array of objects consiting of an `icon` object (`url` and `altText` strings) and a link object (`url` string)
|
|
1006
|
-
- `legalStuff` - array of objects consisting of `url` and `text` strings for generating the links that take up the bottom of the footer space. The `url` string is optional, as the component will simply render a `<p>` tags instead.
|
|
1007
|
-
|
|
1008
|
-
###### Example -
|
|
1009
|
-
|
|
1010
|
-
```
|
|
1011
|
-
const logo = {
|
|
1012
|
-
url: Logo,
|
|
1013
|
-
altText: "fpo"
|
|
1014
|
-
};
|
|
1015
|
-
|
|
1016
|
-
const trimbleText =
|
|
1017
|
-
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.";
|
|
1018
|
-
|
|
1019
|
-
const trimbleLink = {
|
|
1020
|
-
url: "/#",
|
|
1021
|
-
text: "More About Trimble"
|
|
1022
|
-
};
|
|
1023
|
-
|
|
1024
|
-
const siteText = "Text for secondary link information";
|
|
1025
|
-
|
|
1026
|
-
const siteLink = {
|
|
1027
|
-
url: "/#",
|
|
1028
|
-
text: "link.trimble.com"
|
|
1029
|
-
};
|
|
1030
|
-
|
|
1031
|
-
const linksOne = [
|
|
1032
|
-
{ url: "/#", text: "Label Left" },
|
|
1033
|
-
{ url: "/#", text: "Label Left" },
|
|
1034
|
-
{ url: "/#", text: "Label Left" }
|
|
1035
|
-
];
|
|
1036
|
-
|
|
1037
|
-
const linksTwo = [
|
|
1038
|
-
{ url: "/#", text: "Label Right" },
|
|
1039
|
-
{ url: "/#", text: "Label Right" },
|
|
1040
|
-
{ url: "/#", text: "Label Right" }
|
|
1041
|
-
];
|
|
1042
|
-
|
|
1043
|
-
const socialLinks = [
|
|
1044
|
-
{
|
|
1045
|
-
icon: {
|
|
1046
|
-
url: Facebook,
|
|
1047
|
-
altText: "fpo"
|
|
1048
|
-
},
|
|
1049
|
-
link: {
|
|
1050
|
-
url: "/#"
|
|
1051
|
-
}
|
|
1052
|
-
},
|
|
1053
|
-
{
|
|
1054
|
-
icon: {
|
|
1055
|
-
url: Twitter,
|
|
1056
|
-
altText: "fpo"
|
|
1057
|
-
},
|
|
1058
|
-
link: {
|
|
1059
|
-
url: "/#"
|
|
1060
|
-
}
|
|
1061
|
-
},
|
|
1062
|
-
{
|
|
1063
|
-
icon: {
|
|
1064
|
-
url: YouTube,
|
|
1065
|
-
altText: "fpo"
|
|
1066
|
-
},
|
|
1067
|
-
link: {
|
|
1068
|
-
url: "/#"
|
|
1069
|
-
}
|
|
1070
|
-
},
|
|
1071
|
-
{
|
|
1072
|
-
icon: {
|
|
1073
|
-
url: LinkedIn,
|
|
1074
|
-
altText: "fpo"
|
|
1075
|
-
},
|
|
1076
|
-
link: {
|
|
1077
|
-
url: "/#"
|
|
1078
|
-
}
|
|
1079
|
-
},
|
|
1080
|
-
{
|
|
1081
|
-
icon: {
|
|
1082
|
-
url: Facebook,
|
|
1083
|
-
altText: "fpo"
|
|
1084
|
-
},
|
|
1085
|
-
link: {
|
|
1086
|
-
url: "/#"
|
|
1087
|
-
}
|
|
1088
|
-
},
|
|
1089
|
-
{
|
|
1090
|
-
icon: {
|
|
1091
|
-
url: Twitter,
|
|
1092
|
-
altText: "fpo"
|
|
1093
|
-
},
|
|
1094
|
-
link: {
|
|
1095
|
-
url: "/#"
|
|
1096
|
-
}
|
|
1097
|
-
},
|
|
1098
|
-
{
|
|
1099
|
-
icon: {
|
|
1100
|
-
url: YouTube,
|
|
1101
|
-
altText: "fpo"
|
|
1102
|
-
},
|
|
1103
|
-
link: {
|
|
1104
|
-
url: "/#"
|
|
1105
|
-
}
|
|
1106
|
-
},
|
|
1107
|
-
{
|
|
1108
|
-
icon: {
|
|
1109
|
-
url: LinkedIn,
|
|
1110
|
-
altText: "fpo"
|
|
1111
|
-
},
|
|
1112
|
-
link: {
|
|
1113
|
-
url: "/#"
|
|
1114
|
-
}
|
|
1115
|
-
}
|
|
1116
|
-
];
|
|
1117
|
-
|
|
1118
|
-
const privacyStatement = {
|
|
1119
|
-
url: "/#",
|
|
1120
|
-
text: "Privacy Statement"
|
|
1121
|
-
};
|
|
1122
|
-
|
|
1123
|
-
const termsOfUse = {
|
|
1124
|
-
url: "/#",
|
|
1125
|
-
text: "Terms of Use"
|
|
1126
|
-
};
|
|
1127
|
-
|
|
1128
|
-
const copyright = {
|
|
1129
|
-
url: "/#",
|
|
1130
|
-
text: "Copyright"
|
|
1131
|
-
};
|
|
1132
|
-
|
|
1133
|
-
const legalStuff = [
|
|
1134
|
-
{
|
|
1135
|
-
url: "/#",
|
|
1136
|
-
text: "Terms of Use"
|
|
1137
|
-
},
|
|
1138
|
-
{
|
|
1139
|
-
url: "/#",
|
|
1140
|
-
text: "Privacy Statement"
|
|
1141
|
-
},
|
|
1142
|
-
{ text: "© 2019, Trimble Inc." }
|
|
1143
|
-
];
|
|
1144
|
-
|
|
1145
|
-
return (
|
|
1146
|
-
<Footer
|
|
1147
|
-
trimbleText={trimbleText}
|
|
1148
|
-
trimbleLink={trimbleLink}
|
|
1149
|
-
siteText={siteText}
|
|
1150
|
-
siteLink={siteLink}
|
|
1151
|
-
linksOne={linksOne}
|
|
1152
|
-
linksTwo={linksTwo}
|
|
1153
|
-
logo={logo}
|
|
1154
|
-
socialLinks={socialLinks}
|
|
1155
|
-
legalStuff={legalStuff}
|
|
1156
|
-
/>
|
|
1157
|
-
);
|
|
1158
|
-
```
|
|
1159
|
-
|
|
1160
|
-
#### ListFeat1
|
|
1161
|
-
|
|
1162
|
-
###### Props -
|
|
1163
|
-
|
|
1164
|
-
- `content` **(required)** - object containing images, ctas, text, variant, headers, subheaders, button, link, videos
|
|
1165
|
-
- `cardOne` - an object that contains `header` and `text` keys with values that are strings.
|
|
1166
|
-
- `cardTwo` - an object that contains `header` and `text` and `cta`. `header` has a value of a string. `text` has a value of a string. `cta` has a value of an object with key `url` with value of a string and key `text` with value of a string.
|
|
1167
|
-
- `type` **(required)** - required to render the correct listFeat. ListFeat1 must be `list_feat_1`
|
|
1168
|
-
- `sort` - boolean indicating whether or not cards should be sorted alphabetically by header
|
|
1169
|
-
- `motion` - boolean used to indicate whether or not motion should be used
|
|
1170
|
-
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
1171
|
-
|
|
1172
|
-
###### Example -
|
|
1173
|
-
|
|
1174
|
-
```
|
|
1175
|
-
const content = {
|
|
1176
|
-
sort: true,
|
|
1177
|
-
header: "Hello everyone! This is a header. Enjoy!",
|
|
1178
|
-
subheader: "This is truly wonderful.",
|
|
1179
|
-
type: "list_feat_1",
|
|
1180
|
-
image: { src: "https://fpoimg.com/500x500", alt: "placeholder" },
|
|
1181
|
-
cardOne: {
|
|
1182
|
-
header: "I am Card One Header",
|
|
1183
|
-
text:
|
|
1184
|
-
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex",
|
|
1185
|
-
cta: { url: "/#", text: "Click me!" }
|
|
1186
|
-
},
|
|
1187
|
-
cardTwo: {
|
|
1188
|
-
header: "I am Card Two Header",
|
|
1189
|
-
text:
|
|
1190
|
-
"The purpose of lorem ipsum is to create a natural looking block of text (sentence, paragraph, page, etc.) that doesn't distract from the layout. A practice not without controversy, la",
|
|
1191
|
-
cta: { url: "/#", text: "I am a button!" }
|
|
1192
|
-
}
|
|
1193
|
-
};
|
|
1194
|
-
|
|
1195
|
-
return (
|
|
1196
|
-
<ListFeat content={content} />
|
|
1197
|
-
)
|
|
1198
|
-
```
|
|
1199
|
-
|
|
1200
|
-
#### ListFeat2
|
|
1201
|
-
|
|
1202
|
-
###### Props -
|
|
1203
|
-
|
|
1204
|
-
- `content` **(required)** - object containing text, headers, subheaders, and headShotdumplings
|
|
1205
|
-
- `headShotdumplings` - array containing objects. Each indice is an object with two keys. The first key is `content` which value is an object containing `header` and `image` keys. `header` is a string and `image` is an object with keys `url` (which value is a string) and key `altText` which value is a string. The second key of each indice is `filter` which value is a string.
|
|
1206
|
-
- `type` **(required)** - required to render the correct listFeat. ListFeat2 must be `list_feat_2`
|
|
1207
|
-
- `motion` - boolean used to indicate whether or not motion should be used
|
|
1208
|
-
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
1209
|
-
|
|
1210
|
-
###### Example -
|
|
1211
|
-
|
|
1212
|
-
```
|
|
1213
|
-
const content = {
|
|
1214
|
-
header: "Hello everyone! This is a header. Enjoy!",
|
|
1215
|
-
subheader: "This is truly wonderful.",
|
|
1216
|
-
type: "list_feat_2",
|
|
1217
|
-
headShotdumplings: [
|
|
1218
|
-
{
|
|
1219
|
-
content: {
|
|
1220
|
-
header: "Lorem Ipsum",
|
|
1221
|
-
image: { url: "https://fpoimg.com/150x150", altText: "FPO Image" }
|
|
1222
|
-
},
|
|
1223
|
-
filter: "default"
|
|
1224
|
-
},
|
|
1225
|
-
{
|
|
1226
|
-
content: {
|
|
1227
|
-
header: "Nemo enim ipsam",
|
|
1228
|
-
image: { url: "https://fpoimg.com/150x150", altText: "FPO Image" }
|
|
1229
|
-
},
|
|
1230
|
-
filter: "default"
|
|
1231
|
-
},
|
|
1232
|
-
{
|
|
1233
|
-
content: {
|
|
1234
|
-
header: "Sed ut perspiciatis",
|
|
1235
|
-
image: { url: "https://fpoimg.com/150x150", altText: "FPO Image" }
|
|
1236
|
-
},
|
|
1237
|
-
filter: "default"
|
|
1238
|
-
}
|
|
1239
|
-
]
|
|
1240
|
-
};
|
|
1241
|
-
|
|
1242
|
-
export const motion = {
|
|
1243
|
-
motion: true,
|
|
1244
|
-
motionDistance: "75px",
|
|
1245
|
-
motionDirection: "bottom"
|
|
1246
|
-
};
|
|
1247
|
-
|
|
1248
|
-
return (
|
|
1249
|
-
<ListFeat content={content} motion={motion}/>
|
|
1250
|
-
)
|
|
1251
|
-
```
|
|
1252
|
-
|
|
1253
|
-
#### ListFeat3
|
|
1254
|
-
|
|
1255
|
-
###### Props -
|
|
1256
|
-
|
|
1257
|
-
- `content` **(required)** - object containing header, subHeader, type, cards
|
|
1258
|
-
- `header` - key that has a string as a value
|
|
1259
|
-
- `subHeader` - key that has a string as a value
|
|
1260
|
-
- `cards` - array containing objects. Each indice is an object with three keys. The first key is `image` which value is an object containing `url` and `altText` keys. `url` and `altText` both have strings as values. The second key of each indice is `header` which value is a string. The third key of each indice is `link` which value is an object of `url` and `text`. `url` and `text` both have strings as values.
|
|
1261
|
-
- `type` **(required)** - required to render the correct listFeat. ListFeat3 must be `list_feat_3`
|
|
1262
|
-
- `motion` - boolean used to indicate whether or not motion should be used
|
|
1263
|
-
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
1264
|
-
|
|
1265
|
-
###### Example -
|
|
1266
|
-
|
|
1267
|
-
```
|
|
1268
|
-
const content = {
|
|
1269
|
-
header: "Hello everyone! This is a header. Enjoy!",
|
|
1270
|
-
subheader: "This is truly wonderful.",
|
|
1271
|
-
type: "list_feat_3",
|
|
1272
|
-
cards: [
|
|
1273
|
-
{
|
|
1274
|
-
image: { url: "https://fpoimg.com/400x300", altText: "FPO Image" },
|
|
1275
|
-
header: "Here is a title! Woooo",
|
|
1276
|
-
link: {
|
|
1277
|
-
url: "/#",
|
|
1278
|
-
text: "Link"
|
|
1279
|
-
},
|
|
1280
|
-
text:
|
|
1281
|
-
"Ut in amet id proident commodo officia cillum. Aliqua id ex culpa labore duis minim fugiat proident ad deserunt qui."
|
|
1282
|
-
},
|
|
1283
|
-
{
|
|
1284
|
-
image: { url: "https://fpoimg.com/400x300", altText: "FPO Image" },
|
|
1285
|
-
header: "Here is a title! Woooo",
|
|
1286
|
-
link: {
|
|
1287
|
-
url: "/#",
|
|
1288
|
-
text: "Link"
|
|
1289
|
-
},
|
|
1290
|
-
text:
|
|
1291
|
-
"It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout."
|
|
1292
|
-
},
|
|
1293
|
-
{
|
|
1294
|
-
image: { url: "https://fpoimg.com/400x300", altText: "FPO Image" },
|
|
1295
|
-
header: "Here is a title! Woooo",
|
|
1296
|
-
link: {
|
|
1297
|
-
url: "/#",
|
|
1298
|
-
text: "Link"
|
|
1299
|
-
},
|
|
1300
|
-
text:
|
|
1301
|
-
" Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book."
|
|
1302
|
-
}
|
|
1303
|
-
]
|
|
1304
|
-
};
|
|
1305
|
-
|
|
1306
|
-
const motion = {
|
|
1307
|
-
motion: true,
|
|
1308
|
-
motionDistance: "75px",
|
|
1309
|
-
motionDirection: "bottom"
|
|
1310
|
-
};
|
|
1311
|
-
|
|
1312
|
-
return (
|
|
1313
|
-
<ListFeat content={content} motion={motion}/>
|
|
1314
|
-
)
|
|
1315
|
-
```
|
|
1316
|
-
|
|
1317
|
-
#### ListFeat4
|
|
1318
|
-
|
|
1319
|
-
###### Props -
|
|
1320
|
-
|
|
1321
|
-
- `content` **(required)** - object containing header, subHeader, type, cards
|
|
1322
|
-
- `header` - key that has a string as a value
|
|
1323
|
-
- `subHeader` - key that has a string as a value
|
|
1324
|
-
- `dumplings` - array containing objects. Each indice is an object with four keys. The first key of each indice is `header` which value is a string. The second key of each indice is `link` which value is an object of `url`. `url` has a string as a value. The third key of each indice is `size` which has a string as a value. The fourth key of each indice is `icon` which value is an object containing `type` and `size` keys. `type` and `size` both have strings as values.
|
|
1325
|
-
- `type` **(required)** - required to render the correct listFeat. ListFeat4 must be `list_feat_3`
|
|
1326
|
-
- `motion` - boolean used to indicate whether or not motion should be used
|
|
1327
|
-
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
1328
|
-
|
|
1329
|
-
###### Example -
|
|
1330
|
-
|
|
1331
|
-
```
|
|
1332
|
-
const content = {
|
|
1333
|
-
header: "Hello everyone! This is a header. Enjoy!",
|
|
1334
|
-
subheader: "This is truly wonderful.",
|
|
1335
|
-
type: "list_feat_4",
|
|
1336
|
-
dumplings: [
|
|
1337
|
-
{
|
|
1338
|
-
header: "Lorem Ipsum",
|
|
1339
|
-
link: { url: "/#" },
|
|
1340
|
-
size: "small",
|
|
1341
|
-
icon: { type: "enclosed-check-dark-48px", size: "48px" }
|
|
1342
|
-
},
|
|
1343
|
-
{
|
|
1344
|
-
header: "Nemo enim ipsam voluptatem",
|
|
1345
|
-
link: { url: "/#" },
|
|
1346
|
-
size: "small",
|
|
1347
|
-
icon: { type: "enclosed-check-dark-48px", size: "48px" }
|
|
1348
|
-
},
|
|
1349
|
-
{
|
|
1350
|
-
header: "Sed ut perspiciatis, unde omnis",
|
|
1351
|
-
link: { url: "/#" },
|
|
1352
|
-
size: "small",
|
|
1353
|
-
icon: { type: "enclosed-check-dark-48px", size: "48px" }
|
|
1354
|
-
}
|
|
1355
|
-
]
|
|
1356
|
-
};
|
|
1357
|
-
|
|
1358
|
-
const motion = {
|
|
1359
|
-
motion: true,
|
|
1360
|
-
motionDistance: "75px",
|
|
1361
|
-
motionDirection: "bottom"
|
|
1362
|
-
};
|
|
1363
|
-
|
|
1364
|
-
return (
|
|
1365
|
-
<ListFeat content={content} motion={motion}/>
|
|
1366
|
-
)
|
|
1367
|
-
```
|
|
1368
|
-
|
|
1369
|
-
#### ListFeat5
|
|
1370
|
-
|
|
1371
|
-
###### Props -
|
|
1372
|
-
|
|
1373
|
-
- `content` **(required)** - object containing header, subHeader, type, cards
|
|
1374
|
-
- `header` - key that has a string as a value
|
|
1375
|
-
- `subHeader` - key that has a string as a value -`insertCardHTML` - key that is a boolean
|
|
1376
|
-
- `iconListItems` - array containing objects. Each indice is an object with two keys. The first key is `header` which has a string as a value. The second key is `text` which has a string as a value.
|
|
1377
|
-
- `type` **(required)** - required to render the correct listFeat. ListFeat5 must be `list_feat_3`
|
|
1378
|
-
- `motion` - boolean used to indicate whether or not motion should be used
|
|
1379
|
-
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
1380
|
-
|
|
1381
|
-
###### Example -
|
|
1382
|
-
|
|
1383
|
-
```
|
|
1384
|
-
const content = {
|
|
1385
|
-
header: "Hello everyone! This is a header. Enjoy!",
|
|
1386
|
-
subheader: "This is truly wonderful.",
|
|
1387
|
-
type: "list_feat_5",
|
|
1388
|
-
insertCardHTML: true,
|
|
1389
|
-
iconListItems: [
|
|
1390
|
-
{
|
|
1391
|
-
header: "Good design is innovative",
|
|
1392
|
-
text:
|
|
1393
|
-
"<p>Cupidatat ea in duis ullamco nostrud cupidatat quis aliqua ex labore occaecat sit.</p>"
|
|
1394
|
-
},
|
|
1395
|
-
{
|
|
1396
|
-
header: "Good design is innovative",
|
|
1397
|
-
text:
|
|
1398
|
-
"<p>Cupidatat ea in duis ullamco nostrud cupidatat quis aliqua ex labore occaecat sit.</p>"
|
|
1399
|
-
},
|
|
1400
|
-
{
|
|
1401
|
-
header: "Good design is innovative",
|
|
1402
|
-
text:
|
|
1403
|
-
"<p>Cupidatat ea in duis ullamco nostrud cupidatat quis aliqua ex labore occaecat sit.</p>"
|
|
1404
|
-
},
|
|
1405
|
-
{
|
|
1406
|
-
header: "Good design is innovative",
|
|
1407
|
-
text:
|
|
1408
|
-
"<p>Cupidatat ea in duis ullamco nostrud cupidatat quis aliqua ex labore occaecat sit.</p>"
|
|
1409
|
-
},
|
|
1410
|
-
{
|
|
1411
|
-
header: "Good design is innovative",
|
|
1412
|
-
text:
|
|
1413
|
-
"<p>Cupidatat ea in duis ullamco nostrud cupidatat quis aliqua ex labore occaecat sit.</p>"
|
|
1414
|
-
},
|
|
1415
|
-
{
|
|
1416
|
-
header: "Good design is innovative",
|
|
1417
|
-
text:
|
|
1418
|
-
"<p>Cupidatat ea in duis ullamco nostrud cupidatat quis aliqua ex labore occaecat sit.</p>"
|
|
1419
|
-
}
|
|
1420
|
-
]
|
|
1421
|
-
};
|
|
1422
|
-
|
|
1423
|
-
const motion = {
|
|
1424
|
-
motion: true,
|
|
1425
|
-
motionDistance: "75px",
|
|
1426
|
-
motionDirection: "bottom"
|
|
1427
|
-
};
|
|
1428
|
-
|
|
1429
|
-
return (
|
|
1430
|
-
<ListFeat content={content} motion={motion}/>
|
|
1431
|
-
)
|
|
1432
|
-
```
|
|
1433
|
-
|
|
1434
|
-
#### ListFeat6
|
|
1435
|
-
|
|
1436
|
-
###### Props -
|
|
1437
|
-
|
|
1438
|
-
- `content` **(required)** - object containing header, subHeader, type, cards
|
|
1439
|
-
- `header` - key that has a string as a value
|
|
1440
|
-
- `subHeader` - key that has a string as a value
|
|
1441
|
-
- `images` - key that has an object as a value. Object has `src` and `altText` keys which values are strings.
|
|
1442
|
-
- `list` - array containing strings in each indice. The strings of each indice will be rendered onto the component as html tags
|
|
1443
|
-
- `type` **(required)** - required to render the correct listFeat. ListFeat6 must be `list_feat_3`
|
|
1444
|
-
- `motion` - boolean used to indicate whether or not motion should be used
|
|
1445
|
-
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
1446
|
-
|
|
1447
|
-
###### Example -
|
|
1448
|
-
|
|
1449
|
-
```
|
|
1450
|
-
const content = {
|
|
1451
|
-
header: "Hello everyone! This is a header. Enjoy!",
|
|
1452
|
-
subheader: "This is truly wonderful.",
|
|
1453
|
-
images: { src: "https://fpoimg.com/500x500", alt: "placeholder" },
|
|
1454
|
-
type: "list_feat_6",
|
|
1455
|
-
list: [
|
|
1456
|
-
"<h4>Viewer Edition</h4><p>Lorem ipsum dolor sit amet consectetur adipiscing elit</p><p>Donec sit amet arcu nibh. Donec vitae dolor nunc.</p><p>Mauris ut feugiat mauris eu volutpat arcu. Integer mollis neque dui ac auctor dui tincidunt eget.</p>",
|
|
1457
|
-
"<h4>Field Data Edition</h4>p>Lorem ipsum dolor sit amet consectetur adipiscing elit</p><p>Lorem ipsum dolor sit amet consectetur adipiscing elit</p>",
|
|
1458
|
-
"<h4>A list of great ideas:</h4><ul><li>Lorem ipsum dolor sit amet consectetur adipiscing elit</li><li>Donec sit amet arcu nibh Donec vitae dolor nunc.</li><li>Cras vel pharetra augue at sollicitudin velit. Vivamus dapibus quis nisi et vestibulum.</li><li>Mauris ut feugiat mauris eu volutpat arcu. Integer mollis neque dui ac auctor dui tincidunt eget.</li><ul>",
|
|
1459
|
-
"<h4>Here It Is: </h4><ul><li>Lorem ipsum dolor sit amet consectetur adipiscing elit</li><li>Donec sit amet arcu nibh Donec vitae dolor nunc.</li><li>Cras vel pharetra augue at sollicitudin velit. Vivamus dapibus quis nisi et vestibulum.</li><li>Mauris ut feugiat mauris eu volutpat arcu. Integer mollis neque dui ac auctor dui tincidunt eget.</li><li>It's not Latin, though it looks like it, and it actually says nothing,</li><ul>"
|
|
1460
|
-
]
|
|
1461
|
-
};
|
|
1462
|
-
|
|
1463
|
-
const motion = {
|
|
1464
|
-
motion: true,
|
|
1465
|
-
motionDistance: "75px",
|
|
1466
|
-
motionDirection: "bottom"
|
|
1467
|
-
};
|
|
1468
|
-
|
|
1469
|
-
return (
|
|
1470
|
-
<ListFeat content={content} motion={motion}/>
|
|
1471
|
-
)
|
|
1472
|
-
```
|
|
1473
|
-
|
|
1474
|
-
#### ListFeat7
|
|
1475
|
-
|
|
1476
|
-
###### Props -
|
|
1477
|
-
|
|
1478
|
-
- `header` **(required)** - string for generating header text
|
|
1479
|
-
- `subHeader` - string for generating sub-header text
|
|
1480
|
-
- `type` **(required)** - required to render the correct listFeat. ListFeat7 must be `list_feat_7`
|
|
1481
|
-
- `content` **(required)** - object containing images, ctas, text, variant, headers, subheaders, button, link, videos
|
|
1482
|
-
- `card` - an array containing the following objects:
|
|
1483
|
-
- `text` - string for generating body text
|
|
1484
|
-
- `ctas` - object for generating a `<CTASection>` component
|
|
1485
|
-
- `images` - object with keys `url` and `altText` with values as strings
|
|
1486
|
-
- `video` - object with keys `url` and `allowFullScreen`. `url` has a value as a string. `allowFullScreen` is a boolean
|
|
1487
|
-
- `uuid` - string used for rendering Vidyard video embeds
|
|
1488
|
-
- `vidyard` - boolean for indicating that a Vidyard component should be rendered
|
|
1489
|
-
- `thumbnail` - object with keys `url` and `altText` with values as strings, used for a thumbnail image in place of a video, while video is not playing
|
|
1490
|
-
- `link` - object with keys `url` and `text` with values as strings.
|
|
1491
|
-
- `motion` - boolean used to indicate whether or not motion should be used
|
|
1492
|
-
|
|
1493
|
-
###### Example -
|
|
1494
|
-
|
|
1495
|
-
```
|
|
1496
|
-
export const mockContent = {
|
|
1497
|
-
header: "Hello everyone! This is a header. Enjoy!",
|
|
1498
|
-
subheader: "This is truly wonderful.",
|
|
1499
|
-
type: "list_feat_7",
|
|
1500
|
-
cards: [
|
|
1501
|
-
{
|
|
1502
|
-
video: {
|
|
1503
|
-
url: "https://www.youtube.com/embed/UY7r0juBF8Y",
|
|
1504
|
-
allowFullScreen: "true"
|
|
1505
|
-
},
|
|
1506
|
-
thumbnail: {
|
|
1507
|
-
url: "https://fpoimg.com/2880x1920",
|
|
1508
|
-
altText: "fpo"
|
|
1509
|
-
},
|
|
1510
|
-
header: "Here is a title! Woooo",
|
|
1511
|
-
link: {
|
|
1512
|
-
url: "/#",
|
|
1513
|
-
text: "Link"
|
|
1514
|
-
},
|
|
1515
|
-
text:
|
|
1516
|
-
"Ut in amet id proident commodo officia cillum. Aliqua id ex culpa labore duis minim fugiat proident ad deserunt qui."
|
|
1517
|
-
},
|
|
1518
|
-
{
|
|
1519
|
-
video: {
|
|
1520
|
-
url: "https://www.youtube.com/watch?v=sBws8MSXN7A",
|
|
1521
|
-
allowFullScreen: "true"
|
|
1522
|
-
},
|
|
1523
|
-
thumbnail: {
|
|
1524
|
-
url: "https://fpoimg.com/2880x1920",
|
|
1525
|
-
altText: "fpo"
|
|
1526
|
-
},
|
|
1527
|
-
header: "This is a React Tutorial. Enjoy!",
|
|
1528
|
-
link: {
|
|
1529
|
-
url: "/#",
|
|
1530
|
-
text: "Link"
|
|
1531
|
-
},
|
|
1532
|
-
text:
|
|
1533
|
-
"Watch this and you'll be able to make beautiful applications using the wonderful framework of React, built by Facebook"
|
|
1534
|
-
},
|
|
1535
|
-
{
|
|
1536
|
-
image: { url: "https://fpoimg.com/400x225", altText: "FPO Image" },
|
|
1537
|
-
header: "Here is a title! Woooo",
|
|
1538
|
-
link: {
|
|
1539
|
-
url: "/#",
|
|
1540
|
-
text: "Link"
|
|
1541
|
-
},
|
|
1542
|
-
text:
|
|
1543
|
-
"It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout."
|
|
1544
|
-
},
|
|
1545
|
-
{
|
|
1546
|
-
header: "Here is a title! Woooo",
|
|
1547
|
-
subheader: "sub header! ",
|
|
1548
|
-
text:
|
|
1549
|
-
"It's difficult to find examples of lorem ipsum in use before Letraset made it popular as a dummy text in the 1960s, although McClintock says he remembers coming across the lorem ipsum passage in a book of old metal type samples. So far he hasn't relocated where he once saw the passage, but the popularity of Cicero in the 15th century supports the theory that the filler text has been used for centuries"
|
|
1550
|
-
},
|
|
1551
|
-
{
|
|
1552
|
-
image: { url: "https://fpoimg.com/400x225", altText: "FPO Image" },
|
|
1553
|
-
header: "Here is a title! Woooo",
|
|
1554
|
-
link: {
|
|
1555
|
-
url: "/#",
|
|
1556
|
-
text: "Link"
|
|
1557
|
-
},
|
|
1558
|
-
text:
|
|
1559
|
-
"It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout."
|
|
1560
|
-
}
|
|
1561
|
-
]
|
|
1562
|
-
};
|
|
1563
|
-
|
|
1564
|
-
export const motion = {
|
|
1565
|
-
motion: true,
|
|
1566
|
-
motionDistance: "75px",
|
|
1567
|
-
motionDirection: "bottom"
|
|
1568
|
-
};
|
|
1569
|
-
|
|
1570
|
-
return (
|
|
1571
|
-
<ListFeat content={content} motion={motion} />
|
|
1572
|
-
)
|
|
1573
|
-
```
|
|
1574
|
-
|
|
1575
|
-
#### EventCard
|
|
1576
|
-
|
|
1577
|
-
###### Props -
|
|
1578
|
-
|
|
1579
|
-
- `content` **(required)** - object used for delivering content strings to the EventCard
|
|
1580
|
-
- `date` - string that generates the dates of the event
|
|
1581
|
-
- `year` - string that generates the year of the event
|
|
1582
|
-
- `industry` - string that indicates which industry the event applies to (i.e 'construction')
|
|
1583
|
-
- `industryLabel` - a string to generate the label that preceedes the industry text
|
|
1584
|
-
- `name` - a string used to indicate the name of the event
|
|
1585
|
-
- `location` - a string used for indicating the location of the event, can also be used for event description
|
|
1586
|
-
- `link` - an object for generating the link that the card sends the user to
|
|
1587
|
-
- `url` - string that creates the `href` or `to` props depending on whether an `<a>` or React Router `<NavLink>` is generated
|
|
1588
|
-
- `images` - object for generating the 95px x 95px image
|
|
1589
|
-
- `url` - source of the image
|
|
1590
|
-
- `altText` - alt string for the image
|
|
1591
|
-
|
|
1592
|
-
###### Example -
|
|
1593
|
-
|
|
1594
|
-
```
|
|
1595
|
-
const date = "Nov 18 - Nov 19";
|
|
1596
|
-
const year = "2019";
|
|
1597
|
-
const image = { url: "http://fpoimg.com/95x95" };
|
|
1598
|
-
const industry = "Construction";
|
|
1599
|
-
const industryLabel = "Industry";
|
|
1600
|
-
const name = "Trimble Digital Construction Summit - The Bridge to BIM";
|
|
1601
|
-
const location = "Tivoli Hotel and Congress Center, Copenhagen";
|
|
1602
|
-
const content = {
|
|
1603
|
-
date,
|
|
1604
|
-
year,
|
|
1605
|
-
image,
|
|
1606
|
-
industry,
|
|
1607
|
-
industryLabel,
|
|
1608
|
-
name,
|
|
1609
|
-
location,
|
|
1610
|
-
link: { url: "/wut" }
|
|
1611
|
-
};
|
|
1612
|
-
|
|
1613
|
-
return (
|
|
1614
|
-
<div style={{ maxWidth: "1200px", margin: "auto", padding: "0 32px" }}>
|
|
1615
|
-
<EventCard content={content} />
|
|
1616
|
-
</div>
|
|
1617
|
-
)
|
|
1618
|
-
|
|
1619
|
-
```
|
|
1620
|
-
|
|
1621
|
-
#### SupportCard -
|
|
1622
|
-
|
|
1623
|
-
- `content` **(required)** - object used for delivering content strings to the SupportCard
|
|
1624
|
-
- `header` - string for generating header text
|
|
1625
|
-
- `headerLabel` - string that preceeds the header text with an added colon
|
|
1626
|
-
- `subHeader` - string for generating sub-header text
|
|
1627
|
-
- `subHeaderLabel` - string that preceeds the sub-header text with an added colon
|
|
1628
|
-
- `product` - product name that succeeds the sub-header
|
|
1629
|
-
- `sections` - array of objects with `value` and `format` strings for generating columns
|
|
1630
|
-
- -
|
|
1
|
+
#Luna React Component Library
|
|
2
|
+
|
|
3
|
+
The Luna React Component Library represents the organisms used by the Trimble Creative Strategies team in web development. It consists of a series of heros and featurettes. Examples of each with required an optional props can be found below. Using this library requires that the Terra React Component Library is also installed, which can be done with `npm i --save terra-component-lib`.
|
|
4
|
+
|
|
5
|
+
## External Libraries Used:
|
|
6
|
+
|
|
7
|
+
- [React Helmet](https://www.npmjs.com/package/react-helmet) - for meta information in the document `<head>`
|
|
8
|
+
- [React Player](https://www.npmjs.com/package/react-player) - for rendering YouTube and Vimeo videos
|
|
9
|
+
- [React Reveal](https://www.npmjs.com/package/react-reveal) - for handling organism animation when they are scrolled into view
|
|
10
|
+
- [React Scroll](https://www.npmjs.com/package/react-scroll) - for direct scrolling behavior from the navigation bar to specific organisms
|
|
11
|
+
- [Vidyard](https://www.npmjs.com/package/@vidyard/embed-code) - for rendering Vidyard videos
|
|
12
|
+
- [Node Sass v4.12.x](https://www.npmjs.com/package/node-sass) - for compiling SASS into CSS
|
|
13
|
+
|
|
14
|
+
## Luna Organisms
|
|
15
|
+
|
|
16
|
+
#### Hero1 -
|
|
17
|
+
|
|
18
|
+
###### Props -
|
|
19
|
+
|
|
20
|
+
- `content` **(required)** - object containing `images`, `header`, `text`, `ctas`
|
|
21
|
+
- images **(required)** - object consisting of `desktop`, `tablet`, and `mobile` image objects
|
|
22
|
+
- `desktop` - object with `url` and `altText` strings for the desktop image view
|
|
23
|
+
- `url` - string that indicates the source of the image
|
|
24
|
+
- `altText` - string that generates accessibility text for images
|
|
25
|
+
- `tablet` - object with `url` and `altText` strings for the tablet image view
|
|
26
|
+
- `url` - string that indicates the source of the image
|
|
27
|
+
- `altText` - string that generates accessibility text for images
|
|
28
|
+
- `mobile` - object with `url` and `altText` strings for the mobile image view
|
|
29
|
+
- `url` - string that indicates the source of the image
|
|
30
|
+
- `altText` - string that generates accessibility text for images
|
|
31
|
+
- `header` **(required)** - string for generating header text
|
|
32
|
+
- `text` - string for generating body text
|
|
33
|
+
- `ctas` - object used to populate a `<CTASection>`
|
|
34
|
+
- `ctaOne`: object with `text` and `url` strings
|
|
35
|
+
- `ctaTwo`: object with `text` and `url` strings
|
|
36
|
+
- `subCTA`: object with `text` and `url` strings
|
|
37
|
+
- `contentSide` - string that indicates whether content is on the `right` or `left` side of the component. Defaults to `right`.
|
|
38
|
+
- theme - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
39
|
+
- `id` - string used for generating the component's id attribute. Will default to the organism's header text or the organism type.
|
|
40
|
+
- `motion` - boolean that indicates whether to use the animation to render the component.
|
|
41
|
+
|
|
42
|
+
###### Example -
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
const ctas = {
|
|
46
|
+
ctaOne: {
|
|
47
|
+
text: "Button",
|
|
48
|
+
url: "/#"
|
|
49
|
+
},
|
|
50
|
+
ctaTwo: {
|
|
51
|
+
text: "Button",
|
|
52
|
+
url: "/#"
|
|
53
|
+
},
|
|
54
|
+
subCTA: {
|
|
55
|
+
text: "Button",
|
|
56
|
+
url: "/#"
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const images = {
|
|
61
|
+
desktop: {
|
|
62
|
+
url: "https://fpoimg.com/1600x1200",
|
|
63
|
+
altText: "placeholder image"
|
|
64
|
+
},
|
|
65
|
+
tablet: {
|
|
66
|
+
url: "https://fpoimg.com/800x600",
|
|
67
|
+
altText: "placeholder image" },
|
|
68
|
+
mobile: {
|
|
69
|
+
url: "https://fpoimg.com/400x400",
|
|
70
|
+
altText: "placeholder image"
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
const content = {
|
|
75
|
+
images,
|
|
76
|
+
ctas,
|
|
77
|
+
header: 'Design',
|
|
78
|
+
text: 'I am text'
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return (
|
|
82
|
+
<Hero1
|
|
83
|
+
content={content}
|
|
84
|
+
motion
|
|
85
|
+
theme='theme-2'
|
|
86
|
+
/>
|
|
87
|
+
);
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
#### Hero2
|
|
91
|
+
|
|
92
|
+
###### Props -
|
|
93
|
+
|
|
94
|
+
- content **(required)** - object containing images, ctas, headers, subheaders, button
|
|
95
|
+
- `images` **(required)** - an object that contains two objects, `desktop` and `mobile`. `desktop` is the 4x1 image object. `mobile` is the 2x1 image object. Each image object consists have `url` and `altText` strings.
|
|
96
|
+
- `desktop` - object consisting of `url` and `altText` strings for generating the desktop-size image
|
|
97
|
+
- `url` - string that points to the image source
|
|
98
|
+
- `altText` - string that generates image accessibility text
|
|
99
|
+
- `mobile` - object consisting of `url` and `altText` strings for generating the mobile-size image
|
|
100
|
+
- `url` - string that points to the image source
|
|
101
|
+
- `altText` - string that generates image accessibility text
|
|
102
|
+
- `header` **(required)** - string used for generating header text
|
|
103
|
+
- `subHeader` **(required)** - string used for generating sub-header text
|
|
104
|
+
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
105
|
+
- `id` - string used for generating the component's `id` attribute. Will default to the organism's `header` text or the organism type.
|
|
106
|
+
- `motion` - object containing `motion`, `motionDistance`, and `motionDirection` keys. -`motion` value is a boolen to indicate if motion will be on this component -`motionDistance` - string indicating the direction that the component should travel from as it fades in -`motionDirection` - string indicating the distance that the component travels during motion. **Motion is currently not enabled in `Hero2`**
|
|
107
|
+
|
|
108
|
+
###### Example -
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
const content = {
|
|
112
|
+
header="Good Design is innovative",
|
|
113
|
+
subHeader="Esse aliquip ad in et ut ipsum paEu elit consectetur aliquip excepteur fugiat ut qui dolor pariatur consectetur.riatur elit quis.",
|
|
114
|
+
images: {
|
|
115
|
+
desktop: {
|
|
116
|
+
url: "http://fpoimg.com/1600x400?text=4:1",
|
|
117
|
+
altText: "placeholder image"
|
|
118
|
+
},
|
|
119
|
+
mobile: {
|
|
120
|
+
url: "http://fpoimg.com/1600x800?text=2:1",
|
|
121
|
+
altText: "placeholder image"
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return (
|
|
127
|
+
<Hero2
|
|
128
|
+
content={content}
|
|
129
|
+
/>
|
|
130
|
+
);
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
#### Hero3
|
|
134
|
+
|
|
135
|
+
###### Props -
|
|
136
|
+
|
|
137
|
+
- `content` **(required)** - object containing `header`, `text`, `thumbnail`, and `video` data
|
|
138
|
+
- `header` - string for the header content
|
|
139
|
+
- `text` - string for the body text content
|
|
140
|
+
- `thumbnail` - object for generating the thumbnail with `url` and `altText` strings
|
|
141
|
+
- `url` **(required)** - string that points to the image source
|
|
142
|
+
- `altText` - string for creating accessibility text
|
|
143
|
+
- `video` - object for rendering the video embed
|
|
144
|
+
- `url` - string that points to the video source on YouTube
|
|
145
|
+
- `uuid` - string used for rendering Vidyard video embeds
|
|
146
|
+
- `vidyard` - boolean for indicating that a Vidyard component should be rendered
|
|
147
|
+
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
148
|
+
- `id` - string used for generating the component's id attribute. Will default to the organism's header text or the organism type.
|
|
149
|
+
- `motion` - boolean that indicates whether to use the react-reveal library to render the component inside a `<Fade>` component.
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
#### Hero4/Hero5
|
|
154
|
+
|
|
155
|
+
###### Props -
|
|
156
|
+
|
|
157
|
+
- `content` **(required)** - object containing header, subHeader, text, ctas, and image data
|
|
158
|
+
- `header` **(required)** - string for generating header text
|
|
159
|
+
- `subHeader` - string for generating sub-header text
|
|
160
|
+
- `text` - string for generating body text
|
|
161
|
+
- `ctas` - object for generating a `<CTASection>` component
|
|
162
|
+
- `image` - object for generating <img> element with url and altText strings
|
|
163
|
+
- `zIndex` - number indicating the desired z-index of the background image.- backgroundColor - string for specifying color for the background. Accepts RGB, RGBA, hex, etc.
|
|
164
|
+
- `theme` - string indicating the theme that styles the organism. Options are theme-1, theme-2, theme-3, theme-4, theme-5.
|
|
165
|
+
- `id` - string used for generating the component's id attribute. Will default to the organism's header text or the organism type.
|
|
166
|
+
- `motion` - boolean that indicates whether to use the react-reveal library to render the component inside a `<Fade>` component.
|
|
167
|
+
|
|
168
|
+
###### Example -
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
const mockCTALinks = {
|
|
172
|
+
ctaOne: {
|
|
173
|
+
text: "Button",
|
|
174
|
+
url: "/#"
|
|
175
|
+
},
|
|
176
|
+
ctaTwo: {
|
|
177
|
+
text: "Button",
|
|
178
|
+
url: "/#"
|
|
179
|
+
},
|
|
180
|
+
subCTA: {
|
|
181
|
+
text: "Button",
|
|
182
|
+
url: "/#"
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
const mockImage = {
|
|
187
|
+
url: "./1-to-1.png",
|
|
188
|
+
altText: "placeholder"
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
const content = {
|
|
192
|
+
ctas: mockCTALinks,
|
|
193
|
+
image: mockImage,
|
|
194
|
+
header: 'Header',
|
|
195
|
+
text: 'I am text'
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
<Hero4
|
|
199
|
+
content={content}
|
|
200
|
+
motion
|
|
201
|
+
theme='theme-1'
|
|
202
|
+
/>
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
#### Hero6
|
|
208
|
+
|
|
209
|
+
###### Props -
|
|
210
|
+
|
|
211
|
+
- `content` **(required)** - object containing images, header, text, ctas, and subHeader
|
|
212
|
+
- `header` **(required)** - string for generating header text
|
|
213
|
+
- `subHeader` - string for generating sub-header text
|
|
214
|
+
- `text` **(required)** - string for generating body text
|
|
215
|
+
- `ctas` - object for generating a `<CTASection>` component
|
|
216
|
+
- `images` **(required)** - object consisting of three image objects, each with url and altText strings. The objects are `desktop`, `tablet`, and `mobile`.
|
|
217
|
+
- `desktop` - object with `url` and `altText` strings for generating the desktop hero image
|
|
218
|
+
- `url` - string that links to a 3x2 image source
|
|
219
|
+
- `altText` - string for generating image accessibility text
|
|
220
|
+
- `tablet` - object with `url` and `altText` strings for generating the desktop hero image
|
|
221
|
+
- `url` - string that links to a 1x1 image source
|
|
222
|
+
- `altText` - string for generating image accessibility text
|
|
223
|
+
- `mobile` - object with `url` and `altText` strings for generating the desktop hero image
|
|
224
|
+
- `url` - string that links to a 4x3 image source
|
|
225
|
+
- `altText` - string for generating image accessibility text
|
|
226
|
+
- `imageSide` - string used for indicating the side of the page that the image should render on. Defaults to right.
|
|
227
|
+
- `theme` - string indicating the theme that styles the organism. Options are theme-1, theme-2, theme-3, theme-4, theme-5.
|
|
228
|
+
- `id` - string used for generating the component's id attribute. Will default to the organism's header text or the organism type.
|
|
229
|
+
- `motion` - boolean that indicates whether to use the react-reveal library to render the component inside a `<Fade>` component.
|
|
230
|
+
|
|
231
|
+
###### Example -
|
|
232
|
+
|
|
233
|
+
```
|
|
234
|
+
const images = {
|
|
235
|
+
desktop : {
|
|
236
|
+
url: "http://fpoimg.com/2400x1600?text=3:2",
|
|
237
|
+
altText: "placeholder image"
|
|
238
|
+
},
|
|
239
|
+
mobile: {
|
|
240
|
+
url: "http://fpoimg.com/1600x1200?text=4:3",
|
|
241
|
+
altText: "placeholder image"
|
|
242
|
+
},
|
|
243
|
+
tablet: {
|
|
244
|
+
url: "http://fpoimg.com/1600x1600?text=1:1",
|
|
245
|
+
altText: "placeholder image"
|
|
246
|
+
}
|
|
247
|
+
};
|
|
248
|
+
|
|
249
|
+
const ctas = {
|
|
250
|
+
ctaOne: {
|
|
251
|
+
url: "/#",
|
|
252
|
+
text: "Button"
|
|
253
|
+
},
|
|
254
|
+
ctaTwo: {
|
|
255
|
+
url: "/#",
|
|
256
|
+
text: "Button"
|
|
257
|
+
}
|
|
258
|
+
};
|
|
259
|
+
|
|
260
|
+
const content {
|
|
261
|
+
images,
|
|
262
|
+
ctas,
|
|
263
|
+
header: 'Header',
|
|
264
|
+
text: 'Text!'
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
return (
|
|
268
|
+
<Hero6
|
|
269
|
+
imageSide="left"
|
|
270
|
+
content={content}
|
|
271
|
+
motion
|
|
272
|
+
theme='theme-4'
|
|
273
|
+
/>
|
|
274
|
+
);
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
#### FilterHero
|
|
278
|
+
|
|
279
|
+
###### Props -
|
|
280
|
+
|
|
281
|
+
- `header` - string for generating header text
|
|
282
|
+
- `text` - string for generating body text.
|
|
283
|
+
- `dropdowns` - an array used for generating Dropdown components - see example for structuring
|
|
284
|
+
- `checkboxes` - an array used for generating Checkbox components - see example for structuring
|
|
285
|
+
- `handleDropdownChange` - method used for handling new dropdown selections - takes the new selection and the associated name of the dropdown from the event object arguments.
|
|
286
|
+
- `handleCheckboxChange` - method used for handling checkbox toggling - takes a boolean for the status of the checkbox and the name of the checkbox from the event object as arguments.
|
|
287
|
+
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
288
|
+
- `motion` - boolean that indicates whether to use the react-reveal library to render the component inside a `<Fade>` component.
|
|
289
|
+
|
|
290
|
+
###### Example -
|
|
291
|
+
|
|
292
|
+
```
|
|
293
|
+
handleDropdownChange = (selection, name) => {
|
|
294
|
+
this.setState({[name]: selection})
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
handleCheckboxChange = (bool, name) => {
|
|
298
|
+
this.setState({[name]: bool})
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
const header = 'I am a header'
|
|
302
|
+
const text = 'Tempor ex esse ipsum sit eiusmod dolor mollit cupidatat elit cupidatat pariatur commodo non est.'
|
|
303
|
+
|
|
304
|
+
const dropdownOne = {
|
|
305
|
+
options: ["trade one", "trade two", "trade three"],
|
|
306
|
+
defaultText: "All",
|
|
307
|
+
name: "Trade"
|
|
308
|
+
};
|
|
309
|
+
const dropdownTwo = {
|
|
310
|
+
options: ["category one", "category two", "category three"],
|
|
311
|
+
defaultText: "All",
|
|
312
|
+
name: "Category"
|
|
313
|
+
};
|
|
314
|
+
const dropdowns = [dropdownOne, dropdownTwo]
|
|
315
|
+
|
|
316
|
+
const checkboxOne = {
|
|
317
|
+
name: "Checkbox One"
|
|
318
|
+
};
|
|
319
|
+
const checkboxTwo = { name: "Checkbox Two" };
|
|
320
|
+
const checkboxes = [checkboxOne, checkboxTwo];
|
|
321
|
+
|
|
322
|
+
return (
|
|
323
|
+
<FilterHero
|
|
324
|
+
header={header}
|
|
325
|
+
text={text}
|
|
326
|
+
dropdowns={dropdowns}
|
|
327
|
+
checkboxes={checkboxes}
|
|
328
|
+
handleDropdownChange={this.handleDropdownChange}
|
|
329
|
+
handleCheckboxChange={this.handleCheckboxChange}
|
|
330
|
+
backgroundColor='#5e5e5e'
|
|
331
|
+
/>
|
|
332
|
+
)
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
#### Feat1
|
|
338
|
+
|
|
339
|
+
###### Props -
|
|
340
|
+
|
|
341
|
+
- `content` **(required)** - object containing the objects content (see example)
|
|
342
|
+
- `header` **(required)** - string for generating header text
|
|
343
|
+
- `subHeader` - string for generating sub-header text
|
|
344
|
+
- `text` **(required)** - string for generating body text
|
|
345
|
+
- `cta` - object for generating a `<ButtonLink>` component requiring `url` and `text` strings
|
|
346
|
+
- `image` **(required)** - object consisting of `url` and `altText` strings.
|
|
347
|
+
- `backgroundImage` - url string that points to a background image address
|
|
348
|
+
- `backgroundPosition` - string indicating where the background image appears. Options are `top`, `top-left`, `top-right`, `bottom`, `bottom-left`, `bottom-right`, `right`, `left` and `center`.
|
|
349
|
+
- `backgroundImageWidth` - number indicating the width of the background image in pixels
|
|
350
|
+
- `backgroundImageHeight` - number indicating the height of the background image in pixels
|
|
351
|
+
- `backgroundOffsetY` - number indicating the offset of the background image on the Y axis
|
|
352
|
+
- `backgroundOffsetX` - number indicating the offset of the background image on the X axis
|
|
353
|
+
- `parallaxPosition` - number indicating the current scrollY position of the page, should come from Redux
|
|
354
|
+
- `zIndex` - number indicating the desired `z-index` of the background image.- `backgroundColor` - string for specifying color for the background. Accepts RGB, RGBA, hex, etc.
|
|
355
|
+
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
356
|
+
- `id` - string used for generating the component's `id` attribute. Will default to the organism's `header` text or the organism type.
|
|
357
|
+
- `motion` - boolean that indicates whether to use the `react-reveal` library to render the component inside a `<Fade>` component.
|
|
358
|
+
|
|
359
|
+
###### Example -
|
|
360
|
+
|
|
361
|
+
```
|
|
362
|
+
const content = {
|
|
363
|
+
header: 'Header',
|
|
364
|
+
subHeader: 'Sub Header',
|
|
365
|
+
text: '<p>Sunt elit officia id aute esse dolore elit Lorem officia.</p>'
|
|
366
|
+
cta: {
|
|
367
|
+
url: '/',
|
|
368
|
+
text: 'link'
|
|
369
|
+
},
|
|
370
|
+
image: {
|
|
371
|
+
url: '/',
|
|
372
|
+
altText: 'Image'
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
const background = {
|
|
377
|
+
backgroundImage: './image.png',
|
|
378
|
+
backgroundPosition: 'right',
|
|
379
|
+
backgroundImageWidth: 900,
|
|
380
|
+
backgroundImageHeight: 900,
|
|
381
|
+
backgroundOFfsetY: 0,
|
|
382
|
+
backgroundOffsetX: 100
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
return (
|
|
386
|
+
<Feat1
|
|
387
|
+
content={content}
|
|
388
|
+
motion
|
|
389
|
+
background={background}
|
|
390
|
+
parallaxPosition={this.props.parallaxPosition}
|
|
391
|
+
theme='theme-2',
|
|
392
|
+
id={data.id}
|
|
393
|
+
/>
|
|
394
|
+
);
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
#### Feat2A
|
|
400
|
+
|
|
401
|
+
###### Props -
|
|
402
|
+
|
|
403
|
+
- `image` **(required)** - object with `url` and `altText` strings
|
|
404
|
+
- `<AccordionFold>` **(required)** - child component for rendering folds in the `<Accordion>` component with each fold taking a `header` string as a prop
|
|
405
|
+
- `zIndex` - number indicating the desired `z-index` of the background image.- `backgroundColor` - string for specifying color for the background. Accepts RGB, RGBA, hex, etc.
|
|
406
|
+
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
407
|
+
- `id` - string used for generating the component's `id` attribute. Will default to the organism's `header` text or the organism type.
|
|
408
|
+
- `motion` - boolean that indicates whether to use the `react-reveal` library to render the component inside a `<Fade>` component.
|
|
409
|
+
|
|
410
|
+
###### Example -
|
|
411
|
+
|
|
412
|
+
```
|
|
413
|
+
import { AccordionFold } from 'terra-component-lib'
|
|
414
|
+
|
|
415
|
+
const mockImage = {
|
|
416
|
+
url: "https://fpoimg.com/500x500",
|
|
417
|
+
altText: "Placeholder image"
|
|
418
|
+
};
|
|
419
|
+
|
|
420
|
+
return (
|
|
421
|
+
<Feat2A
|
|
422
|
+
image={mockImage}
|
|
423
|
+
header="Good design is a thing, apparently."
|
|
424
|
+
text="Veniam laboris laboris consequat et."
|
|
425
|
+
>
|
|
426
|
+
<AccordionFold header="Test one">
|
|
427
|
+
<p>
|
|
428
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer
|
|
429
|
+
lobortis augue ligula, eget gravida tellus lacinia id. Sed ultricies
|
|
430
|
+
mi malesuada tincidunt dapibus. Donec porta ligula sagittis elit
|
|
431
|
+
sollicitudin.
|
|
432
|
+
</p>
|
|
433
|
+
</AccordionFold>
|
|
434
|
+
<AccordionFold header="Test two">
|
|
435
|
+
<p>
|
|
436
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer
|
|
437
|
+
lobortis augue ligula, eget gravida tellus lacinia id. Sed ultricies
|
|
438
|
+
mi malesuada tincidunt dapibus. Donec porta ligula sagittis elit
|
|
439
|
+
sollicitudin.
|
|
440
|
+
</p>
|
|
441
|
+
</AccordionFold>
|
|
442
|
+
<AccordionFold header="Test three">
|
|
443
|
+
<p>
|
|
444
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer
|
|
445
|
+
lobortis augue ligula, eget gravida tellus lacinia id. Sed ultricies
|
|
446
|
+
mi malesuada tincidunt dapibus. Donec porta ligula sagittis elit
|
|
447
|
+
sollicitudin.
|
|
448
|
+
</p>
|
|
449
|
+
</AccordionFold>
|
|
450
|
+
</Feat2>
|
|
451
|
+
);
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
---
|
|
455
|
+
|
|
456
|
+
#### Feat2B
|
|
457
|
+
|
|
458
|
+
###### Props -
|
|
459
|
+
|
|
460
|
+
- content **(required)** - object containing images and cards (see Example)
|
|
461
|
+
- `cards` **(required)** - array of objects used for generating `IconListItem` components with `text` and `header` strings
|
|
462
|
+
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
463
|
+
- `id` - string used for generating the component's `id` attribute. Will default to the organism's `header` text or the organism type.
|
|
464
|
+
- `motion` - boolean that indicates whether to use the `react-reveal` library to render the component inside a `<Fade>` component.
|
|
465
|
+
|
|
466
|
+
###### Example -
|
|
467
|
+
|
|
468
|
+
```
|
|
469
|
+
const content = {
|
|
470
|
+
images: {
|
|
471
|
+
desktop: {
|
|
472
|
+
url: "http://fpoimg.com/1600x400?text=4:1",
|
|
473
|
+
altText: "placeholder image"
|
|
474
|
+
},
|
|
475
|
+
mobile: {
|
|
476
|
+
url: "http://fpoimg.com/1600x800?text=2:1",
|
|
477
|
+
altText: "placeholder image"
|
|
478
|
+
}
|
|
479
|
+
},
|
|
480
|
+
cards: [
|
|
481
|
+
{
|
|
482
|
+
header: "Header",
|
|
483
|
+
text:
|
|
484
|
+
"Anim aliquip aliqua aliqua id qui aute anim reprehenderit tempor velit est sint laborum."
|
|
485
|
+
},
|
|
486
|
+
{
|
|
487
|
+
header: "Header",
|
|
488
|
+
text:
|
|
489
|
+
"Anim aliquip aliqua aliqua id qui aute anim reprehenderit tempor velit est sint laborum."
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
header: "Header",
|
|
493
|
+
text:
|
|
494
|
+
"Anim aliquip aliqua aliqua id qui aute anim reprehenderit tempor velit est sint laborum."
|
|
495
|
+
}
|
|
496
|
+
]
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
return (
|
|
500
|
+
<Feat2B
|
|
501
|
+
content={content}
|
|
502
|
+
motion
|
|
503
|
+
theme='theme-2'
|
|
504
|
+
id={data.id}
|
|
505
|
+
/>
|
|
506
|
+
);
|
|
507
|
+
```
|
|
508
|
+
|
|
509
|
+
---
|
|
510
|
+
|
|
511
|
+
#### Feat3
|
|
512
|
+
|
|
513
|
+
###### Description -
|
|
514
|
+
|
|
515
|
+
Featurette with a large image, header, and sub-header text
|
|
516
|
+
|
|
517
|
+
###### Props -
|
|
518
|
+
|
|
519
|
+
- `content` **(required)** - object containing, images, header, and text
|
|
520
|
+
- `header` - string used for generating the feat header
|
|
521
|
+
- `subHeader` - string used for generating the feat sub-header
|
|
522
|
+
- `images` - object containing mobile and desktop images
|
|
523
|
+
- `mobile` - object containing the mobile image source and alt text
|
|
524
|
+
- `url` - string pointing to the image source
|
|
525
|
+
- `altText` - string used for assisted alternate text for screen readers
|
|
526
|
+
- `desktop` - object containing the desktop image source and alt text
|
|
527
|
+
- `url` - string pointing to the image source
|
|
528
|
+
- `altText` - string used for assisted alternate text for screen readers
|
|
529
|
+
- `motion` - boolean indicating if component animation is active
|
|
530
|
+
- `id` - string used for generating the component's id, defaults to the header text (spaces removed)
|
|
531
|
+
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
532
|
+
|
|
533
|
+
###### Example -
|
|
534
|
+
|
|
535
|
+
```
|
|
536
|
+
const content = {
|
|
537
|
+
header: "Feat 3 Header",
|
|
538
|
+
subHeader: "This is sub-header text",
|
|
539
|
+
images: {
|
|
540
|
+
mobile: {
|
|
541
|
+
url: "www.image.com/mobile-image.jpg",
|
|
542
|
+
altText: "image alt text
|
|
543
|
+
},
|
|
544
|
+
desktop: {
|
|
545
|
+
url: "www.image.com/desktop-image.jpg",
|
|
546
|
+
altText: "image alt text
|
|
547
|
+
}
|
|
548
|
+
},
|
|
549
|
+
theme: "theme-2",
|
|
550
|
+
motion: true
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
return <Feat3 content={content} />
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
---
|
|
557
|
+
|
|
558
|
+
#### Feat4
|
|
559
|
+
|
|
560
|
+
###### Props -
|
|
561
|
+
|
|
562
|
+
- content **(required)** - object containing, ctas, headers, subheaders
|
|
563
|
+
|
|
564
|
+
- `header` **(required)** - string used for generating header text
|
|
565
|
+
- `subHeader` **(required)** - string used for generating sub-header text
|
|
566
|
+
|
|
567
|
+
- background - object containing `backgroundImage` which value is a string, `backgroundPosition` which value is a number, `backgroundColor` which value is a string, `backgroundOffsetX` which value is a number, `backgroundOffsetY` which value is a number, `backgroundImageHeight` which value is a number and `backgroundImageWidth` which value is anumber
|
|
568
|
+
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
569
|
+
- `id` - string used for generating the component's `id` attribute. Will default to the organism's `header` text or the organism type.
|
|
570
|
+
- `motion` - object containing `motion`, `motionDistance`, and `motionDirection` keys. -`motion` value is a boolen to indicate if motion will be on this component -`motionDistance` - string indicating the direction that the component should travel from as it fades in -`motionDirection` - string indicating the distance that the component travels during motion.
|
|
571
|
+
|
|
572
|
+
###### Example -
|
|
573
|
+
|
|
574
|
+
```
|
|
575
|
+
const content = {
|
|
576
|
+
header="Good Design is innovative",
|
|
577
|
+
subHeader="Esse aliquip ad in et ut ipsum paEu elit consectetur aliquip excepteur fugiat ut qui dolor pariatur consectetur.riatur elit quis.",
|
|
578
|
+
const ctas = {
|
|
579
|
+
ctaOne: {
|
|
580
|
+
text: "Button",
|
|
581
|
+
url: "/#"
|
|
582
|
+
},
|
|
583
|
+
ctaTwo: {
|
|
584
|
+
text: "Button",
|
|
585
|
+
url: "/#"
|
|
586
|
+
}
|
|
587
|
+
};
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
return (
|
|
591
|
+
<Feat4
|
|
592
|
+
content={content}
|
|
593
|
+
/>
|
|
594
|
+
);
|
|
595
|
+
```
|
|
596
|
+
|
|
597
|
+
---
|
|
598
|
+
|
|
599
|
+
#### Feat5
|
|
600
|
+
|
|
601
|
+
###### Props -
|
|
602
|
+
|
|
603
|
+
- `dumplings` **(required)** - an array of objects used for generating `<Dumpling>` components; see the Terra component library for requirements
|
|
604
|
+
- `type` - string used to determine whether or not small or large dumplings are used (`'a'` is large, `'b'` is small)
|
|
605
|
+
- `header` **(required)** - string used for generating header text
|
|
606
|
+
- `subHeader` - string used for generating sub-header text
|
|
607
|
+
- `backgroundImage` - url string that points to a background image address
|
|
608
|
+
- `backgroundPosition` - string indicating where the background image appears. Options are `top`, `top-left`, `top-right`, `bottom`, `bottom-left`, `bottom-right`, `right`, `left` and `center`.
|
|
609
|
+
- `backgroundImageWidth` - number indicating the width of the background image in pixels
|
|
610
|
+
- `backgroundImageHeight` - number indicating the height of the background image in pixels
|
|
611
|
+
- `backgroundOffsetY` - number indicating the offset of the background image on the Y axis
|
|
612
|
+
- `backgroundOffsetX` - number indicating the offset of the background image on the X axis
|
|
613
|
+
- `zIndex` - number indicating the desired `z-index` of the background image.- `backgroundColor` - string for specifying color for the background. Accepts RGB, RGBA, hex, etc.
|
|
614
|
+
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
615
|
+
- `className` - string that is interpolated into the organisms class for targeted styling and/or manipulation
|
|
616
|
+
- `id` - string used for generating the component's `id` attribute. Will default to the organism's `header` text or the organism type.
|
|
617
|
+
- `motion` - boolean that indicates whether to use the `react-reveal` library to render the component inside a `<Fade>` component.
|
|
618
|
+
- `motionDirection` - string indicating the direction that the component should travel from as it fades in.
|
|
619
|
+
- `motionDistance` - string indicating the distance that the component travels during motion
|
|
620
|
+
|
|
621
|
+
###### Example -
|
|
622
|
+
|
|
623
|
+
```
|
|
624
|
+
const mockDumplings = [
|
|
625
|
+
{
|
|
626
|
+
header: "Dumplin'",
|
|
627
|
+
link: { url: "/#" },
|
|
628
|
+
size: "small",
|
|
629
|
+
icon: { type: "enclosed-check-dark-48px", size: "48px" }
|
|
630
|
+
},
|
|
631
|
+
{
|
|
632
|
+
header: "Dumplin'",
|
|
633
|
+
link: { url: "/#" },
|
|
634
|
+
size: "small",
|
|
635
|
+
icon: { type: "enclosed-check-dark-48px", size: "48px" }
|
|
636
|
+
}
|
|
637
|
+
];
|
|
638
|
+
|
|
639
|
+
return (
|
|
640
|
+
<Feat5
|
|
641
|
+
dumplings={mockDumplings}
|
|
642
|
+
type="a"
|
|
643
|
+
header="Design is design"
|
|
644
|
+
subHeader="It's like, this thing, you know?"
|
|
645
|
+
/>
|
|
646
|
+
);
|
|
647
|
+
```
|
|
648
|
+
|
|
649
|
+
---
|
|
650
|
+
|
|
651
|
+
#### Feat6
|
|
652
|
+
|
|
653
|
+
###### Props -
|
|
654
|
+
|
|
655
|
+
- content **(required)** - object containing quotes, ctas, button
|
|
656
|
+
|
|
657
|
+
- quote (required) - object consisting of text, source, and sourceTitle strings
|
|
658
|
+
- `images` **(required)** - an object that contains two objects, `desktop` and `mobile`. `desktop` is the 4x1 image object. `mobile` is the 2x1 image object. Each image object consists have `url` and `altText` strings.
|
|
659
|
+
|
|
660
|
+
- `header` **(required)** - string used for generating header text
|
|
661
|
+
- `subHeader` **(required)** - string used for generating sub-header text
|
|
662
|
+
|
|
663
|
+
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
664
|
+
- `id` - string used for generating the component's `id` attribute. Will default to the organism's `header` text or the organism type.
|
|
665
|
+
- `motion` - object containing `motion`, `motionDistance`, and `motionDirection` keys. -`motion` value is a boolen to indicate if motion will be on this component -`motionDistance` - string indicating the direction that the component should travel from as it fades in -`motionDirection` - string indicating the distance that the component travels during motion.
|
|
666
|
+
|
|
667
|
+
###### Example -
|
|
668
|
+
|
|
669
|
+
```
|
|
670
|
+
const content = {
|
|
671
|
+
image:{
|
|
672
|
+
url: "http://fpoimg.com/800x800",
|
|
673
|
+
altText: "placeholder image"
|
|
674
|
+
},
|
|
675
|
+
quote:{
|
|
676
|
+
text: `Excepteur incididunt magna commodo amet est fugiat."`,
|
|
677
|
+
source: "Leonard Sciarra",
|
|
678
|
+
sourceTitle: "Senior Associate at Gensler, AIA, ASHRAE, LEED AP+"
|
|
679
|
+
},
|
|
680
|
+
cta:{
|
|
681
|
+
text: "CTA",
|
|
682
|
+
url: "/#"
|
|
683
|
+
},
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
return (
|
|
687
|
+
<Feat6
|
|
688
|
+
content={content}
|
|
689
|
+
/>
|
|
690
|
+
|
|
691
|
+
```
|
|
692
|
+
|
|
693
|
+
---
|
|
694
|
+
|
|
695
|
+
#### Feat7
|
|
696
|
+
|
|
697
|
+
###### Props -
|
|
698
|
+
|
|
699
|
+
- `content` **(required)** - array of objects use for generating 'cards' consisting of `header`, `text`, and `url` strings.
|
|
700
|
+
- `header` **(required)** - string used for generating header text
|
|
701
|
+
- `backgroundImage` - url string that points to a background image address
|
|
702
|
+
- `backgroundPosition` - string indicating where the background image appears. Options are `top`, `top-left`, `top-right`, `bottom`, `bottom-left`, `bottom-right`, `right`, `left` and `center`.
|
|
703
|
+
- `backgroundImageWidth` - number indicating the width of the background image in pixels
|
|
704
|
+
- `backgroundImageHeight` - number indicating the height of the background image in pixels
|
|
705
|
+
- `backgroundOffsetY` - number indicating the offset of the background image on the Y axis
|
|
706
|
+
- `backgroundOffsetX` - number indicating the offset of the background image on the X axis
|
|
707
|
+
- `zIndex` - number indicating the desired `z-index` of the background image.- `backgroundColor` - string for specifying color for the background. Accepts RGB, RGBA, hex, etc.
|
|
708
|
+
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
709
|
+
- `className` - string that is interpolated into the organisms class for targeted styling and/or manipulation
|
|
710
|
+
- `id` - string used for generating the component's `id` attribute. Will default to the organism's `header` text or the organism type.
|
|
711
|
+
- `motion` - boolean that indicates whether to use the `react-reveal` library to render the component inside a `<Fade>` component.
|
|
712
|
+
- `motionDirection` - string indicating the direction that the component should travel from as it fades in.
|
|
713
|
+
- `motionDistance` - string indicating the distance that the component travels during motion
|
|
714
|
+
|
|
715
|
+
###### Example -
|
|
716
|
+
|
|
717
|
+
```
|
|
718
|
+
const content = [
|
|
719
|
+
{
|
|
720
|
+
header: "Design!",
|
|
721
|
+
text:
|
|
722
|
+
"Enim laborum ad anim laborum ad minim ipsum proident est cillum aliqua. Irure laboris aute ullamco ad Lorem et culpa id commodo quis sunt labore in id.",
|
|
723
|
+
url: "/#"
|
|
724
|
+
},
|
|
725
|
+
{
|
|
726
|
+
header: "Aesthetics!",
|
|
727
|
+
text:
|
|
728
|
+
"Enim laborum ad anim laborum ad minim ipsum proident est cillum aliqua.",
|
|
729
|
+
url: "/#"
|
|
730
|
+
}
|
|
731
|
+
];
|
|
732
|
+
return <Feat7 header="I am a header" content={content} />;
|
|
733
|
+
```
|
|
734
|
+
|
|
735
|
+
---
|
|
736
|
+
|
|
737
|
+
#### ParallaxBackground
|
|
738
|
+
|
|
739
|
+
###### Props -
|
|
740
|
+
|
|
741
|
+
- `backgroundImage` - string for the URL that points to the background image to be rendered
|
|
742
|
+
- `speed` - integer used for determining the speed of the parallax effect. Defaults to `2`. A speed of `1` will keep the background image fixed, while a speed of `2` will cause it to scroll at half speed.
|
|
743
|
+
- `styles` - object of style properties that are passed to the parent container.
|
|
744
|
+
- `children` - JSX passed inside the tags that will be rendered within the container and will scroll at normal speed.
|
|
745
|
+
|
|
746
|
+
###### Example -
|
|
747
|
+
|
|
748
|
+
```
|
|
749
|
+
const backgroundImage = 'https://www.images.com/images/image.jpg
|
|
750
|
+
|
|
751
|
+
return (
|
|
752
|
+
<ParallaxBackground
|
|
753
|
+
backgroundImage={backgroundImage}
|
|
754
|
+
styles={{padding: '0 40px'}}
|
|
755
|
+
speed={1.4}
|
|
756
|
+
>
|
|
757
|
+
<p>Content!</p>
|
|
758
|
+
</ParallaxBackground>
|
|
759
|
+
)
|
|
760
|
+
```
|
|
761
|
+
|
|
762
|
+
#### NavBar
|
|
763
|
+
|
|
764
|
+
###### Notes -
|
|
765
|
+
|
|
766
|
+
This component uses the `react-slidedown` library for the innerpage navigation links in the `utilityNav`. The `link.url` string should be a reference to the name of the `<Element>` that wraps the cooresponding organism that the window should scroll to.
|
|
767
|
+
|
|
768
|
+
###### Props -
|
|
769
|
+
|
|
770
|
+
- `rightLinks` - array of objects used for generating links to the right of the search icon. Each object requires `url` and `text` strings.
|
|
771
|
+
- `logo` **(required)** - object consisting of `url` and `altText` strings (for generating the logo image) in addition to a link object with a `url` string for generating the `href` property.
|
|
772
|
+
- `divisionName` **(required)** - string used for generating the name of the Trimble division that is to the right of the logo.n
|
|
773
|
+
- `navCTA` - object consiting of a `className` string for formating the button (see Terra buttons) and a `link` object with `url` and `text` strings used for generating the CTA in the lower right corner of the Nav
|
|
774
|
+
- `navOptions` - array of objects used for generating the middle section of the nav. All objects will have a type indicating whether to render a (`MegaMenu`), a simple drop down of links (`miniMenus`), or a single link (`singleLink`). See examples below on how to load up these objects. The `MegaMenu` can both render a links both with and without subcategories.
|
|
775
|
+
- `utilityNav` - object consisting of a `pageTitle` string as well as a `links` array of objects consisting of `text` and `url` strings. See example below.
|
|
776
|
+
- `currentLanguage` - object with `region` and `language` strings that indicate the current region and language selected.
|
|
777
|
+
- `languageSelectorData` - object consisting of data needed to populate the `LanguageSelector` component. See example below.
|
|
778
|
+
- `setLanguage` - method used to set the region and language, which it takes as string key/values in an object as an argument
|
|
779
|
+
- `location` - prop used to close the mobile menu when a user clicks on one of the rightLinks. In your project, pass in `location={this.props.location}`
|
|
780
|
+
|
|
781
|
+
###### Example -
|
|
782
|
+
|
|
783
|
+
```
|
|
784
|
+
const rightLinks = [
|
|
785
|
+
{
|
|
786
|
+
url: "/#",
|
|
787
|
+
text: "Support"
|
|
788
|
+
}
|
|
789
|
+
];
|
|
790
|
+
|
|
791
|
+
const logo = {
|
|
792
|
+
url: Logo (should be imported in the application),
|
|
793
|
+
altText: 'Trimble Logo',
|
|
794
|
+
link: {
|
|
795
|
+
url: 'www.trimble.com'
|
|
796
|
+
}
|
|
797
|
+
};
|
|
798
|
+
|
|
799
|
+
const divisionName = 'Geospatial';
|
|
800
|
+
const location = 'N. America';
|
|
801
|
+
|
|
802
|
+
const navCTA = {
|
|
803
|
+
className: 'ter-button--primary--1',
|
|
804
|
+
link: {
|
|
805
|
+
url: '/#',
|
|
806
|
+
text: 'Contact Sales'
|
|
807
|
+
}
|
|
808
|
+
}
|
|
809
|
+
|
|
810
|
+
const location = this.props.location
|
|
811
|
+
|
|
812
|
+
const utilityNav = {
|
|
813
|
+
pageTitle: "Trimble Accubid Enterprise",
|
|
814
|
+
links: [
|
|
815
|
+
{
|
|
816
|
+
text: "Product Anchor One",
|
|
817
|
+
url: "/#"
|
|
818
|
+
},
|
|
819
|
+
{
|
|
820
|
+
text: "Product Anchor Two",
|
|
821
|
+
url: "/#"
|
|
822
|
+
}
|
|
823
|
+
]
|
|
824
|
+
};
|
|
825
|
+
|
|
826
|
+
const megaMenu = {
|
|
827
|
+
type: "mega menu",
|
|
828
|
+
bottomLink: {
|
|
829
|
+
url: "/#",
|
|
830
|
+
text: "All Products"
|
|
831
|
+
},
|
|
832
|
+
text: "Products",
|
|
833
|
+
links: [
|
|
834
|
+
{
|
|
835
|
+
text: "Mechanical",
|
|
836
|
+
links: [
|
|
837
|
+
{
|
|
838
|
+
url: "/#",
|
|
839
|
+
text: "BIM Collaboration"
|
|
840
|
+
},
|
|
841
|
+
{
|
|
842
|
+
url: "/#",
|
|
843
|
+
text: "MEP Content"
|
|
844
|
+
}
|
|
845
|
+
]
|
|
846
|
+
},
|
|
847
|
+
{
|
|
848
|
+
text: "Electrical",
|
|
849
|
+
links: [
|
|
850
|
+
{
|
|
851
|
+
url: "/#",
|
|
852
|
+
text: "Design/Detailing"
|
|
853
|
+
},
|
|
854
|
+
{
|
|
855
|
+
url: "/#",
|
|
856
|
+
text: "Project Management"
|
|
857
|
+
}
|
|
858
|
+
]
|
|
859
|
+
},
|
|
860
|
+
{
|
|
861
|
+
text: "Plumbing",
|
|
862
|
+
link: {url: "/#"}
|
|
863
|
+
},
|
|
864
|
+
]
|
|
865
|
+
};
|
|
866
|
+
|
|
867
|
+
const miniMenus = [
|
|
868
|
+
{
|
|
869
|
+
type: "mini menu",
|
|
870
|
+
text: "Services",
|
|
871
|
+
links: [
|
|
872
|
+
{
|
|
873
|
+
url: "/#",
|
|
874
|
+
text: "Link One"
|
|
875
|
+
},
|
|
876
|
+
{
|
|
877
|
+
url: "/#",
|
|
878
|
+
text: "Link Two"
|
|
879
|
+
}
|
|
880
|
+
]
|
|
881
|
+
},
|
|
882
|
+
{
|
|
883
|
+
type: "mini menu",
|
|
884
|
+
text: "Resources",
|
|
885
|
+
links: [
|
|
886
|
+
{
|
|
887
|
+
url: "/#",
|
|
888
|
+
text: "Link One"
|
|
889
|
+
},
|
|
890
|
+
{
|
|
891
|
+
url: "/#",
|
|
892
|
+
text: "Link Two"
|
|
893
|
+
}
|
|
894
|
+
]
|
|
895
|
+
}
|
|
896
|
+
];
|
|
897
|
+
|
|
898
|
+
const singleLink = {
|
|
899
|
+
type: "link",
|
|
900
|
+
url: "/#",
|
|
901
|
+
text: "Process"
|
|
902
|
+
};
|
|
903
|
+
|
|
904
|
+
const languageSelectorData = {
|
|
905
|
+
labels: {
|
|
906
|
+
currentRegion: "Current Region",
|
|
907
|
+
cancel: "Cancel",
|
|
908
|
+
save: "Save"
|
|
909
|
+
},
|
|
910
|
+
regions: [
|
|
911
|
+
{
|
|
912
|
+
region: "North America",
|
|
913
|
+
languages: [
|
|
914
|
+
"EN: English (US)",
|
|
915
|
+
"EN-UK: English (UK)",
|
|
916
|
+
"FR: French",
|
|
917
|
+
"DE: German",
|
|
918
|
+
"NL: Dutch"
|
|
919
|
+
]
|
|
920
|
+
},
|
|
921
|
+
{
|
|
922
|
+
region: "UK and Middle East",
|
|
923
|
+
languages: [
|
|
924
|
+
"EN: English (US)",
|
|
925
|
+
"EN-UK: English (UK)",
|
|
926
|
+
"FR: French",
|
|
927
|
+
"DE: German",
|
|
928
|
+
"NL: Dutch"
|
|
929
|
+
]
|
|
930
|
+
},
|
|
931
|
+
{
|
|
932
|
+
region: "France",
|
|
933
|
+
languages: [
|
|
934
|
+
"EN: English (US)",
|
|
935
|
+
"EN-UK: English (UK)",
|
|
936
|
+
"FR: French",
|
|
937
|
+
"DE: German",
|
|
938
|
+
"NL: Dutch"
|
|
939
|
+
]
|
|
940
|
+
},
|
|
941
|
+
{
|
|
942
|
+
region: "Germany and Austria",
|
|
943
|
+
languages: [
|
|
944
|
+
"EN: English (US)",
|
|
945
|
+
"EN-UK: English (UK)",
|
|
946
|
+
"FR: French",
|
|
947
|
+
"DE: German",
|
|
948
|
+
"NL: Dutch"
|
|
949
|
+
]
|
|
950
|
+
},
|
|
951
|
+
{
|
|
952
|
+
region: "Switzerland",
|
|
953
|
+
languages: [
|
|
954
|
+
"EN: English (US)",
|
|
955
|
+
"EN-UK: English (UK)",
|
|
956
|
+
"FR: French",
|
|
957
|
+
"DE: German",
|
|
958
|
+
"NL: Dutch"
|
|
959
|
+
]
|
|
960
|
+
}
|
|
961
|
+
],
|
|
962
|
+
currentRegionLanguage: {
|
|
963
|
+
region: "UK and Middle East",
|
|
964
|
+
language: "EN-UK"
|
|
965
|
+
},
|
|
966
|
+
|
|
967
|
+
activeRegion: {
|
|
968
|
+
region: "UK and Middle East",
|
|
969
|
+
language: "EN: English"
|
|
970
|
+
},
|
|
971
|
+
|
|
972
|
+
companyDivision: "MEP"
|
|
973
|
+
};
|
|
974
|
+
|
|
975
|
+
|
|
976
|
+
return (
|
|
977
|
+
<NavBar
|
|
978
|
+
location={location}
|
|
979
|
+
rightLinks={rightLinks}
|
|
980
|
+
currentLanguage={{ region: "N. America", language: "EN: English" }}
|
|
981
|
+
logo={logo}
|
|
982
|
+
divisionName="MEP"
|
|
983
|
+
navCTA={navCTA}
|
|
984
|
+
navOptions={[megaMenu, ...miniMenus, singleLink]}
|
|
985
|
+
utilityNav={utilityNav}
|
|
986
|
+
languageSelectorData={languageSelectorData}
|
|
987
|
+
/>
|
|
988
|
+
)
|
|
989
|
+
|
|
990
|
+
```
|
|
991
|
+
|
|
992
|
+
---
|
|
993
|
+
|
|
994
|
+
#### Footer
|
|
995
|
+
|
|
996
|
+
###### Props -
|
|
997
|
+
|
|
998
|
+
- `logo` - object consisting of a `url` and `altText` strings
|
|
999
|
+
- `trimbleText` - string from generating the main content on the left side
|
|
1000
|
+
- `trimbleLink` - object consisting of `text` and `url` strings for generating a link below the left-side text
|
|
1001
|
+
- `siteText` - text string that appears above the secondary link
|
|
1002
|
+
- `siteLink` - object consisting of `url` and `text` string for generating the secondary link on the left side
|
|
1003
|
+
- `linksOne` - array of objects consisting of `url` and `text` strings for generating the links that take up the left-center of the footer space
|
|
1004
|
+
- `linksTwo` - array of objects consisting of `url` and `text` strings for generating the links that take up the right-center of the footer space
|
|
1005
|
+
- `socialLinks` - array of objects consiting of an `icon` object (`url` and `altText` strings) and a link object (`url` string)
|
|
1006
|
+
- `legalStuff` - array of objects consisting of `url` and `text` strings for generating the links that take up the bottom of the footer space. The `url` string is optional, as the component will simply render a `<p>` tags instead.
|
|
1007
|
+
|
|
1008
|
+
###### Example -
|
|
1009
|
+
|
|
1010
|
+
```
|
|
1011
|
+
const logo = {
|
|
1012
|
+
url: Logo,
|
|
1013
|
+
altText: "fpo"
|
|
1014
|
+
};
|
|
1015
|
+
|
|
1016
|
+
const trimbleText =
|
|
1017
|
+
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.";
|
|
1018
|
+
|
|
1019
|
+
const trimbleLink = {
|
|
1020
|
+
url: "/#",
|
|
1021
|
+
text: "More About Trimble"
|
|
1022
|
+
};
|
|
1023
|
+
|
|
1024
|
+
const siteText = "Text for secondary link information";
|
|
1025
|
+
|
|
1026
|
+
const siteLink = {
|
|
1027
|
+
url: "/#",
|
|
1028
|
+
text: "link.trimble.com"
|
|
1029
|
+
};
|
|
1030
|
+
|
|
1031
|
+
const linksOne = [
|
|
1032
|
+
{ url: "/#", text: "Label Left" },
|
|
1033
|
+
{ url: "/#", text: "Label Left" },
|
|
1034
|
+
{ url: "/#", text: "Label Left" }
|
|
1035
|
+
];
|
|
1036
|
+
|
|
1037
|
+
const linksTwo = [
|
|
1038
|
+
{ url: "/#", text: "Label Right" },
|
|
1039
|
+
{ url: "/#", text: "Label Right" },
|
|
1040
|
+
{ url: "/#", text: "Label Right" }
|
|
1041
|
+
];
|
|
1042
|
+
|
|
1043
|
+
const socialLinks = [
|
|
1044
|
+
{
|
|
1045
|
+
icon: {
|
|
1046
|
+
url: Facebook,
|
|
1047
|
+
altText: "fpo"
|
|
1048
|
+
},
|
|
1049
|
+
link: {
|
|
1050
|
+
url: "/#"
|
|
1051
|
+
}
|
|
1052
|
+
},
|
|
1053
|
+
{
|
|
1054
|
+
icon: {
|
|
1055
|
+
url: Twitter,
|
|
1056
|
+
altText: "fpo"
|
|
1057
|
+
},
|
|
1058
|
+
link: {
|
|
1059
|
+
url: "/#"
|
|
1060
|
+
}
|
|
1061
|
+
},
|
|
1062
|
+
{
|
|
1063
|
+
icon: {
|
|
1064
|
+
url: YouTube,
|
|
1065
|
+
altText: "fpo"
|
|
1066
|
+
},
|
|
1067
|
+
link: {
|
|
1068
|
+
url: "/#"
|
|
1069
|
+
}
|
|
1070
|
+
},
|
|
1071
|
+
{
|
|
1072
|
+
icon: {
|
|
1073
|
+
url: LinkedIn,
|
|
1074
|
+
altText: "fpo"
|
|
1075
|
+
},
|
|
1076
|
+
link: {
|
|
1077
|
+
url: "/#"
|
|
1078
|
+
}
|
|
1079
|
+
},
|
|
1080
|
+
{
|
|
1081
|
+
icon: {
|
|
1082
|
+
url: Facebook,
|
|
1083
|
+
altText: "fpo"
|
|
1084
|
+
},
|
|
1085
|
+
link: {
|
|
1086
|
+
url: "/#"
|
|
1087
|
+
}
|
|
1088
|
+
},
|
|
1089
|
+
{
|
|
1090
|
+
icon: {
|
|
1091
|
+
url: Twitter,
|
|
1092
|
+
altText: "fpo"
|
|
1093
|
+
},
|
|
1094
|
+
link: {
|
|
1095
|
+
url: "/#"
|
|
1096
|
+
}
|
|
1097
|
+
},
|
|
1098
|
+
{
|
|
1099
|
+
icon: {
|
|
1100
|
+
url: YouTube,
|
|
1101
|
+
altText: "fpo"
|
|
1102
|
+
},
|
|
1103
|
+
link: {
|
|
1104
|
+
url: "/#"
|
|
1105
|
+
}
|
|
1106
|
+
},
|
|
1107
|
+
{
|
|
1108
|
+
icon: {
|
|
1109
|
+
url: LinkedIn,
|
|
1110
|
+
altText: "fpo"
|
|
1111
|
+
},
|
|
1112
|
+
link: {
|
|
1113
|
+
url: "/#"
|
|
1114
|
+
}
|
|
1115
|
+
}
|
|
1116
|
+
];
|
|
1117
|
+
|
|
1118
|
+
const privacyStatement = {
|
|
1119
|
+
url: "/#",
|
|
1120
|
+
text: "Privacy Statement"
|
|
1121
|
+
};
|
|
1122
|
+
|
|
1123
|
+
const termsOfUse = {
|
|
1124
|
+
url: "/#",
|
|
1125
|
+
text: "Terms of Use"
|
|
1126
|
+
};
|
|
1127
|
+
|
|
1128
|
+
const copyright = {
|
|
1129
|
+
url: "/#",
|
|
1130
|
+
text: "Copyright"
|
|
1131
|
+
};
|
|
1132
|
+
|
|
1133
|
+
const legalStuff = [
|
|
1134
|
+
{
|
|
1135
|
+
url: "/#",
|
|
1136
|
+
text: "Terms of Use"
|
|
1137
|
+
},
|
|
1138
|
+
{
|
|
1139
|
+
url: "/#",
|
|
1140
|
+
text: "Privacy Statement"
|
|
1141
|
+
},
|
|
1142
|
+
{ text: "© 2019, Trimble Inc." }
|
|
1143
|
+
];
|
|
1144
|
+
|
|
1145
|
+
return (
|
|
1146
|
+
<Footer
|
|
1147
|
+
trimbleText={trimbleText}
|
|
1148
|
+
trimbleLink={trimbleLink}
|
|
1149
|
+
siteText={siteText}
|
|
1150
|
+
siteLink={siteLink}
|
|
1151
|
+
linksOne={linksOne}
|
|
1152
|
+
linksTwo={linksTwo}
|
|
1153
|
+
logo={logo}
|
|
1154
|
+
socialLinks={socialLinks}
|
|
1155
|
+
legalStuff={legalStuff}
|
|
1156
|
+
/>
|
|
1157
|
+
);
|
|
1158
|
+
```
|
|
1159
|
+
|
|
1160
|
+
#### ListFeat1
|
|
1161
|
+
|
|
1162
|
+
###### Props -
|
|
1163
|
+
|
|
1164
|
+
- `content` **(required)** - object containing images, ctas, text, variant, headers, subheaders, button, link, videos
|
|
1165
|
+
- `cardOne` - an object that contains `header` and `text` keys with values that are strings.
|
|
1166
|
+
- `cardTwo` - an object that contains `header` and `text` and `cta`. `header` has a value of a string. `text` has a value of a string. `cta` has a value of an object with key `url` with value of a string and key `text` with value of a string.
|
|
1167
|
+
- `type` **(required)** - required to render the correct listFeat. ListFeat1 must be `list_feat_1`
|
|
1168
|
+
- `sort` - boolean indicating whether or not cards should be sorted alphabetically by header
|
|
1169
|
+
- `motion` - boolean used to indicate whether or not motion should be used
|
|
1170
|
+
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
1171
|
+
|
|
1172
|
+
###### Example -
|
|
1173
|
+
|
|
1174
|
+
```
|
|
1175
|
+
const content = {
|
|
1176
|
+
sort: true,
|
|
1177
|
+
header: "Hello everyone! This is a header. Enjoy!",
|
|
1178
|
+
subheader: "This is truly wonderful.",
|
|
1179
|
+
type: "list_feat_1",
|
|
1180
|
+
image: { src: "https://fpoimg.com/500x500", alt: "placeholder" },
|
|
1181
|
+
cardOne: {
|
|
1182
|
+
header: "I am Card One Header",
|
|
1183
|
+
text:
|
|
1184
|
+
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex",
|
|
1185
|
+
cta: { url: "/#", text: "Click me!" }
|
|
1186
|
+
},
|
|
1187
|
+
cardTwo: {
|
|
1188
|
+
header: "I am Card Two Header",
|
|
1189
|
+
text:
|
|
1190
|
+
"The purpose of lorem ipsum is to create a natural looking block of text (sentence, paragraph, page, etc.) that doesn't distract from the layout. A practice not without controversy, la",
|
|
1191
|
+
cta: { url: "/#", text: "I am a button!" }
|
|
1192
|
+
}
|
|
1193
|
+
};
|
|
1194
|
+
|
|
1195
|
+
return (
|
|
1196
|
+
<ListFeat content={content} />
|
|
1197
|
+
)
|
|
1198
|
+
```
|
|
1199
|
+
|
|
1200
|
+
#### ListFeat2
|
|
1201
|
+
|
|
1202
|
+
###### Props -
|
|
1203
|
+
|
|
1204
|
+
- `content` **(required)** - object containing text, headers, subheaders, and headShotdumplings
|
|
1205
|
+
- `headShotdumplings` - array containing objects. Each indice is an object with two keys. The first key is `content` which value is an object containing `header` and `image` keys. `header` is a string and `image` is an object with keys `url` (which value is a string) and key `altText` which value is a string. The second key of each indice is `filter` which value is a string.
|
|
1206
|
+
- `type` **(required)** - required to render the correct listFeat. ListFeat2 must be `list_feat_2`
|
|
1207
|
+
- `motion` - boolean used to indicate whether or not motion should be used
|
|
1208
|
+
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
1209
|
+
|
|
1210
|
+
###### Example -
|
|
1211
|
+
|
|
1212
|
+
```
|
|
1213
|
+
const content = {
|
|
1214
|
+
header: "Hello everyone! This is a header. Enjoy!",
|
|
1215
|
+
subheader: "This is truly wonderful.",
|
|
1216
|
+
type: "list_feat_2",
|
|
1217
|
+
headShotdumplings: [
|
|
1218
|
+
{
|
|
1219
|
+
content: {
|
|
1220
|
+
header: "Lorem Ipsum",
|
|
1221
|
+
image: { url: "https://fpoimg.com/150x150", altText: "FPO Image" }
|
|
1222
|
+
},
|
|
1223
|
+
filter: "default"
|
|
1224
|
+
},
|
|
1225
|
+
{
|
|
1226
|
+
content: {
|
|
1227
|
+
header: "Nemo enim ipsam",
|
|
1228
|
+
image: { url: "https://fpoimg.com/150x150", altText: "FPO Image" }
|
|
1229
|
+
},
|
|
1230
|
+
filter: "default"
|
|
1231
|
+
},
|
|
1232
|
+
{
|
|
1233
|
+
content: {
|
|
1234
|
+
header: "Sed ut perspiciatis",
|
|
1235
|
+
image: { url: "https://fpoimg.com/150x150", altText: "FPO Image" }
|
|
1236
|
+
},
|
|
1237
|
+
filter: "default"
|
|
1238
|
+
}
|
|
1239
|
+
]
|
|
1240
|
+
};
|
|
1241
|
+
|
|
1242
|
+
export const motion = {
|
|
1243
|
+
motion: true,
|
|
1244
|
+
motionDistance: "75px",
|
|
1245
|
+
motionDirection: "bottom"
|
|
1246
|
+
};
|
|
1247
|
+
|
|
1248
|
+
return (
|
|
1249
|
+
<ListFeat content={content} motion={motion}/>
|
|
1250
|
+
)
|
|
1251
|
+
```
|
|
1252
|
+
|
|
1253
|
+
#### ListFeat3
|
|
1254
|
+
|
|
1255
|
+
###### Props -
|
|
1256
|
+
|
|
1257
|
+
- `content` **(required)** - object containing header, subHeader, type, cards
|
|
1258
|
+
- `header` - key that has a string as a value
|
|
1259
|
+
- `subHeader` - key that has a string as a value
|
|
1260
|
+
- `cards` - array containing objects. Each indice is an object with three keys. The first key is `image` which value is an object containing `url` and `altText` keys. `url` and `altText` both have strings as values. The second key of each indice is `header` which value is a string. The third key of each indice is `link` which value is an object of `url` and `text`. `url` and `text` both have strings as values.
|
|
1261
|
+
- `type` **(required)** - required to render the correct listFeat. ListFeat3 must be `list_feat_3`
|
|
1262
|
+
- `motion` - boolean used to indicate whether or not motion should be used
|
|
1263
|
+
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
1264
|
+
|
|
1265
|
+
###### Example -
|
|
1266
|
+
|
|
1267
|
+
```
|
|
1268
|
+
const content = {
|
|
1269
|
+
header: "Hello everyone! This is a header. Enjoy!",
|
|
1270
|
+
subheader: "This is truly wonderful.",
|
|
1271
|
+
type: "list_feat_3",
|
|
1272
|
+
cards: [
|
|
1273
|
+
{
|
|
1274
|
+
image: { url: "https://fpoimg.com/400x300", altText: "FPO Image" },
|
|
1275
|
+
header: "Here is a title! Woooo",
|
|
1276
|
+
link: {
|
|
1277
|
+
url: "/#",
|
|
1278
|
+
text: "Link"
|
|
1279
|
+
},
|
|
1280
|
+
text:
|
|
1281
|
+
"Ut in amet id proident commodo officia cillum. Aliqua id ex culpa labore duis minim fugiat proident ad deserunt qui."
|
|
1282
|
+
},
|
|
1283
|
+
{
|
|
1284
|
+
image: { url: "https://fpoimg.com/400x300", altText: "FPO Image" },
|
|
1285
|
+
header: "Here is a title! Woooo",
|
|
1286
|
+
link: {
|
|
1287
|
+
url: "/#",
|
|
1288
|
+
text: "Link"
|
|
1289
|
+
},
|
|
1290
|
+
text:
|
|
1291
|
+
"It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout."
|
|
1292
|
+
},
|
|
1293
|
+
{
|
|
1294
|
+
image: { url: "https://fpoimg.com/400x300", altText: "FPO Image" },
|
|
1295
|
+
header: "Here is a title! Woooo",
|
|
1296
|
+
link: {
|
|
1297
|
+
url: "/#",
|
|
1298
|
+
text: "Link"
|
|
1299
|
+
},
|
|
1300
|
+
text:
|
|
1301
|
+
" Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book."
|
|
1302
|
+
}
|
|
1303
|
+
]
|
|
1304
|
+
};
|
|
1305
|
+
|
|
1306
|
+
const motion = {
|
|
1307
|
+
motion: true,
|
|
1308
|
+
motionDistance: "75px",
|
|
1309
|
+
motionDirection: "bottom"
|
|
1310
|
+
};
|
|
1311
|
+
|
|
1312
|
+
return (
|
|
1313
|
+
<ListFeat content={content} motion={motion}/>
|
|
1314
|
+
)
|
|
1315
|
+
```
|
|
1316
|
+
|
|
1317
|
+
#### ListFeat4
|
|
1318
|
+
|
|
1319
|
+
###### Props -
|
|
1320
|
+
|
|
1321
|
+
- `content` **(required)** - object containing header, subHeader, type, cards
|
|
1322
|
+
- `header` - key that has a string as a value
|
|
1323
|
+
- `subHeader` - key that has a string as a value
|
|
1324
|
+
- `dumplings` - array containing objects. Each indice is an object with four keys. The first key of each indice is `header` which value is a string. The second key of each indice is `link` which value is an object of `url`. `url` has a string as a value. The third key of each indice is `size` which has a string as a value. The fourth key of each indice is `icon` which value is an object containing `type` and `size` keys. `type` and `size` both have strings as values.
|
|
1325
|
+
- `type` **(required)** - required to render the correct listFeat. ListFeat4 must be `list_feat_3`
|
|
1326
|
+
- `motion` - boolean used to indicate whether or not motion should be used
|
|
1327
|
+
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
1328
|
+
|
|
1329
|
+
###### Example -
|
|
1330
|
+
|
|
1331
|
+
```
|
|
1332
|
+
const content = {
|
|
1333
|
+
header: "Hello everyone! This is a header. Enjoy!",
|
|
1334
|
+
subheader: "This is truly wonderful.",
|
|
1335
|
+
type: "list_feat_4",
|
|
1336
|
+
dumplings: [
|
|
1337
|
+
{
|
|
1338
|
+
header: "Lorem Ipsum",
|
|
1339
|
+
link: { url: "/#" },
|
|
1340
|
+
size: "small",
|
|
1341
|
+
icon: { type: "enclosed-check-dark-48px", size: "48px" }
|
|
1342
|
+
},
|
|
1343
|
+
{
|
|
1344
|
+
header: "Nemo enim ipsam voluptatem",
|
|
1345
|
+
link: { url: "/#" },
|
|
1346
|
+
size: "small",
|
|
1347
|
+
icon: { type: "enclosed-check-dark-48px", size: "48px" }
|
|
1348
|
+
},
|
|
1349
|
+
{
|
|
1350
|
+
header: "Sed ut perspiciatis, unde omnis",
|
|
1351
|
+
link: { url: "/#" },
|
|
1352
|
+
size: "small",
|
|
1353
|
+
icon: { type: "enclosed-check-dark-48px", size: "48px" }
|
|
1354
|
+
}
|
|
1355
|
+
]
|
|
1356
|
+
};
|
|
1357
|
+
|
|
1358
|
+
const motion = {
|
|
1359
|
+
motion: true,
|
|
1360
|
+
motionDistance: "75px",
|
|
1361
|
+
motionDirection: "bottom"
|
|
1362
|
+
};
|
|
1363
|
+
|
|
1364
|
+
return (
|
|
1365
|
+
<ListFeat content={content} motion={motion}/>
|
|
1366
|
+
)
|
|
1367
|
+
```
|
|
1368
|
+
|
|
1369
|
+
#### ListFeat5
|
|
1370
|
+
|
|
1371
|
+
###### Props -
|
|
1372
|
+
|
|
1373
|
+
- `content` **(required)** - object containing header, subHeader, type, cards
|
|
1374
|
+
- `header` - key that has a string as a value
|
|
1375
|
+
- `subHeader` - key that has a string as a value -`insertCardHTML` - key that is a boolean
|
|
1376
|
+
- `iconListItems` - array containing objects. Each indice is an object with two keys. The first key is `header` which has a string as a value. The second key is `text` which has a string as a value.
|
|
1377
|
+
- `type` **(required)** - required to render the correct listFeat. ListFeat5 must be `list_feat_3`
|
|
1378
|
+
- `motion` - boolean used to indicate whether or not motion should be used
|
|
1379
|
+
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
1380
|
+
|
|
1381
|
+
###### Example -
|
|
1382
|
+
|
|
1383
|
+
```
|
|
1384
|
+
const content = {
|
|
1385
|
+
header: "Hello everyone! This is a header. Enjoy!",
|
|
1386
|
+
subheader: "This is truly wonderful.",
|
|
1387
|
+
type: "list_feat_5",
|
|
1388
|
+
insertCardHTML: true,
|
|
1389
|
+
iconListItems: [
|
|
1390
|
+
{
|
|
1391
|
+
header: "Good design is innovative",
|
|
1392
|
+
text:
|
|
1393
|
+
"<p>Cupidatat ea in duis ullamco nostrud cupidatat quis aliqua ex labore occaecat sit.</p>"
|
|
1394
|
+
},
|
|
1395
|
+
{
|
|
1396
|
+
header: "Good design is innovative",
|
|
1397
|
+
text:
|
|
1398
|
+
"<p>Cupidatat ea in duis ullamco nostrud cupidatat quis aliqua ex labore occaecat sit.</p>"
|
|
1399
|
+
},
|
|
1400
|
+
{
|
|
1401
|
+
header: "Good design is innovative",
|
|
1402
|
+
text:
|
|
1403
|
+
"<p>Cupidatat ea in duis ullamco nostrud cupidatat quis aliqua ex labore occaecat sit.</p>"
|
|
1404
|
+
},
|
|
1405
|
+
{
|
|
1406
|
+
header: "Good design is innovative",
|
|
1407
|
+
text:
|
|
1408
|
+
"<p>Cupidatat ea in duis ullamco nostrud cupidatat quis aliqua ex labore occaecat sit.</p>"
|
|
1409
|
+
},
|
|
1410
|
+
{
|
|
1411
|
+
header: "Good design is innovative",
|
|
1412
|
+
text:
|
|
1413
|
+
"<p>Cupidatat ea in duis ullamco nostrud cupidatat quis aliqua ex labore occaecat sit.</p>"
|
|
1414
|
+
},
|
|
1415
|
+
{
|
|
1416
|
+
header: "Good design is innovative",
|
|
1417
|
+
text:
|
|
1418
|
+
"<p>Cupidatat ea in duis ullamco nostrud cupidatat quis aliqua ex labore occaecat sit.</p>"
|
|
1419
|
+
}
|
|
1420
|
+
]
|
|
1421
|
+
};
|
|
1422
|
+
|
|
1423
|
+
const motion = {
|
|
1424
|
+
motion: true,
|
|
1425
|
+
motionDistance: "75px",
|
|
1426
|
+
motionDirection: "bottom"
|
|
1427
|
+
};
|
|
1428
|
+
|
|
1429
|
+
return (
|
|
1430
|
+
<ListFeat content={content} motion={motion}/>
|
|
1431
|
+
)
|
|
1432
|
+
```
|
|
1433
|
+
|
|
1434
|
+
#### ListFeat6
|
|
1435
|
+
|
|
1436
|
+
###### Props -
|
|
1437
|
+
|
|
1438
|
+
- `content` **(required)** - object containing header, subHeader, type, cards
|
|
1439
|
+
- `header` - key that has a string as a value
|
|
1440
|
+
- `subHeader` - key that has a string as a value
|
|
1441
|
+
- `images` - key that has an object as a value. Object has `src` and `altText` keys which values are strings.
|
|
1442
|
+
- `list` - array containing strings in each indice. The strings of each indice will be rendered onto the component as html tags
|
|
1443
|
+
- `type` **(required)** - required to render the correct listFeat. ListFeat6 must be `list_feat_3`
|
|
1444
|
+
- `motion` - boolean used to indicate whether or not motion should be used
|
|
1445
|
+
- `theme` - string indicating the theme that styles the organism. Options are `theme-1`, `theme-2`, `theme-3`, `theme-4`, `theme-5`.
|
|
1446
|
+
|
|
1447
|
+
###### Example -
|
|
1448
|
+
|
|
1449
|
+
```
|
|
1450
|
+
const content = {
|
|
1451
|
+
header: "Hello everyone! This is a header. Enjoy!",
|
|
1452
|
+
subheader: "This is truly wonderful.",
|
|
1453
|
+
images: { src: "https://fpoimg.com/500x500", alt: "placeholder" },
|
|
1454
|
+
type: "list_feat_6",
|
|
1455
|
+
list: [
|
|
1456
|
+
"<h4>Viewer Edition</h4><p>Lorem ipsum dolor sit amet consectetur adipiscing elit</p><p>Donec sit amet arcu nibh. Donec vitae dolor nunc.</p><p>Mauris ut feugiat mauris eu volutpat arcu. Integer mollis neque dui ac auctor dui tincidunt eget.</p>",
|
|
1457
|
+
"<h4>Field Data Edition</h4>p>Lorem ipsum dolor sit amet consectetur adipiscing elit</p><p>Lorem ipsum dolor sit amet consectetur adipiscing elit</p>",
|
|
1458
|
+
"<h4>A list of great ideas:</h4><ul><li>Lorem ipsum dolor sit amet consectetur adipiscing elit</li><li>Donec sit amet arcu nibh Donec vitae dolor nunc.</li><li>Cras vel pharetra augue at sollicitudin velit. Vivamus dapibus quis nisi et vestibulum.</li><li>Mauris ut feugiat mauris eu volutpat arcu. Integer mollis neque dui ac auctor dui tincidunt eget.</li><ul>",
|
|
1459
|
+
"<h4>Here It Is: </h4><ul><li>Lorem ipsum dolor sit amet consectetur adipiscing elit</li><li>Donec sit amet arcu nibh Donec vitae dolor nunc.</li><li>Cras vel pharetra augue at sollicitudin velit. Vivamus dapibus quis nisi et vestibulum.</li><li>Mauris ut feugiat mauris eu volutpat arcu. Integer mollis neque dui ac auctor dui tincidunt eget.</li><li>It's not Latin, though it looks like it, and it actually says nothing,</li><ul>"
|
|
1460
|
+
]
|
|
1461
|
+
};
|
|
1462
|
+
|
|
1463
|
+
const motion = {
|
|
1464
|
+
motion: true,
|
|
1465
|
+
motionDistance: "75px",
|
|
1466
|
+
motionDirection: "bottom"
|
|
1467
|
+
};
|
|
1468
|
+
|
|
1469
|
+
return (
|
|
1470
|
+
<ListFeat content={content} motion={motion}/>
|
|
1471
|
+
)
|
|
1472
|
+
```
|
|
1473
|
+
|
|
1474
|
+
#### ListFeat7
|
|
1475
|
+
|
|
1476
|
+
###### Props -
|
|
1477
|
+
|
|
1478
|
+
- `header` **(required)** - string for generating header text
|
|
1479
|
+
- `subHeader` - string for generating sub-header text
|
|
1480
|
+
- `type` **(required)** - required to render the correct listFeat. ListFeat7 must be `list_feat_7`
|
|
1481
|
+
- `content` **(required)** - object containing images, ctas, text, variant, headers, subheaders, button, link, videos
|
|
1482
|
+
- `card` - an array containing the following objects:
|
|
1483
|
+
- `text` - string for generating body text
|
|
1484
|
+
- `ctas` - object for generating a `<CTASection>` component
|
|
1485
|
+
- `images` - object with keys `url` and `altText` with values as strings
|
|
1486
|
+
- `video` - object with keys `url` and `allowFullScreen`. `url` has a value as a string. `allowFullScreen` is a boolean
|
|
1487
|
+
- `uuid` - string used for rendering Vidyard video embeds
|
|
1488
|
+
- `vidyard` - boolean for indicating that a Vidyard component should be rendered
|
|
1489
|
+
- `thumbnail` - object with keys `url` and `altText` with values as strings, used for a thumbnail image in place of a video, while video is not playing
|
|
1490
|
+
- `link` - object with keys `url` and `text` with values as strings.
|
|
1491
|
+
- `motion` - boolean used to indicate whether or not motion should be used
|
|
1492
|
+
|
|
1493
|
+
###### Example -
|
|
1494
|
+
|
|
1495
|
+
```
|
|
1496
|
+
export const mockContent = {
|
|
1497
|
+
header: "Hello everyone! This is a header. Enjoy!",
|
|
1498
|
+
subheader: "This is truly wonderful.",
|
|
1499
|
+
type: "list_feat_7",
|
|
1500
|
+
cards: [
|
|
1501
|
+
{
|
|
1502
|
+
video: {
|
|
1503
|
+
url: "https://www.youtube.com/embed/UY7r0juBF8Y",
|
|
1504
|
+
allowFullScreen: "true"
|
|
1505
|
+
},
|
|
1506
|
+
thumbnail: {
|
|
1507
|
+
url: "https://fpoimg.com/2880x1920",
|
|
1508
|
+
altText: "fpo"
|
|
1509
|
+
},
|
|
1510
|
+
header: "Here is a title! Woooo",
|
|
1511
|
+
link: {
|
|
1512
|
+
url: "/#",
|
|
1513
|
+
text: "Link"
|
|
1514
|
+
},
|
|
1515
|
+
text:
|
|
1516
|
+
"Ut in amet id proident commodo officia cillum. Aliqua id ex culpa labore duis minim fugiat proident ad deserunt qui."
|
|
1517
|
+
},
|
|
1518
|
+
{
|
|
1519
|
+
video: {
|
|
1520
|
+
url: "https://www.youtube.com/watch?v=sBws8MSXN7A",
|
|
1521
|
+
allowFullScreen: "true"
|
|
1522
|
+
},
|
|
1523
|
+
thumbnail: {
|
|
1524
|
+
url: "https://fpoimg.com/2880x1920",
|
|
1525
|
+
altText: "fpo"
|
|
1526
|
+
},
|
|
1527
|
+
header: "This is a React Tutorial. Enjoy!",
|
|
1528
|
+
link: {
|
|
1529
|
+
url: "/#",
|
|
1530
|
+
text: "Link"
|
|
1531
|
+
},
|
|
1532
|
+
text:
|
|
1533
|
+
"Watch this and you'll be able to make beautiful applications using the wonderful framework of React, built by Facebook"
|
|
1534
|
+
},
|
|
1535
|
+
{
|
|
1536
|
+
image: { url: "https://fpoimg.com/400x225", altText: "FPO Image" },
|
|
1537
|
+
header: "Here is a title! Woooo",
|
|
1538
|
+
link: {
|
|
1539
|
+
url: "/#",
|
|
1540
|
+
text: "Link"
|
|
1541
|
+
},
|
|
1542
|
+
text:
|
|
1543
|
+
"It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout."
|
|
1544
|
+
},
|
|
1545
|
+
{
|
|
1546
|
+
header: "Here is a title! Woooo",
|
|
1547
|
+
subheader: "sub header! ",
|
|
1548
|
+
text:
|
|
1549
|
+
"It's difficult to find examples of lorem ipsum in use before Letraset made it popular as a dummy text in the 1960s, although McClintock says he remembers coming across the lorem ipsum passage in a book of old metal type samples. So far he hasn't relocated where he once saw the passage, but the popularity of Cicero in the 15th century supports the theory that the filler text has been used for centuries"
|
|
1550
|
+
},
|
|
1551
|
+
{
|
|
1552
|
+
image: { url: "https://fpoimg.com/400x225", altText: "FPO Image" },
|
|
1553
|
+
header: "Here is a title! Woooo",
|
|
1554
|
+
link: {
|
|
1555
|
+
url: "/#",
|
|
1556
|
+
text: "Link"
|
|
1557
|
+
},
|
|
1558
|
+
text:
|
|
1559
|
+
"It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout."
|
|
1560
|
+
}
|
|
1561
|
+
]
|
|
1562
|
+
};
|
|
1563
|
+
|
|
1564
|
+
export const motion = {
|
|
1565
|
+
motion: true,
|
|
1566
|
+
motionDistance: "75px",
|
|
1567
|
+
motionDirection: "bottom"
|
|
1568
|
+
};
|
|
1569
|
+
|
|
1570
|
+
return (
|
|
1571
|
+
<ListFeat content={content} motion={motion} />
|
|
1572
|
+
)
|
|
1573
|
+
```
|
|
1574
|
+
|
|
1575
|
+
#### EventCard
|
|
1576
|
+
|
|
1577
|
+
###### Props -
|
|
1578
|
+
|
|
1579
|
+
- `content` **(required)** - object used for delivering content strings to the EventCard
|
|
1580
|
+
- `date` - string that generates the dates of the event
|
|
1581
|
+
- `year` - string that generates the year of the event
|
|
1582
|
+
- `industry` - string that indicates which industry the event applies to (i.e 'construction')
|
|
1583
|
+
- `industryLabel` - a string to generate the label that preceedes the industry text
|
|
1584
|
+
- `name` - a string used to indicate the name of the event
|
|
1585
|
+
- `location` - a string used for indicating the location of the event, can also be used for event description
|
|
1586
|
+
- `link` - an object for generating the link that the card sends the user to
|
|
1587
|
+
- `url` - string that creates the `href` or `to` props depending on whether an `<a>` or React Router `<NavLink>` is generated
|
|
1588
|
+
- `images` - object for generating the 95px x 95px image
|
|
1589
|
+
- `url` - source of the image
|
|
1590
|
+
- `altText` - alt string for the image
|
|
1591
|
+
|
|
1592
|
+
###### Example -
|
|
1593
|
+
|
|
1594
|
+
```
|
|
1595
|
+
const date = "Nov 18 - Nov 19";
|
|
1596
|
+
const year = "2019";
|
|
1597
|
+
const image = { url: "http://fpoimg.com/95x95" };
|
|
1598
|
+
const industry = "Construction";
|
|
1599
|
+
const industryLabel = "Industry";
|
|
1600
|
+
const name = "Trimble Digital Construction Summit - The Bridge to BIM";
|
|
1601
|
+
const location = "Tivoli Hotel and Congress Center, Copenhagen";
|
|
1602
|
+
const content = {
|
|
1603
|
+
date,
|
|
1604
|
+
year,
|
|
1605
|
+
image,
|
|
1606
|
+
industry,
|
|
1607
|
+
industryLabel,
|
|
1608
|
+
name,
|
|
1609
|
+
location,
|
|
1610
|
+
link: { url: "/wut" }
|
|
1611
|
+
};
|
|
1612
|
+
|
|
1613
|
+
return (
|
|
1614
|
+
<div style={{ maxWidth: "1200px", margin: "auto", padding: "0 32px" }}>
|
|
1615
|
+
<EventCard content={content} />
|
|
1616
|
+
</div>
|
|
1617
|
+
)
|
|
1618
|
+
|
|
1619
|
+
```
|
|
1620
|
+
|
|
1621
|
+
#### SupportCard -
|
|
1622
|
+
|
|
1623
|
+
- `content` **(required)** - object used for delivering content strings to the SupportCard
|
|
1624
|
+
- `header` - string for generating header text
|
|
1625
|
+
- `headerLabel` - string that preceeds the header text with an added colon
|
|
1626
|
+
- `subHeader` - string for generating sub-header text
|
|
1627
|
+
- `subHeaderLabel` - string that preceeds the sub-header text with an added colon
|
|
1628
|
+
- `product` - product name that succeeds the sub-header
|
|
1629
|
+
- `sections` - array of objects with `value` and `format` strings for generating columns
|
|
1630
|
+
- -
|