oddsgate-ds 1.0.169 → 1.0.171
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/.babelrc.json +25 -25
- package/.editorconfig +12 -12
- package/.storybook/main.ts +58 -58
- package/.storybook/preview.ts +26 -26
- package/README.md +30 -30
- package/chromatic.config.json +6 -6
- package/dist/cjs/assets/components/quotes.svg +3 -3
- package/dist/cjs/index.js +4 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/components/molecules/EventsCard/EventsCard.component.d.ts +1 -1
- package/dist/cjs/types/components/molecules/EventsCard/EventsCard.interface.d.ts +1 -0
- package/dist/esm/assets/components/quotes.svg +3 -3
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/components/molecules/EventsCard/EventsCard.component.d.ts +1 -1
- package/dist/esm/types/components/molecules/EventsCard/EventsCard.interface.d.ts +1 -0
- package/dist/public/assets/components/quotes.svg +3 -3
- package/dist/public/assets/empty-state.svg +28 -28
- package/dist/public/fonts/Nichrome/mdnichrome-bold-webfont.svg +241 -241
- package/dist/public/fonts/Nichrome/mdnichrome-regular-webfont.svg +241 -241
- package/dist/public/fonts/miewfont/miewfont.svg +38 -38
- package/dist/types.d.ts +2 -1
- package/package.json +103 -103
- package/prettier.config.js +7 -7
- package/public/assets/components/quotes.svg +3 -3
- package/public/assets/empty-state.svg +28 -28
- package/public/fonts/Nichrome/mdnichrome-bold-webfont.svg +241 -241
- package/public/fonts/Nichrome/mdnichrome-regular-webfont.svg +241 -241
- package/public/fonts/miewfont/miewfont.svg +38 -38
- package/rollup.config.js +98 -98
- package/src/components/atoms/Button/Button.component.tsx +60 -60
- package/src/components/atoms/Button/Button.interface.ts +29 -29
- package/src/components/atoms/Button/Button.stories.tsx +65 -65
- package/src/components/atoms/Button/Button.theme.ts +180 -180
- package/src/components/atoms/Button/index.ts +1 -1
- package/src/components/atoms/CardMarquee/CardMarquee.component.tsx +24 -24
- package/src/components/atoms/CardMarquee/CardMarquee.interface.ts +15 -15
- package/src/components/atoms/CardMarquee/CardMarquee.stories.tsx +21 -21
- package/src/components/atoms/CardMarquee/CardMarquee.theme.ts +48 -48
- package/src/components/atoms/CardMarquee/index.ts +1 -1
- package/src/components/atoms/Chip/Chip.component.tsx +30 -30
- package/src/components/atoms/Chip/Chip.interface.ts +14 -14
- package/src/components/atoms/Chip/Chip.stories.tsx +42 -42
- package/src/components/atoms/Chip/Chip.theme.ts +57 -57
- package/src/components/atoms/Chip/index.ts +1 -1
- package/src/components/atoms/CloseButton/CloseButton.component.tsx +17 -17
- package/src/components/atoms/CloseButton/CloseButton.interface.ts +9 -9
- package/src/components/atoms/CloseButton/CloseButton.stories.tsx +24 -24
- package/src/components/atoms/CloseButton/CloseButton.theme.ts +66 -66
- package/src/components/atoms/CloseButton/index.ts +1 -1
- package/src/components/atoms/Counter/Counter.component.tsx +99 -99
- package/src/components/atoms/Counter/Counter.interface.ts +10 -10
- package/src/components/atoms/Counter/Counter.stories.tsx +29 -29
- package/src/components/atoms/Counter/Counter.theme.ts +27 -27
- package/src/components/atoms/Counter/index.ts +1 -1
- package/src/components/atoms/EmptyState/EmptyState.component.tsx +27 -27
- package/src/components/atoms/EmptyState/EmptyState.interface.ts +10 -10
- package/src/components/atoms/EmptyState/EmptyState.stories.tsx +34 -34
- package/src/components/atoms/EmptyState/EmptyState.theme.ts +27 -27
- package/src/components/atoms/EmptyState/index.ts +1 -1
- package/src/components/atoms/Flex/Flex.component.tsx +30 -30
- package/src/components/atoms/Flex/Flex.interface.ts +24 -24
- package/src/components/atoms/Flex/Flex.theme.ts +12 -12
- package/src/components/atoms/Flex/index.ts +1 -1
- package/src/components/atoms/FlexGrid/FlexGrid.component.tsx +62 -62
- package/src/components/atoms/FlexGrid/FlexGrid.interface.ts +55 -55
- package/src/components/atoms/FlexGrid/FlexGrid.stories.tsx +59 -59
- package/src/components/atoms/FlexGrid/FlexGrid.theme.ts +82 -82
- package/src/components/atoms/FlexGrid/index.ts +1 -1
- package/src/components/atoms/FormField/CheckRadioField/CheckRadioField.component.tsx +24 -24
- package/src/components/atoms/FormField/CheckRadioField/CheckRadioField.interface.tsx +6 -6
- package/src/components/atoms/FormField/CheckRadioField/CheckRadioField.theme.ts +134 -134
- package/src/components/atoms/FormField/CheckRadioField/index.ts +1 -1
- package/src/components/atoms/FormField/FormField.component.tsx +37 -37
- package/src/components/atoms/FormField/FormField.interface.ts +10 -10
- package/src/components/atoms/FormField/FormField.stories.tsx +499 -499
- package/src/components/atoms/FormField/FormField.theme.tsx +136 -136
- package/src/components/atoms/FormField/index.ts +1 -1
- package/src/components/atoms/Heading/Heading.component.tsx +18 -18
- package/src/components/atoms/Heading/Heading.interface.tsx +21 -21
- package/src/components/atoms/Heading/Heading.theme.ts +17 -17
- package/src/components/atoms/Heading/index.ts +1 -1
- package/src/components/atoms/Icon/Icon.component.tsx +19 -19
- package/src/components/atoms/Icon/Icon.interface.ts +8 -8
- package/src/components/atoms/Icon/Icon.stories.tsx +26 -26
- package/src/components/atoms/Icon/Icon.theme.ts +115 -115
- package/src/components/atoms/Icon/index.ts +1 -1
- package/src/components/atoms/ImageWrapper/ImageWrapper.component.tsx +42 -42
- package/src/components/atoms/ImageWrapper/ImageWrapper.interface.ts +16 -16
- package/src/components/atoms/ImageWrapper/ImageWrapper.stories.tsx +27 -27
- package/src/components/atoms/ImageWrapper/ImageWrapper.theme.ts +50 -50
- package/src/components/atoms/ImageWrapper/index.ts +1 -1
- package/src/components/atoms/LegalLinks/LegalLinks.component.tsx +35 -35
- package/src/components/atoms/LegalLinks/LegalLinks.interface.ts +12 -12
- package/src/components/atoms/LegalLinks/LegalLinks.stories.tsx +43 -43
- package/src/components/atoms/LegalLinks/LegalLinks.theme.ts +33 -33
- package/src/components/atoms/LegalLinks/index.ts +1 -1
- package/src/components/atoms/Loader/Loader.component.tsx +26 -26
- package/src/components/atoms/Loader/Loader.interface.ts +10 -10
- package/src/components/atoms/Loader/Loader.stories.tsx +33 -33
- package/src/components/atoms/Loader/Loader.theme.ts +51 -51
- package/src/components/atoms/Loader/index.ts +1 -1
- package/src/components/atoms/Marquee/Marquee.component.tsx +32 -32
- package/src/components/atoms/Marquee/Marquee.interface.ts +10 -10
- package/src/components/atoms/Marquee/Marquee.stories.tsx +20 -20
- package/src/components/atoms/Marquee/Marquee.theme.ts +40 -40
- package/src/components/atoms/Marquee/index.ts +1 -1
- package/src/components/atoms/Quote/Quote.component.tsx +29 -29
- package/src/components/atoms/Quote/Quote.interface.ts +10 -10
- package/src/components/atoms/Quote/Quote.stories.tsx +25 -25
- package/src/components/atoms/Quote/Quote.theme.ts +26 -26
- package/src/components/atoms/Quote/index.ts +1 -1
- package/src/components/atoms/RichText/RichText.component.tsx +32 -32
- package/src/components/atoms/RichText/RichText.interface.ts +11 -11
- package/src/components/atoms/RichText/RichText.stories.tsx +73 -73
- package/src/components/atoms/RichText/RichText.theme.ts +34 -34
- package/src/components/atoms/RichText/index.ts +1 -1
- package/src/components/atoms/ScrollingNav/ScrollingNav.component.tsx +18 -18
- package/src/components/atoms/ScrollingNav/ScrollingNav.interface.ts +8 -8
- package/src/components/atoms/ScrollingNav/ScrollingNav.stories.tsx +44 -44
- package/src/components/atoms/ScrollingNav/ScrollingNav.theme.ts +58 -58
- package/src/components/atoms/ScrollingNav/index.ts +1 -1
- package/src/components/atoms/Separator/Separator.component.tsx +19 -19
- package/src/components/atoms/Separator/Separator.interface.tsx +10 -10
- package/src/components/atoms/Separator/Separator.stories.tsx +29 -29
- package/src/components/atoms/Separator/Separator.theme.ts +9 -9
- package/src/components/atoms/Separator/index.ts +1 -1
- package/src/components/atoms/SocialLinks/SocialLinks.component.tsx +42 -42
- package/src/components/atoms/SocialLinks/SocialLinks.interface.ts +8 -8
- package/src/components/atoms/SocialLinks/SocialLinks.stories.tsx +48 -48
- package/src/components/atoms/SocialLinks/SocialLinks.theme.ts +80 -80
- package/src/components/atoms/SocialLinks/index.ts +1 -1
- package/src/components/atoms/Spacer/Spacer.component.tsx +34 -34
- package/src/components/atoms/Spacer/Spacer.interface.ts +24 -24
- package/src/components/atoms/Spacer/Spacer.stories.tsx +99 -99
- package/src/components/atoms/Spacer/Spacer.theme.ts +33 -33
- package/src/components/atoms/Spacer/index.ts +1 -1
- package/src/components/atoms/Video/Video.component.tsx +116 -116
- package/src/components/atoms/Video/Video.interface.ts +13 -13
- package/src/components/atoms/Video/Video.stories.tsx +37 -37
- package/src/components/atoms/Video/Video.theme.ts +44 -44
- package/src/components/atoms/Video/index.ts +1 -1
- package/src/components/atoms/VideoEmbed/VideoEmbed.component.tsx +109 -109
- package/src/components/atoms/VideoEmbed/VideoEmbed.interface.ts +13 -13
- package/src/components/atoms/VideoEmbed/VideoEmbed.stories.tsx +23 -23
- package/src/components/atoms/VideoEmbed/VideoEmbed.theme.ts +45 -45
- package/src/components/atoms/VideoEmbed/index.ts +1 -1
- package/src/components/common/PortalComponent/PortalComponent.tsx +48 -48
- package/src/components/common/PortalComponent/index.ts +1 -1
- package/src/components/molecules/Accordion/Accordion.component.tsx +58 -58
- package/src/components/molecules/Accordion/Accordion.interface.ts +15 -15
- package/src/components/molecules/Accordion/Accordion.stories.tsx +100 -100
- package/src/components/molecules/Accordion/Accordion.theme.ts +93 -93
- package/src/components/molecules/Accordion/index.ts +1 -1
- package/src/components/molecules/BlogCard/BlogCard.component.tsx +48 -48
- package/src/components/molecules/BlogCard/BlogCard.interface.ts +10 -10
- package/src/components/molecules/BlogCard/BlogCard.stories.tsx +37 -37
- package/src/components/molecules/BlogCard/BlogCard.theme.ts +41 -41
- package/src/components/molecules/BlogCard/index.ts +1 -1
- package/src/components/molecules/Card/Card.component.tsx +15 -15
- package/src/components/molecules/Card/Card.interface.ts +11 -11
- package/src/components/molecules/Card/Card.theme.ts +54 -54
- package/src/components/molecules/Card/index.ts +1 -1
- package/src/components/molecules/CareersCard/CareersCard.component.tsx +27 -27
- package/src/components/molecules/CareersCard/CareersCard.interface.ts +7 -7
- package/src/components/molecules/CareersCard/CareersCard.stories.tsx +30 -30
- package/src/components/molecules/CareersCard/CareersCard.theme.ts +13 -13
- package/src/components/molecules/CareersCard/index.ts +1 -1
- package/src/components/molecules/Dropdown/Dropdown.component.tsx +67 -67
- package/src/components/molecules/Dropdown/Dropdown.interface.ts +26 -26
- package/src/components/molecules/Dropdown/Dropdown.stories.tsx +54 -54
- package/src/components/molecules/Dropdown/Dropdown.theme.ts +69 -69
- package/src/components/molecules/Dropdown/index.ts +1 -1
- package/src/components/molecules/EventsCard/EventsCard.component.tsx +41 -40
- package/src/components/molecules/EventsCard/EventsCard.interface.ts +10 -9
- package/src/components/molecules/EventsCard/EventsCard.stories.tsx +38 -37
- package/src/components/molecules/EventsCard/EventsCard.theme.ts +33 -33
- package/src/components/molecules/EventsCard/index.ts +1 -1
- package/src/components/molecules/IconBox/IconBox.component.tsx +29 -29
- package/src/components/molecules/IconBox/IconBox.interface.tsx +10 -10
- package/src/components/molecules/IconBox/IconBox.stories.tsx +23 -23
- package/src/components/molecules/IconBox/IconBox.theme.ts +25 -25
- package/src/components/molecules/IconBox/index.ts +1 -1
- package/src/components/molecules/IconTitle/IconTitle.component.tsx +24 -24
- package/src/components/molecules/IconTitle/IconTitle.interface.tsx +10 -10
- package/src/components/molecules/IconTitle/IconTitle.stories.tsx +49 -49
- package/src/components/molecules/IconTitle/IconTitle.theme.ts +10 -10
- package/src/components/molecules/IconTitle/index.ts +1 -1
- package/src/components/molecules/LicenseCard/LicenseCard.component.tsx +27 -27
- package/src/components/molecules/LicenseCard/LicenseCard.interface.ts +6 -6
- package/src/components/molecules/LicenseCard/LicenseCard.stories.tsx +42 -42
- package/src/components/molecules/LicenseCard/LicenseCard.theme.ts +28 -28
- package/src/components/molecules/LicenseCard/index.ts +1 -1
- package/src/components/molecules/LogosCard/LogosCard.component.tsx +14 -14
- package/src/components/molecules/LogosCard/LogosCard.interface.ts +8 -8
- package/src/components/molecules/LogosCard/LogosCard.stories.tsx +38 -38
- package/src/components/molecules/LogosCard/LogosCard.theme.ts +19 -19
- package/src/components/molecules/LogosCard/index.ts +1 -1
- package/src/components/molecules/Modal/Modal.component.tsx +70 -70
- package/src/components/molecules/Modal/Modal.interface.ts +11 -11
- package/src/components/molecules/Modal/Modal.stories.tsx +57 -57
- package/src/components/molecules/Modal/Modal.theme.ts +55 -55
- package/src/components/molecules/Modal/index.ts +1 -1
- package/src/components/molecules/NewsCard/NewsCard.component.tsx +55 -55
- package/src/components/molecules/NewsCard/NewsCard.interface.ts +9 -9
- package/src/components/molecules/NewsCard/NewsCard.stories.tsx +44 -44
- package/src/components/molecules/NewsCard/NewsCard.theme.ts +77 -77
- package/src/components/molecules/NewsCard/index.ts +1 -1
- package/src/components/molecules/OffCanvas/OffCanvas.component.tsx +55 -55
- package/src/components/molecules/OffCanvas/OffCanvas.interface.ts +12 -12
- package/src/components/molecules/OffCanvas/OffCanvas.stories.tsx +55 -55
- package/src/components/molecules/OffCanvas/OffCanvas.theme.ts +50 -50
- package/src/components/molecules/OffCanvas/index.ts +1 -1
- package/src/components/molecules/ProductCard/ProductCard.component.tsx +60 -60
- package/src/components/molecules/ProductCard/ProductCard.interface.ts +7 -7
- package/src/components/molecules/ProductCard/ProductCard.stories.tsx +42 -42
- package/src/components/molecules/ProductCard/ProductCard.theme.ts +26 -26
- package/src/components/molecules/ProductCard/index.ts +1 -1
- package/src/components/molecules/ShareModal/ShareModal.component.tsx +167 -167
- package/src/components/molecules/ShareModal/ShareModal.interface.ts +9 -9
- package/src/components/molecules/ShareModal/ShareModal.stories.tsx +33 -33
- package/src/components/molecules/ShareModal/ShareModal.theme.ts +103 -103
- package/src/components/molecules/ShareModal/index.ts +1 -1
- package/src/components/molecules/TeamCard/TeamCard.component.tsx +31 -31
- package/src/components/molecules/TeamCard/TeamCard.interface.ts +7 -7
- package/src/components/molecules/TeamCard/TeamCard.stories.tsx +33 -33
- package/src/components/molecules/TeamCard/TeamCard.theme.ts +12 -12
- package/src/components/molecules/TeamCard/index.ts +1 -1
- package/src/components/organisms/CircularSlider/CircularSlider.component.tsx +231 -231
- package/src/components/organisms/CircularSlider/CircularSlider.interface.ts +13 -13
- package/src/components/organisms/CircularSlider/CircularSlider.stories.tsx +138 -138
- package/src/components/organisms/CircularSlider/CircularSlider.theme.ts +126 -126
- package/src/components/organisms/CircularSlider/index.ts +1 -1
- package/src/components/organisms/Cover/Cover.component.tsx +46 -46
- package/src/components/organisms/Cover/Cover.interface.ts +14 -14
- package/src/components/organisms/Cover/Cover.stories.tsx +97 -97
- package/src/components/organisms/Cover/Cover.theme.ts +49 -49
- package/src/components/organisms/Cover/index.ts +1 -1
- package/src/components/organisms/ProductsSlider/ProductsSlider.component.tsx +216 -216
- package/src/components/organisms/ProductsSlider/ProductsSlider.interface.ts +12 -12
- package/src/components/organisms/ProductsSlider/ProductsSlider.stories.tsx +132 -132
- package/src/components/organisms/ProductsSlider/ProductsSlider.theme.ts +77 -77
- package/src/components/organisms/ProductsSlider/index.ts +1 -1
- package/src/components/organisms/ProductsSlider//306/222.js +164 -164
- package/src/components/organisms/Slider/Slider.component.tsx +154 -154
- package/src/components/organisms/Slider/Slider.interface.ts +19 -19
- package/src/components/organisms/Slider/Slider.stories.tsx +146 -146
- package/src/components/organisms/Slider/Slider.theme.ts +145 -145
- package/src/components/organisms/Slider/Slider.utils.tsx +19 -19
- package/src/components/organisms/Slider/index.ts +1 -1
- package/src/components/organisms/Tabs/Tabs.component.tsx +88 -88
- package/src/components/organisms/Tabs/Tabs.interface.ts +18 -18
- package/src/components/organisms/Tabs/Tabs.stories.tsx +118 -118
- package/src/components/organisms/Tabs/Tabs.theme.ts +115 -115
- package/src/components/organisms/Tabs/index.ts +1 -1
- package/src/helpers/clickOutsideToClose.tsx +17 -17
- package/src/helpers/events.ts +9 -9
- package/src/helpers/exportCSS.tsx +27 -27
- package/src/helpers/getIcons.ts +5 -5
- package/src/helpers/isTouchDevice.tsx +11 -11
- package/src/helpers/useInterval.ts +25 -25
- package/src/helpers/useMediaMatch.tsx +26 -26
- package/src/helpers/uuid.ts +5 -5
- package/src/iconsList.json +1 -1
- package/src/index.ts +68 -68
- package/src/reportWebVitals.js +13 -13
- package/src/stories/Documentation/Colors.stories.tsx +46 -46
- package/src/stories/Documentation/Headings.stories.tsx +24 -24
- package/src/stories/Documentation/Icons.stories.tsx +73 -73
- package/src/stories/Documentation/JWT.stories.tsx +60 -60
- package/src/stories/Documentation/Utilities.stories.tsx +65 -65
- package/src/styles/Global.ts +301 -301
- package/src/styles/grid.ts +70 -70
- package/src/styles/reset.ts +47 -47
- package/src/styles/utilities.ts +374 -374
- package/src/styles/variables.ts +180 -180
- package/tsconfig.json +31 -31
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
import { IAccordion, IAccordionItem } from './Accordion.interface'
|
|
2
|
-
import React, { useRef, useState } from 'react'
|
|
3
|
-
import {
|
|
4
|
-
StyledAccordion,
|
|
5
|
-
StyledAccordionContent,
|
|
6
|
-
StyledAccordionItem,
|
|
7
|
-
StyledAccordionTitle
|
|
8
|
-
} from './Accordion.theme'
|
|
9
|
-
|
|
10
|
-
import Icon from '@/components/atoms/Icon/Icon.component'
|
|
11
|
-
import Separator from '@/components/atoms/Separator/Separator.component'
|
|
12
|
-
|
|
13
|
-
export const Accordion = ({ className, style, children }: IAccordion) => {
|
|
14
|
-
return (
|
|
15
|
-
<StyledAccordion className={className} style={style}>
|
|
16
|
-
{children}
|
|
17
|
-
</StyledAccordion>
|
|
18
|
-
)
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export const AccordionItem = ({
|
|
22
|
-
title,
|
|
23
|
-
className,
|
|
24
|
-
style,
|
|
25
|
-
children
|
|
26
|
-
}: IAccordionItem) => {
|
|
27
|
-
const [active, setActive] = useState(false)
|
|
28
|
-
const contentEl = useRef<HTMLInputElement>(null)
|
|
29
|
-
|
|
30
|
-
return (
|
|
31
|
-
<StyledAccordionItem
|
|
32
|
-
active={active ? true : undefined}
|
|
33
|
-
className={className}
|
|
34
|
-
style={style}
|
|
35
|
-
>
|
|
36
|
-
<StyledAccordionTitle
|
|
37
|
-
className={`h4 fw-bold`}
|
|
38
|
-
onClick={() => {
|
|
39
|
-
setActive(!active)
|
|
40
|
-
}}
|
|
41
|
-
>
|
|
42
|
-
<span>{title}</span>
|
|
43
|
-
<Icon className={active ? 'icon-arrowDown' : 'icon-arrowUp'} />
|
|
44
|
-
</StyledAccordionTitle>
|
|
45
|
-
<StyledAccordionContent
|
|
46
|
-
ref={contentEl}
|
|
47
|
-
style={
|
|
48
|
-
active
|
|
49
|
-
? { height: contentEl?.current?.scrollHeight }
|
|
50
|
-
: { height: '0px' }
|
|
51
|
-
}
|
|
52
|
-
>
|
|
53
|
-
<Separator height="1rem"></Separator>
|
|
54
|
-
{children}
|
|
55
|
-
</StyledAccordionContent>
|
|
56
|
-
</StyledAccordionItem>
|
|
57
|
-
)
|
|
58
|
-
}
|
|
1
|
+
import { IAccordion, IAccordionItem } from './Accordion.interface'
|
|
2
|
+
import React, { useRef, useState } from 'react'
|
|
3
|
+
import {
|
|
4
|
+
StyledAccordion,
|
|
5
|
+
StyledAccordionContent,
|
|
6
|
+
StyledAccordionItem,
|
|
7
|
+
StyledAccordionTitle
|
|
8
|
+
} from './Accordion.theme'
|
|
9
|
+
|
|
10
|
+
import Icon from '@/components/atoms/Icon/Icon.component'
|
|
11
|
+
import Separator from '@/components/atoms/Separator/Separator.component'
|
|
12
|
+
|
|
13
|
+
export const Accordion = ({ className, style, children }: IAccordion) => {
|
|
14
|
+
return (
|
|
15
|
+
<StyledAccordion className={className} style={style}>
|
|
16
|
+
{children}
|
|
17
|
+
</StyledAccordion>
|
|
18
|
+
)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export const AccordionItem = ({
|
|
22
|
+
title,
|
|
23
|
+
className,
|
|
24
|
+
style,
|
|
25
|
+
children
|
|
26
|
+
}: IAccordionItem) => {
|
|
27
|
+
const [active, setActive] = useState(false)
|
|
28
|
+
const contentEl = useRef<HTMLInputElement>(null)
|
|
29
|
+
|
|
30
|
+
return (
|
|
31
|
+
<StyledAccordionItem
|
|
32
|
+
active={active ? true : undefined}
|
|
33
|
+
className={className}
|
|
34
|
+
style={style}
|
|
35
|
+
>
|
|
36
|
+
<StyledAccordionTitle
|
|
37
|
+
className={`h4 fw-bold`}
|
|
38
|
+
onClick={() => {
|
|
39
|
+
setActive(!active)
|
|
40
|
+
}}
|
|
41
|
+
>
|
|
42
|
+
<span>{title}</span>
|
|
43
|
+
<Icon className={active ? 'icon-arrowDown' : 'icon-arrowUp'} />
|
|
44
|
+
</StyledAccordionTitle>
|
|
45
|
+
<StyledAccordionContent
|
|
46
|
+
ref={contentEl}
|
|
47
|
+
style={
|
|
48
|
+
active
|
|
49
|
+
? { height: contentEl?.current?.scrollHeight }
|
|
50
|
+
: { height: '0px' }
|
|
51
|
+
}
|
|
52
|
+
>
|
|
53
|
+
<Separator height="1rem"></Separator>
|
|
54
|
+
{children}
|
|
55
|
+
</StyledAccordionContent>
|
|
56
|
+
</StyledAccordionItem>
|
|
57
|
+
)
|
|
58
|
+
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { CSSProperties } from 'react';
|
|
2
|
-
|
|
3
|
-
export interface IAccordion {
|
|
4
|
-
className?: string
|
|
5
|
-
style?: CSSProperties
|
|
6
|
-
children?: React.ReactNode;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export interface IAccordionItem {
|
|
10
|
-
active?: boolean
|
|
11
|
-
title?: string
|
|
12
|
-
className?: string
|
|
13
|
-
style?: CSSProperties
|
|
14
|
-
children?: React.ReactNode;
|
|
15
|
-
}
|
|
1
|
+
import { CSSProperties } from 'react';
|
|
2
|
+
|
|
3
|
+
export interface IAccordion {
|
|
4
|
+
className?: string
|
|
5
|
+
style?: CSSProperties
|
|
6
|
+
children?: React.ReactNode;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface IAccordionItem {
|
|
10
|
+
active?: boolean
|
|
11
|
+
title?: string
|
|
12
|
+
className?: string
|
|
13
|
+
style?: CSSProperties
|
|
14
|
+
children?: React.ReactNode;
|
|
15
|
+
}
|
|
@@ -1,100 +1,100 @@
|
|
|
1
|
-
import { Accordion, AccordionItem } from './Accordion.component'
|
|
2
|
-
import type { Meta, StoryObj } from '@storybook/react'
|
|
3
|
-
|
|
4
|
-
import { IAccordion } from './Accordion.interface'
|
|
5
|
-
import React from 'react'
|
|
6
|
-
|
|
7
|
-
// More on default export: https://storybook.js.org/docs/react/writing-stories/introduction#default-export
|
|
8
|
-
export default {
|
|
9
|
-
title: 'Components/Accordion',
|
|
10
|
-
component: Accordion,
|
|
11
|
-
tags: ['autodocs']
|
|
12
|
-
} as Meta
|
|
13
|
-
|
|
14
|
-
export const Simple: StoryObj<IAccordion> = {
|
|
15
|
-
render: args => (
|
|
16
|
-
<Accordion {...args}>
|
|
17
|
-
<AccordionItem title="Lorem ipsum dolor sit amet, consectetur adipiscing elit.">
|
|
18
|
-
<p>
|
|
19
|
-
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
20
|
-
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique.
|
|
21
|
-
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
22
|
-
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique
|
|
23
|
-
</p>
|
|
24
|
-
</AccordionItem>
|
|
25
|
-
<AccordionItem title="Lorem ipsum dolor sit amet, consectetur adipiscing elit.">
|
|
26
|
-
<p>
|
|
27
|
-
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
28
|
-
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique.
|
|
29
|
-
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
30
|
-
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique
|
|
31
|
-
</p>
|
|
32
|
-
</AccordionItem>
|
|
33
|
-
<AccordionItem title="Lorem ipsum dolor sit amet, consectetur adipiscing elit.">
|
|
34
|
-
<p>
|
|
35
|
-
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
36
|
-
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique.
|
|
37
|
-
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
38
|
-
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique
|
|
39
|
-
</p>
|
|
40
|
-
</AccordionItem>
|
|
41
|
-
<AccordionItem title="Lorem ipsum dolor sit amet, consectetur adipiscing elit.">
|
|
42
|
-
<p>
|
|
43
|
-
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
44
|
-
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique.
|
|
45
|
-
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
46
|
-
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique
|
|
47
|
-
</p>
|
|
48
|
-
</AccordionItem>
|
|
49
|
-
<AccordionItem title="Lorem ipsum dolor sit amet, consectetur adipiscing elit.">
|
|
50
|
-
<p>
|
|
51
|
-
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
52
|
-
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique.
|
|
53
|
-
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
54
|
-
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique
|
|
55
|
-
</p>
|
|
56
|
-
</AccordionItem>
|
|
57
|
-
<AccordionItem title="Lorem ipsum dolor sit amet, consectetur adipiscing elit.">
|
|
58
|
-
<p>
|
|
59
|
-
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
60
|
-
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique.
|
|
61
|
-
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
62
|
-
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique
|
|
63
|
-
</p>
|
|
64
|
-
</AccordionItem>
|
|
65
|
-
<AccordionItem title="Lorem ipsum dolor sit amet, consectetur adipiscing elit.">
|
|
66
|
-
<p>
|
|
67
|
-
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
68
|
-
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique.
|
|
69
|
-
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
70
|
-
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique
|
|
71
|
-
</p>
|
|
72
|
-
</AccordionItem>
|
|
73
|
-
<AccordionItem title="Lorem ipsum dolor sit amet, consectetur adipiscing elit.">
|
|
74
|
-
<p>
|
|
75
|
-
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
76
|
-
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique.
|
|
77
|
-
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
78
|
-
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique
|
|
79
|
-
</p>
|
|
80
|
-
</AccordionItem>
|
|
81
|
-
<AccordionItem title="Lorem ipsum dolor sit amet, consectetur adipiscing elit.">
|
|
82
|
-
<p>
|
|
83
|
-
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
84
|
-
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique.
|
|
85
|
-
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
86
|
-
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique
|
|
87
|
-
</p>
|
|
88
|
-
</AccordionItem>
|
|
89
|
-
<AccordionItem title="Lorem ipsum dolor sit amet, consectetur adipiscing elit.">
|
|
90
|
-
<p>
|
|
91
|
-
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
92
|
-
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique.
|
|
93
|
-
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
94
|
-
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique
|
|
95
|
-
</p>
|
|
96
|
-
</AccordionItem>
|
|
97
|
-
</Accordion>
|
|
98
|
-
),
|
|
99
|
-
args: {}
|
|
100
|
-
}
|
|
1
|
+
import { Accordion, AccordionItem } from './Accordion.component'
|
|
2
|
+
import type { Meta, StoryObj } from '@storybook/react'
|
|
3
|
+
|
|
4
|
+
import { IAccordion } from './Accordion.interface'
|
|
5
|
+
import React from 'react'
|
|
6
|
+
|
|
7
|
+
// More on default export: https://storybook.js.org/docs/react/writing-stories/introduction#default-export
|
|
8
|
+
export default {
|
|
9
|
+
title: 'Components/Accordion',
|
|
10
|
+
component: Accordion,
|
|
11
|
+
tags: ['autodocs']
|
|
12
|
+
} as Meta
|
|
13
|
+
|
|
14
|
+
export const Simple: StoryObj<IAccordion> = {
|
|
15
|
+
render: args => (
|
|
16
|
+
<Accordion {...args}>
|
|
17
|
+
<AccordionItem title="Lorem ipsum dolor sit amet, consectetur adipiscing elit.">
|
|
18
|
+
<p>
|
|
19
|
+
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
20
|
+
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique.
|
|
21
|
+
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
22
|
+
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique
|
|
23
|
+
</p>
|
|
24
|
+
</AccordionItem>
|
|
25
|
+
<AccordionItem title="Lorem ipsum dolor sit amet, consectetur adipiscing elit.">
|
|
26
|
+
<p>
|
|
27
|
+
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
28
|
+
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique.
|
|
29
|
+
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
30
|
+
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique
|
|
31
|
+
</p>
|
|
32
|
+
</AccordionItem>
|
|
33
|
+
<AccordionItem title="Lorem ipsum dolor sit amet, consectetur adipiscing elit.">
|
|
34
|
+
<p>
|
|
35
|
+
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
36
|
+
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique.
|
|
37
|
+
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
38
|
+
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique
|
|
39
|
+
</p>
|
|
40
|
+
</AccordionItem>
|
|
41
|
+
<AccordionItem title="Lorem ipsum dolor sit amet, consectetur adipiscing elit.">
|
|
42
|
+
<p>
|
|
43
|
+
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
44
|
+
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique.
|
|
45
|
+
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
46
|
+
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique
|
|
47
|
+
</p>
|
|
48
|
+
</AccordionItem>
|
|
49
|
+
<AccordionItem title="Lorem ipsum dolor sit amet, consectetur adipiscing elit.">
|
|
50
|
+
<p>
|
|
51
|
+
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
52
|
+
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique.
|
|
53
|
+
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
54
|
+
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique
|
|
55
|
+
</p>
|
|
56
|
+
</AccordionItem>
|
|
57
|
+
<AccordionItem title="Lorem ipsum dolor sit amet, consectetur adipiscing elit.">
|
|
58
|
+
<p>
|
|
59
|
+
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
60
|
+
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique.
|
|
61
|
+
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
62
|
+
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique
|
|
63
|
+
</p>
|
|
64
|
+
</AccordionItem>
|
|
65
|
+
<AccordionItem title="Lorem ipsum dolor sit amet, consectetur adipiscing elit.">
|
|
66
|
+
<p>
|
|
67
|
+
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
68
|
+
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique.
|
|
69
|
+
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
70
|
+
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique
|
|
71
|
+
</p>
|
|
72
|
+
</AccordionItem>
|
|
73
|
+
<AccordionItem title="Lorem ipsum dolor sit amet, consectetur adipiscing elit.">
|
|
74
|
+
<p>
|
|
75
|
+
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
76
|
+
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique.
|
|
77
|
+
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
78
|
+
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique
|
|
79
|
+
</p>
|
|
80
|
+
</AccordionItem>
|
|
81
|
+
<AccordionItem title="Lorem ipsum dolor sit amet, consectetur adipiscing elit.">
|
|
82
|
+
<p>
|
|
83
|
+
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
84
|
+
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique.
|
|
85
|
+
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
86
|
+
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique
|
|
87
|
+
</p>
|
|
88
|
+
</AccordionItem>
|
|
89
|
+
<AccordionItem title="Lorem ipsum dolor sit amet, consectetur adipiscing elit.">
|
|
90
|
+
<p>
|
|
91
|
+
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
92
|
+
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique.
|
|
93
|
+
Cras vel facilisis tellus, id iaculis risus. Vestibulum non mollis
|
|
94
|
+
ipsum. Vestibulum faucibus nisl sit amet magna interdum tristique
|
|
95
|
+
</p>
|
|
96
|
+
</AccordionItem>
|
|
97
|
+
</Accordion>
|
|
98
|
+
),
|
|
99
|
+
args: {}
|
|
100
|
+
}
|
|
@@ -1,93 +1,93 @@
|
|
|
1
|
-
import { IAccordion, IAccordionItem } from './Accordion.interface';
|
|
2
|
-
import { colors, easeOutExpo, responsiveMedia, responsiveMediaMax } from '@/styles/variables';
|
|
3
|
-
import styled, { css } from 'styled-components';
|
|
4
|
-
|
|
5
|
-
export const StyledAccordionTitle = styled.span<IAccordionItem>`
|
|
6
|
-
display: block;
|
|
7
|
-
position: relative;
|
|
8
|
-
|
|
9
|
-
padding-right: 6rem;
|
|
10
|
-
|
|
11
|
-
cursor: pointer;
|
|
12
|
-
transition: font-weight .4s ease-in-out;
|
|
13
|
-
|
|
14
|
-
& i {
|
|
15
|
-
position: absolute;
|
|
16
|
-
top: 50%;
|
|
17
|
-
right: 8px;
|
|
18
|
-
|
|
19
|
-
display: flex;
|
|
20
|
-
align-items: center;
|
|
21
|
-
justify-content: center;
|
|
22
|
-
|
|
23
|
-
width: 4rem;
|
|
24
|
-
height: 4rem;
|
|
25
|
-
border-radius: 100%;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
font-size: 1.2rem;
|
|
29
|
-
color: ${colors.secondary50};
|
|
30
|
-
background: ${colors.third10};
|
|
31
|
-
|
|
32
|
-
transform: translateY(-50%);
|
|
33
|
-
transform-origin: center;
|
|
34
|
-
|
|
35
|
-
transition: all 0.6s ${easeOutExpo};
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
`
|
|
39
|
-
|
|
40
|
-
export const StyledAccordionContent = styled.div<IAccordionItem>`
|
|
41
|
-
position: relative;
|
|
42
|
-
display: grid;
|
|
43
|
-
grid-template-rows: 0fr;
|
|
44
|
-
overflow: hidden;
|
|
45
|
-
transition: all 0.5s linear;
|
|
46
|
-
|
|
47
|
-
${({ active }) => active && `
|
|
48
|
-
grid-template-rows: 1fr;
|
|
49
|
-
`}
|
|
50
|
-
|
|
51
|
-
@media only screen and (max-width: ${responsiveMediaMax}) {
|
|
52
|
-
padding-right: 6rem;
|
|
53
|
-
}
|
|
54
|
-
`
|
|
55
|
-
|
|
56
|
-
export const StyledAccordionItem = styled.li<IAccordionItem>`
|
|
57
|
-
position: relative;
|
|
58
|
-
width: 100%;
|
|
59
|
-
padding: 2rem 2.4rem;
|
|
60
|
-
border-radius: 50px;
|
|
61
|
-
color: ${colors.third50};
|
|
62
|
-
background-color: ${colors.secondary50};
|
|
63
|
-
margin-bottom: 1rem;
|
|
64
|
-
transition: all 0.6s ${easeOutExpo};
|
|
65
|
-
|
|
66
|
-
&:hover{
|
|
67
|
-
color: ${colors.primary50};
|
|
68
|
-
& ${StyledAccordionTitle} {
|
|
69
|
-
i{
|
|
70
|
-
background: ${colors.primary50};
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
${({ active }) => active && `
|
|
76
|
-
color: ${colors.third10};
|
|
77
|
-
& ${StyledAccordionTitle} {
|
|
78
|
-
i{
|
|
79
|
-
background: ${colors.third10};
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
`}
|
|
83
|
-
|
|
84
|
-
`
|
|
85
|
-
|
|
86
|
-
export const StyledAccordion = styled.ul<IAccordion>`
|
|
87
|
-
display: block;
|
|
88
|
-
text-align: left;
|
|
89
|
-
margin: auto;
|
|
90
|
-
list-style: none;
|
|
91
|
-
padding: 0;
|
|
92
|
-
`;
|
|
93
|
-
|
|
1
|
+
import { IAccordion, IAccordionItem } from './Accordion.interface';
|
|
2
|
+
import { colors, easeOutExpo, responsiveMedia, responsiveMediaMax } from '@/styles/variables';
|
|
3
|
+
import styled, { css } from 'styled-components';
|
|
4
|
+
|
|
5
|
+
export const StyledAccordionTitle = styled.span<IAccordionItem>`
|
|
6
|
+
display: block;
|
|
7
|
+
position: relative;
|
|
8
|
+
|
|
9
|
+
padding-right: 6rem;
|
|
10
|
+
|
|
11
|
+
cursor: pointer;
|
|
12
|
+
transition: font-weight .4s ease-in-out;
|
|
13
|
+
|
|
14
|
+
& i {
|
|
15
|
+
position: absolute;
|
|
16
|
+
top: 50%;
|
|
17
|
+
right: 8px;
|
|
18
|
+
|
|
19
|
+
display: flex;
|
|
20
|
+
align-items: center;
|
|
21
|
+
justify-content: center;
|
|
22
|
+
|
|
23
|
+
width: 4rem;
|
|
24
|
+
height: 4rem;
|
|
25
|
+
border-radius: 100%;
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
font-size: 1.2rem;
|
|
29
|
+
color: ${colors.secondary50};
|
|
30
|
+
background: ${colors.third10};
|
|
31
|
+
|
|
32
|
+
transform: translateY(-50%);
|
|
33
|
+
transform-origin: center;
|
|
34
|
+
|
|
35
|
+
transition: all 0.6s ${easeOutExpo};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
`
|
|
39
|
+
|
|
40
|
+
export const StyledAccordionContent = styled.div<IAccordionItem>`
|
|
41
|
+
position: relative;
|
|
42
|
+
display: grid;
|
|
43
|
+
grid-template-rows: 0fr;
|
|
44
|
+
overflow: hidden;
|
|
45
|
+
transition: all 0.5s linear;
|
|
46
|
+
|
|
47
|
+
${({ active }) => active && `
|
|
48
|
+
grid-template-rows: 1fr;
|
|
49
|
+
`}
|
|
50
|
+
|
|
51
|
+
@media only screen and (max-width: ${responsiveMediaMax}) {
|
|
52
|
+
padding-right: 6rem;
|
|
53
|
+
}
|
|
54
|
+
`
|
|
55
|
+
|
|
56
|
+
export const StyledAccordionItem = styled.li<IAccordionItem>`
|
|
57
|
+
position: relative;
|
|
58
|
+
width: 100%;
|
|
59
|
+
padding: 2rem 2.4rem;
|
|
60
|
+
border-radius: 50px;
|
|
61
|
+
color: ${colors.third50};
|
|
62
|
+
background-color: ${colors.secondary50};
|
|
63
|
+
margin-bottom: 1rem;
|
|
64
|
+
transition: all 0.6s ${easeOutExpo};
|
|
65
|
+
|
|
66
|
+
&:hover{
|
|
67
|
+
color: ${colors.primary50};
|
|
68
|
+
& ${StyledAccordionTitle} {
|
|
69
|
+
i{
|
|
70
|
+
background: ${colors.primary50};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
${({ active }) => active && `
|
|
76
|
+
color: ${colors.third10};
|
|
77
|
+
& ${StyledAccordionTitle} {
|
|
78
|
+
i{
|
|
79
|
+
background: ${colors.third10};
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
`}
|
|
83
|
+
|
|
84
|
+
`
|
|
85
|
+
|
|
86
|
+
export const StyledAccordion = styled.ul<IAccordion>`
|
|
87
|
+
display: block;
|
|
88
|
+
text-align: left;
|
|
89
|
+
margin: auto;
|
|
90
|
+
list-style: none;
|
|
91
|
+
padding: 0;
|
|
92
|
+
`;
|
|
93
|
+
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { Accordion, AccordionItem } from './Accordion.component'
|
|
1
|
+
export { Accordion, AccordionItem } from './Accordion.component'
|
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
import Chip from '@/components/atoms/Chip/Chip.component'
|
|
2
|
-
import Heading from '@/components/atoms/Heading'
|
|
3
|
-
import { IBlogCard } from './BlogCard.interface'
|
|
4
|
-
import Icon from '@/components/atoms/Icon/Icon.component'
|
|
5
|
-
import ImageWrapper from '@/components/atoms/ImageWrapper'
|
|
6
|
-
import React from 'react'
|
|
7
|
-
import RichText from '@/components/atoms/RichText/RichText.component'
|
|
8
|
-
import { StyledBlogCard } from './BlogCard.theme'
|
|
9
|
-
|
|
10
|
-
const BlogCard = ({
|
|
11
|
-
variant,
|
|
12
|
-
date,
|
|
13
|
-
category,
|
|
14
|
-
title,
|
|
15
|
-
imageElement,
|
|
16
|
-
linkElement,
|
|
17
|
-
description,
|
|
18
|
-
author,
|
|
19
|
-
...props
|
|
20
|
-
}: IBlogCard) => {
|
|
21
|
-
return (
|
|
22
|
-
<StyledBlogCard
|
|
23
|
-
variant={variant}
|
|
24
|
-
imageElement={
|
|
25
|
-
<>
|
|
26
|
-
{category && <Chip variant='light' className='font-epilogue'>{category}</Chip>}
|
|
27
|
-
<ImageWrapper aspectRatioHeight={63}>{imageElement}</ImageWrapper>
|
|
28
|
-
</>
|
|
29
|
-
}
|
|
30
|
-
>
|
|
31
|
-
<Heading tag={'h3'} size={'h4'} className={'fw-bold textEllipsis'}>
|
|
32
|
-
{title}
|
|
33
|
-
</Heading>
|
|
34
|
-
<Heading tag={'span'} size={'captions'} className={'textEllipsis mt-3'}>
|
|
35
|
-
{description}
|
|
36
|
-
</Heading>
|
|
37
|
-
{date && (
|
|
38
|
-
<RichText tag={'span'} className="d-block fw-bold mt-4">
|
|
39
|
-
{date}
|
|
40
|
-
</RichText>
|
|
41
|
-
)}
|
|
42
|
-
|
|
43
|
-
{linkElement}
|
|
44
|
-
</StyledBlogCard>
|
|
45
|
-
)
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export default BlogCard
|
|
1
|
+
import Chip from '@/components/atoms/Chip/Chip.component'
|
|
2
|
+
import Heading from '@/components/atoms/Heading'
|
|
3
|
+
import { IBlogCard } from './BlogCard.interface'
|
|
4
|
+
import Icon from '@/components/atoms/Icon/Icon.component'
|
|
5
|
+
import ImageWrapper from '@/components/atoms/ImageWrapper'
|
|
6
|
+
import React from 'react'
|
|
7
|
+
import RichText from '@/components/atoms/RichText/RichText.component'
|
|
8
|
+
import { StyledBlogCard } from './BlogCard.theme'
|
|
9
|
+
|
|
10
|
+
const BlogCard = ({
|
|
11
|
+
variant,
|
|
12
|
+
date,
|
|
13
|
+
category,
|
|
14
|
+
title,
|
|
15
|
+
imageElement,
|
|
16
|
+
linkElement,
|
|
17
|
+
description,
|
|
18
|
+
author,
|
|
19
|
+
...props
|
|
20
|
+
}: IBlogCard) => {
|
|
21
|
+
return (
|
|
22
|
+
<StyledBlogCard
|
|
23
|
+
variant={variant}
|
|
24
|
+
imageElement={
|
|
25
|
+
<>
|
|
26
|
+
{category && <Chip variant='light' className='font-epilogue'>{category}</Chip>}
|
|
27
|
+
<ImageWrapper aspectRatioHeight={63}>{imageElement}</ImageWrapper>
|
|
28
|
+
</>
|
|
29
|
+
}
|
|
30
|
+
>
|
|
31
|
+
<Heading tag={'h3'} size={'h4'} className={'fw-bold textEllipsis'}>
|
|
32
|
+
{title}
|
|
33
|
+
</Heading>
|
|
34
|
+
<Heading tag={'span'} size={'captions'} className={'textEllipsis mt-3'}>
|
|
35
|
+
{description}
|
|
36
|
+
</Heading>
|
|
37
|
+
{date && (
|
|
38
|
+
<RichText tag={'span'} className="d-block fw-bold mt-4">
|
|
39
|
+
{date}
|
|
40
|
+
</RichText>
|
|
41
|
+
)}
|
|
42
|
+
|
|
43
|
+
{linkElement}
|
|
44
|
+
</StyledBlogCard>
|
|
45
|
+
)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export default BlogCard
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { ICard } from '../Card/Card.interface';
|
|
2
|
-
|
|
3
|
-
export interface IBlogCard extends ICard {
|
|
4
|
-
date?: string,
|
|
5
|
-
category?: string
|
|
6
|
-
title?: string
|
|
7
|
-
description?: string | React.ReactElement
|
|
8
|
-
author?: string,
|
|
9
|
-
linkElement?: React.ReactElement
|
|
10
|
-
}
|
|
1
|
+
import { ICard } from '../Card/Card.interface';
|
|
2
|
+
|
|
3
|
+
export interface IBlogCard extends ICard {
|
|
4
|
+
date?: string,
|
|
5
|
+
category?: string
|
|
6
|
+
title?: string
|
|
7
|
+
description?: string | React.ReactElement
|
|
8
|
+
author?: string,
|
|
9
|
+
linkElement?: React.ReactElement
|
|
10
|
+
}
|