diff --git a/packages/components/psammead-media-indicator/CHANGELOG.md b/packages/components/psammead-media-indicator/CHANGELOG.md
index 2644bcd75c..8cb8afa67b 100644
--- a/packages/components/psammead-media-indicator/CHANGELOG.md
+++ b/packages/components/psammead-media-indicator/CHANGELOG.md
@@ -3,6 +3,7 @@
| Version | Description |
| ------- | ----------- |
+| 2.6.0 | [PR#2199](https://github.com/bbc/psammead/pull/2199) Pull in media icons from @bbc/psammead-assets |
| 2.5.9 | [PR#2191](https://github.com/bbc/psammead/pull/2191) Talos - Bump Dependencies - @bbc/gel-foundations |
| 2.5.8 | [PR#2145](https://github.com/bbc/psammead/pull/2145) Talos - Bump Dependencies - @bbc/psammead-styles |
| 2.5.7 | [PR#2081](https://github.com/bbc/psammead/pull/2081) Talos - Bump Dependencies - @bbc/psammead-styles |
diff --git a/packages/components/psammead-media-indicator/package-lock.json b/packages/components/psammead-media-indicator/package-lock.json
index 3478f22c92..0aff95c524 100644
--- a/packages/components/psammead-media-indicator/package-lock.json
+++ b/packages/components/psammead-media-indicator/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@bbc/psammead-media-indicator",
- "version": "2.5.9",
+ "version": "2.6.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -9,6 +9,11 @@
"resolved": "https://registry.npmjs.org/@bbc/gel-foundations/-/gel-foundations-3.4.0.tgz",
"integrity": "sha512-WuewciWzvSb/WKhUGSvIoighqCdXGN2PsVQbZbUo5/eWi5+o3O8uoojUpeQeRZMYWLsLVELPHr6qJDuqKghXKA=="
},
+ "@bbc/psammead-assets": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@bbc/psammead-assets/-/psammead-assets-2.3.0.tgz",
+ "integrity": "sha512-pejORKWrs9O4AqxWteAnS8N6KlEaayG3W6NGF7JZDiNgs6xYgzQ1Aj1CQva9FKVirdlqNYln9TxFTSSNIiyr4A=="
+ },
"@bbc/psammead-styles": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/@bbc/psammead-styles/-/psammead-styles-2.3.0.tgz",
diff --git a/packages/components/psammead-media-indicator/package.json b/packages/components/psammead-media-indicator/package.json
index bc83120923..567ea71a02 100644
--- a/packages/components/psammead-media-indicator/package.json
+++ b/packages/components/psammead-media-indicator/package.json
@@ -1,6 +1,6 @@
{
"name": "@bbc/psammead-media-indicator",
- "version": "2.5.9",
+ "version": "2.6.0",
"main": "dist/index.js",
"module": "esm/index.js",
"sideEffects": false,
@@ -20,7 +20,8 @@
"homepage": "https://github.com/bbc/psammead/blob/latest/packages/components/psammead-media-indicator/README.md",
"dependencies": {
"@bbc/gel-foundations": "^3.4.0",
- "@bbc/psammead-styles": "^2.3.0"
+ "@bbc/psammead-styles": "^2.3.0",
+ "@bbc/psammead-assets": "^2.3.0"
},
"peerDependencies": {
"react": "^16.9.0",
diff --git a/packages/components/psammead-media-indicator/src/index.jsx b/packages/components/psammead-media-indicator/src/index.jsx
index 484d65cb2e..9972f63396 100644
--- a/packages/components/psammead-media-indicator/src/index.jsx
+++ b/packages/components/psammead-media-indicator/src/index.jsx
@@ -6,7 +6,7 @@ import { GEL_SPACING, GEL_SPACING_HLF } from '@bbc/gel-foundations/spacings';
import { GEL_GROUP_1_SCREEN_WIDTH_MAX } from '@bbc/gel-foundations/breakpoints';
import { GEL_MINION } from '@bbc/gel-foundations/typography';
import { getSansRegular } from '@bbc/psammead-styles/font-styles';
-import mediaIcons from './mediaIcons';
+import { mediaIcons } from '@bbc/psammead-assets/svgs';
const MediaIndicatorWrapper = styled.div`
padding: ${GEL_SPACING} ${GEL_SPACING_HLF};
diff --git a/packages/components/psammead-media-indicator/src/mediaIcons.jsx b/packages/components/psammead-media-indicator/src/mediaIcons.jsx
deleted file mode 100644
index 1fb8c02333..0000000000
--- a/packages/components/psammead-media-indicator/src/mediaIcons.jsx
+++ /dev/null
@@ -1,64 +0,0 @@
-import React from 'react';
-import styled from 'styled-components';
-import { C_EBON } from '@bbc/psammead-styles/colours';
-import { GEL_SPACING_HLF } from '@bbc/gel-foundations/spacings';
-
-// `currentColor` has been used to better reflect user colour choices in Firefox.
-const MediaIcon = styled.svg`
- vertical-align: middle;
- margin: 0 ${GEL_SPACING_HLF};
- color: ${C_EBON};
- fill: currentColor;
-`;
-
-const VideoMediaIcon = styled(MediaIcon)`
- width: 0.75rem;
- height: 0.75rem;
-`;
-
-const AudioMediaIcon = styled(MediaIcon)`
- width: 0.8125rem;
- height: 0.75rem;
-`;
-
-const PhotoMediaIcon = styled(MediaIcon)`
- width: 1rem;
- height: 0.8125rem;
-`;
-
-const icons = {
- video: (
-
-
-
- ),
- audio: (
-
-
-
-
- ),
- photogallery: (
-
-
-
-
- ),
-};
-
-export default icons;
diff --git a/packages/utilities/psammead-locales/CHANGELOG.md b/packages/utilities/psammead-locales/CHANGELOG.md
index 03211c3f5e..7f8940ae37 100644
--- a/packages/utilities/psammead-locales/CHANGELOG.md
+++ b/packages/utilities/psammead-locales/CHANGELOG.md
@@ -3,6 +3,7 @@
| Version | Description |
| ------- | ----------- |
+| 2.15.0 | [PR#2184](https://github.com/bbc/psammead/pull/2184) Add `uz` (Uzbek) locale |
| 2.14.0 | [PR#2178](https://github.com/bbc/psammead/pull/2178) Update `ps` (Pashto) locale to add relative time support |
| 2.13.0 | [PR#2193](https://github.com/bbc/psammead/pull/2193) Create `rw` (Gahuza) and `ti` (Tigrinya) locales |
| 2.12.0 | [PR#2179](https://github.com/bbc/psammead/pull/2179) Create `om` (Afaan Oromoo) and `am` (Amharic) locales |
diff --git a/packages/utilities/psammead-locales/README.md b/packages/utilities/psammead-locales/README.md
index fdfe2d7d8c..77ef4a0752 100644
--- a/packages/utilities/psammead-locales/README.md
+++ b/packages/utilities/psammead-locales/README.md
@@ -34,6 +34,7 @@ The following locales have overrides to meet BBC World Service requirements wher
- `/moment/sr-cyrl` - locale override for Serbian Cyrillic
- `/moment/ta` - locale override for Tamil
- `/moment/uk` - locale override for Ukrainian
+- `/moment/uz` - locale override for Uzbek
- `/moment/yo` - locale override for Yoruba
### Numerals
diff --git a/packages/utilities/psammead-locales/moment/index.stories.jsx b/packages/utilities/psammead-locales/moment/index.stories.jsx
index 1eba0a2e78..872a671d78 100644
--- a/packages/utilities/psammead-locales/moment/index.stories.jsx
+++ b/packages/utilities/psammead-locales/moment/index.stories.jsx
@@ -33,6 +33,7 @@ import './sr';
import './ta';
import './ti';
import './uk';
+import './uz';
import './yo';
const stories = storiesOf('Utilities|Psammead Locales', module);
@@ -61,6 +62,7 @@ const locales = [
{ name: 'Tamil', locale: 'ta' },
{ name: 'Ukrainian', locale: 'uk' },
{ name: 'Tigrinya', locale: 'ti' },
+ { name: 'Uzbek', locale: 'uz' },
{ name: 'Yoruba', locale: 'yo' },
];
diff --git a/packages/utilities/psammead-locales/moment/uz.js b/packages/utilities/psammead-locales/moment/uz.js
new file mode 100644
index 0000000000..77184cc857
--- /dev/null
+++ b/packages/utilities/psammead-locales/moment/uz.js
@@ -0,0 +1,15 @@
+var moment = require('moment');
+require('moment/locale/uz');
+
+moment.updateLocale('uz', {
+ relativeTime: {
+ // these keys have been overridden with our translations
+ // some other keys have been left as set upstream
+ // see https://github.com/moment/moment/blob/develop/src/locale/yo.js
+ past: '%s аввал',
+ m: '1 дақиқа',
+ mm: '%d дақиқалар',
+ h: '1 cоат',
+ hh: '%d соатлар',
+ },
+});
diff --git a/packages/utilities/psammead-locales/moment/uz.test.js b/packages/utilities/psammead-locales/moment/uz.test.js
new file mode 100644
index 0000000000..1d2f204eaf
--- /dev/null
+++ b/packages/utilities/psammead-locales/moment/uz.test.js
@@ -0,0 +1,220 @@
+import moment from 'moment';
+import './uz';
+
+moment.locale('uz');
+
+// This asset overrides the gunit assertion done in the moment codebase.
+// Format and styling of this file has been keep consistent with the official moment tests.
+// An example of these tests can be seen at https://github.com/moment/moment/blob/develop/src/test/locale/en-gb.js
+const assert = { equal: (val1, val2) => expect(val1).toEqual(val2) };
+
+// These tests are taken (almost) verbatim from the official moment tests. This has been done in an attempt to ensure
+// parity across the two configurations as far as possible.
+// See https://github.com/moment/moment/blob/develop/src/test/locale/uz.js
+
+test('parse', function () {
+ var tests = 'январ янв_феврал фев_март мар_апрел апр_май май_июн июн_июл июл_август авг_сентябр сен_октябр окт_ноябр ноя_декабр дек'.split('_'), i;
+ function equalTest(input, mmm, i) {
+ assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1));
+ }
+ for (i = 0; i < 12; i++) {
+ tests[i] = tests[i].split(' ');
+ equalTest(tests[i][0], 'MMM', i);
+ equalTest(tests[i][1], 'MMM', i);
+ equalTest(tests[i][0], 'MMMM', i);
+ equalTest(tests[i][1], 'MMMM', i);
+ equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
+ equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i);
+ equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
+ equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i);
+ }
+});
+
+test('format', function () {
+ var a = [
+ ['dddd, Do-MMMM YYYY, h:mm:ss', 'Якшанба, 14-феврал 2010, 3:25:50'],
+ ['ddd, h:mm', 'Якш, 3:25'],
+ ['M Mo MM MMMM MMM', '2 2 02 феврал фев'],
+ ['YYYY YY', '2010 10'],
+ ['D Do DD', '14 14 14'],
+ ['d do dddd ddd dd', '0 0 Якшанба Якш Як'],
+ ['DDD DDDo DDDD', '45 45 045'],
+ ['w wo ww', '7 7 07'],
+ ['h hh', '3 03'],
+ ['H HH', '15 15'],
+ ['m mm', '25 25'],
+ ['s ss', '50 50'],
+ ['a A', 'pm PM'],
+ ['[йилнинг] DDDo-[куни]', 'йилнинг 45-куни'],
+ ['LTS', '15:25:50'],
+ ['L', '14/02/2010'],
+ ['LL', '14 феврал 2010'],
+ ['LLL', '14 феврал 2010 15:25'],
+ ['LLLL', '14 феврал 2010, Якшанба 15:25'],
+ ['l', '14/2/2010'],
+ ['ll', '14 фев 2010'],
+ ['lll', '14 фев 2010 15:25'],
+ ['llll', '14 фев 2010, Якш 15:25']
+ ],
+ b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
+ i;
+ for (i = 0; i < a.length; i++) {
+ assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]);
+ }
+});
+
+test('format ordinal', function () {
+ assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1');
+ assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2');
+ assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3');
+ assert.equal(moment([2011, 0, 4]).format('DDDo'), '4', '4');
+ assert.equal(moment([2011, 0, 5]).format('DDDo'), '5', '5');
+ assert.equal(moment([2011, 0, 6]).format('DDDo'), '6', '6');
+ assert.equal(moment([2011, 0, 7]).format('DDDo'), '7', '7');
+ assert.equal(moment([2011, 0, 8]).format('DDDo'), '8', '8');
+ assert.equal(moment([2011, 0, 9]).format('DDDo'), '9', '9');
+ assert.equal(moment([2011, 0, 10]).format('DDDo'), '10', '10');
+
+ assert.equal(moment([2011, 0, 11]).format('DDDo'), '11', '11');
+ assert.equal(moment([2011, 0, 12]).format('DDDo'), '12', '12');
+ assert.equal(moment([2011, 0, 13]).format('DDDo'), '13', '13');
+ assert.equal(moment([2011, 0, 14]).format('DDDo'), '14', '14');
+ assert.equal(moment([2011, 0, 15]).format('DDDo'), '15', '15');
+ assert.equal(moment([2011, 0, 16]).format('DDDo'), '16', '16');
+ assert.equal(moment([2011, 0, 17]).format('DDDo'), '17', '17');
+ assert.equal(moment([2011, 0, 18]).format('DDDo'), '18', '18');
+ assert.equal(moment([2011, 0, 19]).format('DDDo'), '19', '19');
+ assert.equal(moment([2011, 0, 20]).format('DDDo'), '20', '20');
+
+ assert.equal(moment([2011, 0, 21]).format('DDDo'), '21', '21');
+ assert.equal(moment([2011, 0, 22]).format('DDDo'), '22', '22');
+ assert.equal(moment([2011, 0, 23]).format('DDDo'), '23', '23');
+ assert.equal(moment([2011, 0, 24]).format('DDDo'), '24', '24');
+ assert.equal(moment([2011, 0, 25]).format('DDDo'), '25', '25');
+ assert.equal(moment([2011, 0, 26]).format('DDDo'), '26', '26');
+ assert.equal(moment([2011, 0, 27]).format('DDDo'), '27', '27');
+ assert.equal(moment([2011, 0, 28]).format('DDDo'), '28', '28');
+ assert.equal(moment([2011, 0, 29]).format('DDDo'), '29', '29');
+ assert.equal(moment([2011, 0, 30]).format('DDDo'), '30', '30');
+
+ assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31');
+});
+
+test('format month', function () {
+ var expected = 'январ янв_феврал фев_март мар_апрел апр_май май_июн июн_июл июл_август авг_сентябр сен_октябр окт_ноябр ноя_декабр дек'.split('_'), i;
+ for (i = 0; i < expected.length; i++) {
+ assert.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]);
+ }
+});
+
+test('format week', function () {
+ var expected = 'Якшанба Якш Як_Душанба Душ Ду_Сешанба Сеш Се_Чоршанба Чор Чо_Пайшанба Пай Па_Жума Жум Жу_Шанба Шан Ша'.split('_'), i;
+ for (i = 0; i < expected.length; i++) {
+ assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]);
+ }
+});
+
+test('from', function () {
+ var start = moment([2007, 1, 28]);
+ assert.equal(start.from(moment([2007, 1, 28]).add({s: 44}), true), 'фурсат', '44 секунд = фурсат');
+ assert.equal(start.from(moment([2007, 1, 28]).add({s: 45}), true), '1 дақиқа', '45 секунд = бир дакика');
+ assert.equal(start.from(moment([2007, 1, 28]).add({s: 89}), true), '1 дақиқа', '89 секунд = бир дакика');
+ assert.equal(start.from(moment([2007, 1, 28]).add({s: 90}), true), '2 дақиқалар', '90 секунд = 2 дакика');
+ assert.equal(start.from(moment([2007, 1, 28]).add({m: 44}), true), '44 дақиқалар', '44 дакика = 44 дакика');
+ assert.equal(start.from(moment([2007, 1, 28]).add({m: 45}), true), '1 cоат', '45 минут = бир соат');
+ assert.equal(start.from(moment([2007, 1, 28]).add({m: 89}), true), '1 cоат', '89 minutes = an hour');
+ assert.equal(start.from(moment([2007, 1, 28]).add({m: 90}), true), '2 соатлар', '90 минут = 2 соат');
+ assert.equal(start.from(moment([2007, 1, 28]).add({h: 5}), true), '5 соатлар', '5 соат = 5 соат');
+ assert.equal(start.from(moment([2007, 1, 28]).add({h: 21}), true), '21 соатлар', '21 соат = 21 соат');
+ assert.equal(start.from(moment([2007, 1, 28]).add({h: 22}), true), 'бир кун', '22 соат = бир кун');
+ assert.equal(start.from(moment([2007, 1, 28]).add({h: 35}), true), 'бир кун', '35 соат = бир кун');
+ assert.equal(start.from(moment([2007, 1, 28]).add({h: 36}), true), '2 кун', '36 соат = 2 кун');
+ assert.equal(start.from(moment([2007, 1, 28]).add({d: 1}), true), 'бир кун', '1 кун = 1 кун');
+ assert.equal(start.from(moment([2007, 1, 28]).add({d: 5}), true), '5 кун', '5 кун = 5 кун');
+ assert.equal(start.from(moment([2007, 1, 28]).add({d: 25}), true), '25 кун', '25 кун = 25 кун');
+ assert.equal(start.from(moment([2007, 1, 28]).add({d: 26}), true), 'бир ой', '26 кун = бир ой');
+ assert.equal(start.from(moment([2007, 1, 28]).add({d: 30}), true), 'бир ой', '30 кун = бир ой');
+ assert.equal(start.from(moment([2007, 1, 28]).add({d: 43}), true), 'бир ой', '45 кун = бир ой');
+ assert.equal(start.from(moment([2007, 1, 28]).add({d: 46}), true), '2 ой', '46 кун = 2 ой');
+ assert.equal(start.from(moment([2007, 1, 28]).add({d: 74}), true), '2 ой', '75 кун = 2 ой');
+ assert.equal(start.from(moment([2007, 1, 28]).add({d: 76}), true), '3 ой', '76 кун = 3 ой');
+ assert.equal(start.from(moment([2007, 1, 28]).add({M: 1}), true), 'бир ой', 'бир ой = бир ой');
+ assert.equal(start.from(moment([2007, 1, 28]).add({M: 5}), true), '5 ой', '5 ой = 5 ой');
+ assert.equal(start.from(moment([2007, 1, 28]).add({d: 345}), true), 'бир йил', '345 кун = бир йил');
+ assert.equal(start.from(moment([2007, 1, 28]).add({d: 548}), true), '2 йил', '548 кун = 2 йил');
+ assert.equal(start.from(moment([2007, 1, 28]).add({y: 1}), true), 'бир йил', '1 йил = бир йил');
+ assert.equal(start.from(moment([2007, 1, 28]).add({y: 5}), true), '5 йил', '5 йил = 5 йил');
+});
+
+test('suffix', function () {
+ assert.equal(moment(30000).from(0), 'Якин фурсат ичида', 'prefix');
+ assert.equal(moment(0).from(30000), 'фурсат аввал', 'suffix');
+});
+
+test('now from now', function () {
+ assert.equal(moment().fromNow(), 'фурсат аввал', 'now from now should display as in the past');
+});
+
+test('fromNow', function () {
+ assert.equal(moment().add({s: 30}).fromNow(), 'Якин фурсат ичида', 'in a few seconds');
+ assert.equal(moment().add({d: 5}).fromNow(), 'Якин 5 кун ичида', 'in 5 days');
+});
+
+test('calendar day', function () {
+ var a = moment().hours(12).minutes(0).seconds(0);
+
+ assert.equal(moment(a).calendar(), 'Бугун соат 12:00 да', 'today at the same time');
+ assert.equal(moment(a).add({m: 25}).calendar(), 'Бугун соат 12:25 да', 'Now plus 25 min');
+ assert.equal(moment(a).add({h: 1}).calendar(), 'Бугун соат 13:00 да', 'Now plus 1 hour');
+ assert.equal(moment(a).add({d: 1}).calendar(), 'Эртага 12:00 да', 'tomorrow at the same time');
+ assert.equal(moment(a).subtract({h: 1}).calendar(), 'Бугун соат 11:00 да', 'Now minus 1 hour');
+ assert.equal(moment(a).subtract({d: 1}).calendar(), 'Кеча соат 12:00 да', 'yesterday at the same time');
+});
+
+test('calendar next week', function () {
+ var i, m;
+ for (i = 2; i < 7; i++) {
+ m = moment().add({d: i});
+ assert.equal(m.calendar(), m.format('dddd [куни соат] LT [да]'), 'Today + ' + i + ' days current time');
+ m.hours(0).minutes(0).seconds(0).milliseconds(0);
+ assert.equal(m.calendar(), m.format('dddd [куни соат] LT [да]'), 'Today + ' + i + ' days beginning of day');
+ m.hours(23).minutes(59).seconds(59).milliseconds(999);
+ assert.equal(m.calendar(), m.format('dddd [куни соат] LT [да]'), 'Today + ' + i + ' days end of day');
+ }
+});
+
+test('calendar last week', function () {
+ var i, m;
+
+ for (i = 2; i < 7; i++) {
+ m = moment().subtract({d: i});
+ assert.equal(m.calendar(), m.format('[Утган] dddd [куни соат] LT [да]'), 'Today - ' + i + ' days current time');
+ m.hours(0).minutes(0).seconds(0).milliseconds(0);
+ assert.equal(m.calendar(), m.format('[Утган] dddd [куни соат] LT [да]'), 'Today - ' + i + ' days beginning of day');
+ m.hours(23).minutes(59).seconds(59).milliseconds(999);
+ assert.equal(m.calendar(), m.format('[Утган] dddd [куни соат] LT [да]'), 'Today - ' + i + ' days end of day');
+ }
+});
+
+test('calendar all else', function () {
+ var weeksAgo = moment().subtract({w: 1}),
+ weeksFromNow = moment().add({w: 1});
+
+ assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago');
+ assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week');
+
+ weeksAgo = moment().subtract({w: 2});
+ weeksFromNow = moment().add({w: 2});
+
+ assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago');
+ assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks');
+});
+
+test('weeks year starting sunday formatted', function () {
+ assert.equal(moment([2012, 0, 1]).format('w ww wo'), '1 01 1', 'Jan 1 2012 should be week 52');
+ assert.equal(moment([2012, 0, 2]).format('w ww wo'), '2 02 2', 'Jan 2 2012 should be week 1');
+ assert.equal(moment([2012, 0, 8]).format('w ww wo'), '2 02 2', 'Jan 8 2012 should be week 1');
+ assert.equal(moment([2012, 0, 9]).format('w ww wo'), '3 03 3', 'Jan 9 2012 should be week 2');
+ assert.equal(moment([2012, 0, 15]).format('w ww wo'), '3 03 3', 'Jan 15 2012 should be week 2');
+});
+
diff --git a/packages/utilities/psammead-locales/package-lock.json b/packages/utilities/psammead-locales/package-lock.json
index b061dc914d..877ae861d8 100644
--- a/packages/utilities/psammead-locales/package-lock.json
+++ b/packages/utilities/psammead-locales/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@bbc/psammead-locales",
- "version": "2.14.0",
+ "version": "2.15.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
diff --git a/packages/utilities/psammead-locales/package.json b/packages/utilities/psammead-locales/package.json
index 5051e963af..23de859c30 100644
--- a/packages/utilities/psammead-locales/package.json
+++ b/packages/utilities/psammead-locales/package.json
@@ -1,6 +1,6 @@
{
"name": "@bbc/psammead-locales",
- "version": "2.14.0",
+ "version": "2.15.0",
"description": "A collection of locale configs, used in BBC World Service sites",
"repository": {
"type": "git",