@hellobetterdigitalnz/selwynui 0.0.1-22 → 0.0.1-25

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 (48) hide show
  1. package/dist/Components/DataDisplay/ChatItenaryBlock/ChatItenaryBlock.d.ts +3 -0
  2. package/dist/Components/DataDisplay/ChatItenaryBlock/ChatItenaryBlockProps.d.ts +29 -0
  3. package/dist/Components/DataDisplay/ContactsBlock/ContactItem.d.ts +3 -0
  4. package/dist/Components/DataDisplay/ContactsBlock/ContactItemProps.d.ts +8 -0
  5. package/dist/Components/DataDisplay/ContactsBlock/ContactsBlock.d.ts +3 -0
  6. package/dist/Components/DataDisplay/ContactsBlock/ContactsBlockProps.d.ts +6 -0
  7. package/dist/Components/DataDisplay/index.d.ts +12 -0
  8. package/dist/Components/Icons/Communication/PaperPlaneTilt/PaperPlaneTilt.d.ts +3 -0
  9. package/dist/Components/Icons/OfficeAndEditing/Paperclip/Paperclip.d.ts +3 -0
  10. package/dist/Components/Icons/index.d.ts +2 -0
  11. package/dist/img/contact-image.svg +9 -0
  12. package/dist/img/promo-banner-img.png +0 -0
  13. package/dist/index.cjs.js +14 -13
  14. package/dist/index.cjs.js.map +1 -1
  15. package/dist/index.es.js +2361 -1440
  16. package/dist/index.es.js.map +1 -1
  17. package/dist/selwynui.css +1 -1
  18. package/package.json +1 -1
  19. package/src/Components/DataDisplay/ChatItenaryBlock/ChatItenaryBlock.stories.tsx +99 -0
  20. package/src/Components/DataDisplay/ChatItenaryBlock/ChatItenaryBlock.tsx +207 -0
  21. package/src/Components/DataDisplay/ChatItenaryBlock/ChatItenaryBlockProps.tsx +33 -0
  22. package/src/Components/DataDisplay/ChatItenaryBlock/chatItenaryBlock.module.scss +598 -0
  23. package/src/Components/DataDisplay/ContactsBlock/ContactItem.tsx +38 -0
  24. package/src/Components/DataDisplay/ContactsBlock/ContactItemProps.tsx +9 -0
  25. package/src/Components/DataDisplay/ContactsBlock/ContactsBlock.stories.tsx +51 -0
  26. package/src/Components/DataDisplay/ContactsBlock/ContactsBlock.tsx +24 -0
  27. package/src/Components/DataDisplay/ContactsBlock/ContactsBlockProps.tsx +8 -0
  28. package/src/Components/DataDisplay/ContactsBlock/contactsBlock.module.scss +143 -0
  29. package/src/Components/DataDisplay/ImageContent/imageContent.module.scss +13 -5
  30. package/src/Components/DataDisplay/IntroBlock/IntroBlock.stories.tsx +1 -1
  31. package/src/Components/DataDisplay/IntroBlock/introBlock.module.scss +18 -0
  32. package/src/Components/DataDisplay/KPIBlock/KPIBlock.stories.tsx +2 -2
  33. package/src/Components/DataDisplay/ListingDetailBlock/ListingDetailBlock.tsx +0 -0
  34. package/src/Components/DataDisplay/ListingDetailBlock/ListingDetailBlockProps.tsx +8 -0
  35. package/src/Components/DataDisplay/ListingDetailBlock/listingDetailBlock.module.scss +0 -0
  36. package/src/Components/DataDisplay/PathwayBlock/PathwayBlock.stories.tsx +1 -1
  37. package/src/Components/DataDisplay/PathwayBlock/PathwayBlock.tsx +2 -2
  38. package/src/Components/DataDisplay/PromoBannerBlock/PromoBanner.stories.tsx +3 -3
  39. package/src/Components/DataDisplay/PromoBannerBlock/promoBanner.module.scss +9 -13
  40. package/src/Components/DataDisplay/TestimonyCard/TestimonyCard.stories.tsx +1 -1
  41. package/src/Components/DataDisplay/TestimonyCard/testimonyCard.module.scss +72 -4
  42. package/src/Components/DataDisplay/index.ts +28 -1
  43. package/src/Components/Icons/Communication/PaperPlaneTilt/PaperPlaneTilt.tsx +37 -0
  44. package/src/Components/Icons/OfficeAndEditing/Paperclip/Paperclip.tsx +37 -0
  45. package/src/Components/Icons/index.ts +3 -1
  46. package/src/Components/Layout/Footer/footer.module.scss +3 -2
  47. package/src/Components/Shared/PillarLogo/PillarLogo.tsx +2 -2
  48. package/dist/img/promo-banner-image.svg +0 -9
@@ -0,0 +1,598 @@
1
+ .mainContainer {
2
+ position: relative;
3
+ z-index: 10;
4
+ width: 100%;
5
+ }
6
+
7
+ .chatItineraryBlock {
8
+ transition: all 0.5s ease;
9
+
10
+ &.hero {
11
+ display: flex;
12
+ flex-direction: column;
13
+ }
14
+
15
+ &.itinerary {
16
+ padding: 48px 0 96px;
17
+ border-top: 1px solid var(--color-taste);
18
+
19
+ @media (max-width: 834px) {
20
+ padding: 24px 0 48px;
21
+ }
22
+ }
23
+ }
24
+
25
+ .heroBackground {
26
+ min-height: calc(100vh - 100px);
27
+ position: relative;
28
+ border-top: 1px solid var(--color-taste);
29
+ display: flex;
30
+ overflow: hidden;
31
+
32
+ &::after {
33
+ content: '';
34
+ position: absolute;
35
+ right: 0;
36
+ top: 0;
37
+ bottom: 0;
38
+ width: 67%;
39
+ background-image: url('https://images.pexels.com/photos/1365425/pexels-photo-1365425.jpeg');
40
+ border-radius: 10000px 0 0 0;
41
+ background-size: cover;
42
+ background-position: center;
43
+ z-index: 0;
44
+
45
+ @media (max-width: 1024px) {
46
+ display: none;
47
+ }
48
+ }
49
+
50
+ @media (max-width: 834px) {
51
+ min-height: calc(100vh - 80px);
52
+ }
53
+ }
54
+
55
+ .heroContent {
56
+ position: relative;
57
+ padding-top: 96px;
58
+ z-index: 2;
59
+ width: 46%;
60
+ min-width: 662px;
61
+ display: flex;
62
+ flex-direction: column;
63
+ justify-content: flex-start;
64
+ padding-left: 120px;
65
+ padding-right: 24px;
66
+
67
+ .titleHeader {
68
+ padding-bottom: 72px;
69
+ letter-spacing: -2.88px;
70
+
71
+ @media (max-width: 834px) {
72
+ padding-bottom: 40px;
73
+ }
74
+ }
75
+
76
+ h1 {
77
+ font-size: var(--font-size-h3);
78
+ font-weight: var(--font-weight-body-regular);
79
+ line-height: 1;
80
+
81
+ @media (max-width: 834px) {
82
+ font-size: var(--font-size-h4);
83
+ }
84
+
85
+ @media (max-width: 480px) {
86
+ font-size: var(--font-size-h5);
87
+ }
88
+ }
89
+
90
+ .highlight {
91
+ font-weight: var(--font-weight-h5);
92
+ }
93
+
94
+ .subtitle {
95
+ font-size: var(--font-size-h6);
96
+ line-height: var(--line-height-h6);
97
+ margin: 0 0 72px 0;
98
+
99
+ @media (max-width: 834px) {
100
+ font-size: var(--font-size-body-regular);
101
+ margin: 0 0 40px 0;
102
+ }
103
+ }
104
+
105
+ @media (max-width: 1024px) {
106
+ width: 100%;
107
+ min-width: 0;
108
+ padding: 96px 24px 0 24px;
109
+ }
110
+
111
+ @media (max-width: 834px) {
112
+ padding: 60px 24px 0 24px;
113
+ }
114
+
115
+ @media (max-width: 480px) {
116
+ padding: 40px 16px 0 16px;
117
+ }
118
+ }
119
+
120
+ .inputWrapper {
121
+ width: 100%;
122
+ max-width: 600px;
123
+
124
+ @media (max-width: 834px) {
125
+ max-width: 100%;
126
+ }
127
+ }
128
+
129
+ .inputBox {
130
+ background: var(--bg-modal-color);
131
+ border-radius: var(--tw-8, 32px);
132
+ border: 2px solid var(--color-taste);
133
+ padding: 24px 24px 24px 24px;
134
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
135
+ width: 100%;
136
+ min-height: 200px;
137
+ display: flex;
138
+ flex-direction: column;
139
+
140
+ @media (max-width: 834px) {
141
+ padding: 16px;
142
+ min-height: 180px;
143
+ }
144
+
145
+ textarea {
146
+ width: 100%;
147
+ flex: 1;
148
+ border: none;
149
+ outline: none;
150
+ font-size: 18px;
151
+ resize: none;
152
+ font-family: inherit;
153
+ color: var(--header-bg);
154
+ margin-bottom: 16px;
155
+
156
+ @media (max-width: 834px) {
157
+ font-size: 16px;
158
+ }
159
+
160
+ &::placeholder {
161
+ color: var(--header-bg);
162
+
163
+ @media (max-width: 834px) {
164
+ font-size: var(--font-size-body-sm);
165
+ }
166
+ }
167
+ }
168
+ }
169
+
170
+ .inputActions {
171
+ display: flex;
172
+ flex-direction: row;
173
+ justify-content: space-between;
174
+ align-items: center;
175
+ gap: 12px;
176
+
177
+ @media (max-width: 834px) {
178
+ gap: 8px;
179
+ }
180
+ }
181
+
182
+ .attachButton {
183
+ background: none;
184
+ border: 1px solid var(--color-bg);
185
+ cursor: pointer;
186
+ padding: 12px;
187
+ display: flex;
188
+ align-items: center;
189
+ justify-content: center;
190
+ transition: all 0.3s ease;
191
+ border-radius: 48px;
192
+ width: 88px;
193
+ height: 51px;
194
+ flex-shrink: 0;
195
+
196
+ svg {
197
+ width: 24px;
198
+ height: 24px;
199
+ color: var(--color-bg);
200
+ }
201
+
202
+ @media (max-width: 834px) {
203
+ width: 48px;
204
+ height: 48px;
205
+ padding: 8px;
206
+
207
+ svg {
208
+ width: 20px;
209
+ height: 20px;
210
+ }
211
+ }
212
+ }
213
+
214
+ .planButton {
215
+ flex: 1;
216
+ display: flex;
217
+ justify-content: flex-end;
218
+ min-width: 0;
219
+
220
+ button {
221
+ width: 100%;
222
+ max-width: none;
223
+ }
224
+
225
+ .planButtonDesktop {
226
+ display: block;
227
+
228
+ @media (max-width: 768px) {
229
+ display: none;
230
+ }
231
+ }
232
+
233
+ .planButtonMobile {
234
+ background: var(--color-bg);
235
+ cursor: pointer;
236
+ border: none;
237
+ align-items: center;
238
+ justify-content: center;
239
+ border-radius: 48px;
240
+ flex-shrink: 0;
241
+ height: 48px;
242
+ width: 48px;
243
+ display: none;
244
+ padding: 0;
245
+
246
+ svg {
247
+ color: var(--color-taste);
248
+ width: 20px;
249
+ height: 20px;
250
+ }
251
+
252
+ @media (max-width: 768px) {
253
+ display: flex;
254
+ }
255
+ }
256
+ }
257
+
258
+ .itineraryWrapper {
259
+ background: var(--color-sand);
260
+ border-radius: 16px;
261
+ padding: 40px;
262
+ position: relative;
263
+ animation: fadeIn 0.5s ease;
264
+ width: 100%;
265
+
266
+ @media (max-width: 834px) {
267
+ padding: 24px 16px;
268
+ border-radius: 8px;
269
+ }
270
+ }
271
+
272
+ @keyframes fadeIn {
273
+ from {
274
+ opacity: 0;
275
+ transform: translateY(20px);
276
+ }
277
+ to {
278
+ opacity: 1;
279
+ transform: translateY(0);
280
+ }
281
+ }
282
+
283
+ .itineraryTitle {
284
+ font-size: var(--font-size-h4);
285
+ font-weight: var(--font-weight-bold);
286
+ line-height: var(--line-height-h3);
287
+ letter-spacing: -1.92px;
288
+ color: var(--header-bg);
289
+ margin: 0 0 72px 0;
290
+
291
+ @media (max-width: 834px) {
292
+ font-size: var(--font-size-h5);
293
+ margin: 0 0 40px 0;
294
+ }
295
+ }
296
+
297
+ .conversation {
298
+ margin-bottom: 40px;
299
+
300
+ @media (max-width: 834px) {
301
+ margin-bottom: 24px;
302
+ }
303
+ }
304
+
305
+ .assistantMessage {
306
+ font-size: var(--font-size-label);
307
+ line-height: var(--line-height-body-regular);
308
+ font-weight: var(--font-weight-h4);
309
+ color: var(--header-bg);
310
+ margin: 0 0 20px 0;
311
+ padding: 16px;
312
+ background: var(--color-sand);
313
+ border-radius: 24px;
314
+
315
+ @media (max-width: 834px) {
316
+ font-size: var(--font-size-body-sm);
317
+ padding: 12px;
318
+ }
319
+ }
320
+
321
+ .userMessage {
322
+ margin: 20px 0;
323
+ display: flex;
324
+ justify-content: flex-end;
325
+
326
+ @media (max-width: 834px) {
327
+ margin: 16px 0;
328
+ }
329
+
330
+ p {
331
+ background: var(--bg-modal-color);
332
+ padding: 16px;
333
+ border-radius: 24px;
334
+ max-width: 80%;
335
+ margin: 0;
336
+ font-size: 16px;
337
+ line-height: var(--line-height-body-regular);
338
+ font-weight: var(--font-weight-h4);
339
+ color: var(--header-bg);
340
+
341
+ @media (max-width: 834px) {
342
+ font-size: var(--font-size-body-sm);
343
+ padding: 12px;
344
+ max-width: 90%;
345
+ }
346
+ }
347
+ }
348
+
349
+ .daySection {
350
+ margin: 40px 0;
351
+ padding: 48px 0;
352
+
353
+ @media (max-width: 834px) {
354
+ margin: 24px 0;
355
+ padding: 24px 0;
356
+ }
357
+ }
358
+
359
+ .dayHeader {
360
+ display: flex;
361
+ justify-content: space-between;
362
+ align-items: center;
363
+ margin-bottom: 16px;
364
+
365
+ h3 {
366
+ font-size: var(--font-size-h5);
367
+ font-weight: var(--font-weight-bold);
368
+ line-height: var(--line-height-h6);
369
+ letter-spacing: -0.72px;
370
+ margin: 0;
371
+
372
+ @media (max-width: 834px) {
373
+ font-size: var(--font-size-h6);
374
+ }
375
+ }
376
+ }
377
+
378
+ .navigationButtons {
379
+ display: flex;
380
+ gap: 8px;
381
+
382
+ @media (max-width: 834px) {
383
+ display: none;
384
+ }
385
+ }
386
+
387
+ .navButtonRight {
388
+ width: 40px;
389
+ height: 40px;
390
+ border-radius: 50%;
391
+ background: #2D5016;
392
+ border: none;
393
+ color: white;
394
+ cursor: pointer;
395
+ display: flex;
396
+ align-items: center;
397
+ justify-content: center;
398
+
399
+ svg {
400
+ width: 32px;
401
+ height: 32px;
402
+ }
403
+ }
404
+
405
+ .navButtonLeft {
406
+ width: 40px;
407
+ height: 40px;
408
+ border-radius: 50%;
409
+ background: none;
410
+ border: 1px solid #2D5016;
411
+ color: #2D5016;
412
+ cursor: pointer;
413
+ display: flex;
414
+ align-items: center;
415
+ justify-content: center;
416
+
417
+ svg {
418
+ width: 32px;
419
+ height: 32px;
420
+ }
421
+ }
422
+
423
+ .daySubtitle {
424
+ font-size: 28px;
425
+ font-weight: var(--font-weight-h4);
426
+ line-height: var(--line-height-h6);
427
+ letter-spacing: -0.56px;
428
+ margin: 0 0 12px 0;
429
+
430
+ @media (max-width: 834px) {
431
+ font-size: var(--font-size-h7);
432
+ }
433
+ }
434
+
435
+ .dayDescription {
436
+ font-size: var(--font-size-body-regular);
437
+ line-height: var(--line-height-body-regular);
438
+ font-weight: var(--font-weight-h4);
439
+ margin: 0 0 48px 0;
440
+
441
+ @media (max-width: 834px) {
442
+ font-size: var(--font-size-body-sm);
443
+ margin: 0 0 24px 0;
444
+ }
445
+ }
446
+
447
+ .downloadButton {
448
+ padding-bottom: 72px;
449
+
450
+ svg {
451
+ width: 20px;
452
+ height: 20px;
453
+ }
454
+
455
+ @media (max-width: 834px) {
456
+ padding-bottom: 40px;
457
+ }
458
+ }
459
+
460
+ .tags {
461
+ display: flex;
462
+ gap: 12px;
463
+ margin: 72px 0 16px 0;
464
+ flex-wrap: wrap;
465
+
466
+ @media (max-width: 834px) {
467
+ margin: 40px 0 16px 0;
468
+ gap: 8px;
469
+ }
470
+ }
471
+
472
+ .chatInput {
473
+ display: flex;
474
+ align-items: center;
475
+ padding: 16px;
476
+ min-height: 162px;
477
+ background: #F5F5F5;
478
+ border-radius: 12px;
479
+ border: 2px solid #92C134;
480
+ margin-top: 24px;
481
+ width: 100%;
482
+ box-sizing: border-box;
483
+
484
+ @media (max-width: 834px) {
485
+ padding: 12px;
486
+ min-height: auto;
487
+ }
488
+
489
+ .chatInputBox {
490
+ display: flex;
491
+ flex-direction: row;
492
+ justify-content: space-between;
493
+ align-items: center;
494
+ width: 100%;
495
+ gap: 12px;
496
+
497
+ @media (max-width: 834px) {
498
+ gap: 8px;
499
+ }
500
+ }
501
+
502
+ input {
503
+ flex: 1;
504
+ border: none;
505
+ background: none;
506
+ outline: none;
507
+ font-size: 16px;
508
+ color: #333;
509
+ min-width: 0;
510
+
511
+ @media (max-width: 834px) {
512
+ font-size: 14px;
513
+ }
514
+
515
+ &::placeholder {
516
+ color: #999;
517
+ }
518
+ }
519
+ }
520
+
521
+ .sendButton {
522
+ width: 88px;
523
+ height: 51px;
524
+ border-radius: 48px;
525
+ background: #2D5016;
526
+ border: none;
527
+ color: white;
528
+ cursor: pointer;
529
+ display: flex;
530
+ align-items: center;
531
+ justify-content: center;
532
+ transition: background 0.3s ease;
533
+ flex-shrink: 0;
534
+
535
+ &:hover {
536
+ background: #234010;
537
+ }
538
+
539
+ svg {
540
+ width: 20px;
541
+ height: 20px;
542
+ }
543
+
544
+ @media (max-width: 834px) {
545
+ width: 48px;
546
+ height: 48px;
547
+
548
+ svg {
549
+ width: 18px;
550
+ height: 18px;
551
+ }
552
+ }
553
+ }
554
+
555
+ .itinaryHeader {
556
+ border-top: 1px solid #234010;
557
+
558
+ h4 {
559
+ font-size: var(--font-size-h4);
560
+ color: #23461F;
561
+ font-weight: var(--font-weight-bold);
562
+ line-height: var(--line-height-h3);
563
+ letter-spacing: -1.92px;
564
+ margin-top: 72px;
565
+
566
+ @media (max-width: 834px) {
567
+ font-size: var(--font-size-h5);
568
+ margin-top: 40px;
569
+ }
570
+ }
571
+
572
+ p {
573
+ font-size: 28px;
574
+ font-weight: var(--font-weight-h4);
575
+ line-height: var(--line-height-h6);
576
+ letter-spacing: -0.56px;
577
+ color: #23461F;
578
+ margin-top: 48px;
579
+
580
+ @media (max-width: 834px) {
581
+ font-size: var(--font-size-h7);
582
+ margin-top: 24px;
583
+ }
584
+ }
585
+ }
586
+
587
+ .heroSvg {
588
+ color: var(--color-text);
589
+ position: absolute;
590
+ z-index: -5;
591
+ left: 0;
592
+ bottom: 0;
593
+ height: 340px;
594
+
595
+ @media (max-width: 1024px) {
596
+ display: none;
597
+ }
598
+ }
@@ -0,0 +1,38 @@
1
+ import ArrowRight from "../../Icons/Arrows/ArrowRight/ArrowRight";
2
+ import ContactItemProps from "./ContactItemProps";
3
+ import styles from "./contactsBlock.module.scss";
4
+
5
+ const ContactItem = (props: ContactItemProps) => {
6
+ const {
7
+ image,
8
+ name,
9
+ position,
10
+ email,
11
+ mobile,
12
+ } = props;
13
+
14
+ return (
15
+ <div className={styles.contactCard}>
16
+ {image && <img src={image} alt="contact-image" />}
17
+
18
+ <div className={styles.contactContentWrapper}>
19
+ <div className={styles.contactCardHeader}>
20
+ {name && <h1>{name}</h1>}
21
+ {position && <h2>{position}</h2>}
22
+ </div>
23
+
24
+ <div className={styles.contactMiddleContent}>
25
+ {email && <p>{email}</p>}
26
+ {mobile && <p>{mobile}</p>}
27
+ </div>
28
+
29
+ <div className={styles.contactLink}>
30
+ <p>Connect on LinkedIn</p>
31
+ <ArrowRight />
32
+ </div>
33
+ </div>
34
+ </div>
35
+ )
36
+ }
37
+
38
+ export default ContactItem;
@@ -0,0 +1,9 @@
1
+ interface ContactItemProps {
2
+ image?: string;
3
+ name?: string;
4
+ position?: string;
5
+ email?: string;
6
+ mobile?: string;
7
+ }
8
+
9
+ export default ContactItemProps;
@@ -0,0 +1,51 @@
1
+ import React from "react";
2
+ import { Meta, StoryObj } from "@storybook/react-vite";
3
+ import ElementHolder from "../../Shared/ElementHolder/ElementHolder";
4
+ import ContactItem from "./ContactItem";
5
+ import ContactBlock from "./ContactsBlock";
6
+
7
+ const meta: Meta = {
8
+ title: "DataDisplay / ContactsBlock",
9
+ parameters: {
10
+ layout: 'fullscreen',
11
+ },
12
+ tags: ["autodocs"],
13
+ }
14
+
15
+ export default meta;
16
+
17
+ type Story = StoryObj<typeof meta>;
18
+
19
+ const ContactsBlockTemplate: Story = {
20
+ render: () => {
21
+ return (
22
+ <ElementHolder paddingTop="md" paddingBottom="md" pillar="visit" level="light">
23
+ <ContactBlock contactBlockTitle={'Meet the team'} contactItem={
24
+ <>
25
+ <ContactItem
26
+ image={'./img/contact-image.svg'}
27
+ name={'Sarah Browne'}
28
+ position={'Marketing Manager'}
29
+ email={'sarahb@selwyn.nz'}
30
+ mobile={'03 345 3456'}
31
+ />
32
+
33
+ <ContactItem
34
+ image={'./img/contact-image.svg'}
35
+ name={'Sarah Browne'}
36
+ position={'Marketing Manager'}
37
+ email={'sarahb@selwyn.nz'}
38
+ mobile={'03 345 3456'}
39
+ />
40
+ </>
41
+ }>
42
+
43
+ </ContactBlock>
44
+ </ElementHolder>
45
+ )
46
+ }
47
+ }
48
+
49
+ export const ContactBlockComponent = {
50
+ ...ContactsBlockTemplate
51
+ };
@@ -0,0 +1,24 @@
1
+ import { Container } from "../../Shared";
2
+ import ContactsBlockProps from "./ContactsBlockProps";
3
+ import styles from "./contactsBlock.module.scss";
4
+
5
+ const ContactsBlock = (props: ContactsBlockProps) => {
6
+ const {
7
+ contactBlockTitle,
8
+ contactItem
9
+ } = props;
10
+
11
+ return (
12
+ <div className={styles.contactsBlock}>
13
+ <Container>
14
+ {contactBlockTitle && <h1 className={styles.contactsBlockHeader}>{contactBlockTitle}</h1>}
15
+
16
+ {contactItem && <div className={styles.contactsCardsWrapper}>
17
+ {contactItem}
18
+ </div>}
19
+ </Container>
20
+ </div>
21
+ )
22
+ }
23
+
24
+ export default ContactsBlock;
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from "react";
2
+
3
+ interface ContactsBlockProps {
4
+ contactBlockTitle?: string;
5
+ contactItem?: ReactNode;
6
+ }
7
+
8
+ export default ContactsBlockProps;