@reykjavik/hanna-react 0.10.53 → 0.10.56

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 (706) hide show
  1. package/{types/AccordionList.d.ts → AccordionList.d.ts} +0 -0
  2. package/AccordionList.jsx +61 -0
  3. package/{types/ActionCards.d.ts → ActionCards.d.ts} +0 -0
  4. package/ActionCards.jsx +15 -0
  5. package/{types/Alert.d.ts → Alert.d.ts} +0 -0
  6. package/Alert.jsx +123 -0
  7. package/{types/ArticleCarousel → ArticleCarousel}/_ArticleCarouselCard.d.ts +1 -1
  8. package/ArticleCarousel/_ArticleCarouselCard.jsx +32 -0
  9. package/{types/ArticleCarousel.d.ts → ArticleCarousel.d.ts} +0 -0
  10. package/ArticleCarousel.jsx +13 -0
  11. package/{types/ArticleMeta.d.ts → ArticleMeta.d.ts} +0 -0
  12. package/ArticleMeta.jsx +42 -0
  13. package/{types/Attention.d.ts → Attention.d.ts} +0 -0
  14. package/Attention.jsx +9 -0
  15. package/{types/BasicTable.d.ts → BasicTable.d.ts} +0 -0
  16. package/BasicTable.jsx +35 -0
  17. package/{types/Bling.d.ts → Bling.d.ts} +0 -0
  18. package/Bling.jsx +49 -0
  19. package/{types/BlockBreak.d.ts → BlockBreak.d.ts} +0 -0
  20. package/BlockBreak.jsx +11 -0
  21. package/{types/BlockQuote.d.ts → BlockQuote.d.ts} +0 -0
  22. package/BlockQuote.jsx +9 -0
  23. package/{types/BreadCrumbs.d.ts → BreadCrumbs.d.ts} +0 -0
  24. package/BreadCrumbs.jsx +36 -0
  25. package/{types/ButtonBack.d.ts → ButtonBack.d.ts} +0 -0
  26. package/ButtonBack.jsx +9 -0
  27. package/{types/ButtonBar.d.ts → ButtonBar.d.ts} +0 -0
  28. package/ButtonBar.jsx +23 -0
  29. package/{types/ButtonPrimary.d.ts → ButtonPrimary.d.ts} +0 -0
  30. package/ButtonPrimary.jsx +9 -0
  31. package/{types/ButtonSecondary.d.ts → ButtonSecondary.d.ts} +0 -0
  32. package/ButtonSecondary.jsx +9 -0
  33. package/{types/ButtonTertiary.d.ts → ButtonTertiary.d.ts} +0 -0
  34. package/ButtonTertiary.jsx +20 -0
  35. package/CHANGELOG.md +14 -6
  36. package/{types/Carousel.d.ts → Carousel.d.ts} +0 -0
  37. package/Carousel.jsx +9 -0
  38. package/{types/CarouselStepper.d.ts → CarouselStepper.d.ts} +0 -0
  39. package/CarouselStepper.jsx +9 -0
  40. package/{types/CenterColumn.d.ts → CenterColumn.d.ts} +0 -0
  41. package/CenterColumn.jsx +14 -0
  42. package/{types/Checkbox.d.ts → Checkbox.d.ts} +0 -0
  43. package/Checkbox.jsx +9 -0
  44. package/{types/CheckboxButtonsGroup.d.ts → CheckboxButtonsGroup.d.ts} +0 -0
  45. package/CheckboxButtonsGroup.jsx +19 -0
  46. package/{types/CheckboxGroup.d.ts → CheckboxGroup.d.ts} +0 -0
  47. package/CheckboxGroup.jsx +12 -0
  48. package/{types/CityBlock.d.ts → CityBlock.d.ts} +0 -0
  49. package/CityBlock.jsx +23 -0
  50. package/{types/ContactBubble.d.ts → ContactBubble.d.ts} +0 -0
  51. package/ContactBubble.jsx +192 -0
  52. package/{types/ContentArticle.d.ts → ContentArticle.d.ts} +0 -0
  53. package/ContentArticle.jsx +29 -0
  54. package/{types/ContentImage.d.ts → ContentImage.d.ts} +0 -0
  55. package/ContentImage.jsx +18 -0
  56. package/{types/Datepicker.d.ts → Datepicker.d.ts} +0 -0
  57. package/Datepicker.jsx +92 -0
  58. package/{types/ExtraLinks.d.ts → ExtraLinks.d.ts} +0 -0
  59. package/ExtraLinks.jsx +47 -0
  60. package/{types/FeatureList.d.ts → FeatureList.d.ts} +0 -0
  61. package/FeatureList.jsx +28 -0
  62. package/{types/FieldGroup.d.ts → FieldGroup.d.ts} +0 -0
  63. package/FieldGroup.jsx +15 -0
  64. package/{types/FileInput.d.ts → FileInput.d.ts} +0 -0
  65. package/FileInput.jsx +185 -0
  66. package/{types/Foonote.d.ts → Foonote.d.ts} +0 -0
  67. package/Foonote.jsx +12 -0
  68. package/{types/FooterBadges.d.ts → FooterBadges.d.ts} +0 -0
  69. package/FooterBadges.jsx +21 -0
  70. package/{types/FooterInfo.d.ts → FooterInfo.d.ts} +0 -0
  71. package/FooterInfo.jsx +19 -0
  72. package/{types/Footnote.d.ts → Footnote.d.ts} +0 -0
  73. package/Footnote.jsx +8 -0
  74. package/{types/Form.d.ts → Form.d.ts} +0 -0
  75. package/Form.jsx +17 -0
  76. package/{types/FormField.d.ts → FormField.d.ts} +0 -0
  77. package/FormField.jsx +121 -0
  78. package/{types/Gallery → Gallery}/_GalleryItem.d.ts +0 -0
  79. package/Gallery/_GalleryItem.jsx +59 -0
  80. package/{types/Gallery → Gallery}/_GalleryModal.d.ts +0 -0
  81. package/Gallery/_GalleryModal.jsx +86 -0
  82. package/{types/Gallery → Gallery}/_GalleryModalContext.d.ts +0 -0
  83. package/Gallery/_GalleryModalContext.js +8 -0
  84. package/{types/Gallery → Gallery}/_GalleryModalItem.d.ts +0 -0
  85. package/Gallery/_GalleryModalItem.jsx +29 -0
  86. package/{types/Gallery.d.ts → Gallery.d.ts} +0 -0
  87. package/Gallery.jsx +56 -0
  88. package/{types/GridBlocks.d.ts → GridBlocks.d.ts} +0 -0
  89. package/GridBlocks.jsx +40 -0
  90. package/{types/Heading.d.ts → Heading.d.ts} +0 -0
  91. package/Heading.jsx +24 -0
  92. package/{types/HeroBlock.d.ts → HeroBlock.d.ts} +0 -0
  93. package/HeroBlock.jsx +27 -0
  94. package/{types/IframeBlock.d.ts → IframeBlock.d.ts} +0 -0
  95. package/IframeBlock.jsx +31 -0
  96. package/{types/Illustration.d.ts → Illustration.d.ts} +0 -0
  97. package/Illustration.jsx +13 -0
  98. package/{types/ImageCards.d.ts → ImageCards.d.ts} +0 -0
  99. package/ImageCards.jsx +28 -0
  100. package/{types/InfoBlock.d.ts → InfoBlock.d.ts} +0 -0
  101. package/InfoBlock.jsx +23 -0
  102. package/{types/InfoHero.d.ts → InfoHero.d.ts} +0 -0
  103. package/InfoHero.jsx +93 -0
  104. package/{types/IslandBlock.d.ts → IslandBlock.d.ts} +0 -0
  105. package/IslandBlock.jsx +21 -0
  106. package/{types/IslandPageBlock.d.ts → IslandPageBlock.d.ts} +0 -0
  107. package/IslandPageBlock.jsx +21 -0
  108. package/{types/LabeledTextBlock.d.ts → LabeledTextBlock.d.ts} +0 -0
  109. package/LabeledTextBlock.jsx +21 -0
  110. package/{types/Layout.d.ts → Layout.d.ts} +0 -0
  111. package/Layout.jsx +69 -0
  112. package/{types/MainMenu → MainMenu}/_Auxiliary.d.ts +0 -0
  113. package/MainMenu/_Auxiliary.jsx +26 -0
  114. package/{types/MainMenu → MainMenu}/_PrimaryPanel.d.ts +0 -0
  115. package/MainMenu/_PrimaryPanel.jsx +37 -0
  116. package/{types/MainMenu.d.ts → MainMenu.d.ts} +1 -1
  117. package/MainMenu.jsx +178 -0
  118. package/{types/MiniMetrics.d.ts → MiniMetrics.d.ts} +0 -0
  119. package/MiniMetrics.jsx +16 -0
  120. package/{types/Modal.d.ts → Modal.d.ts} +0 -0
  121. package/Modal.jsx +21 -0
  122. package/{types/NameCard.d.ts → NameCard.d.ts} +0 -0
  123. package/NameCard.jsx +92 -0
  124. package/{types/NameCards.d.ts → NameCards.d.ts} +0 -0
  125. package/NameCards.jsx +14 -0
  126. package/{types/NewsHero.d.ts → NewsHero.d.ts} +0 -0
  127. package/NewsHero.jsx +93 -0
  128. package/{types/PageFilter.d.ts → PageFilter.d.ts} +0 -0
  129. package/PageFilter.jsx +21 -0
  130. package/{types/PageHeading.d.ts → PageHeading.d.ts} +0 -0
  131. package/PageHeading.jsx +19 -0
  132. package/{types/ProcessOverview.d.ts → ProcessOverview.d.ts} +0 -0
  133. package/ProcessOverview.jsx +25 -0
  134. package/{types/PullQuote.d.ts → PullQuote.d.ts} +0 -0
  135. package/PullQuote.jsx +9 -0
  136. package/{types/RadioButtonsGroup.d.ts → RadioButtonsGroup.d.ts} +0 -0
  137. package/RadioButtonsGroup.jsx +19 -0
  138. package/{types/RadioGroup.d.ts → RadioGroup.d.ts} +0 -0
  139. package/RadioGroup.jsx +12 -0
  140. package/{types/RelatedLinks.d.ts → RelatedLinks.d.ts} +0 -0
  141. package/RelatedLinks.jsx +35 -0
  142. package/{types/RowBlock.d.ts → RowBlock.d.ts} +0 -0
  143. package/RowBlock.jsx +16 -0
  144. package/{types/RowBlockColumn.d.ts → RowBlockColumn.d.ts} +0 -0
  145. package/RowBlockColumn.jsx +18 -0
  146. package/{types/SearchInput.d.ts → SearchInput.d.ts} +0 -0
  147. package/SearchInput.jsx +63 -0
  148. package/{types/SearchResults → SearchResults}/_SearchResultsItem.d.ts +0 -0
  149. package/SearchResults/_SearchResultsItem.jsx +24 -0
  150. package/{types/SearchResults.d.ts → SearchResults.d.ts} +0 -0
  151. package/SearchResults.jsx +146 -0
  152. package/{types/SeenEffect.d.ts → SeenEffect.d.ts} +0 -0
  153. package/SeenEffect.jsx +24 -0
  154. package/{types/Selectbox.d.ts → Selectbox.d.ts} +0 -0
  155. package/Selectbox.jsx +74 -0
  156. package/{types/ShareButtons.d.ts → ShareButtons.d.ts} +0 -0
  157. package/ShareButtons.jsx +82 -0
  158. package/{types/Sharpie.d.ts → Sharpie.d.ts} +0 -0
  159. package/Sharpie.jsx +27 -0
  160. package/{types/SiteSearchAutocomplete.d.ts → SiteSearchAutocomplete.d.ts} +0 -0
  161. package/SiteSearchAutocomplete.jsx +89 -0
  162. package/{types/SiteSearchCurtain.d.ts → SiteSearchCurtain.d.ts} +0 -0
  163. package/SiteSearchCurtain.jsx +65 -0
  164. package/SiteSearchInput.d.ts +24 -0
  165. package/SiteSearchInput.jsx +70 -0
  166. package/{types/Skeleton.d.ts → Skeleton.d.ts} +0 -0
  167. package/Skeleton.jsx +35 -0
  168. package/{types/SubHeading.d.ts → SubHeading.d.ts} +0 -0
  169. package/SubHeading.jsx +20 -0
  170. package/{types/Tabs.d.ts → Tabs.d.ts} +0 -0
  171. package/Tabs.jsx +122 -0
  172. package/{types/TagPill.d.ts → TagPill.d.ts} +0 -0
  173. package/TagPill.jsx +53 -0
  174. package/{types/TextBlock.d.ts → TextBlock.d.ts} +0 -0
  175. package/TextBlock.jsx +22 -0
  176. package/{types/TextButton.d.ts → TextButton.d.ts} +0 -0
  177. package/TextButton.jsx +14 -0
  178. package/{types/TextInput.d.ts → TextInput.d.ts} +0 -0
  179. package/TextInput.jsx +63 -0
  180. package/{types/VSpacer.d.ts → VSpacer.d.ts} +0 -0
  181. package/VSpacer.jsx +46 -0
  182. package/{types/VerticalTabsTOC.d.ts → VerticalTabsTOC.d.ts} +0 -0
  183. package/VerticalTabsTOC.jsx +96 -0
  184. package/{types/WizardLayout.d.ts → WizardLayout.d.ts} +0 -0
  185. package/WizardLayout.jsx +44 -0
  186. package/{types/WizardLayoutClose.d.ts → WizardLayoutClose.d.ts} +0 -0
  187. package/WizardLayoutClose.jsx +9 -0
  188. package/{types/WizardStepper.d.ts → WizardStepper.d.ts} +0 -0
  189. package/WizardStepper.jsx +34 -0
  190. package/{types/_abstract → _abstract}/Button.d.ts +0 -0
  191. package/_abstract/Button.jsx +56 -0
  192. package/{types/_abstract → _abstract}/CardList.d.ts +0 -0
  193. package/_abstract/CardList.jsx +46 -0
  194. package/{types/_abstract → _abstract}/Image.d.ts +0 -0
  195. package/_abstract/Image.jsx +34 -0
  196. package/{types/_abstract → _abstract}/Link.d.ts +0 -0
  197. package/_abstract/Link.jsx +31 -0
  198. package/{types/_abstract → _abstract}/TogglerGroup.d.ts +0 -0
  199. package/_abstract/TogglerGroup.jsx +36 -0
  200. package/{types/_abstract → _abstract}/TogglerGroupField.d.ts +0 -0
  201. package/_abstract/TogglerGroupField.jsx +27 -0
  202. package/{types/_abstract → _abstract}/TogglerInput.d.ts +0 -0
  203. package/_abstract/TogglerInput.jsx +40 -0
  204. package/{types/_abstract → _abstract}/_AbstractCarousel.d.ts +0 -0
  205. package/_abstract/_AbstractCarousel.jsx +161 -0
  206. package/{types/_abstract → _abstract}/_Blings.d.ts +0 -0
  207. package/_abstract/_Blings.jsx +19 -0
  208. package/{types/_abstract → _abstract}/_Block.d.ts +0 -0
  209. package/_abstract/_Block.jsx +32 -0
  210. package/{types/_abstract → _abstract}/_Quote.d.ts +0 -0
  211. package/_abstract/_Quote.jsx +18 -0
  212. package/{types/_abstract → _abstract}/breakOnNL.d.ts +0 -0
  213. package/_abstract/breakOnNL.jsx +13 -0
  214. package/{types/assets.d.ts → assets.d.ts} +0 -0
  215. package/assets.js +51 -0
  216. package/{types/constants.d.ts → constants.d.ts} +0 -0
  217. package/constants.js +25 -0
  218. package/esm/AccordionList.d.ts +17 -0
  219. package/esm/AccordionList.jsx +33 -0
  220. package/esm/ActionCards.d.ts +5 -0
  221. package/esm/ActionCards.jsx +10 -0
  222. package/esm/Alert.d.ts +49 -0
  223. package/esm/Alert.jsx +94 -0
  224. package/esm/ArticleCarousel/_ArticleCarouselCard.d.ts +27 -0
  225. package/esm/ArticleCarousel/_ArticleCarouselCard.jsx +25 -0
  226. package/esm/ArticleCarousel.d.ts +12 -0
  227. package/esm/ArticleCarousel.jsx +8 -0
  228. package/esm/ArticleMeta.d.ts +9 -0
  229. package/esm/ArticleMeta.jsx +17 -0
  230. package/esm/Attention.d.ts +7 -0
  231. package/esm/Attention.jsx +4 -0
  232. package/esm/BasicTable.d.ts +12 -0
  233. package/esm/BasicTable.jsx +30 -0
  234. package/esm/Bling.d.ts +81 -0
  235. package/esm/Bling.jsx +44 -0
  236. package/esm/BlockBreak.d.ts +2 -0
  237. package/esm/BlockBreak.jsx +6 -0
  238. package/esm/BlockQuote.d.ts +4 -0
  239. package/esm/BlockQuote.jsx +4 -0
  240. package/esm/BreadCrumbs.d.ts +11 -0
  241. package/esm/BreadCrumbs.jsx +31 -0
  242. package/esm/ButtonBack.d.ts +7 -0
  243. package/esm/ButtonBack.jsx +4 -0
  244. package/esm/ButtonBar.d.ts +16 -0
  245. package/esm/ButtonBar.jsx +16 -0
  246. package/esm/ButtonPrimary.d.ts +7 -0
  247. package/esm/ButtonPrimary.jsx +4 -0
  248. package/esm/ButtonSecondary.d.ts +7 -0
  249. package/esm/ButtonSecondary.jsx +4 -0
  250. package/esm/ButtonTertiary.d.ts +12 -0
  251. package/esm/ButtonTertiary.jsx +15 -0
  252. package/esm/Carousel.d.ts +4 -0
  253. package/esm/Carousel.jsx +4 -0
  254. package/esm/CarouselStepper.d.ts +4 -0
  255. package/esm/CarouselStepper.jsx +4 -0
  256. package/esm/CenterColumn.d.ts +7 -0
  257. package/esm/CenterColumn.jsx +9 -0
  258. package/esm/Checkbox.d.ts +4 -0
  259. package/esm/Checkbox.jsx +4 -0
  260. package/esm/CheckboxButtonsGroup.d.ts +11 -0
  261. package/esm/CheckboxButtonsGroup.jsx +14 -0
  262. package/esm/CheckboxGroup.d.ts +9 -0
  263. package/esm/CheckboxGroup.jsx +7 -0
  264. package/esm/CityBlock.d.ts +23 -0
  265. package/esm/CityBlock.jsx +18 -0
  266. package/esm/ContactBubble.d.ts +58 -0
  267. package/esm/ContactBubble.jsx +162 -0
  268. package/esm/ContentArticle.d.ts +15 -0
  269. package/esm/ContentArticle.jsx +24 -0
  270. package/esm/ContentImage.d.ts +8 -0
  271. package/esm/ContentImage.jsx +13 -0
  272. package/esm/Datepicker.d.ts +39 -0
  273. package/esm/Datepicker.jsx +64 -0
  274. package/esm/ExtraLinks.d.ts +18 -0
  275. package/esm/ExtraLinks.jsx +42 -0
  276. package/esm/FeatureList.d.ts +12 -0
  277. package/esm/FeatureList.jsx +23 -0
  278. package/esm/FieldGroup.d.ts +9 -0
  279. package/esm/FieldGroup.jsx +10 -0
  280. package/esm/FileInput.d.ts +17 -0
  281. package/esm/FileInput.jsx +157 -0
  282. package/esm/Foonote.d.ts +12 -0
  283. package/esm/Foonote.jsx +7 -0
  284. package/esm/FooterBadges.d.ts +9 -0
  285. package/esm/FooterBadges.jsx +16 -0
  286. package/esm/FooterInfo.d.ts +18 -0
  287. package/esm/FooterInfo.jsx +14 -0
  288. package/esm/Footnote.d.ts +6 -0
  289. package/esm/Footnote.jsx +3 -0
  290. package/esm/Form.d.ts +7 -0
  291. package/esm/Form.jsx +12 -0
  292. package/esm/FormField.d.ts +65 -0
  293. package/esm/FormField.jsx +93 -0
  294. package/esm/Gallery/_GalleryItem.d.ts +8 -0
  295. package/esm/Gallery/_GalleryItem.jsx +31 -0
  296. package/esm/Gallery/_GalleryModal.d.ts +6 -0
  297. package/esm/Gallery/_GalleryModal.jsx +58 -0
  298. package/esm/Gallery/_GalleryModalContext.d.ts +9 -0
  299. package/esm/Gallery/_GalleryModalContext.js +3 -0
  300. package/esm/Gallery/_GalleryModalItem.d.ts +3 -0
  301. package/esm/Gallery/_GalleryModalItem.jsx +24 -0
  302. package/esm/Gallery.d.ts +17 -0
  303. package/esm/Gallery.jsx +28 -0
  304. package/esm/GridBlocks.d.ts +26 -0
  305. package/esm/GridBlocks.jsx +35 -0
  306. package/esm/Heading.d.ts +16 -0
  307. package/esm/Heading.jsx +19 -0
  308. package/esm/HeroBlock.d.ts +19 -0
  309. package/esm/HeroBlock.jsx +22 -0
  310. package/esm/IframeBlock.d.ts +23 -0
  311. package/esm/IframeBlock.jsx +26 -0
  312. package/esm/Illustration.d.ts +13 -0
  313. package/esm/Illustration.jsx +8 -0
  314. package/esm/ImageCards.d.ts +8 -0
  315. package/esm/ImageCards.jsx +23 -0
  316. package/esm/InfoBlock.d.ts +17 -0
  317. package/esm/InfoBlock.jsx +18 -0
  318. package/esm/InfoHero.d.ts +17 -0
  319. package/esm/InfoHero.jsx +88 -0
  320. package/esm/IslandBlock.d.ts +25 -0
  321. package/esm/IslandBlock.jsx +16 -0
  322. package/esm/IslandPageBlock.d.ts +24 -0
  323. package/esm/IslandPageBlock.jsx +16 -0
  324. package/esm/LabeledTextBlock.d.ts +11 -0
  325. package/esm/LabeledTextBlock.jsx +16 -0
  326. package/esm/Layout.d.ts +33 -0
  327. package/esm/Layout.jsx +63 -0
  328. package/esm/MainMenu/_Auxiliary.d.ts +6 -0
  329. package/esm/MainMenu/_Auxiliary.jsx +19 -0
  330. package/esm/MainMenu/_PrimaryPanel.d.ts +13 -0
  331. package/esm/MainMenu/_PrimaryPanel.jsx +30 -0
  332. package/esm/MainMenu.d.ts +48 -0
  333. package/esm/MainMenu.jsx +149 -0
  334. package/esm/MiniMetrics.d.ts +8 -0
  335. package/esm/MiniMetrics.jsx +11 -0
  336. package/esm/Modal.d.ts +10 -0
  337. package/esm/Modal.jsx +16 -0
  338. package/esm/NameCard.d.ts +64 -0
  339. package/esm/NameCard.jsx +87 -0
  340. package/esm/NameCards.d.ts +6 -0
  341. package/esm/NameCards.jsx +9 -0
  342. package/esm/NewsHero.d.ts +14 -0
  343. package/esm/NewsHero.jsx +88 -0
  344. package/esm/PageFilter.d.ts +17 -0
  345. package/esm/PageFilter.jsx +16 -0
  346. package/esm/PageHeading.d.ts +10 -0
  347. package/esm/PageHeading.jsx +14 -0
  348. package/esm/ProcessOverview.d.ts +13 -0
  349. package/esm/ProcessOverview.jsx +20 -0
  350. package/esm/PullQuote.d.ts +4 -0
  351. package/esm/PullQuote.jsx +4 -0
  352. package/esm/RadioButtonsGroup.d.ts +11 -0
  353. package/esm/RadioButtonsGroup.jsx +14 -0
  354. package/esm/RadioGroup.d.ts +13 -0
  355. package/esm/RadioGroup.jsx +7 -0
  356. package/esm/RelatedLinks.d.ts +20 -0
  357. package/esm/RelatedLinks.jsx +30 -0
  358. package/esm/RowBlock.d.ts +12 -0
  359. package/esm/RowBlock.jsx +11 -0
  360. package/esm/RowBlockColumn.d.ts +8 -0
  361. package/esm/RowBlockColumn.jsx +13 -0
  362. package/esm/SearchInput.d.ts +18 -0
  363. package/esm/SearchInput.jsx +35 -0
  364. package/esm/SearchResults/_SearchResultsItem.d.ts +18 -0
  365. package/esm/SearchResults/_SearchResultsItem.jsx +19 -0
  366. package/esm/SearchResults.d.ts +33 -0
  367. package/esm/SearchResults.jsx +118 -0
  368. package/esm/SeenEffect.d.ts +4 -0
  369. package/esm/SeenEffect.jsx +19 -0
  370. package/esm/Selectbox.d.ts +8 -0
  371. package/esm/Selectbox.jsx +46 -0
  372. package/esm/ShareButtons.d.ts +9 -0
  373. package/esm/ShareButtons.jsx +57 -0
  374. package/esm/Sharpie.d.ts +23 -0
  375. package/esm/Sharpie.jsx +22 -0
  376. package/esm/SiteSearchAutocomplete.d.ts +40 -0
  377. package/esm/SiteSearchAutocomplete.jsx +60 -0
  378. package/esm/SiteSearchCurtain.d.ts +6 -0
  379. package/esm/SiteSearchCurtain.jsx +37 -0
  380. package/esm/SiteSearchInput.d.ts +24 -0
  381. package/esm/SiteSearchInput.jsx +42 -0
  382. package/esm/Skeleton.d.ts +25 -0
  383. package/esm/Skeleton.jsx +30 -0
  384. package/esm/SubHeading.d.ts +10 -0
  385. package/esm/SubHeading.jsx +15 -0
  386. package/esm/Tabs.d.ts +35 -0
  387. package/esm/Tabs.jsx +94 -0
  388. package/esm/TagPill.d.ts +27 -0
  389. package/esm/TagPill.jsx +48 -0
  390. package/esm/TextBlock.d.ts +15 -0
  391. package/esm/TextBlock.jsx +17 -0
  392. package/esm/TextButton.d.ts +9 -0
  393. package/esm/TextButton.jsx +9 -0
  394. package/esm/TextInput.d.ts +16 -0
  395. package/esm/TextInput.jsx +35 -0
  396. package/esm/VSpacer.d.ts +24 -0
  397. package/esm/VSpacer.jsx +41 -0
  398. package/esm/VerticalTabsTOC.d.ts +14 -0
  399. package/esm/VerticalTabsTOC.jsx +68 -0
  400. package/esm/WizardLayout.d.ts +15 -0
  401. package/esm/WizardLayout.jsx +39 -0
  402. package/esm/WizardLayoutClose.d.ts +3 -0
  403. package/esm/WizardLayoutClose.jsx +4 -0
  404. package/esm/WizardStepper.d.ts +36 -0
  405. package/esm/WizardStepper.jsx +29 -0
  406. package/esm/_abstract/Button.d.ts +40 -0
  407. package/esm/_abstract/Button.jsx +51 -0
  408. package/esm/_abstract/CardList.d.ts +29 -0
  409. package/esm/_abstract/CardList.jsx +39 -0
  410. package/esm/_abstract/Image.d.ts +32 -0
  411. package/esm/_abstract/Image.jsx +29 -0
  412. package/esm/_abstract/Link.d.ts +27 -0
  413. package/esm/_abstract/Link.jsx +24 -0
  414. package/esm/_abstract/TogglerGroup.d.ts +31 -0
  415. package/esm/_abstract/TogglerGroup.jsx +31 -0
  416. package/esm/_abstract/TogglerGroupField.d.ts +17 -0
  417. package/esm/_abstract/TogglerGroupField.jsx +22 -0
  418. package/esm/_abstract/TogglerInput.d.ts +22 -0
  419. package/esm/_abstract/TogglerInput.jsx +35 -0
  420. package/esm/_abstract/_AbstractCarousel.d.ts +25 -0
  421. package/esm/_abstract/_AbstractCarousel.jsx +133 -0
  422. package/esm/_abstract/_Blings.d.ts +11 -0
  423. package/esm/_abstract/_Blings.jsx +14 -0
  424. package/esm/_abstract/_Block.d.ts +22 -0
  425. package/esm/_abstract/_Block.jsx +27 -0
  426. package/esm/_abstract/_Quote.d.ts +9 -0
  427. package/esm/_abstract/_Quote.jsx +11 -0
  428. package/esm/_abstract/breakOnNL.d.ts +2 -0
  429. package/esm/_abstract/breakOnNL.jsx +8 -0
  430. package/esm/assets.d.ts +42 -0
  431. package/esm/assets.js +56 -0
  432. package/esm/constants.d.ts +39 -0
  433. package/esm/constants.js +22 -0
  434. package/{types → esm}/focus-visible.d.ts +0 -0
  435. package/esm/focus-visible.js +1 -0
  436. package/esm/package.json +1 -0
  437. package/{types → esm}/utils/env.d.ts +0 -0
  438. package/esm/utils/env.js +8 -0
  439. package/{types → esm}/utils/seenEffect.d.ts +0 -0
  440. package/esm/utils/seenEffect.js +73 -0
  441. package/{types → esm}/utils/useFormatMonitor.d.ts +0 -0
  442. package/esm/utils/useFormatMonitor.js +41 -0
  443. package/{types → esm}/utils/useGetSVGtext.d.ts +0 -0
  444. package/esm/utils/useGetSVGtext.js +19 -0
  445. package/{types → esm}/utils/useMenuToggling.d.ts +0 -0
  446. package/esm/utils/useMenuToggling.js +62 -0
  447. package/{types → esm}/utils/useScrollbarWidthCSSVar.d.ts +0 -0
  448. package/esm/utils/useScrollbarWidthCSSVar.js +3 -0
  449. package/{types → esm}/utils.d.ts +0 -0
  450. package/esm/utils.js +2 -0
  451. package/focus-visible.d.ts +1 -0
  452. package/focus-visible.js +3 -0
  453. package/package.json +362 -452
  454. package/utils/env.d.ts +1 -0
  455. package/utils/env.js +14 -0
  456. package/utils/seenEffect.d.ts +28 -0
  457. package/utils/seenEffect.js +81 -0
  458. package/utils/useFormatMonitor.d.ts +38 -0
  459. package/utils/useFormatMonitor.js +44 -0
  460. package/utils/useGetSVGtext.d.ts +6 -0
  461. package/utils/useGetSVGtext.js +23 -0
  462. package/utils/useMenuToggling.d.ts +8 -0
  463. package/utils/useMenuToggling.js +66 -0
  464. package/utils/useScrollbarWidthCSSVar.d.ts +1 -0
  465. package/utils/useScrollbarWidthCSSVar.js +10 -0
  466. package/utils.d.ts +2 -0
  467. package/utils.js +18 -0
  468. package/lib/AccordionList.cjs +0 -91
  469. package/lib/AccordionList.mjs +0 -69
  470. package/lib/ActionCards.cjs +0 -57
  471. package/lib/ActionCards.mjs +0 -35
  472. package/lib/Alert.cjs +0 -159
  473. package/lib/Alert.mjs +0 -139
  474. package/lib/ArticleCarousel/_ArticleCarouselCard.cjs +0 -75
  475. package/lib/ArticleCarousel/_ArticleCarouselCard.mjs +0 -51
  476. package/lib/ArticleCarousel.cjs +0 -43
  477. package/lib/ArticleCarousel.mjs +0 -21
  478. package/lib/ArticleMeta.cjs +0 -46
  479. package/lib/ArticleMeta.mjs +0 -22
  480. package/lib/Attention.cjs +0 -33
  481. package/lib/Attention.mjs +0 -9
  482. package/lib/BasicTable.cjs +0 -72
  483. package/lib/BasicTable.mjs +0 -50
  484. package/lib/Bling.cjs +0 -76
  485. package/lib/Bling.mjs +0 -52
  486. package/lib/BlockBreak.cjs +0 -32
  487. package/lib/BlockBreak.mjs +0 -8
  488. package/lib/BlockQuote.cjs +0 -47
  489. package/lib/BlockQuote.mjs +0 -25
  490. package/lib/BreadCrumbs.cjs +0 -67
  491. package/lib/BreadCrumbs.mjs +0 -43
  492. package/lib/ButtonBack.cjs +0 -47
  493. package/lib/ButtonBack.mjs +0 -25
  494. package/lib/ButtonBar.cjs +0 -45
  495. package/lib/ButtonBar.mjs +0 -18
  496. package/lib/ButtonPrimary.cjs +0 -47
  497. package/lib/ButtonPrimary.mjs +0 -25
  498. package/lib/ButtonSecondary.cjs +0 -47
  499. package/lib/ButtonSecondary.mjs +0 -25
  500. package/lib/ButtonTertiary.cjs +0 -64
  501. package/lib/ButtonTertiary.mjs +0 -42
  502. package/lib/Carousel.cjs +0 -52
  503. package/lib/Carousel.mjs +0 -30
  504. package/lib/CarouselStepper.cjs +0 -51
  505. package/lib/CarouselStepper.mjs +0 -29
  506. package/lib/CenterColumn.cjs +0 -40
  507. package/lib/CenterColumn.mjs +0 -16
  508. package/lib/Checkbox.cjs +0 -52
  509. package/lib/Checkbox.mjs +0 -30
  510. package/lib/CheckboxButtonsGroup.cjs +0 -65
  511. package/lib/CheckboxButtonsGroup.mjs +0 -43
  512. package/lib/CheckboxGroup.cjs +0 -55
  513. package/lib/CheckboxGroup.mjs +0 -33
  514. package/lib/CityBlock.cjs +0 -49
  515. package/lib/CityBlock.mjs +0 -25
  516. package/lib/ContactBubble.cjs +0 -200
  517. package/lib/ContactBubble.mjs +0 -173
  518. package/lib/ContentArticle.cjs +0 -63
  519. package/lib/ContentArticle.mjs +0 -41
  520. package/lib/ContentImage.cjs +0 -58
  521. package/lib/ContentImage.mjs +0 -36
  522. package/lib/Datepicker.cjs +0 -164
  523. package/lib/Datepicker.mjs +0 -142
  524. package/lib/ExtraLinks.cjs +0 -96
  525. package/lib/ExtraLinks.mjs +0 -74
  526. package/lib/FeatureList.cjs +0 -53
  527. package/lib/FeatureList.mjs +0 -29
  528. package/lib/FieldGroup.cjs +0 -40
  529. package/lib/FieldGroup.mjs +0 -16
  530. package/lib/FileInput.cjs +0 -256
  531. package/lib/FileInput.mjs +0 -234
  532. package/lib/Foonote.cjs +0 -30
  533. package/lib/Foonote.mjs +0 -6
  534. package/lib/FooterBadges.cjs +0 -49
  535. package/lib/FooterBadges.mjs +0 -25
  536. package/lib/FooterInfo.cjs +0 -47
  537. package/lib/FooterInfo.mjs +0 -23
  538. package/lib/Footnote.cjs +0 -32
  539. package/lib/Footnote.mjs +0 -8
  540. package/lib/Form.cjs +0 -56
  541. package/lib/Form.mjs +0 -34
  542. package/lib/FormField.cjs +0 -153
  543. package/lib/FormField.mjs +0 -131
  544. package/lib/Gallery/_GalleryItem.cjs +0 -83
  545. package/lib/Gallery/_GalleryItem.mjs +0 -61
  546. package/lib/Gallery/_GalleryModal.cjs +0 -104
  547. package/lib/Gallery/_GalleryModal.mjs +0 -82
  548. package/lib/Gallery/_GalleryModalContext.cjs +0 -30
  549. package/lib/Gallery/_GalleryModalContext.mjs +0 -6
  550. package/lib/Gallery/_GalleryModalItem.cjs +0 -59
  551. package/lib/Gallery/_GalleryModalItem.mjs +0 -36
  552. package/lib/Gallery.cjs +0 -79
  553. package/lib/Gallery.mjs +0 -57
  554. package/lib/GridBlocks.cjs +0 -81
  555. package/lib/GridBlocks.mjs +0 -59
  556. package/lib/Heading.cjs +0 -45
  557. package/lib/Heading.mjs +0 -21
  558. package/lib/HeroBlock.cjs +0 -74
  559. package/lib/HeroBlock.mjs +0 -52
  560. package/lib/IframeBlock.cjs +0 -48
  561. package/lib/IframeBlock.mjs +0 -24
  562. package/lib/Illustration.cjs +0 -51
  563. package/lib/Illustration.mjs +0 -31
  564. package/lib/ImageCards.cjs +0 -72
  565. package/lib/ImageCards.mjs +0 -52
  566. package/lib/InfoBlock.cjs +0 -51
  567. package/lib/InfoBlock.mjs +0 -27
  568. package/lib/InfoHero.cjs +0 -150
  569. package/lib/InfoHero.mjs +0 -128
  570. package/lib/IslandBlock.cjs +0 -63
  571. package/lib/IslandBlock.mjs +0 -41
  572. package/lib/IslandPageBlock.cjs +0 -49
  573. package/lib/IslandPageBlock.mjs +0 -25
  574. package/lib/LabeledTextBlock.cjs +0 -60
  575. package/lib/LabeledTextBlock.mjs +0 -38
  576. package/lib/Layout.cjs +0 -113
  577. package/lib/Layout.mjs +0 -87
  578. package/lib/MainMenu/_Auxiliary.cjs +0 -54
  579. package/lib/MainMenu/_Auxiliary.mjs +0 -28
  580. package/lib/MainMenu/_PrimaryPanel.cjs +0 -74
  581. package/lib/MainMenu/_PrimaryPanel.mjs +0 -48
  582. package/lib/MainMenu.cjs +0 -209
  583. package/lib/MainMenu.mjs +0 -187
  584. package/lib/MiniMetrics.cjs +0 -56
  585. package/lib/MiniMetrics.mjs +0 -34
  586. package/lib/Modal.cjs +0 -70
  587. package/lib/Modal.mjs +0 -48
  588. package/lib/NameCard.cjs +0 -115
  589. package/lib/NameCard.mjs +0 -91
  590. package/lib/NameCards.cjs +0 -52
  591. package/lib/NameCards.mjs +0 -30
  592. package/lib/NewsHero.cjs +0 -136
  593. package/lib/NewsHero.mjs +0 -114
  594. package/lib/PageFilter.cjs +0 -48
  595. package/lib/PageFilter.mjs +0 -24
  596. package/lib/PageHeading.cjs +0 -42
  597. package/lib/PageHeading.mjs +0 -18
  598. package/lib/ProcessOverview.cjs +0 -52
  599. package/lib/ProcessOverview.mjs +0 -28
  600. package/lib/PullQuote.cjs +0 -47
  601. package/lib/PullQuote.mjs +0 -25
  602. package/lib/RadioButtonsGroup.cjs +0 -64
  603. package/lib/RadioButtonsGroup.mjs +0 -42
  604. package/lib/RadioGroup.cjs +0 -58
  605. package/lib/RadioGroup.mjs +0 -36
  606. package/lib/RelatedLinks.cjs +0 -61
  607. package/lib/RelatedLinks.mjs +0 -37
  608. package/lib/RowBlock.cjs +0 -39
  609. package/lib/RowBlock.mjs +0 -15
  610. package/lib/RowBlockColumn.cjs +0 -40
  611. package/lib/RowBlockColumn.mjs +0 -16
  612. package/lib/SearchInput.cjs +0 -136
  613. package/lib/SearchInput.mjs +0 -114
  614. package/lib/SearchResults/_SearchResultsItem.cjs +0 -54
  615. package/lib/SearchResults/_SearchResultsItem.mjs +0 -30
  616. package/lib/SearchResults.cjs +0 -172
  617. package/lib/SearchResults.mjs +0 -150
  618. package/lib/SeenEffect.cjs +0 -66
  619. package/lib/SeenEffect.mjs +0 -44
  620. package/lib/Selectbox.cjs +0 -144
  621. package/lib/Selectbox.mjs +0 -122
  622. package/lib/ShareButtons.cjs +0 -101
  623. package/lib/ShareButtons.mjs +0 -83
  624. package/lib/Sharpie.cjs +0 -51
  625. package/lib/Sharpie.mjs +0 -27
  626. package/lib/SiteSearchAutocomplete.cjs +0 -150
  627. package/lib/SiteSearchAutocomplete.mjs +0 -126
  628. package/lib/SiteSearchCurtain.cjs +0 -78
  629. package/lib/SiteSearchCurtain.mjs +0 -56
  630. package/lib/SiteSearchInput.cjs +0 -119
  631. package/lib/SiteSearchInput.mjs +0 -97
  632. package/lib/Skeleton.cjs +0 -63
  633. package/lib/Skeleton.mjs +0 -39
  634. package/lib/SubHeading.cjs +0 -43
  635. package/lib/SubHeading.mjs +0 -19
  636. package/lib/Tabs.cjs +0 -166
  637. package/lib/Tabs.mjs +0 -144
  638. package/lib/TagPill.cjs +0 -113
  639. package/lib/TagPill.mjs +0 -91
  640. package/lib/TextBlock.cjs +0 -45
  641. package/lib/TextBlock.mjs +0 -21
  642. package/lib/TextButton.cjs +0 -55
  643. package/lib/TextButton.mjs +0 -33
  644. package/lib/TextInput.cjs +0 -136
  645. package/lib/TextInput.mjs +0 -114
  646. package/lib/VSpacer.cjs +0 -70
  647. package/lib/VSpacer.mjs +0 -46
  648. package/lib/VerticalTabsTOC.cjs +0 -123
  649. package/lib/VerticalTabsTOC.mjs +0 -101
  650. package/lib/WizardLayout.cjs +0 -79
  651. package/lib/WizardLayout.mjs +0 -55
  652. package/lib/WizardLayoutClose.cjs +0 -47
  653. package/lib/WizardLayoutClose.mjs +0 -25
  654. package/lib/WizardStepper.cjs +0 -55
  655. package/lib/WizardStepper.mjs +0 -31
  656. package/lib/_abstract/Button.cjs +0 -114
  657. package/lib/_abstract/Button.mjs +0 -92
  658. package/lib/_abstract/CardList.cjs +0 -100
  659. package/lib/_abstract/CardList.mjs +0 -76
  660. package/lib/_abstract/Image.cjs +0 -75
  661. package/lib/_abstract/Image.mjs +0 -51
  662. package/lib/_abstract/Link.cjs +0 -37
  663. package/lib/_abstract/Link.mjs +0 -10
  664. package/lib/_abstract/TogglerGroup.cjs +0 -92
  665. package/lib/_abstract/TogglerGroup.mjs +0 -70
  666. package/lib/_abstract/TogglerGroupField.cjs +0 -121
  667. package/lib/_abstract/TogglerGroupField.mjs +0 -99
  668. package/lib/_abstract/TogglerInput.cjs +0 -105
  669. package/lib/_abstract/TogglerInput.mjs +0 -83
  670. package/lib/_abstract/_AbstractCarousel.cjs +0 -170
  671. package/lib/_abstract/_AbstractCarousel.mjs +0 -152
  672. package/lib/_abstract/_Blings.cjs +0 -47
  673. package/lib/_abstract/_Blings.mjs +0 -23
  674. package/lib/_abstract/_Block.cjs +0 -73
  675. package/lib/_abstract/_Block.mjs +0 -51
  676. package/lib/_abstract/_Quote.cjs +0 -43
  677. package/lib/_abstract/_Quote.mjs +0 -17
  678. package/lib/_abstract/breakOnNL.cjs +0 -30
  679. package/lib/_abstract/breakOnNL.mjs +0 -6
  680. package/lib/assets.cjs +0 -77
  681. package/lib/assets.mjs +0 -53
  682. package/lib/constants.cjs +0 -49
  683. package/lib/constants.mjs +0 -24
  684. package/lib/focus-visible.cjs +0 -1
  685. package/lib/focus-visible.mjs +0 -1
  686. package/lib/utils/config.cjs +0 -27
  687. package/lib/utils/config.mjs +0 -4
  688. package/lib/utils/detectEdgeScroll.cjs +0 -95
  689. package/lib/utils/detectEdgeScroll.mjs +0 -71
  690. package/lib/utils/env.cjs +0 -31
  691. package/lib/utils/env.mjs +0 -5
  692. package/lib/utils/seenEffect.cjs +0 -93
  693. package/lib/utils/seenEffect.mjs +0 -65
  694. package/lib/utils/useFormatMonitor.cjs +0 -29
  695. package/lib/utils/useFormatMonitor.mjs +0 -6
  696. package/lib/utils/useGetSVGtext.cjs +0 -44
  697. package/lib/utils/useGetSVGtext.mjs +0 -21
  698. package/lib/utils/useMenuToggling.cjs +0 -83
  699. package/lib/utils/useMenuToggling.mjs +0 -60
  700. package/lib/utils/useScrollbarWidthCSSVar.cjs +0 -32
  701. package/lib/utils/useScrollbarWidthCSSVar.mjs +0 -6
  702. package/lib/utils.cjs +0 -18
  703. package/lib/utils.mjs +0 -2
  704. package/types/SiteSearchInput.d.ts +0 -24
  705. package/types/utils/config.d.ts +0 -2
  706. package/types/utils/detectEdgeScroll.d.ts +0 -52
File without changes
package/assets.js ADDED
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.auxiliary_menu_images = exports.efnistakn_menu = exports.getCssBundleUrl = exports.illustrations = exports.getIllustrationUrl = exports.getFormheimurUrl = exports.getEfnistaknUrl = exports.getBlingUrl = exports.getAssetUrl = exports.efnistakn = exports.blingTypes = void 0;
4
+ const hanna_css_1 = require("@reykjavik/hanna-css");
5
+ const assets_1 = require("@reykjavik/hanna-utils/assets");
6
+ Object.defineProperty(exports, "blingTypes", { enumerable: true, get: function () { return assets_1.blingTypes; } });
7
+ Object.defineProperty(exports, "efnistakn", { enumerable: true, get: function () { return assets_1.efnistakn; } });
8
+ Object.defineProperty(exports, "getAssetUrl", { enumerable: true, get: function () { return assets_1.getAssetUrl; } });
9
+ Object.defineProperty(exports, "getBlingUrl", { enumerable: true, get: function () { return assets_1.getBlingUrl; } });
10
+ Object.defineProperty(exports, "getEfnistaknUrl", { enumerable: true, get: function () { return assets_1.getEfnistaknUrl; } });
11
+ Object.defineProperty(exports, "getFormheimurUrl", { enumerable: true, get: function () { return assets_1.getFormheimurUrl; } });
12
+ Object.defineProperty(exports, "getIllustrationUrl", { enumerable: true, get: function () { return assets_1.getIllustrationUrl; } });
13
+ Object.defineProperty(exports, "illustrations", { enumerable: true, get: function () { return assets_1.illustrations; } });
14
+ /** @deprecated Use `getCssBundleUrl` from '@reykjavik/hanna-css' instead (Will be reomved in v0.11) */
15
+ const getCssBundleUrl = (cssTokens,
16
+ /** If you want to pin your CSS files to a specific version */
17
+ version) => (0, hanna_css_1.getCssBundleUrl)(cssTokens, { version });
18
+ exports.getCssBundleUrl = getCssBundleUrl;
19
+ // ---------------------------------------------------------------------------
20
+ // Based on "https://styles.reykjavik.is/assets/efnistakn/menu/files.json"
21
+ /** @deprecated (Will be removed in v0.11) */
22
+ exports.efnistakn_menu = [
23
+ 'menu/borgarstjori',
24
+ 'menu/borgarstjorn',
25
+ 'menu/bygg_framkv',
26
+ 'menu/fjarmal',
27
+ 'menu/fundargerdir',
28
+ 'menu/itrottir_aftreying',
29
+ 'menu/log_reglugerdir',
30
+ 'menu/mannaudur',
31
+ 'menu/menning',
32
+ 'menu/rad_nefndir',
33
+ 'menu/skipulag',
34
+ 'menu/skolar_fristund',
35
+ 'menu/svid_deildir',
36
+ 'menu/umhverfi_samgongur',
37
+ 'menu/velferd_fjolskylda',
38
+ ];
39
+ // ---------------------------------------------------------------------------
40
+ /** @deprecated (Will be removed in v0.11) */
41
+ exports.auxiliary_menu_images = [
42
+ 'hanna-veitiggi',
43
+ 'hanna-vandro',
44
+ 'hanna-hugsi',
45
+ 'hanna-hissa',
46
+ 'hanna-hahaha',
47
+ 'hanna-hae',
48
+ 'hanna-god_spurning',
49
+ 'hanna-gjuggiborg',
50
+ 'hanna-benda',
51
+ ];
File without changes
package/constants.js ADDED
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.aligns = exports.themeOptions = exports.colorFamilies = void 0;
4
+ const hanna_css_1 = require("@reykjavik/hanna-css");
5
+ /** @depcrecated import `colorFamilies` from `@reykjavik/hanna-css` instead (Will be removed in v0.11) */
6
+ exports.colorFamilies = Object.assign([
7
+ 'esja',
8
+ 'faxafloi',
9
+ 'nautholsvik',
10
+ 'heidmork',
11
+ 'ellidaardalur',
12
+ 'blafjoll',
13
+ 'sund',
14
+ 'rokkur',
15
+ 'suld',
16
+ ], hanna_css_1.colorFamilies, {
17
+ /** @deprecated This is a typo (Will be removed in v0.11) */
18
+ ellidarardalur: 'ellidaardalur',
19
+ });
20
+ /** @depcrecated import `colorThemes` from `@reykjavik/hanna-css` instead (Will be removed in v0.11) */
21
+ exports.themeOptions = Object.assign(['trustworthy', 'dependable', 'friendly', 'lively', 'colorful'], hanna_css_1.colorThemes);
22
+ exports.aligns = {
23
+ right: true,
24
+ left: true,
25
+ };
@@ -0,0 +1,17 @@
1
+ import { SSRSupport } from '@hugsmidjan/react/hooks';
2
+ import { SeenProp } from './utils/seenEffect';
3
+ declare type AccordionListItemProps = {
4
+ title: string | JSX.Element;
5
+ content: string | JSX.Element | undefined;
6
+ id?: string;
7
+ disabled?: boolean;
8
+ };
9
+ export declare type AccordionListProps = {
10
+ items: Array<AccordionListItemProps>;
11
+ ssr?: SSRSupport;
12
+ wide?: boolean;
13
+ /** Index of those items that should start open */
14
+ defaultOpen?: Array<number>;
15
+ } & SeenProp;
16
+ declare const AccordionList: (props: AccordionListProps) => JSX.Element;
17
+ export default AccordionList;
@@ -0,0 +1,33 @@
1
+ import React, { useEffect, useState } from 'react';
2
+ import { useDomid, useIsBrowserSide } from '@hugsmidjan/react/hooks';
3
+ import getBemClass from '@hugsmidjan/react/utils/getBemClass';
4
+ import { useSeenEffect } from './utils/seenEffect';
5
+ const AccordionListItem = (props) => {
6
+ const { title, content, id, disabled = false, defaultOpen, ssr } = props;
7
+ const [open, setOpen] = useState(defaultOpen);
8
+ useEffect(() => setOpen(defaultOpen), [defaultOpen]);
9
+ const domid = useDomid();
10
+ const isBrowser = useIsBrowserSide(ssr);
11
+ const itemDisabled = (isBrowser && disabled) || !content;
12
+ return (<div className={getBemClass('AccordionList__item', [itemDisabled && 'disabled'])} id={id} data-start-open={defaultOpen || undefined} data-sprinkled={isBrowser}>
13
+ <h3 className="AccordionList__title">
14
+ {isBrowser ? (<button type="button" className="AccordionList__button" aria-controls={domid} aria-expanded={open || undefined} onClick={() => {
15
+ setOpen(!open);
16
+ }} disabled={itemDisabled}>
17
+ {title}
18
+ </button>) : (title)}
19
+ </h3>
20
+ <div id={isBrowser && domid} className="AccordionList__content" hidden={isBrowser && (!open || itemDisabled)}>
21
+ {content}
22
+ </div>
23
+ </div>);
24
+ };
25
+ // ---------------------------------------------------------------------------
26
+ const AccordionList = (props) => {
27
+ const { items, ssr, wide, defaultOpen, startSeen } = props;
28
+ const [ref] = useSeenEffect(startSeen);
29
+ return (<div className={getBemClass('AccordionList', [wide && 'wide'])} ref={ref}>
30
+ {items.map((item, i) => (<AccordionListItem key={i} {...item} ssr={ssr} defaultOpen={defaultOpen && defaultOpen.includes(i)}/>))}
31
+ </div>);
32
+ };
33
+ export default AccordionList;
@@ -0,0 +1,5 @@
1
+ import { TextCardListProps } from './_abstract/CardList';
2
+ import { SeenProp } from './utils/seenEffect';
3
+ export declare type ActionCardsProps = TextCardListProps & SeenProp;
4
+ declare const ActionCards: (props: ActionCardsProps) => JSX.Element;
5
+ export default ActionCards;
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { CardList } from './_abstract/CardList';
3
+ import { useSeenEffect } from './utils/seenEffect';
4
+ const ActionCards = (props) => {
5
+ const [ref] = useSeenEffect(props.startSeen);
6
+ return (<div className="ActionCards" ref={ref}>
7
+ <CardList {...props} bemPrefix="ActionCards"/>
8
+ </div>);
9
+ };
10
+ export default ActionCards;
package/esm/Alert.d.ts ADDED
@@ -0,0 +1,49 @@
1
+ import { MouseEvent, ReactNode } from 'react';
2
+ import { SSRSupport } from '@hugsmidjan/react/hooks';
3
+ import { DefaultTexts } from '@reykjavik/hanna-utils/i18n';
4
+ export declare type AlertI18n = {
5
+ closeLabel: string;
6
+ closeLabelLong?: string;
7
+ };
8
+ export declare const defaultAlertTexts: DefaultTexts<AlertI18n>;
9
+ export declare const alertTypes: {
10
+ info: number;
11
+ success: number;
12
+ warning: number;
13
+ error: number;
14
+ critical: number;
15
+ };
16
+ declare type AlertType = keyof typeof alertTypes;
17
+ export declare type AlertProps = {
18
+ type: AlertType;
19
+ closable?: boolean;
20
+ children?: ReactNode;
21
+ childrenHTML?: string;
22
+ /** server-side anchor href */
23
+ closeUrl?: string;
24
+ texts?: AlertI18n;
25
+ lang?: string;
26
+ ssr?: SSRSupport;
27
+ } & ({
28
+ /** Seconds until the Alert auto-closes.
29
+ *
30
+ * Mosueover and keyboard focus resets the timer.
31
+ */
32
+ autoClose: number;
33
+ /** Return `false` to prevent the alert from closing. */
34
+ onClose?: () => void | boolean;
35
+ /** Callback that fires when the alert has closed/transitoned out */
36
+ onClosed: () => void;
37
+ } | {
38
+ autoClose?: never;
39
+ /**
40
+ * @deprecated This signature with the `event` argument will be removed in hanna-react v0.9
41
+ *
42
+ * Return `false` to prevent the alert from closing
43
+ */
44
+ onClose?(event: MouseEvent): void | boolean;
45
+ /** Callback that fires after the alert has closed/transitoned out */
46
+ onClosed?(): void;
47
+ });
48
+ declare const Alert: (props: AlertProps) => JSX.Element;
49
+ export default Alert;
package/esm/Alert.jsx ADDED
@@ -0,0 +1,94 @@
1
+ import React, { useCallback, useEffect, useRef, useState, } from 'react';
2
+ import { useIsBrowserSide, useOnMount } from '@hugsmidjan/react/hooks';
3
+ import getBemClass from '@hugsmidjan/react/utils/getBemClass';
4
+ import { getTexts } from '@reykjavik/hanna-utils/i18n';
5
+ import Button from './_abstract/Button';
6
+ import { isPreact } from './utils/env';
7
+ // FIXME: Eventually import from @reykjavik/hanna-styles/constants
8
+ const AlertCloseTransitionDuration = 400;
9
+ const useAutoClosing = (autoClose) => {
10
+ const [temp, setTemp] = useState(0);
11
+ if (!autoClose) {
12
+ return { autoClosing: false };
13
+ }
14
+ const thaw = () => setTemp((temp) => temp + 1);
15
+ const freeze = () => setTemp((temp) => temp - 1);
16
+ return {
17
+ autoClosing: temp === 0,
18
+ autoClosingProps: Object.assign({ onMouseEnter: freeze, onMouseLeave: thaw, onFocus: freeze, onBlur: thaw }, (isPreact
19
+ ? {
20
+ onfocusin: (e) => e.currentTarget !== e.target && freeze(),
21
+ onfocusout: (e) => e.currentTarget !== e.target && thaw(),
22
+ }
23
+ : undefined)),
24
+ };
25
+ };
26
+ export const defaultAlertTexts = {
27
+ en: { closeLabel: 'Hide' },
28
+ is: { closeLabel: 'Fela' },
29
+ };
30
+ export const alertTypes = {
31
+ info: 1,
32
+ success: 1,
33
+ warning: 1,
34
+ error: 1,
35
+ critical: 1,
36
+ };
37
+ const Alert = (props) => {
38
+ const { type, childrenHTML, children, onClose, closeUrl, closable = !!(onClose || closeUrl != null), ssr, onClosed, } = props;
39
+ const autoClose = props.autoClose && props.autoClose > 0 ? props.autoClose : 0;
40
+ const closing = useRef();
41
+ const [open, setOpen] = useState(!!ssr);
42
+ const isBrowser = useIsBrowserSide(ssr);
43
+ const showCloseButton = closable && (isBrowser || closeUrl != null);
44
+ const { closeLabel, closeLabelLong } = getTexts(props, defaultAlertTexts);
45
+ useOnMount(() => {
46
+ setOpen(true);
47
+ });
48
+ const closeAlert = useCallback((event) => {
49
+ const ret = onClose &&
50
+ // @ts-expect-error (@deprecated `event` parameter will be removed in v0.9)
51
+ onClose(event);
52
+ if (ret !== false) {
53
+ setOpen(false);
54
+ if (closing.current) {
55
+ clearTimeout(closing.current);
56
+ closing.current = undefined;
57
+ }
58
+ closing.current = setTimeout(() => {
59
+ onClosed && onClosed();
60
+ }, AlertCloseTransitionDuration);
61
+ }
62
+ }, [onClose, onClosed]);
63
+ const { autoClosing, autoClosingProps } = useAutoClosing(autoClose);
64
+ useEffect(() => {
65
+ if (autoClosing) {
66
+ let autoCloseTimeout;
67
+ autoCloseTimeout = setTimeout(() => {
68
+ closeAlert();
69
+ }, autoClose * 1000);
70
+ return () => {
71
+ if (autoCloseTimeout) {
72
+ clearTimeout(autoCloseTimeout);
73
+ autoCloseTimeout = undefined;
74
+ }
75
+ if (closing.current) {
76
+ clearTimeout(closing.current);
77
+ closing.current = undefined;
78
+ }
79
+ };
80
+ }
81
+ }, [closeAlert, autoClosing, autoClose]);
82
+ return (<div className={getBemClass('Alert', [
83
+ !!alertTypes[type] && type,
84
+ closable && 'closable',
85
+ ])} role="alert" hidden={!open || undefined} {...autoClosingProps}>
86
+ {childrenHTML ? (<div dangerouslySetInnerHTML={{ __html: childrenHTML }}/>) : (children)}{' '}
87
+ {showCloseButton && (<Button bem="Alert__close" {...(closeUrl != null ? { href: closeUrl } : { type: 'button' })} onClick={(e) => {
88
+ closeAlert(e);
89
+ }} aria-label={closeLabelLong} title={closeLabelLong || closeLabel}>
90
+ {closeLabel}
91
+ </Button>)}
92
+ </div>);
93
+ };
94
+ export default Alert;
@@ -0,0 +1,27 @@
1
+ import { HannaColorTheme } from '@reykjavik/hanna-css';
2
+ import { Illustration } from '@reykjavik/hanna-utils/assets';
3
+ import { ImageProps } from '../_abstract/Image';
4
+ import { ColorFamily } from '../constants';
5
+ export declare type ArticleCarouselImageProps = ImageProps & {
6
+ photo?: boolean;
7
+ };
8
+ export declare type ArticleCarouselCardProps = {
9
+ date?: string;
10
+ title: string;
11
+ summary: string;
12
+ href: string;
13
+ color?: ColorFamily;
14
+ /** NOTE: if both `color` and `theme` are specified
15
+ * then `color` takes precedence.
16
+ */
17
+ theme?: HannaColorTheme;
18
+ } & ({
19
+ illustration: Illustration;
20
+ image?: undefined;
21
+ } | {
22
+ illustration?: undefined;
23
+ image: ArticleCarouselImageProps | undefined;
24
+ });
25
+ export declare const ArticleCarouselCard: (props: ArticleCarouselCardProps & {
26
+ moreLabel?: string;
27
+ }) => JSX.Element;
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import getBemClass from '@hugsmidjan/react/utils/getBemClass';
3
+ import { getIllustrationUrl } from '@reykjavik/hanna-utils/assets';
4
+ import Image from '../_abstract/Image';
5
+ import { Link } from '../_abstract/Link';
6
+ import { colorFamilies, themeOptions } from '../constants';
7
+ export const ArticleCarouselCard = (props) => {
8
+ const { date, title, summary, href, moreLabel, color, theme, illustration, image } = props;
9
+ const photo = image === null || image === void 0 ? void 0 : image.photo;
10
+ const imageProps = illustration ? { src: getIllustrationUrl(illustration) } : image;
11
+ return (<div className="ArticleCarouselCard" data-color={color && colorFamilies[color]} data-color-theme={!color ? theme && themeOptions[theme] : undefined} // color takes precedence over "theme"
12
+ >
13
+ <Link className="ArticleCarouselCard__link" href={href}>
14
+ {' '}
15
+ <Image placeholder className={getBemClass('ArticleCarouselCard__illustration', photo && 'photo')} {...imageProps}/>
16
+ <h3 className="ArticleCarouselCard__title">{title}</h3>{' '}
17
+ </Link>{' '}
18
+ {date && <span className="ArticleCarouselCard__date">{date}</span>}
19
+ <div className="ArticleCarouselCard__summary">{summary}</div>
20
+ {moreLabel && (<Link className="ArticleCarouselCard__morelink" href={href} aria-label={title}>
21
+ {' '}
22
+ {moreLabel}{' '}
23
+ </Link>)}
24
+ </div>);
25
+ };
@@ -0,0 +1,12 @@
1
+ import { SSRSupport } from '@hugsmidjan/react/hooks';
2
+ import { ArticleCarouselCardProps, ArticleCarouselImageProps } from './ArticleCarousel/_ArticleCarouselCard';
3
+ import { SeenProp } from './utils/seenEffect';
4
+ export declare type ArticleCarouselProps = {
5
+ items: Array<ArticleCarouselCardProps>;
6
+ title?: string;
7
+ moreLabel?: string;
8
+ ssr?: SSRSupport;
9
+ } & SeenProp;
10
+ export type { ArticleCarouselCardProps, ArticleCarouselImageProps };
11
+ declare const ArticleCarousel: (props: ArticleCarouselProps) => JSX.Element;
12
+ export default ArticleCarousel;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import AbstractCarousel from './_abstract/_AbstractCarousel';
3
+ import { ArticleCarouselCard, } from './ArticleCarousel/_ArticleCarouselCard';
4
+ const ArticleCarousel = (props) => {
5
+ const { title, items, moreLabel, ssr, startSeen } = props;
6
+ return (<AbstractCarousel bem="ArticleCarousel" title={title} items={items} Component={ArticleCarouselCard} ComponentProps={{ moreLabel }} ssr={ssr} startSeen={startSeen}/>);
7
+ };
8
+ export default ArticleCarousel;
@@ -0,0 +1,9 @@
1
+ export declare type ArticleMetaItem = {
2
+ label: string;
3
+ href?: string;
4
+ };
5
+ export declare type ArticleMetaProps = {
6
+ items: Array<ArticleMetaItem>;
7
+ };
8
+ declare const ArticleMeta: (props: ArticleMetaProps) => JSX.Element | null;
9
+ export default ArticleMeta;
@@ -0,0 +1,17 @@
1
+ import React, { Fragment } from 'react';
2
+ import { Link } from './_abstract/Link';
3
+ const ArticleMeta = (props) => {
4
+ const { items } = props;
5
+ if (items.length === 0) {
6
+ return null;
7
+ }
8
+ return (<div className="ArticleMeta">
9
+ {items.map(({ label, href }, i) => (<Fragment key={i}>
10
+ {href == null ? (<span className="ArticleMeta__item"> {label} </span>) : (<Link className="ArticleMeta__item" href={href}>
11
+ {' '}
12
+ {label}{' '}
13
+ </Link>)}{' '}
14
+ </Fragment>))}
15
+ </div>);
16
+ };
17
+ export default ArticleMeta;
@@ -0,0 +1,7 @@
1
+ import { ReactNode } from 'react';
2
+ export declare type AttentionProps = {
3
+ small?: boolean;
4
+ children: ReactNode;
5
+ };
6
+ declare const Attention: (props: AttentionProps) => JSX.Element;
7
+ export default Attention;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import getBemClass from '@hugsmidjan/react/utils/getBemClass';
3
+ const Attention = (props) => (<div className={getBemClass('Attention', props.small && 'small')}>{props.children}</div>);
4
+ export default Attention;
@@ -0,0 +1,12 @@
1
+ import { TableProps } from '@hugsmidjan/react/Table';
2
+ import { SeenProp } from './utils/seenEffect';
3
+ declare type BasicTableProps = {
4
+ compact?: boolean;
5
+ type?: 'text' | 'number';
6
+ children?: undefined;
7
+ modifier?: string;
8
+ fullWidth?: boolean;
9
+ align?: 'right';
10
+ } & SeenProp & Omit<TableProps, 'className' | 'children'>;
11
+ declare const BasicTable: (props: BasicTableProps) => JSX.Element;
12
+ export default BasicTable;
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import Table from '@hugsmidjan/react/Table';
3
+ import TableWrapper from '@hugsmidjan/react/TableWrapper';
4
+ import getBemClass from '@hugsmidjan/react/utils/getBemClass';
5
+ import { useSeenEffect } from './utils/seenEffect';
6
+ const BasicTable = (props) => {
7
+ const { cols, caption, thead, tfoot, align, fullWidth, startSeen } = props;
8
+ const tbodyProps = props.tbodies
9
+ ? { tbodies: props.tbodies }
10
+ : { tbody: props.tbody || [] };
11
+ const modifier = props.modifier;
12
+ const [ref] = useSeenEffect(startSeen);
13
+ return (<TableWrapper modifier={[
14
+ 'BasicTable',
15
+ modifier && 'BasicTable--' + modifier,
16
+ fullWidth && 'BasicTable--fullwidth',
17
+ align === 'right' && !fullWidth && 'BasicTable--align--' + align,
18
+ ]} wrapperRef={ref}>
19
+ <Table className={getBemClass('BasicTable', [
20
+ props.compact && 'compact',
21
+ modifier && modifier,
22
+ ])} {...{
23
+ cols,
24
+ caption,
25
+ thead,
26
+ tfoot,
27
+ }} {...tbodyProps}/>
28
+ </TableWrapper>);
29
+ };
30
+ export default BasicTable;
package/esm/Bling.d.ts ADDED
@@ -0,0 +1,81 @@
1
+ import { BlingType } from '@reykjavik/hanna-utils/assets';
2
+ declare const colors: {
3
+ tertiary: boolean;
4
+ secondary: boolean;
5
+ primary: boolean;
6
+ };
7
+ export declare type BlingColor = keyof typeof colors;
8
+ declare const aligns: {
9
+ left: boolean;
10
+ 'left-ish': boolean;
11
+ 'left-center': boolean;
12
+ 'right-center': boolean;
13
+ 'right-ish': boolean;
14
+ right: boolean;
15
+ };
16
+ export declare type BlingAlignment = keyof typeof aligns;
17
+ declare const valigns: {
18
+ up: boolean;
19
+ 'up-ish': boolean;
20
+ center: boolean;
21
+ 'down-ish': boolean;
22
+ down: boolean;
23
+ };
24
+ export declare type BlingVAlignment = keyof typeof valigns;
25
+ declare const parentOffset: {
26
+ top: boolean;
27
+ 'top-ish': boolean;
28
+ center: boolean;
29
+ 'bottom-ish': boolean;
30
+ bottom: boolean;
31
+ };
32
+ export declare type BlingParentOffset = keyof typeof parentOffset;
33
+ export declare type BlingProps = {
34
+ /**
35
+ * Horizontal alignment relative to the bling container's
36
+ * full width
37
+ *
38
+ * NOTE: Blings should always be placed in a layout context
39
+ * where they can stretch to a full (12 columns) width
40
+ */
41
+ align?: BlingAlignment;
42
+ /**
43
+ * Vertical shift along the vertical insertion point
44
+ *
45
+ * Defult: `center`
46
+ */
47
+ vertical?: BlingVAlignment;
48
+ /**
49
+ * Vertical positioning of the insertion point within
50
+ * the Bling's offset parent element.
51
+ *
52
+ * Default is the natural layout flow position of the
53
+ * Bling element (no vertical re-positioning)
54
+ */
55
+ parent?: BlingParentOffset;
56
+ /**
57
+ * Theme color (combo) for the elelment
58
+ *
59
+ * Default: `tertiary`
60
+ */
61
+ color?: BlingColor;
62
+ /**
63
+ * Gives the Bling a positive `z-index` value.
64
+ *
65
+ * By default Blings layer themselves *underneath* other page content.
66
+ */
67
+ overlay?: boolean;
68
+ /** Additional className (use sparingly) */
69
+ className?: string;
70
+ } & ({
71
+ /** The name of the Bling shape to display */
72
+ type: BlingType;
73
+ /** Not allowed when `type` is set */
74
+ blingUrl?: undefined;
75
+ } | {
76
+ type?: undefined;
77
+ /** Custom SVG URL to load (use sparingly) */
78
+ blingUrl: string;
79
+ });
80
+ declare const Bling: (props: BlingProps) => JSX.Element;
81
+ export default Bling;
package/esm/Bling.jsx ADDED
@@ -0,0 +1,44 @@
1
+ import React from 'react';
2
+ import getBemClass from '@hugsmidjan/react/utils/getBemClass';
3
+ import { getBlingUrl } from '@reykjavik/hanna-utils/assets';
4
+ import { useGetSVGtext } from './utils/useGetSVGtext';
5
+ const colors = {
6
+ tertiary: true,
7
+ secondary: true,
8
+ primary: true,
9
+ };
10
+ const aligns = {
11
+ left: true,
12
+ 'left-ish': true,
13
+ 'left-center': true,
14
+ 'right-center': true,
15
+ 'right-ish': true,
16
+ right: true,
17
+ };
18
+ const valigns = {
19
+ up: true,
20
+ 'up-ish': true,
21
+ center: true,
22
+ 'down-ish': true,
23
+ down: true,
24
+ };
25
+ const parentOffset = {
26
+ top: true,
27
+ 'top-ish': true,
28
+ center: true,
29
+ 'bottom-ish': true,
30
+ bottom: true,
31
+ };
32
+ const Bling = (props) => {
33
+ const { align, vertical, color, overlay, type, blingUrl, parent, className } = props;
34
+ const imageUrl = type ? getBlingUrl(type) : blingUrl;
35
+ const inlineSvg = useGetSVGtext(imageUrl);
36
+ return (<div className={getBemClass('Bling', [
37
+ 'align--' + (align && align in aligns ? align : 'left'),
38
+ vertical && vertical in valigns && 'vertical--' + vertical,
39
+ color && color in colors && 'color--' + color,
40
+ parent && parent in parentOffset && 'parent--' + parent,
41
+ overlay && 'overlay',
42
+ ], className)} data-bling-type={type} data-bling-image={!type ? blingUrl : undefined} dangerouslySetInnerHTML={inlineSvg && { __html: inlineSvg.code }}/>);
43
+ };
44
+ export default Bling;
@@ -0,0 +1,2 @@
1
+ declare const BlockBreak: () => JSX.Element;
2
+ export default BlockBreak;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ /*
3
+ TODO: Add story
4
+ */
5
+ const BlockBreak = () => <div className="BlockBreak"/>;
6
+ export default BlockBreak;
@@ -0,0 +1,4 @@
1
+ import { QuoteProps } from './_abstract/_Quote';
2
+ export declare type BlockQuoteProps = QuoteProps;
3
+ declare const BlockQuote: (props: BlockQuoteProps) => JSX.Element;
4
+ export default BlockQuote;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { _Quote } from './_abstract/_Quote';
3
+ const BlockQuote = (props) => <_Quote bem="BlockQuote" {...props}/>;
4
+ export default BlockQuote;
@@ -0,0 +1,11 @@
1
+ export declare type BreadCrumb = {
2
+ href?: string;
3
+ label: string;
4
+ };
5
+ export declare type BreadCrumbTrail = Array<BreadCrumb>;
6
+ export declare type BreadCrumbsProps = {
7
+ title: string;
8
+ trail: BreadCrumbTrail;
9
+ };
10
+ declare const BreadCrumbs: (props: BreadCrumbsProps) => JSX.Element | null;
11
+ export default BreadCrumbs;
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ import { Link } from './_abstract/Link';
3
+ const BreadCrumbs__item = (props) => {
4
+ const { link, current } = props;
5
+ return link.href != null ? (<Link className="BreadCrumbs__item" href={link.href} aria-current={current || undefined}>
6
+ {link.label}
7
+ </Link>) : (<span className="BreadCrumbs__item" aria-current={current || undefined}>
8
+ {link.label}
9
+ </span>);
10
+ };
11
+ const BreadCrumbs = (props) => {
12
+ const { title, trail } = props;
13
+ if (trail.length === 0) {
14
+ return null;
15
+ }
16
+ const ancestors = trail.slice(0, -1);
17
+ const current = trail[trail.length - 1];
18
+ return (<nav className="BreadCrumbs" aria-label={title}>
19
+ <span className="BreadCrumbs__title">{title}:</span>{' '}
20
+ {ancestors.map((link, i) => {
21
+ return (<React.Fragment key={i}>
22
+ <BreadCrumbs__item link={link}/>{' '}
23
+ <span className="BreadCrumbs__separator" aria-label="">
24
+ &gt;
25
+ </span>{' '}
26
+ </React.Fragment>);
27
+ })}
28
+ <BreadCrumbs__item link={current} current/>
29
+ </nav>);
30
+ };
31
+ export default BreadCrumbs;