@ndla/ui 42.0.3 → 42.0.5

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.
@@ -262,9 +262,11 @@ declare const messages: {
262
262
  contact: string;
263
263
  help: string;
264
264
  };
265
- programme: {
265
+ programmes: {
266
+ header: string;
267
+ description: string;
266
268
  grades: string;
267
- accordianHeader: string;
269
+ accordionHeader: string;
268
270
  };
269
271
  embed: {
270
272
  conceptListError: string;
@@ -1264,9 +1264,11 @@ var messages = _objectSpread(_objectSpread({
1264
1264
  contact: 'Contact',
1265
1265
  help: 'Help'
1266
1266
  },
1267
- programme: {
1267
+ programmes: {
1268
+ header: 'View our educational programmes',
1269
+ description: 'We strive to offer the best learning resources within traditional and new media.',
1268
1270
  grades: 'Grades',
1269
- accordianHeader: 'All educational programmes'
1271
+ accordionHeader: 'All educational programmes'
1270
1272
  },
1271
1273
  embed: {
1272
1274
  conceptListError: 'Failed to show concept list',
@@ -262,9 +262,11 @@ declare const messages: {
262
262
  contact: string;
263
263
  help: string;
264
264
  };
265
- programme: {
265
+ programmes: {
266
+ header: string;
267
+ description: string;
266
268
  grades: string;
267
- accordianHeader: string;
269
+ accordionHeader: string;
268
270
  };
269
271
  embed: {
270
272
  conceptListError: string;
@@ -1262,9 +1262,11 @@ var messages = _objectSpread(_objectSpread({
1262
1262
  contact: 'Kontakt',
1263
1263
  help: 'Hjelp'
1264
1264
  },
1265
- programme: {
1265
+ programmes: {
1266
+ header: 'Se våre utdanningsprogram',
1267
+ description: 'Vi ønsker å tilby de beste læringsressursene innen tradisjonelle og nye medier.',
1266
1268
  grades: 'Trinn',
1267
- accordianHeader: 'Alle utdanningsprogram'
1269
+ accordionHeader: 'Alle utdanningsprogram'
1268
1270
  },
1269
1271
  embed: {
1270
1272
  conceptListError: 'Klarte ikke å vise forklaringsliste',
@@ -262,9 +262,11 @@ declare const messages: {
262
262
  contact: string;
263
263
  help: string;
264
264
  };
265
- programme: {
265
+ programmes: {
266
+ header: string;
267
+ description: string;
266
268
  grades: string;
267
- accordianHeader: string;
269
+ accordionHeader: string;
268
270
  };
269
271
  embed: {
270
272
  conceptListError: string;
@@ -1262,9 +1262,11 @@ var messages = _objectSpread(_objectSpread({
1262
1262
  contact: 'Kontakt',
1263
1263
  help: 'Hjelp'
1264
1264
  },
1265
- programme: {
1265
+ programmes: {
1266
+ header: 'Se våre utdanningsprogram',
1267
+ description: 'Vi ønsker å tilby dei beste læringsressursane innan tradisjonelle og nye media.',
1266
1268
  grades: 'Trinn',
1267
- accordianHeader: 'Alle utdanningsprogram'
1269
+ accordionHeader: 'Alle utdanningsprogram'
1268
1270
  },
1269
1271
  embed: {
1270
1272
  conceptListError: 'Klarte ikkje å vise forklaringsliste',
@@ -262,9 +262,11 @@ declare const messages: {
262
262
  contact: string;
263
263
  help: string;
264
264
  };
265
- programme: {
265
+ programmes: {
266
+ header: string;
267
+ description: string;
266
268
  grades: string;
267
- accordianHeader: string;
269
+ accordionHeader: string;
268
270
  };
269
271
  embed: {
270
272
  conceptListError: string;
@@ -1262,9 +1262,11 @@ var messages = _objectSpread(_objectSpread({
1262
1262
  contact: 'Váldde oktavuođa',
1263
1263
  help: 'Veahket'
1264
1264
  },
1265
- programme: {
1265
+ programmes: {
1266
+ header: 'Se våre utdanningsprogram',
1267
+ description: 'Vi ønsker å tilby de beste læringsressursene innen tradisjonelle og nye medier.',
1266
1268
  grades: 'Ceahkki',
1267
- accordianHeader: 'Alle utdanningsprogram'
1269
+ accordionHeader: 'Alle utdanningsprogram'
1268
1270
  },
1269
1271
  embed: {
1270
1272
  conceptListError: 'Ii sáhttán čájehit čilgehuslisttu',
@@ -262,9 +262,11 @@ declare const messages: {
262
262
  contact: string;
263
263
  help: string;
264
264
  };
265
- programme: {
265
+ programmes: {
266
+ header: string;
267
+ description: string;
266
268
  grades: string;
267
- accordianHeader: string;
269
+ accordionHeader: string;
268
270
  };
269
271
  embed: {
270
272
  conceptListError: string;
@@ -1262,9 +1262,11 @@ var messages = _objectSpread(_objectSpread({
1262
1262
  contact: 'Kontakt',
1263
1263
  help: 'Hjelp'
1264
1264
  },
1265
- programme: {
1265
+ programmes: {
1266
+ header: 'Se våre utdanningsprogram',
1267
+ description: 'Vi ønsker å tilby de beste læringsressursene innen tradisjonelle og nye medier.',
1266
1268
  grades: 'Trinn',
1267
- accordianHeader: 'Alle utdanningsprogram'
1269
+ accordionHeader: 'Alle utdanningsprogram'
1268
1270
  },
1269
1271
  embed: {
1270
1272
  conceptListError: 'Klarte ikkje å vise forklaringsliste',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ndla/ui",
3
- "version": "42.0.3",
3
+ "version": "42.0.5",
4
4
  "description": "UI component library for NDLA.",
5
5
  "license": "GPL-3.0",
6
6
  "main": "lib/index.js",
@@ -83,5 +83,5 @@
83
83
  "publishConfig": {
84
84
  "access": "public"
85
85
  },
86
- "gitHead": "0ac4799295c3e85112df9074b5c6f5e23f0adc04"
86
+ "gitHead": "b355806f2071434f06fb2e0205dcdb4dccb4d7e4"
87
87
  }
@@ -41,51 +41,60 @@ const StyledOl = styled.ol`
41
41
  margin-bottom: ${spacing.nsmall} !important;
42
42
  }
43
43
  }
44
+ counter-reset: level1;
44
45
 
45
46
  &[data-type='letters'] {
46
- counter-reset: item 0;
47
47
  > li {
48
- counter-increment: item;
49
48
  &:before {
50
- position: absolute;
51
- transform: translateX(-100%);
52
- content: counter(item, upper-alpha) '.';
53
- padding-right: ${spacing.nsmall};
49
+ content: counter(level1, upper-alpha) '.';
54
50
  }
55
51
 
56
52
  > ol[data-type='letters'] {
57
53
  > li:before {
58
- content: counter(item, lower-alpha) '.';
54
+ content: counter(level1, lower-alpha) '.';
59
55
  }
60
56
  ol[data-type='letters'] {
61
57
  > li:before {
62
- content: counter(item, lower-roman) '.';
58
+ content: counter(level1, lower-roman) '.';
63
59
  }
64
60
  }
65
61
  }
66
62
  }
67
63
  }
68
64
 
69
- &:not([data-type='letters']) {
70
- counter-reset: item 0;
71
- > li {
72
- counter-increment: item;
73
- &:before {
74
- position: absolute;
75
- transform: translateX(-100%);
76
- content: counters(item, '.') '.';
77
- padding-right: ${spacing.nsmall};
78
- }
65
+ > li {
66
+ counter-increment: level1;
67
+ &:before {
68
+ position: absolute;
69
+ transform: translateX(-100%);
70
+ content: counter(level1, decimal) '.';
71
+ padding-right: ${spacing.nsmall};
72
+ }
79
73
 
80
- > ol:not([data-type='letters']) {
81
- > li {
82
- padding-left: ${spacing.nsmall};
83
- > ol:not([data-type='letters']) {
84
- > li {
85
- padding-left: ${spacing.medium};
86
- > ol:not([data-type='letters']) {
87
- > li {
88
- padding-left: ${spacing.large};
74
+ > ol:not([data-type='letters']) {
75
+ counter-reset: level2;
76
+ > li {
77
+ padding-left: ${spacing.nsmall};
78
+ counter-increment: level2;
79
+ &:before {
80
+ content: counter(level1, decimal) '.' counter(level2, decimal) '.';
81
+ }
82
+ > ol:not([data-type='letters']) {
83
+ counter-reset: level3;
84
+ > li {
85
+ padding-left: ${spacing.medium};
86
+ counter-increment: level3;
87
+ &:before {
88
+ content: counter(level1, decimal) '.' counter(level2, decimal) '.' counter(level3, decimal) '.';
89
+ }
90
+ > ol:not([data-type='letters']) {
91
+ counter-reset: level4;
92
+ > li {
93
+ padding-left: ${spacing.large};
94
+ counter-increment: level4;
95
+ &:before {
96
+ content: counter(level1, decimal) '.' counter(level2, decimal) '.' counter(level3, decimal) '.'
97
+ counter(level4, decimal) '.';
89
98
  }
90
99
  }
91
100
  }
@@ -24,7 +24,7 @@ const GradesMenu = styled.ul`
24
24
 
25
25
  export type GradesProps = {
26
26
  selectedGrade?: string;
27
- grades: {
27
+ grades?: {
28
28
  missingProgrammeSubjects?: boolean;
29
29
  name: string;
30
30
  categories?: {
@@ -45,14 +45,14 @@ const ProgrammeSubjects = ({ grades, onNavigate, selectedGrade = 'vg1' }: Props)
45
45
  const { t } = useTranslation();
46
46
 
47
47
  const grade = useMemo(
48
- () => grades.find((grade) => grade.name.toLowerCase() === selectedGrade) ?? grades[0],
48
+ () => grades?.find((grade) => grade.name.toLowerCase() === selectedGrade) ?? grades?.[0],
49
49
  [grades, selectedGrade],
50
50
  );
51
51
 
52
52
  return (
53
53
  <>
54
- <GradesMenu aria-label={t('programme.grades')}>
55
- {grades.map((item) => {
54
+ <GradesMenu aria-label={t('programmes.grades')}>
55
+ {grades?.map((item) => {
56
56
  const current = item.name.toLowerCase() === selectedGrade;
57
57
  return (
58
58
  <li key={item.name}>
@@ -69,8 +69,8 @@ const ProgrammeSubjects = ({ grades, onNavigate, selectedGrade = 'vg1' }: Props)
69
69
  );
70
70
  })}
71
71
  </GradesMenu>
72
- {grade.missingProgrammeSubjects && <MessageBox>{t('messageBoxInfo.noContent')}</MessageBox>}
73
- {grade.categories?.map((category) => (
72
+ {grade?.missingProgrammeSubjects && <MessageBox>{t('messageBoxInfo.noContent')}</MessageBox>}
73
+ {grade?.categories?.map((category) => (
74
74
  <NavigationBox key={category.name} heading={category.name} items={category.subjects} onClick={onNavigate} />
75
75
  ))}
76
76
  </>
@@ -20,8 +20,8 @@ export interface Programme {
20
20
  title: string;
21
21
  language: string;
22
22
  };
23
- desktopImage: Image;
24
- mobileImage: Image;
23
+ narrowImage?: Image;
24
+ wideImage?: Image;
25
25
  url: string;
26
26
  }
27
27
 
@@ -79,11 +79,11 @@ const StyledTitle = styled.span`
79
79
  }
80
80
  `;
81
81
 
82
- const ProgrammeCard = ({ title, desktopImage, mobileImage, url }: Programme) => {
82
+ const ProgrammeCard = ({ title, narrowImage, wideImage, url }: Programme) => {
83
83
  return (
84
84
  <StyledCardContainer to={url}>
85
- <StyledImg data-is-mobile="false" src={desktopImage.src} alt={desktopImage.alt} />
86
- <StyledImg data-is-mobile="true" src={mobileImage.src} alt={mobileImage.alt} />
85
+ {narrowImage && <StyledImg data-is-mobile="false" src={narrowImage.src} alt={narrowImage.alt} />}
86
+ {wideImage && <StyledImg data-is-mobile="true" src={wideImage.src} alt={wideImage.alt} />}
87
87
  <StyledTitle>{title.title}</StyledTitle>
88
88
  </StyledCardContainer>
89
89
  );
@@ -31,22 +31,6 @@
31
31
  }
32
32
  }
33
33
 
34
- /* Hacks for complex content fetched inside bodybox */
35
- .c-bodybox > ul:not([class]),
36
- .c-bodybox :not(li) > ul:not([class]) {
37
- @include mq(desktop) {
38
- margin-left: $spacing;
39
- }
40
- }
41
-
42
- .c-bodybox > ol:not([class]),
43
- .c-bodybox :not(li) > ol:not([class]),
44
- .c-bodybox .ol-list--roman {
45
- @include mq(desktop) {
46
- margin-left: $spacing--large;
47
- }
48
- }
49
-
50
34
  .c-bodybox {
51
35
  .c-figure {
52
36
  width: 100% !important;
@@ -1307,9 +1307,11 @@ const messages = {
1307
1307
  contact: 'Contact',
1308
1308
  help: 'Help',
1309
1309
  },
1310
- programme: {
1310
+ programmes: {
1311
+ header: 'View our educational programmes',
1312
+ description: 'We strive to offer the best learning resources within traditional and new media.',
1311
1313
  grades: 'Grades',
1312
- accordianHeader: 'All educational programmes',
1314
+ accordionHeader: 'All educational programmes',
1313
1315
  },
1314
1316
  embed: {
1315
1317
  conceptListError: 'Failed to show concept list',
@@ -1303,9 +1303,11 @@ const messages = {
1303
1303
  contact: 'Kontakt',
1304
1304
  help: 'Hjelp',
1305
1305
  },
1306
- programme: {
1306
+ programmes: {
1307
+ header: 'Se våre utdanningsprogram',
1308
+ description: 'Vi ønsker å tilby de beste læringsressursene innen tradisjonelle og nye medier.',
1307
1309
  grades: 'Trinn',
1308
- accordianHeader: 'Alle utdanningsprogram',
1310
+ accordionHeader: 'Alle utdanningsprogram',
1309
1311
  },
1310
1312
  embed: {
1311
1313
  conceptListError: 'Klarte ikke å vise forklaringsliste',
@@ -1303,9 +1303,11 @@ const messages = {
1303
1303
  contact: 'Kontakt',
1304
1304
  help: 'Hjelp',
1305
1305
  },
1306
- programme: {
1306
+ programmes: {
1307
+ header: 'Se våre utdanningsprogram',
1308
+ description: 'Vi ønsker å tilby dei beste læringsressursane innan tradisjonelle og nye media.',
1307
1309
  grades: 'Trinn',
1308
- accordianHeader: 'Alle utdanningsprogram',
1310
+ accordionHeader: 'Alle utdanningsprogram',
1309
1311
  },
1310
1312
  embed: {
1311
1313
  conceptListError: 'Klarte ikkje å vise forklaringsliste',
@@ -1304,9 +1304,11 @@ const messages = {
1304
1304
  contact: 'Váldde oktavuođa',
1305
1305
  help: 'Veahket',
1306
1306
  },
1307
- programme: {
1307
+ programmes: {
1308
+ header: 'Se våre utdanningsprogram',
1309
+ description: 'Vi ønsker å tilby de beste læringsressursene innen tradisjonelle og nye medier.',
1308
1310
  grades: 'Ceahkki',
1309
- accordianHeader: 'Alle utdanningsprogram',
1311
+ accordionHeader: 'Alle utdanningsprogram',
1310
1312
  },
1311
1313
  embed: {
1312
1314
  conceptListError: 'Ii sáhttán čájehit čilgehuslisttu',
@@ -1308,9 +1308,11 @@ const messages = {
1308
1308
  contact: 'Kontakt',
1309
1309
  help: 'Hjelp',
1310
1310
  },
1311
- programme: {
1311
+ programmes: {
1312
+ header: 'Se våre utdanningsprogram',
1313
+ description: 'Vi ønsker å tilby de beste læringsressursene innen tradisjonelle og nye medier.',
1312
1314
  grades: 'Trinn',
1313
- accordianHeader: 'Alle utdanningsprogram',
1315
+ accordionHeader: 'Alle utdanningsprogram',
1314
1316
  },
1315
1317
  embed: {
1316
1318
  conceptListError: 'Klarte ikkje å vise forklaringsliste',