@financial-times/n-conversion-forms 41.3.1 → 42.0.0

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 (113) 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__/industry.spec.js.snap +8 -706
  17. package/components/__snapshots__/licence-confirmation.spec.js.snap +17 -28
  18. package/components/__snapshots__/licence-header.spec.js.snap +1 -1
  19. package/components/__snapshots__/licence-sign-in.spec.js.snap +1 -1
  20. package/components/__snapshots__/loader.spec.js.snap +1 -1
  21. package/components/__snapshots__/package-change.spec.js.snap +16 -11
  22. package/components/__snapshots__/payment-term.spec.js.snap +40 -60
  23. package/components/__snapshots__/position.spec.js.snap +8 -262
  24. package/components/__snapshots__/registration-confirmation.spec.js.snap +9 -7
  25. package/components/__snapshots__/responsibility.spec.js.snap +8 -442
  26. package/components/__snapshots__/submit.spec.js.snap +6 -6
  27. package/components/accept-terms-business.jsx +2 -3
  28. package/components/accept-terms-business.spec.jsx +3 -1
  29. package/components/accept-terms-privacy-policy.jsx +2 -5
  30. package/components/accept-terms-privacy-policy.spec.js +1 -1
  31. package/components/accept-terms-subscription.jsx +7 -12
  32. package/components/accept-terms-subscription.spec.js +1 -1
  33. package/components/accept-terms.jsx +12 -20
  34. package/components/b2c-partnership-confirmation.jsx +3 -5
  35. package/components/confirmation.jsx +5 -9
  36. package/components/confirmation.stories.js +4 -6
  37. package/components/continue-reading.jsx +1 -1
  38. package/components/customer-care.jsx +4 -4
  39. package/components/debug.jsx +12 -12
  40. package/components/deferred-billing-terms.jsx +3 -6
  41. package/components/error-page.jsx +4 -4
  42. package/components/fieldset.jsx +1 -1
  43. package/components/ft-edit-registration-confirmation.jsx +2 -2
  44. package/components/graduation-date.jsx +2 -4
  45. package/components/index.js +0 -1
  46. package/components/industry.jsx +1 -3
  47. package/components/industry.spec.js +7 -2
  48. package/components/licence-confirmation.jsx +2 -3
  49. package/components/licence-confirmation.stories.js +1 -1
  50. package/components/licence-sign-in.jsx +1 -1
  51. package/components/loader.jsx +4 -1
  52. package/components/package-change.jsx +4 -5
  53. package/components/payment-term.jsx +3 -5
  54. package/components/position.jsx +1 -2
  55. package/components/position.spec.js +7 -2
  56. package/components/proceed-with-payment-link.jsx +8 -2
  57. package/components/proceed-with-payment-link.stories.js +1 -1
  58. package/components/registration-confirmation.jsx +5 -3
  59. package/components/responsibility.jsx +1 -2
  60. package/components/responsibility.spec.js +7 -2
  61. package/components/submit.jsx +1 -1
  62. package/components/subscription-confirmation-with-payment-link.jsx +1 -1
  63. package/dist/accept-terms-business.jsx +2 -3
  64. package/dist/accept-terms-business.spec.jsx +1 -1
  65. package/dist/accept-terms-privacy-policy.jsx +2 -5
  66. package/dist/accept-terms-subscription.jsx +7 -12
  67. package/dist/accept-terms.jsx +10 -20
  68. package/dist/b2c-partnership-confirmation.jsx +5 -7
  69. package/dist/confirmation.jsx +4 -7
  70. package/dist/continue-reading.jsx +1 -1
  71. package/dist/customer-care.jsx +3 -4
  72. package/dist/debug.jsx +6 -6
  73. package/dist/deferred-billing-terms.jsx +3 -6
  74. package/dist/error-page.jsx +3 -4
  75. package/dist/fieldset.jsx +1 -1
  76. package/dist/ft-edit-registration-confirmation.jsx +2 -2
  77. package/dist/graduation-date.jsx +6 -4
  78. package/dist/index.js +0 -7
  79. package/dist/industry.jsx +1 -3
  80. package/dist/licence-confirmation.jsx +3 -4
  81. package/dist/licence-sign-in.jsx +1 -1
  82. package/dist/loader.jsx +1 -1
  83. package/dist/package-change.jsx +5 -4
  84. package/dist/payment-term.jsx +6 -4
  85. package/dist/position.jsx +1 -2
  86. package/dist/proceed-with-payment-link.jsx +2 -2
  87. package/dist/registration-confirmation.jsx +7 -5
  88. package/dist/responsibility.jsx +1 -2
  89. package/dist/submit.jsx +1 -1
  90. package/dist/subscription-confirmation-with-payment-link.jsx +1 -1
  91. package/main.scss +132 -167
  92. package/package.json +3 -6
  93. package/styles/_shared.scss +125 -100
  94. package/styles/accept-terms.scss +6 -5
  95. package/styles/banner.scss +66 -60
  96. package/styles/confirmation.scss +50 -55
  97. package/styles/continue-reading.scss +56 -39
  98. package/styles/error.scss +1 -1
  99. package/styles/forms-additional-field-information.scss +8 -4
  100. package/styles/ft-edit-registration-confirmation.scss +228 -224
  101. package/styles/loader.scss +40 -45
  102. package/styles/package-change.scss +1 -4
  103. package/styles/payment-term.scss +108 -89
  104. package/styles/payment-type.scss +117 -112
  105. package/styles/proceed-with-payment-link.scss +32 -18
  106. package/styles/subscription-confirmation-with-payment-link.scss +64 -24
  107. package/components/__snapshots__/google-sign-in.spec.js.snap +0 -13
  108. package/components/google-sign-in.jsx +0 -21
  109. package/components/google-sign-in.spec.js +0 -14
  110. package/components/google-sign-in.stories.js +0 -13
  111. package/dist/google-sign-in.jsx +0 -24
  112. package/helpers/demographics.js +0 -606
  113. package/styles/google-sign-in.scss +0 -26
package/main.scss CHANGED
@@ -1,13 +1,10 @@
1
- @import '@financial-times/o-icons/main';
2
- @import '@financial-times/o-colors/main';
3
- @import '@financial-times/o-normalise/main';
4
- @import '@financial-times/o-typography/main';
5
1
  @import '@financial-times/o-forms/main';
6
- @import '@financial-times/o-buttons/main';
7
2
  @import '@financial-times/o-message/main';
8
- @import '@financial-times/o-icons/main';
9
3
  @import '@financial-times/o-stepped-progress/main';
10
- @import '@financial-times/o-fonts/main';
4
+ @import '@financial-times/o3-foundation/css/core.css';
5
+ @import '@financial-times/o3-foundation/css/professional.css';
6
+ @import '@financial-times/o3-button/css/core.css';
7
+ @import '@financial-times/o3-button/css/professional.css';
11
8
  @import './styles/package-change';
12
9
  @import './styles/payment-term';
13
10
  @import './styles/payment-type';
@@ -20,14 +17,11 @@
20
17
  @import './styles/forms-additional-field-information';
21
18
  @import './styles/error';
22
19
  @import './styles/graduation-date';
23
- @import './styles/google-sign-in';
24
20
  @import './styles/confirmation';
25
21
  @import './styles/ft-edit-registration-confirmation';
26
22
  @import './styles/subscription-confirmation-with-payment-link';
27
23
  @import './styles/proceed-with-payment-link';
28
24
 
29
- @include oTypography();
30
- @include oFonts();
31
25
  @include oForms(
32
26
  $opts: (
33
27
  'elements': (
@@ -53,7 +47,10 @@
53
47
 
54
48
  // Custom styles
55
49
  .ncf {
56
- @include oTypographySans($scale: 0);
50
+ font-family: var(--o3-type-body-base-font-family);
51
+ font-size: var(--o3-type-body-base-font-size);
52
+ font-weight: var(--o3-type-body-base-font-weight);
53
+ line-height: var(--o3-type-body-base-line-height);
57
54
 
58
55
  &__divider-horizontal {
59
56
  margin: 0 0 16px;
@@ -64,7 +61,7 @@
64
61
  }
65
62
 
66
63
  &__wrapper {
67
- background: oColorsByName('white');
64
+ background: var(--o3-color-palette-white);
68
65
  padding: 20px;
69
66
 
70
67
  @include oGridRespondTo($from: S) {
@@ -89,23 +86,23 @@
89
86
  }
90
87
 
91
88
  &__message {
92
- margin: 0 0 oSpacingByName('s6');
89
+ margin: 0 0 var(--o3-spacing-s);
93
90
 
94
91
  @include oGridRespondTo($from: S) {
95
- margin: 0 0 oSpacingByName('s3');
92
+ margin: 0 0 var(--o3-spacing-3xs);
96
93
  }
97
94
  }
98
95
 
99
96
  &__light-licence-text {
100
- font-weight: lighter;
97
+ font-weight: var(--o3-font-weight-light);
101
98
  }
102
99
 
103
100
  &__bold-licence-text {
104
- font-weight: bold;
101
+ font-weight: var(--o3-font-weight-bold);
105
102
  }
106
103
 
107
104
  &__paragraph {
108
- padding: oSpacingByName('s4') 0;
105
+ padding: var(--o3-spacing-2xs) 0;
109
106
  margin: 0;
110
107
 
111
108
  &--reduced-padding {
@@ -113,7 +110,7 @@
113
110
  }
114
111
 
115
112
  &--subscription-confirmation {
116
- margin: oSpacingByName('s4') 0 oSpacingByName('s2');
113
+ margin: var(--o3-spacing-2xs) 0 var(--o3-spacing-4xs);
117
114
  }
118
115
  }
119
116
 
@@ -129,17 +126,20 @@
129
126
  }
130
127
 
131
128
  &__legend {
132
- @include oTypographySans($weight: 'semibold', $include-font-family: false);
129
+ font-weight: var(--o3-font-weight-semibold);
130
+
133
131
  padding: 0;
134
132
  }
135
133
 
136
134
  &__fieldset-descriptor {
137
135
  margin: 0;
138
- @include oTypographySans($scale: -1, $include-font-family: false);
136
+
137
+ line-height: var(--o3-font-lineheight-metric2-negative-2);
138
+ font-size: var(--o3-font-size-metric2-negative-2);
139
139
  }
140
140
 
141
141
  &__fields:not(:first-child) {
142
- margin-top: oSpacingByName('s3');
142
+ margin-top: var(--o3-spacing-3xs);
143
143
  }
144
144
 
145
145
  &__field {
@@ -173,11 +173,16 @@
173
173
  }
174
174
 
175
175
  &__terms {
176
- @include oTypographySans($scale: 0);
177
- color: oColorsByName('black-80');
176
+ font-family: var(--o3-type-detail-font-family);
177
+ font-size: var(--o3-type-detail-font-size);
178
+ font-weight: var(--o3-type-detail-font-weight);
179
+ line-height: var(--o3-type-detail-line-height);
180
+ color: var(--o3-color-use-case-body-text);
178
181
 
179
182
  &--small {
180
- @include oTypographySans($scale: -1);
183
+ line-height: var(--o3-font-lineheight-metric2-negative-2);
184
+ font-size: var(--o3-font-size-metric2-negative-2);
185
+ font-family: var(--o3-font-family-metric);
181
186
  }
182
187
  }
183
188
 
@@ -185,16 +190,22 @@
185
190
  @include oTypographyHeading($level: 3);
186
191
 
187
192
  &--confirmation {
188
- @include oTypographySerif($scale: 3);
189
- margin: oSpacingByName('s6') 0;
193
+ line-height: var(--o3-font-lineheight-3);
194
+ font-size: var(--o3-font-size-3);
195
+ font-family: var(--o3-font-family-georgia);
196
+ margin: var(--o3-spacing-s) 0;
190
197
  }
191
198
  }
192
199
 
193
200
  &__headed-paragraph {
194
201
  .ncf__header {
195
- @include oTypographySans($scale: 2, $include-font-family: false);
202
+ font-family: var(--o3-type-body-lg-font-family);
203
+ font-size: var(--o3-type-body-lg-font-size);
204
+ font-weight: var(--o3-type-body-lg-font-weight);
205
+ line-height: var(--o3-type-body-lg-line-height);
206
+
196
207
  padding: 0;
197
- margin: 0 0 oSpacingByName('s1');
208
+ margin: 0 0 var(--o3-spacing-5xs);
198
209
  }
199
210
 
200
211
  .ncf__paragraph {
@@ -204,101 +215,23 @@
204
215
 
205
216
  &__header2 {
206
217
  &--afterline {
207
- @include oTypographySans(
208
- $scale: 1,
209
- $include-font-family: false,
210
- $weight: 'semibold'
211
- );
218
+ font-family: var(--o3-type-body-highlight-font-family);
219
+ font-size: var(--o3-type-body-highlight-font-size);
220
+ font-weight: var(--o3-type-body-highlight-font-weight);
221
+ line-height: var(--o3-type-body-highlight-line-height);
212
222
 
213
223
  &:after {
214
- padding-top: oSpacingByName('s3');
224
+ padding-top: var(--o3-spacing-3xs);
215
225
  padding-bottom: 0;
216
226
  content: '';
217
227
  display: block;
218
228
  width: 90px;
219
- border-bottom: oSpacingByName('s1') solid oColorsByName('black');
229
+ border-bottom: var(--o3-spacing-5xs) solid var(--o3-color-palette-black);
220
230
  }
221
231
  }
222
232
  }
223
233
 
224
- &__link {
225
- @include oTypographyLink;
226
- }
227
-
228
- &__link--external {
229
- @include oTypographyLink($external: true);
230
- }
231
-
232
234
  &__button {
233
- &--submit {
234
- @include oButtonsContent(
235
- $opts: (
236
- 'size': 'big',
237
- 'type': 'primary',
238
- )
239
- );
240
- }
241
-
242
- &--mono {
243
- @include oButtonsContent(
244
- $opts: (
245
- 'type': 'secondary',
246
- 'theme': 'mono',
247
- )
248
- );
249
- }
250
-
251
- &--inverse {
252
- @include oButtonsContent(
253
- $opts: (
254
- 'size': 'big',
255
- 'theme': 'inverse',
256
- 'type': 'secondary',
257
- )
258
- );
259
- }
260
-
261
- &--professional-inverse {
262
- @include oButtonsContent(
263
- $opts: (
264
- 'size': 'big',
265
- 'theme': 'professional-inverse',
266
- 'type': 'primary',
267
- )
268
- );
269
- }
270
-
271
- &--secondary {
272
- @include oButtonsContent(
273
- $opts: (
274
- 'size': 'big',
275
- 'type': 'secondary',
276
- )
277
- );
278
- }
279
-
280
- &--google {
281
- @include oButtonsContent(
282
- $opts: (
283
- 'size': 'big',
284
- 'type': 'secondary',
285
- )
286
- );
287
- background-color: oColorsByName('white');
288
- padding-left: 40px;
289
-
290
- &::before {
291
- content: '';
292
- background: transparent
293
- url('https://www.ft.com/__origami/service/image/v2/images/raw/https%3A%2F%2Fwww.ft.com%2F__assets%2Fcreatives%2FG_active_focused_pressed.svg?source=m-login&width=20&height=20&format=svg')
294
- no-repeat;
295
- position: absolute;
296
- left: 10px;
297
- width: 18px;
298
- height: 18px;
299
- }
300
- }
301
-
302
235
  &--baseline {
303
236
  vertical-align: baseline;
304
237
  }
@@ -328,71 +261,94 @@
328
261
  }
329
262
 
330
263
  &__strong {
331
- font-weight: oFontsWeight('semibold');
264
+ font-weight: var(--o3-font-weight-semibold);
332
265
  }
333
266
 
334
267
  &__regular {
335
- font-weight: oFontsWeight('regular');
268
+ font-weight: var(--o3-font-weight-regular);
336
269
  }
337
270
 
338
271
  &__icon {
339
- background: oColorsByName('paper');
340
- border: 2px solid oColorsByName('black-40');
272
+ background: var(--o3-color-palette-paper);
273
+ border: 2px solid var(--o3-color-palette-black-40);
341
274
  border-radius: 9999px;
342
275
  display: block;
343
- height: 20px;
276
+ height: 24px;
344
277
  margin: 0 auto;
345
- width: 20px;
278
+ width: 24px;
346
279
  }
347
280
 
348
281
  &__icon--tick {
349
- background: oColorsByName('teal');
350
- border-color: oColorsByName('teal');
282
+ background: var(--o3-color-palette-teal);
283
+ border-color: var(--o3-color-palette-teal);
284
+
351
285
  &::before {
352
- @include oIconsContent(
353
- $icon-name: 'tick',
354
- $color: oColorsByName('white'),
355
- $size: 20
356
- );
286
+ display: inline-block;
287
+ width: 24px;
288
+ height: 24px;
289
+ margin: 0 6px;
290
+ /* Set the icon colour, In this case match the
291
+ current foreground text colour. */
292
+ background-color: var(--o3-color-palette-white);
293
+ /* Mask the square with an Origami icon. */
294
+ mask-image: var(--o3-icon-tick);
295
+ mask-repeat: no-repeat;
296
+ mask-size: contain;
357
297
  content: '';
358
- color: oColorsByName('white');
359
298
  }
360
299
  }
361
300
 
362
301
  &__icon--phone {
363
- background: oColorsByName('teal');
364
- border-color: oColorsByName('teal');
302
+ background: var(--o3-color-palette-teal);
303
+ border-color: var(--o3-color-palette-teal);
304
+
365
305
  &::before {
366
- @include oIconsContent(
367
- $icon-name: 'phone',
368
- $color: oColorsByName('white'),
369
- $size: 20
370
- );
306
+ display: inline-block;
307
+ width: 24px;
308
+ height: 24px;
309
+ /* Set the icon colour, In this case match the
310
+ current foreground text colour. */
311
+ background-color: var(--o3-color-palette-white);
312
+ /* Mask the square with an Origami icon. */
313
+ mask-image: var(--o3-icon-phone);
314
+ mask-repeat: no-repeat;
315
+ mask-size: contain;
371
316
  content: '';
372
- color: oColorsByName('white');
373
317
  }
374
318
  }
375
319
 
376
320
  &__icon--error {
377
- background: oColorsByName('crimson');
378
- border-color: oColorsByName('crimson');
321
+ background: var(--o3-color-use-case-error);
322
+ border-color: var(--o3-color-use-case-error);
323
+
379
324
  &::before {
380
- @include oIconsContent(
381
- $icon-name: 'warning',
382
- $color: oColorsByName('white'),
383
- $size: 20
384
- );
325
+ display: inline-block;
326
+ width: 24px;
327
+ height: 24px;
328
+ /* Set the icon colour, In this case match the
329
+ current foreground text colour. */
330
+ background-color: var(--o3-color-palette-white);
331
+ /* Mask the square with an Origami icon. */
332
+ mask-image: var(--o3-icon-warning);
333
+ mask-repeat: no-repeat;
334
+ mask-size: contain;
385
335
  content: '';
386
- color: oColorsByName('white');
387
336
  }
388
337
  }
389
338
 
390
339
  &__icon--inline-edit {
391
- @include oIconsContent(
392
- $icon-name: 'edit',
393
- $color: oColorsByName('black'),
394
- $size: 20
395
- );
340
+ display: inline-block;
341
+ width: 12px;
342
+ height: 12px;
343
+ margin: 0 4px;
344
+ /* Set the icon colour, In this case match the
345
+ current foreground text colour. */
346
+ background-color: var(--o3-color-palette-black);
347
+ /* Mask the square with an Origami icon. */
348
+ mask-image: var(--o3-icon-edit);
349
+ mask-repeat: no-repeat;
350
+ mask-size: contain;
351
+ content: '';
396
352
  border: 0;
397
353
  vertical-align: middle;
398
354
  }
@@ -400,23 +356,34 @@
400
356
  &__icon--large {
401
357
  width: 40px;
402
358
  height: 40px;
403
- &::before {
404
- width: 40px;
405
- height: 40px;
406
- }
407
- }
408
359
 
409
- &__icon-download {
410
- @include oIconsContent(
411
- $icon-name: 'download',
412
- $color: oColorsByName('black-70'),
413
- $size: 32
414
- );
360
+ &::before {
361
+ width: 24px;
362
+ height: 24px;
363
+ margin-top: 8px;
364
+ }
365
+ }
366
+
367
+ &__icon--download {
368
+ display: inline-block;
369
+ width: 24px;
370
+ height: 24px;
371
+ margin: 0 6px;
372
+ /* Set the icon colour, In this case match the
373
+ current foreground text colour. */
374
+ background-color: var(--o3-color-palette-black-70);
375
+ /* Mask the square with an Origami icon. */
376
+ mask-image: var(--o3-icon-download);
377
+ mask-repeat: no-repeat;
378
+ mask-size: contain;
379
+ content: '';
415
380
  border: 0;
416
381
  vertical-align: middle;
417
382
  }
418
383
 
419
384
  &__list {
385
+ font-family: var(--o3-font-family-metric);
386
+
420
387
  &-title,
421
388
  &-data {
422
389
  width: calc(50% - 10px);
@@ -424,13 +391,16 @@
424
391
  display: inline-block;
425
392
  vertical-align: middle;
426
393
  }
394
+
427
395
  &-description {
428
396
  margin: -10px 0 10px;
429
- @include oTypographySans($scale: -1, $include-font-family: false);
397
+
398
+ line-height: var(--o3-font-lineheight-metric2-negative-2);
399
+ font-size: var(--o3-font-size-metric2-negative-2);
430
400
  }
431
401
 
432
402
  &-title {
433
- font-weight: oFontsWeight('semibold');
403
+ font-weight: var(--o3-font-weight-semibold);
434
404
  }
435
405
  }
436
406
 
@@ -450,8 +420,9 @@
450
420
 
451
421
  &__unordered-list {
452
422
  padding-inline-start: 25px;
423
+
453
424
  > li {
454
- margin-bottom: oSpacingByName('s3');
425
+ margin-bottom: var(--o3-spacing-3xs);
455
426
  }
456
427
  }
457
428
 
@@ -476,14 +447,8 @@
476
447
  &__hidden {
477
448
  display: none !important;
478
449
  }
479
-
480
- .o-normalise-visually-hidden {
481
- @include oNormaliseVisuallyHidden;
482
- }
483
450
  }
484
451
 
485
- @include ncfGoogleSignIn();
486
-
487
452
  .ncf__password-field .ncf__password-field--show-password {
488
453
  margin-top: 7px;
489
454
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@financial-times/n-conversion-forms",
3
- "version": "41.3.1",
3
+ "version": "42.0.0",
4
4
  "description": "Containing jsx components and styles for forms included on Accounts and Acquisition apps (next-signup, next-profile, next-retention, etc).",
5
5
  "main": "./dist/index.js",
6
6
  "scripts": {
@@ -95,19 +95,16 @@
95
95
  }
96
96
  },
97
97
  "peerDependencies": {
98
- "@financial-times/o-buttons": "^7.5.0",
99
- "@financial-times/o-colors": "^6.4.2",
100
98
  "@financial-times/o-expander": "^6.2.2",
101
99
  "@financial-times/o-forms": "^9.6.0",
102
100
  "@financial-times/o-grid": "^6.1.5",
103
101
  "@financial-times/o-header-services": "^5.2.2",
104
- "@financial-times/o-icons": "^7.2.1",
105
102
  "@financial-times/o-layout": "^5.2.2",
106
103
  "@financial-times/o-loading": "^5.2.1",
107
104
  "@financial-times/o-message": "^5.2.1",
108
- "@financial-times/o-normalise": "^3.2.2",
109
105
  "@financial-times/o-social-follow": "^1.0.0",
110
106
  "@financial-times/o-stepped-progress": "^4.0.2",
111
- "@financial-times/o-typography": "^7.3.1"
107
+ "@financial-times/o3-foundation": "^3.2.4",
108
+ "@financial-times/o3-button": "^3.3.2"
112
109
  }
113
110
  }