@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.
Files changed (98) hide show
  1. package/dist/Components/DataDisplay/Accordion/Accordion.d.ts +3 -0
  2. package/dist/Components/DataDisplay/Accordion/AccordionContext.d.ts +3 -0
  3. package/dist/Components/DataDisplay/Accordion/AccordionContextInterface.d.ts +7 -0
  4. package/dist/Components/DataDisplay/Accordion/AccordionItem.d.ts +3 -0
  5. package/dist/Components/DataDisplay/Accordion/AccordionItemProps.d.ts +18 -0
  6. package/dist/Components/DataDisplay/Accordion/AccordionProps.d.ts +11 -0
  7. package/dist/Components/DataDisplay/Accordion/AccordionProvider.d.ts +3 -0
  8. package/dist/Components/DataDisplay/Accordion/AccordionProviderInterface.d.ts +7 -0
  9. package/dist/Components/DataDisplay/Accordion/accordion-bg-design.d.ts +2 -0
  10. package/dist/Components/DataDisplay/DetailsCard/DetailsCardProps.d.ts +7 -1
  11. package/dist/Components/DataDisplay/ImageContent/ImageContentProps.d.ts +4 -4
  12. package/dist/Components/DataDisplay/Pathway/PathwayProps.d.ts +13 -4
  13. package/dist/Components/DataDisplay/PathwayBlock/PathwayBlock.d.ts +3 -0
  14. package/dist/Components/DataDisplay/PathwayBlock/PathwayBlockProps.d.ts +11 -0
  15. package/dist/Components/DataDisplay/PromoBannerBlock/PromoBannerBlockProps.d.ts +9 -9
  16. package/dist/Components/DataDisplay/PromoBannerBlock/brand-piller.d.ts +3 -0
  17. package/dist/Components/DataDisplay/TestimonyCard/TestimonyCard.d.ts +3 -0
  18. package/dist/Components/DataDisplay/TestimonyCard/TestimonyCardProps.d.ts +10 -0
  19. package/dist/Components/DataDisplay/index.d.ts +2 -0
  20. package/dist/Components/Form/Button/Button.d.ts +3 -0
  21. package/dist/Components/Form/Button/ButtonProps.d.ts +16 -5
  22. package/dist/Components/Layout/Header/HeaderProps.d.ts +1 -0
  23. package/dist/Components/Layout/Header/MegaMenu/MegaMenu.d.ts +2 -1
  24. package/dist/Components/Layout/Header/MegaMenu/MegaMenuProps.d.ts +28 -1
  25. package/dist/Components/Layout/Header/MobileNavigation/MobileNavigation.d.ts +3 -0
  26. package/dist/Components/Layout/Header/MobileNavigation/MobileNavigationItem.d.ts +3 -0
  27. package/dist/Components/Layout/Header/MobileNavigation/MobileNavigationItemProps.d.ts +4 -0
  28. package/dist/Components/Layout/Header/MobileNavigation/MobileNavigationProps.d.ts +7 -0
  29. package/dist/Components/Layout/Header/MobileNavigation/MobileSubNavigation/MobileSubNavigation.d.ts +3 -0
  30. package/dist/Components/Layout/Header/MobileNavigation/MobileSubNavigation/MobileSubNavigationItem.d.ts +3 -0
  31. package/dist/Components/Layout/Header/MobileNavigation/MobileSubNavigation/MobileSubNavigationItemProps.d.ts +4 -0
  32. package/dist/Components/Layout/Header/MobileNavigation/MobileSubNavigation/MobileSubNavigationProps.d.ts +7 -0
  33. package/dist/Components/Layout/Header/MobileNavigation/MobileWhatuOverlay.d.ts +2 -0
  34. package/dist/Components/Layout/HeroBanner/HeroBannerProps.d.ts +1 -1
  35. package/dist/Components/Layout/index.d.ts +7 -1
  36. package/dist/Components/Shared/Hook/useScrollFadeIn/useScrollFadeIn.d.ts +6 -0
  37. package/dist/Components/Shared/PillarIcon/PillarIcon.d.ts +3 -0
  38. package/dist/Components/Shared/PillarIcon/PillarIconsProps.d.ts +4 -0
  39. package/dist/Components/Shared/PillarLogo/PillarLogo.d.ts +6 -0
  40. package/dist/Components/Shared/ScrollFadeIn/ScrollFadeIn.d.ts +12 -0
  41. package/dist/Components/index.d.ts +5 -0
  42. package/dist/img/accordion-image.svg +9 -0
  43. package/dist/index.cjs.js +10 -10
  44. package/dist/index.cjs.js.map +1 -1
  45. package/dist/index.d.ts +1 -5
  46. package/dist/index.es.js +1452 -676
  47. package/dist/index.es.js.map +1 -1
  48. package/dist/selwynui.css +1 -1
  49. package/package.json +2 -1
  50. package/src/Components/DataDisplay/Accordion/Accordion.tsx +15 -17
  51. package/src/Components/DataDisplay/DetailsCard/DetailsCard.stories.tsx +7 -3
  52. package/src/Components/DataDisplay/DetailsCard/DetailsCard.tsx +11 -39
  53. package/src/Components/DataDisplay/DetailsCard/DetailsCardProps.tsx +7 -1
  54. package/src/Components/DataDisplay/DetailsCard/detailsCard.module.scss +10 -10
  55. package/src/Components/DataDisplay/ImageContent/ImageContent.stories.tsx +50 -12
  56. package/src/Components/DataDisplay/ImageContent/ImageContent.tsx +68 -21
  57. package/src/Components/DataDisplay/ImageContent/ImageContentProps.tsx +2 -1
  58. package/src/Components/DataDisplay/ImageContent/imageContent.module.scss +144 -46
  59. package/src/Components/DataDisplay/Pathway/Pathway.stories.tsx +50 -13
  60. package/src/Components/DataDisplay/Pathway/Pathway.tsx +15 -4
  61. package/src/Components/DataDisplay/Pathway/PathwayProps.tsx +13 -4
  62. package/src/Components/DataDisplay/PathwayBlock/PathwayBlock.tsx +0 -2
  63. package/src/Components/DataDisplay/PromoBannerBlock/PromoBanner.stories.tsx +1 -2
  64. package/src/Components/DataDisplay/PromoBannerBlock/PromoBannerBlock.tsx +1 -5
  65. package/src/Components/DataDisplay/PromoBannerBlock/promoBanner.module.scss +3 -2
  66. package/src/Components/DataDisplay/index.ts +5 -1
  67. package/src/Components/DataDisplay/slider.scss +2 -0
  68. package/src/Components/Form/Button/ButtonProps.tsx +1 -1
  69. package/src/Components/Form/Button/button.module.scss +0 -1
  70. package/src/Components/Layout/Footer/Footer.stories.tsx +1 -1
  71. package/src/Components/Layout/Header/Header.stories.tsx +34 -7
  72. package/src/Components/Layout/Header/Header.tsx +2 -2
  73. package/src/Components/Layout/Header/HeaderProps.tsx +1 -0
  74. package/src/Components/Layout/Header/HeaderRightItem.tsx +2 -2
  75. package/src/Components/Layout/Header/MegaMenu/MegaMenu.tsx +156 -83
  76. package/src/Components/Layout/Header/MegaMenu/MegaMenuProps.tsx +22 -9
  77. package/src/Components/Layout/Header/MegaMenu/megaMenu.module.scss +4 -2
  78. package/src/Components/Layout/Header/MobileNavigation/MobileNavigation.tsx +26 -0
  79. package/src/Components/Layout/Header/MobileNavigation/MobileNavigationItem.tsx +17 -0
  80. package/src/Components/Layout/Header/MobileNavigation/MobileNavigationItemProps.tsx +5 -0
  81. package/src/Components/Layout/Header/MobileNavigation/MobileNavigationProps.tsx +9 -0
  82. package/src/Components/Layout/Header/MobileNavigation/MobileSubNavigation/MobileSubNavigation.tsx +21 -0
  83. package/src/Components/Layout/Header/MobileNavigation/MobileSubNavigation/MobileSubNavigationItem.tsx +17 -0
  84. package/src/Components/Layout/Header/MobileNavigation/MobileSubNavigation/MobileSubNavigationItemProps.tsx +5 -0
  85. package/src/Components/Layout/Header/MobileNavigation/MobileSubNavigation/MobileSubNavigationProps.tsx +9 -0
  86. package/src/Components/Layout/Header/MobileNavigation/MobileWhatuOverlay.tsx +18 -0
  87. package/src/Components/Layout/Header/MobileNavigation/mobileNavigation.module.scss +62 -0
  88. package/src/Components/Layout/Header/header.module.scss +22 -3
  89. package/src/Components/Layout/Header/header.scss +15 -0
  90. package/src/Components/Layout/HeroBanner/HeroBanner.tsx +13 -3
  91. package/src/Components/Layout/HeroBanner/HeroBannerProps.tsx +1 -1
  92. package/src/Components/Layout/HeroBanner/heroBanner.module.scss +132 -24
  93. package/src/Components/Layout/index.ts +11 -3
  94. package/src/Components/Shared/Container/container.module.scss +3 -3
  95. package/src/Components/Shared/PillarIcon/PillarIcon.tsx +4 -4
  96. package/src/Components/index.ts +5 -0
  97. package/dist/index.es.d.ts +0 -2
  98. package/dist/tsconfig.app.tsbuildinfo +0 -1
@@ -1,98 +1,171 @@
1
- import MegaMenuProps from "./MegaMenuProps.tsx";
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 : MegaMenuProps) => {
9
-
9
+ const MegaMenu = (props: MegaMenuProps) => {
10
10
  const {
11
- pillar,
12
- menu,
13
- imageSrc,
14
- heading,
15
- headingHighlight,
16
- description
17
- } = props
11
+ pillar = "main",
12
+ menu = [],
13
+ defaultImg,
14
+ defaultBoldTitle,
15
+ defaultDescription,
16
+ defaultTitle,
17
+ defaultAction,
18
+ } = props;
18
19
 
19
- return <div className={`${styles.megaMenu} ${pillar}`}>
20
- <div className={`${styles.megaMenuHolder}`}>
21
- <Container>
22
- <div className={`${styles.megaMenuWrapper} megaMenuWrapper`}>
23
- <div className={styles.left}>
24
- <div className={styles.pillarIcon}>
25
- <PillarLogo brandPillar={pillar} brandFullLogo={true}/>
26
- </div>
27
- <ul>
28
- <li>
29
- <a href={''}>
30
- Link
31
- <ArrowRight type={'light'}/>
32
- </a>
33
- </li>
34
- <li>
35
- <a href={''}>
36
- Link
37
- <ArrowRight type={'light'}/>
38
- </a>
39
- </li>
40
- <li>
41
- <a href={''}>
42
- Link
43
- <ArrowRight type={'light'}/>
44
- </a>
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
- <div className={styles.action}>
71
- <Button pillar={pillar} label={'START EXPLORING'} secondaryIcon={<ArrowRight/>}/>
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
- </div>
96
- }
168
+ );
169
+ };
97
170
 
98
- export default MegaMenu;
171
+ export default MegaMenu;
@@ -1,20 +1,33 @@
1
1
  export interface MenuItem {
2
- label: string;
3
- url: string;
4
- imageUrl: string;
5
- title: string;
6
- description: string;
7
- target: string;
8
- pillar: 'vist' | 'live' | 'business' | 'participate' | 'taste';
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: 'vist' | 'live' | 'business' | 'participate' | 'taste';
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: 96px;
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: 878px;
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;
@@ -0,0 +1,5 @@
1
+ interface MobileNavigationItemProps {
2
+ label?: string;
3
+ }
4
+
5
+ export default MobileNavigationItemProps;
@@ -0,0 +1,9 @@
1
+ import {ReactNode} from "react";
2
+
3
+ interface MobileNavigationProps {
4
+ children?:ReactNode;
5
+ extraClass?:string;
6
+ pillar: 'visit' | 'live' | 'business' | 'participate' | 'taste';
7
+ }
8
+
9
+ export default MobileNavigationProps
@@ -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,5 @@
1
+ interface MobileNavigationItemProps {
2
+ label?: string;
3
+ }
4
+
5
+ export default MobileNavigationItemProps;
@@ -0,0 +1,9 @@
1
+ import {ReactNode} from "react";
2
+
3
+ interface MobileSubNavigationProps {
4
+ children?:ReactNode;
5
+ extraClass?:string;
6
+ pillar?: 'visit' | 'live' | 'business' | 'participate' | 'taste'
7
+ }
8
+
9
+ export default MobileSubNavigationProps;
@@ -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
- background: var(--header-bg);
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: 96px;
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 30px 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
  }
@@ -0,0 +1,15 @@
1
+ .desktop-item{
2
+ display: none !important;
3
+
4
+ @media screen and (min-width: 992px) {
5
+ display: flex !important;
6
+ }
7
+ }
8
+
9
+ .mobileNavigation{
10
+ .mobileNavigationWrapper{
11
+ li{
12
+ padding: 16px;
13
+ }
14
+ }
15
+ }
@@ -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
 
@@ -4,7 +4,7 @@ interface HeroBannerProps {
4
4
  boldTitle?:string
5
5
  description?:string
6
6
  backgroundImg?:string
7
- pillar?: 'visit' | 'live' | 'business' | 'participate'
7
+ pillar?: 'visit' | 'live' | 'business' | 'participate' | 'taste'
8
8
  }
9
9
 
10
10
  export default HeroBannerProps;