@hellobetterdigitalnz/selwynui 0.0.1-1 → 0.0.1-11
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/MegaMenu/MegaMenu.d.ts +2 -1
- package/dist/Components/Layout/Header/MegaMenu/MegaMenuProps.d.ts +15 -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 +6 -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 +3 -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 +1304 -677
- 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 +48 -2
- package/src/Components/DataDisplay/ImageContent/ImageContent.tsx +65 -18
- package/src/Components/DataDisplay/ImageContent/ImageContentProps.tsx +2 -1
- package/src/Components/DataDisplay/ImageContent/imageContent.module.scss +140 -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 +0 -1
- 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/HeaderRightItem.tsx +2 -2
- package/src/Components/Layout/Header/MegaMenu/MegaMenu.tsx +1 -6
- package/src/Components/Layout/Header/MegaMenu/MegaMenuProps.tsx +2 -2
- package/src/Components/Layout/Header/MobileNavigation/MobileNavigation.tsx +25 -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 +8 -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 +16 -2
- package/src/Components/Layout/Header/header.scss +15 -0
- package/src/Components/Layout/HeroBanner/HeroBanner.tsx +10 -0
- package/src/Components/Layout/HeroBanner/HeroBannerProps.tsx +1 -1
- package/src/Components/Layout/HeroBanner/heroBanner.module.scss +92 -18
- package/src/Components/Layout/index.ts +1 -2
- package/src/Components/Shared/Container/container.module.scss +3 -3
- package/src/Components/index.ts +5 -0
- package/dist/index.es.d.ts +0 -2
|
@@ -100,8 +100,24 @@
|
|
|
100
100
|
&.maskedImageContent{
|
|
101
101
|
|
|
102
102
|
.pillarlogo{
|
|
103
|
+
display: flex;
|
|
103
104
|
margin-bottom: 48px;
|
|
105
|
+
align-items: center;
|
|
104
106
|
|
|
107
|
+
p{
|
|
108
|
+
margin-left: 16px;
|
|
109
|
+
font-size: 18px;
|
|
110
|
+
font-style: normal;
|
|
111
|
+
font-weight: 700;
|
|
112
|
+
line-height: 140%;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
&.pillarlogoFull{
|
|
116
|
+
svg{
|
|
117
|
+
width: 32px;
|
|
118
|
+
height: 32px;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
105
121
|
svg{
|
|
106
122
|
width: 160px;
|
|
107
123
|
height: 54px;
|
|
@@ -141,6 +157,7 @@
|
|
|
141
157
|
// full image
|
|
142
158
|
&.imageContentFull{
|
|
143
159
|
position: relative;
|
|
160
|
+
overflow: hidden;
|
|
144
161
|
|
|
145
162
|
.svgBackgroundPillar{
|
|
146
163
|
position: absolute;
|
|
@@ -158,71 +175,51 @@
|
|
|
158
175
|
}
|
|
159
176
|
}
|
|
160
177
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
}
|
|
178
|
+
&.top-left{
|
|
179
|
+
.imageHolder{
|
|
180
|
+
border-radius: 200px 0 0 0;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
167
183
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
}
|
|
184
|
+
&.top-right{
|
|
185
|
+
.imageHolder{
|
|
186
|
+
border-radius: 0 200px 0 0;
|
|
172
187
|
}
|
|
173
188
|
}
|
|
174
189
|
|
|
175
|
-
&.bottom{
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
border-radius: 0px 0px 500px 0px;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
&.right{
|
|
183
|
-
.imageHolder {
|
|
184
|
-
border-radius: 0px 0px 0px 500px;
|
|
185
|
-
}
|
|
190
|
+
&.bottom-right{
|
|
191
|
+
.imageHolder{
|
|
192
|
+
border-radius: 0 0 200px 0;
|
|
186
193
|
}
|
|
187
194
|
}
|
|
188
195
|
|
|
189
|
-
&.left{
|
|
190
|
-
.
|
|
191
|
-
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
.imageHolder {
|
|
195
|
-
height: 100%;
|
|
196
|
-
position: absolute;
|
|
197
|
-
width: calc(50vw + 10px);
|
|
198
|
-
right: 0;
|
|
199
|
-
left: unset;
|
|
196
|
+
&.bottom-left{
|
|
197
|
+
.imageHolder{
|
|
198
|
+
border-radius: 0 0 0 200px;
|
|
200
199
|
}
|
|
201
|
-
|
|
202
|
-
.content{
|
|
203
|
-
padding-left: 198px;
|
|
204
|
-
padding-right: 0;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
200
|
}
|
|
208
201
|
|
|
209
202
|
.imageContentWrapper{
|
|
210
203
|
margin: 0px;
|
|
211
|
-
min-height: 935px;
|
|
212
204
|
}
|
|
213
205
|
|
|
214
206
|
.imageWrapper{
|
|
215
207
|
position: relative;
|
|
216
208
|
padding: 0px;
|
|
209
|
+
//width: 100%;
|
|
210
|
+
z-index: 1;
|
|
211
|
+
margin-top: 0;
|
|
212
|
+
width: calc(100% + 32px);
|
|
213
|
+
margin-left: -16px;
|
|
214
|
+
margin-right: -15px;
|
|
217
215
|
}
|
|
218
216
|
|
|
219
217
|
.imageHolder {
|
|
220
218
|
padding: 0;
|
|
221
219
|
height: 100%;
|
|
222
|
-
|
|
223
|
-
width:
|
|
224
|
-
|
|
225
|
-
overflow: hidden;
|
|
220
|
+
width: 100%;
|
|
221
|
+
min-width: 50vw;
|
|
222
|
+
min-height: 380px;
|
|
226
223
|
|
|
227
224
|
|
|
228
225
|
&::before {
|
|
@@ -238,8 +235,9 @@
|
|
|
238
235
|
}
|
|
239
236
|
|
|
240
237
|
.content{
|
|
241
|
-
padding:
|
|
242
|
-
padding-
|
|
238
|
+
padding-top: 32px;
|
|
239
|
+
padding-bottom: 32px;
|
|
240
|
+
padding-right: 0px;
|
|
243
241
|
|
|
244
242
|
.desc{
|
|
245
243
|
}
|
|
@@ -274,7 +272,65 @@
|
|
|
274
272
|
|
|
275
273
|
}
|
|
276
274
|
|
|
277
|
-
|
|
275
|
+
//Fluid
|
|
276
|
+
&.imageContentFluid{
|
|
277
|
+
overflow-x: hidden;
|
|
278
|
+
|
|
279
|
+
.pillarlogo{
|
|
280
|
+
display: flex;
|
|
281
|
+
margin-bottom: 48px;
|
|
282
|
+
align-items: center;
|
|
283
|
+
|
|
284
|
+
p{
|
|
285
|
+
margin-left: 16px;
|
|
286
|
+
font-size: 18px;
|
|
287
|
+
font-style: normal;
|
|
288
|
+
font-weight: 700;
|
|
289
|
+
line-height: 140%;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
&.pillarlogoFull{
|
|
293
|
+
svg{
|
|
294
|
+
width: 32px;
|
|
295
|
+
height: 32px;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
svg{
|
|
299
|
+
width: 160px;
|
|
300
|
+
height: 54px;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
.imageContentWrapper{
|
|
306
|
+
min-height: 725px;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
.imageHolder{
|
|
310
|
+
min-width: 50vw;
|
|
311
|
+
border-radius: 0;
|
|
312
|
+
width: calc(100% + 32px);
|
|
313
|
+
margin-left: -16px;
|
|
314
|
+
margin-right: -16px;
|
|
315
|
+
position: relative;
|
|
316
|
+
|
|
317
|
+
.clipPath{
|
|
318
|
+
position: absolute;
|
|
319
|
+
top: 0;
|
|
320
|
+
bottom: 0;
|
|
321
|
+
color: var(--color-block-bg);
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
.content{
|
|
327
|
+
padding-top: 32px;
|
|
328
|
+
padding-bottom: 32px;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
@media screen and (min-width: 1200px){
|
|
278
334
|
|
|
279
335
|
&Wrapper{
|
|
280
336
|
margin: 0 -52px;
|
|
@@ -336,6 +392,44 @@
|
|
|
336
392
|
.pillarlogo{
|
|
337
393
|
margin-bottom: 48px;
|
|
338
394
|
}
|
|
395
|
+
|
|
396
|
+
&.top-left{
|
|
397
|
+
.imageHolder{
|
|
398
|
+
border-radius: 500px 0 0 0;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
&.top-right{
|
|
403
|
+
.imageHolder{
|
|
404
|
+
border-radius: 0 500px 0 0;
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
&.bottom-right{
|
|
409
|
+
.imageHolder{
|
|
410
|
+
border-radius: 0 0 500px 0;
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
&.bottom-left{
|
|
415
|
+
.imageHolder{
|
|
416
|
+
border-radius: 0 0 0 500px;
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
.imageContentWrapper{
|
|
421
|
+
margin: 0px;
|
|
422
|
+
min-height: 935px;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
.imageWrapper{
|
|
426
|
+
width: 50%;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
.content{
|
|
430
|
+
padding-right: 198px;
|
|
431
|
+
}
|
|
432
|
+
|
|
339
433
|
}
|
|
340
434
|
|
|
341
435
|
}
|
|
@@ -1,27 +1,64 @@
|
|
|
1
|
+
import React from 'react'
|
|
1
2
|
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
3
|
import Pathway from './Pathway';
|
|
3
|
-
import {
|
|
4
|
+
import {ElementHolder} from "../../Shared";
|
|
4
5
|
|
|
5
6
|
const meta : Meta<typeof Pathway> = {
|
|
6
7
|
title: "Form / Pathway",
|
|
7
8
|
component: Pathway,
|
|
8
|
-
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export default meta;
|
|
12
12
|
type Story = StoryObj<typeof Pathway>
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
const GridTemplate: Story = {
|
|
15
|
+
render : () =>{
|
|
16
|
+
|
|
17
|
+
return <ElementHolder paddingTop={'md'} paddingBottom={"md"}>
|
|
18
|
+
<Pathway
|
|
19
|
+
title={'Food and drink'}
|
|
20
|
+
description={'Find the ideal event venues in Selwyn, where beautiful landscapes blend with top-notch facilities. '}
|
|
21
|
+
variation={'grid'}
|
|
22
|
+
filters={["all", "adventure", "ski", "nature", "city"]}
|
|
23
|
+
cards={
|
|
24
|
+
[
|
|
25
|
+
{ title: "Ballooning Canterbury", link: "#", image: "./img/card-one.png", category: "adventure", pillar: "live" },
|
|
26
|
+
{ title: "Ski Resort", link: "#", image: "./img/card-two.png", category: "ski" },
|
|
27
|
+
{ title: "Nature Walk", link: "#", image: "./img/card-three.png", category: "nature" },
|
|
28
|
+
{ title: "City Tour", link: "#", image: "./img/card-four.png" }
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
/>
|
|
32
|
+
</ElementHolder>
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const CarouselTemplate: Story = {
|
|
37
|
+
render : () =>{
|
|
38
|
+
|
|
39
|
+
return <ElementHolder paddingTop={'md'} paddingBottom={"md"}>
|
|
40
|
+
<Pathway
|
|
41
|
+
title={'Food and drink'}
|
|
42
|
+
description={'Find the ideal event venues in Selwyn, where beautiful landscapes blend with top-notch facilities. '}
|
|
43
|
+
variation={'carousel'}
|
|
44
|
+
cards={
|
|
45
|
+
[
|
|
46
|
+
{ title: "Ballooning Canterbury", link: "#", image: "./img/card-one.png", category: "adventure", pillar: "live" },
|
|
21
47
|
{ title: "Ski Resort", link: "#", image: "./img/card-two.png", category: "ski" },
|
|
22
48
|
{ title: "Nature Walk", link: "#", image: "./img/card-three.png", category: "nature" },
|
|
23
|
-
{ title: "City Tour", link: "#", image: "./img/card-four.png" }
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
49
|
+
{ title: "City Tour", link: "#", image: "./img/card-four.png" }
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
/>
|
|
53
|
+
</ElementHolder>
|
|
54
|
+
}
|
|
27
55
|
};
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
export const GridView = {
|
|
59
|
+
...GridTemplate,
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export const CarouselView = {
|
|
63
|
+
...CarouselTemplate,
|
|
64
|
+
}
|
|
@@ -2,7 +2,6 @@ import cx from "classnames";
|
|
|
2
2
|
import PathwayProps from './PathwayProps';
|
|
3
3
|
import styles from "./pathway.module.scss";
|
|
4
4
|
import cslx from "clsx";
|
|
5
|
-
import ElementHolder from "../../Shared/ElementHolder/ElementHolder";
|
|
6
5
|
import Container from "../../Shared/Container/Container";
|
|
7
6
|
import DetailsCard from "../DetailsCard/DetailsCard";
|
|
8
7
|
import { CaretDown } from "../../Icons";
|
|
@@ -29,10 +28,22 @@ const Pathway = (props:PathwayProps) => {
|
|
|
29
28
|
const classes = [styles.pathway, "pathway", variation === "carousel" && styles.pathwayCarousel];
|
|
30
29
|
|
|
31
30
|
return (
|
|
32
|
-
<
|
|
31
|
+
<div>
|
|
33
32
|
<Container>
|
|
34
33
|
{variation === "carousel" ? (
|
|
35
|
-
<div className={cx(classes)}>
|
|
34
|
+
<div className={cx(classes)}>
|
|
35
|
+
<div className={styles.contentWrapper}>
|
|
36
|
+
<div className={styles.content}>
|
|
37
|
+
<div className={styles.pathwayTitle}><h3>{title}</h3></div>
|
|
38
|
+
<div className={styles.pathwayDescription}><p>{description}</p></div>
|
|
39
|
+
</div>
|
|
40
|
+
<div className={styles.silderNav}>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
{/*<div className={styles.}>*/}
|
|
44
|
+
|
|
45
|
+
{/*</div>*/}
|
|
46
|
+
</div>
|
|
36
47
|
) : (
|
|
37
48
|
<div className={cslx(classes)}>
|
|
38
49
|
<div className={styles.pathwayTitle}><h3>{title}</h3></div>
|
|
@@ -76,7 +87,7 @@ const Pathway = (props:PathwayProps) => {
|
|
|
76
87
|
</div>
|
|
77
88
|
)}
|
|
78
89
|
</Container>
|
|
79
|
-
</
|
|
90
|
+
</div>
|
|
80
91
|
);
|
|
81
92
|
};
|
|
82
93
|
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
export interface Card {
|
|
2
|
-
title
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
title?:string,
|
|
3
|
+
description?:string,
|
|
4
|
+
date?: string,
|
|
5
|
+
link?: {
|
|
6
|
+
title?: string;
|
|
7
|
+
href?: string;
|
|
8
|
+
target?: "_blank" | "_self" | "_parent" | "_top";
|
|
9
|
+
rel?: string;
|
|
10
|
+
};
|
|
11
|
+
pillar?: 'visit' | 'live' | 'business' | 'participate' | 'taste'
|
|
12
|
+
image?:string,
|
|
13
|
+
variation?: "long" | "short";
|
|
14
|
+
category?: 'all' | 'adventure' | 'ski' | 'nature',
|
|
6
15
|
}
|
|
7
16
|
|
|
8
17
|
interface PathwayProps {
|
|
@@ -31,9 +31,8 @@ const PromoBannerBlockTemplate: Story = {
|
|
|
31
31
|
content={'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.'}
|
|
32
32
|
image={'promo-banner-image.svg'}
|
|
33
33
|
button={
|
|
34
|
-
<Button label={'START EXPLORING'} piller={'visit'} level={'primary'}
|
|
34
|
+
<Button label={'START EXPLORING'} piller={'visit'} level={'primary'} secondaryIcon={<ArrowRight />} />
|
|
35
35
|
}
|
|
36
|
-
|
|
37
36
|
/>
|
|
38
37
|
</ElementHolder>
|
|
39
38
|
)
|
|
@@ -43,7 +43,6 @@ const PromoBannerBlock = (props: PromoBannerBlockProps) => {
|
|
|
43
43
|
<PromoBannerBgDesign />
|
|
44
44
|
</div>
|
|
45
45
|
</div>
|
|
46
|
-
|
|
47
46
|
<div className={styles.promoBannerBottom}>
|
|
48
47
|
<div className={styles.promoBannerBottomLeft}>
|
|
49
48
|
<div className={styles.promoBannerBrandPiller}>
|
|
@@ -52,19 +51,16 @@ const PromoBannerBlock = (props: PromoBannerBlockProps) => {
|
|
|
52
51
|
</div>
|
|
53
52
|
{pillerTitle}
|
|
54
53
|
</div>
|
|
55
|
-
|
|
56
54
|
<div className={styles.promoBannerTitleContainer}>
|
|
57
55
|
<h1>{title}</h1>
|
|
58
56
|
<h2>{boldTitle}</h2>
|
|
59
57
|
</div>
|
|
60
|
-
|
|
61
58
|
<p>{content}</p>
|
|
62
|
-
|
|
63
59
|
{button}
|
|
64
60
|
</div>
|
|
65
61
|
|
|
66
62
|
<div className={styles.promoBannerBottomRight}>
|
|
67
|
-
<img src={
|
|
63
|
+
<img src={image} alt={title} />
|
|
68
64
|
</div>
|
|
69
65
|
</div>
|
|
70
66
|
</div>
|
|
@@ -16,4 +16,8 @@ export type { default as PathwayProps } from './Pathway/PathwayProps';
|
|
|
16
16
|
|
|
17
17
|
// PromoBanner
|
|
18
18
|
export { default as PromoBannerBlock } from './PromoBannerBlock/PromoBannerBlock';
|
|
19
|
-
export type { default as PromoBannerBlockProps } from './PromoBannerBlock/PromoBannerBlockProps';
|
|
19
|
+
export type { default as PromoBannerBlockProps } from './PromoBannerBlock/PromoBannerBlockProps';
|
|
20
|
+
|
|
21
|
+
//ImageContent
|
|
22
|
+
export {default as ImageContent} from './ImageContent/ImageContent'
|
|
23
|
+
export type {default as ImageContentProps} from './ImageContent/ImageContentProps'
|
|
@@ -5,7 +5,7 @@ interface ButtonProps {
|
|
|
5
5
|
size?: "default" | "large" | "small";
|
|
6
6
|
style?: "solid" | "hollow" | "no-border";
|
|
7
7
|
level?: 'primary' | 'secondary' | 'light'
|
|
8
|
-
pillar?: 'main' | 'live' | 'visit' | 'taste' | 'business' | 'participate'
|
|
8
|
+
pillar?: 'main' | 'live' | 'visit' | 'taste' | 'business' | 'participate' | undefined;
|
|
9
9
|
linkable?: boolean;
|
|
10
10
|
extraClass?: string;
|
|
11
11
|
link?:{
|
|
@@ -5,6 +5,10 @@ import HeaderRight from "./HeaderRight";
|
|
|
5
5
|
import HeaderRightItem from "./HeaderRightItem";
|
|
6
6
|
import MagnifyingGlass from "./MagnifyingGlass/MagnifyingGlass";
|
|
7
7
|
import MegaMenu from "./MegaMenu/MegaMenu";
|
|
8
|
+
import {List} from "../../Icons";
|
|
9
|
+
import "./header.scss"
|
|
10
|
+
import MobileNavigation from "./MobileNavigation/MobileNavigation";
|
|
11
|
+
import MobileNavigationItem from "./MobileNavigation/MobileNavigationItem";
|
|
8
12
|
|
|
9
13
|
|
|
10
14
|
const meta: Meta = {
|
|
@@ -28,7 +32,7 @@ const logo = (
|
|
|
28
32
|
|
|
29
33
|
const logoSmall = (
|
|
30
34
|
<a href={"/"}>
|
|
31
|
-
<img src={'/img/waikirikiri-full-logo.svg'} width={110} height={
|
|
35
|
+
<img src={'/img/waikirikiri-full-logo.svg'} width={110} height={34} alt={'Hello Better'}/>
|
|
32
36
|
</a>
|
|
33
37
|
);
|
|
34
38
|
|
|
@@ -39,25 +43,48 @@ const HeaderTemplate: Story = {
|
|
|
39
43
|
// @ts-ignore
|
|
40
44
|
return <Header logo={logo} logoSmall={logoSmall}>
|
|
41
45
|
<HeaderRight>
|
|
42
|
-
<HeaderRightItem menuDropdown={<MegaMenu pillar={'live'}/>}>
|
|
46
|
+
<HeaderRightItem extraClass={'desktop-item'} menuDropdown={<MegaMenu pillar={'live'}/>}>
|
|
43
47
|
Participate
|
|
44
48
|
</HeaderRightItem>
|
|
45
|
-
<HeaderRightItem>
|
|
49
|
+
<HeaderRightItem extraClass={'desktop-item'}>
|
|
46
50
|
Business
|
|
47
51
|
</HeaderRightItem>
|
|
48
|
-
<HeaderRightItem>
|
|
52
|
+
<HeaderRightItem extraClass={'desktop-item'}>
|
|
49
53
|
Live
|
|
50
54
|
</HeaderRightItem>
|
|
51
|
-
<HeaderRightItem>
|
|
55
|
+
<HeaderRightItem extraClass={'desktop-item'}>
|
|
52
56
|
Visit
|
|
53
57
|
</HeaderRightItem>
|
|
54
|
-
<HeaderRightItem>
|
|
58
|
+
<HeaderRightItem extraClass={'desktop-item'}>
|
|
55
59
|
Taste
|
|
56
60
|
</HeaderRightItem>
|
|
57
|
-
<HeaderRightItem>
|
|
61
|
+
<HeaderRightItem extraClass={'desktop-item'}>
|
|
58
62
|
<MagnifyingGlass/>
|
|
59
63
|
</HeaderRightItem>
|
|
64
|
+
<HeaderRightItem extraClass={'mobile-item'}>
|
|
65
|
+
<List/>
|
|
66
|
+
</HeaderRightItem>
|
|
60
67
|
</HeaderRight>
|
|
68
|
+
<MobileNavigation>
|
|
69
|
+
<li>
|
|
70
|
+
<MobileNavigationItem label={'Attractions'}/>
|
|
71
|
+
</li>
|
|
72
|
+
<li>
|
|
73
|
+
<MobileNavigationItem label={'Eateries'}/>
|
|
74
|
+
</li>
|
|
75
|
+
<li>
|
|
76
|
+
<MobileNavigationItem label={'Accommodation'}/>
|
|
77
|
+
</li>
|
|
78
|
+
<li>
|
|
79
|
+
<MobileNavigationItem label={'Why visit Selwyn'}/>
|
|
80
|
+
</li>
|
|
81
|
+
<li>
|
|
82
|
+
<MobileNavigationItem label={'Events'}/>
|
|
83
|
+
</li>
|
|
84
|
+
<li>
|
|
85
|
+
<MobileNavigationItem label={'Venues'}/>
|
|
86
|
+
</li>
|
|
87
|
+
</MobileNavigation>
|
|
61
88
|
</Header>
|
|
62
89
|
},
|
|
63
90
|
};
|
|
@@ -3,8 +3,8 @@ import HeaderRightItemProps from "./HeaderRightItemProps.tsx";
|
|
|
3
3
|
|
|
4
4
|
const HeaderRightItem = (props : HeaderRightItemProps) =>{
|
|
5
5
|
const { href , target, children, extraClass, icon, menuDropdown, active } = props
|
|
6
|
-
return <div className={`${styles.headerBottomItemHolder} ${active && styles.active}`}>
|
|
7
|
-
<a href={href} target={target} className={`${styles.headerBottomItem}
|
|
6
|
+
return <div className={`${styles.headerBottomItemHolder} ${extraClass} ${active && styles.active}`}>
|
|
7
|
+
<a href={href} target={target} className={`${styles.headerBottomItem} headerBottomItem`}>
|
|
8
8
|
{icon && <div className={styles.icon}>
|
|
9
9
|
{icon}
|
|
10
10
|
</div>}
|
|
@@ -8,12 +8,7 @@ import Container from "../../../Shared/Container/Container.tsx";
|
|
|
8
8
|
const MegaMenu = (props : MegaMenuProps) => {
|
|
9
9
|
|
|
10
10
|
const {
|
|
11
|
-
pillar,
|
|
12
|
-
menu,
|
|
13
|
-
imageSrc,
|
|
14
|
-
heading,
|
|
15
|
-
headingHighlight,
|
|
16
|
-
description
|
|
11
|
+
pillar = 'main',
|
|
17
12
|
} = props
|
|
18
13
|
|
|
19
14
|
return <div className={`${styles.megaMenu} ${pillar}`}>
|
|
@@ -5,11 +5,11 @@ export interface MenuItem {
|
|
|
5
5
|
title: string;
|
|
6
6
|
description: string;
|
|
7
7
|
target: string;
|
|
8
|
-
pillar: '
|
|
8
|
+
pillar: 'visit' | 'live' | 'business' | 'participate' | 'taste';
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
interface MegaMenuProps {
|
|
12
|
-
pillar: '
|
|
12
|
+
pillar: 'visit' | 'live' | 'business' | 'participate' | 'taste';
|
|
13
13
|
menu: MenuItem[];
|
|
14
14
|
headingHighlight?: string;
|
|
15
15
|
defaultImg?:string
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
} = props
|
|
12
|
+
|
|
13
|
+
return <div className={`${styles.mobileNavigation} ${extraClass} mobileNavigation`}>
|
|
14
|
+
<Container>
|
|
15
|
+
<ul className={`${styles.mobileNavigationWrapper} mobileNavigationWrapper`}>
|
|
16
|
+
{children}
|
|
17
|
+
</ul>
|
|
18
|
+
</Container>
|
|
19
|
+
<div className={styles.svg}>
|
|
20
|
+
<MobileWhatuOverlay/>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
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;
|