@reykjavik/hanna-react 0.10.55 → 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 (592) hide show
  1. package/AccordionList.jsx +61 -0
  2. package/ActionCards.jsx +15 -0
  3. package/Alert.jsx +123 -0
  4. package/ArticleCarousel/_ArticleCarouselCard.d.ts +1 -1
  5. package/ArticleCarousel/_ArticleCarouselCard.jsx +32 -0
  6. package/ArticleCarousel.jsx +13 -0
  7. package/ArticleMeta.jsx +42 -0
  8. package/Attention.jsx +9 -0
  9. package/BasicTable.jsx +35 -0
  10. package/Bling.jsx +49 -0
  11. package/BlockBreak.jsx +11 -0
  12. package/BlockQuote.jsx +9 -0
  13. package/BreadCrumbs.jsx +36 -0
  14. package/ButtonBack.jsx +9 -0
  15. package/ButtonBar.jsx +23 -0
  16. package/ButtonPrimary.jsx +9 -0
  17. package/ButtonSecondary.jsx +9 -0
  18. package/ButtonTertiary.jsx +20 -0
  19. package/CHANGELOG.md +13 -5
  20. package/Carousel.jsx +9 -0
  21. package/CarouselStepper.jsx +9 -0
  22. package/CenterColumn.jsx +14 -0
  23. package/Checkbox.jsx +9 -0
  24. package/CheckboxButtonsGroup.jsx +19 -0
  25. package/CheckboxGroup.jsx +12 -0
  26. package/CityBlock.jsx +23 -0
  27. package/ContactBubble.jsx +192 -0
  28. package/ContentArticle.jsx +29 -0
  29. package/ContentImage.jsx +18 -0
  30. package/Datepicker.jsx +92 -0
  31. package/ExtraLinks.jsx +47 -0
  32. package/FeatureList.jsx +28 -0
  33. package/FieldGroup.jsx +15 -0
  34. package/FileInput.jsx +185 -0
  35. package/Foonote.jsx +12 -0
  36. package/FooterBadges.jsx +21 -0
  37. package/FooterInfo.jsx +19 -0
  38. package/Footnote.jsx +8 -0
  39. package/Form.jsx +17 -0
  40. package/FormField.jsx +121 -0
  41. package/Gallery/_GalleryItem.jsx +59 -0
  42. package/Gallery/_GalleryModal.jsx +86 -0
  43. package/Gallery/_GalleryModalContext.js +8 -0
  44. package/Gallery/_GalleryModalItem.jsx +29 -0
  45. package/Gallery.jsx +56 -0
  46. package/GridBlocks.jsx +40 -0
  47. package/Heading.jsx +24 -0
  48. package/HeroBlock.jsx +27 -0
  49. package/IframeBlock.jsx +31 -0
  50. package/Illustration.jsx +13 -0
  51. package/ImageCards.jsx +28 -0
  52. package/InfoBlock.jsx +23 -0
  53. package/InfoHero.jsx +93 -0
  54. package/IslandBlock.jsx +21 -0
  55. package/IslandPageBlock.jsx +21 -0
  56. package/LabeledTextBlock.jsx +21 -0
  57. package/Layout.jsx +69 -0
  58. package/MainMenu/_Auxiliary.jsx +26 -0
  59. package/MainMenu/_PrimaryPanel.jsx +37 -0
  60. package/MainMenu.d.ts +1 -1
  61. package/MainMenu.jsx +178 -0
  62. package/MiniMetrics.jsx +16 -0
  63. package/Modal.jsx +21 -0
  64. package/NameCard.jsx +92 -0
  65. package/NameCards.jsx +14 -0
  66. package/NewsHero.jsx +93 -0
  67. package/PageFilter.jsx +21 -0
  68. package/PageHeading.jsx +19 -0
  69. package/ProcessOverview.jsx +25 -0
  70. package/PullQuote.jsx +9 -0
  71. package/RadioButtonsGroup.jsx +19 -0
  72. package/RadioGroup.jsx +12 -0
  73. package/RelatedLinks.jsx +35 -0
  74. package/RowBlock.jsx +16 -0
  75. package/RowBlockColumn.jsx +18 -0
  76. package/SearchInput.jsx +63 -0
  77. package/SearchResults/_SearchResultsItem.jsx +24 -0
  78. package/SearchResults.jsx +146 -0
  79. package/SeenEffect.jsx +24 -0
  80. package/Selectbox.jsx +74 -0
  81. package/ShareButtons.jsx +82 -0
  82. package/Sharpie.jsx +27 -0
  83. package/SiteSearchAutocomplete.jsx +89 -0
  84. package/SiteSearchCurtain.jsx +65 -0
  85. package/SiteSearchInput.d.ts +1 -1
  86. package/SiteSearchInput.jsx +70 -0
  87. package/Skeleton.jsx +35 -0
  88. package/SubHeading.jsx +20 -0
  89. package/Tabs.jsx +122 -0
  90. package/TagPill.jsx +53 -0
  91. package/TextBlock.jsx +22 -0
  92. package/TextButton.jsx +14 -0
  93. package/TextInput.jsx +63 -0
  94. package/VSpacer.jsx +46 -0
  95. package/VerticalTabsTOC.jsx +96 -0
  96. package/WizardLayout.jsx +44 -0
  97. package/WizardLayoutClose.jsx +9 -0
  98. package/WizardStepper.jsx +34 -0
  99. package/_abstract/Button.jsx +56 -0
  100. package/_abstract/CardList.jsx +46 -0
  101. package/_abstract/Image.jsx +34 -0
  102. package/_abstract/Link.jsx +31 -0
  103. package/_abstract/TogglerGroup.jsx +36 -0
  104. package/_abstract/TogglerGroupField.jsx +27 -0
  105. package/_abstract/TogglerInput.jsx +40 -0
  106. package/_abstract/_AbstractCarousel.jsx +161 -0
  107. package/_abstract/_Blings.jsx +19 -0
  108. package/_abstract/_Block.jsx +32 -0
  109. package/_abstract/_Quote.jsx +18 -0
  110. package/_abstract/breakOnNL.jsx +13 -0
  111. package/assets.js +51 -0
  112. package/constants.js +25 -0
  113. package/esm/AccordionList.d.ts +17 -0
  114. package/esm/AccordionList.jsx +33 -0
  115. package/esm/ActionCards.d.ts +5 -0
  116. package/esm/ActionCards.jsx +10 -0
  117. package/esm/Alert.d.ts +49 -0
  118. package/esm/Alert.jsx +94 -0
  119. package/esm/ArticleCarousel/_ArticleCarouselCard.d.ts +27 -0
  120. package/esm/ArticleCarousel/_ArticleCarouselCard.jsx +25 -0
  121. package/esm/ArticleCarousel.d.ts +12 -0
  122. package/esm/ArticleCarousel.jsx +8 -0
  123. package/esm/ArticleMeta.d.ts +9 -0
  124. package/esm/ArticleMeta.jsx +17 -0
  125. package/esm/Attention.d.ts +7 -0
  126. package/esm/Attention.jsx +4 -0
  127. package/esm/BasicTable.d.ts +12 -0
  128. package/esm/BasicTable.jsx +30 -0
  129. package/esm/Bling.d.ts +81 -0
  130. package/esm/Bling.jsx +44 -0
  131. package/esm/BlockBreak.d.ts +2 -0
  132. package/esm/BlockBreak.jsx +6 -0
  133. package/esm/BlockQuote.d.ts +4 -0
  134. package/esm/BlockQuote.jsx +4 -0
  135. package/esm/BreadCrumbs.d.ts +11 -0
  136. package/esm/BreadCrumbs.jsx +31 -0
  137. package/esm/ButtonBack.d.ts +7 -0
  138. package/esm/ButtonBack.jsx +4 -0
  139. package/esm/ButtonBar.d.ts +16 -0
  140. package/esm/ButtonBar.jsx +16 -0
  141. package/esm/ButtonPrimary.d.ts +7 -0
  142. package/esm/ButtonPrimary.jsx +4 -0
  143. package/esm/ButtonSecondary.d.ts +7 -0
  144. package/esm/ButtonSecondary.jsx +4 -0
  145. package/esm/ButtonTertiary.d.ts +12 -0
  146. package/esm/ButtonTertiary.jsx +15 -0
  147. package/esm/Carousel.d.ts +4 -0
  148. package/esm/Carousel.jsx +4 -0
  149. package/esm/CarouselStepper.d.ts +4 -0
  150. package/esm/CarouselStepper.jsx +4 -0
  151. package/esm/CenterColumn.d.ts +7 -0
  152. package/esm/CenterColumn.jsx +9 -0
  153. package/esm/Checkbox.d.ts +4 -0
  154. package/esm/Checkbox.jsx +4 -0
  155. package/esm/CheckboxButtonsGroup.d.ts +11 -0
  156. package/esm/CheckboxButtonsGroup.jsx +14 -0
  157. package/esm/CheckboxGroup.d.ts +9 -0
  158. package/esm/CheckboxGroup.jsx +7 -0
  159. package/esm/CityBlock.d.ts +23 -0
  160. package/esm/CityBlock.jsx +18 -0
  161. package/esm/ContactBubble.d.ts +58 -0
  162. package/esm/ContactBubble.jsx +162 -0
  163. package/esm/ContentArticle.d.ts +15 -0
  164. package/esm/ContentArticle.jsx +24 -0
  165. package/esm/ContentImage.d.ts +8 -0
  166. package/esm/ContentImage.jsx +13 -0
  167. package/esm/Datepicker.d.ts +39 -0
  168. package/esm/Datepicker.jsx +64 -0
  169. package/esm/ExtraLinks.d.ts +18 -0
  170. package/esm/ExtraLinks.jsx +42 -0
  171. package/esm/FeatureList.d.ts +12 -0
  172. package/esm/FeatureList.jsx +23 -0
  173. package/esm/FieldGroup.d.ts +9 -0
  174. package/esm/FieldGroup.jsx +10 -0
  175. package/esm/FileInput.d.ts +17 -0
  176. package/esm/FileInput.jsx +157 -0
  177. package/esm/Foonote.d.ts +12 -0
  178. package/esm/Foonote.jsx +7 -0
  179. package/esm/FooterBadges.d.ts +9 -0
  180. package/esm/FooterBadges.jsx +16 -0
  181. package/esm/FooterInfo.d.ts +18 -0
  182. package/esm/FooterInfo.jsx +14 -0
  183. package/esm/Footnote.d.ts +6 -0
  184. package/esm/Footnote.jsx +3 -0
  185. package/esm/Form.d.ts +7 -0
  186. package/esm/Form.jsx +12 -0
  187. package/esm/FormField.d.ts +65 -0
  188. package/esm/FormField.jsx +93 -0
  189. package/esm/Gallery/_GalleryItem.d.ts +8 -0
  190. package/esm/Gallery/_GalleryItem.jsx +31 -0
  191. package/esm/Gallery/_GalleryModal.d.ts +6 -0
  192. package/esm/Gallery/_GalleryModal.jsx +58 -0
  193. package/esm/Gallery/_GalleryModalContext.d.ts +9 -0
  194. package/esm/Gallery/_GalleryModalContext.js +3 -0
  195. package/esm/Gallery/_GalleryModalItem.d.ts +3 -0
  196. package/esm/Gallery/_GalleryModalItem.jsx +24 -0
  197. package/esm/Gallery.d.ts +17 -0
  198. package/esm/Gallery.jsx +28 -0
  199. package/esm/GridBlocks.d.ts +26 -0
  200. package/esm/GridBlocks.jsx +35 -0
  201. package/esm/Heading.d.ts +16 -0
  202. package/esm/Heading.jsx +19 -0
  203. package/esm/HeroBlock.d.ts +19 -0
  204. package/esm/HeroBlock.jsx +22 -0
  205. package/esm/IframeBlock.d.ts +23 -0
  206. package/esm/IframeBlock.jsx +26 -0
  207. package/esm/Illustration.d.ts +13 -0
  208. package/esm/Illustration.jsx +8 -0
  209. package/esm/ImageCards.d.ts +8 -0
  210. package/esm/ImageCards.jsx +23 -0
  211. package/esm/InfoBlock.d.ts +17 -0
  212. package/esm/InfoBlock.jsx +18 -0
  213. package/esm/InfoHero.d.ts +17 -0
  214. package/esm/InfoHero.jsx +88 -0
  215. package/esm/IslandBlock.d.ts +25 -0
  216. package/esm/IslandBlock.jsx +16 -0
  217. package/esm/IslandPageBlock.d.ts +24 -0
  218. package/esm/IslandPageBlock.jsx +16 -0
  219. package/esm/LabeledTextBlock.d.ts +11 -0
  220. package/esm/LabeledTextBlock.jsx +16 -0
  221. package/esm/Layout.d.ts +33 -0
  222. package/esm/Layout.jsx +63 -0
  223. package/esm/MainMenu/_Auxiliary.d.ts +6 -0
  224. package/esm/MainMenu/_Auxiliary.jsx +19 -0
  225. package/esm/MainMenu/_PrimaryPanel.d.ts +13 -0
  226. package/esm/MainMenu/_PrimaryPanel.jsx +30 -0
  227. package/esm/MainMenu.d.ts +48 -0
  228. package/esm/MainMenu.jsx +149 -0
  229. package/esm/MiniMetrics.d.ts +8 -0
  230. package/esm/MiniMetrics.jsx +11 -0
  231. package/esm/Modal.d.ts +10 -0
  232. package/esm/Modal.jsx +16 -0
  233. package/esm/NameCard.d.ts +64 -0
  234. package/esm/NameCard.jsx +87 -0
  235. package/esm/NameCards.d.ts +6 -0
  236. package/esm/NameCards.jsx +9 -0
  237. package/esm/NewsHero.d.ts +14 -0
  238. package/esm/NewsHero.jsx +88 -0
  239. package/esm/PageFilter.d.ts +17 -0
  240. package/esm/PageFilter.jsx +16 -0
  241. package/esm/PageHeading.d.ts +10 -0
  242. package/esm/PageHeading.jsx +14 -0
  243. package/esm/ProcessOverview.d.ts +13 -0
  244. package/esm/ProcessOverview.jsx +20 -0
  245. package/esm/PullQuote.d.ts +4 -0
  246. package/esm/PullQuote.jsx +4 -0
  247. package/esm/RadioButtonsGroup.d.ts +11 -0
  248. package/esm/RadioButtonsGroup.jsx +14 -0
  249. package/esm/RadioGroup.d.ts +13 -0
  250. package/esm/RadioGroup.jsx +7 -0
  251. package/esm/RelatedLinks.d.ts +20 -0
  252. package/esm/RelatedLinks.jsx +30 -0
  253. package/esm/RowBlock.d.ts +12 -0
  254. package/esm/RowBlock.jsx +11 -0
  255. package/esm/RowBlockColumn.d.ts +8 -0
  256. package/esm/RowBlockColumn.jsx +13 -0
  257. package/esm/SearchInput.d.ts +18 -0
  258. package/esm/SearchInput.jsx +35 -0
  259. package/esm/SearchResults/_SearchResultsItem.d.ts +18 -0
  260. package/esm/SearchResults/_SearchResultsItem.jsx +19 -0
  261. package/esm/SearchResults.d.ts +33 -0
  262. package/esm/SearchResults.jsx +118 -0
  263. package/esm/SeenEffect.d.ts +4 -0
  264. package/esm/SeenEffect.jsx +19 -0
  265. package/esm/Selectbox.d.ts +8 -0
  266. package/esm/Selectbox.jsx +46 -0
  267. package/esm/ShareButtons.d.ts +9 -0
  268. package/esm/ShareButtons.jsx +57 -0
  269. package/esm/Sharpie.d.ts +23 -0
  270. package/esm/Sharpie.jsx +22 -0
  271. package/esm/SiteSearchAutocomplete.d.ts +40 -0
  272. package/esm/SiteSearchAutocomplete.jsx +60 -0
  273. package/esm/SiteSearchCurtain.d.ts +6 -0
  274. package/esm/SiteSearchCurtain.jsx +37 -0
  275. package/esm/SiteSearchInput.d.ts +24 -0
  276. package/esm/SiteSearchInput.jsx +42 -0
  277. package/esm/Skeleton.d.ts +25 -0
  278. package/esm/Skeleton.jsx +30 -0
  279. package/esm/SubHeading.d.ts +10 -0
  280. package/esm/SubHeading.jsx +15 -0
  281. package/esm/Tabs.d.ts +35 -0
  282. package/esm/Tabs.jsx +94 -0
  283. package/esm/TagPill.d.ts +27 -0
  284. package/esm/TagPill.jsx +48 -0
  285. package/esm/TextBlock.d.ts +15 -0
  286. package/esm/TextBlock.jsx +17 -0
  287. package/esm/TextButton.d.ts +9 -0
  288. package/esm/TextButton.jsx +9 -0
  289. package/esm/TextInput.d.ts +16 -0
  290. package/esm/TextInput.jsx +35 -0
  291. package/esm/VSpacer.d.ts +24 -0
  292. package/esm/VSpacer.jsx +41 -0
  293. package/esm/VerticalTabsTOC.d.ts +14 -0
  294. package/esm/VerticalTabsTOC.jsx +68 -0
  295. package/esm/WizardLayout.d.ts +15 -0
  296. package/esm/WizardLayout.jsx +39 -0
  297. package/esm/WizardLayoutClose.d.ts +3 -0
  298. package/esm/WizardLayoutClose.jsx +4 -0
  299. package/esm/WizardStepper.d.ts +36 -0
  300. package/esm/WizardStepper.jsx +29 -0
  301. package/esm/_abstract/Button.d.ts +40 -0
  302. package/esm/_abstract/Button.jsx +51 -0
  303. package/esm/_abstract/CardList.d.ts +29 -0
  304. package/esm/_abstract/CardList.jsx +39 -0
  305. package/esm/_abstract/Image.d.ts +32 -0
  306. package/esm/_abstract/Image.jsx +29 -0
  307. package/esm/_abstract/Link.d.ts +27 -0
  308. package/esm/_abstract/Link.jsx +24 -0
  309. package/esm/_abstract/TogglerGroup.d.ts +31 -0
  310. package/esm/_abstract/TogglerGroup.jsx +31 -0
  311. package/esm/_abstract/TogglerGroupField.d.ts +17 -0
  312. package/esm/_abstract/TogglerGroupField.jsx +22 -0
  313. package/esm/_abstract/TogglerInput.d.ts +22 -0
  314. package/esm/_abstract/TogglerInput.jsx +35 -0
  315. package/esm/_abstract/_AbstractCarousel.d.ts +25 -0
  316. package/esm/_abstract/_AbstractCarousel.jsx +133 -0
  317. package/esm/_abstract/_Blings.d.ts +11 -0
  318. package/esm/_abstract/_Blings.jsx +14 -0
  319. package/esm/_abstract/_Block.d.ts +22 -0
  320. package/esm/_abstract/_Block.jsx +27 -0
  321. package/esm/_abstract/_Quote.d.ts +9 -0
  322. package/esm/_abstract/_Quote.jsx +11 -0
  323. package/esm/_abstract/breakOnNL.d.ts +2 -0
  324. package/esm/_abstract/breakOnNL.jsx +8 -0
  325. package/esm/assets.d.ts +42 -0
  326. package/esm/assets.js +56 -0
  327. package/esm/constants.d.ts +39 -0
  328. package/esm/constants.js +22 -0
  329. package/esm/focus-visible.d.ts +1 -0
  330. package/esm/focus-visible.js +1 -0
  331. package/esm/package.json +1 -0
  332. package/esm/utils/env.d.ts +1 -0
  333. package/esm/utils/env.js +8 -0
  334. package/esm/utils/seenEffect.d.ts +28 -0
  335. package/esm/utils/seenEffect.js +73 -0
  336. package/esm/utils/useFormatMonitor.d.ts +38 -0
  337. package/esm/utils/useFormatMonitor.js +41 -0
  338. package/esm/utils/useGetSVGtext.d.ts +6 -0
  339. package/esm/utils/useGetSVGtext.js +19 -0
  340. package/esm/utils/useMenuToggling.d.ts +8 -0
  341. package/esm/utils/useMenuToggling.js +62 -0
  342. package/esm/utils/useScrollbarWidthCSSVar.d.ts +1 -0
  343. package/esm/utils/useScrollbarWidthCSSVar.js +3 -0
  344. package/esm/utils.d.ts +2 -0
  345. package/esm/utils.js +2 -0
  346. package/focus-visible.js +3 -0
  347. package/package.json +183 -184
  348. package/utils/env.js +14 -0
  349. package/utils/seenEffect.js +81 -0
  350. package/utils/useFormatMonitor.js +44 -0
  351. package/utils/useGetSVGtext.js +23 -0
  352. package/utils/useMenuToggling.js +66 -0
  353. package/utils/useScrollbarWidthCSSVar.js +10 -0
  354. package/utils.js +18 -0
  355. package/AccordionList.cjs +0 -91
  356. package/AccordionList.mjs +0 -69
  357. package/ActionCards.cjs +0 -57
  358. package/ActionCards.mjs +0 -35
  359. package/Alert.cjs +0 -159
  360. package/Alert.mjs +0 -139
  361. package/ArticleCarousel/_ArticleCarouselCard.cjs +0 -75
  362. package/ArticleCarousel/_ArticleCarouselCard.mjs +0 -51
  363. package/ArticleCarousel.cjs +0 -43
  364. package/ArticleCarousel.mjs +0 -21
  365. package/ArticleMeta.cjs +0 -46
  366. package/ArticleMeta.mjs +0 -22
  367. package/Attention.cjs +0 -33
  368. package/Attention.mjs +0 -9
  369. package/BasicTable.cjs +0 -72
  370. package/BasicTable.mjs +0 -50
  371. package/Bling.cjs +0 -76
  372. package/Bling.mjs +0 -52
  373. package/BlockBreak.cjs +0 -32
  374. package/BlockBreak.mjs +0 -8
  375. package/BlockQuote.cjs +0 -47
  376. package/BlockQuote.mjs +0 -25
  377. package/BreadCrumbs.cjs +0 -67
  378. package/BreadCrumbs.mjs +0 -43
  379. package/ButtonBack.cjs +0 -47
  380. package/ButtonBack.mjs +0 -25
  381. package/ButtonBar.cjs +0 -45
  382. package/ButtonBar.mjs +0 -18
  383. package/ButtonPrimary.cjs +0 -47
  384. package/ButtonPrimary.mjs +0 -25
  385. package/ButtonSecondary.cjs +0 -47
  386. package/ButtonSecondary.mjs +0 -25
  387. package/ButtonTertiary.cjs +0 -64
  388. package/ButtonTertiary.mjs +0 -42
  389. package/Carousel.cjs +0 -52
  390. package/Carousel.mjs +0 -30
  391. package/CarouselStepper.cjs +0 -51
  392. package/CarouselStepper.mjs +0 -29
  393. package/CenterColumn.cjs +0 -40
  394. package/CenterColumn.mjs +0 -16
  395. package/Checkbox.cjs +0 -52
  396. package/Checkbox.mjs +0 -30
  397. package/CheckboxButtonsGroup.cjs +0 -65
  398. package/CheckboxButtonsGroup.mjs +0 -43
  399. package/CheckboxGroup.cjs +0 -55
  400. package/CheckboxGroup.mjs +0 -33
  401. package/CityBlock.cjs +0 -49
  402. package/CityBlock.mjs +0 -25
  403. package/ContactBubble.cjs +0 -200
  404. package/ContactBubble.mjs +0 -173
  405. package/ContentArticle.cjs +0 -63
  406. package/ContentArticle.mjs +0 -41
  407. package/ContentImage.cjs +0 -58
  408. package/ContentImage.mjs +0 -36
  409. package/Datepicker.cjs +0 -164
  410. package/Datepicker.mjs +0 -142
  411. package/ExtraLinks.cjs +0 -96
  412. package/ExtraLinks.mjs +0 -74
  413. package/FeatureList.cjs +0 -53
  414. package/FeatureList.mjs +0 -29
  415. package/FieldGroup.cjs +0 -40
  416. package/FieldGroup.mjs +0 -16
  417. package/FileInput.cjs +0 -256
  418. package/FileInput.mjs +0 -234
  419. package/Foonote.cjs +0 -30
  420. package/Foonote.mjs +0 -6
  421. package/FooterBadges.cjs +0 -49
  422. package/FooterBadges.mjs +0 -25
  423. package/FooterInfo.cjs +0 -47
  424. package/FooterInfo.mjs +0 -23
  425. package/Footnote.cjs +0 -32
  426. package/Footnote.mjs +0 -8
  427. package/Form.cjs +0 -56
  428. package/Form.mjs +0 -34
  429. package/FormField.cjs +0 -153
  430. package/FormField.mjs +0 -131
  431. package/Gallery/_GalleryItem.cjs +0 -83
  432. package/Gallery/_GalleryItem.mjs +0 -61
  433. package/Gallery/_GalleryModal.cjs +0 -104
  434. package/Gallery/_GalleryModal.mjs +0 -82
  435. package/Gallery/_GalleryModalContext.cjs +0 -30
  436. package/Gallery/_GalleryModalContext.mjs +0 -6
  437. package/Gallery/_GalleryModalItem.cjs +0 -59
  438. package/Gallery/_GalleryModalItem.mjs +0 -36
  439. package/Gallery.cjs +0 -79
  440. package/Gallery.mjs +0 -57
  441. package/GridBlocks.cjs +0 -81
  442. package/GridBlocks.mjs +0 -59
  443. package/Heading.cjs +0 -45
  444. package/Heading.mjs +0 -21
  445. package/HeroBlock.cjs +0 -74
  446. package/HeroBlock.mjs +0 -52
  447. package/IframeBlock.cjs +0 -48
  448. package/IframeBlock.mjs +0 -24
  449. package/Illustration.cjs +0 -51
  450. package/Illustration.mjs +0 -31
  451. package/ImageCards.cjs +0 -72
  452. package/ImageCards.mjs +0 -52
  453. package/InfoBlock.cjs +0 -51
  454. package/InfoBlock.mjs +0 -27
  455. package/InfoHero.cjs +0 -150
  456. package/InfoHero.mjs +0 -128
  457. package/IslandBlock.cjs +0 -63
  458. package/IslandBlock.mjs +0 -41
  459. package/IslandPageBlock.cjs +0 -49
  460. package/IslandPageBlock.mjs +0 -25
  461. package/LabeledTextBlock.cjs +0 -60
  462. package/LabeledTextBlock.mjs +0 -38
  463. package/Layout.cjs +0 -113
  464. package/Layout.mjs +0 -87
  465. package/MainMenu/_Auxiliary.cjs +0 -54
  466. package/MainMenu/_Auxiliary.mjs +0 -28
  467. package/MainMenu/_PrimaryPanel.cjs +0 -74
  468. package/MainMenu/_PrimaryPanel.mjs +0 -48
  469. package/MainMenu.cjs +0 -209
  470. package/MainMenu.mjs +0 -187
  471. package/MiniMetrics.cjs +0 -56
  472. package/MiniMetrics.mjs +0 -34
  473. package/Modal.cjs +0 -70
  474. package/Modal.mjs +0 -48
  475. package/NameCard.cjs +0 -115
  476. package/NameCard.mjs +0 -91
  477. package/NameCards.cjs +0 -52
  478. package/NameCards.mjs +0 -30
  479. package/NewsHero.cjs +0 -136
  480. package/NewsHero.mjs +0 -114
  481. package/PageFilter.cjs +0 -48
  482. package/PageFilter.mjs +0 -24
  483. package/PageHeading.cjs +0 -42
  484. package/PageHeading.mjs +0 -18
  485. package/ProcessOverview.cjs +0 -52
  486. package/ProcessOverview.mjs +0 -28
  487. package/PullQuote.cjs +0 -47
  488. package/PullQuote.mjs +0 -25
  489. package/RadioButtonsGroup.cjs +0 -64
  490. package/RadioButtonsGroup.mjs +0 -42
  491. package/RadioGroup.cjs +0 -58
  492. package/RadioGroup.mjs +0 -36
  493. package/RelatedLinks.cjs +0 -61
  494. package/RelatedLinks.mjs +0 -37
  495. package/RowBlock.cjs +0 -39
  496. package/RowBlock.mjs +0 -15
  497. package/RowBlockColumn.cjs +0 -40
  498. package/RowBlockColumn.mjs +0 -16
  499. package/SearchInput.cjs +0 -136
  500. package/SearchInput.mjs +0 -114
  501. package/SearchResults/_SearchResultsItem.cjs +0 -54
  502. package/SearchResults/_SearchResultsItem.mjs +0 -30
  503. package/SearchResults.cjs +0 -172
  504. package/SearchResults.mjs +0 -150
  505. package/SeenEffect.cjs +0 -66
  506. package/SeenEffect.mjs +0 -44
  507. package/Selectbox.cjs +0 -144
  508. package/Selectbox.mjs +0 -122
  509. package/ShareButtons.cjs +0 -101
  510. package/ShareButtons.mjs +0 -83
  511. package/Sharpie.cjs +0 -51
  512. package/Sharpie.mjs +0 -27
  513. package/SiteSearchAutocomplete.cjs +0 -150
  514. package/SiteSearchAutocomplete.mjs +0 -126
  515. package/SiteSearchCurtain.cjs +0 -78
  516. package/SiteSearchCurtain.mjs +0 -56
  517. package/SiteSearchInput.cjs +0 -119
  518. package/SiteSearchInput.mjs +0 -97
  519. package/Skeleton.cjs +0 -63
  520. package/Skeleton.mjs +0 -39
  521. package/SubHeading.cjs +0 -43
  522. package/SubHeading.mjs +0 -19
  523. package/Tabs.cjs +0 -166
  524. package/Tabs.mjs +0 -144
  525. package/TagPill.cjs +0 -113
  526. package/TagPill.mjs +0 -91
  527. package/TextBlock.cjs +0 -45
  528. package/TextBlock.mjs +0 -21
  529. package/TextButton.cjs +0 -55
  530. package/TextButton.mjs +0 -33
  531. package/TextInput.cjs +0 -136
  532. package/TextInput.mjs +0 -114
  533. package/VSpacer.cjs +0 -70
  534. package/VSpacer.mjs +0 -46
  535. package/VerticalTabsTOC.cjs +0 -123
  536. package/VerticalTabsTOC.mjs +0 -101
  537. package/WizardLayout.cjs +0 -79
  538. package/WizardLayout.mjs +0 -55
  539. package/WizardLayoutClose.cjs +0 -47
  540. package/WizardLayoutClose.mjs +0 -25
  541. package/WizardStepper.cjs +0 -55
  542. package/WizardStepper.mjs +0 -31
  543. package/_abstract/Button.cjs +0 -114
  544. package/_abstract/Button.mjs +0 -92
  545. package/_abstract/CardList.cjs +0 -100
  546. package/_abstract/CardList.mjs +0 -76
  547. package/_abstract/Image.cjs +0 -75
  548. package/_abstract/Image.mjs +0 -51
  549. package/_abstract/Link.cjs +0 -37
  550. package/_abstract/Link.mjs +0 -10
  551. package/_abstract/TogglerGroup.cjs +0 -92
  552. package/_abstract/TogglerGroup.mjs +0 -70
  553. package/_abstract/TogglerGroupField.cjs +0 -121
  554. package/_abstract/TogglerGroupField.mjs +0 -99
  555. package/_abstract/TogglerInput.cjs +0 -105
  556. package/_abstract/TogglerInput.mjs +0 -83
  557. package/_abstract/_AbstractCarousel.cjs +0 -170
  558. package/_abstract/_AbstractCarousel.mjs +0 -152
  559. package/_abstract/_Blings.cjs +0 -47
  560. package/_abstract/_Blings.mjs +0 -23
  561. package/_abstract/_Block.cjs +0 -73
  562. package/_abstract/_Block.mjs +0 -51
  563. package/_abstract/_Quote.cjs +0 -43
  564. package/_abstract/_Quote.mjs +0 -17
  565. package/_abstract/breakOnNL.cjs +0 -30
  566. package/_abstract/breakOnNL.mjs +0 -6
  567. package/assets.cjs +0 -77
  568. package/assets.mjs +0 -53
  569. package/constants.cjs +0 -49
  570. package/constants.mjs +0 -24
  571. package/focus-visible.cjs +0 -1
  572. package/focus-visible.mjs +0 -1
  573. package/utils/config.cjs +0 -27
  574. package/utils/config.d.ts +0 -2
  575. package/utils/config.mjs +0 -4
  576. package/utils/detectEdgeScroll.cjs +0 -95
  577. package/utils/detectEdgeScroll.d.ts +0 -52
  578. package/utils/detectEdgeScroll.mjs +0 -71
  579. package/utils/env.cjs +0 -31
  580. package/utils/env.mjs +0 -5
  581. package/utils/seenEffect.cjs +0 -93
  582. package/utils/seenEffect.mjs +0 -65
  583. package/utils/useFormatMonitor.cjs +0 -29
  584. package/utils/useFormatMonitor.mjs +0 -6
  585. package/utils/useGetSVGtext.cjs +0 -44
  586. package/utils/useGetSVGtext.mjs +0 -21
  587. package/utils/useMenuToggling.cjs +0 -83
  588. package/utils/useMenuToggling.mjs +0 -60
  589. package/utils/useScrollbarWidthCSSVar.cjs +0 -32
  590. package/utils/useScrollbarWidthCSSVar.mjs +0 -6
  591. package/utils.cjs +0 -18
  592. package/utils.mjs +0 -2
@@ -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;
@@ -0,0 +1,7 @@
1
+ import { ReactNode } from 'react';
2
+ import { ButtonProps } from './_abstract/Button';
3
+ export declare type ButtonBackProps = ButtonProps;
4
+ declare const ButtonBack: (props: ButtonBackProps & {
5
+ children?: ReactNode;
6
+ }) => JSX.Element;
7
+ export default ButtonBack;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import Button from './_abstract/Button';
3
+ const ButtonBack = (props) => (<Button bem="ButtonBack" {...props}/>);
4
+ export default ButtonBack;
@@ -0,0 +1,16 @@
1
+ import { ReactNode } from 'react';
2
+ export declare type ButtonBarProps = {
3
+ align?: 'right';
4
+ children: ReactNode;
5
+ };
6
+ export declare const ButtonBar: {
7
+ (props: ButtonBarProps): JSX.Element;
8
+ Split(): JSX.Element;
9
+ };
10
+ /**
11
+ * @deprecated Prefer using `ButtonBar.Split` instead.
12
+ *
13
+ * (This export token is only to aid discovery.)
14
+ */
15
+ export declare const ButtonBar__split: () => JSX.Element;
16
+ export default ButtonBar;
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import getBemClass from '@hugsmidjan/react/utils/getBemClass';
3
+ export const ButtonBar = (props) => {
4
+ const { align, children } = props;
5
+ return (<div className={getBemClass('ButtonBar', align === 'right' && 'align--right')}>
6
+ {children}
7
+ </div>);
8
+ };
9
+ ButtonBar.Split = () => <span className="ButtonBar__split"/>;
10
+ /**
11
+ * @deprecated Prefer using `ButtonBar.Split` instead.
12
+ *
13
+ * (This export token is only to aid discovery.)
14
+ */
15
+ export const ButtonBar__split = ButtonBar.Split;
16
+ export default ButtonBar;
@@ -0,0 +1,7 @@
1
+ import { ReactNode } from 'react';
2
+ import { ButtonProps, ButtonVariantProps } from './_abstract/Button';
3
+ export declare type ButtonPrimaryProps = ButtonProps & ButtonVariantProps;
4
+ declare const ButtonPrimary: (props: ButtonPrimaryProps & {
5
+ children?: ReactNode;
6
+ }) => JSX.Element;
7
+ export default ButtonPrimary;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import Button from './_abstract/Button';
3
+ const ButtonPrimary = (props) => (<Button bem="ButtonPrimary" {...props}/>);
4
+ export default ButtonPrimary;
@@ -0,0 +1,7 @@
1
+ import { ReactNode } from 'react';
2
+ import { ButtonProps, ButtonVariantProps } from './_abstract/Button';
3
+ export declare type ButtonSecondaryProps = ButtonProps & ButtonVariantProps;
4
+ declare const ButtonSecondary: (props: ButtonSecondaryProps & {
5
+ children?: ReactNode;
6
+ }) => JSX.Element;
7
+ export default ButtonSecondary;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import Button from './_abstract/Button';
3
+ const ButtonSecondary = (props) => (<Button bem="ButtonSecondary" {...props}/>);
4
+ export default ButtonSecondary;
@@ -0,0 +1,12 @@
1
+ import { ReactNode } from 'react';
2
+ import { ButtonProps, ButtonVariantProps } from './_abstract/Button';
3
+ declare type TertiarySize = Extract<ButtonVariantProps['size'], 'normal' | 'small'>;
4
+ declare type TertiaryIcon = Extract<ButtonVariantProps['icon'], 'none' | 'go-back'>;
5
+ export declare type ButtonTertiaryProps = ButtonProps & Omit<ButtonVariantProps, 'icon' | 'size'> & {
6
+ size?: TertiarySize;
7
+ icon?: TertiaryIcon;
8
+ };
9
+ declare const ButtonTertiary: (props: ButtonTertiaryProps & {
10
+ children?: ReactNode;
11
+ }) => JSX.Element;
12
+ export default ButtonTertiary;
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import Button from './_abstract/Button';
3
+ const sizes = {
4
+ normal: 'normal',
5
+ small: 'small',
6
+ };
7
+ const icons = {
8
+ none: 'none',
9
+ 'go-back': 'go-back',
10
+ };
11
+ const ButtonTertiary = (props) => {
12
+ const { size = 'normal', icon = 'none' } = props;
13
+ return <Button bem="ButtonTertiary" {...props} size={sizes[size]} icon={icons[icon]}/>;
14
+ };
15
+ export default ButtonTertiary;
@@ -0,0 +1,4 @@
1
+ import { CarouselProps } from './_abstract/_AbstractCarousel';
2
+ export type { CarouselProps } from './_abstract/_AbstractCarousel';
3
+ declare const Carousel: <I extends Record<string, unknown> = {}, P extends Record<string, unknown> | undefined = {}>(props: CarouselProps<I, P>) => JSX.Element;
4
+ export default Carousel;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import AbstractCarousel from './_abstract/_AbstractCarousel';
3
+ const Carousel = (props) => (<AbstractCarousel {...props} bem={undefined} modifier={undefined} title={undefined}/>);
4
+ export default Carousel;
@@ -0,0 +1,4 @@
1
+ import { Props } from '@hugsmidjan/react/CarouselStepper';
2
+ declare type CarouselStepperProps = Omit<Props, 'bem' | 'modifier'>;
3
+ declare const CarouselStepper: (props: CarouselStepperProps) => JSX.Element;
4
+ export default CarouselStepper;