@uob-web-and-digital/component-library 0.0.30 → 0.0.32

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 (32) hide show
  1. package/dist/components/atoms/TextButton/TextButton.d.ts +1 -2
  2. package/dist/components/molecules/CardImage/CardImage.d.ts +15 -0
  3. package/dist/components/molecules/CardImage/CardImage.stories.d.ts +18 -0
  4. package/dist/components/molecules/CardImage/defaultProps.d.ts +2 -0
  5. package/dist/components/molecules/CardPromoSignpost/CardPromoSignpost.d.ts +27 -0
  6. package/dist/components/molecules/CardPromoSignpost/CardPromoSignpost.stories.d.ts +15 -0
  7. package/dist/components/molecules/CardPromoVideo/CardPromoVideo.d.ts +19 -0
  8. package/dist/components/molecules/CardPromoVideo/CardPromoVideo.stories.d.ts +14 -0
  9. package/dist/components/molecules/CarouselNav/CarouselNav.d.ts +2 -1
  10. package/dist/components/molecules/CarouselNav/CarouselNav.stories.d.ts +4 -1
  11. package/dist/components/molecules/Heading/Heading.d.ts +20 -0
  12. package/dist/components/molecules/Heading/Heading.stories.d.ts +18 -0
  13. package/dist/components/molecules/Heading/defaultProps.d.ts +2 -0
  14. package/dist/components/organisms/Carousel/Carousel.d.ts +5 -2
  15. package/dist/components/organisms/Hero/Hero.d.ts +40 -0
  16. package/dist/components/organisms/Hero/Hero.stories.d.ts +15 -0
  17. package/dist/components/organisms/Hero/components/LinesOfIntent.d.ts +7 -0
  18. package/dist/components/organisms/Hero/components/PolygonImage.d.ts +15 -0
  19. package/dist/components/organisms/Hero/defaultProps.d.ts +4 -0
  20. package/dist/components/organisms/ImageBlock/ImageBlock.d.ts +9 -0
  21. package/dist/components/organisms/ImageBlock/ImageBlock.stories.d.ts +23 -0
  22. package/dist/components/organisms/ImageBlock/defaultProps.d.ts +2 -0
  23. package/dist/components/organisms/PromoBlock/PromoBlock.d.ts +4 -2
  24. package/dist/components/organisms/PromoBlock/PromoBlock.stories.d.ts +12 -0
  25. package/dist/components/organisms/PromoBlock/defaultProps.d.ts +2 -0
  26. package/dist/components/organisms/SearchCourses/SearchCourses.d.ts +6 -2
  27. package/dist/components/organisms/SearchCourses/SearchCourses.stories.d.ts +1 -0
  28. package/dist/index.d.ts +161 -7
  29. package/dist/main.css +1 -1
  30. package/dist/main.js +5 -5
  31. package/dist/module.js +5 -5
  32. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import { ReactElement } from 'react';
2
2
  import { ThemeProps } from '../../../themeProps';
3
3
  import './textButton.scss';
4
- interface TextButtonProps {
4
+ export interface TextButtonProps {
5
5
  /**
6
6
  * The theme to use
7
7
  */
@@ -27,4 +27,3 @@ interface TextButtonProps {
27
27
  isSubmit?: boolean;
28
28
  }
29
29
  export default function TextButton({ theme, inverse, label, onClick, url, externalLink, hollow, isSubmit }: TextButtonProps): ReactElement;
30
- export {};
@@ -0,0 +1,15 @@
1
+ import { ReactElement } from 'react';
2
+ import { ImageProps } from '../../atoms/Image/Image';
3
+ import { ThemeProps } from '../../../themeProps';
4
+ import './cardImage.scss';
5
+ export interface CardImageProps {
6
+ theme: ThemeProps;
7
+ inverse?: boolean;
8
+ image: ImageProps;
9
+ imageCaption?: string;
10
+ imageCredit?: string;
11
+ }
12
+ /**
13
+ * Primary UI component for user interaction
14
+ */
15
+ export default function CardImage({ theme, inverse, image, imageCaption, imageCredit }: CardImageProps): ReactElement;
@@ -0,0 +1,18 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import CardImage from './CardImage';
3
+ import './cardImage.scss';
4
+ declare const meta: {
5
+ title: string;
6
+ component: typeof CardImage;
7
+ tags: string[];
8
+ parameters: {
9
+ backgrounds: {
10
+ default: string;
11
+ };
12
+ };
13
+ };
14
+ export default meta;
15
+ type Story = StoryObj<typeof CardImage>;
16
+ export declare const Default: Story;
17
+ export declare const Dark: Story;
18
+ export declare const Light: Story;
@@ -0,0 +1,2 @@
1
+ import { CardImageProps } from './CardImage';
2
+ export declare const cardImageProps: CardImageProps;
@@ -0,0 +1,27 @@
1
+ import { ReactElement } from 'react';
2
+ import { ImageProps } from '../../atoms/Image/Image';
3
+ import { ThemeProps } from '../../../themeProps';
4
+ import { TextButtonProps } from '../../atoms/TextButton/TextButton';
5
+ import { LinkWithArrowProps } from '../../atoms/LinkWithArrow/LinkWithArrow';
6
+ import './cardPromoSignpost.scss';
7
+ export interface CardPromoSignpostProps {
8
+ theme: ThemeProps;
9
+ inverse?: boolean;
10
+ image?: ImageProps;
11
+ imageOrientation?: 'left' | 'right';
12
+ tag?: string;
13
+ title: string;
14
+ subtitle?: string;
15
+ publishDate?: string;
16
+ authorString?: string;
17
+ location?: string;
18
+ copy?: string;
19
+ isSingle?: boolean;
20
+ buttonPrimary?: TextButtonProps;
21
+ buttonSecondary?: TextButtonProps;
22
+ link?: LinkWithArrowProps;
23
+ }
24
+ /**
25
+ * Primary UI component for user interaction
26
+ */
27
+ export default function CardPromoSignpost({ theme, inverse, image, tag, title, subtitle, publishDate, authorString, location, copy, isSingle, buttonPrimary, buttonSecondary, link, imageOrientation }: CardPromoSignpostProps): ReactElement;
@@ -0,0 +1,15 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import CardPromoSignpost from './CardPromoSignpost';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof CardPromoSignpost;
6
+ tags: string[];
7
+ parameters: {
8
+ layout: string;
9
+ };
10
+ };
11
+ export default meta;
12
+ type Story = StoryObj<typeof CardPromoSignpost>;
13
+ export declare const SinglePromoSignpostCardLight: Story;
14
+ export declare const SinglePromoSignpostCardsDarkRightImage: Story;
15
+ export declare const OneOfManyPromoSignpostCardsDark: Story;
@@ -0,0 +1,19 @@
1
+ import { ReactElement } from 'react';
2
+ import { ImageProps } from '../../atoms/Image/Image';
3
+ import { ThemeProps } from '../../../themeProps';
4
+ import { ParagraphLinkProps } from '../../atoms/ParagraphLink/ParagraphLink';
5
+ import './cardPromoVideo.scss';
6
+ export interface CardPromoVideoProps {
7
+ theme: ThemeProps;
8
+ image?: ImageProps;
9
+ title: string;
10
+ publishDate?: string;
11
+ videoLength?: string;
12
+ copy?: string;
13
+ isSingle?: boolean;
14
+ link?: ParagraphLinkProps;
15
+ }
16
+ /**
17
+ * Primary UI component for user interaction
18
+ */
19
+ export default function CardPromoVideo({ theme, image, title, publishDate, videoLength, copy, isSingle, link }: CardPromoVideoProps): ReactElement;
@@ -0,0 +1,14 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import CardPromoVideo from './CardPromoVideo';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof CardPromoVideo;
6
+ tags: string[];
7
+ parameters: {
8
+ layout: string;
9
+ };
10
+ };
11
+ export default meta;
12
+ type Story = StoryObj<typeof CardPromoVideo>;
13
+ export declare const SinglePromoVideoCard: Story;
14
+ export declare const OneOfManyPromoVideoCards: Story;
@@ -3,6 +3,7 @@ import { ThemeProps } from '../../../themeProps';
3
3
  import './carouselNav.scss';
4
4
  interface CarouselNavProps {
5
5
  theme: ThemeProps;
6
+ inverse?: boolean;
6
7
  totalNumber: number;
7
8
  currentNumber: number;
8
9
  onClickPrev: () => void;
@@ -13,5 +14,5 @@ interface CarouselNavProps {
13
14
  showNumbers?: boolean;
14
15
  lineColor?: 'black' | 'gold';
15
16
  }
16
- export default function CarouselNav({ theme, totalNumber, currentNumber, onClickNext, onClickPrev, prevButtonDisabled, nextButtonDisabled, carouselId, showNumbers, lineColor }: CarouselNavProps): ReactElement;
17
+ export default function CarouselNav({ theme, inverse, totalNumber, currentNumber, onClickNext, onClickPrev, prevButtonDisabled, nextButtonDisabled, carouselId, showNumbers, lineColor }: CarouselNavProps): ReactElement;
17
18
  export {};
@@ -7,4 +7,7 @@ declare const meta: {
7
7
  };
8
8
  export default meta;
9
9
  type Story = StoryObj<typeof CarouselNav>;
10
- export declare const Default: Story;
10
+ export declare const CarouselNavLight: Story;
11
+ export declare const CarouselNavDark: Story;
12
+ export declare const CarouselNavGoldLine: Story;
13
+ export declare const CarouselNavDarkGoldLine: Story;
@@ -0,0 +1,20 @@
1
+ import { ReactElement } from 'react';
2
+ import { ThemeProps } from '../../../themeProps';
3
+ import { LinkWithArrowProps } from '../../atoms/LinkWithArrow/LinkWithArrow';
4
+ import './heading.scss';
5
+ type LinkProps = Omit<LinkWithArrowProps, 'theme' | 'inverse'>;
6
+ export interface HeadingProps {
7
+ /**
8
+ * The theme to use
9
+ */
10
+ theme: ThemeProps;
11
+ /**
12
+ * Whether to inverse the colours
13
+ */
14
+ inverse?: boolean;
15
+ title?: string;
16
+ description?: string;
17
+ linkProps?: LinkProps;
18
+ }
19
+ export default function Heading({ title, description, linkProps, theme, inverse }: HeadingProps): ReactElement | null;
20
+ export {};
@@ -0,0 +1,18 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import Heading from './Heading';
3
+ import './heading.scss';
4
+ declare const meta: {
5
+ title: string;
6
+ component: typeof Heading;
7
+ tags: string[];
8
+ parameters: {
9
+ backgrounds: {
10
+ default: string;
11
+ };
12
+ };
13
+ };
14
+ export default meta;
15
+ type Story = StoryObj<typeof Heading>;
16
+ export declare const Default: Story;
17
+ export declare const Dark: Story;
18
+ export declare const Light: Story;
@@ -0,0 +1,2 @@
1
+ import { HeadingProps } from './Heading';
2
+ export declare const headingProps: HeadingProps;
@@ -3,13 +3,16 @@ import { CardNewsProps } from '../../molecules/CardNews/CardNews';
3
3
  import { CardFeaturedProps } from '../../molecules/CardFeatured/CardFeatured';
4
4
  import { CardVideoProps } from '../../molecules/CardVideo/CardVideo';
5
5
  import { CardPromoProps } from '../../molecules/CardPromo/CardPromo';
6
+ import { CardPromoSignpostProps } from '../../molecules/CardPromoSignpost/CardPromoSignpost';
7
+ import { CardPromoVideoProps } from '../../molecules/CardPromoVideo/CardPromoVideo';
6
8
  import { ThemeProps } from '../../../themeProps';
7
9
  import './carousel.scss';
8
10
  export interface CarouselProps {
9
11
  theme: ThemeProps;
12
+ inverse?: boolean;
10
13
  type: string;
11
14
  title?: string;
12
- cards: Omit<CardNewsProps, 'titleTag'>[] | CardFeaturedProps[] | CardVideoProps[] | CardPromoProps[];
15
+ cards: Omit<CardNewsProps, 'titleTag'>[] | CardFeaturedProps[] | CardVideoProps[] | CardPromoProps[] | CardPromoSignpostProps[] | CardPromoVideoProps[];
13
16
  exploreMore?: string;
14
17
  }
15
- export default function Carousel({ theme, type, title, cards, exploreMore }: CarouselProps): ReactElement;
18
+ export default function Carousel({ theme, inverse, type, title, cards, exploreMore }: CarouselProps): ReactElement;
@@ -0,0 +1,40 @@
1
+ import { ReactElement } from 'react';
2
+ import { ThemeProps } from '../../../themeProps';
3
+ import './hero.scss';
4
+ import { SelectOptionsProps } from '../../atoms/FormSelect/FormSelect';
5
+ interface Link {
6
+ url: string;
7
+ title: string;
8
+ externalLink?: boolean;
9
+ }
10
+ interface CourseSearchProps {
11
+ defaultSearchTerm?: string;
12
+ placeholder: string;
13
+ filterTitle: string;
14
+ filterFieldName: string;
15
+ filterOptions: SelectOptionsProps[];
16
+ defaultFilter?: string;
17
+ resultsUrl: string;
18
+ }
19
+ export interface HeroProps {
20
+ /**
21
+ * The theme to use
22
+ */
23
+ theme: ThemeProps;
24
+ inverse?: boolean;
25
+ title: string;
26
+ description: string;
27
+ image?: {
28
+ src: {
29
+ small?: string;
30
+ medium?: string;
31
+ default: string;
32
+ };
33
+ alt: string;
34
+ style: 'rectangle' | 'lines-of-intent';
35
+ };
36
+ links?: [] | [Link] | [Link, Link];
37
+ courseSearchProps?: CourseSearchProps;
38
+ }
39
+ export default function Hero({ theme, inverse, title, description, image, links, courseSearchProps }: HeroProps): ReactElement | null;
40
+ export {};
@@ -0,0 +1,15 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import Hero from './Hero';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof Hero;
6
+ tags: string[];
7
+ };
8
+ export default meta;
9
+ type Story = StoryObj<typeof Hero>;
10
+ export declare const DarkColourBlock: Story;
11
+ export declare const LightColourBlock: Story;
12
+ export declare const DarkRectangleImage: Story;
13
+ export declare const LightRectangleImage: Story;
14
+ export declare const DarkLinesOfIntentImage: Story;
15
+ export declare const LightLinesOfIntentImage: Story;
@@ -0,0 +1,7 @@
1
+ import { ReactElement } from 'react';
2
+ interface Props {
3
+ isMobile: boolean;
4
+ isTablet: boolean;
5
+ }
6
+ export default function LinesOfIntent({ isMobile, isTablet }: Props): ReactElement;
7
+ export {};
@@ -0,0 +1,15 @@
1
+ import { ReactElement } from 'react';
2
+ interface Props {
3
+ isMobile: boolean;
4
+ isTablet: boolean;
5
+ image: {
6
+ src: {
7
+ small?: string;
8
+ medium?: string;
9
+ default: string;
10
+ };
11
+ alt: string;
12
+ };
13
+ }
14
+ export default function PolygonImage({ isMobile, isTablet, image }: Props): ReactElement;
15
+ export {};
@@ -0,0 +1,4 @@
1
+ import { HeroProps } from './Hero';
2
+ export declare const colourBlockHeroProps: HeroProps;
3
+ export declare const rectangleImageHeroProps: HeroProps;
4
+ export declare const linesOfIntentImageHeroProps: HeroProps;
@@ -0,0 +1,9 @@
1
+ import { ReactElement } from 'react';
2
+ import './imageBlock.scss';
3
+ import { HeadingProps } from '../../molecules/Heading/Heading';
4
+ import { CardImageProps } from '../../molecules/CardImage/CardImage';
5
+ export interface ImageBlockProps extends HeadingProps {
6
+ fullWidth: boolean;
7
+ images?: Omit<CardImageProps, 'theme' | 'inverse'>[];
8
+ }
9
+ export default function ImageBlock({ theme, inverse, title, description, linkProps, fullWidth, images }: ImageBlockProps): ReactElement | null;
@@ -0,0 +1,23 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import ImageBlock from './ImageBlock';
3
+ import './imageBlock.scss';
4
+ declare const meta: {
5
+ title: string;
6
+ component: typeof ImageBlock;
7
+ tags: string[];
8
+ parameters: {
9
+ backgrounds: {
10
+ default: string;
11
+ };
12
+ };
13
+ };
14
+ export default meta;
15
+ type Story = StoryObj<typeof ImageBlock>;
16
+ export declare const Default: Story;
17
+ export declare const Dark: Story;
18
+ export declare const Light: Story;
19
+ export declare const OneImageFullWidth: Story;
20
+ export declare const TwoImagesFullWidth: Story;
21
+ export declare const OneImage: Story;
22
+ export declare const TwoImages: Story;
23
+ export declare const NoImages: Story;
@@ -0,0 +1,2 @@
1
+ import { ImageBlockProps } from './ImageBlock';
2
+ export declare const imageBlockProps: ImageBlockProps;
@@ -2,6 +2,8 @@ import { ReactElement } from 'react';
2
2
  import { LinkWithArrowProps } from '../../atoms/LinkWithArrow/LinkWithArrow';
3
3
  import { ThemeProps } from '../../../themeProps';
4
4
  import { CardPromoProps } from '../../molecules/CardPromo/CardPromo';
5
+ import { CardPromoSignpostProps } from '../../molecules/CardPromoSignpost/CardPromoSignpost';
6
+ import { CardPromoVideoProps } from '../../molecules/CardPromoVideo/CardPromoVideo';
5
7
  import './promoBlock.scss';
6
8
  export interface PromoBlockProps {
7
9
  /**
@@ -27,10 +29,10 @@ export interface PromoBlockProps {
27
29
  /**
28
30
  * Promo block will work with three card types
29
31
  */
30
- type: 'promo' | 'signpost' | 'video';
32
+ type: 'promo' | 'promo-signpost' | 'promo-video';
31
33
  /**
32
34
  * A Promo block component can have any number of items
33
35
  */
34
- cards: CardPromoProps[];
36
+ cards: CardPromoProps[] | CardPromoSignpostProps[] | CardPromoVideoProps[];
35
37
  }
36
38
  export default function PromoBlock({ theme, inverse, type, title, description, link, cards }: PromoBlockProps): ReactElement | null;
@@ -17,3 +17,15 @@ export declare const PromoBlockOneCardOnly: Story;
17
17
  export declare const PromoBlockTwoCardsOnly: Story;
18
18
  export declare const PromoBlockThreeCardsOnly: Story;
19
19
  export declare const PromoBlockFourCardsPlus: Story;
20
+ export declare const PromoBlockSignpostOneCardOnly: Story;
21
+ export declare const PromoBlockSignpostOneCardOnlyDark: Story;
22
+ export declare const PromoBlockSignpostTwoCardsOnly: Story;
23
+ export declare const PromoBlockSignpostTwoCardsOnlyDark: Story;
24
+ export declare const PromoBlockSignpostThreeCardsOnly: Story;
25
+ export declare const PromoBlockSignpostThreeCardsOnlyDark: Story;
26
+ export declare const PromoBlockSignpostFourCardsPlus: Story;
27
+ export declare const PromoBlockSignpostFourCardsPlusDark: Story;
28
+ export declare const PromoBlockVideoOneCardOnly: Story;
29
+ export declare const PromoBlockVideoTwoCardsOnly: Story;
30
+ export declare const PromoBlockVideoThreeCardsOnly: Story;
31
+ export declare const PromoBlockVideoFourCardsPlus: Story;
@@ -1,2 +1,4 @@
1
1
  import { PromoBlockProps } from './PromoBlock';
2
2
  export declare const promoBlockProps: PromoBlockProps;
3
+ export declare const promoBlockSignpostProps: PromoBlockProps;
4
+ export declare const promoBlockVideoProps: PromoBlockProps;
@@ -18,7 +18,7 @@ export interface SearchCoursesProps {
18
18
  /**
19
19
  * Title for module
20
20
  */
21
- title: string;
21
+ title?: string;
22
22
  /**
23
23
  * Default value to use for the search term
24
24
  */
@@ -47,8 +47,12 @@ export interface SearchCoursesProps {
47
47
  * Results url
48
48
  */
49
49
  resultsUrl: string;
50
+ /**
51
+ * The wrapped version of this component is used for Hero
52
+ */
53
+ wrapped?: boolean;
50
54
  }
51
55
  /**
52
56
  * Search component
53
57
  */
54
- export default function SearchCourses({ theme, inverse, title, defaultSearchTerm, placeholder, filterTitle, filterFieldName, filterOptions, defaultFilter, resultsUrl }: SearchCoursesProps): ReactElement;
58
+ export default function SearchCourses({ theme, inverse, title, defaultSearchTerm, placeholder, filterTitle, filterFieldName, filterOptions, defaultFilter, resultsUrl, wrapped }: SearchCoursesProps): ReactElement;
@@ -15,3 +15,4 @@ type Story = StoryObj<typeof SearchCourses>;
15
15
  export declare const Dark: Story;
16
16
  export declare const Light: Story;
17
17
  export declare const WithDefaultValues: Story;
18
+ export declare const Wrapped: Story;
package/dist/index.d.ts CHANGED
@@ -73,14 +73,99 @@ interface CardPromoProps {
73
73
  isSingle?: boolean;
74
74
  }
75
75
 
76
+ interface TextButtonProps {
77
+ /**
78
+ * The theme to use
79
+ */
80
+ theme: ThemeProps;
81
+ /**
82
+ * Whether to inverse the colours
83
+ */
84
+ inverse?: boolean;
85
+ label: string;
86
+ /**
87
+ * Handler to use if it's a <button />
88
+ */
89
+ onClick?: () => void;
90
+ url?: string;
91
+ externalLink?: boolean;
92
+ /**
93
+ * Whether the button has a background color or is hollow
94
+ */
95
+ hollow?: boolean;
96
+ /**
97
+ * Whether the button is used as a submit button in a form
98
+ */
99
+ isSubmit?: boolean;
100
+ }
101
+
102
+ interface LinkWithArrowProps {
103
+ /**
104
+ * The theme to use
105
+ */
106
+ theme: ThemeProps;
107
+ /**
108
+ * Whether to inverse the colours
109
+ */
110
+ inverse?: boolean;
111
+ url: string;
112
+ title: string;
113
+ externalLink?: boolean;
114
+ onKeyDown?: (e: KeyboardEvent) => void;
115
+ }
116
+
117
+ interface CardPromoSignpostProps {
118
+ theme: ThemeProps;
119
+ inverse?: boolean;
120
+ image?: ImageProps;
121
+ imageOrientation?: 'left' | 'right';
122
+ tag?: string;
123
+ title: string;
124
+ subtitle?: string;
125
+ publishDate?: string;
126
+ authorString?: string;
127
+ location?: string;
128
+ copy?: string;
129
+ isSingle?: boolean;
130
+ buttonPrimary?: TextButtonProps;
131
+ buttonSecondary?: TextButtonProps;
132
+ link?: LinkWithArrowProps;
133
+ }
134
+
135
+ interface ParagraphLinkProps {
136
+ /**
137
+ * The theme to use
138
+ */
139
+ theme: ThemeProps;
140
+ /**
141
+ * Whether to inverse the colours
142
+ */
143
+ inverse?: boolean;
144
+ label: string;
145
+ url: string;
146
+ externalLink?: boolean;
147
+ }
148
+
149
+ interface CardPromoVideoProps {
150
+ theme: ThemeProps;
151
+ image?: ImageProps;
152
+ title: string;
153
+ publishDate?: string;
154
+ videoLength?: string;
155
+ copy?: string;
156
+ isSingle?: boolean;
157
+ link?: ParagraphLinkProps;
158
+ }
159
+
76
160
  interface CarouselProps {
77
161
  theme: ThemeProps;
162
+ inverse?: boolean;
78
163
  type: string;
79
164
  title?: string;
80
- cards: Omit<CardNewsProps, 'titleTag'>[] | CardFeaturedProps[] | CardVideoProps[] | CardPromoProps[];
165
+ cards: Omit<CardNewsProps, 'titleTag'>[] | CardFeaturedProps[] | CardVideoProps[] | CardPromoProps[] | CardPromoSignpostProps[] | CardPromoVideoProps[];
81
166
  exploreMore?: string;
82
167
  }
83
- declare function Carousel({ theme, type, title, cards, exploreMore }: CarouselProps): ReactElement;
168
+ declare function Carousel({ theme, inverse, type, title, cards, exploreMore }: CarouselProps): ReactElement;
84
169
 
85
170
  interface FeaturedContentProps {
86
171
  /**
@@ -293,7 +378,7 @@ interface SearchCoursesProps {
293
378
  /**
294
379
  * Title for module
295
380
  */
296
- title: string;
381
+ title?: string;
297
382
  /**
298
383
  * Default value to use for the search term
299
384
  */
@@ -322,11 +407,15 @@ interface SearchCoursesProps {
322
407
  * Results url
323
408
  */
324
409
  resultsUrl: string;
410
+ /**
411
+ * The wrapped version of this component is used for Hero
412
+ */
413
+ wrapped?: boolean;
325
414
  }
326
415
  /**
327
416
  * Search component
328
417
  */
329
- declare function SearchCourses({ theme, inverse, title, defaultSearchTerm, placeholder, filterTitle, filterFieldName, filterOptions, defaultFilter, resultsUrl }: SearchCoursesProps): ReactElement;
418
+ declare function SearchCourses({ theme, inverse, title, defaultSearchTerm, placeholder, filterTitle, filterFieldName, filterOptions, defaultFilter, resultsUrl, wrapped }: SearchCoursesProps): ReactElement;
330
419
 
331
420
  interface SignPostProps {
332
421
  /**
@@ -373,7 +462,7 @@ interface VideoCardComponentProps {
373
462
  }
374
463
  declare function VideoCardComponent({ theme, tag, title, linkUrl, linkText, externalLink, cards }: VideoCardComponentProps): ReactElement | null;
375
464
 
376
- interface Link {
465
+ interface Link$1 {
377
466
  url: string;
378
467
  title: string;
379
468
  }
@@ -384,7 +473,7 @@ interface BreadcrumbsProps {
384
473
  * Links need to be provided in top down order, from parent to child
385
474
  * E.g. Home, Level1, Level2, Level3
386
475
  */
387
- links: Link[];
476
+ links: Link$1[];
388
477
  }
389
478
  declare function Breadcrumbs({ theme, inverse, links }: BreadcrumbsProps): ReactElement;
390
479
 
@@ -433,4 +522,69 @@ interface TextWithBackgroundProps {
433
522
  }
434
523
  declare function TextWithBackground({ text, theme, inverse, headingLevel, headingText, url, linkTitle, externalLink, linkStyle }: TextWithBackgroundProps): ReactElement;
435
524
 
436
- export { Breadcrumbs, Carousel, FeaturedContent, FeaturedSignpost, FeaturedVideo, Footer, Header, HeroCarousel, IntroText, MainWrapper, RichText, SearchCourses, SignPost, SkipToContent, TextWithBackground, VideoCardComponent };
525
+ interface Link {
526
+ url: string;
527
+ title: string;
528
+ externalLink?: boolean;
529
+ }
530
+ interface CourseSearchProps {
531
+ defaultSearchTerm?: string;
532
+ placeholder: string;
533
+ filterTitle: string;
534
+ filterFieldName: string;
535
+ filterOptions: SelectOptionsProps[];
536
+ defaultFilter?: string;
537
+ resultsUrl: string;
538
+ }
539
+ interface HeroProps {
540
+ /**
541
+ * The theme to use
542
+ */
543
+ theme: ThemeProps;
544
+ inverse?: boolean;
545
+ title: string;
546
+ description: string;
547
+ image?: {
548
+ src: {
549
+ small?: string;
550
+ medium?: string;
551
+ default: string;
552
+ };
553
+ alt: string;
554
+ style: 'rectangle' | 'lines-of-intent';
555
+ };
556
+ links?: [] | [Link] | [Link, Link];
557
+ courseSearchProps?: CourseSearchProps;
558
+ }
559
+ declare function Hero({ theme, inverse, title, description, image, links, courseSearchProps }: HeroProps): ReactElement | null;
560
+
561
+ type LinkProps = Omit<LinkWithArrowProps, 'theme' | 'inverse'>;
562
+ interface HeadingProps {
563
+ /**
564
+ * The theme to use
565
+ */
566
+ theme: ThemeProps;
567
+ /**
568
+ * Whether to inverse the colours
569
+ */
570
+ inverse?: boolean;
571
+ title?: string;
572
+ description?: string;
573
+ linkProps?: LinkProps;
574
+ }
575
+
576
+ interface CardImageProps {
577
+ theme: ThemeProps;
578
+ inverse?: boolean;
579
+ image: ImageProps;
580
+ imageCaption?: string;
581
+ imageCredit?: string;
582
+ }
583
+
584
+ interface ImageBlockProps extends HeadingProps {
585
+ fullWidth: boolean;
586
+ images?: Omit<CardImageProps, 'theme' | 'inverse'>[];
587
+ }
588
+ declare function ImageBlock({ theme, inverse, title, description, linkProps, fullWidth, images }: ImageBlockProps): ReactElement | null;
589
+
590
+ export { Breadcrumbs, Carousel, FeaturedContent, FeaturedSignpost, FeaturedVideo, Footer, Header, Hero, HeroCarousel, ImageBlock, IntroText, MainWrapper, RichText, SearchCourses, SignPost, SkipToContent, TextWithBackground, VideoCardComponent };