@financial-times/n-myft-ui 28.0.2 → 28.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -15,7 +15,7 @@
15
15
  "form-serialize": "^0.7.2",
16
16
  "ftdomdelegate": "^4.0.6",
17
17
  "js-cookie": "^2.2.1",
18
- "next-myft-client": "^9.0.0",
18
+ "next-myft-client": "^10.1.0",
19
19
  "next-session-client": "^4.0.0",
20
20
  "superstore-sync": "^2.1.1"
21
21
  },
@@ -36,7 +36,7 @@
36
36
  "babel-plugin-transform-async-to-generator": "^6.24.1",
37
37
  "babel-plugin-transform-es2015-classes": "^6.8.0",
38
38
  "babel-plugin-transform-es2015-modules-commonjs": "^6.5.2",
39
- "babel-plugin-transform-runtime": "^6.9.0",
39
+ "babel-plugin-transform-runtime": "^6.23.0",
40
40
  "babel-preset-env": "^1.7.0",
41
41
  "babel-preset-es2015": "^6.6.0",
42
42
  "babel-runtime": "^6.9.2",
@@ -91,13 +91,13 @@
91
91
  "peerDependencies": {
92
92
  "@financial-times/n-notification": "^8.2.2",
93
93
  "@financial-times/o-editorial-typography": "^2.3.2",
94
- "@financial-times/o-errors": "^4.0.2",
94
+ "@financial-times/o-errors": "^5.0.0",
95
95
  "@financial-times/o-forms": "^9.4.0",
96
96
  "@financial-times/o-grid": "^6.1.1",
97
97
  "@financial-times/o-normalise": "^3.0.0",
98
98
  "@financial-times/o-overlay": "^4.0.0",
99
99
  "@financial-times/o-spacing": "^3.0.0",
100
- "@financial-times/o-tooltip": "^5.0.0",
100
+ "@financial-times/o-tooltip": "^5.2.4",
101
101
  "@financial-times/o-topper": "^5.2.3",
102
102
  "n-ui-foundations": "^9.0.0"
103
103
  }
@@ -2899,12 +2899,15 @@
2899
2899
  }
2900
2900
  },
2901
2901
  "node_modules/@financial-times/o-errors": {
2902
- "version": "4.0.8",
2903
- "resolved": "https://registry.npmjs.org/@financial-times/o-errors/-/o-errors-4.0.8.tgz",
2904
- "integrity": "sha512-hdVQqF4Fx9CcbxuurBGHekaJZ4a4wfGFmtp7fzr0f4Hdpc0gPZMONTfrKjXvJFu0Z4V+5HIRRWL9DAkMamp4FA==",
2902
+ "version": "5.2.2",
2903
+ "resolved": "https://registry.npmjs.org/@financial-times/o-errors/-/o-errors-5.2.2.tgz",
2904
+ "integrity": "sha512-27GaGSp6Wb3O66n1zPj4wIL1p8akutIMPttkZ2cq0K0SZcQ2rgb7MtfQ/E6YvMDCUapcCeAwAZ+HMkHEYef4+A==",
2905
2905
  "peer": true,
2906
2906
  "dependencies": {
2907
- "raven-js": "^3.14.0"
2907
+ "raven-js": "^3.27.2"
2908
+ },
2909
+ "engines": {
2910
+ "npm": "^7 || ^8"
2908
2911
  }
2909
2912
  },
2910
2913
  "node_modules/@financial-times/o-fonts": {
@@ -3028,9 +3031,9 @@
3028
3031
  }
3029
3032
  },
3030
3033
  "node_modules/@financial-times/o-tooltip": {
3031
- "version": "5.2.2",
3032
- "resolved": "https://registry.npmjs.org/@financial-times/o-tooltip/-/o-tooltip-5.2.2.tgz",
3033
- "integrity": "sha512-JUklwHvNmEFXfqjc6Ft7jV5Rc3cTfqBbcnexMCOvWTr8BE3Xidbg6/VumLKhmS+MTmG4NFl5EgP4Kt2hLrAa1Q==",
3034
+ "version": "5.2.4",
3035
+ "resolved": "https://registry.npmjs.org/@financial-times/o-tooltip/-/o-tooltip-5.2.4.tgz",
3036
+ "integrity": "sha512-GXC320/zwTNvacG4PCHSwGBPb+3eWMw7pePUAw41iJ70Wjwy+H9aGbbQikWOiBCiSb6BohwImWOJ6RR0g1dReg==",
3034
3037
  "peer": true,
3035
3038
  "dependencies": {
3036
3039
  "ftdomdelegate": "^4.0.6"
@@ -3039,6 +3042,7 @@
3039
3042
  "npm": "^7 || ^8"
3040
3043
  },
3041
3044
  "peerDependencies": {
3045
+ "@financial-times/o-brand": "^4.2.1",
3042
3046
  "@financial-times/o-grid": "^6.0.0",
3043
3047
  "@financial-times/o-icons": "^7.0.1",
3044
3048
  "@financial-times/o-normalise": "^3.0.0",
@@ -5030,7 +5034,7 @@
5030
5034
  "node_modules/babel-plugin-transform-runtime": {
5031
5035
  "version": "6.23.0",
5032
5036
  "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz",
5033
- "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=",
5037
+ "integrity": "sha512-cpGMVC1vt/772y3jx1gwSaTitQVZuFDlllgreMsZ+rTYC6jlYXRyf5FQOgSnckOiA5QmzbXTyBY2A5AmZXF1fA==",
5034
5038
  "dev": true,
5035
5039
  "dependencies": {
5036
5040
  "babel-runtime": "^6.22.0"
@@ -14261,13 +14265,13 @@
14261
14265
  }
14262
14266
  },
14263
14267
  "node_modules/next-myft-client": {
14264
- "version": "9.0.0",
14265
- "resolved": "https://registry.npmjs.org/next-myft-client/-/next-myft-client-9.0.0.tgz",
14266
- "integrity": "sha512-TxLrNdPY0q60S5P4pGrqqQvG8gukr7QNAMaDUg7mraGY39GeHyyoHl4WW+hdOJf4N2rVY4ydqCRs6SEbf36tQg==",
14268
+ "version": "10.1.0",
14269
+ "resolved": "https://registry.npmjs.org/next-myft-client/-/next-myft-client-10.1.0.tgz",
14270
+ "integrity": "sha512-PqnNE1gxV00yVv6pA+1jWaySJkonQBUx2uWchPNGNcB20SzVmYleSWLeD3bdxdNOD5Tpy8DDl58CEQrKja7bqA==",
14267
14271
  "hasInstallScript": true,
14268
14272
  "dependencies": {
14269
14273
  "black-hole-stream": "0.0.1",
14270
- "fetchres": "1.7.2",
14274
+ "fetchres": "^1.7.2",
14271
14275
  "next-session-client": "^4.0.0"
14272
14276
  },
14273
14277
  "engines": {
@@ -25500,12 +25504,12 @@
25500
25504
  "requires": {}
25501
25505
  },
25502
25506
  "@financial-times/o-errors": {
25503
- "version": "4.0.8",
25504
- "resolved": "https://registry.npmjs.org/@financial-times/o-errors/-/o-errors-4.0.8.tgz",
25505
- "integrity": "sha512-hdVQqF4Fx9CcbxuurBGHekaJZ4a4wfGFmtp7fzr0f4Hdpc0gPZMONTfrKjXvJFu0Z4V+5HIRRWL9DAkMamp4FA==",
25507
+ "version": "5.2.2",
25508
+ "resolved": "https://registry.npmjs.org/@financial-times/o-errors/-/o-errors-5.2.2.tgz",
25509
+ "integrity": "sha512-27GaGSp6Wb3O66n1zPj4wIL1p8akutIMPttkZ2cq0K0SZcQ2rgb7MtfQ/E6YvMDCUapcCeAwAZ+HMkHEYef4+A==",
25506
25510
  "peer": true,
25507
25511
  "requires": {
25508
- "raven-js": "^3.14.0"
25512
+ "raven-js": "^3.27.2"
25509
25513
  }
25510
25514
  },
25511
25515
  "@financial-times/o-fonts": {
@@ -25568,9 +25572,9 @@
25568
25572
  "requires": {}
25569
25573
  },
25570
25574
  "@financial-times/o-tooltip": {
25571
- "version": "5.2.2",
25572
- "resolved": "https://registry.npmjs.org/@financial-times/o-tooltip/-/o-tooltip-5.2.2.tgz",
25573
- "integrity": "sha512-JUklwHvNmEFXfqjc6Ft7jV5Rc3cTfqBbcnexMCOvWTr8BE3Xidbg6/VumLKhmS+MTmG4NFl5EgP4Kt2hLrAa1Q==",
25575
+ "version": "5.2.4",
25576
+ "resolved": "https://registry.npmjs.org/@financial-times/o-tooltip/-/o-tooltip-5.2.4.tgz",
25577
+ "integrity": "sha512-GXC320/zwTNvacG4PCHSwGBPb+3eWMw7pePUAw41iJ70Wjwy+H9aGbbQikWOiBCiSb6BohwImWOJ6RR0g1dReg==",
25574
25578
  "peer": true,
25575
25579
  "requires": {
25576
25580
  "ftdomdelegate": "^4.0.6"
@@ -27304,7 +27308,7 @@
27304
27308
  "babel-plugin-transform-runtime": {
27305
27309
  "version": "6.23.0",
27306
27310
  "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz",
27307
- "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=",
27311
+ "integrity": "sha512-cpGMVC1vt/772y3jx1gwSaTitQVZuFDlllgreMsZ+rTYC6jlYXRyf5FQOgSnckOiA5QmzbXTyBY2A5AmZXF1fA==",
27308
27312
  "dev": true,
27309
27313
  "requires": {
27310
27314
  "babel-runtime": "^6.22.0"
@@ -34766,12 +34770,12 @@
34766
34770
  }
34767
34771
  },
34768
34772
  "next-myft-client": {
34769
- "version": "9.0.0",
34770
- "resolved": "https://registry.npmjs.org/next-myft-client/-/next-myft-client-9.0.0.tgz",
34771
- "integrity": "sha512-TxLrNdPY0q60S5P4pGrqqQvG8gukr7QNAMaDUg7mraGY39GeHyyoHl4WW+hdOJf4N2rVY4ydqCRs6SEbf36tQg==",
34773
+ "version": "10.1.0",
34774
+ "resolved": "https://registry.npmjs.org/next-myft-client/-/next-myft-client-10.1.0.tgz",
34775
+ "integrity": "sha512-PqnNE1gxV00yVv6pA+1jWaySJkonQBUx2uWchPNGNcB20SzVmYleSWLeD3bdxdNOD5Tpy8DDl58CEQrKja7bqA==",
34772
34776
  "requires": {
34773
34777
  "black-hole-stream": "0.0.1",
34774
- "fetchres": "1.7.2",
34778
+ "fetchres": "^1.7.2",
34775
34779
  "next-session-client": "^4.0.0"
34776
34780
  }
34777
34781
  },
@@ -4,7 +4,7 @@
4
4
  data-myft-ui="saved"
5
5
  action="/myft/save/{{contentId}}"
6
6
  data-js-action="/__myft/api/core/saved/content/{{contentId}}?method=put"
7
- {{#ifEquals @root.flags.professorLists 'variant'}}data-myft-ui-variant="createListAndSaveArticleVariant"{{/ifEquals}}>
7
+ {{#if @root.flags.manageArticleLists}}data-myft-ui-save-new="manageArticleLists"{{/if}}>
8
8
  {{> n-myft-ui/components/csrf-token/input}}
9
9
  <div
10
10
  class="n-myft-ui__announcement o-normalise-visually-hidden"
package/myft/ui/lists.js CHANGED
@@ -179,8 +179,8 @@ function handleArticleSaved (contentId) {
179
179
  function openCreateListAndAddArticleOverlay (contentId) {
180
180
  return myFtClient.getAll('created', 'list')
181
181
  .then(createdLists => createdLists.filter(list => !list.isRedirect))
182
- .then(createdLists => {
183
- return !createdLists.length ? showCreateListAndAddArticleOverlay(contentId) : showArticleSavedOverlay(contentId);
182
+ .then(() => {
183
+ return showCreateListAndAddArticleOverlay(contentId);
184
184
  });
185
185
  }
186
186
 
@@ -192,8 +192,8 @@ function initialEventListeners () {
192
192
  // Checks if the createListAndSaveArticle variant is active
193
193
  // and will show the variant overlay if the user has no lists,
194
194
  // otherwise it will show the classic overlay
195
- const createListVariant = event.currentTarget.querySelector('[data-myft-ui-variant="createListAndSaveArticleVariant"]');
196
- if (createListVariant) {
195
+ const createNewListDesign = event.currentTarget.querySelector('[data-myft-ui-save-new="manageArticleLists"]');
196
+ if (createNewListDesign) {
197
197
  return openCreateListAndAddArticleOverlay(contentId);
198
198
  }
199
199
 
@@ -5,20 +5,14 @@ import getToken from './lib/get-csrf-token';
5
5
 
6
6
  const csrfToken = getToken();
7
7
 
8
- let lists;
8
+ let lists = [];
9
+ let haveLoadedLists = false;
9
10
 
10
- export default async function showSaveArticleToListVariant (name, contentId) {
11
- try {
12
- await openSaveArticleToListVariant (name, contentId);
13
- } catch(error) {
14
- handleError(error);
15
- }
16
- }
17
-
18
- async function openSaveArticleToListVariant (name, contentId) {
11
+ export default async function openSaveArticleToListVariant (name, contentId) {
19
12
  function createList (list) {
20
13
  if(!list) {
21
- return;
14
+ if (!lists.length) attachDescription();
15
+ return contentElement.addEventListener('click', openFormHandler, { once: true });
22
16
  }
23
17
 
24
18
  myFtClient.add('user', null, 'created', 'list', uuid(), { name: list, token: csrfToken })
@@ -33,6 +27,10 @@ async function openSaveArticleToListVariant (name, contentId) {
33
27
  triggerCreateListEvent(contentId);
34
28
  contentElement.addEventListener('click', openFormHandler, { once: true });
35
29
  });
30
+ })
31
+ .catch(() => {
32
+ if (!lists.length) attachDescription();
33
+ return contentElement.addEventListener('click', openFormHandler, { once: true });
36
34
  });
37
35
  }
38
36
 
@@ -66,8 +64,9 @@ async function openSaveArticleToListVariant (name, contentId) {
66
64
  });
67
65
  }
68
66
 
69
- if (!lists) {
67
+ if (!haveLoadedLists) {
70
68
  lists = await getLists(contentId);
69
+ haveLoadedLists = true;
71
70
  }
72
71
 
73
72
  const overlays = Overlay.getOverlays();
@@ -77,7 +76,7 @@ async function openSaveArticleToListVariant (name, contentId) {
77
76
  }
78
77
 
79
78
  const headingElement = HeadingElement();
80
- let [contentElement, removeDescription] = ContentElement(!lists.length);
79
+ let [contentElement, removeDescription, attachDescription] = ContentElement(!lists.length);
81
80
 
82
81
  const createListOverlay = new Overlay(name, {
83
82
  html: contentElement,
@@ -87,36 +86,37 @@ async function openSaveArticleToListVariant (name, contentId) {
87
86
  class: 'myft-ui-create-list-variant',
88
87
  });
89
88
 
90
- const realignListener = realignOverlay(window.scrollY);
91
-
92
89
  function outsideClickHandler (e) {
93
- try {
94
- const overlayContent = document.querySelector('.o-overlay__content');
95
- if(!overlayContent || !overlayContent.contains(e.target)) {
96
- createListOverlay.close();
97
- }
98
- } catch(error) {
99
- handleError(error);
90
+ const overlayContent = document.querySelector('.o-overlay__content');
91
+ if(createListOverlay.visible && (!overlayContent || !overlayContent.contains(e.target))) {
92
+ createListOverlay.close();
100
93
  }
101
94
  }
102
95
 
103
96
  function openFormHandler () {
104
- try {
105
- const formElement = FormElement(createList);
106
- const overlayContent = document.querySelector('.o-overlay__content');
107
- removeDescription();
108
- overlayContent.insertAdjacentElement('beforeend', formElement);
109
- formElement.elements[0].focus();
110
- } catch(error) {
111
- handleError(error);
112
- }
97
+ const formElement = FormElement(createList);
98
+ const overlayContent = document.querySelector('.o-overlay__content');
99
+ removeDescription();
100
+ overlayContent.insertAdjacentElement('beforeend', formElement);
101
+ formElement.elements[0].focus();
102
+ }
103
+
104
+ function getScrollHandler (target) {
105
+ return realignOverlay(window.scrollY, target);
106
+ }
107
+
108
+ function resizeHandler () {
109
+ positionOverlay(createListOverlay.wrapper);
113
110
  }
114
111
 
115
112
  createListOverlay.open();
113
+
114
+ const scrollHandler = getScrollHandler(createListOverlay.wrapper);
115
+
116
116
  createListOverlay.wrapper.addEventListener('oOverlay.ready', (data) => {
117
- realignListener(data.currentTarget);
117
+ positionOverlay(data.currentTarget);
118
118
 
119
- if (lists && lists.length) {
119
+ if (lists.length) {
120
120
  const listElement = ListsElement(lists, addToList, removeFromList);
121
121
  const overlayContent = document.querySelector('.o-overlay__content');
122
122
  overlayContent.insertAdjacentElement('afterbegin', listElement);
@@ -125,12 +125,16 @@ async function openSaveArticleToListVariant (name, contentId) {
125
125
  contentElement.addEventListener('click', openFormHandler, { once: true });
126
126
 
127
127
  document.querySelector('.article-content').addEventListener('click', outsideClickHandler, { once: true });
128
+
129
+ window.addEventListener('scroll', scrollHandler);
130
+
131
+ window.addEventListener('oViewport.resize', resizeHandler);
128
132
  });
129
133
 
130
- window.addEventListener('scroll', realignListener(createListOverlay.wrapper, window.scrollY));
134
+ createListOverlay.wrapper.addEventListener('oOverlay.destroy', () => {
135
+ window.removeEventListener('scroll', scrollHandler);
131
136
 
132
- window.addEventListener('oViewport.resize', () => {
133
- realignListener(createListOverlay.wrapper);
137
+ window.removeEventListener('oViewport.resize', resizeHandler);
134
138
  });
135
139
  }
136
140
 
@@ -157,16 +161,12 @@ function FormElement (createList) {
157
161
  const formElement = stringToHTMLElement(formString);
158
162
 
159
163
  function handleSubmit (event) {
160
- try {
161
- event.preventDefault();
162
- event.stopPropagation();
163
- const inputListName = formElement.querySelector('input[name="list-name"]');
164
- createList(inputListName.value);
165
- inputListName.value = '';
166
- formElement.remove();
167
- } catch(error) {
168
- handleError(error);
169
- }
164
+ event.preventDefault();
165
+ event.stopPropagation();
166
+ const inputListName = formElement.querySelector('input[name="list-name"]');
167
+ createList(inputListName.value);
168
+ inputListName.value = '';
169
+ formElement.remove();
170
170
  }
171
171
 
172
172
  formElement.querySelector('button[type="submit"]').addEventListener('click', handleSubmit);
@@ -174,12 +174,14 @@ function FormElement (createList) {
174
174
  return formElement;
175
175
  }
176
176
 
177
- function ContentElement (description) {
177
+ function ContentElement (hasDescription) {
178
+ const description = '<p class="myft-ui-create-list-variant-add-description">Lists are a simple way to curate your content</p>';
179
+
178
180
  const content = `
179
181
  <div class="myft-ui-create-list-variant-footer">
180
182
  <button class="myft-ui-create-list-variant-add">Add to a new list</button>
181
- ${description ? `
182
- <p class="myft-ui-create-list-variant-add-description">Lists are a simple way to curate your content</p>
183
+ ${hasDescription ? `
184
+ ${description}
183
185
  ` : ''}
184
186
  </div>
185
187
  `;
@@ -193,7 +195,12 @@ function ContentElement (description) {
193
195
  }
194
196
  }
195
197
 
196
- return [contentElement, removeDescription];
198
+ function attachDescription () {
199
+ const descriptionElement = stringToHTMLElement(description);
200
+ contentElement.insertAdjacentElement('beforeend', descriptionElement);
201
+ }
202
+
203
+ return [contentElement, removeDescription, attachDescription];
197
204
  }
198
205
 
199
206
  function HeadingElement () {
@@ -256,36 +263,41 @@ function ListCheckboxElement (addToList, removeFromList) {
256
263
  };
257
264
  }
258
265
 
259
- function realignOverlay (originalScrollPosition) {
260
- return function (target, currentScrollPosition) {
261
- try {
262
- if(currentScrollPosition && Math.abs(currentScrollPosition - originalScrollPosition) < 120) {
263
- return;
264
- }
265
-
266
- originalScrollPosition = currentScrollPosition;
267
-
268
- target.style['min-width'] = '340px';
269
- target.style['width'] = '100%';
270
- target.style['margin-top'] = '-50px';
271
- target.style['left'] = 0;
272
-
273
- if (isMobile()) {
274
- target.style['position'] = 'absolute';
275
- target.style['margin-left'] = 0;
276
- target.style['margin-top'] = 0;
277
- target.style['top'] = calculateLargerScreenHalf(target) === 'ABOVE' ? '-120px' : '50px';
278
- } else {
279
- target.style['position'] = 'absolute';
280
- target.style['margin-left'] = '45px';
281
- target.style['top'] = '220px';
282
- }
283
- } catch (error) {
284
- handleError(error);
266
+ function realignOverlay (originalScrollPosition, target) {
267
+ return function () {
268
+ const currentScrollPosition = window.scrollY;
269
+
270
+ if(Math.abs(currentScrollPosition - originalScrollPosition) < 120) {
271
+ return;
285
272
  }
273
+
274
+ if (currentScrollPosition) {
275
+ originalScrollPosition = currentScrollPosition;;
276
+ }
277
+
278
+ positionOverlay(target);
286
279
  };
287
280
  }
288
281
 
282
+ function positionOverlay (target) {
283
+ target.style['min-width'] = '340px';
284
+ target.style['width'] = '100%';
285
+ target.style['margin-top'] = '-50px';
286
+ target.style['left'] = 0;
287
+
288
+ if (isMobile()) {
289
+ const shareNavComponent = document.querySelector('.share-nav__horizontal');
290
+ target.style['position'] = 'absolute';
291
+ target.style['margin-left'] = 0;
292
+ target.style['margin-top'] = 0;
293
+ target.style['top'] = calculateLargerScreenHalf(shareNavComponent) === 'ABOVE' ? '-120px' : '50px';
294
+ } else {
295
+ target.style['position'] = 'absolute';
296
+ target.style['margin-left'] = '45px';
297
+ target.style['top'] = '220px';
298
+ }
299
+ }
300
+
289
301
  function isMobile () {
290
302
  const vw = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);
291
303
 
@@ -293,6 +305,10 @@ function isMobile () {
293
305
  }
294
306
 
295
307
  function calculateLargerScreenHalf (target) {
308
+ if (!target) {
309
+ return 'BELOW';
310
+ }
311
+
296
312
  const vh = Math.min(document.documentElement.clientHeight || 0, window.innerHeight || 0);
297
313
 
298
314
  const targetBox = target.getBoundingClientRect();
@@ -357,13 +373,3 @@ function triggerCreateListEvent (contentId) {
357
373
  bubbles: true
358
374
  }));
359
375
  }
360
-
361
- function handleError (error) {
362
- document.body.dispatchEvent(new CustomEvent('oErrors.log', {
363
- bubbles: true,
364
- detail: {
365
- error,
366
- info: { component: 'professorLists' },
367
- }
368
- }));
369
- }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@financial-times/n-myft-ui",
3
- "version": "28.0.2",
3
+ "version": "28.1.0",
4
4
  "description": "Client side component for interaction with myft",
5
5
  "main": "server.js",
6
6
  "scripts": {
@@ -36,7 +36,7 @@
36
36
  "babel-plugin-transform-async-to-generator": "^6.24.1",
37
37
  "babel-plugin-transform-es2015-classes": "^6.8.0",
38
38
  "babel-plugin-transform-es2015-modules-commonjs": "^6.5.2",
39
- "babel-plugin-transform-runtime": "^6.9.0",
39
+ "babel-plugin-transform-runtime": "^6.23.0",
40
40
  "babel-preset-env": "^1.7.0",
41
41
  "babel-preset-es2015": "^6.6.0",
42
42
  "babel-runtime": "^6.9.2",
@@ -87,13 +87,13 @@
87
87
  "peerDependencies": {
88
88
  "@financial-times/n-notification": "^8.2.2",
89
89
  "@financial-times/o-editorial-typography": "^2.3.2",
90
- "@financial-times/o-errors": "^4.0.2",
90
+ "@financial-times/o-errors": "^5.0.0",
91
91
  "@financial-times/o-forms": "^9.4.0",
92
92
  "@financial-times/o-grid": "^6.1.1",
93
93
  "@financial-times/o-normalise": "^3.0.0",
94
94
  "@financial-times/o-overlay": "^4.0.0",
95
95
  "@financial-times/o-spacing": "^3.0.0",
96
- "@financial-times/o-tooltip": "^5.0.0",
96
+ "@financial-times/o-tooltip": "^5.2.4",
97
97
  "@financial-times/o-topper": "^5.2.3",
98
98
  "n-ui-foundations": "^9.0.0"
99
99
  },
@@ -103,7 +103,7 @@
103
103
  "form-serialize": "^0.7.2",
104
104
  "ftdomdelegate": "^4.0.6",
105
105
  "js-cookie": "^2.2.1",
106
- "next-myft-client": "^9.0.0",
106
+ "next-myft-client": "^10.1.0",
107
107
  "next-session-client": "^4.0.0",
108
108
  "superstore-sync": "^2.1.1"
109
109
  },
package/webpack.config.js CHANGED
@@ -5,9 +5,7 @@ const { PageKitSassPlugin } = require('@financial-times/dotcom-build-sass');
5
5
  module.exports = {
6
6
  plugins: [
7
7
  new PageKitJsPlugin(),
8
- new PageKitSassPlugin({
9
- includePaths: [path.resolve('./node_modules/@financial-times')],
10
- }),
8
+ new PageKitSassPlugin()
11
9
  ],
12
10
  entry: {
13
11
  scripts: ['./myft/index.js', './myft-common/index.js'],