foundry-component-library 0.1.12 → 0.1.14
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/lib/assets/svg/close.svg +3 -3
- package/lib/components/Awards/index.tsx +10 -2
- package/lib/components/Awards/styles.module.scss +0 -1
- package/lib/components/Capabilities/styles.module.scss +0 -1
- package/lib/components/CaseStudyTeaser/styles.module.scss +4 -2
- package/lib/components/ContactTeaser/styles.module.scss +1 -1
- package/lib/components/DoubleTiles/styles.module.scss +0 -1
- package/lib/components/Footer/styles.module.scss +12 -9
- package/lib/components/Header/index.tsx +1 -1
- package/lib/components/Header/styles.module.scss +4 -1
- package/lib/components/Hero/styles.module.scss +1 -0
- package/lib/components/HubsAccordion/Hub.tsx +4 -2
- package/lib/components/HubsAccordion/minus.svg +4 -0
- package/lib/components/HubsAccordion/plus.svg +5 -0
- package/lib/components/HubsAccordion/styles.module.scss +4 -17
- package/lib/components/ImageTitle/styles.module.scss +0 -1
- package/lib/components/LargeText/styles.module.scss +0 -1
- package/lib/components/LogoSection/styles.module.scss +7 -1
- package/lib/components/Management/styles.module.scss +0 -1
- package/lib/components/OfficesTeaser/index.tsx +1 -1
- package/lib/components/OfficesTeaser/styles.module.scss +2 -1
- package/lib/components/PartnerNetwork/styles.module.scss +7 -0
- package/lib/components/ServiceHubsTeaser/Tile.tsx +14 -3
- package/lib/components/ServiceHubsTeaser/index.tsx +4 -0
- package/lib/components/ServiceHubsTeaser/styles.module.scss +25 -1
- package/lib/components/TeamBenefits/styles.module.scss +0 -1
- package/lib/components/TeamPhotos/styles.module.scss +0 -1
- package/lib/components/TextSection/styles.module.scss +0 -1
- package/lib/components/Tiles/Tile.tsx +30 -5
- package/lib/components/Tiles/index.tsx +3 -0
- package/lib/components/Tiles/styles.module.scss +39 -1
- package/lib/components/case/Content/Numbers/styles.module.scss +1 -1
- package/lib/components/case/Content/Results/styles.module.scss +0 -1
- package/lib/components/case/Content/ThreeColumns/Center.tsx +49 -0
- package/lib/components/case/Content/ThreeColumns/Left.tsx +48 -0
- package/lib/components/case/Content/ThreeColumns/Right.tsx +49 -0
- package/lib/components/case/Content/ThreeColumns/index.tsx +38 -0
- package/lib/components/case/Content/Video.tsx +8 -2
- package/lib/components/case/Content/index.tsx +10 -0
- package/lib/components/case/Content/styles.module.scss +9 -2
- package/lib/components/case/Top/styles.module.scss +1 -0
- package/lib/components/contact/Accounts/styles.module.scss +9 -2
- package/lib/components/contact/Contacts/styles.module.scss +0 -2
- package/lib/components/contact/Offices/styles.module.scss +0 -1
- package/lib/components/news/Posts/styles.module.scss +0 -1
- package/lib/components/single/Content/styles.module.scss +6 -1
- package/lib/components/single/Top/styles.module.scss +1 -0
- package/lib/queries/getAboutPage.ts +2 -0
- package/lib/queries/getCaseBySlug.ts +85 -0
- package/lib/queries/getHomePage.ts +6 -0
- package/lib/types/index.ts +33 -3
- package/package.json +1 -1
package/lib/assets/svg/close.svg
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<svg width="47" height="47" viewBox="0 0 47 47" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<path d="M38.1942 38.1923C46.3301 30.0564 46.3301 16.8655 38.1942 8.72955C30.0582 0.593625 16.8673 0.593625 8.73139 8.72955C0.595468 16.8655 0.595468 30.0564 8.73139 38.1923C16.8673 46.3282 30.0582 46.3282 38.1942 38.1923Z" stroke="#491B11" stroke-width="
|
|
3
|
-
<path d="M17.5703 17.5664L29.3554 29.3515" stroke="#491B11" stroke-width="
|
|
4
|
-
<path d="M17.5703 29.3516L29.3554 17.5665" stroke="#491B11" stroke-width="
|
|
2
|
+
<path d="M38.1942 38.1923C46.3301 30.0564 46.3301 16.8655 38.1942 8.72955C30.0582 0.593625 16.8673 0.593625 8.73139 8.72955C0.595468 16.8655 0.595468 30.0564 8.73139 38.1923C16.8673 46.3282 30.0582 46.3282 38.1942 38.1923Z" stroke="#491B11" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3
|
+
<path d="M17.5703 17.5664L29.3554 29.3515" stroke="#491B11" stroke-width="3" stroke-linecap="square" stroke-linejoin="round"/>
|
|
4
|
+
<path d="M17.5703 29.3516L29.3554 17.5665" stroke="#491B11" stroke-width="3" stroke-linecap="square" stroke-linejoin="round"/>
|
|
5
5
|
</svg>
|
|
@@ -5,6 +5,7 @@ import Container from "../Container";
|
|
|
5
5
|
import { NextImage } from "../../types";
|
|
6
6
|
import useDrag from "../../hooks/useDrag";
|
|
7
7
|
import WavyText from "../TextAnimations/WavyText";
|
|
8
|
+
import { motion } from "framer-motion";
|
|
8
9
|
|
|
9
10
|
const Awards = ({
|
|
10
11
|
heading,
|
|
@@ -28,7 +29,14 @@ const Awards = ({
|
|
|
28
29
|
if (!awards) return;
|
|
29
30
|
|
|
30
31
|
return (
|
|
31
|
-
<div
|
|
32
|
+
<motion.div
|
|
33
|
+
className={styles.awards}
|
|
34
|
+
initial={{ opacity: 0, y: -5 }}
|
|
35
|
+
animate={{ opacity: 1, y: 0 }}
|
|
36
|
+
transition={{
|
|
37
|
+
duration: 1,
|
|
38
|
+
}}
|
|
39
|
+
>
|
|
32
40
|
<Container>
|
|
33
41
|
{heading && <WavyText className={styles.heading} text={heading} />}
|
|
34
42
|
</Container>
|
|
@@ -59,7 +67,7 @@ const Awards = ({
|
|
|
59
67
|
})}
|
|
60
68
|
</div>
|
|
61
69
|
</Container>
|
|
62
|
-
</div>
|
|
70
|
+
</motion.div>
|
|
63
71
|
);
|
|
64
72
|
};
|
|
65
73
|
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
|
|
12
12
|
.heading {
|
|
13
13
|
font-size: 42px;
|
|
14
|
-
font-family: $font-secondary;
|
|
15
14
|
color: $color-brown;
|
|
16
15
|
margin-bottom: 64px;
|
|
17
16
|
|
|
@@ -51,6 +50,10 @@
|
|
|
51
50
|
|
|
52
51
|
&:hover {
|
|
53
52
|
width: 500px;
|
|
53
|
+
|
|
54
|
+
@media screen and (max-width: $screen-sm) {
|
|
55
|
+
width: 360px;
|
|
56
|
+
}
|
|
54
57
|
}
|
|
55
58
|
|
|
56
59
|
&:after {
|
|
@@ -83,7 +86,6 @@
|
|
|
83
86
|
|
|
84
87
|
.title {
|
|
85
88
|
font-size: 42px;
|
|
86
|
-
font-family: $font-secondary;
|
|
87
89
|
margin-bottom: 40px;
|
|
88
90
|
line-height: 1.2;
|
|
89
91
|
width: 300px;
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
z-index: 4;
|
|
9
9
|
|
|
10
10
|
@media #{$QUERY-sm} {
|
|
11
|
-
padding:
|
|
11
|
+
padding: 48px 0;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
|
|
@@ -40,14 +40,18 @@
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
margin-bottom: 48px;
|
|
43
|
+
.logo {
|
|
44
|
+
width: 412px;
|
|
45
|
+
max-width: 100%;
|
|
47
46
|
|
|
48
|
-
@media screen and (max-width: $screen-
|
|
49
|
-
|
|
47
|
+
@media screen and (max-width: $screen-sm) {
|
|
48
|
+
margin-bottom: 2rem;
|
|
50
49
|
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.logoText {
|
|
53
|
+
font-size: 24px;
|
|
54
|
+
margin-bottom: 48px;
|
|
51
55
|
|
|
52
56
|
@media screen and (max-width: $screen-sm) {
|
|
53
57
|
display: none;
|
|
@@ -89,8 +93,6 @@
|
|
|
89
93
|
}
|
|
90
94
|
|
|
91
95
|
.email {
|
|
92
|
-
font-size: 14px;
|
|
93
|
-
|
|
94
96
|
&:hover {
|
|
95
97
|
color: $color-pink;
|
|
96
98
|
}
|
|
@@ -128,6 +130,7 @@
|
|
|
128
130
|
|
|
129
131
|
@media #{$QUERY-sm} {
|
|
130
132
|
margin-bottom: 10px;
|
|
133
|
+
font-weight: 400;
|
|
131
134
|
}
|
|
132
135
|
|
|
133
136
|
a {
|
|
@@ -16,7 +16,7 @@ function Header({ Link }: { Link: NextLink }) {
|
|
|
16
16
|
<div className={styles.wrapper}>
|
|
17
17
|
<div className={styles.left}>
|
|
18
18
|
<Link href="/">
|
|
19
|
-
<video src="/logo.mp4" autoPlay muted
|
|
19
|
+
<video src="/logo.mp4" autoPlay muted />
|
|
20
20
|
Foundry
|
|
21
21
|
</Link>
|
|
22
22
|
</div>
|
|
@@ -21,6 +21,10 @@
|
|
|
21
21
|
font-size: 0;
|
|
22
22
|
margin-left: -50px;
|
|
23
23
|
|
|
24
|
+
@media #{$QUERY-sm} {
|
|
25
|
+
margin-left: -68px;
|
|
26
|
+
}
|
|
27
|
+
|
|
24
28
|
video {
|
|
25
29
|
width: 250px;
|
|
26
30
|
height: 47px;
|
|
@@ -131,7 +135,6 @@
|
|
|
131
135
|
}
|
|
132
136
|
|
|
133
137
|
.menuList {
|
|
134
|
-
font-family: $font-secondary;
|
|
135
138
|
color: $color-brown;
|
|
136
139
|
padding-top: 20px;
|
|
137
140
|
}
|
|
@@ -4,6 +4,8 @@ import { NextImage, NextLink, type Hub } from "../../types";
|
|
|
4
4
|
import styles from "./styles.module.scss";
|
|
5
5
|
import Arrow from "../../assets/svg/arrow.svg";
|
|
6
6
|
import useDrag from "../../hooks/useDrag";
|
|
7
|
+
import Plus from "./plus.svg";
|
|
8
|
+
import Minus from "./minus.svg";
|
|
7
9
|
|
|
8
10
|
const Hub = ({
|
|
9
11
|
hub,
|
|
@@ -46,8 +48,8 @@ const Hub = ({
|
|
|
46
48
|
}
|
|
47
49
|
}}
|
|
48
50
|
>
|
|
49
|
-
{isActive && <
|
|
50
|
-
{!isActive && <
|
|
51
|
+
{isActive && <Minus />}
|
|
52
|
+
{!isActive && <Plus />}
|
|
51
53
|
</button>
|
|
52
54
|
</div>
|
|
53
55
|
<div className={styles.rows}>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg width="52" height="50" viewBox="0 0 52 50" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M25.9988 45.8327C37.609 45.8327 47.021 36.5053 47.021 24.9993C47.021 13.4934 37.609 4.16602 25.9988 4.16602C14.3885 4.16602 4.97656 13.4934 4.97656 24.9993C4.97656 36.5053 14.3885 45.8327 25.9988 45.8327Z" stroke="#491B11" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3
|
+
<path d="M17.5898 25H34.4076" stroke="#491B11" stroke-width="4" stroke-linecap="square" stroke-linejoin="round"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg width="52" height="50" viewBox="0 0 52 50" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M25.9988 45.8327C37.609 45.8327 47.021 36.5053 47.021 24.9993C47.021 13.4934 37.609 4.16602 25.9988 4.16602C14.3885 4.16602 4.97656 13.4934 4.97656 24.9993C4.97656 36.5053 14.3885 45.8327 25.9988 45.8327Z" stroke="#491B11" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3
|
+
<path d="M26 16.666V33.3327" stroke="#491B11" stroke-width="4" stroke-linecap="square" stroke-linejoin="round"/>
|
|
4
|
+
<path d="M17.5898 25H34.4076" stroke="#491B11" stroke-width="4" stroke-linecap="square" stroke-linejoin="round"/>
|
|
5
|
+
</svg>
|
|
@@ -16,10 +16,6 @@
|
|
|
16
16
|
.rows {
|
|
17
17
|
display: block;
|
|
18
18
|
}
|
|
19
|
-
|
|
20
|
-
.icon span {
|
|
21
|
-
top: -2px;
|
|
22
|
-
}
|
|
23
19
|
}
|
|
24
20
|
|
|
25
21
|
&:before {
|
|
@@ -58,7 +54,6 @@
|
|
|
58
54
|
|
|
59
55
|
.title {
|
|
60
56
|
font-size: 42px;
|
|
61
|
-
font-family: $font-secondary;
|
|
62
57
|
width: 360px;
|
|
63
58
|
|
|
64
59
|
@media #{$QUERY-md} {
|
|
@@ -89,19 +84,15 @@
|
|
|
89
84
|
}
|
|
90
85
|
|
|
91
86
|
.icon {
|
|
92
|
-
width:
|
|
93
|
-
height:
|
|
94
|
-
border-radius: 50%;
|
|
95
|
-
border: solid 2px $color-brown;
|
|
87
|
+
width: 52px;
|
|
88
|
+
height: 50px;
|
|
96
89
|
display: flex;
|
|
97
90
|
align-items: center;
|
|
98
91
|
justify-content: center;
|
|
99
|
-
font-size: 32px;
|
|
100
|
-
line-height: 10px;
|
|
101
|
-
background-color: transparent;
|
|
102
92
|
cursor: pointer;
|
|
103
|
-
color: $color-brown;
|
|
104
93
|
flex-shrink: 0;
|
|
94
|
+
background-color: transparent;
|
|
95
|
+
border: none;
|
|
105
96
|
|
|
106
97
|
@media #{$QUERY-sm} {
|
|
107
98
|
width: 24px;
|
|
@@ -110,10 +101,6 @@
|
|
|
110
101
|
position: relative;
|
|
111
102
|
top: 8px;
|
|
112
103
|
}
|
|
113
|
-
|
|
114
|
-
span {
|
|
115
|
-
position: relative;
|
|
116
|
-
}
|
|
117
104
|
}
|
|
118
105
|
|
|
119
106
|
.rows {
|
|
@@ -15,13 +15,19 @@
|
|
|
15
15
|
.dropdown {
|
|
16
16
|
position: relative;
|
|
17
17
|
width: 150px;
|
|
18
|
+
transition: width 0.3s;
|
|
18
19
|
|
|
19
20
|
@media #{$QUERY-sm} {
|
|
20
|
-
width: 132px;
|
|
21
|
+
width: 132px !important;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&:hover {
|
|
25
|
+
width: 200px;
|
|
21
26
|
}
|
|
22
27
|
|
|
23
28
|
&.active {
|
|
24
29
|
z-index: 3;
|
|
30
|
+
width: 200px;
|
|
25
31
|
}
|
|
26
32
|
}
|
|
27
33
|
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
.officesTeaser {
|
|
4
4
|
display: flex;
|
|
5
5
|
padding: 64px 0;
|
|
6
|
+
overflow: hidden;
|
|
6
7
|
|
|
7
8
|
@media #{$QUERY-xl} {
|
|
8
9
|
display: block;
|
|
@@ -26,7 +27,7 @@
|
|
|
26
27
|
|
|
27
28
|
.heading {
|
|
28
29
|
font-size: 42px;
|
|
29
|
-
|
|
30
|
+
line-height: 1.1;
|
|
30
31
|
white-space: pre-wrap;
|
|
31
32
|
color: $color-brown;
|
|
32
33
|
|
|
@@ -31,6 +31,9 @@
|
|
|
31
31
|
|
|
32
32
|
@media #{$QUERY-sm} {
|
|
33
33
|
width: calc(50% - 12px);
|
|
34
|
+
display: flex;
|
|
35
|
+
align-items: center;
|
|
36
|
+
justify-content: center;
|
|
34
37
|
}
|
|
35
38
|
}
|
|
36
39
|
|
|
@@ -40,6 +43,10 @@
|
|
|
40
43
|
height: 40px;
|
|
41
44
|
max-width: 100%;
|
|
42
45
|
|
|
46
|
+
@media #{$QUERY-sm} {
|
|
47
|
+
width: 120px;
|
|
48
|
+
}
|
|
49
|
+
|
|
43
50
|
img {
|
|
44
51
|
object-fit: contain;
|
|
45
52
|
}
|
|
@@ -3,6 +3,7 @@ import styles from "./styles.module.scss";
|
|
|
3
3
|
import Plus from "../../assets/svg/plus.svg";
|
|
4
4
|
import { NextLink } from "../../types";
|
|
5
5
|
import { motion } from "framer-motion";
|
|
6
|
+
import Arrow from "../../assets/svg/arrow.svg";
|
|
6
7
|
|
|
7
8
|
const Tile = ({
|
|
8
9
|
text,
|
|
@@ -11,6 +12,7 @@ const Tile = ({
|
|
|
11
12
|
i,
|
|
12
13
|
onClick,
|
|
13
14
|
Link,
|
|
15
|
+
hoverText,
|
|
14
16
|
}: {
|
|
15
17
|
text: string;
|
|
16
18
|
background: "pink" | "yellow" | "brown" | "blue";
|
|
@@ -18,6 +20,7 @@ const Tile = ({
|
|
|
18
20
|
i: number;
|
|
19
21
|
onClick?: MouseEventHandler<HTMLAnchorElement>;
|
|
20
22
|
Link: NextLink;
|
|
23
|
+
hoverText: string;
|
|
21
24
|
}) => {
|
|
22
25
|
return (
|
|
23
26
|
<motion.div
|
|
@@ -42,9 +45,17 @@ const Tile = ({
|
|
|
42
45
|
draggable="false"
|
|
43
46
|
className={`${styles.tile} ${styles[background]}`}
|
|
44
47
|
>
|
|
45
|
-
<div className={styles.
|
|
46
|
-
|
|
47
|
-
<
|
|
48
|
+
<div className={styles.face}>
|
|
49
|
+
<div className={styles.text}>{text}</div>
|
|
50
|
+
<div>
|
|
51
|
+
<Plus />
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
<div className={styles.tails}>
|
|
55
|
+
<div className={styles.tailsText}>{hoverText}</div>
|
|
56
|
+
<div>
|
|
57
|
+
Learn More <Arrow />
|
|
58
|
+
</div>
|
|
48
59
|
</div>
|
|
49
60
|
</Link>
|
|
50
61
|
</motion.div>
|
|
@@ -21,6 +21,9 @@ const ServiceHubsTeaser = ({
|
|
|
21
21
|
id: string;
|
|
22
22
|
uri: string;
|
|
23
23
|
title: string;
|
|
24
|
+
customFieldsHub: {
|
|
25
|
+
heading: string;
|
|
26
|
+
};
|
|
24
27
|
}[];
|
|
25
28
|
Link: NextLink;
|
|
26
29
|
}) => {
|
|
@@ -53,6 +56,7 @@ const ServiceHubsTeaser = ({
|
|
|
53
56
|
<Tile
|
|
54
57
|
key={tile.id}
|
|
55
58
|
text={tile.title}
|
|
59
|
+
hoverText={tile.customFieldsHub.heading}
|
|
56
60
|
background={background}
|
|
57
61
|
href={tile.uri}
|
|
58
62
|
i={i}
|
|
@@ -61,7 +61,6 @@
|
|
|
61
61
|
background-color: $color-pink;
|
|
62
62
|
color: $color-brown;
|
|
63
63
|
font-size: 34px;
|
|
64
|
-
font-family: $font-secondary;
|
|
65
64
|
width: 100%;
|
|
66
65
|
height: 100%;
|
|
67
66
|
|
|
@@ -91,6 +90,16 @@
|
|
|
91
90
|
stroke: $color-white;
|
|
92
91
|
}
|
|
93
92
|
}
|
|
93
|
+
|
|
94
|
+
&:hover {
|
|
95
|
+
.face {
|
|
96
|
+
display: none;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.tails {
|
|
100
|
+
display: block;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
94
103
|
}
|
|
95
104
|
|
|
96
105
|
.text {
|
|
@@ -100,3 +109,18 @@
|
|
|
100
109
|
margin-bottom: 0;
|
|
101
110
|
}
|
|
102
111
|
}
|
|
112
|
+
|
|
113
|
+
.face {
|
|
114
|
+
display: block;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.tails {
|
|
118
|
+
text-align: left;
|
|
119
|
+
padding-left: 30px;
|
|
120
|
+
display: none;
|
|
121
|
+
font-size: 34px;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.tailsText {
|
|
125
|
+
margin-bottom: 30px;
|
|
126
|
+
}
|
|
@@ -1,20 +1,45 @@
|
|
|
1
1
|
import styles from "./styles.module.scss";
|
|
2
2
|
import Plus from "../../assets/svg/plus.svg";
|
|
3
|
+
import { motion } from "framer-motion";
|
|
3
4
|
|
|
4
5
|
const Tile = ({
|
|
5
6
|
text,
|
|
6
7
|
background,
|
|
8
|
+
hoverText,
|
|
9
|
+
i,
|
|
7
10
|
}: {
|
|
8
11
|
text: string;
|
|
12
|
+
hoverText: string;
|
|
9
13
|
background: "pink" | "yellow" | "brown";
|
|
14
|
+
i: number;
|
|
10
15
|
}) => {
|
|
11
16
|
return (
|
|
12
|
-
<div
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
<motion.div
|
|
18
|
+
className={`${styles.tile} ${styles[background]}`}
|
|
19
|
+
whileHover={{
|
|
20
|
+
scale: 1.08,
|
|
21
|
+
rotate: i % 2 === 0 ? -3 : 3,
|
|
22
|
+
boxShadow: "0px 10px 20px rgba(0,0,0,0.2)",
|
|
23
|
+
y: [0, Math.random() * 12 - 6, 0],
|
|
24
|
+
transition: {
|
|
25
|
+
y: {
|
|
26
|
+
duration: 2,
|
|
27
|
+
repeat: Infinity,
|
|
28
|
+
ease: "easeInOut",
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
}}
|
|
32
|
+
>
|
|
33
|
+
<div className={styles.face}>
|
|
34
|
+
<div className={styles.text}>{text}</div>
|
|
35
|
+
<div>
|
|
36
|
+
<Plus />
|
|
37
|
+
</div>
|
|
16
38
|
</div>
|
|
17
|
-
|
|
39
|
+
<div className={styles.tails}>
|
|
40
|
+
<div className={styles.tailsText}>{hoverText}</div>
|
|
41
|
+
</div>
|
|
42
|
+
</motion.div>
|
|
18
43
|
);
|
|
19
44
|
};
|
|
20
45
|
|
|
@@ -11,6 +11,7 @@ const Tiles = ({
|
|
|
11
11
|
}: {
|
|
12
12
|
tiles: {
|
|
13
13
|
heading?: string;
|
|
14
|
+
hoverText?: string;
|
|
14
15
|
}[];
|
|
15
16
|
}) => {
|
|
16
17
|
const sectionRef = useRef(null);
|
|
@@ -43,7 +44,9 @@ const Tiles = ({
|
|
|
43
44
|
<Tile
|
|
44
45
|
key={tile.heading}
|
|
45
46
|
text={tile.heading || ""}
|
|
47
|
+
hoverText={tile.hoverText || ""}
|
|
46
48
|
background={background}
|
|
49
|
+
i={i}
|
|
47
50
|
/>
|
|
48
51
|
);
|
|
49
52
|
})}
|
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
background-color: $color-pink;
|
|
21
21
|
color: $color-brown;
|
|
22
22
|
font-size: 42px;
|
|
23
|
-
font-family: $font-secondary;
|
|
24
23
|
flex-shrink: 0;
|
|
25
24
|
|
|
26
25
|
@media screen and (max-width: $screen-sm) {
|
|
@@ -45,6 +44,16 @@
|
|
|
45
44
|
stroke: $color-pink;
|
|
46
45
|
}
|
|
47
46
|
}
|
|
47
|
+
|
|
48
|
+
&:hover {
|
|
49
|
+
.face {
|
|
50
|
+
display: none;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.tails {
|
|
54
|
+
display: block;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
48
57
|
}
|
|
49
58
|
|
|
50
59
|
.text {
|
|
@@ -58,3 +67,32 @@
|
|
|
58
67
|
margin-bottom: 0;
|
|
59
68
|
}
|
|
60
69
|
}
|
|
70
|
+
|
|
71
|
+
.face {
|
|
72
|
+
display: block;
|
|
73
|
+
|
|
74
|
+
@media #{$QUERY-sm} {
|
|
75
|
+
font-size: 35px;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
svg {
|
|
79
|
+
@media #{$QUERY-sm} {
|
|
80
|
+
width: 42px;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.tails {
|
|
86
|
+
text-align: left;
|
|
87
|
+
padding: 30px;
|
|
88
|
+
display: none;
|
|
89
|
+
font-size: 34px;
|
|
90
|
+
|
|
91
|
+
@media screen and (max-width: $screen-sm) {
|
|
92
|
+
font-size: 25px;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.tailsText {
|
|
97
|
+
margin-bottom: 30px;
|
|
98
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import styles from "../styles.module.scss";
|
|
2
|
+
import Video from "../Video";
|
|
3
|
+
import { ColumnOption, NextImage } from "../../../../types";
|
|
4
|
+
|
|
5
|
+
const Center = ({
|
|
6
|
+
section,
|
|
7
|
+
Image,
|
|
8
|
+
}: {
|
|
9
|
+
section: ColumnOption;
|
|
10
|
+
Image: NextImage;
|
|
11
|
+
}) => {
|
|
12
|
+
if (!section) return null;
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<div className={styles.columnContent}>
|
|
16
|
+
{/* case */}
|
|
17
|
+
{section.fieldGroupName ===
|
|
18
|
+
"Case_Case_Content_Threecolumns_Center_Text" && (
|
|
19
|
+
<div
|
|
20
|
+
className={styles.text}
|
|
21
|
+
dangerouslySetInnerHTML={{ __html: section.text }}
|
|
22
|
+
/>
|
|
23
|
+
)}
|
|
24
|
+
{section.fieldGroupName ===
|
|
25
|
+
"Case_Case_Content_Threecolumns_Center_Image" &&
|
|
26
|
+
section.image && (
|
|
27
|
+
<>
|
|
28
|
+
<Image
|
|
29
|
+
className={styles.image}
|
|
30
|
+
src={section.image.sourceUrl}
|
|
31
|
+
alt={section.caption ? section.caption : "foundry digital agency"}
|
|
32
|
+
layout="intrinsic"
|
|
33
|
+
width={600}
|
|
34
|
+
height={600}
|
|
35
|
+
/>
|
|
36
|
+
{section.caption && (
|
|
37
|
+
<div className={styles.caption}>{section.caption}</div>
|
|
38
|
+
)}
|
|
39
|
+
</>
|
|
40
|
+
)}
|
|
41
|
+
{section.fieldGroupName ===
|
|
42
|
+
"Case_Case_Content_Threecolumns_Center_Video" && (
|
|
43
|
+
<Video section={section} defaultRatio="150%" />
|
|
44
|
+
)}
|
|
45
|
+
</div>
|
|
46
|
+
);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export default Center;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import styles from "../styles.module.scss";
|
|
2
|
+
import Video from "../Video";
|
|
3
|
+
import { ColumnOption, NextImage } from "../../../../types";
|
|
4
|
+
|
|
5
|
+
const Left = ({
|
|
6
|
+
section,
|
|
7
|
+
Image,
|
|
8
|
+
}: {
|
|
9
|
+
section: ColumnOption;
|
|
10
|
+
Image: NextImage;
|
|
11
|
+
}) => {
|
|
12
|
+
if (!section) return null;
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<div className={styles.columnContent}>
|
|
16
|
+
{/* case */}
|
|
17
|
+
{section.fieldGroupName ===
|
|
18
|
+
"Case_Case_Content_Threecolumns_Left_Text" && (
|
|
19
|
+
<div
|
|
20
|
+
className={styles.text}
|
|
21
|
+
dangerouslySetInnerHTML={{ __html: section.text }}
|
|
22
|
+
/>
|
|
23
|
+
)}
|
|
24
|
+
{section.fieldGroupName === "Case_Case_Content_Threecolumns_Left_Image" &&
|
|
25
|
+
section.image && (
|
|
26
|
+
<>
|
|
27
|
+
<Image
|
|
28
|
+
className={styles.image}
|
|
29
|
+
src={section.image.sourceUrl}
|
|
30
|
+
alt={section.caption ? section.caption : "foundry digital agency"}
|
|
31
|
+
layout="intrinsic"
|
|
32
|
+
width={600}
|
|
33
|
+
height={600}
|
|
34
|
+
/>
|
|
35
|
+
{section.caption && (
|
|
36
|
+
<div className={styles.caption}>{section.caption}</div>
|
|
37
|
+
)}
|
|
38
|
+
</>
|
|
39
|
+
)}
|
|
40
|
+
{section.fieldGroupName ===
|
|
41
|
+
"Case_Case_Content_Threecolumns_Left_Video" && (
|
|
42
|
+
<Video section={section} defaultRatio="150%" />
|
|
43
|
+
)}
|
|
44
|
+
</div>
|
|
45
|
+
);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export default Left;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import styles from "../styles.module.scss";
|
|
2
|
+
import Video from "../Video";
|
|
3
|
+
import { ColumnOption, NextImage } from "../../../../types";
|
|
4
|
+
|
|
5
|
+
const Right = ({
|
|
6
|
+
section,
|
|
7
|
+
Image,
|
|
8
|
+
}: {
|
|
9
|
+
section: ColumnOption;
|
|
10
|
+
Image: NextImage;
|
|
11
|
+
}) => {
|
|
12
|
+
if (!section) return null;
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<div className={styles.columnContent}>
|
|
16
|
+
{/* case */}
|
|
17
|
+
{section.fieldGroupName ===
|
|
18
|
+
"Case_Case_Content_Threecolumns_Right_Text" && (
|
|
19
|
+
<div
|
|
20
|
+
className={`${styles.text}`}
|
|
21
|
+
dangerouslySetInnerHTML={{ __html: section.text }}
|
|
22
|
+
/>
|
|
23
|
+
)}
|
|
24
|
+
{section.fieldGroupName ===
|
|
25
|
+
"Case_Case_Content_Threecolumns_Right_Image" &&
|
|
26
|
+
section.image && (
|
|
27
|
+
<>
|
|
28
|
+
<Image
|
|
29
|
+
className={styles.image}
|
|
30
|
+
src={section.image.sourceUrl}
|
|
31
|
+
alt={section.caption ? section.caption : "foundry digital agency"}
|
|
32
|
+
layout="intrinsic"
|
|
33
|
+
width={600}
|
|
34
|
+
height={600}
|
|
35
|
+
/>
|
|
36
|
+
{section.caption && (
|
|
37
|
+
<div className={styles.caption}>{section.caption}</div>
|
|
38
|
+
)}
|
|
39
|
+
</>
|
|
40
|
+
)}
|
|
41
|
+
{section.fieldGroupName ===
|
|
42
|
+
"Case_Case_Content_Threecolumns_Right_Video" && (
|
|
43
|
+
<Video section={section} defaultRatio="150%" />
|
|
44
|
+
)}
|
|
45
|
+
</div>
|
|
46
|
+
);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export default Right;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import styles from "../styles.module.scss";
|
|
2
|
+
import Container from "../../../Container";
|
|
3
|
+
import { type ThreeColumns, NextImage } from "../../../../types";
|
|
4
|
+
import Left from "./Left";
|
|
5
|
+
import Center from "./Center";
|
|
6
|
+
import Right from "./Right";
|
|
7
|
+
|
|
8
|
+
function ThreeColumns({
|
|
9
|
+
section,
|
|
10
|
+
Image,
|
|
11
|
+
}: {
|
|
12
|
+
section: ThreeColumns;
|
|
13
|
+
Image: NextImage;
|
|
14
|
+
}) {
|
|
15
|
+
return (
|
|
16
|
+
<section className={styles.section}>
|
|
17
|
+
<Container>
|
|
18
|
+
<div className={styles.threeColumns}>
|
|
19
|
+
<div className={styles.column}>
|
|
20
|
+
{section.left && <Left section={section.left[0]} Image={Image} />}
|
|
21
|
+
</div>
|
|
22
|
+
<div className={styles.column}>
|
|
23
|
+
{section.center && (
|
|
24
|
+
<Center section={section.center[0]} Image={Image} />
|
|
25
|
+
)}
|
|
26
|
+
</div>
|
|
27
|
+
<div className={styles.column}>
|
|
28
|
+
{section.right && (
|
|
29
|
+
<Right section={section.right[0]} Image={Image} />
|
|
30
|
+
)}
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
</Container>
|
|
34
|
+
</section>
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export default ThreeColumns;
|
|
@@ -5,7 +5,13 @@ import styles from "./styles.module.scss";
|
|
|
5
5
|
import { useOnScreen } from "../../../hooks/useOnScreen";
|
|
6
6
|
import { type Video } from "../../../types";
|
|
7
7
|
|
|
8
|
-
function Video({
|
|
8
|
+
function Video({
|
|
9
|
+
section,
|
|
10
|
+
defaultRatio = "56.25%",
|
|
11
|
+
}: {
|
|
12
|
+
section: Video;
|
|
13
|
+
defaultRatio?: string;
|
|
14
|
+
}) {
|
|
9
15
|
const sectionRef = useRef(null);
|
|
10
16
|
const onScreen = useOnScreen(sectionRef, "1000px");
|
|
11
17
|
const [playing, setPlaying] = useState(false);
|
|
@@ -50,7 +56,7 @@ function Video({ section }: { section: Video }) {
|
|
|
50
56
|
backgroundImage: section.poster
|
|
51
57
|
? `url(${section.poster.sourceUrl})`
|
|
52
58
|
: "none",
|
|
53
|
-
paddingTop: section.ratio ? section.ratio :
|
|
59
|
+
paddingTop: section.ratio ? section.ratio : defaultRatio,
|
|
54
60
|
}}
|
|
55
61
|
>
|
|
56
62
|
<div>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import FullWidthImage from "./FullWidthImage";
|
|
2
2
|
import CenterColumn from "./CenterColumn";
|
|
3
3
|
import TwoColumns from "./TwoColumns";
|
|
4
|
+
import ThreeColumns from "./ThreeColumns";
|
|
4
5
|
import Video from "./Video";
|
|
5
6
|
import Container from "../../Container";
|
|
6
7
|
import styles from "./styles.module.scss";
|
|
@@ -64,6 +65,15 @@ function CaseContent({
|
|
|
64
65
|
/>
|
|
65
66
|
);
|
|
66
67
|
}
|
|
68
|
+
if (section.fieldGroupName === "Case_Case_Content_Threecolumns") {
|
|
69
|
+
return (
|
|
70
|
+
<ThreeColumns
|
|
71
|
+
key={section.fieldGroupName + i}
|
|
72
|
+
section={section}
|
|
73
|
+
Image={Image}
|
|
74
|
+
/>
|
|
75
|
+
);
|
|
76
|
+
}
|
|
67
77
|
if (section.fieldGroupName === "Case_Case_Content_Video") {
|
|
68
78
|
return (
|
|
69
79
|
<section
|
|
@@ -47,7 +47,6 @@
|
|
|
47
47
|
h4,
|
|
48
48
|
h5,
|
|
49
49
|
h6 {
|
|
50
|
-
font-family: $font-secondary;
|
|
51
50
|
font-size: 42px;
|
|
52
51
|
font-weight: 400;
|
|
53
52
|
margin-bottom: 32px;
|
|
@@ -67,6 +66,15 @@
|
|
|
67
66
|
}
|
|
68
67
|
}
|
|
69
68
|
|
|
69
|
+
.threeColumns {
|
|
70
|
+
display: flex;
|
|
71
|
+
justify-content: space-between;
|
|
72
|
+
|
|
73
|
+
@media #{$QUERY-sm} {
|
|
74
|
+
display: block;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
70
78
|
.column {
|
|
71
79
|
width: 600px;
|
|
72
80
|
max-width: calc(50% - 20px);
|
|
@@ -94,7 +102,6 @@
|
|
|
94
102
|
max-width: 100%;
|
|
95
103
|
margin: 0 auto;
|
|
96
104
|
position: relative;
|
|
97
|
-
background-color: #eee;
|
|
98
105
|
background-position: center;
|
|
99
106
|
background-repeat: no-repeat;
|
|
100
107
|
|
|
@@ -14,10 +14,9 @@
|
|
|
14
14
|
font-size: 42px;
|
|
15
15
|
margin-bottom: 46px;
|
|
16
16
|
font-weight: 400;
|
|
17
|
-
font-family: $font-secondary;
|
|
18
17
|
|
|
19
18
|
@media #{$QUERY-sm} {
|
|
20
|
-
font-size:
|
|
19
|
+
font-size: 24px;
|
|
21
20
|
margin-bottom: 32px;
|
|
22
21
|
}
|
|
23
22
|
}
|
|
@@ -57,11 +56,19 @@
|
|
|
57
56
|
font-size: 20px;
|
|
58
57
|
font-weight: 500px;
|
|
59
58
|
margin-bottom: 16px;
|
|
59
|
+
|
|
60
|
+
@media #{$QUERY-sm} {
|
|
61
|
+
font-size: 18px;
|
|
62
|
+
}
|
|
60
63
|
}
|
|
61
64
|
|
|
62
65
|
.text {
|
|
63
66
|
font-size: 18px;
|
|
64
67
|
|
|
68
|
+
@media #{$QUERY-sm} {
|
|
69
|
+
font-size: 16px;
|
|
70
|
+
}
|
|
71
|
+
|
|
65
72
|
strong {
|
|
66
73
|
font-weight: bold;
|
|
67
74
|
}
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
|
|
13
13
|
.title {
|
|
14
14
|
font-size: 42px;
|
|
15
|
-
font-family: $font-secondary;
|
|
16
15
|
margin-bottom: 46px;
|
|
17
16
|
font-weight: 400;
|
|
18
17
|
|
|
@@ -60,7 +59,6 @@
|
|
|
60
59
|
|
|
61
60
|
.heading {
|
|
62
61
|
font-size: 34px;
|
|
63
|
-
font-family: $font-secondary;
|
|
64
62
|
font-weight: 400;
|
|
65
63
|
line-height: 1.2;
|
|
66
64
|
margin-bottom: 24px;
|
|
@@ -6,6 +6,12 @@
|
|
|
6
6
|
@media #{$QUERY-sm} {
|
|
7
7
|
padding-bottom: 90px;
|
|
8
8
|
}
|
|
9
|
+
|
|
10
|
+
h1,
|
|
11
|
+
h2,
|
|
12
|
+
h3 {
|
|
13
|
+
margin-bottom: 1rem;
|
|
14
|
+
}
|
|
9
15
|
}
|
|
10
16
|
|
|
11
17
|
.section {
|
|
@@ -124,7 +130,6 @@
|
|
|
124
130
|
max-width: 100%;
|
|
125
131
|
margin: 0 auto;
|
|
126
132
|
position: relative;
|
|
127
|
-
background-color: #eee;
|
|
128
133
|
background-position: center;
|
|
129
134
|
background-repeat: no-repeat;
|
|
130
135
|
|
|
@@ -19,6 +19,7 @@ type AboutPage = {
|
|
|
19
19
|
tilesHeading?: string;
|
|
20
20
|
tiles?: {
|
|
21
21
|
heading?: string;
|
|
22
|
+
hoverText?: string;
|
|
22
23
|
}[];
|
|
23
24
|
quotes?: {
|
|
24
25
|
name?: string;
|
|
@@ -119,6 +120,7 @@ export default async function getAboutPage({
|
|
|
119
120
|
tilesHeading
|
|
120
121
|
tiles {
|
|
121
122
|
heading
|
|
123
|
+
hoverText
|
|
122
124
|
}
|
|
123
125
|
quotes {
|
|
124
126
|
name
|
|
@@ -51,6 +51,22 @@ export default async function getCaseBySlug({
|
|
|
51
51
|
sourceUrl
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
+
relatedCases {
|
|
55
|
+
__typename
|
|
56
|
+
... on Case {
|
|
57
|
+
id
|
|
58
|
+
title
|
|
59
|
+
uri
|
|
60
|
+
case {
|
|
61
|
+
thumbnailImage{
|
|
62
|
+
sourceUrl
|
|
63
|
+
}
|
|
64
|
+
mainImage {
|
|
65
|
+
sourceUrl
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
54
70
|
content {
|
|
55
71
|
... on Case_Case_Content_Quote {
|
|
56
72
|
fieldGroupName
|
|
@@ -141,6 +157,75 @@ export default async function getCaseBySlug({
|
|
|
141
157
|
}
|
|
142
158
|
}
|
|
143
159
|
}
|
|
160
|
+
... on Case_Case_Content_Threecolumns {
|
|
161
|
+
fieldGroupName
|
|
162
|
+
left {
|
|
163
|
+
... on Case_Case_Content_Threecolumns_Left_Image {
|
|
164
|
+
fieldGroupName
|
|
165
|
+
image {
|
|
166
|
+
sourceUrl
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
... on Case_Case_Content_Threecolumns_Left_Text {
|
|
170
|
+
fieldGroupName
|
|
171
|
+
text
|
|
172
|
+
}
|
|
173
|
+
... on Case_Case_Content_Threecolumns_Left_Video {
|
|
174
|
+
fieldGroupName
|
|
175
|
+
autoplay
|
|
176
|
+
poster {
|
|
177
|
+
sourceUrl
|
|
178
|
+
}
|
|
179
|
+
caption
|
|
180
|
+
video
|
|
181
|
+
ratio
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
center {
|
|
185
|
+
... on Case_Case_Content_Threecolumns_Center_Image {
|
|
186
|
+
fieldGroupName
|
|
187
|
+
image {
|
|
188
|
+
sourceUrl
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
... on Case_Case_Content_Threecolumns_Center_Text {
|
|
192
|
+
fieldGroupName
|
|
193
|
+
text
|
|
194
|
+
}
|
|
195
|
+
... on Case_Case_Content_Threecolumns_Center_Video {
|
|
196
|
+
fieldGroupName
|
|
197
|
+
autoplay
|
|
198
|
+
poster {
|
|
199
|
+
sourceUrl
|
|
200
|
+
}
|
|
201
|
+
caption
|
|
202
|
+
video
|
|
203
|
+
ratio
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
right {
|
|
207
|
+
... on Case_Case_Content_Threecolumns_Right_Image {
|
|
208
|
+
fieldGroupName
|
|
209
|
+
image {
|
|
210
|
+
sourceUrl
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
... on Case_Case_Content_Threecolumns_Right_Text {
|
|
214
|
+
fieldGroupName
|
|
215
|
+
text
|
|
216
|
+
}
|
|
217
|
+
... on Case_Case_Content_Threecolumns_Right_Video {
|
|
218
|
+
fieldGroupName
|
|
219
|
+
autoplay
|
|
220
|
+
poster {
|
|
221
|
+
sourceUrl
|
|
222
|
+
}
|
|
223
|
+
caption
|
|
224
|
+
video
|
|
225
|
+
ratio
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
144
229
|
}
|
|
145
230
|
}
|
|
146
231
|
}
|
|
@@ -71,6 +71,9 @@ type HomePage = {
|
|
|
71
71
|
id: string;
|
|
72
72
|
title: string;
|
|
73
73
|
uri: string;
|
|
74
|
+
customFieldsHub: {
|
|
75
|
+
heading: string;
|
|
76
|
+
};
|
|
74
77
|
}[];
|
|
75
78
|
posts: PostPreview[];
|
|
76
79
|
contactPage: {
|
|
@@ -193,6 +196,9 @@ export default async function getHomePage({
|
|
|
193
196
|
id
|
|
194
197
|
title
|
|
195
198
|
uri
|
|
199
|
+
customFieldsHub {
|
|
200
|
+
heading
|
|
201
|
+
}
|
|
196
202
|
}
|
|
197
203
|
}
|
|
198
204
|
posts(first: 3, where: {language: ${language}}) {
|
package/lib/types/index.ts
CHANGED
|
@@ -34,7 +34,10 @@ type ColumnImage = {
|
|
|
34
34
|
| "Post_Customfieldsposts_Content_Twocolumns_Left_Image"
|
|
35
35
|
| "Post_Customfieldsposts_Content_Twocolumns_Right_Image"
|
|
36
36
|
| "Case_Case_Content_Twocolumns_Left_Image"
|
|
37
|
-
| "Case_Case_Content_Twocolumns_Right_Image"
|
|
37
|
+
| "Case_Case_Content_Twocolumns_Right_Image"
|
|
38
|
+
| "Case_Case_Content_Threecolumns_Left_Image"
|
|
39
|
+
| "Case_Case_Content_Threecolumns_Center_Image"
|
|
40
|
+
| "Case_Case_Content_Threecolumns_Right_Image";
|
|
38
41
|
image: { sourceUrl: string };
|
|
39
42
|
caption?: string;
|
|
40
43
|
};
|
|
@@ -44,7 +47,10 @@ type ColumnText = {
|
|
|
44
47
|
| "Post_Customfieldsposts_Content_Twocolumns_Left_Text"
|
|
45
48
|
| "Post_Customfieldsposts_Content_Twocolumns_Right_Text"
|
|
46
49
|
| "Case_Case_Content_Twocolumns_Left_Text"
|
|
47
|
-
| "Case_Case_Content_Twocolumns_Right_Text"
|
|
50
|
+
| "Case_Case_Content_Twocolumns_Right_Text"
|
|
51
|
+
| "Case_Case_Content_Threecolumns_Left_Text"
|
|
52
|
+
| "Case_Case_Content_Threecolumns_Center_Text"
|
|
53
|
+
| "Case_Case_Content_Threecolumns_Right_Text";
|
|
48
54
|
text: string;
|
|
49
55
|
};
|
|
50
56
|
|
|
@@ -74,6 +80,13 @@ export type TwoColumns = {
|
|
|
74
80
|
right?: ColumnOption[];
|
|
75
81
|
};
|
|
76
82
|
|
|
83
|
+
export type ThreeColumns = {
|
|
84
|
+
fieldGroupName: "Case_Case_Content_Threecolumns";
|
|
85
|
+
left?: ColumnOption[];
|
|
86
|
+
center?: ColumnOption[];
|
|
87
|
+
right?: ColumnOption[];
|
|
88
|
+
};
|
|
89
|
+
|
|
77
90
|
export type Video = {
|
|
78
91
|
fieldGroupName:
|
|
79
92
|
| "Post_Customfieldsposts_Content_Video"
|
|
@@ -81,7 +94,10 @@ export type Video = {
|
|
|
81
94
|
| "Post_Customfieldsposts_Content_Twocolumns_Left_Video"
|
|
82
95
|
| "Post_Customfieldsposts_Content_Twocolumns_Right_Video"
|
|
83
96
|
| "Case_Case_Content_Twocolumns_Left_Video"
|
|
84
|
-
| "Case_Case_Content_Twocolumns_Right_Video"
|
|
97
|
+
| "Case_Case_Content_Twocolumns_Right_Video"
|
|
98
|
+
| "Case_Case_Content_Threecolumns_Left_Video"
|
|
99
|
+
| "Case_Case_Content_Threecolumns_Center_Video"
|
|
100
|
+
| "Case_Case_Content_Threecolumns_Right_Video";
|
|
85
101
|
autoplay: boolean;
|
|
86
102
|
poster: { sourceUrl: string };
|
|
87
103
|
caption: string;
|
|
@@ -124,6 +140,7 @@ export type Content = (
|
|
|
124
140
|
| FullWidthImage
|
|
125
141
|
| CenterColumn
|
|
126
142
|
| TwoColumns
|
|
143
|
+
| ThreeColumns
|
|
127
144
|
| Video
|
|
128
145
|
| Results
|
|
129
146
|
| Numbers
|
|
@@ -227,6 +244,19 @@ export type Case = {
|
|
|
227
244
|
featured?: boolean;
|
|
228
245
|
service?: string[];
|
|
229
246
|
industry?: string[];
|
|
247
|
+
relatedCases?: {
|
|
248
|
+
id: string;
|
|
249
|
+
title: string;
|
|
250
|
+
uri: string;
|
|
251
|
+
case: {
|
|
252
|
+
thumbnailImage?: {
|
|
253
|
+
sourceUrl: string;
|
|
254
|
+
};
|
|
255
|
+
mainImage?: {
|
|
256
|
+
sourceUrl: string;
|
|
257
|
+
};
|
|
258
|
+
};
|
|
259
|
+
}[];
|
|
230
260
|
thumbnailVideo?: {
|
|
231
261
|
mediaItemUrl: string;
|
|
232
262
|
};
|