@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
@@ -1,4 +1,3 @@
1
- import _styled from "@emotion/styled/base";
2
1
  /**
3
2
  * Copyright (c) 2023-present, NDLA.
4
3
  *
@@ -7,41 +6,32 @@ import _styled from "@emotion/styled/base";
7
6
  *
8
7
  */
9
8
 
10
- /** @jsxImportSource @emotion/react */
11
9
  import parse from "html-react-parser";
12
10
  import { useMemo, useState } from "react";
13
11
  import { useTranslation } from "react-i18next";
14
- import { colors, misc, spacing } from "@ndla/core";
15
12
  import { Plus } from "@ndla/icons/action";
16
13
  import { ChevronDown, ChevronUp } from "@ndla/icons/common";
17
- import { COPYRIGHTED } from "@ndla/licenses";
14
+ import { Figure, Image } from "@ndla/primitives";
15
+ import { styled } from "@ndla/styled-system/jsx";
18
16
  import EmbedErrorPlaceholder from "./EmbedErrorPlaceholder";
19
- import { Figure } from "../Figure";
20
- import Image from "../Image";
21
17
  import { EmbedByline } from "../LicenseByline";
22
18
  import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
23
19
  export const getLicenseCredits = copyright => {
24
- var _copyright$creators, _copyright$rightshold, _copyright$processors;
25
20
  return {
26
- creators: (_copyright$creators = copyright === null || copyright === void 0 ? void 0 : copyright.creators) !== null && _copyright$creators !== void 0 ? _copyright$creators : [],
27
- rightsholders: (_copyright$rightshold = copyright === null || copyright === void 0 ? void 0 : copyright.rightsholders) !== null && _copyright$rightshold !== void 0 ? _copyright$rightshold : [],
28
- processors: (_copyright$processors = copyright === null || copyright === void 0 ? void 0 : copyright.processors) !== null && _copyright$processors !== void 0 ? _copyright$processors : []
21
+ creators: copyright?.creators ?? [],
22
+ rightsholders: copyright?.rightsholders ?? [],
23
+ processors: copyright?.processors ?? []
29
24
  };
30
25
  };
31
- export const errorSvgSrc = "data:image/svg+xml;charset=UTF-8,%3Csvg fill='%238A8888' height='400' viewBox='0 0 24 12' width='100%25' xmlns='http://www.w3.org/2000/svg' style='background-color: %23EFF0F2'%3E%3Cpath d='M0 0h24v24H0V0z' fill='none'/%3E%3Cpath transform='scale(0.3) translate(28, 8.5)' d='M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z'/%3E%3C/svg%3E";
32
- const isSmall = size => size === "xsmall" || size === "small";
33
- const isAlign = align => align === "left" || align === "right";
34
- const getFigureType = (size, align) => {
35
- if (size && isSmall(size) && align && isAlign(align)) {
36
- return "".concat(size, "-").concat(align);
37
- }
38
- if (size && isSmall(size) && !align) {
39
- return size;
40
- }
41
- if (align && isAlign(align)) {
42
- return align;
43
- }
44
- return "full";
26
+ export const errorSvgSrc = `data:image/svg+xml;charset=UTF-8,%3Csvg fill='%238A8888' height='400' viewBox='0 0 24 12' width='100%25' xmlns='http://www.w3.org/2000/svg' style='background-color: %23EFF0F2'%3E%3Cpath d='M0 0h24v24H0V0z' fill='none'/%3E%3Cpath transform='scale(0.3) translate(28, 8.5)' d='M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z'/%3E%3C/svg%3E`;
27
+ const getFigureProps = (size, float) => {
28
+ const actualFloat = float === "left" ? "left" : float === "right" ? "right" : undefined;
29
+ const replacedSize = size?.replace("-hide-byline", "") ?? "full";
30
+ return {
31
+ float: actualFloat,
32
+ // Figure expects you to set a size when floating. If you don't, the figure will simply take up the available width. Fallback to medium in those cases.
33
+ size: replacedSize === "full" && float ? "medium" : replacedSize
34
+ };
45
35
  };
46
36
  const getSizes = (size, align) => {
47
37
  if (align && size === "full") {
@@ -56,9 +46,8 @@ const getSizes = (size, align) => {
56
46
  return "(min-width: 1024px) 1024px, 100vw";
57
47
  };
58
48
  export const getFocalPoint = data => {
59
- var _data$focalX, _data$focalY;
60
- const focalX = Number.parseFloat((_data$focalX = data.focalX) !== null && _data$focalX !== void 0 ? _data$focalX : "");
61
- const focalY = Number.parseFloat((_data$focalY = data.focalY) !== null && _data$focalY !== void 0 ? _data$focalY : "");
49
+ const focalX = Number.parseFloat(data.focalX ?? "");
50
+ const focalY = Number.parseFloat(data.focalY ?? "");
62
51
  if (!Number.isNaN(focalX) && !Number.isNaN(focalY)) {
63
52
  return {
64
53
  x: focalX,
@@ -68,11 +57,10 @@ export const getFocalPoint = data => {
68
57
  return undefined;
69
58
  };
70
59
  export const getCrop = data => {
71
- var _data$lowerRightX, _data$lowerRightY, _data$upperLeftX, _data$upperLeftY;
72
- const lowerRightX = Number.parseFloat((_data$lowerRightX = data.lowerRightX) !== null && _data$lowerRightX !== void 0 ? _data$lowerRightX : "");
73
- const lowerRightY = Number.parseFloat((_data$lowerRightY = data.lowerRightY) !== null && _data$lowerRightY !== void 0 ? _data$lowerRightY : "");
74
- const upperLeftX = Number.parseFloat((_data$upperLeftX = data.upperLeftX) !== null && _data$upperLeftX !== void 0 ? _data$upperLeftX : "");
75
- const upperLeftY = Number.parseFloat((_data$upperLeftY = data.upperLeftY) !== null && _data$upperLeftY !== void 0 ? _data$upperLeftY : "");
60
+ const lowerRightX = Number.parseFloat(data.lowerRightX ?? "");
61
+ const lowerRightY = Number.parseFloat(data.lowerRightY ?? "");
62
+ const upperLeftX = Number.parseFloat(data.upperLeftX ?? "");
63
+ const upperLeftY = Number.parseFloat(data.upperLeftY ?? "");
76
64
  if (!Number.isNaN(lowerRightX) && !Number.isNaN(lowerRightY) && !Number.isNaN(upperLeftX) && !Number.isNaN(upperLeftY)) {
77
65
  return {
78
66
  startX: lowerRightX,
@@ -84,26 +72,133 @@ export const getCrop = data => {
84
72
  return undefined;
85
73
  };
86
74
  const expandedSizes = "(min-width: 1024px) 1024px, 100vw";
87
- const StyledFigure = /*#__PURE__*/_styled(Figure, {
88
- target: "ened8ka2",
89
- label: "StyledFigure"
90
- })("&:hover{[data-byline-button]{background:", colors.white, ";}button[data-expanded]{transform:scale(1.2);}}button[data-expanded=\"true\"]{svg{transform:rotate(-45deg);}}&[data-float=\"right\"]{float:right;}&[data-float=\"left\"]{float:left;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkltYWdlRW1iZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlIbUMiLCJmaWxlIjoiSW1hZ2VFbWJlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMy1wcmVzZW50LCBORExBLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdQTHYzIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbi8qKiBAanN4SW1wb3J0U291cmNlIEBlbW90aW9uL3JlYWN0ICovXG5pbXBvcnQgcGFyc2UgZnJvbSBcImh0bWwtcmVhY3QtcGFyc2VyXCI7XG5pbXBvcnQgeyBNb3VzZUV2ZW50SGFuZGxlciwgUmVhY3ROb2RlLCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBjb2xvcnMsIG1pc2MsIHNwYWNpbmcgfSBmcm9tIFwiQG5kbGEvY29yZVwiO1xuaW1wb3J0IHsgUGx1cyB9IGZyb20gXCJAbmRsYS9pY29ucy9hY3Rpb25cIjtcbmltcG9ydCB7IENoZXZyb25Eb3duLCBDaGV2cm9uVXAgfSBmcm9tIFwiQG5kbGEvaWNvbnMvY29tbW9uXCI7XG5pbXBvcnQgeyBDT1BZUklHSFRFRCB9IGZyb20gXCJAbmRsYS9saWNlbnNlc1wiO1xuaW1wb3J0IHsgSW1hZ2VFbWJlZERhdGEsIEltYWdlTWV0YURhdGEgfSBmcm9tIFwiQG5kbGEvdHlwZXMtZW1iZWRcIjtcbmltcG9ydCBFbWJlZEVycm9yUGxhY2Vob2xkZXIgZnJvbSBcIi4vRW1iZWRFcnJvclBsYWNlaG9sZGVyXCI7XG5pbXBvcnQgeyBSZW5kZXJDb250ZXh0IH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IEZpZ3VyZSwgRmlndXJlVHlwZSB9IGZyb20gXCIuLi9GaWd1cmVcIjtcbmltcG9ydCBJbWFnZSBmcm9tIFwiLi4vSW1hZ2VcIjtcbmltcG9ydCB7IEVtYmVkQnlsaW5lIH0gZnJvbSBcIi4uL0xpY2Vuc2VCeWxpbmVcIjtcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgZW1iZWQ6IEltYWdlTWV0YURhdGE7XG4gIHByZXZpZXdBbHQ/OiBib29sZWFuO1xuICBpbkdyaWQ/OiBib29sZWFuO1xuICBsYW5nPzogc3RyaW5nO1xuICByZW5kZXJDb250ZXh0PzogUmVuZGVyQ29udGV4dDtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRMaWNlbnNlQ3JlZGl0cyA9IChjb3B5cmlnaHQ/OiB7XG4gIGNyZWF0b3JzPzogQXV0aG9yW107XG4gIHJpZ2h0c2hvbGRlcnM/OiBBdXRob3JbXTtcbiAgcHJvY2Vzc29ycz86IEF1dGhvcltdO1xufSkgPT4ge1xuICByZXR1cm4ge1xuICAgIGNyZWF0b3JzOiBjb3B5cmlnaHQ/LmNyZWF0b3JzID8/IFtdLFxuICAgIHJpZ2h0c2hvbGRlcnM6IGNvcHlyaWdodD8ucmlnaHRzaG9sZGVycyA/PyBbXSxcbiAgICBwcm9jZXNzb3JzOiBjb3B5cmlnaHQ/LnByb2Nlc3NvcnMgPz8gW10sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZXJyb3JTdmdTcmMgPSBgZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnIGZpbGw9JyUyMzhBODg4OCcgaGVpZ2h0PSc0MDAnIHZpZXdCb3g9JzAgMCAyNCAxMicgd2lkdGg9JzEwMCUyNScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBzdHlsZT0nYmFja2dyb3VuZC1jb2xvcjogJTIzRUZGMEYyJyUzRSUzQ3BhdGggZD0nTTAgMGgyNHYyNEgwVjB6JyBmaWxsPSdub25lJy8lM0UlM0NwYXRoIHRyYW5zZm9ybT0nc2NhbGUoMC4zKSB0cmFuc2xhdGUoMjgsIDguNSknIGQ9J00xMSAxNWgydjJoLTJ6bTAtOGgydjZoLTJ6bS45OS01QzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6Jy8lM0UlM0Mvc3ZnJTNFYDtcbmNvbnN0IGlzU21hbGwgPSAoc2l6ZT86IHN0cmluZyk6IHNpemUgaXMgXCJ4c21hbGxcIiB8IFwic21hbGxcIiA9PiBzaXplID09PSBcInhzbWFsbFwiIHx8IHNpemUgPT09IFwic21hbGxcIjtcblxuY29uc3QgaXNBbGlnbiA9IChhbGlnbj86IHN0cmluZyk6IGFsaWduIGlzIFwibGVmdFwiIHwgXCJyaWdodFwiID0+IGFsaWduID09PSBcImxlZnRcIiB8fCBhbGlnbiA9PT0gXCJyaWdodFwiO1xuXG5jb25zdCBnZXRGaWd1cmVUeXBlID0gKHNpemU/OiBzdHJpbmcsIGFsaWduPzogc3RyaW5nKTogRmlndXJlVHlwZSA9PiB7XG4gIGlmIChzaXplICYmIGlzU21hbGwoc2l6ZSkgJiYgYWxpZ24gJiYgaXNBbGlnbihhbGlnbikpIHtcbiAgICByZXR1cm4gYCR7c2l6ZX0tJHthbGlnbn1gO1xuICB9XG4gIGlmIChzaXplICYmIGlzU21hbGwoc2l6ZSkgJiYgIWFsaWduKSB7XG4gICAgcmV0dXJuIHNpemUgYXMgRmlndXJlVHlwZTtcbiAgfVxuICBpZiAoYWxpZ24gJiYgaXNBbGlnbihhbGlnbikpIHtcbiAgICByZXR1cm4gYWxpZ247XG4gIH1cbiAgcmV0dXJuIFwiZnVsbFwiO1xufTtcblxuY29uc3QgZ2V0U2l6ZXMgPSAoc2l6ZT86IHN0cmluZywgYWxpZ24/OiBzdHJpbmcpID0+IHtcbiAgaWYgKGFsaWduICYmIHNpemUgPT09IFwiZnVsbFwiKSB7XG4gICAgcmV0dXJuIFwiKG1pbi13aWR0aDogMTAyNHB4KSA1MTJweCwgKG1pbi13aWR0aDogNzY4cHgpIDM1MHB4LCAxMDB2d1wiO1xuICB9XG4gIGlmIChhbGlnbiAmJiBzaXplID09PSBcInNtYWxsXCIpIHtcbiAgICByZXR1cm4gXCIobWluLXdpZHRoOiAxMDI0cHgpIDM1MHB4LCAobWluLXdpZHRoOiA3NjhweCkgMTgwcHgsIDEwMHZ3XCI7XG4gIH1cbiAgaWYgKGFsaWduICYmIHNpemUgPT09IFwieHNtYWxsXCIpIHtcbiAgICByZXR1cm4gXCIobWluLXdpZHRoOiAxMDI0cHgpIDE4MHB4LCAobWluLXdpZHRoOiA3NjhweCkgMTgwcHgsIDEwMHZ3XCI7XG4gIH1cbiAgcmV0dXJuIFwiKG1pbi13aWR0aDogMTAyNHB4KSAxMDI0cHgsIDEwMHZ3XCI7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rm9jYWxQb2ludCA9IChkYXRhOiBJbWFnZUVtYmVkRGF0YSkgPT4ge1xuICBjb25zdCBmb2NhbFggPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLmZvY2FsWCA/PyBcIlwiKTtcbiAgY29uc3QgZm9jYWxZID0gTnVtYmVyLnBhcnNlRmxvYXQoZGF0YS5mb2NhbFkgPz8gXCJcIik7XG4gIGlmICghTnVtYmVyLmlzTmFOKGZvY2FsWCkgJiYgIU51bWJlci5pc05hTihmb2NhbFkpKSB7XG4gICAgcmV0dXJuIHsgeDogZm9jYWxYLCB5OiBmb2NhbFkgfTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENyb3AgPSAoZGF0YTogSW1hZ2VFbWJlZERhdGEpID0+IHtcbiAgY29uc3QgbG93ZXJSaWdodFggPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLmxvd2VyUmlnaHRYID8/IFwiXCIpO1xuICBjb25zdCBsb3dlclJpZ2h0WSA9IE51bWJlci5wYXJzZUZsb2F0KGRhdGEubG93ZXJSaWdodFkgPz8gXCJcIik7XG4gIGNvbnN0IHVwcGVyTGVmdFggPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLnVwcGVyTGVmdFggPz8gXCJcIik7XG4gIGNvbnN0IHVwcGVyTGVmdFkgPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLnVwcGVyTGVmdFkgPz8gXCJcIik7XG4gIGlmIChcbiAgICAhTnVtYmVyLmlzTmFOKGxvd2VyUmlnaHRYKSAmJlxuICAgICFOdW1iZXIuaXNOYU4obG93ZXJSaWdodFkpICYmXG4gICAgIU51bWJlci5pc05hTih1cHBlckxlZnRYKSAmJlxuICAgICFOdW1iZXIuaXNOYU4odXBwZXJMZWZ0WSlcbiAgKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0WDogbG93ZXJSaWdodFgsXG4gICAgICBzdGFydFk6IGxvd2VyUmlnaHRZLFxuICAgICAgZW5kWDogdXBwZXJMZWZ0WCxcbiAgICAgIGVuZFk6IHVwcGVyTGVmdFksXG4gICAgfTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuY29uc3QgZXhwYW5kZWRTaXplcyA9IFwiKG1pbi13aWR0aDogMTAyNHB4KSAxMDI0cHgsIDEwMHZ3XCI7XG5cbmNvbnN0IFN0eWxlZEZpZ3VyZSA9IHN0eWxlZChGaWd1cmUpYFxuICAmOmhvdmVyIHtcbiAgICBbZGF0YS1ieWxpbmUtYnV0dG9uXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAke2NvbG9ycy53aGl0ZX07XG4gICAgfVxuICAgIGJ1dHRvbltkYXRhLWV4cGFuZGVkXSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gICAgfVxuICB9XG4gIGJ1dHRvbltkYXRhLWV4cGFuZGVkPVwidHJ1ZVwiXSB7XG4gICAgc3ZnIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgfVxuICB9XG4gICZbZGF0YS1mbG9hdD1cInJpZ2h0XCJdIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbiAgJltkYXRhLWZsb2F0PVwibGVmdFwiXSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbmA7XG5cbmNvbnN0IEltYWdlRW1iZWQgPSAoeyBlbWJlZCwgcHJldmlld0FsdCwgaW5HcmlkLCBsYW5nLCByZW5kZXJDb250ZXh0ID0gXCJhcnRpY2xlXCIsIGNoaWxkcmVuIH06IFByb3BzKSA9PiB7XG4gIGNvbnN0IFtpc0J5bGluZUhpZGRlbiwgc2V0SXNCeWxpbmVIaWRkZW5dID0gdXNlU3RhdGUoaGlkZUJ5bGluZShlbWJlZC5lbWJlZERhdGEpKTtcbiAgY29uc3QgW2ltYWdlU2l6ZXMsIHNldEltYWdlU2l6ZXNdID0gdXNlU3RhdGU8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAvLyBGdWxsLXNpemUgZmlndXJlcyBhdXRvbWF0aWNhbGx5IGdldCBhIG1hcmdpbiBvZiB7c3BhY2luZy5ub3JtYWx9IG9uIGl0cyB5LWF4aXMgaWYgYSBmbG9hdCBpcyBub3Qgc2V0IChvciBpZiBmbG9hdCBpcyBhbiBlbXB0eSBzdHJpbmcpLlxuICAvLyBUaGlzIGFkZHMgc29tZSBtYXJnaW4gdG8gbm9ybWFsIGZpZ3VyZXMgd2l0aGluIGFuIGFydGljbGUsIGJ1dCBzaG91bGQgbm90IGhhcHBlbiBmb3IgZmlndXJlcyBpbiBhIGdyaWQuXG4gIGNvbnN0IFtmbG9hdEF0dHIsIHNldEZsb2F0QXR0cl0gPSB1c2VTdGF0ZTx7IFwiZGF0YS1mbG9hdFwiPzogc3RyaW5nIH0+KCgpID0+XG4gICAgaW5HcmlkICYmICFlbWJlZC5lbWJlZERhdGEuYWxpZ24gPyB7fSA6IHsgXCJkYXRhLWZsb2F0XCI6IGVtYmVkLmVtYmVkRGF0YS5hbGlnbiB9LFxuICApO1xuXG4gIGNvbnN0IHBhcnNlZERlc2NyaXB0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGVtYmVkLmVtYmVkRGF0YS5jYXB0aW9uIHx8IHJlbmRlckNvbnRleHQgPT09IFwiYXJ0aWNsZVwiKSB7XG4gICAgICByZXR1cm4gZW1iZWQuZW1iZWREYXRhLmNhcHRpb24gPyBwYXJzZShlbWJlZC5lbWJlZERhdGEuY2FwdGlvbikgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmIChlbWJlZC5zdGF0dXMgPT09IFwic3VjY2Vzc1wiICYmIGVtYmVkLmRhdGEuY2FwdGlvbi5jYXB0aW9uKSB7XG4gICAgICByZXR1cm4gcGFyc2UoZW1iZWQuZGF0YS5jYXB0aW9uLmNhcHRpb24pO1xuICAgIH1cbiAgfSwgW2VtYmVkLCByZW5kZXJDb250ZXh0XSk7XG5cbiAgaWYgKGVtYmVkLnN0YXR1cyA9PT0gXCJlcnJvclwiKSB7XG4gICAgY29uc3QgeyBhbGlnbiwgc2l6ZSB9ID0gZW1iZWQuZW1iZWREYXRhO1xuICAgIGNvbnN0IGZpZ3VyZVR5cGUgPSBnZXRGaWd1cmVUeXBlKHNpemUsIGFsaWduKTtcbiAgICByZXR1cm4gPEVtYmVkRXJyb3JQbGFjZWhvbGRlciB0eXBlPXtcImltYWdlXCJ9IGZpZ3VyZVR5cGU9e2ZpZ3VyZVR5cGV9IC8+O1xuICB9XG5cbiAgY29uc3QgeyBkYXRhLCBlbWJlZERhdGEgfSA9IGVtYmVkO1xuXG4gIGNvbnN0IGFsdFRleHQgPSBlbWJlZERhdGEuYWx0IHx8IFwiXCI7XG5cbiAgY29uc3QgZmlndXJlVHlwZSA9IGdldEZpZ3VyZVR5cGUoZW1iZWREYXRhLnNpemUsIGVtYmVkRGF0YS5hbGlnbik7XG4gIGNvbnN0IHNpemVzID0gZ2V0U2l6ZXMoZW1iZWREYXRhLnNpemUsIGVtYmVkRGF0YS5hbGlnbik7XG5cbiAgY29uc3QgZm9jYWxQb2ludCA9IGdldEZvY2FsUG9pbnQoZW1iZWREYXRhKTtcbiAgY29uc3QgY3JvcCA9IGdldENyb3AoZW1iZWREYXRhKTtcblxuICBjb25zdCBpc0NvcHlyaWdodGVkID0gZGF0YS5jb3B5cmlnaHQubGljZW5zZS5saWNlbnNlLnRvTG93ZXJDYXNlKCkgPT09IENPUFlSSUdIVEVEO1xuXG4gIGNvbnN0IHRvZ2dsZUltYWdlU2l6ZSA9ICgpID0+IHtcbiAgICBpZiAoIWltYWdlU2l6ZXMpIHtcbiAgICAgIHNldEltYWdlU2l6ZXMoZXhwYW5kZWRTaXplcyk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2V0RmxvYXRBdHRyKHt9KTtcbiAgICAgIH0sIDQwMCk7IC8vUmVtb3ZpbmcgdGhlIGZsb2F0IHBhcmFtZXRlciB0b28gcXVpY2tseSBjYXVzZXMgdGhlIGltYWdlIHRvIGJlIHJlc2l6ZWQgZnJvbSBsZWZ0IHJlZ2FyZGxlc3NcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0SW1hZ2VTaXplcyh1bmRlZmluZWQpO1xuICAgICAgc2V0RmxvYXRBdHRyKHsgXCJkYXRhLWZsb2F0XCI6IGVtYmVkRGF0YS5hbGlnbiB9KTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkRmlndXJlIHR5cGU9e2ltYWdlU2l6ZXMgPyB1bmRlZmluZWQgOiBmaWd1cmVUeXBlfSB7Li4uZmxvYXRBdHRyfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDxJbWFnZVxuICAgICAgICBmb2NhbFBvaW50PXtmb2NhbFBvaW50fVxuICAgICAgICBjb250ZW50VHlwZT17ZGF0YS5pbWFnZS5jb250ZW50VHlwZX1cbiAgICAgICAgY3JvcD17Y3JvcH1cbiAgICAgICAgc2l6ZXM9e2ltYWdlU2l6ZXMgPz8gc2l6ZXN9XG4gICAgICAgIGFsdD17YWx0VGV4dH1cbiAgICAgICAgc3JjPXtkYXRhLmltYWdlLmltYWdlVXJsfVxuICAgICAgICBib3JkZXI9e2VtYmVkRGF0YS5ib3JkZXJ9XG4gICAgICAgIG9uRXhwYW5kPXtpc0FsaWduKGVtYmVkRGF0YS5hbGlnbikgPyB0b2dnbGVJbWFnZVNpemUgOiB1bmRlZmluZWR9XG4gICAgICAgIGV4cGFuZGVkPXshIWltYWdlU2l6ZXN9XG4gICAgICAgIGV4cGFuZEJ1dHRvbj17XG4gICAgICAgICAgPEV4cGFuZEJ1dHRvblxuICAgICAgICAgICAgZW1iZWREYXRhPXtlbWJlZERhdGF9XG4gICAgICAgICAgICBleHBhbmRlZD17ISFpbWFnZVNpemVzfVxuICAgICAgICAgICAgYWxpZ249e2VtYmVkRGF0YS5hbGlnbn1cbiAgICAgICAgICAgIGJ5bGluZUhpZGRlbj17aXNCeWxpbmVIaWRkZW59XG4gICAgICAgICAgICBvbkV4cGFuZD17dG9nZ2xlSW1hZ2VTaXplfVxuICAgICAgICAgICAgb25IaWRlQnlsaW5lPXsoKSA9PiBzZXRJc0J5bGluZUhpZGRlbigocCkgPT4gIXApfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAgbGFuZz17bGFuZ31cbiAgICAgIC8+XG4gICAgICB7aXNCeWxpbmVIaWRkZW4gPyBudWxsIDogKFxuICAgICAgICA8RW1iZWRCeWxpbmVcbiAgICAgICAgICB0eXBlPVwiaW1hZ2VcIlxuICAgICAgICAgIGNvcHlyaWdodD17ZGF0YS5jb3B5cmlnaHR9XG4gICAgICAgICAgZGVzY3JpcHRpb249e3BhcnNlZERlc2NyaXB0aW9ufVxuICAgICAgICAgIHZpc2libGVBbHQ9e3ByZXZpZXdBbHQgPyBlbWJlZC5lbWJlZERhdGEuYWx0IDogXCJcIn1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9TdHlsZWRGaWd1cmU+XG4gICk7XG59O1xuXG5jb25zdCBoaWRlQnlsaW5lID0gKGVtYmVkOiBJbWFnZUVtYmVkRGF0YSk6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gKCEhZW1iZWQuc2l6ZSAmJiBlbWJlZC5zaXplLmVuZHNXaXRoKFwiLWhpZGUtYnlsaW5lXCIpKSB8fCBlbWJlZC5oaWRlQnlsaW5lID09PSBcInRydWVcIjtcbn07XG5cbmludGVyZmFjZSBFeHBhbmRCdXR0b25Qcm9wcyB7XG4gIGVtYmVkRGF0YTogSW1hZ2VFbWJlZERhdGE7XG4gIGFsaWduPzogc3RyaW5nO1xuICBleHBhbmRlZDogYm9vbGVhbjtcbiAgYnlsaW5lSGlkZGVuOiBib29sZWFuO1xuICBvbkV4cGFuZDogTW91c2VFdmVudEhhbmRsZXI8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBvbkhpZGVCeWxpbmU6IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxCdXR0b25FbGVtZW50Pjtcbn1cblxuY29uc3QgQnlsaW5lQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBhZGRpbmc6ICR7c3BhY2luZy5zbWFsbH07XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2Utb3V0O1xuICBiYWNrZ3JvdW5kOiAke2NvbG9ycy5iYWNrZ3JvdW5kLmRlZmF1bHR9MjA7XG4gIGJvcmRlcjogMDtcblxuICBzdmcge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGVhc2Utb3V0O1xuICAgIHdpZHRoOiAke3NwYWNpbmcubm9ybWFsfTtcbiAgICBoZWlnaHQ6ICR7c3BhY2luZy5ub3JtYWx9O1xuICAgIGZpbGw6ICR7Y29sb3JzLmJyYW5kLnByaW1hcnl9O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBhZGRpbmc6IDA7XG4gIHRvcDogJHtzcGFjaW5nLnNtYWxsfTtcbiAgcmlnaHQ6ICR7c3BhY2luZy5zbWFsbH07XG4gIHdpZHRoOiAke3NwYWNpbmcubm9ybWFsfTtcbiAgaGVpZ2h0OiAke3NwYWNpbmcubm9ybWFsfTtcbiAgYm9yZGVyOiAycHggc29saWQgJHtjb2xvcnMud2hpdGV9O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLW91dDtcbiAgY29sb3I6ICR7Y29sb3JzLndoaXRlfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnMuYnJhbmQucHJpbWFyeX07XG4gIGJvcmRlci1yYWRpdXM6ICR7bWlzYy5ib3JkZXJSYWRpdXNMYXJnZX07XG4gIHN2ZyB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZS1vdXQ7XG4gICAgaGVpZ2h0OiAke3NwYWNpbmcubnNtYWxsfTtcbiAgICB3aWR0aDogJHtzcGFjaW5nLm5zbWFsbH07XG4gIH1cbmA7XG5cbmNvbnN0IEV4cGFuZEJ1dHRvbiA9ICh7IGFsaWduLCBlbWJlZERhdGEsIGV4cGFuZGVkLCBieWxpbmVIaWRkZW4sIG9uRXhwYW5kLCBvbkhpZGVCeWxpbmUgfTogRXhwYW5kQnV0dG9uUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICBpZiAoaXNBbGlnbihhbGlnbikpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgYXJpYS1sYWJlbD17dChgbGljZW5zZS5pbWFnZXMuaXRlbUltYWdlLnpvb20ke2V4cGFuZGVkID8gXCJPdXRcIiA6IFwiXCJ9SW1hZ2VCdXR0b25MYWJlbGApfVxuICAgICAgICBvbkNsaWNrPXtvbkV4cGFuZH1cbiAgICAgICAgZGF0YS1leHBhbmRlZD17ZXhwYW5kZWR9XG4gICAgICA+XG4gICAgICAgIDxQbHVzIC8+XG4gICAgICA8L1N0eWxlZEJ1dHRvbj5cbiAgICApO1xuICB9XG4gIGlmIChoaWRlQnlsaW5lKGVtYmVkRGF0YSkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPEJ5bGluZUJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgZGF0YS1ieWxpbmUtYnV0dG9uPVwiXCJcbiAgICAgICAgYXJpYS1sYWJlbD17dChgbGljZW5zZS5pbWFnZXMuaXRlbUltYWdlLiR7YnlsaW5lSGlkZGVuID8gXCJleHBhbmRCeWxpbmVcIiA6IFwibWluaW1pemVCeWxpbmVcIn1gKX1cbiAgICAgICAgb25DbGljaz17b25IaWRlQnlsaW5lfVxuICAgICAgPlxuICAgICAgICB7YnlsaW5lSGlkZGVuID8gPENoZXZyb25Eb3duIC8+IDogPENoZXZyb25VcCAvPn1cbiAgICAgIDwvQnlsaW5lQnV0dG9uPlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBJbWFnZUVtYmVkO1xuIl19 */"));
75
+ const ImageWrapper = styled("div", {
76
+ base: {
77
+ overflow: "hidden",
78
+ position: "relative",
79
+ width: "100%",
80
+ "& img": {
81
+ width: "100%"
82
+ }
83
+ },
84
+ variants: {
85
+ svg: {
86
+ true: {
87
+ display: "flex",
88
+ justifyContent: "center"
89
+ },
90
+ false: {}
91
+ },
92
+ border: {
93
+ true: {
94
+ border: "1px solid",
95
+ // TODO: Not sure if we want this color.
96
+ borderColor: "surface.brand.1.strong",
97
+ borderBottom: "0",
98
+ borderRadius: "xsmall",
99
+ borderBottomLeftRadius: "0",
100
+ borderBottomRightRadius: "0"
101
+ },
102
+ false: {}
103
+ },
104
+ expandable: {
105
+ true: {
106
+ cursor: "pointer"
107
+ },
108
+ false: {}
109
+ }
110
+ }
111
+ });
112
+ const StyledFigure = styled(Figure, {
113
+ base: {
114
+ _hover: {
115
+ "& [data-byline-button]": {
116
+ background: "background.default"
117
+ },
118
+ "& button[data-expanded]": {
119
+ transform: "scale(1.2)"
120
+ }
121
+ },
122
+ "& button[data-expanded='true']": {
123
+ "& svg": {
124
+ transform: "rotate(-45deg)"
125
+ }
126
+ }
127
+ }
128
+ });
129
+
130
+ // TODO: Ask about BylineButton styling. Not included in design
131
+ const BylineButton = styled("button", {
132
+ base: {
133
+ cursor: "pointer",
134
+ position: "absolute",
135
+ zIndex: "base",
136
+ bottom: "0",
137
+ right: "0",
138
+ paddingBlock: "xsmall",
139
+ paddingInline: "xsmall",
140
+ transitionProperty: "transform, background-color, color",
141
+ transitionDuration: "normal",
142
+ transitionTimingFunction: "ease-out",
143
+ background: "background.default/20",
144
+ border: "0",
145
+ "& svg": {
146
+ transitionProperty: "transform",
147
+ transitionDuration: "normal",
148
+ transitionTimingFunction: "ease-out",
149
+ fill: "primary"
150
+ }
151
+ }
152
+ }, {
153
+ defaultProps: {
154
+ type: "button"
155
+ }
156
+ });
157
+ const ExpandButton = styled("button", {
158
+ base: {
159
+ display: "flex",
160
+ alignItems: "center",
161
+ justifyContent: "center",
162
+ cursor: "pointer",
163
+ position: "absolute",
164
+ padding: "0",
165
+ top: "xsmall",
166
+ right: "xsmall",
167
+ width: "medium",
168
+ height: "medium",
169
+ border: "2px solid",
170
+ borderColor: "background.default",
171
+ transitionProperty: "transform, background-color, color",
172
+ transitionDuration: "normal",
173
+ transitionTimingFunction: "ease-out",
174
+ color: "background.default",
175
+ backgroundColor: "surface.action",
176
+ borderRadius: "large",
177
+ "& svg": {
178
+ transitionProperty: "transform",
179
+ transitionDuration: "normal",
180
+ transitionTimingFunction: "ease-out"
181
+ }
182
+ }
183
+ }, {
184
+ defaultProps: {
185
+ type: "button"
186
+ }
187
+ });
91
188
  const ImageEmbed = _ref => {
92
189
  let {
93
190
  embed,
94
191
  previewAlt,
95
- inGrid,
96
192
  lang,
97
193
  renderContext = "article",
98
194
  children
99
195
  } = _ref;
100
196
  const [isBylineHidden, setIsBylineHidden] = useState(hideByline(embed.embedData));
101
197
  const [imageSizes, setImageSizes] = useState(undefined);
102
- // Full-size figures automatically get a margin of {spacing.normal} on its y-axis if a float is not set (or if float is an empty string).
103
- // This adds some margin to normal figures within an article, but should not happen for figures in a grid.
104
- const [floatAttr, setFloatAttr] = useState(() => inGrid && !embed.embedData.align ? {} : {
105
- "data-float": embed.embedData.align
106
- });
198
+ const figureProps = getFigureProps(embed.embedData.size, embed.embedData.align);
199
+ const {
200
+ t
201
+ } = useTranslation();
107
202
  const parsedDescription = useMemo(() => {
108
203
  if (embed.embedData.caption || renderContext === "article") {
109
204
  return embed.embedData.caption ? parse(embed.embedData.caption) : undefined;
@@ -113,14 +208,10 @@ const ImageEmbed = _ref => {
113
208
  }
114
209
  }, [embed, renderContext]);
115
210
  if (embed.status === "error") {
116
- const {
117
- align,
118
- size
119
- } = embed.embedData;
120
- const figureType = getFigureType(size, align);
121
211
  return _jsx(EmbedErrorPlaceholder, {
122
212
  type: "image",
123
- figureType: figureType
213
+ figureType: figureProps?.size,
214
+ float: figureProps?.float
124
215
  });
125
216
  }
126
217
  const {
@@ -128,46 +219,40 @@ const ImageEmbed = _ref => {
128
219
  embedData
129
220
  } = embed;
130
221
  const altText = embedData.alt || "";
131
- const figureType = getFigureType(embedData.size, embedData.align);
132
222
  const sizes = getSizes(embedData.size, embedData.align);
133
223
  const focalPoint = getFocalPoint(embedData);
134
224
  const crop = getCrop(embedData);
135
- const isCopyrighted = data.copyright.license.license.toLowerCase() === COPYRIGHTED;
136
225
  const toggleImageSize = () => {
137
- if (!imageSizes) {
138
- setImageSizes(expandedSizes);
139
- setTimeout(() => {
140
- setFloatAttr({});
141
- }, 400); //Removing the float parameter too quickly causes the image to be resized from left regardless
142
- } else {
143
- setImageSizes(undefined);
144
- setFloatAttr({
145
- "data-float": embedData.align
146
- });
147
- }
226
+ setImageSizes(sizes => !sizes ? expandedSizes : undefined);
148
227
  };
228
+
229
+ // TODO: Check how this works with `children`. Will only be important for ED
149
230
  return _jsxs(StyledFigure, {
150
- type: imageSizes ? undefined : figureType,
151
- ...floatAttr,
152
- children: [children, _jsx(Image, {
153
- focalPoint: focalPoint,
154
- contentType: data.image.contentType,
155
- crop: crop,
156
- sizes: imageSizes !== null && imageSizes !== void 0 ? imageSizes : sizes,
157
- alt: altText,
158
- src: data.image.imageUrl,
159
- border: embedData.border,
160
- onExpand: isAlign(embedData.align) ? toggleImageSize : undefined,
161
- expanded: !!imageSizes,
162
- expandButton: _jsx(ExpandButton, {
163
- embedData: embedData,
164
- expanded: !!imageSizes,
165
- align: embedData.align,
166
- bylineHidden: isBylineHidden,
167
- onExpand: toggleImageSize,
168
- onHideByline: () => setIsBylineHidden(p => !p)
169
- }),
170
- lang: lang
231
+ float: figureProps?.float,
232
+ size: imageSizes ? "full" : figureProps?.size ?? "medium",
233
+ children: [children, _jsxs(ImageWrapper, {
234
+ border: embedData.border === "true",
235
+ expandable: !!figureProps?.float,
236
+ children: [_jsx(Image, {
237
+ focalPoint: focalPoint,
238
+ contentType: data.image.contentType,
239
+ crop: crop,
240
+ sizes: imageSizes ?? sizes,
241
+ alt: altText,
242
+ src: data.image.imageUrl,
243
+ lang: lang,
244
+ onClick: figureProps?.float ? toggleImageSize : undefined
245
+ }), !!embedData.align && _jsx(ExpandButton, {
246
+ "aria-label": t(`license.images.itemImage.zoom${imageSizes ? "Out" : ""}ImageButtonLabel`),
247
+ onClick: toggleImageSize,
248
+ "data-expanded": !!imageSizes,
249
+ children: _jsx(Plus, {})
250
+ }), (embedData.size?.endsWith("-hide-byline") || embedData.hideByline === "true") && _jsx(BylineButton, {
251
+ "data-byline-button": "",
252
+ "aria-label": t(`license.images.itemImage.${isBylineHidden ? "expandByline" : "minimizeByline"}`),
253
+ onClick: () => setIsBylineHidden(p => !p),
254
+ children: isBylineHidden ? _jsx(ChevronDown, {}) : _jsx(ChevronUp, {})
255
+ })]
171
256
  }), isBylineHidden ? null : _jsx(EmbedByline, {
172
257
  type: "image",
173
258
  copyright: data.copyright,
@@ -179,44 +264,4 @@ const ImageEmbed = _ref => {
179
264
  const hideByline = embed => {
180
265
  return !!embed.size && embed.size.endsWith("-hide-byline") || embed.hideByline === "true";
181
266
  };
182
- const BylineButton = /*#__PURE__*/_styled("button", {
183
- target: "ened8ka1",
184
- label: "BylineButton"
185
- })("cursor:pointer;position:absolute;z-index:1;bottom:0;right:0;padding:", spacing.small, ";transition:all 0.3s ease-out;background:", colors.background.default, "20;border:0;svg{transition:transform 0.4s ease-out;width:", spacing.normal, ";height:", spacing.normal, ";fill:", colors.brand.primary, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkltYWdlRW1iZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlPa0MiLCJmaWxlIjoiSW1hZ2VFbWJlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMy1wcmVzZW50LCBORExBLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdQTHYzIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbi8qKiBAanN4SW1wb3J0U291cmNlIEBlbW90aW9uL3JlYWN0ICovXG5pbXBvcnQgcGFyc2UgZnJvbSBcImh0bWwtcmVhY3QtcGFyc2VyXCI7XG5pbXBvcnQgeyBNb3VzZUV2ZW50SGFuZGxlciwgUmVhY3ROb2RlLCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBjb2xvcnMsIG1pc2MsIHNwYWNpbmcgfSBmcm9tIFwiQG5kbGEvY29yZVwiO1xuaW1wb3J0IHsgUGx1cyB9IGZyb20gXCJAbmRsYS9pY29ucy9hY3Rpb25cIjtcbmltcG9ydCB7IENoZXZyb25Eb3duLCBDaGV2cm9uVXAgfSBmcm9tIFwiQG5kbGEvaWNvbnMvY29tbW9uXCI7XG5pbXBvcnQgeyBDT1BZUklHSFRFRCB9IGZyb20gXCJAbmRsYS9saWNlbnNlc1wiO1xuaW1wb3J0IHsgSW1hZ2VFbWJlZERhdGEsIEltYWdlTWV0YURhdGEgfSBmcm9tIFwiQG5kbGEvdHlwZXMtZW1iZWRcIjtcbmltcG9ydCBFbWJlZEVycm9yUGxhY2Vob2xkZXIgZnJvbSBcIi4vRW1iZWRFcnJvclBsYWNlaG9sZGVyXCI7XG5pbXBvcnQgeyBSZW5kZXJDb250ZXh0IH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IEZpZ3VyZSwgRmlndXJlVHlwZSB9IGZyb20gXCIuLi9GaWd1cmVcIjtcbmltcG9ydCBJbWFnZSBmcm9tIFwiLi4vSW1hZ2VcIjtcbmltcG9ydCB7IEVtYmVkQnlsaW5lIH0gZnJvbSBcIi4uL0xpY2Vuc2VCeWxpbmVcIjtcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgZW1iZWQ6IEltYWdlTWV0YURhdGE7XG4gIHByZXZpZXdBbHQ/OiBib29sZWFuO1xuICBpbkdyaWQ/OiBib29sZWFuO1xuICBsYW5nPzogc3RyaW5nO1xuICByZW5kZXJDb250ZXh0PzogUmVuZGVyQ29udGV4dDtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRMaWNlbnNlQ3JlZGl0cyA9IChjb3B5cmlnaHQ/OiB7XG4gIGNyZWF0b3JzPzogQXV0aG9yW107XG4gIHJpZ2h0c2hvbGRlcnM/OiBBdXRob3JbXTtcbiAgcHJvY2Vzc29ycz86IEF1dGhvcltdO1xufSkgPT4ge1xuICByZXR1cm4ge1xuICAgIGNyZWF0b3JzOiBjb3B5cmlnaHQ/LmNyZWF0b3JzID8/IFtdLFxuICAgIHJpZ2h0c2hvbGRlcnM6IGNvcHlyaWdodD8ucmlnaHRzaG9sZGVycyA/PyBbXSxcbiAgICBwcm9jZXNzb3JzOiBjb3B5cmlnaHQ/LnByb2Nlc3NvcnMgPz8gW10sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZXJyb3JTdmdTcmMgPSBgZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnIGZpbGw9JyUyMzhBODg4OCcgaGVpZ2h0PSc0MDAnIHZpZXdCb3g9JzAgMCAyNCAxMicgd2lkdGg9JzEwMCUyNScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBzdHlsZT0nYmFja2dyb3VuZC1jb2xvcjogJTIzRUZGMEYyJyUzRSUzQ3BhdGggZD0nTTAgMGgyNHYyNEgwVjB6JyBmaWxsPSdub25lJy8lM0UlM0NwYXRoIHRyYW5zZm9ybT0nc2NhbGUoMC4zKSB0cmFuc2xhdGUoMjgsIDguNSknIGQ9J00xMSAxNWgydjJoLTJ6bTAtOGgydjZoLTJ6bS45OS01QzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6Jy8lM0UlM0Mvc3ZnJTNFYDtcbmNvbnN0IGlzU21hbGwgPSAoc2l6ZT86IHN0cmluZyk6IHNpemUgaXMgXCJ4c21hbGxcIiB8IFwic21hbGxcIiA9PiBzaXplID09PSBcInhzbWFsbFwiIHx8IHNpemUgPT09IFwic21hbGxcIjtcblxuY29uc3QgaXNBbGlnbiA9IChhbGlnbj86IHN0cmluZyk6IGFsaWduIGlzIFwibGVmdFwiIHwgXCJyaWdodFwiID0+IGFsaWduID09PSBcImxlZnRcIiB8fCBhbGlnbiA9PT0gXCJyaWdodFwiO1xuXG5jb25zdCBnZXRGaWd1cmVUeXBlID0gKHNpemU/OiBzdHJpbmcsIGFsaWduPzogc3RyaW5nKTogRmlndXJlVHlwZSA9PiB7XG4gIGlmIChzaXplICYmIGlzU21hbGwoc2l6ZSkgJiYgYWxpZ24gJiYgaXNBbGlnbihhbGlnbikpIHtcbiAgICByZXR1cm4gYCR7c2l6ZX0tJHthbGlnbn1gO1xuICB9XG4gIGlmIChzaXplICYmIGlzU21hbGwoc2l6ZSkgJiYgIWFsaWduKSB7XG4gICAgcmV0dXJuIHNpemUgYXMgRmlndXJlVHlwZTtcbiAgfVxuICBpZiAoYWxpZ24gJiYgaXNBbGlnbihhbGlnbikpIHtcbiAgICByZXR1cm4gYWxpZ247XG4gIH1cbiAgcmV0dXJuIFwiZnVsbFwiO1xufTtcblxuY29uc3QgZ2V0U2l6ZXMgPSAoc2l6ZT86IHN0cmluZywgYWxpZ24/OiBzdHJpbmcpID0+IHtcbiAgaWYgKGFsaWduICYmIHNpemUgPT09IFwiZnVsbFwiKSB7XG4gICAgcmV0dXJuIFwiKG1pbi13aWR0aDogMTAyNHB4KSA1MTJweCwgKG1pbi13aWR0aDogNzY4cHgpIDM1MHB4LCAxMDB2d1wiO1xuICB9XG4gIGlmIChhbGlnbiAmJiBzaXplID09PSBcInNtYWxsXCIpIHtcbiAgICByZXR1cm4gXCIobWluLXdpZHRoOiAxMDI0cHgpIDM1MHB4LCAobWluLXdpZHRoOiA3NjhweCkgMTgwcHgsIDEwMHZ3XCI7XG4gIH1cbiAgaWYgKGFsaWduICYmIHNpemUgPT09IFwieHNtYWxsXCIpIHtcbiAgICByZXR1cm4gXCIobWluLXdpZHRoOiAxMDI0cHgpIDE4MHB4LCAobWluLXdpZHRoOiA3NjhweCkgMTgwcHgsIDEwMHZ3XCI7XG4gIH1cbiAgcmV0dXJuIFwiKG1pbi13aWR0aDogMTAyNHB4KSAxMDI0cHgsIDEwMHZ3XCI7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rm9jYWxQb2ludCA9IChkYXRhOiBJbWFnZUVtYmVkRGF0YSkgPT4ge1xuICBjb25zdCBmb2NhbFggPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLmZvY2FsWCA/PyBcIlwiKTtcbiAgY29uc3QgZm9jYWxZID0gTnVtYmVyLnBhcnNlRmxvYXQoZGF0YS5mb2NhbFkgPz8gXCJcIik7XG4gIGlmICghTnVtYmVyLmlzTmFOKGZvY2FsWCkgJiYgIU51bWJlci5pc05hTihmb2NhbFkpKSB7XG4gICAgcmV0dXJuIHsgeDogZm9jYWxYLCB5OiBmb2NhbFkgfTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENyb3AgPSAoZGF0YTogSW1hZ2VFbWJlZERhdGEpID0+IHtcbiAgY29uc3QgbG93ZXJSaWdodFggPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLmxvd2VyUmlnaHRYID8/IFwiXCIpO1xuICBjb25zdCBsb3dlclJpZ2h0WSA9IE51bWJlci5wYXJzZUZsb2F0KGRhdGEubG93ZXJSaWdodFkgPz8gXCJcIik7XG4gIGNvbnN0IHVwcGVyTGVmdFggPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLnVwcGVyTGVmdFggPz8gXCJcIik7XG4gIGNvbnN0IHVwcGVyTGVmdFkgPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLnVwcGVyTGVmdFkgPz8gXCJcIik7XG4gIGlmIChcbiAgICAhTnVtYmVyLmlzTmFOKGxvd2VyUmlnaHRYKSAmJlxuICAgICFOdW1iZXIuaXNOYU4obG93ZXJSaWdodFkpICYmXG4gICAgIU51bWJlci5pc05hTih1cHBlckxlZnRYKSAmJlxuICAgICFOdW1iZXIuaXNOYU4odXBwZXJMZWZ0WSlcbiAgKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0WDogbG93ZXJSaWdodFgsXG4gICAgICBzdGFydFk6IGxvd2VyUmlnaHRZLFxuICAgICAgZW5kWDogdXBwZXJMZWZ0WCxcbiAgICAgIGVuZFk6IHVwcGVyTGVmdFksXG4gICAgfTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuY29uc3QgZXhwYW5kZWRTaXplcyA9IFwiKG1pbi13aWR0aDogMTAyNHB4KSAxMDI0cHgsIDEwMHZ3XCI7XG5cbmNvbnN0IFN0eWxlZEZpZ3VyZSA9IHN0eWxlZChGaWd1cmUpYFxuICAmOmhvdmVyIHtcbiAgICBbZGF0YS1ieWxpbmUtYnV0dG9uXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAke2NvbG9ycy53aGl0ZX07XG4gICAgfVxuICAgIGJ1dHRvbltkYXRhLWV4cGFuZGVkXSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gICAgfVxuICB9XG4gIGJ1dHRvbltkYXRhLWV4cGFuZGVkPVwidHJ1ZVwiXSB7XG4gICAgc3ZnIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgfVxuICB9XG4gICZbZGF0YS1mbG9hdD1cInJpZ2h0XCJdIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbiAgJltkYXRhLWZsb2F0PVwibGVmdFwiXSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbmA7XG5cbmNvbnN0IEltYWdlRW1iZWQgPSAoeyBlbWJlZCwgcHJldmlld0FsdCwgaW5HcmlkLCBsYW5nLCByZW5kZXJDb250ZXh0ID0gXCJhcnRpY2xlXCIsIGNoaWxkcmVuIH06IFByb3BzKSA9PiB7XG4gIGNvbnN0IFtpc0J5bGluZUhpZGRlbiwgc2V0SXNCeWxpbmVIaWRkZW5dID0gdXNlU3RhdGUoaGlkZUJ5bGluZShlbWJlZC5lbWJlZERhdGEpKTtcbiAgY29uc3QgW2ltYWdlU2l6ZXMsIHNldEltYWdlU2l6ZXNdID0gdXNlU3RhdGU8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAvLyBGdWxsLXNpemUgZmlndXJlcyBhdXRvbWF0aWNhbGx5IGdldCBhIG1hcmdpbiBvZiB7c3BhY2luZy5ub3JtYWx9IG9uIGl0cyB5LWF4aXMgaWYgYSBmbG9hdCBpcyBub3Qgc2V0IChvciBpZiBmbG9hdCBpcyBhbiBlbXB0eSBzdHJpbmcpLlxuICAvLyBUaGlzIGFkZHMgc29tZSBtYXJnaW4gdG8gbm9ybWFsIGZpZ3VyZXMgd2l0aGluIGFuIGFydGljbGUsIGJ1dCBzaG91bGQgbm90IGhhcHBlbiBmb3IgZmlndXJlcyBpbiBhIGdyaWQuXG4gIGNvbnN0IFtmbG9hdEF0dHIsIHNldEZsb2F0QXR0cl0gPSB1c2VTdGF0ZTx7IFwiZGF0YS1mbG9hdFwiPzogc3RyaW5nIH0+KCgpID0+XG4gICAgaW5HcmlkICYmICFlbWJlZC5lbWJlZERhdGEuYWxpZ24gPyB7fSA6IHsgXCJkYXRhLWZsb2F0XCI6IGVtYmVkLmVtYmVkRGF0YS5hbGlnbiB9LFxuICApO1xuXG4gIGNvbnN0IHBhcnNlZERlc2NyaXB0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGVtYmVkLmVtYmVkRGF0YS5jYXB0aW9uIHx8IHJlbmRlckNvbnRleHQgPT09IFwiYXJ0aWNsZVwiKSB7XG4gICAgICByZXR1cm4gZW1iZWQuZW1iZWREYXRhLmNhcHRpb24gPyBwYXJzZShlbWJlZC5lbWJlZERhdGEuY2FwdGlvbikgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmIChlbWJlZC5zdGF0dXMgPT09IFwic3VjY2Vzc1wiICYmIGVtYmVkLmRhdGEuY2FwdGlvbi5jYXB0aW9uKSB7XG4gICAgICByZXR1cm4gcGFyc2UoZW1iZWQuZGF0YS5jYXB0aW9uLmNhcHRpb24pO1xuICAgIH1cbiAgfSwgW2VtYmVkLCByZW5kZXJDb250ZXh0XSk7XG5cbiAgaWYgKGVtYmVkLnN0YXR1cyA9PT0gXCJlcnJvclwiKSB7XG4gICAgY29uc3QgeyBhbGlnbiwgc2l6ZSB9ID0gZW1iZWQuZW1iZWREYXRhO1xuICAgIGNvbnN0IGZpZ3VyZVR5cGUgPSBnZXRGaWd1cmVUeXBlKHNpemUsIGFsaWduKTtcbiAgICByZXR1cm4gPEVtYmVkRXJyb3JQbGFjZWhvbGRlciB0eXBlPXtcImltYWdlXCJ9IGZpZ3VyZVR5cGU9e2ZpZ3VyZVR5cGV9IC8+O1xuICB9XG5cbiAgY29uc3QgeyBkYXRhLCBlbWJlZERhdGEgfSA9IGVtYmVkO1xuXG4gIGNvbnN0IGFsdFRleHQgPSBlbWJlZERhdGEuYWx0IHx8IFwiXCI7XG5cbiAgY29uc3QgZmlndXJlVHlwZSA9IGdldEZpZ3VyZVR5cGUoZW1iZWREYXRhLnNpemUsIGVtYmVkRGF0YS5hbGlnbik7XG4gIGNvbnN0IHNpemVzID0gZ2V0U2l6ZXMoZW1iZWREYXRhLnNpemUsIGVtYmVkRGF0YS5hbGlnbik7XG5cbiAgY29uc3QgZm9jYWxQb2ludCA9IGdldEZvY2FsUG9pbnQoZW1iZWREYXRhKTtcbiAgY29uc3QgY3JvcCA9IGdldENyb3AoZW1iZWREYXRhKTtcblxuICBjb25zdCBpc0NvcHlyaWdodGVkID0gZGF0YS5jb3B5cmlnaHQubGljZW5zZS5saWNlbnNlLnRvTG93ZXJDYXNlKCkgPT09IENPUFlSSUdIVEVEO1xuXG4gIGNvbnN0IHRvZ2dsZUltYWdlU2l6ZSA9ICgpID0+IHtcbiAgICBpZiAoIWltYWdlU2l6ZXMpIHtcbiAgICAgIHNldEltYWdlU2l6ZXMoZXhwYW5kZWRTaXplcyk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2V0RmxvYXRBdHRyKHt9KTtcbiAgICAgIH0sIDQwMCk7IC8vUmVtb3ZpbmcgdGhlIGZsb2F0IHBhcmFtZXRlciB0b28gcXVpY2tseSBjYXVzZXMgdGhlIGltYWdlIHRvIGJlIHJlc2l6ZWQgZnJvbSBsZWZ0IHJlZ2FyZGxlc3NcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0SW1hZ2VTaXplcyh1bmRlZmluZWQpO1xuICAgICAgc2V0RmxvYXRBdHRyKHsgXCJkYXRhLWZsb2F0XCI6IGVtYmVkRGF0YS5hbGlnbiB9KTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkRmlndXJlIHR5cGU9e2ltYWdlU2l6ZXMgPyB1bmRlZmluZWQgOiBmaWd1cmVUeXBlfSB7Li4uZmxvYXRBdHRyfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDxJbWFnZVxuICAgICAgICBmb2NhbFBvaW50PXtmb2NhbFBvaW50fVxuICAgICAgICBjb250ZW50VHlwZT17ZGF0YS5pbWFnZS5jb250ZW50VHlwZX1cbiAgICAgICAgY3JvcD17Y3JvcH1cbiAgICAgICAgc2l6ZXM9e2ltYWdlU2l6ZXMgPz8gc2l6ZXN9XG4gICAgICAgIGFsdD17YWx0VGV4dH1cbiAgICAgICAgc3JjPXtkYXRhLmltYWdlLmltYWdlVXJsfVxuICAgICAgICBib3JkZXI9e2VtYmVkRGF0YS5ib3JkZXJ9XG4gICAgICAgIG9uRXhwYW5kPXtpc0FsaWduKGVtYmVkRGF0YS5hbGlnbikgPyB0b2dnbGVJbWFnZVNpemUgOiB1bmRlZmluZWR9XG4gICAgICAgIGV4cGFuZGVkPXshIWltYWdlU2l6ZXN9XG4gICAgICAgIGV4cGFuZEJ1dHRvbj17XG4gICAgICAgICAgPEV4cGFuZEJ1dHRvblxuICAgICAgICAgICAgZW1iZWREYXRhPXtlbWJlZERhdGF9XG4gICAgICAgICAgICBleHBhbmRlZD17ISFpbWFnZVNpemVzfVxuICAgICAgICAgICAgYWxpZ249e2VtYmVkRGF0YS5hbGlnbn1cbiAgICAgICAgICAgIGJ5bGluZUhpZGRlbj17aXNCeWxpbmVIaWRkZW59XG4gICAgICAgICAgICBvbkV4cGFuZD17dG9nZ2xlSW1hZ2VTaXplfVxuICAgICAgICAgICAgb25IaWRlQnlsaW5lPXsoKSA9PiBzZXRJc0J5bGluZUhpZGRlbigocCkgPT4gIXApfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAgbGFuZz17bGFuZ31cbiAgICAgIC8+XG4gICAgICB7aXNCeWxpbmVIaWRkZW4gPyBudWxsIDogKFxuICAgICAgICA8RW1iZWRCeWxpbmVcbiAgICAgICAgICB0eXBlPVwiaW1hZ2VcIlxuICAgICAgICAgIGNvcHlyaWdodD17ZGF0YS5jb3B5cmlnaHR9XG4gICAgICAgICAgZGVzY3JpcHRpb249e3BhcnNlZERlc2NyaXB0aW9ufVxuICAgICAgICAgIHZpc2libGVBbHQ9e3ByZXZpZXdBbHQgPyBlbWJlZC5lbWJlZERhdGEuYWx0IDogXCJcIn1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9TdHlsZWRGaWd1cmU+XG4gICk7XG59O1xuXG5jb25zdCBoaWRlQnlsaW5lID0gKGVtYmVkOiBJbWFnZUVtYmVkRGF0YSk6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gKCEhZW1iZWQuc2l6ZSAmJiBlbWJlZC5zaXplLmVuZHNXaXRoKFwiLWhpZGUtYnlsaW5lXCIpKSB8fCBlbWJlZC5oaWRlQnlsaW5lID09PSBcInRydWVcIjtcbn07XG5cbmludGVyZmFjZSBFeHBhbmRCdXR0b25Qcm9wcyB7XG4gIGVtYmVkRGF0YTogSW1hZ2VFbWJlZERhdGE7XG4gIGFsaWduPzogc3RyaW5nO1xuICBleHBhbmRlZDogYm9vbGVhbjtcbiAgYnlsaW5lSGlkZGVuOiBib29sZWFuO1xuICBvbkV4cGFuZDogTW91c2VFdmVudEhhbmRsZXI8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBvbkhpZGVCeWxpbmU6IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxCdXR0b25FbGVtZW50Pjtcbn1cblxuY29uc3QgQnlsaW5lQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBhZGRpbmc6ICR7c3BhY2luZy5zbWFsbH07XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2Utb3V0O1xuICBiYWNrZ3JvdW5kOiAke2NvbG9ycy5iYWNrZ3JvdW5kLmRlZmF1bHR9MjA7XG4gIGJvcmRlcjogMDtcblxuICBzdmcge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGVhc2Utb3V0O1xuICAgIHdpZHRoOiAke3NwYWNpbmcubm9ybWFsfTtcbiAgICBoZWlnaHQ6ICR7c3BhY2luZy5ub3JtYWx9O1xuICAgIGZpbGw6ICR7Y29sb3JzLmJyYW5kLnByaW1hcnl9O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBhZGRpbmc6IDA7XG4gIHRvcDogJHtzcGFjaW5nLnNtYWxsfTtcbiAgcmlnaHQ6ICR7c3BhY2luZy5zbWFsbH07XG4gIHdpZHRoOiAke3NwYWNpbmcubm9ybWFsfTtcbiAgaGVpZ2h0OiAke3NwYWNpbmcubm9ybWFsfTtcbiAgYm9yZGVyOiAycHggc29saWQgJHtjb2xvcnMud2hpdGV9O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLW91dDtcbiAgY29sb3I6ICR7Y29sb3JzLndoaXRlfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnMuYnJhbmQucHJpbWFyeX07XG4gIGJvcmRlci1yYWRpdXM6ICR7bWlzYy5ib3JkZXJSYWRpdXNMYXJnZX07XG4gIHN2ZyB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZS1vdXQ7XG4gICAgaGVpZ2h0OiAke3NwYWNpbmcubnNtYWxsfTtcbiAgICB3aWR0aDogJHtzcGFjaW5nLm5zbWFsbH07XG4gIH1cbmA7XG5cbmNvbnN0IEV4cGFuZEJ1dHRvbiA9ICh7IGFsaWduLCBlbWJlZERhdGEsIGV4cGFuZGVkLCBieWxpbmVIaWRkZW4sIG9uRXhwYW5kLCBvbkhpZGVCeWxpbmUgfTogRXhwYW5kQnV0dG9uUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICBpZiAoaXNBbGlnbihhbGlnbikpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgYXJpYS1sYWJlbD17dChgbGljZW5zZS5pbWFnZXMuaXRlbUltYWdlLnpvb20ke2V4cGFuZGVkID8gXCJPdXRcIiA6IFwiXCJ9SW1hZ2VCdXR0b25MYWJlbGApfVxuICAgICAgICBvbkNsaWNrPXtvbkV4cGFuZH1cbiAgICAgICAgZGF0YS1leHBhbmRlZD17ZXhwYW5kZWR9XG4gICAgICA+XG4gICAgICAgIDxQbHVzIC8+XG4gICAgICA8L1N0eWxlZEJ1dHRvbj5cbiAgICApO1xuICB9XG4gIGlmIChoaWRlQnlsaW5lKGVtYmVkRGF0YSkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPEJ5bGluZUJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgZGF0YS1ieWxpbmUtYnV0dG9uPVwiXCJcbiAgICAgICAgYXJpYS1sYWJlbD17dChgbGljZW5zZS5pbWFnZXMuaXRlbUltYWdlLiR7YnlsaW5lSGlkZGVuID8gXCJleHBhbmRCeWxpbmVcIiA6IFwibWluaW1pemVCeWxpbmVcIn1gKX1cbiAgICAgICAgb25DbGljaz17b25IaWRlQnlsaW5lfVxuICAgICAgPlxuICAgICAgICB7YnlsaW5lSGlkZGVuID8gPENoZXZyb25Eb3duIC8+IDogPENoZXZyb25VcCAvPn1cbiAgICAgIDwvQnlsaW5lQnV0dG9uPlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBJbWFnZUVtYmVkO1xuIl19 */"));
186
- const StyledButton = /*#__PURE__*/_styled("button", {
187
- target: "ened8ka0",
188
- label: "StyledButton"
189
- })("display:flex;align-items:center;justify-content:center;cursor:pointer;position:absolute;padding:0;top:", spacing.small, ";right:", spacing.small, ";width:", spacing.normal, ";height:", spacing.normal, ";border:2px solid ", colors.white, ";transition:all 0.3s ease-out;color:", colors.white, ";background-color:", colors.brand.primary, ";border-radius:", misc.borderRadiusLarge, ";svg{transition:transform 0.4s ease-out;height:", spacing.nsmall, ";width:", spacing.nsmall, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkltYWdlRW1iZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRQa0MiLCJmaWxlIjoiSW1hZ2VFbWJlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMy1wcmVzZW50LCBORExBLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdQTHYzIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbi8qKiBAanN4SW1wb3J0U291cmNlIEBlbW90aW9uL3JlYWN0ICovXG5pbXBvcnQgcGFyc2UgZnJvbSBcImh0bWwtcmVhY3QtcGFyc2VyXCI7XG5pbXBvcnQgeyBNb3VzZUV2ZW50SGFuZGxlciwgUmVhY3ROb2RlLCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBjb2xvcnMsIG1pc2MsIHNwYWNpbmcgfSBmcm9tIFwiQG5kbGEvY29yZVwiO1xuaW1wb3J0IHsgUGx1cyB9IGZyb20gXCJAbmRsYS9pY29ucy9hY3Rpb25cIjtcbmltcG9ydCB7IENoZXZyb25Eb3duLCBDaGV2cm9uVXAgfSBmcm9tIFwiQG5kbGEvaWNvbnMvY29tbW9uXCI7XG5pbXBvcnQgeyBDT1BZUklHSFRFRCB9IGZyb20gXCJAbmRsYS9saWNlbnNlc1wiO1xuaW1wb3J0IHsgSW1hZ2VFbWJlZERhdGEsIEltYWdlTWV0YURhdGEgfSBmcm9tIFwiQG5kbGEvdHlwZXMtZW1iZWRcIjtcbmltcG9ydCBFbWJlZEVycm9yUGxhY2Vob2xkZXIgZnJvbSBcIi4vRW1iZWRFcnJvclBsYWNlaG9sZGVyXCI7XG5pbXBvcnQgeyBSZW5kZXJDb250ZXh0IH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IEZpZ3VyZSwgRmlndXJlVHlwZSB9IGZyb20gXCIuLi9GaWd1cmVcIjtcbmltcG9ydCBJbWFnZSBmcm9tIFwiLi4vSW1hZ2VcIjtcbmltcG9ydCB7IEVtYmVkQnlsaW5lIH0gZnJvbSBcIi4uL0xpY2Vuc2VCeWxpbmVcIjtcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgZW1iZWQ6IEltYWdlTWV0YURhdGE7XG4gIHByZXZpZXdBbHQ/OiBib29sZWFuO1xuICBpbkdyaWQ/OiBib29sZWFuO1xuICBsYW5nPzogc3RyaW5nO1xuICByZW5kZXJDb250ZXh0PzogUmVuZGVyQ29udGV4dDtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRMaWNlbnNlQ3JlZGl0cyA9IChjb3B5cmlnaHQ/OiB7XG4gIGNyZWF0b3JzPzogQXV0aG9yW107XG4gIHJpZ2h0c2hvbGRlcnM/OiBBdXRob3JbXTtcbiAgcHJvY2Vzc29ycz86IEF1dGhvcltdO1xufSkgPT4ge1xuICByZXR1cm4ge1xuICAgIGNyZWF0b3JzOiBjb3B5cmlnaHQ/LmNyZWF0b3JzID8/IFtdLFxuICAgIHJpZ2h0c2hvbGRlcnM6IGNvcHlyaWdodD8ucmlnaHRzaG9sZGVycyA/PyBbXSxcbiAgICBwcm9jZXNzb3JzOiBjb3B5cmlnaHQ/LnByb2Nlc3NvcnMgPz8gW10sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZXJyb3JTdmdTcmMgPSBgZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnIGZpbGw9JyUyMzhBODg4OCcgaGVpZ2h0PSc0MDAnIHZpZXdCb3g9JzAgMCAyNCAxMicgd2lkdGg9JzEwMCUyNScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBzdHlsZT0nYmFja2dyb3VuZC1jb2xvcjogJTIzRUZGMEYyJyUzRSUzQ3BhdGggZD0nTTAgMGgyNHYyNEgwVjB6JyBmaWxsPSdub25lJy8lM0UlM0NwYXRoIHRyYW5zZm9ybT0nc2NhbGUoMC4zKSB0cmFuc2xhdGUoMjgsIDguNSknIGQ9J00xMSAxNWgydjJoLTJ6bTAtOGgydjZoLTJ6bS45OS01QzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6Jy8lM0UlM0Mvc3ZnJTNFYDtcbmNvbnN0IGlzU21hbGwgPSAoc2l6ZT86IHN0cmluZyk6IHNpemUgaXMgXCJ4c21hbGxcIiB8IFwic21hbGxcIiA9PiBzaXplID09PSBcInhzbWFsbFwiIHx8IHNpemUgPT09IFwic21hbGxcIjtcblxuY29uc3QgaXNBbGlnbiA9IChhbGlnbj86IHN0cmluZyk6IGFsaWduIGlzIFwibGVmdFwiIHwgXCJyaWdodFwiID0+IGFsaWduID09PSBcImxlZnRcIiB8fCBhbGlnbiA9PT0gXCJyaWdodFwiO1xuXG5jb25zdCBnZXRGaWd1cmVUeXBlID0gKHNpemU/OiBzdHJpbmcsIGFsaWduPzogc3RyaW5nKTogRmlndXJlVHlwZSA9PiB7XG4gIGlmIChzaXplICYmIGlzU21hbGwoc2l6ZSkgJiYgYWxpZ24gJiYgaXNBbGlnbihhbGlnbikpIHtcbiAgICByZXR1cm4gYCR7c2l6ZX0tJHthbGlnbn1gO1xuICB9XG4gIGlmIChzaXplICYmIGlzU21hbGwoc2l6ZSkgJiYgIWFsaWduKSB7XG4gICAgcmV0dXJuIHNpemUgYXMgRmlndXJlVHlwZTtcbiAgfVxuICBpZiAoYWxpZ24gJiYgaXNBbGlnbihhbGlnbikpIHtcbiAgICByZXR1cm4gYWxpZ247XG4gIH1cbiAgcmV0dXJuIFwiZnVsbFwiO1xufTtcblxuY29uc3QgZ2V0U2l6ZXMgPSAoc2l6ZT86IHN0cmluZywgYWxpZ24/OiBzdHJpbmcpID0+IHtcbiAgaWYgKGFsaWduICYmIHNpemUgPT09IFwiZnVsbFwiKSB7XG4gICAgcmV0dXJuIFwiKG1pbi13aWR0aDogMTAyNHB4KSA1MTJweCwgKG1pbi13aWR0aDogNzY4cHgpIDM1MHB4LCAxMDB2d1wiO1xuICB9XG4gIGlmIChhbGlnbiAmJiBzaXplID09PSBcInNtYWxsXCIpIHtcbiAgICByZXR1cm4gXCIobWluLXdpZHRoOiAxMDI0cHgpIDM1MHB4LCAobWluLXdpZHRoOiA3NjhweCkgMTgwcHgsIDEwMHZ3XCI7XG4gIH1cbiAgaWYgKGFsaWduICYmIHNpemUgPT09IFwieHNtYWxsXCIpIHtcbiAgICByZXR1cm4gXCIobWluLXdpZHRoOiAxMDI0cHgpIDE4MHB4LCAobWluLXdpZHRoOiA3NjhweCkgMTgwcHgsIDEwMHZ3XCI7XG4gIH1cbiAgcmV0dXJuIFwiKG1pbi13aWR0aDogMTAyNHB4KSAxMDI0cHgsIDEwMHZ3XCI7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rm9jYWxQb2ludCA9IChkYXRhOiBJbWFnZUVtYmVkRGF0YSkgPT4ge1xuICBjb25zdCBmb2NhbFggPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLmZvY2FsWCA/PyBcIlwiKTtcbiAgY29uc3QgZm9jYWxZID0gTnVtYmVyLnBhcnNlRmxvYXQoZGF0YS5mb2NhbFkgPz8gXCJcIik7XG4gIGlmICghTnVtYmVyLmlzTmFOKGZvY2FsWCkgJiYgIU51bWJlci5pc05hTihmb2NhbFkpKSB7XG4gICAgcmV0dXJuIHsgeDogZm9jYWxYLCB5OiBmb2NhbFkgfTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENyb3AgPSAoZGF0YTogSW1hZ2VFbWJlZERhdGEpID0+IHtcbiAgY29uc3QgbG93ZXJSaWdodFggPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLmxvd2VyUmlnaHRYID8/IFwiXCIpO1xuICBjb25zdCBsb3dlclJpZ2h0WSA9IE51bWJlci5wYXJzZUZsb2F0KGRhdGEubG93ZXJSaWdodFkgPz8gXCJcIik7XG4gIGNvbnN0IHVwcGVyTGVmdFggPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLnVwcGVyTGVmdFggPz8gXCJcIik7XG4gIGNvbnN0IHVwcGVyTGVmdFkgPSBOdW1iZXIucGFyc2VGbG9hdChkYXRhLnVwcGVyTGVmdFkgPz8gXCJcIik7XG4gIGlmIChcbiAgICAhTnVtYmVyLmlzTmFOKGxvd2VyUmlnaHRYKSAmJlxuICAgICFOdW1iZXIuaXNOYU4obG93ZXJSaWdodFkpICYmXG4gICAgIU51bWJlci5pc05hTih1cHBlckxlZnRYKSAmJlxuICAgICFOdW1iZXIuaXNOYU4odXBwZXJMZWZ0WSlcbiAgKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0WDogbG93ZXJSaWdodFgsXG4gICAgICBzdGFydFk6IGxvd2VyUmlnaHRZLFxuICAgICAgZW5kWDogdXBwZXJMZWZ0WCxcbiAgICAgIGVuZFk6IHVwcGVyTGVmdFksXG4gICAgfTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuY29uc3QgZXhwYW5kZWRTaXplcyA9IFwiKG1pbi13aWR0aDogMTAyNHB4KSAxMDI0cHgsIDEwMHZ3XCI7XG5cbmNvbnN0IFN0eWxlZEZpZ3VyZSA9IHN0eWxlZChGaWd1cmUpYFxuICAmOmhvdmVyIHtcbiAgICBbZGF0YS1ieWxpbmUtYnV0dG9uXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAke2NvbG9ycy53aGl0ZX07XG4gICAgfVxuICAgIGJ1dHRvbltkYXRhLWV4cGFuZGVkXSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gICAgfVxuICB9XG4gIGJ1dHRvbltkYXRhLWV4cGFuZGVkPVwidHJ1ZVwiXSB7XG4gICAgc3ZnIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgfVxuICB9XG4gICZbZGF0YS1mbG9hdD1cInJpZ2h0XCJdIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbiAgJltkYXRhLWZsb2F0PVwibGVmdFwiXSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbmA7XG5cbmNvbnN0IEltYWdlRW1iZWQgPSAoeyBlbWJlZCwgcHJldmlld0FsdCwgaW5HcmlkLCBsYW5nLCByZW5kZXJDb250ZXh0ID0gXCJhcnRpY2xlXCIsIGNoaWxkcmVuIH06IFByb3BzKSA9PiB7XG4gIGNvbnN0IFtpc0J5bGluZUhpZGRlbiwgc2V0SXNCeWxpbmVIaWRkZW5dID0gdXNlU3RhdGUoaGlkZUJ5bGluZShlbWJlZC5lbWJlZERhdGEpKTtcbiAgY29uc3QgW2ltYWdlU2l6ZXMsIHNldEltYWdlU2l6ZXNdID0gdXNlU3RhdGU8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAvLyBGdWxsLXNpemUgZmlndXJlcyBhdXRvbWF0aWNhbGx5IGdldCBhIG1hcmdpbiBvZiB7c3BhY2luZy5ub3JtYWx9IG9uIGl0cyB5LWF4aXMgaWYgYSBmbG9hdCBpcyBub3Qgc2V0IChvciBpZiBmbG9hdCBpcyBhbiBlbXB0eSBzdHJpbmcpLlxuICAvLyBUaGlzIGFkZHMgc29tZSBtYXJnaW4gdG8gbm9ybWFsIGZpZ3VyZXMgd2l0aGluIGFuIGFydGljbGUsIGJ1dCBzaG91bGQgbm90IGhhcHBlbiBmb3IgZmlndXJlcyBpbiBhIGdyaWQuXG4gIGNvbnN0IFtmbG9hdEF0dHIsIHNldEZsb2F0QXR0cl0gPSB1c2VTdGF0ZTx7IFwiZGF0YS1mbG9hdFwiPzogc3RyaW5nIH0+KCgpID0+XG4gICAgaW5HcmlkICYmICFlbWJlZC5lbWJlZERhdGEuYWxpZ24gPyB7fSA6IHsgXCJkYXRhLWZsb2F0XCI6IGVtYmVkLmVtYmVkRGF0YS5hbGlnbiB9LFxuICApO1xuXG4gIGNvbnN0IHBhcnNlZERlc2NyaXB0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGVtYmVkLmVtYmVkRGF0YS5jYXB0aW9uIHx8IHJlbmRlckNvbnRleHQgPT09IFwiYXJ0aWNsZVwiKSB7XG4gICAgICByZXR1cm4gZW1iZWQuZW1iZWREYXRhLmNhcHRpb24gPyBwYXJzZShlbWJlZC5lbWJlZERhdGEuY2FwdGlvbikgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmIChlbWJlZC5zdGF0dXMgPT09IFwic3VjY2Vzc1wiICYmIGVtYmVkLmRhdGEuY2FwdGlvbi5jYXB0aW9uKSB7XG4gICAgICByZXR1cm4gcGFyc2UoZW1iZWQuZGF0YS5jYXB0aW9uLmNhcHRpb24pO1xuICAgIH1cbiAgfSwgW2VtYmVkLCByZW5kZXJDb250ZXh0XSk7XG5cbiAgaWYgKGVtYmVkLnN0YXR1cyA9PT0gXCJlcnJvclwiKSB7XG4gICAgY29uc3QgeyBhbGlnbiwgc2l6ZSB9ID0gZW1iZWQuZW1iZWREYXRhO1xuICAgIGNvbnN0IGZpZ3VyZVR5cGUgPSBnZXRGaWd1cmVUeXBlKHNpemUsIGFsaWduKTtcbiAgICByZXR1cm4gPEVtYmVkRXJyb3JQbGFjZWhvbGRlciB0eXBlPXtcImltYWdlXCJ9IGZpZ3VyZVR5cGU9e2ZpZ3VyZVR5cGV9IC8+O1xuICB9XG5cbiAgY29uc3QgeyBkYXRhLCBlbWJlZERhdGEgfSA9IGVtYmVkO1xuXG4gIGNvbnN0IGFsdFRleHQgPSBlbWJlZERhdGEuYWx0IHx8IFwiXCI7XG5cbiAgY29uc3QgZmlndXJlVHlwZSA9IGdldEZpZ3VyZVR5cGUoZW1iZWREYXRhLnNpemUsIGVtYmVkRGF0YS5hbGlnbik7XG4gIGNvbnN0IHNpemVzID0gZ2V0U2l6ZXMoZW1iZWREYXRhLnNpemUsIGVtYmVkRGF0YS5hbGlnbik7XG5cbiAgY29uc3QgZm9jYWxQb2ludCA9IGdldEZvY2FsUG9pbnQoZW1iZWREYXRhKTtcbiAgY29uc3QgY3JvcCA9IGdldENyb3AoZW1iZWREYXRhKTtcblxuICBjb25zdCBpc0NvcHlyaWdodGVkID0gZGF0YS5jb3B5cmlnaHQubGljZW5zZS5saWNlbnNlLnRvTG93ZXJDYXNlKCkgPT09IENPUFlSSUdIVEVEO1xuXG4gIGNvbnN0IHRvZ2dsZUltYWdlU2l6ZSA9ICgpID0+IHtcbiAgICBpZiAoIWltYWdlU2l6ZXMpIHtcbiAgICAgIHNldEltYWdlU2l6ZXMoZXhwYW5kZWRTaXplcyk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2V0RmxvYXRBdHRyKHt9KTtcbiAgICAgIH0sIDQwMCk7IC8vUmVtb3ZpbmcgdGhlIGZsb2F0IHBhcmFtZXRlciB0b28gcXVpY2tseSBjYXVzZXMgdGhlIGltYWdlIHRvIGJlIHJlc2l6ZWQgZnJvbSBsZWZ0IHJlZ2FyZGxlc3NcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0SW1hZ2VTaXplcyh1bmRlZmluZWQpO1xuICAgICAgc2V0RmxvYXRBdHRyKHsgXCJkYXRhLWZsb2F0XCI6IGVtYmVkRGF0YS5hbGlnbiB9KTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkRmlndXJlIHR5cGU9e2ltYWdlU2l6ZXMgPyB1bmRlZmluZWQgOiBmaWd1cmVUeXBlfSB7Li4uZmxvYXRBdHRyfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDxJbWFnZVxuICAgICAgICBmb2NhbFBvaW50PXtmb2NhbFBvaW50fVxuICAgICAgICBjb250ZW50VHlwZT17ZGF0YS5pbWFnZS5jb250ZW50VHlwZX1cbiAgICAgICAgY3JvcD17Y3JvcH1cbiAgICAgICAgc2l6ZXM9e2ltYWdlU2l6ZXMgPz8gc2l6ZXN9XG4gICAgICAgIGFsdD17YWx0VGV4dH1cbiAgICAgICAgc3JjPXtkYXRhLmltYWdlLmltYWdlVXJsfVxuICAgICAgICBib3JkZXI9e2VtYmVkRGF0YS5ib3JkZXJ9XG4gICAgICAgIG9uRXhwYW5kPXtpc0FsaWduKGVtYmVkRGF0YS5hbGlnbikgPyB0b2dnbGVJbWFnZVNpemUgOiB1bmRlZmluZWR9XG4gICAgICAgIGV4cGFuZGVkPXshIWltYWdlU2l6ZXN9XG4gICAgICAgIGV4cGFuZEJ1dHRvbj17XG4gICAgICAgICAgPEV4cGFuZEJ1dHRvblxuICAgICAgICAgICAgZW1iZWREYXRhPXtlbWJlZERhdGF9XG4gICAgICAgICAgICBleHBhbmRlZD17ISFpbWFnZVNpemVzfVxuICAgICAgICAgICAgYWxpZ249e2VtYmVkRGF0YS5hbGlnbn1cbiAgICAgICAgICAgIGJ5bGluZUhpZGRlbj17aXNCeWxpbmVIaWRkZW59XG4gICAgICAgICAgICBvbkV4cGFuZD17dG9nZ2xlSW1hZ2VTaXplfVxuICAgICAgICAgICAgb25IaWRlQnlsaW5lPXsoKSA9PiBzZXRJc0J5bGluZUhpZGRlbigocCkgPT4gIXApfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAgbGFuZz17bGFuZ31cbiAgICAgIC8+XG4gICAgICB7aXNCeWxpbmVIaWRkZW4gPyBudWxsIDogKFxuICAgICAgICA8RW1iZWRCeWxpbmVcbiAgICAgICAgICB0eXBlPVwiaW1hZ2VcIlxuICAgICAgICAgIGNvcHlyaWdodD17ZGF0YS5jb3B5cmlnaHR9XG4gICAgICAgICAgZGVzY3JpcHRpb249e3BhcnNlZERlc2NyaXB0aW9ufVxuICAgICAgICAgIHZpc2libGVBbHQ9e3ByZXZpZXdBbHQgPyBlbWJlZC5lbWJlZERhdGEuYWx0IDogXCJcIn1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9TdHlsZWRGaWd1cmU+XG4gICk7XG59O1xuXG5jb25zdCBoaWRlQnlsaW5lID0gKGVtYmVkOiBJbWFnZUVtYmVkRGF0YSk6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gKCEhZW1iZWQuc2l6ZSAmJiBlbWJlZC5zaXplLmVuZHNXaXRoKFwiLWhpZGUtYnlsaW5lXCIpKSB8fCBlbWJlZC5oaWRlQnlsaW5lID09PSBcInRydWVcIjtcbn07XG5cbmludGVyZmFjZSBFeHBhbmRCdXR0b25Qcm9wcyB7XG4gIGVtYmVkRGF0YTogSW1hZ2VFbWJlZERhdGE7XG4gIGFsaWduPzogc3RyaW5nO1xuICBleHBhbmRlZDogYm9vbGVhbjtcbiAgYnlsaW5lSGlkZGVuOiBib29sZWFuO1xuICBvbkV4cGFuZDogTW91c2VFdmVudEhhbmRsZXI8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBvbkhpZGVCeWxpbmU6IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxCdXR0b25FbGVtZW50Pjtcbn1cblxuY29uc3QgQnlsaW5lQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBhZGRpbmc6ICR7c3BhY2luZy5zbWFsbH07XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2Utb3V0O1xuICBiYWNrZ3JvdW5kOiAke2NvbG9ycy5iYWNrZ3JvdW5kLmRlZmF1bHR9MjA7XG4gIGJvcmRlcjogMDtcblxuICBzdmcge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGVhc2Utb3V0O1xuICAgIHdpZHRoOiAke3NwYWNpbmcubm9ybWFsfTtcbiAgICBoZWlnaHQ6ICR7c3BhY2luZy5ub3JtYWx9O1xuICAgIGZpbGw6ICR7Y29sb3JzLmJyYW5kLnByaW1hcnl9O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBhZGRpbmc6IDA7XG4gIHRvcDogJHtzcGFjaW5nLnNtYWxsfTtcbiAgcmlnaHQ6ICR7c3BhY2luZy5zbWFsbH07XG4gIHdpZHRoOiAke3NwYWNpbmcubm9ybWFsfTtcbiAgaGVpZ2h0OiAke3NwYWNpbmcubm9ybWFsfTtcbiAgYm9yZGVyOiAycHggc29saWQgJHtjb2xvcnMud2hpdGV9O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLW91dDtcbiAgY29sb3I6ICR7Y29sb3JzLndoaXRlfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnMuYnJhbmQucHJpbWFyeX07XG4gIGJvcmRlci1yYWRpdXM6ICR7bWlzYy5ib3JkZXJSYWRpdXNMYXJnZX07XG4gIHN2ZyB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZS1vdXQ7XG4gICAgaGVpZ2h0OiAke3NwYWNpbmcubnNtYWxsfTtcbiAgICB3aWR0aDogJHtzcGFjaW5nLm5zbWFsbH07XG4gIH1cbmA7XG5cbmNvbnN0IEV4cGFuZEJ1dHRvbiA9ICh7IGFsaWduLCBlbWJlZERhdGEsIGV4cGFuZGVkLCBieWxpbmVIaWRkZW4sIG9uRXhwYW5kLCBvbkhpZGVCeWxpbmUgfTogRXhwYW5kQnV0dG9uUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICBpZiAoaXNBbGlnbihhbGlnbikpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgYXJpYS1sYWJlbD17dChgbGljZW5zZS5pbWFnZXMuaXRlbUltYWdlLnpvb20ke2V4cGFuZGVkID8gXCJPdXRcIiA6IFwiXCJ9SW1hZ2VCdXR0b25MYWJlbGApfVxuICAgICAgICBvbkNsaWNrPXtvbkV4cGFuZH1cbiAgICAgICAgZGF0YS1leHBhbmRlZD17ZXhwYW5kZWR9XG4gICAgICA+XG4gICAgICAgIDxQbHVzIC8+XG4gICAgICA8L1N0eWxlZEJ1dHRvbj5cbiAgICApO1xuICB9XG4gIGlmIChoaWRlQnlsaW5lKGVtYmVkRGF0YSkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPEJ5bGluZUJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgZGF0YS1ieWxpbmUtYnV0dG9uPVwiXCJcbiAgICAgICAgYXJpYS1sYWJlbD17dChgbGljZW5zZS5pbWFnZXMuaXRlbUltYWdlLiR7YnlsaW5lSGlkZGVuID8gXCJleHBhbmRCeWxpbmVcIiA6IFwibWluaW1pemVCeWxpbmVcIn1gKX1cbiAgICAgICAgb25DbGljaz17b25IaWRlQnlsaW5lfVxuICAgICAgPlxuICAgICAgICB7YnlsaW5lSGlkZGVuID8gPENoZXZyb25Eb3duIC8+IDogPENoZXZyb25VcCAvPn1cbiAgICAgIDwvQnlsaW5lQnV0dG9uPlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBJbWFnZUVtYmVkO1xuIl19 */"));
190
- const ExpandButton = _ref2 => {
191
- let {
192
- align,
193
- embedData,
194
- expanded,
195
- bylineHidden,
196
- onExpand,
197
- onHideByline
198
- } = _ref2;
199
- const {
200
- t
201
- } = useTranslation();
202
- if (isAlign(align)) {
203
- return _jsx(StyledButton, {
204
- type: "button",
205
- "aria-label": t("license.images.itemImage.zoom".concat(expanded ? "Out" : "", "ImageButtonLabel")),
206
- onClick: onExpand,
207
- "data-expanded": expanded,
208
- children: _jsx(Plus, {})
209
- });
210
- }
211
- if (hideByline(embedData)) {
212
- return _jsx(BylineButton, {
213
- type: "button",
214
- "data-byline-button": "",
215
- "aria-label": t("license.images.itemImage.".concat(bylineHidden ? "expandByline" : "minimizeByline")),
216
- onClick: onHideByline,
217
- children: bylineHidden ? _jsx(ChevronDown, {}) : _jsx(ChevronUp, {})
218
- });
219
- }
220
- return null;
221
- };
222
267
  export default ImageEmbed;
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Copyright (c) 2024-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 { forwardRef, useCallback, useRef } from "react";
10
+ import { styled } from "@ndla/styled-system/jsx";
11
+ import { composeRefs } from "@ndla/util";
12
+ import { jsx as _jsx } from "@emotion/react/jsx-runtime";
13
+ const StyledSpan = styled("span", {
14
+ base: {
15
+ position: "relative",
16
+ overflow: "visible",
17
+ borderBottom: "1px solid",
18
+ borderStyle: "dashed",
19
+ borderColor: "stroke.hover",
20
+ paddingBlock: "4xsmall",
21
+ paddingInline: "4xsmall",
22
+ width: "fit-content",
23
+ cursor: "pointer",
24
+ _hover: {
25
+ borderColor: "text.link",
26
+ background: "surface.actionSubtle.hover"
27
+ },
28
+ _active: {
29
+ borderColor: "text.link",
30
+ background: "surface.actionSubtle.active"
31
+ },
32
+ // The global focus ring forces the border-radius to be xsmall, causing the dashed border to be cut off. This is a workaround.
33
+ _focusVisible: {
34
+ outline: "none",
35
+ borderRadius: "0",
36
+ _after: {
37
+ content: '""',
38
+ position: "absolute",
39
+ inset: "0",
40
+ outline: "3px",
41
+ borderRadius: "xsmall",
42
+ outlineColor: "stroke.default",
43
+ outlineOffset: "3px",
44
+ outlineStyle: "solid"
45
+ }
46
+ }
47
+ }
48
+ });
49
+ export const InlineTriggerButton = /*#__PURE__*/forwardRef((_ref, ref) => {
50
+ let {
51
+ onClick,
52
+ ...props
53
+ } = _ref;
54
+ const spanRef = useRef(null);
55
+
56
+ // Emulate a button click when pressing Enter or Space
57
+ const onKeyboardEvent = useCallback(event => {
58
+ if (event.key === "Enter" || event.key === " ") {
59
+ spanRef.current?.click();
60
+ }
61
+ }, []);
62
+ return _jsx(StyledSpan, {
63
+ ref: composeRefs(spanRef, ref),
64
+ onKeyUp: onKeyboardEvent,
65
+ onClick: onClick,
66
+ role: "button",
67
+ tabIndex: 0,
68
+ ...props
69
+ });
70
+ });
@@ -29,29 +29,27 @@ const RelatedContentEmbed = _ref => {
29
29
  embedData
30
30
  } = embed;
31
31
  if (embedData.articleId && data) {
32
- var _data$resource, _ref2, _data$resource$paths$, _data$resource2, _data$resource3, _data$article$title$t, _data$article$title, _data$article$metaDes, _data$article$metaDes2;
33
- const typeId = (_data$resource = data.resource) === null || _data$resource === void 0 || (_data$resource = _data$resource.resourceTypes.find(rt => contentTypeMapping[rt.id])) === null || _data$resource === void 0 ? void 0 : _data$resource.id;
32
+ const typeId = data.resource?.resourceTypes.find(rt => contentTypeMapping[rt.id])?.id;
34
33
  const type = typeId ? contentTypeMapping[typeId] : undefined;
35
- const path = (_ref2 = (_data$resource$paths$ = (_data$resource2 = data.resource) === null || _data$resource2 === void 0 ? void 0 : _data$resource2.paths.find(p => p.split("/")[1] === (subject === null || subject === void 0 ? void 0 : subject.replace("urn:", "")))) !== null && _data$resource$paths$ !== void 0 ? _data$resource$paths$ : (_data$resource3 = data.resource) === null || _data$resource3 === void 0 ? void 0 : _data$resource3.path) !== null && _ref2 !== void 0 ? _ref2 : "/article/".concat(embedData.articleId);
34
+ const path = data.resource?.paths.find(p => p.split("/")[1] === subject?.replace("urn:", "")) ?? data.resource?.path ?? `/article/${embedData.articleId}`;
36
35
  return _jsx(RelatedArticle, {
37
- title: (_data$article$title$t = (_data$article$title = data.article.title) === null || _data$article$title === void 0 ? void 0 : _data$article$title.title) !== null && _data$article$title$t !== void 0 ? _data$article$title$t : "",
38
- introduction: (_data$article$metaDes = (_data$article$metaDes2 = data.article.metaDescription) === null || _data$article$metaDes2 === void 0 ? void 0 : _data$article$metaDes2.metaDescription) !== null && _data$article$metaDes !== void 0 ? _data$article$metaDes : "",
36
+ title: data.article.title?.title ?? "",
37
+ introduction: data.article.metaDescription?.metaDescription ?? "",
39
38
  target: isOembed ? "_blank" : undefined,
40
- to: "".concat(ndlaFrontendDomain !== null && ndlaFrontendDomain !== void 0 ? ndlaFrontendDomain : "").concat(path !== null && path !== void 0 ? path : ""),
39
+ to: `${ndlaFrontendDomain ?? ""}${path ?? ""}`,
41
40
  type: type
42
41
  });
43
42
  }
44
43
  if (typeof embedData.url === "string") {
45
- var _embedData$title, _embedData$url$match;
46
44
  return _jsx(RelatedArticle, {
47
- title: (_embedData$title = embedData.title) !== null && _embedData$title !== void 0 ? _embedData$title : "",
45
+ title: embedData.title ?? "",
48
46
  introduction: "",
49
47
  to: embedData.url,
50
48
  target: "_blank",
51
49
  type: "external",
52
- linkInfo: "".concat(t("related.linkInfo"), " ").concat(
50
+ linkInfo: `${t("related.linkInfo")} ${
53
51
  // Get domain name only from url
54
- punycode.toUnicode(((_embedData$url$match = embedData.url.match(/^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:/\n]+)/im)) === null || _embedData$url$match === void 0 ? void 0 : _embedData$url$match[1]) || embedData.url))
52
+ punycode.toUnicode(embedData.url.match(/^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:/\n]+)/im)?.[1] || embedData.url)}`
55
53
  });
56
54
  }
57
55
  return _jsx(_Fragment, {});
@@ -1,4 +1,3 @@
1
- import _styled from "@emotion/styled/base";
2
1
  /**
3
2
  * Copyright (c) 2023-present, NDLA.
4
3
  *
@@ -8,12 +7,8 @@ import _styled from "@emotion/styled/base";
8
7
  */
9
8
 
10
9
  import { useTranslation } from "react-i18next";
11
- import { colors } from "@ndla/core";
10
+ import { Text } from "@ndla/primitives";
12
11
  import { jsx as _jsx } from "@emotion/react/jsx-runtime";
13
- const StyledSpan = /*#__PURE__*/_styled("span", {
14
- target: "e1rt6jrv0",
15
- label: "StyledSpan"
16
- })("color:", colors.support.red, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlVua25vd25FbWJlZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUI4QiIsImZpbGUiOiJVbmtub3duRW1iZWQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjMtcHJlc2VudCwgTkRMQS5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBHUEx2MyBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICpcbiAqL1xuXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IGNvbG9ycyB9IGZyb20gXCJAbmRsYS9jb3JlXCI7XG5pbXBvcnQgeyBNZXRhRGF0YSB9IGZyb20gXCJAbmRsYS90eXBlcy1lbWJlZFwiO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBlbWJlZDogTWV0YURhdGE8YW55LCBhbnk+O1xufVxuXG5jb25zdCBTdHlsZWRTcGFuID0gc3R5bGVkLnNwYW5gXG4gIGNvbG9yOiAke2NvbG9ycy5zdXBwb3J0LnJlZH07XG5gO1xuXG5jb25zdCBVbmtub3duRW1iZWQgPSAoeyBlbWJlZCB9OiBQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIHJldHVybiA8U3R5bGVkU3Bhbj57dChcImVtYmVkLnVuc3VwcG9ydGVkXCIsIHsgdHlwZTogZW1iZWQucmVzb3VyY2UgfSl9PC9TdHlsZWRTcGFuPjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFVua25vd25FbWJlZDtcbiJdfQ== */"));
17
12
  const UnknownEmbed = _ref => {
18
13
  let {
19
14
  embed
@@ -21,9 +16,14 @@ const UnknownEmbed = _ref => {
21
16
  const {
22
17
  t
23
18
  } = useTranslation();
24
- return _jsx(StyledSpan, {
25
- children: t("embed.unsupported", {
26
- type: embed.resource
19
+ return _jsx(Text, {
20
+ color: "text.error",
21
+ asChild: true,
22
+ consumeCss: true,
23
+ children: _jsx("span", {
24
+ children: t("embed.unsupported", {
25
+ type: embed.resource
26
+ })
27
27
  })
28
28
  });
29
29
  };