trepur_components 2.3.7 → 2.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.cjs +33 -4
- package/.prettierignore +10 -0
- package/README.md +1 -1
- package/package.json +9 -5
- package/src/components/Accordion/Accordion.stories.tsx +21 -98
- package/src/components/Accordion/const.tsx +34 -0
- package/src/components/Accordion/index.tsx +19 -25
- package/src/components/AlertBar/AlertBar.stories.tsx +78 -84
- package/src/components/AlertBar/index.tsx +69 -100
- package/src/components/Avatar/Avatar.stories.tsx +2 -7
- package/src/components/Avatar/index.tsx +4 -7
- package/src/components/Breadcrumbs/Breadcrumbs.stories.tsx +29 -0
- package/src/components/Breadcrumbs/index.tsx +89 -0
- package/src/components/Button/Button.stories.tsx +24 -0
- package/src/components/Button/index.tsx +59 -0
- package/src/components/Calendar/Calendar.stories.tsx +21 -0
- package/src/components/Calendar/index.tsx +92 -0
- package/src/components/Card/Card.stories.tsx +14 -0
- package/src/components/Card/index.tsx +39 -0
- package/src/components/Carousel/Carousel.stories.tsx +44 -0
- package/src/components/Carousel/index.tsx +301 -0
- package/src/components/Carousel/utils.ts +53 -0
- package/src/components/CarouselThumbnail/CarouselThumbnail.stories.tsx +29 -0
- package/src/components/CarouselThumbnail/const.ts +17 -0
- package/src/components/CarouselThumbnail/index.tsx +169 -0
- package/src/components/CarouselThumbnail/utils.ts +87 -0
- package/src/components/Checkbox/Checkbox.stories.tsx +27 -0
- package/src/components/Checkbox/index.tsx +44 -0
- package/src/components/Collapsible/Collapsible.stories.tsx +67 -0
- package/src/components/Collapsible/index.tsx +169 -0
- package/src/components/Counter/Counter.stories.tsx +20 -0
- package/src/components/Counter/index.tsx +98 -0
- package/src/components/DetailUpdater/DetailUpdater.stories.tsx +37 -0
- package/{archive → src/components}/DetailUpdater/index.tsx +20 -25
- package/src/components/Dialog/Dialog.stories.tsx +65 -0
- package/src/components/Dialog/index.tsx +29 -0
- package/src/components/Dropdown/Dropdown.stories.tsx +22 -0
- package/src/components/Dropdown/index.tsx +117 -0
- package/src/components/Dropdown/utils.ts +15 -0
- package/{archive → src/components}/FileUploader/FilePreview.tsx +11 -14
- package/src/components/FileUploader/FileUploader.stories.tsx +28 -0
- package/src/components/FileUploader/index.tsx +177 -0
- package/src/components/Footer/Footer.stories.tsx +47 -0
- package/src/components/Footer/index.tsx +96 -0
- package/src/components/FooterNav/FooterNav.stories.tsx +32 -0
- package/src/components/FooterNav/index.tsx +75 -0
- package/{archive → src/components}/Form/Form.stories.tsx +2 -2
- package/src/components/Form/index.tsx +41 -0
- package/src/components/Gallery/Gallery.stories.tsx +39 -0
- package/src/components/Gallery/index.tsx +31 -0
- package/src/components/Greeting/Greeting.stories.tsx +16 -0
- package/src/components/Greeting/index.tsx +49 -0
- package/src/components/HamburgerIcon/HamburgerIcon.stories.tsx +14 -0
- package/src/components/HamburgerIcon/index.tsx +75 -0
- package/src/components/Icon/Icon.stories.tsx +41 -0
- package/src/components/Icon/index.tsx +33 -0
- package/src/components/Image/Image.stories.tsx +17 -0
- package/src/components/Image/index.tsx +25 -0
- package/src/components/ImageCard/ImageCard.stories.tsx +29 -0
- package/src/components/ImageCard/index.tsx +75 -0
- package/src/components/Input/Input.stories.tsx +25 -0
- package/src/components/Input/index.tsx +139 -0
- package/{archive → src/components}/MenuButton/MenuButton.stories.tsx +2 -2
- package/src/components/MenuButton/index.tsx +66 -0
- package/{archive → src/components}/Modal/Modal.stories.tsx +4 -8
- package/{archive → src/components}/Modal/index.tsx +9 -12
- package/src/components/Nav/Nav.stories.tsx +80 -0
- package/src/components/Nav/index.tsx +171 -0
- package/src/components/NavItem/NavItem.stories.tsx +17 -0
- package/src/components/NavItem/index.tsx +39 -0
- package/src/components/Pill/Pill.stories.tsx +51 -0
- package/src/components/Pill/index.tsx +69 -0
- package/{archive → src/components}/Search/Search.stories.tsx +2 -2
- package/{archive → src/components}/Search/index.tsx +12 -16
- package/{archive → src/components}/Select/Select.stories.tsx +2 -3
- package/{archive → src/components}/Select/index.tsx +21 -30
- package/{archive → src/components}/Showcase/Showcase.stories.tsx +4 -3
- package/src/components/Showcase/index.tsx +62 -0
- package/{archive → src/components}/SideNav/SideNav.stories.tsx +2 -2
- package/{archive → src/components}/SideNav/index.tsx +8 -15
- package/{archive → src/components}/SocialButton/SocialButton.stories.tsx +2 -2
- package/{archive → src/components}/SocialButton/index.tsx +14 -22
- package/src/components/SplitCard/SplitCard.stories.tsx +34 -0
- package/src/components/SplitCard/index.tsx +132 -0
- package/src/components/Stars/Star.stories.tsx +18 -0
- package/src/components/Stars/index.tsx +38 -0
- package/src/components/Testimonial/Testimonial.stories.tsx +37 -0
- package/src/components/Testimonial/index.tsx +123 -0
- package/src/components/TextArea/TextArea.stories.tsx +24 -0
- package/src/components/TextArea/index.tsx +133 -0
- package/src/components/Timeline/Timeline.stories.tsx +45 -0
- package/src/components/Timeline/index.tsx +65 -0
- package/src/components/Tubestops/Tubestops.stories.tsx +22 -0
- package/src/components/Tubestops/index.tsx +132 -0
- package/src/components/Video/Video.stories.tsx +58 -0
- package/src/components/Video/assets/example.mp4 +0 -0
- package/src/components/Video/assets/example.ogv +0 -0
- package/src/components/Video/assets/example.webm +0 -0
- package/src/components/Video/index.tsx +92 -0
- package/src/components/index.ts +66 -112
- package/src/custom.d.ts +14 -0
- package/src/documentation/Colours.mdx +34 -34
- package/src/documentation/Introduction.mdx +9 -5
- package/src/documentation/assets/index.ts +3 -0
- package/src/documentation/assets/trepurComponentsLogo.svg +32 -0
- package/src/documentation/typography/Fonts/Fonts.stories.tsx +14 -0
- package/src/documentation/typography/Fonts/Fonts.tsx +73 -0
- package/src/styles/global.css +1 -1
- package/src/styles/themes/local.css +91 -39
- package/src/styles/themes/test.css +28 -0
- package/src/utils/screens.ts +1 -1
- package/tailwind/colors.ts +53 -385
- package/tailwind/preset.ts +4 -0
- package/tailwind.config.ts +12 -80
- package/tsconfig.json +8 -2
- package/archive/Breadcrumbs/Breadcrumbs.stories.tsx +0 -46
- package/archive/Breadcrumbs/index.tsx +0 -42
- package/archive/BreadcrumbsBordered/BreadcrumbsBordered.stories.tsx +0 -52
- package/archive/BreadcrumbsBordered/index.tsx +0 -44
- package/archive/BreadcrumbsItem/BreadcrumbsItem.stories.tsx +0 -40
- package/archive/BreadcrumbsItem/index.tsx +0 -149
- package/archive/Button/Button.stories.tsx +0 -150
- package/archive/Button/index.tsx +0 -111
- package/archive/Button/style.module.css +0 -76
- package/archive/Calendar/Calendar.stories.tsx +0 -82
- package/archive/Calendar/index.tsx +0 -76
- package/archive/Card/Card.stories.tsx +0 -75
- package/archive/Card/index.tsx +0 -102
- package/archive/Card/style.module.css +0 -75
- package/archive/CardWithTopImage/CardWithTopImage.stories.tsx +0 -50
- package/archive/CardWithTopImage/index.tsx +0 -39
- package/archive/CardWithTopImage/style.module.css +0 -11
- package/archive/Carousel/Carousel.stories.tsx +0 -451
- package/archive/Carousel/index.tsx +0 -388
- package/archive/Carousel/style.module.css +0 -99
- package/archive/CarouselThumbnail/CarouselThumbnail.stories.tsx +0 -350
- package/archive/CarouselThumbnail/index.tsx +0 -302
- package/archive/CarouselThumbnail/style.module.css +0 -67
- package/archive/Checkbox/Checkbox.stories.tsx +0 -34
- package/archive/Checkbox/index.tsx +0 -51
- package/archive/Checkbox/style.module.css +0 -15
- package/archive/Collapsible/Collapsible.stories.tsx +0 -67
- package/archive/Collapsible/index.tsx +0 -116
- package/archive/Collapsible/style.module.css +0 -47
- package/archive/Column/Column.stories.tsx +0 -89
- package/archive/Column/index.tsx +0 -119
- package/archive/Column/style.module.css +0 -151
- package/archive/ComponentWrapper/ComponentWrapper.stories.tsx +0 -40
- package/archive/ComponentWrapper/index.tsx +0 -55
- package/archive/ComponentWrapper/style.module.css +0 -40
- package/archive/Container/Container.stories.tsx +0 -40
- package/archive/Container/index.tsx +0 -24
- package/archive/Container/style.module.css +0 -4
- package/archive/Counter/Counter.stories.tsx +0 -19
- package/archive/Counter/index.tsx +0 -66
- package/archive/Counter/style.module.css +0 -19
- package/archive/DetailUpdater/DetailUpdater.stories.tsx +0 -96
- package/archive/DetailUpdater/style.module.css +0 -31
- package/archive/Dialog/Dialog.stories.tsx +0 -131
- package/archive/Dialog/index.tsx +0 -91
- package/archive/Dialog/style.module.css +0 -44
- package/archive/DropdownMenu/DropdownMenu.stories.tsx +0 -59
- package/archive/DropdownMenu/index.tsx +0 -51
- package/archive/DropdownMenu/style.module.css +0 -38
- package/archive/DynamicTextSection/DynamicTextSection.stories.tsx +0 -74
- package/archive/DynamicTextSection/index.tsx +0 -36
- package/archive/DynamicTextSection/style.module.css +0 -0
- package/archive/FileUploader/FileUploader.stories.tsx +0 -28
- package/archive/FileUploader/index.tsx +0 -135
- package/archive/FileUploader/style.module.css +0 -54
- package/archive/FilterItem/FilterItem.stories.tsx +0 -33
- package/archive/FilterItem/index.tsx +0 -101
- package/archive/FilterItem/style.module.css +0 -27
- package/archive/Footer/Footer.stories.tsx +0 -59
- package/archive/Footer/index.tsx +0 -50
- package/archive/Footer/style.module.css +0 -19
- package/archive/FooterNav/FooterNav.stories.tsx +0 -125
- package/archive/FooterNav/index.tsx +0 -57
- package/archive/FooterNav/style.module.css +0 -32
- package/archive/FooterNavItem/FooterNavItem.stories.tsx +0 -53
- package/archive/FooterNavItem/index.tsx +0 -80
- package/archive/FooterNavItem/style.module.css +0 -139
- package/archive/Form/index.tsx +0 -61
- package/archive/Form/style.module.css +0 -0
- package/archive/FyreCard/FyreCard.stories.tsx +0 -31
- package/archive/FyreCard/index.tsx +0 -52
- package/archive/FyreCard/style.module.css +0 -19
- package/archive/Greeting/Greeting.stories.tsx +0 -41
- package/archive/Greeting/index.tsx +0 -32
- package/archive/HamburgerIcon/HamburgerIcon.stories.tsx +0 -32
- package/archive/HamburgerIcon/index.tsx +0 -103
- package/archive/HamburgerIcon/style.module.css +0 -85
- package/archive/HorizontalLine/HorizontalLine.stories.tsx +0 -54
- package/archive/HorizontalLine/index.tsx +0 -40
- package/archive/HorizontalLine/style.module.css +0 -55
- package/archive/Icon/Icon.stories.tsx +0 -164
- package/archive/Icon/index.tsx +0 -115
- package/archive/Icon/style.module.css +0 -253
- package/archive/IconCard/IconCard.stories.tsx +0 -46
- package/archive/IconCard/index.tsx +0 -57
- package/archive/IconCard/style.module.css +0 -18
- package/archive/Image/Image.stories.tsx +0 -87
- package/archive/Image/index.tsx +0 -132
- package/archive/Image/style.module.css +0 -109
- package/archive/ImageInfo/ImageInfo.stories.tsx +0 -39
- package/archive/ImageInfo/index.tsx +0 -95
- package/archive/ImageInfo/style.module.css +0 -47
- package/archive/ImageLink/ImageLink.stories.tsx +0 -37
- package/archive/ImageLink/index.tsx +0 -49
- package/archive/ImageLink/style.module.css +0 -23
- package/archive/ImageLinkList/ImageLinkList.stories.tsx +0 -34
- package/archive/ImageLinkList/index.tsx +0 -33
- package/archive/ImageLinkList/style.module.css +0 -3
- package/archive/InformationIcon/InformationIcon.stories.tsx +0 -83
- package/archive/InformationIcon/index.tsx +0 -128
- package/archive/InformationIcon/style.module.css +0 -71
- package/archive/InformationIconBlock/InformationIconBlock.stories.tsx +0 -32
- package/archive/InformationIconBlock/index.tsx +0 -63
- package/archive/InformationIconBlock/style.module.css +0 -7
- package/archive/Input/Input.stories.tsx +0 -84
- package/archive/Input/index.tsx +0 -131
- package/archive/Input/style.module.css +0 -60
- package/archive/Jumbotron/Jumbotron.stories.tsx +0 -21
- package/archive/Jumbotron/index.tsx +0 -31
- package/archive/Jumbotron/style.module.css +0 -8
- package/archive/MenuButton/index.tsx +0 -82
- package/archive/MenuButton/style.module.css +0 -45
- package/archive/Modal/style.module.css +0 -35
- package/archive/NavItem/NavItem.stories.tsx +0 -90
- package/archive/NavItem/index.tsx +0 -65
- package/archive/NavItem/style.module.css +0 -71
- package/archive/NavOld/NavOld.stories.tsx +0 -193
- package/archive/NavOld/StickyNav.tsx +0 -191
- package/archive/NavOld/index.tsx +0 -273
- package/archive/NavOld/style.module.css +0 -156
- package/archive/NavTwo/Dropdown.tsx +0 -35
- package/archive/NavTwo/Nav.stories.tsx +0 -38
- package/archive/NavTwo/Sidebar.tsx +0 -34
- package/archive/NavTwo/StickyNav.tsx +0 -34
- package/archive/NavTwo/index.tsx +0 -45
- package/archive/NavTwo/style.module.css +0 -35
- package/archive/NewsCard/NewsCard.stories.tsx +0 -72
- package/archive/NewsCard/index.tsx +0 -57
- package/archive/NewsCard/style.module.css +0 -15
- package/archive/Pill/Pill.stories.tsx +0 -44
- package/archive/Pill/index.tsx +0 -64
- package/archive/Pill/style.module.css +0 -32
- package/archive/ProductCard/ProductCard.stories.tsx +0 -61
- package/archive/ProductCard/index.tsx +0 -111
- package/archive/ProductCard/style.module.css +0 -53
- package/archive/ProductCardV2/ProductCardV2.stories.tsx +0 -50
- package/archive/ProductCardV2/index.tsx +0 -119
- package/archive/ProductCardV2/style.module.css +0 -59
- package/archive/Proficiencies/Proficiencies.stories.tsx +0 -50
- package/archive/Proficiencies/index.tsx +0 -63
- package/archive/Proficiencies/style.module.css +0 -31
- package/archive/Profile/Profile.stories.tsx +0 -49
- package/archive/Profile/index.tsx +0 -103
- package/archive/Profile/style.module.css +0 -47
- package/archive/Row/Row.stories.tsx +0 -53
- package/archive/Row/index.tsx +0 -23
- package/archive/Row/style.module.css +0 -3
- package/archive/Search/style.module.css +0 -23
- package/archive/Select/style.module.css +0 -52
- package/archive/Showcase/index.tsx +0 -75
- package/archive/Showcase/style.module.css +0 -47
- package/archive/SideNav/style.module.css +0 -43
- package/archive/SocialBlock/SocialBlock.stories.tsx +0 -58
- package/archive/SocialBlock/index.tsx +0 -63
- package/archive/SocialButton/style.module.css +0 -77
- package/archive/StarRating/StarRating.stories.tsx +0 -23
- package/archive/StarRating/index.tsx +0 -71
- package/archive/Testimonial/Testimonial.stories.tsx +0 -110
- package/archive/Testimonial/index.tsx +0 -61
- package/archive/Testimonial/style.module.css +0 -27
- package/archive/TextAndTitle/TextAndTitle.stories.tsx +0 -70
- package/archive/TextAndTitle/index.tsx +0 -123
- package/archive/TextAndTitle/style.module.css +0 -75
- package/archive/TextArea/TextArea.stories.tsx +0 -55
- package/archive/TextArea/index.tsx +0 -125
- package/archive/TextArea/style.module.css +0 -60
- package/archive/Timeline/Timeline.stories.tsx +0 -92
- package/archive/Timeline/index.tsx +0 -254
- package/archive/Timeline/style.module.css +0 -134
- package/archive/TimelineV2/TimelineV2.stories.tsx +0 -95
- package/archive/TimelineV2/index.tsx +0 -70
- package/archive/TimelineV2/style.module.css +0 -28
- package/archive/Tubestops/Tubestops.stories.tsx +0 -42
- package/archive/Tubestops/index.tsx +0 -58
- package/archive/Tubestops/style.module.css +0 -54
- package/archive/UserIcon/UserIcon.stories.tsx +0 -52
- package/archive/UserIcon/index.tsx +0 -46
- package/archive/UserIcon/style.module.css +0 -19
- package/archive/Video/Video.stories.tsx +0 -23
- package/archive/Video/index.tsx +0 -47
- package/archive/theme.ts +0 -39
- package/archive/typography/Fonts/Fonts.stories.tsx +0 -14
- package/archive/typography/Fonts/Fonts.tsx +0 -181
- package/lib/components/Accordion/Accordion.stories.d.ts +0 -94
- package/lib/components/Accordion/index.d.ts +0 -8
- package/lib/components/Accordion/index.js +0 -15
- package/lib/components/AlertBar/AlertBar.stories.d.ts +0 -162
- package/lib/components/AlertBar/index.d.ts +0 -12
- package/lib/components/AlertBar/index.js +0 -49
- package/lib/components/Avatar/Avatar.stories.d.ts +0 -44
- package/lib/components/Avatar/index.d.ts +0 -4
- package/lib/components/index.d.ts +0 -4
- package/lib/index.d.ts +0 -1
- package/lib/index.js +0 -6
- package/lib/styles/global.css +0 -75
- package/lib/styles/themes/local.css +0 -40
- package/lib/styles/themes/palette.css +0 -131
- package/lib/tailwind/boxShadow.ts +0 -9
- package/lib/tailwind/colors.ts +0 -410
- package/lib/tailwind/container.ts +0 -11
- package/lib/tailwind/preset.ts +0 -88
- package/lib/tailwind/spacing.ts +0 -14
- package/lib/utils/controls.d.ts +0 -36
- package/lib/utils/matchMedia.d.ts +0 -2
- package/lib/utils/screens.d.ts +0 -7
- package/src/styles/themes/palette.css +0 -131
- package/svg.d.ts +0 -4
- /package/{archive → src/components}/Calendar/style.css +0 -0
- /package/{archive → src/components}/Checkbox/Checkbox.mdx +0 -0
- /package/{archive → src}/fonts/Sora/OFL.txt +0 -0
- /package/{archive → src}/fonts/Sora/README.txt +0 -0
- /package/{archive → src}/fonts/Sora/Sora-VariableFont_wght.ttf +0 -0
- /package/{archive → src}/fonts/Sora/static/Sora-Bold.ttf +0 -0
- /package/{archive → src}/fonts/Sora/static/Sora-ExtraBold.ttf +0 -0
- /package/{archive → src}/fonts/Sora/static/Sora-ExtraLight.ttf +0 -0
- /package/{archive → src}/fonts/Sora/static/Sora-Light.ttf +0 -0
- /package/{archive → src}/fonts/Sora/static/Sora-Medium.ttf +0 -0
- /package/{archive → src}/fonts/Sora/static/Sora-Regular.ttf +0 -0
- /package/{archive → src}/fonts/Sora/static/Sora-SemiBold.ttf +0 -0
- /package/{archive → src}/fonts/Sora/static/Sora-Thin.ttf +0 -0
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { useState } from 'react';
|
|
2
2
|
|
|
3
|
-
import Icon from '@components/Icon';
|
|
3
|
+
import { Icon } from '@components/Icon';
|
|
4
|
+
import { faChevronDown } from '@fortawesome/fontawesome-free-solid';
|
|
4
5
|
import classNames from 'classnames';
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
interface Props {
|
|
7
|
+
export interface SelectProps {
|
|
9
8
|
id?: string;
|
|
10
9
|
className?: string;
|
|
11
10
|
options: string[];
|
|
@@ -16,7 +15,7 @@ interface Props {
|
|
|
16
15
|
required?: boolean;
|
|
17
16
|
}
|
|
18
17
|
|
|
19
|
-
const Select
|
|
18
|
+
export const Select = ({
|
|
20
19
|
id,
|
|
21
20
|
className,
|
|
22
21
|
options,
|
|
@@ -25,7 +24,7 @@ const Select: React.FC<Props> = ({
|
|
|
25
24
|
onClick,
|
|
26
25
|
required = false,
|
|
27
26
|
fullWidth = false,
|
|
28
|
-
}) => {
|
|
27
|
+
}: SelectProps) => {
|
|
29
28
|
const [showDropDown, setShowDropDown] = useState(false);
|
|
30
29
|
const [activeValue, setActiveValue] = useState(
|
|
31
30
|
value !== undefined ? value : options?.[0],
|
|
@@ -38,23 +37,22 @@ const Select: React.FC<Props> = ({
|
|
|
38
37
|
};
|
|
39
38
|
|
|
40
39
|
const fullWidthClasses = classNames({
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
'w-full': fullWidth,
|
|
41
|
+
'sm:w-72': !fullWidth,
|
|
43
42
|
});
|
|
44
43
|
|
|
45
44
|
const headerClassList = classNames(
|
|
46
45
|
fullWidthClasses,
|
|
47
|
-
style.classList,
|
|
48
46
|
className,
|
|
49
|
-
'
|
|
47
|
+
'w-full rounded-xl bg-white shadow drop-shadow flex cursor-pointer flex-row justify-between px-4',
|
|
50
48
|
);
|
|
51
49
|
|
|
52
50
|
const dropdownClassList = classNames(
|
|
53
51
|
fullWidthClasses,
|
|
54
|
-
|
|
55
|
-
'theme-local',
|
|
52
|
+
'absolute w-full bg-white mt-2 rounded-2xl py-4 shadow-xl border border-lightest-grey h-64 overflow-scroll',
|
|
56
53
|
);
|
|
57
|
-
const dropdownItemClassList =
|
|
54
|
+
const dropdownItemClassList =
|
|
55
|
+
'bg-white text-ink hover:bg-lightest-grey hover:cursor-pointer px-4 py-2';
|
|
58
56
|
|
|
59
57
|
return (
|
|
60
58
|
<>
|
|
@@ -65,24 +63,19 @@ const Select: React.FC<Props> = ({
|
|
|
65
63
|
setShowDropDown(!showDropDown);
|
|
66
64
|
}}
|
|
67
65
|
>
|
|
68
|
-
<div className=
|
|
69
|
-
<div className=
|
|
70
|
-
<p
|
|
71
|
-
{required && <p className=
|
|
66
|
+
<div className="flex flex-col">
|
|
67
|
+
<div className="absolute mt-2 flex bg-white text-xs font-thin">
|
|
68
|
+
<p>{label}</p>
|
|
69
|
+
{required && <p className="font-semiBold text-error"> *</p>}
|
|
72
70
|
</div>
|
|
73
|
-
<p className=
|
|
71
|
+
<p className="border-ink text-ink flex justify-between rounded-xl bg-white pb-1 pt-6">
|
|
72
|
+
{activeValue}
|
|
73
|
+
</p>
|
|
74
74
|
</div>
|
|
75
|
-
<Icon
|
|
76
|
-
className={style.icon}
|
|
77
|
-
bgColour="white"
|
|
78
|
-
colour="ink"
|
|
79
|
-
hoverBgColour="white"
|
|
80
|
-
hoverColour="ink"
|
|
81
|
-
type="chevron-down"
|
|
82
|
-
/>
|
|
75
|
+
<Icon colour="ink" icon={faChevronDown} />
|
|
83
76
|
</div>
|
|
84
77
|
{showDropDown && (
|
|
85
|
-
<div className={classNames(
|
|
78
|
+
<div className={classNames('relative z-20', fullWidthClasses)}>
|
|
86
79
|
<ul className={dropdownClassList}>
|
|
87
80
|
{options?.map((option: string, i) => (
|
|
88
81
|
<li
|
|
@@ -102,5 +95,3 @@ const Select: React.FC<Props> = ({
|
|
|
102
95
|
</>
|
|
103
96
|
);
|
|
104
97
|
};
|
|
105
|
-
|
|
106
|
-
export default Select;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { faChevronDown } from '@fortawesome/fontawesome-free-solid';
|
|
1
2
|
import { action } from '@storybook/addon-actions';
|
|
2
3
|
import { Meta, StoryObj } from '@storybook/react';
|
|
3
4
|
import { idAndClassName } from '@utils/controls';
|
|
4
5
|
|
|
5
|
-
import Showcase from '.';
|
|
6
|
+
import { Showcase } from '.';
|
|
6
7
|
|
|
7
8
|
const meta = {
|
|
8
9
|
title: 'Components/Showcase',
|
|
@@ -17,7 +18,7 @@ const meta = {
|
|
|
17
18
|
bgColour: 'white',
|
|
18
19
|
size: 'large',
|
|
19
20
|
iconProps: {
|
|
20
|
-
|
|
21
|
+
icon: faChevronDown,
|
|
21
22
|
onClick: action('Icon click'),
|
|
22
23
|
},
|
|
23
24
|
},
|
|
@@ -25,6 +26,6 @@ const meta = {
|
|
|
25
26
|
|
|
26
27
|
export default meta;
|
|
27
28
|
|
|
28
|
-
type Story = StoryObj<typeof
|
|
29
|
+
type Story = StoryObj<typeof Showcase>;
|
|
29
30
|
|
|
30
31
|
export const Default: Story = {};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Avatar } from '@components/Avatar';
|
|
2
|
+
import { Icon, IconProps } from '@components/Icon';
|
|
3
|
+
import { Colours } from '@utils/controls';
|
|
4
|
+
import classNames from 'classnames';
|
|
5
|
+
|
|
6
|
+
export interface Props {
|
|
7
|
+
id: string;
|
|
8
|
+
className?: string;
|
|
9
|
+
title: string;
|
|
10
|
+
subTitle: string;
|
|
11
|
+
description: string;
|
|
12
|
+
bgColour?: Colours;
|
|
13
|
+
image: string;
|
|
14
|
+
size?: 'small' | 'medium' | 'large';
|
|
15
|
+
iconProps?: IconProps;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const Showcase = ({
|
|
19
|
+
id,
|
|
20
|
+
className,
|
|
21
|
+
title,
|
|
22
|
+
subTitle,
|
|
23
|
+
description,
|
|
24
|
+
bgColour,
|
|
25
|
+
size = 'large',
|
|
26
|
+
iconProps,
|
|
27
|
+
}: Props) => {
|
|
28
|
+
const classList = className;
|
|
29
|
+
|
|
30
|
+
const containerSize = classNames(
|
|
31
|
+
{
|
|
32
|
+
'h-56': size === 'small',
|
|
33
|
+
'h-96': size === 'medium',
|
|
34
|
+
'min-h-[calc(100vh-176px)]': size === 'large',
|
|
35
|
+
},
|
|
36
|
+
'flex flex-wrap text-center md:flex-nowrap md:text-left',
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
return (
|
|
40
|
+
<div>
|
|
41
|
+
<div className={containerSize}>
|
|
42
|
+
<div className="m-auto w-full md:w-2/3 md:pl-16 md:pr-4 lg:pl-32 lg:pr-8 xl:pl-64">
|
|
43
|
+
<h2 className="md:text-xxl text-lg font-bold leading-tight text-primary">
|
|
44
|
+
{title}
|
|
45
|
+
</h2>
|
|
46
|
+
<h2 className="md:text-xxl text-lg font-bold leading-tight text-black">
|
|
47
|
+
{subTitle}
|
|
48
|
+
</h2>
|
|
49
|
+
<p className="md:text-md pt-4 text-sm text-black">{description}</p>
|
|
50
|
+
</div>
|
|
51
|
+
<div className="m-auto flex w-full justify-center md:w-1/3 md:pb-20">
|
|
52
|
+
<Avatar />
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
{iconProps?.icon && (
|
|
56
|
+
<div className="flex justify-center">
|
|
57
|
+
<Icon {...iconProps} size="2x" icon={iconProps.icon} />
|
|
58
|
+
</div>
|
|
59
|
+
)}
|
|
60
|
+
</div>
|
|
61
|
+
);
|
|
62
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Meta, StoryObj } from '@storybook/react';
|
|
2
2
|
import { idAndClassName } from '@utils/controls';
|
|
3
3
|
|
|
4
|
-
import SideNav from '.';
|
|
4
|
+
import { SideNav } from '.';
|
|
5
5
|
|
|
6
6
|
const meta = {
|
|
7
7
|
title: 'Components/SideNav',
|
|
@@ -45,6 +45,6 @@ const meta = {
|
|
|
45
45
|
|
|
46
46
|
export default meta;
|
|
47
47
|
|
|
48
|
-
type Story = StoryObj<typeof
|
|
48
|
+
type Story = StoryObj<typeof SideNav>;
|
|
49
49
|
|
|
50
50
|
export const Default: Story = {};
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
1
|
import { type Colours } from '@utils/controls';
|
|
4
2
|
import classNames from 'classnames';
|
|
5
3
|
|
|
6
|
-
|
|
7
|
-
|
|
8
4
|
export interface Props {
|
|
9
5
|
id: string;
|
|
10
6
|
className: string;
|
|
@@ -15,25 +11,24 @@ export interface Props {
|
|
|
15
11
|
leftExpand?: boolean;
|
|
16
12
|
}
|
|
17
13
|
|
|
18
|
-
const SideNav = ({
|
|
14
|
+
export const SideNav = ({
|
|
19
15
|
id,
|
|
20
16
|
className,
|
|
21
17
|
children,
|
|
22
18
|
bgColour = 'primary',
|
|
23
19
|
showNav = false,
|
|
24
20
|
leftExpand = true,
|
|
25
|
-
}: Props)
|
|
21
|
+
}: Props) => {
|
|
26
22
|
const sideNavClasses = classNames(
|
|
27
23
|
{
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
24
|
+
'w-0': !showNav,
|
|
25
|
+
'w-full sm:w-1/3': showNav,
|
|
26
|
+
'left-0': leftExpand,
|
|
27
|
+
'right-0': !leftExpand,
|
|
32
28
|
},
|
|
33
|
-
|
|
34
|
-
style.sideNavClassList,
|
|
29
|
+
|
|
35
30
|
className,
|
|
36
|
-
'
|
|
31
|
+
'absolute z-50 h-full overflow-hidden duration-700',
|
|
37
32
|
);
|
|
38
33
|
|
|
39
34
|
return (
|
|
@@ -42,5 +37,3 @@ const SideNav = ({
|
|
|
42
37
|
</div>
|
|
43
38
|
);
|
|
44
39
|
};
|
|
45
|
-
|
|
46
|
-
export default SideNav;
|
|
@@ -2,7 +2,7 @@ import { action } from '@storybook/addon-actions';
|
|
|
2
2
|
import { Meta, StoryObj } from '@storybook/react';
|
|
3
3
|
import { idAndClassName } from '@utils/controls';
|
|
4
4
|
|
|
5
|
-
import SocialButton from '.';
|
|
5
|
+
import { SocialButton } from '.';
|
|
6
6
|
|
|
7
7
|
const meta = {
|
|
8
8
|
title: 'Components/SocialButton',
|
|
@@ -83,6 +83,6 @@ const meta = {
|
|
|
83
83
|
|
|
84
84
|
export default meta;
|
|
85
85
|
|
|
86
|
-
type Story = StoryObj<typeof
|
|
86
|
+
type Story = StoryObj<typeof SocialButton>;
|
|
87
87
|
|
|
88
88
|
export const Default: Story = {};
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
|
|
3
|
-
import Icon from '@components/Icon';
|
|
4
|
-
import {
|
|
3
|
+
import { Icon } from '@components/Icon';
|
|
4
|
+
import { faStar } from '@fortawesome/fontawesome-free-solid';
|
|
5
|
+
import { type Colours, type SocialTypes } from '@utils/controls';
|
|
5
6
|
import classNames from 'classnames';
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
9
8
|
export interface Props {
|
|
10
9
|
id?: string;
|
|
11
10
|
className?: string;
|
|
@@ -15,14 +14,14 @@ export interface Props {
|
|
|
15
14
|
openInNewTab?: boolean;
|
|
16
15
|
}
|
|
17
16
|
|
|
18
|
-
const SocialButton = ({
|
|
17
|
+
export const SocialButton = ({
|
|
19
18
|
id,
|
|
20
19
|
className,
|
|
21
20
|
onClick,
|
|
22
21
|
type = 'facebook',
|
|
23
22
|
href,
|
|
24
23
|
openInNewTab = false,
|
|
25
|
-
}: Props)
|
|
24
|
+
}: Props) => {
|
|
26
25
|
const getColours = (type: Colours): Colours => {
|
|
27
26
|
const typeString: string = type;
|
|
28
27
|
const colour: string = `interactive-${typeString}`;
|
|
@@ -30,10 +29,14 @@ const SocialButton = ({
|
|
|
30
29
|
};
|
|
31
30
|
|
|
32
31
|
const classList = classNames(
|
|
33
|
-
|
|
34
|
-
style[type],
|
|
32
|
+
'flex h-16 w-16 transform rounded-full duration-500',
|
|
35
33
|
className,
|
|
36
|
-
|
|
34
|
+
{
|
|
35
|
+
'bg-facebook hover:bg-interactive-facebook': type === 'facebook',
|
|
36
|
+
'bg-github hover:bg-interactive-github': type === 'github',
|
|
37
|
+
'': type === 'instagram',
|
|
38
|
+
'bg-linkedin hover:bg-interactive-linkedin': type === 'linkedin',
|
|
39
|
+
},
|
|
37
40
|
);
|
|
38
41
|
|
|
39
42
|
const iconType = {
|
|
@@ -46,26 +49,15 @@ const SocialButton = ({
|
|
|
46
49
|
const typeString: string = type.toString();
|
|
47
50
|
return (
|
|
48
51
|
<a
|
|
49
|
-
className=
|
|
52
|
+
className="rounded-full"
|
|
50
53
|
href={href}
|
|
51
54
|
aria-label={`view me on ${typeString}`}
|
|
52
55
|
onClick={onClick}
|
|
53
56
|
{...(openInNewTab && { target: '_blank' })}
|
|
54
57
|
>
|
|
55
58
|
<div id={id} className={classList}>
|
|
56
|
-
<Icon
|
|
57
|
-
type={iconType[type]}
|
|
58
|
-
className="mx-auto my-auto"
|
|
59
|
-
size={2}
|
|
60
|
-
brand
|
|
61
|
-
rounded
|
|
62
|
-
bgColour={type}
|
|
63
|
-
colour="white"
|
|
64
|
-
hoverBgColour={getColours(type as Colours)}
|
|
65
|
-
/>
|
|
59
|
+
<Icon icon={faStar} size="2x" colour="white" />
|
|
66
60
|
</div>
|
|
67
61
|
</a>
|
|
68
62
|
);
|
|
69
63
|
};
|
|
70
|
-
|
|
71
|
-
export default SocialButton;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
|
|
3
|
+
import { SplitCard } from '.';
|
|
4
|
+
import { Image } from '..';
|
|
5
|
+
|
|
6
|
+
const meta = {
|
|
7
|
+
title: 'V2Components/Split Card',
|
|
8
|
+
component: SplitCard,
|
|
9
|
+
args: {
|
|
10
|
+
className: 'bg-info-light',
|
|
11
|
+
swapDesktop: true,
|
|
12
|
+
swapMobile: true,
|
|
13
|
+
children: [
|
|
14
|
+
<SplitCard.LeftContent>
|
|
15
|
+
<Image src="https://picsum.photos/200/200" />
|
|
16
|
+
</SplitCard.LeftContent>,
|
|
17
|
+
<SplitCard.RightContent className="flex flex-col justify-center p-8">
|
|
18
|
+
<SplitCard.Title>This is a title</SplitCard.Title>
|
|
19
|
+
<SplitCard.Text>
|
|
20
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptatibus
|
|
21
|
+
non reprehenderit quaerat unde eius quisquam enim distinctio tempora
|
|
22
|
+
animi, rerum exercitationem asperiores, consequuntur fuga ex
|
|
23
|
+
cupiditate? Cumque laudantium laborum numquam!
|
|
24
|
+
</SplitCard.Text>
|
|
25
|
+
</SplitCard.RightContent>,
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
} satisfies Meta<typeof SplitCard>;
|
|
29
|
+
|
|
30
|
+
export default meta;
|
|
31
|
+
|
|
32
|
+
type Story = StoryObj<typeof SplitCard>;
|
|
33
|
+
|
|
34
|
+
export const Default: Story = {};
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createContext,
|
|
3
|
+
forwardRef,
|
|
4
|
+
HTMLAttributes,
|
|
5
|
+
useContext,
|
|
6
|
+
useMemo,
|
|
7
|
+
} from 'react';
|
|
8
|
+
|
|
9
|
+
import MatchMedia from '@utils/matchMedia';
|
|
10
|
+
import { Screens } from '@utils/screens';
|
|
11
|
+
import clsx from 'clsx';
|
|
12
|
+
|
|
13
|
+
export interface SplitCardContextProps {
|
|
14
|
+
swapDesktop?: boolean;
|
|
15
|
+
swapMobile?: boolean;
|
|
16
|
+
isMd?: boolean;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const SplitCardContext = createContext<SplitCardContextProps | null>(null);
|
|
20
|
+
|
|
21
|
+
const SplitCardComponent = forwardRef<
|
|
22
|
+
HTMLDivElement,
|
|
23
|
+
HTMLAttributes<HTMLDivElement> & SplitCardContextProps
|
|
24
|
+
>(({ id, className, children, swapDesktop, swapMobile, ...props }, ref) => {
|
|
25
|
+
const mediumScreen: string = Screens.md;
|
|
26
|
+
const mdScreenSize: string = `(min-width: ${mediumScreen})`;
|
|
27
|
+
const isMd: boolean = MatchMedia(mdScreenSize);
|
|
28
|
+
|
|
29
|
+
const state = useMemo(
|
|
30
|
+
() => ({
|
|
31
|
+
swapDesktop,
|
|
32
|
+
swapMobile,
|
|
33
|
+
isMd,
|
|
34
|
+
}),
|
|
35
|
+
[swapDesktop, swapMobile, isMd],
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
return (
|
|
39
|
+
<SplitCardContext.Provider value={state}>
|
|
40
|
+
<div
|
|
41
|
+
ref={ref}
|
|
42
|
+
{...props}
|
|
43
|
+
className={clsx('grid grid-cols-1 md:grid-cols-2', className)}
|
|
44
|
+
>
|
|
45
|
+
{children}
|
|
46
|
+
</div>
|
|
47
|
+
</SplitCardContext.Provider>
|
|
48
|
+
);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
const SplitCardLeftContent = forwardRef<
|
|
52
|
+
HTMLDivElement,
|
|
53
|
+
HTMLAttributes<HTMLDivElement>
|
|
54
|
+
>(({ className, children, ...props }, ref) => {
|
|
55
|
+
const { swapDesktop, swapMobile, isMd } = useContext(SplitCardContext) || {};
|
|
56
|
+
|
|
57
|
+
return (
|
|
58
|
+
<div
|
|
59
|
+
ref={ref}
|
|
60
|
+
{...props}
|
|
61
|
+
className={clsx(
|
|
62
|
+
'flex h-full items-center text-center',
|
|
63
|
+
{
|
|
64
|
+
'md:order-last': swapDesktop,
|
|
65
|
+
'order-last': !isMd && swapMobile,
|
|
66
|
+
},
|
|
67
|
+
className,
|
|
68
|
+
)}
|
|
69
|
+
>
|
|
70
|
+
{children}
|
|
71
|
+
</div>
|
|
72
|
+
);
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
const SplitCardRightContent = forwardRef<
|
|
76
|
+
HTMLDivElement,
|
|
77
|
+
HTMLAttributes<HTMLDivElement>
|
|
78
|
+
>(({ className, children, ...props }, ref) => {
|
|
79
|
+
const { swapDesktop, swapMobile, isMd } = useContext(SplitCardContext) || {};
|
|
80
|
+
|
|
81
|
+
return (
|
|
82
|
+
<div
|
|
83
|
+
ref={ref}
|
|
84
|
+
{...props}
|
|
85
|
+
className={clsx(
|
|
86
|
+
'flex h-full items-center text-center',
|
|
87
|
+
{
|
|
88
|
+
'md:order-first': swapDesktop,
|
|
89
|
+
'order-first': !isMd && swapMobile,
|
|
90
|
+
},
|
|
91
|
+
className,
|
|
92
|
+
)}
|
|
93
|
+
>
|
|
94
|
+
{children}
|
|
95
|
+
</div>
|
|
96
|
+
);
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
const SplitCardTitle = forwardRef<
|
|
100
|
+
HTMLParagraphElement,
|
|
101
|
+
HTMLAttributes<HTMLParagraphElement>
|
|
102
|
+
>(({ id, children, ...props }, ref) => {
|
|
103
|
+
return (
|
|
104
|
+
<p ref={ref} className="items-center" {...props}>
|
|
105
|
+
{children}
|
|
106
|
+
</p>
|
|
107
|
+
);
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
const SplitCardText = forwardRef<
|
|
111
|
+
HTMLParagraphElement,
|
|
112
|
+
HTMLAttributes<HTMLParagraphElement>
|
|
113
|
+
>(({ id, children, ...props }, ref) => {
|
|
114
|
+
return (
|
|
115
|
+
<p ref={ref} className="" {...props}>
|
|
116
|
+
{children}
|
|
117
|
+
</p>
|
|
118
|
+
);
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
SplitCardComponent.displayName = 'SplitCard';
|
|
122
|
+
SplitCardLeftContent.displayName = 'SplitCard.LeftContent';
|
|
123
|
+
SplitCardRightContent.displayName = 'SplitCard.RightContent';
|
|
124
|
+
|
|
125
|
+
const SplitCard = Object.assign(SplitCardComponent, {
|
|
126
|
+
LeftContent: SplitCardLeftContent,
|
|
127
|
+
RightContent: SplitCardRightContent,
|
|
128
|
+
Title: SplitCardTitle,
|
|
129
|
+
Text: SplitCardText,
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
export { SplitCard };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
|
|
3
|
+
import { Stars } from '.';
|
|
4
|
+
|
|
5
|
+
const meta = {
|
|
6
|
+
title: 'V2Components/Stars',
|
|
7
|
+
component: Stars,
|
|
8
|
+
args: {
|
|
9
|
+
stars: 3,
|
|
10
|
+
size: '2x',
|
|
11
|
+
},
|
|
12
|
+
} satisfies Meta<typeof Stars>;
|
|
13
|
+
|
|
14
|
+
export default meta;
|
|
15
|
+
|
|
16
|
+
type Story = StoryObj<typeof Stars>;
|
|
17
|
+
|
|
18
|
+
export const Default: Story = {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { forwardRef, HTMLAttributes } from 'react';
|
|
2
|
+
|
|
3
|
+
import { Icon } from '@components/Icon';
|
|
4
|
+
import { faStar } from '@fortawesome/fontawesome-free-solid';
|
|
5
|
+
import { SizeProp } from '@fortawesome/fontawesome-svg-core';
|
|
6
|
+
import clsx from 'clsx';
|
|
7
|
+
|
|
8
|
+
export interface StarProps {
|
|
9
|
+
stars?: 1 | 2 | 3 | 4 | 5;
|
|
10
|
+
size?: SizeProp;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const StarComponent = forwardRef<
|
|
14
|
+
HTMLDivElement,
|
|
15
|
+
HTMLAttributes<HTMLDivElement> & StarProps
|
|
16
|
+
>(({ className, stars = 0, size }, ref) => {
|
|
17
|
+
const getStarsChecked = () =>
|
|
18
|
+
[...Array(5)].map((_, i) => (
|
|
19
|
+
<Icon
|
|
20
|
+
className={i < stars ? 'text-star' : ''}
|
|
21
|
+
key={`checked_star_${i}`}
|
|
22
|
+
icon={faStar}
|
|
23
|
+
size="2x"
|
|
24
|
+
/>
|
|
25
|
+
));
|
|
26
|
+
|
|
27
|
+
return (
|
|
28
|
+
<div ref={ref} className={clsx('flex', className)}>
|
|
29
|
+
{getStarsChecked()}
|
|
30
|
+
</div>
|
|
31
|
+
);
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
StarComponent.displayName = 'Stars';
|
|
35
|
+
|
|
36
|
+
const Stars = Object.assign(StarComponent);
|
|
37
|
+
|
|
38
|
+
export { Stars };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
|
|
3
|
+
import { Testimonial } from '.';
|
|
4
|
+
|
|
5
|
+
const meta = {
|
|
6
|
+
title: 'V2Components/Testimonial',
|
|
7
|
+
component: Testimonial,
|
|
8
|
+
args: {
|
|
9
|
+
children: [
|
|
10
|
+
<Testimonial.Image src="https://picsum.photos/100/100" />,
|
|
11
|
+
<Testimonial.Title>This is a title</Testimonial.Title>,
|
|
12
|
+
<Testimonial.Section>
|
|
13
|
+
<Testimonial.Position>Position</Testimonial.Position>
|
|
14
|
+
<Testimonial.Date>This is a date</Testimonial.Date>
|
|
15
|
+
</Testimonial.Section>,
|
|
16
|
+
<Testimonial.Text>
|
|
17
|
+
Lorem ipsum dolor sit amet consectetur adipisicing elit. Facere delectus
|
|
18
|
+
soluta voluptas, minus sequi fuga facilis rem animi reprehenderit iusto
|
|
19
|
+
recusandae. Accusantium porro possimus id quas quis a soluta cum. Lorem,
|
|
20
|
+
ipsum dolor sit amet consectetur adipisicing elit. Facere odit rem quam
|
|
21
|
+
ullam! Ipsam dolorem libero exercitationem odio atque itaque
|
|
22
|
+
repudiandae? Amet est exercitationem quas iusto magni quod, molestiae
|
|
23
|
+
eaque. Lorem ipsum dolor sit amet consectetur adipisicing elit. Beatae
|
|
24
|
+
fuga quibusdam minima assumenda. Culpa ab ea sit molestias aspernatur
|
|
25
|
+
enim ducimus quis consequatur? Ab officiis, sequi reiciendis eos quaerat
|
|
26
|
+
quisquam?
|
|
27
|
+
</Testimonial.Text>,
|
|
28
|
+
<Testimonial.AuthorDetails>Authors Name</Testimonial.AuthorDetails>,
|
|
29
|
+
],
|
|
30
|
+
},
|
|
31
|
+
} satisfies Meta<typeof Testimonial>;
|
|
32
|
+
|
|
33
|
+
export default meta;
|
|
34
|
+
|
|
35
|
+
type Story = StoryObj<typeof Testimonial>;
|
|
36
|
+
|
|
37
|
+
export const Default: Story = {};
|