@ndla/ui 35.0.9 → 35.0.11

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 (223) hide show
  1. package/es/Article/ArticleByline.js +4 -4
  2. package/es/Article/ArticleHeaderWrapper.js +1 -1
  3. package/es/Article/ArticleNotions.js +5 -5
  4. package/es/Article/ArticleSideBar.js +2 -2
  5. package/es/AudioPlayer/AudioPlayer.js +14 -14
  6. package/es/AudioPlayer/Controls.js +26 -26
  7. package/es/AuthorInfo/AuthorInfo.js +3 -3
  8. package/es/Breadcrumblist/Breadcrumblist.js +6 -6
  9. package/es/CompetenceGoalTab/CompetenceGoalTab.js +2 -2
  10. package/es/CompetenceGoals/CompetenceGoalsDialog.js +3 -3
  11. package/es/Embed/BrightcoveEmbed.js +2 -2
  12. package/es/Embed/ConceptEmbed.js +8 -8
  13. package/es/Embed/ImageEmbed.js +1 -1
  14. package/es/Embed/conceptComponents.js +11 -11
  15. package/es/Filter/FilterButtons.js +9 -9
  16. package/es/Footer/FooterLinks.js +6 -6
  17. package/es/Frontpage/FrontpageAllSubjects.js +7 -7
  18. package/es/Frontpage/FrontpageProgramMenu.js +3 -3
  19. package/es/Image/ImageLink.js +1 -1
  20. package/es/LanguageSelector/LanguageSelector.js +5 -5
  21. package/es/LearningPaths/LearningPathMenu.js +3 -3
  22. package/es/LearningPaths/LearningPathMenuAside.js +4 -4
  23. package/es/LearningPaths/LearningPathMenuContent.js +6 -6
  24. package/es/LearningPaths/LearningPathMenuModalWrapper.js +1 -1
  25. package/es/LetterFilter/LetterFilter.js +2 -2
  26. package/es/Masthead/Masthead.js +6 -6
  27. package/es/Masthead/MastheadAuthModal.js +1 -1
  28. package/es/Masthead/MastheadSearchModal.js +3 -3
  29. package/es/MyNdla/Resource/Folder.js +30 -25
  30. package/es/MyNdla/Resource/FolderInput.js +2 -2
  31. package/es/NDLAFilm/CategorySelect.js +3 -3
  32. package/es/NDLAFilm/FilmContentCard.js +3 -3
  33. package/es/NDLAFilm/FilmSlideshow.js +9 -9
  34. package/es/NDLAFilm/NavigationArrow.js +4 -4
  35. package/es/NDLAFilm/SlideshowIndicator.js +2 -2
  36. package/es/Navigation/NavigationBox.js +20 -20
  37. package/es/Navigation/NavigationTopicAbout.js +14 -14
  38. package/es/Notion/ConceptNotion.js +1 -1
  39. package/es/Notion/FigureNotion.js +1 -1
  40. package/es/Notion/NotionVisualElement.js +2 -2
  41. package/es/Programme/ProgrammeSubjects.js +1 -1
  42. package/es/ResourceGroup/ResourceItem.js +11 -11
  43. package/es/ResourcesWrapper/ResourcesTopicTitle.js +12 -12
  44. package/es/Search/ActiveFilterContent.js +2 -2
  45. package/es/Search/ActiveFilters.js +6 -6
  46. package/es/Search/ContentTypeResult.js +1 -1
  47. package/es/Search/SearchField.js +2 -2
  48. package/es/Search/SearchResult.js +10 -10
  49. package/es/Search/SearchResultSleeve.js +8 -8
  50. package/es/Search/ToggleSearchButton.js +2 -2
  51. package/es/SearchTypeResult/ActiveFilterContent.js +2 -2
  52. package/es/SearchTypeResult/ActiveFilters.js +6 -6
  53. package/es/SearchTypeResult/PopupFilter.js +7 -7
  54. package/es/SearchTypeResult/SearchFieldHeader.js +4 -4
  55. package/es/SearchTypeResult/SearchNotionItem.js +12 -12
  56. package/es/SearchTypeResult/SearchTypeHeader.js +9 -9
  57. package/es/SearchTypeResult/SearchViewType.js +4 -4
  58. package/es/SearchTypeResult/components/ItemContexts.js +7 -7
  59. package/es/SnackBar/DefaultSnackbar.js +2 -2
  60. package/es/TagSelector/DropdownIndicator.js +1 -1
  61. package/es/TagSelector/Option.js +2 -2
  62. package/es/TagSelector/ValueButton.js +1 -1
  63. package/es/Topic/Topic.js +17 -17
  64. package/es/TreeStructure/AddFolderButton.js +2 -2
  65. package/es/TreeStructure/ComboboxButton.js +2 -2
  66. package/es/TreeStructure/FolderItem.js +5 -5
  67. package/es/TreeStructure/FolderItems.js +2 -2
  68. package/es/TreeStructure/TreeStructure.js +7 -7
  69. package/es/User/AuthModal.js +7 -7
  70. package/lib/Article/ArticleByline.js +4 -4
  71. package/lib/Article/ArticleHeaderWrapper.js +1 -1
  72. package/lib/Article/ArticleNotions.js +5 -5
  73. package/lib/Article/ArticleSideBar.js +2 -2
  74. package/lib/AudioPlayer/AudioPlayer.js +14 -14
  75. package/lib/AudioPlayer/Controls.js +26 -26
  76. package/lib/AuthorInfo/AuthorInfo.js +3 -3
  77. package/lib/Breadcrumblist/Breadcrumblist.js +6 -6
  78. package/lib/CompetenceGoalTab/CompetenceGoalTab.js +2 -2
  79. package/lib/CompetenceGoals/CompetenceGoalsDialog.js +3 -3
  80. package/lib/Embed/BrightcoveEmbed.js +2 -2
  81. package/lib/Embed/ConceptEmbed.js +8 -8
  82. package/lib/Embed/ImageEmbed.js +1 -1
  83. package/lib/Embed/conceptComponents.js +11 -11
  84. package/lib/Filter/FilterButtons.js +9 -9
  85. package/lib/Footer/FooterLinks.js +6 -6
  86. package/lib/Frontpage/FrontpageAllSubjects.js +7 -7
  87. package/lib/Frontpage/FrontpageProgramMenu.js +3 -3
  88. package/lib/Image/ImageLink.js +1 -1
  89. package/lib/LanguageSelector/LanguageSelector.js +5 -5
  90. package/lib/LearningPaths/LearningPathMenu.js +3 -3
  91. package/lib/LearningPaths/LearningPathMenuAside.js +4 -4
  92. package/lib/LearningPaths/LearningPathMenuContent.js +6 -6
  93. package/lib/LearningPaths/LearningPathMenuModalWrapper.js +1 -1
  94. package/lib/LetterFilter/LetterFilter.js +2 -2
  95. package/lib/Masthead/Masthead.js +6 -6
  96. package/lib/Masthead/MastheadAuthModal.js +1 -1
  97. package/lib/Masthead/MastheadSearchModal.js +3 -3
  98. package/lib/MyNdla/Resource/Folder.d.ts +2 -1
  99. package/lib/MyNdla/Resource/Folder.js +28 -23
  100. package/lib/MyNdla/Resource/FolderInput.js +2 -2
  101. package/lib/NDLAFilm/CategorySelect.js +3 -3
  102. package/lib/NDLAFilm/FilmContentCard.js +3 -3
  103. package/lib/NDLAFilm/FilmSlideshow.js +9 -9
  104. package/lib/NDLAFilm/NavigationArrow.js +4 -4
  105. package/lib/NDLAFilm/SlideshowIndicator.js +2 -2
  106. package/lib/Navigation/NavigationBox.js +20 -20
  107. package/lib/Navigation/NavigationTopicAbout.js +14 -14
  108. package/lib/Notion/ConceptNotion.js +1 -1
  109. package/lib/Notion/FigureNotion.js +1 -1
  110. package/lib/Notion/NotionVisualElement.js +2 -2
  111. package/lib/Programme/ProgrammeSubjects.js +1 -1
  112. package/lib/ResourceGroup/ResourceItem.js +11 -11
  113. package/lib/ResourcesWrapper/ResourcesTopicTitle.js +12 -12
  114. package/lib/Search/ActiveFilterContent.js +2 -2
  115. package/lib/Search/ActiveFilters.js +6 -6
  116. package/lib/Search/ContentTypeResult.js +1 -1
  117. package/lib/Search/SearchField.js +2 -2
  118. package/lib/Search/SearchResult.js +10 -10
  119. package/lib/Search/SearchResultSleeve.js +8 -8
  120. package/lib/Search/ToggleSearchButton.js +2 -2
  121. package/lib/SearchTypeResult/ActiveFilterContent.js +2 -2
  122. package/lib/SearchTypeResult/ActiveFilters.js +6 -6
  123. package/lib/SearchTypeResult/PopupFilter.js +7 -7
  124. package/lib/SearchTypeResult/SearchFieldHeader.js +4 -4
  125. package/lib/SearchTypeResult/SearchNotionItem.js +12 -12
  126. package/lib/SearchTypeResult/SearchTypeHeader.js +9 -9
  127. package/lib/SearchTypeResult/SearchViewType.js +4 -4
  128. package/lib/SearchTypeResult/components/ItemContexts.js +7 -7
  129. package/lib/SnackBar/DefaultSnackbar.js +2 -2
  130. package/lib/TagSelector/DropdownIndicator.js +1 -1
  131. package/lib/TagSelector/Option.js +2 -2
  132. package/lib/TagSelector/ValueButton.js +1 -1
  133. package/lib/Topic/Topic.js +17 -17
  134. package/lib/TreeStructure/AddFolderButton.js +2 -2
  135. package/lib/TreeStructure/ComboboxButton.js +2 -2
  136. package/lib/TreeStructure/FolderItem.js +5 -5
  137. package/lib/TreeStructure/FolderItems.js +2 -2
  138. package/lib/TreeStructure/TreeStructure.js +7 -7
  139. package/lib/User/AuthModal.js +7 -7
  140. package/lib/types.d.ts +1 -1
  141. package/package.json +12 -12
  142. package/src/Article/ArticleByline.tsx +8 -4
  143. package/src/Article/ArticleHeaderWrapper.tsx +2 -1
  144. package/src/Article/ArticleNotions.tsx +2 -1
  145. package/src/Article/ArticleSideBar.tsx +4 -2
  146. package/src/AudioPlayer/AudioPlayer.tsx +4 -2
  147. package/src/AudioPlayer/Controls.tsx +12 -6
  148. package/src/AuthorInfo/AuthorInfo.tsx +1 -1
  149. package/src/Breadcrumblist/Breadcrumblist.tsx +4 -2
  150. package/src/CompetenceGoalTab/CompetenceGoalTab.tsx +4 -2
  151. package/src/CompetenceGoals/CompetenceGoalsDialog.tsx +2 -1
  152. package/src/ContentLoader/index.tsx +2 -1
  153. package/src/Dialog/Dialog.tsx +4 -2
  154. package/src/Embed/AudioEmbed.tsx +12 -6
  155. package/src/Embed/BrightcoveEmbed.tsx +6 -3
  156. package/src/Embed/ConceptEmbed.tsx +6 -3
  157. package/src/Embed/ImageEmbed.tsx +12 -6
  158. package/src/Embed/conceptComponents.tsx +4 -2
  159. package/src/Figure/Figure.tsx +6 -3
  160. package/src/Figure/FigureBylineExpandButton.tsx +2 -1
  161. package/src/Figure/FigureExpandButton.tsx +2 -1
  162. package/src/Figure/FigureOpenDialogButton.tsx +2 -1
  163. package/src/Filter/FilterButtons.tsx +6 -3
  164. package/src/Filter/FilterList.tsx +4 -2
  165. package/src/Filter/FilterListPhone.tsx +6 -3
  166. package/src/Footer/FooterLinks.tsx +2 -1
  167. package/src/Frontpage/FrontpageAllSubjects.tsx +2 -1
  168. package/src/Frontpage/FrontpageProgramMenu.tsx +4 -2
  169. package/src/Image/ImageLink.tsx +2 -1
  170. package/src/LanguageSelector/LanguageSelector.tsx +2 -1
  171. package/src/LearningPaths/LearningPathMenu.tsx +2 -1
  172. package/src/LearningPaths/LearningPathMenuAside.tsx +2 -1
  173. package/src/LearningPaths/LearningPathMenuContent.tsx +4 -2
  174. package/src/LearningPaths/LearningPathMenuModalWrapper.tsx +2 -1
  175. package/src/LetterFilter/LetterFilter.tsx +2 -1
  176. package/src/Logo/SvgLogo.tsx +2 -1
  177. package/src/Masthead/Masthead.tsx +2 -1
  178. package/src/Masthead/MastheadAuthModal.tsx +2 -1
  179. package/src/Masthead/MastheadSearchModal.tsx +4 -2
  180. package/src/MyNdla/Resource/Folder.stories.mdx +1 -0
  181. package/src/MyNdla/Resource/Folder.tsx +17 -9
  182. package/src/MyNdla/Resource/FolderInput.tsx +2 -1
  183. package/src/NDLAFilm/CategorySelect.tsx +6 -3
  184. package/src/NDLAFilm/FilmContentCard.tsx +4 -2
  185. package/src/NDLAFilm/FilmSlideshow.tsx +2 -1
  186. package/src/NDLAFilm/NavigationArrow.tsx +2 -1
  187. package/src/NDLAFilm/SlideshowIndicator.tsx +2 -1
  188. package/src/Navigation/NavigationBox.tsx +6 -3
  189. package/src/Navigation/NavigationTopicAbout.tsx +2 -1
  190. package/src/Notion/ConceptNotion.tsx +8 -4
  191. package/src/Notion/FigureNotion.tsx +4 -2
  192. package/src/Notion/NotionVisualElement.tsx +2 -1
  193. package/src/Programme/ProgrammeSubjects.tsx +2 -1
  194. package/src/RelatedArticleList/RelatedArticleList.tsx +2 -1
  195. package/src/ResourceGroup/ResourceItem.tsx +2 -1
  196. package/src/ResourcesWrapper/ResourcesTopicTitle.tsx +2 -1
  197. package/src/Search/ActiveFilterContent.tsx +2 -1
  198. package/src/Search/ActiveFilters.tsx +2 -1
  199. package/src/Search/ContentTypeResult.tsx +4 -2
  200. package/src/Search/SearchField.tsx +4 -2
  201. package/src/Search/SearchResult.tsx +2 -1
  202. package/src/Search/SearchResultSleeve.tsx +4 -2
  203. package/src/Search/ToggleSearchButton.tsx +2 -1
  204. package/src/SearchTypeResult/ActiveFilterContent.tsx +2 -1
  205. package/src/SearchTypeResult/ActiveFilters.tsx +4 -2
  206. package/src/SearchTypeResult/PopupFilter.tsx +6 -3
  207. package/src/SearchTypeResult/SearchFieldHeader.tsx +2 -1
  208. package/src/SearchTypeResult/SearchNotionItem.tsx +2 -1
  209. package/src/SearchTypeResult/SearchTypeHeader.tsx +2 -1
  210. package/src/SearchTypeResult/SearchViewType.tsx +4 -2
  211. package/src/SearchTypeResult/components/ItemContexts.tsx +2 -1
  212. package/src/SnackBar/DefaultSnackbar.tsx +2 -1
  213. package/src/TagSelector/DropdownIndicator.tsx +2 -1
  214. package/src/TagSelector/Option.tsx +2 -1
  215. package/src/TagSelector/ValueButton.tsx +2 -1
  216. package/src/Topic/Topic.tsx +6 -3
  217. package/src/TreeStructure/AddFolderButton.tsx +2 -1
  218. package/src/TreeStructure/ComboboxButton.tsx +6 -3
  219. package/src/TreeStructure/FolderItem.tsx +8 -4
  220. package/src/TreeStructure/FolderItems.tsx +4 -2
  221. package/src/TreeStructure/TreeStructure.tsx +2 -1
  222. package/src/User/AuthModal.tsx +2 -1
  223. package/src/types.ts +1 -1
package/lib/types.d.ts CHANGED
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import { ReactNode } from 'react';
9
9
  declare const locales: readonly ["nb", "nn", "en", "se", "sma"];
10
- export type Locale = typeof locales[number];
10
+ export type Locale = (typeof locales)[number];
11
11
  export type Link = {
12
12
  text: string;
13
13
  to: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ndla/ui",
3
- "version": "35.0.9",
3
+ "version": "35.0.11",
4
4
  "description": "UI component library for NDLA.",
5
5
  "license": "GPL-3.0",
6
6
  "main": "lib/index.js",
@@ -32,19 +32,19 @@
32
32
  ],
33
33
  "dependencies": {
34
34
  "@ndla/article-scripts": "^3.0.16",
35
- "@ndla/button": "^10.0.4",
36
- "@ndla/carousel": "^3.0.7",
35
+ "@ndla/button": "^10.0.6",
36
+ "@ndla/carousel": "^3.0.9",
37
37
  "@ndla/core": "^3.1.3",
38
- "@ndla/forms": "^4.2.12",
38
+ "@ndla/forms": "^4.2.14",
39
39
  "@ndla/hooks": "^2.0.3",
40
- "@ndla/icons": "^2.2.7",
41
- "@ndla/licenses": "^7.0.2",
42
- "@ndla/modal": "^2.2.11",
43
- "@ndla/notion": "^4.2.9",
44
- "@ndla/safelink": "^4.0.14",
40
+ "@ndla/icons": "^2.2.9",
41
+ "@ndla/licenses": "^7.0.3",
42
+ "@ndla/modal": "^2.2.13",
43
+ "@ndla/notion": "^4.2.11",
44
+ "@ndla/safelink": "^4.0.16",
45
45
  "@ndla/switch": "^1.0.8",
46
- "@ndla/tabs": "^2.1.12",
47
- "@ndla/tooltip": "^4.0.14",
46
+ "@ndla/tabs": "^2.1.14",
47
+ "@ndla/tooltip": "^4.0.16",
48
48
  "@ndla/types-learningpath-api": "^0.0.20",
49
49
  "@ndla/util": "^3.1.11",
50
50
  "@radix-ui/react-accordion": "1.1.0",
@@ -87,5 +87,5 @@
87
87
  "publishConfig": {
88
88
  "access": "public"
89
89
  },
90
- "gitHead": "27dac8e675121d005ea26442c1391d83fa4c04ea"
90
+ "gitHead": "97f2a58aa78966031d19a4589d1c1939d8b843b8"
91
91
  }
@@ -155,7 +155,8 @@ const ArticleByline = ({
155
155
  }
156
156
  backgroundColor="white"
157
157
  position="top"
158
- size="medium">
158
+ size="medium"
159
+ >
159
160
  {(onClose: () => void) => (
160
161
  <>
161
162
  <ModalHeader modifier="no-bottom-padding">
@@ -174,7 +175,8 @@ const ArticleByline = ({
174
175
  aria-live="assertive"
175
176
  copyNode={t('license.hasCopiedTitle')}
176
177
  data-copy-string={copySourceReference}
177
- onClick={copyLicense}>
178
+ onClick={copyLicense}
179
+ >
178
180
  {`${t('license.copy')} ${t('license.copyTitle').toLowerCase()}`}
179
181
  </CopyButton>
180
182
  )}
@@ -186,7 +188,8 @@ const ArticleByline = ({
186
188
  variant="outline"
187
189
  aria-live="assertive"
188
190
  data-copy-string={copyPageUrlLink}
189
- copyNode={t('article.copyPageLinkCopied')}>
191
+ copyNode={t('article.copyPageLinkCopied')}
192
+ >
190
193
  {t('article.copyPageLink')}
191
194
  </CopyButton>
192
195
  )}
@@ -198,7 +201,8 @@ const ArticleByline = ({
198
201
  aria-live="assertive"
199
202
  copyNode={t('license.hasCopiedTitle')}
200
203
  data-copy-string={copyEmbedLink}
201
- onClick={copyEmbededLink}>
204
+ onClick={copyEmbededLink}
205
+ >
202
206
  {`${t('license.copy')} ${t('license.tabs.embedlink').toLowerCase()}`}
203
207
  </CopyButton>
204
208
  )}
@@ -83,7 +83,8 @@ const ArticleHeaderWrapper = ({ children, competenceGoals, competenceGoalsLoadin
83
83
  colorTheme="light"
84
84
  shape="pill"
85
85
  onClick={openDialog}
86
- disabled={competenceGoalsLoading}>
86
+ disabled={competenceGoalsLoading}
87
+ >
87
88
  <FooterHeaderIcon />
88
89
  <CompetenceBadgeText>{t('competenceGoals.showCompetenceGoals')}</CompetenceBadgeText>
89
90
  </ButtonV2>
@@ -179,7 +179,8 @@ export const ArticleNotions = ({ notions, relatedContent = [], buttonOffsetRight
179
179
  </NotionsTrigger>
180
180
  }
181
181
  size="large"
182
- backgroundColor="white">
182
+ backgroundColor="white"
183
+ >
183
184
  {(onClose: () => void) => (
184
185
  <div>
185
186
  <ModalHeader modifier="notions-modal-header no-padding">
@@ -41,7 +41,8 @@ const ArticleSideBar = ({ copyPageUrlLink, licenseBox }: Props) => {
41
41
  variant="outline"
42
42
  aria-live="assertive"
43
43
  copyNode={t('article.copyPageLinkCopied')}
44
- data-copy-string={copyPageUrlLink}>
44
+ data-copy-string={copyPageUrlLink}
45
+ >
45
46
  {t('article.copyPageLink')}
46
47
  </CopyButton>
47
48
  </ButtonWrapper>
@@ -53,7 +54,8 @@ const ArticleSideBar = ({ copyPageUrlLink, licenseBox }: Props) => {
53
54
  {t('article.useContent')}
54
55
  </ButtonV2>
55
56
  }
56
- size="medium">
57
+ size="medium"
58
+ >
57
59
  {(onClose: () => void) => (
58
60
  <>
59
61
  <ModalHeader modifier="no-bottom-padding">
@@ -247,7 +247,8 @@ const AudioPlayer = ({ src, title, subtitle, speech, description, img, textVersi
247
247
  <div
248
248
  ref={descriptionRef}
249
249
  data-audio-player-description={1}
250
- data-read-more-text={t('audio.readMoreDescriptionLabel')}>
250
+ data-read-more-text={t('audio.readMoreDescriptionLabel')}
251
+ >
251
252
  {description}
252
253
  </div>
253
254
  </StyledDescription>
@@ -266,7 +267,8 @@ const AudioPlayer = ({ src, title, subtitle, speech, description, img, textVersi
266
267
  variant="link"
267
268
  size="normal"
268
269
  onClick={toggleTextVersion}
269
- data-audio-text-button-id={staticRenderId}>
270
+ data-audio-text-button-id={staticRenderId}
271
+ >
270
272
  <CrossIcon style={{ width: '20px', height: '20px' }} />
271
273
  <CloseText>{t('audio.textVersion.close')}</CloseText>
272
274
  </LinkButton>
@@ -444,7 +444,8 @@ const Controls = ({ src, title }: Props) => {
444
444
  aria-label={t('audio.controls.rewind15sec')}
445
445
  onClick={() => {
446
446
  onSeekSeconds(-15);
447
- }}>
447
+ }}
448
+ >
448
449
  <Back15 />
449
450
  </Back15SecButton>
450
451
  </WardButtonWrapper>
@@ -455,7 +456,8 @@ const Controls = ({ src, title }: Props) => {
455
456
  type="button"
456
457
  as="button"
457
458
  title={t('audio.controls.selectSpeed')}
458
- aria-label={t('audio.controls.selectSpeed')}>
459
+ aria-label={t('audio.controls.selectSpeed')}
460
+ >
459
461
  {speedValue}x
460
462
  </SpeedButton>
461
463
  <SpeedMenu as="div" portal={false}>
@@ -470,7 +472,8 @@ const Controls = ({ src, title }: Props) => {
470
472
  selected={speed === speedValue}
471
473
  onSelect={() => {
472
474
  setSpeedValue(speed);
473
- }}>
475
+ }}
476
+ >
474
477
  {speed}x{speed === speedValue && <SpeedSelectedMark />}
475
478
  </SpeedValueButton>
476
479
  ))}
@@ -486,7 +489,8 @@ const Controls = ({ src, title }: Props) => {
486
489
  aria-label={t('audio.controls.forward15sec')}
487
490
  onClick={() => {
488
491
  onSeekSeconds(15);
489
- }}>
492
+ }}
493
+ >
490
494
  <Forward15 />
491
495
  </Forward15SecButton>
492
496
  </WardButtonWrapper>
@@ -509,7 +513,8 @@ const Controls = ({ src, title }: Props) => {
509
513
  type="button"
510
514
  as="button"
511
515
  title={t('audio.controls.adjustVolume')}
512
- aria-label={t('audio.controls.adjustVolume')}>
516
+ aria-label={t('audio.controls.adjustVolume')}
517
+ >
513
518
  <VolumeUp />
514
519
  </VolumeButton>
515
520
  <VolumeMenu as="div" portal={false}>
@@ -518,7 +523,8 @@ const Controls = ({ src, title }: Props) => {
518
523
  <SliderInput
519
524
  orientation={SliderOrientation.Vertical}
520
525
  onChange={handleVolumeSliderChange}
521
- value={volumeValue}>
526
+ value={volumeValue}
527
+ >
522
528
  <VolumeSliderBackground as="div">
523
529
  <VolumeSliderSelected as="div" />
524
530
  <VolumeSliderHandle as="div" />
@@ -53,7 +53,7 @@ const StyledPortrait = styled(Portrait)`
53
53
  width: 4rem;
54
54
  height: 4rem;
55
55
  }
56
- } ;
56
+ }
57
57
  `;
58
58
 
59
59
  const StyledHeading = styled.h1`
@@ -279,7 +279,8 @@ const Breadcrumblist = ({
279
279
  startOffset={wrapperOffset}
280
280
  hideOnNarrow={hideOnNarrow}
281
281
  isVisible={isVisible}
282
- mastheadHeight={mastheadHeight}>
282
+ mastheadHeight={mastheadHeight}
283
+ >
283
284
  {items.length > 0 && (
284
285
  <>
285
286
  <Heading invertedStyle={invertedStyle}>{t('breadcrumb.youAreHere')}</Heading>
@@ -296,7 +297,8 @@ const Breadcrumblist = ({
296
297
  onClick={(e: MouseEvent<HTMLElement>) => {
297
298
  onNav && onNav(e, item);
298
299
  }}
299
- aria-label={label}>
300
+ aria-label={label}
301
+ >
300
302
  <IconWrapper invertedStyle={invertedStyle} isCurrent={isCurrent}>
301
303
  {icon && icon}
302
304
  {typename && TypeIcon(typename)}
@@ -51,12 +51,14 @@ const CompetenceGoalTab = ({ list, isOembed }: CompetenceProps) => {
51
51
  ? t('competenceGoals.competenceTabCoreTooltip')
52
52
  : t('competenceGoals.showCompetenceGoals')
53
53
  }
54
- key={`tabitem-${id}`}>
54
+ key={`tabitem-${id}`}
55
+ >
55
56
  <ButtonV2
56
57
  shape="pill"
57
58
  aria-current={id === currentTabItem.id}
58
59
  colorTheme={id !== currentTabItem.id ? 'lighter' : undefined}
59
- onClick={() => setCurrentTab(list[index])}>
60
+ onClick={() => setCurrentTab(list[index])}
61
+ >
60
62
  {tabTitle}
61
63
  </ButtonV2>
62
64
  </Tooltip>
@@ -70,7 +70,8 @@ export const CompetenceGoalsDialog = ({ children, isOpen, onClose, subjectName,
70
70
  onClose={onClose}
71
71
  size="fullscreen"
72
72
  backgroundColor="light-gradient"
73
- narrow>
73
+ narrow
74
+ >
74
75
  {(close) => (
75
76
  <>
76
77
  <ModalHeader modifier="menu">
@@ -40,7 +40,8 @@ const ContentLoader = ({
40
40
  className={className}
41
41
  {...rest}
42
42
  height={typeof height === 'string' ? height : undefined}
43
- width={typeof width === 'string' ? width : undefined}>
43
+ width={typeof width === 'string' ? width : undefined}
44
+ >
44
45
  <rect
45
46
  style={{ fill: `url(#${idGradient})` }}
46
47
  clipPath={`url(#${idClip})`}
@@ -52,7 +52,8 @@ export const Dialog = ({
52
52
  aria-hidden={hidden}
53
53
  aria-labelledby={labelledby}
54
54
  aria-label={label}
55
- {...rest}>
55
+ {...rest}
56
+ >
56
57
  <div {...classes('content')}>
57
58
  <button
58
59
  {...classes('close')}
@@ -61,7 +62,8 @@ export const Dialog = ({
61
62
  if (onClose) {
62
63
  onClose();
63
64
  }
64
- }}>
65
+ }}
66
+ >
65
67
  {messages.close}
66
68
  </button>
67
69
  {children}
@@ -54,7 +54,8 @@ const AudioEmbed = ({ embed, articlePath }: Props) => {
54
54
  viewBox="0 0 24 12"
55
55
  width="100%"
56
56
  xmlns="http://www.w3.org/2000/svg"
57
- style={{ backgroundColor: '#EFF0F2' }}>
57
+ style={{ backgroundColor: '#EFF0F2' }}
58
+ >
58
59
  <path d="M0 0h24v24H0V0z" fill="none" />
59
60
  <path
60
61
  transform="scale(0.3) translate(28, 8.5)"
@@ -138,14 +139,16 @@ const AudioEmbed = ({ embed, articlePath }: Props) => {
138
139
  authors={contributors}
139
140
  origin={data.copyright.origin}
140
141
  locale={i18n.language}
141
- type="audio">
142
+ type="audio"
143
+ >
142
144
  {data.copyright.license.license !== 'COPYRIGHT' && (
143
145
  <>
144
146
  {copyString && (
145
147
  <CopyButton
146
148
  variant="outline"
147
149
  copyNode={t('license.hasCopiedTitle')}
148
- onClick={() => navigator.clipboard.writeText(copyString)}>
150
+ onClick={() => navigator.clipboard.writeText(copyString)}
151
+ >
149
152
  {t('license.copyTitle')}
150
153
  </CopyButton>
151
154
  )}
@@ -212,7 +215,8 @@ const ImageLicense = ({ articlePath, title, imageUrl, copyright }: ImageLicenseP
212
215
  </ButtonV2>
213
216
  }
214
217
  authors={captionAuthors}
215
- locale={i18n.language}>
218
+ locale={i18n.language}
219
+ >
216
220
  <ModalV2 controlled isOpen={isOpen} onClose={() => setIsOpen(false)}>
217
221
  {(close) => (
218
222
  <FigureLicenseDialogContent
@@ -222,14 +226,16 @@ const ImageLicense = ({ articlePath, title, imageUrl, copyright }: ImageLicenseP
222
226
  authors={contributors}
223
227
  origin={copyright.origin}
224
228
  locale={i18n.language}
225
- type="image">
229
+ type="image"
230
+ >
226
231
  {copyright.license.license !== 'COPYRIGHTED' && (
227
232
  <>
228
233
  {copyString && (
229
234
  <CopyButton
230
235
  variant="outline"
231
236
  copyNode={t('license.hasCopiedTitle')}
232
- onClick={() => navigator.clipboard.writeText(copyString)}>
237
+ onClick={() => navigator.clipboard.writeText(copyString)}
238
+ >
233
239
  {t('license.copyTitle')}
234
240
  </CopyButton>
235
241
  )}
@@ -142,7 +142,8 @@ const BrightcoveEmbed = ({ embed, isConcept }: Props) => {
142
142
  variant="outline"
143
143
  shape="pill"
144
144
  size="small"
145
- onClick={() => setShowOriginalVideo((p) => !p)}>
145
+ onClick={() => setShowOriginalVideo((p) => !p)}
146
+ >
146
147
  {t(`figure.button.${showOriginalVideo ? 'original' : 'alternative'}`)}
147
148
  </LinkedVideoButton>
148
149
  }
@@ -158,7 +159,8 @@ const BrightcoveEmbed = ({ embed, isConcept }: Props) => {
158
159
  locale={i18n.language}
159
160
  license={license}
160
161
  authors={contributors}
161
- type="video">
162
+ type="video"
163
+ >
162
164
  <VideoLicenseButtons
163
165
  download={download}
164
166
  licenseCode={data.copyright?.license.license}
@@ -195,7 +197,8 @@ const VideoLicenseButtons = ({ download, src, width, height, name, licenseCode }
195
197
  <CopyButton
196
198
  variant="outline"
197
199
  copyNode={t('license.hasCopiedTitle')}
198
- onClick={() => navigator.clipboard.writeText(makeIframeString(src, width, height, name))}>
200
+ onClick={() => navigator.clipboard.writeText(makeIframeString(src, width, height, name))}
201
+ >
199
202
  {t('license.embed')}
200
203
  </CopyButton>
201
204
  </>
@@ -336,7 +336,8 @@ export const BlockConcept = ({
336
336
  typeof document !== 'undefined'
337
337
  ? (document.querySelector('.c-article') as HTMLElement | null) || undefined
338
338
  : undefined
339
- }>
339
+ }
340
+ >
340
341
  <PopoverWrapper top={modalPos}>
341
342
  <Content avoidCollisions={false} asChild side="bottom">
342
343
  <ConceptNotionV2
@@ -373,12 +374,14 @@ export const BlockConcept = ({
373
374
  <ButtonV2 variant="outline" size="small" shape="pill" onClick={() => setIsOpen(true)}>
374
375
  {t('concept.reuse')}
375
376
  </ButtonV2>
376
- }>
377
+ }
378
+ >
377
379
  <ModalV2
378
380
  controlled
379
381
  isOpen={isOpen}
380
382
  onClose={() => setIsOpen(false)}
381
- labelledBy="license-dialog-rules-heading">
383
+ labelledBy="license-dialog-rules-heading"
384
+ >
382
385
  {(close) => (
383
386
  <FigureLicenseDialogContent
384
387
  authors={groupedAuthors}
@@ -152,7 +152,8 @@ const ImageEmbed = ({ embed, articlePath, previewAlt }: Props) => {
152
152
  <Figure
153
153
  id={figureId}
154
154
  type={imageSizes ? undefined : figureType}
155
- className={imageSizes ? 'c-figure--right expanded' : ''}>
155
+ className={imageSizes ? 'c-figure--right expanded' : ''}
156
+ >
156
157
  <ImageWrapper src={data.imageUrl} crop={crop} size={embedData.size}>
157
158
  <Image
158
159
  focalPoint={focalPoint}
@@ -186,7 +187,8 @@ const ImageEmbed = ({ embed, articlePath, previewAlt }: Props) => {
186
187
  }
187
188
  licenseRights={license.rights}
188
189
  authors={captionAuthors}
189
- locale={i18n.language}>
190
+ locale={i18n.language}
191
+ >
190
192
  <ModalV2 controlled isOpen={isOpen} onClose={() => setIsOpen(false)} labelledBy="license-dialog-rules-heading">
191
193
  {(close) => (
192
194
  <FigureLicenseDialogContent
@@ -196,7 +198,8 @@ const ImageEmbed = ({ embed, articlePath, previewAlt }: Props) => {
196
198
  authors={contributors}
197
199
  origin={data.copyright.origin}
198
200
  locale={i18n.language}
199
- type="image">
201
+ type="image"
202
+ >
200
203
  <ImageLicenseButtons
201
204
  articlePath={articlePath}
202
205
  title={data.title.title}
@@ -255,7 +258,8 @@ export const ImageLicenseButtons = ({ imageUrl, title, articlePath, copyright }:
255
258
  variant="outline"
256
259
  onClick={() => navigator.clipboard.writeText(copyString)}
257
260
  copyNode={t('license.hasCopiedTitle')}
258
- aria-live="assertive">
261
+ aria-live="assertive"
262
+ >
259
263
  {t('license.copyTitle')}
260
264
  </CopyButton>
261
265
  <SafeLinkButton to={`${imageUrl}?download=true`} download variant="outline">
@@ -294,7 +298,8 @@ const ExpandButton = ({ size, expanded, bylineHidden, onExpand, onHideByline }:
294
298
  type="button"
295
299
  className="c-figure__fullscreen-btn"
296
300
  aria-label={t(`license.images.itemImage.zoom${expanded ? 'Out' : ''}ImageButtonLabel`)}
297
- onClick={onExpand}>
301
+ onClick={onExpand}
302
+ >
298
303
  {expanded ? <ArrowCollapse /> : <ExpandTwoArrows />}
299
304
  </button>
300
305
  );
@@ -304,7 +309,8 @@ const ExpandButton = ({ size, expanded, bylineHidden, onExpand, onHideByline }:
304
309
  type="button"
305
310
  className="c-figure__show-byline-btn"
306
311
  aria-label={t(`license.images.itemImage.${bylineHidden ? 'expandByline' : 'minimizeByline'}`)}
307
- onClick={onHideByline}>
312
+ onClick={onHideByline}
313
+ >
308
314
  {bylineHidden ? <ChevronDown /> : <ChevronUp />}
309
315
  </button>
310
316
  );
@@ -318,7 +318,8 @@ export const ConceptNotionV2 = forwardRef<HTMLDivElement, ConceptNotionProps>(
318
318
  modalButton={<></>}
319
319
  reuseLabel={t('reuse')}
320
320
  authors={visualElementAuthors}
321
- licenseRights={visualElementLicense.rights}>
321
+ licenseRights={visualElementLicense.rights}
322
+ >
322
323
  {visualElementLicense.abbreviation && (
323
324
  <Header>
324
325
  <Trigger asChild>
@@ -344,7 +345,8 @@ export const ConceptNotionV2 = forwardRef<HTMLDivElement, ConceptNotionProps>(
344
345
  authors={visualElementGroupedAuthors}
345
346
  title={notionVisualElement?.title}
346
347
  origin={notionVisualElement?.copyright?.origin}
347
- messages={{ source: t('source'), title: t('title') }}>
348
+ messages={{ source: t('source'), title: t('title') }}
349
+ >
348
350
  {visualElementType === 'image' ? (
349
351
  <ImageLicenseButtons
350
352
  imageUrl={notionVisualElement.image?.src ?? ''}
@@ -59,7 +59,8 @@ export const FigureCaption = ({
59
59
  variant="outline"
60
60
  size="small"
61
61
  data-dialog-trigger-id={id}
62
- data-dialog-source-id={figureId}>
62
+ data-dialog-source-id={figureId}
63
+ >
63
64
  {reuseLabel}
64
65
  </ButtonV2>
65
66
  )}
@@ -83,7 +84,8 @@ export const FigureCaption = ({
83
84
  to={link.url}
84
85
  {...classes('link')}
85
86
  target={link.external ? '_blank' : undefined}
86
- rel={link.external ? 'noopener noreferrer' : undefined}>
87
+ rel={link.external ? 'noopener noreferrer' : undefined}
88
+ >
87
89
  <span {...classes('link-text')}>{link.text}</span>
88
90
  <LinkIcon />
89
91
  </SafeLink>
@@ -140,7 +142,8 @@ const Figure = ({ children, type = 'full', resizeIframe, className, ...rest }: P
140
142
  <figure
141
143
  data-sizetype={type}
142
144
  {...classes('', { resize: !!resizeIframe, right }, `${typeClass} ${className ?? ''}`)}
143
- {...rest}>
145
+ {...rest}
146
+ >
144
147
  {isFunction(children) ? children({ typeClass }) : children}
145
148
  </figure>
146
149
  );
@@ -26,7 +26,8 @@ export const FigureBylineExpandButton = ({ messages, typeClass }: Props) => {
26
26
  data-classtype={typeClass}
27
27
  data-aria={messages.expandBylineButtonLabel}
28
28
  data-ariaexpanded={messages.minimizeBylineButtonLabel}
29
- aria-label={messages.expandBylineButtonLabel}>
29
+ aria-label={messages.expandBylineButtonLabel}
30
+ >
30
31
  <ChevronUp className="expanded-icon" />
31
32
  <ChevronDown className="contracted-icon" />
32
33
  </button>
@@ -19,7 +19,8 @@ export function FigureExpandButton({ messages, typeClass }: Props) {
19
19
  data-ariaexpanded={messages.zoomOutImageButtonLabel}
20
20
  aria-label={messages.zoomImageButtonLabel}
21
21
  data-figure-button
22
- data-classtype={typeClass}>
22
+ data-classtype={typeClass}
23
+ >
23
24
  <ExpandTwoArrows className="contracted-icon" />
24
25
  <ArrowCollapse className="expanded-icon" />
25
26
  </button>
@@ -24,7 +24,8 @@ export const FigureOpenDialogButton = ({ messages, type }: Props) => {
24
24
  className="c-figure__fullscreen-btn"
25
25
  data-aria={messages.zoomImageButtonLabel}
26
26
  data-ariaexpanded={messages.zoomOutImageButtonLabel}
27
- aria-label={messages.zoomImageButtonLabel}>
27
+ aria-label={messages.zoomImageButtonLabel}
28
+ >
28
29
  {type === 'image' && <ExpandTwoArrows className="contracted-icon" />}
29
30
  {type === 'h5p' && <CursorClick style={{ width: '24px', height: '24px' }} />}
30
31
  {type === 'iframe' && <CursorClick style={{ width: '24px', height: '24px' }} />}
@@ -117,7 +117,8 @@ export const FilterButtons = ({ heading, items, onFilterToggle, onRemoveAllFilte
117
117
  shape="pill"
118
118
  onClick={() => {
119
119
  onFilterToggle(item.value);
120
- }}>
120
+ }}
121
+ >
121
122
  <StyledButtonContent>{item.label}</StyledButtonContent>
122
123
  <StyledButtonContentSelected>
123
124
  <CrossIcon />
@@ -139,7 +140,8 @@ export const FilterButtons = ({ heading, items, onFilterToggle, onRemoveAllFilte
139
140
  </StyledButtonContentSelected>
140
141
  </ButtonV2>
141
142
  </StyledButtonElementWrapper>
142
- }>
143
+ }
144
+ >
143
145
  {(onClose: () => void) => (
144
146
  <>
145
147
  <ModalHeader modifier={['left-align']}>
@@ -177,7 +179,8 @@ export const FilterButtons = ({ heading, items, onFilterToggle, onRemoveAllFilte
177
179
  size="normal"
178
180
  colorTheme={!item.selected ? 'greyLighter' : undefined}
179
181
  shape="pill"
180
- onClick={() => onFilterToggle(item.value)}>
182
+ onClick={() => onFilterToggle(item.value)}
183
+ >
181
184
  <StyledButtonContent>{item.label}</StyledButtonContent>
182
185
  {item.selected && (
183
186
  <StyledButtonContentSelected>
@@ -69,7 +69,8 @@ const FilterList = ({
69
69
  {...classes('item-wrapper', {
70
70
  'aligned-grouping': !!alignedGroup,
71
71
  'collapse-mobile': !!collapseMobile,
72
- })}>
72
+ })}
73
+ >
73
74
  {options.map((option, index) => {
74
75
  const itemModifiers = [];
75
76
 
@@ -116,7 +117,8 @@ const FilterList = ({
116
117
  type="button"
117
118
  onClick={() => {
118
119
  setVisibleCount((prev) => (prev === defaultVisibleCount ? options.length : defaultVisibleCount));
119
- }}>
120
+ }}
121
+ >
120
122
  {visibleCount === defaultVisibleCount ? (
121
123
  <>
122
124
  <span>{showLabel}</span> <ChevronDown />
@@ -144,7 +144,8 @@ const FilterListPhone = ({
144
144
  <ButtonV2 variant="outline" {...classes('modal-button')}>
145
145
  {messages.openFilter}
146
146
  </ButtonV2>
147
- }>
147
+ }
148
+ >
148
149
  {(onClose) => (
149
150
  <>
150
151
  <ModalHeader modifier={['left-align']}>
@@ -167,7 +168,8 @@ const FilterListPhone = ({
167
168
  'aligned-grouping': !!alignedGroup,
168
169
  'collapse-mobile': !!collapseMobile,
169
170
  'grouped-options': !!isGroupedOptions,
170
- })}>
171
+ })}
172
+ >
171
173
  {options.map((option) => {
172
174
  const itemModifiers = [];
173
175
 
@@ -254,7 +256,8 @@ const FilterListPhone = ({
254
256
  type="button"
255
257
  onClick={() => {
256
258
  setVisibleCount((prev) => (prev === defaultVisibleCount ? options.length : defaultVisibleCount));
257
- }}>
259
+ }}
260
+ >
258
261
  {visibleCount === defaultVisibleCount ? (
259
262
  <>
260
263
  <span>{showLabel}</span> <ChevronDown />