@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,22 @@
1
+ import { BemPropsModifier } from '@hugsmidjan/react/types';
2
+ export declare type TogglerInputProps = {
3
+ label: string | JSX.Element;
4
+ children?: undefined;
5
+ Wrapper?: 'div' | 'li';
6
+ invalid?: boolean;
7
+ /** Hidden label prefix text to indicate that the field is required.
8
+ *
9
+ * If your field is required but should not say so in its label
10
+ * then set this prop to `false`
11
+ *
12
+ * Default: `"Þarf að fylla út"`
13
+ * */
14
+ reqText?: string | false;
15
+ errorMessage?: string | JSX.Element;
16
+ } & BemPropsModifier & Omit<JSX.IntrinsicElements['input'], 'type'>;
17
+ declare type _TogglerInputProps = {
18
+ bem: string;
19
+ type: 'radio' | 'checkbox';
20
+ };
21
+ declare const TogglerInput: (props: TogglerInputProps & _TogglerInputProps) => JSX.Element;
22
+ export default TogglerInput;
@@ -0,0 +1,35 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import React from 'react';
13
+ import { useDomid } from '@hugsmidjan/react/hooks';
14
+ import getBemClass from '@hugsmidjan/react/utils/getBemClass';
15
+ const TogglerInput = (props) => {
16
+ const { bem, modifier, className, label, invalid, errorMessage, Wrapper = 'div', required, reqText, type, id } = props, inputProps = __rest(props, ["bem", "modifier", "className", "label", "invalid", "errorMessage", "Wrapper", "required", "reqText", "type", "id"]);
17
+ const domid = useDomid(id);
18
+ const errorId = errorMessage && 'error' + domid;
19
+ const reqStar = required && reqText !== false && (<abbr className={bem + '__label__reqstar'}
20
+ // TODO: add mo-better i18n thinking
21
+ title={(reqText || 'Þarf að haka í') + ': '}>
22
+ *
23
+ </abbr>);
24
+ return (<Wrapper className={getBemClass(bem, modifier, className)}>
25
+ <input className={bem + '__input'} type={type} id={domid} aria-invalid={invalid || !!errorMessage || undefined} aria-describedby={errorId} {...inputProps}/>{' '}
26
+ <label className={bem + '__label'} htmlFor={domid}>
27
+ {' '}
28
+ {reqStar} {label}{' '}
29
+ </label>
30
+ {errorMessage && (<div className={bem + '__error'} id={errorId}>
31
+ {errorMessage}
32
+ </div>)}
33
+ </Wrapper>);
34
+ };
35
+ export default TogglerInput;
@@ -0,0 +1,25 @@
1
+ import { ReactElement } from 'react';
2
+ import { SSRSupport } from '@hugsmidjan/react/hooks';
3
+ import { BemProps } from '@hugsmidjan/react/types';
4
+ import { SeenProp } from '../utils/seenEffect';
5
+ export declare type CarouselProps<I extends Record<string, unknown> = {}, P extends Record<string, unknown> | undefined = {}> = {
6
+ className?: string;
7
+ ssr?: SSRSupport;
8
+ /** @deprecated Ingored because never used (Will be removed in v0.11) */
9
+ scrollRight?: boolean;
10
+ } & ({
11
+ children?: never;
12
+ items: Array<I>;
13
+ Component: (props: P extends undefined ? I : I & P) => ReactElement | null;
14
+ ComponentProps?: P;
15
+ } | {
16
+ children: Array<ReactElement>;
17
+ items?: never;
18
+ Component?: never;
19
+ ComponentProps?: never;
20
+ }) & SeenProp;
21
+ declare type AbstractCarouselProps<I extends Record<string, unknown> = {}, P extends Record<string, unknown> | undefined = {}> = CarouselProps<I, P> & BemProps & {
22
+ title?: string;
23
+ };
24
+ declare const AbstractCarousel: <I extends Record<string, unknown> = {}, P extends Record<string, unknown> | undefined = {}>(props: AbstractCarouselProps<I, P>) => JSX.Element | null;
25
+ export default AbstractCarousel;
@@ -0,0 +1,133 @@
1
+ import React, { useEffect, useRef, useState, } from 'react';
2
+ import A from '@hugsmidjan/qj/A';
3
+ import focusElm from '@hugsmidjan/qj/focusElm';
4
+ import throttle from '@hugsmidjan/qj/throttle';
5
+ import { useIsBrowserSide } from '@hugsmidjan/react/hooks';
6
+ import getBemClass from '@hugsmidjan/react/utils/getBemClass';
7
+ import { notNully } from '@reykjavik/hanna-utils';
8
+ import CarouselStepper from '../CarouselStepper';
9
+ import { useSeenEffect } from '../utils/seenEffect';
10
+ const WHEEL_AMPLIFIER = 3;
11
+ const WHEEL_HIJACK_TIMEOUT_MS = 667;
12
+ const scrollXBy = (elm, deltaX) => {
13
+ const left = elm.scrollLeft + deltaX;
14
+ elm.scrollTo(left, elm.scrollTop);
15
+ // NOTE 1: using elm.scrollTo({ left, behavior: 'smooth' }); seems to be too much
16
+ // as `behavior: 'smooth'` starts some weird interactions with the browser's
17
+ // `scroll-snap-type` behavior.
18
+ //
19
+ // NOTE 2: Both Chrome and Safari tend to snap hard to the nearest list item
20
+ // while Firefox is more smooth. Haven't found a way around that.
21
+ };
22
+ const exitWheelHijack = (elm) => () => {
23
+ elm.style.scrollSnapType = '';
24
+ const lastElmOffset = elm.lastElementChild
25
+ ? elm.lastElementChild.offsetLeft
26
+ : 0;
27
+ // trigger one last scroll event, to make sure the element's
28
+ // `style.scrollSnapType`'s behavior kicks in.
29
+ // Otherwise the list may stay stuck in an over-scrolled state —
30
+ // off to the right.
31
+ scrollXBy(elm, Math.min(0, lastElmOffset - elm.scrollLeft));
32
+ };
33
+ const handleMouseWheel = (e) => {
34
+ const elm = e.currentTarget;
35
+ if (e.deltaX || elm.$hasXDeltaed) {
36
+ elm.$hasXDeltaed = true;
37
+ exitWheelHijack(elm);
38
+ return;
39
+ }
40
+ if (e.deltaY && !e.deltaX) {
41
+ if (e.deltaY < 0) {
42
+ // Stop scroll-capture when list is at left-edge
43
+ if (elm.scrollLeft < 50) {
44
+ return;
45
+ }
46
+ }
47
+ else {
48
+ // Stop scroll-capture when list is beyond left edge of last list item
49
+ if (elm.scrollLeft >
50
+ (elm.lastElementChild ? elm.lastElementChild.offsetLeft : 0)) {
51
+ exitWheelHijack(elm);
52
+ return;
53
+ }
54
+ }
55
+ e.preventDefault();
56
+ e.stopImmediatePropagation();
57
+ // Disable `scroll-snap-style` because otherwise
58
+ // small-scale elm.scrollTo() calls have no effect
59
+ elm.style.scrollSnapType = 'initial';
60
+ scrollXBy(elm, e.deltaY * WHEEL_AMPLIFIER);
61
+ clearTimeout(elm.$timeout);
62
+ elm.$timeout = setTimeout(exitWheelHijack(elm), WHEEL_HIJACK_TIMEOUT_MS);
63
+ }
64
+ };
65
+ const handleMouseLeave = (e) => {
66
+ const elm = e.currentTarget;
67
+ exitWheelHijack(elm);
68
+ elm.$hasXDeltaed = undefined;
69
+ };
70
+ const AbstractCarousel = (props) => {
71
+ const { title, items = [], Component, ComponentProps, bem = 'Carousel', modifier, ssr, startSeen, } = props;
72
+ const children = props.children && props.children.filter(notNully);
73
+ const [leftOffset, setLeftOffset] = useState();
74
+ const itemCount = (children || items).length;
75
+ const listRef = useRef(null);
76
+ const [activeItem, setActiveItem] = useState(0);
77
+ const isBrowser = useIsBrowserSide(ssr);
78
+ // update on activeItem state change
79
+ useEffect(() => {
80
+ const listElm = listRef.current;
81
+ if (!listElm) {
82
+ return;
83
+ }
84
+ const calcLeftOffset = () => {
85
+ var _a;
86
+ setLeftOffset((_a = listElm.parentElement) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().left);
87
+ scrollXBy(listElm, 0);
88
+ };
89
+ const calcActiveItem = throttle(() => {
90
+ const { scrollLeft, children } = listElm;
91
+ // using Array#find as forEachUntil
92
+ A(children).find((item, i) => {
93
+ if (scrollLeft <= item.offsetLeft + item.offsetWidth / 2) {
94
+ setActiveItem(i);
95
+ return true;
96
+ }
97
+ });
98
+ }, 300, true);
99
+ calcLeftOffset();
100
+ listElm.addEventListener('wheel', handleMouseWheel);
101
+ listElm.addEventListener('scroll', calcActiveItem, { passive: true });
102
+ window.addEventListener('resize', calcLeftOffset, { passive: true });
103
+ return () => {
104
+ listElm.removeEventListener('wheel', handleMouseWheel);
105
+ listElm.removeEventListener('scroll', calcActiveItem);
106
+ window.removeEventListener('resize', calcLeftOffset);
107
+ };
108
+ }, []);
109
+ const scrollToItem = (newActive) => {
110
+ setActiveItem(newActive);
111
+ const listElm = listRef.current;
112
+ const newItem = listElm.children[newActive];
113
+ listElm.scrollTo(newItem ? newItem.offsetLeft : 0, 0);
114
+ setTimeout(() => focusElm(newItem), 500);
115
+ };
116
+ const [outerRef] = useSeenEffect(startSeen);
117
+ if (!itemCount) {
118
+ return null;
119
+ }
120
+ return (<div className={getBemClass(bem, modifier, props.className)} ref={outerRef} data-sprinkled={isBrowser}>
121
+ {title && <h2 className={bem + '__title'}>{title}</h2>}
122
+ <div className={bem + '__itemlist'} style={leftOffset
123
+ ? { '--Carousel--leftOffset': `${leftOffset}px` }
124
+ : undefined} data-scroll-snapping={leftOffset ? 'true' : undefined} onMouseLeave={handleMouseLeave} ref={listRef}>
125
+ {children ||
126
+ items.map((item, i) => (
127
+ // @ts-expect-error (Can't be arsed...)
128
+ <Component key={i} {...ComponentProps} {...item}/>))}
129
+ </div>
130
+ {isBrowser && (<CarouselStepper itemCount={itemCount} setCurrent={scrollToItem} current={activeItem}/>)}
131
+ </div>);
132
+ };
133
+ export default AbstractCarousel;
@@ -0,0 +1,11 @@
1
+ import { BlingType } from '@reykjavik/hanna-utils/assets';
2
+ import { BlingProps } from '../Bling';
3
+ export declare type BlingComboProps = Array<Omit<BlingProps, 'type' | 'blingUrl'> & {
4
+ type: BlingType;
5
+ }>;
6
+ declare type BlingsProps = {
7
+ blings: BlingComboProps;
8
+ mirror?: boolean;
9
+ };
10
+ declare const Blings: (props: BlingsProps) => JSX.Element;
11
+ export default Blings;
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import Bling from '../Bling';
3
+ const inverseAlignments = {
4
+ left: 'right',
5
+ 'left-ish': 'right-ish',
6
+ 'left-center': 'right-center',
7
+ 'right-center': 'left-center',
8
+ 'right-ish': 'left-ish',
9
+ right: 'left',
10
+ };
11
+ const Blings = (props) => (<>
12
+ {props.blings.map(({ type, align, vertical, color, overlay, parent }, i) => (<Bling key={type + '-' + i} type={type} align={props.mirror ? inverseAlignments[align || 'left'] : align} vertical={vertical} color={color} overlay={overlay} parent={parent}/>))}
13
+ </>);
14
+ export default Blings;
@@ -0,0 +1,22 @@
1
+ import { BemPropsModifier } from '@hugsmidjan/react/types';
2
+ import { SeenProp } from '../utils/seenEffect';
3
+ import { ButtonProps } from './Button';
4
+ import { ImageProps } from './Image';
5
+ export declare type BlockItem = {
6
+ title: string;
7
+ summary?: string | JSX.Element;
8
+ buttons?: Array<ButtonProps>;
9
+ };
10
+ export declare type ContentImageBlock = {
11
+ content: BlockItem;
12
+ image: ImageProps;
13
+ } & SeenProp;
14
+ export declare type ContentBlock = {
15
+ content: Array<BlockItem>;
16
+ image?: undefined;
17
+ } & SeenProp;
18
+ export declare type BlockProps = BemPropsModifier & (ContentBlock | ContentImageBlock);
19
+ declare const Block: (props: BlockProps & {
20
+ bem: string;
21
+ }) => JSX.Element;
22
+ export default Block;
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import getBemClass from '@hugsmidjan/react/utils/getBemClass';
3
+ import { useSeenEffect } from '../utils/seenEffect';
4
+ import Button from './Button';
5
+ import Image from './Image';
6
+ const Block = (props) => {
7
+ const { image, modifier, bem, content, startSeen } = props;
8
+ const [ref] = useSeenEffect(startSeen);
9
+ const contentItems = Array.isArray(content) ? content : [content];
10
+ return (<div className={getBemClass(bem, modifier)} ref={ref}>
11
+ {contentItems.map(({ title, summary, buttons = [] }, i) => {
12
+ const hasSummary = summary && (typeof summary !== 'string' || !!summary.trim());
13
+ return (<div key={i} className={`${bem}__content`}>
14
+ <h2 className={`${bem}__title`}>{title}</h2>
15
+ {hasSummary && <div className={`${bem}__summary`}>{summary}</div>}
16
+ {buttons.length > 0 && (<div className={`${bem}__buttons`}>
17
+ {' '}
18
+ {buttons.map((buttonProps, i) => (<>
19
+ <Button bem={`${bem}__button`} key={i} {...buttonProps}/>{' '}
20
+ </>))}
21
+ </div>)}
22
+ </div>);
23
+ })}
24
+ {image && <Image className={`${bem}__image`} {...image}/>}
25
+ </div>);
26
+ };
27
+ export default Block;
@@ -0,0 +1,9 @@
1
+ import { ReactNode } from 'react';
2
+ export declare type QuoteProps = {
3
+ children: ReactNode;
4
+ by?: string | JSX.Element;
5
+ byHref?: string;
6
+ };
7
+ export declare const _Quote: (props: {
8
+ bem: string;
9
+ } & QuoteProps) => JSX.Element;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { Link } from './Link';
3
+ export const _Quote = (props) => {
4
+ const { bem, children, by, byHref } = props;
5
+ return (<figure className={bem}>
6
+ <blockquote className={bem + '__quote'}>{children}</blockquote>
7
+ {by && (<figcaption className={bem + '__by'}>
8
+ {byHref ? (<Link href={byHref}>{by}</Link>) : typeof by === 'string' ? (<span>{by}</span>) : (by)}
9
+ </figcaption>)}
10
+ </figure>);
11
+ };
@@ -0,0 +1,2 @@
1
+ declare const breakOnNL: (text: string | undefined) => "" | (string | JSX.Element)[] | undefined;
2
+ export default breakOnNL;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ const breakOnNL = (text) => text &&
3
+ text
4
+ .trim()
5
+ .replace(/(?:\n\s*)+/g, '\n\n')
6
+ .split(/\n/)
7
+ .map((bit) => bit || <br />);
8
+ export default breakOnNL;
@@ -0,0 +1,42 @@
1
+ import type { BlingType, Efnistakn, Formheimur, Illustration } from '@reykjavik/hanna-utils/assets';
2
+ import { blingTypes, efnistakn, getAssetUrl, getBlingUrl, getEfnistaknUrl, getFormheimurUrl, getIllustrationUrl, illustrations } from '@reykjavik/hanna-utils/assets';
3
+ export type {
4
+ /** @deprecated Instead `import type { BlingType } from '@reykjavik/hanna-utils/assets';` (Will be removed in v0.11) */
5
+ BlingType,
6
+ /** @deprecated Instead `import type { Efnistakn } from '@reykjavik/hanna-utils/assets';` (Will be removed in v0.11) */
7
+ Efnistakn,
8
+ /** @deprecated Instead `import type { Formheimur } from '@reykjavik/hanna-utils/assets';` (Will be removed in v0.11) */
9
+ Formheimur,
10
+ /** @deprecated Instead `import type { Illustration } from '@reykjavik/hanna-utils/assets';` (Will be removed in v0.11) */
11
+ Illustration, };
12
+ export {
13
+ /** @deprecated Instead `import type { blingTypes } from '@reykjavik/hanna-utils/assets';` (Will be removed in v0.11) */
14
+ blingTypes,
15
+ /** @deprecated Instead `import type { efnistakn } from '@reykjavik/hanna-utils/assets';` (Will be removed in v0.11) */
16
+ efnistakn,
17
+ /** @deprecated Instead `import type { getAssetUrl } from '@reykjavik/hanna-utils/assets';` (Will be removed in v0.11) */
18
+ getAssetUrl,
19
+ /** @deprecated Instead `import type { getBlingUrl } from '@reykjavik/hanna-utils/assets';` (Will be removed in v0.11) */
20
+ getBlingUrl,
21
+ /** @deprecated Instead `import type { getEfnistaknUrl } from '@reykjavik/hanna-utils/assets';` (Will be removed in v0.11) */
22
+ getEfnistaknUrl,
23
+ /** @deprecated Instead `import type { getFormheimurUrl } from '@reykjavik/hanna-utils/assets';` (Will be removed in v0.11) */
24
+ getFormheimurUrl,
25
+ /** @deprecated Instead `import type { getIllustrationUrl } from '@reykjavik/hanna-utils/assets';` (Will be removed in v0.11) */
26
+ getIllustrationUrl,
27
+ /** @deprecated Instead `import type { illustrations } from '@reykjavik/hanna-utils/assets';` (Will be removed in v0.11) */
28
+ illustrations, };
29
+ /** @deprecated Use `getCssBundleUrl` from '@reykjavik/hanna-css' instead (Will be reomved in v0.11) */
30
+ export declare const getCssBundleUrl: (cssTokens: string | Array<string>, version?: string | undefined) => string;
31
+ /** @deprecated (Will be removed in v0.11) */
32
+ export declare const efnistakn_menu: readonly ["menu/borgarstjori", "menu/borgarstjorn", "menu/bygg_framkv", "menu/fjarmal", "menu/fundargerdir", "menu/itrottir_aftreying", "menu/log_reglugerdir", "menu/mannaudur", "menu/menning", "menu/rad_nefndir", "menu/skipulag", "menu/skolar_fristund", "menu/svid_deildir", "menu/umhverfi_samgongur", "menu/velferd_fjolskylda"];
33
+ /** @deprecated (Will be removed in v0.11) */
34
+ export declare type Efnistakn_Menu = typeof efnistakn_menu[number];
35
+ /** @deprecated (Will be removed in v0.11) */
36
+ export declare const auxiliary_menu_images: Array<Illustration>;
37
+ /** @deprecated Instead `import type { AuxilaryPanelIllustration } from '@reykjavik/hanna-react/MainMenu';` (Will be removed in v0.11) */
38
+ export declare type Auxilary_MenuImages = typeof auxiliary_menu_images[number];
39
+ /** @deprecated Instead `import type { BlingType } from '@reykjavik/hanna-utils/assets';` (Will be removed in v0.11) */
40
+ export declare type BlingTypes = BlingType;
41
+ /** @deprecated Instead `import type { Illustration } from '@reykjavik/hanna-utils/assets';` (Will be removed in v0.11) */
42
+ export declare type Illustrations = Illustration;
package/esm/assets.js ADDED
@@ -0,0 +1,56 @@
1
+ import { getCssBundleUrl as _getCssBundleUrl } from '@reykjavik/hanna-css';
2
+ import { blingTypes, efnistakn, getAssetUrl, getBlingUrl, getEfnistaknUrl, getFormheimurUrl, getIllustrationUrl, illustrations, } from '@reykjavik/hanna-utils/assets';
3
+ export {
4
+ /** @deprecated Instead `import type { blingTypes } from '@reykjavik/hanna-utils/assets';` (Will be removed in v0.11) */
5
+ blingTypes,
6
+ /** @deprecated Instead `import type { efnistakn } from '@reykjavik/hanna-utils/assets';` (Will be removed in v0.11) */
7
+ efnistakn,
8
+ /** @deprecated Instead `import type { getAssetUrl } from '@reykjavik/hanna-utils/assets';` (Will be removed in v0.11) */
9
+ getAssetUrl,
10
+ /** @deprecated Instead `import type { getBlingUrl } from '@reykjavik/hanna-utils/assets';` (Will be removed in v0.11) */
11
+ getBlingUrl,
12
+ /** @deprecated Instead `import type { getEfnistaknUrl } from '@reykjavik/hanna-utils/assets';` (Will be removed in v0.11) */
13
+ getEfnistaknUrl,
14
+ /** @deprecated Instead `import type { getFormheimurUrl } from '@reykjavik/hanna-utils/assets';` (Will be removed in v0.11) */
15
+ getFormheimurUrl,
16
+ /** @deprecated Instead `import type { getIllustrationUrl } from '@reykjavik/hanna-utils/assets';` (Will be removed in v0.11) */
17
+ getIllustrationUrl,
18
+ /** @deprecated Instead `import type { illustrations } from '@reykjavik/hanna-utils/assets';` (Will be removed in v0.11) */
19
+ illustrations, };
20
+ /** @deprecated Use `getCssBundleUrl` from '@reykjavik/hanna-css' instead (Will be reomved in v0.11) */
21
+ export const getCssBundleUrl = (cssTokens,
22
+ /** If you want to pin your CSS files to a specific version */
23
+ version) => _getCssBundleUrl(cssTokens, { version });
24
+ // ---------------------------------------------------------------------------
25
+ // Based on "https://styles.reykjavik.is/assets/efnistakn/menu/files.json"
26
+ /** @deprecated (Will be removed in v0.11) */
27
+ export const efnistakn_menu = [
28
+ 'menu/borgarstjori',
29
+ 'menu/borgarstjorn',
30
+ 'menu/bygg_framkv',
31
+ 'menu/fjarmal',
32
+ 'menu/fundargerdir',
33
+ 'menu/itrottir_aftreying',
34
+ 'menu/log_reglugerdir',
35
+ 'menu/mannaudur',
36
+ 'menu/menning',
37
+ 'menu/rad_nefndir',
38
+ 'menu/skipulag',
39
+ 'menu/skolar_fristund',
40
+ 'menu/svid_deildir',
41
+ 'menu/umhverfi_samgongur',
42
+ 'menu/velferd_fjolskylda',
43
+ ];
44
+ // ---------------------------------------------------------------------------
45
+ /** @deprecated (Will be removed in v0.11) */
46
+ export const auxiliary_menu_images = [
47
+ 'hanna-veitiggi',
48
+ 'hanna-vandro',
49
+ 'hanna-hugsi',
50
+ 'hanna-hissa',
51
+ 'hanna-hahaha',
52
+ 'hanna-hae',
53
+ 'hanna-god_spurning',
54
+ 'hanna-gjuggiborg',
55
+ 'hanna-benda',
56
+ ];
@@ -0,0 +1,39 @@
1
+ /** @depcrecated import `colorFamilies` from `@reykjavik/hanna-css` instead (Will be removed in v0.11) */
2
+ export declare const colorFamilies: readonly ["esja", "faxafloi", "nautholsvik", "heidmork", "ellidaardalur", "blafjoll", "sund", "rokkur", "suld"] & {
3
+ readonly esja: "esja";
4
+ readonly faxafloi: "faxafloi";
5
+ readonly nautholsvik: "nautholsvik";
6
+ readonly heidmork: "heidmork";
7
+ readonly ellidaardalur: "ellidaardalur";
8
+ readonly blafjoll: "blafjoll";
9
+ readonly sund: "sund";
10
+ readonly rokkur: "rokkur";
11
+ readonly suld: "suld";
12
+ } & {
13
+ /** @deprecated This is a typo (Will be removed in v0.11) */
14
+ ellidarardalur: string;
15
+ };
16
+ /** @depcrecated import type `ColorFamily` from `@reykjavik/hanna-css` instead (Will be removed in v0.11) */
17
+ export type { ColorFamily } from '@reykjavik/hanna-css';
18
+ /** @depcrecated import `colorThemes` from `@reykjavik/hanna-css` instead (Will be removed in v0.11) */
19
+ export declare const themeOptions: readonly ["trustworthy", "dependable", "friendly", "lively", "colorful"] & {
20
+ readonly trustworthy: "trustworthy";
21
+ readonly dependable: "dependable";
22
+ readonly friendly: "friendly";
23
+ readonly lively: "lively";
24
+ readonly colorful: "colorful";
25
+ };
26
+ /** @depcrecated import type `HannaColorTheme` from `@reykjavik/hanna-css` instead (Will be removed in v0.11) */
27
+ export type { HannaColorTheme as ThemeOption } from '@reykjavik/hanna-css';
28
+ export declare type Alignment = 'right' | 'left';
29
+ export declare const aligns: Record<string, true | undefined>;
30
+ export declare type ComponentLayoutProps<Align extends string = 'right'> = {
31
+ wide?: undefined;
32
+ align?: undefined;
33
+ } | {
34
+ wide: boolean;
35
+ align?: undefined;
36
+ } | {
37
+ wide?: undefined;
38
+ align: Align;
39
+ };
@@ -0,0 +1,22 @@
1
+ import { colorFamilies as _colorFamilies, colorThemes } from '@reykjavik/hanna-css';
2
+ /** @depcrecated import `colorFamilies` from `@reykjavik/hanna-css` instead (Will be removed in v0.11) */
3
+ export const colorFamilies = Object.assign([
4
+ 'esja',
5
+ 'faxafloi',
6
+ 'nautholsvik',
7
+ 'heidmork',
8
+ 'ellidaardalur',
9
+ 'blafjoll',
10
+ 'sund',
11
+ 'rokkur',
12
+ 'suld',
13
+ ], _colorFamilies, {
14
+ /** @deprecated This is a typo (Will be removed in v0.11) */
15
+ ellidarardalur: 'ellidaardalur',
16
+ });
17
+ /** @depcrecated import `colorThemes` from `@reykjavik/hanna-css` instead (Will be removed in v0.11) */
18
+ export const themeOptions = Object.assign(['trustworthy', 'dependable', 'friendly', 'lively', 'colorful'], colorThemes);
19
+ export const aligns = {
20
+ right: true,
21
+ left: true,
22
+ };
@@ -0,0 +1 @@
1
+ import '@reykjavik/hanna-utils/focus-visible';
@@ -0,0 +1 @@
1
+ import '@reykjavik/hanna-utils/focus-visible';
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1 @@
1
+ export declare const isPreact: true | undefined;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ export const isPreact =
3
+ // imported from 'preact'
4
+ 'h' in React ||
5
+ // imported from 'preact/compat' (has all of `react-dom` bundled)
6
+ ('hydrate' in React && 'render' in React) ||
7
+ // `undefined` instead of `false` for nicer prop usage
8
+ undefined;
@@ -0,0 +1,28 @@
1
+ import { RefObject } from 'react';
2
+ export declare const DATA_ATTR_NAME = "is-seen";
3
+ export declare const getObserver: {
4
+ (target: Element, callback?: ((target: Element) => void) | undefined): (() => void) | undefined;
5
+ DATA_ATTR_NAME: string;
6
+ };
7
+ export declare const seenEffectOptOut: (target: Element, setFlag?: boolean) => void;
8
+ declare const effects: {
9
+ readonly fadein: 1;
10
+ readonly fadeup: 1;
11
+ readonly fadeleft: 1;
12
+ };
13
+ export declare type SeenEffectType = keyof typeof effects;
14
+ export declare type EffectProp = {
15
+ /** Should the component appear instantly, and not transition-in once seen */
16
+ effectType?: SeenEffectType;
17
+ };
18
+ /** Asserts that a prop value is a SeenEffectType and returns undefined otherwise */
19
+ export declare const assertEffectType: (maybeType?: string | undefined) => SeenEffectType | undefined;
20
+ export declare const getEffectAttr: (maybeType?: string | undefined) => {
21
+ 'data-seen-effect': string;
22
+ };
23
+ export declare type SeenProp = {
24
+ /** Should the component appear instantly, and not transition-in once seen */
25
+ startSeen?: boolean;
26
+ };
27
+ export declare const useSeenEffect: <E extends Element = HTMLDivElement>(startSeen?: boolean | undefined, customRef?: RefObject<E> | undefined) => [RefObject<E> | undefined, true | undefined];
28
+ export {};
@@ -0,0 +1,73 @@
1
+ import { useEffect, useRef, useState } from 'react';
2
+ export const DATA_ATTR_NAME = 'is-seen';
3
+ const STACKING_DELAY = 400; // ms
4
+ const dataAttr = 'data-' + DATA_ATTR_NAME;
5
+ const inTargetSourceOrder = (a, b) => a.target.compareDocumentPosition(b.target) & Node.DOCUMENT_POSITION_PRECEDING ? 1 : -1;
6
+ const options = {
7
+ // root: window
8
+ rootMargin: '-100px 0px 0px 0px',
9
+ threshold: 0, // 0
10
+ };
11
+ let observer;
12
+ export const getObserver = (target, callback) => {
13
+ if (target.hasAttribute(dataAttr)) {
14
+ return;
15
+ }
16
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
17
+ if (!observer) {
18
+ observer = new IntersectionObserver((entries, observer) => entries
19
+ .filter((e) => e.isIntersecting)
20
+ .sort(inTargetSourceOrder)
21
+ .forEach(({ target }, i) => {
22
+ setTimeout(() => {
23
+ target.setAttribute(dataAttr, 'true');
24
+ callback && callback(target);
25
+ observer.unobserve(target);
26
+ }, STACKING_DELAY * i);
27
+ }), options);
28
+ }
29
+ if (target.matches('[' + dataAttr + '] *')) {
30
+ // opt out if target is contained by another "seen-effect" element
31
+ target.setAttribute(dataAttr, '');
32
+ return;
33
+ }
34
+ target.setAttribute(dataAttr, 'false');
35
+ observer.observe(target);
36
+ return () => observer.unobserve(target);
37
+ };
38
+ export const seenEffectOptOut = (target, setFlag = true) => {
39
+ setFlag ? target.setAttribute(dataAttr, '') : target.removeAttribute(dataAttr);
40
+ };
41
+ getObserver.DATA_ATTR_NAME = DATA_ATTR_NAME;
42
+ // ---------------------------------------------------------------------------
43
+ // ---------------------------------------------------------------------------
44
+ const effects = {
45
+ fadein: 1,
46
+ fadeup: 1,
47
+ fadeleft: 1,
48
+ };
49
+ /** Asserts that a prop value is a SeenEffectType and returns undefined otherwise */
50
+ export const assertEffectType = (maybeType) => maybeType && maybeType in effects ? maybeType : undefined;
51
+ export const getEffectAttr = (maybeType) => ({
52
+ 'data-seen-effect': assertEffectType(maybeType) || '',
53
+ });
54
+ export const useSeenEffect = (
55
+ /** Should the component appear instantly, and not transition-in once seen */
56
+ startSeen,
57
+ /** Bring Your Own RefObject */
58
+ customRef) => {
59
+ const localRef = useRef(null);
60
+ const [isSeen, setSeen] = useState(startSeen || undefined);
61
+ const ref = !startSeen && (customRef || localRef);
62
+ useEffect(() => {
63
+ setSeen(startSeen || undefined);
64
+ if (ref && ref.current) {
65
+ // NOTE: Given that `ref` is defined, then
66
+ // `startSeen` is implicily `false | undefined` at
67
+ // this point.
68
+ seenEffectOptOut(ref.current, false);
69
+ return getObserver(ref.current, () => setSeen(true));
70
+ }
71
+ }, [ref, startSeen]);
72
+ return [ref || undefined, isSeen];
73
+ };