@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
package/src/Logo/Logo.tsx CHANGED
@@ -6,11 +6,7 @@
6
6
  *
7
7
  */
8
8
 
9
- /** @jsxImportSource @emotion/react */
10
- import { useMemo } from "react";
11
- import { SerializedStyles, css } from "@emotion/react";
12
9
  import styled from "@emotion/styled";
13
- import { colors } from "@ndla/core";
14
10
  import { SafeLink } from "@ndla/safelink";
15
11
  import SvgLogo from "./SvgLogo";
16
12
 
@@ -24,8 +20,6 @@ interface Props {
24
20
  };
25
21
  label: string;
26
22
  locale?: string;
27
- cssModifier?: string;
28
- large?: boolean;
29
23
  name?: boolean;
30
24
  color?: string;
31
25
  }
@@ -39,29 +33,7 @@ const StyledLogoWrapper = styled.div`
39
33
  position: relative;
40
34
  `;
41
35
 
42
- const modifierStyles: Record<string, SerializedStyles> = {
43
- large: css`
44
- width: 287px;
45
- `,
46
- white: css`
47
- svg {
48
- fill: ${colors.white};
49
- }
50
- `,
51
- };
52
-
53
- export const Logo = ({ name = true, to, cssModifier, color, large = false, locale, label }: Props) => {
54
- const modifiers = useMemo(() => {
55
- const mods = [];
56
- if (large) {
57
- mods.push(modifierStyles.large);
58
- }
59
- if (cssModifier && modifierStyles[cssModifier]) {
60
- mods.push(modifierStyles[cssModifier]);
61
- }
62
- return mods;
63
- }, [large, cssModifier]);
64
-
36
+ export const Logo = ({ name = true, to, color, locale, label }: Props) => {
65
37
  const logo = to ? (
66
38
  <SafeLink to={to} aria-label={label} title={label}>
67
39
  <SvgLogo name={name} color={color} locale={locale} />
@@ -69,7 +41,7 @@ export const Logo = ({ name = true, to, cssModifier, color, large = false, local
69
41
  ) : (
70
42
  <SvgLogo name={name} color={color} locale={locale} />
71
43
  );
72
- return <StyledLogoWrapper css={modifiers}>{logo}</StyledLogoWrapper>;
44
+ return <StyledLogoWrapper>{logo}</StyledLogoWrapper>;
73
45
  };
74
46
 
75
47
  export default Logo;
@@ -6,15 +6,15 @@
6
6
  *
7
7
  */
8
8
 
9
- import { CSSProperties, Children, ComponentProps, ReactNode, useMemo, useState } from "react";
9
+ import { Children, ComponentPropsWithoutRef, ReactNode, useMemo, useState } from "react";
10
10
  import { useTranslation } from "react-i18next";
11
- import styled from "@emotion/styled";
12
- import { ButtonV2 } from "@ndla/button";
13
- import { breakpoints, colors, fonts, mq, spacing } from "@ndla/core";
11
+ import { CardContent, CardHeading, CardRoot, Text, Heading, Button } from "@ndla/primitives";
14
12
  import { SafeLink } from "@ndla/safelink";
15
- import { Heading, HeadingLevel, Text } from "@ndla/typography";
16
- import ContentTypeBadge from "../ContentTypeBadge";
13
+ import { styled } from "@ndla/styled-system/jsx";
14
+ import { linkOverlay } from "@ndla/styled-system/patterns";
15
+ import { ContentTypeBadge } from "../ContentTypeBadge/ContentTypeBadgeNew";
17
16
  import { contentTypes } from "../model/ContentType";
17
+ import { HeadingLevel } from "../types";
18
18
 
19
19
  interface RelatedArticleProps {
20
20
  title: string;
@@ -25,45 +25,6 @@ interface RelatedArticleProps {
25
25
  type?: string;
26
26
  }
27
27
 
28
- const TitleWrapper = styled.div`
29
- display: flex;
30
- gap: ${spacing.small};
31
- align-items: flex-start;
32
- div {
33
- min-width: 34px;
34
- min-height: 34px;
35
- max-width: 34px;
36
- max-height: 34px;
37
- }
38
- `;
39
-
40
- const StyledRelatedArticle = styled.article`
41
- border-left: 6px solid var(--border-color, ${colors.brand.greyLight});
42
- flex-grow: 0;
43
- display: flex;
44
- flex-direction: column;
45
- gap: ${spacing.xsmall};
46
- padding: 0px ${spacing.normal} 0px ${spacing.normal};
47
- `;
48
-
49
- const LinkInfo = styled(Text)`
50
- font-weight: ${fonts.weight.bold};
51
- `;
52
-
53
- const LinkText = styled(Text)`
54
- font-weight: ${fonts.weight.semibold};
55
- `;
56
-
57
- const colorMap = {
58
- [contentTypes.SUBJECT_MATERIAL]: colors.subjectMaterial.light,
59
- [contentTypes.TASKS_AND_ACTIVITIES]: colors.tasksAndActivities.background,
60
- [contentTypes.ASSESSMENT_RESOURCES]: colors.assessmentResource.background,
61
- [contentTypes.CONCEPT]: colors.concept.light,
62
- [contentTypes.SOURCE_MATERIAL]: colors.sourceMaterial.light,
63
- [contentTypes.LEARNING_PATH]: colors.learningPath.background,
64
- [contentTypes.SUBJECT]: colors.subject.light,
65
- };
66
-
67
28
  export const RelatedArticle = ({
68
29
  title,
69
30
  introduction,
@@ -73,59 +34,79 @@ export const RelatedArticle = ({
73
34
  type = contentTypes.SUBJECT_MATERIAL,
74
35
  }: RelatedArticleProps) => {
75
36
  return (
76
- <StyledRelatedArticle style={{ "--border-color": colorMap[type] } as CSSProperties}>
77
- <TitleWrapper>
78
- <ContentTypeBadge type={type} background size="small" />
79
- <LinkText element="span" textStyle="meta-text-medium" margin="none">
80
- <SafeLink to={to} target={target} rel={linkInfo ? "noopener noreferrer" : undefined}>
81
- {title}
82
- </SafeLink>
83
- </LinkText>
84
- </TitleWrapper>
85
- <Text textStyle="meta-text-small" margin="none" dangerouslySetInnerHTML={{ __html: introduction }} />
86
- <LinkInfo textStyle="content" margin="none">
87
- {linkInfo}
88
- </LinkInfo>
89
- </StyledRelatedArticle>
37
+ <CardRoot>
38
+ <CardContent>
39
+ <ContentTypeBadge contentType={type} />
40
+ <CardHeading asChild consumeCss>
41
+ <span>
42
+ <SafeLink
43
+ unstyled
44
+ to={to}
45
+ target={target}
46
+ rel={linkInfo ? "noopener noreferrer" : undefined}
47
+ css={linkOverlay.raw()}
48
+ >
49
+ {title}
50
+ </SafeLink>
51
+ </span>
52
+ </CardHeading>
53
+ <Text dangerouslySetInnerHTML={{ __html: introduction }} />
54
+ <Text color="text.subtle" textStyle="label.small">
55
+ {linkInfo}
56
+ </Text>
57
+ </CardContent>
58
+ </CardRoot>
90
59
  );
91
60
  };
92
61
 
93
- const HeadingWrapper = styled.div`
94
- display: flex;
95
- width: 100%;
96
- justify-content: space-between;
97
- align-items: center;
98
- align-self: flex-start;
99
- `;
62
+ const HeadingWrapper = styled("div", {
63
+ base: {
64
+ display: "flex",
65
+ width: "100%",
66
+ justifyContent: "space-between",
67
+ alignItems: "center",
68
+ alignSelf: "flex-start",
69
+ },
70
+ });
71
+
72
+ const ArticlesWrapper = styled("div", {
73
+ base: {
74
+ display: "grid",
75
+ width: "100%",
76
+ gridTemplateColumns: "repeat(2, 1fr)",
77
+ gap: "medium",
78
+ tabletDown: {
79
+ gridTemplateColumns: "1fr",
80
+ },
81
+ },
82
+ });
100
83
 
101
- const ArticlesWrapper = styled.div`
102
- display: grid;
103
- width: 100%;
104
- grid-template-columns: repeat(2, 1fr);
105
- row-gap: ${spacing.large};
106
- ${mq.range({ until: breakpoints.tablet })} {
107
- grid-template-columns: 1fr;
108
- }
109
- `;
84
+ const StyledSection = styled("section", {
85
+ base: {
86
+ display: "flex",
87
+ flexDirection: "column",
88
+ alignItems: "center",
89
+ gap: "xsmall",
90
+ },
91
+ });
110
92
 
111
- interface Props extends ComponentProps<"section"> {
93
+ const StyledButton = styled(Button, {
94
+ base: {
95
+ marginBlockStart: "xsmall",
96
+ },
97
+ });
98
+
99
+ interface Props extends ComponentPropsWithoutRef<"section"> {
112
100
  children?: JSX.Element[];
113
101
  articleCount?: number;
114
102
  headingLevel?: HeadingLevel;
115
103
  headingButtons?: ReactNode;
116
104
  }
117
105
 
118
- const StyledSection = styled.section`
119
- display: flex;
120
- flex-direction: column;
121
- align-items: center;
122
- gap: ${spacing.normal};
123
- `;
124
-
125
106
  export const RelatedArticleList = ({
126
107
  children = [],
127
108
  articleCount,
128
- headingLevel = "h2",
109
+ headingLevel: HeadingElement = "h2",
129
110
  headingButtons,
130
111
  ...rest
131
112
  }: Props) => {
@@ -140,16 +121,16 @@ export const RelatedArticleList = ({
140
121
  return (
141
122
  <StyledSection {...rest}>
142
123
  <HeadingWrapper>
143
- <Heading element={headingLevel} margin="none" headingStyle="list-title">
144
- {t("related.title")}
124
+ <Heading asChild consumeCss textStyle="title.large" fontWeight="bold">
125
+ <HeadingElement>{t("related.title")}</HeadingElement>
145
126
  </Heading>
146
127
  {headingButtons}
147
128
  </HeadingWrapper>
148
129
  <ArticlesWrapper>{childrenToShow}</ArticlesWrapper>
149
130
  {childCount > 2 ? (
150
- <ButtonV2 onClick={() => setExpanded((p) => !p)} variant="outline">
131
+ <StyledButton variant="secondary" onClick={() => setExpanded((p) => !p)}>
151
132
  {t(`related.show${expanded ? "Less" : "More"}`)}
152
- </ButtonV2>
133
+ </StyledButton>
153
134
  ) : null}
154
135
  </StyledSection>
155
136
  );
@@ -6,77 +6,63 @@
6
6
  *
7
7
  */
8
8
 
9
- import styled from "@emotion/styled";
10
- import { breakpoints, fonts, mq, colors, spacing } from "@ndla/core";
11
9
  import { Launch } from "@ndla/icons/common";
10
+ import { Heading, Image, Text } from "@ndla/primitives";
12
11
  import { SafeLinkButton } from "@ndla/safelink";
13
- import Image from "../Image";
12
+ import { styled } from "@ndla/styled-system/jsx";
13
+ import { token } from "@ndla/styled-system/tokens";
14
14
 
15
- const ResourceBoxContainer = styled.div`
16
- display: flex;
17
- position: relative;
18
- padding: ${spacing.nsmall};
19
- border-radius: 5px;
20
- border: 1px solid ${colors.brand.light};
21
- font-family: ${fonts.sans};
22
- box-shadow: 0px 20px 35px -15px rgba(32, 88, 143, 0.15);
23
- gap: ${spacing.medium};
15
+ const Container = styled("div", {
16
+ base: {
17
+ display: "flex",
18
+ padding: "medium",
19
+ borderRadius: "xsmall",
20
+ border: "1px solid",
21
+ borderColor: "stroke.default",
22
+ boxShadow: "full",
23
+ gap: "medium",
24
+ tabletWideDown: {
25
+ padding: "xsmall",
26
+ },
27
+ tabletDown: {
28
+ flexDirection: "column",
29
+ gap: "0",
30
+ padding: "0",
31
+ },
32
+ },
33
+ });
24
34
 
25
- ${mq.range({ until: breakpoints.desktop })} {
26
- gap: 0;
27
- flex-direction: column;
28
- padding-top: ${spacing.medium};
29
- text-align: center;
30
- }
31
- `;
35
+ const ContentWrapper = styled("div", {
36
+ base: {
37
+ display: "flex",
38
+ flexDirection: "column",
39
+ alignItems: "flex-start",
40
+ gap: "xsmall",
41
+ flex: "1",
42
+ tabletDown: {
43
+ padding: "xsmall",
44
+ },
45
+ },
46
+ });
32
47
 
33
- const Title = styled.h3`
34
- font-weight: ${fonts.weight.bold};
35
- ${fonts.sizes(18)};
36
- margin-top: 0;
37
- `;
48
+ const StyledImage = styled(Image, {
49
+ base: {
50
+ objectFit: "cover",
51
+ borderRadius: "xsmall",
52
+ width: "fit-content",
53
+ aspectRatio: "1/1",
54
+ tabletDown: {
55
+ width: "100%",
56
+ borderRadius: "0",
57
+ },
58
+ },
59
+ });
38
60
 
39
- const Caption = styled.p`
40
- ${fonts.sizes(14)};
41
- `;
42
-
43
- const ContentWrapper = styled.div`
44
- flex-basis: 0;
45
- flex-grow: 1;
46
- display: flex;
47
- flex-direction: column;
48
- align-items: flex-start;
49
- ${mq.range({ until: breakpoints.desktop })} {
50
- align-items: center;
51
- padding-top: ${spacing.small};
52
- }
53
- `;
54
-
55
- const StyledButton = styled(SafeLinkButton)`
56
- display: flex;
57
- gap: ${spacing.xxsmall};
58
- align-items: center;
59
- border: 1px solid ${colors.brand.tertiary};
60
- :hover {
61
- background-color: ${colors.brand.primary};
62
- border: 1px solid ${colors.brand.primary};
63
- color: ${colors.white};
64
- }
65
- `;
66
-
67
- const StyledImage = styled(Image)`
68
- && {
69
- object-fit: cover;
70
- width: 134px;
71
- height: 134px;
72
- border-radius: 5px;
73
-
74
- ${mq.range({ until: breakpoints.desktop })} {
75
- width: 200px;
76
- height: 200px;
77
- }
78
- }
79
- `;
61
+ const StyledText = styled(Text, {
62
+ base: {
63
+ flex: "1",
64
+ },
65
+ });
80
66
 
81
67
  interface ImageMeta {
82
68
  src: string;
@@ -93,17 +79,23 @@ interface Props {
93
79
 
94
80
  export const ResourceBox = ({ image, title, caption, url, buttonText }: Props) => {
95
81
  return (
96
- <ResourceBoxContainer>
97
- <StyledImage src={image.src} alt={image.alt} />
82
+ <Container>
83
+ <StyledImage
84
+ src={image.src}
85
+ alt={image.alt}
86
+ sizes={`(min-width: ${token("breakpoints.desktop")}) 150px, (max-width: ${token("breakpoints.tablet")} ) 400px, 200px`}
87
+ />
98
88
  <ContentWrapper>
99
- <Title>{title}</Title>
100
- <Caption>{caption}</Caption>
101
- <StyledButton to={url} target="_blank" variant="outline" shape="pill">
89
+ <Heading textStyle="label.large" fontWeight="bold" asChild consumeCss>
90
+ <h3>{title}</h3>
91
+ </Heading>
92
+ <StyledText textStyle="body.medium">{caption}</StyledText>
93
+ <SafeLinkButton to={url} target="_blank" variant="secondary">
102
94
  {buttonText}
103
- <Launch aria-hidden />
104
- </StyledButton>
95
+ <Launch />
96
+ </SafeLinkButton>
105
97
  </ContentWrapper>
106
- </ResourceBoxContainer>
98
+ </Container>
107
99
  );
108
100
  };
109
101
 
@@ -9,6 +9,7 @@
9
9
  /** @jsxImportSource @emotion/react */
10
10
  import { ReactElement, useEffect, useRef, useState } from "react";
11
11
  import { useTranslation } from "react-i18next";
12
+ import styled from "@emotion/styled";
12
13
  import { ButtonV2 } from "@ndla/button";
13
14
  import { Additional, ChevronDown, ChevronUp } from "@ndla/icons/common";
14
15
  import { SafeLink } from "@ndla/safelink";
@@ -64,6 +65,12 @@ type Props = {
64
65
  unGrouped?: boolean;
65
66
  };
66
67
 
68
+ const StyledSafeLink = styled(SafeLink)`
69
+ &[data-highlighted="true"] {
70
+ ${highlightStyle}
71
+ }
72
+ `;
73
+
67
74
  const ContentTypeResult = ({
68
75
  contentTypeResult,
69
76
  onNavigate,
@@ -139,8 +146,7 @@ const ContentTypeResult = ({
139
146
 
140
147
  return (
141
148
  <StyledListItem key={path} delayAnimation={delayAnimation}>
142
- <SafeLink
143
- css={shouldHighlight && highlightStyle}
149
+ <StyledSafeLink
144
150
  data-highlighted={shouldHighlight || false}
145
151
  {...linkProps}
146
152
  onClick={() => {
@@ -154,7 +160,7 @@ const ContentTypeResult = ({
154
160
  )}
155
161
  {linkContent}
156
162
  {renderAdditionalIcon(t("resource.additionalTooltip"), additional)}
157
- </SafeLink>
163
+ </StyledSafeLink>
158
164
  </StyledListItem>
159
165
  );
160
166
  })}
@@ -79,6 +79,9 @@ const StyledSearchLink = styled(SafeLink)`
79
79
  color: ${colors.text.light};
80
80
  padding-left: ${spacing.xsmall};
81
81
  }
82
+ &[data-highlighted="true"] {
83
+ ${highlightStyle};
84
+ }
82
85
  `;
83
86
 
84
87
  type WrapperProps = {
@@ -304,7 +307,7 @@ const SearchResultSleeve = ({
304
307
  <div>
305
308
  <SearchLinkContainer>
306
309
  <StyledSearchLink
307
- css={keyboardPathNavigation === GO_TO_SEARCHPAGE && highlightStyle}
310
+ data-highlighted={keyboardPathNavigation === GO_TO_SEARCHPAGE}
308
311
  to={allResultUrl}
309
312
  tabIndex={-1}
310
313
  >
@@ -314,7 +317,7 @@ const SearchResultSleeve = ({
314
317
  </StyledSearchLink>
315
318
  {suggestion && suggestionUrl && (
316
319
  <StyledSearchLink
317
- css={keyboardPathNavigation === GO_TO_SUGGESTION && highlightStyle}
320
+ data-highlighted={keyboardPathNavigation === GO_TO_SUGGESTION}
318
321
  to={suggestionUrl}
319
322
  tabIndex={-1}
320
323
  >
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2023-present, NDLA.
2
+ * Copyright (c) 2024-present, NDLA.
3
3
  *
4
4
  * This source code is licensed under the GPLv3 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -7,80 +7,104 @@
7
7
  */
8
8
 
9
9
  import { useState } from "react";
10
- import styled from "@emotion/styled";
10
+ import type { ComboboxInputValueChangeDetails } from "@ark-ui/react";
11
+
11
12
  import { Meta, StoryFn } from "@storybook/react";
12
- import TagSelector from "./TagSelector";
13
+ import { Cross } from "@ndla/icons/action";
14
+ import { ChevronDown } from "@ndla/icons/common";
15
+ import { Done } from "@ndla/icons/editor";
16
+ import {
17
+ ComboboxContent,
18
+ ComboboxItem,
19
+ ComboboxItemIndicator,
20
+ ComboboxItemText,
21
+ ComboboxPositioner,
22
+ IconButton,
23
+ Input,
24
+ InputContainer,
25
+ } from "@ndla/primitives";
26
+ import { HStack } from "@ndla/styled-system/jsx";
27
+ import {
28
+ TagSelectorClearTrigger,
29
+ TagSelectorControl,
30
+ TagSelectorInput,
31
+ TagSelectorLabel,
32
+ TagSelectorRoot,
33
+ TagSelectorTrigger,
34
+ } from "./TagSelector";
35
+ import { useTagSelectorTranslations } from "../i18n/useComponentTranslations";
13
36
 
14
- /**
15
- * Komponent for å tagge noe, primært tiltenkt Min NDLA
16
- */
17
37
  export default {
18
- title: "Patterns/TagSelector",
19
- component: TagSelector,
38
+ title: "Components/TagSelector",
39
+ component: TagSelectorRoot,
20
40
  tags: ["autodocs"],
21
- parameters: {
22
- inlineStories: true,
23
- },
24
- argTypes: {
25
- onChange: { control: false },
26
- onCreateTag: { control: false },
27
- tags: { control: false },
28
- selected: { control: false },
29
- },
30
- args: {
31
- label: "Select tags",
32
- labelHidden: false,
33
- },
34
- } as Meta<typeof TagSelector>;
41
+ } satisfies Meta<typeof TagSelectorRoot>;
35
42
 
36
- const Container = styled.div`
37
- margin: 10px auto;
38
- max-width: 600px;
39
- max-height: 300px;
40
- display: flex;
41
- flex-direction: column;
42
- `;
43
+ const data = [
44
+ "BackToSchool",
45
+ "SchoolLife",
46
+ "Homework",
47
+ "SchoolDays",
48
+ "Classroom",
49
+ "StudyTime",
50
+ "TeacherLife",
51
+ "StudentLife",
52
+ "SchoolSpirit",
53
+ "Education",
54
+ ];
43
55
 
44
- export const TagSelectorStory: StoryFn<typeof TagSelector> = (args) => {
45
- const dummyData = [
46
- "Cat",
47
- "Dog",
48
- "Fish",
49
- "Dinosaur",
50
- "Frog",
51
- "Dragon",
52
- "Lion",
53
- "Snake",
54
- "Alligator",
55
- "Antelope",
56
- "Bear",
57
- "Baboon",
58
- "Kangaroo",
59
- "Scorpion",
60
- "Goose",
61
- "Fox",
62
- "Donkey",
63
- "Chicken",
64
- ];
65
- const [exampleTags, setExampleTags] = useState<string[]>(dummyData);
66
- const [exampleTagsSelected, setExampleTagsSelected] = useState<string[]>(dummyData.slice(0, 0));
56
+ export const Default: StoryFn<typeof TagSelectorRoot> = ({ translations, ...args }) => {
57
+ const [options, setOptions] = useState(data);
58
+ const [value, setValue] = useState<string[]>([]);
59
+ const componentTranslations = useTagSelectorTranslations(translations);
60
+
61
+ const handleChange = (e: ComboboxInputValueChangeDetails) => {
62
+ const filtered = data.filter((item) => item.toLowerCase().includes(e.inputValue.toLowerCase()));
63
+ setOptions(filtered);
64
+ };
67
65
 
68
66
  return (
69
- <Container>
70
- <TagSelector
71
- label={args.label}
72
- tags={exampleTags}
73
- selected={exampleTagsSelected}
74
- onChange={(tags: string[]) => {
75
- setExampleTagsSelected(tags);
76
- }}
77
- onCreateTag={(newTagName: string) => {
78
- setExampleTags((prevTags) => [...prevTags, newTagName]);
79
- setExampleTagsSelected((prevSelectedTags) => [...prevSelectedTags, newTagName]);
80
- }}
81
- />
82
- </Container>
67
+ <TagSelectorRoot
68
+ {...args}
69
+ value={value}
70
+ items={options}
71
+ onInputValueChange={handleChange}
72
+ onValueChange={(details) => setValue(details.value)}
73
+ translations={componentTranslations}
74
+ >
75
+ <TagSelectorLabel>Emneknagger</TagSelectorLabel>
76
+ <HStack gap="4xsmall">
77
+ <TagSelectorControl asChild>
78
+ <InputContainer>
79
+ <TagSelectorInput asChild>
80
+ <Input placeholder="Søk etter emneknagger" />
81
+ </TagSelectorInput>
82
+
83
+ <TagSelectorClearTrigger asChild>
84
+ <IconButton variant="clear">
85
+ <Cross />
86
+ </IconButton>
87
+ </TagSelectorClearTrigger>
88
+ </InputContainer>
89
+ </TagSelectorControl>
90
+ <TagSelectorTrigger asChild>
91
+ <IconButton variant="secondary">
92
+ <ChevronDown />
93
+ </IconButton>
94
+ </TagSelectorTrigger>
95
+ </HStack>
96
+ <ComboboxPositioner>
97
+ <ComboboxContent>
98
+ {options.map((item) => (
99
+ <ComboboxItem key={item} item={item}>
100
+ <ComboboxItemText>{item}</ComboboxItemText>
101
+ <ComboboxItemIndicator>
102
+ <Done />
103
+ </ComboboxItemIndicator>
104
+ </ComboboxItem>
105
+ ))}
106
+ </ComboboxContent>
107
+ </ComboboxPositioner>
108
+ </TagSelectorRoot>
83
109
  );
84
110
  };
85
-
86
- TagSelectorStory.storyName = "TagSelect";