@npm_leadtech/legal-lib-components 7.25.4 → 7.25.5

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 (69) hide show
  1. package/dist/src/components/atoms/Logo/Logo.js +2 -2
  2. package/dist/src/components/atoms/Logo/Logo.tsx +1 -3
  3. package/dist/src/components/atoms/Logo/LogoProps.types.d.ts +0 -1
  4. package/dist/src/components/atoms/Logo/LogoProps.types.ts +0 -1
  5. package/dist/src/components/atoms/SearchSelect/SearchSelect.js +1 -7
  6. package/dist/src/components/atoms/SearchSelect/SearchSelect.tsx +1 -6
  7. package/dist/src/components/molecules/LawGeniusInfoCard/LawGeniusInfoCard.d.ts +3 -0
  8. package/dist/src/components/molecules/LawGeniusInfoCard/LawGeniusInfoCard.js +5 -0
  9. package/dist/src/components/molecules/LawGeniusInfoCard/LawGeniusInfoCard.styled.d.ts +1 -0
  10. package/dist/src/components/molecules/LawGeniusInfoCard/LawGeniusInfoCard.styled.js +50 -0
  11. package/dist/src/components/molecules/LawGeniusInfoCard/LawGeniusInfoCard.styled.ts +51 -0
  12. package/dist/src/components/molecules/LawGeniusInfoCard/LawGeniusInfoCard.tsx +20 -0
  13. package/dist/src/components/molecules/LawGeniusInfoCard/LawGeniusInfoCardProps.d.ts +5 -0
  14. package/dist/src/components/molecules/LawGeniusInfoCard/LawGeniusInfoCardProps.js +1 -0
  15. package/dist/src/components/molecules/LawGeniusInfoCard/LawGeniusInfoCardProps.ts +5 -0
  16. package/dist/src/components/molecules/LawGeniusInfoCard/index.d.ts +2 -0
  17. package/dist/src/components/molecules/LawGeniusInfoCard/index.js +2 -0
  18. package/dist/src/components/molecules/LawGeniusInfoCard/index.ts +2 -0
  19. package/dist/src/components/organisms/BottomFooter/BottomFooter.js +1 -1
  20. package/dist/src/components/organisms/BottomFooter/BottomFooter.tsx +1 -8
  21. package/dist/src/components/organisms/TryOurFreeLegalBlogsContent/TryOurFreeLegalBlogsContent.js +3 -1
  22. package/dist/src/components/organisms/TryOurFreeLegalBlogsContent/TryOurFreeLegalBlogsContent.styled.js +4 -2
  23. package/dist/src/components/organisms/TryOurFreeLegalBlogsContent/TryOurFreeLegalBlogsContent.styled.ts +4 -2
  24. package/dist/src/components/organisms/TryOurFreeLegalBlogsContent/TryOurFreeLegalBlogsContent.tsx +4 -1
  25. package/dist/src/components/organisms/TryOurFreeLegalBlogsContent/TryOurFreeLegalBlogsContentProps.types.d.ts +3 -1
  26. package/dist/src/components/organisms/TryOurFreeLegalBlogsContent/TryOurFreeLegalBlogsContentProps.types.js +2 -0
  27. package/dist/src/components/organisms/TryOurFreeLegalBlogsContent/TryOurFreeLegalBlogsContentProps.types.ts +3 -1
  28. package/dist/src/components/pages/HowItWorksPage/HowItWorksPage.d.ts +3 -0
  29. package/dist/src/components/pages/HowItWorksPage/HowItWorksPage.js +5 -0
  30. package/dist/src/components/pages/HowItWorksPage/HowItWorksPage.tsx +26 -0
  31. package/dist/src/components/pages/HowItWorksPage/HowItWorksPageProps.d.ts +10 -0
  32. package/dist/src/components/pages/HowItWorksPage/HowItWorksPageProps.js +1 -0
  33. package/dist/src/components/pages/HowItWorksPage/HowItWorksPageProps.ts +16 -0
  34. package/dist/src/components/pages/HowItWorksPage/index.d.ts +2 -0
  35. package/dist/src/components/pages/HowItWorksPage/index.js +2 -0
  36. package/dist/src/components/pages/HowItWorksPage/index.ts +2 -0
  37. package/dist/src/components/sections/LawGeniusCardsSection/LawGeniusCardsSection.d.ts +4 -0
  38. package/dist/src/components/sections/LawGeniusCardsSection/LawGeniusCardsSection.js +12 -0
  39. package/dist/src/components/sections/LawGeniusCardsSection/LawGeniusCardsSection.styled.d.ts +1 -0
  40. package/dist/src/components/sections/LawGeniusCardsSection/LawGeniusCardsSection.styled.js +94 -0
  41. package/dist/src/components/sections/LawGeniusCardsSection/LawGeniusCardsSection.styled.ts +95 -0
  42. package/dist/src/components/sections/LawGeniusCardsSection/LawGeniusCardsSection.tsx +69 -0
  43. package/dist/src/components/sections/LawGeniusCardsSection/LawGeniusCardsSectionProps.types.d.ts +15 -0
  44. package/dist/src/components/sections/LawGeniusCardsSection/LawGeniusCardsSectionProps.types.js +1 -0
  45. package/dist/src/components/sections/LawGeniusCardsSection/LawGeniusCardsSectionProps.types.ts +16 -0
  46. package/dist/src/components/sections/LawGeniusCardsSection/index.d.ts +2 -0
  47. package/dist/src/components/sections/LawGeniusCardsSection/index.js +1 -0
  48. package/dist/src/components/sections/LawGeniusCardsSection/index.ts +2 -0
  49. package/dist/src/components/sections/TryNowSection/TryNowSection.d.ts +3 -0
  50. package/dist/src/components/sections/TryNowSection/TryNowSection.js +6 -0
  51. package/dist/src/components/sections/TryNowSection/TryNowSection.styled.d.ts +1 -0
  52. package/dist/src/components/sections/TryNowSection/TryNowSection.styled.js +186 -0
  53. package/dist/src/components/sections/TryNowSection/TryNowSection.styled.ts +187 -0
  54. package/dist/src/components/sections/TryNowSection/TryNowSection.tsx +28 -0
  55. package/dist/src/components/sections/TryNowSection/TryNowSectionProps.d.ts +8 -0
  56. package/dist/src/components/sections/TryNowSection/TryNowSectionProps.js +1 -0
  57. package/dist/src/components/sections/TryNowSection/TryNowSectionProps.ts +9 -0
  58. package/dist/src/components/sections/TryNowSection/index.d.ts +2 -0
  59. package/dist/src/components/sections/TryNowSection/index.js +1 -0
  60. package/dist/src/components/sections/TryNowSection/index.ts +2 -0
  61. package/dist/src/components/sections/TryOurFreeLegalBlogsSection/TryOurFreeLegalBlogsSection.js +9 -1
  62. package/dist/src/components/sections/TryOurFreeLegalBlogsSection/TryOurFreeLegalBlogsSection.styled.js +4 -0
  63. package/dist/src/components/sections/TryOurFreeLegalBlogsSection/TryOurFreeLegalBlogsSection.styled.ts +4 -0
  64. package/dist/src/components/sections/TryOurFreeLegalBlogsSection/TryOurFreeLegalBlogsSection.tsx +11 -1
  65. package/dist/src/components/sections/index.d.ts +3 -0
  66. package/dist/src/components/sections/index.js +3 -0
  67. package/dist/src/components/sections/index.ts +3 -0
  68. package/dist/tsconfig.build.tsbuildinfo +1 -1
  69. package/package.json +1 -1
@@ -43,6 +43,6 @@ const LOGOS = {
43
43
  white: lawdistrictonlineWhite
44
44
  }
45
45
  };
46
- export const Logo = ({ className, siteName = 'lawdistrict', type = 'default', width, height, isLoadingLazy = false }) => {
47
- return (_jsx("img", { className: className, src: LOGOS[siteName.toLowerCase()][type], alt: `${siteName} logo`, width: width, height: height, loading: isLoadingLazy ? 'lazy' : 'eager' }));
46
+ export const Logo = ({ className, siteName = 'lawdistrict', type = 'default', width, height }) => {
47
+ return (_jsx("img", { className: className, src: LOGOS[siteName.toLowerCase()][type], alt: `${siteName} logo`, width: width, height: height }));
48
48
  };
@@ -55,8 +55,7 @@ export const Logo: FC<LogoProps> = ({
55
55
  siteName = 'lawdistrict',
56
56
  type = 'default',
57
57
  width,
58
- height,
59
- isLoadingLazy = false
58
+ height
60
59
  }): React.ReactElement => {
61
60
  return (
62
61
  <img
@@ -65,7 +64,6 @@ export const Logo: FC<LogoProps> = ({
65
64
  alt={`${siteName} logo`}
66
65
  width={width}
67
66
  height={height}
68
- loading={isLoadingLazy ? 'lazy' : 'eager'}
69
67
  />
70
68
  )
71
69
  }
@@ -4,5 +4,4 @@ export interface LogoProps {
4
4
  width?: string;
5
5
  height?: string;
6
6
  type?: string;
7
- isLoadingLazy?: boolean;
8
7
  }
@@ -4,5 +4,4 @@ export interface LogoProps {
4
4
  width?: string
5
5
  height?: string
6
6
  type?: string
7
- isLoadingLazy?: boolean
8
7
  }
@@ -1,6 +1,4 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /* eslint-disable @typescript-eslint/no-explicit-any */
3
- import React from 'react';
4
2
  import Select from 'react-select';
5
3
  import { SearchSelectStyled } from './SearchSelect.styled';
6
4
  import classNames from 'classnames';
@@ -25,7 +23,6 @@ const getSortedItems = (items, isSortAlphabetically = false) => {
25
23
  };
26
24
  const SearchSelect = (props) => {
27
25
  const { customClass = '', menuPlacement = MenuPlacement.bottom } = props;
28
- const [menuPortalTarget, setMenuPortalTarget] = React.useState();
29
26
  const sortedItems = getSortedItems(props.items, props.isSortAlphabetically);
30
27
  const defaultValue = props.defaultValue;
31
28
  const classnames = classNames({
@@ -34,9 +31,6 @@ const SearchSelect = (props) => {
34
31
  [customClass]: props.customClass,
35
32
  '--group-invalid': !props.isValidGroup
36
33
  });
37
- React.useEffect(() => {
38
- setMenuPortalTarget(document.body);
39
- }, []);
40
34
  const handleChange = (selectedOption) => {
41
35
  const selectObject = {
42
36
  target: {
@@ -57,6 +51,6 @@ const SearchSelect = (props) => {
57
51
  };
58
52
  },
59
53
  menuPortal: (base) => ({ ...base, zIndex: 9999 })
60
- }, id: props.name, name: props.name, className: 'legal-selector', defaultValue: defaultValue, onChange: handleChange, isDisabled: props.disabled, isSearchable: props.isSearchable !== false, options: sortedItems, escapeClearsValue: true, isClearable: true, menuPortalTarget: menuPortalTarget, placeholder: props.placeholder, defaultMenuIsOpen: props.defaultMenuIsOpen, menuPlacement: menuPlacement })] })] }));
54
+ }, id: props.name, name: props.name, className: 'legal-selector', defaultValue: defaultValue, onChange: handleChange, isDisabled: props.disabled, isSearchable: props.isSearchable !== false, options: sortedItems, escapeClearsValue: true, isClearable: true, menuPortalTarget: document.body, placeholder: props.placeholder, defaultMenuIsOpen: props.defaultMenuIsOpen, menuPlacement: menuPlacement })] })] }));
61
55
  };
62
56
  export default SearchSelect;
@@ -28,7 +28,6 @@ const getSortedItems = (items: any, isSortAlphabetically: boolean | undefined =
28
28
 
29
29
  const SearchSelect: FC<SearchSelectProps> = (props) => {
30
30
  const { customClass = '', menuPlacement = MenuPlacement.bottom } = props
31
- const [menuPortalTarget, setMenuPortalTarget] = React.useState<HTMLElement | undefined>()
32
31
  const sortedItems = getSortedItems(props.items, props.isSortAlphabetically)
33
32
  const defaultValue = props.defaultValue as unknown as string
34
33
 
@@ -39,10 +38,6 @@ const SearchSelect: FC<SearchSelectProps> = (props) => {
39
38
  '--group-invalid': !props.isValidGroup
40
39
  })
41
40
 
42
- React.useEffect(() => {
43
- setMenuPortalTarget(document.body)
44
- }, [])
45
-
46
41
  const handleChange = (selectedOption): void => {
47
42
  const selectObject = {
48
43
  target: {
@@ -95,7 +90,7 @@ const SearchSelect: FC<SearchSelectProps> = (props) => {
95
90
  options={sortedItems}
96
91
  escapeClearsValue={true}
97
92
  isClearable={true}
98
- menuPortalTarget={menuPortalTarget}
93
+ menuPortalTarget={document.body}
99
94
  placeholder={props.placeholder}
100
95
  defaultMenuIsOpen={props.defaultMenuIsOpen}
101
96
  menuPlacement={menuPlacement}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { LawGeniusInfoCardProps } from './LawGeniusInfoCardProps';
3
+ export declare const LawGeniusInfoCard: React.FC<LawGeniusInfoCardProps>;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { LawGeniusInfoCardStyled } from './LawGeniusInfoCard.styled';
3
+ export const LawGeniusInfoCard = ({ icon, title = '', text = '' }) => {
4
+ return (_jsx(LawGeniusInfoCardStyled, { className: 'info-card', children: _jsx("div", { className: 'info-card-wrapper', children: _jsxs("div", { className: 'content', children: [_jsxs("p", { className: 'title', children: [_jsx("div", { className: 'info-icon', children: icon }), title] }), _jsx("p", { className: 'text', children: text })] }) }) }));
5
+ };
@@ -0,0 +1 @@
1
+ export declare const LawGeniusInfoCardStyled: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
@@ -0,0 +1,50 @@
1
+ import styled from 'styled-components';
2
+ export const LawGeniusInfoCardStyled = styled.div `
3
+ width: 100%;
4
+ background-color: var(--others-white);
5
+ border-radius: var(--s-border-radius);
6
+ margin-top: 1rem;
7
+ margin-bottom: 1rem;
8
+ display: flex;
9
+ align-items: center;
10
+ padding: 1rem 1.5rem;
11
+
12
+ .info-card-wrapper {
13
+ display: flex;
14
+ }
15
+
16
+ @media not all and (min-resolution: 0.001dpcm) {
17
+ @supports (-webkit-appearance: none) {
18
+ letter-spacing: -1px;
19
+ }
20
+ }
21
+
22
+ .info-icon {
23
+ margin-top: 0.1rem;
24
+ margin-right: 0.5rem;
25
+
26
+ path {
27
+ fill: var(--primary-main-dark-1);
28
+ }
29
+ }
30
+
31
+ .title {
32
+ display: flex;
33
+ color: var(--primary-main-dark-1);
34
+ font-size: 1rem;
35
+ font-weight: bold;
36
+
37
+ &.email {
38
+ text-decoration: underline;
39
+ }
40
+
41
+ a {
42
+ color: var(--primary-main-dark-1);
43
+ }
44
+ }
45
+
46
+ .text {
47
+ font-size: 0.875rem;
48
+ color: var(--neutral-neutral-2);
49
+ }
50
+ `;
@@ -0,0 +1,51 @@
1
+ import styled from 'styled-components'
2
+
3
+ export const LawGeniusInfoCardStyled = styled.div`
4
+ width: 100%;
5
+ background-color: var(--others-white);
6
+ border-radius: var(--s-border-radius);
7
+ margin-top: 1rem;
8
+ margin-bottom: 1rem;
9
+ display: flex;
10
+ align-items: center;
11
+ padding: 1rem 1.5rem;
12
+
13
+ .info-card-wrapper {
14
+ display: flex;
15
+ }
16
+
17
+ @media not all and (min-resolution: 0.001dpcm) {
18
+ @supports (-webkit-appearance: none) {
19
+ letter-spacing: -1px;
20
+ }
21
+ }
22
+
23
+ .info-icon {
24
+ margin-top: 0.1rem;
25
+ margin-right: 0.5rem;
26
+
27
+ path {
28
+ fill: var(--primary-main-dark-1);
29
+ }
30
+ }
31
+
32
+ .title {
33
+ display: flex;
34
+ color: var(--primary-main-dark-1);
35
+ font-size: 1rem;
36
+ font-weight: bold;
37
+
38
+ &.email {
39
+ text-decoration: underline;
40
+ }
41
+
42
+ a {
43
+ color: var(--primary-main-dark-1);
44
+ }
45
+ }
46
+
47
+ .text {
48
+ font-size: 0.875rem;
49
+ color: var(--neutral-neutral-2);
50
+ }
51
+ `
@@ -0,0 +1,20 @@
1
+ import React from 'react'
2
+
3
+ import { LawGeniusInfoCardProps } from './LawGeniusInfoCardProps'
4
+ import { LawGeniusInfoCardStyled } from './LawGeniusInfoCard.styled'
5
+
6
+ export const LawGeniusInfoCard: React.FC<LawGeniusInfoCardProps> = ({ icon, title = '', text = '' }) => {
7
+ return (
8
+ <LawGeniusInfoCardStyled className='info-card'>
9
+ <div className='info-card-wrapper'>
10
+ <div className='content'>
11
+ <p className='title'>
12
+ <div className='info-icon'>{icon}</div>
13
+ {title}
14
+ </p>
15
+ <p className='text'>{text}</p>
16
+ </div>
17
+ </div>
18
+ </LawGeniusInfoCardStyled>
19
+ )
20
+ }
@@ -0,0 +1,5 @@
1
+ export interface LawGeniusInfoCardProps {
2
+ title: string;
3
+ text: string;
4
+ icon: React.ReactNode;
5
+ }
@@ -0,0 +1,5 @@
1
+ export interface LawGeniusInfoCardProps {
2
+ title: string
3
+ text: string
4
+ icon: React.ReactNode
5
+ }
@@ -0,0 +1,2 @@
1
+ export * from './LawGeniusInfoCard';
2
+ export * from './LawGeniusInfoCardProps';
@@ -0,0 +1,2 @@
1
+ export * from './LawGeniusInfoCard';
2
+ export * from './LawGeniusInfoCardProps';
@@ -0,0 +1,2 @@
1
+ export * from './LawGeniusInfoCard'
2
+ export * from './LawGeniusInfoCardProps'
@@ -3,5 +3,5 @@ import { BottomFooterStyled, BottomFooterText, BottomFooterWrapper, CompanyLink,
3
3
  import { Logo } from '../../atoms/Logo/Logo';
4
4
  import { SocialLinks } from '../../molecules/SocialLinks';
5
5
  export const BottomFooter = ({ siteName, companyLinks, socialLinks, disclaimerText, copyrightText }) => {
6
- return (_jsx(BottomFooterWrapper, { children: _jsxs(BottomFooterStyled, { children: [_jsxs(LogoSocialsWrapper, { className: 'footer__logo', children: [_jsx(Logo, { className: 'footer__lawdistrict', siteName: siteName, width: '138', height: '24', type: 'white', isLoadingLazy: true }), socialLinks && _jsx(SocialLinks, { links: socialLinks })] }), _jsx("div", { children: _jsx(CompanyList, { children: companyLinks?.map((link) => (_jsx("li", { children: _jsx(CompanyLink, { href: link.url, className: 'sans-serif --extra-small', "data-qa": link.dataQa, rel: link.rel, children: link.name }) }, link.url))) }) }), _jsx(BottomFooterText, { className: 'sans-serif --extra-small', children: disclaimerText }), _jsx(BottomFooterText, { className: 'sans-serif --extra-small', children: copyrightText })] }) }));
6
+ return (_jsx(BottomFooterWrapper, { children: _jsxs(BottomFooterStyled, { children: [_jsxs(LogoSocialsWrapper, { className: 'footer__logo', children: [_jsx(Logo, { className: 'footer__lawdistrict', siteName: siteName, width: '138', height: '24', type: 'white' }), socialLinks && _jsx(SocialLinks, { links: socialLinks })] }), _jsx("div", { children: _jsx(CompanyList, { children: companyLinks?.map((link) => (_jsx("li", { children: _jsx(CompanyLink, { href: link.url, className: 'sans-serif --extra-small', "data-qa": link.dataQa, rel: link.rel, children: link.name }) }, link.url))) }) }), _jsx(BottomFooterText, { className: 'sans-serif --extra-small', children: disclaimerText }), _jsx(BottomFooterText, { className: 'sans-serif --extra-small', children: copyrightText })] }) }));
7
7
  };
@@ -22,14 +22,7 @@ export const BottomFooter: React.FC<BottomFooterProps> = ({
22
22
  <BottomFooterWrapper>
23
23
  <BottomFooterStyled>
24
24
  <LogoSocialsWrapper className={'footer__logo'}>
25
- <Logo
26
- className='footer__lawdistrict'
27
- siteName={siteName}
28
- width='138'
29
- height='24'
30
- type='white'
31
- isLoadingLazy
32
- />
25
+ <Logo className='footer__lawdistrict' siteName={siteName} width='138' height='24' type='white' />
33
26
  {socialLinks && <SocialLinks links={socialLinks} />}
34
27
  </LogoSocialsWrapper>
35
28
  <div>
@@ -7,7 +7,9 @@ const TryOurFreeLegalBlogsContent = ({ title, image, children, type = TryOurFree
7
7
  const classTry = classNames({
8
8
  'try-our-free-legal-blogs-section-content': true,
9
9
  'try-our-free-legal-blogs-section-content--our-mission': TryOurFreeLegalBlogsContentType.ourMission === type,
10
- 'try-our-free-legal-blogs-section-content--our-mission-first-image': TryOurFreeLegalBlogsContentType.ourMissionFirstImage === type
10
+ 'try-our-free-legal-blogs-section-content--our-mission-first-image': TryOurFreeLegalBlogsContentType.ourMissionFirstImage === type,
11
+ 'try-our-free-legal-blogs-section-content--how-it-works': TryOurFreeLegalBlogsContentType.howItWorks === type,
12
+ 'try-our-free-legal-blogs-section-content--how-it-works-first-image': TryOurFreeLegalBlogsContentType.howItWorksFirstImage === type
11
13
  });
12
14
  return (_jsxs(TryOurFreeLegalBlogsContentStyled, { className: classTry, children: [_jsxs("div", { className: 'try-our-free-legal-blogs-section__texts', children: [_jsx("h2", { className: 'try-our-free-legal-blogs-section__texts__title', children: title }), _jsx(RichTextInner, { customClass: 'try-our-free-legal-blogs-section__texts__body', children: children })] }), _jsx("div", { className: 'try-our-free-legal-blogs-section__image', children: image })] }));
13
15
  };
@@ -7,7 +7,8 @@ export const TryOurFreeLegalBlogsContentStyled = styled.div `
7
7
  flex-direction: row;
8
8
  }
9
9
 
10
- &.try-our-free-legal-blogs-section-content--our-mission {
10
+ &.try-our-free-legal-blogs-section-content--our-mission,
11
+ &.try-our-free-legal-blogs-section-content--how-it-works {
11
12
  margin-top: 1.5rem;
12
13
  margin-bottom: 1.5rem;
13
14
  align-items: center;
@@ -30,7 +31,8 @@ export const TryOurFreeLegalBlogsContentStyled = styled.div `
30
31
  }
31
32
  }
32
33
 
33
- &.try-our-free-legal-blogs-section-content--our-mission-first-image {
34
+ &.try-our-free-legal-blogs-section-content--our-mission-first-image,
35
+ &.try-our-free-legal-blogs-section-content--how-it-works-first-image {
34
36
  margin-top: 1.5rem;
35
37
  margin-bottom: 1.5rem;
36
38
  align-items: center;
@@ -8,7 +8,8 @@ export const TryOurFreeLegalBlogsContentStyled = styled.div`
8
8
  flex-direction: row;
9
9
  }
10
10
 
11
- &.try-our-free-legal-blogs-section-content--our-mission {
11
+ &.try-our-free-legal-blogs-section-content--our-mission,
12
+ &.try-our-free-legal-blogs-section-content--how-it-works {
12
13
  margin-top: 1.5rem;
13
14
  margin-bottom: 1.5rem;
14
15
  align-items: center;
@@ -31,7 +32,8 @@ export const TryOurFreeLegalBlogsContentStyled = styled.div`
31
32
  }
32
33
  }
33
34
 
34
- &.try-our-free-legal-blogs-section-content--our-mission-first-image {
35
+ &.try-our-free-legal-blogs-section-content--our-mission-first-image,
36
+ &.try-our-free-legal-blogs-section-content--how-it-works-first-image {
35
37
  margin-top: 1.5rem;
36
38
  margin-bottom: 1.5rem;
37
39
  align-items: center;
@@ -18,7 +18,10 @@ const TryOurFreeLegalBlogsContent: FC<TryOurFreeLegalBlogsContentProps> = ({
18
18
  'try-our-free-legal-blogs-section-content': true,
19
19
  'try-our-free-legal-blogs-section-content--our-mission': TryOurFreeLegalBlogsContentType.ourMission === type,
20
20
  'try-our-free-legal-blogs-section-content--our-mission-first-image':
21
- TryOurFreeLegalBlogsContentType.ourMissionFirstImage === type
21
+ TryOurFreeLegalBlogsContentType.ourMissionFirstImage === type,
22
+ 'try-our-free-legal-blogs-section-content--how-it-works': TryOurFreeLegalBlogsContentType.howItWorks === type,
23
+ 'try-our-free-legal-blogs-section-content--how-it-works-first-image':
24
+ TryOurFreeLegalBlogsContentType.howItWorksFirstImage === type
22
25
  })
23
26
  return (
24
27
  <TryOurFreeLegalBlogsContentStyled className={classTry}>
@@ -1,7 +1,9 @@
1
1
  export declare enum TryOurFreeLegalBlogsContentType {
2
2
  default = "Default",
3
3
  ourMission = "Our Mission",
4
- ourMissionFirstImage = "Our Mission First Image"
4
+ ourMissionFirstImage = "Our Mission First Image",
5
+ howItWorks = "How It Works",
6
+ howItWorksFirstImage = "How It Works First Image"
5
7
  }
6
8
  export interface TryOurFreeLegalBlogsContentProps {
7
9
  title: string;
@@ -3,4 +3,6 @@ export var TryOurFreeLegalBlogsContentType;
3
3
  TryOurFreeLegalBlogsContentType["default"] = "Default";
4
4
  TryOurFreeLegalBlogsContentType["ourMission"] = "Our Mission";
5
5
  TryOurFreeLegalBlogsContentType["ourMissionFirstImage"] = "Our Mission First Image";
6
+ TryOurFreeLegalBlogsContentType["howItWorks"] = "How It Works";
7
+ TryOurFreeLegalBlogsContentType["howItWorksFirstImage"] = "How It Works First Image";
6
8
  })(TryOurFreeLegalBlogsContentType || (TryOurFreeLegalBlogsContentType = {}));
@@ -1,7 +1,9 @@
1
1
  export enum TryOurFreeLegalBlogsContentType {
2
2
  default = 'Default',
3
3
  ourMission = 'Our Mission',
4
- ourMissionFirstImage = 'Our Mission First Image'
4
+ ourMissionFirstImage = 'Our Mission First Image',
5
+ howItWorks = 'How It Works',
6
+ howItWorksFirstImage = 'How It Works First Image'
5
7
  }
6
8
 
7
9
  export interface TryOurFreeLegalBlogsContentProps {
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { type HowItWorksPageProps } from './HowItWorksPageProps';
3
+ export declare const HowItWorksPage: React.FC<HowItWorksPageProps>;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { HeroSection, LawGeniusCardsSection, TryNowSection, TryOurFreeLegalBlogsSection } from '../../sections';
3
+ export const HowItWorksPage = ({ aboutUsSectionProps, howItWorksStep1Props, howItWorksStep2Props, howItWorksStep3Props, howItWorksStep4Props, lawGeniusCardsSectionProps, tryNowSectionProps }) => {
4
+ return (_jsxs(_Fragment, { children: [aboutUsSectionProps != null && _jsx(HeroSection, { ...aboutUsSectionProps }), howItWorksStep1Props != null && _jsx(TryOurFreeLegalBlogsSection, { ...howItWorksStep1Props }), howItWorksStep2Props != null && _jsx(TryOurFreeLegalBlogsSection, { ...howItWorksStep2Props }), howItWorksStep3Props != null && _jsx(TryOurFreeLegalBlogsSection, { ...howItWorksStep3Props }), howItWorksStep4Props != null && _jsx(TryOurFreeLegalBlogsSection, { ...howItWorksStep4Props }), lawGeniusCardsSectionProps != null && _jsx(LawGeniusCardsSection, { ...lawGeniusCardsSectionProps }), tryNowSectionProps != null && _jsx(TryNowSection, { ...tryNowSectionProps })] }));
5
+ };
@@ -0,0 +1,26 @@
1
+ import React from 'react'
2
+
3
+ import { HeroSection, LawGeniusCardsSection, TryNowSection, TryOurFreeLegalBlogsSection } from '../../sections'
4
+ import { type HowItWorksPageProps } from './HowItWorksPageProps'
5
+
6
+ export const HowItWorksPage: React.FC<HowItWorksPageProps> = ({
7
+ aboutUsSectionProps,
8
+ howItWorksStep1Props,
9
+ howItWorksStep2Props,
10
+ howItWorksStep3Props,
11
+ howItWorksStep4Props,
12
+ lawGeniusCardsSectionProps,
13
+ tryNowSectionProps
14
+ }) => {
15
+ return (
16
+ <>
17
+ {aboutUsSectionProps != null && <HeroSection {...aboutUsSectionProps} />}
18
+ {howItWorksStep1Props != null && <TryOurFreeLegalBlogsSection {...howItWorksStep1Props} />}
19
+ {howItWorksStep2Props != null && <TryOurFreeLegalBlogsSection {...howItWorksStep2Props} />}
20
+ {howItWorksStep3Props != null && <TryOurFreeLegalBlogsSection {...howItWorksStep3Props} />}
21
+ {howItWorksStep4Props != null && <TryOurFreeLegalBlogsSection {...howItWorksStep4Props} />}
22
+ {lawGeniusCardsSectionProps != null && <LawGeniusCardsSection {...lawGeniusCardsSectionProps} />}
23
+ {tryNowSectionProps != null && <TryNowSection {...tryNowSectionProps} />}
24
+ </>
25
+ )
26
+ }
@@ -0,0 +1,10 @@
1
+ import type { HeroSectionProps, LawGeniusCardsSectionProps, TryNowSectionProps, TryOurFreeLegalBlogsSectionProps } from '../../sections';
2
+ export interface HowItWorksPageProps {
3
+ aboutUsSectionProps?: HeroSectionProps;
4
+ howItWorksStep1Props?: TryOurFreeLegalBlogsSectionProps;
5
+ howItWorksStep2Props?: TryOurFreeLegalBlogsSectionProps;
6
+ howItWorksStep3Props?: TryOurFreeLegalBlogsSectionProps;
7
+ howItWorksStep4Props?: TryOurFreeLegalBlogsSectionProps;
8
+ lawGeniusCardsSectionProps?: LawGeniusCardsSectionProps;
9
+ tryNowSectionProps?: TryNowSectionProps;
10
+ }
@@ -0,0 +1,16 @@
1
+ import type {
2
+ HeroSectionProps,
3
+ LawGeniusCardsSectionProps,
4
+ TryNowSectionProps,
5
+ TryOurFreeLegalBlogsSectionProps
6
+ } from '../../sections'
7
+
8
+ export interface HowItWorksPageProps {
9
+ aboutUsSectionProps?: HeroSectionProps
10
+ howItWorksStep1Props?: TryOurFreeLegalBlogsSectionProps
11
+ howItWorksStep2Props?: TryOurFreeLegalBlogsSectionProps
12
+ howItWorksStep3Props?: TryOurFreeLegalBlogsSectionProps
13
+ howItWorksStep4Props?: TryOurFreeLegalBlogsSectionProps
14
+ lawGeniusCardsSectionProps?: LawGeniusCardsSectionProps
15
+ tryNowSectionProps?: TryNowSectionProps
16
+ }
@@ -0,0 +1,2 @@
1
+ export * from './HowItWorksPage';
2
+ export * from './HowItWorksPageProps';
@@ -0,0 +1,2 @@
1
+ export * from './HowItWorksPage';
2
+ export * from './HowItWorksPageProps';
@@ -0,0 +1,2 @@
1
+ export * from './HowItWorksPage'
2
+ export * from './HowItWorksPageProps'
@@ -0,0 +1,4 @@
1
+ import { type FC } from 'react';
2
+ import { type LawGeniusCardsSectionProps } from './LawGeniusCardsSectionProps.types';
3
+ declare const LawGeniusCardsSection: FC<LawGeniusCardsSectionProps>;
4
+ export default LawGeniusCardsSection;
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button } from '../../atoms';
3
+ import { LawGeniusCardsSectionStyled } from './LawGeniusCardsSection.styled';
4
+ import { LawGeniusInfoCard } from '../../molecules/LawGeniusInfoCard';
5
+ import { useIsMobileOrTable } from '../../../hooks';
6
+ const LawGeniusCardsSection = ({ title, contentTop, contentBottom, card1, card2, card3, ctaLabel, ctaLink = '#', handleOnClick, ctaDataQa = 'ai-section-cta', image }) => {
7
+ const { isMobile } = useIsMobileOrTable();
8
+ if (contentTop == undefined)
9
+ return null;
10
+ return (_jsx(LawGeniusCardsSectionStyled, { className: 'layout-ratafia-section', children: _jsxs("div", { className: 'layout-ratafia-section__wrapper background-ratafia-animation', children: [_jsxs("div", { className: 'layout-ratafia-section__topContent', children: [title && (_jsx("h2", { className: 'layout-ratafia-section__wrapper__info__paragraph__title sans-serif --super-large --bold-weight', children: title })), _jsx("div", { className: 'layout-ratafia-section__wrapper__info__paragraph__content sans-serif --super-medium', children: contentTop })] }), _jsxs("div", { className: 'layout-ratafia-section__wrapperContent', children: [_jsxs("div", { className: 'layout-ratafia-section__wrapper__info', children: [_jsxs("div", { className: 'layout-ratafia-section__wrapper__info cards', children: [_jsx(LawGeniusInfoCard, { title: card1?.title ?? '', text: card1?.text ?? '', icon: card1?.icon }), _jsx(LawGeniusInfoCard, { title: card2?.title ?? '', text: card2?.text ?? '', icon: card2?.icon }), _jsx(LawGeniusInfoCard, { title: card3?.title ?? '', text: card3?.text ?? '', icon: card3?.icon })] }), _jsx("div", { className: 'layout-ratafia-section__wrapper__info__paragraph__content sans-serif --super-medium bottomContent', children: contentBottom }), ctaLabel && (_jsx("div", { className: 'layout-ratafia-section__wrapper__info__button', children: _jsx(Button, { givenClass: 'mid-banner-ratafia-content__cta', dataQa: ctaDataQa, link: ctaLink, onClick: handleOnClick, color: 'primary', label: ctaLabel, fluid: isMobile }) }))] }), image !== null && _jsx("div", { className: 'layout-ratafia-section__wrapper__image', children: image })] })] }) }));
11
+ };
12
+ export default LawGeniusCardsSection;
@@ -0,0 +1 @@
1
+ export declare const LawGeniusCardsSectionStyled: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, never>> & string;
@@ -0,0 +1,94 @@
1
+ import { device } from '../../../globalStyles/breakpoints';
2
+ import styled from 'styled-components';
3
+ export const LawGeniusCardsSectionStyled = styled.section `
4
+ display: flex;
5
+ justify-content: center;
6
+ align-content: center;
7
+ width: 100%;
8
+ background-color: var(--neutral-neutral-6);
9
+ padding: 2rem 1.5rem;
10
+
11
+ @media ${device.laptop} {
12
+ padding: 3rem 2rem;
13
+ }
14
+
15
+ @media ${device['desktop-xl']} {
16
+ padding: 3rem 0;
17
+ }
18
+
19
+ .layout-ratafia-section {
20
+ &__topContent {
21
+ display: flex;
22
+ flex-direction: column;
23
+ color: var(--others-white);
24
+ }
25
+ &__wrapper {
26
+ display: flex;
27
+ flex-direction: column;
28
+ justify-content: center;
29
+ align-items: center;
30
+ align-self: stretch;
31
+ padding: 1.5rem;
32
+ gap: 2rem;
33
+ border-radius: var(--l-border-radius);
34
+ max-width: 1200px;
35
+
36
+ @media ${device['landscape-tablets']} {
37
+ padding: 2.5rem;
38
+ }
39
+
40
+ @media ${device.laptop} {
41
+ gap: 2rem;
42
+ padding: 4rem;
43
+ }
44
+
45
+ &__info {
46
+ display: flex;
47
+ flex-direction: column;
48
+ justify-content: center;
49
+ align-items: flex-start;
50
+ align-self: stretch;
51
+ gap: 1.5rem;
52
+
53
+ .bottomContent {
54
+ p {
55
+ color: var(--others-white);
56
+ }
57
+ }
58
+
59
+ &__paragraph {
60
+ display: flex;
61
+ flex-direction: column;
62
+ gap: var(--global-gap);
63
+ color: var(--others-white);
64
+
65
+ p:not(:last-child) {
66
+ margin-bottom: 1.5rem;
67
+ }
68
+ }
69
+
70
+ &__button {
71
+ display: flex;
72
+ width: 100%;
73
+ }
74
+
75
+ &.cards {
76
+ gap: 1rem;
77
+ }
78
+ }
79
+
80
+ &__image {
81
+ display: flex;
82
+ flex: 325px 0 0;
83
+ img {
84
+ object-fit: cover;
85
+ }
86
+ }
87
+ }
88
+ &__wrapperContent {
89
+ display: flex;
90
+ flex-direction: row;
91
+ gap: 2rem;
92
+ }
93
+ }
94
+ `;