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.
Files changed (277) hide show
  1. package/.babelrc.json +25 -25
  2. package/.editorconfig +12 -12
  3. package/.storybook/main.ts +58 -58
  4. package/.storybook/preview.ts +26 -26
  5. package/README.md +30 -30
  6. package/chromatic.config.json +6 -6
  7. package/dist/cjs/assets/components/quotes.svg +3 -3
  8. package/dist/cjs/index.js +4 -4
  9. package/dist/cjs/index.js.map +1 -1
  10. package/dist/cjs/types/components/molecules/EventsCard/EventsCard.component.d.ts +1 -1
  11. package/dist/cjs/types/components/molecules/EventsCard/EventsCard.interface.d.ts +1 -0
  12. package/dist/esm/assets/components/quotes.svg +3 -3
  13. package/dist/esm/index.js +1 -1
  14. package/dist/esm/index.js.map +1 -1
  15. package/dist/esm/types/components/molecules/EventsCard/EventsCard.component.d.ts +1 -1
  16. package/dist/esm/types/components/molecules/EventsCard/EventsCard.interface.d.ts +1 -0
  17. package/dist/public/assets/components/quotes.svg +3 -3
  18. package/dist/public/assets/empty-state.svg +28 -28
  19. package/dist/public/fonts/Nichrome/mdnichrome-bold-webfont.svg +241 -241
  20. package/dist/public/fonts/Nichrome/mdnichrome-regular-webfont.svg +241 -241
  21. package/dist/public/fonts/miewfont/miewfont.svg +38 -38
  22. package/dist/types.d.ts +2 -1
  23. package/package.json +103 -103
  24. package/prettier.config.js +7 -7
  25. package/public/assets/components/quotes.svg +3 -3
  26. package/public/assets/empty-state.svg +28 -28
  27. package/public/fonts/Nichrome/mdnichrome-bold-webfont.svg +241 -241
  28. package/public/fonts/Nichrome/mdnichrome-regular-webfont.svg +241 -241
  29. package/public/fonts/miewfont/miewfont.svg +38 -38
  30. package/rollup.config.js +98 -98
  31. package/src/components/atoms/Button/Button.component.tsx +60 -60
  32. package/src/components/atoms/Button/Button.interface.ts +29 -29
  33. package/src/components/atoms/Button/Button.stories.tsx +65 -65
  34. package/src/components/atoms/Button/Button.theme.ts +180 -180
  35. package/src/components/atoms/Button/index.ts +1 -1
  36. package/src/components/atoms/CardMarquee/CardMarquee.component.tsx +24 -24
  37. package/src/components/atoms/CardMarquee/CardMarquee.interface.ts +15 -15
  38. package/src/components/atoms/CardMarquee/CardMarquee.stories.tsx +21 -21
  39. package/src/components/atoms/CardMarquee/CardMarquee.theme.ts +48 -48
  40. package/src/components/atoms/CardMarquee/index.ts +1 -1
  41. package/src/components/atoms/Chip/Chip.component.tsx +30 -30
  42. package/src/components/atoms/Chip/Chip.interface.ts +14 -14
  43. package/src/components/atoms/Chip/Chip.stories.tsx +42 -42
  44. package/src/components/atoms/Chip/Chip.theme.ts +57 -57
  45. package/src/components/atoms/Chip/index.ts +1 -1
  46. package/src/components/atoms/CloseButton/CloseButton.component.tsx +17 -17
  47. package/src/components/atoms/CloseButton/CloseButton.interface.ts +9 -9
  48. package/src/components/atoms/CloseButton/CloseButton.stories.tsx +24 -24
  49. package/src/components/atoms/CloseButton/CloseButton.theme.ts +66 -66
  50. package/src/components/atoms/CloseButton/index.ts +1 -1
  51. package/src/components/atoms/Counter/Counter.component.tsx +99 -99
  52. package/src/components/atoms/Counter/Counter.interface.ts +10 -10
  53. package/src/components/atoms/Counter/Counter.stories.tsx +29 -29
  54. package/src/components/atoms/Counter/Counter.theme.ts +27 -27
  55. package/src/components/atoms/Counter/index.ts +1 -1
  56. package/src/components/atoms/EmptyState/EmptyState.component.tsx +27 -27
  57. package/src/components/atoms/EmptyState/EmptyState.interface.ts +10 -10
  58. package/src/components/atoms/EmptyState/EmptyState.stories.tsx +34 -34
  59. package/src/components/atoms/EmptyState/EmptyState.theme.ts +27 -27
  60. package/src/components/atoms/EmptyState/index.ts +1 -1
  61. package/src/components/atoms/Flex/Flex.component.tsx +30 -30
  62. package/src/components/atoms/Flex/Flex.interface.ts +24 -24
  63. package/src/components/atoms/Flex/Flex.theme.ts +12 -12
  64. package/src/components/atoms/Flex/index.ts +1 -1
  65. package/src/components/atoms/FlexGrid/FlexGrid.component.tsx +62 -62
  66. package/src/components/atoms/FlexGrid/FlexGrid.interface.ts +55 -55
  67. package/src/components/atoms/FlexGrid/FlexGrid.stories.tsx +59 -59
  68. package/src/components/atoms/FlexGrid/FlexGrid.theme.ts +82 -82
  69. package/src/components/atoms/FlexGrid/index.ts +1 -1
  70. package/src/components/atoms/FormField/CheckRadioField/CheckRadioField.component.tsx +24 -24
  71. package/src/components/atoms/FormField/CheckRadioField/CheckRadioField.interface.tsx +6 -6
  72. package/src/components/atoms/FormField/CheckRadioField/CheckRadioField.theme.ts +134 -134
  73. package/src/components/atoms/FormField/CheckRadioField/index.ts +1 -1
  74. package/src/components/atoms/FormField/FormField.component.tsx +37 -37
  75. package/src/components/atoms/FormField/FormField.interface.ts +10 -10
  76. package/src/components/atoms/FormField/FormField.stories.tsx +499 -499
  77. package/src/components/atoms/FormField/FormField.theme.tsx +136 -136
  78. package/src/components/atoms/FormField/index.ts +1 -1
  79. package/src/components/atoms/Heading/Heading.component.tsx +18 -18
  80. package/src/components/atoms/Heading/Heading.interface.tsx +21 -21
  81. package/src/components/atoms/Heading/Heading.theme.ts +17 -17
  82. package/src/components/atoms/Heading/index.ts +1 -1
  83. package/src/components/atoms/Icon/Icon.component.tsx +19 -19
  84. package/src/components/atoms/Icon/Icon.interface.ts +8 -8
  85. package/src/components/atoms/Icon/Icon.stories.tsx +26 -26
  86. package/src/components/atoms/Icon/Icon.theme.ts +115 -115
  87. package/src/components/atoms/Icon/index.ts +1 -1
  88. package/src/components/atoms/ImageWrapper/ImageWrapper.component.tsx +42 -42
  89. package/src/components/atoms/ImageWrapper/ImageWrapper.interface.ts +16 -16
  90. package/src/components/atoms/ImageWrapper/ImageWrapper.stories.tsx +27 -27
  91. package/src/components/atoms/ImageWrapper/ImageWrapper.theme.ts +50 -50
  92. package/src/components/atoms/ImageWrapper/index.ts +1 -1
  93. package/src/components/atoms/LegalLinks/LegalLinks.component.tsx +35 -35
  94. package/src/components/atoms/LegalLinks/LegalLinks.interface.ts +12 -12
  95. package/src/components/atoms/LegalLinks/LegalLinks.stories.tsx +43 -43
  96. package/src/components/atoms/LegalLinks/LegalLinks.theme.ts +33 -33
  97. package/src/components/atoms/LegalLinks/index.ts +1 -1
  98. package/src/components/atoms/Loader/Loader.component.tsx +26 -26
  99. package/src/components/atoms/Loader/Loader.interface.ts +10 -10
  100. package/src/components/atoms/Loader/Loader.stories.tsx +33 -33
  101. package/src/components/atoms/Loader/Loader.theme.ts +51 -51
  102. package/src/components/atoms/Loader/index.ts +1 -1
  103. package/src/components/atoms/Marquee/Marquee.component.tsx +32 -32
  104. package/src/components/atoms/Marquee/Marquee.interface.ts +10 -10
  105. package/src/components/atoms/Marquee/Marquee.stories.tsx +20 -20
  106. package/src/components/atoms/Marquee/Marquee.theme.ts +40 -40
  107. package/src/components/atoms/Marquee/index.ts +1 -1
  108. package/src/components/atoms/Quote/Quote.component.tsx +29 -29
  109. package/src/components/atoms/Quote/Quote.interface.ts +10 -10
  110. package/src/components/atoms/Quote/Quote.stories.tsx +25 -25
  111. package/src/components/atoms/Quote/Quote.theme.ts +26 -26
  112. package/src/components/atoms/Quote/index.ts +1 -1
  113. package/src/components/atoms/RichText/RichText.component.tsx +32 -32
  114. package/src/components/atoms/RichText/RichText.interface.ts +11 -11
  115. package/src/components/atoms/RichText/RichText.stories.tsx +73 -73
  116. package/src/components/atoms/RichText/RichText.theme.ts +34 -34
  117. package/src/components/atoms/RichText/index.ts +1 -1
  118. package/src/components/atoms/ScrollingNav/ScrollingNav.component.tsx +18 -18
  119. package/src/components/atoms/ScrollingNav/ScrollingNav.interface.ts +8 -8
  120. package/src/components/atoms/ScrollingNav/ScrollingNav.stories.tsx +44 -44
  121. package/src/components/atoms/ScrollingNav/ScrollingNav.theme.ts +58 -58
  122. package/src/components/atoms/ScrollingNav/index.ts +1 -1
  123. package/src/components/atoms/Separator/Separator.component.tsx +19 -19
  124. package/src/components/atoms/Separator/Separator.interface.tsx +10 -10
  125. package/src/components/atoms/Separator/Separator.stories.tsx +29 -29
  126. package/src/components/atoms/Separator/Separator.theme.ts +9 -9
  127. package/src/components/atoms/Separator/index.ts +1 -1
  128. package/src/components/atoms/SocialLinks/SocialLinks.component.tsx +42 -42
  129. package/src/components/atoms/SocialLinks/SocialLinks.interface.ts +8 -8
  130. package/src/components/atoms/SocialLinks/SocialLinks.stories.tsx +48 -48
  131. package/src/components/atoms/SocialLinks/SocialLinks.theme.ts +80 -80
  132. package/src/components/atoms/SocialLinks/index.ts +1 -1
  133. package/src/components/atoms/Spacer/Spacer.component.tsx +34 -34
  134. package/src/components/atoms/Spacer/Spacer.interface.ts +24 -24
  135. package/src/components/atoms/Spacer/Spacer.stories.tsx +99 -99
  136. package/src/components/atoms/Spacer/Spacer.theme.ts +33 -33
  137. package/src/components/atoms/Spacer/index.ts +1 -1
  138. package/src/components/atoms/Video/Video.component.tsx +116 -116
  139. package/src/components/atoms/Video/Video.interface.ts +13 -13
  140. package/src/components/atoms/Video/Video.stories.tsx +37 -37
  141. package/src/components/atoms/Video/Video.theme.ts +44 -44
  142. package/src/components/atoms/Video/index.ts +1 -1
  143. package/src/components/atoms/VideoEmbed/VideoEmbed.component.tsx +109 -109
  144. package/src/components/atoms/VideoEmbed/VideoEmbed.interface.ts +13 -13
  145. package/src/components/atoms/VideoEmbed/VideoEmbed.stories.tsx +23 -23
  146. package/src/components/atoms/VideoEmbed/VideoEmbed.theme.ts +45 -45
  147. package/src/components/atoms/VideoEmbed/index.ts +1 -1
  148. package/src/components/common/PortalComponent/PortalComponent.tsx +48 -48
  149. package/src/components/common/PortalComponent/index.ts +1 -1
  150. package/src/components/molecules/Accordion/Accordion.component.tsx +58 -58
  151. package/src/components/molecules/Accordion/Accordion.interface.ts +15 -15
  152. package/src/components/molecules/Accordion/Accordion.stories.tsx +100 -100
  153. package/src/components/molecules/Accordion/Accordion.theme.ts +93 -93
  154. package/src/components/molecules/Accordion/index.ts +1 -1
  155. package/src/components/molecules/BlogCard/BlogCard.component.tsx +48 -48
  156. package/src/components/molecules/BlogCard/BlogCard.interface.ts +10 -10
  157. package/src/components/molecules/BlogCard/BlogCard.stories.tsx +37 -37
  158. package/src/components/molecules/BlogCard/BlogCard.theme.ts +41 -41
  159. package/src/components/molecules/BlogCard/index.ts +1 -1
  160. package/src/components/molecules/Card/Card.component.tsx +15 -15
  161. package/src/components/molecules/Card/Card.interface.ts +11 -11
  162. package/src/components/molecules/Card/Card.theme.ts +54 -54
  163. package/src/components/molecules/Card/index.ts +1 -1
  164. package/src/components/molecules/CareersCard/CareersCard.component.tsx +27 -27
  165. package/src/components/molecules/CareersCard/CareersCard.interface.ts +7 -7
  166. package/src/components/molecules/CareersCard/CareersCard.stories.tsx +30 -30
  167. package/src/components/molecules/CareersCard/CareersCard.theme.ts +13 -13
  168. package/src/components/molecules/CareersCard/index.ts +1 -1
  169. package/src/components/molecules/Dropdown/Dropdown.component.tsx +67 -67
  170. package/src/components/molecules/Dropdown/Dropdown.interface.ts +26 -26
  171. package/src/components/molecules/Dropdown/Dropdown.stories.tsx +54 -54
  172. package/src/components/molecules/Dropdown/Dropdown.theme.ts +69 -69
  173. package/src/components/molecules/Dropdown/index.ts +1 -1
  174. package/src/components/molecules/EventsCard/EventsCard.component.tsx +41 -40
  175. package/src/components/molecules/EventsCard/EventsCard.interface.ts +10 -9
  176. package/src/components/molecules/EventsCard/EventsCard.stories.tsx +38 -37
  177. package/src/components/molecules/EventsCard/EventsCard.theme.ts +33 -33
  178. package/src/components/molecules/EventsCard/index.ts +1 -1
  179. package/src/components/molecules/IconBox/IconBox.component.tsx +29 -29
  180. package/src/components/molecules/IconBox/IconBox.interface.tsx +10 -10
  181. package/src/components/molecules/IconBox/IconBox.stories.tsx +23 -23
  182. package/src/components/molecules/IconBox/IconBox.theme.ts +25 -25
  183. package/src/components/molecules/IconBox/index.ts +1 -1
  184. package/src/components/molecules/IconTitle/IconTitle.component.tsx +24 -24
  185. package/src/components/molecules/IconTitle/IconTitle.interface.tsx +10 -10
  186. package/src/components/molecules/IconTitle/IconTitle.stories.tsx +49 -49
  187. package/src/components/molecules/IconTitle/IconTitle.theme.ts +10 -10
  188. package/src/components/molecules/IconTitle/index.ts +1 -1
  189. package/src/components/molecules/LicenseCard/LicenseCard.component.tsx +27 -27
  190. package/src/components/molecules/LicenseCard/LicenseCard.interface.ts +6 -6
  191. package/src/components/molecules/LicenseCard/LicenseCard.stories.tsx +42 -42
  192. package/src/components/molecules/LicenseCard/LicenseCard.theme.ts +28 -28
  193. package/src/components/molecules/LicenseCard/index.ts +1 -1
  194. package/src/components/molecules/LogosCard/LogosCard.component.tsx +14 -14
  195. package/src/components/molecules/LogosCard/LogosCard.interface.ts +8 -8
  196. package/src/components/molecules/LogosCard/LogosCard.stories.tsx +38 -38
  197. package/src/components/molecules/LogosCard/LogosCard.theme.ts +19 -19
  198. package/src/components/molecules/LogosCard/index.ts +1 -1
  199. package/src/components/molecules/Modal/Modal.component.tsx +70 -70
  200. package/src/components/molecules/Modal/Modal.interface.ts +11 -11
  201. package/src/components/molecules/Modal/Modal.stories.tsx +57 -57
  202. package/src/components/molecules/Modal/Modal.theme.ts +55 -55
  203. package/src/components/molecules/Modal/index.ts +1 -1
  204. package/src/components/molecules/NewsCard/NewsCard.component.tsx +55 -55
  205. package/src/components/molecules/NewsCard/NewsCard.interface.ts +9 -9
  206. package/src/components/molecules/NewsCard/NewsCard.stories.tsx +44 -44
  207. package/src/components/molecules/NewsCard/NewsCard.theme.ts +77 -77
  208. package/src/components/molecules/NewsCard/index.ts +1 -1
  209. package/src/components/molecules/OffCanvas/OffCanvas.component.tsx +55 -55
  210. package/src/components/molecules/OffCanvas/OffCanvas.interface.ts +12 -12
  211. package/src/components/molecules/OffCanvas/OffCanvas.stories.tsx +55 -55
  212. package/src/components/molecules/OffCanvas/OffCanvas.theme.ts +50 -50
  213. package/src/components/molecules/OffCanvas/index.ts +1 -1
  214. package/src/components/molecules/ProductCard/ProductCard.component.tsx +60 -60
  215. package/src/components/molecules/ProductCard/ProductCard.interface.ts +7 -7
  216. package/src/components/molecules/ProductCard/ProductCard.stories.tsx +42 -42
  217. package/src/components/molecules/ProductCard/ProductCard.theme.ts +26 -26
  218. package/src/components/molecules/ProductCard/index.ts +1 -1
  219. package/src/components/molecules/ShareModal/ShareModal.component.tsx +167 -167
  220. package/src/components/molecules/ShareModal/ShareModal.interface.ts +9 -9
  221. package/src/components/molecules/ShareModal/ShareModal.stories.tsx +33 -33
  222. package/src/components/molecules/ShareModal/ShareModal.theme.ts +103 -103
  223. package/src/components/molecules/ShareModal/index.ts +1 -1
  224. package/src/components/molecules/TeamCard/TeamCard.component.tsx +31 -31
  225. package/src/components/molecules/TeamCard/TeamCard.interface.ts +7 -7
  226. package/src/components/molecules/TeamCard/TeamCard.stories.tsx +33 -33
  227. package/src/components/molecules/TeamCard/TeamCard.theme.ts +12 -12
  228. package/src/components/molecules/TeamCard/index.ts +1 -1
  229. package/src/components/organisms/CircularSlider/CircularSlider.component.tsx +231 -231
  230. package/src/components/organisms/CircularSlider/CircularSlider.interface.ts +13 -13
  231. package/src/components/organisms/CircularSlider/CircularSlider.stories.tsx +138 -138
  232. package/src/components/organisms/CircularSlider/CircularSlider.theme.ts +126 -126
  233. package/src/components/organisms/CircularSlider/index.ts +1 -1
  234. package/src/components/organisms/Cover/Cover.component.tsx +46 -46
  235. package/src/components/organisms/Cover/Cover.interface.ts +14 -14
  236. package/src/components/organisms/Cover/Cover.stories.tsx +97 -97
  237. package/src/components/organisms/Cover/Cover.theme.ts +49 -49
  238. package/src/components/organisms/Cover/index.ts +1 -1
  239. package/src/components/organisms/ProductsSlider/ProductsSlider.component.tsx +216 -216
  240. package/src/components/organisms/ProductsSlider/ProductsSlider.interface.ts +12 -12
  241. package/src/components/organisms/ProductsSlider/ProductsSlider.stories.tsx +132 -132
  242. package/src/components/organisms/ProductsSlider/ProductsSlider.theme.ts +77 -77
  243. package/src/components/organisms/ProductsSlider/index.ts +1 -1
  244. package/src/components/organisms/ProductsSlider//306/222.js +164 -164
  245. package/src/components/organisms/Slider/Slider.component.tsx +154 -154
  246. package/src/components/organisms/Slider/Slider.interface.ts +19 -19
  247. package/src/components/organisms/Slider/Slider.stories.tsx +146 -146
  248. package/src/components/organisms/Slider/Slider.theme.ts +145 -145
  249. package/src/components/organisms/Slider/Slider.utils.tsx +19 -19
  250. package/src/components/organisms/Slider/index.ts +1 -1
  251. package/src/components/organisms/Tabs/Tabs.component.tsx +88 -88
  252. package/src/components/organisms/Tabs/Tabs.interface.ts +18 -18
  253. package/src/components/organisms/Tabs/Tabs.stories.tsx +118 -118
  254. package/src/components/organisms/Tabs/Tabs.theme.ts +115 -115
  255. package/src/components/organisms/Tabs/index.ts +1 -1
  256. package/src/helpers/clickOutsideToClose.tsx +17 -17
  257. package/src/helpers/events.ts +9 -9
  258. package/src/helpers/exportCSS.tsx +27 -27
  259. package/src/helpers/getIcons.ts +5 -5
  260. package/src/helpers/isTouchDevice.tsx +11 -11
  261. package/src/helpers/useInterval.ts +25 -25
  262. package/src/helpers/useMediaMatch.tsx +26 -26
  263. package/src/helpers/uuid.ts +5 -5
  264. package/src/iconsList.json +1 -1
  265. package/src/index.ts +68 -68
  266. package/src/reportWebVitals.js +13 -13
  267. package/src/stories/Documentation/Colors.stories.tsx +46 -46
  268. package/src/stories/Documentation/Headings.stories.tsx +24 -24
  269. package/src/stories/Documentation/Icons.stories.tsx +73 -73
  270. package/src/stories/Documentation/JWT.stories.tsx +60 -60
  271. package/src/stories/Documentation/Utilities.stories.tsx +65 -65
  272. package/src/styles/Global.ts +301 -301
  273. package/src/styles/grid.ts +70 -70
  274. package/src/styles/reset.ts +47 -47
  275. package/src/styles/utilities.ts +374 -374
  276. package/src/styles/variables.ts +180 -180
  277. package/tsconfig.json +31 -31
@@ -1,19 +1,19 @@
1
- import { colors, radius, shadows, spaces } from '@/styles/variables';
2
- import styled, { css } from 'styled-components';
3
-
4
- import { ILogosCard } from './LogosCard.interface';
5
-
6
- export const StyledLogosCard = styled.div<ILogosCard>`
7
- display: inline-flex;
8
- vertical-align: middle;
9
- width: 100%;
10
- max-width: 140px;
11
-
12
- overflow: hidden;
13
- margin: ${spaces[2]} 1.5rem;
14
-
15
- & img{
16
- object-fit: contain;
17
- aspect-ratio: 16/8;
18
- }
19
- `;
1
+ import { colors, radius, shadows, spaces } from '@/styles/variables';
2
+ import styled, { css } from 'styled-components';
3
+
4
+ import { ILogosCard } from './LogosCard.interface';
5
+
6
+ export const StyledLogosCard = styled.div<ILogosCard>`
7
+ display: inline-flex;
8
+ vertical-align: middle;
9
+ width: 100%;
10
+ max-width: 140px;
11
+
12
+ overflow: hidden;
13
+ margin: ${spaces[2]} 1.5rem;
14
+
15
+ & img{
16
+ object-fit: contain;
17
+ aspect-ratio: 16/8;
18
+ }
19
+ `;
@@ -1 +1 @@
1
- export { default } from "./LogosCard.component";
1
+ export { default } from "./LogosCard.component";
@@ -1,70 +1,70 @@
1
- import React, { useEffect, useMemo } from 'react'
2
- import {
3
- StyledContent,
4
- StyledOverlay,
5
- StyledTitle,
6
- StyledWrapper
7
- } from './Modal.theme'
8
-
9
- import Heading from '../../atoms/Heading'
10
- import { IModal } from './Modal.interface'
11
- import Icon from '../../atoms/Icon'
12
- import IconTitle from '../IconTitle/IconTitle.component'
13
- import PortalComponent from '../../common/PortalComponent'
14
- import { getId } from '@/helpers/uuid'
15
-
16
- const Modal = ({
17
- title,
18
- open = false,
19
- onClose,
20
- hideCloseIcon = false,
21
- children,
22
- ...props
23
- }: IModal) => {
24
- const wrapperId = useMemo(() => getId(), [])
25
-
26
- const handleCloseClick = (e: any) => {
27
- e.preventDefault()
28
-
29
- if (typeof onClose == 'function') onClose()
30
- }
31
-
32
- if (!open) return null
33
-
34
- return (
35
- <PortalComponent wrapperId={wrapperId}>
36
- <StyledOverlay onClick={(e: any) => handleCloseClick(e)} />
37
- <StyledWrapper {...props}>
38
- <StyledTitle className="d-flex align-items-center">
39
- {title && (
40
- <div className="flex-grow-1">
41
- <IconTitle
42
- icon={
43
- <Icon
44
- icon="icon-product"
45
- style={{ color: 'white', fontSize: '3.6rem' }}
46
- />
47
- }
48
- className="color-white"
49
- >
50
- <Heading tag="span" size="texts" className="fw-semibold">
51
- {title}
52
- </Heading>
53
- </IconTitle>
54
- </div>
55
- )}
56
- {!hideCloseIcon && (
57
- <Icon
58
- icon="icon-close"
59
- className="color-white flex-shrink-1"
60
- onClick={() => onClose && onClose()}
61
- />
62
- )}
63
- </StyledTitle>
64
- <StyledContent>{children}</StyledContent>
65
- </StyledWrapper>
66
- </PortalComponent>
67
- )
68
- }
69
-
70
- export default Modal
1
+ import React, { useEffect, useMemo } from 'react'
2
+ import {
3
+ StyledContent,
4
+ StyledOverlay,
5
+ StyledTitle,
6
+ StyledWrapper
7
+ } from './Modal.theme'
8
+
9
+ import Heading from '../../atoms/Heading'
10
+ import { IModal } from './Modal.interface'
11
+ import Icon from '../../atoms/Icon'
12
+ import IconTitle from '../IconTitle/IconTitle.component'
13
+ import PortalComponent from '../../common/PortalComponent'
14
+ import { getId } from '@/helpers/uuid'
15
+
16
+ const Modal = ({
17
+ title,
18
+ open = false,
19
+ onClose,
20
+ hideCloseIcon = false,
21
+ children,
22
+ ...props
23
+ }: IModal) => {
24
+ const wrapperId = useMemo(() => getId(), [])
25
+
26
+ const handleCloseClick = (e: any) => {
27
+ e.preventDefault()
28
+
29
+ if (typeof onClose == 'function') onClose()
30
+ }
31
+
32
+ if (!open) return null
33
+
34
+ return (
35
+ <PortalComponent wrapperId={wrapperId}>
36
+ <StyledOverlay onClick={(e: any) => handleCloseClick(e)} />
37
+ <StyledWrapper {...props}>
38
+ <StyledTitle className="d-flex align-items-center">
39
+ {title && (
40
+ <div className="flex-grow-1">
41
+ <IconTitle
42
+ icon={
43
+ <Icon
44
+ icon="icon-product"
45
+ style={{ color: 'white', fontSize: '3.6rem' }}
46
+ />
47
+ }
48
+ className="color-white"
49
+ >
50
+ <Heading tag="span" size="texts" className="fw-semibold">
51
+ {title}
52
+ </Heading>
53
+ </IconTitle>
54
+ </div>
55
+ )}
56
+ {!hideCloseIcon && (
57
+ <Icon
58
+ icon="icon-close"
59
+ className="color-white flex-shrink-1"
60
+ onClick={() => onClose && onClose()}
61
+ />
62
+ )}
63
+ </StyledTitle>
64
+ <StyledContent>{children}</StyledContent>
65
+ </StyledWrapper>
66
+ </PortalComponent>
67
+ )
68
+ }
69
+
70
+ export default Modal
@@ -1,11 +1,11 @@
1
- import { CSSProperties } from 'react';
2
-
3
- export type IModal = {
4
- title?: string
5
- open?: boolean
6
- onClose?: () => void
7
- hideCloseIcon?: boolean
8
- className?: string
9
- style?: CSSProperties
10
- children?: React.ReactNode;
11
- }
1
+ import { CSSProperties } from 'react';
2
+
3
+ export type IModal = {
4
+ title?: string
5
+ open?: boolean
6
+ onClose?: () => void
7
+ hideCloseIcon?: boolean
8
+ className?: string
9
+ style?: CSSProperties
10
+ children?: React.ReactNode;
11
+ }
@@ -1,57 +1,57 @@
1
- import type { Meta, StoryObj } from '@storybook/react'
2
- import React, { useState } from 'react'
3
-
4
- import Button from '../../atoms/Button'
5
- import Flex from '../../atoms/Flex'
6
- import { IModal } from './Modal.interface'
7
- import Modal from './Modal.component'
8
- import RichText from '../../atoms/RichText'
9
-
10
- export default {
11
- title: 'Components/Modal',
12
- component: Modal,
13
- tags: ['autodocs']
14
- } as Meta
15
-
16
- export const Simple: StoryObj<IModal> = {
17
- render: args => {
18
- const [isOpen, setIsOpen] = useState(false)
19
- return (
20
- <div
21
- style={{
22
- width: '600px',
23
- minHeight: '400px',
24
- margin: 'auto'
25
- }}
26
- >
27
- <Button onClick={() => setIsOpen(true)}>Open</Button>
28
- <Modal
29
- title={'Ainda não está registado?'}
30
- open={isOpen}
31
- onClose={() => setIsOpen(false)}
32
- style={{ width: '90vw' }}
33
- {...args}
34
- >
35
- <RichText style={{ color: '$gray400' }}>
36
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
37
- eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
38
- ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
39
- aliquip ex ea commodo consequat. Duis aute irure dolor in
40
- reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
41
- pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
42
- culpa qui officia deserunt mollit anim id est laborum.
43
- </RichText>
44
-
45
- <Flex style={{ marginTop: '$8' }} align={'center'}>
46
- <Button variant={'primary'}>Lorem ipsum</Button>
47
- <RichText style={{ fontWeight: '600' }}>ou</RichText>
48
- <Button outlined={true} variant={'primary'}>
49
- dolor sit amet
50
- </Button>
51
- </Flex>
52
- </Modal>
53
- </div>
54
- )
55
- },
56
- args: {}
57
- }
1
+ import type { Meta, StoryObj } from '@storybook/react'
2
+ import React, { useState } from 'react'
3
+
4
+ import Button from '../../atoms/Button'
5
+ import Flex from '../../atoms/Flex'
6
+ import { IModal } from './Modal.interface'
7
+ import Modal from './Modal.component'
8
+ import RichText from '../../atoms/RichText'
9
+
10
+ export default {
11
+ title: 'Components/Modal',
12
+ component: Modal,
13
+ tags: ['autodocs']
14
+ } as Meta
15
+
16
+ export const Simple: StoryObj<IModal> = {
17
+ render: args => {
18
+ const [isOpen, setIsOpen] = useState(false)
19
+ return (
20
+ <div
21
+ style={{
22
+ width: '600px',
23
+ minHeight: '400px',
24
+ margin: 'auto'
25
+ }}
26
+ >
27
+ <Button onClick={() => setIsOpen(true)}>Open</Button>
28
+ <Modal
29
+ title={'Ainda não está registado?'}
30
+ open={isOpen}
31
+ onClose={() => setIsOpen(false)}
32
+ style={{ width: '90vw' }}
33
+ {...args}
34
+ >
35
+ <RichText style={{ color: '$gray400' }}>
36
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
37
+ eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
38
+ ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
39
+ aliquip ex ea commodo consequat. Duis aute irure dolor in
40
+ reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
41
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
42
+ culpa qui officia deserunt mollit anim id est laborum.
43
+ </RichText>
44
+
45
+ <Flex style={{ marginTop: '$8' }} align={'center'}>
46
+ <Button variant={'primary'}>Lorem ipsum</Button>
47
+ <RichText style={{ fontWeight: '600' }}>ou</RichText>
48
+ <Button outlined={true} variant={'primary'}>
49
+ dolor sit amet
50
+ </Button>
51
+ </Flex>
52
+ </Modal>
53
+ </div>
54
+ )
55
+ },
56
+ args: {}
57
+ }
@@ -1,55 +1,55 @@
1
- import { colors, radius, spaces, zIndexes } from '@/styles/variables';
2
- import styled, { css } from 'styled-components';
3
-
4
- import { IModal } from './Modal.interface';
5
-
6
- export const StyledOverlay = styled.div<IModal>`
7
- position: fixed;
8
- top: 0;
9
- right: 0;
10
- bottom: 0;
11
- left: 0;
12
- background-color: rgba(0, 0, 0, .30);
13
- z-index: 100;
14
- `;
15
-
16
- export const StyledWrapper = styled.div<IModal>`
17
- position: fixed;
18
- top: 50%;
19
- left: 50%;
20
-
21
- width: 30rem;
22
- max-height: 85vh;
23
- max-width: 90%;
24
-
25
- margin-top: -5vh;
26
-
27
- border-radius: ${radius.md};
28
- background-color: ${colors.gray10};
29
- box-shadow: 0px 4px 25px rgba(45, 46, 69, 0.1);
30
- animation: all 0.3s cubic-bezier(0.22, 1, 0.36, 1);
31
-
32
- // among other things, prevents text alignment inconsistencies when dialog cant be centered in the viewport evenly.
33
- // affects animated and non-animated dialogs alike.
34
- transform: translate(-50%, -50%);
35
- will-change: transform;
36
- overflow: hidden;
37
- overflow-y: auto;
38
- z-index: 101;
39
-
40
- &:focus {
41
- outline: none
42
- }
43
- `;
44
-
45
- export const StyledTitle = styled.div<IModal>`
46
- color: ${colors.secondary50};
47
- background-color: ${colors.third50};
48
- padding: ${spaces[3]};
49
- `;
50
-
51
-
52
- export const StyledContent = styled.div<IModal>`
53
- padding: ${spaces[5]};
54
- contain: paint;
55
- `;
1
+ import { colors, radius, spaces, zIndexes } from '@/styles/variables';
2
+ import styled, { css } from 'styled-components';
3
+
4
+ import { IModal } from './Modal.interface';
5
+
6
+ export const StyledOverlay = styled.div<IModal>`
7
+ position: fixed;
8
+ top: 0;
9
+ right: 0;
10
+ bottom: 0;
11
+ left: 0;
12
+ background-color: rgba(0, 0, 0, .30);
13
+ z-index: 100;
14
+ `;
15
+
16
+ export const StyledWrapper = styled.div<IModal>`
17
+ position: fixed;
18
+ top: 50%;
19
+ left: 50%;
20
+
21
+ width: 30rem;
22
+ max-height: 85vh;
23
+ max-width: 90%;
24
+
25
+ margin-top: -5vh;
26
+
27
+ border-radius: ${radius.md};
28
+ background-color: ${colors.gray10};
29
+ box-shadow: 0px 4px 25px rgba(45, 46, 69, 0.1);
30
+ animation: all 0.3s cubic-bezier(0.22, 1, 0.36, 1);
31
+
32
+ // among other things, prevents text alignment inconsistencies when dialog cant be centered in the viewport evenly.
33
+ // affects animated and non-animated dialogs alike.
34
+ transform: translate(-50%, -50%);
35
+ will-change: transform;
36
+ overflow: hidden;
37
+ overflow-y: auto;
38
+ z-index: 101;
39
+
40
+ &:focus {
41
+ outline: none
42
+ }
43
+ `;
44
+
45
+ export const StyledTitle = styled.div<IModal>`
46
+ color: ${colors.secondary50};
47
+ background-color: ${colors.third50};
48
+ padding: ${spaces[3]};
49
+ `;
50
+
51
+
52
+ export const StyledContent = styled.div<IModal>`
53
+ padding: ${spaces[5]};
54
+ contain: paint;
55
+ `;
@@ -1 +1 @@
1
- export { default } from './Modal.component'
1
+ export { default } from './Modal.component'
@@ -1,55 +1,55 @@
1
- import Chip from '@/components/atoms/Chip/Chip.component'
2
- import Heading from '@/components/atoms/Heading'
3
- import { INewsCard } from './NewsCard.interface'
4
- import ImageWrapper from '@/components/atoms/ImageWrapper'
5
- import React from 'react'
6
-
7
- import { StyledNewsCard } from './NewsCard.theme'
8
-
9
- const NewsCard = ({
10
- variant,
11
- date,
12
- category,
13
- title,
14
- imageElement,
15
- linkElement,
16
- description,
17
- ...props
18
- }: INewsCard) => {
19
- return (
20
- <StyledNewsCard
21
- $variant={variant}
22
- imageElement={
23
- <>
24
- <ImageWrapper aspectRatioHeight={63}>{imageElement}</ImageWrapper>
25
- </>
26
- }
27
- >
28
- <div>
29
- <Heading
30
- tag={'h3'}
31
- size={variant === 'featured' ? 'h3' : 'h4'}
32
- className={'fw-bold textEllipsis'}
33
- >
34
- {title}
35
- </Heading>
36
- <Heading tag={'span'} size={'captions'} className={'textEllipsis mt-3'}>
37
- {description}
38
- </Heading>
39
- </div>
40
- {date && (
41
- <Heading
42
- tag={'span'}
43
- size={variant === 'featured' ? 'h5' : 'texts'}
44
- className={'fw-bold mt-4'}
45
- >
46
- {date}
47
- </Heading>
48
- )}
49
-
50
- {linkElement}
51
- </StyledNewsCard>
52
- )
53
- }
54
-
55
- export default NewsCard
1
+ import Chip from '@/components/atoms/Chip/Chip.component'
2
+ import Heading from '@/components/atoms/Heading'
3
+ import { INewsCard } from './NewsCard.interface'
4
+ import ImageWrapper from '@/components/atoms/ImageWrapper'
5
+ import React from 'react'
6
+
7
+ import { StyledNewsCard } from './NewsCard.theme'
8
+
9
+ const NewsCard = ({
10
+ variant,
11
+ date,
12
+ category,
13
+ title,
14
+ imageElement,
15
+ linkElement,
16
+ description,
17
+ ...props
18
+ }: INewsCard) => {
19
+ return (
20
+ <StyledNewsCard
21
+ $variant={variant}
22
+ imageElement={
23
+ <>
24
+ <ImageWrapper aspectRatioHeight={63}>{imageElement}</ImageWrapper>
25
+ </>
26
+ }
27
+ >
28
+ <div>
29
+ <Heading
30
+ tag={'h3'}
31
+ size={variant === 'featured' ? 'h3' : 'h4'}
32
+ className={'fw-bold textEllipsis'}
33
+ >
34
+ {title}
35
+ </Heading>
36
+ <Heading tag={'span'} size={'captions'} className={'textEllipsis mt-3'}>
37
+ {description}
38
+ </Heading>
39
+ </div>
40
+ {date && (
41
+ <Heading
42
+ tag={'span'}
43
+ size={variant === 'featured' ? 'h5' : 'texts'}
44
+ className={'fw-bold mt-4'}
45
+ >
46
+ {date}
47
+ </Heading>
48
+ )}
49
+
50
+ {linkElement}
51
+ </StyledNewsCard>
52
+ )
53
+ }
54
+
55
+ export default NewsCard
@@ -1,9 +1,9 @@
1
- import { ICard } from '../Card/Card.interface';
2
-
3
- export interface INewsCard extends ICard {
4
- date?: string,
5
- category?: string
6
- title?: string
7
- description?: string | React.ReactElement
8
- linkElement?: React.ReactElement
9
- }
1
+ import { ICard } from '../Card/Card.interface';
2
+
3
+ export interface INewsCard extends ICard {
4
+ date?: string,
5
+ category?: string
6
+ title?: string
7
+ description?: string | React.ReactElement
8
+ linkElement?: React.ReactElement
9
+ }
@@ -1,44 +1,44 @@
1
- import type { Meta, StoryObj } from '@storybook/react'
2
-
3
- import { INewsCard } from './NewsCard.interface'
4
- import NewsCard from './NewsCard.component'
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/NewsCard',
10
- component: NewsCard,
11
- tags: ['autodocs']
12
- } as Meta
13
-
14
- const image = (
15
- <img
16
- width="100%"
17
- height="100%"
18
- sizes="100vw"
19
- decoding="async"
20
- src="/assets/placeholder.png"
21
- alt="Empty state"
22
- />
23
- )
24
-
25
- export const Simple: StoryObj<INewsCard> = {
26
- render: args => <NewsCard {...args} style={{ maxWidth: '320px' }}></NewsCard>,
27
- args: {
28
- date: '24 nov 23',
29
- category: 'Category name',
30
- title: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
31
- imageElement: image,
32
- linkElement: <a href="#" className="linker"></a>
33
- }
34
- }
35
-
36
- export const Featured: StoryObj<INewsCard> = {
37
- render: args => (
38
- <NewsCard {...args} style={{ maxWidth: '620px' }}></NewsCard>
39
- ),
40
- args: {
41
- ...Simple.args,
42
- variant: "featured"
43
- }
44
- }
1
+ import type { Meta, StoryObj } from '@storybook/react'
2
+
3
+ import { INewsCard } from './NewsCard.interface'
4
+ import NewsCard from './NewsCard.component'
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/NewsCard',
10
+ component: NewsCard,
11
+ tags: ['autodocs']
12
+ } as Meta
13
+
14
+ const image = (
15
+ <img
16
+ width="100%"
17
+ height="100%"
18
+ sizes="100vw"
19
+ decoding="async"
20
+ src="/assets/placeholder.png"
21
+ alt="Empty state"
22
+ />
23
+ )
24
+
25
+ export const Simple: StoryObj<INewsCard> = {
26
+ render: args => <NewsCard {...args} style={{ maxWidth: '320px' }}></NewsCard>,
27
+ args: {
28
+ date: '24 nov 23',
29
+ category: 'Category name',
30
+ title: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
31
+ imageElement: image,
32
+ linkElement: <a href="#" className="linker"></a>
33
+ }
34
+ }
35
+
36
+ export const Featured: StoryObj<INewsCard> = {
37
+ render: args => (
38
+ <NewsCard {...args} style={{ maxWidth: '620px' }}></NewsCard>
39
+ ),
40
+ args: {
41
+ ...Simple.args,
42
+ variant: "featured"
43
+ }
44
+ }