@times-components/ts-components 1.145.1-82bc6796129e892c1eb22c6257c5e3809c159767.3 → 1.145.1-840c3cbc6021aef0e28e52412d33f016c55bc0b4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/components/opta/football/opta-match-stats/shared/styles.js +1 -8
  2. package/dist/components/opta/football/opta-match-stats/summary/OptaMatchStatsSummary.js +2 -2
  3. package/dist/components/opta/football/opta-match-stats/summary/OptaMatchStatsSummary.stories.js +1 -1
  4. package/dist/components/opta/football/opta-match-stats/summary/WidgetContainer.js +4 -13
  5. package/dist/components/travel-mini-cta/index.d.ts +3 -0
  6. package/dist/components/travel-mini-cta/index.js +84 -0
  7. package/dist/components/travel-mini-cta/styles.d.ts +42 -0
  8. package/dist/components/travel-mini-cta/styles.js +273 -0
  9. package/dist/components/travel-mini-cta/travel-mini-cta.stories.d.ts +110 -0
  10. package/dist/components/travel-mini-cta/travel-mini-cta.stories.js +121 -0
  11. package/dist/components/travel-mini-cta/types.d.ts +10 -0
  12. package/dist/components/travel-mini-cta/types.js +2 -0
  13. package/dist/index.d.ts +1 -1
  14. package/dist/index.js +2 -2
  15. package/dist/utils/applyDarkMode.d.ts +1 -0
  16. package/dist/utils/applyDarkMode.js +12 -0
  17. package/dist/utils/getMediaQuery.d.ts +11 -0
  18. package/dist/utils/getMediaQuery.js +19 -0
  19. package/dist/utils/index.d.ts +2 -0
  20. package/dist/utils/index.js +3 -0
  21. package/package.json +3 -3
  22. package/rnw.js +1 -1
  23. package/src/components/opta/football/opta-match-stats/commentary/__tests__/__snapshots__/OptaMatchStatsCommentary.test.tsx.snap +1 -1
  24. package/src/components/opta/football/opta-match-stats/shared/styles.ts +0 -8
  25. package/src/components/opta/football/opta-match-stats/stats-graphs/__tests__/__snapshots__/OptaMatchStatsGraphs.test.tsx.snap +1 -1
  26. package/src/components/opta/football/opta-match-stats/summary/OptaMatchStatsSummary.stories.tsx +1 -1
  27. package/src/components/opta/football/opta-match-stats/summary/OptaMatchStatsSummary.tsx +1 -1
  28. package/src/components/opta/football/opta-match-stats/summary/WidgetContainer.tsx +3 -12
  29. package/src/components/opta/football/opta-match-stats/summary/__tests__/__snapshots__/OptaMatchStatsSummary.test.tsx.snap +1 -1
  30. package/src/components/travel-mini-cta/index.tsx +161 -0
  31. package/src/components/travel-mini-cta/styles.ts +336 -0
  32. package/src/components/travel-mini-cta/travel-mini-cta.stories.tsx +157 -0
  33. package/src/components/travel-mini-cta/types.ts +10 -0
  34. package/src/index.ts +1 -3
  35. package/src/utils/applyDarkMode.ts +12 -0
  36. package/src/utils/getMediaQuery.ts +25 -0
  37. package/src/utils/index.ts +2 -0
  38. package/dist/components/opta/football/opta-match-stats/matchday-live/DesktopWidget.d.ts +0 -10
  39. package/dist/components/opta/football/opta-match-stats/matchday-live/DesktopWidget.js +0 -69
  40. package/dist/components/opta/football/opta-match-stats/matchday-live/MobileWidget.d.ts +0 -12
  41. package/dist/components/opta/football/opta-match-stats/matchday-live/MobileWidget.js +0 -90
  42. package/dist/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.d.ts +0 -12
  43. package/dist/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.js +0 -10
  44. package/dist/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.stories.d.ts +0 -1
  45. package/dist/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.stories.js +0 -24
  46. package/dist/components/opta/football/opta-match-stats/matchday-live/__tests__/MobileWidget.test.d.ts +0 -1
  47. package/dist/components/opta/football/opta-match-stats/matchday-live/__tests__/MobileWidget.test.js +0 -57
  48. package/dist/components/opta/football/opta-match-stats/matchday-live/__tests__/OptaMatchStatsMatchdayLive.test.d.ts +0 -2
  49. package/dist/components/opta/football/opta-match-stats/matchday-live/__tests__/OptaMatchStatsMatchdayLive.test.js +0 -48
  50. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/MatchdayLiveController.d.ts +0 -1
  51. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/MatchdayLiveController.js +0 -19
  52. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/NavigationWrapper.d.ts +0 -12
  53. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/NavigationWrapper.js +0 -67
  54. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/WidgetContainer.d.ts +0 -6
  55. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/WidgetContainer.js +0 -730
  56. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/__tests__/NavigationWrapper.test.d.ts +0 -1
  57. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/__tests__/NavigationWrapper.test.js +0 -33
  58. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/__tests__/WidgetContainer.test.d.ts +0 -1
  59. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/__tests__/WidgetContainer.test.js +0 -36
  60. package/src/components/opta/football/opta-match-stats/matchday-live/DesktopWidget.tsx +0 -108
  61. package/src/components/opta/football/opta-match-stats/matchday-live/MobileWidget.tsx +0 -158
  62. package/src/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.stories.tsx +0 -38
  63. package/src/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.tsx +0 -23
  64. package/src/components/opta/football/opta-match-stats/matchday-live/__tests__/MobileWidget.test.tsx +0 -69
  65. package/src/components/opta/football/opta-match-stats/matchday-live/__tests__/OptaMatchStatsMatchdayLive.test.tsx +0 -61
  66. package/src/components/opta/football/opta-match-stats/matchday-live/__tests__/__snapshots__/OptaMatchStatsMatchdayLive.test.tsx.snap +0 -61
  67. package/src/components/opta/football/opta-match-stats/matchday-live/styles/MatchdayLiveController.tsx +0 -19
  68. package/src/components/opta/football/opta-match-stats/matchday-live/styles/NavigationWrapper.tsx +0 -81
  69. package/src/components/opta/football/opta-match-stats/matchday-live/styles/WidgetContainer.tsx +0 -761
  70. package/src/components/opta/football/opta-match-stats/matchday-live/styles/__tests__/NavigationWrapper.test.tsx +0 -67
  71. package/src/components/opta/football/opta-match-stats/matchday-live/styles/__tests__/WidgetContainer.test.tsx +0 -64
@@ -3,7 +3,7 @@
3
3
  exports[`OptaMatchStatsCommentary renders and initialises widget 1`] = `
4
4
  <DocumentFragment>
5
5
  <div
6
- class="sc-bxivhb eKHCQT"
6
+ class="sc-bxivhb hlADP"
7
7
  >
8
8
  <h3>
9
9
  Commentary
@@ -54,13 +54,5 @@ export const WidgetWrapper = styled.div<{
54
54
  @media (max-width: ${maxMDBreakpoint}px) {
55
55
  display: none;
56
56
  }
57
-
58
- ${props =>
59
- props.isApp &&
60
- `
61
- @media(prefers-color-scheme: dark) {
62
- color: ${darkTextColor} !important;
63
- }
64
- `}
65
57
  }
66
58
  `;
@@ -3,7 +3,7 @@
3
3
  exports[`OptaMatchStatsSummary should render correctly 1`] = `
4
4
  <DocumentFragment>
5
5
  <div
6
- class="sc-bxivhb dwwqvg"
6
+ class="sc-bxivhb JyPwY"
7
7
  >
8
8
  <h3>
9
9
  Match Stats
@@ -26,7 +26,7 @@ const showcase = {
26
26
  <OptaMatchStatsSummary
27
27
  season="2025"
28
28
  competition="8"
29
- match="2562044"
29
+ match="2561901"
30
30
  isApp
31
31
  />
32
32
  </>
@@ -72,7 +72,7 @@ export const OptaMatchStatsSummary: React.FC<{
72
72
  show_competition_name: true,
73
73
  competition_naming: 'full',
74
74
  team_naming: 'full',
75
- player_naming: 'last_name',
75
+ player_naming: 'initial',
76
76
  show_live: false,
77
77
  show_logo: false,
78
78
  show_title: false
@@ -316,23 +316,14 @@ export const WidgetContainer = styled.div<{
316
316
  display: flex;
317
317
  text-align: right;
318
318
  }
319
-
320
- &.Opta-Home {
321
- .Opta-Event-Player {
322
- text-align: left;
323
- }
324
- }
325
-
326
- &.Opta-Away {
327
- .Opta-Event-Player {
328
- text-align: right;
329
- }
330
- }
331
319
  }
332
320
 
333
321
  .Opta-Event-Text {
334
322
  display: flex;
335
323
  align-items: center;
324
+ .Opta-Event-Player {
325
+ text-align: left;
326
+ }
336
327
 
337
328
  &.Opta-Home {
338
329
  li {
@@ -3,7 +3,7 @@
3
3
  exports[`OptaMatchStatsSummary should render correctly 1`] = `
4
4
  <DocumentFragment>
5
5
  <div
6
- class="sc-ifAKCX hkuAFt"
6
+ class="sc-ifAKCX eIVfcL"
7
7
  />
8
8
  <div
9
9
  class="sc-bwzfXH eSqyJ"
@@ -0,0 +1,161 @@
1
+ import React, { FC, useState, useRef, useEffect, MouseEvent } from 'react';
2
+ import { TravelMiniCTAProps } from './types';
3
+ import {
4
+ Container,
5
+ ContentWrapper,
6
+ LeftSection,
7
+ LogoContainer,
8
+ LogoBox,
9
+ LogoText,
10
+ TextContainer,
11
+ Label,
12
+ MobileLabel,
13
+ Description,
14
+ RightSection,
15
+ ContactInfo,
16
+ PhoneLabel,
17
+ PhoneNumber,
18
+ WorkingHoursContainer,
19
+ WorkingHoursText,
20
+ ButtonsContainer,
21
+ PrimaryButton,
22
+ SecondaryButton
23
+ } from './styles';
24
+
25
+ export const TravelMiniCTA: FC<TravelMiniCTAProps> = ({
26
+ description,
27
+ phoneLabel,
28
+ phoneNumber,
29
+ workingHours,
30
+ primaryButtonText,
31
+ secondaryButtonText,
32
+ secondaryButtonUrl,
33
+ isApp
34
+ }) => {
35
+ const [chatReady, setChatReady] = useState(false);
36
+ const [chatFailed, setChatFailed] = useState(false);
37
+ const chatDivRef = useRef<HTMLDivElement>(null);
38
+
39
+ const handlePrimaryButtonClick = (
40
+ e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>
41
+ ) => {
42
+ e.preventDefault();
43
+
44
+ const chatDiv = chatDivRef.current;
45
+ if (chatDiv) {
46
+ const lpEventElement = chatDiv.querySelector(
47
+ '[data-lp-event]'
48
+ ) as HTMLElement;
49
+ if (lpEventElement) {
50
+ lpEventElement.click();
51
+ }
52
+ }
53
+ };
54
+
55
+ useEffect(
56
+ () => {
57
+ const chatDiv = chatDivRef.current;
58
+ if (!chatDiv || typeof window === 'undefined') {
59
+ return;
60
+ }
61
+
62
+ let timeoutId: NodeJS.Timeout | null = null;
63
+ let previouslyFound = false;
64
+
65
+ const observer = new MutationObserver(() => {
66
+ const lpEventElement = chatDiv.querySelector(
67
+ '[data-lp-event]'
68
+ ) as HTMLElement;
69
+
70
+ if (lpEventElement && !previouslyFound) {
71
+ previouslyFound = true;
72
+ setChatReady(true);
73
+ setChatFailed(false);
74
+
75
+ if (primaryButtonText) {
76
+ lpEventElement.textContent = primaryButtonText;
77
+ }
78
+
79
+ // Clear timeout since chat loaded successfully
80
+ if (timeoutId) {
81
+ clearTimeout(timeoutId);
82
+ timeoutId = null;
83
+ }
84
+ } else if (!lpEventElement && previouslyFound) {
85
+ previouslyFound = false;
86
+ setChatReady(false);
87
+ setChatFailed(false);
88
+ }
89
+ });
90
+
91
+ observer.observe(chatDiv, { childList: true, subtree: true });
92
+
93
+ timeoutId = setTimeout(() => {
94
+ if (!previouslyFound) {
95
+ observer.disconnect();
96
+ setChatFailed(true);
97
+ }
98
+ }, 15000);
99
+
100
+ return () => {
101
+ observer.disconnect();
102
+ if (timeoutId) {
103
+ clearTimeout(timeoutId);
104
+ }
105
+ };
106
+ },
107
+ [primaryButtonText]
108
+ );
109
+
110
+ return (
111
+ <Container data-testid="travel-mini-cta" isApp={isApp}>
112
+ <ContentWrapper>
113
+ <LeftSection>
114
+ <LogoContainer>
115
+ <LogoBox isApp={isApp}>
116
+ <LogoText isApp={isApp}>T</LogoText>
117
+ </LogoBox>
118
+ <MobileLabel isApp={isApp}>VISIT TIMES HOLIDAYS</MobileLabel>
119
+ </LogoContainer>
120
+ <TextContainer>
121
+ <Label isApp={isApp}>VISIT TIMES HOLIDAYS</Label>
122
+ <Description isApp={isApp}>{description}</Description>
123
+ </TextContainer>
124
+ </LeftSection>
125
+
126
+ <RightSection>
127
+ <ContactInfo>
128
+ <PhoneLabel href={`tel:${phoneNumber}`} isApp={isApp}>
129
+ {phoneLabel}{' '}
130
+ <PhoneNumber isApp={isApp}>{phoneNumber}</PhoneNumber>
131
+ </PhoneLabel>
132
+ <WorkingHoursContainer>
133
+ {workingHours &&
134
+ workingHours.map((hours, index) => (
135
+ <WorkingHoursText key={index} isApp={isApp}>
136
+ {hours}
137
+ </WorkingHoursText>
138
+ ))}
139
+ </WorkingHoursContainer>
140
+ </ContactInfo>
141
+ <ButtonsContainer>
142
+ <PrimaryButton
143
+ as="button"
144
+ type="button"
145
+ onClick={handlePrimaryButtonClick}
146
+ isApp={isApp}
147
+ disabled={!chatReady}
148
+ >
149
+ {chatFailed && 'Chat unavailable'}
150
+ {!chatReady && !chatFailed && 'Loading chat...'}
151
+ <div id="LP_DIV_TRAVEL_1239001" ref={chatDivRef} />
152
+ </PrimaryButton>
153
+ <SecondaryButton href={secondaryButtonUrl} isApp={isApp}>
154
+ {secondaryButtonText}
155
+ </SecondaryButton>
156
+ </ButtonsContainer>
157
+ </RightSection>
158
+ </ContentWrapper>
159
+ </Container>
160
+ );
161
+ };
@@ -0,0 +1,336 @@
1
+ import styled from 'styled-components';
2
+ import { getMediaQuery, applyDarkMode } from '../../utils';
3
+
4
+ const BaseLabel = styled.div<{ isApp?: boolean }>`
5
+ font-family: 'Roboto';
6
+ font-weight: 500;
7
+ line-height: 1.125;
8
+ font-size: 0.875rem;
9
+ letter-spacing: 0em;
10
+ color: #01000d;
11
+ text-transform: uppercase;
12
+
13
+ ${({ isApp }) =>
14
+ applyDarkMode(
15
+ `
16
+ color: #f5f5f5 !important;
17
+ `,
18
+ isApp
19
+ )};
20
+ `;
21
+
22
+ export const Container = styled.div<{ isApp?: boolean }>`
23
+ background-color: #ffffff;
24
+ padding: 24px;
25
+ border-top: 1px dashed;
26
+ border-bottom: 1px dashed;
27
+ border-color: #cccccc;
28
+
29
+ ${({ isApp }) =>
30
+ applyDarkMode(
31
+ `
32
+ background-color: #f5f5f5 !important;
33
+ border-color: #e4e4e4 !important;
34
+ `,
35
+ isApp
36
+ )};
37
+ `;
38
+
39
+ export const ContentWrapper = styled.div`
40
+ display: flex;
41
+ flex-direction: row;
42
+ justify-content: space-between;
43
+ align-items: flex-start;
44
+ gap: 20px;
45
+
46
+ ${getMediaQuery('xs', 'md')} {
47
+ flex-direction: column;
48
+ gap: 24px;
49
+ }
50
+ `;
51
+
52
+ export const LeftSection = styled.div`
53
+ display: flex;
54
+ flex-direction: row;
55
+ align-items: flex-start;
56
+ width: 50%;
57
+ gap: 24px;
58
+
59
+ ${getMediaQuery('xs', 'md')} {
60
+ width: 100%;
61
+ flex-direction: column;
62
+ gap: 16px;
63
+ }
64
+ `;
65
+
66
+ export const LogoContainer = styled.div`
67
+ display: flex;
68
+ align-items: center;
69
+ justify-content: center;
70
+ flex-shrink: 0;
71
+
72
+ ${getMediaQuery('xs', 'md')} {
73
+ flex-direction: row-reverse;
74
+ justify-content: flex-start;
75
+ justify-content: space-between;
76
+ width: 100%;
77
+ }
78
+ `;
79
+
80
+ export const LogoBox = styled.div<{ isApp?: boolean }>`
81
+ width: 40px;
82
+ height: 40px;
83
+ position: relative;
84
+ display: flex;
85
+ align-items: center;
86
+ justify-content: center;
87
+ background-color: #aaaaaa;
88
+
89
+ ${({ isApp }) =>
90
+ applyDarkMode(
91
+ `
92
+ background-color: #c2c2c2 !important;
93
+ `,
94
+ isApp
95
+ )};
96
+ `;
97
+
98
+ export const LogoText = styled.span<{ isApp?: boolean }>`
99
+ font-family: 'Times Modern', serif;
100
+ font-weight: 700;
101
+ font-size: 40px;
102
+ line-height: 1.125;
103
+ letter-spacing: 0.02em;
104
+ color: #ffffff;
105
+ padding-top: 4px;
106
+
107
+ ${({ isApp }) =>
108
+ applyDarkMode(
109
+ `
110
+ color: #1d1d1b !important;
111
+ `,
112
+ isApp
113
+ )};
114
+ `;
115
+
116
+ export const TextContainer = styled.div`
117
+ display: flex;
118
+ flex-direction: column;
119
+ gap: 16px;
120
+ max-width: 375px;
121
+
122
+ ${getMediaQuery('xs', 'md')} {
123
+ gap: 24px;
124
+ }
125
+ `;
126
+
127
+ export const Label = styled(BaseLabel)`
128
+ ${getMediaQuery('xs', 'md')} {
129
+ display: none;
130
+ }
131
+ `;
132
+
133
+ export const MobileLabel = styled(BaseLabel)`
134
+ display: none;
135
+
136
+ ${getMediaQuery('xs', 'md')} {
137
+ display: block;
138
+ }
139
+ `;
140
+
141
+ export const Description = styled.div<{ isApp?: boolean }>`
142
+ font-family: 'Times Modern';
143
+ font-weight: 700;
144
+ line-height: 1.125;
145
+ font-size: 1.5rem;
146
+ letter-spacing: 0em;
147
+ color: #333333;
148
+
149
+ ${({ isApp }) =>
150
+ applyDarkMode(
151
+ `
152
+ color: #cccccc !important;
153
+ `,
154
+ isApp
155
+ )};
156
+
157
+ ${getMediaQuery('xs', 'md')} {
158
+ margin-right: 64px;
159
+ }
160
+ `;
161
+
162
+ export const RightSection = styled.div`
163
+ display: flex;
164
+ flex-direction: column;
165
+ gap: 24px;
166
+ width: 50%;
167
+
168
+ ${getMediaQuery('xs', 'md')} {
169
+ gap: 32px;
170
+ width: 100%;
171
+ }
172
+ `;
173
+
174
+ export const ContactInfo = styled.div`
175
+ display: flex;
176
+ flex-direction: column;
177
+ gap: 16px;
178
+ `;
179
+
180
+ export const PhoneLabel = styled.a<{ isApp?: boolean }>`
181
+ text-decoration: none;
182
+ display: inline;
183
+ font-family: 'Times Digital W04 Regular';
184
+ font-weight: 400;
185
+ line-height: 1.5;
186
+ font-size: 1.125rem;
187
+ letter-spacing: 0em;
188
+ color: #333333;
189
+ cursor: pointer;
190
+
191
+ ${({ isApp }) =>
192
+ applyDarkMode(
193
+ `
194
+ color: #c2c2c2 !important;
195
+ `,
196
+ isApp
197
+ )};
198
+
199
+ &:hover {
200
+ text-decoration: underline;
201
+ }
202
+ `;
203
+
204
+ export const PhoneNumber = styled.span<{ isApp?: boolean }>`
205
+ font-family: 'Times Modern';
206
+ font-weight: 700;
207
+ line-height: 1.125;
208
+ font-size: 1.5rem;
209
+ letter-spacing: 0em;
210
+ color: #333333;
211
+ font-size: 2.2rem;
212
+
213
+ ${({ isApp }) =>
214
+ applyDarkMode(
215
+ `
216
+ color: #c2c2c2 !important;
217
+ `,
218
+ isApp
219
+ )};
220
+ `;
221
+
222
+ export const WorkingHoursContainer = styled.div`
223
+ display: flex;
224
+ flex-direction: row;
225
+ gap: 8px;
226
+ flex-wrap: wrap;
227
+
228
+ ${getMediaQuery('xs', 'md')} {
229
+ flex-direction: column;
230
+ }
231
+ `;
232
+
233
+ export const WorkingHoursText = styled.div<{ isApp?: boolean }>`
234
+ font-family: 'Times Digital W04 Regular';
235
+ font-weight: 400;
236
+ line-height: 1.5;
237
+ font-size: 1.125rem;
238
+ letter-spacing: 0em;
239
+ color: #333333;
240
+
241
+ ${({ isApp }) =>
242
+ applyDarkMode(
243
+ `
244
+ color: #cccccc !important;
245
+ `,
246
+ isApp
247
+ )};
248
+ `;
249
+
250
+ export const ButtonsContainer = styled.div`
251
+ display: flex;
252
+ flex-direction: row;
253
+ gap: 16px;
254
+
255
+ ${getMediaQuery('xs', 'md')} {
256
+ flex-direction: column;
257
+ }
258
+ `;
259
+
260
+ const BaseButton = styled.a`
261
+ text-decoration: none;
262
+ border-radius: 0px;
263
+ width: 100%;
264
+ min-height: 44px;
265
+ font-family: 'Roboto';
266
+ font-weight: 500;
267
+ line-height: 1.5;
268
+ font-size: 1rem;
269
+ letter-spacing: 0em;
270
+ display: flex;
271
+ align-items: center;
272
+ justify-content: center;
273
+ padding: 12px;
274
+ cursor: pointer;
275
+ transition: all 0.2s ease;
276
+ `;
277
+
278
+ export const PrimaryButton = styled(BaseButton)<{
279
+ disabled?: boolean;
280
+ isApp?: boolean;
281
+ }>`
282
+ border: none;
283
+ background-color: #005c8a;
284
+ color: #ffffff;
285
+ cursor: ${({ disabled }) => (disabled ? 'not-allowed' : 'pointer')};
286
+ opacity: ${({ disabled }) => (disabled ? 0.6 : 1)};
287
+
288
+ div[data-lp-event] {
289
+ cursor: pointer;
290
+ font-family: 'Roboto';
291
+ font-weight: 500;
292
+ line-height: 1.5;
293
+ font-size: 1rem;
294
+ letter-spacing: 0em;
295
+ }
296
+
297
+ &:hover {
298
+ background-color: #00527a;
299
+ }
300
+
301
+ ${({ isApp }) =>
302
+ applyDarkMode(
303
+ `
304
+ background-color: #74bade !important;
305
+ color: #1d1d1b !important;
306
+
307
+ &:hover {
308
+ background-color: #93cbe8 !important;
309
+ }
310
+ `,
311
+ isApp
312
+ )};
313
+ `;
314
+
315
+ export const SecondaryButton = styled(BaseButton)<{ isApp?: boolean }>`
316
+ border: 1px solid #005c8a;
317
+ background-color: transparent;
318
+ color: #005c8a;
319
+
320
+ &:hover {
321
+ background-color: #f5f5f5;
322
+ }
323
+
324
+ ${({ isApp }) =>
325
+ applyDarkMode(
326
+ `
327
+ border-color: #74bade !important;
328
+ color: #74bade !important;
329
+
330
+ &:hover {
331
+ background-color: #01000d !important;
332
+ }
333
+ `,
334
+ isApp
335
+ )};
336
+ `;