trepur_components 0.1.0

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 (93) hide show
  1. package/.storybook/main.js +32 -0
  2. package/.storybook/preview.js +9 -0
  3. package/README.md +70 -0
  4. package/babel.config.json +18 -0
  5. package/craco.config.js +10 -0
  6. package/dist/App.css +42 -0
  7. package/dist/App.js +24 -0
  8. package/dist/Components/Breadcrumbs/Breadcrumbs.js +32 -0
  9. package/dist/Components/Breadcrumbs/Breadcrumbs.stories.js +164 -0
  10. package/dist/Components/Breadcrumbs/README.md +1 -0
  11. package/dist/Components/BreadcrumbsBordered/Breadcrumbs.js +49 -0
  12. package/dist/Components/BreadcrumbsBordered/Breadcrumbs.stories.js +164 -0
  13. package/dist/Components/BreadcrumbsBordered/README.md +1 -0
  14. package/dist/Components/Button/Button.js +35 -0
  15. package/dist/Components/Button/Button.stories.js +185 -0
  16. package/dist/Components/Button/README.md +1 -0
  17. package/dist/Components/ButtonSlide/ButtonSlide.js +37 -0
  18. package/dist/Components/ButtonSlide/ButtonSlide.stories.js +185 -0
  19. package/dist/Components/ButtonSlide/README.md +1 -0
  20. package/dist/Components/ButtonSlide/Styles.css +25 -0
  21. package/dist/Components/Card/Card.js +83 -0
  22. package/dist/Components/Card/Card.stories.js +204 -0
  23. package/dist/Components/Card/README.md +1 -0
  24. package/dist/Components/CardImageLink/CardImageLink.js +36 -0
  25. package/dist/Components/CardImageLink/CardImageLink.stories.js +89 -0
  26. package/dist/Components/CardImageLink/README.md +0 -0
  27. package/dist/Components/CardImageLinkList/CardImageLinkList.js +35 -0
  28. package/dist/Components/CardImageLinkList/CardImageLinkList.stories.js +63 -0
  29. package/dist/Components/CardImageLinkList/README.md +0 -0
  30. package/dist/Components/CardList/CardList.js +36 -0
  31. package/dist/Components/CardList/CardList.stories.js +204 -0
  32. package/dist/Components/CardList/README.md +1 -0
  33. package/dist/Components/Icon/Icon.js +45 -0
  34. package/dist/Components/Icon/Icon.stories.js +73 -0
  35. package/dist/Components/Icon/README.md +1 -0
  36. package/dist/Components/Jumbotron/Jumbotron.js +43 -0
  37. package/dist/Components/Jumbotron/Jumbotron.stories.js +81 -0
  38. package/dist/Components/Jumbotron/README.md +0 -0
  39. package/dist/Components/Nav.js +170 -0
  40. package/dist/Components/Profile.js +41 -0
  41. package/dist/Components/Search.js +43 -0
  42. package/dist/Components/SignedInLinks.js +27 -0
  43. package/dist/Components/SignedOutLinks.js +22 -0
  44. package/dist/index.css +67 -0
  45. package/dist/index.js +19 -0
  46. package/package.json +71 -0
  47. package/public/Breadcrumbs/Breadcrumbs.stories.js +144 -0
  48. package/public/Logo.png +0 -0
  49. package/public/index.html +10 -0
  50. package/public/manifest.json +25 -0
  51. package/public/robots.txt +3 -0
  52. package/public/user.jpeg +0 -0
  53. package/src/App.css +42 -0
  54. package/src/App.js +23 -0
  55. package/src/Components/Breadcrumbs/Breadcrumbs.js +27 -0
  56. package/src/Components/Breadcrumbs/Breadcrumbs.stories.js +158 -0
  57. package/src/Components/Breadcrumbs/README.md +1 -0
  58. package/src/Components/BreadcrumbsBordered/Breadcrumbs.js +35 -0
  59. package/src/Components/BreadcrumbsBordered/Breadcrumbs.stories.js +159 -0
  60. package/src/Components/BreadcrumbsBordered/README.md +1 -0
  61. package/src/Components/Button/Button.js +26 -0
  62. package/src/Components/Button/Button.stories.js +144 -0
  63. package/src/Components/Button/README.md +1 -0
  64. package/src/Components/ButtonSlide/ButtonSlide.js +26 -0
  65. package/src/Components/ButtonSlide/ButtonSlide.stories.js +144 -0
  66. package/src/Components/ButtonSlide/README.md +1 -0
  67. package/src/Components/ButtonSlide/Styles.css +25 -0
  68. package/src/Components/Card/Card.js +67 -0
  69. package/src/Components/Card/Card.stories.js +190 -0
  70. package/src/Components/Card/README.md +1 -0
  71. package/src/Components/CardImageLink/CardImageLink.js +22 -0
  72. package/src/Components/CardImageLink/CardImageLink.stories.js +73 -0
  73. package/src/Components/CardImageLink/README.md +0 -0
  74. package/src/Components/CardImageLinkList/CardImageLinkList.js +24 -0
  75. package/src/Components/CardImageLinkList/CardImageLinkList.stories.js +50 -0
  76. package/src/Components/CardImageLinkList/README.md +0 -0
  77. package/src/Components/CardList/CardList.js +29 -0
  78. package/src/Components/CardList/CardList.stories.js +201 -0
  79. package/src/Components/CardList/README.md +1 -0
  80. package/src/Components/Icon/Icon.js +28 -0
  81. package/src/Components/Icon/Icon.stories.js +49 -0
  82. package/src/Components/Icon/README.md +1 -0
  83. package/src/Components/Jumbotron/Jumbotron.js +31 -0
  84. package/src/Components/Jumbotron/Jumbotron.stories.js +66 -0
  85. package/src/Components/Jumbotron/README.md +0 -0
  86. package/src/Components/Nav.js +109 -0
  87. package/src/Components/Profile.js +25 -0
  88. package/src/Components/Search.js +26 -0
  89. package/src/Components/SignedInLinks.js +14 -0
  90. package/src/Components/SignedOutLinks.js +11 -0
  91. package/src/index.css +67 -0
  92. package/src/index.js +4 -0
  93. package/tailwind.config.js +69 -0
@@ -0,0 +1,159 @@
1
+ import React from 'react'
2
+ import { action } from '@storybook/addon-actions'
3
+ import Readme from './README.md'
4
+ import Breadcrumbs from './Breadcrumbs'
5
+ import '../../index.css';
6
+
7
+ const links = [
8
+ {
9
+ link: '/',
10
+ name: 'link 1'
11
+ },
12
+ {
13
+ link: '/',
14
+ name: 'link 2'
15
+ },
16
+ {
17
+ link: '/',
18
+ name: 'Link 3'
19
+ },
20
+ ]
21
+
22
+ export default {
23
+ title: 'Components/BreadcrumbsBordered',
24
+ argTypes: {
25
+ label: {
26
+ name: 'Text',
27
+ control: { type: 'text' },
28
+ defaultValue: 'Shop Now',
29
+ },
30
+ type: {
31
+ name: 'Type',
32
+ defaultValue: 'primary',
33
+ options: ['primary', 'secondary', 'ghost'],
34
+ control: { type: 'select' },
35
+ },
36
+ iconPlacement: {
37
+ name: 'Icon',
38
+ defaultValue: 'none',
39
+ options: ['left', 'right', 'both', 'none'],
40
+ control: { type: 'select' },
41
+ },
42
+ padded: {
43
+ name: 'Padded',
44
+ control: { type: 'boolean' },
45
+ defaultValue: false,
46
+ },
47
+ social: {
48
+ name: 'Social',
49
+ defaultValue: 'None',
50
+ options: ['Facebook', 'Twitter', 'Whatsapp', 'None'],
51
+ control: { type: 'select' },
52
+ },
53
+ },
54
+ decorators: [(story) => <div className={`p-4`}>{story()}</div>],
55
+
56
+ parameters: {
57
+ readme: {
58
+ sidebar: Readme,
59
+ },
60
+ },
61
+ }
62
+
63
+ export const _Breadcrumbs = (args) => {
64
+ return (
65
+ <Breadcrumbs links={links}>
66
+ </Breadcrumbs>
67
+ )
68
+ }
69
+
70
+ // export const SecondaryButton = () => {
71
+ // return (
72
+ // <Button ctaText='I am a button'>
73
+ // </Button>
74
+ // )
75
+ // }
76
+
77
+ // export const WithIconRight = () => {
78
+ // return (
79
+ // <Button rightIcon='thumbs-up' ctaText='I am a button'>
80
+ // </Button>
81
+ // )
82
+ // }
83
+
84
+ // WithIconRight.story = {
85
+ // name: 'With Icon (right)',
86
+ // }
87
+
88
+ // export const WithIconLeft = () => {
89
+ // return (
90
+ // <Button leftIcon='sign-in' ctaText='I am a button'>
91
+ // </Button>
92
+ // )
93
+ // }
94
+
95
+ // WithIconLeft.story = {
96
+ // name: 'With Icon (left)',
97
+ // }
98
+
99
+ // export const WithBothIcons = () => {
100
+ // return (
101
+ // <Button leftIcon='star' rightIcon='star' ctaText='I am a button'>
102
+ // </Button>
103
+ // )
104
+ // }
105
+
106
+ // export const ButtonAsExternalLink = () => {
107
+ // return (
108
+ // <Button as='a-external' ctaText='I am a button'>
109
+ // </Button>
110
+ // )
111
+ // }
112
+
113
+ // ButtonAsExternalLink.story = {
114
+ // name: 'Button as external link',
115
+ // }
116
+
117
+ // export const ButtonAsSemanticHtmlButton = () => {
118
+ // return (
119
+ // <Button as='button' htmlType='button' ctaText='I am a button' url='/'>
120
+ // </Button>
121
+ // )
122
+ // }
123
+
124
+ // ButtonAsSemanticHtmlButton.story = {
125
+ // name: 'Button as semantic html button',
126
+ // }
127
+
128
+ // export const ButtonAsSemanticHtmlSubmitButton = () => {
129
+ // return (
130
+ // <Button as='button' htmlType='submit' ctaText='I am a button'>
131
+ // </Button>
132
+ // )
133
+ // }
134
+
135
+ // ButtonAsSemanticHtmlSubmitButton.story = {
136
+ // name: 'Button as semantic html submit button',
137
+ // }
138
+
139
+ // export const ButtonAsInternalLink = () => {
140
+ // return (
141
+ // <Button as='Link' ctaText='I am a button' url='/'>
142
+ // </Button>
143
+ // )
144
+ // }
145
+
146
+ // ButtonAsInternalLink.story = {
147
+ // name: 'Button as internal link',
148
+ // }
149
+
150
+ // export const WithOnClickMethod = () => {
151
+ // return (
152
+ // <Button ctaText='I am a button' onClick={action('button-click')}>
153
+ // </Button>
154
+ // )
155
+ // }
156
+
157
+ // WithOnClickMethod.story = {
158
+ // name: 'With onClick method',
159
+ // }
@@ -0,0 +1 @@
1
+ hello this is an icon
@@ -0,0 +1,26 @@
1
+ import Icon from '../Icon/Icon'
2
+
3
+ const Button = ({
4
+ ctaText,
5
+ ctaLink,
6
+ className,
7
+ onClick,
8
+ leftIcon,
9
+ rightIcon,
10
+ }) => {
11
+ let classes = className + ' py-2 px-8 rounded-lg text-black border-2 border-black border-gray-300 bg-white hover:bg-red hover:text-black transition-background-color duration-500 transform'
12
+ let iconLeft = <Icon type={leftIcon}></Icon>
13
+ let iconRight = <Icon type={rightIcon}></Icon>
14
+ return (
15
+ <button
16
+ className={classes}
17
+ onClick={onClick}
18
+ >
19
+ {leftIcon && iconLeft}
20
+ {ctaText}
21
+ {rightIcon && iconRight}
22
+ </button>
23
+ )
24
+ }
25
+
26
+ export default Button
@@ -0,0 +1,144 @@
1
+ import React from 'react'
2
+ import { action } from '@storybook/addon-actions'
3
+ import Readme from './README.md'
4
+ import Button from './Button'
5
+ import '../../index.css';
6
+
7
+ export default {
8
+ title: 'Components/Button',
9
+ argTypes: {
10
+ label: {
11
+ name: 'Text',
12
+ control: { type: 'text' },
13
+ defaultValue: 'Shop Now',
14
+ },
15
+ type: {
16
+ name: 'Type',
17
+ defaultValue: 'primary',
18
+ options: ['primary', 'secondary', 'ghost'],
19
+ control: { type: 'select' },
20
+ },
21
+ iconPlacement: {
22
+ name: 'Icon',
23
+ defaultValue: 'none',
24
+ options: ['left', 'right', 'both', 'none'],
25
+ control: { type: 'select' },
26
+ },
27
+ padded: {
28
+ name: 'Padded',
29
+ control: { type: 'boolean' },
30
+ defaultValue: false,
31
+ },
32
+ social: {
33
+ name: 'Social',
34
+ defaultValue: 'None',
35
+ options: ['Facebook', 'Twitter', 'Whatsapp', 'None'],
36
+ control: { type: 'select' },
37
+ },
38
+ },
39
+ decorators: [(story) => <div className={`p-4`}>{story()}</div>],
40
+
41
+ parameters: {
42
+ readme: {
43
+ sidebar: Readme,
44
+ },
45
+ },
46
+ }
47
+
48
+ export const _Button = (args) => {
49
+ return (
50
+ <Button ctaText='I am a button'>
51
+ </Button>
52
+ )
53
+ }
54
+
55
+ export const SecondaryButton = () => {
56
+ return (
57
+ <Button ctaText='I am a button'>
58
+ </Button>
59
+ )
60
+ }
61
+
62
+ export const WithIconRight = () => {
63
+ return (
64
+ <Button rightIcon='thumbs-up' ctaText='I am a button'>
65
+ </Button>
66
+ )
67
+ }
68
+
69
+ WithIconRight.story = {
70
+ name: 'With Icon (right)',
71
+ }
72
+
73
+ export const WithIconLeft = () => {
74
+ return (
75
+ <Button leftIcon='sign-in' ctaText='I am a button'>
76
+ </Button>
77
+ )
78
+ }
79
+
80
+ WithIconLeft.story = {
81
+ name: 'With Icon (left)',
82
+ }
83
+
84
+ export const WithBothIcons = () => {
85
+ return (
86
+ <Button leftIcon='star' rightIcon='star' ctaText='I am a button'>
87
+ </Button>
88
+ )
89
+ }
90
+
91
+ export const ButtonAsExternalLink = () => {
92
+ return (
93
+ <Button as='a-external' ctaText='I am a button'>
94
+ </Button>
95
+ )
96
+ }
97
+
98
+ ButtonAsExternalLink.story = {
99
+ name: 'Button as external link',
100
+ }
101
+
102
+ export const ButtonAsSemanticHtmlButton = () => {
103
+ return (
104
+ <Button as='button' htmlType='button' ctaText='I am a button' url='/'>
105
+ </Button>
106
+ )
107
+ }
108
+
109
+ ButtonAsSemanticHtmlButton.story = {
110
+ name: 'Button as semantic html button',
111
+ }
112
+
113
+ export const ButtonAsSemanticHtmlSubmitButton = () => {
114
+ return (
115
+ <Button as='button' htmlType='submit' ctaText='I am a button'>
116
+ </Button>
117
+ )
118
+ }
119
+
120
+ ButtonAsSemanticHtmlSubmitButton.story = {
121
+ name: 'Button as semantic html submit button',
122
+ }
123
+
124
+ export const ButtonAsInternalLink = () => {
125
+ return (
126
+ <Button as='Link' ctaText='I am a button' url='/'>
127
+ </Button>
128
+ )
129
+ }
130
+
131
+ ButtonAsInternalLink.story = {
132
+ name: 'Button as internal link',
133
+ }
134
+
135
+ export const WithOnClickMethod = () => {
136
+ return (
137
+ <Button ctaText='I am a button' onClick={action('button-click')}>
138
+ </Button>
139
+ )
140
+ }
141
+
142
+ WithOnClickMethod.story = {
143
+ name: 'With onClick method',
144
+ }
@@ -0,0 +1 @@
1
+ hello this is an icon
@@ -0,0 +1,26 @@
1
+ import Icon from '../Icon/Icon'
2
+ import './Styles.css';
3
+ const ButtonSlide = ({
4
+ ctaText,
5
+ ctaLink,
6
+ className,
7
+ onClick,
8
+ leftIcon,
9
+ rightIcon,
10
+ }) => {
11
+ let classes = className + ' btn py-2 px-8 text-white border-2 bg-black hover:bg-white hover:text-black'
12
+ let iconLeft = <Icon type={leftIcon}></Icon>
13
+ let iconRight = <Icon type={rightIcon}></Icon>
14
+ return (
15
+ <button
16
+ className={classes}
17
+ onClick={onClick}
18
+ >
19
+ {leftIcon && iconLeft}
20
+ {ctaText}
21
+ {rightIcon && iconRight}
22
+ </button>
23
+ )
24
+ }
25
+
26
+ export default ButtonSlide
@@ -0,0 +1,144 @@
1
+ import React from 'react'
2
+ import { action } from '@storybook/addon-actions'
3
+ import Readme from './README.md'
4
+ import ButtonSlide from './ButtonSlide'
5
+ import '../../index.css';
6
+
7
+ export default {
8
+ title: 'Components/ButtonSlide',
9
+ argTypes: {
10
+ label: {
11
+ name: 'Text',
12
+ control: { type: 'text' },
13
+ defaultValue: 'Shop Now',
14
+ },
15
+ type: {
16
+ name: 'Type',
17
+ defaultValue: 'primary',
18
+ options: ['primary', 'secondary', 'ghost'],
19
+ control: { type: 'select' },
20
+ },
21
+ iconPlacement: {
22
+ name: 'Icon',
23
+ defaultValue: 'none',
24
+ options: ['left', 'right', 'both', 'none'],
25
+ control: { type: 'select' },
26
+ },
27
+ padded: {
28
+ name: 'Padded',
29
+ control: { type: 'boolean' },
30
+ defaultValue: false,
31
+ },
32
+ social: {
33
+ name: 'Social',
34
+ defaultValue: 'None',
35
+ options: ['Facebook', 'Twitter', 'Whatsapp', 'None'],
36
+ control: { type: 'select' },
37
+ },
38
+ },
39
+ decorators: [(story) => <div className={`p-4`}>{story()}</div>],
40
+
41
+ parameters: {
42
+ readme: {
43
+ sidebar: Readme,
44
+ },
45
+ },
46
+ }
47
+
48
+ export const _Button = (args) => {
49
+ return (
50
+ <ButtonSlide ctaText='READ MORE'>
51
+ </ButtonSlide>
52
+ )
53
+ }
54
+
55
+ export const SecondaryButton = () => {
56
+ return (
57
+ <ButtonSlide ctaText='I am a button'>
58
+ </ButtonSlide>
59
+ )
60
+ }
61
+
62
+ export const WithIconRight = () => {
63
+ return (
64
+ <ButtonSlide rightIcon='thumbs-up' ctaText='I am a button'>
65
+ </ButtonSlide>
66
+ )
67
+ }
68
+
69
+ WithIconRight.story = {
70
+ name: 'With Icon (right)',
71
+ }
72
+
73
+ export const WithIconLeft = () => {
74
+ return (
75
+ <ButtonSlide leftIcon='sign-in' ctaText='I am a button'>
76
+ </ButtonSlide>
77
+ )
78
+ }
79
+
80
+ WithIconLeft.story = {
81
+ name: 'With Icon (left)',
82
+ }
83
+
84
+ export const WithBothIcons = () => {
85
+ return (
86
+ <ButtonSlide leftIcon='star' rightIcon='star' ctaText='I am a button'>
87
+ </ButtonSlide>
88
+ )
89
+ }
90
+
91
+ export const ButtonAsExternalLink = () => {
92
+ return (
93
+ <ButtonSlide as='a-external' ctaText='I am a button'>
94
+ </ButtonSlide>
95
+ )
96
+ }
97
+
98
+ ButtonAsExternalLink.story = {
99
+ name: 'Button as external link',
100
+ }
101
+
102
+ export const ButtonAsSemanticHtmlButton = () => {
103
+ return (
104
+ <ButtonSlide as='button' htmlType='button' ctaText='I am a button' url='/'>
105
+ </ButtonSlide>
106
+ )
107
+ }
108
+
109
+ ButtonAsSemanticHtmlButton.story = {
110
+ name: 'Button as semantic html button',
111
+ }
112
+
113
+ export const ButtonAsSemanticHtmlSubmitButton = () => {
114
+ return (
115
+ <ButtonSlide as='button' htmlType='submit' ctaText='I am a button'>
116
+ </ButtonSlide>
117
+ )
118
+ }
119
+
120
+ ButtonAsSemanticHtmlSubmitButton.story = {
121
+ name: 'Button as semantic html submit button',
122
+ }
123
+
124
+ export const ButtonAsInternalLink = () => {
125
+ return (
126
+ <ButtonSlide as='Link' ctaText='I am a button' url='/'>
127
+ </ButtonSlide>
128
+ )
129
+ }
130
+
131
+ ButtonAsInternalLink.story = {
132
+ name: 'Button as internal link',
133
+ }
134
+
135
+ export const WithOnClickMethod = () => {
136
+ return (
137
+ <ButtonSlide ctaText='I am a button' onClick={action('button-click')}>
138
+ </ButtonSlide>
139
+ )
140
+ }
141
+
142
+ WithOnClickMethod.story = {
143
+ name: 'With onClick method',
144
+ }
@@ -0,0 +1 @@
1
+ hello this is an icon
@@ -0,0 +1,25 @@
1
+ .btn {
2
+ border: 1px solid black;
3
+ -webkit-transform: translate3d(0, 0, 0);
4
+ transform: translate3d(0, 0, 0);
5
+ -webkit-transition: all 1s cubic-bezier(0.455, 0.03, 0.515, 0.955);
6
+ transition: all 1s cubic-bezier(0.455, 0.03, 0.515, 0.955);
7
+ cursor: pointer;
8
+ }
9
+ .btn:after {
10
+ position: absolute;
11
+ top: 0;
12
+ left: 0;
13
+ height: 100%;
14
+ width: 0;
15
+ background: #FFF;
16
+ border: 1px white;
17
+ content: '';
18
+ z-index: -1;
19
+ -webkit-transition: all 1s cubic-bezier(0.785, 0.135, 0.15, 0.86);
20
+ transition: all 1s cubic-bezier(0.785, 0.135, 0.15, 0.86);
21
+ will-change: width;
22
+ }
23
+ .btn:hover:after {
24
+ width: 100%;
25
+ }
@@ -0,0 +1,67 @@
1
+ import Button from "../Button/Button"
2
+ import ButtonSlide from "../ButtonSlide/ButtonSlide"
3
+
4
+ const Card = ({
5
+ id,
6
+ title,
7
+ image,
8
+ subTitle,
9
+ description,
10
+ extraText,
11
+ hasCta,
12
+ ctaText,
13
+ imageBelowTitle,
14
+ titleClass,
15
+ imageClass,
16
+ subTitleClass,
17
+ extraTextClass,
18
+ descriptionClass,
19
+ classNames,
20
+ altText,
21
+ btnType,
22
+ rounded,
23
+ }) => {
24
+ let imageWrapperClass
25
+ let titleWrapperClass = 'p-3'
26
+ let contentWrapperClass = 'px-3'
27
+ let btnClass = 'w-full p-3'
28
+ let classList = 'flex flex-col border border-grey border-opacity-100 bg-white w-auto max-w-md '
29
+
30
+ classList += classNames ? classNames : ''
31
+ imageWrapperClass = imageBelowTitle ? imageWrapperClass + ' order-2' : imageWrapperClass
32
+ titleWrapperClass = imageBelowTitle ? titleWrapperClass + ' order-1' : titleWrapperClass
33
+ contentWrapperClass = imageBelowTitle ? contentWrapperClass + ' order-3' : contentWrapperClass
34
+ btnClass = imageBelowTitle ? btnClass + ' order-4' : btnClass
35
+ imageWrapperClass = rounded ? imageWrapperClass + ' rounded-t-lg' : imageWrapperClass
36
+ classList = rounded ? classList + ' rounded-lg' : classList
37
+ imageClass += imageBelowTitle ? '' : rounded ? ' rounded-t-lg' : ''
38
+
39
+ return (
40
+ <div id={id} className={classList}>
41
+ {image &&
42
+ <div className={imageWrapperClass && imageWrapperClass}>
43
+ <img className={imageClass} src={image} alt={altText}/>
44
+ </div>
45
+ }
46
+ <div className={titleWrapperClass}>
47
+ <h1 className={titleClass}>{title}</h1>
48
+ </div>
49
+ <div className={contentWrapperClass}>
50
+ <h2 className={subTitleClass && subTitleClass}>{subTitle}</h2>
51
+ <h2 className={extraTextClass && extraTextClass}>{extraText}</h2>
52
+ <h6 className={descriptionClass && descriptionClass}>{description}</h6>
53
+ </div>
54
+ {hasCta &&
55
+ <div className={btnClass}>
56
+ {btnType !== 'slide' ?
57
+ <Button className='w-full' ctaText={ctaText} ></Button>
58
+ :
59
+ <ButtonSlide className='w-full' ctaText={ctaText}></ButtonSlide>
60
+ }
61
+ </div>
62
+ }
63
+ </div>
64
+ )
65
+ }
66
+
67
+ export default Card