@npm_leadtech/legal-lib-components 5.39.11 → 5.40.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 (67) hide show
  1. package/dist/css/styles.css +203 -89
  2. package/dist/images/svg/back-element-sign-01.svg +9 -0
  3. package/dist/images/svg/back-element-sign-02.svg +9 -0
  4. package/dist/images/svg/back-element-sign-03.svg +9 -0
  5. package/dist/src/components/atoms/Radio/Radio.d.ts +2 -2
  6. package/dist/src/components/atoms/Radio/Radio.js +15 -16
  7. package/dist/src/components/atoms/Radio/Radio.scss +185 -103
  8. package/dist/src/components/atoms/Radio/Radio.tsx +34 -38
  9. package/dist/src/components/atoms/Radio/RadioProps.types.d.ts +3 -9
  10. package/dist/src/components/atoms/Radio/RadioProps.types.js +1 -6
  11. package/dist/src/components/atoms/Radio/RadioProps.types.ts +3 -10
  12. package/dist/src/components/atoms/Radio/index.d.ts +1 -1
  13. package/dist/src/components/atoms/Radio/index.js +0 -1
  14. package/dist/src/components/atoms/Radio/index.ts +1 -1
  15. package/dist/src/components/atoms/TagRatafiaItem/TagRatafiaItem.js +7 -2
  16. package/dist/src/components/atoms/TagRatafiaItem/TagRatafiaItem.styled.js +15 -0
  17. package/dist/src/components/atoms/TagRatafiaItem/TagRatafiaItem.styled.ts +15 -0
  18. package/dist/src/components/atoms/TagRatafiaItem/TagRatafiaItem.tsx +11 -4
  19. package/dist/src/components/atoms/TagRatafiaItem/TagRatafiaItemProps.types.d.ts +1 -0
  20. package/dist/src/components/atoms/TagRatafiaItem/TagRatafiaItemProps.types.ts +1 -0
  21. package/dist/src/components/molecules/RatafiaSubscriptionCard/RatafiaSubscriptionCard.js +2 -2
  22. package/dist/src/components/molecules/RatafiaSubscriptionCard/RatafiaSubscriptionCard.tsx +3 -4
  23. package/dist/src/components/molecules/RatafiaSubscriptionCard/RatafiaSubscriptionCardProps.types.d.ts +1 -1
  24. package/dist/src/components/molecules/RatafiaSubscriptionCard/RatafiaSubscriptionCardProps.types.ts +1 -1
  25. package/dist/src/components/molecules/TagsRatafiaList/TagsRatafiaList.js +2 -2
  26. package/dist/src/components/molecules/TagsRatafiaList/TagsRatafiaList.tsx +2 -2
  27. package/dist/src/components/molecules/TagsRatafiaList/TagsRatafiaListProps.types.d.ts +1 -0
  28. package/dist/src/components/molecules/TagsRatafiaList/TagsRatafiaListProps.types.ts +1 -0
  29. package/dist/src/components/organisms/JumbotronEsignatureContent/JumbotronEsignatureContent.d.ts +4 -0
  30. package/dist/src/components/organisms/JumbotronEsignatureContent/JumbotronEsignatureContent.js +7 -0
  31. package/dist/src/components/organisms/JumbotronEsignatureContent/JumbotronEsignatureContent.styled.d.ts +1 -0
  32. package/dist/src/components/organisms/JumbotronEsignatureContent/JumbotronEsignatureContent.styled.js +28 -0
  33. package/dist/src/components/organisms/JumbotronEsignatureContent/JumbotronEsignatureContent.styled.ts +29 -0
  34. package/dist/src/components/organisms/JumbotronEsignatureContent/JumbotronEsignatureContent.tsx +19 -0
  35. package/dist/src/components/organisms/JumbotronEsignatureContent/JumbotronEsignatureContentProps.types.d.ts +7 -0
  36. package/dist/src/components/organisms/JumbotronEsignatureContent/JumbotronEsignatureContentProps.types.js +1 -0
  37. package/dist/src/components/organisms/JumbotronEsignatureContent/JumbotronEsignatureContentProps.types.ts +8 -0
  38. package/dist/src/components/organisms/JumbotronEsignatureContent/index.d.ts +2 -0
  39. package/dist/src/components/organisms/JumbotronEsignatureContent/index.js +1 -0
  40. package/dist/src/components/organisms/JumbotronEsignatureContent/index.ts +2 -0
  41. package/dist/src/components/organisms/JumbotronRatafiaContent/JumbotronRatafiaContent.js +2 -2
  42. package/dist/src/components/organisms/JumbotronRatafiaContent/JumbotronRatafiaContent.tsx +2 -2
  43. package/dist/src/components/organisms/JumbotronRatafiaContent/JumbotronRatafiaContentProps.types.d.ts +2 -1
  44. package/dist/src/components/organisms/JumbotronRatafiaContent/JumbotronRatafiaContentProps.types.ts +2 -1
  45. package/dist/src/components/organisms/index.d.ts +1 -0
  46. package/dist/src/components/organisms/index.js +1 -0
  47. package/dist/src/components/organisms/index.ts +1 -0
  48. package/dist/src/components/pages/EsignatureLandingPage/EsignatureLandingPage.d.ts +3 -0
  49. package/dist/src/components/pages/EsignatureLandingPage/EsignatureLandingPage.js +5 -0
  50. package/dist/src/components/pages/EsignatureLandingPage/EsignatureLandingPage.tsx +15 -0
  51. package/dist/src/components/pages/EsignatureLandingPage/EsignatureLandingPageProps.types.d.ts +7 -0
  52. package/dist/src/components/pages/EsignatureLandingPage/EsignatureLandingPageProps.types.js +1 -0
  53. package/dist/src/components/pages/EsignatureLandingPage/EsignatureLandingPageProps.types.ts +8 -0
  54. package/dist/src/components/pages/EsignatureLandingPage/index.d.ts +2 -0
  55. package/dist/src/components/pages/EsignatureLandingPage/index.js +2 -0
  56. package/dist/src/components/pages/EsignatureLandingPage/index.ts +2 -0
  57. package/dist/src/components/pages/index.d.ts +1 -0
  58. package/dist/src/components/pages/index.js +1 -0
  59. package/dist/src/components/pages/index.ts +1 -0
  60. package/dist/src/components/sections/JumbotronRatafiaSection/JumbotronRatafiaSection.js +20 -2
  61. package/dist/src/components/sections/JumbotronRatafiaSection/JumbotronRatafiaSection.styled.js +19 -0
  62. package/dist/src/components/sections/JumbotronRatafiaSection/JumbotronRatafiaSection.styled.ts +19 -0
  63. package/dist/src/components/sections/JumbotronRatafiaSection/JumbotronRatafiaSection.tsx +43 -6
  64. package/dist/src/components/sections/JumbotronRatafiaSection/JumbotronRatafiaSectionProps.types.d.ts +3 -2
  65. package/dist/src/components/sections/JumbotronRatafiaSection/JumbotronRatafiaSectionProps.types.ts +3 -2
  66. package/dist/tsconfig.build.tsbuildinfo +1 -1
  67. package/package.json +2 -1
@@ -1,59 +1,110 @@
1
1
  @import '../../../globalStyles/variables.scss';
2
2
  @import '../../../globalStyles/mediaqueries.scss';
3
3
 
4
- @mixin defaultStyles {
4
+ @mixin regularStyles {
5
5
  .e-radio__inner {
6
6
  display: flex;
7
- flex-direction: column;
8
- gap: 1rem;
9
- .radio-item-container {
10
- .e-radio-label {
11
- display: flex;
12
- align-items: center;
13
- gap: 0.5rem;
14
-
15
- input[type='radio']:after {
16
- width: 16px;
17
- height: 16px;
18
- border-radius: 16px;
19
- top: -4px;
20
- left: -2px;
21
- position: relative;
22
- background-color: var(--others-white);
23
- content: '';
24
- display: inline-block;
25
- visibility: visible;
26
- border: 1px solid var(--neutral-neutral-1);
27
- cursor: pointer;
28
- }
7
+ flex-flow: row wrap;
8
+ width: 100%;
9
+ margin-left: 1.5rem;
29
10
 
30
- .e-radio-label__label {
31
- cursor: pointer;
32
- }
11
+ label {
12
+ margin-bottom: 0.25rem;
13
+ flex-basis: 100%;
14
+ display: flex;
15
+ align-items: center;
16
+ color: var(--neutral-main);
17
+ font-size: 16px;
18
+ position: relative;
19
+ cursor: pointer;
20
+ width: 100%;
21
+ }
22
+ }
23
+
24
+ input {
25
+ position: absolute;
26
+ left: -9999px;
27
+
28
+ &:not(:checked):hover + label {
29
+ &:before {
30
+ background-color: var(--primary-main-light-5);
33
31
  }
32
+ }
34
33
 
35
- &.active {
36
- .e-radio-label {
37
- input[type='radio']:after {
38
- border: 5px solid var(--primary-main);
39
- }
40
- .e-radio-label__label {
41
- color: var(--primary-main);
42
- }
43
- }
34
+ &:checked:hover + label {
35
+ &:before {
36
+ background-color: var(--primary-main);
44
37
  }
38
+ }
45
39
 
46
- &:hover {
47
- .e-radio-label {
48
- input[type='radio']:after {
49
- background-color: var(--primary-main-light-5);
50
- }
51
- }
40
+ &:checked + label {
41
+ color: var(--primary-main);
42
+ text-shadow:
43
+ -0.02ex 0 get-color(primary),
44
+ 0.02ex 0 var(--primary-main);
45
+
46
+ &:before {
47
+ content: '';
48
+ position: absolute;
49
+ top: 2px;
50
+ left: -23px;
51
+ height: 1.25rem;
52
+ width: 1.25rem;
53
+ background-color: var(--primary-main);
54
+ border: 1px solid var(--primary-main);
55
+ border-radius: 50%;
56
+ box-sizing: border-box;
57
+ }
58
+
59
+ &:after {
60
+ content: '';
61
+ position: absolute;
62
+ top: 0.5rem;
63
+ left: -17px;
64
+ display: block;
65
+ height: 0.5rem;
66
+ width: 0.5rem;
67
+ background: currentColor;
68
+ border-radius: 50%;
69
+ opacity: 1;
70
+ transform: scale(1);
71
+ color: #fff;
72
+ transition: all 0.1s;
52
73
  }
53
74
  }
54
75
 
55
- @include portrait-tablets {
56
- gap: 0.5rem;
76
+ + label {
77
+ cursor: pointer;
78
+ font-size: 16px;
79
+
80
+ &:before {
81
+ content: '';
82
+ position: absolute;
83
+ left: -23px;
84
+ top: 2px;
85
+ height: 1.25rem;
86
+ width: 1.25rem;
87
+ border-radius: 50%;
88
+ background-color: transparent;
89
+ border: 1px solid var(--neutral-main);
90
+ box-sizing: border-box;
91
+ }
92
+
93
+ &:after {
94
+ position: absolute;
95
+ top: 0.5rem;
96
+ left: -17px;
97
+ display: block;
98
+ height: 0.5rem;
99
+ width: 0.5rem;
100
+ opacity: 0;
101
+ transform: scale(0);
102
+ color: var(--others-white);
103
+ transition: all 0.1s;
104
+ content: '';
105
+ bottom: 0.5rem;
106
+ border-radius: 50%;
107
+ }
57
108
  }
58
109
  }
59
110
  }
@@ -127,69 +178,62 @@
127
178
  }
128
179
 
129
180
  @mixin iconStyles {
130
- .e-radio__inner {
131
- display: flex;
132
- flex-flow: row wrap;
133
- margin-top: 1.5rem;
181
+ .radio-icon {
182
+ display: none;
134
183
  }
184
+ @include portrait-tablets {
185
+ .e-radio__inner {
186
+ display: flex;
187
+ flex-flow: row wrap;
188
+ margin-top: 1.5rem;
189
+ }
135
190
 
136
- .radio-item-container {
137
- display: flex;
138
- width: 47%;
139
- border: 1px solid black;
140
- min-width: 80px;
141
- min-height: 3.5rem;
142
- margin-bottom: 0.5rem;
143
- border-radius: var(--global-border-radius);
144
- border-color: var(--neutral-neutral-4);
145
- cursor: pointer;
146
- }
191
+ .radio-item-container {
192
+ display: flex;
193
+ width: 47%;
194
+ border: 1px solid black;
195
+ min-width: 80px;
196
+ min-height: 3.5rem;
197
+ margin-bottom: 0.5rem;
198
+ border-radius: var(--global-border-radius);
199
+ border-color: var(--neutral-neutral-4);
200
+ cursor: pointer;
201
+ }
147
202
 
148
- .radio-item-container:not(:nth-child(2n + 0)) {
149
- margin-right: 0.5rem;
150
- }
203
+ .radio-item-container:not(:nth-child(2n + 0)) {
204
+ margin-right: 0.5rem;
205
+ }
151
206
 
152
- .radio-item-input {
153
- position: absolute;
154
- visibility: hidden;
155
- }
207
+ .radio-item-input {
208
+ position: absolute;
209
+ visibility: hidden;
210
+ }
156
211
 
157
- .radio-item-container.active {
158
- border: 2px solid var(--primary-main-dark-1);
159
- background-color: var(--neutral-neutral-5);
160
- }
212
+ .radio-item-container.active {
213
+ border: 2px solid var(--primary-main-dark-1);
214
+ background-color: var(--neutral-neutral-5);
215
+ }
161
216
 
162
- .radio-item-container:hover {
163
- background-color: var(--neutral-neutral-5);
164
- font-weight: bold;
165
- }
217
+ .radio-item-container:hover {
218
+ background-color: var(--neutral-neutral-5);
219
+ font-weight: bold;
220
+ }
166
221
 
167
- .e-radio-label {
168
- display: flex;
169
- align-items: center;
170
- padding: 0.25rem 1rem;
171
- width: 100%;
172
- }
222
+ .e-radio-label {
223
+ display: flex;
224
+ align-items: center;
225
+ padding: 0.25rem 1rem;
226
+ width: 100%;
227
+ }
173
228
 
174
- .radio-icon {
175
- display: block;
176
- margin-right: 1rem;
229
+ .radio-icon {
230
+ display: block;
231
+ margin-right: 1rem;
232
+ }
177
233
  }
178
234
  }
179
235
 
180
236
  .e-radio {
181
- .label {
182
- color: var(--neutral-neutral-1);
183
- margin-bottom: 1rem;
184
- display: block;
185
- }
186
-
187
- &.default {
188
- @include defaultStyles;
189
- }
190
-
191
- // por aqui
192
-
193
237
  label:first-child:not(.e-radio-label) {
194
238
  font-weight: bold;
195
239
  }
@@ -198,6 +242,17 @@
198
242
  width: 100%;
199
243
  }
200
244
 
245
+ &.--regular {
246
+ @media (max-width: #{$xs}) {
247
+ @include regularStyles;
248
+ }
249
+ &:not(.--icons) {
250
+ @media (min-width: #{$xs}) {
251
+ @include regularStyles;
252
+ }
253
+ }
254
+ }
255
+
201
256
  &.--tabs {
202
257
  @media (max-width: #{$xs}) {
203
258
  @include tabsStyles;
@@ -210,19 +265,21 @@
210
265
  }
211
266
 
212
267
  &.--icons {
213
- @include mobile {
214
- @include defaultStyles();
215
- }
216
- .radio-icon {
217
- display: none;
218
- }
219
- @include portrait-tablets {
220
- @include iconStyles;
221
- }
268
+ @include iconStyles;
222
269
  }
223
270
 
224
271
  &.--is-invalid,
225
272
  &.--group-invalid {
273
+ &.--regular {
274
+ input {
275
+ & + label {
276
+ &:before {
277
+ border-color: var(--error-main);
278
+ }
279
+ }
280
+ }
281
+ }
282
+
226
283
  &.--tabs,
227
284
  &.--group-invalid {
228
285
  .e-radio__inner {
@@ -244,6 +301,10 @@
244
301
  }
245
302
  }
246
303
 
304
+ .radio-group__label {
305
+ color: var(--neutral-neutral-1);
306
+ }
307
+
247
308
  .e-radio.radio--small.--tabs {
248
309
  input + label {
249
310
  font-size: 0.875rem;
@@ -255,3 +316,24 @@
255
316
  margin-bottom: 0;
256
317
  }
257
318
  }
319
+
320
+ .e-radio.radio--narrow.--regular {
321
+ .e-radio__inner {
322
+ margin-top: 0.5rem;
323
+ }
324
+ }
325
+
326
+ .e-radio.--regular.radio--regular--bare {
327
+ .e-radio__inner {
328
+ display: inline-block;
329
+ margin-right: auto;
330
+ text-align: left;
331
+ width: auto;
332
+ }
333
+
334
+ .e-radio-label,
335
+ .e-radio-label__label {
336
+ display: block;
337
+ margin-bottom: 0.75rem;
338
+ }
339
+ }
@@ -1,39 +1,35 @@
1
- import React from 'react'
1
+ import React, { type FC } from 'react'
2
2
 
3
- import { RadioFormat, type RadioProps } from './RadioProps.types'
4
3
  import IconImage from '../IconImage/IconImage'
4
+ import { type RadioProps } from './RadioProps.types'
5
5
  // import './Radio.scss'
6
6
 
7
- const Radio: React.FC<RadioProps> = ({
8
- class: className,
9
- format = RadioFormat.Default,
10
- validate = false,
11
- isValidGroup = false,
12
- tooltip,
13
- name,
14
- label,
15
- items,
16
- value,
17
- disabled = false,
18
- help,
19
- onChange
20
- }) => {
21
- const [classNameValue] = React.useState<string>(() => {
22
- let value = `e-radio ${format}`
23
- if (className) value += ` ${className}`
24
- if (!validate) value += ' --is-invalid'
25
- if (!isValidGroup) value += ' --group-invalid'
26
- return value
27
- })
7
+ const Radio: FC<RadioProps> = (props) => {
8
+ const optionalClassNames = {
9
+ small: 'radio--small',
10
+ narrow: 'radio--narrow',
11
+ regularBare: 'radio--regular--bare'
12
+ }
13
+
14
+ const additionalClassNames = Object.keys(optionalClassNames)
15
+ .filter((attribute) => props[attribute])
16
+ .map((key) => optionalClassNames[key])
17
+ .join(' ')
18
+
19
+ const classNames = `e-radio ${props.class} ${!props.validate ? '--is-invalid' : ''} ${
20
+ !props.isValidGroup ? '--group-invalid' : ''
21
+ } ${additionalClassNames}`
22
+ const TooltipObject = props.tooltip ? <p className='tooltip-form sans-serif --small'>{props.tooltip}</p> : ''
23
+
28
24
  return (
29
- <div className={classNameValue}>
30
- <label htmlFor={name} className='sans-serif --medium --bold-weight label'>
31
- {label}
25
+ <div className={classNames}>
26
+ <label htmlFor={props.name} className='radio-group__label'>
27
+ {props.label}
32
28
  </label>
33
29
  <div className={'e-radio__inner'}>
34
- {items.map((radio) => {
30
+ {props.items?.map((radio) => {
35
31
  return (
36
- <div className={`radio-item-container ${radio.value === value ? 'active' : ''}`} key={radio.value}>
32
+ <div className={`radio-item-container ${radio.value === props.value ? 'active' : ''}`} key={radio.value}>
37
33
  <label className='e-radio-label' key={radio.value}>
38
34
  {radio.iconName !== undefined && radio.iconName !== '' && (
39
35
  <IconImage givenClass='radio-icon' iconName={radio.iconName} />
@@ -41,27 +37,27 @@ const Radio: React.FC<RadioProps> = ({
41
37
  <input
42
38
  type='radio'
43
39
  className='radio-item-input'
44
- id={`${name}_${radio.value}`}
45
- name={name}
46
- onChange={onChange}
40
+ id={`${props.name}_${radio.value}`}
41
+ name={props.name}
42
+ onChange={props.onChange}
47
43
  value={radio.value}
48
- checked={radio.value === value}
49
- disabled={disabled}
44
+ checked={radio.value === props.value}
45
+ disabled={props.disabled}
50
46
  />
51
47
  <label
52
- className='e-radio-label__label sans-serif --medium'
53
- htmlFor={`${name}_${radio.value}`}
54
- data-qa={`${name}_${radio.value}`}
48
+ className='e-radio-label__label'
49
+ htmlFor={`${props.name}_${radio.value}`}
50
+ data-qa={`${props.name}_${radio.value}`}
55
51
  >
56
52
  {radio.label}
57
53
  </label>
58
- {help && <div>{help}</div>}
54
+ <div>{props.help}</div>
59
55
  </label>
60
56
  </div>
61
57
  )
62
58
  })}
63
59
  </div>
64
- {tooltip ?? <p className='tooltip-form sans-serif --small'>{tooltip}</p>}
60
+ {TooltipObject}
65
61
  </div>
66
62
  )
67
63
  }
@@ -1,24 +1,18 @@
1
1
  export interface RadioProps {
2
2
  id?: string;
3
- name: string;
3
+ name?: string;
4
4
  class?: string;
5
- format?: RadioFormat;
6
5
  value?: string;
7
6
  tooltip?: string;
8
- label: string;
7
+ label?: string;
9
8
  help?: string;
10
9
  validate?: boolean;
11
10
  isValidGroup?: boolean;
12
11
  disabled?: boolean;
13
- items: {
12
+ items?: {
14
13
  value: string;
15
14
  label: string;
16
15
  iconName?: string;
17
16
  }[];
18
17
  onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
19
18
  }
20
- export declare enum RadioFormat {
21
- Default = "default",
22
- Tabs = "--tabs",
23
- Icons = "--icons"
24
- }
@@ -1,6 +1 @@
1
- export var RadioFormat;
2
- (function (RadioFormat) {
3
- RadioFormat["Default"] = "default";
4
- RadioFormat["Tabs"] = "--tabs";
5
- RadioFormat["Icons"] = "--icons";
6
- })(RadioFormat || (RadioFormat = {}));
1
+ export {};
@@ -1,21 +1,14 @@
1
1
  export interface RadioProps {
2
2
  id?: string
3
- name: string
3
+ name?: string
4
4
  class?: string
5
- format?: RadioFormat
6
5
  value?: string
7
6
  tooltip?: string
8
- label: string
7
+ label?: string
9
8
  help?: string
10
9
  validate?: boolean
11
10
  isValidGroup?: boolean
12
11
  disabled?: boolean
13
- items: { value: string; label: string; iconName?: string }[]
12
+ items?: { value: string; label: string; iconName?: string }[]
14
13
  onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void
15
14
  }
16
-
17
- export enum RadioFormat {
18
- Default = 'default',
19
- Tabs = '--tabs',
20
- Icons = '--icons'
21
- }
@@ -1,2 +1,2 @@
1
1
  export { default as Radio } from './Radio';
2
- export * from './RadioProps.types';
2
+ export { type RadioProps } from './RadioProps.types';
@@ -1,2 +1 @@
1
1
  export { default as Radio } from './Radio';
2
- export * from './RadioProps.types';
@@ -1,2 +1,2 @@
1
1
  export { default as Radio } from './Radio'
2
- export * from './RadioProps.types'
2
+ export { type RadioProps } from './RadioProps.types'
@@ -1,6 +1,11 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { TagRatafiaItemStyled } from './TagRatafiaItem.styled';
3
- export const TagRatafiaItem = ({ icon, description }) => {
4
- return (_jsxs(TagRatafiaItemStyled, { className: 'tag-ratafia-item', children: [icon !== null && _jsx("div", { className: 'tag-ratafia-item__icon', children: icon }), _jsx("span", { className: 'sans-serif --small tag-ratafia-item__description', itemProp: 'text', children: description })] }));
3
+ export const TagRatafiaItem = ({ icon, description, type = 'ratafia' }) => {
4
+ const typeClasses = {
5
+ esignature: 'tag-esignature-item',
6
+ ratafia: 'tag-ratafia-item'
7
+ };
8
+ const styleClasses = typeClasses[type];
9
+ return (_jsxs(TagRatafiaItemStyled, { className: styleClasses, children: [icon !== null && _jsx("div", { className: `${styleClasses}__icon'`, children: icon }), _jsx("span", { className: `sans-serif --small ${styleClasses}__description`, itemProp: 'text', children: description })] }));
5
10
  };
6
11
  export default TagRatafiaItem;
@@ -9,6 +9,10 @@ export const TagRatafiaItemStyled = styled.div `
9
9
  gap: 0.25rem;
10
10
  padding: 0.25rem 0.5rem;
11
11
 
12
+ &.tag-esignature-item {
13
+ background: var(--primary-main-dark-1);
14
+ }
15
+
12
16
  .tag-ratafia-item {
13
17
  &__icon {
14
18
  height: 16px;
@@ -19,4 +23,15 @@ export const TagRatafiaItemStyled = styled.div `
19
23
  color: var(--primary-main-dark-2);
20
24
  }
21
25
  }
26
+
27
+ .tag-esignature-item {
28
+ &__icon {
29
+ height: 16px;
30
+ width: 16px;
31
+ }
32
+ &__description {
33
+ font-weight: 700;
34
+ color: var(--primary-main-light-6);
35
+ }
36
+ }
22
37
  `;
@@ -10,6 +10,10 @@ export const TagRatafiaItemStyled = styled.div`
10
10
  gap: 0.25rem;
11
11
  padding: 0.25rem 0.5rem;
12
12
 
13
+ &.tag-esignature-item {
14
+ background: var(--primary-main-dark-1);
15
+ }
16
+
13
17
  .tag-ratafia-item {
14
18
  &__icon {
15
19
  height: 16px;
@@ -20,4 +24,15 @@ export const TagRatafiaItemStyled = styled.div`
20
24
  color: var(--primary-main-dark-2);
21
25
  }
22
26
  }
27
+
28
+ .tag-esignature-item {
29
+ &__icon {
30
+ height: 16px;
31
+ width: 16px;
32
+ }
33
+ &__description {
34
+ font-weight: 700;
35
+ color: var(--primary-main-light-6);
36
+ }
37
+ }
23
38
  `
@@ -3,11 +3,18 @@ import React from 'react'
3
3
  import { type TagRatafiaItemProps } from './TagRatafiaItemProps.types'
4
4
  import { TagRatafiaItemStyled } from './TagRatafiaItem.styled'
5
5
 
6
- export const TagRatafiaItem: React.FC<TagRatafiaItemProps> = ({ icon, description }) => {
6
+ export const TagRatafiaItem: React.FC<TagRatafiaItemProps> = ({ icon, description, type = 'ratafia' }) => {
7
+ const typeClasses = {
8
+ esignature: 'tag-esignature-item',
9
+ ratafia: 'tag-ratafia-item'
10
+ }
11
+
12
+ const styleClasses = typeClasses[type]
13
+
7
14
  return (
8
- <TagRatafiaItemStyled className={'tag-ratafia-item'}>
9
- {icon !== null && <div className={'tag-ratafia-item__icon'}>{icon}</div>}
10
- <span className='sans-serif --small tag-ratafia-item__description' itemProp='text'>
15
+ <TagRatafiaItemStyled className={styleClasses}>
16
+ {icon !== null && <div className={`${styleClasses}__icon'`}>{icon}</div>}
17
+ <span className={`sans-serif --small ${styleClasses}__description`} itemProp='text'>
11
18
  {description}
12
19
  </span>
13
20
  </TagRatafiaItemStyled>
@@ -2,4 +2,5 @@ export interface TagRatafiaItemProps {
2
2
  id: string;
3
3
  description: React.ReactNode;
4
4
  icon?: React.ReactNode;
5
+ type?: string;
5
6
  }
@@ -2,4 +2,5 @@ export interface TagRatafiaItemProps {
2
2
  id: string
3
3
  description: React.ReactNode
4
4
  icon?: React.ReactNode
5
+ type?: string
5
6
  }
@@ -2,11 +2,11 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Button, IconSvgURLWithThemeColor, RichTextStrapi } from '../../atoms';
3
3
  import { RatafiaSubscriptionCardStyled } from './RatafiaSubscriptionCard.styled';
4
4
  import { stringSlugify } from '../../../utils/stringSlugify';
5
- const RatafiaSubscriptionCard = ({ cardStyle = 'primary', iconTitle, title, priceText, mainFeatures, AIFeatures, buttonText, handleClick }) => {
5
+ const RatafiaSubscriptionCard = ({ cardStyle, iconTitle, title, priceText, mainFeatures, AIFeatures, buttonText, linkText }) => {
6
6
  if (!title)
7
7
  return null;
8
8
  const buttonStyle = cardStyle === 'Secondary' ? 'primary3' : 'primary';
9
9
  const renderFeatures = (features, className) => features.map((feature) => (_jsxs("div", { className: `ratafia-card__feature ${className ?? ''}`, children: [feature.image?.url && _jsx(IconSvgURLWithThemeColor, { url: feature.image.url, height: '16', width: '16' }), _jsx(RichTextStrapi, { html: feature.title })] }, feature.title)));
10
- return (_jsxs(RatafiaSubscriptionCardStyled, { className: `ratafia-card ${cardStyle ? stringSlugify(cardStyle) : 'primary'}`, children: [_jsxs("div", { className: 'ratafia-card__header', children: [title && (_jsxs("div", { className: 'ratafia-card__title', children: [iconTitle?.url && _jsx(IconSvgURLWithThemeColor, { url: iconTitle.url, height: '26', width: '26' }), _jsx(RichTextStrapi, { html: title })] })), priceText && _jsx("div", { className: 'ratafia-card__price-text', children: priceText })] }), _jsx("hr", {}), _jsxs("div", { className: 'ratafia-card__body', children: [mainFeatures && renderFeatures(mainFeatures, 'main-feature'), AIFeatures && renderFeatures(AIFeatures, 'ratafia-feature')] }), buttonText && (_jsx("div", { className: 'ratafia-card__footer', children: _jsx(Button, { dataQa: 'ratafia-card-button', givenClass: 'ratafia-card__button', color: buttonStyle, label: buttonText, noLink: true, onClick: handleClick }) }))] }));
10
+ return (_jsxs(RatafiaSubscriptionCardStyled, { className: `ratafia-card ${cardStyle ? stringSlugify(cardStyle) : 'primary'}`, children: [_jsxs("div", { className: 'ratafia-card__header', children: [title && (_jsxs("div", { className: 'ratafia-card__title', children: [iconTitle?.url && _jsx(IconSvgURLWithThemeColor, { url: iconTitle.url, height: '26', width: '26' }), _jsx(RichTextStrapi, { html: title })] })), priceText && _jsx("div", { className: 'ratafia-card__price-text', children: priceText })] }), _jsx("hr", {}), _jsxs("div", { className: 'ratafia-card__body', children: [mainFeatures && renderFeatures(mainFeatures, 'main-feature'), AIFeatures && renderFeatures(AIFeatures, 'ratafia-feature')] }), buttonText && (_jsx("div", { className: 'ratafia-card__footer', children: _jsx(Button, { dataQa: 'ratafia-card-button', givenClass: 'ratafia-card__button', color: buttonStyle, label: buttonText, link: linkText ?? '#' }) }))] }));
11
11
  };
12
12
  export default RatafiaSubscriptionCard;