@economist/web-apple-pay 1.7.5 → 1.7.7

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.
@@ -71,7 +71,7 @@ function ensureApplePayLogoSymbol() {
71
71
  return;
72
72
  }
73
73
  const tmp = document.createElement("div");
74
- tmp.innerHTML = `<svg aria-hidden="true" style="display:none" id="${LOGO_DEFS_ID}"><defs><symbol id="apple-pay-logo" viewBox="0 0 51 22"><path d="${LOGO_PATH}" fill="white"/></symbol></defs></svg>`;
74
+ tmp.innerHTML = `<svg aria-hidden="true" style="display:none" id="${LOGO_DEFS_ID}"><defs><symbol id="apple-pay-logo" viewBox="0 0 51 22"><path d="${LOGO_PATH}" fill="currentColor"/></symbol></defs></svg>`;
75
75
  document.body.prepend(tmp.firstElementChild);
76
76
  }
77
77
 
@@ -109,16 +109,32 @@ var apple_pay_modal_template_default = `<style>
109
109
  position: absolute;
110
110
  top: 1.5rem;
111
111
  right: 1.3125rem;
112
- background: none;
112
+ background: transparent;
113
113
  border: none;
114
114
  cursor: pointer;
115
115
  padding: 0;
116
+ width: 1.5rem;
117
+ height: 1.5rem;
116
118
  display: flex;
117
119
  align-items: center;
118
120
  justify-content: center;
121
+ color: var(--mb-colour-greyscale-london-20, #1a1a1a);
122
+ transition:
123
+ background-color ease-in-out 0.2s,
124
+ color ease-in-out 0.2s;
125
+ }
126
+
127
+ .apm__close:hover {
128
+ color: var(--mb-colour-base-chicago-30, #333333);
129
+ }
130
+
131
+ .apm__close:active {
132
+ background-color: var(--mb-colour-base-chicago-90, #e6e6e6);
133
+ color: var(--mb-colour-base-chicago-30, #333333);
119
134
  }
120
135
 
121
136
  .apm__close:focus {
137
+ background-color: var(--mb-colour-base-chicago-90, #e6e6e6);
122
138
  outline: solid 0.125rem var(--focus-border-color, #121212);
123
139
  border-radius: 0.25rem;
124
140
  }
@@ -301,10 +317,6 @@ var apple_pay_modal_template_default = `<style>
301
317
  cursor: pointer;
302
318
  color: #fff;
303
319
  text-align: center;
304
- font-family: var(
305
- --mb-typeface-sans,
306
- var(--wall-type-system-sans, system-ui, sans-serif)
307
- );
308
320
  font-size: 1.25rem;
309
321
  font-style: normal;
310
322
  font-weight: 500;
@@ -320,28 +332,41 @@ var apple_pay_modal_template_default = `<style>
320
332
  cursor: not-allowed;
321
333
  }
322
334
 
323
- .apm__cta[aria-busy="true"] > * {
324
- visibility: hidden;
335
+ .apm__cta-content {
336
+ display: flex;
337
+ align-items: center;
338
+ gap: 0.375rem;
325
339
  }
326
340
 
327
- .apm__cta[aria-busy="true"]::after {
341
+ .apm__cta-label {
342
+ display: inline-flex;
343
+ align-items: center;
344
+ gap: 0.375rem;
345
+ }
346
+
347
+ .apm__cta-loading {
348
+ display: none;
349
+ }
350
+
351
+ .apm__cta[aria-busy="true"]::before {
328
352
  content: '';
329
353
  position: absolute;
330
- left: 50%;
331
354
  top: 50%;
332
- margin-left: -0.625rem;
333
- margin-top: -0.625rem;
355
+ left: 50%;
334
356
  width: 1.25rem;
335
357
  height: 1.25rem;
336
- border: 2px solid rgba(255, 255, 255, 0.2);
358
+ border: 2px solid rgba(255, 255, 255, 0.25);
337
359
  border-top-color: #fff;
338
360
  border-radius: 50%;
339
361
  animation: apm-cta-spinner 0.8s linear infinite;
340
362
  }
341
363
 
342
364
  @keyframes apm-cta-spinner {
365
+ from {
366
+ transform: translate(-50%, -50%) rotate(0deg);
367
+ }
343
368
  to {
344
- transform: rotate(360deg);
369
+ transform: translate(-50%, -50%) rotate(360deg);
345
370
  }
346
371
  }
347
372
 
@@ -408,7 +433,7 @@ var apple_pay_modal_template_default = `<style>
408
433
  fill-rule="evenodd"
409
434
  clip-rule="evenodd"
410
435
  d="M18.75 6.60964L17.3904 5.25L12 10.6404L6.60964 5.25L5.25 6.60964L10.6404 12L5.25 17.3904L6.60964 18.75L12 13.3596L17.3904 18.75L18.75 17.3904L13.3596 12L18.75 6.60964Z"
411
- fill="#333333"
436
+ fill="currentColor"
412
437
  />
413
438
  </g>
414
439
  <defs>
@@ -518,11 +543,14 @@ var apple_pay_modal_template_default = `<style>
518
543
  </div>
519
544
  <button class="apm__cta" id="apple-pay-modal-cta" aria-label="Continue with Apple Pay">
520
545
  <span class="apm__cta-content">
521
- Continue with
522
- <svg width="51" height="22" aria-hidden="true" role="img">
523
- <use href="#apple-pay-logo" />
524
- </svg>
546
+ <span class="apm__cta-label">
547
+ Continue with
548
+ <svg width="51" height="22" aria-hidden="true" role="img">
549
+ <use href="#apple-pay-logo" />
550
+ </svg>
551
+ </span>
525
552
  </span>
553
+ <span class="apm__cta-loading" aria-hidden="true">Loading...</span>
526
554
  </button>
527
555
  </div>
528
556
  </div>
@@ -663,6 +691,8 @@ function renewalPeriodText(unit, duration) {
663
691
  return "";
664
692
  }
665
693
  }
694
+ var LI_SEPARATOR = "\0LI_SEP\0";
695
+ var P_SEPARATOR = "\0P_SEP\0";
666
696
  function buildTermsContext(offer, country) {
667
697
  const isUS = country === "US";
668
698
  const isCA = country === "CA";
@@ -699,19 +729,19 @@ function freeTrialTerms(offer, ctx) {
699
729
  const trialDuration = offer.subscription_options?.trial_period?.duration ?? 1;
700
730
  const trialDateStr = `on ${getRenewalDateText(trialUnit, trialDuration)}${ctx.verificationText}`;
701
731
  if (ctx.isUS) {
702
- return `Your subscription renews at ${ctx.renewalPriceText}${ctx.taxSuffix} ${trialDateStr} when your free trial ends, until cancelled{{liSeparator}}You\u2019ll be charged the rate in effect at each renewal until cancelled. ${ctx.usCancelNote}${ctx.taxFootnote}`;
732
+ return `Your subscription renews at ${ctx.renewalPriceText}${ctx.taxSuffix} ${trialDateStr} when your free trial ends, until cancelled${LI_SEPARATOR}You\u2019ll be charged the rate in effect at each renewal until cancelled. ${ctx.usCancelNote}${ctx.taxFootnote}`;
703
733
  }
704
- return `Your subscription renews at ${ctx.renewalPriceText}${ctx.taxSuffix} ${trialDateStr} when your free trial ends, until cancelled{{liSeparator}}You\u2019ll be charged the rate in effect at each renewal. ${ctx.cancelAnytime}${ctx.taxFootnote}`;
734
+ return `Your subscription renews at ${ctx.renewalPriceText}${ctx.taxSuffix} ${trialDateStr} when your free trial ends, until cancelled${LI_SEPARATOR}You\u2019ll be charged the rate in effect at each renewal. ${ctx.cancelAnytime}${ctx.taxFootnote}`;
705
735
  }
706
736
  function nytTerms(ctx) {
707
737
  const nytAccessText = "Your complimentary access to The New York Times is for one year only and does not auto-renew. We will send your instructions on how to redeem access to The New York Times by email.";
708
738
  if (ctx.isUS) {
709
- return `Your subscription to <em>The Economist</em> auto-renews ${ctx.periodText} until cancelled{{liSeparator}}Your subscription renews at ${ctx.renewalPriceText}${ctx.taxSuffix} ${ctx.renewalDateStr}{{liSeparator}}You\u2019ll be charged the rate in effect at each renewal until cancelled. ${ctx.usCancelNote}${ctx.taxFootnote}{{pSeparator}}${nytAccessText}`;
739
+ return `Your subscription to <em>The Economist</em> auto-renews ${ctx.periodText} until cancelled${LI_SEPARATOR}Your subscription renews at ${ctx.renewalPriceText}${ctx.taxSuffix} ${ctx.renewalDateStr}${LI_SEPARATOR}You\u2019ll be charged the rate in effect at each renewal until cancelled. ${ctx.usCancelNote}${ctx.taxFootnote}${P_SEPARATOR}${nytAccessText}`;
710
740
  }
711
741
  if (ctx.isCA) {
712
- return `Your subscription to <em>The Economist</em> auto-renews at ${ctx.renewalPriceText}${ctx.taxSuffix} ${ctx.periodText} ${ctx.renewalDateStr} until cancelled.{{liSeparator}}You\u2019ll be charged the rate in effect at each renewal. ${ctx.cancelAnytime}${ctx.taxFootnote}{{pSeparator}}${nytAccessText}`;
742
+ return `Your subscription to <em>The Economist</em> auto-renews at ${ctx.renewalPriceText}${ctx.taxSuffix} ${ctx.periodText} ${ctx.renewalDateStr} until cancelled.${LI_SEPARATOR}You\u2019ll be charged the rate in effect at each renewal. ${ctx.cancelAnytime}${ctx.taxFootnote}${P_SEPARATOR}${nytAccessText}`;
713
743
  }
714
- return `Your subscription to <em>The Economist</em> auto-renews at ${ctx.renewalPriceText} ${ctx.periodText} ${ctx.renewalDateStr} until cancelled{{liSeparator}}You\u2019ll be charged the rate in effect at each renewal. ${ctx.cancelAnytime} ${nytAccessText}`;
744
+ return `Your subscription to <em>The Economist</em> auto-renews at ${ctx.renewalPriceText} ${ctx.periodText} ${ctx.renewalDateStr} until cancelled${LI_SEPARATOR}You\u2019ll be charged the rate in effect at each renewal. ${ctx.cancelAnytime} ${nytAccessText}`;
715
745
  }
716
746
  function minTermContractTerms(offer, ctx) {
717
747
  const duePrice = formatPrice(offer.price.purchase, offer.price.currency_code);
@@ -721,28 +751,28 @@ function minTermContractTerms(offer, ctx) {
721
751
  const contractLength = mtDuration && mtUnit ? `${mtDuration} ${mtUnit}` : "";
722
752
  const initialContractText = contractLength ? `your initial ${contractLength} contract` : "your initial contract";
723
753
  const mtRenewalDateText = mtUnit && mtDuration ? getRenewalDateText(mtUnit, Number(mtDuration)) : ctx.renewalDateText;
724
- return `You\u2019ll be charged ${duePrice} a month for the duration of ${initialContractText}{{liSeparator}}Your subscription auto-renews annually at ${ctx.renewalPriceText} a month on ${mtRenewalDateText} until cancelled{{liSeparator}}You\u2019ll be charged the rate in effect at each renewal. ${ctx.cancelAnytime}`;
754
+ return `You\u2019ll be charged ${duePrice} a month for the duration of ${initialContractText}${LI_SEPARATOR}Your subscription auto-renews annually at ${ctx.renewalPriceText} a month on ${mtRenewalDateText} until cancelled${LI_SEPARATOR}You\u2019ll be charged the rate in effect at each renewal. ${ctx.cancelAnytime}`;
725
755
  }
726
756
  function paidTrialTerms(offer, ctx) {
727
757
  const trialUnit = offer.subscription_options?.trial_period?.unit ?? ctx.unit;
728
758
  const trialDuration = offer.subscription_options?.trial_period?.duration ?? ctx.duration;
729
759
  const trialDateText = getRenewalDateText(trialUnit, trialDuration);
730
760
  if (ctx.isUS) {
731
- return `Your subscription auto-renews ${ctx.periodText} until cancelled{{liSeparator}}Your subscription renews at ${ctx.renewalPriceText}${ctx.taxSuffix} on ${trialDateText} when your paid trial ends{{liSeparator}}You\u2019ll be charged the rate in effect at each renewal. ${ctx.usCancelNote}${ctx.taxFootnote}`;
761
+ return `Your subscription auto-renews ${ctx.periodText} until cancelled${LI_SEPARATOR}Your subscription renews at ${ctx.renewalPriceText}${ctx.taxSuffix} on ${trialDateText} when your paid trial ends${LI_SEPARATOR}You\u2019ll be charged the rate in effect at each renewal. ${ctx.usCancelNote}${ctx.taxFootnote}`;
732
762
  }
733
- return `Your subscription auto-renews at ${ctx.renewalPriceText}${ctx.taxSuffix} ${ctx.periodText} on ${trialDateText} when your paid trial ends, until cancelled{{liSeparator}}You\u2019ll be charged the rate in effect at each renewal. ${ctx.cancelAnytime}${ctx.taxFootnote}`;
763
+ return `Your subscription auto-renews at ${ctx.renewalPriceText}${ctx.taxSuffix} ${ctx.periodText} on ${trialDateText} when your paid trial ends, until cancelled${LI_SEPARATOR}You\u2019ll be charged the rate in effect at each renewal. ${ctx.cancelAnytime}${ctx.taxFootnote}`;
734
764
  }
735
765
  function autoRenewalTerms(ctx) {
736
766
  if (ctx.isUS) {
737
- return `Your subscription auto-renews ${ctx.periodText} until cancelled{{liSeparator}}Your subscription renews at ${ctx.renewalPriceText}${ctx.taxSuffix} ${ctx.renewalDateStr}{{liSeparator}}You\u2019ll be charged the rate in effect at each renewal until cancelled. ${ctx.usCancelNote}${ctx.taxFootnote}`;
767
+ return `Your subscription auto-renews ${ctx.periodText} until cancelled${LI_SEPARATOR}Your subscription renews at ${ctx.renewalPriceText}${ctx.taxSuffix} ${ctx.renewalDateStr}${LI_SEPARATOR}You\u2019ll be charged the rate in effect at each renewal until cancelled. ${ctx.usCancelNote}${ctx.taxFootnote}`;
738
768
  }
739
- return `Your subscription auto-renews at ${ctx.renewalPriceText}${ctx.taxSuffix} ${ctx.periodText} ${ctx.renewalDateStr} until cancelled{{liSeparator}}You\u2019ll be charged the rate in effect at each renewal. ${ctx.cancelAnytime}${ctx.taxFootnote}`;
769
+ return `Your subscription auto-renews at ${ctx.renewalPriceText}${ctx.taxSuffix} ${ctx.periodText} ${ctx.renewalDateStr} until cancelled${LI_SEPARATOR}You\u2019ll be charged the rate in effect at each renewal. ${ctx.cancelAnytime}${ctx.taxFootnote}`;
740
770
  }
741
771
  function noAutoRenewalTerms(ctx) {
742
772
  if (ctx.isUS || ctx.isCA) {
743
- return `Your subscription does not renew automatically${ctx.taxFootnote}{{liSeparator}}`;
773
+ return `Your subscription does not renew automatically${ctx.taxFootnote}${LI_SEPARATOR}`;
744
774
  }
745
- return `Your subscription does not renew automatically{{liSeparator}}`;
775
+ return `Your subscription does not renew automatically${LI_SEPARATOR}`;
746
776
  }
747
777
  function generateApplePayModalTerms(offer, country) {
748
778
  const ctx = buildTermsContext(offer, country);
@@ -765,9 +795,9 @@ function generateApplePayModalTerms(offer, country) {
765
795
  return noAutoRenewalTerms(ctx);
766
796
  }
767
797
  function renderTermsHtml(termsText) {
768
- const renewalTextLists = termsText.split("{{liSeparator}}");
798
+ const renewalTextLists = termsText.split(LI_SEPARATOR);
769
799
  const lastPart = renewalTextLists.pop() || "";
770
- const renewalTextParagraphs = lastPart.split("{{pSeparator}}");
800
+ const renewalTextParagraphs = lastPart.split(P_SEPARATOR);
771
801
  const ulHtml = `<ul class="apm__terms-bullets">${renewalTextLists.map((value) => `<li>${value}</li>`).join("")}</ul>`;
772
802
  const paragraphHtml = renewalTextParagraphs.filter(Boolean).map((value) => `<p class="apm__terms-legal">${value}</p>`).join("");
773
803
  return ulHtml + paragraphHtml;