gatsby-matrix-theme 3.1.1 → 3.2.2

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 (51) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/package.json +2 -2
  3. package/src/components/atoms/cards/comparison-table/comparison-table.module.scss +27 -0
  4. package/src/components/atoms/cards/comparison-table/comparison-table.stories.js +39 -0
  5. package/src/components/atoms/cards/comparison-table/index.js +57 -0
  6. package/src/components/atoms/cards/comparison-table/table/index.js +196 -0
  7. package/src/components/atoms/cards/comparison-table/table/table.module.scss +137 -0
  8. package/src/components/atoms/cards/comparison-table/table/table.test.js +22 -0
  9. package/src/components/atoms/cards/operators-table/index.js +5 -2
  10. package/src/components/atoms/cards/popup-card/index.js +1 -1
  11. package/src/components/molecules/toplist/row/variant-one.test.js +2 -2
  12. package/src/components/organisms/popup/index.js +4 -3
  13. package/src/components/organisms/toplist/index.js +2 -11
  14. package/src/gatsby-core-theme/components/atoms/bonus/bonus.test.js +0 -1
  15. package/src/gatsby-core-theme/components/atoms/bonus/index.js +1 -1
  16. package/src/gatsby-core-theme/components/atoms/spotlights/spotlights.module.scss +78 -109
  17. package/src/gatsby-core-theme/components/molecules/module/index.js +5 -1
  18. package/src/gatsby-core-theme/components/organisms/head/index.js +6 -3
  19. package/src/gatsby-core-theme/styles/utils/variables/_main.scss +10 -1
  20. package/storybook/public/{0.1ef33c54.iframe.bundle.js → 0.4c2881f4.iframe.bundle.js} +1 -1
  21. package/storybook/public/{1.d02d8599.iframe.bundle.js → 1.318fc035.iframe.bundle.js} +1 -1
  22. package/storybook/public/{10.ae38b8e6.iframe.bundle.js → 10.ff8f20a0.iframe.bundle.js} +1 -1
  23. package/storybook/public/{11.86382beb.iframe.bundle.js → 11.a965ed36.iframe.bundle.js} +1 -1
  24. package/storybook/public/{12.b6909189.iframe.bundle.js → 12.f31f86bb.iframe.bundle.js} +1 -1
  25. package/storybook/public/{13.9e6703fb.iframe.bundle.js → 13.c72a573a.iframe.bundle.js} +1 -1
  26. package/storybook/public/{14.b0c67bdf.iframe.bundle.js → 14.454a253c.iframe.bundle.js} +1 -1
  27. package/storybook/public/{15.7bb7d301.iframe.bundle.js → 15.baadf857.iframe.bundle.js} +1 -1
  28. package/storybook/public/{16.d64c7fd7.iframe.bundle.js → 16.9d6c22db.iframe.bundle.js} +1 -1
  29. package/storybook/public/{5.91c30f08.iframe.bundle.js → 5.3751341c.iframe.bundle.js} +3 -3
  30. package/storybook/public/{5.91c30f08.iframe.bundle.js.LICENSE.txt → 5.3751341c.iframe.bundle.js.LICENSE.txt} +0 -0
  31. package/storybook/public/5.3751341c.iframe.bundle.js.map +1 -0
  32. package/storybook/public/{6.002e2a71.iframe.bundle.js → 6.78854fa8.iframe.bundle.js} +1 -1
  33. package/storybook/public/{7.d12dd5b3.iframe.bundle.js → 7.7dfb34cd.iframe.bundle.js} +1 -1
  34. package/storybook/public/{8.c5053ebc.iframe.bundle.js → 8.88be3011.iframe.bundle.js} +1 -1
  35. package/storybook/public/{9.05a986eb.iframe.bundle.js → 9.c2b37d15.iframe.bundle.js} +3 -3
  36. package/storybook/public/{9.05a986eb.iframe.bundle.js.LICENSE.txt → 9.c2b37d15.iframe.bundle.js.LICENSE.txt} +0 -0
  37. package/storybook/public/9.c2b37d15.iframe.bundle.js.map +1 -0
  38. package/storybook/public/iframe.html +1 -1
  39. package/storybook/public/main.30a5eba0.iframe.bundle.js +1 -0
  40. package/storybook/public/{runtime~main.5a919f90.iframe.bundle.js → runtime~main.0dbefcaa.iframe.bundle.js} +1 -1
  41. package/storybook/public/vendors~main.c173cb22.iframe.bundle.js +7 -0
  42. package/storybook/public/{vendors~main.7fa2fd4a.iframe.bundle.js.LICENSE.txt → vendors~main.c173cb22.iframe.bundle.js.LICENSE.txt} +0 -0
  43. package/storybook/public/vendors~main.c173cb22.iframe.bundle.js.map +1 -0
  44. package/src/components/organisms/toplist/comparison-table/comparison-table.module.scss +0 -52
  45. package/src/components/organisms/toplist/comparison-table/index.js +0 -165
  46. package/src/gatsby-core-theme/components/atoms/spotlights/index.js +0 -185
  47. package/storybook/public/5.91c30f08.iframe.bundle.js.map +0 -1
  48. package/storybook/public/9.05a986eb.iframe.bundle.js.map +0 -1
  49. package/storybook/public/main.f2a52f99.iframe.bundle.js +0 -1
  50. package/storybook/public/vendors~main.7fa2fd4a.iframe.bundle.js +0 -7
  51. package/storybook/public/vendors~main.7fa2fd4a.iframe.bundle.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vendors~main.c173cb22.iframe.bundle.js","sources":[],"mappings":";;;;;A","sourceRoot":""}
@@ -1,52 +0,0 @@
1
- .compareTable {
2
- table {
3
- display: flex;
4
- margin: 10px auto;
5
- padding: 0;
6
- height: auto;
7
- border-collapse: collapse;
8
- margin-bottom: 0;
9
- // .sliderContent {
10
- // @include min(laptop) {
11
- // width: 33.3333333%;
12
- // }
13
- // }
14
-
15
- tr,
16
- th {
17
- text-align: left;
18
- border-right: 1px solid #dddddd;
19
- border-top: 1px solid #dddddd;
20
- }
21
-
22
- .sliderContent {
23
- display: flex;
24
- }
25
- }
26
- @include max(tablet) {
27
- table {
28
- overflow-x: scroll;
29
- }
30
- }
31
- }
32
-
33
- .loadBtn {
34
- background: var(--color-2);
35
- border: 1px solid #c4c4c4;
36
- box-sizing: border-box;
37
- border-radius: 0px 0px 8px 8px;
38
- width: 100%;
39
- height: 48px;
40
- margin-top: -0.1rem;
41
- font-style: normal;
42
- font-weight: bold;
43
- font-size: 16px;
44
- line-height: 23px;
45
- color: #fff;
46
- div {
47
- @include flex-align(center, center);
48
- svg {
49
- margin-left: 25px;
50
- }
51
- }
52
- }
@@ -1,165 +0,0 @@
1
- /* eslint-disable react/forbid-prop-types */
2
- /* eslint-disable no-unused-expressions */
3
- /* eslint-disable import/no-extraneous-dependencies */
4
- import React, { useEffect, useState, useContext } from 'react';
5
- import Slider from 'gatsby-core-theme/src/components/molecules/slider';
6
- import PropTypes from 'prop-types';
7
- import useWindowSize from 'gatsby-core-theme/src/hooks/useWindowSize';
8
- import keygen from 'gatsby-core-theme/src/helpers/keygen';
9
- import { translate } from 'gatsby-core-theme/src/helpers/getters';
10
- import { isMobileDevice } from 'gatsby-matrix-theme/src/helpers/mobile-detect';
11
- import { Context } from 'gatsby-core-theme/src/context/TranslationsProvider';
12
- import { TiArrowSortedDown, TiArrowSortedUp } from 'react-icons/ti';
13
- import Column from '../../../atoms/table/column';
14
- import StaticColumn from '../../../atoms/table/staticColumn';
15
- import styles from './comparison-table.module.scss';
16
-
17
- const Index = ({ module }) => {
18
- const [width] = useWindowSize();
19
- const [hideRow, setHideRow] = useState(false);
20
- const [licensesMore, setLicensesMore] = useState(true);
21
- const [details] = useState(122);
22
- const [rating] = useState(56);
23
- const [bonus] = useState(180);
24
- const [topFeatures] = useState(111);
25
- const [banking] = useState(124);
26
- const [licenses, setLicenses] = useState(57);
27
- const { translations } = useContext(Context) || {};
28
-
29
- useEffect(() => {
30
- isMobileDevice() && setHideRow(true);
31
- }, []);
32
-
33
- const chnageHeights = (id, height) => {
34
- if (id === 'licenses') {
35
- setLicenses(height);
36
- setLicensesMore(false);
37
- }
38
- };
39
-
40
- const renderOne = (items) => {
41
- const arr = [];
42
-
43
- for (let i = 0; i < items.length; i += 1) {
44
- arr.push(
45
- <div key={keygen()} className={styles.sliderContent}>
46
- <Column
47
- item={items[i]}
48
- index={i}
49
- details={details}
50
- rating={rating}
51
- bonus={bonus}
52
- topFeatures={topFeatures}
53
- banking={banking}
54
- licenses={licenses}
55
- chnageHeights={chnageHeights}
56
- hideRow={hideRow}
57
- licensesMore={licensesMore}
58
- />
59
- </div>
60
- );
61
- }
62
- return arr;
63
- };
64
-
65
- const renderThree = (items) => {
66
- const arr = [];
67
- for (let i = 0; i < items.length; i += 3) {
68
- arr.push(
69
- <div key={keygen()} className={styles.sliderContent}>
70
- <Column
71
- item={items[i]}
72
- index={i}
73
- details={details}
74
- rating={rating}
75
- bonus={bonus}
76
- topFeatures={topFeatures}
77
- banking={banking}
78
- licenses={licenses}
79
- chnageHeights={chnageHeights}
80
- hideRow={hideRow}
81
- licensesMore={licensesMore}
82
- />
83
- {items[i + 1] && (
84
- <Column
85
- item={items[i + 1]}
86
- index={i + 1}
87
- details={details}
88
- rating={rating}
89
- bonus={bonus}
90
- topFeatures={topFeatures}
91
- banking={banking}
92
- licenses={licenses}
93
- chnageHeights={chnageHeights}
94
- hideRow={hideRow}
95
- licensesMore={licensesMore}
96
- />
97
- )}
98
- {items[i + 2] && (
99
- <Column
100
- item={items[i + 2]}
101
- index={i + 2}
102
- details={details}
103
- rating={rating}
104
- bonus={bonus}
105
- topFeatures={topFeatures}
106
- banking={banking}
107
- licenses={licenses}
108
- chnageHeights={chnageHeights}
109
- hideRow={hideRow}
110
- licensesMore={licensesMore}
111
- />
112
- )}
113
- </div>
114
- );
115
- }
116
- return arr;
117
- };
118
-
119
- return (
120
- <div className={styles.compareTable}>
121
- <table>
122
- <StaticColumn
123
- details={details}
124
- rating={rating}
125
- bonus={bonus}
126
- topFeatures={topFeatures}
127
- banking={banking}
128
- licenses={licenses}
129
- hideRow={hideRow}
130
- />
131
- {width < 991 && width > 0 && <>{renderOne(module.items[0].items)}</>}
132
- {width >= 991 && (
133
- <Slider useArrows={false} gtmClass="comparison-table-carousel-gtm">
134
- {renderThree(module.items[0].items)}
135
- </Slider>
136
- )}
137
- </table>
138
- {width < 991 && (
139
- // eslint-disable-next-line react/button-has-type
140
- <button
141
- className={styles.loadBtn}
142
- onClick={() => {
143
- setHideRow(!hideRow);
144
- }}
145
- >
146
- {hideRow ? (
147
- <div className={styles.showMoreBtn}>
148
- {translate(translations, 'show_more_details', 'Show more details')}{' '}
149
- <TiArrowSortedDown />
150
- </div>
151
- ) : (
152
- <div className={styles.showMoreBtn}>
153
- {translate(translations, 'show_less_details', 'Show less details')}
154
- <TiArrowSortedUp />
155
- </div>
156
- )}
157
- </button>
158
- )}
159
- </div>
160
- );
161
- };
162
- Index.propTypes = {
163
- module: PropTypes.object,
164
- };
165
- export default Index;
@@ -1,185 +0,0 @@
1
- /* eslint-disable react/prop-types */
2
- /* eslint-disable react/no-danger */
3
- /* eslint-disable camelcase */
4
- import React from 'react';
5
- import PropTypes from 'prop-types';
6
-
7
- import LazyImage from 'gatsby-core-theme/src/hooks/lazy-image';
8
- import keygen from 'gatsby-core-theme/src/helpers/keygen';
9
- import { imagePrettyUrl } from 'gatsby-core-theme/src/helpers/getters';
10
- import Link from 'gatsby-core-theme/src/hooks/link';
11
- import Button from 'gatsby-core-theme/src/components/atoms/button';
12
- import styles from './spotlights.module.scss';
13
-
14
- const Spotlights = ({ module, page }) => {
15
- const { show_read_more, read_more_text, items, mode, see_more_link } = module;
16
- const { path } = page;
17
- const grids = items.length < 3 ? 'lessThanThreeGrids' : 'threeGrids';
18
-
19
- const content = (item) => {
20
- const img = mode === 'icon' ? item.icon : item.image;
21
-
22
- return (
23
- <>
24
- <span className={`${styles.itemImage} logo-cta`}>
25
- <LazyImage
26
- width={item?.image_object?.width}
27
- height={item?.image_object?.height}
28
- alt={item.label}
29
- src={imagePrettyUrl(img)}
30
- />
31
- </span>
32
- <span className={`${styles.label} name-cta`}>{item.label}</span>
33
- </>
34
- );
35
- };
36
-
37
- const converttoSocialIcons = (text) => {
38
- let output = text.replace(
39
- 'replace-twitter',
40
- '<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path></svg>'
41
- );
42
- output = output.replace(
43
- 'replace-linkedin',
44
- '<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"></path></svg>'
45
- );
46
- return output;
47
- };
48
-
49
- return (
50
- <div className={styles.spotlightsContainer}>
51
- {show_read_more === '1' && (
52
- <div
53
- className={styles.spotlightstext}
54
- dangerouslySetInnerHTML={{ __html: read_more_text }}
55
- />
56
- )}
57
- <ul
58
- className={`${styles[mode]} ${styles[grids]} ${
59
- path === 'about-us' ? styles.about : styles.pillar
60
- }`}
61
- >
62
- {items.map((item) => (
63
- <li key={keygen()} className={styles.spotlightItem}>
64
- {path === 'about-us' ? (
65
- <>
66
- {item.link.type === 'external' ? (
67
- <a
68
- href={item.link.value}
69
- title={item.label}
70
- target="_blank"
71
- rel="noreferrer"
72
- className="spotlights-gtm"
73
- aria-label={item.label || item.title}
74
- >
75
- {content(item)}
76
- </a>
77
- ) : (
78
- <Link
79
- to={item.link.value}
80
- title={item.label}
81
- className="spotlights-gtm"
82
- aria-label={item.label || item.title}
83
- >
84
- {content(item)}
85
- </Link>
86
- )}
87
-
88
- {mode === 'image_text' && (
89
- <div className={styles.body}>
90
- <div
91
- className={styles.text}
92
- dangerouslySetInnerHTML={{ __html: converttoSocialIcons(item.text) }}
93
- />
94
- {item.link.value && item.link.type === 'external' ? (
95
- <a
96
- href={item.link.value}
97
- title={item.label}
98
- target="_blank"
99
- rel="noreferrer"
100
- className={`${styles.readMore} spotlights-gtm`}
101
- >
102
- {item.link_text ? item.link_text : 'Read More'}
103
- </a>
104
- ) : (
105
- <>
106
- {item.link.value && (
107
- <Link
108
- to={item.link.value}
109
- title={item.label}
110
- className={`${styles.readMore} spotlights-gtm`}
111
- >
112
- {see_more_link.title ? see_more_link.title : 'Read More'}
113
- </Link>
114
- )}
115
- </>
116
- )}
117
- </div>
118
- )}
119
- </>
120
- ) : (
121
- <div className={styles.pillarCards}>
122
- {item.link.type === 'external' ? (
123
- <a
124
- href={item.link.value}
125
- title={item.label}
126
- target="_blank"
127
- rel="noreferrer"
128
- className="spotlights-gtm"
129
- aria-label={item.label || item.title}
130
- >
131
- {content(item)}
132
- </a>
133
- ) : (
134
- <Link to={item.link.value} title={item.label} className="spotlights-gtm">
135
- {content(item)}
136
- </Link>
137
- )}
138
- {mode === 'image_text' && (
139
- <div className={styles.body}>
140
- <div className={styles.text} dangerouslySetInnerHTML={{ __html: item.text }} />
141
- </div>
142
- )}
143
- {item.link.value && (
144
- <Button
145
- btnText={item.link_text ? item.link_text : 'Read More'}
146
- invertColors
147
- isAnchorLink
148
- isInternalLink={item.link.type !== 'external'}
149
- targetBlank={item.link.type === 'external'}
150
- to={item.link.value}
151
- primaryColor={false}
152
- gtmClass="spotlights-gtm btn-cta"
153
- />
154
- )}
155
- </div>
156
- )}
157
- </li>
158
- ))}
159
- </ul>
160
- </div>
161
- );
162
- };
163
- Spotlights.propTypes = {
164
- module: PropTypes.shape({
165
- mode: PropTypes.oneOf(['image', 'icon', 'image_text']).isRequired,
166
- items: PropTypes.arrayOf(
167
- PropTypes.shape({
168
- icon: PropTypes.string,
169
- image: PropTypes.string,
170
- label: PropTypes.string,
171
- link: PropTypes.shape({
172
- title: PropTypes.string,
173
- type: PropTypes.string,
174
- value: PropTypes.string,
175
- }),
176
- link_text: PropTypes.string,
177
- text: PropTypes.string,
178
- })
179
- ),
180
- read_more_text: PropTypes.string,
181
- show_read_more: PropTypes.string,
182
- }).isRequired,
183
- page: PropTypes.shape({ path: PropTypes.string }).isRequired,
184
- };
185
- export default Spotlights;
@@ -1 +0,0 @@
1
- {"version":3,"file":"5.91c30f08.iframe.bundle.js","sources":[],"mappings":";A","sourceRoot":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"9.05a986eb.iframe.bundle.js","sources":[],"mappings":";A","sourceRoot":""}