@ndla/ui 50.5.0 → 50.5.2

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 (50) hide show
  1. package/es/Aside/Aside.js +55 -17
  2. package/es/ContentTypeBadge/ContentTypeBadge.js +162 -83
  3. package/es/FramedContent/FramedContent.js +7 -11
  4. package/es/ResourceGroup/ResourceItem.js +9 -9
  5. package/es/SearchTypeResult/components/ItemResourceHeader.js +6 -6
  6. package/es/SearchTypeResult/components/ItemTopicHeader.js +4 -4
  7. package/es/all.css +1 -1
  8. package/es/locale/messages-en.js +8 -4
  9. package/es/locale/messages-nb.js +8 -4
  10. package/es/locale/messages-nn.js +8 -4
  11. package/es/locale/messages-se.js +8 -4
  12. package/es/locale/messages-sma.js +8 -4
  13. package/lib/Aside/Aside.d.ts +3 -7
  14. package/lib/Aside/Aside.js +55 -19
  15. package/lib/ContentTypeBadge/ContentTypeBadge.d.ts +3 -2
  16. package/lib/ContentTypeBadge/ContentTypeBadge.js +162 -85
  17. package/lib/FramedContent/FramedContent.d.ts +1 -1
  18. package/lib/FramedContent/FramedContent.js +8 -11
  19. package/lib/ResourceGroup/ResourceItem.js +9 -9
  20. package/lib/SearchTypeResult/components/ItemResourceHeader.js +6 -6
  21. package/lib/SearchTypeResult/components/ItemTopicHeader.js +4 -4
  22. package/lib/all.css +1 -1
  23. package/lib/locale/messages-en.d.ts +4 -0
  24. package/lib/locale/messages-en.js +8 -4
  25. package/lib/locale/messages-nb.d.ts +4 -0
  26. package/lib/locale/messages-nb.js +8 -4
  27. package/lib/locale/messages-nn.d.ts +4 -0
  28. package/lib/locale/messages-nn.js +8 -4
  29. package/lib/locale/messages-se.d.ts +4 -0
  30. package/lib/locale/messages-se.js +8 -4
  31. package/lib/locale/messages-sma.d.ts +4 -0
  32. package/lib/locale/messages-sma.js +8 -4
  33. package/package.json +2 -2
  34. package/src/Article/component.article.scss +1 -1
  35. package/src/Aside/Aside.tsx +95 -30
  36. package/src/ContentTypeBadge/ContentTypeBadge.stories.tsx +81 -0
  37. package/src/ContentTypeBadge/ContentTypeBadge.tsx +169 -71
  38. package/src/FramedContent/FramedContent.tsx +37 -14
  39. package/src/ResourceGroup/ResourceItem.tsx +5 -5
  40. package/src/SearchTypeResult/components/ItemResourceHeader.tsx +1 -1
  41. package/src/SearchTypeResult/components/ItemTopicHeader.tsx +1 -1
  42. package/src/locale/messages-en.ts +7 -4
  43. package/src/locale/messages-nb.ts +7 -4
  44. package/src/locale/messages-nn.ts +7 -4
  45. package/src/locale/messages-se.ts +7 -4
  46. package/src/locale/messages-sma.ts +7 -4
  47. package/src/main.scss +0 -3
  48. package/src/Aside/component.aside.scss +0 -91
  49. package/src/ContentTypeBadge/component.content-type-badge.scss +0 -223
  50. package/src/global/components/component.bodybox.scss +0 -60
@@ -6,8 +6,11 @@
6
6
  *
7
7
  */
8
8
 
9
- import BEMHelper from 'react-bem-helper';
9
+ import { CSSProperties, ComponentProps, useMemo } from 'react';
10
10
 
11
+ import { css } from '@emotion/react';
12
+ import styled from '@emotion/styled';
13
+ import { breakpoints, colors, mq } from '@ndla/core';
11
14
  import { MenuBook } from '@ndla/icons/action';
12
15
  import {
13
16
  SubjectMaterial,
@@ -24,12 +27,7 @@ import { Concept, ImageNormal, SquareAudio, SquareVideo } from '@ndla/icons/edit
24
27
 
25
28
  import * as contentTypes from '../model/ContentType';
26
29
 
27
- const classes = new BEMHelper({
28
- name: 'content-type-badge',
29
- prefix: 'c-',
30
- });
31
-
32
- interface Props {
30
+ interface Props extends ComponentProps<'div'> {
33
31
  size?: 'xx-small' | 'x-small' | 'small' | 'large';
34
32
  type: string;
35
33
  title?: string;
@@ -38,70 +36,170 @@ interface Props {
38
36
  className?: string;
39
37
  }
40
38
 
41
- export const ContentTypeBadge = ({ type, background, title, size = 'small', border = true, className }: Props) => {
42
- const modifiers = [type, size];
43
-
44
- let embedResource = false;
45
-
46
- let icon = null;
47
- switch (type) {
48
- case contentTypes.SUBJECT_MATERIAL:
49
- icon = <SubjectMaterial title={title} />;
50
- break;
51
- case contentTypes.TASKS_AND_ACTIVITIES:
52
- icon = <TasksAndActivities title={title} />;
53
- break;
54
- case contentTypes.ASSESSMENT_RESOURCES:
55
- icon = <AssessmentResource title={title} />;
56
- break;
57
- case contentTypes.SUBJECT:
58
- icon = <MenuBook title={title} />;
59
- break;
60
- case contentTypes.EXTERNAL_LEARNING_RESOURCES:
61
- icon = <ExternalLearningResource title={title} />;
62
- break;
63
- case contentTypes.SOURCE_MATERIAL:
64
- icon = <SharedResource title={title} />;
65
- break;
66
- case contentTypes.LEARNING_PATH:
67
- icon = <LearningPath title={title} />;
68
- break;
69
- case contentTypes.TOPIC:
70
- icon = <Subject title={title} />;
71
- break;
72
- case contentTypes.MULTIDISCIPLINARY_TOPIC:
73
- icon = <MultidisciplinaryTopic />;
74
- break;
75
- case contentTypes.resourceEmbedTypeMapping.image:
76
- icon = <ImageNormal />;
77
- embedResource = true;
78
- break;
79
- case contentTypes.resourceEmbedTypeMapping.audio:
80
- icon = <SquareAudio />;
81
- embedResource = true;
82
- break;
83
- case contentTypes.resourceEmbedTypeMapping.video:
84
- icon = <SquareVideo />;
85
- embedResource = true;
86
- break;
87
- case contentTypes.resourceEmbedTypeMapping.concept:
88
- icon = <Concept />;
89
- embedResource = true;
90
- break;
91
- default:
92
- break;
93
- }
94
-
95
- if (embedResource) {
96
- modifiers.push('embed-resource');
97
- }
98
- if (background) {
99
- modifiers.push('background');
100
- }
101
- if (border) {
102
- modifiers.push('border');
103
- }
104
- return <div {...classes('', modifiers, className)}>{icon}</div>;
39
+ const sizes = {
40
+ 'xx-small': css`
41
+ width: 20px;
42
+ height: 20px;
43
+ border: 1px solid;
44
+ svg {
45
+ width: 10px;
46
+ height: 10x;
47
+ }
48
+ `,
49
+ 'x-small': css`
50
+ width: 20px;
51
+ height: 20px;
52
+ border: 1px solid;
53
+ ${mq.range({ from: breakpoints.tablet })} {
54
+ height: 26px;
55
+ width: 26px;
56
+ }
57
+ svg {
58
+ width: 10px;
59
+ height: 10x;
60
+ ${mq.range({ from: breakpoints.tablet })} {
61
+ width: 12px;
62
+ height: 12px;
63
+ }
64
+ }
65
+ `,
66
+ small: '',
67
+ large: css`
68
+ width: 50px;
69
+ height: 50px;
70
+ svg {
71
+ width: 25px;
72
+ height: 25px;
73
+ }
74
+ `,
75
+ } as const;
76
+
77
+ const BaseContentTypeBadge = styled.div`
78
+ display: inline-flex;
79
+ align-items: center;
80
+ justify-content: center;
81
+ border-radius: 100%;
82
+ width: 34px;
83
+ height: 34px;
84
+ color: var(--icon-color);
85
+ `;
86
+
87
+ const borderStyle = css`
88
+ border: 2px solid;
89
+ border-color: var(--icon-color);
90
+ `;
91
+
92
+ const backgroundStyle = css`
93
+ background-color: var(--background-color);
94
+ `;
95
+
96
+ const iconMap = {
97
+ [contentTypes.SUBJECT_MATERIAL]: {
98
+ icon: SubjectMaterial,
99
+ iconColor: colors.subjectMaterial.dark,
100
+ backgroundColor: colors.subjectMaterial.light,
101
+ },
102
+ [contentTypes.TASKS_AND_ACTIVITIES]: {
103
+ icon: TasksAndActivities,
104
+ iconColor: colors.tasksAndActivities.dark,
105
+ backgroundColor: colors.tasksAndActivities.light,
106
+ },
107
+ [contentTypes.ASSESSMENT_RESOURCES]: {
108
+ icon: AssessmentResource,
109
+ iconColor: colors.assessmentResource.dark,
110
+ backgroundColor: colors.assessmentResource.light,
111
+ },
112
+ [contentTypes.SUBJECT]: {
113
+ icon: MenuBook,
114
+ iconColor: colors.subject.dark,
115
+ backgroundColor: colors.subject.light,
116
+ },
117
+ [contentTypes.EXTERNAL_LEARNING_RESOURCES]: {
118
+ icon: ExternalLearningResource,
119
+ iconColor: colors.externalLearningResource.dark,
120
+ backgroundColor: colors.externalLearningResource.light,
121
+ },
122
+ [contentTypes.SOURCE_MATERIAL]: {
123
+ icon: SharedResource,
124
+ iconColor: colors.sourceMaterial.dark,
125
+ backgroundColor: colors.sourceMaterial.light,
126
+ },
127
+ [contentTypes.LEARNING_PATH]: {
128
+ icon: LearningPath,
129
+ iconColor: colors.learningPath.dark,
130
+ backgroundColor: colors.learningPath.light,
131
+ },
132
+ [contentTypes.TOPIC]: {
133
+ icon: Subject,
134
+ iconColor: colors.subject.dark,
135
+ backgroundColor: colors.subject.light,
136
+ },
137
+ [contentTypes.MULTIDISCIPLINARY_TOPIC]: {
138
+ icon: MultidisciplinaryTopic,
139
+ backgroundColor: '#b9b37b',
140
+ },
141
+ [contentTypes.resourceEmbedTypeMapping.image]: {
142
+ icon: ImageNormal,
143
+ iconColor: colors.brand.grey,
144
+ backgroundColor: colors.brand.greyLight,
145
+ },
146
+ [contentTypes.resourceEmbedTypeMapping.audio]: {
147
+ icon: SquareAudio,
148
+ iconColor: colors.brand.grey,
149
+ backgroundColor: colors.brand.greyLight,
150
+ },
151
+ [contentTypes.resourceEmbedTypeMapping.video]: {
152
+ icon: SquareVideo,
153
+ iconColor: colors.brand.grey,
154
+ backgroundColor: colors.brand.greyLight,
155
+ },
156
+ [contentTypes.resourceEmbedTypeMapping.concept]: {
157
+ icon: Concept,
158
+ iconColor: colors.brand.grey,
159
+ backgroundColor: colors.brand.greyLight,
160
+ },
161
+ } as const;
162
+
163
+ export const ContentTypeBadge = ({
164
+ type,
165
+ background,
166
+ title,
167
+ size = 'small',
168
+ border = true,
169
+ className,
170
+ ...rest
171
+ }: Props) => {
172
+ const { Icon, style } = useMemo(() => {
173
+ const fromMap = iconMap[type];
174
+ const style = { '--icon-color': fromMap.iconColor, '--background-color': fromMap.backgroundColor } as CSSProperties;
175
+ return { Icon: fromMap.icon, style };
176
+ }, [type]);
177
+
178
+ const cssStyles = useMemo(() => {
179
+ const styles = [sizes[size]];
180
+ if (background) {
181
+ styles.push(backgroundStyle);
182
+ }
183
+ if (border) {
184
+ styles.push(borderStyle);
185
+ }
186
+ return styles;
187
+ }, [background, border, size]);
188
+
189
+ return (
190
+ <BaseContentTypeBadge
191
+ css={cssStyles}
192
+ title={title}
193
+ style={style}
194
+ aria-label={title}
195
+ className={className}
196
+ data-badge=""
197
+ data-type={type}
198
+ {...rest}
199
+ >
200
+ <Icon />
201
+ </BaseContentTypeBadge>
202
+ );
105
203
  };
106
204
 
107
205
  export const SubjectMaterialBadge = (props: Omit<Props, 'type'>) => (
@@ -6,24 +6,47 @@
6
6
  *
7
7
  */
8
8
 
9
- import { HTMLAttributes, useMemo } from 'react';
9
+ import { HTMLAttributes } from 'react';
10
+ import styled from '@emotion/styled';
11
+ import { colors, spacing } from '@ndla/core';
10
12
 
11
13
  interface Props extends HTMLAttributes<HTMLDivElement> {}
12
14
 
13
- const FramedContent = ({ className, children, ...rest }: Props) => {
14
- const classes = useMemo(() => {
15
- const classes = ['c-bodybox'];
16
- if (className) {
17
- classes.push(className);
15
+ const StyledFramedContent = styled.div`
16
+ padding: ${spacing.mediumlarge};
17
+ margin: ${spacing.large} 0;
18
+ border: 1px solid ${colors.brand.tertiary};
19
+ overflow: hidden;
20
+
21
+ .c-figure {
22
+ width: 100% !important;
23
+ left: auto !important;
24
+ padding: 0;
25
+
26
+ &.u-float-right,
27
+ &.u-float-small-right {
28
+ width: 50% !important;
29
+ margin-right: 0;
30
+ }
31
+
32
+ &.u-float-left,
33
+ &.u-float-small-left {
34
+ width: 50% !important;
35
+ margin-left: 0;
18
36
  }
19
- return classes.join(' ');
20
- }, [className]);
21
-
22
- return (
23
- <div className={classes} {...rest}>
24
- {children}
25
- </div>
26
- );
37
+ }
38
+
39
+ &:first-child {
40
+ margin-top: 0;
41
+ }
42
+
43
+ &:last-child {
44
+ margin-bottom: 0;
45
+ }
46
+ `;
47
+
48
+ const FramedContent = ({ children, ...rest }: Props) => {
49
+ return <StyledFramedContent {...rest}>{children}</StyledFramedContent>;
27
50
  };
28
51
 
29
52
  export default FramedContent;
@@ -158,7 +158,7 @@ const ResourceWrapper = styled.div`
158
158
  gap: ${spacing.xsmall};
159
159
  align-items: center;
160
160
  :hover {
161
- .c-content-type-badge {
161
+ [data-badge] {
162
162
  width: 38px;
163
163
  height: 38px;
164
164
 
@@ -166,10 +166,10 @@ const ResourceWrapper = styled.div`
166
166
  width: 20px;
167
167
  height: 20px;
168
168
  }
169
- &.c-content-type-badge--subject-material,
170
- &.c-content-type-badge--learning-path,
171
- &.c-content-type-badge--source-material,
172
- &.c-content-type-badge--external-learning-resources {
169
+ [data-type='subject-material'],
170
+ [data-type='learning-path'],
171
+ [data-type='source-material'],
172
+ [data-type='external-learning-resources'] {
173
173
  svg {
174
174
  width: 26px;
175
175
  height: 26px;
@@ -34,7 +34,7 @@ const NoImageElement = styled.div<ItemTypeProps>`
34
34
  display: flex;
35
35
  align-items: center;
36
36
  justify-content: center;
37
- .c-content-type-badge {
37
+ [data-badge] {
38
38
  width: 58px;
39
39
  height: 58px;
40
40
  opacity: 0.2;
@@ -27,7 +27,7 @@ const Label = styled.div`
27
27
  align-items: center;
28
28
  margin: ${spacing.small} 0;
29
29
 
30
- .c-content-type-badge {
30
+ [data-badge] {
31
31
  width: 26px;
32
32
  height: 26px;
33
33
  margin-right: ${spacing.xsmall};
@@ -966,7 +966,8 @@ const messages = {
966
966
  title: 'Arena',
967
967
  category: {
968
968
  title: 'Categories',
969
- posts: 'Posts',
969
+ posts: 'post',
970
+ posts_plural: 'posts',
970
971
  },
971
972
  new: {
972
973
  post: 'Write a reply',
@@ -1000,11 +1001,13 @@ const messages = {
1000
1001
  publish: 'Publish',
1001
1002
  topic: {
1002
1003
  isDeleted: 'The topic has been deleted and can not be displayed.',
1003
- responses: 'Responses',
1004
+ responses: 'response',
1005
+ responses_plural: 'responses',
1004
1006
  topicContent: 'Write your topic here',
1005
1007
  fetchMore: 'Fetch more topics',
1006
1008
  },
1007
1009
  posts: {
1010
+ title: 'Posts',
1008
1011
  notify: 'Get notified of new answers',
1009
1012
  dropdownMenu: {
1010
1013
  report: 'Report post to moderator',
@@ -1012,6 +1015,7 @@ const messages = {
1012
1015
  delete: 'Delete post',
1013
1016
  },
1014
1017
  fetchMore: 'Fetch more answers',
1018
+ deleted: 'This post has been deleted by the author.',
1015
1019
  },
1016
1020
  flag: {
1017
1021
  title: 'Report post / comment',
@@ -1027,8 +1031,7 @@ const messages = {
1027
1031
  maxLength: 'The maximum length for the text field is reached',
1028
1032
  error: 'The field is required',
1029
1033
  },
1030
- bottomText:
1031
- 'Are you missing a category? You can request new categories. Use "Ask NDLA" or send an email to moderator@ndla.no',
1034
+ bottomText: 'Are you missing a category? Let our moderator know at moderator@ndla.no',
1032
1035
  notification: {
1033
1036
  title: 'Notifications',
1034
1037
  showAll: 'View all notifications',
@@ -965,7 +965,8 @@ const messages = {
965
965
  title: 'Arena',
966
966
  category: {
967
967
  title: 'Kategorier',
968
- posts: 'Innlegg',
968
+ posts: 'innlegg',
969
+ posts_plural: 'innlegg',
969
970
  },
970
971
  publish: 'Publiser',
971
972
  new: {
@@ -999,11 +1000,13 @@ const messages = {
999
1000
  },
1000
1001
  topic: {
1001
1002
  isDeleted: 'Innlegget har blitt slettet og kan ikke vises.',
1002
- responses: 'Svar',
1003
+ responses: 'svar',
1004
+ responses_plural: 'svar',
1003
1005
  topicContent: 'Skriv innlegget ditt her',
1004
1006
  fetchMore: 'Hent flere innlegg',
1005
1007
  },
1006
1008
  posts: {
1009
+ title: 'Innlegg',
1007
1010
  notify: 'Få varsel om nye svar',
1008
1011
  dropdownMenu: {
1009
1012
  report: 'Rapporter innlegg til moderator',
@@ -1011,6 +1014,7 @@ const messages = {
1011
1014
  delete: 'Slett innlegget',
1012
1015
  },
1013
1016
  fetchMore: 'Hent flere svar',
1017
+ deleted: 'Dette innlegget er slettet av forfatteren.',
1014
1018
  },
1015
1019
  flag: {
1016
1020
  title: 'Rapporter innlegg / kommentar',
@@ -1026,8 +1030,7 @@ const messages = {
1026
1030
  maxLength: 'Maksimal lengde for tekstfeltet er nådd',
1027
1031
  error: 'Feltet er påkrevd',
1028
1032
  },
1029
- bottomText:
1030
- 'Savner du en kategori? Du kan be om nye kategorier. Bruk “Spør NDLA” eller send en epost til moderator@ndla.no',
1033
+ bottomText: 'Savner du en kategori? Gi vår moderator beskjed på moderator@ndla.no',
1031
1034
  notification: {
1032
1035
  title: 'Varslinger',
1033
1036
  showAll: 'Se alle varslinger',
@@ -965,7 +965,8 @@ const messages = {
965
965
  title: 'Arena',
966
966
  category: {
967
967
  title: 'Kategoriar',
968
- posts: 'Innlegg',
968
+ posts: 'innlegg',
969
+ posts_plural: 'innlegg',
969
970
  },
970
971
  publish: 'Publiser',
971
972
  new: {
@@ -991,7 +992,8 @@ const messages = {
991
992
  },
992
993
  topic: {
993
994
  isDeleted: 'Innlegget har vorte sletta og kan ikkje visast.',
994
- responses: 'Svar',
995
+ responses: 'svar',
996
+ responses_plural: 'svar',
995
997
  topicContent: 'Skriv innlegget ditt her',
996
998
  fetchMore: 'Hent fleire innlegg',
997
999
  },
@@ -1004,6 +1006,7 @@ const messages = {
1004
1006
  topic: 'Innlegget har blitt oppdatert.',
1005
1007
  },
1006
1008
  posts: {
1009
+ title: 'Innlegg',
1007
1010
  notify: 'Få varsel om nye svar',
1008
1011
  dropdownMenu: {
1009
1012
  report: 'Rapporter innlegg til moderator',
@@ -1011,6 +1014,7 @@ const messages = {
1011
1014
  delete: 'Slett innlegget',
1012
1015
  },
1013
1016
  fetchMore: 'Hent fleire svar',
1017
+ deleted: 'Dette innlegget er sletta av forfatteren.',
1014
1018
  },
1015
1019
  flag: {
1016
1020
  title: 'Rapporter innlegg / kommentar',
@@ -1026,8 +1030,7 @@ const messages = {
1026
1030
  maxLength: 'Maksimal lengd for tekstfeltet er nådd',
1027
1031
  error: 'Feltet er påkravd',
1028
1032
  },
1029
- bottomText:
1030
- 'Saknar du ein kategori? Du kan be om nye kategoriar. Bruk "Spør NDLA" eller send ein epost til moderator@ndla.no',
1033
+ bottomText: 'Saknar du ein kategori? Gi moderatoren vår beskjed på moderator@ndla.no',
1031
1034
  notification: {
1032
1035
  title: 'Varslingar',
1033
1036
  showAll: 'Sjå alle varslingar',
@@ -967,7 +967,8 @@ const messages = {
967
967
  title: 'Arena',
968
968
  category: {
969
969
  title: 'Lágit',
970
- posts: 'Sáhkavuorru',
970
+ posts: 'sáhkavuorru',
971
+ posts_plural: 'sáhkavuorru',
971
972
  },
972
973
  publish: 'Almmuheaddji',
973
974
  new: {
@@ -1001,11 +1002,13 @@ const messages = {
1001
1002
  },
1002
1003
  topic: {
1003
1004
  isDeleted: 'Čálus lea sihkojuvvon iige sáhte čájehuvvot.',
1004
- responses: 'Vástidan',
1005
+ responses: 'vástidan',
1006
+ responses_plural: 'vástidan',
1005
1007
  topicContent: 'Čále sáhkavuoru dása',
1006
1008
  fetchMore: 'Viečča eanet čállosiid',
1007
1009
  },
1008
1010
  posts: {
1011
+ title: 'Sáhkavuorru',
1009
1012
  notify: 'Oaččo dieđu ođđa vástádusaid birra',
1010
1013
  dropdownMenu: {
1011
1014
  report: 'Raportere čállosa moderatorii',
@@ -1013,6 +1016,7 @@ const messages = {
1013
1016
  delete: 'Sihko čállosa',
1014
1017
  },
1015
1018
  fetchMore: 'Viečča eanet vástádusaid',
1019
+ deleted: 'Čálli lea sihkon dán sáhkavuoru.',
1016
1020
  },
1017
1021
  flag: {
1018
1022
  title: 'Rapportere čállosa / kommentára',
@@ -1028,8 +1032,7 @@ const messages = {
1028
1032
  maxLength: 'Teakstagieddeguhkkodat lea joavdan',
1029
1033
  error: 'Fealta gáibiduvvo',
1030
1034
  },
1031
- bottomText:
1032
- 'Váillahat go ovtta lági? Sáhtát jearrat ođđa lágiid. Geavat "Gihtten NDLA" dahje sádde e-poastta moderatator@ndla.no',
1035
+ bottomText: 'Váillahat go ovtta lági? Atte min moderatora dieđu dása moderator@ndla.no',
1033
1036
  notification: {
1034
1037
  title: 'Muittuhusat',
1035
1038
  showAll: 'Čájet buot dieđuid',
@@ -969,7 +969,8 @@ const messages = {
969
969
  title: 'Sijjie',
970
970
  category: {
971
971
  title: 'Lïhtsh',
972
- posts: 'Håaleme',
972
+ posts: 'håaleme',
973
+ posts_plural: 'håaleme',
973
974
  },
974
975
  publish: 'Bæjhkoehtidh',
975
976
  new: {
@@ -1003,11 +1004,13 @@ const messages = {
1003
1004
  },
1004
1005
  topic: {
1005
1006
  isDeleted: 'Tjaalege lea sliejhteme jïh ij maehtieh dam vuesiehtidh.',
1006
- responses: 'Vaestiedasse',
1007
+ responses: 'vaestiedasse',
1008
+ responses_plural: 'vaestiedasse',
1007
1009
  topicContent: 'Tjaelieh dov håalemem daesnie',
1008
1010
  fetchMore: 'Veedtjh jienebh saadtegh',
1009
1011
  },
1010
1012
  posts: {
1013
+ title: 'Håaleme',
1011
1014
  notify: 'Bïeljelh mejtie orre vaestiedassh',
1012
1015
  dropdownMenu: {
1013
1016
  report: 'Reekth håalemem moderatovrese',
@@ -1015,6 +1018,7 @@ const messages = {
1015
1018
  delete: 'Slett innlegget',
1016
1019
  },
1017
1020
  fetchMore: 'Jienebh vaestiedassh veedtjedh',
1021
+ deleted: 'Daate tjaalege lea tjaalegen tjïrrh sliejhteme.',
1018
1022
  },
1019
1023
  flag: {
1020
1024
  title: 'Påastem reektehtidh / kommentaarem',
@@ -1030,8 +1034,7 @@ const messages = {
1030
1034
  maxLength: 'Jeenjemes gåhkoe tjaalegegievleste båateme',
1031
1035
  error: 'Bielie daerpies',
1032
1036
  },
1033
- bottomText:
1034
- 'Akte kategorije datne ohtsedh ? Datne maahtah orre kategoriji bïjre rohkelidh Nuhtjh "Gihtjh NDLA" jallh seedth e-påastem moderaator@ndla.no',
1037
+ bottomText: 'Akte kategorije datne ohtsedh? Vedtieh mijjen moderatovrese bieljelimmiem moderatore@ndla.no',
1035
1038
  notification: {
1036
1039
  title: 'Bïeljelimmie',
1037
1040
  showAll: 'Gaajhkh bæjhkoehtimmieh vuartasjidh',
package/src/main.scss CHANGED
@@ -4,9 +4,6 @@
4
4
  @import 'Logo/component.logo';
5
5
  @import 'Article/component.article';
6
6
 
7
- @import 'global/components/component.bodybox';
8
7
  @import 'Figure/component.figure';
9
- @import 'Aside/component.aside';
10
- @import 'ContentTypeBadge/component.content-type-badge';
11
8
  @import 'Filter/component.filter';
12
9
  @import 'Search/component.search';
@@ -1,91 +0,0 @@
1
- /**
2
- ** Aside
3
- ** Used to display "facts box" or secondary column for older articles (using --float modifier).
4
- **/
5
-
6
- .c-aside {
7
- position: relative;
8
- margin: $spacing--large 0;
9
- @include font-size(16px, 1.5);
10
- z-index: 1;
11
-
12
- @include mq(tablet) {
13
- @include float(3, 4, 'right');
14
- max-width: 350px;
15
- }
16
-
17
- border-left: 4px solid $background-color--dark;
18
-
19
- &--wideScreen {
20
- display: none;
21
- @include mq(tablet) {
22
- display: block;
23
- }
24
- }
25
-
26
- &--narrowScreen {
27
- @include mq(tablet) {
28
- display: none;
29
- }
30
- }
31
- &--alwaysShow {
32
- display: block !important;
33
- }
34
- }
35
-
36
- .c-aside__content {
37
- color: $brand-grey-dark;
38
- padding: $spacing;
39
-
40
- & > *:first-child {
41
- margin-top: 0;
42
- }
43
- & > *:last-child {
44
- margin-bottom: 0;
45
- }
46
- }
47
-
48
- .c-aside img {
49
- box-shadow: 0px 0px 9px -3px $brand-grey;
50
- }
51
-
52
- .c-aside figure {
53
- // Overrule default images width
54
- width: 100% !important;
55
- left: 0 !important;
56
- padding: 0;
57
- }
58
-
59
- .c-aside h1 {
60
- margin-top: 0;
61
- margin-bottom: $spacing;
62
- @include font-size(22px, 34px);
63
- font-weight: $font-weight-bold;
64
- position: relative;
65
- z-index: 2;
66
- }
67
-
68
- .c-aside h2,
69
- .c-aside h3,
70
- .c-aside h4,
71
- .c-aside h5 {
72
- display: block;
73
- @include font-size(16px, 1.5);
74
- letter-spacing: 0.1em;
75
- margin-top: $spacing;
76
- margin-bottom: $spacing--small;
77
- }
78
-
79
- .c-aside__content > ul:not([class]),
80
- .c-aside__content :not(li) > ul:not([class]) {
81
- @include mq(desktop) {
82
- margin-left: $spacing;
83
- }
84
- }
85
-
86
- .c-aside__content > ol:not([class]),
87
- .c-aside__content :not(li) > ol:not([class]) {
88
- @include mq(desktop) {
89
- margin-left: $spacing--large;
90
- }
91
- }