@ndla/ui 50.1.6 → 50.2.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 (84) hide show
  1. package/es/Embed/ConceptEmbed.js +28 -14
  2. package/es/Embed/FootnoteEmbed.js +7 -2
  3. package/es/Embed/conceptComponents.js +14 -10
  4. package/es/Filter/FilterCarousel.js +4 -4
  5. package/es/FrontpageArticle/FrontpageArticle.js +1 -1
  6. package/es/Gloss/Gloss.js +39 -34
  7. package/es/Gloss/GlossExample.js +62 -0
  8. package/es/Gloss/index.js +2 -1
  9. package/es/Resource/resourceComponents.js +11 -11
  10. package/es/ResourceGroup/ResourceItem.js +9 -9
  11. package/es/SearchTypeResult/ActiveFilters.js +6 -6
  12. package/es/TreeStructure/AddFolderButton.js +2 -2
  13. package/es/TreeStructure/FolderItem.js +7 -7
  14. package/es/TreeStructure/FolderItems.js +2 -2
  15. package/es/all.css +1 -1
  16. package/es/index.js +1 -1
  17. package/es/locale/messages-en.js +10 -5
  18. package/es/locale/messages-nb.js +9 -3
  19. package/es/locale/messages-nn.js +9 -3
  20. package/es/locale/messages-se.js +10 -4
  21. package/es/locale/messages-sma.js +12 -6
  22. package/es/model/index.js +1 -3
  23. package/lib/Embed/ConceptEmbed.d.ts +6 -2
  24. package/lib/Embed/ConceptEmbed.js +28 -14
  25. package/lib/Embed/FootnoteEmbed.js +8 -2
  26. package/lib/Embed/conceptComponents.d.ts +2 -0
  27. package/lib/Embed/conceptComponents.js +14 -10
  28. package/lib/Filter/FilterCarousel.js +4 -4
  29. package/lib/FrontpageArticle/FrontpageArticle.js +1 -1
  30. package/lib/Gloss/Gloss.d.ts +5 -14
  31. package/lib/Gloss/Gloss.js +39 -34
  32. package/lib/Gloss/GlossExample.d.ts +16 -0
  33. package/lib/Gloss/GlossExample.js +68 -0
  34. package/lib/Gloss/index.d.ts +1 -0
  35. package/lib/Gloss/index.js +7 -0
  36. package/lib/Resource/resourceComponents.js +11 -11
  37. package/lib/ResourceGroup/ResourceItem.js +9 -9
  38. package/lib/SearchTypeResult/ActiveFilters.js +6 -6
  39. package/lib/TreeStructure/AddFolderButton.js +2 -2
  40. package/lib/TreeStructure/FolderItem.js +7 -7
  41. package/lib/TreeStructure/FolderItems.js +2 -2
  42. package/lib/all.css +1 -1
  43. package/lib/index.d.ts +1 -1
  44. package/lib/index.js +6 -0
  45. package/lib/locale/messages-en.d.ts +8 -2
  46. package/lib/locale/messages-en.js +11 -7
  47. package/lib/locale/messages-nb.d.ts +7 -1
  48. package/lib/locale/messages-nb.js +9 -3
  49. package/lib/locale/messages-nn.d.ts +7 -1
  50. package/lib/locale/messages-nn.js +9 -3
  51. package/lib/locale/messages-se.d.ts +7 -1
  52. package/lib/locale/messages-se.js +10 -4
  53. package/lib/locale/messages-sma.d.ts +7 -1
  54. package/lib/locale/messages-sma.js +12 -6
  55. package/lib/model/index.d.ts +0 -2
  56. package/lib/model/index.js +1 -3
  57. package/package.json +5 -5
  58. package/src/Embed/ConceptEmbed.tsx +18 -0
  59. package/src/Embed/FootnoteEmbed.tsx +29 -3
  60. package/src/Embed/conceptComponents.tsx +6 -0
  61. package/src/Filter/FilterCarousel.tsx +3 -1
  62. package/src/FrontpageArticle/FrontpageArticle.tsx +1 -1
  63. package/src/Gloss/Gloss.tsx +41 -57
  64. package/src/Gloss/GlossExample.tsx +75 -0
  65. package/src/Gloss/index.tsx +1 -0
  66. package/src/Resource/resourceComponents.tsx +1 -1
  67. package/src/ResourceGroup/ResourceItem.tsx +3 -1
  68. package/src/SearchTypeResult/ActiveFilters.tsx +1 -3
  69. package/src/TreeStructure/AddFolderButton.tsx +2 -2
  70. package/src/TreeStructure/FolderItem.tsx +1 -1
  71. package/src/TreeStructure/FolderItems.tsx +2 -2
  72. package/src/index.ts +1 -1
  73. package/src/locale/messages-en.ts +9 -2
  74. package/src/locale/messages-nb.ts +8 -1
  75. package/src/locale/messages-nn.ts +8 -1
  76. package/src/locale/messages-se.ts +9 -2
  77. package/src/locale/messages-sma.ts +11 -4
  78. package/src/main.scss +0 -1
  79. package/src/model/index.ts +0 -2
  80. package/es/model/Transcriptions.js +0 -1
  81. package/lib/model/Transcriptions.d.ts +0 -11
  82. package/lib/model/Transcriptions.js +0 -5
  83. package/src/Article/component.footnotes.scss +0 -74
  84. package/src/model/Transcriptions.ts +0 -12
@@ -6,12 +6,38 @@
6
6
  *
7
7
  */
8
8
 
9
- import { FootnoteMetaData } from '@ndla/types-embed';
10
9
  import { useTranslation } from 'react-i18next';
10
+ import styled from '@emotion/styled';
11
+ import { FootnoteMetaData } from '@ndla/types-embed';
12
+ import { colors, spacing } from '@ndla/core';
11
13
 
12
14
  interface Props {
13
15
  embed: FootnoteMetaData;
14
16
  }
17
+
18
+ const FootnoteRef = styled.span`
19
+ &:target {
20
+ background-color: ${colors.brand.greyLighter};
21
+ padding: ${spacing.xxsmall} ${spacing.xsmall};
22
+ box-shadow:
23
+ ${spacing.xsmall} 0 0 ${colors.brand.greyLighter},
24
+ -${spacing.xsmall} 0 0 ${colors.brand.greyLighter};
25
+ }
26
+ sup {
27
+ a {
28
+ margin-left: -2px;
29
+ padding: ${spacing.small} ${spacing.xsmall};
30
+ box-shadow: none;
31
+ text-decoration: underline;
32
+ }
33
+ a:hover,
34
+ a:focus-within {
35
+ background-color: ${colors.brand.greyLighter};
36
+ text-decoration: underline;
37
+ }
38
+ }
39
+ `;
40
+
15
41
  const FootnoteEmbed = ({ embed }: Props) => {
16
42
  const { t } = useTranslation();
17
43
  if (embed.status === 'error') {
@@ -19,11 +45,11 @@ const FootnoteEmbed = ({ embed }: Props) => {
19
45
  }
20
46
 
21
47
  return (
22
- <span id={`ref${embed.data.entryNum}`} className="c-footnotes__ref">
48
+ <FootnoteRef id={`ref${embed.data.entryNum}`}>
23
49
  <sup>
24
50
  <a href={`#note${embed.data.entryNum}`} target="_self">{`[${embed.data.entryNum}]`}</a>
25
51
  </sup>
26
- </span>
52
+ </FootnoteRef>
27
53
  );
28
54
  };
29
55
 
@@ -48,6 +48,8 @@ interface ConceptNotionProps extends RefAttributes<HTMLDivElement>, ConceptNotio
48
48
  headerButtons?: ReactNode;
49
49
  heartButton?: HeartButtonType;
50
50
  conceptHeartButton?: ReactNode;
51
+ exampleIds?: string;
52
+ exampleLangs?: string;
51
53
  }
52
54
 
53
55
  const NotionDialogText = styled.div`
@@ -181,6 +183,8 @@ export const ConceptNotionV2 = forwardRef<HTMLDivElement, ConceptNotionProps>(
181
183
  glossData,
182
184
  headerButtons,
183
185
  lang,
186
+ exampleIds,
187
+ exampleLangs,
184
188
  ...rest
185
189
  },
186
190
  ref,
@@ -246,6 +250,8 @@ export const ConceptNotionV2 = forwardRef<HTMLDivElement, ConceptNotionProps>(
246
250
  ? { src: visualElement.data.audioFile.url, title: visualElement.data.title.title }
247
251
  : undefined
248
252
  }
253
+ exampleIds={exampleIds}
254
+ exampleLangs={exampleLangs}
249
255
  />
250
256
  )}
251
257
  </ContentPadding>
@@ -40,7 +40,9 @@ const NavButton = styled('button')<{
40
40
  border: none;
41
41
  box-shadow: none;
42
42
  border-radius: 100px;
43
- transition: opacity 0.5s ease, transform 0.5s ease;
43
+ transition:
44
+ opacity 0.5s ease,
45
+ transform 0.5s ease;
44
46
  transform: translate(0px, 0px, 1);
45
47
  position: absolute;
46
48
  bottom: 0;
@@ -59,7 +59,7 @@ const StyledArticle = styled.article`
59
59
 
60
60
  export const FrontpageArticle = ({ article, id, isWide, licenseBox, lang }: Props) => {
61
61
  const { height = 0 } = useMastheadHeight();
62
- const cssVars = useMemo(() => ({ '--masthead-height': `${height}px` } as unknown as CSSProperties), [height]);
62
+ const cssVars = useMemo(() => ({ '--masthead-height': `${height}px` }) as unknown as CSSProperties, [height]);
63
63
  const { title, introduction, content } = article;
64
64
 
65
65
  if (isWide) {
@@ -10,31 +10,23 @@ import styled from '@emotion/styled';
10
10
  import { useTranslation } from 'react-i18next';
11
11
  import { colors, spacing, misc, fonts } from '@ndla/core';
12
12
  import { AccordionRoot, AccordionItem, AccordionHeader, AccordionContent } from '@ndla/accordion';
13
- import { Transcription } from '../model/Transcriptions';
13
+ import { IGlossData, IGlossExample } from '@ndla/types-backend/concept-api';
14
+ import { useMemo } from 'react';
14
15
  import SpeechControl from '../AudioPlayer/SpeechControl';
15
-
16
- interface Example {
17
- example: string;
18
- language: string;
19
- transcriptions: Transcription;
20
- }
16
+ import GlossExample from './GlossExample';
21
17
 
22
18
  export interface Props {
23
19
  title: {
24
20
  title: string;
25
21
  language: string;
26
22
  };
27
- glossData?: {
28
- gloss: string;
29
- wordClass?: string;
30
- originalLanguage: string;
31
- transcriptions: Transcription;
32
- examples?: Example[][];
33
- };
23
+ glossData?: IGlossData;
34
24
  audio?: {
35
25
  title: string;
36
26
  src?: string;
37
27
  };
28
+ exampleIds?: string;
29
+ exampleLangs?: string;
38
30
  }
39
31
 
40
32
  const Container = styled.div`
@@ -83,26 +75,34 @@ const StyledAccordionContent = styled(AccordionContent)`
83
75
  padding: 0;
84
76
  `;
85
77
 
86
- const TranslatedText = styled.span`
87
- display: flex;
88
- flex-direction: column;
89
- border-bottom: 1px solid ${colors.brand.lighter};
90
- padding: ${spacing.small} ${spacing.normal};
91
- font-family: ${fonts.sans};
92
- ${fonts.sizes('18px', '24px')};
93
- &[data-first='true'] {
94
- color: ${colors.brand.dark};
95
- font-weight: ${fonts.weight.bold};
96
- background-color: ${colors.background.lightBlue};
97
- }
98
- &[data-pinyin] {
99
- font-style: italic;
100
- }
101
- `;
78
+ const getFilteredExamples = (
79
+ glossData: IGlossData | undefined,
80
+ exampleIds: string | undefined,
81
+ exampleLangs: string | undefined,
82
+ ): IGlossExample[][] => {
83
+ if (exampleIds !== undefined || exampleLangs !== undefined) {
84
+ const exampleIdsList = exampleIds?.toString()?.split(',') ?? [];
85
+ const exampleLangsList = exampleLangs?.split(',') ?? [];
102
86
 
103
- const Gloss = ({ title, glossData, audio }: Props) => {
87
+ const filteredExamples =
88
+ glossData?.examples?.map((examples, i) => {
89
+ if (exampleIdsList.includes(i.toString())) {
90
+ return examples.filter((e) => exampleLangsList.includes(e.language));
91
+ } else return [];
92
+ }) ?? [];
93
+ const examplesWithoutEmpty = filteredExamples.filter((el) => !!el.length);
94
+ return examplesWithoutEmpty;
95
+ } else return glossData?.examples ?? [];
96
+ };
97
+
98
+ const Gloss = ({ title, glossData, audio, exampleIds, exampleLangs }: Props) => {
104
99
  const { t } = useTranslation();
105
100
 
101
+ const filteredExamples = useMemo(
102
+ () => getFilteredExamples(glossData, exampleIds, exampleLangs),
103
+ [exampleIds, exampleLangs, glossData],
104
+ );
105
+
106
106
  return (
107
107
  <>
108
108
  {glossData && (
@@ -138,36 +138,20 @@ const Gloss = ({ title, glossData, audio }: Props) => {
138
138
  </Wrapper>
139
139
  <span lang={title.language}>{title.title}</span>
140
140
  </Container>
141
- {glossData.examples && glossData.examples.length > 0 && (
141
+ {filteredExamples.length > 0 && (
142
142
  <AccordionRoot type="single" collapsible>
143
143
  <AccordionItem value="1">
144
144
  <StyledAccordionHeader headingLevel="span">{t('gloss.examples')}</StyledAccordionHeader>
145
145
  <StyledAccordionContent>
146
- {glossData.examples.map((example, index) => (
147
- <div key={index}>
148
- {example.map((translation, innerIndex) => (
149
- <div key={`${index}_${innerIndex}`}>
150
- <TranslatedText data-first={innerIndex === 0} lang={translation.language}>
151
- {translation.example}
152
- </TranslatedText>
153
- {translation.transcriptions.pinyin && (
154
- <TranslatedText
155
- key={t('gloss.transcriptions.pinyin')}
156
- data-pinyin=""
157
- lang={glossData.originalLanguage}
158
- >
159
- {translation.transcriptions?.pinyin}
160
- </TranslatedText>
161
- )}
162
- {translation.transcriptions.traditional && (
163
- <TranslatedText
164
- key={t('gloss.transcriptions.traditional')}
165
- lang={glossData.originalLanguage}
166
- >
167
- {translation.transcriptions?.traditional}
168
- </TranslatedText>
169
- )}
170
- </div>
146
+ {filteredExamples.map((examples, index) => (
147
+ <div key={`gloss-example-${index}`}>
148
+ {examples.map((example, innerIndex) => (
149
+ <GlossExample
150
+ key={`gloss-example-${index}-${innerIndex}`}
151
+ example={example}
152
+ originalLanguage={glossData.originalLanguage}
153
+ index={innerIndex}
154
+ />
171
155
  ))}
172
156
  </div>
173
157
  ))}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Copyright (c) 2023-present, NDLA.
3
+ *
4
+ * This source code is licensed under the GPLv3 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+
9
+ import styled from '@emotion/styled';
10
+ import { colors, spacing, fonts } from '@ndla/core';
11
+ import { IGlossExample } from '@ndla/types-backend/concept-api';
12
+ import { Text } from '@ndla/typography';
13
+
14
+ export interface Props {
15
+ example: IGlossExample;
16
+ originalLanguage: string | undefined;
17
+ index: number;
18
+ isStandalone?: boolean;
19
+ }
20
+
21
+ const StyledGlossExampleWrapper = styled.div`
22
+ &[data-is-standalone='true'] {
23
+ &:first-of-type {
24
+ border-top: 1px solid ${colors.brand.lighter};
25
+ }
26
+ }
27
+ `;
28
+ const StyledGlossExample = styled.div`
29
+ padding: ${spacing.small} 0;
30
+ padding-left: ${spacing.normal};
31
+ border: 1px solid ${colors.brand.lighter};
32
+ border-top: none;
33
+
34
+ &[data-is-first='true'] {
35
+ background-color: ${colors.background.lightBlue};
36
+ }
37
+ `;
38
+ const StyledText = styled(Text)`
39
+ &[data-is-first='true'] {
40
+ font-weight: ${fonts.weight.bold};
41
+ color: ${colors.brand.dark};
42
+ }
43
+ &[data-pinyin] {
44
+ font-style: italic;
45
+ }
46
+ `;
47
+
48
+ const GlossExample = ({ example, originalLanguage, index, isStandalone = false }: Props) => {
49
+ return (
50
+ <StyledGlossExampleWrapper data-is-standalone={isStandalone}>
51
+ <StyledGlossExample data-is-first={index === 0} lang={example.language}>
52
+ <StyledText data-is-first={index === 0} textStyle="meta-text-medium" margin="none">
53
+ {example.example}
54
+ </StyledText>
55
+ </StyledGlossExample>
56
+
57
+ {example.transcriptions.pinyin && (
58
+ <StyledGlossExample lang={originalLanguage}>
59
+ <StyledText data-pinyin="" textStyle="meta-text-medium" margin="none">
60
+ {example.transcriptions?.pinyin}
61
+ </StyledText>
62
+ </StyledGlossExample>
63
+ )}
64
+ {example.transcriptions.traditional && (
65
+ <StyledGlossExample lang={originalLanguage}>
66
+ <StyledText textStyle="meta-text-medium" margin="none">
67
+ {example.transcriptions?.traditional}
68
+ </StyledText>
69
+ </StyledGlossExample>
70
+ )}
71
+ </StyledGlossExampleWrapper>
72
+ );
73
+ };
74
+
75
+ export default GlossExample;
@@ -7,3 +7,4 @@
7
7
  */
8
8
 
9
9
  export { default as Gloss } from './Gloss';
10
+ export { default as GlossExample } from './GlossExample';
@@ -134,7 +134,7 @@ const StyledContentIconWrapper = styled.span`
134
134
 
135
135
  export const ContentIconWrapper = ({ contentType, children, ...props }: ContentIconProps) => {
136
136
  const contentIconWrapperVars = useMemo(
137
- () => ({ '--content-background-color': resourceTypeColor(contentType) } as unknown as CSSProperties),
137
+ () => ({ '--content-background-color': resourceTypeColor(contentType) }) as unknown as CSSProperties,
138
138
  [contentType],
139
139
  );
140
140
  return (
@@ -75,7 +75,9 @@ const ListElement = styled.li`
75
75
  }
76
76
 
77
77
  * {
78
- transition: height ease-out 0.2s, width ease-out 0.2s;
78
+ transition:
79
+ height ease-out 0.2s,
80
+ width ease-out 0.2s;
79
81
  }
80
82
  &[data-active='true'] {
81
83
  &:before {
@@ -156,9 +156,7 @@ const ActiveFilters = ({
156
156
  </Tooltip>
157
157
  </StyledActiveFilterWrapper>
158
158
  )}
159
- {customElements?.map((item, index) => (
160
- <StyledActiveFilterWrapper key={index}>{item}</StyledActiveFilterWrapper>
161
- ))}
159
+ {customElements?.map((item, index) => <StyledActiveFilterWrapper key={index}>{item}</StyledActiveFilterWrapper>)}
162
160
  </StyledActiveFilters>
163
161
  );
164
162
  };
@@ -46,8 +46,8 @@ const AddFolderButton = ({
46
46
  const tooltip = loading
47
47
  ? t('loading')
48
48
  : canAddFolder
49
- ? t('myNdla.newFolderUnder', { folderName: focusedFolder?.name })
50
- : t('treeStructure.maxFoldersAlreadyAdded');
49
+ ? t('myNdla.newFolderUnder', { folderName: focusedFolder?.name })
50
+ : t('treeStructure.maxFoldersAlreadyAdded');
51
51
  return (
52
52
  <Tooltip tooltip={tooltip}>
53
53
  <StyledAddFolderButton
@@ -163,7 +163,7 @@ const FolderItem = ({
163
163
  const ref = useRef<HTMLButtonElement & HTMLAnchorElement>(null);
164
164
  const selected = selectedFolder ? selectedFolder.id === id : false;
165
165
 
166
- const levelVariable = useMemo(() => ({ '--level': level } as unknown as CSSProperties), [level]);
166
+ const levelVariable = useMemo(() => ({ '--level': level }) as unknown as CSSProperties, [level]);
167
167
 
168
168
  const focused = focusedFolder?.id === id;
169
169
 
@@ -65,8 +65,8 @@ const FolderItems = ({
65
65
  level === 0 && type === 'picker'
66
66
  ? treestructureId(type, 'popup')
67
67
  : parentFolder
68
- ? treestructureId(type, `subfolders-${parentFolder.id}`)
69
- : undefined
68
+ ? treestructureId(type, `subfolders-${parentFolder.id}`)
69
+ : undefined
70
70
  }
71
71
  tabIndex={-1}
72
72
  aria-labelledby={level === 0 && type === 'picker' ? treestructureId(type, 'label') : undefined}
package/src/index.ts CHANGED
@@ -224,6 +224,6 @@ export {
224
224
  export { DefinitionTerm, DefinitionDescription } from './DefinitionList';
225
225
  export type { ProgrammeV2 } from './ProgrammeCard';
226
226
 
227
- export { Gloss } from './Gloss';
227
+ export { Gloss, GlossExample } from './Gloss';
228
228
 
229
229
  export { LinkBlock, LinkBlockSection } from './LinkBlock';
@@ -9,7 +9,7 @@
9
9
  import { contributorTypes } from '@ndla/licenses';
10
10
  import constants from '../model';
11
11
 
12
- export const { contentTypes, subjectCategories, subjectTypes, wordClass, Transcriptions } = constants;
12
+ export const { contentTypes, subjectCategories, subjectTypes, wordClass } = constants;
13
13
 
14
14
  const titleTemplate = ' - NDLA';
15
15
 
@@ -1139,7 +1139,9 @@ const messages = {
1139
1139
  folder: {
1140
1140
  folder: 'Folder',
1141
1141
  delete: 'Delete folder',
1142
+ deleteShort: 'Delete',
1142
1143
  edit: 'Edit folder',
1144
+ editShort: 'Edit',
1143
1145
  copy: 'Copy folder',
1144
1146
  open: 'Open folder',
1145
1147
  close: 'Close folder',
@@ -1181,11 +1183,15 @@ const messages = {
1181
1183
  },
1182
1184
  button: {
1183
1185
  share: 'Share folder',
1186
+ shareShort: 'Share',
1184
1187
  preview: 'Preview folder',
1188
+ previewShort: 'Preview',
1185
1189
  goTo: 'Go to shared folder',
1186
1190
  unShare: 'Stop sharing',
1187
1191
  shareLink: 'Copy link',
1188
1192
  },
1193
+ previewInformation:
1194
+ 'Preview of shared folder. The folder is not available to others until you update its status to shared.',
1189
1195
  },
1190
1196
  },
1191
1197
  arena: {
@@ -1259,9 +1265,9 @@ const messages = {
1259
1265
  'Welcome to NDLA Arena. Here you can discuss, share and cooperate with other teachers from all of Norway. You will find forums for the different subjects and themes.',
1260
1266
  myNotification: 'My notifications',
1261
1267
  markAll: 'Mark all as read',
1262
- commentedOn: 'commented on your post',
1263
1268
  subscribe: 'You will now be notified of new replies to this topic',
1264
1269
  unsubscribe: 'You have turned off notification of new replies to this topic',
1270
+ commentedOn: 'commented on the post {{title}} which you follow',
1265
1271
  },
1266
1272
  topicsBy: 'Topics by',
1267
1273
  },
@@ -1285,6 +1291,7 @@ const messages = {
1285
1291
  myTags: 'My tags',
1286
1292
  mySubjects: 'My subjects',
1287
1293
  newFolder: 'New folder',
1294
+ newFolderShort: 'New',
1288
1295
  newFolderUnder: 'Create new folder under {{folderName}}',
1289
1296
  myAccount: 'My account',
1290
1297
  favourites: 'Favourites',
@@ -1138,7 +1138,9 @@ const messages = {
1138
1138
  folder: {
1139
1139
  folder: 'Mappe',
1140
1140
  delete: 'Slett mappe',
1141
+ deleteShort: 'Slett',
1141
1142
  edit: 'Rediger mappe',
1143
+ editShort: 'Rediger',
1142
1144
  copy: 'Kopier mappe',
1143
1145
  open: 'Åpne mappe',
1144
1146
  close: 'Lukk mappe',
@@ -1179,11 +1181,15 @@ const messages = {
1179
1181
  },
1180
1182
  button: {
1181
1183
  share: 'Del mappe',
1184
+ shareShort: 'Del',
1182
1185
  preview: 'Forhåndsvis mappe',
1186
+ previewShort: 'Forhåndsvis',
1183
1187
  goTo: 'Gå til delt mappe',
1184
1188
  unShare: 'Avslutt deling',
1185
1189
  shareLink: 'Kopier lenke',
1186
1190
  },
1191
+ previewInformation:
1192
+ 'Forhåndsvisning av delt mappe. Mappa blir ikke tilgjengelig for andre før du setter den som delt.',
1187
1193
  },
1188
1194
  },
1189
1195
  arena: {
@@ -1257,9 +1263,9 @@ const messages = {
1257
1263
  'Velkommen til NDLA Arena. Her kan du diskutere, dele og samarbeide med andre lærere fra hele Norge. Du finner forum for ulike fag og tema.',
1258
1264
  myNotification: 'Mine varsler',
1259
1265
  markAll: 'Merk alle som lest',
1260
- commentedOn: 'svarte på ditt innlegg',
1261
1266
  subscribe: 'Du får nå varsling om nye svar på dette innlegget',
1262
1267
  unsubscribe: 'Du har skrudd av varsling om nye svar på dette innlegget',
1268
+ commentedOn: 'svarte på innlegget {{title}} som du følger',
1263
1269
  },
1264
1270
  topicsBy: 'Innlegg av',
1265
1271
  },
@@ -1282,6 +1288,7 @@ const messages = {
1282
1288
  myTags: 'Mine emneknagger',
1283
1289
  mySubjects: 'Mine fag',
1284
1290
  newFolder: 'Ny mappe',
1291
+ newFolderShort: 'Ny',
1285
1292
  newFolderUnder: 'Lag ny mappe under {{folderName}}',
1286
1293
  myAccount: 'Min konto',
1287
1294
  favourites: 'Favoritter',
@@ -1138,7 +1138,9 @@ const messages = {
1138
1138
  folder: {
1139
1139
  folder: 'Mappe',
1140
1140
  delete: 'Slett mappe',
1141
+ deleteShort: 'Slett',
1141
1142
  edit: 'Rediger mappe',
1143
+ editShort: 'Rediger',
1142
1144
  copy: 'Kopier mappe',
1143
1145
  open: 'Åpne mappe',
1144
1146
  close: 'Lukk mappe',
@@ -1179,11 +1181,15 @@ const messages = {
1179
1181
  },
1180
1182
  button: {
1181
1183
  share: 'Del mappe',
1184
+ shareShort: 'Del',
1182
1185
  preview: 'Førehandsvis mappe',
1186
+ previewShort: 'Førehandsvis',
1183
1187
  goTo: 'Gå til delt mappe',
1184
1188
  unShare: 'Avslutt deling',
1185
1189
  shareLink: 'Kopier lenke',
1186
1190
  },
1191
+ previewInformation:
1192
+ 'Førehandsvising av delt mappe. Mappa blir ikkje tilgjengeleg for andre før du set ho som delt.',
1187
1193
  },
1188
1194
  },
1189
1195
  arena: {
@@ -1257,9 +1263,9 @@ const messages = {
1257
1263
  'Velkomen til NDLA Arena. Her kan du diskutere, dele og samarbeide med andre lærarar frå heile Noreg. Du finn forum for ulike fag og tema.',
1258
1264
  myNotification: 'Mine varsler',
1259
1265
  markAll: 'Merk alle som lest',
1260
- commentedOn: 'svarte på ditt innlegg',
1261
1266
  subscribe: 'Du får no varsling om nye svar på dette innlegget',
1262
1267
  unsubscribe: 'Du har skrudd av varsling om nye svar på dette innlegget',
1268
+ commentedOn: 'svarte på innlegget {{title}} som du følger',
1263
1269
  },
1264
1270
  topicsBy: 'Innlegg av',
1265
1271
  },
@@ -1282,6 +1288,7 @@ const messages = {
1282
1288
  myTags: 'Mine emneknaggar',
1283
1289
  mySubjects: 'Mine fag',
1284
1290
  newFolder: 'Ny mappe',
1291
+ newFolderShort: 'Ny',
1285
1292
  newFolderUnder: 'Lag ny mappe under {{folderName}}',
1286
1293
  myAccount: 'Min konto',
1287
1294
  favourites: 'Favorittar',
@@ -1140,7 +1140,9 @@ const messages = {
1140
1140
  folder: {
1141
1141
  folder: 'Máhppa',
1142
1142
  delete: 'Sihko máhpa',
1143
+ deleteShort: 'Sihko',
1143
1144
  edit: 'Rievdat máhpa',
1145
+ editShort: 'Rievdat',
1144
1146
  copy: 'Máŋge máhpa',
1145
1147
  open: 'Raba máhpa',
1146
1148
  close: 'Gidde máhpa',
@@ -1181,11 +1183,15 @@ const messages = {
1181
1183
  },
1182
1184
  button: {
1183
1185
  share: 'Juoge máhpa',
1184
- preview: 'Čájet ovdagihtii juogaduvvon máhpa',
1186
+ shareShort: 'Juoge',
1187
+ preview: 'Ovdačájehanmáhppa',
1188
+ previewShort: 'Ovdačájeheapmi',
1185
1189
  goTo: 'Mana juogaduvvon máhppii',
1186
1190
  unShare: 'Loahpat juogdeami',
1187
1191
  shareLink: 'Máŋge liŋkka',
1188
1192
  },
1193
+ previewInformation:
1194
+ 'Juohkejuvvon máhpa ovdačájeheapmi. Máhppa ii leat earáid olámuttos ovdal go ođasmahttá stáhtusa juohkehažžii.',
1189
1195
  },
1190
1196
  },
1191
1197
  arena: {
@@ -1259,9 +1265,9 @@ const messages = {
1259
1265
  'Bures boahtin NDLA Arenai. Dáppe sáhtát digaštallat, juogadit ja ovttasbargat eará oahpaheddjiiguin olles Norggas. Sierra fágaide ja fáttáide gávdnojit forumat.',
1260
1266
  myNotification: 'Mu signállat',
1261
1267
  markAll: 'Merke visot lohkon',
1262
- commentedOn: 'vástidedje du sáhkavuoru',
1263
1268
  subscribe: 'Don oaččut dál dieđu ođđa vástádusaid dán čállosii',
1264
1269
  unsubscribe: 'Don leat heaitán muittuheames ođđa vástádusaid dán čállosii',
1270
+ commentedOn: 'vástidii sáhkavuoru {{title}} maid don čuovvut',
1265
1271
  },
1266
1272
  topicsBy: 'Sáhkavuorru maid',
1267
1273
  },
@@ -1284,6 +1290,7 @@ const messages = {
1284
1290
  myTags: 'Mu fáddágilkorat',
1285
1291
  mySubjects: 'Mu fágat',
1286
1292
  newFolder: 'Ođđa máhppa',
1293
+ newFolderShort: 'Ođđa',
1287
1294
  newFolderUnder: 'Ráhkat ođđa máhpa dán vuolde {{folderName}}',
1288
1295
  myAccount: 'Mu kontu',
1289
1296
  favourites: 'Oiddohat',
@@ -1141,8 +1141,10 @@ const messages = {
1141
1141
  showEditOptions: 'Vuesehth guktie edtja øørnedh',
1142
1142
  folder: {
1143
1143
  folder: 'Mappe',
1144
- delete: 'Slett mappe',
1145
- edit: 'Rediger mappe',
1144
+ delete: 'Maabpem sliejhtedh',
1145
+ deleteShort: 'Staeriedidh',
1146
+ edit: 'Maabpah staeriedidh',
1147
+ editShort: 'Rediger',
1146
1148
  copy: 'Kopier mappe',
1147
1149
  open: 'Åpne mappe',
1148
1150
  close: 'Lukk mappe',
@@ -1183,11 +1185,15 @@ const messages = {
1183
1185
  },
1184
1186
  button: {
1185
1187
  share: 'Juekieh maabpah',
1188
+ shareShort: 'Juekieh',
1186
1189
  preview: 'Maahpa åvtelhbodti vuartasjidh',
1190
+ previewShort: 'Åvtelhbodti soejkesjimmie',
1187
1191
  goTo: 'Vaedtsieh naemhtie juekedh mappine',
1188
1192
  unShare: 'Orrijh juekedh',
1189
1193
  shareLink: 'Lïenghkem kopijeradidh',
1190
1194
  },
1195
+ previewInformation:
1196
+ 'Åvtevuesiehtimmie juakeme maabpeste. Jeatjah eah maahta maabpam nåhtadidh åvtelen datne statusen bïjre orresth.',
1191
1197
  },
1192
1198
  },
1193
1199
  arena: {
@@ -1261,9 +1267,9 @@ const messages = {
1261
1267
  'Buerie båeteme NDLA Aernesne . Daesnie maahtah digkiedidh , juekedh jïh laavenjostedh jeatjah lohkehtæjjajgujmie abpe Nöörjeste . Datne gaavnh forume, ovmessie faagh jïh aamhtesh .',
1262
1268
  myNotification: 'Mov tjoejemolseme',
1263
1269
  markAll: 'Mïerhkesjh gaajhkesh dovnesh lohkeme',
1264
- commentedOn: 'vaestiedi gåessie dov saarnoeh',
1265
1270
  subscribe: 'Datne åadtjoeh daelie bïeljelimmiem orre vaestiedassi bïjre daan tjaalegasse',
1266
1271
  unsubscribe: 'Datne tjeakoeslaakan bïeljelamme jis orre vaestiedassh daan påastese',
1272
+ commentedOn: 'tjeakoes laakan vaestiedamme {{title}} maam datne dåarjoehtidh',
1267
1273
  },
1268
1274
  topicsBy: 'Vuesiehtimmien gaavhtan',
1269
1275
  },
@@ -1286,7 +1292,8 @@ const messages = {
1286
1292
  myFolders: 'Mine mapper',
1287
1293
  myTags: 'Mine emneknagger',
1288
1294
  mySubjects: 'Mine fag',
1289
- newFolder: 'Ny mappe',
1295
+ newFolder: 'Orre maabpe',
1296
+ newFolderShort: 'Orre',
1290
1297
  newFolderUnder: 'Lag ny mappe under {{folderName}}',
1291
1298
  myAccount: 'Min konto',
1292
1299
  favourites: 'Favoritter',
package/src/main.scss CHANGED
@@ -9,7 +9,6 @@
9
9
  @import 'Figure/component.figure-license';
10
10
  @import 'FactBox/component.factbox';
11
11
  @import 'Aside/component.aside';
12
- @import 'Article/component.footnotes';
13
12
  @import 'global/components/component.logo';
14
13
  @import 'MediaList/component.medialist';
15
14
  @import 'RelatedArticleList/component.related-articles';
@@ -10,7 +10,6 @@ import { contentTypes, contentTypeMapping, resourceEmbedTypeMapping } from './Co
10
10
  import * as subjectCategories from './SubjectCategories';
11
11
  import * as subjectTypes from './SubjectTypes';
12
12
  import * as wordClass from './WordClass';
13
- import * as Transcriptions from './Transcriptions';
14
13
 
15
14
  const model = {
16
15
  contentTypes,
@@ -19,7 +18,6 @@ const model = {
19
18
  contentTypeMapping,
20
19
  resourceEmbedTypeMapping,
21
20
  wordClass,
22
- Transcriptions,
23
21
  };
24
22
 
25
23
  export default model;
@@ -1 +0,0 @@
1
- export {};