@financial-times/n-conversion-forms 41.3.2 → 42.0.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 (100) hide show
  1. package/.storybook/preview-body.html +3 -0
  2. package/.storybook/preview.js +2 -2
  3. package/.toolkitstate/ci.json +3 -3
  4. package/.toolkitstate/install.json +1 -1
  5. package/components/__snapshots__/accept-terms.spec.js.snap +107 -150
  6. package/components/__snapshots__/b2c-partnership-confirmation.spec.js.snap +36 -72
  7. package/components/__snapshots__/confirmation.spec.js.snap +71 -127
  8. package/components/__snapshots__/continue-reading.spec.js.snap +3 -3
  9. package/components/__snapshots__/customer-care.spec.js.snap +16 -24
  10. package/components/__snapshots__/debug.spec.js.snap +13 -7
  11. package/components/__snapshots__/deferred-billing-terms.spec.js.snap +12 -18
  12. package/components/__snapshots__/error-page.spec.js.snap +12 -18
  13. package/components/__snapshots__/fieldset.spec.js.snap +1 -1
  14. package/components/__snapshots__/ft-edit-registration-confirmation.spec.js.snap +5 -5
  15. package/components/__snapshots__/graduation-date.spec.js.snap +4 -6
  16. package/components/__snapshots__/licence-confirmation.spec.js.snap +17 -28
  17. package/components/__snapshots__/licence-header.spec.js.snap +1 -1
  18. package/components/__snapshots__/licence-sign-in.spec.js.snap +1 -1
  19. package/components/__snapshots__/loader.spec.js.snap +1 -1
  20. package/components/__snapshots__/package-change.spec.js.snap +16 -11
  21. package/components/__snapshots__/payment-term.spec.js.snap +40 -60
  22. package/components/__snapshots__/registration-confirmation.spec.js.snap +9 -7
  23. package/components/__snapshots__/submit.spec.js.snap +6 -6
  24. package/components/accept-terms-business.jsx +2 -3
  25. package/components/accept-terms-business.spec.jsx +3 -1
  26. package/components/accept-terms-privacy-policy.jsx +2 -5
  27. package/components/accept-terms-privacy-policy.spec.js +1 -1
  28. package/components/accept-terms-subscription.jsx +7 -12
  29. package/components/accept-terms-subscription.spec.js +1 -1
  30. package/components/accept-terms.jsx +12 -20
  31. package/components/b2c-partnership-confirmation.jsx +3 -5
  32. package/components/confirmation.jsx +5 -9
  33. package/components/confirmation.stories.js +4 -6
  34. package/components/continue-reading.jsx +1 -1
  35. package/components/customer-care.jsx +4 -4
  36. package/components/debug.jsx +12 -12
  37. package/components/deferred-billing-terms.jsx +3 -6
  38. package/components/error-page.jsx +4 -4
  39. package/components/fieldset.jsx +1 -1
  40. package/components/ft-edit-registration-confirmation.jsx +2 -2
  41. package/components/graduation-date.jsx +2 -4
  42. package/components/index.js +0 -1
  43. package/components/licence-confirmation.jsx +2 -3
  44. package/components/licence-confirmation.stories.js +1 -1
  45. package/components/licence-sign-in.jsx +1 -1
  46. package/components/loader.jsx +4 -1
  47. package/components/package-change.jsx +4 -5
  48. package/components/payment-term.jsx +3 -5
  49. package/components/proceed-with-payment-link.jsx +8 -2
  50. package/components/proceed-with-payment-link.stories.js +1 -1
  51. package/components/registration-confirmation.jsx +5 -3
  52. package/components/submit.jsx +1 -1
  53. package/components/subscription-confirmation-with-payment-link.jsx +1 -1
  54. package/dist/accept-terms-business.jsx +2 -3
  55. package/dist/accept-terms-business.spec.jsx +1 -1
  56. package/dist/accept-terms-privacy-policy.jsx +2 -5
  57. package/dist/accept-terms-subscription.jsx +7 -12
  58. package/dist/accept-terms.jsx +10 -20
  59. package/dist/b2c-partnership-confirmation.jsx +5 -7
  60. package/dist/confirmation.jsx +4 -7
  61. package/dist/continue-reading.jsx +1 -1
  62. package/dist/customer-care.jsx +3 -4
  63. package/dist/debug.jsx +6 -6
  64. package/dist/deferred-billing-terms.jsx +3 -6
  65. package/dist/error-page.jsx +3 -4
  66. package/dist/fieldset.jsx +1 -1
  67. package/dist/ft-edit-registration-confirmation.jsx +2 -2
  68. package/dist/graduation-date.jsx +6 -4
  69. package/dist/index.js +0 -7
  70. package/dist/licence-confirmation.jsx +3 -4
  71. package/dist/licence-sign-in.jsx +1 -1
  72. package/dist/loader.jsx +1 -1
  73. package/dist/package-change.jsx +5 -4
  74. package/dist/payment-term.jsx +6 -4
  75. package/dist/proceed-with-payment-link.jsx +2 -2
  76. package/dist/registration-confirmation.jsx +7 -5
  77. package/dist/submit.jsx +1 -1
  78. package/dist/subscription-confirmation-with-payment-link.jsx +1 -1
  79. package/main.scss +132 -167
  80. package/package.json +11 -14
  81. package/styles/_shared.scss +125 -100
  82. package/styles/accept-terms.scss +6 -5
  83. package/styles/banner.scss +66 -60
  84. package/styles/confirmation.scss +50 -55
  85. package/styles/continue-reading.scss +56 -39
  86. package/styles/error.scss +1 -1
  87. package/styles/forms-additional-field-information.scss +8 -4
  88. package/styles/ft-edit-registration-confirmation.scss +228 -224
  89. package/styles/loader.scss +40 -45
  90. package/styles/package-change.scss +1 -4
  91. package/styles/payment-term.scss +108 -89
  92. package/styles/payment-type.scss +117 -112
  93. package/styles/proceed-with-payment-link.scss +32 -18
  94. package/styles/subscription-confirmation-with-payment-link.scss +64 -24
  95. package/components/__snapshots__/google-sign-in.spec.js.snap +0 -13
  96. package/components/google-sign-in.jsx +0 -21
  97. package/components/google-sign-in.spec.js +0 -14
  98. package/components/google-sign-in.stories.js +0 -13
  99. package/dist/google-sign-in.jsx +0 -24
  100. package/styles/google-sign-in.scss +0 -26
@@ -53,10 +53,11 @@ export function AcceptTerms({
53
53
 
54
54
  const privacyPolicyTerms = (
55
55
  <div className="privacy-policy-terms">
56
- <span className={`consent-text--${privacyPoliciesPosition}`}>
56
+ <span
57
+ className={`o3-type-body-base consent-text--${privacyPoliciesPosition}`}
58
+ >
57
59
  For more information about how we use your data, please refer to our{' '}
58
60
  <a
59
- className="ncf__link--external"
60
61
  href="https://help.ft.com/legal-privacy/privacy-policy/"
61
62
  target="_blank"
62
63
  rel="noopener noreferrer"
@@ -66,7 +67,6 @@ export function AcceptTerms({
66
67
  </a>{' '}
67
68
  and&nbsp;
68
69
  <a
69
- className="ncf__link--external"
70
70
  href="https://help.ft.com/legal-privacy/cookies/"
71
71
  target="_blank"
72
72
  rel="noopener noreferrer"
@@ -79,11 +79,10 @@ export function AcceptTerms({
79
79
  {!hideConfirmTermsAndConditions && (
80
80
  <label className={labelClassName} htmlFor="termsAcceptance">
81
81
  <input {...inputProps} />
82
- <span className="o-forms-input__label">
82
+ <span className="o-forms-input__label o3-type-body-base">
83
83
  I confirm that I am {ageRestriction} years or older and agree to the
84
84
  full{' '}
85
85
  <a
86
- className="ncf__link--external"
87
86
  href="http://help.ft.com/help/legal-privacy/terms-conditions/"
88
87
  target={isEmbedded ? '_top' : '_blank'}
89
88
  rel="noopener noreferrer"
@@ -112,11 +111,10 @@ export function AcceptTerms({
112
111
  </li>
113
112
  ) : (
114
113
  <li>
115
- <span className="terms-default">
114
+ <span className="terms-default o3-type-body-base">
116
115
  I confirm I am {ageRestriction} years or older and have read and agree
117
116
  to the{' '}
118
117
  <a
119
- className="ncf__link--external"
120
118
  href="http://help.ft.com/help/legal-privacy/terms-conditions/"
121
119
  target={isEmbedded ? '_top' : '_blank'}
122
120
  rel="noopener noreferrer"
@@ -168,12 +166,11 @@ export function AcceptTerms({
168
166
  <>
169
167
  {!isSingleTerm && (
170
168
  <li>
171
- <span className="terms-transition">
169
+ <span className="terms-transition o3-type-body-base">
172
170
  I give consent for my chosen payment method to be charged
173
171
  automatically at the end of each subscription term until I cancel it
174
172
  by contacting{' '}
175
173
  <a
176
- className="ncf__link--external"
177
174
  href="https://help.ft.com/help/contact-us/"
178
175
  target="_blank"
179
176
  rel="noopener noreferrer"
@@ -210,10 +207,9 @@ export function AcceptTerms({
210
207
  </li>
211
208
  )}
212
209
  <li>
213
- <span className="terms-transition">
210
+ <span className="terms-transition o3-type-body-base">
214
211
  Find out more about our cancellation policy in our{' '}
215
212
  <a
216
- className="ncf__link--external"
217
213
  href="http://help.ft.com/help/legal-privacy/terms-conditions/"
218
214
  target="_blank"
219
215
  rel="noopener noreferrer"
@@ -238,10 +234,9 @@ export function AcceptTerms({
238
234
  <span className="terms-print">{printSignupTermText}</span>
239
235
  </li>
240
236
  <li>
241
- <span className="terms-print">
237
+ <span className="terms-print o3-type-body-base">
242
238
  Find out more about your delivery start date in our{' '}
243
239
  <a
244
- className="ncf__link--external"
245
240
  href="http://help.ft.com/help/legal-privacy/terms-conditions/"
246
241
  target={isEmbedded ? '_top' : '_blank'}
247
242
  rel="noopener noreferrer"
@@ -255,12 +250,11 @@ export function AcceptTerms({
255
250
  ) : (
256
251
  <>
257
252
  <li>
258
- <span className="terms-signup">
253
+ <span className="terms-signup o3-type-body-base">
259
254
  I give consent for my chosen payment method to be charged
260
255
  automatically at the end of each subscription term until I cancel
261
256
  it by contacting{' '}
262
257
  <a
263
- className="ncf__link--external"
264
258
  href="https://help.ft.com/help/contact-us/"
265
259
  target={isEmbedded ? '_top' : '_blank'}
266
260
  rel="noopener noreferrer"
@@ -282,10 +276,9 @@ export function AcceptTerms({
282
276
  </span>
283
277
  </li>
284
278
  <li>
285
- <span className="terms-signup">
279
+ <span className="terms-signup o3-type-body-base">
286
280
  Find out more about our cancellation policy in our{' '}
287
281
  <a
288
- className="ncf__link--external"
289
282
  href="https://help.ft.com/legal-privacy/terms-and-conditions/"
290
283
  target={isEmbedded ? '_top' : '_blank'}
291
284
  rel="noopener noreferrer"
@@ -312,11 +305,10 @@ export function AcceptTerms({
312
305
  const b2cPartnershipTerms = (
313
306
  <label className={[labelClassName, 'checkbox-two-lines'].join(' ')}>
314
307
  <input {...inputProps} />
315
- <span className="o-forms-input__label">
308
+ <span className="o-forms-input__label o3-type-body-base">
316
309
  I confirm I am {ageRestriction} years or older and have read and agree
317
310
  to the{' '}
318
311
  <a
319
- className="ncf__link--external"
320
312
  href="http://help.ft.com/help/legal-privacy/terms-conditions/"
321
313
  target={isEmbedded ? '_top' : '_blank'}
322
314
  rel="noopener noreferrer"
@@ -340,7 +332,7 @@ export function AcceptTerms({
340
332
  privacyPolicyTerms
341
333
  ) : (
342
334
  <>
343
- <ul className="o-typography-list ncf__accept-terms-list">
335
+ <ul className="ncf__accept-terms-list">
344
336
  {b2bTerms}
345
337
  {corpSignupTerms}
346
338
  {transitionTerms}
@@ -13,12 +13,10 @@ export function B2CPartnershipConfirmation({
13
13
  }) {
14
14
  const readingLinkProps = {
15
15
  href: '/',
16
- className: 'ncf__link',
17
16
  };
18
17
 
19
18
  const customerCareProps = {
20
19
  href: 'https://help.ft.com/',
21
- className: 'ncf__link',
22
20
  };
23
21
 
24
22
  // Welcome to your Standard access
@@ -51,18 +49,18 @@ export function B2CPartnershipConfirmation({
51
49
 
52
50
  {ctaElement || (
53
51
  <p className="ncf__paragraph ncf__center">
54
- <a className="ncf__button ncf__button--submit" href="/myft">
52
+ <a className="ncf__button o3-button o3-button--primary" href="/myft">
55
53
  Go to myFT
56
54
  </a>
57
55
  </p>
58
56
  )}
59
57
 
60
- <p className="ncf__paragraph ncf__center">
58
+ <p className="ncf__paragraph ncf__center o3-type-body-base">
61
59
  <a {...readingLinkProps}>Start reading</a>
62
60
  </p>
63
61
 
64
62
  <p className="ncf__paragraph">
65
- <div className="ncf__strong">Can we help?</div>
63
+ <div className="ncf__strong o3-type-body-base">Can we help?</div>
66
64
  For any queries about your Premium subscription please{' '}
67
65
  <a {...customerCareProps}>contact Customer Care</a>.
68
66
  </p>
@@ -53,7 +53,7 @@ export function Confirmation({
53
53
  >
54
54
  direct debit mandate
55
55
  </a>
56
- <i className="ncf__icon-download"></i>
56
+ <i className="ncf__icon--download"></i>
57
57
  </p>
58
58
  </div>
59
59
  );
@@ -98,10 +98,9 @@ export function Confirmation({
98
98
 
99
99
  <div className="ncf__headed-paragraph">
100
100
  <h3 className="ncf__header">Something not right?</h3>
101
- <p className="ncf__paragraph">
101
+ <p className="ncf__paragraph o3-type-body-base">
102
102
  Go to your{' '}
103
103
  <a
104
- className="ncf__link ncf__link--external"
105
104
  href="https://www.ft.com/myaccount/personal-details"
106
105
  target="_blank"
107
106
  rel="noopener noreferrer"
@@ -110,19 +109,16 @@ export function Confirmation({
110
109
  account settings
111
110
  </a>{' '}
112
111
  to view or edit your account. If you need to get in touch call us on{' '}
113
- <a href="tel:+442077556248" className="ncf__link ncf__link--external">
114
- +44 (0) 207 755 6248
115
- </a>
116
- . Or contact us for additional support.
112
+ <a href="tel:+442077556248">+44 (0) 207 755 6248</a>. Or contact us
113
+ for additional support.
117
114
  </p>
118
115
  </div>
119
- <p className="ncf__paragraph">
116
+ <p className="ncf__paragraph o3-type-body-base">
120
117
  {!isTermedSubscriptionTermType
121
118
  ? 'We will automatically renew your subscription using the payment method provided unless you cancel before your renewal date. '
122
119
  : ''}
123
120
  {'See our '}
124
121
  <a
125
- className="ncf__link ncf__link--external"
126
122
  href="http://help.ft.com/help/legal-privacy/terms-conditions/"
127
123
  target="_top"
128
124
  rel="noopener"
@@ -13,7 +13,7 @@ const nextActionTop = (
13
13
  <p className="ncf__center">
14
14
  <a
15
15
  href="/myft/"
16
- className="ncf__button ncf__button--submit ncf__button--margin"
16
+ className="ncf__button o3-button o3-button--primary ncf__button--margin"
17
17
  >
18
18
  An example child: this is the tailor my experience button
19
19
  </a>
@@ -25,15 +25,13 @@ const nextActionBottom = (
25
25
  <div>
26
26
  <a
27
27
  href={'/contentuuid'}
28
- className="ncf__button ncf__button--submit ncf__button--margin"
28
+ className="ncf__button o3-button o3-button--primary ncf__button--margin"
29
29
  >
30
30
  Return to your article
31
31
  </a>
32
32
  </div>
33
- <div>
34
- <a href="/" className="ncf__link">
35
- Explore the FT
36
- </a>
33
+ <div className="o3-type-body-base">
34
+ <a href="/">Explore the FT</a>
37
35
  </div>
38
36
  </div>
39
37
  );
@@ -17,7 +17,7 @@ export function ContinueReading({
17
17
  const aTagProps = {
18
18
  href: link,
19
19
  ...(isEmbedded && { target: '_top' }),
20
- className: 'ncf__button ncf__button--secondary',
20
+ className: 'ncf__button o3-button o3-button--secondary',
21
21
  };
22
22
 
23
23
  const linkElement = link && (
@@ -30,10 +30,10 @@ export function CustomerCare({
30
30
  <div className="ncf__paragraph">
31
31
  <div className="ncf__icon ncf__icon--phone ncf__icon--large"></div>
32
32
  <p>International Toll Free Number</p>
33
- <p className="ncf__customer-care__phone">
33
+ <p className="ncf__customer-care__phone o3-type-body-base">
34
34
  <a
35
35
  id="customer-care-international-number"
36
- className="ncf__header ncf__link"
36
+ className="ncf__header"
37
37
  href="tel:+80007056477"
38
38
  >
39
39
  + 800 0705 6477
@@ -41,8 +41,8 @@ export function CustomerCare({
41
41
  </p>
42
42
  </div>
43
43
 
44
- <div className="ncf__paragraph">
45
- <a className="ncf__link" href="https://help.ft.com/help/contact-us/">
44
+ <div className="ncf__paragraph o3-type-body-base">
45
+ <a href="https://help.ft.com/help/contact-us/">
46
46
  Find a local phone number
47
47
  </a>
48
48
  </div>
@@ -15,23 +15,23 @@ export function Debug({
15
15
  // entirely this component should be rethought.
16
16
  const testEnvironment = `
17
17
  <span class="ncf__debug-environment">
18
- <a class="ncf__button ncf__button--debug ncf__button--inverse ncf__debug-button--test" onclick="setTestEnvironment('off');"><strong>TEST</strong> relax you are using the test API</a>
18
+ <a class="ncf__button ncf__button--debug o3-button o3-button--secondary ncf__debug-button--test" data-o3-theme="inverse"onclick="setTestEnvironment('off');"><strong>TEST</strong> relax you are using the test API</a>
19
19
  </span>
20
20
  `;
21
21
  const productionEnvironment = `
22
22
  <span class="ncf__debug-environment">
23
- <a class="ncf__button ncf__button--debug ncf__button--inverse ncf__debug-button--production" onclick="setTestEnvironment('on');"><strong>PRODUCTION</strong> careful you are using the production API</a>
23
+ <a class="ncf__button ncf__button--debug o3-button o3-button--secondary ncf__debug-button--production" data-o3-theme="inverse" onclick="setTestEnvironment('on');"><strong>PRODUCTION</strong> careful you are using the production API</a>
24
24
  </span>
25
25
  `;
26
26
  const testCards = `
27
- <button id="ncf-copy-visa-checkout-card" class="ncf__button ncf__button--debug ncf__button--inverse" onclick="copyToClipboard('checkoutVisa');" title="Copy Checkout Visa test card number to clipboard">EU Visa (cvv:100)</button>
28
- <button id="ncf-copy-visa-checkout-3ds" class="ncf__button ncf__button--debug ncf__button--inverse" onclick="copyToClipboard('checkout3dsChallenge');" title="Copy Checkout challenge code -Checkout1!- to clipboard">EU 3ds challenge</button>
29
- <button id="ncf-copy-visa-chase-card" class="ncf__button ncf__button--debug ncf__button--inverse" onclick="copyToClipboard('chaseVisa');" title="Copy Chase card number to clipboard">US Visa (exp:1230,cvv:111)</button>
30
- <button id="ncf-link-checkout-cards" class="ncf__button ncf__button--debug ncf__button--inverse" onclick="window.open('https://www.checkout.com/docs/testing/test-card-numbers#Credit_cards', '_blank');" title="Checkout test cards documentation">Doc:Checkout</button>
27
+ <button id="ncf-copy-visa-checkout-card" class="ncf__button ncf__button--debug o3-button o3-button--secondary" data-o3-theme="inverse" onclick="copyToClipboard('checkoutVisa');" title="Copy Checkout Visa test card number to clipboard">EU Visa (cvv:100)</button>
28
+ <button id="ncf-copy-visa-checkout-3ds" class="ncf__button ncf__button--debug o3-button o3-button--secondary" data-o3-theme="inverse" onclick="copyToClipboard('checkout3dsChallenge');" title="Copy Checkout challenge code -Checkout1!- to clipboard">EU 3ds challenge</button>
29
+ <button id="ncf-copy-visa-chase-card" class="ncf__button ncf__button--debug o3-button o3-button--secondary" data-o3-theme="inverse" onclick="copyToClipboard('chaseVisa');" title="Copy Chase card number to clipboard">US Visa (exp:1230,cvv:111)</button>
30
+ <button id="ncf-link-checkout-cards" class="ncf__button ncf__button--debug o3-button o3-button--secondary" data-o3-theme="inverse" onclick="window.open('https://www.checkout.com/docs/testing/test-card-numbers#Credit_cards', '_blank');" title="Checkout test cards documentation">Doc:Checkout</button>
31
31
  `;
32
32
  const linksString = Object.keys(links).map(
33
33
  (link) =>
34
- `<a key=${link} class="ncf__button ncf__button--inverse ncf__link" href="${links[link]}">${link}</a>`
34
+ `<a key=${link} class="ncf__button o3-button o3-button--secondary" data-o3-theme="inverse" href="${links[link]}">${link}</a>`
35
35
  );
36
36
 
37
37
  // Builds a Country dropdown component to allow the user to select a country and reload the page with the selected country
@@ -57,7 +57,7 @@ export function Debug({
57
57
  ''
58
58
  );
59
59
  const countriesDropDown = `
60
- <select class="ncf__button ncf__button--debug ncf__button--inverse ncf__button--max-width" id="ncf-country" onchange="reloadWithSelectedCountry();">
60
+ <select class="ncf__button ncf__button--debug o3-button o3-button--secondary ncf__button--max-width" data-o3-theme="inverse" id="ncf-country" onchange="reloadWithSelectedCountry();">
61
61
  <option value="">Change country</option>
62
62
  <hr />
63
63
  ${optionsToRender}
@@ -65,10 +65,10 @@ export function Debug({
65
65
  `;
66
66
 
67
67
  const helpers = `
68
- <span class="ncf__debug-helpers">
69
- <button class="ncf__button ncf__button--debug ncf__button--inverse" onclick="logout();" title="Logout and refresh">Logout</button>
70
- <button class="ncf__button ncf__button--debug ncf__button--inverse" onclick="fillForm();" title="Fill form with debug data">Fill</button>
71
- <button class="ncf__button ncf__button--debug ncf__button--inverse" onclick="fillForm(); submitForm();" title="Fill form with debug data and submit">Fill &amp; Submit</button>
68
+ <span class="ncf__debug-helpers o3-type-body-base">
69
+ <button class="ncf__button ncf__button--debug o3-button o3-button--secondary" data-o3-theme="inverse" onclick="logout();" title="Logout and refresh">Logout</button>
70
+ <button class="ncf__button ncf__button--debug o3-button o3-button--secondary" data-o3-theme="inverse" onclick="fillForm();" title="Fill form with debug data">Fill</button>
71
+ <button class="ncf__button ncf__button--debug o3-button o3-button--secondary" data-o3-theme="inverse" onclick="fillForm(); submitForm();" title="Fill form with debug data and submit">Fill &amp; Submit</button>
72
72
  ${countriesDropDown}
73
73
  ${isTest ? testCards : ''}
74
74
  ${links.length ? linksString : ''}
@@ -38,11 +38,10 @@ export function DeferredBillingTerms({
38
38
  isDeferredBilling && (
39
39
  <>
40
40
  <p className={labelClassName}>
41
- <span className="ncf__paragraph">
41
+ <span className="ncf__paragraph o3-type-body-base">
42
42
  I confirm I am {CONSENT_AGE} years or older and have read and agree
43
43
  to the{' '}
44
44
  <a
45
- className="ncf__link--external"
46
45
  href="https://help.ft.com/legal-privacy/terms-and-conditions/"
47
46
  title="FT Legal Terms and Conditions help page"
48
47
  target="_blank"
@@ -70,10 +69,9 @@ export function DeferredBillingTerms({
70
69
  </span>
71
70
  </p>
72
71
  <p className={labelClassName}>
73
- <span className="ncf__paragraph">
72
+ <span className="ncf__paragraph o3-type-body-base">
74
73
  Find out more about our cancellation policy in our{' '}
75
74
  <a
76
- className="ncf__link--external"
77
75
  href="https://help.ft.com/legal-privacy/terms-and-conditions/"
78
76
  title="FT Legal Terms and Conditions help page"
79
77
  target="_blank"
@@ -86,12 +84,11 @@ export function DeferredBillingTerms({
86
84
  </span>
87
85
  </p>
88
86
  <p className={labelClassName}>
89
- <span className="ncf__paragraph">
87
+ <span className="ncf__paragraph o3-type-body-base">
90
88
  Please note that if you fail to make payment for your Deferred
91
89
  Billing Plan within the due date your subscription will be
92
90
  automatically cancelled.{' '}
93
91
  <a
94
- className="ncf__link--external"
95
92
  href="https://help.ft.com/legal-privacy/terms-and-conditions/"
96
93
  title="FT Legal Terms and Conditions help page"
97
94
  target="_blank"
@@ -14,18 +14,18 @@ export function ErrorPage({
14
14
  <p id="error-message">{message}</p>
15
15
  </div>
16
16
  <div className="ncf__error-page__content">{children}</div>
17
- <div className="ncf__paragraph">
17
+ <div className="ncf__paragraph o3-type-body-base">
18
18
  <p>International Toll Free Number</p>
19
19
  <a
20
20
  id="error-international-number"
21
- className="ncf__header ncf__link"
21
+ className="ncf__header"
22
22
  href="tel:+80007056477"
23
23
  >
24
24
  + 800 0705 6477
25
25
  </a>
26
26
  </div>
27
- <div className="ncf__paragraph">
28
- <a className="ncf__link" href="https://help.ft.com/help/contact-us/">
27
+ <div className="ncf__paragraph o3-type-body-base">
28
+ <a href="https://help.ft.com/help/contact-us/">
29
29
  Find a local phone number
30
30
  </a>
31
31
  </div>
@@ -18,7 +18,7 @@ export function Fieldset({
18
18
 
19
19
  const legendClassName = classNames([
20
20
  'ncf__legend',
21
- { 'o-normalise-visually-hidden': hideLegend },
21
+ { 'o3-visually-hidden': hideLegend },
22
22
  ]);
23
23
 
24
24
  const legendElement = legend ? (
@@ -32,7 +32,7 @@ export function FTEditRegistrationConfirmation({
32
32
  <a
33
33
  href={hubUrl}
34
34
  target="_parent"
35
- className=" ncf__confirmation--finish ncf__button ncf__button--submit"
35
+ className=" ncf__confirmation--finish ncf__button o3-button o3-button--primary"
36
36
  data-trackable="register-finish-head-to-ft-edit-hub"
37
37
  >
38
38
  Explore FT Edit
@@ -42,7 +42,7 @@ export function FTEditRegistrationConfirmation({
42
42
  <a
43
43
  href={articleUrl}
44
44
  target="_parent"
45
- className=" ncf__confirmation--finish-article-read ncf__button ncf__button--secondary reduce-bottom-spacing"
45
+ className=" ncf__confirmation--finish-article-read ncf__button o3-button o3-button--secondary reduce-bottom-spacing"
46
46
  data-trackable="register-finish-head-to-article"
47
47
  >
48
48
  Continue reading
@@ -10,12 +10,11 @@ const getMonthNameByIndex = (index) => {
10
10
 
11
11
  export const Compliance = () => (
12
12
  <div id="graduationDateCompliance" className="ncf__field ncf__gd-compliance">
13
- <p>
13
+ <p className="o3-type-body-base">
14
14
  We use the information you provide, and may share it with your
15
15
  institution, for the purposes of administering your institution&apos;s
16
16
  licence for{' '}
17
17
  <a
18
- className="ncf__link--external"
19
18
  href="https://ft.com/"
20
19
  title="Financial Times"
21
20
  target="_blank"
@@ -24,11 +23,10 @@ export const Compliance = () => (
24
23
  FT.com.{' '}
25
24
  </a>
26
25
  </p>
27
- <p>
26
+ <p className="o3-type-body-base">
28
27
  We may also use it to ensure our communications to you are more relevant.
29
28
  If you do not wish us to do so, you can amend your preferences at any time{' '}
30
29
  <a
31
- className="ncf__link--external"
32
30
  href="http://www.ft.com/myft/alerts/"
33
31
  title="Financial Times"
34
32
  target="_blank"
@@ -54,7 +54,6 @@ export { Submit } from './submit';
54
54
  export { TrialBanner } from './trial-banner';
55
55
  export { EducationJobTitle } from './education-job-title';
56
56
  export { GraduationDate } from './graduation-date';
57
- export { GoogleSignIn } from './google-sign-in';
58
57
  export { TextInput } from './text-input';
59
58
  export { DeferredBillingTerms } from './deferred-billing-terms';
60
59
  export { YearOfBirth } from './year-of-birth';
@@ -12,7 +12,6 @@ export function LicenceConfirmation({
12
12
  }) {
13
13
  const readingLinkProps = {
14
14
  href: contentId === '' ? '/' : `/content/${contentId}`,
15
- className: 'ncf__link',
16
15
  ...(isEmbedded && { target: '_top' }),
17
16
  };
18
17
 
@@ -50,13 +49,13 @@ export function LicenceConfirmation({
50
49
  )}
51
50
  {ctaElement || (
52
51
  <p className="ncf__paragraph ncf__center">
53
- <a className="ncf__button ncf__button--submit" href="/myft">
52
+ <a className="ncf__button o3-button o3-button--primary" href="/myft">
54
53
  Go to myFT
55
54
  </a>
56
55
  </p>
57
56
  )}
58
57
 
59
- <p className="ncf__paragraph ncf__center">
58
+ <p className="ncf__paragraph ncf__center o3-type-body-base">
60
59
  <a {...readingLinkProps}>Go to homepage</a>
61
60
  </p>
62
61
  </div>
@@ -8,7 +8,7 @@ export default {
8
8
 
9
9
  const goToMyFtElement = (
10
10
  <p className="ncf__paragraph ncf__center">
11
- <a className="ncf__button ncf__button--submit" href="/myft">
11
+ <a className="ncf__button o3-button o3-button--primary" href="/myft">
12
12
  Go to myFT
13
13
  </a>
14
14
  </p>
@@ -9,7 +9,7 @@ export function LicenceSignIn({ displayName = '', url = '' }) {
9
9
  <div>
10
10
  <a
11
11
  href={url}
12
- className="ncf__button--secondary ncf__button--mid-width"
12
+ className="o3-button o3-button--secondary ncf__button--mid-width"
13
13
  >
14
14
  Sign in
15
15
  </a>
@@ -4,7 +4,10 @@ import classNames from 'classnames';
4
4
 
5
5
  export function Loader({ children, showLoader, title, inElement }) {
6
6
  const label = title ? (
7
- <div className="ncf__loader__content__title" id="loader-aria-label">
7
+ <div
8
+ className="ncf__loader__content__title o3-type-title-md"
9
+ id="loader-aria-label"
10
+ >
8
11
  {title}
9
12
  </div>
10
13
  ) : (
@@ -8,23 +8,22 @@ export function PackageChange({
8
8
  }) {
9
9
  return (
10
10
  <div className="ncf__package-change">
11
- <div className="ncf__package-change__package">
11
+ <div className="ncf__package-change__package o3-type-body-lg">
12
12
  <div className="ncf__package-change__content">
13
13
  <p>
14
14
  You have chosen{' '}
15
15
  <span className="ncf__strong">{currentPackage}</span>
16
16
  </p>
17
17
  {packageDescription && (
18
- <p className="ncf__package-change__content__description">
19
- {packageDescription}
20
- </p>
18
+ <p className="o3-type-body-base">{packageDescription}</p>
21
19
  )}
22
20
  </div>
23
21
  <div className="ncf__package-change__actions">
24
22
  <a
25
23
  href={changePackageUrl}
26
- className="ncf__button ncf__button--mono ncf__button--baseline"
24
+ className="ncf__button o3-button o3-button--secondary ncf__button--baseline"
27
25
  data-trackable="change"
26
+ data-o3-theme="mono"
28
27
  >
29
28
  Change
30
29
  </a>
@@ -245,7 +245,7 @@ export function PaymentTerm({
245
245
  option.amount,
246
246
  option.currency,
247
247
  option.value
248
- )
248
+ )
249
249
  )}
250
250
  {nameMap['custom'].renewsText(getTimeFromPeriod(option.value))}
251
251
  </div>
@@ -354,10 +354,9 @@ export function PaymentTerm({
354
354
  {showLegal && (
355
355
  <div className="ncf__payment-term__legal">
356
356
  {isTermedSubscriptionTermType ? (
357
- <p>
357
+ <p className="o3-type-body-base">
358
358
  Find out more about our cancellation policy in our{' '}
359
359
  <a
360
- className="ncf__link--external"
361
360
  href="https://help.ft.com/legal-privacy/terms-and-conditions/"
362
361
  title="FT Legal Terms and Conditions help page"
363
362
  target="_blank"
@@ -374,12 +373,11 @@ export function PaymentTerm({
374
373
  subscription using the payment method provided unless you cancel
375
374
  before your renewal date.
376
375
  </p>
377
- <p>
376
+ <p className="o3-type-body-base">
378
377
  We will notify you at least 14 days in advance of any changes to
379
378
  the price in your subscription that would apply upon next
380
379
  renewal. Find out more about our cancellation policy in our{' '}
381
380
  <a
382
- className="ncf__link--external"
383
381
  href="https://help.ft.com/legal-privacy/terms-and-conditions/"
384
382
  title="FT Legal Terms and Conditions help page"
385
383
  target="_blank"
@@ -7,12 +7,18 @@ export function ProceedWithPaymentLink({
7
7
  description,
8
8
  listItems = [],
9
9
  children = (
10
- <button className="proceed-with-payment-link__button">Proceed</button>
10
+ <button className="proceed-with-payment-link__button o3-button o3-button--primary">
11
+ Proceed
12
+ </button>
11
13
  ),
12
14
  }) {
13
15
  return (
14
16
  <div id={id} className="proceed-with-payment-link o-forms-field">
15
- {title && <h2 className="proceed-with-payment-link__heading">{title}</h2>}
17
+ {title && (
18
+ <h2 className="proceed-with-payment-link__heading o3-type-title-lg">
19
+ {title}
20
+ </h2>
21
+ )}
16
22
  {description && (
17
23
  <p className="proceed-with-payment-link__description">{description}</p>
18
24
  )}
@@ -14,7 +14,7 @@ export default {
14
14
 
15
15
  export const Basic = (args) => (
16
16
  <ProceedWithPaymentLink {...args}>
17
- <button className="proceed-with-payment-link__button">
17
+ <button className="proceed-with-payment-link__button o3-button o3-button--primary">
18
18
  {args.buttonText}
19
19
  </button>
20
20
  </ProceedWithPaymentLink>