@ndla/ui 51.0.0 → 53.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 (558) hide show
  1. package/README.md +2 -2
  2. package/es/Article/Article.js +113 -120
  3. package/es/Article/ArticleHeaderWrapper.js +14 -20
  4. package/es/Article/ArticleParagraph.js +25 -0
  5. package/es/Article/index.js +1 -0
  6. package/es/AudioPlayer/AudioPlayer.js +13 -13
  7. package/es/AudioPlayer/Controls.js +22 -38
  8. package/es/Breadcrumb/Breadcrumb.js +2 -33
  9. package/es/Breadcrumb/BreadcrumbItem.js +16 -29
  10. package/es/Breadcrumb/index.js +0 -1
  11. package/es/CodeBlock/CodeBlock.js +115 -0
  12. package/es/CodeBlock/codeLanguageOptions.js +84 -0
  13. package/es/CodeBlock/index.js +10 -0
  14. package/es/CreatedBy/CreatedBy.js +4 -4
  15. package/es/Embed/BrightcoveEmbed.js +3 -3
  16. package/es/Embed/CodeEmbed.js +2 -2
  17. package/es/Embed/ConceptEmbed.js +37 -33
  18. package/es/Embed/ExternalEmbed.js +2 -2
  19. package/es/Embed/IframeEmbed.js +1 -1
  20. package/es/Embed/ImageEmbed.js +17 -14
  21. package/es/Embed/RelatedContentEmbed.js +3 -3
  22. package/es/Embed/UuDisclaimerEmbed.js +4 -3
  23. package/es/Embed/conceptComponents.js +10 -10
  24. package/es/Figure/Figure.js +32 -19
  25. package/es/FrontpageArticle/FrontpageArticle.js +3 -3
  26. package/es/Gloss/Gloss.js +12 -10
  27. package/es/Hero/Hero.js +1 -1
  28. package/es/Image/Image.js +3 -3
  29. package/es/LanguageSelector/LanguageSelector.js +5 -5
  30. package/es/Layout/LayoutItem.js +2 -1
  31. package/es/Layout/OneColumn.js +22 -28
  32. package/es/Layout/PageContainer.js +21 -17
  33. package/es/LicenseByline/LicenseLink.js +5 -6
  34. package/es/Messages/MessageBox.js +9 -7
  35. package/es/MyNdla/Resource/index.js +1 -2
  36. package/es/MyNdla/index.js +1 -2
  37. package/es/Notion/Notion.js +4 -4
  38. package/es/Resource/BlockResource.js +13 -15
  39. package/es/Resource/ListResource.js +13 -15
  40. package/es/Search/ContentTypeResult.js +4 -4
  41. package/es/Search/SearchResult.js +11 -11
  42. package/es/Search/SearchResultSleeve.js +16 -16
  43. package/es/TreeStructure/TreeStructure.js +6 -6
  44. package/es/all.css +1 -1
  45. package/es/index.js +5 -20
  46. package/es/locale/messages-en.js +15 -2
  47. package/es/locale/messages-nb.js +15 -2
  48. package/es/locale/messages-nn.js +16 -3
  49. package/es/locale/messages-se.js +14 -1
  50. package/es/locale/messages-sma.js +15 -2
  51. package/es/types.js +0 -9
  52. package/lib/Article/Article.d.ts +8 -11
  53. package/lib/Article/Article.js +111 -118
  54. package/lib/Article/ArticleHeaderWrapper.js +14 -20
  55. package/lib/Article/ArticleParagraph.d.ts +13 -0
  56. package/lib/Article/ArticleParagraph.js +32 -0
  57. package/lib/Article/index.d.ts +2 -0
  58. package/lib/Article/index.js +7 -0
  59. package/lib/AudioPlayer/AudioPlayer.js +13 -13
  60. package/lib/AudioPlayer/Controls.js +21 -37
  61. package/lib/Breadcrumb/Breadcrumb.d.ts +1 -2
  62. package/lib/Breadcrumb/Breadcrumb.js +2 -33
  63. package/lib/Breadcrumb/BreadcrumbItem.js +16 -29
  64. package/lib/Breadcrumb/index.d.ts +0 -1
  65. package/lib/Breadcrumb/index.js +0 -7
  66. package/lib/CodeBlock/CodeBlock.d.ts +18 -0
  67. package/lib/CodeBlock/CodeBlock.js +121 -0
  68. package/lib/{Navigation/index.d.ts → CodeBlock/codeLanguageOptions.d.ts} +5 -2
  69. package/lib/CodeBlock/codeLanguageOptions.js +90 -0
  70. package/lib/CodeBlock/index.d.ts +9 -0
  71. package/lib/CodeBlock/index.js +20 -0
  72. package/lib/CreatedBy/CreatedBy.js +4 -4
  73. package/lib/Embed/BrightcoveEmbed.js +3 -3
  74. package/lib/Embed/CodeEmbed.js +2 -2
  75. package/lib/Embed/ConceptEmbed.d.ts +1 -1
  76. package/lib/Embed/ConceptEmbed.js +36 -33
  77. package/lib/Embed/ExternalEmbed.js +2 -2
  78. package/lib/Embed/IframeEmbed.js +1 -1
  79. package/lib/Embed/ImageEmbed.js +17 -14
  80. package/lib/Embed/RelatedContentEmbed.js +3 -3
  81. package/lib/Embed/UuDisclaimerEmbed.js +4 -3
  82. package/lib/Embed/conceptComponents.js +10 -10
  83. package/lib/Figure/Figure.d.ts +2 -5
  84. package/lib/Figure/Figure.js +32 -23
  85. package/lib/FrontpageArticle/FrontpageArticle.js +3 -3
  86. package/lib/Gloss/Gloss.js +12 -10
  87. package/lib/Hero/Hero.js +1 -1
  88. package/lib/Image/Image.js +2 -2
  89. package/lib/LanguageSelector/LanguageSelector.js +5 -5
  90. package/lib/Layout/LayoutItem.js +2 -1
  91. package/lib/Layout/OneColumn.d.ts +3 -8
  92. package/lib/Layout/OneColumn.js +22 -30
  93. package/lib/Layout/PageContainer.d.ts +3 -7
  94. package/lib/Layout/PageContainer.js +21 -19
  95. package/lib/LicenseByline/LicenseLink.js +5 -6
  96. package/lib/Messages/MessageBox.d.ts +2 -1
  97. package/lib/Messages/MessageBox.js +9 -7
  98. package/lib/MyNdla/Resource/index.d.ts +1 -2
  99. package/lib/MyNdla/Resource/index.js +0 -7
  100. package/lib/MyNdla/index.d.ts +1 -2
  101. package/lib/MyNdla/index.js +0 -7
  102. package/lib/Notion/Notion.js +4 -4
  103. package/lib/Resource/BlockResource.js +13 -15
  104. package/lib/Resource/ListResource.js +13 -15
  105. package/lib/Search/ContentTypeResult.js +4 -4
  106. package/lib/Search/SearchResult.js +10 -10
  107. package/lib/Search/SearchResultSleeve.js +16 -16
  108. package/lib/TreeStructure/TreeStructure.js +6 -6
  109. package/lib/all.css +1 -1
  110. package/lib/index.d.ts +5 -20
  111. package/lib/index.js +17 -254
  112. package/lib/locale/messages-en.d.ts +13 -0
  113. package/lib/locale/messages-en.js +15 -2
  114. package/lib/locale/messages-nb.d.ts +13 -0
  115. package/lib/locale/messages-nb.js +15 -2
  116. package/lib/locale/messages-nn.d.ts +13 -0
  117. package/lib/locale/messages-nn.js +16 -3
  118. package/lib/locale/messages-se.d.ts +13 -0
  119. package/lib/locale/messages-se.js +14 -1
  120. package/lib/locale/messages-sma.d.ts +13 -0
  121. package/lib/locale/messages-sma.js +15 -2
  122. package/lib/types.d.ts +0 -51
  123. package/lib/types.js +1 -10
  124. package/package.json +16 -22
  125. package/src/Article/Article.tsx +179 -119
  126. package/src/Article/ArticleHeaderWrapper.tsx +17 -21
  127. package/src/Article/ArticleParagraph.tsx +22 -0
  128. package/src/Article/index.ts +4 -0
  129. package/src/AudioPlayer/AudioPlayer.tsx +2 -2
  130. package/src/AudioPlayer/Controls.tsx +5 -5
  131. package/src/Breadcrumb/Breadcrumb.stories.tsx +0 -4
  132. package/src/Breadcrumb/Breadcrumb.tsx +1 -38
  133. package/src/Breadcrumb/BreadcrumbItem.tsx +5 -19
  134. package/src/Breadcrumb/index.ts +0 -2
  135. package/src/CodeBlock/CodeBlock.stories.tsx +113 -0
  136. package/src/CodeBlock/CodeBlock.tsx +228 -0
  137. package/src/CodeBlock/codeLanguageOptions.ts +115 -0
  138. package/src/CodeBlock/index.ts +10 -0
  139. package/src/CreatedBy/CreatedBy.tsx +2 -2
  140. package/src/Embed/AudioEmbed.stories.tsx +6 -4
  141. package/src/Embed/BrightcoveEmbed.stories.tsx +6 -4
  142. package/src/Embed/BrightcoveEmbed.tsx +2 -2
  143. package/src/Embed/CodeEmbed.tsx +2 -2
  144. package/src/Embed/ConceptEmbed.stories.tsx +6 -4
  145. package/src/Embed/ConceptEmbed.tsx +103 -96
  146. package/src/Embed/ExternalEmbed.stories.tsx +6 -4
  147. package/src/Embed/ExternalEmbed.tsx +2 -2
  148. package/src/Embed/H5pEmbed.stories.tsx +6 -4
  149. package/src/Embed/IframeEmbed.stories.tsx +6 -4
  150. package/src/Embed/IframeEmbed.tsx +1 -1
  151. package/src/Embed/ImageEmbed.stories.tsx +6 -4
  152. package/src/Embed/ImageEmbed.tsx +19 -11
  153. package/src/Embed/RelatedContentEmbed.stories.tsx +6 -4
  154. package/src/Embed/RelatedContentEmbed.tsx +3 -3
  155. package/src/Embed/UuDisclaimerEmbed.stories.tsx +23 -4
  156. package/src/Embed/UuDisclaimerEmbed.tsx +1 -1
  157. package/src/Embed/conceptComponents.tsx +1 -0
  158. package/src/Figure/Figure.tsx +57 -18
  159. package/src/Footer/Footer.stories.tsx +1 -1
  160. package/src/FrontpageArticle/FrontpageArticle.tsx +3 -3
  161. package/src/Gloss/Gloss.tsx +4 -2
  162. package/src/Hero/Hero.tsx +1 -1
  163. package/src/Image/Image.tsx +2 -2
  164. package/src/LanguageSelector/LanguageSelector.tsx +1 -1
  165. package/src/Layout/LayoutItem.tsx +2 -1
  166. package/src/Layout/OneColumn.tsx +25 -35
  167. package/src/Layout/PageContainer.tsx +19 -23
  168. package/src/LicenseByline/LicenseLink.tsx +1 -2
  169. package/src/Messages/MessageBox.tsx +3 -2
  170. package/src/MyNdla/Resource/index.ts +1 -2
  171. package/src/MyNdla/index.ts +1 -2
  172. package/src/Notion/Notion.tsx +2 -2
  173. package/src/Resource/BlockResource.tsx +4 -8
  174. package/src/Resource/ListResource.tsx +4 -6
  175. package/src/Search/ContentTypeResult.tsx +4 -4
  176. package/src/Search/SearchResult.tsx +2 -2
  177. package/src/Search/SearchResultSleeve.tsx +7 -9
  178. package/src/Table/Table.stories.tsx +8 -8
  179. package/src/TreeStructure/TreeStructure.stories.tsx +85 -28
  180. package/src/TreeStructure/TreeStructure.tsx +1 -1
  181. package/src/all.scss +2 -3
  182. package/src/index.ts +7 -48
  183. package/src/locale/messages-en.ts +17 -1
  184. package/src/locale/messages-nb.ts +17 -1
  185. package/src/locale/messages-nn.ts +18 -2
  186. package/src/locale/messages-se.ts +16 -0
  187. package/src/locale/messages-sma.ts +17 -1
  188. package/src/types.ts +0 -62
  189. package/es/Article/ArticleAccessMessage.js +0 -43
  190. package/es/Article/ArticleNotions.js +0 -90
  191. package/es/Aside/Aside.js +0 -75
  192. package/es/Aside/index.js +0 -10
  193. package/es/BannerCard/BannerCard.js +0 -84
  194. package/es/BannerCard/index.js +0 -10
  195. package/es/Breadcrumb/HeaderBreadcrumb.js +0 -57
  196. package/es/CompetenceGoalTab/CompetenceGoalItem.js +0 -42
  197. package/es/CompetenceGoalTab/CompetenceGoalTab.js +0 -75
  198. package/es/CompetenceGoalTab/CompetenceItem.js +0 -108
  199. package/es/CompetenceGoalTab/CoreElementItem.js +0 -44
  200. package/es/CompetenceGoalTab/SearchButton.js +0 -43
  201. package/es/CompetenceGoalTab/index.js +0 -10
  202. package/es/CompetenceGoalTab/styles.js +0 -57
  203. package/es/Filter/FilterButtons.js +0 -185
  204. package/es/Filter/FilterCarousel.js +0 -166
  205. package/es/Filter/ToggleItem.js +0 -68
  206. package/es/Filter/index.js +0 -10
  207. package/es/Frontpage/FrontpageAllSubjects.js +0 -254
  208. package/es/LearningPaths/LearningPathContent.js +0 -25
  209. package/es/LearningPaths/LearningPathInformation.js +0 -74
  210. package/es/LearningPaths/LearningPathLastStepNavigation.js +0 -65
  211. package/es/LearningPaths/LearningPathMenu.js +0 -103
  212. package/es/LearningPaths/LearningPathMenuAside.js +0 -62
  213. package/es/LearningPaths/LearningPathMenuContent.js +0 -109
  214. package/es/LearningPaths/LearningPathMenuIntro.js +0 -72
  215. package/es/LearningPaths/LearningPathMenuModalWrapper.js +0 -63
  216. package/es/LearningPaths/LearningPathMobileHeader.js +0 -35
  217. package/es/LearningPaths/LearningPathMobileStepInfo.js +0 -34
  218. package/es/LearningPaths/LearningPathSticky.js +0 -74
  219. package/es/LearningPaths/LearningPathWrapper.js +0 -27
  220. package/es/LearningPaths/index.js +0 -18
  221. package/es/Masthead/Masthead.js +0 -62
  222. package/es/Masthead/SkipToMainContent.js +0 -30
  223. package/es/Masthead/index.js +0 -13
  224. package/es/Masthead/utils.js +0 -38
  225. package/es/MyNdla/Resource/FolderInput.js +0 -94
  226. package/es/NDLAFilm/AllMoviesAlphabetically.js +0 -127
  227. package/es/NDLAFilm/FilmContentCard.js +0 -93
  228. package/es/NDLAFilm/FilmContentCardTags.js +0 -44
  229. package/es/NDLAFilm/FilmMovieList.js +0 -52
  230. package/es/NDLAFilm/FilmMovieSearch.js +0 -106
  231. package/es/NDLAFilm/FilmSlideshow.js +0 -138
  232. package/es/NDLAFilm/MovieGrid.js +0 -54
  233. package/es/NDLAFilm/VisualElement.js +0 -48
  234. package/es/NDLAFilm/filmStyles.js +0 -31
  235. package/es/NDLAFilm/index.js +0 -14
  236. package/es/NDLAFilm/isLetter.js +0 -13
  237. package/es/NDLAFilm/types.js +0 -1
  238. package/es/Navigation/NavigationBox.js +0 -187
  239. package/es/Navigation/index.js +0 -10
  240. package/es/NoContentBox/NoContentBox.js +0 -31
  241. package/es/NoContentBox/index.js +0 -10
  242. package/es/Programme/Programme.js +0 -104
  243. package/es/Programme/ProgrammeSubjects.js +0 -60
  244. package/es/Programme/index.js +0 -12
  245. package/es/ResourceGroup/ResourceGroup.js +0 -46
  246. package/es/ResourceGroup/ResourceItem.js +0 -196
  247. package/es/ResourceGroup/ResourceList.js +0 -57
  248. package/es/ResourceGroup/index.js +0 -10
  249. package/es/ResourcesWrapper/ResourcesTopicTitle.js +0 -160
  250. package/es/ResourcesWrapper/ResourcesWrapper.js +0 -27
  251. package/es/ResourcesWrapper/index.js +0 -11
  252. package/es/SearchTypeResult/ActiveFilterContent.js +0 -53
  253. package/es/SearchTypeResult/ActiveFilters.js +0 -124
  254. package/es/SearchTypeResult/PopupFilter.js +0 -133
  255. package/es/SearchTypeResult/ResultNavigation.js +0 -75
  256. package/es/SearchTypeResult/SearchFieldHeader.js +0 -103
  257. package/es/SearchTypeResult/SearchFilterContent.js +0 -59
  258. package/es/SearchTypeResult/SearchHeader.js +0 -160
  259. package/es/SearchTypeResult/SearchItem.js +0 -97
  260. package/es/SearchTypeResult/SearchItemList.js +0 -142
  261. package/es/SearchTypeResult/SearchItems.js +0 -60
  262. package/es/SearchTypeResult/SearchSubjectItem.js +0 -62
  263. package/es/SearchTypeResult/SearchSubjectResult.js +0 -34
  264. package/es/SearchTypeResult/SearchTypeHeader.js +0 -118
  265. package/es/SearchTypeResult/SearchTypeResult.js +0 -55
  266. package/es/SearchTypeResult/SearchViewType.js +0 -90
  267. package/es/SearchTypeResult/components/ItemContexts.js +0 -122
  268. package/es/SearchTypeResult/components/ItemResourceHeader.js +0 -96
  269. package/es/SearchTypeResult/components/ItemTopicHeader.js +0 -66
  270. package/es/SearchTypeResult/components/SubjectFilters.js +0 -130
  271. package/es/SearchTypeResult/index.js +0 -14
  272. package/es/Subject/SubjectBanner.js +0 -30
  273. package/es/Subject/index.js +0 -9
  274. package/es/ToolboxPage/ToolboxInfo.js +0 -43
  275. package/es/ToolboxPage/index.js +0 -10
  276. package/es/Topic/Loader.js +0 -107
  277. package/es/Topic/Topic.js +0 -221
  278. package/es/Topic/index.js +0 -10
  279. package/es/locale/LocaleProvider.js +0 -38
  280. package/lib/Article/ArticleAccessMessage.d.ts +0 -12
  281. package/lib/Article/ArticleAccessMessage.js +0 -50
  282. package/lib/Article/ArticleNotions.d.ts +0 -14
  283. package/lib/Article/ArticleNotions.js +0 -96
  284. package/lib/Aside/Aside.d.ts +0 -15
  285. package/lib/Aside/Aside.js +0 -80
  286. package/lib/Aside/index.d.ts +0 -9
  287. package/lib/Aside/index.js +0 -16
  288. package/lib/BannerCard/BannerCard.d.ts +0 -29
  289. package/lib/BannerCard/BannerCard.js +0 -92
  290. package/lib/BannerCard/index.d.ts +0 -9
  291. package/lib/BannerCard/index.js +0 -13
  292. package/lib/Breadcrumb/HeaderBreadcrumb.d.ts +0 -14
  293. package/lib/Breadcrumb/HeaderBreadcrumb.js +0 -64
  294. package/lib/CompetenceGoalTab/CompetenceGoalItem.d.ts +0 -10
  295. package/lib/CompetenceGoalTab/CompetenceGoalItem.js +0 -49
  296. package/lib/CompetenceGoalTab/CompetenceGoalTab.d.ts +0 -14
  297. package/lib/CompetenceGoalTab/CompetenceGoalTab.js +0 -82
  298. package/lib/CompetenceGoalTab/CompetenceItem.d.ts +0 -30
  299. package/lib/CompetenceGoalTab/CompetenceItem.js +0 -113
  300. package/lib/CompetenceGoalTab/CoreElementItem.d.ts +0 -10
  301. package/lib/CompetenceGoalTab/CoreElementItem.js +0 -51
  302. package/lib/CompetenceGoalTab/SearchButton.d.ts +0 -14
  303. package/lib/CompetenceGoalTab/SearchButton.js +0 -50
  304. package/lib/CompetenceGoalTab/index.d.ts +0 -9
  305. package/lib/CompetenceGoalTab/index.js +0 -16
  306. package/lib/CompetenceGoalTab/styles.d.ts +0 -28
  307. package/lib/CompetenceGoalTab/styles.js +0 -62
  308. package/lib/Filter/FilterButtons.d.ts +0 -16
  309. package/lib/Filter/FilterButtons.js +0 -192
  310. package/lib/Filter/FilterCarousel.d.ts +0 -13
  311. package/lib/Filter/FilterCarousel.js +0 -171
  312. package/lib/Filter/ToggleItem.d.ts +0 -21
  313. package/lib/Filter/ToggleItem.js +0 -75
  314. package/lib/Filter/index.d.ts +0 -9
  315. package/lib/Filter/index.js +0 -20
  316. package/lib/Frontpage/FrontpageAllSubjects.d.ts +0 -27
  317. package/lib/Frontpage/FrontpageAllSubjects.js +0 -259
  318. package/lib/LearningPaths/LearningPathContent.d.ts +0 -13
  319. package/lib/LearningPaths/LearningPathContent.js +0 -33
  320. package/lib/LearningPaths/LearningPathInformation.d.ts +0 -18
  321. package/lib/LearningPaths/LearningPathInformation.js +0 -80
  322. package/lib/LearningPaths/LearningPathLastStepNavigation.d.ts +0 -22
  323. package/lib/LearningPaths/LearningPathLastStepNavigation.js +0 -72
  324. package/lib/LearningPaths/LearningPathMenu.d.ts +0 -38
  325. package/lib/LearningPaths/LearningPathMenu.js +0 -110
  326. package/lib/LearningPaths/LearningPathMenuAside.d.ts +0 -24
  327. package/lib/LearningPaths/LearningPathMenuAside.js +0 -69
  328. package/lib/LearningPaths/LearningPathMenuContent.d.ts +0 -22
  329. package/lib/LearningPaths/LearningPathMenuContent.js +0 -116
  330. package/lib/LearningPaths/LearningPathMenuIntro.d.ts +0 -17
  331. package/lib/LearningPaths/LearningPathMenuIntro.js +0 -77
  332. package/lib/LearningPaths/LearningPathMenuModalWrapper.d.ts +0 -14
  333. package/lib/LearningPaths/LearningPathMenuModalWrapper.js +0 -70
  334. package/lib/LearningPaths/LearningPathMobileHeader.d.ts +0 -9
  335. package/lib/LearningPaths/LearningPathMobileHeader.js +0 -42
  336. package/lib/LearningPaths/LearningPathMobileStepInfo.d.ts +0 -13
  337. package/lib/LearningPaths/LearningPathMobileStepInfo.js +0 -41
  338. package/lib/LearningPaths/LearningPathSticky.d.ts +0 -22
  339. package/lib/LearningPaths/LearningPathSticky.js +0 -84
  340. package/lib/LearningPaths/LearningPathWrapper.d.ts +0 -14
  341. package/lib/LearningPaths/LearningPathWrapper.js +0 -35
  342. package/lib/LearningPaths/index.d.ts +0 -17
  343. package/lib/LearningPaths/index.js +0 -74
  344. package/lib/Masthead/Masthead.d.ts +0 -23
  345. package/lib/Masthead/Masthead.js +0 -68
  346. package/lib/Masthead/SkipToMainContent.d.ts +0 -12
  347. package/lib/Masthead/SkipToMainContent.js +0 -37
  348. package/lib/Masthead/index.d.ts +0 -12
  349. package/lib/Masthead/index.js +0 -36
  350. package/lib/Masthead/utils.d.ts +0 -11
  351. package/lib/Masthead/utils.js +0 -46
  352. package/lib/MyNdla/Resource/FolderInput.d.ts +0 -19
  353. package/lib/MyNdla/Resource/FolderInput.js +0 -101
  354. package/lib/NDLAFilm/AllMoviesAlphabetically.d.ts +0 -13
  355. package/lib/NDLAFilm/AllMoviesAlphabetically.js +0 -134
  356. package/lib/NDLAFilm/FilmContentCard.d.ts +0 -19
  357. package/lib/NDLAFilm/FilmContentCard.js +0 -98
  358. package/lib/NDLAFilm/FilmContentCardTags.d.ts +0 -15
  359. package/lib/NDLAFilm/FilmContentCardTags.js +0 -51
  360. package/lib/NDLAFilm/FilmMovieList.d.ts +0 -17
  361. package/lib/NDLAFilm/FilmMovieList.js +0 -59
  362. package/lib/NDLAFilm/FilmMovieSearch.d.ts +0 -21
  363. package/lib/NDLAFilm/FilmMovieSearch.js +0 -113
  364. package/lib/NDLAFilm/FilmSlideshow.d.ts +0 -13
  365. package/lib/NDLAFilm/FilmSlideshow.js +0 -143
  366. package/lib/NDLAFilm/MovieGrid.d.ts +0 -17
  367. package/lib/NDLAFilm/MovieGrid.js +0 -61
  368. package/lib/NDLAFilm/VisualElement.d.ts +0 -16
  369. package/lib/NDLAFilm/VisualElement.js +0 -53
  370. package/lib/NDLAFilm/filmStyles.d.ts +0 -17
  371. package/lib/NDLAFilm/filmStyles.js +0 -39
  372. package/lib/NDLAFilm/index.d.ts +0 -13
  373. package/lib/NDLAFilm/index.js +0 -41
  374. package/lib/NDLAFilm/isLetter.d.ts +0 -8
  375. package/lib/NDLAFilm/isLetter.js +0 -20
  376. package/lib/NDLAFilm/types.d.ts +0 -22
  377. package/lib/NDLAFilm/types.js +0 -5
  378. package/lib/Navigation/NavigationBox.d.ts +0 -30
  379. package/lib/Navigation/NavigationBox.js +0 -193
  380. package/lib/Navigation/index.js +0 -13
  381. package/lib/NoContentBox/NoContentBox.d.ts +0 -14
  382. package/lib/NoContentBox/NoContentBox.js +0 -38
  383. package/lib/NoContentBox/index.d.ts +0 -9
  384. package/lib/NoContentBox/index.js +0 -16
  385. package/lib/Programme/Programme.d.ts +0 -16
  386. package/lib/Programme/Programme.js +0 -112
  387. package/lib/Programme/ProgrammeSubjects.d.ts +0 -26
  388. package/lib/Programme/ProgrammeSubjects.js +0 -67
  389. package/lib/Programme/index.d.ts +0 -11
  390. package/lib/Programme/index.js +0 -23
  391. package/lib/ResourceGroup/ResourceGroup.d.ts +0 -18
  392. package/lib/ResourceGroup/ResourceGroup.js +0 -53
  393. package/lib/ResourceGroup/ResourceItem.d.ts +0 -22
  394. package/lib/ResourceGroup/ResourceItem.js +0 -203
  395. package/lib/ResourceGroup/ResourceList.d.ts +0 -19
  396. package/lib/ResourceGroup/ResourceList.js +0 -64
  397. package/lib/ResourceGroup/index.d.ts +0 -9
  398. package/lib/ResourceGroup/index.js +0 -16
  399. package/lib/ResourcesWrapper/ResourcesTopicTitle.d.ts +0 -20
  400. package/lib/ResourcesWrapper/ResourcesTopicTitle.js +0 -165
  401. package/lib/ResourcesWrapper/ResourcesWrapper.d.ts +0 -16
  402. package/lib/ResourcesWrapper/ResourcesWrapper.js +0 -34
  403. package/lib/ResourcesWrapper/index.d.ts +0 -10
  404. package/lib/ResourcesWrapper/index.js +0 -23
  405. package/lib/SearchTypeResult/ActiveFilterContent.d.ts +0 -23
  406. package/lib/SearchTypeResult/ActiveFilterContent.js +0 -58
  407. package/lib/SearchTypeResult/ActiveFilters.d.ts +0 -18
  408. package/lib/SearchTypeResult/ActiveFilters.js +0 -131
  409. package/lib/SearchTypeResult/PopupFilter.d.ts +0 -26
  410. package/lib/SearchTypeResult/PopupFilter.js +0 -138
  411. package/lib/SearchTypeResult/ResultNavigation.d.ts +0 -18
  412. package/lib/SearchTypeResult/ResultNavigation.js +0 -82
  413. package/lib/SearchTypeResult/SearchFieldHeader.d.ts +0 -17
  414. package/lib/SearchTypeResult/SearchFieldHeader.js +0 -109
  415. package/lib/SearchTypeResult/SearchFilterContent.d.ts +0 -16
  416. package/lib/SearchTypeResult/SearchFilterContent.js +0 -64
  417. package/lib/SearchTypeResult/SearchHeader.d.ts +0 -26
  418. package/lib/SearchTypeResult/SearchHeader.js +0 -166
  419. package/lib/SearchTypeResult/SearchItem.d.ts +0 -30
  420. package/lib/SearchTypeResult/SearchItem.js +0 -104
  421. package/lib/SearchTypeResult/SearchItemList.d.ts +0 -10
  422. package/lib/SearchTypeResult/SearchItemList.js +0 -147
  423. package/lib/SearchTypeResult/SearchItems.d.ts +0 -17
  424. package/lib/SearchTypeResult/SearchItems.js +0 -65
  425. package/lib/SearchTypeResult/SearchSubjectItem.d.ts +0 -20
  426. package/lib/SearchTypeResult/SearchSubjectItem.js +0 -67
  427. package/lib/SearchTypeResult/SearchSubjectResult.d.ts +0 -13
  428. package/lib/SearchTypeResult/SearchSubjectResult.js +0 -41
  429. package/lib/SearchTypeResult/SearchTypeHeader.d.ts +0 -22
  430. package/lib/SearchTypeResult/SearchTypeHeader.js +0 -123
  431. package/lib/SearchTypeResult/SearchTypeResult.d.ts +0 -26
  432. package/lib/SearchTypeResult/SearchTypeResult.js +0 -62
  433. package/lib/SearchTypeResult/SearchViewType.d.ts +0 -13
  434. package/lib/SearchTypeResult/SearchViewType.js +0 -95
  435. package/lib/SearchTypeResult/components/ItemContexts.d.ts +0 -19
  436. package/lib/SearchTypeResult/components/ItemContexts.js +0 -127
  437. package/lib/SearchTypeResult/components/ItemResourceHeader.d.ts +0 -16
  438. package/lib/SearchTypeResult/components/ItemResourceHeader.js +0 -101
  439. package/lib/SearchTypeResult/components/ItemTopicHeader.d.ts +0 -17
  440. package/lib/SearchTypeResult/components/ItemTopicHeader.js +0 -71
  441. package/lib/SearchTypeResult/components/SubjectFilters.d.ts +0 -32
  442. package/lib/SearchTypeResult/components/SubjectFilters.js +0 -135
  443. package/lib/SearchTypeResult/index.d.ts +0 -14
  444. package/lib/SearchTypeResult/index.js +0 -41
  445. package/lib/Subject/SubjectBanner.d.ts +0 -14
  446. package/lib/Subject/SubjectBanner.js +0 -37
  447. package/lib/Subject/index.d.ts +0 -8
  448. package/lib/Subject/index.js +0 -13
  449. package/lib/ToolboxPage/ToolboxInfo.d.ts +0 -18
  450. package/lib/ToolboxPage/ToolboxInfo.js +0 -49
  451. package/lib/ToolboxPage/index.d.ts +0 -9
  452. package/lib/ToolboxPage/index.js +0 -13
  453. package/lib/Topic/Loader.d.ts +0 -9
  454. package/lib/Topic/Loader.js +0 -114
  455. package/lib/Topic/Topic.d.ts +0 -34
  456. package/lib/Topic/Topic.js +0 -228
  457. package/lib/Topic/index.d.ts +0 -10
  458. package/lib/Topic/index.js +0 -16
  459. package/lib/locale/LocaleProvider.d.ts +0 -15
  460. package/lib/locale/LocaleProvider.js +0 -44
  461. package/src/Article/ArticleAccessMessage.tsx +0 -44
  462. package/src/Article/ArticleNotions.tsx +0 -139
  463. package/src/Article/component.article.scss +0 -156
  464. package/src/Aside/Aside.tsx +0 -113
  465. package/src/Aside/index.ts +0 -11
  466. package/src/BannerCard/BannerCard.tsx +0 -99
  467. package/src/BannerCard/index.ts +0 -11
  468. package/src/Breadcrumb/HeaderBreadcrumb.tsx +0 -56
  469. package/src/CompetenceGoalTab/CompetenceGoalItem.tsx +0 -39
  470. package/src/CompetenceGoalTab/CompetenceGoalTab.tsx +0 -85
  471. package/src/CompetenceGoalTab/CompetenceItem.tsx +0 -130
  472. package/src/CompetenceGoalTab/CoreElementItem.tsx +0 -39
  473. package/src/CompetenceGoalTab/SearchButton.tsx +0 -50
  474. package/src/CompetenceGoalTab/index.ts +0 -10
  475. package/src/CompetenceGoalTab/styles.ts +0 -37
  476. package/src/Figure/component.figure.scss +0 -60
  477. package/src/Filter/FilterButtons.tsx +0 -199
  478. package/src/Filter/FilterCarousel.tsx +0 -172
  479. package/src/Filter/ToggleItem.tsx +0 -180
  480. package/src/Filter/index.ts +0 -10
  481. package/src/Frontpage/FrontpageAllSubjects.tsx +0 -231
  482. package/src/LearningPaths/LearningPathContent.tsx +0 -33
  483. package/src/LearningPaths/LearningPathInformation.tsx +0 -82
  484. package/src/LearningPaths/LearningPathLastStepNavigation.tsx +0 -89
  485. package/src/LearningPaths/LearningPathMenu.stories.tsx +0 -65
  486. package/src/LearningPaths/LearningPathMenu.tsx +0 -166
  487. package/src/LearningPaths/LearningPathMenuAside.tsx +0 -100
  488. package/src/LearningPaths/LearningPathMenuContent.tsx +0 -277
  489. package/src/LearningPaths/LearningPathMenuIntro.tsx +0 -126
  490. package/src/LearningPaths/LearningPathMenuModalWrapper.tsx +0 -71
  491. package/src/LearningPaths/LearningPathMobileHeader.tsx +0 -37
  492. package/src/LearningPaths/LearningPathMobileStepInfo.tsx +0 -38
  493. package/src/LearningPaths/LearningPathSticky.tsx +0 -122
  494. package/src/LearningPaths/LearningPathWrapper.tsx +0 -36
  495. package/src/LearningPaths/index.ts +0 -19
  496. package/src/Masthead/Masthead.tsx +0 -100
  497. package/src/Masthead/SkipToMainContent.tsx +0 -54
  498. package/src/Masthead/index.ts +0 -16
  499. package/src/Masthead/utils.ts +0 -45
  500. package/src/MyNdla/Resource/FolderInput.stories.tsx +0 -27
  501. package/src/MyNdla/Resource/FolderInput.tsx +0 -89
  502. package/src/NDLAFilm/AllMoviesAlphabetically.tsx +0 -160
  503. package/src/NDLAFilm/FilmContentCard.tsx +0 -138
  504. package/src/NDLAFilm/FilmContentCardTags.tsx +0 -57
  505. package/src/NDLAFilm/FilmMovieList.tsx +0 -54
  506. package/src/NDLAFilm/FilmMovieSearch.tsx +0 -135
  507. package/src/NDLAFilm/FilmSlideshow.tsx +0 -177
  508. package/src/NDLAFilm/MovieGrid.tsx +0 -86
  509. package/src/NDLAFilm/VisualElement.tsx +0 -38
  510. package/src/NDLAFilm/__tests__/isLetter-test.ts +0 -20
  511. package/src/NDLAFilm/filmStyles.ts +0 -49
  512. package/src/NDLAFilm/index.ts +0 -15
  513. package/src/NDLAFilm/isLetter.ts +0 -13
  514. package/src/NDLAFilm/types.ts +0 -24
  515. package/src/Navigation/NavigationBox.tsx +0 -252
  516. package/src/Navigation/index.ts +0 -11
  517. package/src/NoContentBox/NoContentBox.tsx +0 -32
  518. package/src/NoContentBox/index.ts +0 -11
  519. package/src/Programme/Programme.tsx +0 -101
  520. package/src/Programme/ProgrammeSubjects.tsx +0 -83
  521. package/src/Programme/index.ts +0 -13
  522. package/src/ResourceGroup/ResourceGroup.tsx +0 -65
  523. package/src/ResourceGroup/ResourceItem.stories.tsx +0 -101
  524. package/src/ResourceGroup/ResourceItem.tsx +0 -318
  525. package/src/ResourceGroup/ResourceList.tsx +0 -80
  526. package/src/ResourceGroup/index.ts +0 -11
  527. package/src/ResourcesWrapper/ResourcesTopicTitle.tsx +0 -223
  528. package/src/ResourcesWrapper/ResourcesWrapper.tsx +0 -32
  529. package/src/ResourcesWrapper/index.ts +0 -13
  530. package/src/SearchTypeResult/ActiveFilterContent.tsx +0 -55
  531. package/src/SearchTypeResult/ActiveFilters.tsx +0 -163
  532. package/src/SearchTypeResult/PopupFilter.tsx +0 -149
  533. package/src/SearchTypeResult/ResultNavigation.tsx +0 -105
  534. package/src/SearchTypeResult/SearchFieldHeader.tsx +0 -129
  535. package/src/SearchTypeResult/SearchFilterContent.tsx +0 -61
  536. package/src/SearchTypeResult/SearchHeader.tsx +0 -180
  537. package/src/SearchTypeResult/SearchItem.tsx +0 -144
  538. package/src/SearchTypeResult/SearchItemList.tsx +0 -161
  539. package/src/SearchTypeResult/SearchItems.tsx +0 -72
  540. package/src/SearchTypeResult/SearchSubjectItem.tsx +0 -74
  541. package/src/SearchTypeResult/SearchSubjectResult.tsx +0 -58
  542. package/src/SearchTypeResult/SearchTypeHeader.tsx +0 -148
  543. package/src/SearchTypeResult/SearchTypeResult.tsx +0 -89
  544. package/src/SearchTypeResult/SearchViewType.tsx +0 -111
  545. package/src/SearchTypeResult/components/ItemContexts.tsx +0 -131
  546. package/src/SearchTypeResult/components/ItemResourceHeader.tsx +0 -130
  547. package/src/SearchTypeResult/components/ItemTopicHeader.tsx +0 -88
  548. package/src/SearchTypeResult/components/SubjectFilters.tsx +0 -149
  549. package/src/SearchTypeResult/index.ts +0 -17
  550. package/src/Subject/SubjectBanner.tsx +0 -39
  551. package/src/Subject/index.ts +0 -9
  552. package/src/ToolboxPage/ToolboxInfo.tsx +0 -42
  553. package/src/ToolboxPage/index.ts +0 -11
  554. package/src/Topic/Loader.tsx +0 -29
  555. package/src/Topic/Topic.tsx +0 -348
  556. package/src/Topic/index.ts +0 -13
  557. package/src/locale/LocaleProvider.tsx +0 -31
  558. package/src/main.scss +0 -6
@@ -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
  }
@@ -29,7 +29,7 @@ export default {
29
29
  languageSelector: { control: false },
30
30
  auth: { control: false },
31
31
  },
32
- render: (args) => <FooterBlock {...args}></FooterBlock>,
32
+ render: (args) => <FooterBlock {...args} />,
33
33
  } as Meta<typeof FooterBlock>;
34
34
 
35
35
  export const Default: StoryObj<typeof 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
  `;
@@ -164,12 +164,12 @@ const getNextElementInDirection = (
164
164
  if (direction === 1) {
165
165
  const idx = currentIdx + 1 > arr.length - 1 ? 0 : currentIdx + 1;
166
166
  return arr[idx];
167
- } else if (direction === -1) {
167
+ }
168
+ if (direction === -1) {
168
169
  const idx = currentIdx - 1 < 0 ? arr.length - 1 : currentIdx - 1;
169
170
  return arr[idx];
170
- } else {
171
- return arr[currentIdx];
172
171
  }
172
+ return arr[currentIdx];
173
173
  };
174
174
 
175
175
  const getDefaultCount = () => {
@@ -196,9 +196,8 @@ const findPathForKeyboardNavigation = (
196
196
  default:
197
197
  return current;
198
198
  }
199
- } else {
200
- return getNextElementInDirection(current, resultsContainingPaths, direction);
201
199
  }
200
+ return getNextElementInDirection(current, resultsContainingPaths, direction);
202
201
  };
203
202
 
204
203
  type Props = {
@@ -259,11 +258,10 @@ const SearchResultSleeve = ({
259
258
  e.stopPropagation();
260
259
  e.preventDefault();
261
260
  const toClick =
262
- keyboardPathNavigation &&
263
- keyboardPathNavigation.querySelector &&
261
+ keyboardPathNavigation?.querySelector &&
264
262
  (keyboardPathNavigation.querySelector("a") || keyboardPathNavigation.querySelector("button"));
265
263
 
266
- toClick && toClick.click();
264
+ toClick?.click();
267
265
  }
268
266
  } else if (e.code === "Tab") {
269
267
  setKeyNavigation("");
@@ -283,7 +281,7 @@ const SearchResultSleeve = ({
283
281
  const highlightedElement =
284
282
  keyboardPathNavigation === GO_TO_SEARCHPAGE
285
283
  ? searchAllRef.current
286
- : contentRef.current && contentRef.current.querySelector('[data-highlighted="true"]');
284
+ : contentRef.current?.querySelector('[data-highlighted="true"]');
287
285
 
288
286
  if (highlightedElement) {
289
287
  highlightedElement.scrollIntoView({
@@ -594,7 +594,7 @@ export const WithScrollbar: StoryFn = () => (
594
594
  <td>Hearson</td>
595
595
  <td>rhearson0@nifty.com</td>
596
596
 
597
- <td className="u-no-wrap">34704 Duke Circle</td>
597
+ <td style={{ whiteSpace: "nowrap" }}>34704 Duke Circle</td>
598
598
  <td>Brazil</td>
599
599
  <td>Fijian</td>
600
600
  <td>rhearson0</td>
@@ -604,8 +604,8 @@ export const WithScrollbar: StoryFn = () => (
604
604
  <td>Lucie</td>
605
605
  <td>Jikylls</td>
606
606
  <td>ljikylls1@csmonitor.com</td>
607
- <td className="u-no-wrap">9824 Swallow Place</td>
608
- <td className="u-no-wrap">Sweden/Denmark/Norway</td>
607
+ <td style={{ whiteSpace: "nowrap" }}>9824 Swallow Place</td>
608
+ <td style={{ whiteSpace: "nowrap" }}>Sweden/Denmark/Norway</td>
609
609
  <td>Italian</td>
610
610
  <td>ljikylls1</td>
611
611
  </tr>
@@ -614,7 +614,7 @@ export const WithScrollbar: StoryFn = () => (
614
614
  <td>Kippie</td>
615
615
  <td>Reeveley</td>
616
616
  <td>kreeveley2@ebay.com</td>
617
- <td className="u-no-wrap">1 Stephen Court</td>
617
+ <td style={{ whiteSpace: "nowrap" }}>1 Stephen Court</td>
618
618
  <td>Namibia</td>
619
619
  <td>West Frisian</td>
620
620
  <td>kreeveley2</td>
@@ -624,7 +624,7 @@ export const WithScrollbar: StoryFn = () => (
624
624
  <td>Klarrisa</td>
625
625
  <td>Minghetti</td>
626
626
  <td>kminghetti3@163.com</td>
627
- <td className="u-no-wrap">7 Truax Point</td>
627
+ <td style={{ whiteSpace: "nowrap" }}>7 Truax Point</td>
628
628
  <td>Greece</td>
629
629
  <td>Luxembourgish</td>
630
630
  <td>kminghetti3</td>
@@ -634,7 +634,7 @@ export const WithScrollbar: StoryFn = () => (
634
634
  <td>Trefor</td>
635
635
  <td>Lambregts</td>
636
636
  <td>tlambregts4@youtu.be</td>
637
- <td className="u-no-wrap">61 Monica Center</td>
637
+ <td style={{ whiteSpace: "nowrap" }}>61 Monica Center</td>
638
638
  <td>Sweden</td>
639
639
  <td>Northern Sotho</td>
640
640
  <td>tlambregts4</td>
@@ -644,7 +644,7 @@ export const WithScrollbar: StoryFn = () => (
644
644
  <td>Aridatha</td>
645
645
  <td>Kuhnt</td>
646
646
  <td>akuhnt5@sitemeter.com</td>
647
- <td className="u-no-wrap">2898 Wayridge Terrace</td>
647
+ <td style={{ whiteSpace: "nowrap" }}>2898 Wayridge Terrace</td>
648
648
  <td>China</td>
649
649
  <td>Latvian</td>
650
650
  <td>akuhnt5</td>
@@ -654,7 +654,7 @@ export const WithScrollbar: StoryFn = () => (
654
654
  <td>Kalie</td>
655
655
  <td>Olander</td>
656
656
  <td>kolander6@loc.gov</td>
657
- <td className="u-no-wrap">554 Maywood Parkway</td>
657
+ <td style={{ whiteSpace: "nowrap" }}>554 Maywood Parkway</td>
658
658
  <td>China</td>
659
659
  <td>Czech</td>
660
660
  <td>kolander6</td>