trepur_components 2.3.7 → 2.3.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/.eslintrc.cjs +33 -4
  2. package/.prettierignore +10 -0
  3. package/README.md +1 -1
  4. package/package.json +9 -5
  5. package/src/components/Accordion/Accordion.stories.tsx +21 -98
  6. package/src/components/Accordion/const.tsx +34 -0
  7. package/src/components/Accordion/index.tsx +19 -25
  8. package/src/components/AlertBar/AlertBar.stories.tsx +78 -84
  9. package/src/components/AlertBar/index.tsx +69 -100
  10. package/src/components/Avatar/Avatar.stories.tsx +2 -7
  11. package/src/components/Avatar/index.tsx +4 -7
  12. package/src/components/Breadcrumbs/Breadcrumbs.stories.tsx +29 -0
  13. package/src/components/Breadcrumbs/index.tsx +89 -0
  14. package/src/components/Button/Button.stories.tsx +24 -0
  15. package/src/components/Button/index.tsx +59 -0
  16. package/src/components/Calendar/Calendar.stories.tsx +21 -0
  17. package/src/components/Calendar/index.tsx +92 -0
  18. package/src/components/Card/Card.stories.tsx +14 -0
  19. package/src/components/Card/index.tsx +39 -0
  20. package/src/components/Carousel/Carousel.stories.tsx +44 -0
  21. package/src/components/Carousel/index.tsx +301 -0
  22. package/src/components/Carousel/utils.ts +53 -0
  23. package/src/components/CarouselThumbnail/CarouselThumbnail.stories.tsx +29 -0
  24. package/src/components/CarouselThumbnail/const.ts +17 -0
  25. package/src/components/CarouselThumbnail/index.tsx +169 -0
  26. package/src/components/CarouselThumbnail/utils.ts +87 -0
  27. package/src/components/Checkbox/Checkbox.stories.tsx +27 -0
  28. package/src/components/Checkbox/index.tsx +44 -0
  29. package/src/components/Collapsible/Collapsible.stories.tsx +67 -0
  30. package/src/components/Collapsible/index.tsx +169 -0
  31. package/src/components/Counter/Counter.stories.tsx +20 -0
  32. package/src/components/Counter/index.tsx +98 -0
  33. package/src/components/DetailUpdater/DetailUpdater.stories.tsx +37 -0
  34. package/{archive → src/components}/DetailUpdater/index.tsx +20 -25
  35. package/src/components/Dialog/Dialog.stories.tsx +65 -0
  36. package/src/components/Dialog/index.tsx +29 -0
  37. package/src/components/Dropdown/Dropdown.stories.tsx +22 -0
  38. package/src/components/Dropdown/index.tsx +117 -0
  39. package/src/components/Dropdown/utils.ts +15 -0
  40. package/{archive → src/components}/FileUploader/FilePreview.tsx +11 -14
  41. package/src/components/FileUploader/FileUploader.stories.tsx +28 -0
  42. package/src/components/FileUploader/index.tsx +177 -0
  43. package/src/components/Footer/Footer.stories.tsx +47 -0
  44. package/src/components/Footer/index.tsx +96 -0
  45. package/src/components/FooterNav/FooterNav.stories.tsx +32 -0
  46. package/src/components/FooterNav/index.tsx +75 -0
  47. package/{archive → src/components}/Form/Form.stories.tsx +2 -2
  48. package/src/components/Form/index.tsx +41 -0
  49. package/src/components/Gallery/Gallery.stories.tsx +39 -0
  50. package/src/components/Gallery/index.tsx +31 -0
  51. package/src/components/Greeting/Greeting.stories.tsx +16 -0
  52. package/src/components/Greeting/index.tsx +49 -0
  53. package/src/components/HamburgerIcon/HamburgerIcon.stories.tsx +14 -0
  54. package/src/components/HamburgerIcon/index.tsx +75 -0
  55. package/src/components/Icon/Icon.stories.tsx +41 -0
  56. package/src/components/Icon/index.tsx +33 -0
  57. package/src/components/Image/Image.stories.tsx +17 -0
  58. package/src/components/Image/index.tsx +25 -0
  59. package/src/components/ImageCard/ImageCard.stories.tsx +29 -0
  60. package/src/components/ImageCard/index.tsx +75 -0
  61. package/src/components/Input/Input.stories.tsx +25 -0
  62. package/src/components/Input/index.tsx +139 -0
  63. package/{archive → src/components}/MenuButton/MenuButton.stories.tsx +2 -2
  64. package/src/components/MenuButton/index.tsx +66 -0
  65. package/{archive → src/components}/Modal/Modal.stories.tsx +4 -8
  66. package/{archive → src/components}/Modal/index.tsx +9 -12
  67. package/src/components/Nav/Nav.stories.tsx +80 -0
  68. package/src/components/Nav/index.tsx +171 -0
  69. package/src/components/NavItem/NavItem.stories.tsx +17 -0
  70. package/src/components/NavItem/index.tsx +39 -0
  71. package/src/components/Pill/Pill.stories.tsx +51 -0
  72. package/src/components/Pill/index.tsx +69 -0
  73. package/{archive → src/components}/Search/Search.stories.tsx +2 -2
  74. package/{archive → src/components}/Search/index.tsx +12 -16
  75. package/{archive → src/components}/Select/Select.stories.tsx +2 -3
  76. package/{archive → src/components}/Select/index.tsx +21 -30
  77. package/{archive → src/components}/Showcase/Showcase.stories.tsx +4 -3
  78. package/src/components/Showcase/index.tsx +62 -0
  79. package/{archive → src/components}/SideNav/SideNav.stories.tsx +2 -2
  80. package/{archive → src/components}/SideNav/index.tsx +8 -15
  81. package/{archive → src/components}/SocialButton/SocialButton.stories.tsx +2 -2
  82. package/{archive → src/components}/SocialButton/index.tsx +14 -22
  83. package/src/components/SplitCard/SplitCard.stories.tsx +34 -0
  84. package/src/components/SplitCard/index.tsx +132 -0
  85. package/src/components/Stars/Star.stories.tsx +18 -0
  86. package/src/components/Stars/index.tsx +38 -0
  87. package/src/components/Testimonial/Testimonial.stories.tsx +37 -0
  88. package/src/components/Testimonial/index.tsx +123 -0
  89. package/src/components/TextArea/TextArea.stories.tsx +24 -0
  90. package/src/components/TextArea/index.tsx +133 -0
  91. package/src/components/Timeline/Timeline.stories.tsx +45 -0
  92. package/src/components/Timeline/index.tsx +65 -0
  93. package/src/components/Tubestops/Tubestops.stories.tsx +22 -0
  94. package/src/components/Tubestops/index.tsx +132 -0
  95. package/src/components/Video/Video.stories.tsx +58 -0
  96. package/src/components/Video/assets/example.mp4 +0 -0
  97. package/src/components/Video/assets/example.ogv +0 -0
  98. package/src/components/Video/assets/example.webm +0 -0
  99. package/src/components/Video/index.tsx +92 -0
  100. package/src/components/index.ts +66 -112
  101. package/src/custom.d.ts +14 -0
  102. package/src/documentation/Colours.mdx +34 -34
  103. package/src/documentation/Introduction.mdx +9 -5
  104. package/src/documentation/assets/index.ts +3 -0
  105. package/src/documentation/assets/trepurComponentsLogo.svg +32 -0
  106. package/src/documentation/typography/Fonts/Fonts.stories.tsx +14 -0
  107. package/src/documentation/typography/Fonts/Fonts.tsx +73 -0
  108. package/src/styles/global.css +1 -1
  109. package/src/styles/themes/local.css +91 -39
  110. package/src/styles/themes/test.css +28 -0
  111. package/src/utils/screens.ts +1 -1
  112. package/tailwind/colors.ts +53 -385
  113. package/tailwind/preset.ts +4 -0
  114. package/tailwind.config.ts +12 -80
  115. package/tsconfig.json +8 -2
  116. package/archive/Breadcrumbs/Breadcrumbs.stories.tsx +0 -46
  117. package/archive/Breadcrumbs/index.tsx +0 -42
  118. package/archive/BreadcrumbsBordered/BreadcrumbsBordered.stories.tsx +0 -52
  119. package/archive/BreadcrumbsBordered/index.tsx +0 -44
  120. package/archive/BreadcrumbsItem/BreadcrumbsItem.stories.tsx +0 -40
  121. package/archive/BreadcrumbsItem/index.tsx +0 -149
  122. package/archive/Button/Button.stories.tsx +0 -150
  123. package/archive/Button/index.tsx +0 -111
  124. package/archive/Button/style.module.css +0 -76
  125. package/archive/Calendar/Calendar.stories.tsx +0 -82
  126. package/archive/Calendar/index.tsx +0 -76
  127. package/archive/Card/Card.stories.tsx +0 -75
  128. package/archive/Card/index.tsx +0 -102
  129. package/archive/Card/style.module.css +0 -75
  130. package/archive/CardWithTopImage/CardWithTopImage.stories.tsx +0 -50
  131. package/archive/CardWithTopImage/index.tsx +0 -39
  132. package/archive/CardWithTopImage/style.module.css +0 -11
  133. package/archive/Carousel/Carousel.stories.tsx +0 -451
  134. package/archive/Carousel/index.tsx +0 -388
  135. package/archive/Carousel/style.module.css +0 -99
  136. package/archive/CarouselThumbnail/CarouselThumbnail.stories.tsx +0 -350
  137. package/archive/CarouselThumbnail/index.tsx +0 -302
  138. package/archive/CarouselThumbnail/style.module.css +0 -67
  139. package/archive/Checkbox/Checkbox.stories.tsx +0 -34
  140. package/archive/Checkbox/index.tsx +0 -51
  141. package/archive/Checkbox/style.module.css +0 -15
  142. package/archive/Collapsible/Collapsible.stories.tsx +0 -67
  143. package/archive/Collapsible/index.tsx +0 -116
  144. package/archive/Collapsible/style.module.css +0 -47
  145. package/archive/Column/Column.stories.tsx +0 -89
  146. package/archive/Column/index.tsx +0 -119
  147. package/archive/Column/style.module.css +0 -151
  148. package/archive/ComponentWrapper/ComponentWrapper.stories.tsx +0 -40
  149. package/archive/ComponentWrapper/index.tsx +0 -55
  150. package/archive/ComponentWrapper/style.module.css +0 -40
  151. package/archive/Container/Container.stories.tsx +0 -40
  152. package/archive/Container/index.tsx +0 -24
  153. package/archive/Container/style.module.css +0 -4
  154. package/archive/Counter/Counter.stories.tsx +0 -19
  155. package/archive/Counter/index.tsx +0 -66
  156. package/archive/Counter/style.module.css +0 -19
  157. package/archive/DetailUpdater/DetailUpdater.stories.tsx +0 -96
  158. package/archive/DetailUpdater/style.module.css +0 -31
  159. package/archive/Dialog/Dialog.stories.tsx +0 -131
  160. package/archive/Dialog/index.tsx +0 -91
  161. package/archive/Dialog/style.module.css +0 -44
  162. package/archive/DropdownMenu/DropdownMenu.stories.tsx +0 -59
  163. package/archive/DropdownMenu/index.tsx +0 -51
  164. package/archive/DropdownMenu/style.module.css +0 -38
  165. package/archive/DynamicTextSection/DynamicTextSection.stories.tsx +0 -74
  166. package/archive/DynamicTextSection/index.tsx +0 -36
  167. package/archive/DynamicTextSection/style.module.css +0 -0
  168. package/archive/FileUploader/FileUploader.stories.tsx +0 -28
  169. package/archive/FileUploader/index.tsx +0 -135
  170. package/archive/FileUploader/style.module.css +0 -54
  171. package/archive/FilterItem/FilterItem.stories.tsx +0 -33
  172. package/archive/FilterItem/index.tsx +0 -101
  173. package/archive/FilterItem/style.module.css +0 -27
  174. package/archive/Footer/Footer.stories.tsx +0 -59
  175. package/archive/Footer/index.tsx +0 -50
  176. package/archive/Footer/style.module.css +0 -19
  177. package/archive/FooterNav/FooterNav.stories.tsx +0 -125
  178. package/archive/FooterNav/index.tsx +0 -57
  179. package/archive/FooterNav/style.module.css +0 -32
  180. package/archive/FooterNavItem/FooterNavItem.stories.tsx +0 -53
  181. package/archive/FooterNavItem/index.tsx +0 -80
  182. package/archive/FooterNavItem/style.module.css +0 -139
  183. package/archive/Form/index.tsx +0 -61
  184. package/archive/Form/style.module.css +0 -0
  185. package/archive/FyreCard/FyreCard.stories.tsx +0 -31
  186. package/archive/FyreCard/index.tsx +0 -52
  187. package/archive/FyreCard/style.module.css +0 -19
  188. package/archive/Greeting/Greeting.stories.tsx +0 -41
  189. package/archive/Greeting/index.tsx +0 -32
  190. package/archive/HamburgerIcon/HamburgerIcon.stories.tsx +0 -32
  191. package/archive/HamburgerIcon/index.tsx +0 -103
  192. package/archive/HamburgerIcon/style.module.css +0 -85
  193. package/archive/HorizontalLine/HorizontalLine.stories.tsx +0 -54
  194. package/archive/HorizontalLine/index.tsx +0 -40
  195. package/archive/HorizontalLine/style.module.css +0 -55
  196. package/archive/Icon/Icon.stories.tsx +0 -164
  197. package/archive/Icon/index.tsx +0 -115
  198. package/archive/Icon/style.module.css +0 -253
  199. package/archive/IconCard/IconCard.stories.tsx +0 -46
  200. package/archive/IconCard/index.tsx +0 -57
  201. package/archive/IconCard/style.module.css +0 -18
  202. package/archive/Image/Image.stories.tsx +0 -87
  203. package/archive/Image/index.tsx +0 -132
  204. package/archive/Image/style.module.css +0 -109
  205. package/archive/ImageInfo/ImageInfo.stories.tsx +0 -39
  206. package/archive/ImageInfo/index.tsx +0 -95
  207. package/archive/ImageInfo/style.module.css +0 -47
  208. package/archive/ImageLink/ImageLink.stories.tsx +0 -37
  209. package/archive/ImageLink/index.tsx +0 -49
  210. package/archive/ImageLink/style.module.css +0 -23
  211. package/archive/ImageLinkList/ImageLinkList.stories.tsx +0 -34
  212. package/archive/ImageLinkList/index.tsx +0 -33
  213. package/archive/ImageLinkList/style.module.css +0 -3
  214. package/archive/InformationIcon/InformationIcon.stories.tsx +0 -83
  215. package/archive/InformationIcon/index.tsx +0 -128
  216. package/archive/InformationIcon/style.module.css +0 -71
  217. package/archive/InformationIconBlock/InformationIconBlock.stories.tsx +0 -32
  218. package/archive/InformationIconBlock/index.tsx +0 -63
  219. package/archive/InformationIconBlock/style.module.css +0 -7
  220. package/archive/Input/Input.stories.tsx +0 -84
  221. package/archive/Input/index.tsx +0 -131
  222. package/archive/Input/style.module.css +0 -60
  223. package/archive/Jumbotron/Jumbotron.stories.tsx +0 -21
  224. package/archive/Jumbotron/index.tsx +0 -31
  225. package/archive/Jumbotron/style.module.css +0 -8
  226. package/archive/MenuButton/index.tsx +0 -82
  227. package/archive/MenuButton/style.module.css +0 -45
  228. package/archive/Modal/style.module.css +0 -35
  229. package/archive/NavItem/NavItem.stories.tsx +0 -90
  230. package/archive/NavItem/index.tsx +0 -65
  231. package/archive/NavItem/style.module.css +0 -71
  232. package/archive/NavOld/NavOld.stories.tsx +0 -193
  233. package/archive/NavOld/StickyNav.tsx +0 -191
  234. package/archive/NavOld/index.tsx +0 -273
  235. package/archive/NavOld/style.module.css +0 -156
  236. package/archive/NavTwo/Dropdown.tsx +0 -35
  237. package/archive/NavTwo/Nav.stories.tsx +0 -38
  238. package/archive/NavTwo/Sidebar.tsx +0 -34
  239. package/archive/NavTwo/StickyNav.tsx +0 -34
  240. package/archive/NavTwo/index.tsx +0 -45
  241. package/archive/NavTwo/style.module.css +0 -35
  242. package/archive/NewsCard/NewsCard.stories.tsx +0 -72
  243. package/archive/NewsCard/index.tsx +0 -57
  244. package/archive/NewsCard/style.module.css +0 -15
  245. package/archive/Pill/Pill.stories.tsx +0 -44
  246. package/archive/Pill/index.tsx +0 -64
  247. package/archive/Pill/style.module.css +0 -32
  248. package/archive/ProductCard/ProductCard.stories.tsx +0 -61
  249. package/archive/ProductCard/index.tsx +0 -111
  250. package/archive/ProductCard/style.module.css +0 -53
  251. package/archive/ProductCardV2/ProductCardV2.stories.tsx +0 -50
  252. package/archive/ProductCardV2/index.tsx +0 -119
  253. package/archive/ProductCardV2/style.module.css +0 -59
  254. package/archive/Proficiencies/Proficiencies.stories.tsx +0 -50
  255. package/archive/Proficiencies/index.tsx +0 -63
  256. package/archive/Proficiencies/style.module.css +0 -31
  257. package/archive/Profile/Profile.stories.tsx +0 -49
  258. package/archive/Profile/index.tsx +0 -103
  259. package/archive/Profile/style.module.css +0 -47
  260. package/archive/Row/Row.stories.tsx +0 -53
  261. package/archive/Row/index.tsx +0 -23
  262. package/archive/Row/style.module.css +0 -3
  263. package/archive/Search/style.module.css +0 -23
  264. package/archive/Select/style.module.css +0 -52
  265. package/archive/Showcase/index.tsx +0 -75
  266. package/archive/Showcase/style.module.css +0 -47
  267. package/archive/SideNav/style.module.css +0 -43
  268. package/archive/SocialBlock/SocialBlock.stories.tsx +0 -58
  269. package/archive/SocialBlock/index.tsx +0 -63
  270. package/archive/SocialButton/style.module.css +0 -77
  271. package/archive/StarRating/StarRating.stories.tsx +0 -23
  272. package/archive/StarRating/index.tsx +0 -71
  273. package/archive/Testimonial/Testimonial.stories.tsx +0 -110
  274. package/archive/Testimonial/index.tsx +0 -61
  275. package/archive/Testimonial/style.module.css +0 -27
  276. package/archive/TextAndTitle/TextAndTitle.stories.tsx +0 -70
  277. package/archive/TextAndTitle/index.tsx +0 -123
  278. package/archive/TextAndTitle/style.module.css +0 -75
  279. package/archive/TextArea/TextArea.stories.tsx +0 -55
  280. package/archive/TextArea/index.tsx +0 -125
  281. package/archive/TextArea/style.module.css +0 -60
  282. package/archive/Timeline/Timeline.stories.tsx +0 -92
  283. package/archive/Timeline/index.tsx +0 -254
  284. package/archive/Timeline/style.module.css +0 -134
  285. package/archive/TimelineV2/TimelineV2.stories.tsx +0 -95
  286. package/archive/TimelineV2/index.tsx +0 -70
  287. package/archive/TimelineV2/style.module.css +0 -28
  288. package/archive/Tubestops/Tubestops.stories.tsx +0 -42
  289. package/archive/Tubestops/index.tsx +0 -58
  290. package/archive/Tubestops/style.module.css +0 -54
  291. package/archive/UserIcon/UserIcon.stories.tsx +0 -52
  292. package/archive/UserIcon/index.tsx +0 -46
  293. package/archive/UserIcon/style.module.css +0 -19
  294. package/archive/Video/Video.stories.tsx +0 -23
  295. package/archive/Video/index.tsx +0 -47
  296. package/archive/theme.ts +0 -39
  297. package/archive/typography/Fonts/Fonts.stories.tsx +0 -14
  298. package/archive/typography/Fonts/Fonts.tsx +0 -181
  299. package/lib/components/Accordion/Accordion.stories.d.ts +0 -94
  300. package/lib/components/Accordion/index.d.ts +0 -8
  301. package/lib/components/Accordion/index.js +0 -15
  302. package/lib/components/AlertBar/AlertBar.stories.d.ts +0 -162
  303. package/lib/components/AlertBar/index.d.ts +0 -12
  304. package/lib/components/AlertBar/index.js +0 -49
  305. package/lib/components/Avatar/Avatar.stories.d.ts +0 -44
  306. package/lib/components/Avatar/index.d.ts +0 -4
  307. package/lib/components/index.d.ts +0 -4
  308. package/lib/index.d.ts +0 -1
  309. package/lib/index.js +0 -6
  310. package/lib/styles/global.css +0 -75
  311. package/lib/styles/themes/local.css +0 -40
  312. package/lib/styles/themes/palette.css +0 -131
  313. package/lib/tailwind/boxShadow.ts +0 -9
  314. package/lib/tailwind/colors.ts +0 -410
  315. package/lib/tailwind/container.ts +0 -11
  316. package/lib/tailwind/preset.ts +0 -88
  317. package/lib/tailwind/spacing.ts +0 -14
  318. package/lib/utils/controls.d.ts +0 -36
  319. package/lib/utils/matchMedia.d.ts +0 -2
  320. package/lib/utils/screens.d.ts +0 -7
  321. package/src/styles/themes/palette.css +0 -131
  322. package/svg.d.ts +0 -4
  323. /package/{archive → src/components}/Calendar/style.css +0 -0
  324. /package/{archive → src/components}/Checkbox/Checkbox.mdx +0 -0
  325. /package/{archive → src}/fonts/Sora/OFL.txt +0 -0
  326. /package/{archive → src}/fonts/Sora/README.txt +0 -0
  327. /package/{archive → src}/fonts/Sora/Sora-VariableFont_wght.ttf +0 -0
  328. /package/{archive → src}/fonts/Sora/static/Sora-Bold.ttf +0 -0
  329. /package/{archive → src}/fonts/Sora/static/Sora-ExtraBold.ttf +0 -0
  330. /package/{archive → src}/fonts/Sora/static/Sora-ExtraLight.ttf +0 -0
  331. /package/{archive → src}/fonts/Sora/static/Sora-Light.ttf +0 -0
  332. /package/{archive → src}/fonts/Sora/static/Sora-Medium.ttf +0 -0
  333. /package/{archive → src}/fonts/Sora/static/Sora-Regular.ttf +0 -0
  334. /package/{archive → src}/fonts/Sora/static/Sora-SemiBold.ttf +0 -0
  335. /package/{archive → src}/fonts/Sora/static/Sora-Thin.ttf +0 -0
@@ -1,72 +0,0 @@
1
- import { Meta, StoryObj } from '@storybook/react';
2
- import { idAndClassName } from '@utils/controls';
3
-
4
- import NewsCard from '.';
5
-
6
- const meta = {
7
- title: 'Components/News Card',
8
- component: NewsCard,
9
- parameters: {},
10
- argTypes: {
11
- ...idAndClassName,
12
- title: {
13
- description: '',
14
- control: 'text',
15
- table: {
16
- category: '',
17
- },
18
- },
19
- content: {
20
- description: '',
21
- control: 'text',
22
- table: {
23
- category: '',
24
- },
25
- },
26
- imageProps: {
27
- type: { name: 'other', value: 'object' },
28
- description: 'The props to pass to the image to display on the component',
29
- table: {
30
- type: {
31
- summary: 'object',
32
- },
33
- defaultValue: { summary: 'undefined' },
34
- },
35
- },
36
- buttonProps: {
37
- description: '',
38
- control: 'text',
39
- table: {
40
- category: '',
41
- },
42
- },
43
- rounded: {
44
- description: '',
45
- control: 'text',
46
- table: {
47
- category: '',
48
- },
49
- },
50
- },
51
- args: {
52
- title: 'This is a title',
53
- content:
54
- 'This is some content that will only be displayed if the collapsible item is expanded and will dissappear when the collapsible item is collapsed.',
55
- rounded: true,
56
- imageProps: {
57
- src: 'https://picsum.photos/400/200',
58
- rounded: true,
59
- },
60
- buttonProps: {
61
- children: 'Button',
62
- className: 'w-full',
63
- href: '/',
64
- },
65
- },
66
- };
67
-
68
- export default meta;
69
-
70
- type Story = StoryObj<typeof meta>;
71
-
72
- export const Default: Story = {};
@@ -1,57 +0,0 @@
1
- import React from 'react';
2
-
3
- import Button, { type Props as buttonProps } from '@components/Button';
4
- import Image, { type Props as imageProps } from '@components/Image';
5
- import classNames from 'classnames';
6
-
7
-
8
-
9
- export interface Props {
10
- id?: string;
11
- className?: string;
12
- title?: string;
13
- content?: string;
14
- imageProps?: imageProps;
15
- buttonProps?: buttonProps;
16
- rounded?: boolean;
17
- }
18
-
19
- const NewsCard = ({
20
- id,
21
- className,
22
- title,
23
- content,
24
- imageProps,
25
- buttonProps,
26
- rounded,
27
- }: Props): JSX.Element => {
28
- const classList = classNames(
29
- {
30
- [style.rounded]: rounded,
31
- },
32
- className,
33
- style.classList,
34
- 'theme-local',
35
- );
36
-
37
- const src = imageProps?.src !== undefined ? imageProps.src : '';
38
-
39
- return (
40
- <div id={id} className={classList}>
41
- <div>
42
- <Image src={src} {...imageProps} />
43
- </div>
44
- <div className={classNames(style.contentWrapper, 'expandable')}>
45
- <p>{title}</p>
46
- <p>{content}</p>
47
- {buttonProps !== undefined && (
48
- <div className={style.buttonWrapper}>
49
- <Button {...buttonProps}>{buttonProps.children}</Button>
50
- </div>
51
- )}
52
- </div>
53
- </div>
54
- );
55
- };
56
-
57
- export default NewsCard;
@@ -1,15 +0,0 @@
1
- .rounded {
2
- @apply rounded-lg;
3
- }
4
-
5
- .classList {
6
- @apply flex border p-2;
7
- }
8
-
9
- .contentWrapper {
10
- @apply flex w-auto flex-col justify-between text-center;
11
- }
12
-
13
- .buttonWrapper {
14
- @apply px-8;
15
- }
@@ -1,44 +0,0 @@
1
- import { action } from '@storybook/addon-actions';
2
- import { Meta, StoryObj } from '@storybook/react';
3
- import { idAndClassName } from '@utils/controls';
4
-
5
- import Pill from '.';
6
-
7
- const meta = {
8
- title: 'Components/Pill',
9
- component: Pill,
10
- argTypes: {
11
- ...idAndClassName,
12
- text: {
13
- type: { name: 'string', required: false },
14
- description: 'The text to display in the component',
15
- table: {
16
- type: { summary: 'string' },
17
- },
18
- },
19
- onClick: {
20
- type: { name: 'function', required: false },
21
- description:
22
- 'An on click handle to execute when clicking on the component',
23
- table: {
24
- type: { summary: 'function' },
25
- },
26
- },
27
- dismissOnClick: {
28
- type: { name: 'boolean', required: false },
29
- description: 'To toggle the disappearance of the component on click',
30
- table: {
31
- type: { summary: 'boolean' },
32
- },
33
- },
34
- },
35
- args: {
36
- text: 'This is a pill',
37
- onClick: action('pill clicked'),
38
- },
39
- };
40
- export default meta;
41
-
42
- type Story = StoryObj<typeof meta>;
43
-
44
- export const Default: Story = {};
@@ -1,64 +0,0 @@
1
- import React, { useState } from 'react';
2
-
3
- import Icon from '@components/Icon';
4
- import classNames from 'classnames';
5
-
6
-
7
-
8
- export interface Props {
9
- id?: string;
10
- className?: string;
11
- text: string;
12
- onClick?: () => void;
13
- dismissOnClick?: boolean;
14
- }
15
-
16
- const Pill = ({
17
- id,
18
- className,
19
- text,
20
- onClick,
21
- dismissOnClick = false,
22
- }: Props): JSX.Element => {
23
- const [shouldDisplay, setShouldDisplay] = useState(true);
24
-
25
- const classList = classNames(
26
- {
27
- [style.hidden]: !shouldDisplay,
28
- [style.wrapperPadding]: !dismissOnClick,
29
- [style.wrapperPaddingDismiss]: dismissOnClick,
30
- },
31
- className,
32
- [style.wrapperClasses],
33
- 'theme-local',
34
- );
35
-
36
- const handleOnClick = (): void => {
37
- if (dismissOnClick) {
38
- setShouldDisplay(false);
39
- }
40
- onClick?.();
41
- };
42
-
43
- return shouldDisplay ? (
44
- <button id={id} className={classList} onClick={handleOnClick}>
45
- <div className={style.classes}>
46
- <p>{text}</p>
47
- {dismissOnClick && (
48
- <Icon
49
- className={style.icon}
50
- type="multiply"
51
- bgColour="white"
52
- hoverBgColour="white"
53
- colour="primary"
54
- hoverColour="primary"
55
- />
56
- )}
57
- </div>
58
- </button>
59
- ) : (
60
- <></>
61
- );
62
- };
63
-
64
- export default Pill;
@@ -1,32 +0,0 @@
1
- .wrapperClasses {
2
- @apply rounded-full border-2 py-1;
3
- @apply inline-block border-primary text-primary;
4
- }
5
-
6
- .wrapperPadding {
7
- @apply px-4;
8
- }
9
-
10
- .wrapperPaddingDismiss {
11
- @apply pl-4 pr-1;
12
- }
13
-
14
- .classes {
15
- @apply flex;
16
- }
17
-
18
- .icon {
19
- @apply ml-2 rounded-full;
20
- }
21
-
22
- .visible {
23
- @apply opacity-100;
24
- }
25
-
26
- .invisible {
27
- @apply opacity-0;
28
- }
29
-
30
- .hidden {
31
- @apply invisible;
32
- }
@@ -1,61 +0,0 @@
1
- import { Meta, StoryObj } from '@storybook/react';
2
- import { idAndClassName } from '@utils/controls';
3
-
4
- import ProductCard from '.';
5
-
6
- const meta = {
7
- title: 'Components/ProductCard',
8
- component: ProductCard,
9
- argTypes: {
10
- ...idAndClassName,
11
- imageProps: {
12
- description: '',
13
- table: {},
14
- },
15
- videoProps: {
16
- description: '',
17
- table: {},
18
- },
19
- title: {
20
- description: 'The title to display on the component',
21
- table: {},
22
- },
23
- subTitle: {
24
- description: 'The subtitle to display on the component',
25
- table: {},
26
- },
27
- description: {
28
- description: 'The description to display on the component',
29
- table: {},
30
- },
31
- href: {
32
- description:
33
- 'The link to send the user to when clicking on the component',
34
- table: {},
35
- },
36
- target: {
37
- description: '',
38
- table: {},
39
- },
40
- buttonProps: {
41
- description: '',
42
- table: {},
43
- },
44
- },
45
- args: {
46
- imageProps: {
47
- src: 'https://picsum.photos/500/300',
48
- },
49
- title: 'This is a title',
50
- textLineOne: 'Text line 1',
51
- textLineTwo: 'Text Line 2',
52
- textLineThree: 'Text line 3',
53
- ctaText: 'Add to bag',
54
- },
55
- };
56
-
57
- export default meta;
58
-
59
- type Story = StoryObj<typeof meta>;
60
-
61
- export const Default: Story = {};
@@ -1,111 +0,0 @@
1
- import React, { useState } from 'react';
2
-
3
- import Button from '@components/Button';
4
- import Icon from '@components/Icon';
5
- import { type Props as imageProps } from '@components/Image';
6
- import classNames from 'classnames';
7
-
8
- import Counter from '../Counter';
9
-
10
-
11
- export interface Props {
12
- id?: string;
13
- className?: string;
14
- title?: string;
15
- imageProps?: imageProps;
16
- textLineOne?: string;
17
- textLineTwo?: string;
18
- textLineThree?: string;
19
- count?: number;
20
- ctaText: string;
21
- isEditable?: boolean;
22
- ctaOnClick?: () => void;
23
- onEditClick?: () => void;
24
- onCounterClick?: (count: number) => void;
25
- }
26
-
27
- const ProductCard: React.FC<Props> = ({
28
- id,
29
- className,
30
- imageProps,
31
- title,
32
- textLineOne,
33
- textLineTwo,
34
- textLineThree,
35
- count,
36
- ctaText,
37
- isEditable = false,
38
- ctaOnClick,
39
- onEditClick,
40
- onCounterClick,
41
- }: Props): JSX.Element => {
42
- const [isHovering, setIsHovering] = useState(false);
43
- const ProductCardTitleClasses = classNames(style.title);
44
- const ProductCardSubTitleClassList = classNames(style.subtitle);
45
- const classList = classNames(
46
- className,
47
- style.classList,
48
- 'absolute theme-local',
49
- );
50
- const imageClassList = classNames(style.imageClassList);
51
-
52
- return (
53
- <div
54
- id={id}
55
- className={classList}
56
- onMouseOver={() => {
57
- setIsHovering(true);
58
- }}
59
- onMouseOut={() => {
60
- setIsHovering(false);
61
- }}
62
- >
63
- <div className="relative">
64
- <img className={imageClassList} {...imageProps} />
65
- {isEditable && (
66
- <div className={style.editButton}>
67
- <Button type="icon" variant="secondary" onClick={onEditClick}>
68
- <Icon type="pencil" />
69
- </Button>
70
- </div>
71
- )}
72
- </div>
73
-
74
- <div className={style.content}>
75
- {!isHovering && (
76
- <div className={style.contentWrapper}>
77
- {title !== undefined && (
78
- <h3 className={ProductCardTitleClasses}>{title}</h3>
79
- )}
80
- {textLineOne !== undefined && (
81
- <h4 className={ProductCardSubTitleClassList}>{textLineOne}</h4>
82
- )}
83
- {textLineTwo !== undefined && (
84
- <h4 className={ProductCardSubTitleClassList}>{textLineTwo}</h4>
85
- )}
86
- {textLineThree !== undefined && (
87
- <h4 className={ProductCardSubTitleClassList}>{textLineThree}</h4>
88
- )}
89
- </div>
90
- )}
91
- {isHovering && (
92
- <div className={style.hoverContentWrapper}>
93
- <div className={style.buttonWrapper}>
94
- <Button onClick={ctaOnClick}>{ctaText}</Button>
95
- {count !== undefined && (
96
- <Counter
97
- count={count}
98
- onClick={(newCount: number) => {
99
- onCounterClick?.(newCount);
100
- }}
101
- />
102
- )}
103
- </div>
104
- </div>
105
- )}
106
- </div>
107
- </div>
108
- );
109
- };
110
-
111
- export default ProductCard;
@@ -1,53 +0,0 @@
1
- .classList {
2
- @apply flex flex-col;
3
- @apply rounded-lg;
4
- @apply shadow-xl;
5
- max-width: 380px;
6
- }
7
-
8
- .imageClassList {
9
- @apply h-full w-full object-cover;
10
- @apply h-96 overflow-hidden;
11
- @apply rounded-t-lg;
12
- }
13
-
14
- .content {
15
- height: 150px;
16
- @apply overflow-hidden;
17
- }
18
-
19
- .contentWrapper {
20
- @apply h-full;
21
- @apply bg-white;
22
- @apply mt-0 p-6;
23
- @apply rounded-b-lg;
24
- @apply transition-all duration-300;
25
- }
26
-
27
- .title {
28
- @apply text-md font-medium;
29
- }
30
-
31
- .subtitle {
32
- @apply text-sm font-regular;
33
- }
34
-
35
- .description {
36
- @apply pb-6 text-sm font-light;
37
- }
38
-
39
- .hoverContentWrapper {
40
- @apply flex h-full text-center;
41
- @apply bg-white;
42
- @apply mt-0 p-6;
43
- @apply rounded-b-lg;
44
- @apply transition-all duration-300;
45
- }
46
-
47
- .buttonWrapper {
48
- @apply mx-auto my-auto;
49
- }
50
-
51
- .editButton {
52
- @apply absolute right-2 top-2;
53
- }
@@ -1,50 +0,0 @@
1
- import { Meta, StoryObj } from '@storybook/react';
2
- import { idAndClassName } from '@utils/controls';
3
-
4
- import ProductCardV2 from '.';
5
-
6
- const meta = {
7
- title: 'Components/ProductCardV2',
8
- component: ProductCardV2,
9
- parameters: {
10
- layout: 'padded',
11
- },
12
- argTypes: {
13
- ...idAndClassName,
14
- imageProps: {
15
- description: '',
16
- },
17
- title: {
18
- description: 'The title to display on the component',
19
- },
20
- subTitle: {
21
- description: 'The subtitle to display on the component',
22
- },
23
- description: {
24
- description: 'The description to display on the component',
25
- },
26
- href: {
27
- description:
28
- 'The link to send the user to when clicking on the component',
29
- },
30
- },
31
- args: {
32
- imageProps: {
33
- src: 'https://picsum.photos/500/300',
34
- },
35
- title: 'Osprey Exos Pro 55',
36
- textLineOne: 'Weight: 600 grams',
37
- topRightIcon: 'circle-check',
38
- bottomRightIcon: {
39
- colour: 'black',
40
- type: 'edit',
41
- size: 2,
42
- },
43
- },
44
- };
45
-
46
- export default meta;
47
-
48
- type Story = StoryObj<typeof meta>;
49
-
50
- export const Default: Story = {};
@@ -1,119 +0,0 @@
1
- import React from 'react';
2
-
3
- import Counter from '@components/Counter';
4
- import Icon, { type Props as iconProps } from '@components/Icon';
5
- import { type Props as imageProps } from '@components/Image';
6
- import classNames from 'classnames';
7
-
8
-
9
-
10
- export interface Props {
11
- id?: string;
12
- className?: string;
13
- title?: string;
14
- imageProps?: imageProps;
15
- topRightIcon?: iconProps;
16
- bottomRightIcon?: iconProps;
17
- topLeftIcon?: iconProps;
18
- bottomLeftIcon?: iconProps;
19
- textLineOne?: string;
20
- textLineTwo?: string;
21
- textLineThree?: string;
22
- onClick?: () => void;
23
- onCounterClick?: (count: number) => void;
24
- count?: number;
25
- isSelected?: boolean;
26
- }
27
-
28
- const ProductCardV2: React.FC<Props> = ({
29
- id,
30
- className,
31
- imageProps,
32
- title,
33
- textLineOne,
34
- textLineTwo,
35
- textLineThree,
36
- topRightIcon,
37
- bottomRightIcon,
38
- topLeftIcon,
39
- bottomLeftIcon,
40
- onClick,
41
- onCounterClick,
42
- count,
43
- isSelected = false,
44
- }: Props): JSX.Element => {
45
- return (
46
- <div
47
- id={id}
48
- className={classNames(
49
- {
50
- [style.cardSelected]: isSelected,
51
- },
52
- style.card,
53
- className,
54
- 'theme-local',
55
- )}
56
- onClick={onClick}
57
- >
58
- <div className={style.imageContainer}>
59
- <img className={style.image} {...imageProps} />
60
- {topRightIcon && (
61
- <Icon
62
- {...topRightIcon}
63
- className={classNames(topRightIcon.className, style.topRightIcon)}
64
- />
65
- )}
66
- {bottomRightIcon && (
67
- <Icon
68
- {...bottomRightIcon}
69
- colour="success"
70
- className={classNames(
71
- bottomRightIcon.className,
72
- style.bottomRightIcon,
73
- )}
74
- />
75
- )}
76
- {topLeftIcon && (
77
- <Icon
78
- {...topLeftIcon}
79
- className={classNames(topLeftIcon.className, style.topLeftIcon)}
80
- />
81
- )}
82
- {bottomLeftIcon && (
83
- <Icon
84
- {...bottomLeftIcon}
85
- colour="success"
86
- className={classNames(
87
- bottomLeftIcon.className,
88
- style.bottomLeftIcon,
89
- )}
90
- />
91
- )}
92
- {count && (
93
- <div className={classNames(style.counter)}>
94
- <Counter
95
- count={count}
96
- onClick={(newCount: number) => {
97
- onCounterClick?.(newCount);
98
- }}
99
- />
100
- </div>
101
- )}
102
- </div>
103
- <div className={style.contentWrapper}>
104
- {title !== undefined && <h3 className={style.title}>{title}</h3>}
105
- {textLineOne !== undefined && (
106
- <h4 className={style.subtitle}>{textLineOne}</h4>
107
- )}
108
- {textLineTwo !== undefined && (
109
- <h4 className={style.subtitle}>{textLineTwo}</h4>
110
- )}
111
- {textLineThree !== undefined && (
112
- <h4 className={style.subtitle}>{textLineThree}</h4>
113
- )}
114
- </div>
115
- </div>
116
- );
117
- };
118
-
119
- export default ProductCardV2;