foundry-component-library 0.1.0 → 0.1.2

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.
@@ -54,7 +54,7 @@
54
54
  display: none;
55
55
 
56
56
  @media #{$QUERY-sm} {
57
- display: block;
57
+ display: inline-block;
58
58
  }
59
59
  }
60
60
  }
@@ -24,8 +24,6 @@ const Awards = ({
24
24
  const { handleMouseDown, handleMouseMove, handleMouseUp, dragStyle } =
25
25
  useDrag(sectionRef);
26
26
 
27
- console.log(awards);
28
-
29
27
  if (!awards) return;
30
28
 
31
29
  return (
@@ -49,7 +47,7 @@ const Awards = ({
49
47
  if (!image) return;
50
48
 
51
49
  return (
52
- <div key={heading || "" + i} className={styles.award}>
50
+ <div key={image.sourceUrl + i} className={styles.award}>
53
51
  <div className={styles.image}>
54
52
  {image && <Image src={image?.sourceUrl} alt="" fill />}
55
53
  </div>
@@ -8,6 +8,10 @@
8
8
 
9
9
  .items {
10
10
  padding-bottom: 64px;
11
+
12
+ @media #{$QUERY-sm} {
13
+ padding-bottom: 34px;
14
+ }
11
15
  }
12
16
 
13
17
  .item {
@@ -35,6 +39,14 @@
35
39
  .title {
36
40
  font-size: 34px;
37
41
  font-family: $font-secondary;
42
+
43
+ @media #{$QUERY-md} {
44
+ font-size: 18px;
45
+ }
46
+
47
+ @media #{$QUERY-sm} {
48
+ font-size: 28px;
49
+ }
38
50
  }
39
51
 
40
52
  .text {
@@ -62,6 +74,15 @@
62
74
  cursor: pointer;
63
75
  color: $color-brown;
64
76
  flex-shrink: 0;
77
+ // pointer-events: painted;
78
+
79
+ @media #{$QUERY-sm} {
80
+ width: 24px;
81
+ height: 24px;
82
+ font-size: 21px;
83
+ position: relative;
84
+ top: 8px;
85
+ }
65
86
 
66
87
  span {
67
88
  position: relative;
@@ -84,6 +105,10 @@
84
105
  @media #{$QUERY-md} {
85
106
  display: block;
86
107
  }
108
+
109
+ @media #{$QUERY-sm} {
110
+ padding: 0;
111
+ }
87
112
  }
88
113
 
89
114
  .right {
@@ -1,7 +1,10 @@
1
+ "use client";
2
+ import { useRef } from "react";
1
3
  import Container from "../Container";
2
4
  import TextSection from "../TextSection";
3
5
  import styles from "./styles.module.scss";
4
6
  import Tile from "./Tile";
7
+ import useDrag from "../../hooks/useDrag";
5
8
 
6
9
  const DoubleTiles = ({
7
10
  heading,
@@ -13,12 +16,26 @@ const DoubleTiles = ({
13
16
  text?: string;
14
17
  }[];
15
18
  }) => {
19
+ const sectionRef = useRef(null);
20
+ const { handleMouseDown, handleMouseMove, handleMouseUp, dragStyle } =
21
+ useDrag(sectionRef);
22
+
23
+ if (!tiles) return;
24
+
16
25
  return (
17
26
  <div className={styles.doubleTiles}>
18
27
  <TextSection caption="PROCESS" heading={heading} />
19
- <Container>
28
+ <Container noMobilePadding>
20
29
  <div className={styles.wrapper}>
21
- <div className={styles.tiles}>
30
+ <div
31
+ ref={sectionRef}
32
+ className={styles.tiles}
33
+ onMouseDown={handleMouseDown}
34
+ onMouseMove={handleMouseMove}
35
+ onMouseUp={handleMouseUp}
36
+ onMouseLeave={handleMouseUp}
37
+ style={dragStyle as React.CSSProperties}
38
+ >
22
39
  {tiles.map((tile, i) => {
23
40
  let background: "pink" | "yellow" | "brown" | "gray" = "pink";
24
41
  if (i % 3 === 1) background = "gray";
@@ -26,7 +43,7 @@ const DoubleTiles = ({
26
43
 
27
44
  return (
28
45
  <Tile
29
- key={tile.text}
46
+ key={background + i}
30
47
  heading={tile.heading || ""}
31
48
  text={tile.text || ""}
32
49
  background={background}
@@ -4,6 +4,11 @@
4
4
  padding-bottom: 64px;
5
5
  display: flex;
6
6
  gap: 20px;
7
+
8
+ @media #{$QUERY-sm} {
9
+ padding: 0 20px;
10
+ padding-bottom: 32px;
11
+ }
7
12
  }
8
13
 
9
14
  .tile {
@@ -63,13 +68,20 @@
63
68
  display: block;
64
69
  }
65
70
  }
71
+
72
+ svg {
73
+ @media #{$QUERY-sm} {
74
+ width: 36px;
75
+ }
76
+ }
66
77
  }
67
78
 
68
79
  .heading {
69
80
  font-size: 42px;
70
81
  margin-bottom: 42px;
71
82
 
72
- @media screen and (max-width: $screen-sm) {
83
+ @media #{$QUERY-sm} {
84
+ font-size: 28px;
73
85
  margin-bottom: 20px;
74
86
  }
75
87
 
@@ -80,6 +92,10 @@
80
92
 
81
93
  .text {
82
94
  font-size: 32px;
95
+
96
+ @media #{$QUERY-sm} {
97
+ font-size: 21px;
98
+ }
83
99
  }
84
100
 
85
101
  .sideTwo {
@@ -85,7 +85,7 @@
85
85
 
86
86
  .city {
87
87
  font-size: 16px;
88
- font-weight: 700;
88
+ font-weight: 500;
89
89
  }
90
90
 
91
91
  .email {
@@ -107,6 +107,7 @@
107
107
  }
108
108
 
109
109
  @media #{$QUERY-sm} {
110
+ width: 100%;
110
111
  display: block;
111
112
  }
112
113
  }
@@ -140,7 +141,9 @@
140
141
  font-size: 16px;
141
142
 
142
143
  @media #{$QUERY-sm} {
144
+ width: 100%;
143
145
  display: flex;
146
+ justify-content: space-between;
144
147
  gap: 24px;
145
148
  }
146
149
 
@@ -154,7 +157,7 @@
154
157
  }
155
158
 
156
159
  .socialHeading {
157
- font-weight: 700;
160
+ font-weight: 500;
158
161
  margin-bottom: 26px;
159
162
 
160
163
  @media #{$QUERY-sm} {
@@ -177,12 +180,20 @@
177
180
 
178
181
  .bottomLinks {
179
182
  display: flex;
183
+ justify-content: space-between;
180
184
  gap: 24px;
181
185
  text-transform: none;
182
186
  font-size: 16px;
187
+ width: 335px;
188
+ max-width: 100%;
189
+
190
+ @media screen and (max-width: 1000px) {
191
+ width: 270px;
192
+ }
183
193
 
184
194
  @media #{$QUERY-sm} {
185
195
  margin-top: 10px;
196
+ width: 100%;
186
197
  }
187
198
 
188
199
  a {
@@ -127,8 +127,7 @@
127
127
  height: 100%;
128
128
  max-height: 600px;
129
129
  margin: auto 0;
130
- padding-left: 60px;
131
- padding-right: 30px;
130
+ padding: 0 40px;
132
131
  }
133
132
 
134
133
  .menuList {
@@ -24,7 +24,6 @@ const Hero = ({
24
24
  Link: NextLink;
25
25
  Image: NextImage;
26
26
  }) => {
27
- console.log(image);
28
27
  if (!image) return;
29
28
 
30
29
  if (isFullWidth) {
@@ -79,6 +79,7 @@
79
79
 
80
80
  @media screen and (max-width: $screen-sm) {
81
81
  font-size: 54px;
82
+ margin-bottom: 10px;
82
83
  }
83
84
  }
84
85
 
@@ -11,7 +11,7 @@
11
11
 
12
12
  .image {
13
13
  @media screen and (max-width: $screen-sm) {
14
- height: 400px;
14
+ height: 300px;
15
15
  }
16
16
 
17
17
  img {
@@ -46,7 +46,7 @@
46
46
 
47
47
  .name {
48
48
  font-size: 18px;
49
- font-weight: 700;
49
+ font-weight: 500;
50
50
  margin-bottom: 3px;
51
51
  }
52
52
 
@@ -104,7 +104,7 @@
104
104
  .title {
105
105
  font-size: 20px;
106
106
  margin-bottom: 16px;
107
- font-weight: 700;
107
+ font-weight: 500;
108
108
  }
109
109
 
110
110
  .excerpt {
@@ -125,6 +125,7 @@
125
125
 
126
126
  path {
127
127
  stroke: $color-brown;
128
+ stroke-width: 2px;
128
129
  }
129
130
 
130
131
  &:hover {
@@ -98,7 +98,7 @@
98
98
 
99
99
  .name {
100
100
  font-size: 18px;
101
- font-weight: 700;
101
+ font-weight: 500;
102
102
  margin-bottom: 3px;
103
103
  white-space: pre-wrap;
104
104
 
@@ -6,7 +6,13 @@ import TextSection from "../TextSection";
6
6
  import Tile from "./Tile";
7
7
  import useDrag from "../../hooks/useDrag";
8
8
 
9
- const Tiles = ({ tiles }: { tiles: string[] }) => {
9
+ const Tiles = ({
10
+ tiles,
11
+ }: {
12
+ tiles: {
13
+ heading?: string;
14
+ }[];
15
+ }) => {
10
16
  const sectionRef = useRef(null);
11
17
  const { handleMouseDown, handleMouseMove, handleMouseUp, dragStyle } =
12
18
  useDrag(sectionRef);
@@ -33,7 +39,13 @@ const Tiles = ({ tiles }: { tiles: string[] }) => {
33
39
  if (i % 3 === 1) background = "yellow";
34
40
  if (i % 3 === 2) background = "brown";
35
41
 
36
- return <Tile key={tile} text={tile} background={background} />;
42
+ return (
43
+ <Tile
44
+ key={tile.heading}
45
+ text={tile.heading || ""}
46
+ background={background}
47
+ />
48
+ );
37
49
  })}
38
50
  </div>
39
51
  </Container>
@@ -3,8 +3,17 @@ import { useState, useRef, useEffect } from "react";
3
3
  import { useOnScreen } from "../../../hooks/useOnScreen";
4
4
  import ReactPlayer from "react-player/lazy";
5
5
  import styles from "./styles.module.scss";
6
+ import { NextImage } from "../../../types";
6
7
 
7
- const Video = ({ url }: { url: string }) => {
8
+ const Video = ({
9
+ url,
10
+ alt,
11
+ Image,
12
+ }: {
13
+ url: string;
14
+ alt?: string;
15
+ Image: NextImage;
16
+ }) => {
8
17
  const sectionRef = useRef(null);
9
18
  const onScreen = useOnScreen(sectionRef, "1000px");
10
19
  // const [playing, setPlaying] = useState(false);
@@ -27,6 +36,22 @@ const Video = ({ url }: { url: string }) => {
27
36
  // setPlaying(true);
28
37
  // }, [videoLoaded]);
29
38
 
39
+ const extension = url.split(".").pop();
40
+
41
+ if (extension === "gif") {
42
+ return (
43
+ <div className={styles.imageWrapper}>
44
+ <Image
45
+ className={styles.image}
46
+ src={url}
47
+ alt={alt || ""}
48
+ width={720}
49
+ height={490}
50
+ />
51
+ </div>
52
+ );
53
+ }
54
+
30
55
  return (
31
56
  <div className={styles.imageWrapper} ref={sectionRef}>
32
57
  {hasWindow && (
@@ -85,7 +85,11 @@ function Cases({
85
85
  <div key={item.id} className={styles.case}>
86
86
  <Link href={item.uri}>
87
87
  {thumbnailVideo && (
88
- <Video url={thumbnailVideo.mediaItemUrl} />
88
+ <Video
89
+ url={thumbnailVideo.mediaItemUrl}
90
+ alt={item.title}
91
+ Image={Image}
92
+ />
89
93
  )}
90
94
  {!thumbnailVideo && mainImage && (
91
95
  <div className={styles.imageWrapper}>
@@ -20,7 +20,7 @@
20
20
 
21
21
  .dropdown {
22
22
  position: relative;
23
- width: 110px;
23
+ width: 130px;
24
24
 
25
25
  &.active {
26
26
  z-index: 3;
@@ -4,6 +4,10 @@
4
4
  padding: 64px 0;
5
5
  background-color: $color-gray-light;
6
6
  color: $color-brown;
7
+
8
+ @media #{$QUERY-sm} {
9
+ padding: 32px 0;
10
+ }
7
11
  }
8
12
 
9
13
  .heading {
@@ -11,6 +15,11 @@
11
15
  margin-bottom: 46px;
12
16
  font-weight: 400;
13
17
  font-family: $font-secondary;
18
+
19
+ @media #{$QUERY-sm} {
20
+ font-size: 28px;
21
+ margin-bottom: 32px;
22
+ }
14
23
  }
15
24
 
16
25
  .wrapper {
@@ -31,6 +40,8 @@
31
40
  @media #{$QUERY-sm} {
32
41
  width: 100%;
33
42
  max-width: 100%;
43
+ padding: 16px 0;
44
+ margin-bottom: 32px;
34
45
  }
35
46
 
36
47
  &:last-child {
@@ -40,10 +51,6 @@
40
51
  margin-bottom: 0;
41
52
  }
42
53
  }
43
-
44
- @media #{$QUERY-sm} {
45
- margin-bottom: 64px;
46
- }
47
54
  }
48
55
 
49
56
  .subheading {
@@ -4,6 +4,10 @@
4
4
  padding: 64px 0;
5
5
  background-color: $color-yellow;
6
6
  color: $color-brown;
7
+
8
+ @media #{$QUERY-sm} {
9
+ padding: 32px 0;
10
+ }
7
11
  }
8
12
 
9
13
  .title {
@@ -11,6 +15,11 @@
11
15
  font-family: $font-secondary;
12
16
  margin-bottom: 46px;
13
17
  font-weight: 400;
18
+
19
+ @media #{$QUERY-sm} {
20
+ font-size: 28px;
21
+ margin-bottom: 24px;
22
+ }
14
23
  }
15
24
 
16
25
  .boxes {
@@ -37,8 +46,15 @@
37
46
  }
38
47
 
39
48
  @media #{$QUERY-sm} {
49
+ padding: 0;
40
50
  width: 100%;
41
- margin-bottom: 1rem;
51
+ margin-bottom: 32px;
52
+ }
53
+
54
+ &:last-child {
55
+ @media #{$QUERY-sm} {
56
+ margin-bottom: 0;
57
+ }
42
58
  }
43
59
  }
44
60
 
@@ -58,10 +74,18 @@
58
74
  .subheading {
59
75
  font-size: 18px;
60
76
  margin-bottom: 36px;
77
+
78
+ @media #{$QUERY-sm} {
79
+ margin-bottom: 16px;
80
+ }
81
+
61
82
  a {
62
83
  text-decoration: underline;
63
84
  }
64
85
  }
65
86
 
66
- .button-secondary {
87
+ .buttonSecondary {
88
+ path {
89
+ stroke-width: 2px;
90
+ }
67
91
  }
@@ -12,7 +12,7 @@ const index = ({
12
12
  }) => {
13
13
  return (
14
14
  <div className={styles.officesSection}>
15
- <Container>
15
+ <Container noMobilePadding>
16
16
  <Offices details={details} Image={Image} />
17
17
  </Container>
18
18
  </div>
@@ -4,6 +4,6 @@
4
4
  padding-bottom: 64px;
5
5
 
6
6
  @media #{$QUERY-sm} {
7
- padding-bottom: 0;
7
+ padding-bottom: 32px;
8
8
  }
9
9
  }
@@ -27,6 +27,10 @@
27
27
  height: 600px;
28
28
  position: relative;
29
29
 
30
+ @media #{$QUERY-sm} {
31
+ height: 230px;
32
+ }
33
+
30
34
  img {
31
35
  object-fit: cover;
32
36
  }
@@ -3,7 +3,28 @@ import client from "./client";
3
3
 
4
4
  type AboutPage = {
5
5
  aboutPage: {
6
- customFieldsAbout: {
6
+ customFieldsAboutBerlin: {
7
+ topImage?: {
8
+ sourceUrl: string;
9
+ };
10
+ topText?: string;
11
+ text1Caption?: string;
12
+ text1Heading?: string;
13
+ columnsHeading?: string;
14
+ columnsText?: string;
15
+ columnsImage?: {
16
+ sourceUrl: string;
17
+ };
18
+ tilesCaption?: string;
19
+ tilesHeading?: string;
20
+ tiles?: {
21
+ heading?: string;
22
+ }[];
23
+ quotes?: {
24
+ name?: string;
25
+ position?: string;
26
+ text?: string;
27
+ }[];
7
28
  partnersCaption?: string;
8
29
  partnersHeading?: string;
9
30
  partnersText?: string;
@@ -12,11 +33,6 @@ type AboutPage = {
12
33
  sourceUrl: string;
13
34
  };
14
35
  }[];
15
- quotes: {
16
- name: string;
17
- position: string;
18
- text: string;
19
- }[];
20
36
  };
21
37
  };
22
38
  homePage: {
@@ -80,7 +96,28 @@ export default async function getContactPage({
80
96
  const query = gql`
81
97
  query GetPageBySlug($slug: ID!) {
82
98
  aboutPage: page(id: $slug, idType: URI) {
83
- customFieldsAbout {
99
+ customFieldsAboutBerlin {
100
+ topImage {
101
+ sourceUrl
102
+ }
103
+ topText
104
+ text1Caption
105
+ text1Heading
106
+ columnsHeading
107
+ columnsText
108
+ columnsImage {
109
+ sourceUrl
110
+ }
111
+ tilesCaption
112
+ tilesHeading
113
+ tiles {
114
+ heading
115
+ }
116
+ quotes {
117
+ name
118
+ position
119
+ text
120
+ }
84
121
  partnersCaption
85
122
  partnersHeading
86
123
  partnersText
@@ -89,11 +126,6 @@ export default async function getContactPage({
89
126
  sourceUrl
90
127
  }
91
128
  }
92
- quotes {
93
- name
94
- position
95
- text
96
- }
97
129
  }
98
130
  }
99
131
  homePage: page(id: "${
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "foundry-component-library",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",