trepur_components 1.0.2 → 1.0.4

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 (237) hide show
  1. package/dist/src/lib/components/Accordion/index.js +3 -1
  2. package/dist/src/lib/components/Accordion/index.js.map +1 -1
  3. package/dist/src/lib/components/Accordion/style.module.css +4 -0
  4. package/dist/src/lib/components/Accordion/style.module.css.map +1 -0
  5. package/dist/src/lib/components/Carousel/index.d.ts +0 -1
  6. package/dist/src/lib/components/Carousel/index.js +1 -1
  7. package/dist/src/lib/components/Carousel/index.js.map +1 -1
  8. package/dist/src/lib/components/ImageLinkList/index.d.ts +1 -1
  9. package/dist/src/lib/components/Nav/index.d.ts +1 -1
  10. package/dist/src/lib/components/Nav/index.js +2 -2
  11. package/dist/src/lib/components/Nav/index.js.map +1 -1
  12. package/dist/src/lib/components/SocialBlock/index.js +2 -2
  13. package/dist/src/lib/components/SocialBlock/index.js.map +1 -1
  14. package/dist/{components → src/lib/components}/Timeline/index.css +2 -0
  15. package/dist/src/lib/components/Timeline/index.css.map +1 -0
  16. package/dist/{components → src/lib/components}/Tubestops/index.css +35 -30
  17. package/dist/src/lib/components/Tubestops/index.css.map +1 -0
  18. package/dist/src/lib/typography/index.d.ts +1 -3
  19. package/dist/src/lib/typography/index.js +1 -1
  20. package/dist/src/lib/typography/index.js.map +1 -1
  21. package/package.json +13 -6
  22. package/dist/components/Accordion/Accordion.stories.tsx +0 -88
  23. package/dist/components/Accordion/index.tsx +0 -31
  24. package/dist/components/AlertBar/AlertBar.stories.tsx +0 -105
  25. package/dist/components/AlertBar/index.tsx +0 -127
  26. package/dist/components/Breadcrumbs/Breadcrumbs.stories.tsx +0 -60
  27. package/dist/components/Breadcrumbs/index.tsx +0 -55
  28. package/dist/components/BreadcrumbsBordered/BreadcrumbsBordered.stories.tsx +0 -52
  29. package/dist/components/BreadcrumbsBordered/index.tsx +0 -44
  30. package/dist/components/BreadcrumbsItem/BreadcrumbsItem.stories.tsx +0 -54
  31. package/dist/components/BreadcrumbsItem/index.tsx +0 -151
  32. package/dist/components/Button/button.stories.tsx +0 -148
  33. package/dist/components/Button/index.tsx +0 -91
  34. package/dist/components/Card/Card.stories.tsx +0 -150
  35. package/dist/components/Card/index.tsx +0 -162
  36. package/dist/components/CardWithTopImage/CardWithTopImage.stories.tsx +0 -48
  37. package/dist/components/CardWithTopImage/index.tsx +0 -40
  38. package/dist/components/Carousel/Carousel.stories.tsx +0 -369
  39. package/dist/components/Carousel/index.tsx +0 -267
  40. package/dist/components/ChevronCard/ChevronCard.stories.tsx +0 -21
  41. package/dist/components/ChevronCard/index.tsx +0 -39
  42. package/dist/components/Collapsible/Collapsible.stories.tsx +0 -70
  43. package/dist/components/Collapsible/index.tsx +0 -124
  44. package/dist/components/Column/Column.stories.tsx +0 -82
  45. package/dist/components/Column/index.tsx +0 -114
  46. package/dist/components/Container/Container.stories.tsx +0 -38
  47. package/dist/components/Container/index.tsx +0 -30
  48. package/dist/components/FooterBar/FooterBar.stories.tsx +0 -57
  49. package/dist/components/FooterBar/index.tsx +0 -44
  50. package/dist/components/Form/Form.stories.tsx +0 -93
  51. package/dist/components/Form/index.tsx +0 -58
  52. package/dist/components/FyreCard/FyreCard.stories.tsx +0 -29
  53. package/dist/components/FyreCard/index.tsx +0 -46
  54. package/dist/components/Greeting/Greeting.stories.tsx +0 -42
  55. package/dist/components/Greeting/index.tsx +0 -46
  56. package/dist/components/HamburgerIcon/HamburgerIcon.stories.tsx +0 -50
  57. package/dist/components/HamburgerIcon/index.tsx +0 -65
  58. package/dist/components/Icon/Icon.stories.tsx +0 -102
  59. package/dist/components/Icon/index.tsx +0 -112
  60. package/dist/components/Image/Image.stories.tsx +0 -88
  61. package/dist/components/Image/index.tsx +0 -113
  62. package/dist/components/ImageLink/ImageLink.stories.tsx +0 -60
  63. package/dist/components/ImageLink/index.tsx +0 -62
  64. package/dist/components/ImageLinkList/ImageLinkList.stories.tsx +0 -34
  65. package/dist/components/ImageLinkList/index.tsx +0 -33
  66. package/dist/components/InformationIcon/InformationIcon.stories.tsx +0 -86
  67. package/dist/components/InformationIcon/index.tsx +0 -84
  68. package/dist/components/Input/Input.stories.tsx +0 -99
  69. package/dist/components/Input/index.tsx +0 -126
  70. package/dist/components/Jumbotron/Jumbotron.stories.tsx +0 -22
  71. package/dist/components/Jumbotron/index.tsx +0 -25
  72. package/dist/components/Nav/Nav.stories.tsx +0 -155
  73. package/dist/components/Nav/index.tsx +0 -180
  74. package/dist/components/NavItem/NavItem.stories.tsx +0 -89
  75. package/dist/components/NavItem/index.tsx +0 -65
  76. package/dist/components/NewsCard/NewsCard.stories.tsx +0 -71
  77. package/dist/components/NewsCard/index.tsx +0 -48
  78. package/dist/components/Profile/Profile.stories.tsx +0 -50
  79. package/dist/components/Profile/index.tsx +0 -87
  80. package/dist/components/Row/Row.stories.tsx +0 -51
  81. package/dist/components/Row/index.tsx +0 -24
  82. package/dist/components/Search/Search.stories.tsx +0 -58
  83. package/dist/components/Search/index.tsx +0 -58
  84. package/dist/components/SocialBlock/SocialBlock.stories.tsx +0 -114
  85. package/dist/components/SocialBlock/index.tsx +0 -161
  86. package/dist/components/StarRating/StarRating.stories.tsx +0 -23
  87. package/dist/components/StarRating/index.tsx +0 -71
  88. package/dist/components/Testimonial/Testimonial.stories.tsx +0 -110
  89. package/dist/components/Testimonial/index.tsx +0 -50
  90. package/dist/components/TextAndTitle/TextAndTitle.stories.tsx +0 -65
  91. package/dist/components/TextAndTitle/index.tsx +0 -257
  92. package/dist/components/TextArea/TextArea.stories.tsx +0 -67
  93. package/dist/components/TextArea/index.tsx +0 -97
  94. package/dist/components/Timeline/Timeline.stories.tsx +0 -100
  95. package/dist/components/Timeline/index.tsx +0 -315
  96. package/dist/components/Tubestops/Tubestops.stories.tsx +0 -66
  97. package/dist/components/Tubestops/index.tsx +0 -77
  98. package/dist/components/UserIcon/UserIcon.stories.tsx +0 -67
  99. package/dist/components/UserIcon/index.tsx +0 -42
  100. package/dist/components/Video/Video.stories.tsx +0 -23
  101. package/dist/components/Video/index.tsx +0 -49
  102. package/dist/fonts/Sora/OFL.txt +0 -93
  103. package/dist/fonts/Sora/README.txt +0 -70
  104. package/dist/fonts/Sora/Sora-VariableFont_wght.ttf +0 -0
  105. package/dist/fonts/Sora/static/Sora-Bold.ttf +0 -0
  106. package/dist/fonts/Sora/static/Sora-ExtraBold.ttf +0 -0
  107. package/dist/fonts/Sora/static/Sora-ExtraLight.ttf +0 -0
  108. package/dist/fonts/Sora/static/Sora-Light.ttf +0 -0
  109. package/dist/fonts/Sora/static/Sora-Medium.ttf +0 -0
  110. package/dist/fonts/Sora/static/Sora-Regular.ttf +0 -0
  111. package/dist/fonts/Sora/static/Sora-SemiBold.ttf +0 -0
  112. package/dist/fonts/Sora/static/Sora-Thin.ttf +0 -0
  113. package/dist/index.js +0 -272
  114. package/dist/src/lib/components/Accordion/Accordion.stories.d.ts +0 -6
  115. package/dist/src/lib/components/Accordion/Accordion.stories.js +0 -80
  116. package/dist/src/lib/components/Accordion/Accordion.stories.js.map +0 -1
  117. package/dist/src/lib/components/AlertBar/AlertBar.stories.d.ts +0 -6
  118. package/dist/src/lib/components/AlertBar/AlertBar.stories.js +0 -91
  119. package/dist/src/lib/components/AlertBar/AlertBar.stories.js.map +0 -1
  120. package/dist/src/lib/components/Breadcrumbs/Breadcrumbs.stories.d.ts +0 -6
  121. package/dist/src/lib/components/Breadcrumbs/Breadcrumbs.stories.js +0 -56
  122. package/dist/src/lib/components/Breadcrumbs/Breadcrumbs.stories.js.map +0 -1
  123. package/dist/src/lib/components/BreadcrumbsBordered/BreadcrumbsBordered.stories.d.ts +0 -6
  124. package/dist/src/lib/components/BreadcrumbsBordered/BreadcrumbsBordered.stories.js +0 -45
  125. package/dist/src/lib/components/BreadcrumbsBordered/BreadcrumbsBordered.stories.js.map +0 -1
  126. package/dist/src/lib/components/BreadcrumbsItem/BreadcrumbsItem.stories.d.ts +0 -6
  127. package/dist/src/lib/components/BreadcrumbsItem/BreadcrumbsItem.stories.js +0 -50
  128. package/dist/src/lib/components/BreadcrumbsItem/BreadcrumbsItem.stories.js.map +0 -1
  129. package/dist/src/lib/components/Button/button.stories.d.ts +0 -6
  130. package/dist/src/lib/components/Button/button.stories.js +0 -132
  131. package/dist/src/lib/components/Button/button.stories.js.map +0 -1
  132. package/dist/src/lib/components/Card/Card.stories.d.ts +0 -8
  133. package/dist/src/lib/components/Card/Card.stories.js +0 -124
  134. package/dist/src/lib/components/Card/Card.stories.js.map +0 -1
  135. package/dist/src/lib/components/CardWithTopImage/CardWithTopImage.stories.d.ts +0 -6
  136. package/dist/src/lib/components/CardWithTopImage/CardWithTopImage.stories.js +0 -40
  137. package/dist/src/lib/components/CardWithTopImage/CardWithTopImage.stories.js.map +0 -1
  138. package/dist/src/lib/components/Carousel/Carousel.stories.d.ts +0 -6
  139. package/dist/src/lib/components/Carousel/Carousel.stories.js +0 -297
  140. package/dist/src/lib/components/Carousel/Carousel.stories.js.map +0 -1
  141. package/dist/src/lib/components/ChevronCard/ChevronCard.stories.d.ts +0 -6
  142. package/dist/src/lib/components/ChevronCard/ChevronCard.stories.js +0 -14
  143. package/dist/src/lib/components/ChevronCard/ChevronCard.stories.js.map +0 -1
  144. package/dist/src/lib/components/Collapsible/Collapsible.stories.d.ts +0 -6
  145. package/dist/src/lib/components/Collapsible/Collapsible.stories.js +0 -66
  146. package/dist/src/lib/components/Collapsible/Collapsible.stories.js.map +0 -1
  147. package/dist/src/lib/components/Column/Column.stories.d.ts +0 -6
  148. package/dist/src/lib/components/Column/Column.stories.js +0 -64
  149. package/dist/src/lib/components/Column/Column.stories.js.map +0 -1
  150. package/dist/src/lib/components/Container/Container.stories.d.ts +0 -6
  151. package/dist/src/lib/components/Container/Container.stories.js +0 -30
  152. package/dist/src/lib/components/Container/Container.stories.js.map +0 -1
  153. package/dist/src/lib/components/FooterBar/footerBar.stories.d.ts +0 -6
  154. package/dist/src/lib/components/FooterBar/footerBar.stories.js +0 -48
  155. package/dist/src/lib/components/FooterBar/footerBar.stories.js.map +0 -1
  156. package/dist/src/lib/components/Form/Form.stories.d.ts +0 -6
  157. package/dist/src/lib/components/Form/Form.stories.js +0 -82
  158. package/dist/src/lib/components/Form/Form.stories.js.map +0 -1
  159. package/dist/src/lib/components/FyreCard/FyreCard.stories.d.ts +0 -6
  160. package/dist/src/lib/components/FyreCard/FyreCard.stories.js +0 -22
  161. package/dist/src/lib/components/FyreCard/FyreCard.stories.js.map +0 -1
  162. package/dist/src/lib/components/Greeting/Greeting.stories.d.ts +0 -6
  163. package/dist/src/lib/components/Greeting/Greeting.stories.js +0 -33
  164. package/dist/src/lib/components/Greeting/Greeting.stories.js.map +0 -1
  165. package/dist/src/lib/components/HamburgerIcon/HamburgerIcon.stories.d.ts +0 -6
  166. package/dist/src/lib/components/HamburgerIcon/HamburgerIcon.stories.js +0 -46
  167. package/dist/src/lib/components/HamburgerIcon/HamburgerIcon.stories.js.map +0 -1
  168. package/dist/src/lib/components/Icon/Icon.stories.d.ts +0 -6
  169. package/dist/src/lib/components/Icon/Icon.stories.js +0 -87
  170. package/dist/src/lib/components/Icon/Icon.stories.js.map +0 -1
  171. package/dist/src/lib/components/Image/Image.stories.d.ts +0 -6
  172. package/dist/src/lib/components/Image/Image.stories.js +0 -73
  173. package/dist/src/lib/components/Image/Image.stories.js.map +0 -1
  174. package/dist/src/lib/components/ImageLink/ImageLink.stories.d.ts +0 -9
  175. package/dist/src/lib/components/ImageLink/ImageLink.stories.js +0 -50
  176. package/dist/src/lib/components/ImageLink/ImageLink.stories.js.map +0 -1
  177. package/dist/src/lib/components/ImageLinkList/ImageLinkList.stories.d.ts +0 -6
  178. package/dist/src/lib/components/ImageLinkList/ImageLinkList.stories.js +0 -27
  179. package/dist/src/lib/components/ImageLinkList/ImageLinkList.stories.js.map +0 -1
  180. package/dist/src/lib/components/InformationIcon/InformationIcon.stories.d.ts +0 -6
  181. package/dist/src/lib/components/InformationIcon/InformationIcon.stories.js +0 -73
  182. package/dist/src/lib/components/InformationIcon/InformationIcon.stories.js.map +0 -1
  183. package/dist/src/lib/components/Input/Input.stories.d.ts +0 -6
  184. package/dist/src/lib/components/Input/Input.stories.js +0 -95
  185. package/dist/src/lib/components/Input/Input.stories.js.map +0 -1
  186. package/dist/src/lib/components/Jumbotron/Jumbotron.stories.d.ts +0 -6
  187. package/dist/src/lib/components/Jumbotron/Jumbotron.stories.js +0 -16
  188. package/dist/src/lib/components/Jumbotron/Jumbotron.stories.js.map +0 -1
  189. package/dist/src/lib/components/Nav/Nav.stories.d.ts +0 -6
  190. package/dist/src/lib/components/Nav/Nav.stories.js +0 -134
  191. package/dist/src/lib/components/Nav/Nav.stories.js.map +0 -1
  192. package/dist/src/lib/components/NavItem/NavItem.stories.d.ts +0 -6
  193. package/dist/src/lib/components/NavItem/NavItem.stories.js +0 -75
  194. package/dist/src/lib/components/NavItem/NavItem.stories.js.map +0 -1
  195. package/dist/src/lib/components/NewsCard/NewsCard.stories.d.ts +0 -6
  196. package/dist/src/lib/components/NewsCard/NewsCard.stories.js +0 -60
  197. package/dist/src/lib/components/NewsCard/NewsCard.stories.js.map +0 -1
  198. package/dist/src/lib/components/Profile/Profile.stories.d.ts +0 -6
  199. package/dist/src/lib/components/Profile/Profile.stories.js +0 -41
  200. package/dist/src/lib/components/Profile/Profile.stories.js.map +0 -1
  201. package/dist/src/lib/components/Row/Row.stories.d.ts +0 -6
  202. package/dist/src/lib/components/Row/Row.stories.js +0 -37
  203. package/dist/src/lib/components/Row/Row.stories.js.map +0 -1
  204. package/dist/src/lib/components/Search/Search.stories.d.ts +0 -6
  205. package/dist/src/lib/components/Search/Search.stories.js +0 -48
  206. package/dist/src/lib/components/Search/Search.stories.js.map +0 -1
  207. package/dist/src/lib/components/SocialBlock/SocialBlock.stories.d.ts +0 -6
  208. package/dist/src/lib/components/SocialBlock/SocialBlock.stories.js +0 -58
  209. package/dist/src/lib/components/SocialBlock/SocialBlock.stories.js.map +0 -1
  210. package/dist/src/lib/components/StarRating/StarRating.stories.d.ts +0 -6
  211. package/dist/src/lib/components/StarRating/StarRating.stories.js +0 -17
  212. package/dist/src/lib/components/StarRating/StarRating.stories.js.map +0 -1
  213. package/dist/src/lib/components/Testimonial/Testimonial.stories.d.ts +0 -6
  214. package/dist/src/lib/components/Testimonial/Testimonial.stories.js +0 -95
  215. package/dist/src/lib/components/Testimonial/Testimonial.stories.js.map +0 -1
  216. package/dist/src/lib/components/TextAndTitle/TextAndTitle.stories.d.ts +0 -6
  217. package/dist/src/lib/components/TextAndTitle/TextAndTitle.stories.js +0 -63
  218. package/dist/src/lib/components/TextAndTitle/TextAndTitle.stories.js.map +0 -1
  219. package/dist/src/lib/components/TextArea/TextArea.stories.d.ts +0 -6
  220. package/dist/src/lib/components/TextArea/TextArea.stories.js +0 -63
  221. package/dist/src/lib/components/TextArea/TextArea.stories.js.map +0 -1
  222. package/dist/src/lib/components/Timeline/Timeline.stories.d.ts +0 -6
  223. package/dist/src/lib/components/Timeline/Timeline.stories.js +0 -87
  224. package/dist/src/lib/components/Timeline/Timeline.stories.js.map +0 -1
  225. package/dist/src/lib/components/Tubestops/Tubestops.stories.d.ts +0 -6
  226. package/dist/src/lib/components/Tubestops/Tubestops.stories.js +0 -62
  227. package/dist/src/lib/components/Tubestops/Tubestops.stories.js.map +0 -1
  228. package/dist/src/lib/components/UserIcon/UserIcon.stories.d.ts +0 -6
  229. package/dist/src/lib/components/UserIcon/UserIcon.stories.js +0 -63
  230. package/dist/src/lib/components/UserIcon/UserIcon.stories.js.map +0 -1
  231. package/dist/src/lib/components/Video/Video.stories.d.ts +0 -6
  232. package/dist/src/lib/components/Video/Video.stories.js +0 -17
  233. package/dist/src/lib/components/Video/Video.stories.js.map +0 -1
  234. package/dist/src/lib/typography/Fonts.stories.d.ts +0 -6
  235. package/dist/src/lib/typography/Fonts.stories.js +0 -12
  236. package/dist/src/lib/typography/Fonts.stories.js.map +0 -1
  237. package/dist/styles/base.css +0 -73
@@ -1,91 +0,0 @@
1
- import React from 'react'
2
- import Icon from '@components/Icon'
3
- import classNames from 'classnames'
4
-
5
- export interface Props {
6
- id?: string
7
- className?: string
8
- onClick?: React.MouseEventHandler
9
- hoverText?: string
10
- variant?: 'primary' | 'secondary'
11
- type?: 'social' | 'icon' | 'default'
12
- href?: string
13
- rounded?: boolean
14
- disabled?: boolean
15
- isLoading?: boolean
16
- openInNewTab?: boolean
17
- children?: any
18
- }
19
-
20
- const Button = ({
21
- id,
22
- className,
23
- onClick,
24
- hoverText,
25
- variant = 'primary',
26
- type = 'default',
27
- href,
28
- rounded = true,
29
- disabled = false,
30
- isLoading = false,
31
- openInNewTab = false,
32
- children
33
- }: Props): JSX.Element => {
34
- const padding = classNames({
35
- 'px-1 py-1': type === 'social',
36
- 'px-3': type === 'icon',
37
- 'px-8': type !== 'social' && type !== 'icon'
38
- }, 'py-2')
39
-
40
- const loadingClasses = classNames({
41
- invisible: !isLoading
42
- }, 'absolute left-2/4 top-1/4 -ml-2')
43
-
44
- const classList = classNames({
45
- 'bg-primary text-white border-white': variant === 'primary',
46
- 'hover:bg-white hover:text-primary hover:border-primary': !disabled && variant === 'primary',
47
- 'bg-white text-primary border-primary': variant === 'secondary',
48
- 'hover:bg-primary hover:text-white hover:border-primary': !disabled && variant === 'secondary',
49
- 'opacity-50': disabled,
50
- 'rounded-lg': rounded,
51
- 'rounded-none': !rounded
52
- }, className, padding, 'group border-2 transition-backgroundColor duration-500 transform')
53
-
54
- const loadingIcon = (
55
- <Icon
56
- size={1}
57
- type='spinner'
58
- animation='pulse'
59
- colour='white'
60
- bgColour='primary'
61
- />
62
- )
63
-
64
- return (
65
- <a
66
- className='group'
67
- {...(openInNewTab && { target: '_blank' })}
68
- href={href}
69
- >
70
- <button
71
- id={id}
72
- className={classList}
73
- aria-busy={isLoading}
74
- {...((onClick != null) &&
75
- { onClick })}
76
- {...(disabled &&
77
- { disabled })}
78
- >
79
- <div className={classNames({ invisible: isLoading })}>
80
- {children}
81
- </div>
82
- {isLoading &&
83
- <div className={loadingClasses}>
84
- {loadingIcon}
85
- </div>}
86
- </button>
87
- </a>
88
- )
89
- }
90
-
91
- export default Button
@@ -1,150 +0,0 @@
1
- import React from 'react'
2
- import Card from './index'
3
- import { idAndClassName } from '@utils/controls'
4
- import Icon from '@components/Icon'
5
- import { ComponentStory, ComponentMeta } from '@storybook/react'
6
-
7
- const componentMeta: ComponentMeta<typeof Card> = {
8
- title: 'Trepur Components/Rupert Bennett/Organisms/Card',
9
- component: Card,
10
- argTypes: {
11
- ...idAndClassName,
12
- title: {
13
- description: '',
14
- table: {
15
- category: 'Card'
16
- }
17
- },
18
- image: {
19
- description: '',
20
- table: {
21
- category: 'Card'
22
- }
23
- },
24
- subTitle: {
25
- description: '',
26
- table: {
27
- category: 'Card'
28
- }
29
- },
30
- description: {
31
- description: '',
32
- table: {
33
- category: 'Card'
34
- }
35
- },
36
- extraText: {
37
- description: '',
38
- table: {
39
- category: 'Card'
40
- }
41
- },
42
- imageBelowTitle: {
43
- description: '',
44
- table: {
45
- category: 'Card'
46
- }
47
- },
48
- bordered: {
49
- description: '',
50
- table: {
51
- category: 'Card'
52
- }
53
- },
54
- rounded: {
55
- description: '',
56
- table: {
57
- category: 'Card'
58
- }
59
- },
60
- hasCta: {
61
- description: '',
62
- table: {
63
- category: 'Card'
64
- }
65
- },
66
- titleLeft: {
67
- description: '',
68
- table: {
69
- category: 'Card'
70
- }
71
- },
72
- titleRight: {
73
- description: '',
74
- table: {
75
- category: 'Card'
76
- }
77
- },
78
- titleBold: {
79
- description: '',
80
- table: {
81
- category: 'Card'
82
- }
83
- }
84
- },
85
- args: {
86
- subTitle: 'This is a subtitle',
87
- description: 'This is a description paragraph',
88
- extraText: 'This is another paragraph',
89
- rounded: true,
90
- bordered: true,
91
- hasCta: true,
92
- iconButtonProps: {
93
- type: 'icon',
94
- href: '/',
95
- className: 'mt-8',
96
- children: <Icon
97
- type='heart'
98
- hollow={false}
99
- />
100
- },
101
- cardButtonProps: {
102
- children: (
103
- <div className='flex'>
104
- <Icon type='heart' />
105
- <p>buttonText</p>
106
- <Icon type='heart' />
107
- </div>
108
- ),
109
- disabled: false,
110
- hoverText: 'buttonHoverText',
111
- href: 'buttonUrl',
112
- rounded: true
113
- },
114
- button2Props: {
115
- className: 'ml-2 w-full mt-8',
116
- children: 'Add to basket',
117
- rounded: false,
118
- disabled: false
119
- }
120
- }
121
- }
122
-
123
- const Template: ComponentStory<typeof Card> = (args) => <Card {...args} />
124
-
125
- export const _ImageCard = Template.bind({})
126
- _ImageCard.args = {
127
- title: 'This is a title',
128
- image: 'https://picsum.photos/500/300'
129
- }
130
-
131
- export const _VideoCard = Template.bind({})
132
- _VideoCard.args = {
133
- title: 'This is a title',
134
- videoProps: {
135
- mp4File: '/',
136
- withControls: true,
137
- autoPlay: true
138
- }
139
- }
140
-
141
- export const _ProductCard = Template.bind({})
142
- _ProductCard.args = {
143
- image: 'https://picsum.photos/500/300',
144
- subTitle: 'Product name',
145
- description: 'Product description',
146
- extraText: '£123.45',
147
- onHover: true
148
- }
149
-
150
- export default componentMeta
@@ -1,162 +0,0 @@
1
- import React, { useState } from 'react'
2
- import classNames from 'classnames'
3
- import Button, { Props as buttonProps } from '@components/Button'
4
- import Video, { Props as videoProps } from '@components/Video'
5
-
6
- export interface Props {
7
- id?: string
8
- className?: string
9
- title?: string
10
- image?: string
11
- subTitle?: string
12
- description?: string
13
- extraText?: string
14
- hasCta?: boolean
15
- imageBelowTitle?: boolean
16
- titleLeft?: boolean
17
- titleRight?: boolean
18
- titleBold?: boolean
19
- imageClass?: string
20
- subTitleClass?: string
21
- extraTextClass?: string
22
- descriptionClass?: string
23
- altText?: string
24
- rounded?: boolean
25
- bordered?: boolean
26
- videoProps?: videoProps
27
- onHover?: boolean
28
- iconButtonProps?: buttonProps
29
- cardButtonProps?: buttonProps
30
- button2Props?: buttonProps
31
- }
32
-
33
- const Card: React.FC<Props> = ({
34
- id,
35
- className,
36
- title,
37
- image,
38
- subTitle,
39
- description,
40
- extraText,
41
- hasCta,
42
- imageBelowTitle,
43
- titleLeft = false,
44
- titleRight = false,
45
- titleBold = false,
46
- imageClass,
47
- subTitleClass,
48
- extraTextClass,
49
- descriptionClass,
50
- altText,
51
- rounded,
52
- bordered,
53
- videoProps,
54
- onHover = false,
55
- iconButtonProps,
56
- cardButtonProps,
57
- button2Props
58
- }: Props): JSX.Element => {
59
- const [showHoverButtons, setShowHoverButtons] = useState(false)
60
-
61
- const orderClass = classNames({ 'order-first': imageBelowTitle })
62
- const btnClass = 'w-full p-3'
63
- const border = classNames({ 'border border-grey border-opacity-100:': bordered })
64
- const cardTitleFont = classNames({ 'font-bold': titleBold })
65
- const cardTitlePosition = classNames({
66
- 'text-left': titleLeft,
67
- 'text-right': titleRight,
68
- 'text-center': !titleLeft && !titleRight
69
- })
70
- const roundedImage = classNames({ 'rounded-t-lg': rounded })
71
- const roundedCard = classNames({ 'rounded-lg': rounded })
72
- const contentWrapperClass = 'px-3 order-3'
73
- const titleWrapperClass = classNames(orderClass, 'pt-3')
74
-
75
- const cardTitleClasses = classNames({
76
- [cardTitlePosition]: true
77
- }, cardTitleFont, 'font-medium text-md text-grey')
78
-
79
- const cardSubTitleClassList = classNames(subTitleClass, 'font-light text-sm text-grey')
80
- const cardDescriptionClassList = classNames(descriptionClass, 'font-extraLight text-xs text-light-grey')
81
- const classList = classNames(className, border, roundedCard, 'flex flex-col')
82
-
83
- const imageClassList = classNames(roundedImage, imageClass, 'w-full object-cover h-full')
84
-
85
- const cardExtraTextClassList = classNames({
86
- 'pb-4': hasCta === false
87
- }, extraTextClass, 'w-full object-cover h-full font-extraLight text-xs text-light-grey')
88
-
89
- const imageWrapperClassList = classNames({
90
- 'order-2': imageBelowTitle === true,
91
- [roundedImage]: imageBelowTitle === false,
92
- 'order-1': imageBelowTitle === false
93
- }, 'h-64 overflow-hidden object-cover')
94
-
95
- const toggleHover = (isHovering: boolean): void => {
96
- onHover && setShowHoverButtons(!!isHovering)
97
- }
98
-
99
- return (
100
- <div
101
- id={id}
102
- className={classList}
103
- onMouseEnter={() => toggleHover(true)}
104
- onMouseLeave={() => toggleHover(false)}
105
- >
106
- <div className='card-content flex flex-1 flex-col'>
107
- {videoProps?.mp4File !== undefined || videoProps?.webmFile !== undefined || videoProps?.ogvFile !== undefined
108
- ? (
109
- <div className={imageWrapperClassList}>
110
- <Video {...videoProps} />
111
- </div>
112
- )
113
- : (image !== undefined &&
114
- <div className={imageWrapperClassList}>
115
- <img className={imageClassList} src={image} alt={altText} />
116
- </div>)}
117
- {!showHoverButtons
118
- ? (
119
- <>
120
- <div className={imageBelowTitle !== undefined ? 'order-1' : 'order-3'}>
121
- {title !== undefined &&
122
- <div className={titleWrapperClass}>
123
- <h3 className={cardTitleClasses}>{title}</h3>
124
- </div>}
125
- </div>
126
- <div className={contentWrapperClass}>
127
- {subTitle !== undefined &&
128
- <h4 className={cardSubTitleClassList}>
129
- {subTitle}
130
- </h4>}
131
- {description !== undefined &&
132
- <p className={cardDescriptionClassList}>
133
- {description}
134
- </p>}
135
- {extraText !== undefined &&
136
- <p className={cardExtraTextClassList}>
137
- {extraText}
138
- </p>}
139
- </div>
140
- </>
141
- )
142
- : (
143
- <div className='flex p-2 order-last h-24'>
144
- <Button {...iconButtonProps}>
145
- {iconButtonProps?.children}
146
- </Button>
147
- <Button {...button2Props}>
148
- {button2Props?.children}
149
- </Button>
150
- </div>)}
151
- </div>
152
- {(cardButtonProps != null) &&
153
- <div className={btnClass}>
154
- <Button {...cardButtonProps}>
155
- {cardButtonProps.children}
156
- </Button>
157
- </div>}
158
- </div>
159
- )
160
- }
161
-
162
- export default Card
@@ -1,48 +0,0 @@
1
- import React from 'react'
2
- import CardWithTopImage from './index'
3
- import logo from '@assets/images/primary-logo.png'
4
- import { ComponentStory, ComponentMeta } from '@storybook/react'
5
- import { idAndClassName } from '@utils/controls'
6
-
7
- const componentMeta: ComponentMeta<typeof CardWithTopImage> = {
8
- title: 'Trepur Components/Rupert Bennett/Organisms/Card With Top Image',
9
- component: CardWithTopImage,
10
- argTypes: {
11
- ...idAndClassName,
12
- children: {
13
- type: { name: 'other', value: 'string | React.ReactNode' },
14
- description: 'The child elements to show in the component',
15
- table: {
16
- type: {
17
- summary: 'Array'
18
- },
19
- defaultValue: { summary: 'undefined' }
20
- }
21
- },
22
- imageProps: {
23
- type: { name: 'other', value: 'object' },
24
- description: 'The props to pass to the image on the component',
25
- table: {
26
- type: {
27
- summary: 'object'
28
- },
29
- defaultValue: { summary: 'undefined' }
30
- }
31
- }
32
- },
33
- args: {
34
- imageProps: {
35
- image: logo,
36
- roundedFull: true,
37
- width: 4,
38
- height: 4
39
- },
40
- children: [<p key='1'>This is a child</p>, <p key='2'>This is another child</p>]
41
- }
42
- }
43
-
44
- const Template: ComponentStory<typeof CardWithTopImage> = (args) => <CardWithTopImage {...args} />
45
-
46
- export const _CardWithTopImage = Template.bind({})
47
-
48
- export default componentMeta
@@ -1,40 +0,0 @@
1
- import React from 'react'
2
- import Image, { Props as imageProps } from '@components/Image'
3
- import classNames from 'classnames'
4
-
5
- export interface Props {
6
- id?: string
7
- className?: string
8
- children?: any
9
- imageProps?: imageProps
10
- }
11
-
12
- const CardWithTopImage = ({
13
- id,
14
- className,
15
- children,
16
- imageProps
17
- }: Props): JSX.Element => {
18
- const wrapperClassList = classNames('rounded-full mx-auto max-w-max bg-white p-4')
19
-
20
- const contentClassList = 'pt-12 px-4 h-auto pb-16 -mt-12 bg-white'
21
-
22
- return (
23
- <div
24
- style={{
25
- filter: 'drop-shadow(0 4px 8px rgb(154, 154, 154))'
26
- }}
27
- id={id}
28
- className={className}
29
- >
30
- <div className={wrapperClassList}>
31
- <Image {...imageProps} />
32
- </div>
33
- <div className={contentClassList}>
34
- {children}
35
- </div>
36
- </div>
37
- )
38
- }
39
-
40
- export default CardWithTopImage