@uob-web-and-digital/component-library 0.0.36 → 0.0.38

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 (107) hide show
  1. package/dist/components/atoms/Checkbox/Checkbox.d.ts +13 -0
  2. package/dist/components/atoms/Checkbox/Checkbox.stories.d.ts +10 -0
  3. package/dist/components/atoms/CourseDeliveryPill/CourseDeliveryPill.d.ts +11 -0
  4. package/dist/components/atoms/CourseDeliveryPill/CourseDeliveryPill.stories.d.ts +11 -0
  5. package/dist/components/atoms/CourseIcon/CourseIcon.d.ts +11 -0
  6. package/dist/components/atoms/CourseIcon/CourseIcon.stories.d.ts +13 -0
  7. package/dist/components/atoms/DateInput/DateInput.d.ts +12 -0
  8. package/dist/components/atoms/DateInput/DateInput.stories.d.ts +19 -0
  9. package/dist/components/atoms/Icons/Icons.d.ts +1 -1
  10. package/dist/components/atoms/RadioButton/RadioButton.d.ts +13 -0
  11. package/dist/components/atoms/RadioButton/RadioButton.stories.d.ts +10 -0
  12. package/dist/components/atoms/SearchResultDetail/SearchResultDetail.d.ts +11 -0
  13. package/dist/components/atoms/SearchResultDetail/SearchResultDetail.stories.d.ts +10 -0
  14. package/dist/components/atoms/TextButton/TextButton.d.ts +2 -1
  15. package/dist/components/atoms/TextButtonWithIcon/TextButtonWithIcon.d.ts +5 -1
  16. package/dist/components/atoms/VideoPlaceholder/VideoPlaceholder.d.ts +13 -0
  17. package/dist/components/atoms/VideoPlaceholder/VideoPlaceholder.stories.d.ts +25 -0
  18. package/dist/components/atoms/VideoPlaceholder/defaultProps.d.ts +2 -0
  19. package/dist/components/molecules/CardPromo/CardPromo.stories.d.ts +2 -1
  20. package/dist/components/molecules/CardRelatedCourse/CardRelatedCourse.d.ts +14 -0
  21. package/dist/components/molecules/CardRelatedCourse/CardRelatedCourse.stories.d.ts +13 -0
  22. package/dist/components/molecules/CardStaff/CardStaff.d.ts +21 -0
  23. package/dist/components/molecules/CardStaff/CardStaff.stories.d.ts +14 -0
  24. package/dist/components/molecules/FilterAccordion/FilterAccordion.d.ts +28 -0
  25. package/dist/components/molecules/FilterAccordion/FilterAccordion.stories.d.ts +11 -0
  26. package/dist/components/molecules/FilterAccordion/defaultProps.d.ts +3 -0
  27. package/dist/components/molecules/ListingResultCard/Cards/AccomodationCard.d.ts +16 -0
  28. package/dist/components/molecules/ListingResultCard/Cards/CourseCard.d.ts +18 -0
  29. package/dist/components/molecules/ListingResultCard/Cards/EventCard.d.ts +17 -0
  30. package/dist/components/molecules/ListingResultCard/Cards/NewsCard.d.ts +15 -0
  31. package/dist/components/molecules/ListingResultCard/Cards/PageCard.d.ts +13 -0
  32. package/dist/components/molecules/ListingResultCard/Cards/StaffCard.d.ts +17 -0
  33. package/dist/components/molecules/ListingResultCard/ListingResultCard.d.ts +10 -0
  34. package/dist/components/molecules/ListingResultCard/ListingResultCard.stories.d.ts +16 -0
  35. package/dist/components/molecules/ListingResultCard/defaultProps.d.ts +12 -0
  36. package/dist/components/molecules/PaginationNumbers/PaginationNumbers.d.ts +9 -0
  37. package/dist/components/molecules/PaginationNumbers/PaginationNumbers.stories.d.ts +12 -0
  38. package/dist/components/molecules/SearchResultDetailList/SearchResultDetailList.d.ts +9 -0
  39. package/dist/components/molecules/SearchResultDetailList/SearchResultDetailList.stories.d.ts +10 -0
  40. package/dist/components/molecules/SearchResultDetailList/defaultProps.d.ts +2 -0
  41. package/dist/components/molecules/Tab/Tab.d.ts +42 -0
  42. package/dist/components/molecules/Tab/TabItemProps.d.ts +16 -0
  43. package/dist/components/molecules/TabList/TabsList.d.ts +17 -0
  44. package/dist/components/molecules/TabPanel/TabPanel.d.ts +25 -0
  45. package/dist/components/molecules/VideoWithPlaceholder/VideoWithPlaceholder.d.ts +14 -0
  46. package/dist/components/molecules/VideoWithPlaceholder/VideoWithPlaceholder.stories.d.ts +26 -0
  47. package/dist/components/molecules/VideoWithPlaceholder/defaultProps.d.ts +2 -0
  48. package/dist/components/organisms/AccreditationPromotion/AccreditationPromotion.d.ts +20 -0
  49. package/dist/components/organisms/AccreditationPromotion/AccreditationPromotion.stories.d.ts +10 -0
  50. package/dist/components/organisms/AccreditationPromotion/defaultProps.d.ts +2 -0
  51. package/dist/components/organisms/CTAComponent/CTAComponent.d.ts +21 -0
  52. package/dist/components/organisms/CTAComponent/CTAComponent.stories.d.ts +12 -0
  53. package/dist/components/organisms/CTAComponent/defaultProps.d.ts +2 -0
  54. package/dist/components/organisms/Carousel/Carousel.d.ts +4 -1
  55. package/dist/components/organisms/ClearingBanner/ClearingBanner.d.ts +12 -0
  56. package/dist/components/organisms/ClearingBanner/ClearingBanner.stories.d.ts +10 -0
  57. package/dist/components/organisms/ClearingBanner/defaultProps.d.ts +2 -0
  58. package/dist/components/organisms/CourseDeliveryPills/CourseDeliveryPills.d.ts +9 -0
  59. package/dist/components/organisms/CourseDeliveryPills/CourseDeliveryPills.stories.d.ts +10 -0
  60. package/dist/components/organisms/CourseDeliveryPills/defaultProps.d.ts +2 -0
  61. package/dist/components/organisms/GeneralSearchFilter/GeneralSearchFilter.d.ts +30 -0
  62. package/dist/components/organisms/GeneralSearchFilter/GeneralSearchFilter.stories.d.ts +20 -0
  63. package/dist/components/organisms/GeneralSearchFilter/defaultProps.d.ts +2 -0
  64. package/dist/components/organisms/Header/Header.d.ts +5 -1
  65. package/dist/components/organisms/Header/Header.stories.d.ts +1 -1
  66. package/dist/components/organisms/Header/defaultProps.d.ts +1 -0
  67. package/dist/components/organisms/Hero/Hero.d.ts +2 -1
  68. package/dist/components/organisms/Hero/Hero.stories.d.ts +2 -0
  69. package/dist/components/organisms/ImageCarousel/ImageCarousel.d.ts +10 -0
  70. package/dist/components/organisms/ImageCarousel/ImageCarousel.stories.d.ts +13 -0
  71. package/dist/components/organisms/ImageCarousel/defaultProps.d.ts +2 -0
  72. package/dist/components/organisms/ListingFilterWrapper/ListingFilterWrapper.d.ts +10 -0
  73. package/dist/components/organisms/ListingFilterWrapper/ListingFilterWrapper.stories.d.ts +17 -0
  74. package/dist/components/organisms/ListingResults/ListingResults.d.ts +16 -0
  75. package/dist/components/organisms/ListingResults/ListingResults.stories.d.ts +15 -0
  76. package/dist/components/organisms/ListingResults/defaultProps.d.ts +7 -0
  77. package/dist/components/organisms/ListingResultsCount/ListingResultsCount.d.ts +8 -0
  78. package/dist/components/organisms/ListingResultsCount/ListingResultsCount.stories.d.ts +15 -0
  79. package/dist/components/organisms/Pagination/Pagination.d.ts +10 -0
  80. package/dist/components/organisms/Pagination/Pagination.stories.d.ts +12 -0
  81. package/dist/components/organisms/PromoBlock/PromoBlock.stories.d.ts +1 -0
  82. package/dist/components/organisms/QuoteBlock/QuoteBlock.d.ts +18 -0
  83. package/dist/components/organisms/QuoteBlock/QuoteBlock.stories.d.ts +16 -0
  84. package/dist/components/organisms/QuoteBlock/defatultProps.d.ts +2 -0
  85. package/dist/components/organisms/RelatedCourses/RelatedCourses.d.ts +11 -0
  86. package/dist/components/organisms/RelatedCourses/RelatedCourses.stories.d.ts +11 -0
  87. package/dist/components/organisms/RelatedCourses/defaultProps.d.ts +2 -0
  88. package/dist/components/organisms/SearchCourses/SearchCourses.d.ts +9 -4
  89. package/dist/components/organisms/SearchCourses/SearchCourses.stories.d.ts +1 -0
  90. package/dist/components/organisms/SidebarWrapper/SidebarWrapper.d.ts +2 -1
  91. package/dist/components/organisms/StaffListingCarousel/StaffListingCarousel.d.ts +13 -0
  92. package/dist/components/organisms/StaffListingCarousel/StaffListingCarousel.stories.d.ts +11 -0
  93. package/dist/components/organisms/StaffListingCarousel/defaultProps.d.ts +2 -0
  94. package/dist/components/organisms/StandardListingFilter/StandardListingFilter.d.ts +44 -0
  95. package/dist/components/organisms/StandardListingFilter/StandardListingFilter.stories.d.ts +18 -0
  96. package/dist/components/organisms/StandardListingFilter/defaultProps.d.ts +3 -0
  97. package/dist/components/organisms/TabsBlock/TabsBlock.d.ts +27 -0
  98. package/dist/components/organisms/TabsBlock/TabsBlock.stories.d.ts +22 -0
  99. package/dist/components/organisms/TabsBlock/defaultProps.d.ts +2 -0
  100. package/dist/components/organisms/VideoEmbed/VideoEmbed.d.ts +21 -0
  101. package/dist/components/organisms/VideoEmbed/VideoEmbed.stories.d.ts +17 -0
  102. package/dist/components/organisms/VideoEmbed/defaultProps.d.ts +2 -0
  103. package/dist/index.d.ts +366 -21
  104. package/dist/main.css +1 -1
  105. package/dist/main.js +5 -5
  106. package/dist/module.js +5 -5
  107. package/package.json +1 -1
@@ -0,0 +1,13 @@
1
+ import { ReactElement, ChangeEvent } from 'react';
2
+ import { ThemeProps } from '../../../themeProps';
3
+ import './checkbox.scss';
4
+ export interface CheckboxProps {
5
+ theme: ThemeProps;
6
+ name: string;
7
+ value: string;
8
+ defaultChecked?: boolean;
9
+ label: string;
10
+ id: string;
11
+ onChange?: (e: ChangeEvent) => void;
12
+ }
13
+ export default function Checkbox({ theme, name, defaultChecked, label, id, value, onChange }: CheckboxProps): ReactElement;
@@ -0,0 +1,10 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import Checkbox from './Checkbox';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof Checkbox;
6
+ tags: string[];
7
+ };
8
+ export default meta;
9
+ type Story = StoryObj<typeof Checkbox>;
10
+ export declare const Default: Story;
@@ -0,0 +1,11 @@
1
+ import { ReactElement } from 'react';
2
+ import { ThemeProps } from '../../../themeProps';
3
+ import './courseDeliveryPill.scss';
4
+ type IconType = 'person' | 'people' | 'computer' | 'book' | 'briefcase' | 'notepad';
5
+ export interface CourseDeliveryPillProps {
6
+ theme: ThemeProps;
7
+ label: string;
8
+ iconType?: IconType;
9
+ }
10
+ export default function CourseDeliveryPill({ theme, label, iconType }: CourseDeliveryPillProps): ReactElement;
11
+ export {};
@@ -0,0 +1,11 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import CourseDeliveryPill from './CourseDeliveryPill';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof CourseDeliveryPill;
6
+ tags: string[];
7
+ };
8
+ export default meta;
9
+ type Story = StoryObj<typeof CourseDeliveryPill>;
10
+ export declare const Default: Story;
11
+ export declare const NoIcon: Story;
@@ -0,0 +1,11 @@
1
+ import { ReactElement } from 'react';
2
+ import { ThemeProps } from '../../../themeProps';
3
+ import { IconType } from '../Icons/Icons';
4
+ import './courseIcon.scss';
5
+ export interface CourseIconProps {
6
+ theme: ThemeProps;
7
+ inverse?: boolean;
8
+ icon: IconType;
9
+ backgroundColor?: 'pale' | 'dark';
10
+ }
11
+ export default function CourseIcon({ theme, inverse, icon, backgroundColor }: CourseIconProps): ReactElement;
@@ -0,0 +1,13 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import CourseIcon from './CourseIcon';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof CourseIcon;
6
+ tags: string[];
7
+ };
8
+ export default meta;
9
+ type Story = StoryObj<typeof meta>;
10
+ export declare const Clearing: Story;
11
+ export declare const Phone: Story;
12
+ export declare const Email: Story;
13
+ export declare const PalePhone: Story;
@@ -0,0 +1,12 @@
1
+ import { ChangeEvent, ReactElement } from 'react';
2
+ import { ThemeProps } from '../../../themeProps';
3
+ import './dateInput.scss';
4
+ export interface DateInputProps {
5
+ theme: ThemeProps;
6
+ name: string;
7
+ id: string;
8
+ label: string;
9
+ defaultValue?: string;
10
+ onChange?: (e: ChangeEvent) => void;
11
+ }
12
+ export default function DateInput({ theme, name, id, label, defaultValue, onChange }: DateInputProps): ReactElement;
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import type { StoryObj } from '@storybook/react';
3
+ import DateInput from './DateInput';
4
+ declare const meta: {
5
+ title: string;
6
+ component: typeof DateInput;
7
+ tags: string[];
8
+ decorators: ((Story: import("@storybook/types").PartialStoryFn<import("@storybook/react/dist/types-0a347bb9").R, {
9
+ theme: import("../../../themeProps").ThemeProps;
10
+ name: string;
11
+ id: string;
12
+ label: string;
13
+ defaultValue?: string | undefined;
14
+ onChange?: ((e: React.ChangeEvent<Element>) => void) | undefined;
15
+ }>) => JSX.Element)[];
16
+ };
17
+ export default meta;
18
+ type Story = StoryObj<typeof DateInput>;
19
+ export declare const Default: Story;
@@ -1,7 +1,7 @@
1
1
  import { ReactElement } from 'react';
2
2
  import { ThemeProps } from '../../../themeProps';
3
3
  import './icons.scss';
4
- export type IconType = 'twitter' | 'facebook' | 'wechat' | 'weibo' | 'youtube' | 'instagram' | 'linkedin' | 'tiktok' | 'chevron-down' | 'chevron-right' | 'arrow-right' | 'arrow-right-large' | 'location' | 'hamburger' | 'cross' | 'arrow-left' | 'search' | 'arrow-down' | 'play';
4
+ export type IconType = 'twitter' | 'facebook' | 'wechat' | 'weibo' | 'youtube' | 'instagram' | 'linkedin' | 'tiktok' | 'chevron-down' | 'chevron-right' | 'arrow-right' | 'arrow-right-large' | 'location' | 'hamburger' | 'cross' | 'slim-cross' | 'arrow-left' | 'search' | 'arrow-down' | 'play' | 'person' | 'people' | 'computer' | 'book' | 'briefcase' | 'notepad' | 'external' | 'clearing-tick' | 'phone' | 'email' | 'quote-marks' | 'calendar' | 'clock' | 'internet' | 'slim-location' | 'bathroom' | 'catering' | 'pound' | 'scroll' | 'settings';
5
5
  export type IconProps = {
6
6
  /**
7
7
  * The theme to use
@@ -0,0 +1,13 @@
1
+ import { ChangeEvent, ReactElement } from 'react';
2
+ import { ThemeProps } from '../../../themeProps';
3
+ import './radioButton.scss';
4
+ export interface RadioButtonProps {
5
+ theme: ThemeProps;
6
+ name: string;
7
+ value: string;
8
+ label: string;
9
+ id: string;
10
+ defaultChecked?: boolean;
11
+ onChange?: (e: ChangeEvent) => void;
12
+ }
13
+ export default function RadioButton({ theme, name, value, label, id, onChange, defaultChecked }: RadioButtonProps): ReactElement;
@@ -0,0 +1,10 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import RadioButton from './RadioButton';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof RadioButton;
6
+ tags: string[];
7
+ };
8
+ export default meta;
9
+ type Story = StoryObj<typeof RadioButton>;
10
+ export declare const Default: Story;
@@ -0,0 +1,11 @@
1
+ import { ReactElement } from 'react';
2
+ import { ThemeProps } from '../../../themeProps';
3
+ import { IconType } from '../Icons/Icons';
4
+ import './searchResultDetail.scss';
5
+ export interface SearchResultDetailProps {
6
+ theme: ThemeProps;
7
+ iconType: IconType;
8
+ name: string;
9
+ value: string;
10
+ }
11
+ export default function SearchResultDetail({ iconType, name, value, theme }: SearchResultDetailProps): ReactElement;
@@ -0,0 +1,10 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import SearchResultDetail from './SearchResultDetail';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof SearchResultDetail;
6
+ tags: string[];
7
+ };
8
+ export default meta;
9
+ type Story = StoryObj<typeof meta>;
10
+ export declare const Default: Story;
@@ -25,5 +25,6 @@ export interface TextButtonProps {
25
25
  * Whether the button is used as a submit button in a form
26
26
  */
27
27
  isSubmit?: boolean;
28
+ disabled?: boolean;
28
29
  }
29
- export default function TextButton({ theme, inverse, label, onClick, url, externalLink, hollow, isSubmit }: TextButtonProps): ReactElement;
30
+ export default function TextButton({ theme, inverse, label, onClick, url, externalLink, hollow, isSubmit, disabled }: TextButtonProps): ReactElement;
@@ -30,5 +30,9 @@ export interface TextButtonWithIconProps {
30
30
  * The icon to be used
31
31
  */
32
32
  icon: IconType;
33
+ /**
34
+ * The icon to be used
35
+ */
36
+ iconPosition?: 'left' | 'right';
33
37
  }
34
- export default function TextButtonWithIcon({ theme, inverse, label, onClick, url, externalLink, hollow, isSubmit, icon }: TextButtonWithIconProps): ReactElement;
38
+ export default function TextButtonWithIcon({ theme, inverse, label, onClick, url, externalLink, hollow, isSubmit, icon, iconPosition }: TextButtonWithIconProps): ReactElement;
@@ -0,0 +1,13 @@
1
+ import { ReactElement } from 'react';
2
+ import './videoPlaceholder.scss';
3
+ import { ThemeProps } from '../../../themeProps';
4
+ export interface VideoPlaceholderProps {
5
+ theme: ThemeProps;
6
+ imageSrc: {
7
+ small?: string;
8
+ medium?: string;
9
+ default: string;
10
+ };
11
+ onClick: () => void;
12
+ }
13
+ export default function VideoPlaceholder({ theme, imageSrc, onClick }: VideoPlaceholderProps): ReactElement;
@@ -0,0 +1,25 @@
1
+ /// <reference types="react" />
2
+ import type { StoryObj } from '@storybook/react';
3
+ import VideoPlaceholder from './VideoPlaceholder';
4
+ declare const meta: {
5
+ title: string;
6
+ component: typeof VideoPlaceholder;
7
+ tags: string[];
8
+ parameters: {
9
+ backgrounds: {
10
+ default: string;
11
+ };
12
+ };
13
+ decorators: ((Story: import("@storybook/types").PartialStoryFn<import("@storybook/react/dist/types-0a347bb9").R, {
14
+ theme: import("../../../themeProps").ThemeProps;
15
+ imageSrc: {
16
+ small?: string | undefined;
17
+ medium?: string | undefined;
18
+ default: string;
19
+ };
20
+ onClick: () => void;
21
+ }>) => JSX.Element)[];
22
+ };
23
+ export default meta;
24
+ type Story = StoryObj<typeof VideoPlaceholder>;
25
+ export declare const Default: Story;
@@ -0,0 +1,2 @@
1
+ import { VideoPlaceholderProps } from './VideoPlaceholder';
2
+ export declare const videoPlaceholderProps: VideoPlaceholderProps;
@@ -10,6 +10,7 @@ declare const meta: {
10
10
  };
11
11
  export default meta;
12
12
  type Story = StoryObj<typeof CardPromo>;
13
- export declare const SinglePromoCard: Story;
13
+ export declare const SinglePromoCardLight: Story;
14
+ export declare const SinglePromoCardDark: Story;
14
15
  export declare const CardNoImage: Story;
15
16
  export declare const OneOfManyPromoCards: Story;
@@ -0,0 +1,14 @@
1
+ import { ReactElement } from 'react';
2
+ import { ThemeProps } from '../../../themeProps';
3
+ import './cardRelatedCourse.scss';
4
+ export interface CardRelatedProps {
5
+ theme: ThemeProps;
6
+ inverse?: boolean;
7
+ title: string;
8
+ subtitle: string;
9
+ href: string;
10
+ }
11
+ /**
12
+ * Primary UI component for user interaction
13
+ */
14
+ export default function CardRelated({ theme, inverse, title, subtitle, href }: CardRelatedProps): ReactElement;
@@ -0,0 +1,13 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import CardRelatedCourse from './CardRelatedCourse';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof CardRelatedCourse;
6
+ tags: string[];
7
+ parameters: {
8
+ layout: string;
9
+ };
10
+ };
11
+ export default meta;
12
+ type Story = StoryObj<typeof CardRelatedCourse>;
13
+ export declare const Example: Story;
@@ -0,0 +1,21 @@
1
+ import { ReactElement } from 'react';
2
+ import { ImageProps } from '../../atoms/Image/Image';
3
+ import { ThemeProps } from '../../../themeProps';
4
+ import './cardStaff.scss';
5
+ export interface CardStaffProps {
6
+ theme: ThemeProps;
7
+ inverse?: boolean;
8
+ image: ImageProps;
9
+ name: string;
10
+ jobTitle: string;
11
+ department: string;
12
+ copy: string;
13
+ href: string;
14
+ isSingle?: boolean;
15
+ phone: string;
16
+ email: string;
17
+ }
18
+ /**
19
+ * Primary UI component for user interaction
20
+ */
21
+ export default function CardStaff({ theme, inverse, image, name, jobTitle, department, href, copy, phone, email, isSingle }: CardStaffProps): ReactElement;
@@ -0,0 +1,14 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import CardStaff from './CardStaff';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof CardStaff;
6
+ tags: string[];
7
+ parameters: {
8
+ layout: string;
9
+ };
10
+ };
11
+ export default meta;
12
+ type Story = StoryObj<typeof CardStaff>;
13
+ export declare const ExampleSingleCard: Story;
14
+ export declare const OneOfManyStaffCards: Story;
@@ -0,0 +1,28 @@
1
+ import { ReactElement } from 'react';
2
+ import { ThemeProps } from '../../../themeProps';
3
+ import { CheckboxProps } from '../../atoms/Checkbox/Checkbox';
4
+ import { RadioButtonProps } from '../../atoms/RadioButton/RadioButton';
5
+ import './filterAccordion.scss';
6
+ export type FilterAccordionProps = CheckboxAccordionProps | RadioButtonAccordionProps;
7
+ interface CheckboxAccordionProps {
8
+ theme: ThemeProps;
9
+ heading: string;
10
+ type: 'checkbox';
11
+ inputs: Omit<CheckboxProps, 'theme'>[];
12
+ /**
13
+ * Whether the accordion is open or closed by default
14
+ */
15
+ defaultIsOpen?: boolean;
16
+ }
17
+ interface RadioButtonAccordionProps {
18
+ theme: ThemeProps;
19
+ heading: string;
20
+ type: 'radio';
21
+ inputs: Omit<RadioButtonProps, 'theme'>[];
22
+ /**
23
+ * Whether the accordion is open or closed by default
24
+ */
25
+ defaultIsOpen?: boolean;
26
+ }
27
+ export default function FilterAccordion({ theme, heading, type, inputs, defaultIsOpen }: FilterAccordionProps): ReactElement;
28
+ export {};
@@ -0,0 +1,11 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import FilterAccordion from './FilterAccordion';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof FilterAccordion;
6
+ tags: string[];
7
+ };
8
+ export default meta;
9
+ type Story = StoryObj<typeof FilterAccordion>;
10
+ export declare const RadioButtons: Story;
11
+ export declare const Checkboxes: Story;
@@ -0,0 +1,3 @@
1
+ import { FilterAccordionProps } from './FilterAccordion';
2
+ export declare const radioButtonFilterProps: FilterAccordionProps;
3
+ export declare const checkboxFilterProps: FilterAccordionProps;
@@ -0,0 +1,16 @@
1
+ import { ReactElement } from 'react';
2
+ import { ImageProps } from '../../../atoms/Image/Image';
3
+ import { ThemeProps } from '../../../../themeProps';
4
+ export interface AccomodationCardProps {
5
+ theme: ThemeProps;
6
+ type: 'accomodation';
7
+ image?: ImageProps;
8
+ title: string;
9
+ url: string;
10
+ description?: string;
11
+ bathroomType: string;
12
+ cateringType: string;
13
+ price: string;
14
+ showCategory?: boolean;
15
+ }
16
+ export default function AccomodationCard({ theme, type, image, title, url, description, bathroomType, cateringType, price, showCategory }: AccomodationCardProps): ReactElement;
@@ -0,0 +1,18 @@
1
+ import { ReactElement } from 'react';
2
+ import { ImageProps } from '../../../atoms/Image/Image';
3
+ import { ThemeProps } from '../../../../themeProps';
4
+ export interface CourseCardProps {
5
+ theme: ThemeProps;
6
+ type: 'course';
7
+ image?: ImageProps;
8
+ title: string;
9
+ url: string;
10
+ description?: string;
11
+ supervisors?: string;
12
+ department?: string;
13
+ studyLevel: string;
14
+ studyMode: string;
15
+ fundingType?: string;
16
+ showCategory?: boolean;
17
+ }
18
+ export default function CourseCard({ theme, type, image, title, url, description, supervisors, department, studyLevel, studyMode, fundingType, showCategory }: CourseCardProps): ReactElement;
@@ -0,0 +1,17 @@
1
+ import { ReactElement } from 'react';
2
+ import { ImageProps } from '../../../atoms/Image/Image';
3
+ import { ThemeProps } from '../../../../themeProps';
4
+ export interface EventCardProps {
5
+ theme: ThemeProps;
6
+ type: 'event';
7
+ image?: ImageProps;
8
+ title: string;
9
+ url: string;
10
+ description?: string;
11
+ date: string;
12
+ time: string;
13
+ format?: string;
14
+ location?: string;
15
+ showCategory?: boolean;
16
+ }
17
+ export default function EventCard({ theme, type, image, title, url, description, date, time, location, format, showCategory }: EventCardProps): ReactElement;
@@ -0,0 +1,15 @@
1
+ import { ReactElement } from 'react';
2
+ import { ImageProps } from '../../../atoms/Image/Image';
3
+ import { ThemeProps } from '../../../../themeProps';
4
+ export interface NewsCardProps {
5
+ theme: ThemeProps;
6
+ type: 'news';
7
+ image?: ImageProps;
8
+ title: string;
9
+ url: string;
10
+ description?: string;
11
+ author?: string;
12
+ datePublished?: string;
13
+ showCategory?: boolean;
14
+ }
15
+ export default function NewsCard({ theme, type, image, title, url, description, author, datePublished, showCategory }: NewsCardProps): ReactElement;
@@ -0,0 +1,13 @@
1
+ import { ReactElement } from 'react';
2
+ import { ThemeProps } from '../../../../themeProps';
3
+ import { ImageProps } from '../../../atoms/Image/Image';
4
+ export interface PageCardProps {
5
+ theme: ThemeProps;
6
+ type: 'page';
7
+ image?: ImageProps;
8
+ title: string;
9
+ url: string;
10
+ description?: string;
11
+ showCategory?: boolean;
12
+ }
13
+ export default function PageCard({ image, title, url, description }: PageCardProps): ReactElement;
@@ -0,0 +1,17 @@
1
+ import { ReactElement } from 'react';
2
+ import { ImageProps } from '../../../atoms/Image/Image';
3
+ import { ThemeProps } from '../../../../themeProps';
4
+ export interface StaffCardProps {
5
+ theme: ThemeProps;
6
+ type: 'staff';
7
+ image?: ImageProps;
8
+ title: string;
9
+ url: string;
10
+ description?: string;
11
+ jobTitle?: string;
12
+ department?: string;
13
+ phone?: string;
14
+ email?: string;
15
+ showCategory?: boolean;
16
+ }
17
+ export default function StaffCard({ theme, type, image, title, url, description, jobTitle, department, phone, email, showCategory }: StaffCardProps): ReactElement;
@@ -0,0 +1,10 @@
1
+ import { ReactElement } from 'react';
2
+ import { AccomodationCardProps } from './Cards/AccomodationCard';
3
+ import { CourseCardProps } from './Cards/CourseCard';
4
+ import { EventCardProps } from './Cards/EventCard';
5
+ import { NewsCardProps } from './Cards/NewsCard';
6
+ import { PageCardProps } from './Cards/PageCard';
7
+ import { StaffCardProps } from './Cards/StaffCard';
8
+ import './listingResultCard.scss';
9
+ export type ListingResultCardProps = AccomodationCardProps | CourseCardProps | EventCardProps | NewsCardProps | PageCardProps | StaffCardProps;
10
+ export default function ListingResultCard(props: ListingResultCardProps): ReactElement;
@@ -0,0 +1,16 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import ListingResultCard from './ListingResultCard';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof ListingResultCard;
6
+ tags: string[];
7
+ };
8
+ export default meta;
9
+ type Story = StoryObj<typeof ListingResultCard>;
10
+ export declare const PageCard: Story;
11
+ export declare const PageCardNoImage: Story;
12
+ export declare const EventCard: Story;
13
+ export declare const StaffCard: Story;
14
+ export declare const NewsCard: Story;
15
+ export declare const AccomodationCard: Story;
16
+ export declare const CourseCard: Story;
@@ -0,0 +1,12 @@
1
+ import { PageCardProps } from './Cards/PageCard';
2
+ import { EventCardProps } from './Cards/EventCard';
3
+ import { StaffCardProps } from './Cards/StaffCard';
4
+ import { NewsCardProps } from './Cards/NewsCard';
5
+ import { AccomodationCardProps } from './Cards/AccomodationCard';
6
+ import { CourseCardProps } from './Cards/CourseCard';
7
+ export declare const pageCardProps: PageCardProps;
8
+ export declare const eventCardProps: EventCardProps;
9
+ export declare const staffCardProps: StaffCardProps;
10
+ export declare const newsCardProps: NewsCardProps;
11
+ export declare const accomodationCardProps: AccomodationCardProps;
12
+ export declare const courseCardProps: CourseCardProps;
@@ -0,0 +1,9 @@
1
+ import { ReactElement } from 'react';
2
+ import { ThemeProps } from '../../../themeProps';
3
+ export interface PaginationNumbersProps {
4
+ theme: ThemeProps;
5
+ numOfPages: number;
6
+ onClick: (pageNumber: number) => void;
7
+ currentPage: number;
8
+ }
9
+ export default function PaginationNumbers({ theme, numOfPages, onClick, currentPage }: PaginationNumbersProps): ReactElement;
@@ -0,0 +1,12 @@
1
+ import { ReactElement } from 'react';
2
+ import PaginationNumbers from './PaginationNumbers';
3
+ import '../../organisms/Pagination/pagination.scss';
4
+ declare const meta: {
5
+ title: string;
6
+ component: typeof PaginationNumbers;
7
+ tags: string[];
8
+ };
9
+ export default meta;
10
+ export declare const FourItems: () => ReactElement;
11
+ export declare const SixItems: () => ReactElement;
12
+ export declare const SevenItems: () => ReactElement;
@@ -0,0 +1,9 @@
1
+ import { ReactElement } from 'react';
2
+ import { ThemeProps } from '../../../themeProps';
3
+ import { SearchResultDetailProps } from '../../atoms/SearchResultDetail/SearchResultDetail';
4
+ import './searchResultDetailList.scss';
5
+ export interface SearchResultDetailListProps {
6
+ theme: ThemeProps;
7
+ details: Omit<SearchResultDetailProps, 'theme'>[];
8
+ }
9
+ export default function SearchResultDetailList({ theme, details }: SearchResultDetailListProps): ReactElement;
@@ -0,0 +1,10 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import SearchResultDetailList from './SearchResultDetailList';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof SearchResultDetailList;
6
+ tags: string[];
7
+ };
8
+ export default meta;
9
+ type Story = StoryObj<typeof meta>;
10
+ export declare const Default: Story;
@@ -0,0 +1,2 @@
1
+ import { SearchResultDetailListProps } from './SearchResultDetailList';
2
+ export declare const searchResultDetailListProps: SearchResultDetailListProps;
@@ -0,0 +1,42 @@
1
+ import React, { ReactElement, KeyboardEvent } from 'react';
2
+ import { TabItemProps } from './TabItemProps';
3
+ import './tab.scss';
4
+ export interface TabProps {
5
+ /**
6
+ * The tab list id
7
+ */
8
+ id: number;
9
+ /**
10
+ * The theme to use
11
+ */
12
+ theme?: string;
13
+ /**
14
+ * Whether to invert the colours
15
+ */
16
+ inverse?: boolean;
17
+ /**
18
+ * The tab items properties
19
+ */
20
+ tabItem: TabItemProps;
21
+ /**
22
+ * Is the tab active
23
+ */
24
+ isActive: boolean;
25
+ /**
26
+ * Does the tab have focus
27
+ */
28
+ hasFocus: boolean;
29
+ /**
30
+ * The ref for the top of the tab list
31
+ */
32
+ tabListTopRef: React.MutableRefObject<HTMLDivElement | null>;
33
+ /**
34
+ * The method to set the active tab
35
+ */
36
+ setActiveTab: (id: number) => void;
37
+ /**
38
+ * The method to handle keyboard navigation events
39
+ */
40
+ onKeyboardNavigation: (e: KeyboardEvent) => void;
41
+ }
42
+ export default function Tab({ id, theme, inverse, tabItem, isActive, hasFocus, setActiveTab, onKeyboardNavigation: onKeyboardNavigation }: TabProps): ReactElement | null;
@@ -0,0 +1,16 @@
1
+ export interface TabItemProps {
2
+ title: string;
3
+ content: string;
4
+ primaryButton?: {
5
+ text: string;
6
+ url: string;
7
+ };
8
+ secondaryButton?: {
9
+ text: string;
10
+ url: string;
11
+ };
12
+ link?: {
13
+ text: string;
14
+ url: string;
15
+ };
16
+ }
@@ -0,0 +1,17 @@
1
+ import { ReactElement, ReactNode } from 'react';
2
+ import './tabsList.scss';
3
+ export interface TabListProps {
4
+ /**
5
+ * The theme to use
6
+ */
7
+ theme?: string;
8
+ /**
9
+ * Whether to invert the colours
10
+ */
11
+ inverse?: boolean;
12
+ /**
13
+ * The child components to display in the list
14
+ */
15
+ children?: ReactNode;
16
+ }
17
+ export default function TabList({ children, theme, inverse }: TabListProps): ReactElement | null;