@ndla/ui 55.0.12-alpha.0 → 55.0.14-alpha.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 (408) hide show
  1. package/dist/all-aout.js +0 -0
  2. package/dist/all.css +1 -0
  3. package/dist/panda.buildinfo.json +289 -0
  4. package/dist/styles.css +1197 -0
  5. package/es/Article/Article.js +3 -4
  6. package/es/Article/ArticleByline.js +9 -9
  7. package/es/Article/ArticleFootNotes.js +4 -4
  8. package/es/Article/ArticleParagraph.js +11 -13
  9. package/es/AudioPlayer/AudioPlayer.js +142 -163
  10. package/es/AudioPlayer/Controls.js +187 -203
  11. package/es/AudioPlayer/SpeechControl.js +13 -11
  12. package/es/BlogPost/BlogPost.js +85 -23
  13. package/es/CampaignBlock/CampaignBlock.js +103 -69
  14. package/es/CodeBlock/CodeBlock.js +88 -96
  15. package/es/Concept/Concept.js +69 -0
  16. package/es/ContactBlock/ContactBlock.js +54 -40
  17. package/es/ContentLoader/index.js +7 -7
  18. package/es/ContentTypeBadge/ContentTypeBadgeNew.js +48 -0
  19. package/es/CopyParagraphButton/CopyParagraphButton.js +4 -4
  20. package/es/Embed/AudioEmbed.js +6 -11
  21. package/es/Embed/BrightcoveEmbed.js +25 -39
  22. package/es/Embed/CodeEmbed.js +58 -10
  23. package/es/Embed/ConceptEmbed.js +57 -306
  24. package/es/Embed/ConceptListEmbed.js +18 -24
  25. package/es/Embed/ContentLinkEmbed.js +10 -10
  26. package/es/Embed/CopyrightEmbed.js +4 -21
  27. package/es/Embed/EmbedErrorPlaceholder.js +32 -17
  28. package/es/Embed/ExternalEmbed.js +17 -28
  29. package/es/Embed/FootnoteEmbed.js +14 -11
  30. package/es/Embed/GlossEmbed.js +68 -0
  31. package/es/Embed/H5pEmbed.js +20 -21
  32. package/es/Embed/IframeEmbed.js +17 -15
  33. package/es/Embed/ImageEmbed.js +167 -122
  34. package/es/Embed/InlineTriggerButton.js +70 -0
  35. package/es/Embed/RelatedContentEmbed.js +8 -10
  36. package/es/Embed/UnknownEmbed.js +9 -9
  37. package/es/Embed/UuDisclaimerEmbed.js +16 -27
  38. package/es/Embed/index.js +1 -3
  39. package/es/ErrorMessage/ErrorMessage.js +42 -23
  40. package/es/ErrorMessage/ErrorResourceAccessDenied.js +8 -6
  41. package/es/FactBox/FactBox.js +118 -47
  42. package/es/FileList/File.js +1 -1
  43. package/es/FileList/Format.js +3 -3
  44. package/es/FileList/PdfFile.js +23 -5
  45. package/es/FrontpageArticle/FrontpageArticle.js +1 -1
  46. package/es/Gloss/Gloss.js +122 -94
  47. package/es/Gloss/GlossExample.js +49 -52
  48. package/es/Grid/Grid.js +1 -1
  49. package/es/KeyFigure/KeyFigure.js +2 -2
  50. package/es/LanguageSelector/LanguageSelector.js +2 -2
  51. package/es/LicenseByline/EmbedByline.js +5 -6
  52. package/es/LicenseByline/LicenseDescription.js +1 -1
  53. package/es/LicenseByline/LicenseLink.js +1 -2
  54. package/es/LinkBlock/LinkBlock.js +61 -33
  55. package/es/LinkBlock/LinkBlockSection.js +9 -6
  56. package/es/Logo/Logo.js +1 -30
  57. package/es/Messages/MessageBox.js +1 -1
  58. package/es/RelatedArticleList/RelatedArticleList.js +73 -90
  59. package/es/ResourceBox/ResourceBox.js +67 -44
  60. package/es/Search/ActiveFilters.js +1 -1
  61. package/es/Search/ContentTypeResult.js +9 -6
  62. package/es/Search/ContentTypeResultStyles.js +1 -1
  63. package/es/Search/IsPathToHighlight.js +1 -1
  64. package/es/Search/SearchField.js +6 -8
  65. package/es/Search/SearchResult.js +14 -19
  66. package/es/Search/SearchResultSleeve.js +14 -16
  67. package/es/SnackBar/SnackbarProvider.js +8 -11
  68. package/es/TagSelector/TagSelector.js +124 -131
  69. package/es/TreeStructure/AddFolderButton.js +4 -6
  70. package/es/TreeStructure/ComboboxButton.js +4 -7
  71. package/es/TreeStructure/FolderItem.js +12 -15
  72. package/es/TreeStructure/FolderItems.js +3 -3
  73. package/es/TreeStructure/TreeStructure.js +9 -12
  74. package/es/TreeStructure/helperFunctions.js +1 -1
  75. package/es/ZendeskButton/ZendeskButton.js +55 -0
  76. package/es/i18n/formatNestedMessages.js +1 -1
  77. package/es/i18n/index.js +2 -1
  78. package/es/i18n/useComponentTranslations.js +83 -0
  79. package/es/index.js +6 -12
  80. package/es/locale/messages-en.js +39 -12
  81. package/es/locale/messages-nb.js +39 -12
  82. package/es/locale/messages-nn.js +39 -12
  83. package/es/locale/messages-se.js +39 -12
  84. package/es/locale/messages-sma.js +39 -12
  85. package/es/model/ContentType.js +3 -0
  86. package/es/styles.css +1197 -0
  87. package/es/utils/relativeUrl.js +3 -3
  88. package/lib/Article/Article.js +3 -4
  89. package/lib/Article/ArticleByline.js +9 -9
  90. package/lib/Article/ArticleFootNotes.js +4 -4
  91. package/lib/Article/ArticleParagraph.js +12 -14
  92. package/lib/AudioPlayer/AudioPlayer.d.ts +1 -2
  93. package/lib/AudioPlayer/AudioPlayer.js +142 -162
  94. package/lib/AudioPlayer/Controls.js +190 -205
  95. package/lib/AudioPlayer/SpeechControl.js +13 -11
  96. package/lib/BlogPost/BlogPost.d.ts +2 -2
  97. package/lib/BlogPost/BlogPost.js +85 -24
  98. package/lib/CampaignBlock/CampaignBlock.d.ts +2 -2
  99. package/lib/CampaignBlock/CampaignBlock.js +106 -69
  100. package/lib/CodeBlock/CodeBlock.d.ts +5 -8
  101. package/lib/CodeBlock/CodeBlock.js +88 -96
  102. package/lib/Concept/Concept.d.ts +18 -0
  103. package/lib/Concept/Concept.js +75 -0
  104. package/lib/ContactBlock/ContactBlock.js +55 -43
  105. package/lib/ContentLoader/index.js +7 -7
  106. package/lib/ContentTypeBadge/ContentTypeBadgeNew.d.ts +17 -0
  107. package/lib/ContentTypeBadge/ContentTypeBadgeNew.js +56 -0
  108. package/lib/CopyParagraphButton/CopyParagraphButton.js +4 -4
  109. package/lib/Embed/AudioEmbed.js +7 -12
  110. package/lib/Embed/BrightcoveEmbed.d.ts +1 -2
  111. package/lib/Embed/BrightcoveEmbed.js +28 -40
  112. package/lib/Embed/CodeEmbed.js +56 -8
  113. package/lib/Embed/ConceptEmbed.d.ts +15 -21
  114. package/lib/Embed/ConceptEmbed.js +58 -306
  115. package/lib/Embed/ConceptListEmbed.js +21 -26
  116. package/lib/Embed/ContentLinkEmbed.js +10 -11
  117. package/lib/Embed/CopyrightEmbed.js +6 -22
  118. package/lib/Embed/EmbedErrorPlaceholder.d.ts +4 -3
  119. package/lib/Embed/EmbedErrorPlaceholder.js +32 -18
  120. package/lib/Embed/ExternalEmbed.d.ts +1 -2
  121. package/lib/Embed/ExternalEmbed.js +20 -29
  122. package/lib/Embed/FootnoteEmbed.js +14 -12
  123. package/lib/Embed/GlossEmbed.d.ts +13 -0
  124. package/lib/Embed/GlossEmbed.js +76 -0
  125. package/lib/Embed/H5pEmbed.d.ts +1 -2
  126. package/lib/Embed/H5pEmbed.js +22 -21
  127. package/lib/Embed/IframeEmbed.d.ts +1 -2
  128. package/lib/Embed/IframeEmbed.js +19 -17
  129. package/lib/Embed/ImageEmbed.d.ts +1 -2
  130. package/lib/Embed/ImageEmbed.js +167 -123
  131. package/lib/Embed/InlineTriggerButton.d.ts +11 -0
  132. package/lib/Embed/InlineTriggerButton.js +76 -0
  133. package/lib/Embed/RelatedContentEmbed.js +8 -10
  134. package/lib/Embed/UnknownEmbed.js +9 -10
  135. package/lib/Embed/UuDisclaimerEmbed.js +18 -28
  136. package/lib/Embed/index.d.ts +2 -3
  137. package/lib/Embed/index.js +2 -9
  138. package/lib/ErrorMessage/ErrorMessage.js +41 -24
  139. package/lib/ErrorMessage/ErrorResourceAccessDenied.js +7 -6
  140. package/lib/FactBox/FactBox.d.ts +0 -1
  141. package/lib/FactBox/FactBox.js +119 -46
  142. package/lib/FileList/File.js +1 -1
  143. package/lib/FileList/Format.js +3 -3
  144. package/lib/FileList/PdfFile.js +23 -5
  145. package/lib/FrontpageArticle/FrontpageArticle.js +1 -1
  146. package/lib/Gloss/Gloss.d.ts +10 -2
  147. package/lib/Gloss/Gloss.js +122 -93
  148. package/lib/Gloss/GlossExample.d.ts +3 -5
  149. package/lib/Gloss/GlossExample.js +49 -53
  150. package/lib/Grid/Grid.js +1 -1
  151. package/lib/KeyFigure/KeyFigure.js +2 -2
  152. package/lib/LanguageSelector/LanguageSelector.js +2 -2
  153. package/lib/LicenseByline/EmbedByline.js +5 -6
  154. package/lib/LicenseByline/LicenseDescription.js +1 -1
  155. package/lib/LicenseByline/LicenseLink.js +1 -2
  156. package/lib/LinkBlock/LinkBlock.js +62 -34
  157. package/lib/LinkBlock/LinkBlockSection.js +9 -7
  158. package/lib/Logo/Logo.d.ts +1 -3
  159. package/lib/Logo/Logo.js +2 -30
  160. package/lib/Messages/MessageBox.js +1 -1
  161. package/lib/RelatedArticleList/RelatedArticleList.d.ts +4 -4
  162. package/lib/RelatedArticleList/RelatedArticleList.js +77 -93
  163. package/lib/ResourceBox/ResourceBox.js +67 -45
  164. package/lib/Search/ActiveFilters.js +1 -1
  165. package/lib/Search/ContentTypeResult.js +9 -6
  166. package/lib/Search/ContentTypeResultStyles.js +1 -1
  167. package/lib/Search/IsPathToHighlight.js +1 -1
  168. package/lib/Search/SearchField.js +6 -8
  169. package/lib/Search/SearchResult.js +14 -19
  170. package/lib/Search/SearchResultSleeve.js +14 -16
  171. package/lib/SnackBar/SnackbarProvider.js +8 -11
  172. package/lib/TagSelector/TagSelector.d.ts +27 -12
  173. package/lib/TagSelector/TagSelector.js +126 -131
  174. package/lib/TreeStructure/AddFolderButton.js +4 -6
  175. package/lib/TreeStructure/ComboboxButton.js +4 -7
  176. package/lib/TreeStructure/FolderItem.js +12 -15
  177. package/lib/TreeStructure/FolderItems.js +3 -3
  178. package/lib/TreeStructure/TreeStructure.js +9 -12
  179. package/lib/TreeStructure/helperFunctions.js +1 -1
  180. package/lib/ZendeskButton/ZendeskButton.d.ts +19 -0
  181. package/lib/ZendeskButton/ZendeskButton.js +61 -0
  182. package/lib/i18n/formatNestedMessages.js +1 -1
  183. package/lib/i18n/index.d.ts +1 -0
  184. package/lib/i18n/index.js +20 -1
  185. package/lib/i18n/useComponentTranslations.d.ts +14 -0
  186. package/lib/i18n/useComponentTranslations.js +93 -0
  187. package/lib/index.d.ts +7 -14
  188. package/lib/index.js +77 -89
  189. package/lib/locale/messages-en.d.ts +27 -0
  190. package/lib/locale/messages-en.js +39 -12
  191. package/lib/locale/messages-nb.d.ts +27 -0
  192. package/lib/locale/messages-nb.js +39 -12
  193. package/lib/locale/messages-nn.d.ts +27 -0
  194. package/lib/locale/messages-nn.js +39 -12
  195. package/lib/locale/messages-se.d.ts +27 -0
  196. package/lib/locale/messages-se.js +39 -12
  197. package/lib/locale/messages-sma.d.ts +27 -0
  198. package/lib/locale/messages-sma.js +39 -12
  199. package/lib/model/ContentType.d.ts +3 -0
  200. package/lib/model/ContentType.js +4 -1
  201. package/lib/styles.css +1197 -0
  202. package/lib/types.d.ts +1 -0
  203. package/lib/utils/relativeUrl.js +3 -3
  204. package/package.json +18 -15
  205. package/src/Article/ArticleParagraph.tsx +11 -9
  206. package/src/AudioPlayer/AudioPlayer.tsx +139 -176
  207. package/src/AudioPlayer/Controls.tsx +210 -250
  208. package/src/AudioPlayer/SpeechControl.tsx +9 -7
  209. package/src/BlogPost/BlogPost.tsx +82 -58
  210. package/src/CampaignBlock/CampaignBlock.tsx +92 -55
  211. package/src/CodeBlock/CodeBlock.stories.tsx +0 -43
  212. package/src/CodeBlock/CodeBlock.tsx +91 -202
  213. package/src/Concept/Concept.stories.tsx +142 -0
  214. package/src/Concept/Concept.tsx +73 -0
  215. package/src/ContactBlock/ContactBlock.tsx +10 -2
  216. package/src/ContentTypeBadge/ContentTypeBadgeNew.stories.tsx +70 -0
  217. package/src/ContentTypeBadge/ContentTypeBadgeNew.tsx +69 -0
  218. package/src/Embed/AudioEmbed.tsx +2 -2
  219. package/src/Embed/BrightcoveEmbed.stories.tsx +0 -3
  220. package/src/Embed/BrightcoveEmbed.tsx +17 -19
  221. package/src/Embed/CodeEmbed.stories.tsx +95 -0
  222. package/src/Embed/CodeEmbed.tsx +62 -7
  223. package/src/Embed/ConceptEmbed.stories.tsx +1 -105
  224. package/src/Embed/ConceptEmbed.tsx +60 -393
  225. package/src/Embed/ConceptListEmbed.tsx +20 -19
  226. package/src/Embed/ContentLinkEmbed.tsx +8 -10
  227. package/src/Embed/CopyrightEmbed.tsx +1 -11
  228. package/src/Embed/EmbedErrorPlaceholder.tsx +31 -28
  229. package/src/Embed/ExternalEmbed.tsx +14 -17
  230. package/src/Embed/FootnoteEmbed.stories.tsx +2 -5
  231. package/src/Embed/FootnoteEmbed.tsx +13 -16
  232. package/src/Embed/GlossEmbed.stories.tsx +140 -0
  233. package/src/Embed/GlossEmbed.tsx +64 -0
  234. package/src/Embed/H5pEmbed.tsx +22 -16
  235. package/src/Embed/IframeEmbed.tsx +12 -6
  236. package/src/Embed/ImageEmbed.stories.tsx +53 -11
  237. package/src/Embed/ImageEmbed.tsx +162 -166
  238. package/src/Embed/InlineTriggerButton.tsx +72 -0
  239. package/src/Embed/UnknownEmbed.tsx +6 -7
  240. package/src/Embed/UuDisclaimerEmbed.stories.tsx +4 -4
  241. package/src/Embed/UuDisclaimerEmbed.tsx +17 -25
  242. package/src/Embed/index.ts +2 -3
  243. package/src/ErrorMessage/ErrorMessage.tsx +40 -29
  244. package/src/ErrorMessage/ErrorResourceAccessDenied.tsx +8 -6
  245. package/src/FactBox/FactBox.tsx +115 -115
  246. package/src/FactBox/Factbox.stories.tsx +43 -27
  247. package/src/FileList/FileList.stories.tsx +6 -1
  248. package/src/FileList/PdfFile.tsx +22 -5
  249. package/src/Gloss/Gloss.stories.tsx +107 -1
  250. package/src/Gloss/Gloss.tsx +143 -156
  251. package/src/Gloss/GlossExample.tsx +51 -77
  252. package/src/LinkBlock/LinkBlock.stories.tsx +8 -10
  253. package/src/LinkBlock/LinkBlock.tsx +54 -59
  254. package/src/LinkBlock/LinkBlockSection.tsx +9 -12
  255. package/src/Logo/Logo.stories.tsx +0 -1
  256. package/src/Logo/Logo.tsx +2 -30
  257. package/src/RelatedArticleList/RelatedArticleList.tsx +69 -88
  258. package/src/ResourceBox/ResourceBox.tsx +65 -73
  259. package/src/Search/ContentTypeResult.tsx +9 -3
  260. package/src/Search/SearchResultSleeve.tsx +5 -2
  261. package/src/TagSelector/TagSelector.stories.tsx +92 -68
  262. package/src/TagSelector/TagSelector.tsx +161 -126
  263. package/src/ZendeskButton/ZendeskButton.tsx +58 -0
  264. package/src/i18n/index.ts +5 -0
  265. package/src/i18n/useComponentTranslations.ts +72 -0
  266. package/src/index.ts +27 -18
  267. package/src/locale/messages-en.ts +29 -2
  268. package/src/locale/messages-nb.ts +29 -2
  269. package/src/locale/messages-nn.ts +29 -2
  270. package/src/locale/messages-se.ts +29 -2
  271. package/src/locale/messages-sma.ts +29 -2
  272. package/src/model/ContentType.ts +3 -0
  273. package/src/types.ts +2 -0
  274. package/es/DefinitionList/DefinitionDescription.js +0 -28
  275. package/es/DefinitionList/DefinitionTerm.js +0 -28
  276. package/es/DefinitionList/index.js +0 -10
  277. package/es/Embed/conceptComponents.js +0 -155
  278. package/es/ExpandableBox/ExpandableBox.js +0 -29
  279. package/es/ExpandableBox/index.js +0 -9
  280. package/es/Figure/Figure.js +0 -73
  281. package/es/Figure/index.js +0 -9
  282. package/es/FramedContent/FramedContent.js +0 -28
  283. package/es/FramedContent/index.js +0 -10
  284. package/es/Image/Image.js +0 -100
  285. package/es/Image/ImageLink.js +0 -39
  286. package/es/Image/index.js +0 -12
  287. package/es/LetterFilter/LetterFilter.js +0 -54
  288. package/es/LetterFilter/alphabet.js +0 -9
  289. package/es/LetterFilter/index.js +0 -10
  290. package/es/Notion/Notion.js +0 -76
  291. package/es/Notion/NotionImage.js +0 -91
  292. package/es/Notion/index.js +0 -9
  293. package/es/Table/Table.js +0 -141
  294. package/es/Table/index.js +0 -11
  295. package/es/TagSelector/Control.js +0 -28
  296. package/es/TagSelector/DropdownIndicator.js +0 -60
  297. package/es/TagSelector/Input.js +0 -22
  298. package/es/TagSelector/Menu.js +0 -27
  299. package/es/TagSelector/MenuList.js +0 -28
  300. package/es/TagSelector/Option.js +0 -60
  301. package/es/TagSelector/SelectContainer.js +0 -27
  302. package/es/TagSelector/ValueButton.js +0 -53
  303. package/es/TagSelector/ariaMessages.js +0 -94
  304. package/es/TagSelector/index.js +0 -10
  305. package/es/TagSelector/types.js +0 -1
  306. package/lib/DefinitionList/DefinitionDescription.d.ts +0 -10
  307. package/lib/DefinitionList/DefinitionDescription.js +0 -35
  308. package/lib/DefinitionList/DefinitionTerm.d.ts +0 -10
  309. package/lib/DefinitionList/DefinitionTerm.js +0 -35
  310. package/lib/DefinitionList/index.d.ts +0 -9
  311. package/lib/DefinitionList/index.js +0 -20
  312. package/lib/Embed/conceptComponents.d.ts +0 -40
  313. package/lib/Embed/conceptComponents.js +0 -163
  314. package/lib/ExpandableBox/ExpandableBox.d.ts +0 -15
  315. package/lib/ExpandableBox/ExpandableBox.js +0 -37
  316. package/lib/ExpandableBox/index.d.ts +0 -8
  317. package/lib/ExpandableBox/index.js +0 -18
  318. package/lib/Figure/Figure.d.ts +0 -16
  319. package/lib/Figure/Figure.js +0 -81
  320. package/lib/Figure/index.d.ts +0 -9
  321. package/lib/Figure/index.js +0 -13
  322. package/lib/FramedContent/FramedContent.d.ts +0 -12
  323. package/lib/FramedContent/FramedContent.js +0 -35
  324. package/lib/FramedContent/index.d.ts +0 -9
  325. package/lib/FramedContent/index.js +0 -16
  326. package/lib/Image/Image.d.ts +0 -38
  327. package/lib/Image/Image.js +0 -106
  328. package/lib/Image/ImageLink.d.ts +0 -18
  329. package/lib/Image/ImageLink.js +0 -44
  330. package/lib/Image/index.d.ts +0 -12
  331. package/lib/Image/index.js +0 -30
  332. package/lib/LetterFilter/LetterFilter.d.ts +0 -14
  333. package/lib/LetterFilter/LetterFilter.js +0 -61
  334. package/lib/LetterFilter/alphabet.d.ts +0 -8
  335. package/lib/LetterFilter/alphabet.js +0 -15
  336. package/lib/LetterFilter/index.d.ts +0 -9
  337. package/lib/LetterFilter/index.js +0 -16
  338. package/lib/Notion/Notion.d.ts +0 -20
  339. package/lib/Notion/Notion.js +0 -82
  340. package/lib/Notion/NotionImage.d.ts +0 -23
  341. package/lib/Notion/NotionImage.js +0 -101
  342. package/lib/Notion/index.d.ts +0 -8
  343. package/lib/Notion/index.js +0 -13
  344. package/lib/Table/Table.d.ts +0 -19
  345. package/lib/Table/Table.js +0 -145
  346. package/lib/Table/index.d.ts +0 -10
  347. package/lib/Table/index.js +0 -23
  348. package/lib/TagSelector/Control.d.ts +0 -11
  349. package/lib/TagSelector/Control.js +0 -35
  350. package/lib/TagSelector/DropdownIndicator.d.ts +0 -11
  351. package/lib/TagSelector/DropdownIndicator.js +0 -64
  352. package/lib/TagSelector/Input.d.ts +0 -12
  353. package/lib/TagSelector/Input.js +0 -29
  354. package/lib/TagSelector/Menu.d.ts +0 -12
  355. package/lib/TagSelector/Menu.js +0 -34
  356. package/lib/TagSelector/MenuList.d.ts +0 -16
  357. package/lib/TagSelector/MenuList.js +0 -35
  358. package/lib/TagSelector/Option.d.ts +0 -12
  359. package/lib/TagSelector/Option.js +0 -67
  360. package/lib/TagSelector/SelectContainer.d.ts +0 -11
  361. package/lib/TagSelector/SelectContainer.js +0 -34
  362. package/lib/TagSelector/ValueButton.d.ts +0 -20
  363. package/lib/TagSelector/ValueButton.js +0 -60
  364. package/lib/TagSelector/ariaMessages.d.ts +0 -16
  365. package/lib/TagSelector/ariaMessages.js +0 -101
  366. package/lib/TagSelector/index.d.ts +0 -11
  367. package/lib/TagSelector/index.js +0 -13
  368. package/lib/TagSelector/types.d.ts +0 -11
  369. package/lib/TagSelector/types.js +0 -5
  370. package/src/DefinitionList/DefinitionDescription.tsx +0 -26
  371. package/src/DefinitionList/DefinitionTerm.tsx +0 -26
  372. package/src/DefinitionList/index.tsx +0 -10
  373. package/src/Embed/conceptComponents.tsx +0 -293
  374. package/src/ExpandableBox/ExpandableBox.stories.tsx +0 -41
  375. package/src/ExpandableBox/ExpandableBox.tsx +0 -23
  376. package/src/ExpandableBox/index.ts +0 -9
  377. package/src/Figure/Figure.tsx +0 -167
  378. package/src/Figure/index.ts +0 -11
  379. package/src/FramedContent/FramedContent.stories.tsx +0 -152
  380. package/src/FramedContent/FramedContent.tsx +0 -26
  381. package/src/FramedContent/index.ts +0 -10
  382. package/src/Image/Image.stories.tsx +0 -61
  383. package/src/Image/Image.tsx +0 -147
  384. package/src/Image/ImageLink.tsx +0 -37
  385. package/src/Image/__tests__/Image-test.tsx +0 -66
  386. package/src/Image/__tests__/__snapshots__/Image-test.tsx.snap +0 -194
  387. package/src/Image/index.ts +0 -14
  388. package/src/LetterFilter/LetterFilter.stories.tsx +0 -29
  389. package/src/LetterFilter/LetterFilter.tsx +0 -78
  390. package/src/LetterFilter/alphabet.ts +0 -39
  391. package/src/LetterFilter/index.ts +0 -11
  392. package/src/Notion/Notion.tsx +0 -96
  393. package/src/Notion/NotionImage.tsx +0 -114
  394. package/src/Notion/index.ts +0 -9
  395. package/src/Table/Table.stories.tsx +0 -738
  396. package/src/Table/Table.tsx +0 -284
  397. package/src/Table/index.ts +0 -12
  398. package/src/TagSelector/Control.tsx +0 -34
  399. package/src/TagSelector/DropdownIndicator.tsx +0 -55
  400. package/src/TagSelector/Input.tsx +0 -31
  401. package/src/TagSelector/Menu.tsx +0 -38
  402. package/src/TagSelector/MenuList.tsx +0 -30
  403. package/src/TagSelector/Option.tsx +0 -58
  404. package/src/TagSelector/SelectContainer.tsx +0 -31
  405. package/src/TagSelector/ValueButton.tsx +0 -47
  406. package/src/TagSelector/ariaMessages.ts +0 -96
  407. package/src/TagSelector/index.ts +0 -14
  408. package/src/TagSelector/types.ts +0 -12
@@ -6,14 +6,12 @@
6
6
  *
7
7
  */
8
8
 
9
- /** @jsxImportSource @emotion/react */
10
9
  import parse from "html-react-parser";
11
10
  import { useTranslation } from "react-i18next";
12
- import { css } from "@emotion/react";
13
- import styled from "@emotion/styled";
14
- import { breakpoints, colors, fonts, misc, mq, spacing } from "@ndla/core";
11
+ import { Heading } from "@ndla/primitives";
15
12
  import { SafeLink } from "@ndla/safelink";
16
- import { HeadingLevel } from "@ndla/typography";
13
+ import { styled } from "@ndla/styled-system/jsx";
14
+ import { HeadingLevel } from "../types";
17
15
  import { getPossiblyRelativeUrl } from "../utils/relativeUrl";
18
16
 
19
17
  export interface Props {
@@ -29,68 +27,94 @@ export interface Props {
29
27
  path?: string;
30
28
  }
31
29
 
32
- const Container = styled(SafeLink)`
33
- margin: 0 0 ${spacing.normal} 0;
34
- display: flex;
35
- flex-direction: column;
36
- color: ${colors.text.primary};
37
- background-color: ${colors.white};
38
- gap: ${spacing.nsmall};
39
- box-shadow: none;
40
- border: 1px solid ${colors.brand.lighter};
41
- border-radius: ${misc.borderRadius};
42
- padding: ${spacing.normal} ${spacing.medium};
43
- height: 100%;
44
- ${mq.range({ from: breakpoints.tabletWide })} {
45
- max-width: 350px;
46
- &[data-size="large"] {
47
- max-width: 532px;
48
- }
49
- }
50
- &:hover,
51
- &:focus-within {
52
- .blog-title {
53
- text-decoration: underline;
54
- }
55
- }
56
- `;
30
+ const Container = styled(
31
+ SafeLink,
32
+ {
33
+ base: {
34
+ display: "flex",
35
+ flexDirection: "column",
36
+ color: "text.default",
37
+ backgroundColor: "background.default",
38
+ gap: "medium",
39
+ border: "1px solid",
40
+ borderColor: "stroke.subtle",
41
+ borderRadius: "xsmall",
42
+ transitionDuration: "fast",
43
+ transitionProperty: "background-color, border-color, max-width",
44
+ transitionTimingFunction: "default",
45
+ height: "100%",
46
+ "&:hover, &:focus-visible": {
47
+ borderColor: "stroke.hover",
48
+ backgroundColor: "surface.actionSubtle.hover",
49
+ "& h1, h2, h3, h4, h5, h6": {
50
+ textDecoration: "underline",
51
+ },
52
+ },
53
+ },
54
+ defaultVariants: {
55
+ size: "normal",
56
+ },
57
+ variants: {
58
+ // TODO: Reconsider these sizes. Maybe they should match up with surface?
59
+ size: {
60
+ normal: {
61
+ paddingBlock: "medium",
62
+ paddingInline: "medium",
63
+ tabletWide: {
64
+ maxWidth: "350px",
65
+ },
66
+ },
67
+ large: {
68
+ paddingBlock: "xlarge",
69
+ paddingInline: "xxlarge",
70
+ tabletWide: {
71
+ maxWidth: "532px",
72
+ },
73
+ },
74
+ },
75
+ },
76
+ },
77
+ // TODO: Reconsider this once we handle SafeLink
78
+ { baseComponent: true },
79
+ );
57
80
 
58
- const headingCss = css`
59
- display: inline-block;
60
- width: fit-content;
61
- margin: 0;
62
- font-weight: ${fonts.weight.semibold};
63
- ${fonts.sizes("26px", "36px")};
64
- `;
81
+ const AuthorContainer = styled("div", {
82
+ base: {
83
+ display: "flex",
84
+ alignItems: "center",
85
+ gap: "xsmall",
86
+ textTransform: "uppercase",
87
+ textStyle: "body.large",
88
+ },
89
+ });
65
90
 
66
- const AuthorContainer = styled.div`
67
- display: flex;
68
- align-items: center;
69
- gap: ${spacing.xsmall};
70
- svg {
71
- color: rgba(78, 81, 242, 1);
72
- }
73
- text-transform: uppercase;
74
- `;
91
+ const StyledImg = styled("img", {
92
+ base: {
93
+ borderRadius: "xsmall",
94
+ flex: "1",
95
+ objectFit: "cover",
96
+ width: "100%",
97
+ height: "100%",
98
+ border: "0",
99
+ },
100
+ });
75
101
 
76
- const StyledImg = styled.img`
77
- border-radius: ${misc.borderRadius};
78
- flex: 1;
79
- object-fit: cover;
80
- width: 100%;
81
- height: 100%;
82
- border: 0;
83
- `;
102
+ const StyledHeading = styled(Heading, {
103
+ base: {
104
+ display: "inline-block",
105
+ width: "fit-content",
106
+ },
107
+ });
84
108
 
85
109
  const BlogPost = ({ title, author, url, metaImage, headingLevel: Heading = "h3", size = "normal", path }: Props) => {
86
110
  const { t } = useTranslation();
87
111
  const href = getPossiblyRelativeUrl(url, path);
88
112
  const imageWidth = size === "large" ? 532 : 350;
89
113
  return (
90
- <Container data-size={size} to={href}>
91
- <Heading className="blog-title" css={headingCss}>
92
- {parse(title)}
93
- </Heading>
114
+ <Container data-size={size} to={href} size={size}>
115
+ <StyledHeading className="blog-title" asChild consumeCss textStyle="title.large">
116
+ <Heading>{parse(title)}</Heading>
117
+ </StyledHeading>
94
118
  <StyledImg src={`${metaImage.url}?width=${imageWidth}`} alt={metaImage.alt} />
95
119
  {!!author && <AuthorContainer aria-label={t("article.writtenBy", { authors: author })}>{author}</AuthorContainer>}
96
120
  </Container>
@@ -6,14 +6,13 @@
6
6
  *
7
7
  */
8
8
 
9
- /** @jsxImportSource @emotion/react */
10
9
  import parse from "html-react-parser";
11
- import { css } from "@emotion/react";
12
- import styled from "@emotion/styled";
13
- import { breakpoints, colors, fonts, spacing, mq, misc } from "@ndla/core";
10
+ import { ReactNode } from "react";
14
11
  import { Forward } from "@ndla/icons/common";
12
+ import { Text } from "@ndla/primitives";
15
13
  import { SafeLink } from "@ndla/safelink";
16
- import { HeadingLevel } from "@ndla/typography";
14
+ import { styled } from "@ndla/styled-system/jsx";
15
+ import { HeadingLevel } from "../types";
17
16
  import { getPossiblyRelativeUrl } from "../utils/relativeUrl";
18
17
 
19
18
  interface Image {
@@ -35,74 +34,112 @@ interface Props {
35
34
  path?: string;
36
35
  }
37
36
 
38
- const Container = styled.div`
39
- display: flex;
40
- flex-direction: column;
41
- gap: ${spacing.normal};
42
- border: 1px ${colors.brand.lighter} solid;
43
- border-radius: ${misc.borderRadius};
44
- padding: ${spacing.normal};
45
- background-color: ${colors.white};
46
- &[data-image-side="right"] {
47
- flex-direction: column-reverse;
48
- }
49
- ${mq.range({ from: breakpoints.tabletWide })} {
50
- max-width: 1100px;
51
- flex-direction: row;
52
- &[data-image-side="right"] {
53
- flex-direction: row-reverse;
54
- }
55
- }
56
- `;
37
+ const Container = styled("div", {
38
+ base: {
39
+ display: "flex",
40
+ flexDirection: "column",
41
+ border: "1px solid",
42
+ borderColor: "stroke.default",
43
+ backgroundColor: "background.default",
44
+ borderRadius: "xsmall",
45
+ boxShadow: "full",
46
+ maxWidth: "surface.xsmall",
47
+ overflow: "hidden",
48
+ mobileWide: {
49
+ maxWidth: "surface.medium",
50
+ },
51
+ tabletWide: {
52
+ // TODO: This is probably not the correct max-width. And it should be a token
53
+ maxWidth: "1100px",
54
+ flexDirection: "row",
55
+ },
56
+ },
57
+ });
57
58
 
58
- const headingStyle = css`
59
- margin: 0;
60
- `;
59
+ const LinkText = styled(Text, {
60
+ base: {
61
+ display: "flex",
62
+ gap: "xxsmall",
63
+ textDecoration: "underline",
64
+ _hover: {
65
+ textDecoration: "none",
66
+ },
67
+ },
68
+ });
69
+ const StyledImg = styled("img", {
70
+ base: {
71
+ alignSelf: "center",
72
+ objectFit: "cover",
73
+ width: "100%",
74
+ height: "215px",
75
+ desktop: {
76
+ height: "340px",
77
+ },
78
+ },
79
+ });
61
80
 
62
- const StyledDescription = styled.p`
63
- font-family: ${fonts.serif};
64
- margin: ${spacing.normal} 0 ${spacing.medium};
65
- `;
81
+ const ContentWrapper = styled("div", {
82
+ base: {
83
+ width: "100%",
84
+ position: "relative",
85
+ display: "flex",
86
+ flexDirection: "column",
87
+ gap: "xsmall",
88
+ alignItems: "flex-start",
89
+ paddingBlock: "medium",
90
+ paddingInline: "medium",
91
+ },
92
+ });
66
93
 
67
- const StyledImg = styled.img`
68
- align-self: center;
69
- object-fit: contain;
70
- `;
94
+ interface MaybeLinkTextProps {
95
+ url?: string;
96
+ path?: string;
97
+ children: ReactNode;
98
+ }
71
99
 
72
- const StyledLink = styled(SafeLink)`
73
- display: inline-flex;
74
- align-items: center;
75
- gap: ${spacing.xxsmall};
76
- color: ${colors.brand.primary};
77
- `;
100
+ const StyledSafeLink = styled(SafeLink, {
101
+ base: {
102
+ color: "inherit",
103
+ },
104
+ });
78
105
 
79
- const TextWrapper = styled.div`
80
- flex-grow: 1;
81
- `;
106
+ const MaybeLinkText = ({ url, children, path }: MaybeLinkTextProps) => {
107
+ if (url) return <StyledSafeLink to={getPossiblyRelativeUrl(url, path)}>{children}</StyledSafeLink>;
108
+ return children;
109
+ };
82
110
 
83
111
  const CampaignBlock = ({
84
112
  title,
85
113
  image,
86
114
  imageSide = "left",
87
115
  description,
88
- headingLevel: Heading = "h2",
116
+ headingLevel: InternalHeading = "h2",
89
117
  url,
90
118
  path,
91
119
  className,
92
120
  }: Props) => {
121
+ const imageComponent = image && <StyledImg src={`${image.src}?width=455`} height={340} width={455} alt={image.alt} />;
122
+ const HeaderComponent = url?.url ? LinkText : Text;
93
123
  return (
94
- <Container className={className} data-type="campaign-block" data-image-side={imageSide}>
95
- {image && <StyledImg src={`${image.src}?width=240`} height={200} width={240} alt={image.alt} />}
96
- <TextWrapper>
97
- <Heading css={headingStyle}>{parse(title)}</Heading>
98
- <StyledDescription>{parse(description)}</StyledDescription>
124
+ <Container className={className} data-type="campaign-block">
125
+ {imageSide === "left" && imageComponent}
126
+ <ContentWrapper>
127
+ <MaybeLinkText url={url?.url} path={path}>
128
+ <HeaderComponent asChild consumeCss textStyle="heading.small">
129
+ <InternalHeading>{parse(title)}</InternalHeading>
130
+ </HeaderComponent>
131
+ </MaybeLinkText>
132
+ <Text textStyle="body.large">{parse(description)}</Text>
99
133
  {!!url?.url && (
100
- <StyledLink to={getPossiblyRelativeUrl(url.url, path)}>
101
- {parse(url.text ?? "")}
102
- <Forward />
103
- </StyledLink>
134
+ <MaybeLinkText url={url.url} path={path}>
135
+ <LinkText textStyle="body.medium">
136
+ {parse(url.text ?? "")}
137
+ <Forward />
138
+ </LinkText>
139
+ </MaybeLinkText>
104
140
  )}
105
- </TextWrapper>
141
+ </ContentWrapper>
142
+ {imageSide !== "left" && imageComponent}
106
143
  </Container>
107
144
  );
108
145
  };
@@ -7,8 +7,6 @@
7
7
  */
8
8
 
9
9
  import { Meta, StoryFn, StoryObj } from "@storybook/react";
10
- import { IconButtonV2 } from "@ndla/button";
11
- import { DeleteForever } from "@ndla/icons/editor";
12
10
  import CodeBlock from "./CodeBlock";
13
11
 
14
12
  export default {
@@ -19,7 +17,6 @@ export default {
19
17
  inlineStories: true,
20
18
  },
21
19
  args: {
22
- title: "CodeBlock",
23
20
  format: "html",
24
21
  highlightedCode: `<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>demo-content<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
25
22
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>h2</span><span class="token punctuation">></span></span>Lorem ipsum<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>h2</span><span class="token punctuation">></span></span>
@@ -36,37 +33,6 @@ export default {
36
33
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>span</span><span class="token punctuation">></span></span>is simply dummy text of the printing and typesetting industry<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>span</span><span class="token punctuation">></span></span>
37
34
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span>
38
35
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span>`,
39
- code: `<div class="demo-content">
40
- <h2>Lorem ipsum</h2>
41
- <p>
42
- <b>Lorem ipsum</b><br/>
43
- <span>is simply dummy text of the printing and typesetting industry</span>
44
- </p>
45
- <p>
46
- <b>Lorem ipsum</b><br/>
47
- <span>is simply dummy text of the printing and typesetting industry</span>
48
- </p>
49
- <p>
50
- <b>Lorem ipsum</b><br/>
51
- <span>is simply dummy text of the printing and typesetting industry</span>
52
- </p>
53
- </div>`,
54
- actionButton: (
55
- <IconButtonV2 aria-label="Slett" variant="ghost" colorTheme="danger">
56
- <DeleteForever />
57
- </IconButtonV2>
58
- ),
59
- showCopy: true,
60
- },
61
- argTypes: {
62
- actionButton: {
63
- table: {
64
- disable: true,
65
- type: {
66
- detail: "Takes any ReactNode, but as the name implies: use a button component, preferably an icon-button",
67
- },
68
- },
69
- },
70
36
  },
71
37
  } as Meta<typeof CodeBlock>;
72
38
 
@@ -81,11 +47,6 @@ export const CSS: StoryObj<typeof CodeBlock> = {
81
47
  <span class="token property">margin</span><span class="token punctuation">:</span> <span class="token number">10</span><span class="token unit">px</span><span class="token punctuation">;</span>
82
48
  <span class="token property">background</span><span class="token punctuation">:</span> <span class="token hexcode color">#ccc</span><span class="token punctuation">;</span>
83
49
  <span class="token punctuation">}</span>`,
84
- code: `body {
85
- padding: 20px;
86
- margin: 10px;
87
- background: #ccc;
88
- }`,
89
50
  format: "css",
90
51
  },
91
52
  };
@@ -95,9 +56,6 @@ export const JS: StoryObj<typeof CodeBlock> = {
95
56
  highlightedCode: `<span class="token keyword">const</span> arr <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">"This"</span><span class="token punctuation">,</span> <span class="token string">"Little"</span><span class="token punctuation">,</span> <span class="token string">"Piggy"</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
96
57
  <span class="token keyword">const</span> first <span class="token operator">=</span> arr<span class="token punctuation">.</span><span class="token method function property-access">shift</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
97
58
  <span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>first<span class="token punctuation">)</span><span class="token punctuation">;</span>`,
98
- code: `const arr = ["This", "Little", "Piggy"];
99
- const first = arr.shift();
100
- console.log(first);`,
101
59
  format: "js",
102
60
  },
103
61
  };
@@ -105,7 +63,6 @@ console.log(first);`,
105
63
  export const Text: StoryObj<typeof CodeBlock> = {
106
64
  args: {
107
65
  highlightedCode: `Pure text without highlighting and no title`,
108
- code: `Pure text without highlighting and no title`,
109
66
  format: "text",
110
67
  },
111
68
  };