@paypal/checkout-components 5.0.412 → 5.0.414

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.
@@ -27,6 +27,22 @@ export const BUTTON_RELATIVE_STYLE = {
27
27
  VERTICAL_MARGIN: 30,
28
28
  };
29
29
 
30
+ // Rebrand label container height as a ratio of button height (0.5 = 50%).
31
+ // The PayPal logo's translateY is derived from this value to keep the logo
32
+ // visually centered. If this ratio changes, the translateY percentage must
33
+ // be recalculated: translateY = LOGO_VISUAL_OFFSET / LABEL_HEIGHT_RATIO.
34
+ // Additionally, the Venmo and Card glyph viewBox/height in @paypal/sdk-logos
35
+ // must be updated to match the new label container height.
36
+ export const REBRAND_LABEL_HEIGHT_RATIO = 0.5;
37
+
38
+ // Fixed visual offset of the PayPal logo as a fraction of total button height.
39
+ // translateY percentage = LOGO_VISUAL_OFFSET / LABEL_HEIGHT_RATIO
40
+ // Current: 0.05 / 0.5 = 0.10 (10%)
41
+ const LOGO_VISUAL_OFFSET = 0.05;
42
+ export const REBRAND_LOGO_TRANSLATE_Y: number = Math.round(
43
+ (LOGO_VISUAL_OFFSET / REBRAND_LABEL_HEIGHT_RATIO) * 100
44
+ );
45
+
30
46
  type ButtonStyleMap = {
31
47
  [$Values<typeof BUTTON_SIZE>]: {|
32
48
  defaultWidth: number,
@@ -53,8 +69,8 @@ type ButtonRedesignStyleMap = {
53
69
  maxHeight: number,
54
70
  minWidth: number,
55
71
  maxWidth: number,
56
- gap?: number,
57
- fontSize?: number,
72
+ gap: number,
73
+ fontSize: number,
58
74
  |},
59
75
  };
60
76
 
@@ -169,7 +185,7 @@ export const BUTTON_REDESIGN_STYLE: ButtonRedesignStyleMap = {
169
185
  minWidth: 50,
170
186
  maxWidth: 75,
171
187
  gap: 3,
172
- fontSize: 12,
188
+ fontSize: 10,
173
189
  },
174
190
 
175
191
  [BUTTON_REDESIGN_SIZE.TINY]: {
@@ -179,7 +195,7 @@ export const BUTTON_REDESIGN_STYLE: ButtonRedesignStyleMap = {
179
195
  minWidth: 75,
180
196
  maxWidth: 200,
181
197
  gap: 3,
182
- fontSize: 12,
198
+ fontSize: 10,
183
199
  },
184
200
 
185
201
  [BUTTON_REDESIGN_SIZE.SMALL]: {
@@ -188,8 +204,8 @@ export const BUTTON_REDESIGN_STYLE: ButtonRedesignStyleMap = {
188
204
  maxHeight: 35,
189
205
  minWidth: 200,
190
206
  maxWidth: 250,
191
- gap: 3,
192
- fontSize: 14,
207
+ gap: 4,
208
+ fontSize: 12,
193
209
  },
194
210
 
195
211
  [BUTTON_REDESIGN_SIZE.MEDIUM_SMALL]: {
@@ -199,7 +215,7 @@ export const BUTTON_REDESIGN_STYLE: ButtonRedesignStyleMap = {
199
215
  minWidth: 250,
200
216
  maxWidth: 300,
201
217
  gap: 4,
202
- fontSize: 16,
218
+ fontSize: 14,
203
219
  },
204
220
 
205
221
  [BUTTON_REDESIGN_SIZE.MEDIUM_BIG]: {
@@ -208,8 +224,8 @@ export const BUTTON_REDESIGN_STYLE: ButtonRedesignStyleMap = {
208
224
  maxHeight: 45,
209
225
  minWidth: 300,
210
226
  maxWidth: 350,
211
- gap: 4,
212
- fontSize: 16,
227
+ gap: 5,
228
+ fontSize: 14,
213
229
  },
214
230
 
215
231
  [BUTTON_REDESIGN_SIZE.LARGE_SMALL]: {
@@ -219,17 +235,17 @@ export const BUTTON_REDESIGN_STYLE: ButtonRedesignStyleMap = {
219
235
  minWidth: 350,
220
236
  maxWidth: 425,
221
237
  gap: 5,
222
- fontSize: 18,
238
+ fontSize: 16,
223
239
  },
224
240
 
225
241
  [BUTTON_REDESIGN_SIZE.LARGE_BIG]: {
226
- defaultHeight: 45,
242
+ defaultHeight: 50,
227
243
  minHeight: 50,
228
244
  maxHeight: 55,
229
245
  minWidth: 425,
230
246
  maxWidth: 500,
231
247
  gap: 5,
232
- fontSize: 20,
248
+ fontSize: 18,
233
249
  },
234
250
 
235
251
  [BUTTON_REDESIGN_SIZE.XL_SMALL]: {
@@ -237,28 +253,36 @@ export const BUTTON_REDESIGN_STYLE: ButtonRedesignStyleMap = {
237
253
  minHeight: 55,
238
254
  maxHeight: 60,
239
255
  minWidth: 500,
240
- maxWidth: 550,
256
+ maxWidth: 750,
241
257
  gap: 6,
242
- fontSize: 22,
258
+ fontSize: 18,
243
259
  },
260
+ };
244
261
 
245
- [BUTTON_REDESIGN_SIZE.XL_BIG]: {
246
- defaultHeight: 55,
262
+ export const BUTTON_REDESIGN_DISABLEMAXHEIGHT_STYLE = {
263
+ ...BUTTON_REDESIGN_STYLE,
264
+ XL_BIG: {
247
265
  minHeight: 60,
248
266
  maxHeight: 65,
249
- minWidth: 550,
250
- maxWidth: 650,
251
- gap: 7,
252
- fontSize: 24,
267
+ gap: 6,
268
+ fontSize: 20,
253
269
  },
254
-
255
- [BUTTON_REDESIGN_SIZE.XXL]: {
256
- defaultHeight: 55,
270
+ XXL_SMALL: {
257
271
  minHeight: 65,
258
- maxHeight: 100,
259
- minWidth: 650,
260
- maxWidth: 750,
272
+ maxHeight: 70,
273
+ gap: 7,
274
+ fontSize: 22,
275
+ },
276
+ XXL_BIG: {
277
+ minHeight: 70,
278
+ maxHeight: 75,
261
279
  gap: 7,
280
+ fontSize: 24,
281
+ },
282
+ XXXL: {
283
+ minHeight: 75,
284
+ maxHeight: 200,
285
+ gap: 8,
262
286
  fontSize: 26,
263
287
  },
264
288
  };
@@ -9,6 +9,7 @@ import { CLASS, BUTTON_COLOR_REBRAND } from "../../constants";
9
9
  import { Text } from "../text";
10
10
 
11
11
  import { buttonContent } from "./content";
12
+ import { REBRAND_LOGO_TRANSLATE_Y } from "./config";
12
13
 
13
14
  const POWERED_BY_PAYPAL_STYLE = `
14
15
  .${CLASS.POWERED_BY} {
@@ -81,7 +82,7 @@ export function PoweredByPayPal({
81
82
  .${CLASS.POWERED_BY} {
82
83
  text-align: center;
83
84
  margin: 10px auto;
84
- height: 18px;
85
+ height: 12px;
85
86
  font-family: PayPal Plain, system-ui, -apple-system, Roboto, "Segoe UI", Helvetica-Neue, Helvetica, Arial, sans-serif;
86
87
  font-size: 10px;
87
88
  font-weight: 400;
@@ -96,9 +97,13 @@ export function PoweredByPayPal({
96
97
  .${CLASS.POWERED_BY} > .${LOGO_CLASS.LOGO} {
97
98
  display: inline-block;
98
99
  vertical-align: middle;
99
- height: 18px;
100
- line-height: 18px;
100
+ height: 12px;
101
+ line-height: 12px;
101
102
  font-size: 10px;
103
+ }
104
+
105
+ .${CLASS.POWERED_BY} > .${LOGO_CLASS.LOGO} {
106
+ transform: translateY(${REBRAND_LOGO_TRANSLATE_Y}%);
102
107
  }
103
108
  `;
104
109
 
@@ -473,6 +473,7 @@ export type RenderButtonProps = {|
473
473
  buttonSessionID: string,
474
474
  nonce: string,
475
475
  enableFunding?: $ReadOnlyArray<?$Values<typeof FUNDING>>,
476
+ disableFunding?: $ReadOnlyArray<?$Values<typeof FUNDING>>,
476
477
  components: $ReadOnlyArray<$Values<typeof COMPONENTS>>,
477
478
  onShippingChange: ?OnShippingChange,
478
479
  onShippingAddressChange: ?OnShippingAddressChange,
@@ -675,6 +676,7 @@ export type ButtonPropsInputs = {
675
676
  shopperSessionId?: string,
676
677
  nonce: string,
677
678
  enableFunding?: $ReadOnlyArray<?$Values<typeof FUNDING>>,
679
+ disableFunding?: $ReadOnlyArray<?$Values<typeof FUNDING>>,
678
680
  components: $ReadOnlyArray<$Values<typeof COMPONENTS>>,
679
681
  onShippingChange: ?Function,
680
682
  onShippingAddressChange: ?Function,
@@ -813,27 +815,6 @@ export function determineRandomButtonColor({
813
815
  };
814
816
  }
815
817
 
816
- export function hasInvalidScriptOptionsForFullRedesign({
817
- fundingSource,
818
- }: {|
819
- fundingSource?: ?$Values<typeof FUNDING>,
820
- |}): boolean {
821
- const validFundingSourcesForRedesign = [
822
- undefined,
823
- FUNDING.PAYPAL,
824
- FUNDING.VENMO,
825
- FUNDING.PAYLATER,
826
- FUNDING.CREDIT,
827
- FUNDING.CARD,
828
- ];
829
-
830
- if (validFundingSourcesForRedesign.includes(fundingSource)) {
831
- return false;
832
- }
833
-
834
- return true;
835
- }
836
-
837
818
  export function throwErrorForInvalidButtonColor({
838
819
  fundingSource,
839
820
  fundingSourceColors,
@@ -918,13 +899,10 @@ export function getColorForFullRedesign({
918
899
  [BUTTON_COLOR.BLUE]: BUTTON_COLOR.REBRAND_BLUE,
919
900
  [BUTTON_COLOR.DARKBLUE]: BUTTON_COLOR.REBRAND_BLUE,
920
901
  [BUTTON_COLOR.GOLD]: BUTTON_COLOR.REBRAND_BLUE,
921
-
922
- // not mapped yet since the styles are not setup
923
- // These should never be hit since legacy experience should be set
924
902
  [BUTTON_COLOR.BLACK]: BUTTON_COLOR.REBRAND_BLACK,
925
903
  [BUTTON_COLOR.WHITE]: BUTTON_COLOR.REBRAND_WHITE,
926
904
  [BUTTON_COLOR.SILVER]: BUTTON_COLOR.REBRAND_WHITE,
927
- [BUTTON_COLOR.DEFAULT]: BUTTON_COLOR.REBRAND_BLUE,
905
+ [BUTTON_COLOR.DEFAULT]: BUTTON_COLOR.DEFAULT,
928
906
 
929
907
  // normalizeButtonStyle gets called multiple times and
930
908
  // it can be called after color is already be mapped to rebranded style
@@ -964,9 +942,6 @@ export function getButtonColorExperience({
964
942
  }: GetButtonColorExperienceArgs): "abTest" | "fullRebrand" | "legacy" {
965
943
  const { isPaypalRebrandEnabled, isPaypalRebrandABTestEnabled } =
966
944
  experiment || {};
967
- const rejectRedesign = hasInvalidScriptOptionsForFullRedesign({
968
- fundingSource,
969
- });
970
945
 
971
946
  if (!isPaypalRebrandEnabled) {
972
947
  return "legacy";
@@ -977,7 +952,7 @@ export function getButtonColorExperience({
977
952
  return fundingSource === FUNDING.PAYPAL ? "abTest" : "legacy";
978
953
  }
979
954
 
980
- return rejectRedesign ? "legacy" : "fullRebrand";
955
+ return "fullRebrand";
981
956
  }
982
957
 
983
958
  export function getButtonColor({
@@ -1372,6 +1347,7 @@ export function normalizeButtonProps(
1372
1347
  sessionID = uniqueID(),
1373
1348
  buttonSessionID = uniqueID(),
1374
1349
  enableFunding,
1350
+ disableFunding,
1375
1351
  components = [COMPONENTS.BUTTONS],
1376
1352
  nonce,
1377
1353
  onShippingChange,
@@ -1441,6 +1417,7 @@ export function normalizeButtonProps(
1441
1417
  fundingSource,
1442
1418
  fundingEligibility,
1443
1419
  enableFunding,
1420
+ disableFunding,
1444
1421
  experiment,
1445
1422
  components,
1446
1423
  onShippingChange,
@@ -1485,6 +1462,7 @@ export function normalizeButtonProps(
1485
1462
  sessionID,
1486
1463
  nonce,
1487
1464
  enableFunding,
1465
+ disableFunding,
1488
1466
  components,
1489
1467
  onShippingChange,
1490
1468
  onShippingAddressChange,
@@ -11,7 +11,6 @@ import {
11
11
  getColorForABTest,
12
12
  getDefaultColorForFundingSource,
13
13
  throwErrorForInvalidButtonColor,
14
- hasInvalidScriptOptionsForFullRedesign,
15
14
  determineRandomButtonColor,
16
15
  getColorABTestFromStorage,
17
16
  } from "./props";
@@ -128,47 +127,6 @@ describe("determineRandomButtonColor", () => {
128
127
  });
129
128
  });
130
129
 
131
- describe("hasInvalidScriptOptionsForFullRedesign", () => {
132
- const validFundingSources = [
133
- FUNDING.PAYPAL,
134
- FUNDING.PAYLATER,
135
- FUNDING.CREDIT,
136
- FUNDING.CARD,
137
- FUNDING.VENMO,
138
- ];
139
- const invalidFundingSources = [FUNDING.APPLEPAY, FUNDING.IDEAL];
140
-
141
- // Test valid funding sources
142
- validFundingSources.forEach((fundingSource) => {
143
- it(`should return false for fundingSource: ${fundingSource}`, () => {
144
- const result = hasInvalidScriptOptionsForFullRedesign({
145
- fundingSource,
146
- });
147
-
148
- expect(result).toBe(false);
149
- });
150
- });
151
-
152
- // Test invalid funding sources
153
- invalidFundingSources.forEach((fundingSource) => {
154
- it(`should return true for fundingSource: ${fundingSource}`, () => {
155
- const result = hasInvalidScriptOptionsForFullRedesign({
156
- fundingSource,
157
- });
158
-
159
- expect(result).toBe(true);
160
- });
161
- });
162
-
163
- it("should return true when funding source is null", () => {
164
- const result = hasInvalidScriptOptionsForFullRedesign({
165
- fundingSource: null,
166
- });
167
-
168
- expect(result).toBe(true);
169
- });
170
- });
171
-
172
130
  describe("throwErrorForInvalidButtonColor", () => {
173
131
  it("should throw error with appropriate message for invalid color", () => {
174
132
  expect(() => {
@@ -199,58 +199,13 @@ export function getComponentScript(): () => void {
199
199
  }
200
200
  }
201
201
 
202
- function toggleLogos() {
203
- const LOGO_CLASS = {
204
- PAYPAL_LOGO: ".paypal-logo-paypal-rebrand",
205
- PP_LOGO: ".paypal-logo-pp-rebrand",
206
- PAYPAL_BUTTON: ".paypal-button-rebrand",
207
- BUTTON_LABEL: ".paypal-button-label-container",
208
- };
209
-
210
- const paylaterButtons = getElements(LOGO_CLASS.PAYPAL_BUTTON);
211
-
212
- for (const button of paylaterButtons) {
213
- const paypalLogo = button.querySelector(LOGO_CLASS.PAYPAL_LOGO);
214
- const ppLogo = button.querySelector(LOGO_CLASS.PP_LOGO);
215
- const buttonLabel = button.querySelector(LOGO_CLASS.BUTTON_LABEL);
216
-
217
- if (!buttonLabel || !paypalLogo || !ppLogo) {
218
- continue;
219
- }
220
-
221
- const buttonWidth = buttonLabel.offsetWidth;
222
- const gap = calculateGap(buttonLabel);
223
-
224
- // temporarily hide PayPal logos
225
- hideElement(paypalLogo);
226
- hideElement(ppLogo);
227
-
228
- const allElements = getAllChildren(buttonLabel);
229
- const textElements = allElements.filter(
230
- (el) => !el.classList.contains("paypal-logo-pp-rebrand")
231
- );
232
-
233
- const totalWidth = getElementsTotalWidth(textElements) + gap;
234
-
235
- if (totalWidth > buttonWidth) {
236
- hideElement(paypalLogo);
237
- showElement(ppLogo);
238
- } else {
239
- showElement(paypalLogo);
240
- hideElement(ppLogo);
241
- }
242
- }
243
- }
244
-
245
202
  const setDomReady = once(
246
203
  debounce(() => {
247
204
  window.addEventListener("resize", () => {
248
205
  toggleOptionals();
249
- toggleLogos();
250
206
  });
251
207
  setTimeout(() => {
252
208
  toggleOptionals();
253
- toggleLogos();
254
209
  });
255
210
  if (document.body) {
256
211
  document.body.classList.add(CLASS.DOM_READY);
@@ -260,12 +215,10 @@ export function getComponentScript(): () => void {
260
215
 
261
216
  const load = () => {
262
217
  toggleOptionals();
263
- toggleLogos();
264
218
  setDomReady();
265
219
  };
266
220
 
267
221
  toggleOptionals();
268
- toggleLogos();
269
222
  document.addEventListener("DOMContentLoaded", load);
270
223
  window.addEventListener("load", load);
271
224
  window.addEventListener("resize", load);
@@ -4,6 +4,10 @@ import { ENV } from "@paypal/sdk-constants/src";
4
4
  import { LOGO_CLASS } from "@paypal/sdk-logos/src";
5
5
 
6
6
  import { CLASS } from "../../../constants";
7
+ import {
8
+ REBRAND_LABEL_HEIGHT_RATIO,
9
+ REBRAND_LOGO_TRANSLATE_Y,
10
+ } from "../config";
7
11
 
8
12
  const MIN_VAULT_BUTTON_WIDTH = 250;
9
13
 
@@ -104,8 +108,8 @@ export const buttonStyle = `
104
108
 
105
109
  .${CLASS.BUTTON} .${CLASS.SPINNER} {
106
110
  position: absolute;
107
- height: 40px;
108
- width: 40px;
111
+ height: 50%;
112
+ aspect-ratio: 1;
109
113
  top: 50%;
110
114
  left: 50%;
111
115
  transform: translateX(-50%) translateY(-50%);
@@ -171,7 +175,7 @@ export const buttonRebrandStyle = `
171
175
  align-items: center;
172
176
  justify-content: center;
173
177
  flex-wrap: nowrap;
174
- height: 76%;
178
+ height: ${REBRAND_LABEL_HEIGHT_RATIO * 100}%;
175
179
  min-width: 0px;
176
180
  position: relative;
177
181
  }
@@ -200,12 +204,25 @@ export const buttonRebrandStyle = `
200
204
  height: 100%;
201
205
  }
202
206
 
203
- .${CLASS.BUTTON_REBRAND} .${CLASS.TAGLINE} {
207
+ .${CLASS.BUTTON_REBRAND} .${CLASS.BUTTON_LABEL} > .${CLASS.LOGO_REBRAND} {
208
+ transform: translateY(${REBRAND_LOGO_TRANSLATE_Y}%);
209
+ }
210
+
211
+ .${CLASS.BUTTON_REBRAND}[data-funding-source=wechatpay] .${CLASS.TEXT},
212
+ .${CLASS.BUTTON_REBRAND}[data-funding-source=satispay] .${CLASS.TEXT},
213
+ .${CLASS.BUTTON_REBRAND}[data-funding-source=giropay] .${CLASS.TEXT},
214
+ .${CLASS.BUTTON_REBRAND}[data-funding-source=paidy] .${CLASS.TEXT},
215
+ .${CLASS.BUTTON_REBRAND}[data-funding-source=trustly] .${CLASS.TEXT} {
216
+ transform: translateY(-1px);
217
+ }
218
+
219
+ .${CLASS.BUTTON_REBRAND}.${CLASS.TAGLINE} {
204
220
  max-width: 100%;
205
221
  font-size: initial;
206
222
  font-weight: 400;
207
223
  display: block;
208
224
  text-align: center;
209
225
  width: auto;
226
+ margin-top: 8px;
210
227
  }
211
228
  `;
@@ -54,6 +54,10 @@ export const buttonColorStyle = `
54
54
  background: #54B4E0;
55
55
  overflow: inherit;
56
56
  }
57
+
58
+ .${CLASS.BUTTON_REBRAND}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.VENMO}].${CLASS.COLOR}-${BUTTON_COLOR.REBRAND_BLUE}:hover {
59
+ background: #0073E0;
60
+ }
57
61
  }
58
62
 
59
63
  @media (hover:hover) {
@@ -61,6 +65,10 @@ export const buttonColorStyle = `
61
65
  background: #3DB5FF;
62
66
  overflow: inherit;
63
67
  }
68
+
69
+ .${CLASS.BUTTON_REBRAND}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.VENMO}].${CLASS.COLOR}-${BUTTON_COLOR.REBRAND_BLUE}:active {
70
+ background: #0074FF;
71
+ }
64
72
  }
65
73
 
66
74
  .${CLASS.BUTTON}.${CLASS.COLOR}-${BUTTON_COLOR.REBRAND_DARKBLUE},
@@ -151,7 +159,7 @@ export const buttonColorStyle = `
151
159
  .${CLASS.BUTTON_REBRAND}:focus {
152
160
  outline: none;
153
161
  }
154
-
162
+
155
163
  .${CLASS.BUTTON_REBRAND}:focus::after {
156
164
  content: '';
157
165
  position: absolute;
@@ -160,7 +168,7 @@ export const buttonColorStyle = `
160
168
  bottom: 3px;
161
169
  left: 3px;
162
170
  border: 0.125rem solid #FFFFFF;
163
- border-radius: inherit;
171
+ border-radius: max(0px, calc(var(--btn-radius, 4px) - 3px));
164
172
  box-shadow: 0 0 0 0.2rem #0066F5;
165
173
  pointer-events: none;
166
174
  }
@@ -249,6 +257,14 @@ export const buttonColorStyle = `
249
257
  background: #E62601;
250
258
  }
251
259
 
260
+ .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.ITAU}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT} {
261
+ background: #003087;
262
+ }
263
+
264
+ .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.SEPA}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT} {
265
+ background: #eee;
266
+ }
267
+
252
268
  /* APM button hover actions */
253
269
  .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BANCONTACT}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:hover,
254
270
  .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BLIK}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:hover,
@@ -267,52 +283,62 @@ export const buttonColorStyle = `
267
283
  .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.PAYU}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:hover,
268
284
  .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.SATISPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:hover,
269
285
  .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.PAIDY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:hover,
270
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.WECHATPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:hover {
286
+ .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.WECHATPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:hover,
287
+ .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.ITAU}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:hover {
271
288
  filter: brightness(1.2);
272
289
  overflow: inherit;
273
290
  }
274
291
 
275
- /* APM button on focus actions */
276
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BLIK}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
277
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BANCONTACT}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
278
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BOLETO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
279
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BOLETOBANCARIO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
280
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.EPS}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
281
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.GIROPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
282
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.IDEAL}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
283
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.MERCADOPAGO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
284
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.MULTIBANCO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
285
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.MYBANK}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
286
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.OXXO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
287
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.P24}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
288
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.SOFORT}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
289
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.TRUSTLY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
290
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.PAYU}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
291
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.SATISPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
292
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.PAIDY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
293
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.WECHATPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus {
292
+ .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.SEPA}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:hover {
293
+ filter: brightness(0.95);
294
+ overflow: inherit;
295
+ }
296
+
297
+ /* APM button on focus actions (legacy only) */
298
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BLIK}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
299
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BANCONTACT}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
300
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BOLETO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
301
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BOLETOBANCARIO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
302
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.EPS}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
303
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.GIROPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
304
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.IDEAL}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
305
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.MERCADOPAGO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
306
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.MULTIBANCO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
307
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.MYBANK}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
308
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.OXXO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
309
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.P24}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
310
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.SOFORT}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
311
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.TRUSTLY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
312
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.PAYU}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
313
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.SATISPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
314
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.PAIDY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
315
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.WECHATPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
316
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.ITAU}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
317
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.SEPA}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus {
294
318
  outline: none;
295
319
  }
296
320
 
297
- /* APM button after focus actions */
298
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BLIK}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
299
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BANCONTACT}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
300
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BOLETO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
301
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BOLETOBANCARIO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
302
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.EPS}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
303
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.GIROPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
304
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.IDEAL}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
305
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.MERCADOPAGO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
306
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.MULTIBANCO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
307
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.MYBANK}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
308
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.OXXO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
309
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.P24}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
310
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.SOFORT}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
311
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.TRUSTLY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
312
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.PAYU}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
313
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.SATISPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
314
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.PAIDY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
315
- .${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.WECHATPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after {
321
+ /* APM button after focus actions (legacy only) */
322
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BLIK}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
323
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BANCONTACT}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
324
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BOLETO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
325
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BOLETOBANCARIO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
326
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.EPS}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
327
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.GIROPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
328
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.IDEAL}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
329
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.MERCADOPAGO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
330
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.MULTIBANCO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
331
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.MYBANK}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
332
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.OXXO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
333
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.P24}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
334
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.SOFORT}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
335
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.TRUSTLY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
336
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.PAYU}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
337
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.SATISPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
338
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.PAIDY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
339
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.WECHATPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
340
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.ITAU}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
341
+ .${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.SEPA}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after {
316
342
  content: '';
317
343
  position: absolute;
318
344
  top: 5px;