foundry-component-library 0.2.37 → 0.2.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/Awards/index.tsx +3 -1
- package/lib/components/Footer/index.tsx +28 -8
- package/lib/components/Header/Menu.tsx +1 -1
- package/lib/components/HubsAccordion/Hub.tsx +26 -0
- package/lib/components/HubsAccordion/styles.module.scss +7 -1
- package/lib/components/TeamPhotos/index.tsx +3 -1
- package/lib/components/VideoTeaser/index.tsx +1 -0
- package/lib/components/VideoTeaser/styles.module.scss +15 -0
- package/lib/components/case/Content/FullWidthImage.tsx +2 -0
- package/lib/components/case/Content/ThreeColumns/Center.tsx +1 -0
- package/lib/components/case/Content/ThreeColumns/Left.tsx +1 -0
- package/lib/components/case/Content/ThreeColumns/Right.tsx +1 -0
- package/lib/components/case/Content/TwoColumns/Left.tsx +1 -0
- package/lib/components/case/Content/TwoColumns/Right.tsx +1 -0
- package/lib/components/case/Other/index.tsx +1 -0
- package/lib/components/case/Top/index.tsx +6 -1
- package/package.json +1 -1
|
@@ -71,7 +71,9 @@ const Awards = ({
|
|
|
71
71
|
return (
|
|
72
72
|
<div key={image.sourceUrl + i} className={styles.award}>
|
|
73
73
|
<div className={styles.image}>
|
|
74
|
-
{image &&
|
|
74
|
+
{image && (
|
|
75
|
+
<Image src={image.sourceUrl} alt="" fill unoptimized />
|
|
76
|
+
)}
|
|
75
77
|
</div>
|
|
76
78
|
{heading && <div className={styles.text}>{heading}</div>}
|
|
77
79
|
{text && <div className={styles.client}>{text}</div>}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import Container from "../Container";
|
|
2
3
|
import styles from "./styles.module.scss";
|
|
3
4
|
import { translate } from "../../utils";
|
|
4
5
|
import Logo from "../../assets/svg/footer-logo.svg";
|
|
5
6
|
import { NextLink } from "../../types";
|
|
7
|
+
import { usePathname } from "next/navigation";
|
|
6
8
|
|
|
7
9
|
function Footer({
|
|
8
10
|
details,
|
|
@@ -26,6 +28,12 @@ function Footer({
|
|
|
26
28
|
const { berlinEmail, zurichEmail, newyorkEmail } = details;
|
|
27
29
|
const year = new Date().getFullYear();
|
|
28
30
|
|
|
31
|
+
const path = usePathname();
|
|
32
|
+
const currentLang = path.startsWith("/de") ? "DE" : "EN";
|
|
33
|
+
|
|
34
|
+
const langPrefix =
|
|
35
|
+
currentLang === "EN" ? "" : `/${currentLang.toLowerCase()}`;
|
|
36
|
+
|
|
29
37
|
return (
|
|
30
38
|
<footer className={styles.footer}>
|
|
31
39
|
<Container>
|
|
@@ -69,22 +77,32 @@ function Footer({
|
|
|
69
77
|
<div className={styles.right}>
|
|
70
78
|
<ul className={styles.menu}>
|
|
71
79
|
<li className={styles.menuItem}>
|
|
72
|
-
<Link href=
|
|
80
|
+
<Link href={`${langPrefix}/hubs`}>
|
|
81
|
+
{translate("Service Hubs", lang)}
|
|
82
|
+
</Link>
|
|
73
83
|
</li>
|
|
74
84
|
<li className={styles.menuItem}>
|
|
75
|
-
<Link href=
|
|
85
|
+
<Link href={`${langPrefix}/about-us`}>
|
|
86
|
+
{translate("About Us", lang)}
|
|
87
|
+
</Link>
|
|
76
88
|
</li>
|
|
77
89
|
<li className={styles.menuItem}>
|
|
78
|
-
<Link href=
|
|
90
|
+
<Link href={`${langPrefix}/cases`}>
|
|
91
|
+
{translate("Case Studies", lang)}
|
|
92
|
+
</Link>
|
|
79
93
|
</li>
|
|
80
94
|
{/* <li className={styles.menuItem}>
|
|
81
95
|
<Link href="/team">Team & Careers</Link>
|
|
82
96
|
</li> */}
|
|
83
97
|
<li className={styles.menuItem}>
|
|
84
|
-
<Link href=
|
|
98
|
+
<Link href={`${langPrefix}/news`}>
|
|
99
|
+
{translate("News & Insights", lang)}
|
|
100
|
+
</Link>
|
|
85
101
|
</li>
|
|
86
102
|
<li className={styles.menuItem}>
|
|
87
|
-
<Link href=
|
|
103
|
+
<Link href={`${langPrefix}/contact`}>
|
|
104
|
+
{translate("Contact", lang)}
|
|
105
|
+
</Link>
|
|
88
106
|
</li>
|
|
89
107
|
</ul>
|
|
90
108
|
<div className={styles.social}>
|
|
@@ -114,9 +132,11 @@ function Footer({
|
|
|
114
132
|
<div className={styles.bottom}>
|
|
115
133
|
<div>FOUNDRY © {year}</div>
|
|
116
134
|
<div className={styles.bottomLinks}>
|
|
117
|
-
<Link href=
|
|
118
|
-
|
|
119
|
-
|
|
135
|
+
<Link href={`${langPrefix}/imprint`}>
|
|
136
|
+
{translate("Imprint", lang)}
|
|
137
|
+
</Link>
|
|
138
|
+
<Link href={`${langPrefix}/terms`}>{translate("Terms", lang)}</Link>
|
|
139
|
+
<Link href={`${langPrefix}/privacy-policy`}>
|
|
120
140
|
{translate("Privacy policy", lang)}
|
|
121
141
|
</Link>
|
|
122
142
|
</div>
|
|
@@ -7,6 +7,10 @@ import Arrow from "../../assets/svg/arrow.svg";
|
|
|
7
7
|
import useDrag from "../../hooks/useDrag";
|
|
8
8
|
import Plus from "./plus.svg";
|
|
9
9
|
import Minus from "./minus.svg";
|
|
10
|
+
import TileGlass from "../ServiceHubsTeaserEffects/TileGlass";
|
|
11
|
+
import TileFluid from "../ServiceHubsTeaserEffects/TileFluid";
|
|
12
|
+
import TileBalls from "../ServiceHubsTeaserEffects/TileBalls";
|
|
13
|
+
import TileRays from "../ServiceHubsTeaserEffects/TileRays";
|
|
10
14
|
|
|
11
15
|
const Hub = ({
|
|
12
16
|
hub,
|
|
@@ -38,9 +42,31 @@ const Hub = ({
|
|
|
38
42
|
}
|
|
39
43
|
}, [isActive, customFields]);
|
|
40
44
|
|
|
45
|
+
console.log(hub);
|
|
46
|
+
|
|
41
47
|
return (
|
|
42
48
|
<div className={`${styles.hub} ${isActive ? styles.active : ""}`}>
|
|
43
49
|
<div className={styles.top}>
|
|
50
|
+
<div className={styles.tile}>
|
|
51
|
+
<a href={hub.uri}>
|
|
52
|
+
{(hub.slug === "content-campaigning" ||
|
|
53
|
+
hub.slug === "strategie-positionierung") && <TileBalls />}
|
|
54
|
+
</a>
|
|
55
|
+
<a href={hub.uri}>
|
|
56
|
+
{(hub.slug === "social-media-performance" ||
|
|
57
|
+
hub.slug === "soziale-medien-leistung") && <TileRays />}
|
|
58
|
+
</a>
|
|
59
|
+
<a href={hub.uri}>
|
|
60
|
+
{(hub.slug === "branding-corporate-id" ||
|
|
61
|
+
hub.slug === "markenbildung-unternehmensidentitaet") && (
|
|
62
|
+
<TileFluid />
|
|
63
|
+
)}
|
|
64
|
+
</a>
|
|
65
|
+
<a href={hub.uri}>
|
|
66
|
+
{(hub.slug === "strategy-positioning" ||
|
|
67
|
+
hub.slug === "inhalte-kampagnen") && <TileGlass />}
|
|
68
|
+
</a>
|
|
69
|
+
</div>
|
|
44
70
|
<div className={styles.title}>{hub.title}</div>
|
|
45
71
|
<div className={styles.text}>{customFields.approach}</div>
|
|
46
72
|
<button className={styles.icon} onClick={() => setIsActive(!isActive)}>
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
padding: 64px 0;
|
|
44
44
|
display: flex;
|
|
45
45
|
justify-content: space-between;
|
|
46
|
+
gap: 30px;
|
|
46
47
|
|
|
47
48
|
@media #{$QUERY-sm} {
|
|
48
49
|
flex-wrap: wrap;
|
|
@@ -68,7 +69,7 @@
|
|
|
68
69
|
}
|
|
69
70
|
|
|
70
71
|
.text {
|
|
71
|
-
font-size:
|
|
72
|
+
font-size: 21px;
|
|
72
73
|
width: 600px;
|
|
73
74
|
font-family: $font-secondary;
|
|
74
75
|
|
|
@@ -271,3 +272,8 @@
|
|
|
271
272
|
flex-shrink: 0;
|
|
272
273
|
}
|
|
273
274
|
}
|
|
275
|
+
|
|
276
|
+
.tile {
|
|
277
|
+
width: 250px;
|
|
278
|
+
height: 250px;
|
|
279
|
+
}
|
|
@@ -10,9 +10,11 @@ import useDrag from "../../hooks/useDrag";
|
|
|
10
10
|
const TheamPhotos = ({
|
|
11
11
|
people,
|
|
12
12
|
Image,
|
|
13
|
+
lang,
|
|
13
14
|
}: {
|
|
14
15
|
people: Person[];
|
|
15
16
|
Image: NextImage;
|
|
17
|
+
lang?: "EN" | "DE";
|
|
16
18
|
}) => {
|
|
17
19
|
const sectionRef = useRef(null);
|
|
18
20
|
const { handleMouseDown, handleMouseMove, handleMouseUp, dragStyle } =
|
|
@@ -20,7 +22,7 @@ const TheamPhotos = ({
|
|
|
20
22
|
|
|
21
23
|
return (
|
|
22
24
|
<Container noMobilePadding>
|
|
23
|
-
<div className={styles.heading}>{translate("Our Lovely Team",
|
|
25
|
+
<div className={styles.heading}>{translate("Our Lovely Team", lang)}</div>
|
|
24
26
|
<div
|
|
25
27
|
ref={sectionRef}
|
|
26
28
|
className={styles.people}
|
|
@@ -56,6 +56,7 @@
|
|
|
56
56
|
top: 0;
|
|
57
57
|
left: 0;
|
|
58
58
|
background-color: $color-gray-light;
|
|
59
|
+
z-index: 2;
|
|
59
60
|
|
|
60
61
|
&:after {
|
|
61
62
|
content: "";
|
|
@@ -132,3 +133,17 @@
|
|
|
132
133
|
transform: translate(34.5%, 39.5%);
|
|
133
134
|
}
|
|
134
135
|
}
|
|
136
|
+
|
|
137
|
+
.overlayMobile {
|
|
138
|
+
position: absolute;
|
|
139
|
+
top: 0;
|
|
140
|
+
left: 0;
|
|
141
|
+
width: 100%;
|
|
142
|
+
height: 100%;
|
|
143
|
+
z-index: 2;
|
|
144
|
+
display: none;
|
|
145
|
+
|
|
146
|
+
@media #{$QUERY-sm} {
|
|
147
|
+
display: block;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
@@ -29,6 +29,7 @@ function FullWidthImage({
|
|
|
29
29
|
layout="intrinsic"
|
|
30
30
|
width={1252}
|
|
31
31
|
height={600}
|
|
32
|
+
unoptimized
|
|
32
33
|
/>
|
|
33
34
|
)}
|
|
34
35
|
</div>
|
|
@@ -44,6 +45,7 @@ function FullWidthImage({
|
|
|
44
45
|
layout="intrinsic"
|
|
45
46
|
width={1400}
|
|
46
47
|
height={600}
|
|
48
|
+
unoptimized
|
|
47
49
|
/>
|
|
48
50
|
)}
|
|
49
51
|
</div>
|
|
@@ -23,7 +23,12 @@ function Top({
|
|
|
23
23
|
<div className={styles.top}>
|
|
24
24
|
{data.case.mainImage && (
|
|
25
25
|
<div className={styles.mainImage}>
|
|
26
|
-
<Image
|
|
26
|
+
<Image
|
|
27
|
+
src={data.case.mainImage.sourceUrl}
|
|
28
|
+
alt={title}
|
|
29
|
+
fill
|
|
30
|
+
unoptimized
|
|
31
|
+
/>
|
|
27
32
|
</div>
|
|
28
33
|
)}
|
|
29
34
|
<Container>
|