@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,56 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ const react_1 = __importDefault(require("react"));
18
+ const getBemClass_1 = __importDefault(require("@hugsmidjan/react/utils/getBemClass"));
19
+ const Link_1 = require("./Link");
20
+ // ---------------------------------------------------------------------------
21
+ const sizes = {
22
+ normal: '',
23
+ small: 'small',
24
+ wide: 'wide',
25
+ };
26
+ // ---------------------------------------------------------------------------
27
+ const variants = {
28
+ normal: '',
29
+ destructive: 'destructive',
30
+ };
31
+ const navigationFlags = {
32
+ none: '',
33
+ 'go-back': 'go--back',
34
+ 'go-forward': 'go--forward',
35
+ };
36
+ const icons = {
37
+ // TODO: insert icons
38
+ edit: 'edit',
39
+ };
40
+ const Button = (props) => {
41
+ const { bem, small, size = 'normal', modifier, children, variant = 'normal', icon = 'none', label = children } = props, buttonProps = __rest(props, ["bem", "small", "size", "modifier", "children", "variant", "icon", "label"]);
42
+ const className = bem &&
43
+ (0, getBemClass_1.default)(bem, [modifier, variants[variant], sizes[size], navigationFlags[icon]]);
44
+ const iconProp = icons[icon] && { 'data-icon': icons[icon] };
45
+ if (buttonProps.href != null) {
46
+ return (<Link_1.Link className={className} {...buttonProps} style={undefined} {...iconProp}>
47
+ {label}
48
+ </Link_1.Link>);
49
+ }
50
+ else {
51
+ return (<button className={className} type="button" {...buttonProps} style={undefined} {...iconProp}>
52
+ {label}
53
+ </button>);
54
+ }
55
+ };
56
+ exports.default = Button;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CardList = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const Button_1 = __importDefault(require("./Button"));
9
+ const Image_1 = __importDefault(require("./Image"));
10
+ const Card = (props) => {
11
+ const { bem, href, title, imgPlaceholder } = props;
12
+ const cardClass = `${bem}__card`;
13
+ const image = 'image' in props && props.image;
14
+ const meta = 'meta' in props && props.meta;
15
+ const summary = 'summary' in props && props.summary;
16
+ return (<>
17
+ <Button_1.default bem={cardClass} href={href}>
18
+ {' '}
19
+ <Image_1.default className={`${bem}__image`} {...image} placeholder={imgPlaceholder}/>
20
+ <span className={`${cardClass}__title`}>{title}</span>{' '}
21
+ {meta && <span className={`${cardClass}__meta`}>{meta}</span>}{' '}
22
+ {summary && <span className={`${cardClass}__summary`}>{summary}</span>}{' '}
23
+ </Button_1.default>{' '}
24
+ </>);
25
+ };
26
+ const CardList = (props) => {
27
+ const { bemPrefix, title, summaryElement, cards, titleTag = 'h2', children, imgPlaceholder, } = props;
28
+ const TitleTag = titleTag;
29
+ const fallbackImage = (imgPlaceholder !== true && imgPlaceholder) || undefined;
30
+ const fallbackImageStyle = fallbackImage
31
+ ? { '--ImageCards--fallback': `url("${fallbackImage}")` }
32
+ : undefined;
33
+ return (<>
34
+ {summaryElement ? (<div className={bemPrefix + '__summary'}>
35
+ {title && <TitleTag className={bemPrefix + '__title'}>{title}</TitleTag>}
36
+ {summaryElement}
37
+ </div>) : (title && <TitleTag className={bemPrefix + '__title'}>{title}</TitleTag>)}
38
+ <ul className={bemPrefix + '__list'} style={fallbackImageStyle}>
39
+ {cards.map((card, i) => (<li key={i} className={bemPrefix + '__item'}>
40
+ <Card {...card} bem={bemPrefix} imgPlaceholder={!!imgPlaceholder}/>
41
+ </li>))}
42
+ </ul>
43
+ {children}
44
+ </>);
45
+ };
46
+ exports.CardList = CardList;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const getBemClass_1 = __importDefault(require("@hugsmidjan/react/utils/getBemClass"));
8
+ const useGetSVGtext_1 = require("../utils/useGetSVGtext");
9
+ // eslint-disable-next-line complexity
10
+ const Image = (props) => {
11
+ const { src, altText = '', sources = [], preloadSrc, className, inline, placeholder, } = props;
12
+ const _src = (sources.length && preloadSrc) || src;
13
+ const imageSrc = _src || (sources[0] != null ? sources[0].srcset.split(' ')[0] : undefined);
14
+ const imgLoading = preloadSrc ? 'eager' : 'lazy';
15
+ const inlineSvg = (0, useGetSVGtext_1.useGetSVGtext)(inline ? imageSrc : undefined);
16
+ if (!imageSrc) {
17
+ return placeholder ? (<span className={className && (0, getBemClass_1.default)(className, 'missing')}>
18
+ {placeholder !== true && placeholder()}
19
+ </span>) : null;
20
+ }
21
+ if (inline && inlineSvg) {
22
+ const __html = inlineSvg.imageSrc === imageSrc ? inlineSvg.code : '';
23
+ return <span className={className} dangerouslySetInnerHTML={{ __html }}/>;
24
+ }
25
+ return (<picture className={className}>
26
+ {' '}
27
+ {sources.map((source, i) => (<>
28
+ <source key={i} srcSet={source.srcset} media={source.media}/>{' '}
29
+ </>))}{' '}
30
+ <img src={imageSrc} alt={altText} loading={imgLoading}/>
31
+ {' '}
32
+ </picture>);
33
+ };
34
+ exports.default = Image;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.setLinkRenderer = exports.Link = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const DefaultLinkRenderer = (props) => react_1.default.createElement('a', props);
9
+ exports.Link = DefaultLinkRenderer;
10
+ /**
11
+ * Allows you to set a callback function to wrapp <a href=""/> links with
12
+ * a custom routing component.
13
+ *
14
+ * Example use:
15
+ *
16
+ * ```js
17
+ * import { Link } from 'remix'; // or whatever :-)
18
+ *
19
+ * setLinkRenderer((linkProps) =>
20
+ * <Link to={linkProps.href}><a {...linkProps} /></Link>);
21
+ * ```
22
+ *
23
+ * The Default linkrenderer defined as:
24
+ * ```js
25
+ * (linkProps) => React.createElement('a', linkProps);
26
+ * ```
27
+ */
28
+ const setLinkRenderer = (linkRenderer) => {
29
+ exports.Link = linkRenderer || DefaultLinkRenderer;
30
+ };
31
+ exports.setLinkRenderer = setLinkRenderer;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const getBemClass_1 = __importDefault(require("@hugsmidjan/react/utils/getBemClass"));
8
+ const TogglerGroup = (props) => {
9
+ const {
10
+ // id,
11
+ className, bem, name, disabled, Toggler, onSelected, options, inputProps = {}, } = props;
12
+ const values = props.value || [];
13
+ return (<ul className={(0, getBemClass_1.default)(bem, null, className)} role="group" aria-labelledby={props['aria-labelledby']} aria-describedby={props['aria-describedby']} aria-required={props.required}>
14
+ {options.map((option, i) => {
15
+ const isDisabled = option.disabled != null
16
+ ? option.disabled
17
+ : disabled && typeof disabled !== 'boolean'
18
+ ? disabled.includes(i)
19
+ : disabled;
20
+ const isChecked = values.includes(option.value);
21
+ return (<Toggler key={i} {...inputProps} className={bem + '__item'} name={name} Wrapper="li" {...option} label={option.label || option.value} onChange={onSelected
22
+ ? (e) => {
23
+ const { value } = option;
24
+ const checked = e.currentTarget.checked;
25
+ inputProps.onChange && inputProps.onChange(e);
26
+ const selectedValues = values.filter((val) => val !== value);
27
+ if (checked) {
28
+ selectedValues.push(value);
29
+ }
30
+ onSelected({ value, checked, option, selectedValues });
31
+ }
32
+ : inputProps.onChange} disabled={isDisabled} aria-invalid={props['aria-invalid']} checked={isChecked}/>);
33
+ })}
34
+ </ul>);
35
+ };
36
+ exports.default = TogglerGroup;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ const react_1 = __importDefault(require("react"));
18
+ const getBemClass_1 = __importDefault(require("@hugsmidjan/react/utils/getBemClass"));
19
+ const FormField_1 = __importDefault(require("../FormField"));
20
+ const TogglerGroup_1 = __importDefault(require("./TogglerGroup"));
21
+ const TogglerGroupField = (props) => {
22
+ const { bem, Toggler, className, modifier, label, LabelTag, assistText, hideLabel, disabled, readOnly, invalid, errorMessage, required, reqText, id, value } = props, togglerGroupProps = __rest(props, ["bem", "Toggler", "className", "modifier", "label", "LabelTag", "assistText", "hideLabel", "disabled", "readOnly", "invalid", "errorMessage", "required", "reqText", "id", "value"]);
23
+ return (<FormField_1.default className={(0, getBemClass_1.default)(bem, modifier, className)} group label={label} LabelTag={LabelTag} assistText={assistText} hideLabel={hideLabel} disabled={disabled} readOnly={readOnly} invalid={invalid} errorMessage={errorMessage} required={required} reqText={reqText} id={id} renderInput={(className, inputProps) => {
24
+ return (<TogglerGroup_1.default bem={className.options} {...inputProps} {...togglerGroupProps} value={Array.isArray(value) ? value : value != null ? [value] : undefined} Toggler={Toggler}/>);
25
+ }}/>);
26
+ };
27
+ exports.default = TogglerGroupField;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ const react_1 = __importDefault(require("react"));
18
+ const hooks_1 = require("@hugsmidjan/react/hooks");
19
+ const getBemClass_1 = __importDefault(require("@hugsmidjan/react/utils/getBemClass"));
20
+ const TogglerInput = (props) => {
21
+ 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"]);
22
+ const domid = (0, hooks_1.useDomid)(id);
23
+ const errorId = errorMessage && 'error' + domid;
24
+ const reqStar = required && reqText !== false && (<abbr className={bem + '__label__reqstar'}
25
+ // TODO: add mo-better i18n thinking
26
+ title={(reqText || 'Þarf að haka í') + ': '}>
27
+ *
28
+ </abbr>);
29
+ return (<Wrapper className={(0, getBemClass_1.default)(bem, modifier, className)}>
30
+ <input className={bem + '__input'} type={type} id={domid} aria-invalid={invalid || !!errorMessage || undefined} aria-describedby={errorId} {...inputProps}/>{' '}
31
+ <label className={bem + '__label'} htmlFor={domid}>
32
+ {' '}
33
+ {reqStar} {label}{' '}
34
+ </label>
35
+ {errorMessage && (<div className={bem + '__error'} id={errorId}>
36
+ {errorMessage}
37
+ </div>)}
38
+ </Wrapper>);
39
+ };
40
+ exports.default = TogglerInput;
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const react_1 = __importStar(require("react"));
30
+ const A_1 = __importDefault(require("@hugsmidjan/qj/A"));
31
+ const focusElm_1 = __importDefault(require("@hugsmidjan/qj/focusElm"));
32
+ const throttle_1 = __importDefault(require("@hugsmidjan/qj/throttle"));
33
+ const hooks_1 = require("@hugsmidjan/react/hooks");
34
+ const getBemClass_1 = __importDefault(require("@hugsmidjan/react/utils/getBemClass"));
35
+ const hanna_utils_1 = require("@reykjavik/hanna-utils");
36
+ const CarouselStepper_1 = __importDefault(require("../CarouselStepper"));
37
+ const seenEffect_1 = require("../utils/seenEffect");
38
+ const WHEEL_AMPLIFIER = 3;
39
+ const WHEEL_HIJACK_TIMEOUT_MS = 667;
40
+ const scrollXBy = (elm, deltaX) => {
41
+ const left = elm.scrollLeft + deltaX;
42
+ elm.scrollTo(left, elm.scrollTop);
43
+ // NOTE 1: using elm.scrollTo({ left, behavior: 'smooth' }); seems to be too much
44
+ // as `behavior: 'smooth'` starts some weird interactions with the browser's
45
+ // `scroll-snap-type` behavior.
46
+ //
47
+ // NOTE 2: Both Chrome and Safari tend to snap hard to the nearest list item
48
+ // while Firefox is more smooth. Haven't found a way around that.
49
+ };
50
+ const exitWheelHijack = (elm) => () => {
51
+ elm.style.scrollSnapType = '';
52
+ const lastElmOffset = elm.lastElementChild
53
+ ? elm.lastElementChild.offsetLeft
54
+ : 0;
55
+ // trigger one last scroll event, to make sure the element's
56
+ // `style.scrollSnapType`'s behavior kicks in.
57
+ // Otherwise the list may stay stuck in an over-scrolled state —
58
+ // off to the right.
59
+ scrollXBy(elm, Math.min(0, lastElmOffset - elm.scrollLeft));
60
+ };
61
+ const handleMouseWheel = (e) => {
62
+ const elm = e.currentTarget;
63
+ if (e.deltaX || elm.$hasXDeltaed) {
64
+ elm.$hasXDeltaed = true;
65
+ exitWheelHijack(elm);
66
+ return;
67
+ }
68
+ if (e.deltaY && !e.deltaX) {
69
+ if (e.deltaY < 0) {
70
+ // Stop scroll-capture when list is at left-edge
71
+ if (elm.scrollLeft < 50) {
72
+ return;
73
+ }
74
+ }
75
+ else {
76
+ // Stop scroll-capture when list is beyond left edge of last list item
77
+ if (elm.scrollLeft >
78
+ (elm.lastElementChild ? elm.lastElementChild.offsetLeft : 0)) {
79
+ exitWheelHijack(elm);
80
+ return;
81
+ }
82
+ }
83
+ e.preventDefault();
84
+ e.stopImmediatePropagation();
85
+ // Disable `scroll-snap-style` because otherwise
86
+ // small-scale elm.scrollTo() calls have no effect
87
+ elm.style.scrollSnapType = 'initial';
88
+ scrollXBy(elm, e.deltaY * WHEEL_AMPLIFIER);
89
+ clearTimeout(elm.$timeout);
90
+ elm.$timeout = setTimeout(exitWheelHijack(elm), WHEEL_HIJACK_TIMEOUT_MS);
91
+ }
92
+ };
93
+ const handleMouseLeave = (e) => {
94
+ const elm = e.currentTarget;
95
+ exitWheelHijack(elm);
96
+ elm.$hasXDeltaed = undefined;
97
+ };
98
+ const AbstractCarousel = (props) => {
99
+ const { title, items = [], Component, ComponentProps, bem = 'Carousel', modifier, ssr, startSeen, } = props;
100
+ const children = props.children && props.children.filter(hanna_utils_1.notNully);
101
+ const [leftOffset, setLeftOffset] = (0, react_1.useState)();
102
+ const itemCount = (children || items).length;
103
+ const listRef = (0, react_1.useRef)(null);
104
+ const [activeItem, setActiveItem] = (0, react_1.useState)(0);
105
+ const isBrowser = (0, hooks_1.useIsBrowserSide)(ssr);
106
+ // update on activeItem state change
107
+ (0, react_1.useEffect)(() => {
108
+ const listElm = listRef.current;
109
+ if (!listElm) {
110
+ return;
111
+ }
112
+ const calcLeftOffset = () => {
113
+ var _a;
114
+ setLeftOffset((_a = listElm.parentElement) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().left);
115
+ scrollXBy(listElm, 0);
116
+ };
117
+ const calcActiveItem = (0, throttle_1.default)(() => {
118
+ const { scrollLeft, children } = listElm;
119
+ // using Array#find as forEachUntil
120
+ (0, A_1.default)(children).find((item, i) => {
121
+ if (scrollLeft <= item.offsetLeft + item.offsetWidth / 2) {
122
+ setActiveItem(i);
123
+ return true;
124
+ }
125
+ });
126
+ }, 300, true);
127
+ calcLeftOffset();
128
+ listElm.addEventListener('wheel', handleMouseWheel);
129
+ listElm.addEventListener('scroll', calcActiveItem, { passive: true });
130
+ window.addEventListener('resize', calcLeftOffset, { passive: true });
131
+ return () => {
132
+ listElm.removeEventListener('wheel', handleMouseWheel);
133
+ listElm.removeEventListener('scroll', calcActiveItem);
134
+ window.removeEventListener('resize', calcLeftOffset);
135
+ };
136
+ }, []);
137
+ const scrollToItem = (newActive) => {
138
+ setActiveItem(newActive);
139
+ const listElm = listRef.current;
140
+ const newItem = listElm.children[newActive];
141
+ listElm.scrollTo(newItem ? newItem.offsetLeft : 0, 0);
142
+ setTimeout(() => (0, focusElm_1.default)(newItem), 500);
143
+ };
144
+ const [outerRef] = (0, seenEffect_1.useSeenEffect)(startSeen);
145
+ if (!itemCount) {
146
+ return null;
147
+ }
148
+ return (<div className={(0, getBemClass_1.default)(bem, modifier, props.className)} ref={outerRef} data-sprinkled={isBrowser}>
149
+ {title && <h2 className={bem + '__title'}>{title}</h2>}
150
+ <div className={bem + '__itemlist'} style={leftOffset
151
+ ? { '--Carousel--leftOffset': `${leftOffset}px` }
152
+ : undefined} data-scroll-snapping={leftOffset ? 'true' : undefined} onMouseLeave={handleMouseLeave} ref={listRef}>
153
+ {children ||
154
+ items.map((item, i) => (
155
+ // @ts-expect-error (Can't be arsed...)
156
+ <Component key={i} {...ComponentProps} {...item}/>))}
157
+ </div>
158
+ {isBrowser && (<CarouselStepper_1.default itemCount={itemCount} setCurrent={scrollToItem} current={activeItem}/>)}
159
+ </div>);
160
+ };
161
+ exports.default = AbstractCarousel;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const Bling_1 = __importDefault(require("../Bling"));
8
+ const inverseAlignments = {
9
+ left: 'right',
10
+ 'left-ish': 'right-ish',
11
+ 'left-center': 'right-center',
12
+ 'right-center': 'left-center',
13
+ 'right-ish': 'left-ish',
14
+ right: 'left',
15
+ };
16
+ const Blings = (props) => (<>
17
+ {props.blings.map(({ type, align, vertical, color, overlay, parent }, i) => (<Bling_1.default key={type + '-' + i} type={type} align={props.mirror ? inverseAlignments[align || 'left'] : align} vertical={vertical} color={color} overlay={overlay} parent={parent}/>))}
18
+ </>);
19
+ exports.default = Blings;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const getBemClass_1 = __importDefault(require("@hugsmidjan/react/utils/getBemClass"));
8
+ const seenEffect_1 = require("../utils/seenEffect");
9
+ const Button_1 = __importDefault(require("./Button"));
10
+ const Image_1 = __importDefault(require("./Image"));
11
+ const Block = (props) => {
12
+ const { image, modifier, bem, content, startSeen } = props;
13
+ const [ref] = (0, seenEffect_1.useSeenEffect)(startSeen);
14
+ const contentItems = Array.isArray(content) ? content : [content];
15
+ return (<div className={(0, getBemClass_1.default)(bem, modifier)} ref={ref}>
16
+ {contentItems.map(({ title, summary, buttons = [] }, i) => {
17
+ const hasSummary = summary && (typeof summary !== 'string' || !!summary.trim());
18
+ return (<div key={i} className={`${bem}__content`}>
19
+ <h2 className={`${bem}__title`}>{title}</h2>
20
+ {hasSummary && <div className={`${bem}__summary`}>{summary}</div>}
21
+ {buttons.length > 0 && (<div className={`${bem}__buttons`}>
22
+ {' '}
23
+ {buttons.map((buttonProps, i) => (<>
24
+ <Button_1.default bem={`${bem}__button`} key={i} {...buttonProps}/>{' '}
25
+ </>))}
26
+ </div>)}
27
+ </div>);
28
+ })}
29
+ {image && <Image_1.default className={`${bem}__image`} {...image}/>}
30
+ </div>);
31
+ };
32
+ exports.default = Block;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports._Quote = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const Link_1 = require("./Link");
9
+ const _Quote = (props) => {
10
+ const { bem, children, by, byHref } = props;
11
+ return (<figure className={bem}>
12
+ <blockquote className={bem + '__quote'}>{children}</blockquote>
13
+ {by && (<figcaption className={bem + '__by'}>
14
+ {byHref ? (<Link_1.Link href={byHref}>{by}</Link_1.Link>) : typeof by === 'string' ? (<span>{by}</span>) : (by)}
15
+ </figcaption>)}
16
+ </figure>);
17
+ };
18
+ exports._Quote = _Quote;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const breakOnNL = (text) => text &&
8
+ text
9
+ .trim()
10
+ .replace(/(?:\n\s*)+/g, '\n\n')
11
+ .split(/\n/)
12
+ .map((bit) => bit || <br />);
13
+ exports.default = breakOnNL;
package/assets.js ADDED
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.auxiliary_menu_images = exports.efnistakn_menu = exports.getCssBundleUrl = exports.illustrations = exports.getIllustrationUrl = exports.getFormheimurUrl = exports.getEfnistaknUrl = exports.getBlingUrl = exports.getAssetUrl = exports.efnistakn = exports.blingTypes = void 0;
4
+ const hanna_css_1 = require("@reykjavik/hanna-css");
5
+ const assets_1 = require("@reykjavik/hanna-utils/assets");
6
+ Object.defineProperty(exports, "blingTypes", { enumerable: true, get: function () { return assets_1.blingTypes; } });
7
+ Object.defineProperty(exports, "efnistakn", { enumerable: true, get: function () { return assets_1.efnistakn; } });
8
+ Object.defineProperty(exports, "getAssetUrl", { enumerable: true, get: function () { return assets_1.getAssetUrl; } });
9
+ Object.defineProperty(exports, "getBlingUrl", { enumerable: true, get: function () { return assets_1.getBlingUrl; } });
10
+ Object.defineProperty(exports, "getEfnistaknUrl", { enumerable: true, get: function () { return assets_1.getEfnistaknUrl; } });
11
+ Object.defineProperty(exports, "getFormheimurUrl", { enumerable: true, get: function () { return assets_1.getFormheimurUrl; } });
12
+ Object.defineProperty(exports, "getIllustrationUrl", { enumerable: true, get: function () { return assets_1.getIllustrationUrl; } });
13
+ Object.defineProperty(exports, "illustrations", { enumerable: true, get: function () { return assets_1.illustrations; } });
14
+ /** @deprecated Use `getCssBundleUrl` from '@reykjavik/hanna-css' instead (Will be reomved in v0.11) */
15
+ const getCssBundleUrl = (cssTokens,
16
+ /** If you want to pin your CSS files to a specific version */
17
+ version) => (0, hanna_css_1.getCssBundleUrl)(cssTokens, { version });
18
+ exports.getCssBundleUrl = getCssBundleUrl;
19
+ // ---------------------------------------------------------------------------
20
+ // Based on "https://styles.reykjavik.is/assets/efnistakn/menu/files.json"
21
+ /** @deprecated (Will be removed in v0.11) */
22
+ exports.efnistakn_menu = [
23
+ 'menu/borgarstjori',
24
+ 'menu/borgarstjorn',
25
+ 'menu/bygg_framkv',
26
+ 'menu/fjarmal',
27
+ 'menu/fundargerdir',
28
+ 'menu/itrottir_aftreying',
29
+ 'menu/log_reglugerdir',
30
+ 'menu/mannaudur',
31
+ 'menu/menning',
32
+ 'menu/rad_nefndir',
33
+ 'menu/skipulag',
34
+ 'menu/skolar_fristund',
35
+ 'menu/svid_deildir',
36
+ 'menu/umhverfi_samgongur',
37
+ 'menu/velferd_fjolskylda',
38
+ ];
39
+ // ---------------------------------------------------------------------------
40
+ /** @deprecated (Will be removed in v0.11) */
41
+ exports.auxiliary_menu_images = [
42
+ 'hanna-veitiggi',
43
+ 'hanna-vandro',
44
+ 'hanna-hugsi',
45
+ 'hanna-hissa',
46
+ 'hanna-hahaha',
47
+ 'hanna-hae',
48
+ 'hanna-god_spurning',
49
+ 'hanna-gjuggiborg',
50
+ 'hanna-benda',
51
+ ];
package/constants.js ADDED
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.aligns = exports.themeOptions = exports.colorFamilies = void 0;
4
+ const hanna_css_1 = require("@reykjavik/hanna-css");
5
+ /** @depcrecated import `colorFamilies` from `@reykjavik/hanna-css` instead (Will be removed in v0.11) */
6
+ exports.colorFamilies = Object.assign([
7
+ 'esja',
8
+ 'faxafloi',
9
+ 'nautholsvik',
10
+ 'heidmork',
11
+ 'ellidaardalur',
12
+ 'blafjoll',
13
+ 'sund',
14
+ 'rokkur',
15
+ 'suld',
16
+ ], hanna_css_1.colorFamilies, {
17
+ /** @deprecated This is a typo (Will be removed in v0.11) */
18
+ ellidarardalur: 'ellidaardalur',
19
+ });
20
+ /** @depcrecated import `colorThemes` from `@reykjavik/hanna-css` instead (Will be removed in v0.11) */
21
+ exports.themeOptions = Object.assign(['trustworthy', 'dependable', 'friendly', 'lively', 'colorful'], hanna_css_1.colorThemes);
22
+ exports.aligns = {
23
+ right: true,
24
+ left: true,
25
+ };
@@ -0,0 +1,17 @@
1
+ import { SSRSupport } from '@hugsmidjan/react/hooks';
2
+ import { SeenProp } from './utils/seenEffect';
3
+ declare type AccordionListItemProps = {
4
+ title: string | JSX.Element;
5
+ content: string | JSX.Element | undefined;
6
+ id?: string;
7
+ disabled?: boolean;
8
+ };
9
+ export declare type AccordionListProps = {
10
+ items: Array<AccordionListItemProps>;
11
+ ssr?: SSRSupport;
12
+ wide?: boolean;
13
+ /** Index of those items that should start open */
14
+ defaultOpen?: Array<number>;
15
+ } & SeenProp;
16
+ declare const AccordionList: (props: AccordionListProps) => JSX.Element;
17
+ export default AccordionList;
@@ -0,0 +1,33 @@
1
+ import React, { useEffect, useState } from 'react';
2
+ import { useDomid, useIsBrowserSide } from '@hugsmidjan/react/hooks';
3
+ import getBemClass from '@hugsmidjan/react/utils/getBemClass';
4
+ import { useSeenEffect } from './utils/seenEffect';
5
+ const AccordionListItem = (props) => {
6
+ const { title, content, id, disabled = false, defaultOpen, ssr } = props;
7
+ const [open, setOpen] = useState(defaultOpen);
8
+ useEffect(() => setOpen(defaultOpen), [defaultOpen]);
9
+ const domid = useDomid();
10
+ const isBrowser = useIsBrowserSide(ssr);
11
+ const itemDisabled = (isBrowser && disabled) || !content;
12
+ return (<div className={getBemClass('AccordionList__item', [itemDisabled && 'disabled'])} id={id} data-start-open={defaultOpen || undefined} data-sprinkled={isBrowser}>
13
+ <h3 className="AccordionList__title">
14
+ {isBrowser ? (<button type="button" className="AccordionList__button" aria-controls={domid} aria-expanded={open || undefined} onClick={() => {
15
+ setOpen(!open);
16
+ }} disabled={itemDisabled}>
17
+ {title}
18
+ </button>) : (title)}
19
+ </h3>
20
+ <div id={isBrowser && domid} className="AccordionList__content" hidden={isBrowser && (!open || itemDisabled)}>
21
+ {content}
22
+ </div>
23
+ </div>);
24
+ };
25
+ // ---------------------------------------------------------------------------
26
+ const AccordionList = (props) => {
27
+ const { items, ssr, wide, defaultOpen, startSeen } = props;
28
+ const [ref] = useSeenEffect(startSeen);
29
+ return (<div className={getBemClass('AccordionList', [wide && 'wide'])} ref={ref}>
30
+ {items.map((item, i) => (<AccordionListItem key={i} {...item} ssr={ssr} defaultOpen={defaultOpen && defaultOpen.includes(i)}/>))}
31
+ </div>);
32
+ };
33
+ export default AccordionList;