@npm_leadtech/legal-lib-components 5.2.17 → 5.2.19
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.
- package/dist/css/styles.css +112 -24
- package/dist/images/svg/arrow-right-24px-outlined.svg +3 -0
- package/dist/src/components/atoms/CardPane/CardPane.scss +1 -20
- package/dist/src/components/atoms/CardPane/CardPaneInfo.js +4 -5
- package/dist/src/components/atoms/CardPane/CardPaneInfo.tsx +3 -14
- package/dist/src/components/atoms/CardPane/CardPaneProps.types.d.ts +0 -1
- package/dist/src/components/atoms/CardPane/CardPaneProps.types.ts +0 -1
- package/dist/src/components/molecules/Article/Article.js +3 -2
- package/dist/src/components/molecules/Article/Article.scss +17 -0
- package/dist/src/components/molecules/Article/Article.tsx +17 -2
- package/dist/src/components/molecules/Article/ArticleProps.types.d.ts +1 -0
- package/dist/src/components/molecules/Article/ArticleProps.types.ts +1 -0
- package/dist/src/components/molecules/TrustworthyWebsites/TrustworthyWebsites.scss +1 -1
- package/dist/src/components/organisms/ArticlesList/ArticlesList.js +2 -2
- package/dist/src/components/organisms/ArticlesList/ArticlesList.tsx +2 -2
- package/dist/src/components/organisms/ArticlesList/ArticlesListProps.types.d.ts +1 -0
- package/dist/src/components/organisms/ArticlesList/ArticlesListProps.types.ts +1 -0
- package/dist/src/components/organisms/GuidelinesContent/GuidelinesContent.scss +8 -2
- package/dist/src/components/sections/AsSeeInSection/AsSeeInSection.js +2 -2
- package/dist/src/components/sections/AsSeeInSection/AsSeeInSection.scss +67 -1
- package/dist/src/components/sections/AsSeeInSection/AsSeeInSection.tsx +24 -1
- package/dist/src/components/sections/AsSeeInSection/AsSeeInSectionProps.types.d.ts +7 -0
- package/dist/src/components/sections/AsSeeInSection/AsSeeInSectionProps.types.ts +7 -0
- package/dist/src/components/sections/BlogSection/BlogSection.js +4 -3
- package/dist/src/components/sections/BlogSection/BlogSection.scss +21 -0
- package/dist/src/components/sections/BlogSection/BlogSection.tsx +9 -5
- package/dist/src/components/sections/BlogSection/BlogSectionProps.types.d.ts +2 -1
- package/dist/src/components/sections/BlogSection/BlogSectionProps.types.ts +2 -1
- package/dist/src/components/sections/PeopleSayAboutUsSection/PeopleSayAboutUsSection.scss +5 -0
- package/dist/src/custom.d.ts +1 -1
- package/package.json +1 -1
package/dist/css/styles.css
CHANGED
|
@@ -1283,7 +1283,6 @@ html[data-theme=lawdistrict] .e-button.--primary-3 {
|
|
|
1283
1283
|
}
|
|
1284
1284
|
.pane-wrapper:nth-child(2) {
|
|
1285
1285
|
text-align: right;
|
|
1286
|
-
padding-right: 0;
|
|
1287
1286
|
}
|
|
1288
1287
|
@media (min-width: 328px) and (max-width: 720px) {
|
|
1289
1288
|
.pane-wrapper:nth-child(2) {
|
|
@@ -1292,23 +1291,10 @@ html[data-theme=lawdistrict] .e-button.--primary-3 {
|
|
|
1292
1291
|
}
|
|
1293
1292
|
.pane-wrapper:nth-child(3) {
|
|
1294
1293
|
margin-top: 30px;
|
|
1295
|
-
padding-right: 0;
|
|
1296
1294
|
}
|
|
1297
|
-
.pane-wrapper:
|
|
1298
|
-
margin-top: 45px;
|
|
1299
|
-
text-align: right;
|
|
1295
|
+
.pane-wrapper:last-child {
|
|
1300
1296
|
padding-right: 0;
|
|
1301
1297
|
}
|
|
1302
|
-
@media (min-width: 328px) and (max-width: 720px) {
|
|
1303
|
-
.pane-wrapper:nth-child(4) {
|
|
1304
|
-
text-align: left;
|
|
1305
|
-
margin-top: 16px;
|
|
1306
|
-
}
|
|
1307
|
-
}
|
|
1308
|
-
.pane-wrapper:nth-child(4) .pane--title {
|
|
1309
|
-
font-size: 0.75rem;
|
|
1310
|
-
padding: 0;
|
|
1311
|
-
}
|
|
1312
1298
|
.pane-wrapper span {
|
|
1313
1299
|
display: block;
|
|
1314
1300
|
}
|
|
@@ -1317,8 +1303,6 @@ html[data-theme=lawdistrict] .e-button.--primary-3 {
|
|
|
1317
1303
|
text-indent: -0.625rem;
|
|
1318
1304
|
}
|
|
1319
1305
|
.pane--title {
|
|
1320
|
-
border: none;
|
|
1321
|
-
background: none;
|
|
1322
1306
|
color: var(--neutral-neutral-2);
|
|
1323
1307
|
font-size: 0.875rem;
|
|
1324
1308
|
line-height: 1.29;
|
|
@@ -1338,9 +1322,6 @@ html[data-theme=lawdistrict] .e-button.--primary-3 {
|
|
|
1338
1322
|
font-size: 0.875rem;
|
|
1339
1323
|
}
|
|
1340
1324
|
}
|
|
1341
|
-
.pane--title.pane--title--button {
|
|
1342
|
-
cursor: pointer;
|
|
1343
|
-
}
|
|
1344
1325
|
.pane--description {
|
|
1345
1326
|
color: var(--neutral-main);
|
|
1346
1327
|
font-size: 1rem;
|
|
@@ -4665,6 +4646,21 @@ html[data-theme=lawdistrict] .document-status.--is-new .icon {
|
|
|
4665
4646
|
margin-top: 0;
|
|
4666
4647
|
}
|
|
4667
4648
|
}
|
|
4649
|
+
.article .information .button-image-container {
|
|
4650
|
+
align-items: center;
|
|
4651
|
+
margin: 1rem 0 2rem 0;
|
|
4652
|
+
display: flex;
|
|
4653
|
+
}
|
|
4654
|
+
.article .information .button-image-container .thinner-letter {
|
|
4655
|
+
font-family: "Inter", sans-serif;
|
|
4656
|
+
font-size: 16px;
|
|
4657
|
+
font-weight: 400;
|
|
4658
|
+
line-height: 22px;
|
|
4659
|
+
letter-spacing: -0.3px;
|
|
4660
|
+
text-align: left;
|
|
4661
|
+
margin: 0;
|
|
4662
|
+
padding: 0 1rem 0 0;
|
|
4663
|
+
}
|
|
4668
4664
|
.base-box-group {
|
|
4669
4665
|
display: block;
|
|
4670
4666
|
}
|
|
@@ -6429,7 +6425,7 @@ html[data-theme=lawdistrict] .document-status.--is-new .icon {
|
|
|
6429
6425
|
}
|
|
6430
6426
|
.trustworthy-websites__image {
|
|
6431
6427
|
margin: 1.5rem;
|
|
6432
|
-
max-width:
|
|
6428
|
+
max-width: 7rem;
|
|
6433
6429
|
}
|
|
6434
6430
|
.type-modules-list {
|
|
6435
6431
|
display: flex;
|
|
@@ -6870,8 +6866,15 @@ html[data-theme=lawdistrict] .document-status.--is-new .icon {
|
|
|
6870
6866
|
}
|
|
6871
6867
|
.guidelines-section-main {
|
|
6872
6868
|
display: flex;
|
|
6873
|
-
flex-direction:
|
|
6869
|
+
flex-direction: column;
|
|
6874
6870
|
flex-wrap: nowrap;
|
|
6871
|
+
padding: 1.5rem;
|
|
6872
|
+
}
|
|
6873
|
+
@media (min-width: 960px) {
|
|
6874
|
+
.guidelines-section-main {
|
|
6875
|
+
flex-direction: row;
|
|
6876
|
+
padding: 0;
|
|
6877
|
+
}
|
|
6875
6878
|
}
|
|
6876
6879
|
.guidelines-section__texts {
|
|
6877
6880
|
flex-basis: 50%;
|
|
@@ -6928,7 +6931,7 @@ html[data-theme=lawdistrict] .document-status.--is-new .icon {
|
|
|
6928
6931
|
}
|
|
6929
6932
|
}
|
|
6930
6933
|
.guidelines-section__image.is-mobile {
|
|
6931
|
-
display:
|
|
6934
|
+
display: none;
|
|
6932
6935
|
}
|
|
6933
6936
|
@media (min-width: 720px) {
|
|
6934
6937
|
.guidelines-section__image.is-mobile {
|
|
@@ -7530,9 +7533,14 @@ html[data-theme=lawdistrict] .document-status.--is-new .icon {
|
|
|
7530
7533
|
flex-direction: column;
|
|
7531
7534
|
box-shadow: 0px 2px 6px 0px rgba(2, 55, 74, 0.25);
|
|
7532
7535
|
background: var(--others-white);
|
|
7533
|
-
transform: translateY(-
|
|
7536
|
+
transform: translateY(-5rem);
|
|
7534
7537
|
padding: 1.5rem 0;
|
|
7535
7538
|
}
|
|
7539
|
+
@media (min-width: 960px) {
|
|
7540
|
+
.as-seen-in-section-box .as-seen-in-section {
|
|
7541
|
+
transform: translateY(-50%);
|
|
7542
|
+
}
|
|
7543
|
+
}
|
|
7536
7544
|
.as-seen-in-section-box .as-seen-in-section__title {
|
|
7537
7545
|
text-align: center;
|
|
7538
7546
|
font-size: 32px;
|
|
@@ -7543,6 +7551,61 @@ html[data-theme=lawdistrict] .document-status.--is-new .icon {
|
|
|
7543
7551
|
letter-spacing: -0.3px;
|
|
7544
7552
|
margin: 1rem 0;
|
|
7545
7553
|
}
|
|
7554
|
+
.contact-us-section {
|
|
7555
|
+
display: flex;
|
|
7556
|
+
flex-direction: column;
|
|
7557
|
+
transform: translateY(-5rem);
|
|
7558
|
+
color: var(--neutral-neutral-1);
|
|
7559
|
+
margin-top: 1rem;
|
|
7560
|
+
}
|
|
7561
|
+
.contact-us-section__title {
|
|
7562
|
+
text-align: center;
|
|
7563
|
+
font-size: 32px;
|
|
7564
|
+
font-family: "Lora", serif;
|
|
7565
|
+
font-style: normal;
|
|
7566
|
+
font-weight: 400;
|
|
7567
|
+
line-height: 42px;
|
|
7568
|
+
letter-spacing: -0.3px;
|
|
7569
|
+
margin: 1rem 0;
|
|
7570
|
+
}
|
|
7571
|
+
.contact-us-section__text {
|
|
7572
|
+
text-align: center;
|
|
7573
|
+
font-style: normal;
|
|
7574
|
+
font-weight: 400;
|
|
7575
|
+
margin: 0 0 2rem 0;
|
|
7576
|
+
}
|
|
7577
|
+
.contact-us-section-blocks {
|
|
7578
|
+
display: flex;
|
|
7579
|
+
justify-content: center;
|
|
7580
|
+
flex-direction: column;
|
|
7581
|
+
gap: 1rem;
|
|
7582
|
+
}
|
|
7583
|
+
@media (min-width: 960px) {
|
|
7584
|
+
.contact-us-section-blocks {
|
|
7585
|
+
flex-direction: row;
|
|
7586
|
+
gap: 2.5rem;
|
|
7587
|
+
}
|
|
7588
|
+
}
|
|
7589
|
+
.contact-us-section-blocks__item {
|
|
7590
|
+
display: flex;
|
|
7591
|
+
flex-direction: column;
|
|
7592
|
+
align-items: center;
|
|
7593
|
+
background-color: white;
|
|
7594
|
+
box-shadow: 0px 2px 6px 0px rgba(2, 55, 74, 0.25);
|
|
7595
|
+
border-radius: 0.25rem;
|
|
7596
|
+
min-width: 200px;
|
|
7597
|
+
padding: 1rem;
|
|
7598
|
+
}
|
|
7599
|
+
.contact-us-section-blocks__item__image {
|
|
7600
|
+
width: 2rem;
|
|
7601
|
+
}
|
|
7602
|
+
.contact-us-section-blocks__item__title {
|
|
7603
|
+
margin-top: 1rem;
|
|
7604
|
+
line-height: 1rem;
|
|
7605
|
+
}
|
|
7606
|
+
.contact-us-section-blocks__item__text {
|
|
7607
|
+
font-size: 14px;
|
|
7608
|
+
}
|
|
7546
7609
|
.benefit-ratafia-section {
|
|
7547
7610
|
display: flex;
|
|
7548
7611
|
justify-content: center;
|
|
@@ -7611,6 +7674,16 @@ html[data-theme=lawdistrict] .document-status.--is-new .icon {
|
|
|
7611
7674
|
max-width: 1200px;
|
|
7612
7675
|
}
|
|
7613
7676
|
}
|
|
7677
|
+
.blog .blog__description {
|
|
7678
|
+
font-family: "Inter", sans-serif;
|
|
7679
|
+
font-size: 16px;
|
|
7680
|
+
font-weight: 400;
|
|
7681
|
+
line-height: 22px;
|
|
7682
|
+
letter-spacing: -0.3px;
|
|
7683
|
+
text-align: left;
|
|
7684
|
+
color: #6d7275;
|
|
7685
|
+
margin: 1rem 0 1.5rem 0;
|
|
7686
|
+
}
|
|
7614
7687
|
.blog .blog__title {
|
|
7615
7688
|
color: var(--primary-main-dark-1);
|
|
7616
7689
|
}
|
|
@@ -7619,6 +7692,15 @@ html[data-theme=lawdistrict] .document-status.--is-new .icon {
|
|
|
7619
7692
|
margin-bottom: 3rem;
|
|
7620
7693
|
}
|
|
7621
7694
|
}
|
|
7695
|
+
.blog .blog__title.category-product-title {
|
|
7696
|
+
margin-bottom: 0;
|
|
7697
|
+
font-family: "Inter", sans-serif;
|
|
7698
|
+
font-size: 28px;
|
|
7699
|
+
font-weight: 700;
|
|
7700
|
+
line-height: 32px;
|
|
7701
|
+
letter-spacing: -0.3px;
|
|
7702
|
+
text-align: left;
|
|
7703
|
+
}
|
|
7622
7704
|
.blog .cta-button {
|
|
7623
7705
|
width: 100%;
|
|
7624
7706
|
margin-top: 3rem;
|
|
@@ -8194,6 +8276,12 @@ html[data-theme=lawdistrict] .document-status.--is-new .icon {
|
|
|
8194
8276
|
width: 100%;
|
|
8195
8277
|
margin: 0 auto;
|
|
8196
8278
|
text-align: center;
|
|
8279
|
+
padding: 1.5rem;
|
|
8280
|
+
}
|
|
8281
|
+
@media (min-width: 960px) {
|
|
8282
|
+
.people-say {
|
|
8283
|
+
padding: 0;
|
|
8284
|
+
}
|
|
8197
8285
|
}
|
|
8198
8286
|
@media (min-width: 1200px) {
|
|
8199
8287
|
.people-say {
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M8.70531 0.705315C8.31578 0.31578 7.68422 0.31578 7.29468 0.705316C6.9054 1.0946 6.90511 1.72568 7.29405 2.11531L12.17 7H0.999999C0.447714 7 0 7.44772 0 8C0 8.55229 0.447715 9 1 9H12.17L7.29405 13.8847C6.90511 14.2743 6.9054 14.9054 7.29468 15.2947C7.68422 15.6842 8.31578 15.6842 8.70532 15.2947L15.2929 8.70711C15.6834 8.31658 15.6834 7.68342 15.2929 7.29289L8.70531 0.705315Z" fill="#078080"/>
|
|
3
|
+
</svg>
|
|
@@ -51,29 +51,16 @@
|
|
|
51
51
|
}
|
|
52
52
|
&:nth-child(2) {
|
|
53
53
|
text-align: right;
|
|
54
|
-
padding-right: 0;
|
|
55
54
|
@media (min-width: #{$xxs}) and (max-width: #{$sm}) {
|
|
56
55
|
text-align: left;
|
|
57
56
|
}
|
|
58
57
|
}
|
|
59
58
|
&:nth-child(3) {
|
|
60
59
|
margin-top: 30px;
|
|
61
|
-
padding-right: 0;
|
|
62
60
|
}
|
|
63
|
-
&:
|
|
64
|
-
margin-top: 45px;
|
|
65
|
-
text-align: right;
|
|
61
|
+
&:last-child {
|
|
66
62
|
padding-right: 0;
|
|
67
|
-
@media (min-width: #{$xxs}) and (max-width: #{$sm}) {
|
|
68
|
-
text-align: left;
|
|
69
|
-
margin-top: 16px;
|
|
70
|
-
}
|
|
71
|
-
.pane--title {
|
|
72
|
-
font-size: 0.75rem;
|
|
73
|
-
padding: 0;
|
|
74
|
-
}
|
|
75
63
|
}
|
|
76
|
-
|
|
77
64
|
span {
|
|
78
65
|
display: block;
|
|
79
66
|
&.marker {
|
|
@@ -83,8 +70,6 @@
|
|
|
83
70
|
}
|
|
84
71
|
}
|
|
85
72
|
&--title {
|
|
86
|
-
border: none;
|
|
87
|
-
background: none;
|
|
88
73
|
color: get-color(neutral, neutral-2);
|
|
89
74
|
font-size: 0.875rem;
|
|
90
75
|
line-height: 1.29;
|
|
@@ -97,10 +82,6 @@
|
|
|
97
82
|
@include laptop {
|
|
98
83
|
font-size: 0.875rem;
|
|
99
84
|
}
|
|
100
|
-
|
|
101
|
-
&.pane--title--button {
|
|
102
|
-
cursor: pointer;
|
|
103
|
-
}
|
|
104
85
|
}
|
|
105
86
|
&--description {
|
|
106
87
|
color: get-color(neutral);
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { jsx as _jsx,
|
|
2
|
-
const CardPaneInfo = ({ description, subdescription, id, title
|
|
3
|
-
const paneTitle = (_jsx(_Fragment, { children: handleClick ? (_jsx("button", { onClick: handleClick, className: 'pane--title pane--title--button', children: title })) : (_jsx("div", { className: 'pane--title', children: title })) }));
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
const CardPaneInfo = ({ description, subdescription, id, title }) => {
|
|
4
3
|
if (description === 'Active' || description === 'Inactive') {
|
|
5
4
|
let descriptionClass;
|
|
6
5
|
if (description === 'Active') {
|
|
@@ -9,8 +8,8 @@ const CardPaneInfo = ({ description, subdescription, id, title, handleClick }) =
|
|
|
9
8
|
else if (description === 'Inactive') {
|
|
10
9
|
descriptionClass = 'pane--description--inactive';
|
|
11
10
|
}
|
|
12
|
-
return (_jsxs("div", { className: 'pane-wrapper', children: [
|
|
11
|
+
return (_jsxs("div", { className: 'pane-wrapper', children: [_jsx("div", { className: 'pane--title', children: title }), _jsx("div", { "data-testid": 'description-div', className: descriptionClass, children: _jsx("li", { className: 'position', children: _jsx("div", { className: 'marker', children: description }) }) })] }, id));
|
|
13
12
|
}
|
|
14
|
-
return (_jsxs("div", { className: 'pane-wrapper', children: [
|
|
13
|
+
return (_jsxs("div", { className: 'pane-wrapper', children: [_jsx("div", { className: 'pane--title', children: title }), _jsxs("div", { className: 'pane--description', children: [description, subdescription !== undefined && _jsx("span", { className: 'pane--description--subdescription', children: subdescription })] })] }, id));
|
|
15
14
|
};
|
|
16
15
|
export default CardPaneInfo;
|
|
@@ -4,18 +4,7 @@ import React, { type FC } from 'react'
|
|
|
4
4
|
|
|
5
5
|
import { type CardPaneInfoProps } from './CardPaneProps.types'
|
|
6
6
|
|
|
7
|
-
const CardPaneInfo: FC<CardPaneInfoProps> = ({ description, subdescription, id, title
|
|
8
|
-
const paneTitle = (
|
|
9
|
-
<>
|
|
10
|
-
{handleClick ? (
|
|
11
|
-
<button onClick={handleClick} className='pane--title pane--title--button'>
|
|
12
|
-
{title}
|
|
13
|
-
</button>
|
|
14
|
-
) : (
|
|
15
|
-
<div className='pane--title'>{title}</div>
|
|
16
|
-
)}
|
|
17
|
-
</>
|
|
18
|
-
)
|
|
7
|
+
const CardPaneInfo: FC<CardPaneInfoProps> = ({ description, subdescription, id, title }) => {
|
|
19
8
|
if (description === 'Active' || description === 'Inactive') {
|
|
20
9
|
let descriptionClass
|
|
21
10
|
if (description === 'Active') {
|
|
@@ -25,7 +14,7 @@ const CardPaneInfo: FC<CardPaneInfoProps> = ({ description, subdescription, id,
|
|
|
25
14
|
}
|
|
26
15
|
return (
|
|
27
16
|
<div key={id} className='pane-wrapper'>
|
|
28
|
-
{
|
|
17
|
+
<div className='pane--title'>{title}</div>
|
|
29
18
|
<div data-testid='description-div' className={descriptionClass}>
|
|
30
19
|
<li className='position'>
|
|
31
20
|
<div className='marker'>{description}</div>
|
|
@@ -37,7 +26,7 @@ const CardPaneInfo: FC<CardPaneInfoProps> = ({ description, subdescription, id,
|
|
|
37
26
|
|
|
38
27
|
return (
|
|
39
28
|
<div key={id} className='pane-wrapper'>
|
|
40
|
-
{
|
|
29
|
+
<div className='pane--title'>{title}</div>
|
|
41
30
|
<div className='pane--description'>
|
|
42
31
|
{description}
|
|
43
32
|
{subdescription !== undefined && <span className='pane--description--subdescription'>{subdescription}</span>}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import ArrowRight from '../../../../images/svg/arrow-right-24px-outlined.svg';
|
|
2
3
|
import { Button } from '../../atoms';
|
|
3
4
|
// import './Article.scss'
|
|
4
|
-
const Article = ({ imageUrl, title, articleUrl, summary }) => {
|
|
5
|
-
return (_jsxs("div", { className: 'article', children: [_jsx("img", { src: imageUrl, className: 'image', loading: 'lazy', alt: title }), _jsxs("div", { className: 'information', children: [_jsx("a", { href: articleUrl, target: '_blank', rel: 'noreferrer', children: _jsxs("p", { className: 'title sans-serif --big', children: [title, " "] }) }), _jsx("div", { className: 'summary', children: summary }), _jsx(Button, { color: 'tertiary', label: 'Read more', dataQa: 'article-read-more', link: articleUrl, isExternal: true })] })] }));
|
|
5
|
+
const Article = ({ imageUrl, title, articleUrl, summary, isCategoryProductPage }) => {
|
|
6
|
+
return (_jsxs("div", { className: 'article', children: [_jsx("img", { src: imageUrl, className: 'image', loading: 'lazy', alt: title }), _jsxs("div", { className: 'information', children: [_jsx("a", { href: articleUrl, target: '_blank', rel: 'noreferrer', children: _jsxs("p", { className: 'title sans-serif --big', children: [title, " "] }) }), _jsx("div", { className: 'summary', children: summary }), isCategoryProductPage ? (_jsxs("div", { className: 'button-image-container', children: [_jsx(Button, { givenClass: 'thinner-letter', color: 'tertiary', label: 'Read more', dataQa: 'article-read-more', link: articleUrl, isExternal: true }), _jsx("img", { className: 'article__arrow-right', src: ArrowRight, alt: '' })] })) : (_jsx(Button, { color: 'tertiary', label: 'Read more', dataQa: 'article-read-more', link: articleUrl, isExternal: true }))] })] }));
|
|
6
7
|
};
|
|
7
8
|
export default Article;
|
|
@@ -62,5 +62,22 @@
|
|
|
62
62
|
margin-top: 0;
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
+
|
|
66
|
+
.button-image-container {
|
|
67
|
+
align-items: center;
|
|
68
|
+
margin: 1rem 0 2rem 0;
|
|
69
|
+
display: flex;
|
|
70
|
+
|
|
71
|
+
.thinner-letter {
|
|
72
|
+
font-family: $font-sans;
|
|
73
|
+
font-size: 16px;
|
|
74
|
+
font-weight: 400;
|
|
75
|
+
line-height: 22px;
|
|
76
|
+
letter-spacing: -0.3px;
|
|
77
|
+
text-align: left;
|
|
78
|
+
margin: 0;
|
|
79
|
+
padding: 0 1rem 0 0;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
65
82
|
}
|
|
66
83
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import React, { type FC } from 'react'
|
|
2
2
|
|
|
3
|
+
import ArrowRight from '../../../../images/svg/arrow-right-24px-outlined.svg'
|
|
3
4
|
import { type ArticleProps } from './ArticleProps.types'
|
|
4
5
|
import { Button } from '../../atoms'
|
|
5
6
|
// import './Article.scss'
|
|
6
7
|
|
|
7
|
-
const Article: FC<ArticleProps> = ({ imageUrl, title, articleUrl, summary }) => {
|
|
8
|
+
const Article: FC<ArticleProps> = ({ imageUrl, title, articleUrl, summary, isCategoryProductPage }) => {
|
|
8
9
|
return (
|
|
9
10
|
<div className='article'>
|
|
10
11
|
<img src={imageUrl} className='image' loading='lazy' alt={title} />
|
|
@@ -13,7 +14,21 @@ const Article: FC<ArticleProps> = ({ imageUrl, title, articleUrl, summary }) =>
|
|
|
13
14
|
<p className='title sans-serif --big'>{title} </p>
|
|
14
15
|
</a>
|
|
15
16
|
<div className='summary'>{summary}</div>
|
|
16
|
-
|
|
17
|
+
{isCategoryProductPage ? (
|
|
18
|
+
<div className='button-image-container'>
|
|
19
|
+
<Button
|
|
20
|
+
givenClass='thinner-letter'
|
|
21
|
+
color='tertiary'
|
|
22
|
+
label={'Read more'}
|
|
23
|
+
dataQa='article-read-more'
|
|
24
|
+
link={articleUrl}
|
|
25
|
+
isExternal
|
|
26
|
+
/>
|
|
27
|
+
<img className='article__arrow-right' src={ArrowRight} alt=''></img>
|
|
28
|
+
</div>
|
|
29
|
+
) : (
|
|
30
|
+
<Button color='tertiary' label={'Read more'} dataQa='article-read-more' link={articleUrl} isExternal />
|
|
31
|
+
)}
|
|
17
32
|
</div>
|
|
18
33
|
</div>
|
|
19
34
|
)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Article } from '../../molecules';
|
|
3
3
|
// import './ArticlesList.scss'
|
|
4
|
-
const ArticlesList = ({ articles = [] }) => {
|
|
4
|
+
const ArticlesList = ({ articles = [], isCategoryProductPage = false }) => {
|
|
5
5
|
if (articles?.length === 0)
|
|
6
6
|
return null;
|
|
7
|
-
return (_jsx("div", { className: 'articles_wrapper', children: articles.map((article) => (_jsx(Article, { ...article }, `article_${article?.id}`))) }));
|
|
7
|
+
return (_jsx("div", { className: 'articles_wrapper', children: articles.map((article) => (_jsx(Article, { ...article, isCategoryProductPage: isCategoryProductPage }, `article_${article?.id}`))) }));
|
|
8
8
|
};
|
|
9
9
|
export default ArticlesList;
|
|
@@ -5,13 +5,13 @@ import { Article, type ArticleProps } from '../../molecules'
|
|
|
5
5
|
import { type ArticlesListProps } from './ArticlesListProps.types'
|
|
6
6
|
// import './ArticlesList.scss'
|
|
7
7
|
|
|
8
|
-
const ArticlesList: FC<ArticlesListProps> = ({ articles = [] }) => {
|
|
8
|
+
const ArticlesList: FC<ArticlesListProps> = ({ articles = [], isCategoryProductPage = false }) => {
|
|
9
9
|
if (articles?.length === 0) return null
|
|
10
10
|
|
|
11
11
|
return (
|
|
12
12
|
<div className='articles_wrapper'>
|
|
13
13
|
{articles.map((article: ArticleProps) => (
|
|
14
|
-
<Article key={`article_${article?.id}`} {...article} />
|
|
14
|
+
<Article key={`article_${article?.id}`} {...article} isCategoryProductPage={isCategoryProductPage} />
|
|
15
15
|
))}
|
|
16
16
|
</div>
|
|
17
17
|
)
|
|
@@ -4,8 +4,14 @@
|
|
|
4
4
|
.guidelines-section {
|
|
5
5
|
&-main {
|
|
6
6
|
display: flex;
|
|
7
|
-
flex-direction:
|
|
7
|
+
flex-direction: column;
|
|
8
8
|
flex-wrap: nowrap;
|
|
9
|
+
padding: 1.5rem;
|
|
10
|
+
|
|
11
|
+
@include laptop {
|
|
12
|
+
flex-direction: row;
|
|
13
|
+
padding: 0;
|
|
14
|
+
}
|
|
9
15
|
}
|
|
10
16
|
|
|
11
17
|
&__texts {
|
|
@@ -65,7 +71,7 @@
|
|
|
65
71
|
}
|
|
66
72
|
|
|
67
73
|
&.is-mobile {
|
|
68
|
-
display:
|
|
74
|
+
display: none;
|
|
69
75
|
|
|
70
76
|
@include landscape-tablets {
|
|
71
77
|
display: none;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { AsSeeInContent } from '../../organisms';
|
|
3
3
|
// import './AsSeeInSection.scss'
|
|
4
|
-
const AsSeeInSection = ({ title, contentAsSeeIn }) => {
|
|
4
|
+
const AsSeeInSection = ({ title, contentAsSeeIn, contactSectionTitle, contactSectionText, contactSectionBlocks }) => {
|
|
5
5
|
if (contentAsSeeIn.trustWorthyImages.images.length === 0) {
|
|
6
6
|
return null;
|
|
7
7
|
}
|
|
8
|
-
return (
|
|
8
|
+
return (_jsxs("section", { className: 'as-seen-in-section-box', children: [_jsxs("div", { className: 'as-seen-in-section wrapper', children: [_jsx("h2", { className: 'as-seen-in-section__title', children: title }), _jsx(AsSeeInContent, { trustWorthyImages: contentAsSeeIn.trustWorthyImages, children: contentAsSeeIn.children })] }), Array.isArray(contactSectionBlocks) && contactSectionBlocks.length > 0 && (_jsxs("div", { className: 'contact-us-section', children: [_jsx("h2", { className: 'contact-us-section__title', children: contactSectionTitle }), _jsx("p", { className: 'contact-us-section__text', children: contactSectionText }), Array.isArray(contactSectionBlocks) && (_jsx("div", { className: 'contact-us-section-blocks', children: contactSectionBlocks.map((item, index) => (_jsxs("div", { className: 'contact-us-section-blocks__item', children: [_jsx("div", { className: 'contact-us-section-blocks__item__image', children: item.image }), _jsx("div", { className: 'contact-us-section-blocks__item__title', children: item.title }), _jsx("p", { className: 'contact-us-section-blocks__item__text', children: item.body })] }, index))) }))] }))] }));
|
|
9
9
|
};
|
|
10
10
|
export default AsSeeInSection;
|
|
@@ -14,9 +14,13 @@
|
|
|
14
14
|
flex-direction: column;
|
|
15
15
|
box-shadow: 0px 2px 6px 0px rgba(2, 55, 74, 0.25);
|
|
16
16
|
background: get-color(others, white);
|
|
17
|
-
transform: translateY(-
|
|
17
|
+
transform: translateY(-5rem);
|
|
18
18
|
padding: 1.5rem 0;
|
|
19
19
|
|
|
20
|
+
@include laptop {
|
|
21
|
+
transform: translateY(-50%);
|
|
22
|
+
}
|
|
23
|
+
|
|
20
24
|
&__title {
|
|
21
25
|
text-align: center;
|
|
22
26
|
font-size: 32px;
|
|
@@ -29,3 +33,65 @@
|
|
|
29
33
|
}
|
|
30
34
|
}
|
|
31
35
|
}
|
|
36
|
+
|
|
37
|
+
.contact-us-section {
|
|
38
|
+
display: flex;
|
|
39
|
+
flex-direction: column;
|
|
40
|
+
transform: translateY(-5rem);
|
|
41
|
+
color: var(--neutral-neutral-1);
|
|
42
|
+
margin-top: 1rem;
|
|
43
|
+
|
|
44
|
+
&__title {
|
|
45
|
+
text-align: center;
|
|
46
|
+
font-size: 32px;
|
|
47
|
+
font-family: $font-serif;
|
|
48
|
+
font-style: normal;
|
|
49
|
+
font-weight: 400;
|
|
50
|
+
line-height: 42px;
|
|
51
|
+
letter-spacing: -0.3px;
|
|
52
|
+
margin: 1rem 0;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
&__text {
|
|
56
|
+
text-align: center;
|
|
57
|
+
font-style: normal;
|
|
58
|
+
font-weight: 400;
|
|
59
|
+
margin: 0 0 2rem 0;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
&-blocks {
|
|
63
|
+
display: flex;
|
|
64
|
+
justify-content: center;
|
|
65
|
+
flex-direction: column;
|
|
66
|
+
gap: 1rem;
|
|
67
|
+
|
|
68
|
+
@include laptop {
|
|
69
|
+
flex-direction: row;
|
|
70
|
+
gap: 2.5rem;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
&__item {
|
|
74
|
+
display: flex;
|
|
75
|
+
flex-direction: column;
|
|
76
|
+
align-items: center;
|
|
77
|
+
background-color: white;
|
|
78
|
+
box-shadow: 0px 2px 6px 0px rgba(2, 55, 74, 0.25);
|
|
79
|
+
border-radius: 0.25rem;
|
|
80
|
+
min-width: 200px;
|
|
81
|
+
padding: 1rem;
|
|
82
|
+
|
|
83
|
+
&__image {
|
|
84
|
+
width: 2rem;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
&__title {
|
|
88
|
+
margin-top: 1rem;
|
|
89
|
+
line-height: 1rem;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
&__text {
|
|
93
|
+
font-size: 14px;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -4,7 +4,13 @@ import { AsSeeInContent } from '../../organisms'
|
|
|
4
4
|
import { type AsSeeInSectionProps } from './AsSeeInSectionProps.types'
|
|
5
5
|
// import './AsSeeInSection.scss'
|
|
6
6
|
|
|
7
|
-
const AsSeeInSection: FC<AsSeeInSectionProps> = ({
|
|
7
|
+
const AsSeeInSection: FC<AsSeeInSectionProps> = ({
|
|
8
|
+
title,
|
|
9
|
+
contentAsSeeIn,
|
|
10
|
+
contactSectionTitle,
|
|
11
|
+
contactSectionText,
|
|
12
|
+
contactSectionBlocks
|
|
13
|
+
}) => {
|
|
8
14
|
if (contentAsSeeIn.trustWorthyImages.images.length === 0) {
|
|
9
15
|
return null
|
|
10
16
|
}
|
|
@@ -15,6 +21,23 @@ const AsSeeInSection: FC<AsSeeInSectionProps> = ({ title, contentAsSeeIn }) => {
|
|
|
15
21
|
<h2 className='as-seen-in-section__title'>{title}</h2>
|
|
16
22
|
<AsSeeInContent trustWorthyImages={contentAsSeeIn.trustWorthyImages}>{contentAsSeeIn.children}</AsSeeInContent>
|
|
17
23
|
</div>
|
|
24
|
+
{Array.isArray(contactSectionBlocks) && contactSectionBlocks.length > 0 && (
|
|
25
|
+
<div className='contact-us-section'>
|
|
26
|
+
<h2 className='contact-us-section__title'>{contactSectionTitle}</h2>
|
|
27
|
+
<p className='contact-us-section__text'>{contactSectionText}</p>
|
|
28
|
+
{Array.isArray(contactSectionBlocks) && (
|
|
29
|
+
<div className='contact-us-section-blocks'>
|
|
30
|
+
{contactSectionBlocks.map((item, index) => (
|
|
31
|
+
<div className='contact-us-section-blocks__item' key={index}>
|
|
32
|
+
<div className='contact-us-section-blocks__item__image'>{item.image}</div>
|
|
33
|
+
<div className='contact-us-section-blocks__item__title'>{item.title}</div>
|
|
34
|
+
<p className='contact-us-section-blocks__item__text'>{item.body}</p>
|
|
35
|
+
</div>
|
|
36
|
+
))}
|
|
37
|
+
</div>
|
|
38
|
+
)}
|
|
39
|
+
</div>
|
|
40
|
+
)}
|
|
18
41
|
</section>
|
|
19
42
|
)
|
|
20
43
|
}
|
|
@@ -2,4 +2,11 @@ import { type AsSeeInContentProps } from '../../organisms/AsSeeInContent';
|
|
|
2
2
|
export interface AsSeeInSectionProps {
|
|
3
3
|
title: string;
|
|
4
4
|
contentAsSeeIn: AsSeeInContentProps;
|
|
5
|
+
contactSectionTitle: string;
|
|
6
|
+
contactSectionText: string;
|
|
7
|
+
contactSectionBlocks?: {
|
|
8
|
+
image: React.ReactNode;
|
|
9
|
+
title: string;
|
|
10
|
+
body: string;
|
|
11
|
+
}[];
|
|
5
12
|
}
|
|
@@ -3,4 +3,11 @@ import { type AsSeeInContentProps } from '../../organisms/AsSeeInContent'
|
|
|
3
3
|
export interface AsSeeInSectionProps {
|
|
4
4
|
title: string
|
|
5
5
|
contentAsSeeIn: AsSeeInContentProps
|
|
6
|
+
contactSectionTitle: string
|
|
7
|
+
contactSectionText: string
|
|
8
|
+
contactSectionBlocks?: {
|
|
9
|
+
image: React.ReactNode
|
|
10
|
+
title: string
|
|
11
|
+
body: string
|
|
12
|
+
}[]
|
|
6
13
|
}
|
|
@@ -2,9 +2,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { ArticlesList } from '../../organisms';
|
|
3
3
|
import { Button } from '../../atoms';
|
|
4
4
|
// import './BlogSection.scss'
|
|
5
|
-
const BlogSection = ({ blogTitle, blogCta, articles }) => {
|
|
5
|
+
const BlogSection = ({ blogTitle, blogCta = null, blogDescription = null, articles }) => {
|
|
6
6
|
if (articles.articles?.length === 0)
|
|
7
|
-
return
|
|
8
|
-
|
|
7
|
+
return;
|
|
8
|
+
const categoryProductTitle = !!blogDescription;
|
|
9
|
+
return (_jsxs("div", { className: 'blog', children: [_jsx("h2", { className: `serif --super-large blog__title ${categoryProductTitle ? 'category-product-title' : ''}`, children: blogTitle }), blogDescription && _jsx("p", { className: 'blog__description', children: blogDescription }), _jsx(ArticlesList, { articles: articles.articles, isCategoryProductPage: categoryProductTitle }), blogCta && _jsx(Button, { dataQa: '', color: 'secondary', label: blogCta, givenClass: 'cta-button', link: '/articles' })] }));
|
|
9
10
|
};
|
|
10
11
|
export default BlogSection;
|
|
@@ -14,12 +14,33 @@
|
|
|
14
14
|
max-width: $lg;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
.blog__description {
|
|
18
|
+
font-family: $font-sans;
|
|
19
|
+
font-size: 16px;
|
|
20
|
+
font-weight: 400;
|
|
21
|
+
line-height: 22px;
|
|
22
|
+
letter-spacing: -0.3px;
|
|
23
|
+
text-align: left;
|
|
24
|
+
color: #6d7275;
|
|
25
|
+
margin: 1rem 0 1.5rem 0;
|
|
26
|
+
}
|
|
27
|
+
|
|
17
28
|
.blog__title {
|
|
18
29
|
color: get-color(primary, main-dark-1);
|
|
19
30
|
|
|
20
31
|
@include laptop {
|
|
21
32
|
margin-bottom: 3rem;
|
|
22
33
|
}
|
|
34
|
+
|
|
35
|
+
&.category-product-title {
|
|
36
|
+
margin-bottom: 0;
|
|
37
|
+
font-family: $font-sans;
|
|
38
|
+
font-size: 28px;
|
|
39
|
+
font-weight: 700;
|
|
40
|
+
line-height: 32px;
|
|
41
|
+
letter-spacing: -0.3px;
|
|
42
|
+
text-align: left;
|
|
43
|
+
}
|
|
23
44
|
}
|
|
24
45
|
|
|
25
46
|
.cta-button {
|
|
@@ -6,14 +6,18 @@ import { type BlogSectionProps } from './BlogSectionProps.types'
|
|
|
6
6
|
import { Button } from '../../atoms'
|
|
7
7
|
// import './BlogSection.scss'
|
|
8
8
|
|
|
9
|
-
const BlogSection: FC<BlogSectionProps> = ({ blogTitle, blogCta, articles }) => {
|
|
10
|
-
if (articles.articles?.length === 0) return
|
|
9
|
+
const BlogSection: FC<BlogSectionProps> = ({ blogTitle, blogCta = null, blogDescription = null, articles }) => {
|
|
10
|
+
if (articles.articles?.length === 0) return
|
|
11
|
+
const categoryProductTitle = !!blogDescription
|
|
11
12
|
|
|
12
13
|
return (
|
|
13
14
|
<div className={'blog'}>
|
|
14
|
-
<h2 className={
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
<h2 className={`serif --super-large blog__title ${categoryProductTitle ? 'category-product-title' : ''}`}>
|
|
16
|
+
{blogTitle}
|
|
17
|
+
</h2>
|
|
18
|
+
{blogDescription && <p className='blog__description'>{blogDescription}</p>}
|
|
19
|
+
<ArticlesList articles={articles.articles} isCategoryProductPage={categoryProductTitle} />
|
|
20
|
+
{blogCta && <Button dataQa='' color='secondary' label={blogCta} givenClass='cta-button' link={'/articles'} />}
|
|
17
21
|
</div>
|
|
18
22
|
)
|
|
19
23
|
}
|
package/dist/src/custom.d.ts
CHANGED