@hellobetterdigitalnz/selwynui 0.0.1-51 → 0.0.1-54

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 (37) hide show
  1. package/dist/Components/DataDisplay/Accordion/AccordionProps.d.ts +1 -0
  2. package/dist/Components/DataDisplay/ImageContent/ImageContentProps.d.ts +3 -0
  3. package/dist/Components/Shared/Container/ContainerProps.d.ts +4 -0
  4. package/dist/index.cjs.js +6 -6
  5. package/dist/index.cjs.js.map +1 -1
  6. package/dist/index.es.js +2152 -2158
  7. package/dist/index.es.js.map +1 -1
  8. package/dist/selwynui.css +1 -1
  9. package/package.json +1 -1
  10. package/src/Components/DataDisplay/Accordion/Accordion.stories.tsx +7 -19
  11. package/src/Components/DataDisplay/Accordion/Accordion.tsx +7 -4
  12. package/src/Components/DataDisplay/Accordion/AccordionItem.tsx +2 -2
  13. package/src/Components/DataDisplay/Accordion/AccordionProps.tsx +2 -1
  14. package/src/Components/DataDisplay/Accordion/accordion-bg-design.tsx +5 -5
  15. package/src/Components/DataDisplay/Accordion/accordion.module.scss +42 -23
  16. package/src/Components/DataDisplay/CarouselBlock/CarouselBlock.tsx +38 -36
  17. package/src/Components/DataDisplay/CarouselBlock/carouselBlock.module.scss +42 -36
  18. package/src/Components/DataDisplay/ChatItenaryBlock/ChatItenaryBlock.tsx +1 -1
  19. package/src/Components/DataDisplay/ImageContent/ImageContent.stories.tsx +2 -0
  20. package/src/Components/DataDisplay/ImageContent/ImageContent.tsx +6 -4
  21. package/src/Components/DataDisplay/ImageContent/ImageContentProps.tsx +4 -0
  22. package/src/Components/DataDisplay/KPIBlock/KPIBlock.stories.tsx +1 -1
  23. package/src/Components/DataDisplay/KPIBlock/KPIBlock.tsx +1 -17
  24. package/src/Components/DataDisplay/KPIBlock/kpiBlock.module.scss +2 -0
  25. package/src/Components/DataDisplay/slider.scss +0 -1
  26. package/src/Components/Layout/Footer/Footer.tsx +1 -1
  27. package/src/Components/Layout/Footer/FooterBottom.tsx +7 -7
  28. package/src/Components/Layout/Footer/FooterTop.tsx +1 -1
  29. package/src/Components/Layout/Header/Header.tsx +1 -1
  30. package/src/Components/Layout/Header/MegaMenu/MegaMenu.tsx +1 -1
  31. package/src/Components/Layout/Header/MobileNavigation/MobileNavigation.tsx +1 -1
  32. package/src/Components/Layout/Header/MobileNavigation/MobileSubNavigation/MobileSubNavigation.tsx +1 -1
  33. package/src/Components/Layout/HeroBanner/HeroBanner.tsx +3 -3
  34. package/src/Components/Shared/Container/Container.tsx +15 -8
  35. package/src/Components/Shared/Container/ContainerProps.tsx +6 -1
  36. package/src/Components/Shared/Container/container.module.scss +22 -0
  37. package/src/Components/Shared/ElementHolder/elementHolder.module.scss +9 -5
@@ -6,6 +6,8 @@ import Accordion from './Accordion.tsx';
6
6
  import AccordionItem from './AccordionItem.tsx';
7
7
  import Container from "../../Shared/Container/Container";
8
8
  import ElementHolder from "../../Shared/ElementHolder/ElementHolder";
9
+ import Button from "../../Form/Button/Button.tsx";
10
+ import { ArrowRight } from "@hellobetterdigitalnz/selwynui";
9
11
 
10
12
  const meta: Meta = {
11
13
  title: 'DataDisplay / Accordion',
@@ -22,7 +24,6 @@ type Story = StoryObj<typeof meta>;
22
24
 
23
25
  const AccordionTemplate: Story = {
24
26
  render: ({ items, ...args }) => {
25
- // keep track of open states by index
26
27
  const [openItems, setOpenItems] = useState<Record<string, boolean>>({});
27
28
 
28
29
  const handleToggle = (id: string, value: boolean) => {
@@ -31,8 +32,7 @@ const AccordionTemplate: Story = {
31
32
 
32
33
  return (
33
34
  <ElementHolder paddingBottom="md" paddingTop="sm" pillar="visit">
34
- <Container>
35
- <Accordion {...args}>
35
+ <Accordion {...args}>
36
36
  {items.map((item: any) => (
37
37
  <AccordionItem
38
38
  key={item.index}
@@ -45,9 +45,6 @@ const AccordionTemplate: Story = {
45
45
  </AccordionItem>
46
46
  ))}
47
47
  </Accordion>
48
- </Container>
49
-
50
- {/* Buttons to trigger specific IDs */}
51
48
  </ElementHolder>
52
49
  );
53
50
  },
@@ -58,32 +55,23 @@ export const Example = {
58
55
  args: {
59
56
  allowMultiple:true,
60
57
  title: 'Insights lorem ipsum dolor sit amet',
61
- content: 'Sed fringilla magna facilisis auctor venenatis. Duis ut vestibulum risus. Nunc a finibus dui. Donec hendrerit tristique odio, ac porta dui maximus et. Duis vestibulum velit eget erat fermentum, fermentum mollis tortor tincidunt. Integer lacinia lacinia urna scelerisque mattis. Fusce vestibulum felis eget magna placerat faucibus id et tellus. Sed rutrum mi sed leo viverra tempus. Nunc eu congue tellus, sed dapibus dui.',
58
+ content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. ',
62
59
  // image: '/img/accordion-image.svg',
63
60
  items: [
64
61
  {
65
62
  index:'1',
66
63
  title: 'Lorem ipsum dolor',
67
- children: 'Sed fringilla magna facilisis auctor venenatis. Duis ut vestibulum risus. Nunc a finibus dui. Donec hendrerit tristique odio, ac porta dui maximus et. Duis vestibulum velit eget erat fermentum, fermentum mollis tortor tincidunt. Integer lacinia lacinia urna scelerisque mattis. Fusce vestibulum felis eget magna placerat faucibus id et tellus. Sed rutrum mi sed leo viverra tempus. Nunc eu congue tellus, sed dapibus dui.'
64
+ children: <p>Sed fringilla magna facilisis auctor venenatis. Duis ut vestibulum risus. Nunc a finibus dui. Donec hendrerit tristique odio, ac porta dui maximus et. Duis vestibulum velit eget erat fermentum, fermentum mollis tortor tincidunt. Integer lacinia lacinia urna scelerisque mattis. Fusce vestibulum felis eget magna placerat faucibus id et tellus. Sed rutrum mi sed leo viverra tempus. Nunc eu congue tellus, sed dapibus dui.</p>
68
65
  },
69
66
  {
70
67
  index:'2',
71
68
  title: 'Lorem ipsum dolor',
72
69
  children: <>
73
- <p>'Sed fringilla magna facilisis auctor venenatis. Duis ut vestibulum risus. Nunc a finibus dui. Donec hendrerit tristique odio, ac porta dui maximus et. Duis vestibulum velit eget erat fermentum, fermentum mollis tortor tincidunt. Integer lacinia lacinia urna scelerisque mattis. Fusce vestibulum felis eget magna placerat faucibus id et tellus. Sed rutrum mi sed leo viverra tempus. Nunc eu congue tellus, sed dapibus dui.'</p>
70
+ <p>Sed fringilla magna facilisis auctor venenatis. Duis ut vestibulum risus. Nunc a finibus dui. Donec hendrerit tristique odio, ac porta dui maximus et. Duis vestibulum velit eget erat fermentum, fermentum mollis tortor tincidunt. Integer lacinia lacinia urna scelerisque mattis. Fusce vestibulum felis eget magna placerat faucibus id et tellus. Sed rutrum mi sed leo viverra tempus. Nunc eu congue tellus, sed dapibus dui.</p>
71
+ <Button label="LEARN MORE" secondaryIcon={<ArrowRight/>} pillar="taste"/>
74
72
  <img src="/img/accordion-image.svg" alt="" />
75
73
  </>,
76
74
  },
77
- {
78
- index:'3',
79
- title: 'Lorem ipsum dolor',
80
- children: 'Sed fringilla magna facilisis auctor venenatis. Duis ut vestibulum risus. Nunc a finibus dui. Donec hendrerit tristique odio, ac porta dui maximus et. Duis vestibulum velit eget erat fermentum, fermentum mollis tortor tincidunt. Integer lacinia lacinia urna scelerisque mattis. Fusce vestibulum felis eget magna placerat faucibus id et tellus. Sed rutrum mi sed leo viverra tempus. Nunc eu congue tellus, sed dapibus dui.'
81
- },
82
- {
83
- index:'4',
84
- title: 'Lorem ipsum dolor',
85
- children: 'Sed fringilla magna facilisis auctor venenatis. Duis ut vestibulum risus. Nunc a finibus dui. Donec hendrerit tristique odio, ac porta dui maximus et. Duis vestibulum velit eget erat fermentum, fermentum mollis tortor tincidunt. Integer lacinia lacinia urna scelerisque mattis. Fusce vestibulum felis eget magna placerat faucibus id et tellus. Sed rutrum mi sed leo viverra tempus. Nunc eu congue tellus, sed dapibus dui.'
86
- },
87
75
  ],
88
76
  },
89
77
  };
@@ -3,6 +3,7 @@ import AccordionProvider from "./AccordionProvider";
3
3
  import AccordionProps from "./AccordionProps.tsx";
4
4
  import ScrollFadeIn from "../../Shared/ScrollFadeIn/ScrollFadeIn.tsx";
5
5
  import AccordionBgDesign from "./accordion-bg-design.tsx";
6
+ import { Container } from "../../Shared/index.ts";
6
7
 
7
8
  const Accordion = (props: AccordionProps) => {
8
9
  const {
@@ -31,7 +32,8 @@ const Accordion = (props: AccordionProps) => {
31
32
 
32
33
  return (
33
34
  <AccordionProvider allowMultiple={allowMultiple ?? false} >
34
- <div className={styles.accordionBlock}>
35
+ <Container>
36
+ <div className={styles.accordionBlock} >
35
37
  {title && (
36
38
  <div className={styles.accordionHeading}>
37
39
  <ScrollFadeIn>
@@ -42,12 +44,13 @@ const Accordion = (props: AccordionProps) => {
42
44
 
43
45
  )}
44
46
  <div className={`${styles.accordionWrapper}`}>
45
- <div className={styles.accordionBgDesignContainer}>
46
- <AccordionBgDesign />
47
- </div>
48
47
  {children}
49
48
  </div>
49
+ <div className={styles.accordionBgDesignContainer}>
50
+ <AccordionBgDesign />
51
+ </div>
50
52
  </div>
53
+ </Container>
51
54
  </AccordionProvider>
52
55
  );
53
56
  };
@@ -132,7 +132,7 @@ const AccordionItem = (props: AccordionItemProps) => {
132
132
  <h4>{title}</h4>
133
133
  </div>
134
134
  <div className={`${styles.icon} accordionIcon`}>
135
- {isOpened ? <CaretUp /> : <CaretDown />}
135
+ {isOpened ? <CaretUp/> : <CaretDown />}
136
136
  </div>
137
137
  </div>
138
138
 
@@ -150,7 +150,7 @@ const AccordionItem = (props: AccordionItemProps) => {
150
150
  </div>
151
151
  </div>
152
152
 
153
- <hr className={styles.accordionHorizontalLine}/>
153
+ <div className={styles.accordionHorizontalLine}></div>
154
154
 
155
155
  </div>
156
156
  );
@@ -1,4 +1,4 @@
1
- import {ReactNode} from "react";
1
+ import { ReactNode } from "react";
2
2
 
3
3
  interface AccordionProps {
4
4
  allowMultiple?: boolean;
@@ -8,6 +8,7 @@ interface AccordionProps {
8
8
  image?: string;
9
9
  activeId?: number | null;
10
10
  onActiveIdChange?: (id: number | null) => void;
11
+ pillar?: 'visit' | 'live' | 'business' | 'participate' | 'taste'
11
12
  }
12
13
 
13
14
  export default AccordionProps;
@@ -1,11 +1,11 @@
1
1
  const AccordionBgDesign = () => {
2
2
  return (
3
- <svg xmlns="http://www.w3.org/2000/svg" width="543" height="490" viewBox="0 0 543 490" fill="none">
3
+ <svg xmlns="http://www.w3.org/2000/svg" width="639" height="577" viewBox="0 0 639 577" fill="none">
4
4
  <g opacity="0.05">
5
- <path d="M0 251.765C145.603 251.765 263.669 358.442 263.669 490H0V251.765Z" fill="#92C134" />
6
- <path d="M0 0.0778264C145.603 0.0778264 263.669 106.755 263.669 238.313H0V0.0778264Z" fill="#92C134" />
7
- <path d="M543 489.922C543 358.364 424.934 251.687 279.331 251.687V489.922H543Z" fill="#92C134" />
8
- <path d="M543 238.235C543 106.677 424.934 0 279.331 0V238.235H543Z" fill="#92C134" />
5
+ <path d="M639 296.466C467.655 296.466 328.715 422.083 328.715 577H639V296.466Z" fill="currentColor" />
6
+ <path d="M639 0.0916445C467.655 0.0916445 328.715 125.71 328.715 280.626H639V0.0916445Z" fill="currentColor" />
7
+ <path d="M0 576.908C0 421.992 138.94 296.374 310.285 296.374V576.908H0Z" fill="currentColor" />
8
+ <path d="M0 280.534C0 125.618 138.94 0 310.285 0V280.534H0Z" fill="currentColor" />
9
9
  </g>
10
10
  </svg>
11
11
  )
@@ -4,7 +4,8 @@
4
4
  font-size: var(--font-size-h4);
5
5
  font-weight: var(--font-weight-bold);
6
6
  line-height: var(--line-height-h4);
7
- padding-bottom: 72px;
7
+ letter-spacing: var(--letter-spacing-h4);
8
+ padding-bottom: 32px;
8
9
  }
9
10
 
10
11
  p {
@@ -19,7 +20,6 @@
19
20
  }
20
21
 
21
22
  .accordionWrapper {
22
- margin-block: 72px;
23
23
 
24
24
  .title {
25
25
  flex: 1;
@@ -32,46 +32,61 @@
32
32
  font-weight: var(--font-weight-bold);
33
33
  line-height: var(--line-height-body-regular);
34
34
  }
35
+ }
35
36
 
36
- .accordionIcon {
37
- display: flex;
38
- align-items: center;
39
- margin-right: 4px;
37
+ .icon {
38
+ display: flex;
39
+ align-items: center;
40
+ margin-right: 4px;
40
41
 
41
- svg {
42
- width: 24px;
43
- height: 24px;
44
- }
42
+ svg {
43
+ width: 24px !important;
44
+ height: 24px !important;
45
45
  }
46
46
  }
47
47
 
48
+
48
49
  .accordion {
49
50
  display: flex;
50
51
  flex-direction: column;
51
52
  overflow: hidden;
53
+
54
+ .accordionHorizontalLine {
55
+ border-bottom: 1px solid var(--color-text);
56
+ height: 0;
57
+ width: 100%;
58
+ }
52
59
  }
53
60
 
54
61
  .header {
55
62
  display: flex;
56
63
  align-items: center;
57
64
  cursor: pointer;
65
+ padding: 16px 32px;
58
66
  }
59
67
 
60
68
  .accordionBodyHolder {
61
69
  .accordionBody {
62
- font-size: var(--font-size-body-regular);
63
- font-weight: var(--font-weight-body-regular);
64
- }
65
- }
66
70
 
67
- .accordionHorizontalLine {
68
- background: var(--color-text);
69
- margin-block: 16px;
71
+ img {
72
+ width: 100%;
73
+ padding: 32px 0;
74
+ }
75
+ }
70
76
  }
71
77
 
72
78
  .bodyInner {
73
79
  font-size: var(--font-size-body-regular);
74
80
  font-weight: var(--font-weight-body-regular);
81
+ padding-left: 32px;
82
+
83
+ p {
84
+ margin: 8px 32px 32px 0;
85
+ font-size: var(--font-size-body-regular);
86
+ font-weight: var(--font-weight-body-regular);
87
+ padding: 0 16px 0 0;
88
+ line-height: var(--line-height-body-regular);
89
+ }
75
90
  }
76
91
  }
77
92
 
@@ -79,25 +94,29 @@
79
94
 
80
95
  display: flex;
81
96
  flex-grow: 1;
82
- gap: 90px;
97
+ margin: 0 -45px;
83
98
 
84
99
  .accordionHeading {
85
- width: 50%;
100
+ width: 39%;
101
+ padding: 0 45px;
102
+
103
+ h2 {
104
+ padding-bottom: 72px;
105
+ }
86
106
  }
87
107
 
88
108
  .accordionWrapper {
89
- width: 50%;
109
+ width: 61%;
90
110
  position: relative;
111
+ padding: 0 45px;
91
112
  }
92
113
 
93
114
  .accordionBgDesignContainer {
94
115
  position: absolute;
95
- top: -40px;
116
+ top: 191px;
96
117
  right: 0;
97
118
  pointer-events: none;
98
119
  display: block;
99
120
  }
100
121
  }
101
-
102
-
103
122
  }
@@ -25,44 +25,46 @@ const CarouselBlock = (props : CarouselBlockProps) =>{
25
25
 
26
26
  return <div className={`${styles.carousel} carouselBlock`}>
27
27
  <Container>
28
- <div className={styles.carouselTitle}>
29
- <h3>{title}</h3>
30
- <div className={styles.actions}>
31
- <button
32
- className="custom-arrow prev"
33
- onClick={() => sliderRef.current?.slickPrev()}
34
- aria-label="Previous"
35
- >
36
- <CaretLeft type="thin" />
37
- </button>
28
+ <div className={styles.carouselWrapper}>
29
+ <div className={styles.carouselTitle}>
30
+ <h3>{title}</h3>
31
+ <div className={styles.actions}>
32
+ <button
33
+ className="custom-arrow prev"
34
+ onClick={() => sliderRef.current?.slickPrev()}
35
+ aria-label="Previous"
36
+ >
37
+ <CaretLeft type="thin" />
38
+ </button>
38
39
 
39
- <button
40
- className="custom-arrow next"
41
- onClick={() => sliderRef.current?.slickNext()}
42
- aria-label="Next"
43
- >
44
- <CaretRight type="thin" />
45
- </button>
46
- </div>
47
- </div>
48
- <Slider ref={sliderRef} {...settings}>
49
- {cards.map((card, index) => (
50
- <div className={styles.card}>
51
- <DetailsCard
52
- key={index}
53
- title={card.title}
54
- date={card.date}
55
- description={card.description}
56
- image={card.image}
57
- link={card.link}
58
- pillar={card.pillar}
59
- variation={'long'}
60
- />
40
+ <button
41
+ className="custom-arrow next"
42
+ onClick={() => sliderRef.current?.slickNext()}
43
+ aria-label="Next"
44
+ >
45
+ <CaretRight type="thin" />
46
+ </button>
61
47
  </div>
62
- ))}
63
- </Slider>
64
- <div className={styles.btn}>
65
- {action}
48
+ </div>
49
+ <Slider ref={sliderRef} {...settings}>
50
+ {cards.map((card, index) => (
51
+ <div className={styles.card}>
52
+ <DetailsCard
53
+ key={index}
54
+ title={card.title}
55
+ date={card.date}
56
+ description={card.description}
57
+ image={card.image}
58
+ link={card.link}
59
+ pillar={card.pillar}
60
+ variation={'long'}
61
+ />
62
+ </div>
63
+ ))}
64
+ </Slider>
65
+ <div className={styles.btn}>
66
+ {action}
67
+ </div>
66
68
  </div>
67
69
  </Container>
68
70
  </div>
@@ -1,54 +1,60 @@
1
- .carouselTitle{
2
- margin: -12px;
3
- margin-bottom: 70px;
4
- display: flex;
5
- flex-wrap: wrap;
6
- justify-content: space-between;
7
- align-items: center;
8
-
9
- h3{
10
- font-size: 36px;
11
- line-height: 1;
12
- font-weight: 700;
13
- padding: 12px;
1
+ .carousel{
2
+ .carouselWrapper{
3
+ width: 100%;
14
4
  }
15
5
 
16
- .actions{
17
- padding: 12px;
18
- }
19
-
20
-
21
- @media screen and (min-width: 992px) {
22
- margin-bottom: 84px;
6
+ .carouselTitle{
7
+ margin: -12px;
8
+ margin-bottom: 70px;
9
+ display: flex;
10
+ flex-wrap: wrap;
11
+ justify-content: space-between;
12
+ align-items: center;
23
13
 
24
14
  h3{
25
- font-size: var(--font-size-h3);
15
+ font-size: 36px;
16
+ line-height: 1;
17
+ font-weight: 700;
18
+ padding: 12px;
26
19
  }
27
20
 
28
- }
21
+ .actions{
22
+ padding: 12px;
23
+ }
29
24
 
30
- }
31
25
 
32
- .card{
33
- width: 312px !important;
34
- margin-right: 16px;
35
- }
26
+ @media screen and (min-width: 992px) {
27
+ margin-bottom: 84px;
36
28
 
37
- .btn{
38
- margin-top: 36px;
39
- display: flex;
40
- }
29
+ h3{
30
+ font-size: var(--font-size-h3);
31
+ }
41
32
 
42
- @media screen and (min-width: 992px) {
33
+ }
43
34
 
44
- .card {
45
- width: 456px !important;
46
- margin-right: 24px;
47
35
  }
48
36
 
37
+ .card{
38
+ width: 312px !important;
39
+ margin-right: 16px;
40
+ }
49
41
 
50
42
  .btn{
51
- margin-top: 72px;
43
+ margin-top: 36px;
44
+ display: flex;
52
45
  }
53
46
 
47
+ @media screen and (min-width: 992px) {
48
+
49
+ .card {
50
+ width: 456px !important;
51
+ margin-right: 24px;
52
+ }
53
+
54
+
55
+ .btn{
56
+ margin-top: 72px;
57
+ }
58
+
59
+ }
54
60
  }
@@ -63,7 +63,7 @@ const ChatItineraryBlock = (props: ChatItineraryBlockProps) => {
63
63
 
64
64
  <div className={`${styles.chatItineraryBlock} ${styles.hero}`}>
65
65
  <div style={{backgroundImage: `url('https://images.pexels.com/photos/1563356/pexels-photo-1563356.jpeg')`}} className={styles.heroBackground}></div>
66
- <Container>
66
+ <Container border={false}>
67
67
  <div className={styles.heroContent}>
68
68
  <h1 className={styles.titleHeader}>
69
69
  Kia ora, I’m your AI<br />
@@ -31,6 +31,8 @@ const ImageContentTemplate: Story = {
31
31
  level={'light'}
32
32
  >
33
33
  <ImageContent
34
+ paddingTop={'md'}
35
+ paddingBottom={'md'}
34
36
  title={'Lorem'}
35
37
  boldTitle={'ipsum dolor'}
36
38
  content={'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat'}
@@ -20,6 +20,8 @@ const ImageContent = (props: ImageContentProps) => {
20
20
  imageBorder = "top-right",
21
21
  rendition = "contained",
22
22
  list,
23
+ spaceTop = 'none',
24
+ spaceBottom = 'none',
23
25
  } = props;
24
26
 
25
27
  const pillarLogo = (
@@ -39,7 +41,7 @@ const ImageContent = (props: ImageContentProps) => {
39
41
 
40
42
  if (rendition === 'full'){
41
43
  return <div className={`${styles.imageContent} ${styles.imageContentFull} ${styles[imageBorder]} `}>
42
- <Container>
44
+ <Container spaceTop={spaceTop} spaceBottom={spaceBottom}>
43
45
  <div className={styles.imageContentWrapper}>
44
46
  <div className={styles.content}>
45
47
  <div className={styles.contentWrapper}>
@@ -85,7 +87,7 @@ const ImageContent = (props: ImageContentProps) => {
85
87
 
86
88
  if(rendition === "fluid"){
87
89
  return <div className={`${styles.imageContent} ${styles.imageContentFluid} ${styles[alignment]}`}>
88
- <Container>
90
+ <Container spaceTop={spaceTop} spaceBottom={spaceBottom}>
89
91
  <div className={styles.imageContentWrapper}>
90
92
  <div className={styles.imageWrapper}>
91
93
  <div className={styles.imageHolder}>
@@ -125,7 +127,7 @@ const ImageContent = (props: ImageContentProps) => {
125
127
  if (rendition === 'masked'){
126
128
  return (
127
129
  <div className={`${styles.imageContent} ${styles.maskedImageContent} ${styles[alignment]}`}>
128
- <Container>
130
+ <Container spaceTop={spaceTop} spaceBottom={spaceBottom}>
129
131
  <div className={styles.imageContentWrapper}>
130
132
 
131
133
  {/* IMAGE BLOCK */}
@@ -158,7 +160,7 @@ const ImageContent = (props: ImageContentProps) => {
158
160
 
159
161
 
160
162
  return <div className={`${styles.imageContent} ${styles[alignment]}`}>
161
- <Container>
163
+ <Container spaceTop={spaceTop} spaceBottom={spaceBottom}>
162
164
  <div className={styles.imageContentWrapper}>
163
165
  <div className={styles.imageWrapper}>
164
166
  <div className={styles.imageHolder}>
@@ -14,6 +14,8 @@ export type RenditionType =
14
14
  | "contained"
15
15
  | "masked";
16
16
 
17
+ type SpacingOption = "none" | "xsm" |"sm" | "md" | "lg" | "xl"
18
+
17
19
  export interface ImageSet {
18
20
  single?: string;
19
21
  setOfFour?: [string, string, string, string];
@@ -38,6 +40,8 @@ export interface ImageContentProps {
38
40
  imageBorder?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'
39
41
  rendition?: RenditionType;
40
42
  list?: Item[];
43
+ spaceTop?: SpacingOption
44
+ spaceBottom?: SpacingOption
41
45
  }
42
46
 
43
47
  export default ImageContentProps;
@@ -54,7 +54,7 @@ const KPIBlockBusinessTemplate: Story = {
54
54
 
55
55
  return (
56
56
  <>
57
- <ElementHolder paddingTop="sm" paddingBottom="sm" pillar="business" level="secondary">
57
+ <ElementHolder paddingTop="sm" paddingBottom="sm" pillar="business" level="light">
58
58
  <KPIBlock
59
59
  title={'Business Growth Statistics'}
60
60
  description={'Our comprehensive approach to business development has yielded impressive results across multiple sectors.'}
@@ -2,7 +2,6 @@ import KPIBlockProps from "./KPIBlockProps.tsx";
2
2
  import styles from './kpiBlock.module.scss';
3
3
  import Container from "../../Shared/Container/Container.tsx";
4
4
  import PillarIcon from "../../Shared/PillarIcon/PillarIcon.tsx";
5
- import ElementHolder from "../../Shared/ElementHolder/ElementHolder.tsx";
6
5
  import cslx from "clsx";
7
6
 
8
7
 
@@ -12,31 +11,17 @@ const KPIBlock = (props: KPIBlockProps) => {
12
11
  description,
13
12
  stats = [],
14
13
  pillar ,
15
- paddingTop,
16
- paddingBottom,
17
- level,
18
- marginBottom,
19
- marginTop,
20
14
  spacingBottom='xsm',
21
15
  } = props;
22
16
 
23
17
  const className = cslx(
24
18
  styles.kpi ,
25
- `${pillar}`,
26
19
  {
27
20
  [styles[`kpi--pb-${spacingBottom}`]]: spacingBottom,
28
21
  },
29
22
  );
30
23
 
31
24
  return (
32
- <ElementHolder
33
- paddingTop={paddingTop}
34
- paddingBottom={paddingBottom}
35
- pillar={pillar}
36
- level={level}
37
- marginBottom={marginBottom}
38
- marginTop={marginTop}
39
- >
40
25
  <div className={`${styles.kpi} ${className}`}>
41
26
  <Container>
42
27
  <div className={styles.kpiWrapper}>
@@ -54,11 +39,10 @@ const KPIBlock = (props: KPIBlockProps) => {
54
39
  </div>
55
40
  </div>
56
41
  </Container>
57
- </div>
58
42
  <div className={styles.pillarIcon}>
59
43
  <PillarIcon pillar={pillar}/>
60
44
  </div>
61
- </ElementHolder>
45
+ </div>
62
46
  );
63
47
  };
64
48
 
@@ -72,6 +72,7 @@
72
72
  display: flex;
73
73
  flex-direction: inherit;
74
74
  align-items: start;
75
+ width: 100%;
75
76
 
76
77
  @media (max-width: 900px) {
77
78
  flex-direction: column;
@@ -207,6 +208,7 @@
207
208
  }
208
209
 
209
210
  .pillarIcon {
211
+ color: var(--color-block-text);
210
212
  position: absolute;
211
213
  right: 0;
212
214
  bottom: 0;
@@ -2,7 +2,6 @@
2
2
  @import "../../../node_modules/slick-carousel/slick/slick-theme.css";
3
3
 
4
4
  .carouselBlock{
5
- overflow-x: hidden;
6
5
 
7
6
  .custom-arrow{
8
7
  background: transparent;
@@ -15,7 +15,7 @@ const Footer = (props: FooterProps) => {
15
15
  <footer className={`${styles.footer} ${extraClass}`}>
16
16
  {footerTop}
17
17
  {footerMiddle && <div className={styles.footerMiddle}>
18
- <Container>
18
+ <Container border={false}>
19
19
  <div className={styles.footerMiddleWrapper}>
20
20
  <div className={styles.footerLogoContainer}>
21
21
  <img src={logo} alt="" />