@ndla/ui 50.15.3 → 52.0.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 (572) hide show
  1. package/README.md +2 -2
  2. package/es/Article/Article.js +12 -12
  3. package/es/Article/ArticleHeaderWrapper.js +0 -11
  4. package/es/Article/ArticleNotions.js +6 -6
  5. package/es/Article/ArticleParagraph.js +25 -0
  6. package/es/Article/index.js +1 -0
  7. package/es/AudioPlayer/AudioPlayer.js +13 -13
  8. package/es/AudioPlayer/Controls.js +22 -38
  9. package/es/Breadcrumb/Breadcrumb.js +2 -33
  10. package/es/Breadcrumb/BreadcrumbItem.js +16 -29
  11. package/es/Breadcrumb/index.js +0 -1
  12. package/es/CodeBlock/CodeBlock.js +115 -0
  13. package/es/CodeBlock/codeLanguageOptions.js +84 -0
  14. package/es/CodeBlock/index.js +10 -0
  15. package/es/CreatedBy/CreatedBy.js +4 -4
  16. package/es/Embed/BrightcoveEmbed.js +3 -3
  17. package/es/Embed/CodeEmbed.js +2 -2
  18. package/es/Embed/ConceptEmbed.js +37 -33
  19. package/es/Embed/ExternalEmbed.js +2 -2
  20. package/es/Embed/IframeEmbed.js +1 -1
  21. package/es/Embed/ImageEmbed.js +18 -14
  22. package/es/Embed/RelatedContentEmbed.js +3 -3
  23. package/es/Embed/UuDisclaimerEmbed.js +4 -3
  24. package/es/Embed/conceptComponents.js +10 -10
  25. package/es/Embed/index.js +1 -1
  26. package/es/Figure/Figure.js +32 -19
  27. package/es/Footer/FooterBlock.js +17 -0
  28. package/es/Footer/index.js +1 -4
  29. package/es/FrontpageArticle/FrontpageArticle.js +3 -3
  30. package/es/Gloss/Gloss.js +12 -10
  31. package/es/Hero/Hero.js +1 -1
  32. package/es/Image/Image.js +3 -3
  33. package/es/LanguageSelector/LanguageSelector.js +5 -5
  34. package/es/Layout/LayoutItem.js +2 -1
  35. package/es/Layout/OneColumn.js +22 -28
  36. package/es/Layout/PageContainer.js +21 -17
  37. package/es/LicenseByline/LicenseLink.js +5 -6
  38. package/es/Messages/MessageBox.js +9 -7
  39. package/es/MyNdla/Resource/index.js +1 -2
  40. package/es/MyNdla/index.js +1 -2
  41. package/es/Notion/Notion.js +4 -4
  42. package/es/Resource/BlockResource.js +13 -15
  43. package/es/Resource/ListResource.js +13 -15
  44. package/es/Search/ContentTypeResult.js +4 -4
  45. package/es/Search/SearchResult.js +11 -11
  46. package/es/Search/SearchResultSleeve.js +16 -16
  47. package/es/TreeStructure/TreeStructure.js +6 -6
  48. package/es/all.css +1 -1
  49. package/es/index.js +7 -21
  50. package/es/locale/messages-en.js +14 -3
  51. package/es/locale/messages-nb.js +14 -3
  52. package/es/locale/messages-nn.js +15 -4
  53. package/es/locale/messages-se.js +13 -2
  54. package/es/locale/messages-sma.js +14 -3
  55. package/es/types.js +0 -9
  56. package/lib/Article/Article.d.ts +5 -7
  57. package/lib/Article/Article.js +12 -12
  58. package/lib/Article/ArticleHeaderWrapper.js +0 -11
  59. package/lib/Article/ArticleNotions.js +5 -5
  60. package/lib/Article/ArticleParagraph.d.ts +13 -0
  61. package/lib/Article/ArticleParagraph.js +32 -0
  62. package/lib/Article/index.d.ts +1 -0
  63. package/lib/Article/index.js +7 -0
  64. package/lib/AudioPlayer/AudioPlayer.js +13 -13
  65. package/lib/AudioPlayer/Controls.js +21 -37
  66. package/lib/Breadcrumb/Breadcrumb.d.ts +1 -2
  67. package/lib/Breadcrumb/Breadcrumb.js +2 -33
  68. package/lib/Breadcrumb/BreadcrumbItem.js +16 -29
  69. package/lib/Breadcrumb/index.d.ts +0 -1
  70. package/lib/Breadcrumb/index.js +0 -7
  71. package/lib/CodeBlock/CodeBlock.d.ts +18 -0
  72. package/lib/CodeBlock/CodeBlock.js +121 -0
  73. package/lib/{NDLAFilm/isLetter.d.ts → CodeBlock/codeLanguageOptions.d.ts} +5 -1
  74. package/lib/CodeBlock/codeLanguageOptions.js +90 -0
  75. package/lib/CodeBlock/index.d.ts +9 -0
  76. package/lib/CodeBlock/index.js +20 -0
  77. package/lib/CreatedBy/CreatedBy.js +4 -4
  78. package/lib/Embed/BrightcoveEmbed.js +3 -3
  79. package/lib/Embed/CodeEmbed.js +2 -2
  80. package/lib/Embed/ConceptEmbed.d.ts +1 -1
  81. package/lib/Embed/ConceptEmbed.js +36 -33
  82. package/lib/Embed/ExternalEmbed.js +2 -2
  83. package/lib/Embed/IframeEmbed.js +1 -1
  84. package/lib/Embed/ImageEmbed.js +18 -14
  85. package/lib/Embed/RelatedContentEmbed.js +3 -3
  86. package/lib/Embed/UuDisclaimerEmbed.js +4 -3
  87. package/lib/Embed/conceptComponents.js +10 -10
  88. package/lib/Embed/index.d.ts +1 -1
  89. package/lib/Embed/index.js +15 -3
  90. package/lib/Figure/Figure.d.ts +2 -5
  91. package/lib/Figure/Figure.js +32 -23
  92. package/lib/Footer/FooterBlock.d.ts +13 -0
  93. package/lib/Footer/FooterBlock.js +24 -0
  94. package/lib/Footer/index.d.ts +1 -4
  95. package/lib/Footer/index.js +3 -18
  96. package/lib/FrontpageArticle/FrontpageArticle.js +3 -3
  97. package/lib/Gloss/Gloss.js +12 -10
  98. package/lib/Hero/Hero.js +1 -1
  99. package/lib/Image/Image.js +2 -2
  100. package/lib/LanguageSelector/LanguageSelector.js +5 -5
  101. package/lib/Layout/LayoutItem.js +2 -1
  102. package/lib/Layout/OneColumn.d.ts +3 -8
  103. package/lib/Layout/OneColumn.js +22 -30
  104. package/lib/Layout/PageContainer.d.ts +3 -7
  105. package/lib/Layout/PageContainer.js +21 -19
  106. package/lib/LicenseByline/LicenseLink.js +5 -6
  107. package/lib/Messages/MessageBox.d.ts +2 -1
  108. package/lib/Messages/MessageBox.js +9 -7
  109. package/lib/MyNdla/Resource/index.d.ts +1 -2
  110. package/lib/MyNdla/Resource/index.js +0 -7
  111. package/lib/MyNdla/index.d.ts +1 -2
  112. package/lib/MyNdla/index.js +0 -7
  113. package/lib/Notion/Notion.js +4 -4
  114. package/lib/Resource/BlockResource.js +13 -15
  115. package/lib/Resource/ListResource.js +13 -15
  116. package/lib/Search/ContentTypeResult.js +4 -4
  117. package/lib/Search/SearchResult.js +10 -10
  118. package/lib/Search/SearchResultSleeve.js +16 -16
  119. package/lib/TreeStructure/TreeStructure.js +6 -6
  120. package/lib/all.css +1 -1
  121. package/lib/index.d.ts +6 -21
  122. package/lib/index.js +31 -249
  123. package/lib/locale/messages-en.d.ts +11 -0
  124. package/lib/locale/messages-en.js +14 -3
  125. package/lib/locale/messages-nb.d.ts +11 -0
  126. package/lib/locale/messages-nb.js +14 -3
  127. package/lib/locale/messages-nn.d.ts +11 -0
  128. package/lib/locale/messages-nn.js +15 -4
  129. package/lib/locale/messages-se.d.ts +11 -0
  130. package/lib/locale/messages-se.js +13 -2
  131. package/lib/locale/messages-sma.d.ts +11 -0
  132. package/lib/locale/messages-sma.js +14 -3
  133. package/lib/types.d.ts +0 -51
  134. package/lib/types.js +1 -10
  135. package/package.json +16 -21
  136. package/src/Article/Article.tsx +14 -18
  137. package/src/Article/ArticleHeaderWrapper.tsx +1 -12
  138. package/src/Article/ArticleNotions.tsx +3 -3
  139. package/src/Article/ArticleParagraph.tsx +22 -0
  140. package/src/Article/component.article.scss +0 -7
  141. package/src/Article/index.ts +2 -0
  142. package/src/AudioPlayer/AudioPlayer.tsx +2 -2
  143. package/src/AudioPlayer/Controls.tsx +5 -5
  144. package/src/Breadcrumb/Breadcrumb.stories.tsx +0 -4
  145. package/src/Breadcrumb/Breadcrumb.tsx +1 -38
  146. package/src/Breadcrumb/BreadcrumbItem.tsx +5 -19
  147. package/src/Breadcrumb/index.ts +0 -2
  148. package/src/CodeBlock/CodeBlock.stories.tsx +113 -0
  149. package/src/CodeBlock/CodeBlock.tsx +228 -0
  150. package/src/CodeBlock/codeLanguageOptions.ts +115 -0
  151. package/src/CodeBlock/index.ts +10 -0
  152. package/src/CreatedBy/CreatedBy.tsx +2 -2
  153. package/src/Embed/AudioEmbed.stories.tsx +6 -4
  154. package/src/Embed/BrightcoveEmbed.stories.tsx +6 -4
  155. package/src/Embed/BrightcoveEmbed.tsx +2 -2
  156. package/src/Embed/CodeEmbed.tsx +2 -2
  157. package/src/Embed/ConceptEmbed.stories.tsx +6 -4
  158. package/src/Embed/ConceptEmbed.tsx +103 -96
  159. package/src/Embed/ExternalEmbed.stories.tsx +6 -4
  160. package/src/Embed/ExternalEmbed.tsx +2 -2
  161. package/src/Embed/H5pEmbed.stories.tsx +6 -4
  162. package/src/Embed/IframeEmbed.stories.tsx +6 -4
  163. package/src/Embed/IframeEmbed.tsx +1 -1
  164. package/src/Embed/ImageEmbed.stories.tsx +6 -4
  165. package/src/Embed/ImageEmbed.tsx +20 -11
  166. package/src/Embed/RelatedContentEmbed.stories.tsx +6 -4
  167. package/src/Embed/RelatedContentEmbed.tsx +3 -3
  168. package/src/Embed/UuDisclaimerEmbed.stories.tsx +23 -4
  169. package/src/Embed/UuDisclaimerEmbed.tsx +1 -1
  170. package/src/Embed/conceptComponents.tsx +1 -0
  171. package/src/Embed/index.ts +1 -1
  172. package/src/Figure/Figure.tsx +57 -18
  173. package/src/Footer/Footer.stories.tsx +7 -105
  174. package/src/Footer/FooterBlock.tsx +30 -0
  175. package/src/Footer/index.ts +1 -5
  176. package/src/FrontpageArticle/FrontpageArticle.tsx +3 -3
  177. package/src/Gloss/Gloss.tsx +4 -2
  178. package/src/Hero/Hero.tsx +1 -1
  179. package/src/Image/Image.tsx +2 -2
  180. package/src/LanguageSelector/LanguageSelector.tsx +1 -1
  181. package/src/Layout/LayoutItem.tsx +2 -1
  182. package/src/Layout/OneColumn.tsx +25 -35
  183. package/src/Layout/PageContainer.tsx +19 -23
  184. package/src/LicenseByline/LicenseLink.tsx +1 -2
  185. package/src/Messages/MessageBox.tsx +3 -2
  186. package/src/MyNdla/Resource/index.ts +1 -2
  187. package/src/MyNdla/index.ts +1 -2
  188. package/src/Notion/Notion.tsx +2 -2
  189. package/src/Resource/BlockResource.tsx +4 -8
  190. package/src/Resource/ListResource.tsx +4 -6
  191. package/src/Search/ContentTypeResult.tsx +4 -4
  192. package/src/Search/SearchResult.tsx +2 -2
  193. package/src/Search/SearchResultSleeve.tsx +7 -9
  194. package/src/Table/Table.stories.tsx +8 -8
  195. package/src/TreeStructure/TreeStructure.stories.tsx +85 -28
  196. package/src/TreeStructure/TreeStructure.tsx +1 -1
  197. package/src/index.ts +8 -47
  198. package/src/locale/messages-en.ts +15 -1
  199. package/src/locale/messages-nb.ts +15 -1
  200. package/src/locale/messages-nn.ts +16 -2
  201. package/src/locale/messages-se.ts +14 -0
  202. package/src/locale/messages-sma.ts +15 -1
  203. package/src/main.scss +0 -2
  204. package/src/types.ts +0 -62
  205. package/es/Article/ArticleAccessMessage.js +0 -43
  206. package/es/Aside/Aside.js +0 -75
  207. package/es/Aside/index.js +0 -10
  208. package/es/BannerCard/BannerCard.js +0 -84
  209. package/es/BannerCard/index.js +0 -10
  210. package/es/Breadcrumb/HeaderBreadcrumb.js +0 -57
  211. package/es/CompetenceGoalTab/CompetenceGoalItem.js +0 -42
  212. package/es/CompetenceGoalTab/CompetenceGoalTab.js +0 -75
  213. package/es/CompetenceGoalTab/CompetenceItem.js +0 -108
  214. package/es/CompetenceGoalTab/CoreElementItem.js +0 -44
  215. package/es/CompetenceGoalTab/SearchButton.js +0 -43
  216. package/es/CompetenceGoalTab/index.js +0 -10
  217. package/es/CompetenceGoalTab/styles.js +0 -57
  218. package/es/Filter/FilterButtons.js +0 -185
  219. package/es/Filter/FilterCarousel.js +0 -166
  220. package/es/Filter/ToggleItem.js +0 -68
  221. package/es/Filter/index.js +0 -10
  222. package/es/Footer/EditorName.js +0 -20
  223. package/es/Footer/Footer.js +0 -83
  224. package/es/Footer/FooterLinks.js +0 -108
  225. package/es/Footer/FooterText.js +0 -25
  226. package/es/Frontpage/FrontpageAllSubjects.js +0 -254
  227. package/es/LearningPaths/LearningPathContent.js +0 -25
  228. package/es/LearningPaths/LearningPathInformation.js +0 -74
  229. package/es/LearningPaths/LearningPathLastStepNavigation.js +0 -65
  230. package/es/LearningPaths/LearningPathMenu.js +0 -103
  231. package/es/LearningPaths/LearningPathMenuAside.js +0 -62
  232. package/es/LearningPaths/LearningPathMenuContent.js +0 -109
  233. package/es/LearningPaths/LearningPathMenuIntro.js +0 -72
  234. package/es/LearningPaths/LearningPathMenuModalWrapper.js +0 -63
  235. package/es/LearningPaths/LearningPathMobileHeader.js +0 -35
  236. package/es/LearningPaths/LearningPathMobileStepInfo.js +0 -34
  237. package/es/LearningPaths/LearningPathSticky.js +0 -74
  238. package/es/LearningPaths/LearningPathWrapper.js +0 -27
  239. package/es/LearningPaths/index.js +0 -18
  240. package/es/MyNdla/Resource/FolderInput.js +0 -94
  241. package/es/NDLAFilm/AllMoviesAlphabetically.js +0 -127
  242. package/es/NDLAFilm/FilmContentCard.js +0 -93
  243. package/es/NDLAFilm/FilmContentCardTags.js +0 -44
  244. package/es/NDLAFilm/FilmMovieList.js +0 -52
  245. package/es/NDLAFilm/FilmMovieSearch.js +0 -106
  246. package/es/NDLAFilm/FilmSlideshow.js +0 -138
  247. package/es/NDLAFilm/MovieGrid.js +0 -54
  248. package/es/NDLAFilm/VisualElement.js +0 -48
  249. package/es/NDLAFilm/filmStyles.js +0 -31
  250. package/es/NDLAFilm/index.js +0 -14
  251. package/es/NDLAFilm/isLetter.js +0 -13
  252. package/es/NDLAFilm/types.js +0 -1
  253. package/es/Navigation/NavigationBox.js +0 -187
  254. package/es/Navigation/index.js +0 -10
  255. package/es/NoContentBox/NoContentBox.js +0 -31
  256. package/es/NoContentBox/index.js +0 -10
  257. package/es/Programme/Programme.js +0 -104
  258. package/es/Programme/ProgrammeSubjects.js +0 -60
  259. package/es/Programme/index.js +0 -12
  260. package/es/ResourceGroup/ResourceGroup.js +0 -46
  261. package/es/ResourceGroup/ResourceItem.js +0 -196
  262. package/es/ResourceGroup/ResourceList.js +0 -57
  263. package/es/ResourceGroup/index.js +0 -10
  264. package/es/ResourcesWrapper/ResourcesTopicTitle.js +0 -160
  265. package/es/ResourcesWrapper/ResourcesWrapper.js +0 -27
  266. package/es/ResourcesWrapper/index.js +0 -11
  267. package/es/SearchTypeResult/ActiveFilterContent.js +0 -53
  268. package/es/SearchTypeResult/ActiveFilters.js +0 -124
  269. package/es/SearchTypeResult/PopupFilter.js +0 -133
  270. package/es/SearchTypeResult/ResultNavigation.js +0 -75
  271. package/es/SearchTypeResult/SearchFieldHeader.js +0 -103
  272. package/es/SearchTypeResult/SearchFilterContent.js +0 -59
  273. package/es/SearchTypeResult/SearchHeader.js +0 -160
  274. package/es/SearchTypeResult/SearchItem.js +0 -97
  275. package/es/SearchTypeResult/SearchItemList.js +0 -142
  276. package/es/SearchTypeResult/SearchItems.js +0 -60
  277. package/es/SearchTypeResult/SearchSubjectItem.js +0 -62
  278. package/es/SearchTypeResult/SearchSubjectResult.js +0 -34
  279. package/es/SearchTypeResult/SearchTypeHeader.js +0 -118
  280. package/es/SearchTypeResult/SearchTypeResult.js +0 -55
  281. package/es/SearchTypeResult/SearchViewType.js +0 -90
  282. package/es/SearchTypeResult/components/ItemContexts.js +0 -122
  283. package/es/SearchTypeResult/components/ItemResourceHeader.js +0 -96
  284. package/es/SearchTypeResult/components/ItemTopicHeader.js +0 -66
  285. package/es/SearchTypeResult/components/SubjectFilters.js +0 -130
  286. package/es/SearchTypeResult/index.js +0 -14
  287. package/es/Subject/SubjectBanner.js +0 -30
  288. package/es/Subject/SubjectHeader.js +0 -66
  289. package/es/Subject/index.js +0 -10
  290. package/es/ToolboxPage/ToolboxInfo.js +0 -43
  291. package/es/ToolboxPage/index.js +0 -10
  292. package/es/Topic/Loader.js +0 -107
  293. package/es/Topic/Topic.js +0 -221
  294. package/es/Topic/index.js +0 -10
  295. package/es/locale/LocaleProvider.js +0 -38
  296. package/lib/Article/ArticleAccessMessage.d.ts +0 -12
  297. package/lib/Article/ArticleAccessMessage.js +0 -50
  298. package/lib/Aside/Aside.d.ts +0 -15
  299. package/lib/Aside/Aside.js +0 -80
  300. package/lib/Aside/index.d.ts +0 -9
  301. package/lib/Aside/index.js +0 -16
  302. package/lib/BannerCard/BannerCard.d.ts +0 -29
  303. package/lib/BannerCard/BannerCard.js +0 -92
  304. package/lib/BannerCard/index.d.ts +0 -9
  305. package/lib/BannerCard/index.js +0 -13
  306. package/lib/Breadcrumb/HeaderBreadcrumb.d.ts +0 -14
  307. package/lib/Breadcrumb/HeaderBreadcrumb.js +0 -64
  308. package/lib/CompetenceGoalTab/CompetenceGoalItem.d.ts +0 -10
  309. package/lib/CompetenceGoalTab/CompetenceGoalItem.js +0 -49
  310. package/lib/CompetenceGoalTab/CompetenceGoalTab.d.ts +0 -14
  311. package/lib/CompetenceGoalTab/CompetenceGoalTab.js +0 -82
  312. package/lib/CompetenceGoalTab/CompetenceItem.d.ts +0 -30
  313. package/lib/CompetenceGoalTab/CompetenceItem.js +0 -113
  314. package/lib/CompetenceGoalTab/CoreElementItem.d.ts +0 -10
  315. package/lib/CompetenceGoalTab/CoreElementItem.js +0 -51
  316. package/lib/CompetenceGoalTab/SearchButton.d.ts +0 -14
  317. package/lib/CompetenceGoalTab/SearchButton.js +0 -50
  318. package/lib/CompetenceGoalTab/index.d.ts +0 -9
  319. package/lib/CompetenceGoalTab/index.js +0 -16
  320. package/lib/CompetenceGoalTab/styles.d.ts +0 -28
  321. package/lib/CompetenceGoalTab/styles.js +0 -62
  322. package/lib/Filter/FilterButtons.d.ts +0 -16
  323. package/lib/Filter/FilterButtons.js +0 -192
  324. package/lib/Filter/FilterCarousel.d.ts +0 -13
  325. package/lib/Filter/FilterCarousel.js +0 -171
  326. package/lib/Filter/ToggleItem.d.ts +0 -21
  327. package/lib/Filter/ToggleItem.js +0 -75
  328. package/lib/Filter/index.d.ts +0 -9
  329. package/lib/Filter/index.js +0 -20
  330. package/lib/Footer/EditorName.d.ts +0 -13
  331. package/lib/Footer/EditorName.js +0 -27
  332. package/lib/Footer/Footer.d.ts +0 -30
  333. package/lib/Footer/Footer.js +0 -88
  334. package/lib/Footer/FooterLinks.d.ts +0 -26
  335. package/lib/Footer/FooterLinks.js +0 -115
  336. package/lib/Footer/FooterText.d.ts +0 -13
  337. package/lib/Footer/FooterText.js +0 -33
  338. package/lib/Frontpage/FrontpageAllSubjects.d.ts +0 -27
  339. package/lib/Frontpage/FrontpageAllSubjects.js +0 -259
  340. package/lib/LearningPaths/LearningPathContent.d.ts +0 -13
  341. package/lib/LearningPaths/LearningPathContent.js +0 -33
  342. package/lib/LearningPaths/LearningPathInformation.d.ts +0 -18
  343. package/lib/LearningPaths/LearningPathInformation.js +0 -80
  344. package/lib/LearningPaths/LearningPathLastStepNavigation.d.ts +0 -22
  345. package/lib/LearningPaths/LearningPathLastStepNavigation.js +0 -72
  346. package/lib/LearningPaths/LearningPathMenu.d.ts +0 -38
  347. package/lib/LearningPaths/LearningPathMenu.js +0 -110
  348. package/lib/LearningPaths/LearningPathMenuAside.d.ts +0 -24
  349. package/lib/LearningPaths/LearningPathMenuAside.js +0 -69
  350. package/lib/LearningPaths/LearningPathMenuContent.d.ts +0 -22
  351. package/lib/LearningPaths/LearningPathMenuContent.js +0 -116
  352. package/lib/LearningPaths/LearningPathMenuIntro.d.ts +0 -17
  353. package/lib/LearningPaths/LearningPathMenuIntro.js +0 -77
  354. package/lib/LearningPaths/LearningPathMenuModalWrapper.d.ts +0 -14
  355. package/lib/LearningPaths/LearningPathMenuModalWrapper.js +0 -70
  356. package/lib/LearningPaths/LearningPathMobileHeader.d.ts +0 -9
  357. package/lib/LearningPaths/LearningPathMobileHeader.js +0 -42
  358. package/lib/LearningPaths/LearningPathMobileStepInfo.d.ts +0 -13
  359. package/lib/LearningPaths/LearningPathMobileStepInfo.js +0 -41
  360. package/lib/LearningPaths/LearningPathSticky.d.ts +0 -22
  361. package/lib/LearningPaths/LearningPathSticky.js +0 -84
  362. package/lib/LearningPaths/LearningPathWrapper.d.ts +0 -14
  363. package/lib/LearningPaths/LearningPathWrapper.js +0 -35
  364. package/lib/LearningPaths/index.d.ts +0 -17
  365. package/lib/LearningPaths/index.js +0 -74
  366. package/lib/MyNdla/Resource/FolderInput.d.ts +0 -19
  367. package/lib/MyNdla/Resource/FolderInput.js +0 -101
  368. package/lib/NDLAFilm/AllMoviesAlphabetically.d.ts +0 -13
  369. package/lib/NDLAFilm/AllMoviesAlphabetically.js +0 -134
  370. package/lib/NDLAFilm/FilmContentCard.d.ts +0 -19
  371. package/lib/NDLAFilm/FilmContentCard.js +0 -98
  372. package/lib/NDLAFilm/FilmContentCardTags.d.ts +0 -15
  373. package/lib/NDLAFilm/FilmContentCardTags.js +0 -51
  374. package/lib/NDLAFilm/FilmMovieList.d.ts +0 -17
  375. package/lib/NDLAFilm/FilmMovieList.js +0 -59
  376. package/lib/NDLAFilm/FilmMovieSearch.d.ts +0 -21
  377. package/lib/NDLAFilm/FilmMovieSearch.js +0 -113
  378. package/lib/NDLAFilm/FilmSlideshow.d.ts +0 -13
  379. package/lib/NDLAFilm/FilmSlideshow.js +0 -143
  380. package/lib/NDLAFilm/MovieGrid.d.ts +0 -17
  381. package/lib/NDLAFilm/MovieGrid.js +0 -61
  382. package/lib/NDLAFilm/VisualElement.d.ts +0 -16
  383. package/lib/NDLAFilm/VisualElement.js +0 -53
  384. package/lib/NDLAFilm/filmStyles.d.ts +0 -17
  385. package/lib/NDLAFilm/filmStyles.js +0 -39
  386. package/lib/NDLAFilm/index.d.ts +0 -13
  387. package/lib/NDLAFilm/index.js +0 -41
  388. package/lib/NDLAFilm/isLetter.js +0 -20
  389. package/lib/NDLAFilm/types.d.ts +0 -22
  390. package/lib/NDLAFilm/types.js +0 -5
  391. package/lib/Navigation/NavigationBox.d.ts +0 -30
  392. package/lib/Navigation/NavigationBox.js +0 -193
  393. package/lib/Navigation/index.d.ts +0 -9
  394. package/lib/Navigation/index.js +0 -13
  395. package/lib/NoContentBox/NoContentBox.d.ts +0 -14
  396. package/lib/NoContentBox/NoContentBox.js +0 -38
  397. package/lib/NoContentBox/index.d.ts +0 -9
  398. package/lib/NoContentBox/index.js +0 -16
  399. package/lib/Programme/Programme.d.ts +0 -16
  400. package/lib/Programme/Programme.js +0 -112
  401. package/lib/Programme/ProgrammeSubjects.d.ts +0 -26
  402. package/lib/Programme/ProgrammeSubjects.js +0 -67
  403. package/lib/Programme/index.d.ts +0 -11
  404. package/lib/Programme/index.js +0 -23
  405. package/lib/ResourceGroup/ResourceGroup.d.ts +0 -18
  406. package/lib/ResourceGroup/ResourceGroup.js +0 -53
  407. package/lib/ResourceGroup/ResourceItem.d.ts +0 -22
  408. package/lib/ResourceGroup/ResourceItem.js +0 -203
  409. package/lib/ResourceGroup/ResourceList.d.ts +0 -19
  410. package/lib/ResourceGroup/ResourceList.js +0 -64
  411. package/lib/ResourceGroup/index.d.ts +0 -9
  412. package/lib/ResourceGroup/index.js +0 -16
  413. package/lib/ResourcesWrapper/ResourcesTopicTitle.d.ts +0 -20
  414. package/lib/ResourcesWrapper/ResourcesTopicTitle.js +0 -165
  415. package/lib/ResourcesWrapper/ResourcesWrapper.d.ts +0 -16
  416. package/lib/ResourcesWrapper/ResourcesWrapper.js +0 -34
  417. package/lib/ResourcesWrapper/index.d.ts +0 -10
  418. package/lib/ResourcesWrapper/index.js +0 -23
  419. package/lib/SearchTypeResult/ActiveFilterContent.d.ts +0 -23
  420. package/lib/SearchTypeResult/ActiveFilterContent.js +0 -58
  421. package/lib/SearchTypeResult/ActiveFilters.d.ts +0 -18
  422. package/lib/SearchTypeResult/ActiveFilters.js +0 -131
  423. package/lib/SearchTypeResult/PopupFilter.d.ts +0 -26
  424. package/lib/SearchTypeResult/PopupFilter.js +0 -138
  425. package/lib/SearchTypeResult/ResultNavigation.d.ts +0 -18
  426. package/lib/SearchTypeResult/ResultNavigation.js +0 -82
  427. package/lib/SearchTypeResult/SearchFieldHeader.d.ts +0 -17
  428. package/lib/SearchTypeResult/SearchFieldHeader.js +0 -109
  429. package/lib/SearchTypeResult/SearchFilterContent.d.ts +0 -16
  430. package/lib/SearchTypeResult/SearchFilterContent.js +0 -64
  431. package/lib/SearchTypeResult/SearchHeader.d.ts +0 -26
  432. package/lib/SearchTypeResult/SearchHeader.js +0 -166
  433. package/lib/SearchTypeResult/SearchItem.d.ts +0 -30
  434. package/lib/SearchTypeResult/SearchItem.js +0 -104
  435. package/lib/SearchTypeResult/SearchItemList.d.ts +0 -10
  436. package/lib/SearchTypeResult/SearchItemList.js +0 -147
  437. package/lib/SearchTypeResult/SearchItems.d.ts +0 -17
  438. package/lib/SearchTypeResult/SearchItems.js +0 -65
  439. package/lib/SearchTypeResult/SearchSubjectItem.d.ts +0 -20
  440. package/lib/SearchTypeResult/SearchSubjectItem.js +0 -67
  441. package/lib/SearchTypeResult/SearchSubjectResult.d.ts +0 -13
  442. package/lib/SearchTypeResult/SearchSubjectResult.js +0 -41
  443. package/lib/SearchTypeResult/SearchTypeHeader.d.ts +0 -22
  444. package/lib/SearchTypeResult/SearchTypeHeader.js +0 -123
  445. package/lib/SearchTypeResult/SearchTypeResult.d.ts +0 -26
  446. package/lib/SearchTypeResult/SearchTypeResult.js +0 -62
  447. package/lib/SearchTypeResult/SearchViewType.d.ts +0 -13
  448. package/lib/SearchTypeResult/SearchViewType.js +0 -95
  449. package/lib/SearchTypeResult/components/ItemContexts.d.ts +0 -19
  450. package/lib/SearchTypeResult/components/ItemContexts.js +0 -127
  451. package/lib/SearchTypeResult/components/ItemResourceHeader.d.ts +0 -16
  452. package/lib/SearchTypeResult/components/ItemResourceHeader.js +0 -101
  453. package/lib/SearchTypeResult/components/ItemTopicHeader.d.ts +0 -17
  454. package/lib/SearchTypeResult/components/ItemTopicHeader.js +0 -71
  455. package/lib/SearchTypeResult/components/SubjectFilters.d.ts +0 -32
  456. package/lib/SearchTypeResult/components/SubjectFilters.js +0 -135
  457. package/lib/SearchTypeResult/index.d.ts +0 -14
  458. package/lib/SearchTypeResult/index.js +0 -41
  459. package/lib/Subject/SubjectBanner.d.ts +0 -14
  460. package/lib/Subject/SubjectBanner.js +0 -37
  461. package/lib/Subject/SubjectHeader.d.ts +0 -17
  462. package/lib/Subject/SubjectHeader.js +0 -73
  463. package/lib/Subject/index.d.ts +0 -9
  464. package/lib/Subject/index.js +0 -20
  465. package/lib/ToolboxPage/ToolboxInfo.d.ts +0 -18
  466. package/lib/ToolboxPage/ToolboxInfo.js +0 -49
  467. package/lib/ToolboxPage/index.d.ts +0 -9
  468. package/lib/ToolboxPage/index.js +0 -13
  469. package/lib/Topic/Loader.d.ts +0 -9
  470. package/lib/Topic/Loader.js +0 -114
  471. package/lib/Topic/Topic.d.ts +0 -34
  472. package/lib/Topic/Topic.js +0 -228
  473. package/lib/Topic/index.d.ts +0 -10
  474. package/lib/Topic/index.js +0 -16
  475. package/lib/locale/LocaleProvider.d.ts +0 -15
  476. package/lib/locale/LocaleProvider.js +0 -44
  477. package/src/Article/ArticleAccessMessage.tsx +0 -44
  478. package/src/Aside/Aside.tsx +0 -113
  479. package/src/Aside/index.ts +0 -11
  480. package/src/BannerCard/BannerCard.tsx +0 -99
  481. package/src/BannerCard/index.ts +0 -11
  482. package/src/Breadcrumb/HeaderBreadcrumb.tsx +0 -56
  483. package/src/CompetenceGoalTab/CompetenceGoalItem.tsx +0 -39
  484. package/src/CompetenceGoalTab/CompetenceGoalTab.tsx +0 -85
  485. package/src/CompetenceGoalTab/CompetenceItem.tsx +0 -130
  486. package/src/CompetenceGoalTab/CoreElementItem.tsx +0 -39
  487. package/src/CompetenceGoalTab/SearchButton.tsx +0 -50
  488. package/src/CompetenceGoalTab/index.ts +0 -10
  489. package/src/CompetenceGoalTab/styles.ts +0 -37
  490. package/src/Figure/component.figure.scss +0 -60
  491. package/src/Filter/FilterButtons.tsx +0 -199
  492. package/src/Filter/FilterCarousel.tsx +0 -172
  493. package/src/Filter/ToggleItem.tsx +0 -180
  494. package/src/Filter/index.ts +0 -10
  495. package/src/Footer/EditorName.tsx +0 -19
  496. package/src/Footer/Footer.tsx +0 -107
  497. package/src/Footer/FooterLinks.tsx +0 -144
  498. package/src/Footer/FooterText.tsx +0 -35
  499. package/src/Frontpage/FrontpageAllSubjects.tsx +0 -231
  500. package/src/LearningPaths/LearningPathContent.tsx +0 -33
  501. package/src/LearningPaths/LearningPathInformation.tsx +0 -82
  502. package/src/LearningPaths/LearningPathLastStepNavigation.tsx +0 -89
  503. package/src/LearningPaths/LearningPathMenu.stories.tsx +0 -65
  504. package/src/LearningPaths/LearningPathMenu.tsx +0 -166
  505. package/src/LearningPaths/LearningPathMenuAside.tsx +0 -100
  506. package/src/LearningPaths/LearningPathMenuContent.tsx +0 -277
  507. package/src/LearningPaths/LearningPathMenuIntro.tsx +0 -126
  508. package/src/LearningPaths/LearningPathMenuModalWrapper.tsx +0 -71
  509. package/src/LearningPaths/LearningPathMobileHeader.tsx +0 -37
  510. package/src/LearningPaths/LearningPathMobileStepInfo.tsx +0 -38
  511. package/src/LearningPaths/LearningPathSticky.tsx +0 -122
  512. package/src/LearningPaths/LearningPathWrapper.tsx +0 -36
  513. package/src/LearningPaths/index.ts +0 -19
  514. package/src/MyNdla/Resource/FolderInput.stories.tsx +0 -27
  515. package/src/MyNdla/Resource/FolderInput.tsx +0 -89
  516. package/src/NDLAFilm/AllMoviesAlphabetically.tsx +0 -160
  517. package/src/NDLAFilm/FilmContentCard.tsx +0 -138
  518. package/src/NDLAFilm/FilmContentCardTags.tsx +0 -57
  519. package/src/NDLAFilm/FilmMovieList.tsx +0 -54
  520. package/src/NDLAFilm/FilmMovieSearch.tsx +0 -135
  521. package/src/NDLAFilm/FilmSlideshow.tsx +0 -177
  522. package/src/NDLAFilm/MovieGrid.tsx +0 -86
  523. package/src/NDLAFilm/VisualElement.tsx +0 -38
  524. package/src/NDLAFilm/__tests__/isLetter-test.ts +0 -20
  525. package/src/NDLAFilm/filmStyles.ts +0 -49
  526. package/src/NDLAFilm/index.ts +0 -15
  527. package/src/NDLAFilm/isLetter.ts +0 -13
  528. package/src/NDLAFilm/types.ts +0 -24
  529. package/src/Navigation/NavigationBox.tsx +0 -252
  530. package/src/Navigation/index.ts +0 -11
  531. package/src/NoContentBox/NoContentBox.tsx +0 -32
  532. package/src/NoContentBox/index.ts +0 -11
  533. package/src/Programme/Programme.tsx +0 -101
  534. package/src/Programme/ProgrammeSubjects.tsx +0 -83
  535. package/src/Programme/index.ts +0 -13
  536. package/src/ResourceGroup/ResourceGroup.tsx +0 -65
  537. package/src/ResourceGroup/ResourceItem.stories.tsx +0 -101
  538. package/src/ResourceGroup/ResourceItem.tsx +0 -318
  539. package/src/ResourceGroup/ResourceList.tsx +0 -80
  540. package/src/ResourceGroup/index.ts +0 -11
  541. package/src/ResourcesWrapper/ResourcesTopicTitle.tsx +0 -223
  542. package/src/ResourcesWrapper/ResourcesWrapper.tsx +0 -32
  543. package/src/ResourcesWrapper/index.ts +0 -13
  544. package/src/SearchTypeResult/ActiveFilterContent.tsx +0 -55
  545. package/src/SearchTypeResult/ActiveFilters.tsx +0 -163
  546. package/src/SearchTypeResult/PopupFilter.tsx +0 -149
  547. package/src/SearchTypeResult/ResultNavigation.tsx +0 -105
  548. package/src/SearchTypeResult/SearchFieldHeader.tsx +0 -129
  549. package/src/SearchTypeResult/SearchFilterContent.tsx +0 -61
  550. package/src/SearchTypeResult/SearchHeader.tsx +0 -180
  551. package/src/SearchTypeResult/SearchItem.tsx +0 -144
  552. package/src/SearchTypeResult/SearchItemList.tsx +0 -161
  553. package/src/SearchTypeResult/SearchItems.tsx +0 -72
  554. package/src/SearchTypeResult/SearchSubjectItem.tsx +0 -74
  555. package/src/SearchTypeResult/SearchSubjectResult.tsx +0 -58
  556. package/src/SearchTypeResult/SearchTypeHeader.tsx +0 -148
  557. package/src/SearchTypeResult/SearchTypeResult.tsx +0 -89
  558. package/src/SearchTypeResult/SearchViewType.tsx +0 -111
  559. package/src/SearchTypeResult/components/ItemContexts.tsx +0 -131
  560. package/src/SearchTypeResult/components/ItemResourceHeader.tsx +0 -130
  561. package/src/SearchTypeResult/components/ItemTopicHeader.tsx +0 -88
  562. package/src/SearchTypeResult/components/SubjectFilters.tsx +0 -149
  563. package/src/SearchTypeResult/index.ts +0 -17
  564. package/src/Subject/SubjectBanner.tsx +0 -39
  565. package/src/Subject/SubjectHeader.tsx +0 -100
  566. package/src/Subject/index.ts +0 -10
  567. package/src/ToolboxPage/ToolboxInfo.tsx +0 -42
  568. package/src/ToolboxPage/index.ts +0 -11
  569. package/src/Topic/Loader.tsx +0 -29
  570. package/src/Topic/Topic.tsx +0 -348
  571. package/src/Topic/index.ts +0 -13
  572. package/src/locale/LocaleProvider.tsx +0 -31
@@ -58,7 +58,7 @@ const UuDisclaimerEmbed = ({ embed, children }: Props) => {
58
58
 
59
59
  return (
60
60
  <DisclaimerWrapper role="region">
61
- <StyledMessageBox type="info">
61
+ <StyledMessageBox type="info" contentEditable={false}>
62
62
  <InformationOutline />
63
63
  <Disclaimer>
64
64
  {embedData.disclaimer}
@@ -95,6 +95,7 @@ const notionContentCss = css`
95
95
  }
96
96
  ${mq.range({ from: breakpoints.desktop })} {
97
97
  width: 720px;
98
+ max-width: 60vw;
98
99
  }
99
100
 
100
101
  ${mq.range({ until: breakpoints.tablet })} {
@@ -6,7 +6,7 @@
6
6
  *
7
7
  */
8
8
 
9
- export { default as ImageEmbed } from "./ImageEmbed";
9
+ export { default as ImageEmbed, getCrop, getFocalPoint } from "./ImageEmbed";
10
10
  export { default as AudioEmbed } from "./AudioEmbed";
11
11
  export { default as H5pEmbed } from "./H5pEmbed";
12
12
  export { default as ExternalEmbed } from "./ExternalEmbed";
@@ -8,28 +8,68 @@
8
8
 
9
9
  // N.B These components is used to render static markup serverside
10
10
 
11
- import { ComponentPropsWithRef, ReactNode, forwardRef } from "react";
12
- import BEMHelper from "react-bem-helper";
13
- import { isFunction as isFunctionHelper } from "@ndla/util";
14
- const classes = new BEMHelper({
15
- name: "figure",
16
- prefix: "c-",
17
- });
11
+ import { ComponentPropsWithRef, forwardRef, useMemo } from "react";
12
+ import { css } from "@emotion/react";
13
+ import styled from "@emotion/styled";
14
+ import { spacing } from "@ndla/core";
15
+
16
+ const StyledFigure = styled.figure`
17
+ position: relative;
18
+ width: 100%;
19
+ transition:
20
+ transform 0.4s,
21
+ width 0.4s,
22
+ height 0.4s;
23
+ img {
24
+ width: 100%;
25
+ }
26
+ iframe {
27
+ display: block;
28
+ border: 0;
29
+ }
30
+ &[data-sizetype="full"][data-float=""] {
31
+ margin: ${spacing.normal} 0 ${spacing.normal};
32
+ }
33
+ &[data-sizetype="full"] {
34
+ margin-bottom: ${spacing.normal};
35
+ }
36
+ `;
37
+
38
+ const fullColumnStyle = css`
39
+ left: auto !important;
40
+ right: auto !important;
41
+ width: auto !important;
42
+ padding-left: 0;
43
+ padding-right: 0;
44
+ padding-bottom: ${spacing.large};
45
+ margin-bottom: 0;
46
+ `;
47
+
48
+ const rightStyle = css`
49
+ float: right;
50
+ `;
51
+
52
+ const smallTypes = ["small-right", "xsmall-right"];
18
53
 
19
54
  const Figure = forwardRef<HTMLElement, Props>(({ children, type = "full", className, ...rest }, ref) => {
20
- const typeClass = type === "full-column" ? "c-figure--full-column" : `u-float-${type}`;
21
- const right = ["small-right", "xsmall-right"].includes(type);
55
+ const floatClass = type === "full-column" ? undefined : `u-float-${type}`;
56
+
57
+ const styles = useMemo(() => {
58
+ const styles = [];
59
+ if (!floatClass) styles.push(fullColumnStyle);
60
+ if (smallTypes.includes(type)) styles.push(rightStyle);
61
+ return styles;
62
+ }, [floatClass, type]);
63
+
64
+ const classes = floatClass ? `${floatClass} ${className ?? ""}` : className;
65
+
22
66
  return (
23
- <figure data-sizetype={type} {...classes("", { right }, `${typeClass} ${className ?? ""}`)} {...rest} ref={ref}>
24
- {isFunction(children) ? children({ typeClass }) : children}
25
- </figure>
67
+ <StyledFigure data-sizetype={type} css={styles} className={classes} {...rest} ref={ref}>
68
+ {children}
69
+ </StyledFigure>
26
70
  );
27
71
  });
28
72
 
29
- const isFunction = (children: Function | ReactNode): children is Function => {
30
- return isFunctionHelper(children);
31
- };
32
-
33
73
  export type FigureType =
34
74
  | "full"
35
75
  | "full-column"
@@ -40,8 +80,7 @@ export type FigureType =
40
80
  | "xsmall-right"
41
81
  | "xsmall-left";
42
82
 
43
- interface Props extends Omit<ComponentPropsWithRef<"figure">, "children" | "type"> {
44
- children?: ReactNode | ((params: { typeClass: string }) => ReactNode);
83
+ interface Props extends Omit<ComponentPropsWithRef<"figure">, "type"> {
45
84
  type?: FigureType;
46
85
  noFigcaption?: boolean;
47
86
  }
@@ -7,81 +7,12 @@
7
7
  */
8
8
 
9
9
  import { Meta, StoryObj } from "@storybook/react";
10
- import { EmailOutline, Facebook, Instagram, LinkedIn, Share, Youtube } from "@ndla/icons/common";
11
- import { EditorName } from "./EditorName";
12
- import Footer from "./Footer";
13
- import { FooterText } from "./FooterText";
14
-
15
- const mockCommonLinks = [
16
- {
17
- to: "https://ndla.no/about/om-ndla",
18
- text: "Om NDLA",
19
- external: false,
20
- },
21
- {
22
- to: "https://ndla.no/about/about-ndla",
23
- text: "About NDLA",
24
- external: false,
25
- },
26
- {
27
- to: "https://blogg.ndla.no/",
28
- text: "NDLA fagblogg",
29
- external: true,
30
- },
31
- ];
32
-
33
- const mockFooterLinks = [
34
- {
35
- to: "https://www.facebook.com/ndla.no",
36
- text: "NDLA på Facebook",
37
- icon: <Facebook />,
38
- },
39
- {
40
- to: "https://instagram.com/ndla_no/",
41
- text: "NDLA på Instagram",
42
- icon: <Instagram />,
43
- },
44
- {
45
- to: "https://www.linkedin.com/company/ndla/",
46
- text: "NDLA på LinkedIn",
47
- icon: <LinkedIn />,
48
- },
49
- {
50
- to: "https://www.youtube.com/channel/UCBlt6T8B0mmvDh3k5q7EhsA",
51
- text: "NDLA på YouTube",
52
- icon: <Youtube />,
53
- },
54
- {
55
- to: "https://ndla.us6.list-manage.com/subscribe?u=99d41bbb28de0128915adebed&id=9a1d3ad1ea",
56
- text: "Meld deg på vårt nyhetsbrev",
57
- icon: <EmailOutline />,
58
- },
59
- {
60
- to: "#",
61
- text: "Del denne siden",
62
- icon: <Share />,
63
- },
64
- ];
65
-
66
- const privacyLinks = [
67
- {
68
- label: "Personvernerklæring",
69
- url: "https://ndla.no/article/personvernerklaering",
70
- },
71
- {
72
- label: "Erklæring om informasjonskapsler",
73
- url: "https://ndla.no/article/erklaering-for-informasjonskapsler",
74
- },
75
- {
76
- label: "Tilgjengelighetserklæring",
77
- url: "https://uustatus.no/nn/erklaringer/publisert/8cefdf3d-3272-402a-907b-689ddfc9bba7",
78
- },
79
- ];
10
+ import FooterBlock from "./FooterBlock";
80
11
 
81
12
  export default {
82
- title: "Components/Footer",
13
+ title: "Components/FooterBlock",
83
14
  tags: ["autodocs"],
84
- component: Footer,
15
+ component: FooterBlock,
85
16
  parameters: {
86
17
  inlineStories: true,
87
18
  },
@@ -89,10 +20,7 @@ export default {
89
20
  args: {
90
21
  children: (
91
22
  <>
92
- <FooterText>
93
- <EditorName title="Ansvarlig redaktør:" name="Sigurd Trageton" />
94
- </FooterText>
95
- <FooterText>Nettstedet er utarbeidet av NDLA med åpen kildekode.</FooterText>
23
+ <p>Litt tekst i footer!</p>
96
24
  </>
97
25
  ),
98
26
  },
@@ -101,33 +29,7 @@ export default {
101
29
  languageSelector: { control: false },
102
30
  auth: { control: false },
103
31
  },
104
- render: (args) => <Footer {...args}></Footer>,
105
- } as Meta<typeof Footer>;
106
-
107
- export const Default: StoryObj<typeof Footer> = {};
108
-
109
- export const WithContentAndLinks: StoryObj<typeof Footer> = {
110
- args: {
111
- privacyLinks: privacyLinks,
112
- commonLinks: mockCommonLinks,
113
- links: mockFooterLinks,
114
- },
115
- };
116
-
117
- export const WithoutContent: StoryObj<typeof Footer> = {
118
- args: {
119
- children: undefined,
120
- commonLinks: mockCommonLinks,
121
- links: mockFooterLinks,
122
- privacyLinks: privacyLinks,
123
- },
124
- };
32
+ render: (args) => <FooterBlock {...args} />,
33
+ } as Meta<typeof FooterBlock>;
125
34
 
126
- export const WithAuthBlock: StoryObj<typeof Footer> = {
127
- args: {
128
- privacyLinks: privacyLinks,
129
- commonLinks: mockCommonLinks,
130
- links: mockFooterLinks,
131
- auth: <div>Auth info can be placed down here</div>,
132
- },
133
- };
35
+ export const Default: StoryObj<typeof FooterBlock> = {};
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Copyright (c) 2016-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 { breakpoints, colors, mq, spacing, stackOrder } from "@ndla/core";
11
+
12
+ export const FooterBlock = styled.div`
13
+ position: relative;
14
+ display: flex;
15
+ flex-direction: column;
16
+ align-items: center;
17
+ gap: ${spacing.large};
18
+ color: ${colors.white};
19
+ z-index: ${stackOrder.offsetSingle};
20
+ padding: ${spacing.large} ${spacing.large} ${spacing.xlarge};
21
+ background: ${colors.brand.dark};
22
+ ${mq.range({ from: breakpoints.wide })} {
23
+ padding: ${spacing.large} 170px ${spacing.xlarge};
24
+ }
25
+ > * {
26
+ max-width: 1100px;
27
+ }
28
+ `;
29
+
30
+ export default FooterBlock;
@@ -6,8 +6,4 @@
6
6
  *
7
7
  */
8
8
 
9
- import { EditorName } from "./EditorName";
10
- import Footer from "./Footer";
11
- import { FooterText } from "./FooterText";
12
-
13
- export { Footer, FooterText, EditorName };
9
+ export { FooterBlock } from "./FooterBlock";
@@ -8,10 +8,10 @@
8
8
 
9
9
  import { CSSProperties, ReactNode, useMemo } from "react";
10
10
  import styled from "@emotion/styled";
11
- import { spacing, spacingUnit } from "@ndla/core";
11
+ import { spacing } from "@ndla/core";
12
+ import { useComponentSize } from "@ndla/hooks";
12
13
  import { Heading, Text } from "@ndla/typography";
13
14
  import { ArticleByline } from "../Article";
14
- import { useMastheadHeight } from "../Masthead";
15
15
  import { Article } from "../types";
16
16
 
17
17
  interface Props {
@@ -58,7 +58,7 @@ const StyledArticle = styled.article`
58
58
  `;
59
59
 
60
60
  export const FrontpageArticle = ({ article, id, isWide, licenseBox, lang }: Props) => {
61
- const { height = 0 } = useMastheadHeight();
61
+ const { height = 0 } = useComponentSize("masthead");
62
62
  const cssVars = useMemo(() => ({ "--masthead-height": `${height}px` }) as unknown as CSSProperties, [height]);
63
63
  const { title, introduction, content } = article;
64
64
 
@@ -118,11 +118,13 @@ const getFilteredExamples = (
118
118
  glossData?.examples?.map((examples, i) => {
119
119
  if (exampleIdsList.includes(i.toString())) {
120
120
  return examples.filter((e) => exampleLangsList.includes(e.language));
121
- } else return [];
121
+ }
122
+ return [];
122
123
  }) ?? [];
123
124
  const examplesWithoutEmpty = filteredExamples.filter((el) => !!el.length);
124
125
  return examplesWithoutEmpty;
125
- } else return glossData?.examples ?? [];
126
+ }
127
+ return glossData?.examples ?? [];
126
128
  };
127
129
 
128
130
  const Gloss = ({ title, glossData, audio, exampleIds, exampleLangs }: Props) => {
package/src/Hero/Hero.tsx CHANGED
@@ -84,7 +84,7 @@ const StyledDiv = styled.div`
84
84
  }
85
85
 
86
86
  ${mq.range({ until: breakpoints.tablet })} {
87
- + div article.c-article {
87
+ + div article[data-ndla-article] {
88
88
  background: ${colors.white};
89
89
  margin: 0 -${spacing.normal};
90
90
  padding: ${spacing.large} ${spacing.normal} ${spacing.normal} ${spacing.normal};
@@ -8,7 +8,7 @@
8
8
 
9
9
  import { ReactNode } from "react";
10
10
  import styled from "@emotion/styled";
11
- import { colors } from "@ndla/core";
11
+ import { colors, misc } from "@ndla/core";
12
12
 
13
13
  export interface ImageCrop {
14
14
  startX: number;
@@ -51,7 +51,7 @@ const StyledImageWrapper = styled.div`
51
51
  &[data-border="true"] {
52
52
  border: 1px solid ${colors.brand.tertiary};
53
53
  border-bottom: 0;
54
- border-radius: 4px;
54
+ border-radius: ${misc.borderRadius};
55
55
  border-bottom-left-radius: 0;
56
56
  border-bottom-right-radius: 0;
57
57
  }
@@ -74,7 +74,7 @@ const LanguageSelector = <T extends string>({ locales, onSelect, inverted, trigg
74
74
  aria-label={t("footer.selectLanguage")}
75
75
  id={triggerId}
76
76
  >
77
- {t(`languages.prefixChangeLanguage`)} <ChevronDown />
77
+ {t("languages.prefixChangeLanguage")} <ChevronDown />
78
78
  </ButtonV2>
79
79
  </DropdownTrigger>
80
80
  <StyledDropdownContent sideOffset={4} showArrow>
@@ -17,7 +17,8 @@ export const LayoutItem = ({ children, layout, ...rest }: Props) => {
17
17
  const className = useMemo(() => {
18
18
  if (layout === "extend") {
19
19
  return "u-10/12@desktop u-push-1/12@desktop u-10/12@tablet u-push-1/12@tablet";
20
- } else if (layout === "center") {
20
+ }
21
+ if (layout === "center") {
21
22
  return "u-10/12 u-push-1/12";
22
23
  }
23
24
  return undefined;
@@ -6,48 +6,38 @@
6
6
  *
7
7
  */
8
8
 
9
- import { HTMLAttributes, ReactNode } from "react";
10
- import BEMHelper from "react-bem-helper";
9
+ import { ComponentPropsWithoutRef } from "react";
10
+ import { css } from "@emotion/react";
11
+ import styled from "@emotion/styled";
12
+ import { mq, spacing, breakpoints } from "@ndla/core";
11
13
 
12
- const classes = BEMHelper({
13
- prefix: "o-",
14
- name: "wrapper",
15
- outputIsString: true,
16
- });
17
-
18
- interface Props extends HTMLAttributes<HTMLDivElement> {
19
- children?: ReactNode;
20
- className?: string;
21
- cssModifier?: string;
14
+ interface Props extends ComponentPropsWithoutRef<"div"> {
22
15
  wide?: boolean;
23
- noPadding?: boolean;
24
- extraPadding?: boolean;
25
16
  }
26
17
 
27
- export const OneColumn = ({ children, className, cssModifier, wide, noPadding, extraPadding, ...rest }: Props) => {
28
- const modifiers = [];
29
-
30
- if (cssModifier) {
31
- modifiers.push(cssModifier);
32
- }
33
-
34
- if (wide) {
35
- modifiers.push("wide");
18
+ const StyledOneColumn = styled.div`
19
+ max-width: 1024px;
20
+ margin-left: auto;
21
+ margin-right: auto;
22
+ width: 100%;
23
+ padding-left: ${spacing.nsmall};
24
+ padding-right: ${spacing.nsmall};
25
+
26
+ ${mq.range({ from: breakpoints.mobileWide })} {
27
+ padding-left: ${spacing.normal};
28
+ padding-right: ${spacing.normal};
36
29
  }
37
-
38
- if (noPadding) {
39
- modifiers.push("no-padding");
30
+ &::after {
31
+ content: "" !important;
32
+ display: block !important;
33
+ clear: both !important;
40
34
  }
35
+ `;
41
36
 
42
- if (extraPadding) {
43
- modifiers.push("extra-padding");
44
- }
37
+ const wideStyle = css`
38
+ max-width: 1150px;
39
+ `;
45
40
 
46
- return (
47
- <div className={`${classes("", modifiers, className)}`} {...rest}>
48
- {children}
49
- </div>
50
- );
51
- };
41
+ export const OneColumn = ({ wide, ...rest }: Props) => <StyledOneColumn css={wide ? wideStyle : undefined} {...rest} />;
52
42
 
53
43
  export default OneColumn;
@@ -6,33 +6,29 @@
6
6
  *
7
7
  */
8
8
 
9
- import { HTMLAttributes, ReactNode } from "react";
10
- import BEMHelper from "react-bem-helper";
9
+ import { ComponentPropsWithoutRef } from "react";
10
+ import { css } from "@emotion/react";
11
+ import styled from "@emotion/styled";
12
+ import { colors, mq, breakpoints } from "@ndla/core";
11
13
 
12
- const classes = new BEMHelper({
13
- name: "container",
14
- prefix: "o-",
15
- });
16
-
17
- interface Props extends HTMLAttributes<HTMLDivElement> {
18
- children?: ReactNode;
19
- background?: boolean;
14
+ interface Props extends ComponentPropsWithoutRef<"div"> {
20
15
  backgroundWide?: boolean;
21
- ndlaFilm?: boolean;
22
- learningPath?: boolean;
23
16
  }
24
17
 
25
- export const PageContainer = ({
26
- children,
27
- background = false,
28
- backgroundWide = false,
29
- ndlaFilm = false,
30
- learningPath = false,
31
- ...rest
32
- }: Props) => (
33
- <div {...classes("", { background, backgroundWide, ndlaFilm, learningPath })} {...rest}>
34
- {children}
35
- </div>
18
+ const StyledPageContainer = styled.div`
19
+ min-height: 100vh;
20
+ display: flex;
21
+ flex-direction: column;
22
+ `;
23
+
24
+ const backgroundWideStyle = css`
25
+ ${mq.range({ from: breakpoints.tablet })} {
26
+ background-color: ${colors.brand.greyLightest};
27
+ }
28
+ `;
29
+
30
+ export const PageContainer = ({ backgroundWide = false, ...rest }: Props) => (
31
+ <StyledPageContainer css={backgroundWide ? backgroundWideStyle : undefined} {...rest} />
36
32
  );
37
33
 
38
34
  export default PageContainer;
@@ -42,9 +42,8 @@ const LicenseLink = ({ license, asLink = true }: Props) => {
42
42
  {license.abbreviation}
43
43
  </StyledSafeLink>
44
44
  );
45
- } else {
46
- return <StyledSpan>{license.abbreviation}</StyledSpan>;
47
45
  }
46
+ return <StyledSpan>{license.abbreviation}</StyledSpan>;
48
47
  };
49
48
 
50
49
  export default LicenseLink;
@@ -27,6 +27,7 @@ interface MessageBoxProps {
27
27
  links?: LinkProps[];
28
28
  showCloseButton?: boolean;
29
29
  onClose?: () => void;
30
+ contentEditable?: boolean;
30
31
  }
31
32
 
32
33
  const MessageBoxWrapper = styled.div`
@@ -93,10 +94,10 @@ const StyledCloseButton = styled(IconButtonV2)`
93
94
  right: ${spacing.xsmall};
94
95
  `;
95
96
 
96
- export const MessageBox = ({ type, children, links, showCloseButton, onClose }: MessageBoxProps) => {
97
+ export const MessageBox = ({ type, children, links, showCloseButton, onClose, contentEditable }: MessageBoxProps) => {
97
98
  const { t } = useTranslation();
98
99
  return (
99
- <MessageBoxWrapper data-type={type}>
100
+ <MessageBoxWrapper data-type={type} contentEditable={contentEditable ?? undefined}>
100
101
  <InfoWrapper>
101
102
  <div>
102
103
  <ChildrenWrapper>{children}</ChildrenWrapper>
@@ -7,5 +7,4 @@
7
7
  */
8
8
 
9
9
  import Folder from "./Folder";
10
- import FolderInput from "./FolderInput";
11
- export { Folder, FolderInput };
10
+ export { Folder };
@@ -7,5 +7,4 @@
7
7
  */
8
8
 
9
9
  import Folder from "./Resource/Folder";
10
- import FolderInput from "./Resource/FolderInput";
11
- export { Folder, FolderInput };
10
+ export { Folder };
@@ -30,11 +30,11 @@ const TextWrapper = styled.div<{ hasVisualElement: boolean }>`
30
30
  ${mq.range({ from: breakpoints.desktop })} {
31
31
  ul,
32
32
  ol {
33
- margin: 12px 0;
33
+ margin: ${spacing.small} 0;
34
34
  padding: 0 1rem 0 2rem;
35
35
  }
36
36
  ol > li {
37
- margin-left: 24px;
37
+ margin-left: ${spacing.normal};
38
38
  }
39
39
  }
40
40
  `;
@@ -119,9 +119,8 @@ const BlockImage = ({ image, loading, contentType }: BlockImageProps) => {
119
119
  <ContentTypeBadge type={contentType} size="large" />
120
120
  </ContentIconWrapper>
121
121
  );
122
- } else {
123
- return <Image alt={image.alt} src={image.src} fallbackWidth={300} />;
124
122
  }
123
+ return <Image alt={image.alt} src={image.src} fallbackWidth={300} />;
125
124
  };
126
125
 
127
126
  const ResourceTypeAndTitleLoader = ({ children, loading }: LoaderProps) => {
@@ -169,13 +168,10 @@ const BlockResource = ({
169
168
  const contentType = useMemo(() => {
170
169
  if (!firstResourceType) {
171
170
  return MISSING;
172
- } else {
173
- return (
174
- contentTypeMapping[firstResourceType] ??
175
- resourceEmbedTypeMapping[firstResourceType] ??
176
- contentTypeMapping["default"]
177
- );
178
171
  }
172
+ return (
173
+ contentTypeMapping[firstResourceType] ?? resourceEmbedTypeMapping[firstResourceType] ?? contentTypeMapping.default
174
+ );
179
175
  }, [firstResourceType]);
180
176
 
181
177
  return (
@@ -142,11 +142,10 @@ const ListResourceImage = ({ resourceImage, loading, type, contentType, backgrou
142
142
  <ContentTypeBadge type={contentType} background={background} size="x-small" />
143
143
  </ContentIconWrapper>
144
144
  );
145
- } else {
146
- return (
147
- <StyledImage alt={resourceImage.alt} src={resourceImage.src} fallbackWidth={type === "compact" ? 56 : 136} />
148
- );
149
145
  }
146
+ return (
147
+ <StyledImage alt={resourceImage.alt} src={resourceImage.src} fallbackWidth={type === "compact" ? 56 : 136} />
148
+ );
150
149
  }
151
150
 
152
151
  return (
@@ -231,9 +230,8 @@ const ListResource = ({
231
230
  const contentType = useMemo(() => {
232
231
  if (!firstContentType) {
233
232
  return MISSING;
234
- } else {
235
- return contentTypeMapping[firstContentType] ?? embedResourceType ?? contentTypeMapping["default"];
236
233
  }
234
+ return contentTypeMapping[firstContentType] ?? embedResourceType ?? contentTypeMapping.default;
237
235
  }, [embedResourceType, firstContentType]);
238
236
 
239
237
  return (
@@ -130,10 +130,10 @@ const ContentTypeResult = ({
130
130
 
131
131
  // Figure out highlighting by comparing path of link with keyboard navigated anchor
132
132
  const anchor =
133
- keyboardPathNavigation instanceof HTMLElement &&
134
- keyboardPathNavigation &&
135
- keyboardPathNavigation.querySelector("a");
136
- const anchorHref = anchor && anchor.getAttribute("href");
133
+ keyboardPathNavigation instanceof HTMLElement && keyboardPathNavigation
134
+ ? keyboardPathNavigation.querySelector("a")
135
+ : undefined;
136
+ const anchorHref = anchor?.getAttribute("href") ?? null;
137
137
  const shouldHighlight = isPathToHighlight(path, anchorHref);
138
138
 
139
139
  return (
@@ -9,7 +9,7 @@
9
9
  import { ElementType, Fragment, ReactNode } from "react";
10
10
  import { useTranslation } from "react-i18next";
11
11
  import styled from "@emotion/styled";
12
- import { fonts, mq, spacing, breakpoints, colors, spacingUnit } from "@ndla/core";
12
+ import { fonts, mq, spacing, breakpoints, colors, spacingUnit, misc } from "@ndla/core";
13
13
  import { Spinner } from "@ndla/icons";
14
14
  import { ChevronRight } from "@ndla/icons/common";
15
15
  import { SafeLink } from "@ndla/safelink";
@@ -68,7 +68,7 @@ const PillsWrapper = styled.div`
68
68
  background: ${colors.brand.greyLightest};
69
69
  margin-right: ${spacing.small};
70
70
  padding: 0 ${spacingUnit / 3}px;
71
- border-radius: 50%;
71
+ border-radius: ${misc.borderRadiusLarge};
72
72
  ${fonts.sizes("12px", "20px")};
73
73
  font-weight: ${fonts.weight.semibold};
74
74
  `;