@paypal/checkout-components 5.0.237 → 5.0.238-kitty

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.
@@ -234,8 +234,87 @@ export function WalletLabelOld(opts : WalletLabelOptions) : ?ChildType {
234
234
  );
235
235
  }
236
236
 
237
+ function ShowPayLabel(opts) : ?ChildType {
238
+ const {instrument, content, payNow, textColor, logo, label } = opts;
239
+
240
+ return (
241
+ <div class='show-pay-label'>
242
+ <div class='pay-label' optional={ 2 }>
243
+ <Space />
244
+ {
245
+ (instrument && content)
246
+ ? <Text>{ payNow ? content.payNow : content.payWith }</Text>
247
+ : <Text><PlaceHolder chars={ 7 } color={ textColor } /></Text>
248
+ }
249
+ <Space />
250
+ </div>
251
+ <div class='logo' optional={ 1 }>
252
+ {
253
+ (instrument && logo)
254
+ ? logo
255
+ : <Text><PlaceHolder chars={ 4 } color={ textColor } /></Text>
256
+ }
257
+ </div>
258
+ <div class='label'>
259
+ <Space />
260
+ {
261
+ (instrument && label)
262
+ ? <Text>{ label }</Text>
263
+ : <Text><PlaceHolder chars={ 6 } color={ textColor } /></Text>
264
+ }
265
+ </div>
266
+ </div>
267
+ );
268
+ }
269
+
270
+ function NoPayLabel(opts) : ?ChildType {
271
+ const { instrument, textColor, logo, label, content } = opts;
272
+
273
+ return (
274
+ <div class='no-pay-label'>
275
+ {
276
+ instrument?.secondaryInstruments?.[0]
277
+ ? (
278
+ <div class='balance'>
279
+ <Text>{ content?.balance } &</Text>
280
+ <Space />
281
+ </div>
282
+ )
283
+ : null
284
+ }
285
+ {
286
+ (instrument?.type === "balance")
287
+ ? (
288
+ <div class='paypal-balance'>
289
+ <Text>{ content?.payPalBalance }</Text>
290
+ </div>
291
+ )
292
+ : (
293
+ <div class='no-paypal-balance'>
294
+ <div class='fi-logo' optional={ 1 }>
295
+ {
296
+ (instrument && logo)
297
+ ? logo
298
+ : <Text><PlaceHolder chars={ 4 } color={ textColor } /></Text>
299
+ }
300
+ </div>
301
+ <div class='label'>
302
+ <Space />
303
+ {
304
+ (instrument && label)
305
+ ? <Text>{ label }</Text>
306
+ : <Text><PlaceHolder chars={ 6 } color={ textColor } /></Text>
307
+ }
308
+ </div>
309
+ </div>
310
+ )
311
+ }
312
+ </div>
313
+ );
314
+ }
315
+
237
316
  export function WalletLabel(opts : WalletLabelOptions) : ?ChildType {
238
- const { logoColor, instrument, content, commit, vault, textColor, fundingSource } = opts;
317
+ const { logoColor, instrument, content, commit, vault, textColor, fundingSource, showPayLabel } = opts;
239
318
 
240
319
  if (instrument && !instrument.type) {
241
320
  return WalletLabelOld(opts);
@@ -305,31 +384,24 @@ export function WalletLabel(opts : WalletLabelOptions) : ?ChildType {
305
384
  )
306
385
  : null
307
386
  }
308
-
309
- <div class='pay-label' optional={ 2 }>
310
- <Space />
311
- {
312
- (instrument && content)
313
- ? <Text>{ payNow ? content.payNow : content.payWith }</Text>
314
- : <Text><PlaceHolder chars={ 7 } color={ textColor } /></Text>
315
- }
316
- <Space />
317
- </div>
318
- <div class='logo' optional={ 1 }>
319
- {
320
- (instrument && logo)
321
- ? logo
322
- : <Text><PlaceHolder chars={ 4 } color={ textColor } /></Text>
323
- }
324
- </div>
325
- <div class='label'>
326
- <Space />
327
- {
328
- (instrument && label)
329
- ? <Text>{ label }</Text>
330
- : <Text><PlaceHolder chars={ 6 } color={ textColor } /></Text>
331
- }
332
- </div>
387
+ {
388
+ showPayLabel
389
+ ? <ShowPayLabel
390
+ instrument={ instrument }
391
+ content={ content }
392
+ payNow={ payNow }
393
+ textColor={ textColor }
394
+ logo={ logo }
395
+ label={ label }
396
+ />
397
+ : <NoPayLabel
398
+ instrument={ instrument }
399
+ textColor={ textColor }
400
+ logo={ logo }
401
+ label={ label }
402
+ content={ content }
403
+ />
404
+ }
333
405
  </div>
334
406
  </Style>
335
407
  );
@@ -2,13 +2,15 @@
2
2
  /** @jsx node */
3
3
 
4
4
  import { SofortLogo } from '@paypal/sdk-logos/src';
5
+ import { Fragment, node } from '@krakenjs/jsx-pragmatic/src';
5
6
 
6
7
  import { BUTTON_LAYOUT } from '../../constants';
7
- import { DEFAULT_FUNDING_CONFIG, type FundingSourceConfig } from '../common';
8
+ import { DEFAULT_APM_FUNDING_CONFIG, type FundingSourceConfig, BasicLabel } from '../common';
9
+ import { Text, Space } from '../../ui/text';
8
10
 
9
11
  export function getSofortConfig() : FundingSourceConfig {
10
12
  return {
11
- ...DEFAULT_FUNDING_CONFIG,
13
+ ...DEFAULT_APM_FUNDING_CONFIG,
12
14
 
13
15
  shippingChange: false,
14
16
 
@@ -16,6 +18,23 @@ export function getSofortConfig() : FundingSourceConfig {
16
18
  BUTTON_LAYOUT.VERTICAL
17
19
  ],
18
20
 
19
- Logo: ({ logoColor, optional }) => SofortLogo({ logoColor, optional })
21
+ Logo: ({ logoColor, optional }) => SofortLogo({ logoColor, optional }),
22
+
23
+ Label: ({ logo, ...opts }) => {
24
+ if (__WEB__) {
25
+ return logo;
26
+ }
27
+
28
+ const apmLogo = (
29
+ <Fragment>
30
+ { logo }<Space /><Text animate optional>SOFORT</Text>
31
+ </Fragment>
32
+ );
33
+
34
+ return (<BasicLabel
35
+ { ...opts }
36
+ logo={ apmLogo }
37
+ />);
38
+ }
20
39
  };
21
40
  }
@@ -2,13 +2,15 @@
2
2
  /** @jsx node */
3
3
 
4
4
  import { TrustlyLogo } from '@paypal/sdk-logos/src';
5
+ import { Fragment, node } from '@krakenjs/jsx-pragmatic/src';
5
6
 
6
7
  import { BUTTON_LAYOUT } from '../../constants';
7
- import { DEFAULT_FUNDING_CONFIG, type FundingSourceConfig } from '../common';
8
+ import { DEFAULT_APM_FUNDING_CONFIG, type FundingSourceConfig, BasicLabel } from '../common';
9
+ import { Text, Space } from '../../ui/text';
8
10
 
9
11
  export function getTrustlyConfig() : FundingSourceConfig {
10
12
  return {
11
- ...DEFAULT_FUNDING_CONFIG,
13
+ ...DEFAULT_APM_FUNDING_CONFIG,
12
14
 
13
15
  automatic: false,
14
16
 
@@ -18,6 +20,23 @@ export function getTrustlyConfig() : FundingSourceConfig {
18
20
  BUTTON_LAYOUT.VERTICAL
19
21
  ],
20
22
 
21
- Logo: ({ logoColor, optional }) => TrustlyLogo({ logoColor, optional })
23
+ Logo: ({ logoColor, optional }) => TrustlyLogo({ logoColor, optional }),
24
+
25
+ Label: ({ logo, ...opts }) => {
26
+ if (__WEB__) {
27
+ return logo;
28
+ }
29
+
30
+ const apmLogo = (
31
+ <Fragment>
32
+ { logo }<Space /><Text animate optional>Trustly</Text>
33
+ </Fragment>
34
+ );
35
+
36
+ return (<BasicLabel
37
+ { ...opts }
38
+ logo={ apmLogo }
39
+ />);
40
+ }
22
41
  };
23
42
  }
@@ -2,13 +2,15 @@
2
2
  /** @jsx node */
3
3
 
4
4
  import { VerkkopankkiLogo } from '@paypal/sdk-logos/src';
5
+ import { Fragment, node } from '@krakenjs/jsx-pragmatic/src';
5
6
 
6
7
  import { BUTTON_LAYOUT } from '../../constants';
7
- import { DEFAULT_FUNDING_CONFIG, type FundingSourceConfig } from '../common';
8
+ import { DEFAULT_APM_FUNDING_CONFIG, type FundingSourceConfig, BasicLabel } from '../common';
9
+ import { Text, Space } from '../../ui/text';
8
10
 
9
11
  export function getVerkkopankkiConfig() : FundingSourceConfig {
10
12
  return {
11
- ...DEFAULT_FUNDING_CONFIG,
13
+ ...DEFAULT_APM_FUNDING_CONFIG,
12
14
 
13
15
  automatic: false,
14
16
 
@@ -18,6 +20,23 @@ export function getVerkkopankkiConfig() : FundingSourceConfig {
18
20
 
19
21
  shippingChange: false,
20
22
 
21
- Logo: ({ logoColor, optional }) => VerkkopankkiLogo({ logoColor, optional })
23
+ Logo: ({ logoColor, optional }) => VerkkopankkiLogo({ logoColor, optional }),
24
+
25
+ Label: ({ logo, ...opts }) => {
26
+ if (__WEB__) {
27
+ return logo;
28
+ }
29
+
30
+ const apmLogo = (
31
+ <Fragment>
32
+ { logo }<Space /><Text animate optional>Verkkopankki</Text>
33
+ </Fragment>
34
+ );
35
+
36
+ return (<BasicLabel
37
+ { ...opts }
38
+ logo={ apmLogo }
39
+ />);
40
+ }
22
41
  };
23
42
  }
@@ -2,13 +2,15 @@
2
2
  /** @jsx node */
3
3
 
4
4
  import { WechatpayLogo } from '@paypal/sdk-logos/src';
5
+ import { Fragment, node } from '@krakenjs/jsx-pragmatic/src';
5
6
 
6
7
  import { BUTTON_LAYOUT } from '../../constants';
7
- import { DEFAULT_FUNDING_CONFIG, type FundingSourceConfig } from '../common';
8
+ import { DEFAULT_APM_FUNDING_CONFIG, type FundingSourceConfig, BasicLabel } from '../common';
9
+ import { Text, Space } from '../../ui/text';
8
10
 
9
11
  export function getWechatpayConfig() : FundingSourceConfig {
10
12
  return {
11
- ...DEFAULT_FUNDING_CONFIG,
13
+ ...DEFAULT_APM_FUNDING_CONFIG,
12
14
 
13
15
  shippingChange: false,
14
16
 
@@ -16,6 +18,23 @@ export function getWechatpayConfig() : FundingSourceConfig {
16
18
  BUTTON_LAYOUT.VERTICAL
17
19
  ],
18
20
 
19
- Logo: ({ logoColor, optional }) => WechatpayLogo({ logoColor, optional })
21
+ Logo: ({ logoColor, optional }) => WechatpayLogo({ logoColor, optional }),
22
+
23
+ Label: ({ logo, ...opts }) => {
24
+ if (__WEB__) {
25
+ return logo;
26
+ }
27
+
28
+ const apmLogo = (
29
+ <Fragment>
30
+ { logo }<Space /><Text animate optional>WeChat Pay</Text>
31
+ </Fragment>
32
+ );
33
+
34
+ return (<BasicLabel
35
+ { ...opts }
36
+ logo={ apmLogo }
37
+ />);
38
+ }
20
39
  };
21
40
  }
package/src/types.js CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  import { CARD, WALLET_INSTRUMENT } from '@paypal/sdk-constants/src';
4
4
 
5
+ type SecondaryInstruments = {|
6
+ type : string,
7
+ label : string,
8
+ instrumentID : string
9
+ |};
10
+
5
11
  export type WalletInstrument = {|
6
12
  type? : $Values<typeof WALLET_INSTRUMENT>,
7
13
  label? : string,
@@ -10,7 +16,8 @@ export type WalletInstrument = {|
10
16
  tokenID? : string,
11
17
  vendor? : $Values<typeof CARD>,
12
18
  oneClick : boolean,
13
- branded : boolean
19
+ branded : boolean,
20
+ secondaryInstruments? : SecondaryInstruments
14
21
  |};
15
22
 
16
23
  export type WalletPaymentType = {|
@@ -38,7 +45,8 @@ export type ContentType = {|
38
45
  credit : string,
39
46
  payWith : string,
40
47
  payLater : string,
41
- flex : string
48
+ flex : string,
49
+ payPalBalance: string
42
50
  |};
43
51
 
44
52
  export type Experiment = {|
@@ -41,11 +41,12 @@ type IndividualButtonProps = {|
41
41
  vault : boolean,
42
42
  merchantFundingSource : ?$Values<typeof FUNDING>,
43
43
  instrument : ?WalletInstrument,
44
- experience? : string
44
+ experience? : string,
45
+ showPayLabel : boolean
45
46
  |};
46
47
 
47
48
  export function Button({ fundingSource, style, multiple, locale, env, fundingEligibility, i, nonce, flow, vault,
48
- userIDToken, personalization, onClick = noop, content, tagline, commit, experiment, instrument, experience } : IndividualButtonProps) : ElementNode {
49
+ userIDToken, personalization, onClick = noop, content, tagline, commit, experiment, instrument, experience, showPayLabel } : IndividualButtonProps) : ElementNode {
49
50
 
50
51
  const { custom, layout, shape } = style;
51
52
  const inlineExperience = experience === EXPERIENCE.INLINE && custom && custom.label;
@@ -189,6 +190,7 @@ export function Button({ fundingSource, style, multiple, locale, env, fundingEli
189
190
  vault={ vault }
190
191
  textColor={ textColor }
191
192
  fundingSource={ fundingSource }
193
+ showPayLabel={ showPayLabel }
192
194
  />
193
195
  );
194
196
 
@@ -218,11 +220,12 @@ export function Button({ fundingSource, style, multiple, locale, env, fundingEli
218
220
  <div
219
221
  role='link'
220
222
  { ...{
221
- [ ATTRIBUTE.BUTTON ]: true,
222
- [ ATTRIBUTE.FUNDING_SOURCE ]: fundingSource,
223
- [ ATTRIBUTE.PAYMENT_METHOD_ID ]: instrument ? instrument.tokenID : null,
224
- [ ATTRIBUTE.INSTRUMENT_ID ]: instrument ? instrument.instrumentID : null,
225
- [ ATTRIBUTE.INSTRUMENT_TYPE ]: instrument ? instrument.type : null
223
+ [ ATTRIBUTE.BUTTON ]: true,
224
+ [ ATTRIBUTE.FUNDING_SOURCE ]: fundingSource,
225
+ [ ATTRIBUTE.PAYMENT_METHOD_ID ]: instrument ? instrument.tokenID : null,
226
+ [ ATTRIBUTE.INSTRUMENT_ID ]: instrument ? instrument.instrumentID : null,
227
+ [ ATTRIBUTE.INSTRUMENT_TYPE ]: instrument ? instrument.type : null,
228
+ [ ATTRIBUTE.SECONDARY_INSTRUMENT_TYPE ]: instrument?.secondaryInstruments ? instrument.secondaryInstruments[0].type : null
226
229
  } }
227
230
  class={ [
228
231
  CLASS.BUTTON,
@@ -104,7 +104,7 @@ export function Buttons(props : ButtonsProps) : ElementNode {
104
104
  const { onClick = noop } = props;
105
105
  const { wallet, fundingSource, style, locale, remembered, env, fundingEligibility, platform, commit, vault,
106
106
  nonce, components, onShippingChange, onShippingAddressChange, onShippingOptionsChange, personalization, userIDToken, content, flow, experiment, applePaySupport,
107
- supportsPopups, supportedNativeBrowser, experience } = normalizeButtonProps(props);
107
+ supportsPopups, supportedNativeBrowser, experience, showPayLabel } = normalizeButtonProps(props);
108
108
  const { custom, layout, shape, tagline } = style;
109
109
 
110
110
  const inlineExperience = experience === EXPERIENCE.INLINE && custom && custom.label && custom.label.length !== 0;
@@ -192,6 +192,7 @@ export function Buttons(props : ButtonsProps) : ElementNode {
192
192
  vault={ vault }
193
193
  instrument={ instruments[source] }
194
194
  experience={ experience }
195
+ showPayLabel={ showPayLabel }
195
196
  />
196
197
  ))
197
198
  }
@@ -393,7 +393,8 @@ export type RenderButtonProps = {|
393
393
  applePaySupport : boolean,
394
394
  supportsPopups : boolean,
395
395
  supportedNativeBrowser : boolean,
396
- experience : string
396
+ experience : string,
397
+ showPayLabel : boolean
397
398
  |};
398
399
 
399
400
  export type PrerenderDetails = {|
@@ -488,7 +489,8 @@ export type ButtonPropsInputs = {
488
489
  applePaySupport : boolean,
489
490
  supportsPopups : boolean,
490
491
  supportedNativeBrowser : boolean,
491
- experience : string
492
+ experience : string,
493
+ showPayLabel : boolean
492
494
  };
493
495
 
494
496
  export const DEFAULT_STYLE = {
@@ -658,7 +660,8 @@ export function normalizeButtonProps(props : ?ButtonPropsInputs) : RenderButtonP
658
660
  applePaySupport = false,
659
661
  supportsPopups = false,
660
662
  supportedNativeBrowser = false,
661
- experience = ''
663
+ experience = '',
664
+ showPayLabel
662
665
  } = props;
663
666
 
664
667
  const { country, lang } = locale;
@@ -701,5 +704,5 @@ export function normalizeButtonProps(props : ?ButtonPropsInputs) : RenderButtonP
701
704
 
702
705
  return { clientID, fundingSource, style, locale, remembered, env, fundingEligibility, platform, clientAccessToken,
703
706
  buttonSessionID, commit, sessionID, nonce, components, onShippingChange, onShippingAddressChange, onShippingOptionsChange, personalization, content, wallet, flow,
704
- experiment, vault, userIDToken, applePay, applePaySupport, supportsPopups, supportedNativeBrowser, experience };
707
+ experiment, vault, userIDToken, applePay, applePaySupport, supportsPopups, supportedNativeBrowser, experience, showPayLabel };
705
708
  }
@@ -62,6 +62,140 @@ export const buttonColorStyle = `
62
62
  background: #008CFF;
63
63
  }
64
64
 
65
+ /* For APM funding sources, default button color to be defined by payment scheme branding guidelines */
66
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BLIK }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
67
+ background: #2C2E2F;
68
+ }
69
+
70
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BANCONTACT }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
71
+ background: linear-gradient(to right, #1E3764, #005AB9);
72
+ }
73
+
74
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BOLETO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
75
+ background: #2C2E2F;
76
+ }
77
+
78
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BOLETOBANCARIO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
79
+ background: #2C2E2F;
80
+ }
81
+
82
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.EPS }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
83
+ background: #C8036F;
84
+ }
85
+
86
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.GIROPAY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
87
+ background: #003A7D;
88
+ }
89
+
90
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.IDEAL }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
91
+ background: #2C2E2F;
92
+ }
93
+
94
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MERCADOPAGO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
95
+ background: #1D2647;
96
+ }
97
+
98
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MULTIBANCO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
99
+ background: #1866AB;
100
+ }
101
+
102
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MYBANK }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
103
+ background: #1A4B67;
104
+ }
105
+
106
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.OXXO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
107
+ background: #D8232A;
108
+ }
109
+
110
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.P24 }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
111
+ background: #D03238;
112
+ }
113
+
114
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.SOFORT }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
115
+ background: #393A41;
116
+ }
117
+
118
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.TRUSTLY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
119
+ background: #003140;
120
+ }
121
+
122
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.VERKKOPANKKI }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
123
+ background: #005596;
124
+ }
125
+
126
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.WECHATPAY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
127
+ background: #4D4D4D;
128
+ }
129
+
130
+ /* APM button hover actions */
131
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BANCONTACT }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
132
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BLIK }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
133
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BOLETO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
134
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BOLETOBANCARIO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
135
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.EPS }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
136
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.GIROPAY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
137
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.IDEAL }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
138
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MERCADOPAGO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
139
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MULTIBANCO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
140
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MYBANK }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
141
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.OXXO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
142
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.P24 }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
143
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.SOFORT }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
144
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.TRUSTLY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
145
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.VERKKOPANKKI }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
146
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.WECHATPAY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover {
147
+ filter: brightness(1.2);
148
+ }
149
+
150
+ /* APM button on focus actions */
151
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BLIK }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
152
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BANCONTACT }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
153
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BOLETO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
154
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BOLETOBANCARIO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
155
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.EPS }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
156
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.GIROPAY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
157
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.IDEAL }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
158
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MERCADOPAGO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
159
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MULTIBANCO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
160
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MYBANK }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
161
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.OXXO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
162
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.P24 }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
163
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.SOFORT }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
164
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.TRUSTLY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
165
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.VERKKOPANKKI }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
166
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.WECHATPAY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus {
167
+ outline: none;
168
+ }
169
+
170
+ /* APM button after focus actions */
171
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BLIK }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
172
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BANCONTACT }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
173
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BOLETO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
174
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BOLETOBANCARIO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
175
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.EPS }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
176
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.GIROPAY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
177
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.IDEAL }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
178
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MERCADOPAGO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
179
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MULTIBANCO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
180
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MYBANK }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
181
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.OXXO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
182
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.P24 }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
183
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.SOFORT }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
184
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.TRUSTLY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
185
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.VERKKOPANKKI }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
186
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.WECHATPAY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after {
187
+ content: '';
188
+ position: absolute;
189
+ top: 5px;
190
+ right: 5px;
191
+ bottom: 5px;
192
+ left: 5px;
193
+ border: 0.125rem solid #009cde;
194
+ border-radius: inherit;
195
+ box-shadow: 0 0 0 0.5rem #0000a6;
196
+ pointer-events: none;
197
+ }
198
+
65
199
  @media (hover:hover) {
66
200
  .${ CLASS.BUTTON }.${ CLASS.COLOR }-${ BUTTON_COLOR.BLUE }:hover {
67
201
  filter: brightness(0.95);