@npm_leadtech/legal-lib-components 5.26.13 → 5.27.1

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 (52) hide show
  1. package/dist/images/componentsSvg/IconWeb.d.ts +2 -0
  2. package/dist/images/componentsSvg/IconWeb.js +4 -0
  3. package/dist/images/componentsSvg/IconWeb.tsx +31 -0
  4. package/dist/images/componentsSvg/PhoneIcon.d.ts +6 -0
  5. package/dist/images/componentsSvg/PhoneIcon.js +4 -0
  6. package/dist/images/componentsSvg/PhoneIcon.tsx +18 -0
  7. package/dist/images/componentsSvg/PhoneIcon24px.tsx +4 -2
  8. package/dist/images/svg/facebook.svg +4 -0
  9. package/dist/images/svg/icon-24-px-satisfaction-grey.svg +3 -0
  10. package/dist/images/svg/icon-24-px-security_black.svg +3 -0
  11. package/dist/images/svg/linkedin.svg +4 -0
  12. package/dist/images/svg/pinterest.svg +4 -0
  13. package/dist/images/svg/x.svg +4 -0
  14. package/dist/src/components/atoms/FixedFooter/FixedFooter.d.ts +3 -0
  15. package/dist/src/components/atoms/FixedFooter/FixedFooter.js +73 -0
  16. package/dist/src/components/atoms/FixedFooter/FixedFooter.styled.d.ts +1 -0
  17. package/dist/src/components/atoms/FixedFooter/FixedFooter.styled.js +969 -0
  18. package/dist/src/components/atoms/FixedFooter/FixedFooter.styled.ts +970 -0
  19. package/dist/src/components/atoms/FixedFooter/FixedFooter.tsx +305 -0
  20. package/dist/src/components/atoms/FixedFooter/FixedFooterProps.d.ts +71 -0
  21. package/dist/src/components/atoms/FixedFooter/FixedFooterProps.js +1 -0
  22. package/dist/src/components/atoms/FixedFooter/FixedFooterProps.ts +73 -0
  23. package/dist/src/components/atoms/FixedFooter/index.d.ts +2 -0
  24. package/dist/src/components/atoms/FixedFooter/index.js +2 -0
  25. package/dist/src/components/atoms/FixedFooter/index.ts +2 -0
  26. package/dist/src/components/atoms/PreFooter/PreFooter.d.ts +3 -0
  27. package/dist/src/components/atoms/PreFooter/PreFooter.js +8 -0
  28. package/dist/src/components/atoms/PreFooter/PreFooter.styled.d.ts +1 -0
  29. package/dist/src/components/atoms/PreFooter/PreFooter.styled.js +43 -0
  30. package/dist/src/components/atoms/PreFooter/PreFooter.styled.ts +43 -0
  31. package/dist/src/components/atoms/PreFooter/PreFooter.tsx +34 -0
  32. package/dist/src/components/atoms/PreFooter/PreFooterProps.d.ts +8 -0
  33. package/dist/src/components/atoms/PreFooter/PreFooterProps.js +1 -0
  34. package/dist/src/components/atoms/PreFooter/PreFooterProps.ts +8 -0
  35. package/dist/src/components/atoms/PreFooter/index.d.ts +2 -0
  36. package/dist/src/components/atoms/PreFooter/index.js +2 -0
  37. package/dist/src/components/atoms/PreFooter/index.ts +2 -0
  38. package/dist/src/components/atoms/index.d.ts +2 -0
  39. package/dist/src/components/atoms/index.js +2 -0
  40. package/dist/src/components/atoms/index.ts +2 -0
  41. package/dist/src/components/molecules/KeyFactCardListRatafia/KeyFactCardListRatafia.styled.js +1 -5
  42. package/dist/src/components/molecules/KeyFactCardListRatafia/KeyFactCardListRatafia.styled.ts +1 -5
  43. package/dist/src/components/organisms/KeyFactsLoadingContentRatafia/KeyFactsLoadingContentRatafia.styled.js +3 -2
  44. package/dist/src/components/organisms/KeyFactsLoadingContentRatafia/KeyFactsLoadingContentRatafia.styled.ts +3 -2
  45. package/dist/src/components/pages/ErrorRatafiaPage/ErrorRatafiaPage.styled.js +1 -1
  46. package/dist/src/components/pages/ErrorRatafiaPage/ErrorRatafiaPage.styled.ts +1 -1
  47. package/dist/src/components/pages/KeyFactsResultRatafiaPage/KeyFactsResultRatafiaPage.styled.js +1 -1
  48. package/dist/src/components/pages/KeyFactsResultRatafiaPage/KeyFactsResultRatafiaPage.styled.ts +1 -1
  49. package/dist/src/components/pages/LoginRatafiaPage/LoginRatafiaPage.styled.js +0 -1
  50. package/dist/src/components/pages/LoginRatafiaPage/LoginRatafiaPage.styled.ts +0 -1
  51. package/dist/tsconfig.build.tsbuildinfo +1 -1
  52. package/package.json +1 -1
@@ -0,0 +1,305 @@
1
+ import { Button } from '../Button'
2
+ import { ContactBox } from '../../molecules/ContactBox'
3
+ import { Disclaimer } from '../Disclaimer'
4
+ import { FixedFooterProps } from './FixedFooterProps'
5
+ import { FixedFooterStyled } from './FixedFooter.styled'
6
+ import { IconWeb } from '../../../../images/componentsSvg/IconWeb'
7
+ import { Logo } from '../Logo'
8
+ import { PhoneIcon } from '../../../../images/componentsSvg/PhoneIcon'
9
+ import React from 'react'
10
+ import { WideInfoBar } from '../WideInfoBar'
11
+ import facebook from '../../../../images/svg/facebook.svg'
12
+ import guaranteeIconGrey from '../../../../images/svg/icon-24-px-satisfaction-grey.svg'
13
+ import linkedin from '../../../../images/svg/linkedin.svg'
14
+ import pinterest from '../../../../images/svg/pinterest.svg'
15
+ import securityIconBlack from '../../../../images/svg/icon-24-px-security_black.svg'
16
+ import x from '../../../../images/svg/x.svg'
17
+
18
+ export const FixedFooter: React.FC<FixedFooterProps> = ({
19
+ footerData = {},
20
+ config = {
21
+ siteName: 'LawDistrict',
22
+ sitePhone: '123-456-7890',
23
+ siteSchedule: 'Monday - Friday, 9am - 5pm',
24
+ siteUrl: 'https://www.lawdistrict.com',
25
+ hasGrav: true,
26
+ hasCookieMessage: true,
27
+ hasContactBar: false,
28
+ hasTrustPilot: true,
29
+ isJonSnow: false,
30
+ isSEMPage: false,
31
+ isMobile: false,
32
+ isTablet: false,
33
+ isDesktop: true,
34
+ isAnonymousPayment: false,
35
+ hide: false,
36
+ noFooter: false
37
+ },
38
+ footer = {
39
+ disclaimerText: '',
40
+ guaranteeText: '',
41
+ securityText: '',
42
+ bottomFixedBlock: <></>,
43
+ createDocumentBlock: <></>,
44
+ trustPilotWidget: <></>
45
+ },
46
+ preFooter = {
47
+ show: true,
48
+ title: 'Try LawDistrict Now',
49
+ columns: [
50
+ 'Instant and complete access to our entire library of legal forms',
51
+ 'Edit, download and print in PDF and Word format from any device',
52
+ 'Save time and money on legal document creation'
53
+ ],
54
+ hasButton: true,
55
+ buttonLabel: 'Get Unlimited Access Now',
56
+ buttonLink: './',
57
+ buttonClick: () => {}
58
+ },
59
+ productsBlock = {
60
+ title: 'Products',
61
+ productsCategories: <></>,
62
+ allProductsLink: <></>
63
+ },
64
+ popularDocumentsBlock = {
65
+ title: 'Popular Documents',
66
+ popularDocuments: <></>
67
+ },
68
+ companyBlock = {
69
+ title: 'Company',
70
+ links: <></>
71
+ },
72
+ helpBlock = {
73
+ title: 'Help',
74
+ links: <></>
75
+ },
76
+ resourcesBlock = {
77
+ title: 'Resources',
78
+ links: <></>
79
+ },
80
+ languageSelector = {
81
+ show: false,
82
+ content: <></>
83
+ }
84
+ }) => {
85
+ return (
86
+ <FixedFooterStyled>
87
+ {preFooter.show && (
88
+ <section className={'prefooter'}>
89
+ <div className='wrapper'>
90
+ <div className='prefooter-container'>
91
+ <div className='serif --hero prefooter__title'>{preFooter.title}</div>
92
+ <div className={'prefooter--columns'}>
93
+ {preFooter.columns.map((column, index) => (
94
+ <p key={index} className='prefooter--columns__text'>
95
+ {column}
96
+ </p>
97
+ ))}
98
+ </div>
99
+ {preFooter.hasButton && (
100
+ <Button
101
+ label={preFooter.buttonLabel}
102
+ onClick={preFooter.buttonClick}
103
+ link={preFooter.buttonLink}
104
+ dataQa={'cta-footer'}
105
+ isExternal
106
+ hasNoFollow
107
+ />
108
+ )}
109
+ </div>
110
+ </div>
111
+ </section>
112
+ )}
113
+ {config.isSEMPage && config.isMobile && (
114
+ <footer className={'sem-footer'}>
115
+ <section className={'sem-footer__wrapper'}>
116
+ <ul className='sem-footer__legal-links'>{companyBlock.links}</ul>
117
+ <div className='sem-footer__contact-info'>
118
+ <div className='sem-footer__contact-info__phone'>
119
+ <PhoneIcon width={20} height={20} fill={'white'} />
120
+ <b>{config.sitePhone} </b>
121
+ </div>
122
+ <div className='sem-footer__contact-info__schedule'>{config.siteSchedule}</div>
123
+ </div>
124
+ <div className='fixed-container'>{footer.createDocumentBlock}</div>
125
+ </section>
126
+ </footer>
127
+ )}
128
+ {!config.isSEMPage && (
129
+ <footer>
130
+ {!config.hide && !config.noFooter ? (
131
+ <>
132
+ <div className='language-selector-mobile-container'>
133
+ {languageSelector.show === true && languageSelector.content}
134
+ </div>
135
+ <section className={'footer__wrapper'}>
136
+ <div className={'footer__products'}>
137
+ <p className={'sans-serif --small footer-links__title'}>{productsBlock.title}</p>
138
+ {productsBlock.productsCategories}
139
+ <div className={'sans-serif --extra-small product-categories'}>{productsBlock.allProductsLink}</div>
140
+ </div>
141
+ <div className={'footer__popular-documents'}>
142
+ <p className={'sans-serif --small footer-links__title'}>{popularDocumentsBlock.title}</p>
143
+ <ul>{popularDocumentsBlock.popularDocuments}</ul>
144
+ {config.isTablet && (
145
+ <div className='footer__help__tablet'>
146
+ <p className={'sans-serif --small footer-links__title'}>{helpBlock.title}</p>
147
+ <ul>{helpBlock.links}</ul>
148
+ </div>
149
+ )}
150
+ </div>
151
+ {(config.isMobile || config.isDesktop) && (
152
+ <div className={'footer__company'}>
153
+ <p className={'sans-serif --small footer-links__title'}>{companyBlock.title}</p>
154
+ <ul>{companyBlock.links}</ul>
155
+ </div>
156
+ )}
157
+ <div className='footer__company__resources__findUs'>
158
+ {config.isTablet && (
159
+ <>
160
+ <p className={'sans-serif --small footer-links__title'}>{companyBlock.title}</p>
161
+ <ul>{companyBlock.links}</ul>
162
+
163
+ {!config.isJonSnow && config.hasGrav && config.isTablet && (
164
+ <div className='footer__resources'>
165
+ <p className={'sans-serif --small footer-links__title'}>{resourcesBlock.title}</p>
166
+ <ul>{resourcesBlock.links}</ul>
167
+ </div>
168
+ )}
169
+ </>
170
+ )}
171
+ </div>
172
+ {!config.isTablet && (
173
+ <div className={'footer__help__resources'}>
174
+ <div>
175
+ <div className='footer__help'>
176
+ <p className={'sans-serif --small footer-links__title'}>{helpBlock.title}</p>
177
+ <ul>{helpBlock.links}</ul>
178
+ </div>
179
+ {!config.isJonSnow && config.hasGrav && (
180
+ <div className='footer__resources'>
181
+ <p className={'sans-serif --small footer-links__title'}>{resourcesBlock.title}</p>
182
+ <ul>{resourcesBlock.links}</ul>
183
+ </div>
184
+ )}
185
+ </div>
186
+ </div>
187
+ )}
188
+ <div className={'footer__findUs'}>
189
+ <div className='find-us-container'>
190
+ {!config.isJonSnow && (
191
+ <>
192
+ <div className='find-us-content'>
193
+ <p className={'sans-serif --small footer-links__title'}>{footerData?.findUs}</p>
194
+ <ul>
195
+ <li>
196
+ <a
197
+ href={'https://www.facebook.com/lawdistrictlegal'}
198
+ rel='noopener noreferrer'
199
+ target='_blank'
200
+ >
201
+ <img src={facebook} alt='Facebook logo' width='32' height='32' />
202
+ </a>
203
+ </li>
204
+ <li>
205
+ <a href={'https://twitter.com/district_law'} rel='noopener noreferrer' target='_blank'>
206
+ <img src={x} alt='Twitter logo' width='32' height='32' />
207
+ </a>
208
+ </li>
209
+ <li>
210
+ <a
211
+ href={'https://www.linkedin.com/company/law-district/'}
212
+ rel='noopener noreferrer'
213
+ target='_blank'
214
+ >
215
+ <img src={linkedin} alt='Linkedin logo' width='32' height='32' />
216
+ </a>
217
+ </li>
218
+ <li>
219
+ <a
220
+ href={'https://www.pinterest.com/lawdistrict/'}
221
+ rel='noopener noreferrer'
222
+ target='_blank'
223
+ >
224
+ <img src={pinterest} alt='Pinterest logo' width='32' height='32' />
225
+ </a>
226
+ </li>
227
+ </ul>
228
+ </div>
229
+ <div className={'footer-contact-box'}>
230
+ <span className='footer-contact-box_phone'>{config.sitePhone}</span>
231
+ <Button
232
+ centered
233
+ isExternal
234
+ link={`tel:${config.sitePhone}`}
235
+ givenClass={'footer-contact-box-button'}
236
+ label={config.sitePhone}
237
+ dataQa={'footer_contact_box'}
238
+ />
239
+ <span className='footer-contact-box_schedule'>{config.siteSchedule}</span>
240
+ </div>
241
+ </>
242
+ )}
243
+ <div className={'footer__logo'}>
244
+ <Logo
245
+ className='footer__lawdistrict'
246
+ siteName={config.siteName}
247
+ width='138'
248
+ height='24'
249
+ type='white'
250
+ />
251
+ </div>
252
+ </div>
253
+ {config.hasTrustPilot && footer.trustPilotWidget}
254
+ </div>
255
+ {!config.isJonSnow && (
256
+ <div className={'footer-mobile-contact-box'}>
257
+ <ContactBox
258
+ mobile={true}
259
+ phone={config.sitePhone}
260
+ schedule={config.siteSchedule}
261
+ mobileGtmTag='clicked_phone_footer'
262
+ dataQa='footer_contact_box'
263
+ darkMode
264
+ />
265
+ </div>
266
+ )}
267
+ </section>
268
+ </>
269
+ ) : null}
270
+ {config.hasContactBar && (
271
+ <WideInfoBar>
272
+ <>
273
+ <div className={`contact-bar-wrapper ${(config.isJonSnow || config.isAnonymousPayment) && 'hidden'}`}>
274
+ <IconWeb />
275
+ <div className='contact-bar-wrapper__text'>
276
+ <div className='is-mobile'>
277
+ <a className='phone' href={`tel:${config.sitePhone}`}>
278
+ <strong>{config.sitePhone}</strong>
279
+ </a>
280
+ {` - ${config.siteSchedule}`}
281
+ </div>
282
+ <div className='no-mobile'>
283
+ <strong>{config.sitePhone}</strong> - {config.siteSchedule}
284
+ </div>
285
+ </div>
286
+ </div>
287
+ <div className='contact-bar-wrapper'>
288
+ <img src={securityIconBlack} alt='' />
289
+ <p className='contact-bar-wrapper__text'>{footer.securityText}</p>
290
+ </div>
291
+ <div className='contact-bar-wrapper'>
292
+ <img src={guaranteeIconGrey} alt='' />
293
+ <p className='contact-bar-wrapper__text'>{footer.guaranteeText}</p>
294
+ </div>
295
+ </>
296
+ </WideInfoBar>
297
+ )}
298
+ {footer.disclaimerText && <Disclaimer text={footer.disclaimerText} siteUrl={config.siteUrl} />}
299
+ <div className='fixed-container'>{footer.createDocumentBlock}</div>
300
+ </footer>
301
+ )}
302
+ {footer.bottomFixedBlock}
303
+ </FixedFooterStyled>
304
+ )
305
+ }
@@ -0,0 +1,71 @@
1
+ import React from 'react';
2
+ export interface Link {
3
+ label: string;
4
+ url: string;
5
+ onClick: () => void;
6
+ }
7
+ export interface FixedFooterProps {
8
+ footerData: {
9
+ findUs: string;
10
+ };
11
+ config: {
12
+ siteName: string;
13
+ sitePhone: string;
14
+ siteSchedule: string;
15
+ siteUrl: string;
16
+ hasGrav: boolean;
17
+ hasCookieMessage: boolean;
18
+ hasContactBar: boolean;
19
+ hasTrustPilot: boolean;
20
+ isJonSnow: boolean;
21
+ isSEMPage: boolean;
22
+ isMobile: boolean;
23
+ isTablet: boolean;
24
+ isDesktop: boolean;
25
+ isAnonymousPayment: boolean;
26
+ hide: boolean;
27
+ noFooter: boolean;
28
+ };
29
+ footer: {
30
+ disclaimerText: string;
31
+ guaranteeText: string;
32
+ securityText: string;
33
+ bottomFixedBlock: React.ReactNode;
34
+ createDocumentBlock: React.ReactNode;
35
+ trustPilotWidget: React.ReactNode;
36
+ };
37
+ preFooter: {
38
+ show: boolean;
39
+ title: string;
40
+ columns: string[];
41
+ hasButton: boolean;
42
+ buttonLabel: string;
43
+ buttonLink: string;
44
+ buttonClick: () => void;
45
+ };
46
+ productsBlock: {
47
+ title: string;
48
+ productsCategories: React.ReactNode;
49
+ allProductsLink: React.ReactNode;
50
+ };
51
+ popularDocumentsBlock: {
52
+ title: string;
53
+ popularDocuments: React.ReactNode;
54
+ };
55
+ companyBlock: {
56
+ title: string;
57
+ links: React.ReactNode;
58
+ };
59
+ helpBlock: {
60
+ title: string;
61
+ links: React.ReactNode;
62
+ };
63
+ resourcesBlock: {
64
+ title: string;
65
+ links: React.ReactNode;
66
+ };
67
+ languageSelector: {
68
+ show: boolean;
69
+ content: React.ReactNode;
70
+ };
71
+ }
@@ -0,0 +1,73 @@
1
+ import React from 'react'
2
+
3
+ export interface Link {
4
+ label: string
5
+ url: string
6
+ onClick: () => void
7
+ }
8
+
9
+ export interface FixedFooterProps {
10
+ footerData: {
11
+ findUs: string
12
+ }
13
+ config: {
14
+ siteName: string
15
+ sitePhone: string
16
+ siteSchedule: string
17
+ siteUrl: string
18
+ hasGrav: boolean
19
+ hasCookieMessage: boolean
20
+ hasContactBar: boolean
21
+ hasTrustPilot: boolean
22
+ isJonSnow: boolean
23
+ isSEMPage: boolean
24
+ isMobile: boolean
25
+ isTablet: boolean
26
+ isDesktop: boolean
27
+ isAnonymousPayment: boolean
28
+ hide: boolean
29
+ noFooter: boolean
30
+ }
31
+ footer: {
32
+ disclaimerText: string
33
+ guaranteeText: string
34
+ securityText: string
35
+ bottomFixedBlock: React.ReactNode
36
+ createDocumentBlock: React.ReactNode
37
+ trustPilotWidget: React.ReactNode
38
+ }
39
+ preFooter: {
40
+ show: boolean
41
+ title: string
42
+ columns: string[]
43
+ hasButton: boolean
44
+ buttonLabel: string
45
+ buttonLink: string
46
+ buttonClick: () => void
47
+ }
48
+ productsBlock: {
49
+ title: string
50
+ productsCategories: React.ReactNode
51
+ allProductsLink: React.ReactNode
52
+ }
53
+ popularDocumentsBlock: {
54
+ title: string
55
+ popularDocuments: React.ReactNode
56
+ }
57
+ companyBlock: {
58
+ title: string
59
+ links: React.ReactNode
60
+ }
61
+ helpBlock: {
62
+ title: string
63
+ links: React.ReactNode
64
+ }
65
+ resourcesBlock: {
66
+ title: string
67
+ links: React.ReactNode
68
+ }
69
+ languageSelector: {
70
+ show: boolean
71
+ content: React.ReactNode
72
+ }
73
+ }
@@ -0,0 +1,2 @@
1
+ export * from './FixedFooter';
2
+ export * from './FixedFooterProps';
@@ -0,0 +1,2 @@
1
+ export * from './FixedFooter';
2
+ export * from './FixedFooterProps';
@@ -0,0 +1,2 @@
1
+ export * from './FixedFooter'
2
+ export * from './FixedFooterProps'
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { PreFooterProps } from './PreFooterProps';
3
+ export declare const PreFooter: React.FC<PreFooterProps>;
@@ -0,0 +1,8 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { Button } from '../Button';
3
+ import { PreFooterStyled } from './PreFooter.styled';
4
+ export const PreFooter = ({ siteName, content, ctaLabel, ctaOnClick, ctaDataQa, ctaLink }) => {
5
+ return (_jsx(PreFooterStyled, { children: _jsx("div", { className: 'wrapper', children: _jsxs("div", { className: 'prefooter', children: [_jsxs("div", { className: 'serif --hero prefooter__title', children: ["Try ", siteName, " Now"] }), _jsx("div", { className: 'prefooter__columns', children: content.map((text, index) => {
6
+ return (_jsx("p", { className: 'prefooter__columns__text', children: text }, index));
7
+ }) }), _jsx(Button, { label: ctaLabel, onClick: ctaOnClick, link: ctaLink, dataQa: ctaDataQa, isExternal: true, hasNoFollow: true })] }) }) }));
8
+ };
@@ -0,0 +1 @@
1
+ export declare const PreFooterStyled: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, never>> & string;
@@ -0,0 +1,43 @@
1
+ import { device } from '../../../globalStyles/breakpoints';
2
+ import styled from 'styled-components';
3
+ export const PreFooterStyled = styled.section `
4
+ background-color: var(--primary-main-light-6);
5
+ text-align: center;
6
+
7
+ .prefooter {
8
+ margin: 0 1.5rem;
9
+
10
+ @media ${device['landscape-tablets']} {
11
+ margin: 0;
12
+ }
13
+
14
+ &__title {
15
+ color: var(--neutral-neutral-1);
16
+ display: inline-block;
17
+ margin: 2rem 0 0;
18
+ }
19
+
20
+ &__columns {
21
+ display: flex;
22
+ flex-direction: column;
23
+ align-items: center;
24
+ justify-content: space-between;
25
+
26
+ @media ${device['landscape-tablets']} {
27
+ flex-direction: row;
28
+ margin: 0 1rem;
29
+ align-items: flex-start;
30
+ }
31
+
32
+ &__text {
33
+ width: 16.375rem;
34
+ color: var(--neutral-neutral-1);
35
+ margin: 2rem 0.5rem 0 0.5rem;
36
+ }
37
+ }
38
+ .e-button {
39
+ display: inline-block;
40
+ margin: 2rem 0;
41
+ }
42
+ }
43
+ `;
@@ -0,0 +1,43 @@
1
+ import { device } from '../../../globalStyles/breakpoints'
2
+ import styled from 'styled-components'
3
+ export const PreFooterStyled = styled.section`
4
+ background-color: var(--primary-main-light-6);
5
+ text-align: center;
6
+
7
+ .prefooter {
8
+ margin: 0 1.5rem;
9
+
10
+ @media ${device['landscape-tablets']} {
11
+ margin: 0;
12
+ }
13
+
14
+ &__title {
15
+ color: var(--neutral-neutral-1);
16
+ display: inline-block;
17
+ margin: 2rem 0 0;
18
+ }
19
+
20
+ &__columns {
21
+ display: flex;
22
+ flex-direction: column;
23
+ align-items: center;
24
+ justify-content: space-between;
25
+
26
+ @media ${device['landscape-tablets']} {
27
+ flex-direction: row;
28
+ margin: 0 1rem;
29
+ align-items: flex-start;
30
+ }
31
+
32
+ &__text {
33
+ width: 16.375rem;
34
+ color: var(--neutral-neutral-1);
35
+ margin: 2rem 0.5rem 0 0.5rem;
36
+ }
37
+ }
38
+ .e-button {
39
+ display: inline-block;
40
+ margin: 2rem 0;
41
+ }
42
+ }
43
+ `
@@ -0,0 +1,34 @@
1
+ import React from 'react'
2
+
3
+ import { Button } from '../Button'
4
+ import { PreFooterProps } from './PreFooterProps'
5
+ import { PreFooterStyled } from './PreFooter.styled'
6
+
7
+ export const PreFooter: React.FC<PreFooterProps> = ({
8
+ siteName,
9
+ content,
10
+ ctaLabel,
11
+ ctaOnClick,
12
+ ctaDataQa,
13
+ ctaLink
14
+ }) => {
15
+ return (
16
+ <PreFooterStyled>
17
+ <div className='wrapper'>
18
+ <div className='prefooter'>
19
+ <div className='serif --hero prefooter__title'>Try {siteName} Now</div>
20
+ <div className='prefooter__columns'>
21
+ {content.map((text, index) => {
22
+ return (
23
+ <p key={index} className='prefooter__columns__text'>
24
+ {text}
25
+ </p>
26
+ )
27
+ })}
28
+ </div>
29
+ <Button label={ctaLabel} onClick={ctaOnClick} link={ctaLink} dataQa={ctaDataQa} isExternal hasNoFollow />
30
+ </div>
31
+ </div>
32
+ </PreFooterStyled>
33
+ )
34
+ }
@@ -0,0 +1,8 @@
1
+ export interface PreFooterProps {
2
+ siteName: string;
3
+ content: string[];
4
+ ctaLabel: string;
5
+ ctaOnClick: () => void;
6
+ ctaDataQa: string;
7
+ ctaLink: string;
8
+ }
@@ -0,0 +1,8 @@
1
+ export interface PreFooterProps {
2
+ siteName: string
3
+ content: string[]
4
+ ctaLabel: string
5
+ ctaOnClick: () => void
6
+ ctaDataQa: string
7
+ ctaLink: string
8
+ }
@@ -0,0 +1,2 @@
1
+ export * from './PreFooter';
2
+ export * from './PreFooterProps';
@@ -0,0 +1,2 @@
1
+ export * from './PreFooter';
2
+ export * from './PreFooterProps';
@@ -0,0 +1,2 @@
1
+ export * from './PreFooter'
2
+ export * from './PreFooterProps'
@@ -19,6 +19,7 @@ export * from './DocumentStatus';
19
19
  export * from './DocumentTag';
20
20
  export * from './ExpertCard';
21
21
  export * from './FeatureRatafiaCard';
22
+ export * from './FixedFooter';
22
23
  export * from './FormFaq';
23
24
  export * from './GoogleButton';
24
25
  export * from './IconImage';
@@ -36,6 +37,7 @@ export * from './MoreDocsItem';
36
37
  export * from './NavMenuItem';
37
38
  export * from './PaypalButton';
38
39
  export * from './PopularDocsItem';
40
+ export * from './PreFooter';
39
41
  export * from './ProgressBar';
40
42
  export * from './Radio';
41
43
  export * from './RemoveButton';
@@ -19,6 +19,7 @@ export * from './DocumentStatus';
19
19
  export * from './DocumentTag';
20
20
  export * from './ExpertCard';
21
21
  export * from './FeatureRatafiaCard';
22
+ export * from './FixedFooter';
22
23
  export * from './FormFaq';
23
24
  export * from './GoogleButton';
24
25
  export * from './IconImage';
@@ -36,6 +37,7 @@ export * from './MoreDocsItem';
36
37
  export * from './NavMenuItem';
37
38
  export * from './PaypalButton';
38
39
  export * from './PopularDocsItem';
40
+ export * from './PreFooter';
39
41
  export * from './ProgressBar';
40
42
  export * from './Radio';
41
43
  export * from './RemoveButton';