@ndla/ui 22.0.2 → 22.0.3

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 (55) hide show
  1. package/es/Article/ArticleByline.js +7 -4
  2. package/es/Article/ArticleNotions.js +10 -6
  3. package/es/CompetenceGoals/CompetenceGoalsDialog.js +8 -4
  4. package/es/Filter/FilterButtons.js +10 -9
  5. package/es/Footer/FooterPrivacy.js +3 -2
  6. package/es/Masthead/MastheadSearchModal.js +4 -3
  7. package/es/ResourcesWrapper/ResourcesTopicTitle.js +7 -4
  8. package/es/SearchTypeResult/PopupFilter.js +12 -8
  9. package/es/SearchTypeResult/components/ItemContexts.js +8 -7
  10. package/es/Topic/Topic.js +21 -20
  11. package/es/User/AuthModal.js +9 -8
  12. package/es/locale/messages-en.js +9 -3
  13. package/es/locale/messages-nb.js +9 -3
  14. package/es/locale/messages-nn.js +9 -3
  15. package/es/locale/messages-se.js +9 -3
  16. package/es/locale/messages-sma.js +9 -3
  17. package/lib/Article/ArticleByline.js +7 -4
  18. package/lib/Article/ArticleNotions.js +10 -6
  19. package/lib/CompetenceGoals/CompetenceGoalsDialog.js +8 -4
  20. package/lib/Filter/FilterButtons.js +10 -9
  21. package/lib/Footer/FooterPrivacy.js +3 -2
  22. package/lib/Masthead/MastheadSearchModal.js +4 -3
  23. package/lib/ResourcesWrapper/ResourcesTopicTitle.js +7 -4
  24. package/lib/SearchTypeResult/PopupFilter.js +12 -8
  25. package/lib/SearchTypeResult/components/ItemContexts.js +8 -7
  26. package/lib/Topic/Topic.js +21 -20
  27. package/lib/User/AuthModal.js +9 -8
  28. package/lib/locale/messages-en.d.ts +6 -0
  29. package/lib/locale/messages-en.js +9 -3
  30. package/lib/locale/messages-nb.d.ts +6 -0
  31. package/lib/locale/messages-nb.js +9 -3
  32. package/lib/locale/messages-nn.d.ts +6 -0
  33. package/lib/locale/messages-nn.js +9 -3
  34. package/lib/locale/messages-se.d.ts +6 -0
  35. package/lib/locale/messages-se.js +9 -3
  36. package/lib/locale/messages-sma.d.ts +6 -0
  37. package/lib/locale/messages-sma.js +9 -3
  38. package/package.json +4 -4
  39. package/src/Article/ArticleByline.tsx +4 -1
  40. package/src/Article/ArticleNotions.tsx +4 -1
  41. package/src/CompetenceGoals/CompetenceGoalsDialog.jsx +5 -2
  42. package/src/Filter/FilterButtons.tsx +1 -0
  43. package/src/Footer/FooterPrivacy.tsx +4 -1
  44. package/src/Masthead/MastheadSearchModal.tsx +1 -0
  45. package/src/ResourcesWrapper/ResourcesTopicTitle.tsx +5 -1
  46. package/src/SearchTypeResult/PopupFilter.tsx +3 -1
  47. package/src/SearchTypeResult/components/ItemContexts.tsx +1 -0
  48. package/src/Topic/Topic.tsx +1 -0
  49. package/src/User/AuthModal.tsx +2 -1
  50. package/src/locale/messages-en.ts +6 -0
  51. package/src/locale/messages-nb.ts +6 -0
  52. package/src/locale/messages-nn.ts +6 -0
  53. package/src/locale/messages-se.ts +6 -0
  54. package/src/locale/messages-sma.ts +6 -0
  55. package/src/.DS_Store +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ndla/ui",
3
- "version": "22.0.2",
3
+ "version": "22.0.3",
4
4
  "description": "UI component library for NDLA.",
5
5
  "license": "GPL-3.0",
6
6
  "main": "lib/index.js",
@@ -38,8 +38,8 @@
38
38
  "@ndla/hooks": "^1.1.4",
39
39
  "@ndla/icons": "^1.11.3",
40
40
  "@ndla/licenses": "^5.0.6",
41
- "@ndla/modal": "^1.2.16",
42
- "@ndla/notion": "^3.1.27",
41
+ "@ndla/modal": "^1.2.17",
42
+ "@ndla/notion": "^3.1.28",
43
43
  "@ndla/safelink": "^2.2.5",
44
44
  "@ndla/switch": "^0.1.10",
45
45
  "@ndla/tabs": "^1.1.14",
@@ -83,5 +83,5 @@
83
83
  "publishConfig": {
84
84
  "access": "public"
85
85
  },
86
- "gitHead": "d26b1f085bcef66dcc1d8ed829072ab1223d28eb"
86
+ "gitHead": "7a872c80b02640a49da4f6343a032c1c242f5aed"
87
87
  }
@@ -102,6 +102,8 @@ const ArticleByline = ({
102
102
  const showPrimaryContributors = suppliers.length > 0 || authors.length > 0;
103
103
  const showSecondaryContributors = suppliers.length > 0 && authors.length > 0;
104
104
 
105
+ const buttonId = 'popupUseContent';
106
+
105
107
  return (
106
108
  <Wrapper>
107
109
  <div>
@@ -124,8 +126,9 @@ const ArticleByline = ({
124
126
  <ButtonWrapper>
125
127
  {licenseBox && (
126
128
  <Modal
129
+ labelledBy={buttonId}
127
130
  activateButton={
128
- <Button size="small" borderShape="rounded" outline>
131
+ <Button id={buttonId} size="small" borderShape="rounded" outline>
129
132
  {t('article.useContent')}
130
133
  </Button>
131
134
  }
@@ -165,14 +165,17 @@ type ArticleNotionsProps = {
165
165
  export const ArticleNotions = ({ notions, relatedContent = [], buttonOffsetRight, type }: ArticleNotionsProps) => {
166
166
  const { t } = useTranslation();
167
167
  const leftOffset = `${buttonOffsetRight - 32}px`;
168
+ const headingId = 'popupNotionHeading';
169
+
168
170
  return (
169
171
  <ArticleNotionsContainer>
170
172
  <Modal
173
+ labelledBy={headingId}
171
174
  activateButton={
172
175
  <NotionsTrigger role="button" aria-label={t('article.notionsPrompt')} style={{ left: leftOffset }}>
173
176
  <NotionFlip />
174
177
  <Explanation />
175
- <span>{t('article.notionsPrompt')}</span>
178
+ <span id={headingId}>{t('article.notionsPrompt')}</span>
176
179
  </NotionsTrigger>
177
180
  }
178
181
  size="large"
@@ -33,8 +33,11 @@ const HeadingWrapper = styled.h2`
33
33
 
34
34
  export const CompetenceGoalsDialog = ({ children, isOpen, onClose, subjectName, modalProps }) => {
35
35
  const { t } = useTranslation();
36
+ const iconId = 'popupCompetenceGoals';
37
+
36
38
  return (
37
39
  <Modal
40
+ labelledBy={iconId}
38
41
  {...modalProps}
39
42
  controllable
40
43
  isOpen={isOpen}
@@ -48,8 +51,8 @@ export const CompetenceGoalsDialog = ({ children, isOpen, onClose, subjectName,
48
51
  <ModalHeader modifier="menu">
49
52
  <HeaderWrapper>
50
53
  <HeadingWrapper>
51
- <FooterHeaderIcon size="24px" style={{ marginRight: '20px' }} />
52
- {'Utforsk læreplankoblinger'} {subjectName && ` \u2022 ${subjectName}`}
54
+ <FooterHeaderIcon id={iconId} size="24px" style={{ marginRight: '20px' }} />
55
+ {t('competenceGoals.modalText')} {subjectName && ` \u2022 ${subjectName}`}
53
56
  </HeadingWrapper>
54
57
  <ModalCloseButton onClick={close} title={t('competenceGoals.competenceGoalClose')} />
55
58
  </HeaderWrapper>
@@ -128,6 +128,7 @@ export const FilterButtons = ({ heading, items, onFilterToggle, onRemoveAllFilte
128
128
  </StyledButtonElementWrapper>
129
129
  ))}
130
130
  <Modal
131
+ label={t('searchPage.searchFilterMessages.resourceTypeFilter.button')}
131
132
  size="fullscreen"
132
133
  animation="subtle"
133
134
  backgroundColor="white"
@@ -69,7 +69,10 @@ const StyledFooterText = styled.div`
69
69
 
70
70
  const FooterPrivacy = ({ lang, label }: FooterPrivacyProps) => (
71
71
  <StyledFooterText>
72
- <Modal activateButton={<StyledPrivacyButton type="button">{label}</StyledPrivacyButton>} size="fullscreen">
72
+ <Modal
73
+ label={label}
74
+ activateButton={<StyledPrivacyButton type="button">{label}</StyledPrivacyButton>}
75
+ size="fullscreen">
73
76
  {(onClose: () => void) => (
74
77
  <OneColumn cssModifier="medium">
75
78
  <ModalHeader>
@@ -117,6 +117,7 @@ const MastheadSearchModal = ({
117
117
  t,
118
118
  }: Props & WithTranslation) => (
119
119
  <Modal
120
+ label={t('searchPage.searchFieldPlaceholder')}
120
121
  backgroundColor="grey"
121
122
  animation="slide-down"
122
123
  animationDuration={200}
@@ -66,6 +66,9 @@ const ResourcesTopicTitle = ({
66
66
  } else {
67
67
  heading = <h1 {...classes('topic-title', 'single')}>{messages.label}</h1>;
68
68
  }
69
+
70
+ const tooltipId = 'popupDialogTooltip';
71
+
69
72
  return (
70
73
  <header {...classes('topic-title-wrapper', { invertedStyle })}>
71
74
  <div>
@@ -82,6 +85,7 @@ const ResourcesTopicTitle = ({
82
85
  css={invertedStyle ? invertedSwitchCSS : switchCSS}
83
86
  />
84
87
  <Modal
88
+ labelledBy={tooltipId}
85
89
  narrow
86
90
  wrapperFunctionForButton={(activateButton: ReactNode) => (
87
91
  <TooltipWrapper>
@@ -89,7 +93,7 @@ const ResourcesTopicTitle = ({
89
93
  </TooltipWrapper>
90
94
  )}
91
95
  activateButton={
92
- <TooltipButton aria-label={t('resource.dialogTooltip')}>
96
+ <TooltipButton id={tooltipId} aria-label={t('resource.dialogTooltip')}>
93
97
  <HelpIcon invertedStyle={invertedStyle} />
94
98
  </TooltipButton>
95
99
  }>
@@ -92,9 +92,11 @@ const PopupFilter = ({
92
92
  }: PopupFilterProps) => {
93
93
  const { t } = useTranslation();
94
94
  const [selectedMenu, setSelectedMenu] = useState(MENU_ALL_SUBJECTS);
95
+ const headingId = 'popupFilterHeading';
95
96
 
96
97
  return (
97
98
  <Modal
99
+ labelledBy={headingId}
98
100
  controllable
99
101
  backgroundColor="white"
100
102
  animation="subtle"
@@ -107,7 +109,7 @@ const PopupFilter = ({
107
109
  <ModalWrapper>
108
110
  <ModalContent>
109
111
  <ModalHeaderWrapper>
110
- <ModalHeading>{t('searchPage.searchFilterMessages.filterLabel')}</ModalHeading>
112
+ <ModalHeading id={headingId}>{t('searchPage.searchFilterMessages.filterLabel')}</ModalHeading>
111
113
  <ModalCloseButton onClick={() => onClose()} title={t('searchPage.close')} />
112
114
  </ModalHeaderWrapper>
113
115
  {subjectCategories && programmes && (
@@ -98,6 +98,7 @@ const ItemContexts = ({ contexts, id, title }: ItemContextsType) => {
98
98
  &nbsp;
99
99
  {contexts.length > 1 && (
100
100
  <Modal
101
+ label={t('searchPage.contextModal.ariaLabel')}
101
102
  activateButton={
102
103
  <ModalButton link>
103
104
  {t('searchPage.contextModal.button', {
@@ -268,6 +268,7 @@ const Topic = ({
268
268
  {topic.visualElement ? (
269
269
  <>
270
270
  <Modal
271
+ label={t('topicPage.imageModal')}
271
272
  activateButton={
272
273
  <VisualElementButton
273
274
  stripped
@@ -83,7 +83,8 @@ const AuthModal = ({
83
83
  position={position}
84
84
  isOpen={isOpen}
85
85
  onClose={onClose}
86
- controllable={!activateButton}>
86
+ controllable={!activateButton}
87
+ label={isAuthenticated ? t('user.modal.isAuth') : t('user.modal.isNotAuth')}>
87
88
  {(onClose: () => void) => (
88
89
  <StyledModalBody>
89
90
  <StyledModalHeader>
@@ -171,6 +171,7 @@ const messages = {
171
171
  contextModal: {
172
172
  button: '+ {{count}} more contexts',
173
173
  heading: 'The resource is used in several contexts',
174
+ ariaLabel: 'View more contexts',
174
175
  },
175
176
  },
176
177
 
@@ -217,6 +218,7 @@ const messages = {
217
218
  articleErrorDescription: 'Sorry, an error occurred while loading the topic description.',
218
219
  topic: 'TOPIC',
219
220
  topics: 'Topics',
221
+ imageModal: 'View full size image',
220
222
  },
221
223
  welcomePage: {
222
224
  search: 'Search',
@@ -274,6 +276,7 @@ const messages = {
274
276
  search: 'Search',
275
277
  toFrontpage: 'To frontpage',
276
278
  subjectOverview: 'All subjects',
279
+ modalLabel: 'Choose content',
277
280
  backToSubjectFrontpage: 'Back to subject frontpage',
278
281
  title: 'Content',
279
282
  subjectPage: 'Subject front page',
@@ -394,6 +397,7 @@ const messages = {
394
397
  competenceGoals: {
395
398
  competenceGoal: 'competence-goal',
396
399
  title: 'Competence goals and curriculum ',
400
+ modalText: 'Explore curriculum links',
397
401
  closeCompetenceGoals: 'Close competence goals',
398
402
  showCompetenceGoals: 'Show competence goals',
399
403
  openCompentenceGoalsFilter: 'Filter competence goals',
@@ -962,6 +966,8 @@ const messages = {
962
966
  collectedInfo: 'We have collected the following information about you from Feide:',
963
967
  general: 'Resources that require logging in with Feide, are tagged with the icon',
964
968
  topic: 'Log in with Feide to access this topic.',
969
+ isAuth: 'User info',
970
+ isNotAuth: 'Log in with Feide',
965
971
  },
966
972
  resource: {
967
973
  accessDenied: 'We are sorry, but this resource is only available to teachers who are logged in with Feide.',
@@ -171,6 +171,7 @@ const messages = {
171
171
  contextModal: {
172
172
  button: '+ {{count}} flere steder',
173
173
  heading: 'Ressursen er brukt flere steder',
174
+ ariaLabel: 'Se flere kontekster',
174
175
  },
175
176
  },
176
177
  subjectPage: {
@@ -216,6 +217,7 @@ const messages = {
216
217
  articleErrorDescription: 'Beklager, en feil oppstod under lasting av emnebeskrivelsen.',
217
218
  topic: 'EMNE',
218
219
  topics: 'Emner',
220
+ imageModal: 'Se bildet i full størrelse',
219
221
  },
220
222
  welcomePage: {
221
223
  search: 'Søk',
@@ -274,6 +276,7 @@ const messages = {
274
276
  toFrontpage: 'Til forsiden',
275
277
  subjectOverview: 'Alle fag',
276
278
  title: 'Innhold',
279
+ modalLabel: 'Velg innhold',
277
280
  subjectPage: 'Fagforside',
278
281
  backToSubjectFrontpage: 'Tilbake til fagforsiden',
279
282
  openFilter: 'Filter',
@@ -392,6 +395,7 @@ const messages = {
392
395
  competenceGoals: {
393
396
  competenceGoal: 'kompetansemål',
394
397
  title: 'Kompetansemål og læreplan',
398
+ modalText: 'Utforsk læreplankoblinger',
395
399
  closeCompetenceGoals: 'Lukk kompetansemål',
396
400
  showCompetenceGoals: 'Vis kompetansemål',
397
401
  openCompentenceGoalsFilter: 'Filtrer kompetansemål',
@@ -960,6 +964,8 @@ const messages = {
960
964
  collectedInfo: 'Vi har hentet følgende informasjon om deg fra Feide:',
961
965
  general: 'Ressursene som krever pålogging med Feide, vises med ikonet',
962
966
  topic: 'Logg inn med Feide for å få tilgang til dette emnet.',
967
+ isAuth: 'Brukerinfo',
968
+ isNotAuth: 'Logg inn med Feide',
963
969
  },
964
970
  resource: {
965
971
  accessDenied: 'Vi beklager, men denne ressursen er bare for lærere innlogget med Feide.',
@@ -171,6 +171,7 @@ const messages = {
171
171
  contextModal: {
172
172
  button: '+ {{count}} fleire stader',
173
173
  heading: 'Ressursen er brukt fleire stader',
174
+ ariaLabel: 'Sjå fleire kontekstar',
174
175
  },
175
176
  },
176
177
  subjectPage: {
@@ -216,6 +217,7 @@ const messages = {
216
217
  articleErrorDescription: 'Orsak, ein feil oppstod under lasting av emneskildringa.',
217
218
  topic: 'EMNE',
218
219
  topics: 'Emne',
220
+ imageModal: 'Sjå biletet i full storleik',
219
221
  },
220
222
  welcomePage: {
221
223
  search: 'Søk',
@@ -274,6 +276,7 @@ const messages = {
274
276
  toFrontpage: 'Til framsida',
275
277
  subjectOverview: 'Alle fag',
276
278
  title: 'Innhald',
279
+ modalLabel: 'Vel innhald',
277
280
  subjectPage: 'Fagframside',
278
281
  backToSubjectFrontpage: 'Tilbake til fagframsida',
279
282
  openFilter: 'Filter',
@@ -393,6 +396,7 @@ const messages = {
393
396
  competenceGoals: {
394
397
  competenceGoal: 'kompetansemål',
395
398
  title: 'Kompetansemål og læreplan',
399
+ modalText: 'Utforsk læreplankoplingar',
396
400
  closeCompetenceGoals: 'Lukk kompetansemål',
397
401
  showCompetenceGoals: 'Vis kompetansemål',
398
402
  openCompentenceGoalsFilter: 'Filtrer kompetansemål',
@@ -961,6 +965,8 @@ const messages = {
961
965
  collectedInfo: 'Vi har henta denne informasjonen om deg frå Feide:',
962
966
  general: 'Ressursane som krev pålogging med Feide, vises med ikonet',
963
967
  topic: ' Logg inn med Feide for å få tilgang til dette emnet.',
968
+ isAuth: 'Brukarinfo',
969
+ isNotAuth: 'Logg inn med Feide',
964
970
  },
965
971
  resource: {
966
972
  accessDenied: 'Vi beklagar, men denne ressursen er berre for lærarar innlogga med Feide.',
@@ -171,6 +171,7 @@ const messages = {
171
171
  contextModal: {
172
172
  button: '+ {{count}} flere steder',
173
173
  heading: 'Ressursen er brukt flere steder',
174
+ ariaLabel: 'Se flere kontekster',
174
175
  },
175
176
  },
176
177
  subjectPage: {
@@ -216,6 +217,7 @@ const messages = {
216
217
  articleErrorDescription: 'Beklager, en feil oppstod under lasting av emnebeskrivelsen.',
217
218
  topic: 'EMNE',
218
219
  topics: 'Emner',
220
+ imageModal: 'Se bildet i full størrelse',
219
221
  },
220
222
  welcomePage: {
221
223
  search: 'Søk',
@@ -274,6 +276,7 @@ const messages = {
274
276
  toFrontpage: 'Til forsiden',
275
277
  subjectOverview: 'Alle fag',
276
278
  title: 'Innhold',
279
+ modalLabel: 'Velg innhold',
277
280
  subjectPage: 'Fagforside',
278
281
  backToSubjectFrontpage: 'Tilbake til fagforsiden',
279
282
  openFilter: 'Filter',
@@ -392,6 +395,7 @@ const messages = {
392
395
  competenceGoals: {
393
396
  competenceGoal: 'kompetansemål',
394
397
  title: 'Kompetansemål og læreplan',
398
+ modalText: 'Utforsk læreplankoblinger',
395
399
  closeCompetenceGoals: 'Lukk kompetansemål',
396
400
  showCompetenceGoals: 'Vis kompetansemål',
397
401
  openCompentenceGoalsFilter: 'Filtrer kompetansemål',
@@ -960,6 +964,8 @@ const messages = {
960
964
  collectedInfo: 'Vi har hentet følgende informasjon om deg fra Feide:',
961
965
  general: 'Ressursene som krever pålogging med Feide, vises med ikonet',
962
966
  topic: 'Logg inn med Feide for å få tilgang til dette emnet.',
967
+ isAuth: 'Brukerinfo',
968
+ isNotAuth: 'Logg inn med Feide',
963
969
  },
964
970
  resource: {
965
971
  accessDenied: 'Vi beklager, men denne ressursen er bare for lærere innlogget med Feide.',
@@ -171,6 +171,7 @@ const messages = {
171
171
  contextModal: {
172
172
  button: '+ {{count}} flere steder',
173
173
  heading: 'Ressursen er brukt flere steder',
174
+ ariaLabel: 'Se flere kontekster',
174
175
  },
175
176
  },
176
177
  subjectPage: {
@@ -216,6 +217,7 @@ const messages = {
216
217
  articleErrorDescription: 'Beklager, en feil oppstod under lasting av emnebeskrivelsen.',
217
218
  topic: 'EMNE',
218
219
  topics: 'Emner',
220
+ imageModal: 'Se bildet i full størrelse',
219
221
  },
220
222
  welcomePage: {
221
223
  search: 'Søk',
@@ -274,6 +276,7 @@ const messages = {
274
276
  toFrontpage: 'Til forsiden',
275
277
  subjectOverview: 'Alle fag',
276
278
  title: 'Innhold',
279
+ modalLabel: 'Velg innhold',
277
280
  subjectPage: 'Fagforside',
278
281
  backToSubjectFrontpage: 'Tilbake til fagforsiden',
279
282
  openFilter: 'Filter',
@@ -392,6 +395,7 @@ const messages = {
392
395
  competenceGoals: {
393
396
  competenceGoal: 'kompetansemål',
394
397
  title: 'Kompetansemål og læreplan',
398
+ modalText: 'Utforsk læreplankoblinger',
395
399
  closeCompetenceGoals: 'Lukk kompetansemål',
396
400
  showCompetenceGoals: 'Vis kompetansemål',
397
401
  openCompentenceGoalsFilter: 'Filtrer kompetansemål',
@@ -960,6 +964,8 @@ const messages = {
960
964
  collectedInfo: 'Vi har hentet følgende informasjon om deg fra Feide:',
961
965
  general: 'Ressursene som krever pålogging med Feide, vises med ikonet',
962
966
  topic: 'Logg inn med Feide for å få tilgang til dette emnet.',
967
+ isAuth: 'Brukerinfo',
968
+ isNotAuth: 'Logg inn med Feide',
963
969
  },
964
970
  resource: {
965
971
  accessDenied: 'Vi beklager, men denne ressursen er bare for lærere innlogget med Feide.',
package/src/.DS_Store DELETED
Binary file