gatsby-core-theme 32.0.6 → 33.0.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.
- package/CHANGELOG.md +35 -0
- package/package.json +1 -1
- package/src/components/atoms/author-box/description/author-description.test.js +65 -0
- package/src/components/atoms/author-box/description/index.js +1 -0
- package/src/components/atoms/image/index.js +6 -4
- package/src/components/atoms/search/autocomplete/operator.js +9 -2
- package/src/components/molecules/bonus/template-one/index.js +10 -1
- package/src/components/molecules/bonus/template-two/index.js +7 -3
- package/src/components/molecules/content/index.js +3 -1
- package/src/components/molecules/newsletter/index.js +1 -1
- package/src/components/molecules/spotlights_v2/icon/template-one/index.js +9 -2
- package/src/components/molecules/spotlights_v2/image/template-one/index.js +9 -2
- package/src/components/molecules/spotlights_v2/image/template-two/index.js +6 -2
- package/src/components/molecules/spotlights_v2/image-text/template-one/index.js +9 -1
- package/src/components/molecules/spotlights_v2/image-text/template-three/index.js +6 -0
- package/src/components/molecules/spotlights_v2/image-text/template-three/item/index.js +11 -1
- package/src/components/molecules/spotlights_v2/image-text/template-two/index.js +9 -1
- package/src/components/molecules/toplist/default-row/index.js +7 -3
- package/src/components/organisms/accordion/variants/template-two/index.js +8 -6
- package/src/components/pages/tracker/index-ssr.js +3 -1
- package/src/components/pages/tracker/index.js +3 -1
- package/src/components/pages/tracker-geo/index-ssr.js +3 -1
- package/src/components/pages/tracker-geo/index.js +3 -1
- package/src/helpers/getters.test.js +21 -0
- package/src/helpers/processor/index.mjs +5 -4
- package/src/helpers/processor/modules.mjs +8 -0
- package/src/helpers/replaceMedia.js +12 -6
- package/src/helpers/replaceMedia.test.js +1 -1
- package/src/helpers/strings.js +3 -2
- package/src/images/icons/check.js +10 -1
- package/src/images/logo.svg +2 -2
- package/src/images/security.svg +2 -2
- package/src/images/verify.svg +2 -2
- package/static/images/bell.svg +2 -2
- package/static/images/logo.svg +2 -2
- package/static/images/notification-bubble.svg +4 -4
- package/static/images/security.svg +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,38 @@
|
|
|
1
|
+
# [33.0.0](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/compare/v32.0.6...v33.0.0) (2024-06-13)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* conflicts ([39c9bb4](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/39c9bb43b9a203276edebbdd0c2e259d32419e8f))
|
|
7
|
+
* content modules not bigger than module ([d3317d3](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/d3317d3b73bdc1d0f22183c7b2b5ff3c76666b37))
|
|
8
|
+
* fix bug for prefilled module ([2d58502](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/2d58502ed2010d7421d81d3037cafa2b8896971d))
|
|
9
|
+
* fix logic ([2d6dfe5](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/2d6dfe5e634952af1d9c391dcc30acc9ccf90d5e))
|
|
10
|
+
* image size ([cb20c7e](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/cb20c7e453599d6baaa58c8eee1e6cfaedde6398))
|
|
11
|
+
* prefilled module ([dc631f8](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/dc631f8fccb81ffe4b1e0bcdb398184b5a4abaae))
|
|
12
|
+
* resolve conflicts ([41d401a](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/41d401a3a4f770a2ba79ab0f872de3c2a852928c))
|
|
13
|
+
* test ([a882a09](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/a882a092ac1f3206320940134ad6c7b378f3d7c1))
|
|
14
|
+
* width and height proptype ([fd0db97](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/fd0db977f6a2048f092c866a88e541e9329b1ed4))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Code Refactoring
|
|
18
|
+
|
|
19
|
+
* add aria labels for svg titles ([01f477a](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/01f477ac723f6c4f4f1c5c3905166a6fa225210c))
|
|
20
|
+
* changes to statistics ([65c38ec](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/65c38ec64a032b1780f763bef559e09673be195f))
|
|
21
|
+
* correction to typo ([2b75024](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/2b750243d384a27ff856c3c94aa73702974d3953))
|
|
22
|
+
* move stats to modules ([1d64d84](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/1d64d8466c64bae6bff1fa3a5ef085fa1c18fd9a))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
* Merge branch 'tm-4416-aria-labels' into 'master' ([088f5a0](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/088f5a04465d376fd19444e4a9f079b84460c208))
|
|
26
|
+
* Merge branch 'tm-4419-prefilled-module' into 'master' ([bce297c](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/bce297c4cb1b17074c5f948c3cb19efa32753f5c))
|
|
27
|
+
* Merge branch 'tm-4327-stats' into 'master' ([17d410d](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/17d410df307c91c3600c20f4d431947f9ae57ef9))
|
|
28
|
+
* Merge branch 'master' into tm-4327-stats ([2bb17ee](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/2bb17eee58f18f5fbe2f7f44e70a7f5ce9d9182a))
|
|
29
|
+
* Merge branch 'tm-4358-images-size' into 'master' ([8281773](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/8281773a9a79feba674c3ca7753ea5995ab97892))
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### Tests
|
|
33
|
+
|
|
34
|
+
* fix test ([6a3fd25](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/6a3fd25b6b20764b11192c6475a6a2c3f4657d0e))
|
|
35
|
+
|
|
1
36
|
## [32.0.6](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/compare/v32.0.5...v32.0.6) (2024-06-04)
|
|
2
37
|
|
|
3
38
|
|
package/package.json
CHANGED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render, cleanup, fireEvent } from '@testing-library/react';
|
|
3
|
+
import '@testing-library/jest-dom/extend-expect';
|
|
4
|
+
|
|
5
|
+
import { authorObject } from '~tests/factories/modules/author-box.factory';
|
|
6
|
+
import AuthorDescription from '.';
|
|
7
|
+
|
|
8
|
+
describe('author box component', () => {
|
|
9
|
+
test('render', () => {
|
|
10
|
+
const author = authorObject;
|
|
11
|
+
author.biography =
|
|
12
|
+
"The purpose of lorem ipsum is to create a natural looking block of text (sentence, paragraph, page, etc.) that doesn't distract from the layout";
|
|
13
|
+
const { container, getByText } = render(<AuthorDescription author={author} />);
|
|
14
|
+
expect(container).toBeTruthy();
|
|
15
|
+
expect(container.querySelector('.description')).toBeTruthy();
|
|
16
|
+
expect(container.querySelector('.biography')).toBeTruthy();
|
|
17
|
+
expect(getByText(author.biography)).toBeTruthy();
|
|
18
|
+
});
|
|
19
|
+
test('render different templates', () => {
|
|
20
|
+
const author = authorObject;
|
|
21
|
+
const { container } = render(<AuthorDescription author={author} template="templateOne" />);
|
|
22
|
+
expect(container).toBeTruthy();
|
|
23
|
+
expect(container.querySelector('.templateOne')).toBeTruthy();
|
|
24
|
+
});
|
|
25
|
+
test('render with read more ', async () => {
|
|
26
|
+
const author = authorObject;
|
|
27
|
+
|
|
28
|
+
author.biography =
|
|
29
|
+
"The purpose of lorem ipsum is to create a natural looking block of text (sentence, paragraph, page, etc.) that doesn't distract from the layout";
|
|
30
|
+
|
|
31
|
+
const { container, getByText } = render(
|
|
32
|
+
<AuthorDescription author={author} readMore maximumLength={2} />
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
expect(container).toBeTruthy();
|
|
36
|
+
expect(getByText('The purpose')).toBeTruthy();
|
|
37
|
+
expect(container.querySelector('.showReadMore')).toBeTruthy();
|
|
38
|
+
expect(container.querySelector('.contReadText')).toBeTruthy();
|
|
39
|
+
expect(getByText('...continue reading')).toBeTruthy();
|
|
40
|
+
});
|
|
41
|
+
test('click read more ', async () => {
|
|
42
|
+
const author = authorObject;
|
|
43
|
+
|
|
44
|
+
author.biography =
|
|
45
|
+
"The purpose of lorem ipsum is to create a natural looking block of text (sentence, paragraph, page, etc.) that doesn't distract from the layout";
|
|
46
|
+
|
|
47
|
+
const { container, getByText } = render(
|
|
48
|
+
<AuthorDescription author={author} readMore maximumLength={2} />
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
expect(container).toBeTruthy();
|
|
52
|
+
expect(getByText('The purpose')).toBeTruthy();
|
|
53
|
+
expect(container.querySelector('.showReadMore')).toBeTruthy();
|
|
54
|
+
expect(container.querySelector('.contReadText')).toBeTruthy();
|
|
55
|
+
expect(getByText('...continue reading')).toBeTruthy();
|
|
56
|
+
|
|
57
|
+
const button = container.querySelector('.showReadMore');
|
|
58
|
+
fireEvent.click(button);
|
|
59
|
+
expect(getByText(author.biography)).toBeTruthy();
|
|
60
|
+
expect(container.querySelector('.open')).toBeTruthy();
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
afterEach(() => {
|
|
64
|
+
cleanup();
|
|
65
|
+
});
|
|
@@ -33,6 +33,7 @@ export default function AuthorDescription({
|
|
|
33
33
|
tabIndex={0}
|
|
34
34
|
onClick={toggleReadMore}
|
|
35
35
|
onKeyDown={toggleReadMore}
|
|
36
|
+
// eslint-disable-next-line react/no-danger
|
|
36
37
|
dangerouslySetInnerHTML={{
|
|
37
38
|
__html:
|
|
38
39
|
author?.biography?.split(' ').length > maximumLength && isReadMore
|
|
@@ -5,17 +5,17 @@ import LazyImage from '~hooks/lazy-image';
|
|
|
5
5
|
import { imagePrettyUrl } from '~helpers/getters';
|
|
6
6
|
import styles from './image.module.scss';
|
|
7
7
|
|
|
8
|
-
const Image = ({ module = {} }) => {
|
|
8
|
+
const Image = ({ module = {}, width = '912', height = '333' }) => {
|
|
9
9
|
const { title, value, alt = 'missing alt', alignment } = module;
|
|
10
10
|
|
|
11
11
|
if (!value) return <></>;
|
|
12
12
|
|
|
13
13
|
return (
|
|
14
14
|
<LazyImage
|
|
15
|
-
src={imagePrettyUrl(value,
|
|
15
|
+
src={imagePrettyUrl(value, width, height)}
|
|
16
16
|
alt={alt || 'missing alt'}
|
|
17
|
-
width={
|
|
18
|
-
height={
|
|
17
|
+
width={width}
|
|
18
|
+
height={height}
|
|
19
19
|
title={title && title}
|
|
20
20
|
className={`${styles.imageModule || ''} ${styles[alignment] || ''}`}
|
|
21
21
|
/>
|
|
@@ -29,6 +29,8 @@ Image.propTypes = {
|
|
|
29
29
|
alt: PropTypes.string,
|
|
30
30
|
alignment: PropTypes.string,
|
|
31
31
|
}),
|
|
32
|
+
width: PropTypes.string,
|
|
33
|
+
height: PropTypes.string,
|
|
32
34
|
};
|
|
33
35
|
|
|
34
36
|
export default Image;
|
|
@@ -6,13 +6,18 @@ import { imagePrettyUrl } from '~helpers/getters';
|
|
|
6
6
|
import OperatorCta from '~atoms/button/operator-cta';
|
|
7
7
|
import styles from './operator.module.scss';
|
|
8
8
|
|
|
9
|
-
const Operator = ({ item = {} }) => {
|
|
9
|
+
const Operator = ({ item = {}, width = '56', height = '56' }) => {
|
|
10
10
|
const { relation } = item;
|
|
11
11
|
const img = relation?.standardised_logo_url_object?.filename || relation.logo_url;
|
|
12
12
|
|
|
13
13
|
return (
|
|
14
14
|
<div className={styles.row || ''}>
|
|
15
|
-
<LazyImage
|
|
15
|
+
<LazyImage
|
|
16
|
+
width={width}
|
|
17
|
+
height={height}
|
|
18
|
+
src={imagePrettyUrl(img, width, height)}
|
|
19
|
+
alt={item.title}
|
|
20
|
+
/>
|
|
16
21
|
<h3>{item.title}</h3>
|
|
17
22
|
<OperatorCta module="search" operator={relation} gtmClass="toplist-operator-cta-gtm" />
|
|
18
23
|
</div>
|
|
@@ -26,6 +31,8 @@ Operator.propTypes = {
|
|
|
26
31
|
logo_url: PropTypes.string,
|
|
27
32
|
}),
|
|
28
33
|
}).isRequired,
|
|
34
|
+
width: PropTypes.string,
|
|
35
|
+
height: PropTypes.string,
|
|
29
36
|
};
|
|
30
37
|
|
|
31
38
|
export default Operator;
|
|
@@ -19,6 +19,8 @@ export default function Bonus({
|
|
|
19
19
|
},
|
|
20
20
|
tncEnable = true,
|
|
21
21
|
tncFixed = false,
|
|
22
|
+
width = '100',
|
|
23
|
+
height = '120',
|
|
22
24
|
showRoundedRating = false,
|
|
23
25
|
}) {
|
|
24
26
|
const { standardised_logo_url, logo_url, bonus, name } = operator || {};
|
|
@@ -42,7 +44,12 @@ export default function Bonus({
|
|
|
42
44
|
clickedElement="oneliner"
|
|
43
45
|
className={`${styles.logo || ''} operator-banner-gtm logo-cta`}
|
|
44
46
|
>
|
|
45
|
-
<LazyImage
|
|
47
|
+
<LazyImage
|
|
48
|
+
alt={operator?.name}
|
|
49
|
+
src={imagePrettyUrl(logo, width, height)}
|
|
50
|
+
height={height}
|
|
51
|
+
width={width}
|
|
52
|
+
/>
|
|
46
53
|
<div className={styles.details}>
|
|
47
54
|
{name && <span>{name}</span>}
|
|
48
55
|
{(operator?.rating || bonus?.rating) && (
|
|
@@ -97,5 +104,7 @@ Bonus.propTypes = {
|
|
|
97
104
|
type: PropTypes.string,
|
|
98
105
|
name: PropTypes.string,
|
|
99
106
|
}),
|
|
107
|
+
width: PropTypes.string,
|
|
108
|
+
height: PropTypes.string,
|
|
100
109
|
showRoundedRating: PropTypes.bool,
|
|
101
110
|
};
|
|
@@ -27,6 +27,8 @@ export default function TemplateOne({
|
|
|
27
27
|
closedBanner,
|
|
28
28
|
setClosedBanner,
|
|
29
29
|
showRoundedRating = false,
|
|
30
|
+
width = '120',
|
|
31
|
+
height = '120',
|
|
30
32
|
}) {
|
|
31
33
|
const { translations } = useContext(Context) || {};
|
|
32
34
|
const { standardised_logo_url, logo_url, bonus, name } = operator || {};
|
|
@@ -64,10 +66,10 @@ export default function TemplateOne({
|
|
|
64
66
|
>
|
|
65
67
|
<LazyImage
|
|
66
68
|
alt={operator?.name}
|
|
67
|
-
src={imagePrettyUrl(logo,
|
|
69
|
+
src={imagePrettyUrl(logo, width, height)}
|
|
68
70
|
loading="eager"
|
|
69
|
-
height={
|
|
70
|
-
width={
|
|
71
|
+
height={height}
|
|
72
|
+
width={width}
|
|
71
73
|
/>
|
|
72
74
|
<div className={styles.details}>
|
|
73
75
|
{name && <span>{name}</span>}
|
|
@@ -142,5 +144,7 @@ TemplateOne.propTypes = {
|
|
|
142
144
|
type: PropTypes.string,
|
|
143
145
|
name: PropTypes.string,
|
|
144
146
|
}),
|
|
147
|
+
width: PropTypes.string,
|
|
148
|
+
height: PropTypes.string,
|
|
145
149
|
showRoundedRating: PropTypes.bool,
|
|
146
150
|
};
|
|
@@ -19,6 +19,7 @@ const Content = ({
|
|
|
19
19
|
page,
|
|
20
20
|
isContentCollapsible = false,
|
|
21
21
|
icon = <IoIosArrowDown />,
|
|
22
|
+
moduleWidth = 960,
|
|
22
23
|
}) => {
|
|
23
24
|
const { show_more_label, show_more_enabled } = module || {};
|
|
24
25
|
|
|
@@ -65,7 +66,7 @@ const Content = ({
|
|
|
65
66
|
`}
|
|
66
67
|
>
|
|
67
68
|
{parse(content, {
|
|
68
|
-
replace: (node) => replaceMedia(node, page, translations),
|
|
69
|
+
replace: (node) => replaceMedia(node, page, translations, moduleWidth),
|
|
69
70
|
})}
|
|
70
71
|
</div>
|
|
71
72
|
);
|
|
@@ -110,6 +111,7 @@ Content.propTypes = {
|
|
|
110
111
|
isModuleIntroduction: PropTypes.string,
|
|
111
112
|
isContentCollapsible: PropTypes.bool,
|
|
112
113
|
icon: PropTypes.node,
|
|
114
|
+
moduleWidth: PropTypes.node,
|
|
113
115
|
};
|
|
114
116
|
|
|
115
117
|
export default Content;
|
|
@@ -12,7 +12,7 @@ const Newsletter = ({
|
|
|
12
12
|
openBtnText = 'Unlock Bonuses',
|
|
13
13
|
isSticky = false,
|
|
14
14
|
showLabels = true,
|
|
15
|
-
titleType = '
|
|
15
|
+
titleType = 'h2',
|
|
16
16
|
}) => {
|
|
17
17
|
const [toggleNewsetter, setToggleNewsletter] = useState(false);
|
|
18
18
|
const [isClicked, setIsClicked] = useState(false);
|
|
@@ -6,14 +6,19 @@ import Link from '../../../../../hooks/link';
|
|
|
6
6
|
import { imagePrettyUrl, translate } from '../../../../../helpers/getters.mjs';
|
|
7
7
|
import styles from './template-one.module.scss';
|
|
8
8
|
|
|
9
|
-
export default function TemplateOne({ module }) {
|
|
9
|
+
export default function TemplateOne({ module, width = 106, height = 106 }) {
|
|
10
10
|
const { items } = module;
|
|
11
11
|
const { translations } = useContext(Context) || {};
|
|
12
12
|
|
|
13
13
|
const content = (res) => (
|
|
14
14
|
<>
|
|
15
15
|
{res?.icon && (
|
|
16
|
-
<LazyImage
|
|
16
|
+
<LazyImage
|
|
17
|
+
height={height}
|
|
18
|
+
width={width}
|
|
19
|
+
src={imagePrettyUrl(res?.icon, width, height)}
|
|
20
|
+
alt={res?.link_text}
|
|
21
|
+
/>
|
|
17
22
|
)}
|
|
18
23
|
<p>{res?.link_text || translate(translations, 'read_more', 'Read more')}</p>
|
|
19
24
|
{res.subtitle && <span>{res.subtitle}</span>}
|
|
@@ -43,4 +48,6 @@ TemplateOne.propTypes = {
|
|
|
43
48
|
module: PropTypes.shape({
|
|
44
49
|
items: PropTypes.shape({}),
|
|
45
50
|
}).isRequired,
|
|
51
|
+
width: PropTypes.string,
|
|
52
|
+
height: PropTypes.string,
|
|
46
53
|
};
|
|
@@ -6,14 +6,19 @@ import Link from '../../../../../hooks/link';
|
|
|
6
6
|
import { imagePrettyUrl, translate } from '../../../../../helpers/getters.mjs';
|
|
7
7
|
import styles from './template-one.module.scss';
|
|
8
8
|
|
|
9
|
-
export default function TemplateOne({ module }) {
|
|
9
|
+
export default function TemplateOne({ module, width = '295', height = '260' }) {
|
|
10
10
|
const { items } = module;
|
|
11
11
|
const { translations } = useContext(Context) || {};
|
|
12
12
|
|
|
13
13
|
const content = (res) => (
|
|
14
14
|
<>
|
|
15
15
|
{res?.image && (
|
|
16
|
-
<LazyImage
|
|
16
|
+
<LazyImage
|
|
17
|
+
width={width}
|
|
18
|
+
height={height}
|
|
19
|
+
src={imagePrettyUrl(res?.image, width, height)}
|
|
20
|
+
alt={res?.link_text}
|
|
21
|
+
/>
|
|
17
22
|
)}
|
|
18
23
|
{/* Need to talk to add this field on hercules */}
|
|
19
24
|
<p>
|
|
@@ -43,4 +48,6 @@ TemplateOne.propTypes = {
|
|
|
43
48
|
module: PropTypes.shape({
|
|
44
49
|
items: PropTypes.shape({}),
|
|
45
50
|
}).isRequired,
|
|
51
|
+
width: PropTypes.string,
|
|
52
|
+
height: PropTypes.string,
|
|
46
53
|
};
|
|
@@ -7,13 +7,15 @@ import Link from '../../../../../hooks/link';
|
|
|
7
7
|
import { imagePrettyUrl, translate } from '../../../../../helpers/getters.mjs';
|
|
8
8
|
import styles from './template-two.module.scss';
|
|
9
9
|
|
|
10
|
-
export default function TemplateOne({ module }) {
|
|
10
|
+
export default function TemplateOne({ module, width = '340', height = '268' }) {
|
|
11
11
|
const { items } = module;
|
|
12
12
|
const { translations } = useContext(Context) || {};
|
|
13
13
|
|
|
14
14
|
const content = (res) => (
|
|
15
15
|
<>
|
|
16
|
-
{res?.image &&
|
|
16
|
+
{res?.image && (
|
|
17
|
+
<LazyImage src={imagePrettyUrl(res?.image, width, height)} width={width} height={height} />
|
|
18
|
+
)}
|
|
17
19
|
<p>
|
|
18
20
|
{res?.link_text || translate(translations, 'link_text_spotlights', 'Top Online Casinos')}{' '}
|
|
19
21
|
{res.link?.value && <FaArrowRight size={20} color="#fff" />}
|
|
@@ -44,4 +46,6 @@ TemplateOne.propTypes = {
|
|
|
44
46
|
module: PropTypes.shape({
|
|
45
47
|
items: PropTypes.shape({}),
|
|
46
48
|
}).isRequired,
|
|
49
|
+
width: PropTypes.string,
|
|
50
|
+
height: PropTypes.string,
|
|
47
51
|
};
|
|
@@ -12,6 +12,8 @@ export default function TemplateOne({
|
|
|
12
12
|
scrollableContent = false,
|
|
13
13
|
buttonType = 'secondary',
|
|
14
14
|
buttonSize = 'm',
|
|
15
|
+
width = '300',
|
|
16
|
+
height = '176',
|
|
15
17
|
}) {
|
|
16
18
|
const { items } = module;
|
|
17
19
|
const { translations } = useContext(Context) || {};
|
|
@@ -26,7 +28,11 @@ export default function TemplateOne({
|
|
|
26
28
|
<div className={`${styles.item} ${scrollableContent && styles.scrollContent}`}>
|
|
27
29
|
<div className={styles.topSection}>
|
|
28
30
|
{res?.image && (
|
|
29
|
-
<LazyImage
|
|
31
|
+
<LazyImage
|
|
32
|
+
width={width}
|
|
33
|
+
height={height}
|
|
34
|
+
src={imagePrettyUrl(res?.image, width, height)}
|
|
35
|
+
/>
|
|
30
36
|
)}
|
|
31
37
|
{res?.label && <TitleTag>{res.label}</TitleTag>}
|
|
32
38
|
{res.subtitle && <span>{res.subtitle}</span>}
|
|
@@ -67,4 +73,6 @@ TemplateOne.propTypes = {
|
|
|
67
73
|
scrollableContent: PropTypes.bool,
|
|
68
74
|
buttonType: PropTypes.string,
|
|
69
75
|
buttonSize: PropTypes.string,
|
|
76
|
+
width: PropTypes.string,
|
|
77
|
+
height: PropTypes.string,
|
|
70
78
|
};
|
|
@@ -10,6 +10,8 @@ export default function TemplateOne({
|
|
|
10
10
|
characterMaxReadMore = 600,
|
|
11
11
|
buttonType = 'secondary',
|
|
12
12
|
buttonSize = 'm',
|
|
13
|
+
width = '104',
|
|
14
|
+
height = '104',
|
|
13
15
|
}) {
|
|
14
16
|
const { items } = module;
|
|
15
17
|
return (
|
|
@@ -26,6 +28,8 @@ export default function TemplateOne({
|
|
|
26
28
|
scrollableContent={scrollableContent}
|
|
27
29
|
buttonType={buttonType}
|
|
28
30
|
buttonSize={buttonSize}
|
|
31
|
+
width={width}
|
|
32
|
+
height={height}
|
|
29
33
|
/>
|
|
30
34
|
);
|
|
31
35
|
})
|
|
@@ -43,4 +47,6 @@ TemplateOne.propTypes = {
|
|
|
43
47
|
characterMaxReadMore: PropTypes.number,
|
|
44
48
|
buttonType: PropTypes.string,
|
|
45
49
|
buttonSize: PropTypes.string,
|
|
50
|
+
width: PropTypes.string,
|
|
51
|
+
height: PropTypes.string,
|
|
46
52
|
};
|
|
@@ -17,6 +17,8 @@ export default function TemplateOne({
|
|
|
17
17
|
scrollableContent = false,
|
|
18
18
|
buttonType = 'secondary',
|
|
19
19
|
buttonSize = 'm',
|
|
20
|
+
width = '104',
|
|
21
|
+
height = '104',
|
|
20
22
|
}) {
|
|
21
23
|
const { translations } = useContext(Context) || {};
|
|
22
24
|
const [showMore, setShowMore] = useState(false);
|
|
@@ -25,7 +27,13 @@ export default function TemplateOne({
|
|
|
25
27
|
return (
|
|
26
28
|
<div className={styles.item}>
|
|
27
29
|
<div className={styles.topSection}>
|
|
28
|
-
{item?.image &&
|
|
30
|
+
{item?.image && (
|
|
31
|
+
<LazyImage
|
|
32
|
+
width={width}
|
|
33
|
+
height={height}
|
|
34
|
+
src={imagePrettyUrl(item?.image, width, height)}
|
|
35
|
+
/>
|
|
36
|
+
)}
|
|
29
37
|
{item?.label && <TitleTag>{item?.label}</TitleTag>}
|
|
30
38
|
{item?.text && (
|
|
31
39
|
<div
|
|
@@ -85,4 +93,6 @@ TemplateOne.propTypes = {
|
|
|
85
93
|
scrollableContent: PropTypes.bool,
|
|
86
94
|
buttonType: PropTypes.string,
|
|
87
95
|
buttonSize: PropTypes.string,
|
|
96
|
+
width: PropTypes.string,
|
|
97
|
+
height: PropTypes.string,
|
|
88
98
|
};
|
|
@@ -13,6 +13,8 @@ export default function TemplateOne({
|
|
|
13
13
|
buttonType = 'secondary',
|
|
14
14
|
buttonSize = 'm',
|
|
15
15
|
titleType = 'label',
|
|
16
|
+
width = '104',
|
|
17
|
+
height = '104',
|
|
16
18
|
}) {
|
|
17
19
|
const { items } = module;
|
|
18
20
|
const { translations } = useContext(Context) || {};
|
|
@@ -27,7 +29,11 @@ export default function TemplateOne({
|
|
|
27
29
|
<div className={`${styles.item} ${scrollableContent && styles.scrollContent}`}>
|
|
28
30
|
<div className={styles.topSection}>
|
|
29
31
|
{res?.image && (
|
|
30
|
-
<LazyImage
|
|
32
|
+
<LazyImage
|
|
33
|
+
width={width}
|
|
34
|
+
height={height}
|
|
35
|
+
src={imagePrettyUrl(res?.image, width, height)}
|
|
36
|
+
/>
|
|
31
37
|
)}
|
|
32
38
|
{res?.label && <TitleTag className={styles.titleTag || ''}>{res.label}</TitleTag>}
|
|
33
39
|
{res.subtitle && <span>{res.subtitle}</span>}
|
|
@@ -68,4 +74,6 @@ TemplateOne.propTypes = {
|
|
|
68
74
|
buttonType: PropTypes.string,
|
|
69
75
|
buttonSize: PropTypes.string,
|
|
70
76
|
titleType: PropTypes.string,
|
|
77
|
+
width: PropTypes.string,
|
|
78
|
+
height: PropTypes.string,
|
|
71
79
|
};
|
|
@@ -23,6 +23,8 @@ const Row = ({
|
|
|
23
23
|
className,
|
|
24
24
|
nofollow = false,
|
|
25
25
|
module,
|
|
26
|
+
width = '100',
|
|
27
|
+
height = '100',
|
|
26
28
|
}) => {
|
|
27
29
|
const reviewPath = item.review_link ? `/${item.review_link}` : item.path || null;
|
|
28
30
|
const imageObject = item?.standardised_logo_url_object || item?.logo_url_object;
|
|
@@ -51,9 +53,9 @@ const Row = ({
|
|
|
51
53
|
>
|
|
52
54
|
<LazyImage
|
|
53
55
|
alt={getAltText(imageObject, item.name)}
|
|
54
|
-
src={imagePrettyUrl(imageObject?.filename || item?.logo_url,
|
|
55
|
-
width={
|
|
56
|
-
height={
|
|
56
|
+
src={imagePrettyUrl(imageObject?.filename || item?.logo_url, width, height)}
|
|
57
|
+
width={width}
|
|
58
|
+
height={height}
|
|
57
59
|
/>
|
|
58
60
|
</PrettyLink>
|
|
59
61
|
<Bonus module="bonus" item={item} tracker={oneliner} />
|
|
@@ -104,6 +106,8 @@ Row.propTypes = {
|
|
|
104
106
|
bonus: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),
|
|
105
107
|
}).isRequired,
|
|
106
108
|
pageTemplate: PropTypes.string,
|
|
109
|
+
width: PropTypes.string,
|
|
110
|
+
height: PropTypes.string,
|
|
107
111
|
};
|
|
108
112
|
|
|
109
113
|
export default Row;
|
|
@@ -8,7 +8,7 @@ import Link from '~hooks/link';
|
|
|
8
8
|
import LazyImage from '~hooks/lazy-image';
|
|
9
9
|
import { imagePrettyUrl } from '~helpers/getters';
|
|
10
10
|
|
|
11
|
-
const TemplateTwo = ({ module, author }) => {
|
|
11
|
+
const TemplateTwo = ({ module, author, width = '36', height = '36' }) => {
|
|
12
12
|
const { items } = module;
|
|
13
13
|
const usernames = [
|
|
14
14
|
'mindbrew94',
|
|
@@ -85,8 +85,8 @@ const TemplateTwo = ({ module, author }) => {
|
|
|
85
85
|
className={styles.userAvatar}
|
|
86
86
|
alt="user-avatar"
|
|
87
87
|
filename="user_avatar"
|
|
88
|
-
width={
|
|
89
|
-
height={
|
|
88
|
+
width={width}
|
|
89
|
+
height={height}
|
|
90
90
|
/>
|
|
91
91
|
</div>
|
|
92
92
|
</div>
|
|
@@ -99,9 +99,9 @@ const TemplateTwo = ({ module, author }) => {
|
|
|
99
99
|
<LazyImage
|
|
100
100
|
alt={author.name}
|
|
101
101
|
loading="eager"
|
|
102
|
-
width={
|
|
103
|
-
height={
|
|
104
|
-
src={imagePrettyUrl(author.image,
|
|
102
|
+
width={width}
|
|
103
|
+
height={height}
|
|
104
|
+
src={imagePrettyUrl(author.image, width, height)}
|
|
105
105
|
/>
|
|
106
106
|
</Link>
|
|
107
107
|
</div>
|
|
@@ -131,6 +131,8 @@ TemplateTwo.propTypes = {
|
|
|
131
131
|
profile_page_path: PropTypes.string,
|
|
132
132
|
name: PropTypes.string,
|
|
133
133
|
}),
|
|
134
|
+
width: PropTypes.string,
|
|
135
|
+
height: PropTypes.string,
|
|
134
136
|
};
|
|
135
137
|
|
|
136
138
|
export default TemplateTwo;
|
|
@@ -24,6 +24,8 @@ const Tracker = ({
|
|
|
24
24
|
operatorLogo = false,
|
|
25
25
|
operatorLogoWidth = 80,
|
|
26
26
|
operatorLogoHeight = 80,
|
|
27
|
+
siteLogoWidth = '100',
|
|
28
|
+
siteLogoHeight = '100',
|
|
27
29
|
serverData,
|
|
28
30
|
}) => {
|
|
29
31
|
const { operator, page, translations } = pageContext;
|
|
@@ -84,7 +86,7 @@ const Tracker = ({
|
|
|
84
86
|
<div className={styles.container || ''}>
|
|
85
87
|
{background}
|
|
86
88
|
<div className={styles.content || ''}>
|
|
87
|
-
<LazyImage alt="Site logo" src={logo} />
|
|
89
|
+
<LazyImage alt="Site logo" src={logo} width={siteLogoWidth} height={siteLogoHeight} />
|
|
88
90
|
<p
|
|
89
91
|
className={`${styles.mainText || ''} ${
|
|
90
92
|
operatorLogo && (styles.mainTextWithlogo || '')
|
|
@@ -24,6 +24,8 @@ const Tracker = ({
|
|
|
24
24
|
operatorLogo = false,
|
|
25
25
|
operatorLogoWidth = 80,
|
|
26
26
|
operatorLogoHeight = 80,
|
|
27
|
+
siteLogoWidth = '185',
|
|
28
|
+
siteLogoHeight = '45',
|
|
27
29
|
}) => {
|
|
28
30
|
const { operator, page, translations } = pageContext;
|
|
29
31
|
|
|
@@ -78,7 +80,7 @@ const Tracker = ({
|
|
|
78
80
|
<div className={styles.container || ''}>
|
|
79
81
|
{background}
|
|
80
82
|
<div className={styles.content || ''}>
|
|
81
|
-
<LazyImage alt="Site logo" src={logo} />
|
|
83
|
+
<LazyImage alt="Site logo" src={logo} width={siteLogoWidth} height={siteLogoHeight} />
|
|
82
84
|
<p
|
|
83
85
|
className={`${styles.mainText || ''} ${
|
|
84
86
|
operatorLogo && (styles.mainTextWithlogo || '')
|
|
@@ -22,6 +22,8 @@ export default function TrackerGeo({
|
|
|
22
22
|
operatorLogo = false,
|
|
23
23
|
operatorLogoWidth = 80,
|
|
24
24
|
operatorLogoHeight = 80,
|
|
25
|
+
siteLogoWidth = '100',
|
|
26
|
+
siteLogoHeight = '100',
|
|
25
27
|
}) {
|
|
26
28
|
const { page, operatorsByMarket } = pageContext;
|
|
27
29
|
const operator = operatorsByMarket[Object.keys(operatorsByMarket)[0]][0];
|
|
@@ -106,7 +108,7 @@ export default function TrackerGeo({
|
|
|
106
108
|
<div className={styles.container}>
|
|
107
109
|
{background}
|
|
108
110
|
<div className={styles.content}>
|
|
109
|
-
<LazyImage alt="Site logo" src={logo} />
|
|
111
|
+
<LazyImage alt="Site logo" src={logo} width={siteLogoWidth} height={siteLogoHeight} />
|
|
110
112
|
<p
|
|
111
113
|
className={`${styles.mainText} ${operatorLogo && styles.mainTextWithlogo}`}
|
|
112
114
|
>{`${mainText.replace(
|
|
@@ -22,6 +22,8 @@ export default function TrackerGeo({
|
|
|
22
22
|
operatorLogo = false,
|
|
23
23
|
operatorLogoWidth = 80,
|
|
24
24
|
operatorLogoHeight = 80,
|
|
25
|
+
siteLogoWidth = '100',
|
|
26
|
+
siteLogoHeight = '100',
|
|
25
27
|
}) {
|
|
26
28
|
const { page, operatorsByMarket } = pageContext;
|
|
27
29
|
const operator = operatorsByMarket[Object.keys(operatorsByMarket)[0]][0];
|
|
@@ -121,7 +123,7 @@ export default function TrackerGeo({
|
|
|
121
123
|
<div className={styles.container}>
|
|
122
124
|
{background}
|
|
123
125
|
<div className={styles.content}>
|
|
124
|
-
<LazyImage alt="Site logo" src={logo} />
|
|
126
|
+
<LazyImage alt="Site logo" src={logo} width={siteLogoWidth} height={siteLogoHeight} />
|
|
125
127
|
<p
|
|
126
128
|
className={`${styles.mainText} ${operatorLogo && styles.mainTextWithlogo}`}
|
|
127
129
|
>{`${mainText.replace(
|
|
@@ -71,6 +71,12 @@ describe('Getters Helper', () => {
|
|
|
71
71
|
expect(Getters.textWordsLimit(text, 2)).toEqual('Lorem Ipsum...');
|
|
72
72
|
expect(Getters.textWordsLimit(1, 2)).toEqual(null);
|
|
73
73
|
});
|
|
74
|
+
test('textWordsLimit() for texts with markup', () => {
|
|
75
|
+
const text = `<a class="abc">Lorem Ipsum is simply dummy text of the printing and typesetting industry. </>`;
|
|
76
|
+
expect(Getters.textWordsLimit(text, 100)).toEqual(
|
|
77
|
+
'Lorem Ipsum is simply dummy text of the printing and typesetting industry. '
|
|
78
|
+
);
|
|
79
|
+
});
|
|
74
80
|
|
|
75
81
|
test('filterImgSrc()', () => {
|
|
76
82
|
expect(Getters.filterImgSrc('/wp-content/photo.jpg')).toEqual(
|
|
@@ -95,6 +101,13 @@ describe('Getters Helper', () => {
|
|
|
95
101
|
});
|
|
96
102
|
|
|
97
103
|
test('getPageImage()', () => {
|
|
104
|
+
expect(
|
|
105
|
+
Getters.getPageImage({
|
|
106
|
+
relation_type: 'operator',
|
|
107
|
+
featured_image: 'foo.jpg',
|
|
108
|
+
relation: { default_logo_url: 'foo.jpg' },
|
|
109
|
+
})
|
|
110
|
+
).toEqual(Getters.imagePrettyUrl('foo.jpg'));
|
|
98
111
|
expect(
|
|
99
112
|
Getters.getPageImage({ relation_type: 'operator', relation: { default_logo_url: 'foo.jpg' } })
|
|
100
113
|
).toEqual(Getters.imagePrettyUrl('foo.jpg'));
|
|
@@ -260,6 +273,14 @@ describe('Getters Helper', () => {
|
|
|
260
273
|
expect(module).toEqual({ name: 'menu', children: 'hello' });
|
|
261
274
|
});
|
|
262
275
|
|
|
276
|
+
test('getFirstModuleByName() if no modules', () => {
|
|
277
|
+
const object = {
|
|
278
|
+
modules: null,
|
|
279
|
+
};
|
|
280
|
+
const module = Getters.getFirstModuleByName(object, 'menu');
|
|
281
|
+
expect(typeof module).toEqual('object');
|
|
282
|
+
});
|
|
283
|
+
|
|
263
284
|
test('translate()', () => {
|
|
264
285
|
const object = { hello: 'world' };
|
|
265
286
|
expect(Getters.translate(object, 'hello')).toEqual('world');
|
|
@@ -115,12 +115,12 @@ export function processSections(sections, skipPost = false, page, translations,
|
|
|
115
115
|
}
|
|
116
116
|
if (sections[sectionKey] && sections[sectionKey].modules) {
|
|
117
117
|
sections[sectionKey].modules.forEach((module, key) => {
|
|
118
|
-
if (shouldSavePrefilled(module, siteName) && savedModules[module.
|
|
119
|
-
Object.assign(module, savedModules[module.
|
|
118
|
+
if (shouldSavePrefilled(module, siteName) && savedModules[module.module_value_id]) {
|
|
119
|
+
Object.assign(module, savedModules[module.module_value_id]);
|
|
120
120
|
} else {
|
|
121
121
|
if (module.value_type === ModuleValue.VALUE_TYPE_PREFILLED_MODULE_MARKET) {
|
|
122
122
|
module = {
|
|
123
|
-
...cloneDeep(prefilledMarketModules[module.value_id]),
|
|
123
|
+
...cloneDeep(prefilledMarketModules[module.module_value_id] || prefilledMarketModules[module.value_id]),
|
|
124
124
|
value_type: ModuleValue.VALUE_TYPE_PREFILLED_MODULE_MARKET,
|
|
125
125
|
};
|
|
126
126
|
}
|
|
@@ -142,8 +142,9 @@ export function processSections(sections, skipPost = false, page, translations,
|
|
|
142
142
|
sections[sectionKey].modules[key] = module;
|
|
143
143
|
|
|
144
144
|
if (shouldSavePrefilled(module, siteName)) {
|
|
145
|
-
|
|
145
|
+
savedModules[module.module_value_id] = module;
|
|
146
146
|
}
|
|
147
|
+
|
|
147
148
|
}
|
|
148
149
|
});
|
|
149
150
|
}
|
|
@@ -376,5 +376,13 @@ export function processModule(
|
|
|
376
376
|
processTopListModule(module, relations, pages, markets);
|
|
377
377
|
} else if (module.name === 'menu' && menus && menus[module.menu_id]) {
|
|
378
378
|
module = Object.assign(module, menus[module.menu_id]);
|
|
379
|
+
} else if (module.name === 'statistics_counter') {
|
|
380
|
+
const pagesByTemplate = Object.values(pages)
|
|
381
|
+
.flatMap(category => Object.values(category))
|
|
382
|
+
.reduce((makeCount, page) => {
|
|
383
|
+
makeCount[page.template] = (makeCount[page.template] || 0) + 1;
|
|
384
|
+
return makeCount;
|
|
385
|
+
}, {});
|
|
386
|
+
module.stats = pagesByTemplate;
|
|
379
387
|
}
|
|
380
388
|
}
|
|
@@ -8,7 +8,7 @@ import { parseCss } from 'gatsby-core-theme/src/helpers/css-parser';
|
|
|
8
8
|
import { generatePlaceholderString } from './generators.mjs';
|
|
9
9
|
import styles from '../components/molecules/content/content.module.scss';
|
|
10
10
|
|
|
11
|
-
export default (node, page, translations) => {
|
|
11
|
+
export default (node, page, translations, moduleWidth = 960) => {
|
|
12
12
|
if (node.name === 'iframe') {
|
|
13
13
|
return <Iframe src={node.attribs.src} />;
|
|
14
14
|
}
|
|
@@ -27,12 +27,18 @@ export default (node, page, translations) => {
|
|
|
27
27
|
} else if (classes?.includes('content-image--align-right')) {
|
|
28
28
|
stylesClass = 'alignRight';
|
|
29
29
|
}
|
|
30
|
+
|
|
31
|
+
const imgWidth =
|
|
32
|
+
node.attribs.width &&
|
|
33
|
+
(node.attribs.width > moduleWidth ? moduleWidth : node.attribs.width.replace('px', ''));
|
|
34
|
+
const imgHeight =
|
|
35
|
+
node.attribs.height &&
|
|
36
|
+
(node.attribs.height === 'auto' ? '298' : node.attribs.height.replace('px', ''));
|
|
37
|
+
|
|
30
38
|
const lazyProps = {
|
|
31
|
-
src: parseContentImageUrl(node.attribs.src),
|
|
32
|
-
width:
|
|
33
|
-
height:
|
|
34
|
-
node.attribs.height &&
|
|
35
|
-
(node.attribs.height === 'auto' ? '298' : node.attribs.height.replace('px', '')),
|
|
39
|
+
src: parseContentImageUrl(node.attribs.src, imgWidth, imgHeight),
|
|
40
|
+
width: imgWidth,
|
|
41
|
+
height: imgHeight,
|
|
36
42
|
style: node.attribs.style ? parseCss(node.attribs.style) : null,
|
|
37
43
|
alt: node.attribs.alt ? node.attribs.alt : '',
|
|
38
44
|
className: styles[stylesClass],
|
|
@@ -21,7 +21,7 @@ describe('replaceMedia function', () => {
|
|
|
21
21
|
};
|
|
22
22
|
const transformedNode = transformNode(node, {}, {});
|
|
23
23
|
expect(transformedNode.type.name).toBe('LazyImage');
|
|
24
|
-
expect(transformedNode.props.src).toBe('https://cdn.images.com/image.jpg');
|
|
24
|
+
expect(transformedNode.props.src).toBe('https://cdn.images.com/fit-in/300x200/image.jpg');
|
|
25
25
|
expect(transformedNode.props.width).toBe('300');
|
|
26
26
|
expect(transformedNode.props.height).toBe('200');
|
|
27
27
|
expect(transformedNode.props.alt).toBe('Alt text');
|
package/src/helpers/strings.js
CHANGED
|
@@ -59,12 +59,13 @@ export function cleanHTML(string) {
|
|
|
59
59
|
return string && string.replace(/(<([^>]+)>)/gi, '');
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
export function parseContentImageUrl(src) {
|
|
62
|
+
export function parseContentImageUrl(src, width = null, height = null) {
|
|
63
63
|
const srcArr = src && src.split('//');
|
|
64
|
+
|
|
64
65
|
if (srcArr && srcArr.length === 2) {
|
|
65
66
|
const refUrl = srcArr[1].substring(srcArr[1].indexOf('/'));
|
|
66
67
|
|
|
67
|
-
return imagePrettyUrl(refUrl.substring(1));
|
|
68
|
+
return imagePrettyUrl(refUrl.substring(1), width, height);
|
|
68
69
|
}
|
|
69
70
|
|
|
70
71
|
return src;
|
|
@@ -2,7 +2,16 @@ import React from 'react';
|
|
|
2
2
|
|
|
3
3
|
export default function check() {
|
|
4
4
|
return (
|
|
5
|
-
<svg
|
|
5
|
+
<svg
|
|
6
|
+
role="img"
|
|
7
|
+
aria-labelledby="checkIcon"
|
|
8
|
+
width="16"
|
|
9
|
+
height="16"
|
|
10
|
+
viewBox="0 0 16 16"
|
|
11
|
+
fill="none"
|
|
12
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
13
|
+
>
|
|
14
|
+
<title id="checkIcon">check icon</title>
|
|
6
15
|
<path
|
|
7
16
|
d="M12.4663 4.8C12.1997 4.53333 11.7997 4.53333 11.533 4.8L6.53301 9.8L4.46634 7.73333C4.19967 7.46667 3.79967 7.46667 3.53301 7.73333C3.26634 8 3.26634 8.4 3.53301 8.66667L6.06634 11.2C6.19967 11.3333 6.33301 11.4 6.53301 11.4C6.73301 11.4 6.86634 11.3333 6.99967 11.2L12.4663 5.73333C12.733 5.46667 12.733 5.06667 12.4663 4.8Z"
|
|
8
17
|
fill="#3C3C40"
|
package/src/images/logo.svg
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 106 28" focusable="false">
|
|
2
|
-
<title>
|
|
1
|
+
<svg role="img" aria-labelledby="logoIcon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 106 28" focusable="false">
|
|
2
|
+
<title id="logoIcon">
|
|
3
3
|
Logo Icon
|
|
4
4
|
</title>
|
|
5
5
|
<path d="M62.9 12h2.8v10h-2.8v-1.3c-1 1.5-2.3 1.6-3.1 1.6-3.1 0-5.1-2.4-5.1-5.3 0-3 2-5.3 4.9-5.3.8 0 2.3.1 3.2 1.6V12zm-5.2 5c0 1.6 1.1 2.8 2.8 2.8 1.6 0 2.8-1.2 2.8-2.8 0-1.6-1.1-2.8-2.8-2.8-1.6 0-2.8 1.2-2.8 2.8zm13.5-2.6V22h-2.8v-7.6h-1.1V12h1.1V8.6h2.8V12h1.9v2.4h-1.9zm8.5 0c-.7-.6-1.3-.7-1.6-.7-.7 0-1.1.3-1.1.8 0 .3.1.6.9.9l.7.2c.8.3 2 .6 2.5 1.4.3.4.5 1 .5 1.7 0 .9-.3 1.8-1.1 2.5s-1.8 1.1-3 1.1c-2.1 0-3.2-1-3.9-1.7l1.5-1.7c.6.6 1.4 1.2 2.2 1.2.8 0 1.4-.4 1.4-1.1 0-.6-.5-.9-.9-1l-.6-.2c-.7-.3-1.5-.6-2.1-1.2-.5-.5-.8-1.1-.8-1.9 0-1 .5-1.8 1-2.3.8-.6 1.8-.7 2.6-.7.7 0 1.9.1 3.2 1.1l-1.4 1.6zm6.1-1.1c1-1.4 2.4-1.6 3.2-1.6 2.9 0 4.9 2.3 4.9 5.3s-2 5.3-5 5.3c-.6 0-2.1-.1-3.2-1.6V22H83V5.2h2.8v8.1zm-.3 3.7c0 1.6 1.1 2.8 2.8 2.8 1.6 0 2.8-1.2 2.8-2.8 0-1.6-1.1-2.8-2.8-2.8-1.7 0-2.8 1.2-2.8 2.8zm13 3.5L93.7 12H97l3.1 5.7 2.8-5.7h3.2l-8 15.3h-3.2l3.6-6.8zM54 13.7h-7v2.8h3.7c-.6 1.9-2 3.2-4.6 3.2-2.9 0-5-2.4-5-5.3S43.1 9 46 9c1.6 0 3.2.8 4.2 2.1l2.3-1.5C51 7.5 48.6 6.3 46 6.3c-4.4 0-8 3.6-8 8.1s3.4 8.1 8 8.1 8-3.6 8-8.1c.1-.3 0-.5 0-.7z"/>
|
package/src/images/security.svg
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="20" fill="none" xmlns:v="https://vecta.io/nano">
|
|
2
|
-
<title>
|
|
1
|
+
<svg role="img" aria-labelledby="securityIcon" xmlns="http://www.w3.org/2000/svg" width="16" height="20" fill="none" xmlns:v="https://vecta.io/nano">
|
|
2
|
+
<title id="securityIcon">
|
|
3
3
|
Security Icon
|
|
4
4
|
</title>
|
|
5
5
|
<path d="M15.63 1.65a1 1 0 0 0-.84-.2A8 8 0 0 1 8.57.18a1 1 0 0 0-1.14 0 8 8 0 0 1-6.22 1.27 1 1 0 0 0-.84.2 1 1 0 0 0-.274.348A1 1 0 0 0 0 2.43v7.45a9 9 0 0 0 3.77 7.33l3.65 2.6a1 1 0 0 0 1.16 0l3.65-2.6A9 9 0 0 0 16 9.88V2.43a1 1 0 0 0-.37-.78zM14 9.88a7 7 0 0 1-2.93 5.7L8 17.77l-3.07-2.2A7 7 0 0 1 2 9.88v-6.3a10 10 0 0 0 6-1.39 10 10 0 0 0 6 1.39v6.3zM9.54 7.6l-2.7 2.7-.9-.9c-.188-.188-.444-.294-.7-.294s-.522.106-.7.294-.294.444-.294.7.106.522.294.7l1.6 1.6a1 1 0 0 0 .71.296 1 1 0 0 0 .71-.296L11 9c.188-.188.294-.444.294-.7s-.106-.522-.294-.7-.444-.294-.7-.294-.522.106-.7.294l-.04.01z" fill="#1C1A28"/><defs><linearGradient id="A" x1="15.945" y1="3.36" x2="2.181" y2="3.36" gradientUnits="userSpaceOnUse"><stop stop-color="#17d6cc"/><stop offset="1" stop-color="#17d68a"/></linearGradient></defs></svg>
|
package/src/images/verify.svg
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<title>
|
|
1
|
+
<svg role="img" aria-labelledby="verifyIcon" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<title id="verifyIcon">
|
|
3
3
|
Verify Icon
|
|
4
4
|
</title>
|
|
5
5
|
<g clip-path="url(#clip0_1978_1963)">
|
package/static/images/bell.svg
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<title>
|
|
1
|
+
<svg role="img" aria-labelledby="bellIcon" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<title id="bellIcon">
|
|
3
3
|
Bell Icon
|
|
4
4
|
</title>
|
|
5
5
|
<path d="M18 13.18V10C17.9986 8.58312 17.4958 7.21247 16.5806 6.13077C15.6655 5.04908 14.3971 4.32615 13 4.09V3C13 2.73478 12.8946 2.48043 12.7071 2.29289C12.5196 2.10536 12.2652 2 12 2C11.7348 2 11.4804 2.10536 11.2929 2.29289C11.1054 2.48043 11 2.73478 11 3V4.09C9.60294 4.32615 8.33452 5.04908 7.41939 6.13077C6.50425 7.21247 6.00144 8.58312 6 10V13.18C5.41645 13.3863 4.911 13.7681 4.55294 14.2729C4.19488 14.7778 4.00174 15.3811 4 16V18C4 18.2652 4.10536 18.5196 4.29289 18.7071C4.48043 18.8946 4.73478 19 5 19H8.14C8.37028 19.8474 8.873 20.5954 9.5706 21.1287C10.2682 21.6621 11.1219 21.951 12 21.951C12.8781 21.951 13.7318 21.6621 14.4294 21.1287C15.127 20.5954 15.6297 19.8474 15.86 19H19C19.2652 19 19.5196 18.8946 19.7071 18.7071C19.8946 18.5196 20 18.2652 20 18V16C19.9983 15.3811 19.8051 14.7778 19.4471 14.2729C19.089 13.7681 18.5835 13.3863 18 13.18ZM8 10C8 8.93913 8.42143 7.92172 9.17157 7.17157C9.92172 6.42143 10.9391 6 12 6C13.0609 6 14.0783 6.42143 14.8284 7.17157C15.5786 7.92172 16 8.93913 16 10V13H8V10ZM12 20C11.651 19.9979 11.3086 19.9045 11.0068 19.7291C10.7051 19.5536 10.4545 19.3023 10.28 19H13.72C13.5455 19.3023 13.2949 19.5536 12.9932 19.7291C12.6914 19.9045 12.349 19.9979 12 20ZM18 17H6V16C6 15.7348 6.10536 15.4804 6.29289 15.2929C6.48043 15.1054 6.73478 15 7 15H17C17.2652 15 17.5196 15.1054 17.7071 15.2929C17.8946 15.4804 18 15.7348 18 16V17Z" fill="#1C1A28"/>
|
package/static/images/logo.svg
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 106 28" focusable="false">
|
|
2
|
-
<title>
|
|
1
|
+
<svg role="img" aria-labelledby="logoIcon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 106 28" focusable="false">
|
|
2
|
+
<title id="logoIcon">
|
|
3
3
|
Logo Icon
|
|
4
4
|
</title>
|
|
5
5
|
<path d="M62.9 12h2.8v10h-2.8v-1.3c-1 1.5-2.3 1.6-3.1 1.6-3.1 0-5.1-2.4-5.1-5.3 0-3 2-5.3 4.9-5.3.8 0 2.3.1 3.2 1.6V12zm-5.2 5c0 1.6 1.1 2.8 2.8 2.8 1.6 0 2.8-1.2 2.8-2.8 0-1.6-1.1-2.8-2.8-2.8-1.6 0-2.8 1.2-2.8 2.8zm13.5-2.6V22h-2.8v-7.6h-1.1V12h1.1V8.6h2.8V12h1.9v2.4h-1.9zm8.5 0c-.7-.6-1.3-.7-1.6-.7-.7 0-1.1.3-1.1.8 0 .3.1.6.9.9l.7.2c.8.3 2 .6 2.5 1.4.3.4.5 1 .5 1.7 0 .9-.3 1.8-1.1 2.5s-1.8 1.1-3 1.1c-2.1 0-3.2-1-3.9-1.7l1.5-1.7c.6.6 1.4 1.2 2.2 1.2.8 0 1.4-.4 1.4-1.1 0-.6-.5-.9-.9-1l-.6-.2c-.7-.3-1.5-.6-2.1-1.2-.5-.5-.8-1.1-.8-1.9 0-1 .5-1.8 1-2.3.8-.6 1.8-.7 2.6-.7.7 0 1.9.1 3.2 1.1l-1.4 1.6zm6.1-1.1c1-1.4 2.4-1.6 3.2-1.6 2.9 0 4.9 2.3 4.9 5.3s-2 5.3-5 5.3c-.6 0-2.1-.1-3.2-1.6V22H83V5.2h2.8v8.1zm-.3 3.7c0 1.6 1.1 2.8 2.8 2.8 1.6 0 2.8-1.2 2.8-2.8 0-1.6-1.1-2.8-2.8-2.8-1.7 0-2.8 1.2-2.8 2.8zm13 3.5L93.7 12H97l3.1 5.7 2.8-5.7h3.2l-8 15.3h-3.2l3.6-6.8zM54 13.7h-7v2.8h3.7c-.6 1.9-2 3.2-4.6 3.2-2.9 0-5-2.4-5-5.3S43.1 9 46 9c1.6 0 3.2.8 4.2 2.1l2.3-1.5C51 7.5 48.6 6.3 46 6.3c-4.4 0-8 3.6-8 8.1s3.4 8.1 8 8.1 8-3.6 8-8.1c.1-.3 0-.5 0-.7z"/>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<title>Notification Bubble Icon</title>
|
|
3
|
-
<rect width="16" height="16" rx="8" fill="#F2281D"/>
|
|
4
|
-
<path d="M7.51465 11.5H8.93066V4.30762H8.28125L5.74707 5.25V6.45605L7.51465 5.75781V11.5Z" fill="white"/>
|
|
1
|
+
<svg role="img" aria-labelledby="notificationBubbleIcon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<title id="notificationBubbleIcon">Notification Bubble Icon</title>
|
|
3
|
+
<rect width="16" height="16" rx="8" fill="#F2281D"/>
|
|
4
|
+
<path d="M7.51465 11.5H8.93066V4.30762H8.28125L5.74707 5.25V6.45605L7.51465 5.75781V11.5Z" fill="white"/>
|
|
5
5
|
</svg>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="20" fill="none" xmlns:v="https://vecta.io/nano">
|
|
2
|
-
<title>
|
|
1
|
+
<svg role="img" aria-labelledby="securityIcon" xmlns="http://www.w3.org/2000/svg" width="16" height="20" fill="none" xmlns:v="https://vecta.io/nano">
|
|
2
|
+
<title id="securityIcon">
|
|
3
3
|
Security Icon
|
|
4
4
|
</title>
|
|
5
5
|
<path d="M15.63 1.65a1 1 0 0 0-.84-.2A8 8 0 0 1 8.57.18a1 1 0 0 0-1.14 0 8 8 0 0 1-6.22 1.27 1 1 0 0 0-.84.2 1 1 0 0 0-.274.348A1 1 0 0 0 0 2.43v7.45a9 9 0 0 0 3.77 7.33l3.65 2.6a1 1 0 0 0 1.16 0l3.65-2.6A9 9 0 0 0 16 9.88V2.43a1 1 0 0 0-.37-.78zM14 9.88a7 7 0 0 1-2.93 5.7L8 17.77l-3.07-2.2A7 7 0 0 1 2 9.88v-6.3a10 10 0 0 0 6-1.39 10 10 0 0 0 6 1.39v6.3zM9.54 7.6l-2.7 2.7-.9-.9c-.188-.188-.444-.294-.7-.294s-.522.106-.7.294-.294.444-.294.7.106.522.294.7l1.6 1.6a1 1 0 0 0 .71.296 1 1 0 0 0 .71-.296L11 9c.188-.188.294-.444.294-.7s-.106-.522-.294-.7-.444-.294-.7-.294-.522.106-.7.294l-.04.01z" fill="#1C1A28"/><defs><linearGradient id="A" x1="15.945" y1="3.36" x2="2.181" y2="3.36" gradientUnits="userSpaceOnUse"><stop stop-color="#17d6cc"/><stop offset="1" stop-color="#17d68a"/></linearGradient></defs></svg>
|