oddsgate-ds 1.0.171 → 1.0.175
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/atoms/AwardBadge/AwardBadge.component.d.ts +11 -0
- package/dist/cjs/types/components/atoms/AwardBadge/AwardBadge.interface.d.ts +4 -0
- package/dist/cjs/types/components/atoms/AwardBadge/AwardBadge.theme.d.ts +3 -0
- package/dist/cjs/types/components/atoms/AwardBadge/index.d.ts +1 -0
- package/dist/cjs/types/components/molecules/AwardCard/AwardCard.component.d.ts +15 -0
- package/dist/cjs/types/components/molecules/AwardCard/AwardCard.interface.d.ts +10 -0
- package/dist/cjs/types/components/molecules/AwardCard/AwardCard.theme.d.ts +6 -0
- package/dist/cjs/types/components/molecules/AwardCard/index.d.ts +1 -0
- package/dist/cjs/types/components/molecules/EventsCard/EventsCard.component.d.ts +1 -1
- package/dist/cjs/types/components/molecules/EventsCard/EventsCard.interface.d.ts +0 -1
- package/dist/cjs/types/components/organisms/Slider/Slider.component.d.ts +1 -1
- package/dist/cjs/types/components/organisms/Slider/Slider.interface.d.ts +3 -0
- package/dist/esm/assets/components/quotes.svg +3 -3
- package/dist/esm/index.js +5 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/components/atoms/AwardBadge/AwardBadge.component.d.ts +11 -0
- package/dist/esm/types/components/atoms/AwardBadge/AwardBadge.interface.d.ts +4 -0
- package/dist/esm/types/components/atoms/AwardBadge/AwardBadge.theme.d.ts +3 -0
- package/dist/esm/types/components/atoms/AwardBadge/index.d.ts +1 -0
- package/dist/esm/types/components/molecules/AwardCard/AwardCard.component.d.ts +15 -0
- package/dist/esm/types/components/molecules/AwardCard/AwardCard.interface.d.ts +10 -0
- package/dist/esm/types/components/molecules/AwardCard/AwardCard.theme.d.ts +6 -0
- package/dist/esm/types/components/molecules/AwardCard/index.d.ts +1 -0
- package/dist/esm/types/components/molecules/EventsCard/EventsCard.component.d.ts +1 -1
- package/dist/esm/types/components/molecules/EventsCard/EventsCard.interface.d.ts +0 -1
- package/dist/esm/types/components/organisms/Slider/Slider.component.d.ts +1 -1
- package/dist/esm/types/components/organisms/Slider/Slider.interface.d.ts +3 -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 +5 -3
- 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/AwardBadge/AwardBadge.component.tsx +25 -0
- package/src/components/atoms/AwardBadge/AwardBadge.interface.ts +4 -0
- package/src/components/atoms/AwardBadge/AwardBadge.stories.tsx +48 -0
- package/src/components/atoms/AwardBadge/AwardBadge.theme.ts +28 -0
- package/src/components/atoms/AwardBadge/index.ts +1 -0
- 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/AwardCard/AwardCard.component.tsx +51 -0
- package/src/components/molecules/AwardCard/AwardCard.interface.ts +10 -0
- package/src/components/molecules/AwardCard/AwardCard.stories.tsx +34 -0
- package/src/components/molecules/AwardCard/AwardCard.theme.ts +33 -0
- package/src/components/molecules/AwardCard/index.ts +1 -0
- 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 +40 -41
- package/src/components/molecules/EventsCard/EventsCard.interface.ts +9 -10
- package/src/components/molecules/EventsCard/EventsCard.stories.tsx +37 -38
- 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 +156 -154
- package/src/components/organisms/Slider/Slider.interface.ts +23 -19
- package/src/components/organisms/Slider/Slider.stories.tsx +223 -146
- package/src/components/organisms/Slider/Slider.theme.ts +144 -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,118 +1,118 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from '@storybook/react'
|
|
2
|
-
|
|
3
|
-
import { ITabs } from './Tabs.interface'
|
|
4
|
-
import React from 'react'
|
|
5
|
-
import RichText from '@/components/atoms/RichText'
|
|
6
|
-
import Tabs from './Tabs.component'
|
|
7
|
-
|
|
8
|
-
// More on default export: https://storybook.js.org/docs/react/writing-stories/introduction#default-export
|
|
9
|
-
export default {
|
|
10
|
-
title: 'Components/Tabs',
|
|
11
|
-
component: Tabs
|
|
12
|
-
} as Meta
|
|
13
|
-
|
|
14
|
-
export const Simple: StoryObj<ITabs> = {
|
|
15
|
-
render: args => <Tabs {...args}></Tabs>,
|
|
16
|
-
args: {
|
|
17
|
-
title: 'Lorem ipsum dolor sit amet',
|
|
18
|
-
vertical: true,
|
|
19
|
-
menu: [
|
|
20
|
-
{
|
|
21
|
-
id: 'lorem-1',
|
|
22
|
-
label: 'Lorem 1',
|
|
23
|
-
content: (
|
|
24
|
-
<RichText style={{ color: 'var(--color-gray50)' }}>
|
|
25
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
26
|
-
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
|
|
27
|
-
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
28
|
-
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
29
|
-
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
30
|
-
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
31
|
-
culpa qui officia deserunt mollit anim id est laborum.
|
|
32
|
-
</RichText>
|
|
33
|
-
),
|
|
34
|
-
onClick: () => {
|
|
35
|
-
alert('Tab clicked')
|
|
36
|
-
}
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
id: 'lorem-2',
|
|
40
|
-
label: 'Lorem 2',
|
|
41
|
-
content: (
|
|
42
|
-
<RichText style={{ color: 'var(--color-gray50)' }}>
|
|
43
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
44
|
-
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
|
|
45
|
-
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
46
|
-
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
47
|
-
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
48
|
-
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
49
|
-
culpa qui officia deserunt mollit anim id est eiusmod tempor
|
|
50
|
-
incididunt ut labore et dolore magna aliqua. Ut enim ad minim
|
|
51
|
-
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex
|
|
52
|
-
ea commodo consequat. Duis aute irure dolor in reprehenderit in
|
|
53
|
-
voluptate velit esse cillum dolore eu fugiat nulla pariatur.
|
|
54
|
-
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui
|
|
55
|
-
officia deserunt mollit anim id est laborum.
|
|
56
|
-
</RichText>
|
|
57
|
-
)
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
id: 'lorem-3',
|
|
61
|
-
label: 'Lorem 3',
|
|
62
|
-
content: (
|
|
63
|
-
<RichText style={{ color: 'var(--color-gray50)' }}>
|
|
64
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
65
|
-
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
|
|
66
|
-
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
67
|
-
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
68
|
-
</RichText>
|
|
69
|
-
)
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
id: 'lorem-4',
|
|
73
|
-
label: 'Lorem 4',
|
|
74
|
-
content: (
|
|
75
|
-
<RichText style={{ color: 'var(--color-gray50)' }}>
|
|
76
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
77
|
-
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
|
|
78
|
-
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
79
|
-
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
80
|
-
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
81
|
-
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
82
|
-
culpa qui officia deserunt mollit anim id est laborum.
|
|
83
|
-
</RichText>
|
|
84
|
-
)
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
id: 'lorem-5',
|
|
88
|
-
label: 'Lorem 5',
|
|
89
|
-
content: (
|
|
90
|
-
<RichText style={{ color: 'var(--color-gray50)' }}>
|
|
91
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
92
|
-
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
|
|
93
|
-
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
94
|
-
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
95
|
-
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
96
|
-
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
97
|
-
culpa qui officia deserunt mollit anim id est laborum.
|
|
98
|
-
</RichText>
|
|
99
|
-
)
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
id: 'lorem-6',
|
|
103
|
-
label: 'Lorem 6',
|
|
104
|
-
content: (
|
|
105
|
-
<RichText style={{ color: 'var(--color-gray50)' }}>
|
|
106
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
107
|
-
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
|
|
108
|
-
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
109
|
-
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
110
|
-
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
111
|
-
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
112
|
-
culpa qui officia deserunt mollit anim id est laborum.
|
|
113
|
-
</RichText>
|
|
114
|
-
)
|
|
115
|
-
}
|
|
116
|
-
]
|
|
117
|
-
}
|
|
118
|
-
}
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react'
|
|
2
|
+
|
|
3
|
+
import { ITabs } from './Tabs.interface'
|
|
4
|
+
import React from 'react'
|
|
5
|
+
import RichText from '@/components/atoms/RichText'
|
|
6
|
+
import Tabs from './Tabs.component'
|
|
7
|
+
|
|
8
|
+
// More on default export: https://storybook.js.org/docs/react/writing-stories/introduction#default-export
|
|
9
|
+
export default {
|
|
10
|
+
title: 'Components/Tabs',
|
|
11
|
+
component: Tabs
|
|
12
|
+
} as Meta
|
|
13
|
+
|
|
14
|
+
export const Simple: StoryObj<ITabs> = {
|
|
15
|
+
render: args => <Tabs {...args}></Tabs>,
|
|
16
|
+
args: {
|
|
17
|
+
title: 'Lorem ipsum dolor sit amet',
|
|
18
|
+
vertical: true,
|
|
19
|
+
menu: [
|
|
20
|
+
{
|
|
21
|
+
id: 'lorem-1',
|
|
22
|
+
label: 'Lorem 1',
|
|
23
|
+
content: (
|
|
24
|
+
<RichText style={{ color: 'var(--color-gray50)' }}>
|
|
25
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
26
|
+
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
|
|
27
|
+
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
28
|
+
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
29
|
+
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
30
|
+
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
31
|
+
culpa qui officia deserunt mollit anim id est laborum.
|
|
32
|
+
</RichText>
|
|
33
|
+
),
|
|
34
|
+
onClick: () => {
|
|
35
|
+
alert('Tab clicked')
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: 'lorem-2',
|
|
40
|
+
label: 'Lorem 2',
|
|
41
|
+
content: (
|
|
42
|
+
<RichText style={{ color: 'var(--color-gray50)' }}>
|
|
43
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
44
|
+
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
|
|
45
|
+
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
46
|
+
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
47
|
+
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
48
|
+
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
49
|
+
culpa qui officia deserunt mollit anim id est eiusmod tempor
|
|
50
|
+
incididunt ut labore et dolore magna aliqua. Ut enim ad minim
|
|
51
|
+
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex
|
|
52
|
+
ea commodo consequat. Duis aute irure dolor in reprehenderit in
|
|
53
|
+
voluptate velit esse cillum dolore eu fugiat nulla pariatur.
|
|
54
|
+
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui
|
|
55
|
+
officia deserunt mollit anim id est laborum.
|
|
56
|
+
</RichText>
|
|
57
|
+
)
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
id: 'lorem-3',
|
|
61
|
+
label: 'Lorem 3',
|
|
62
|
+
content: (
|
|
63
|
+
<RichText style={{ color: 'var(--color-gray50)' }}>
|
|
64
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
65
|
+
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
|
|
66
|
+
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
67
|
+
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
68
|
+
</RichText>
|
|
69
|
+
)
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
id: 'lorem-4',
|
|
73
|
+
label: 'Lorem 4',
|
|
74
|
+
content: (
|
|
75
|
+
<RichText style={{ color: 'var(--color-gray50)' }}>
|
|
76
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
77
|
+
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
|
|
78
|
+
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
79
|
+
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
80
|
+
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
81
|
+
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
82
|
+
culpa qui officia deserunt mollit anim id est laborum.
|
|
83
|
+
</RichText>
|
|
84
|
+
)
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
id: 'lorem-5',
|
|
88
|
+
label: 'Lorem 5',
|
|
89
|
+
content: (
|
|
90
|
+
<RichText style={{ color: 'var(--color-gray50)' }}>
|
|
91
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
92
|
+
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
|
|
93
|
+
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
94
|
+
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
95
|
+
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
96
|
+
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
97
|
+
culpa qui officia deserunt mollit anim id est laborum.
|
|
98
|
+
</RichText>
|
|
99
|
+
)
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
id: 'lorem-6',
|
|
103
|
+
label: 'Lorem 6',
|
|
104
|
+
content: (
|
|
105
|
+
<RichText style={{ color: 'var(--color-gray50)' }}>
|
|
106
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
|
|
107
|
+
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
|
|
108
|
+
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
|
|
109
|
+
aliquip ex ea commodo consequat. Duis aute irure dolor in
|
|
110
|
+
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
|
111
|
+
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
|
|
112
|
+
culpa qui officia deserunt mollit anim id est laborum.
|
|
113
|
+
</RichText>
|
|
114
|
+
)
|
|
115
|
+
}
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
}
|
|
@@ -1,115 +1,115 @@
|
|
|
1
|
-
import { ITabs, ITabsItem } from './Tabs.interface';
|
|
2
|
-
import { colors, responsiveMedia } from '@/styles/variables';
|
|
3
|
-
import styled, { css, keyframes } from 'styled-components';
|
|
4
|
-
|
|
5
|
-
import ScrollingNav from '@/components/atoms/ScrollingNav/ScrollingNav.component';
|
|
6
|
-
|
|
7
|
-
export const StyledTabsMenu = styled(ScrollingNav) <ITabs>`
|
|
8
|
-
@media only screen and (min-width: ${responsiveMedia}) {
|
|
9
|
-
align-items: center;
|
|
10
|
-
justify-content: center;
|
|
11
|
-
}
|
|
12
|
-
`
|
|
13
|
-
|
|
14
|
-
export const StyledTabsLinks = styled.a<ITabsItem>`
|
|
15
|
-
display: inline-flex;
|
|
16
|
-
align-items: center;
|
|
17
|
-
justify-content: space-between;
|
|
18
|
-
width: 100%;
|
|
19
|
-
color: ${colors.secondary50};
|
|
20
|
-
background-color: ${colors.third10};
|
|
21
|
-
padding: 8px 26px;
|
|
22
|
-
border-radius: 50px;
|
|
23
|
-
transition: all 0.3s linear;
|
|
24
|
-
cursor: pointer;
|
|
25
|
-
|
|
26
|
-
&:hover{
|
|
27
|
-
background-color: ${colors.primary50};
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
${({ $active }) => $active && `
|
|
31
|
-
background-color: ${colors.primary50};
|
|
32
|
-
`}
|
|
33
|
-
`
|
|
34
|
-
|
|
35
|
-
export const StyledTabsContent = styled.div<ITabsItem>`
|
|
36
|
-
position: absolute;
|
|
37
|
-
top: 0;
|
|
38
|
-
left: 0%;
|
|
39
|
-
display: flex;
|
|
40
|
-
flex-flow: row wrap;
|
|
41
|
-
height:100%;
|
|
42
|
-
min-height:320px;
|
|
43
|
-
|
|
44
|
-
opacity: 0;
|
|
45
|
-
visibility: hidden;
|
|
46
|
-
pointer-events: none;
|
|
47
|
-
|
|
48
|
-
background-color: ${colors.primary50};
|
|
49
|
-
border-radius: 48px 0;
|
|
50
|
-
padding: 36px;
|
|
51
|
-
|
|
52
|
-
@media only screen and (min-width: ${responsiveMedia}) {
|
|
53
|
-
min-height: 40rem;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
& > span{
|
|
57
|
-
display: flex;
|
|
58
|
-
align-items:center;
|
|
59
|
-
align-self: flex-end;
|
|
60
|
-
gap: 1rem;
|
|
61
|
-
|
|
62
|
-
width: 100%;
|
|
63
|
-
|
|
64
|
-
&:before{
|
|
65
|
-
content:'';
|
|
66
|
-
width: 3rem;
|
|
67
|
-
height: 3rem;
|
|
68
|
-
border-radius: 100%;
|
|
69
|
-
background-color: ${colors.third50};
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
${({ $active }) => $active && `
|
|
74
|
-
opacity: 1;
|
|
75
|
-
visibility: visible;
|
|
76
|
-
pointer-events: auto;
|
|
77
|
-
`}
|
|
78
|
-
|
|
79
|
-
`
|
|
80
|
-
|
|
81
|
-
export const StyledTabs = styled.div<ITabs>`
|
|
82
|
-
position: relative;
|
|
83
|
-
display: flex;
|
|
84
|
-
flex-flow: column;
|
|
85
|
-
gap: 16px;
|
|
86
|
-
|
|
87
|
-
& > div{
|
|
88
|
-
width: 100%;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
${({ $vertical }) => $vertical && `
|
|
92
|
-
@media only screen and (min-width: ${responsiveMedia}) {
|
|
93
|
-
flex-flow: row;
|
|
94
|
-
|
|
95
|
-
& > div{
|
|
96
|
-
&:first-child{
|
|
97
|
-
width: 60%;
|
|
98
|
-
flex-grow: 1;
|
|
99
|
-
}
|
|
100
|
-
&:last-child{
|
|
101
|
-
width: 40%;
|
|
102
|
-
flex-shrink: 1;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
${StyledTabsMenu}{
|
|
107
|
-
display: inline-flex;
|
|
108
|
-
flex-flow: column;
|
|
109
|
-
align-items: stretch;
|
|
110
|
-
justify-content: flex-start;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
`}
|
|
114
|
-
`;
|
|
115
|
-
|
|
1
|
+
import { ITabs, ITabsItem } from './Tabs.interface';
|
|
2
|
+
import { colors, responsiveMedia } from '@/styles/variables';
|
|
3
|
+
import styled, { css, keyframes } from 'styled-components';
|
|
4
|
+
|
|
5
|
+
import ScrollingNav from '@/components/atoms/ScrollingNav/ScrollingNav.component';
|
|
6
|
+
|
|
7
|
+
export const StyledTabsMenu = styled(ScrollingNav) <ITabs>`
|
|
8
|
+
@media only screen and (min-width: ${responsiveMedia}) {
|
|
9
|
+
align-items: center;
|
|
10
|
+
justify-content: center;
|
|
11
|
+
}
|
|
12
|
+
`
|
|
13
|
+
|
|
14
|
+
export const StyledTabsLinks = styled.a<ITabsItem>`
|
|
15
|
+
display: inline-flex;
|
|
16
|
+
align-items: center;
|
|
17
|
+
justify-content: space-between;
|
|
18
|
+
width: 100%;
|
|
19
|
+
color: ${colors.secondary50};
|
|
20
|
+
background-color: ${colors.third10};
|
|
21
|
+
padding: 8px 26px;
|
|
22
|
+
border-radius: 50px;
|
|
23
|
+
transition: all 0.3s linear;
|
|
24
|
+
cursor: pointer;
|
|
25
|
+
|
|
26
|
+
&:hover{
|
|
27
|
+
background-color: ${colors.primary50};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
${({ $active }) => $active && `
|
|
31
|
+
background-color: ${colors.primary50};
|
|
32
|
+
`}
|
|
33
|
+
`
|
|
34
|
+
|
|
35
|
+
export const StyledTabsContent = styled.div<ITabsItem>`
|
|
36
|
+
position: absolute;
|
|
37
|
+
top: 0;
|
|
38
|
+
left: 0%;
|
|
39
|
+
display: flex;
|
|
40
|
+
flex-flow: row wrap;
|
|
41
|
+
height:100%;
|
|
42
|
+
min-height:320px;
|
|
43
|
+
|
|
44
|
+
opacity: 0;
|
|
45
|
+
visibility: hidden;
|
|
46
|
+
pointer-events: none;
|
|
47
|
+
|
|
48
|
+
background-color: ${colors.primary50};
|
|
49
|
+
border-radius: 48px 0;
|
|
50
|
+
padding: 36px;
|
|
51
|
+
|
|
52
|
+
@media only screen and (min-width: ${responsiveMedia}) {
|
|
53
|
+
min-height: 40rem;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
& > span{
|
|
57
|
+
display: flex;
|
|
58
|
+
align-items:center;
|
|
59
|
+
align-self: flex-end;
|
|
60
|
+
gap: 1rem;
|
|
61
|
+
|
|
62
|
+
width: 100%;
|
|
63
|
+
|
|
64
|
+
&:before{
|
|
65
|
+
content:'';
|
|
66
|
+
width: 3rem;
|
|
67
|
+
height: 3rem;
|
|
68
|
+
border-radius: 100%;
|
|
69
|
+
background-color: ${colors.third50};
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
${({ $active }) => $active && `
|
|
74
|
+
opacity: 1;
|
|
75
|
+
visibility: visible;
|
|
76
|
+
pointer-events: auto;
|
|
77
|
+
`}
|
|
78
|
+
|
|
79
|
+
`
|
|
80
|
+
|
|
81
|
+
export const StyledTabs = styled.div<ITabs>`
|
|
82
|
+
position: relative;
|
|
83
|
+
display: flex;
|
|
84
|
+
flex-flow: column;
|
|
85
|
+
gap: 16px;
|
|
86
|
+
|
|
87
|
+
& > div{
|
|
88
|
+
width: 100%;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
${({ $vertical }) => $vertical && `
|
|
92
|
+
@media only screen and (min-width: ${responsiveMedia}) {
|
|
93
|
+
flex-flow: row;
|
|
94
|
+
|
|
95
|
+
& > div{
|
|
96
|
+
&:first-child{
|
|
97
|
+
width: 60%;
|
|
98
|
+
flex-grow: 1;
|
|
99
|
+
}
|
|
100
|
+
&:last-child{
|
|
101
|
+
width: 40%;
|
|
102
|
+
flex-shrink: 1;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
${StyledTabsMenu}{
|
|
107
|
+
display: inline-flex;
|
|
108
|
+
flex-flow: column;
|
|
109
|
+
align-items: stretch;
|
|
110
|
+
justify-content: flex-start;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
`}
|
|
114
|
+
`;
|
|
115
|
+
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default } from './Tabs.component'
|
|
1
|
+
export { default } from './Tabs.component'
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { useEffect } from 'react'
|
|
2
|
-
|
|
3
|
-
export default function clickOutSideToClose(
|
|
4
|
-
ref: React.RefObject<HTMLDivElement>,
|
|
5
|
-
closeFunction: () => void
|
|
6
|
-
) {
|
|
7
|
-
function handleClickOutside(event: MouseEvent) {
|
|
8
|
-
if (ref.current && !ref.current.contains(event.target as Node) ) {
|
|
9
|
-
closeFunction()
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
useEffect(() => {
|
|
14
|
-
document.addEventListener('mouseup', handleClickOutside, {passive: true})
|
|
15
|
-
return () => document.removeEventListener('mouseup', handleClickOutside)
|
|
16
|
-
}, [ref])
|
|
17
|
-
}
|
|
1
|
+
import { useEffect } from 'react'
|
|
2
|
+
|
|
3
|
+
export default function clickOutSideToClose(
|
|
4
|
+
ref: React.RefObject<HTMLDivElement>,
|
|
5
|
+
closeFunction: () => void
|
|
6
|
+
) {
|
|
7
|
+
function handleClickOutside(event: MouseEvent) {
|
|
8
|
+
if (ref.current && !ref.current.contains(event.target as Node) ) {
|
|
9
|
+
closeFunction()
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
document.addEventListener('mouseup', handleClickOutside, {passive: true})
|
|
15
|
+
return () => document.removeEventListener('mouseup', handleClickOutside)
|
|
16
|
+
}, [ref])
|
|
17
|
+
}
|
package/src/helpers/events.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export const debounce = (callback: any, wait: number) => {
|
|
2
|
-
let timeoutId: number | null = null;
|
|
3
|
-
return (...args: any) => {
|
|
4
|
-
timeoutId && window.clearTimeout(timeoutId);
|
|
5
|
-
timeoutId = window.setTimeout(() => {
|
|
6
|
-
callback(...args);
|
|
7
|
-
}, wait);
|
|
8
|
-
};
|
|
9
|
-
}
|
|
1
|
+
export const debounce = (callback: any, wait: number) => {
|
|
2
|
+
let timeoutId: number | null = null;
|
|
3
|
+
return (...args: any) => {
|
|
4
|
+
timeoutId && window.clearTimeout(timeoutId);
|
|
5
|
+
timeoutId = window.setTimeout(() => {
|
|
6
|
+
callback(...args);
|
|
7
|
+
}, wait);
|
|
8
|
+
};
|
|
9
|
+
}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { default as GlobalStyles } from '../styles/Global'
|
|
2
|
-
import React from 'react'
|
|
3
|
-
import { ServerStyleSheet } from 'styled-components'
|
|
4
|
-
import { renderToString } from 'react-dom/server'
|
|
5
|
-
import { useState } from 'react'
|
|
6
|
-
|
|
7
|
-
const ReturnCss = () => {
|
|
8
|
-
const sheet = new ServerStyleSheet()
|
|
9
|
-
|
|
10
|
-
const html = renderToString(sheet.collectStyles(<GlobalStyles />))
|
|
11
|
-
const styleTags = sheet.getStyleElement()
|
|
12
|
-
sheet.instance.clearTag()
|
|
13
|
-
|
|
14
|
-
return styleTags[0]
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export default ReturnCss
|
|
18
|
-
|
|
19
|
-
export const ReturnCssString = () => {
|
|
20
|
-
const sheet = new ServerStyleSheet()
|
|
21
|
-
|
|
22
|
-
const html = renderToString(sheet.collectStyles(<GlobalStyles />))
|
|
23
|
-
const styleTags = sheet.getStyleElement()
|
|
24
|
-
sheet.instance.clearTag()
|
|
25
|
-
|
|
26
|
-
return styleTags[0].props.dangerouslySetInnerHTML.__html
|
|
27
|
-
}
|
|
1
|
+
import { default as GlobalStyles } from '../styles/Global'
|
|
2
|
+
import React from 'react'
|
|
3
|
+
import { ServerStyleSheet } from 'styled-components'
|
|
4
|
+
import { renderToString } from 'react-dom/server'
|
|
5
|
+
import { useState } from 'react'
|
|
6
|
+
|
|
7
|
+
const ReturnCss = () => {
|
|
8
|
+
const sheet = new ServerStyleSheet()
|
|
9
|
+
|
|
10
|
+
const html = renderToString(sheet.collectStyles(<GlobalStyles />))
|
|
11
|
+
const styleTags = sheet.getStyleElement()
|
|
12
|
+
sheet.instance.clearTag()
|
|
13
|
+
|
|
14
|
+
return styleTags[0]
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export default ReturnCss
|
|
18
|
+
|
|
19
|
+
export const ReturnCssString = () => {
|
|
20
|
+
const sheet = new ServerStyleSheet()
|
|
21
|
+
|
|
22
|
+
const html = renderToString(sheet.collectStyles(<GlobalStyles />))
|
|
23
|
+
const styleTags = sheet.getStyleElement()
|
|
24
|
+
sheet.instance.clearTag()
|
|
25
|
+
|
|
26
|
+
return styleTags[0].props.dangerouslySetInnerHTML.__html
|
|
27
|
+
}
|
package/src/helpers/getIcons.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import selection from '../iconsList.json';
|
|
2
|
-
|
|
3
|
-
export const iconsList = selection.icons.map(
|
|
4
|
-
(icon) => `icon-${icon.properties.name}`
|
|
5
|
-
);
|
|
1
|
+
import selection from '../iconsList.json';
|
|
2
|
+
|
|
3
|
+
export const iconsList = selection.icons.map(
|
|
4
|
+
(icon) => `icon-${icon.properties.name}`
|
|
5
|
+
);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
const isTouchDevice = () => {
|
|
2
|
-
try {
|
|
3
|
-
document.createEvent('TouchEvent');
|
|
4
|
-
return true;
|
|
5
|
-
} catch (e) {
|
|
6
|
-
return false;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
export default isTouchDevice
|
|
1
|
+
const isTouchDevice = () => {
|
|
2
|
+
try {
|
|
3
|
+
document.createEvent('TouchEvent');
|
|
4
|
+
return true;
|
|
5
|
+
} catch (e) {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
export default isTouchDevice
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { useEffect, useRef } from "react";
|
|
2
|
-
|
|
3
|
-
export const useInterval = (callback, delay) => {
|
|
4
|
-
const savedCallback = useRef();
|
|
5
|
-
let id
|
|
6
|
-
|
|
7
|
-
useEffect(() => {
|
|
8
|
-
savedCallback.current = callback;
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
useEffect(() => {
|
|
12
|
-
function tick() {
|
|
13
|
-
if (savedCallback && savedCallback.current) {
|
|
14
|
-
const result = (savedCallback as unknown as any).current();
|
|
15
|
-
if (result === true) {// if callback returs true, clear timeout;
|
|
16
|
-
clearInterval(id);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
id = setInterval(tick, delay);
|
|
22
|
-
|
|
23
|
-
return () => clearInterval(id);
|
|
24
|
-
}, [delay]);
|
|
25
|
-
}
|
|
1
|
+
import { useEffect, useRef } from "react";
|
|
2
|
+
|
|
3
|
+
export const useInterval = (callback, delay) => {
|
|
4
|
+
const savedCallback = useRef();
|
|
5
|
+
let id
|
|
6
|
+
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
savedCallback.current = callback;
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
function tick() {
|
|
13
|
+
if (savedCallback && savedCallback.current) {
|
|
14
|
+
const result = (savedCallback as unknown as any).current();
|
|
15
|
+
if (result === true) {// if callback returs true, clear timeout;
|
|
16
|
+
clearInterval(id);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
id = setInterval(tick, delay);
|
|
22
|
+
|
|
23
|
+
return () => clearInterval(id);
|
|
24
|
+
}, [delay]);
|
|
25
|
+
}
|