@hellobetterdigitalnz/selwynui 0.0.1-2 → 0.0.1-22
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/dist/Components/DataDisplay/Accordion/Accordion.d.ts +3 -0
- package/dist/Components/DataDisplay/Accordion/AccordionContext.d.ts +3 -0
- package/dist/Components/DataDisplay/Accordion/AccordionContextInterface.d.ts +7 -0
- package/dist/Components/DataDisplay/Accordion/AccordionItem.d.ts +3 -0
- package/dist/Components/DataDisplay/Accordion/AccordionItemProps.d.ts +18 -0
- package/dist/Components/DataDisplay/Accordion/AccordionProps.d.ts +11 -0
- package/dist/Components/DataDisplay/Accordion/AccordionProvider.d.ts +3 -0
- package/dist/Components/DataDisplay/Accordion/AccordionProviderInterface.d.ts +7 -0
- package/dist/Components/DataDisplay/Accordion/accordion-bg-design.d.ts +2 -0
- package/dist/Components/DataDisplay/DetailsCard/DetailsCardProps.d.ts +7 -1
- package/dist/Components/DataDisplay/ImageContent/ImageContentProps.d.ts +4 -4
- package/dist/Components/DataDisplay/Pathway/PathwayProps.d.ts +13 -4
- package/dist/Components/DataDisplay/PathwayBlock/PathwayBlock.d.ts +3 -0
- package/dist/Components/DataDisplay/PathwayBlock/PathwayBlockProps.d.ts +11 -0
- package/dist/Components/DataDisplay/PromoBannerBlock/PromoBannerBlockProps.d.ts +9 -9
- package/dist/Components/DataDisplay/PromoBannerBlock/brand-piller.d.ts +3 -0
- package/dist/Components/DataDisplay/TestimonyCard/TestimonyCard.d.ts +3 -0
- package/dist/Components/DataDisplay/TestimonyCard/TestimonyCardProps.d.ts +10 -0
- package/dist/Components/DataDisplay/index.d.ts +2 -0
- package/dist/Components/Form/Button/Button.d.ts +3 -0
- package/dist/Components/Form/Button/ButtonProps.d.ts +16 -5
- package/dist/Components/Layout/Header/HeaderProps.d.ts +1 -0
- package/dist/Components/Layout/Header/MegaMenu/MegaMenu.d.ts +2 -1
- package/dist/Components/Layout/Header/MegaMenu/MegaMenuProps.d.ts +28 -1
- package/dist/Components/Layout/Header/MobileNavigation/MobileNavigation.d.ts +3 -0
- package/dist/Components/Layout/Header/MobileNavigation/MobileNavigationItem.d.ts +3 -0
- package/dist/Components/Layout/Header/MobileNavigation/MobileNavigationItemProps.d.ts +4 -0
- package/dist/Components/Layout/Header/MobileNavigation/MobileNavigationProps.d.ts +7 -0
- package/dist/Components/Layout/Header/MobileNavigation/MobileSubNavigation/MobileSubNavigation.d.ts +3 -0
- package/dist/Components/Layout/Header/MobileNavigation/MobileSubNavigation/MobileSubNavigationItem.d.ts +3 -0
- package/dist/Components/Layout/Header/MobileNavigation/MobileSubNavigation/MobileSubNavigationItemProps.d.ts +4 -0
- package/dist/Components/Layout/Header/MobileNavigation/MobileSubNavigation/MobileSubNavigationProps.d.ts +7 -0
- package/dist/Components/Layout/Header/MobileNavigation/MobileWhatuOverlay.d.ts +2 -0
- package/dist/Components/Layout/HeroBanner/HeroBannerProps.d.ts +1 -1
- package/dist/Components/Layout/index.d.ts +7 -1
- package/dist/Components/Shared/Hook/useScrollFadeIn/useScrollFadeIn.d.ts +6 -0
- package/dist/Components/Shared/PillarIcon/PillarIcon.d.ts +3 -0
- package/dist/Components/Shared/PillarIcon/PillarIconsProps.d.ts +4 -0
- package/dist/Components/Shared/PillarLogo/PillarLogo.d.ts +6 -0
- package/dist/Components/Shared/ScrollFadeIn/ScrollFadeIn.d.ts +12 -0
- package/dist/Components/index.d.ts +5 -0
- package/dist/img/accordion-image.svg +9 -0
- package/dist/index.cjs.js +10 -10
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +1 -5
- package/dist/index.es.js +1452 -676
- package/dist/index.es.js.map +1 -1
- package/dist/selwynui.css +1 -1
- package/package.json +2 -1
- package/src/Components/DataDisplay/Accordion/Accordion.tsx +15 -17
- package/src/Components/DataDisplay/DetailsCard/DetailsCard.stories.tsx +7 -3
- package/src/Components/DataDisplay/DetailsCard/DetailsCard.tsx +11 -39
- package/src/Components/DataDisplay/DetailsCard/DetailsCardProps.tsx +7 -1
- package/src/Components/DataDisplay/DetailsCard/detailsCard.module.scss +10 -10
- package/src/Components/DataDisplay/ImageContent/ImageContent.stories.tsx +50 -12
- package/src/Components/DataDisplay/ImageContent/ImageContent.tsx +68 -21
- package/src/Components/DataDisplay/ImageContent/ImageContentProps.tsx +2 -1
- package/src/Components/DataDisplay/ImageContent/imageContent.module.scss +144 -46
- package/src/Components/DataDisplay/Pathway/Pathway.stories.tsx +50 -13
- package/src/Components/DataDisplay/Pathway/Pathway.tsx +15 -4
- package/src/Components/DataDisplay/Pathway/PathwayProps.tsx +13 -4
- package/src/Components/DataDisplay/PathwayBlock/PathwayBlock.tsx +0 -2
- package/src/Components/DataDisplay/PromoBannerBlock/PromoBanner.stories.tsx +1 -2
- package/src/Components/DataDisplay/PromoBannerBlock/PromoBannerBlock.tsx +1 -5
- package/src/Components/DataDisplay/PromoBannerBlock/promoBanner.module.scss +3 -2
- package/src/Components/DataDisplay/index.ts +5 -1
- package/src/Components/DataDisplay/slider.scss +2 -0
- package/src/Components/Form/Button/ButtonProps.tsx +1 -1
- package/src/Components/Form/Button/button.module.scss +0 -1
- package/src/Components/Layout/Footer/Footer.stories.tsx +1 -1
- package/src/Components/Layout/Header/Header.stories.tsx +34 -7
- package/src/Components/Layout/Header/Header.tsx +2 -2
- package/src/Components/Layout/Header/HeaderProps.tsx +1 -0
- package/src/Components/Layout/Header/HeaderRightItem.tsx +2 -2
- package/src/Components/Layout/Header/MegaMenu/MegaMenu.tsx +156 -83
- package/src/Components/Layout/Header/MegaMenu/MegaMenuProps.tsx +22 -9
- package/src/Components/Layout/Header/MegaMenu/megaMenu.module.scss +4 -2
- package/src/Components/Layout/Header/MobileNavigation/MobileNavigation.tsx +26 -0
- package/src/Components/Layout/Header/MobileNavigation/MobileNavigationItem.tsx +17 -0
- package/src/Components/Layout/Header/MobileNavigation/MobileNavigationItemProps.tsx +5 -0
- package/src/Components/Layout/Header/MobileNavigation/MobileNavigationProps.tsx +9 -0
- package/src/Components/Layout/Header/MobileNavigation/MobileSubNavigation/MobileSubNavigation.tsx +21 -0
- package/src/Components/Layout/Header/MobileNavigation/MobileSubNavigation/MobileSubNavigationItem.tsx +17 -0
- package/src/Components/Layout/Header/MobileNavigation/MobileSubNavigation/MobileSubNavigationItemProps.tsx +5 -0
- package/src/Components/Layout/Header/MobileNavigation/MobileSubNavigation/MobileSubNavigationProps.tsx +9 -0
- package/src/Components/Layout/Header/MobileNavigation/MobileWhatuOverlay.tsx +18 -0
- package/src/Components/Layout/Header/MobileNavigation/mobileNavigation.module.scss +62 -0
- package/src/Components/Layout/Header/header.module.scss +22 -3
- package/src/Components/Layout/Header/header.scss +15 -0
- package/src/Components/Layout/HeroBanner/HeroBanner.tsx +13 -3
- package/src/Components/Layout/HeroBanner/HeroBannerProps.tsx +1 -1
- package/src/Components/Layout/HeroBanner/heroBanner.module.scss +132 -24
- package/src/Components/Layout/index.ts +11 -3
- package/src/Components/Shared/Container/container.module.scss +3 -3
- package/src/Components/Shared/PillarIcon/PillarIcon.tsx +4 -4
- package/src/Components/index.ts +5 -0
- package/dist/index.es.d.ts +0 -2
- package/dist/tsconfig.app.tsbuildinfo +0 -1
|
@@ -1,98 +1,171 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { useState } from "react";
|
|
2
|
+
import MegaMenuProps, { MenuItem } from "./MegaMenuProps.tsx";
|
|
2
3
|
import PillarLogo from "../../../Shared/PillarLogo/PillarLogo.tsx";
|
|
3
4
|
import Button from "../../../Form/Button/Button.tsx";
|
|
4
5
|
import ArrowRight from "../../../Icons/Arrows/ArrowRight/ArrowRight.tsx";
|
|
5
|
-
import styles from "./megaMenu.module.scss"
|
|
6
|
+
import styles from "./megaMenu.module.scss";
|
|
6
7
|
import Container from "../../../Shared/Container/Container.tsx";
|
|
7
8
|
|
|
8
|
-
const MegaMenu = (props
|
|
9
|
-
|
|
9
|
+
const MegaMenu = (props: MegaMenuProps) => {
|
|
10
10
|
const {
|
|
11
|
-
pillar,
|
|
12
|
-
menu,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
pillar = "main",
|
|
12
|
+
menu = [],
|
|
13
|
+
defaultImg,
|
|
14
|
+
defaultBoldTitle,
|
|
15
|
+
defaultDescription,
|
|
16
|
+
defaultTitle,
|
|
17
|
+
defaultAction,
|
|
18
|
+
} = props;
|
|
18
19
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
</li>
|
|
46
|
-
<li>
|
|
47
|
-
<a href={''}>
|
|
48
|
-
Link
|
|
49
|
-
<ArrowRight type={'light'}/>
|
|
50
|
-
</a>
|
|
51
|
-
</li>
|
|
52
|
-
</ul>
|
|
53
|
-
</div>
|
|
54
|
-
<div className={styles.right}>
|
|
55
|
-
<div className={styles.preview}>
|
|
56
|
-
<div className={styles.previewWrapper}>
|
|
57
|
-
<div className={styles.previewImg}>
|
|
58
|
-
<img src={'https://images.pexels.com/photos/709143/pexels-photo-709143.jpeg'}/>
|
|
59
|
-
</div>
|
|
60
|
-
<div className={styles.content}>
|
|
61
|
-
<h5>
|
|
62
|
-
Spring gardens
|
|
63
|
-
<br/>
|
|
64
|
-
<span>in Selwyn</span>
|
|
65
|
-
</h5>
|
|
66
|
-
<p>
|
|
67
|
-
Visit Selwyn is for those who like to take the back roads, breathe mountain air, and find their own pace. Stay a little longer, explore deeper, and refuel with great kai and local stories along the way.
|
|
68
|
-
</p>
|
|
20
|
+
// ACTIVE ITEM ON HOVER
|
|
21
|
+
const [activeItem, setActiveItem] = useState<MenuItem | null>(null);
|
|
22
|
+
|
|
23
|
+
// Preview values (image, title, description)
|
|
24
|
+
const previewImg = activeItem?.imageUrl || defaultImg;
|
|
25
|
+
const previewTitle = activeItem?.title || defaultTitle;
|
|
26
|
+
const previewBoldTitle = activeItem?.boldTitle || defaultBoldTitle;
|
|
27
|
+
const previewDesc = activeItem?.description || defaultDescription;
|
|
28
|
+
|
|
29
|
+
// Action button (from hovered item or default)
|
|
30
|
+
const previewAction = activeItem?.action || defaultAction || {
|
|
31
|
+
label: "",
|
|
32
|
+
url: "",
|
|
33
|
+
target: "_self",
|
|
34
|
+
rel: "",
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
return (
|
|
38
|
+
<div className={`${styles.megaMenu} megaMenu ${pillar}`}>
|
|
39
|
+
<div className={`${styles.megaMenuHolder} megaMenuHolder`}>
|
|
40
|
+
<Container>
|
|
41
|
+
<div className={`${styles.megaMenuWrapper} megaMenuWrapper`}>
|
|
42
|
+
{/* LEFT */}
|
|
43
|
+
<div className={`${styles.left} left`}>
|
|
44
|
+
<div className={`${styles.pillarIcon} pillarIcon`}>
|
|
45
|
+
<PillarLogo brandPillar={pillar} brandFullLogo={true} />
|
|
69
46
|
</div>
|
|
70
|
-
|
|
71
|
-
|
|
47
|
+
|
|
48
|
+
<ul>
|
|
49
|
+
{menu.map((item, i) => (
|
|
50
|
+
<li key={i}>
|
|
51
|
+
<a
|
|
52
|
+
href={item.url || "#"}
|
|
53
|
+
target={item.target || "_self"}
|
|
54
|
+
onMouseEnter={() => setActiveItem(item)}
|
|
55
|
+
onMouseLeave={() => setActiveItem(null)}
|
|
56
|
+
>
|
|
57
|
+
{item.label}
|
|
58
|
+
<ArrowRight type={"light"} />
|
|
59
|
+
</a>
|
|
60
|
+
</li>
|
|
61
|
+
))}
|
|
62
|
+
</ul>
|
|
63
|
+
</div>
|
|
64
|
+
|
|
65
|
+
{/* RIGHT PREVIEW */}
|
|
66
|
+
<div className={styles.right}>
|
|
67
|
+
<div className={styles.preview}>
|
|
68
|
+
<div className={styles.previewWrapper}>
|
|
69
|
+
<div className={styles.previewImg}>
|
|
70
|
+
{previewImg && <img src={previewImg} alt="" />}
|
|
71
|
+
</div>
|
|
72
|
+
|
|
73
|
+
<div className={styles.content}>
|
|
74
|
+
<h5>
|
|
75
|
+
{previewTitle}
|
|
76
|
+
<br />
|
|
77
|
+
<span>{previewBoldTitle}</span>
|
|
78
|
+
</h5>
|
|
79
|
+
|
|
80
|
+
<p>{previewDesc}</p>
|
|
81
|
+
</div>
|
|
82
|
+
|
|
83
|
+
{ previewAction.label && <div className={styles.action}>
|
|
84
|
+
<Button
|
|
85
|
+
pillar={pillar}
|
|
86
|
+
label={previewAction.label}
|
|
87
|
+
linkable={true}
|
|
88
|
+
link={{
|
|
89
|
+
url: previewAction.url || "",
|
|
90
|
+
target: previewAction.target || "_self",
|
|
91
|
+
rel: previewAction.rel || "",
|
|
92
|
+
}}
|
|
93
|
+
secondaryIcon={<ArrowRight />}
|
|
94
|
+
/>
|
|
95
|
+
</div>
|
|
96
|
+
}
|
|
97
|
+
</div>
|
|
72
98
|
</div>
|
|
73
99
|
</div>
|
|
74
100
|
</div>
|
|
101
|
+
</Container>
|
|
102
|
+
|
|
103
|
+
{/* SVG BACKGROUND */}
|
|
104
|
+
<div className={styles.megaMenuSvg}>
|
|
105
|
+
<svg
|
|
106
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
107
|
+
width="741"
|
|
108
|
+
height="340"
|
|
109
|
+
viewBox="0 0 741 340"
|
|
110
|
+
fill="none"
|
|
111
|
+
>
|
|
112
|
+
<g opacity="0.1">
|
|
113
|
+
<path
|
|
114
|
+
opacity="0.5"
|
|
115
|
+
d="M0 113.209C68.1991 113.209 123.5 163.901 123.5 226.417H0V113.209Z"
|
|
116
|
+
fill="currentColor"
|
|
117
|
+
/>
|
|
118
|
+
<path
|
|
119
|
+
opacity="0.25"
|
|
120
|
+
d="M247 113.209C178.801 113.209 123.5 163.901 123.5 226.417H247V113.209Z"
|
|
121
|
+
fill="currentColor"
|
|
122
|
+
/>
|
|
123
|
+
<path
|
|
124
|
+
opacity="0.5"
|
|
125
|
+
d="M741 226.417C672.801 226.417 617.5 175.725 617.5 113.209H741V226.417Z"
|
|
126
|
+
fill="currentColor"
|
|
127
|
+
/>
|
|
128
|
+
<path
|
|
129
|
+
opacity="0.75"
|
|
130
|
+
d="M123.5 226.416C191.699 226.416 247 277.109 247 339.624H123.5V226.416Z"
|
|
131
|
+
fill="currentColor"
|
|
132
|
+
/>
|
|
133
|
+
<path
|
|
134
|
+
opacity="0.5"
|
|
135
|
+
d="M247 339.624C315.199 339.624 370.5 288.932 370.5 226.416H247V339.624Z"
|
|
136
|
+
fill="currentColor"
|
|
137
|
+
/>
|
|
138
|
+
<path
|
|
139
|
+
opacity="0.25"
|
|
140
|
+
d="M494 339.625C425.801 339.625 370.5 288.932 370.5 226.417H494V339.625Z"
|
|
141
|
+
fill="currentColor"
|
|
142
|
+
/>
|
|
143
|
+
<path
|
|
144
|
+
opacity="0.75"
|
|
145
|
+
d="M617.5 226.417C549.301 226.417 494 277.109 494 339.625H617.5V226.417Z"
|
|
146
|
+
fill="currentColor"
|
|
147
|
+
/>
|
|
148
|
+
<path
|
|
149
|
+
opacity="0.25"
|
|
150
|
+
d="M494 0.000656128C562.199 0.000656128 617.5 50.6932 617.5 113.209H494V0.000656128Z"
|
|
151
|
+
fill="currentColor"
|
|
152
|
+
/>
|
|
153
|
+
<path
|
|
154
|
+
opacity="0.5"
|
|
155
|
+
d="M370.5 226.417C438.699 226.417 494 175.725 494 113.209H370.5V226.417Z"
|
|
156
|
+
fill="currentColor"
|
|
157
|
+
/>
|
|
158
|
+
<path
|
|
159
|
+
opacity="0.75"
|
|
160
|
+
d="M247 113.208C315.199 113.208 370.5 62.5158 370.5 0H247V113.208Z"
|
|
161
|
+
fill="currentColor"
|
|
162
|
+
/>
|
|
163
|
+
</g>
|
|
164
|
+
</svg>
|
|
75
165
|
</div>
|
|
76
166
|
</div>
|
|
77
|
-
</Container>
|
|
78
|
-
<div className={styles.megaMenuSvg}>
|
|
79
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="741" height="340" viewBox="0 0 741 340" fill="none">
|
|
80
|
-
<g opacity="0.1">
|
|
81
|
-
<path opacity="0.5" d="M0 113.209C68.1991 113.209 123.5 163.901 123.5 226.417H0V113.209Z" fill="currentColor"/>
|
|
82
|
-
<path opacity="0.25" d="M247 113.209C178.801 113.209 123.5 163.901 123.5 226.417H247V113.209Z" fill="currentColor"/>
|
|
83
|
-
<path opacity="0.5" d="M741 226.417C672.801 226.417 617.5 175.725 617.5 113.209H741V226.417Z" fill="currentColor"/>
|
|
84
|
-
<path opacity="0.75" d="M123.5 226.416C191.699 226.416 247 277.109 247 339.624H123.5V226.416Z" fill="currentColor"/>
|
|
85
|
-
<path opacity="0.5" d="M247 339.624C315.199 339.624 370.5 288.932 370.5 226.416H247V339.624Z" fill="currentColor"/>
|
|
86
|
-
<path opacity="0.25" d="M494 339.625C425.801 339.625 370.5 288.932 370.5 226.417H494V339.625Z" fill="currentColor"/>
|
|
87
|
-
<path opacity="0.75" d="M617.5 226.417C549.301 226.417 494 277.109 494 339.625H617.5V226.417Z" fill="currentColor"/>
|
|
88
|
-
<path opacity="0.25" d="M494 0.000656128C562.199 0.000656128 617.5 50.6932 617.5 113.209H494V0.000656128Z" fill="currentColor"/>
|
|
89
|
-
<path opacity="0.5" d="M370.5 226.417C438.699 226.417 494 175.725 494 113.209H370.5V226.417Z" fill="currentColor"/>
|
|
90
|
-
<path opacity="0.75" d="M247 113.208C315.199 113.208 370.5 62.5158 370.5 0H247V113.208Z" fill="currentColor"/>
|
|
91
|
-
</g>
|
|
92
|
-
</svg>
|
|
93
|
-
</div>
|
|
94
167
|
</div>
|
|
95
|
-
|
|
96
|
-
}
|
|
168
|
+
);
|
|
169
|
+
};
|
|
97
170
|
|
|
98
|
-
export default MegaMenu;
|
|
171
|
+
export default MegaMenu;
|
|
@@ -1,20 +1,33 @@
|
|
|
1
1
|
export interface MenuItem {
|
|
2
|
-
label
|
|
3
|
-
url
|
|
4
|
-
imageUrl
|
|
5
|
-
title
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
label?: string;
|
|
3
|
+
url?: string;
|
|
4
|
+
imageUrl?: string;
|
|
5
|
+
title?: string;
|
|
6
|
+
boldTitle?:string
|
|
7
|
+
description?: string;
|
|
8
|
+
target?: string;
|
|
9
|
+
action?: {
|
|
10
|
+
label?: string;
|
|
11
|
+
url?: string;
|
|
12
|
+
target?: "_blank" | "_self" | "_parent" | "_top" | undefined;
|
|
13
|
+
rel?: string;
|
|
14
|
+
};
|
|
15
|
+
pillar?: 'visit' | 'live' | 'business' | 'participate' | 'taste';
|
|
9
16
|
}
|
|
10
17
|
|
|
11
18
|
interface MegaMenuProps {
|
|
12
|
-
pillar: '
|
|
19
|
+
pillar: 'visit' | 'live' | 'business' | 'participate' | 'taste';
|
|
13
20
|
menu: MenuItem[];
|
|
14
|
-
headingHighlight?: string;
|
|
15
21
|
defaultImg?:string
|
|
16
22
|
defaultTitle?: string;
|
|
23
|
+
defaultBoldTitle?: string;
|
|
17
24
|
defaultDescription?:string;
|
|
25
|
+
defaultAction?: {
|
|
26
|
+
label?: string;
|
|
27
|
+
url?: string;
|
|
28
|
+
target?: "_blank" | "_self" | "_parent" | "_top" | undefined;
|
|
29
|
+
rel?: string;
|
|
30
|
+
};
|
|
18
31
|
}
|
|
19
32
|
|
|
20
33
|
export default MegaMenuProps;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
right: 0;
|
|
4
4
|
left: 0;
|
|
5
5
|
background: var(--color-bg);
|
|
6
|
-
top:
|
|
6
|
+
top: 97px;
|
|
7
7
|
border-radius: 0 0 366px 0;
|
|
8
8
|
overflow-x: hidden;
|
|
9
9
|
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
.megaMenuSvg{
|
|
22
|
+
pointer-events: none;
|
|
22
23
|
position: absolute;
|
|
23
24
|
color: var(--color-text);
|
|
24
25
|
bottom: 0;
|
|
@@ -33,7 +34,7 @@
|
|
|
33
34
|
display: flex;
|
|
34
35
|
flex-wrap: wrap;
|
|
35
36
|
position: relative;
|
|
36
|
-
min-height:
|
|
37
|
+
min-height: calc(100vh - 96px);
|
|
37
38
|
|
|
38
39
|
.right{
|
|
39
40
|
width: 40%;
|
|
@@ -120,6 +121,7 @@
|
|
|
120
121
|
|
|
121
122
|
.action{
|
|
122
123
|
padding-top: 48px;
|
|
124
|
+
padding-bottom: 24px;
|
|
123
125
|
padding-left: 72px;
|
|
124
126
|
}
|
|
125
127
|
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import MobileNavigationProps from "./MobileNavigationProps.tsx";
|
|
2
|
+
import styles from './mobileNavigation.module.scss'
|
|
3
|
+
import {Container} from "../../../Shared";
|
|
4
|
+
import MobileWhatuOverlay from "./MobileWhatuOverlay.tsx";
|
|
5
|
+
|
|
6
|
+
const MobileNavigation = (props : MobileNavigationProps) => {
|
|
7
|
+
|
|
8
|
+
const {
|
|
9
|
+
children,
|
|
10
|
+
extraClass,
|
|
11
|
+
pillar = 'visit'
|
|
12
|
+
} = props
|
|
13
|
+
|
|
14
|
+
return <div className={`${styles.mobileNavigation} ${pillar} ${extraClass} mobileNavigation`}>
|
|
15
|
+
<Container>
|
|
16
|
+
<ul className={`${styles.mobileNavigationWrapper} mobileNavigationWrapper`}>
|
|
17
|
+
{children}
|
|
18
|
+
</ul>
|
|
19
|
+
</Container>
|
|
20
|
+
<div className={styles.svg}>
|
|
21
|
+
<MobileWhatuOverlay/>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export default MobileNavigation;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import styles from './mobileNavigation.module.scss'
|
|
2
|
+
import MobileNavigationItemProps from "./MobileNavigationItemProps.tsx";
|
|
3
|
+
import ArrowRight from "../../../Icons/Arrows/ArrowRight/ArrowRight.tsx";
|
|
4
|
+
|
|
5
|
+
const MobileNavigationItem = (props : MobileNavigationItemProps) => {
|
|
6
|
+
|
|
7
|
+
const {label} = props
|
|
8
|
+
|
|
9
|
+
return <div className={styles.mobileNavItem}>
|
|
10
|
+
<div className={styles.mobileNavItemWrapper}>
|
|
11
|
+
<h6>{label}</h6>
|
|
12
|
+
<ArrowRight type={'light'}/>
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export default MobileNavigationItem;
|
package/src/Components/Layout/Header/MobileNavigation/MobileSubNavigation/MobileSubNavigation.tsx
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import MobileSubNavigationProps from "./MobileSubNavigationProps.tsx";
|
|
2
|
+
import styles from '../mobileNavigation.module.scss'
|
|
3
|
+
import Container from "../../../../Shared/Container/Container.tsx";
|
|
4
|
+
|
|
5
|
+
const MobileSubNavigation = (props : MobileSubNavigationProps) => {
|
|
6
|
+
|
|
7
|
+
const {
|
|
8
|
+
children,
|
|
9
|
+
extraClass
|
|
10
|
+
} = props
|
|
11
|
+
|
|
12
|
+
return <div className={`${styles.MobileSubNavigation} ${extraClass} MobileSubNavigation`}>
|
|
13
|
+
<Container>
|
|
14
|
+
<ul className={`${styles.MobileSubNavigationWrapper} MobileSubNavigationWrapper`}>
|
|
15
|
+
{children}
|
|
16
|
+
</ul>
|
|
17
|
+
</Container>
|
|
18
|
+
</div>
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export default MobileSubNavigation;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import styles from '../mobileNavigation.module.scss'
|
|
2
|
+
import ArrowRight from "../../../../Icons/Arrows/ArrowRight/ArrowRight.tsx";
|
|
3
|
+
import MobileNavigationItemProps from "../MobileNavigationItemProps.tsx";
|
|
4
|
+
|
|
5
|
+
const MobileNavigationItem = (props : MobileNavigationItemProps) => {
|
|
6
|
+
|
|
7
|
+
const {label} = props
|
|
8
|
+
|
|
9
|
+
return <div className={styles.mobileNavItem}>
|
|
10
|
+
<div className={styles.mobileNavItemWrapper}>
|
|
11
|
+
<h6>{label}</h6>
|
|
12
|
+
<ArrowRight type={'light'}/>
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export default MobileNavigationItem;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const MobileWhatuOverlay = () =>{
|
|
2
|
+
return <svg xmlns="http://www.w3.org/2000/svg" width="741" height="340" viewBox="0 0 741 340" fill="none">
|
|
3
|
+
<g opacity="0.1">
|
|
4
|
+
<path opacity="0.5" d="M0 113.209C68.1991 113.209 123.5 163.901 123.5 226.417H0V113.209Z" fill="currentColor"/>
|
|
5
|
+
<path opacity="0.25" d="M247 113.209C178.801 113.209 123.5 163.901 123.5 226.417H247V113.209Z" fill="currentColor"/>
|
|
6
|
+
<path opacity="0.5" d="M741 226.417C672.801 226.417 617.5 175.725 617.5 113.209H741V226.417Z" fill="currentColor"/>
|
|
7
|
+
<path opacity="0.75" d="M123.5 226.416C191.699 226.416 247 277.109 247 339.624H123.5V226.416Z" fill="currentColor"/>
|
|
8
|
+
<path opacity="0.5" d="M247 339.624C315.199 339.624 370.5 288.932 370.5 226.416H247V339.624Z" fill="currentColor"/>
|
|
9
|
+
<path opacity="0.25" d="M494 339.625C425.801 339.625 370.5 288.932 370.5 226.417H494V339.625Z" fill="currentColor"/>
|
|
10
|
+
<path opacity="0.75" d="M617.5 226.417C549.301 226.417 494 277.109 494 339.625H617.5V226.417Z" fill="currentColor"/>
|
|
11
|
+
<path opacity="0.25" d="M494 0.000656128C562.199 0.000656128 617.5 50.6932 617.5 113.209H494V0.000656128Z" fill="currentColor"/>
|
|
12
|
+
<path opacity="0.5" d="M370.5 226.417C438.699 226.417 494 175.725 494 113.209H370.5V226.417Z" fill="currentColor"/>
|
|
13
|
+
<path opacity="0.75" d="M247 113.208C315.199 113.208 370.5 62.5158 370.5 0H247V113.208Z" fill="currentColor"/>
|
|
14
|
+
</g>
|
|
15
|
+
</svg>
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export default MobileWhatuOverlay
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
.mobileNavigation{
|
|
2
|
+
position: absolute;
|
|
3
|
+
top: 61px;
|
|
4
|
+
right: 0;
|
|
5
|
+
left: 0;
|
|
6
|
+
height: calc(100vh - 59px);
|
|
7
|
+
background: var(--header-bg);
|
|
8
|
+
border-radius: 0 0 200px 0;
|
|
9
|
+
overflow-x: hidden;
|
|
10
|
+
|
|
11
|
+
.mobileNavigationWrapper{
|
|
12
|
+
padding-top: 48px;
|
|
13
|
+
list-style: none;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.mobileNavItemWrapper{
|
|
17
|
+
display: flex;
|
|
18
|
+
align-items: center;
|
|
19
|
+
justify-content: space-between;
|
|
20
|
+
cursor: pointer;
|
|
21
|
+
color: var(--header-color);
|
|
22
|
+
transition: all 0.3s ease-in-out;
|
|
23
|
+
|
|
24
|
+
svg {
|
|
25
|
+
margin-left: 16px;
|
|
26
|
+
transition: transform 0.3s ease-in-out;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
&:hover {
|
|
30
|
+
svg {
|
|
31
|
+
animation: wiggle 0.6s ease-in-out infinite;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
h6{
|
|
36
|
+
font-size: var(--font-size-h6);
|
|
37
|
+
line-height: var(--line-height-h6);
|
|
38
|
+
font-weight: var(--font-weight-h6);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.svg{
|
|
46
|
+
position: absolute;
|
|
47
|
+
left: 0;
|
|
48
|
+
bottom: 0;
|
|
49
|
+
right: 0;
|
|
50
|
+
color: var(--header-color);
|
|
51
|
+
|
|
52
|
+
svg{
|
|
53
|
+
width: 100%;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@keyframes wiggle {
|
|
59
|
+
0%, 100% { transform: translateX(0); }
|
|
60
|
+
25% { transform: translateX(-4px); }
|
|
61
|
+
75% { transform: translateX(4px); }
|
|
62
|
+
}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
.header{
|
|
2
|
-
|
|
2
|
+
backdrop-filter: blur(10px);
|
|
3
|
+
border-bottom: 1px solid var(--color-taste);
|
|
4
|
+
|
|
5
|
+
&.active{
|
|
6
|
+
background: var(--header-bg);
|
|
7
|
+
}
|
|
3
8
|
|
|
4
9
|
.headerWrapper{
|
|
5
10
|
display: flex;
|
|
6
11
|
align-items: flex-end;
|
|
7
12
|
justify-content: space-between;
|
|
8
|
-
min-height:
|
|
13
|
+
min-height: 60px;
|
|
9
14
|
}
|
|
10
15
|
|
|
11
16
|
.headerLogo{
|
|
@@ -32,7 +37,7 @@
|
|
|
32
37
|
}
|
|
33
38
|
|
|
34
39
|
.headerBottomItemHolder{
|
|
35
|
-
padding: 0 12px
|
|
40
|
+
padding: 0 12px 12px 12px;
|
|
36
41
|
transition: all 0.3s ease-in;
|
|
37
42
|
|
|
38
43
|
a{
|
|
@@ -48,6 +53,8 @@
|
|
|
48
53
|
display: flex;
|
|
49
54
|
|
|
50
55
|
svg{
|
|
56
|
+
margin-left: 20px;
|
|
57
|
+
flex-shrink: 0;
|
|
51
58
|
width: 24px;
|
|
52
59
|
height: 24px;
|
|
53
60
|
}
|
|
@@ -90,6 +97,7 @@
|
|
|
90
97
|
|
|
91
98
|
|
|
92
99
|
@media screen and (min-width: 1648px) {
|
|
100
|
+
|
|
93
101
|
.headerRightWrapper{
|
|
94
102
|
display: flex;
|
|
95
103
|
align-items: center;
|
|
@@ -103,6 +111,11 @@
|
|
|
103
111
|
|
|
104
112
|
|
|
105
113
|
@media screen and (min-width: 992px) {
|
|
114
|
+
|
|
115
|
+
.headerWrapper{
|
|
116
|
+
min-height: 96px;
|
|
117
|
+
}
|
|
118
|
+
|
|
106
119
|
.logo {
|
|
107
120
|
display: block;
|
|
108
121
|
}
|
|
@@ -110,6 +123,12 @@
|
|
|
110
123
|
.logoSmall {
|
|
111
124
|
display: none;
|
|
112
125
|
}
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
.headerBottomItemHolder {
|
|
129
|
+
padding-bottom:30px ;
|
|
130
|
+
}
|
|
131
|
+
|
|
113
132
|
}
|
|
114
133
|
|
|
115
134
|
}
|
|
@@ -24,6 +24,11 @@ const HeroBanner = (props : HeroBannerProps) => {
|
|
|
24
24
|
</div>
|
|
25
25
|
<div className={styles.heroImg}>
|
|
26
26
|
<img src={backgroundImg} alt="hero banner" />
|
|
27
|
+
<div className={styles.clipPath}>
|
|
28
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 911 725" fill="none">
|
|
29
|
+
<path d="M911 0C470.407 -4.11029e-07 102.958 311.255 18.3389 725H0V0H911Z" fill="currentColor"/>
|
|
30
|
+
</svg>
|
|
31
|
+
</div>
|
|
27
32
|
</div>
|
|
28
33
|
</div>
|
|
29
34
|
</Container>
|
|
@@ -46,6 +51,11 @@ const HeroBanner = (props : HeroBannerProps) => {
|
|
|
46
51
|
</div>
|
|
47
52
|
<div className={styles.heroImg}>
|
|
48
53
|
<img src={backgroundImg} alt="hero banner" />
|
|
54
|
+
<div className={styles.clipPath}>
|
|
55
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 911 600" fill="none">
|
|
56
|
+
<path d="M911 0C516.03 -3.68467e-07 179.841 250.132 53.4912 600H0V0H911Z" fill="currentColor"/>
|
|
57
|
+
</svg>
|
|
58
|
+
</div>
|
|
49
59
|
</div>
|
|
50
60
|
</div>
|
|
51
61
|
</Container>
|
|
@@ -61,6 +71,9 @@ const HeroBanner = (props : HeroBannerProps) => {
|
|
|
61
71
|
>
|
|
62
72
|
<div className={styles.heroImg}>
|
|
63
73
|
<img src={backgroundImg} alt="hero banner" />
|
|
74
|
+
<div className={styles.heroSvg}>
|
|
75
|
+
<LargeHeroIcon/>
|
|
76
|
+
</div>
|
|
64
77
|
</div>
|
|
65
78
|
<Container>
|
|
66
79
|
<div className={styles.heroWrapper}>
|
|
@@ -68,9 +81,6 @@ const HeroBanner = (props : HeroBannerProps) => {
|
|
|
68
81
|
{description && <p>{description}</p>}
|
|
69
82
|
</div>
|
|
70
83
|
</Container>
|
|
71
|
-
<div className={styles.heroSvg}>
|
|
72
|
-
<LargeHeroIcon/>
|
|
73
|
-
</div>
|
|
74
84
|
</div>
|
|
75
85
|
}
|
|
76
86
|
|