@reykjavik/hanna-react 0.10.53

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 (357) hide show
  1. package/CHANGELOG.md +795 -0
  2. package/README.md +69 -0
  3. package/lib/AccordionList.cjs +91 -0
  4. package/lib/AccordionList.mjs +69 -0
  5. package/lib/ActionCards.cjs +57 -0
  6. package/lib/ActionCards.mjs +35 -0
  7. package/lib/Alert.cjs +159 -0
  8. package/lib/Alert.mjs +139 -0
  9. package/lib/ArticleCarousel/_ArticleCarouselCard.cjs +75 -0
  10. package/lib/ArticleCarousel/_ArticleCarouselCard.mjs +51 -0
  11. package/lib/ArticleCarousel.cjs +43 -0
  12. package/lib/ArticleCarousel.mjs +21 -0
  13. package/lib/ArticleMeta.cjs +46 -0
  14. package/lib/ArticleMeta.mjs +22 -0
  15. package/lib/Attention.cjs +33 -0
  16. package/lib/Attention.mjs +9 -0
  17. package/lib/BasicTable.cjs +72 -0
  18. package/lib/BasicTable.mjs +50 -0
  19. package/lib/Bling.cjs +76 -0
  20. package/lib/Bling.mjs +52 -0
  21. package/lib/BlockBreak.cjs +32 -0
  22. package/lib/BlockBreak.mjs +8 -0
  23. package/lib/BlockQuote.cjs +47 -0
  24. package/lib/BlockQuote.mjs +25 -0
  25. package/lib/BreadCrumbs.cjs +67 -0
  26. package/lib/BreadCrumbs.mjs +43 -0
  27. package/lib/ButtonBack.cjs +47 -0
  28. package/lib/ButtonBack.mjs +25 -0
  29. package/lib/ButtonBar.cjs +45 -0
  30. package/lib/ButtonBar.mjs +18 -0
  31. package/lib/ButtonPrimary.cjs +47 -0
  32. package/lib/ButtonPrimary.mjs +25 -0
  33. package/lib/ButtonSecondary.cjs +47 -0
  34. package/lib/ButtonSecondary.mjs +25 -0
  35. package/lib/ButtonTertiary.cjs +64 -0
  36. package/lib/ButtonTertiary.mjs +42 -0
  37. package/lib/Carousel.cjs +52 -0
  38. package/lib/Carousel.mjs +30 -0
  39. package/lib/CarouselStepper.cjs +51 -0
  40. package/lib/CarouselStepper.mjs +29 -0
  41. package/lib/CenterColumn.cjs +40 -0
  42. package/lib/CenterColumn.mjs +16 -0
  43. package/lib/Checkbox.cjs +52 -0
  44. package/lib/Checkbox.mjs +30 -0
  45. package/lib/CheckboxButtonsGroup.cjs +65 -0
  46. package/lib/CheckboxButtonsGroup.mjs +43 -0
  47. package/lib/CheckboxGroup.cjs +55 -0
  48. package/lib/CheckboxGroup.mjs +33 -0
  49. package/lib/CityBlock.cjs +49 -0
  50. package/lib/CityBlock.mjs +25 -0
  51. package/lib/ContactBubble.cjs +200 -0
  52. package/lib/ContactBubble.mjs +173 -0
  53. package/lib/ContentArticle.cjs +63 -0
  54. package/lib/ContentArticle.mjs +41 -0
  55. package/lib/ContentImage.cjs +58 -0
  56. package/lib/ContentImage.mjs +36 -0
  57. package/lib/Datepicker.cjs +164 -0
  58. package/lib/Datepicker.mjs +142 -0
  59. package/lib/ExtraLinks.cjs +96 -0
  60. package/lib/ExtraLinks.mjs +74 -0
  61. package/lib/FeatureList.cjs +53 -0
  62. package/lib/FeatureList.mjs +29 -0
  63. package/lib/FieldGroup.cjs +40 -0
  64. package/lib/FieldGroup.mjs +16 -0
  65. package/lib/FileInput.cjs +256 -0
  66. package/lib/FileInput.mjs +234 -0
  67. package/lib/Foonote.cjs +30 -0
  68. package/lib/Foonote.mjs +6 -0
  69. package/lib/FooterBadges.cjs +49 -0
  70. package/lib/FooterBadges.mjs +25 -0
  71. package/lib/FooterInfo.cjs +47 -0
  72. package/lib/FooterInfo.mjs +23 -0
  73. package/lib/Footnote.cjs +32 -0
  74. package/lib/Footnote.mjs +8 -0
  75. package/lib/Form.cjs +56 -0
  76. package/lib/Form.mjs +34 -0
  77. package/lib/FormField.cjs +153 -0
  78. package/lib/FormField.mjs +131 -0
  79. package/lib/Gallery/_GalleryItem.cjs +83 -0
  80. package/lib/Gallery/_GalleryItem.mjs +61 -0
  81. package/lib/Gallery/_GalleryModal.cjs +104 -0
  82. package/lib/Gallery/_GalleryModal.mjs +82 -0
  83. package/lib/Gallery/_GalleryModalContext.cjs +30 -0
  84. package/lib/Gallery/_GalleryModalContext.mjs +6 -0
  85. package/lib/Gallery/_GalleryModalItem.cjs +59 -0
  86. package/lib/Gallery/_GalleryModalItem.mjs +36 -0
  87. package/lib/Gallery.cjs +79 -0
  88. package/lib/Gallery.mjs +57 -0
  89. package/lib/GridBlocks.cjs +81 -0
  90. package/lib/GridBlocks.mjs +59 -0
  91. package/lib/Heading.cjs +45 -0
  92. package/lib/Heading.mjs +21 -0
  93. package/lib/HeroBlock.cjs +74 -0
  94. package/lib/HeroBlock.mjs +52 -0
  95. package/lib/IframeBlock.cjs +48 -0
  96. package/lib/IframeBlock.mjs +24 -0
  97. package/lib/Illustration.cjs +51 -0
  98. package/lib/Illustration.mjs +31 -0
  99. package/lib/ImageCards.cjs +72 -0
  100. package/lib/ImageCards.mjs +52 -0
  101. package/lib/InfoBlock.cjs +51 -0
  102. package/lib/InfoBlock.mjs +27 -0
  103. package/lib/InfoHero.cjs +150 -0
  104. package/lib/InfoHero.mjs +128 -0
  105. package/lib/IslandBlock.cjs +63 -0
  106. package/lib/IslandBlock.mjs +41 -0
  107. package/lib/IslandPageBlock.cjs +49 -0
  108. package/lib/IslandPageBlock.mjs +25 -0
  109. package/lib/LabeledTextBlock.cjs +60 -0
  110. package/lib/LabeledTextBlock.mjs +38 -0
  111. package/lib/Layout.cjs +113 -0
  112. package/lib/Layout.mjs +87 -0
  113. package/lib/MainMenu/_Auxiliary.cjs +54 -0
  114. package/lib/MainMenu/_Auxiliary.mjs +28 -0
  115. package/lib/MainMenu/_PrimaryPanel.cjs +74 -0
  116. package/lib/MainMenu/_PrimaryPanel.mjs +48 -0
  117. package/lib/MainMenu.cjs +209 -0
  118. package/lib/MainMenu.mjs +187 -0
  119. package/lib/MiniMetrics.cjs +56 -0
  120. package/lib/MiniMetrics.mjs +34 -0
  121. package/lib/Modal.cjs +70 -0
  122. package/lib/Modal.mjs +48 -0
  123. package/lib/NameCard.cjs +115 -0
  124. package/lib/NameCard.mjs +91 -0
  125. package/lib/NameCards.cjs +52 -0
  126. package/lib/NameCards.mjs +30 -0
  127. package/lib/NewsHero.cjs +136 -0
  128. package/lib/NewsHero.mjs +114 -0
  129. package/lib/PageFilter.cjs +48 -0
  130. package/lib/PageFilter.mjs +24 -0
  131. package/lib/PageHeading.cjs +42 -0
  132. package/lib/PageHeading.mjs +18 -0
  133. package/lib/ProcessOverview.cjs +52 -0
  134. package/lib/ProcessOverview.mjs +28 -0
  135. package/lib/PullQuote.cjs +47 -0
  136. package/lib/PullQuote.mjs +25 -0
  137. package/lib/RadioButtonsGroup.cjs +64 -0
  138. package/lib/RadioButtonsGroup.mjs +42 -0
  139. package/lib/RadioGroup.cjs +58 -0
  140. package/lib/RadioGroup.mjs +36 -0
  141. package/lib/RelatedLinks.cjs +61 -0
  142. package/lib/RelatedLinks.mjs +37 -0
  143. package/lib/RowBlock.cjs +39 -0
  144. package/lib/RowBlock.mjs +15 -0
  145. package/lib/RowBlockColumn.cjs +40 -0
  146. package/lib/RowBlockColumn.mjs +16 -0
  147. package/lib/SearchInput.cjs +136 -0
  148. package/lib/SearchInput.mjs +114 -0
  149. package/lib/SearchResults/_SearchResultsItem.cjs +54 -0
  150. package/lib/SearchResults/_SearchResultsItem.mjs +30 -0
  151. package/lib/SearchResults.cjs +172 -0
  152. package/lib/SearchResults.mjs +150 -0
  153. package/lib/SeenEffect.cjs +66 -0
  154. package/lib/SeenEffect.mjs +44 -0
  155. package/lib/Selectbox.cjs +144 -0
  156. package/lib/Selectbox.mjs +122 -0
  157. package/lib/ShareButtons.cjs +101 -0
  158. package/lib/ShareButtons.mjs +83 -0
  159. package/lib/Sharpie.cjs +51 -0
  160. package/lib/Sharpie.mjs +27 -0
  161. package/lib/SiteSearchAutocomplete.cjs +150 -0
  162. package/lib/SiteSearchAutocomplete.mjs +126 -0
  163. package/lib/SiteSearchCurtain.cjs +78 -0
  164. package/lib/SiteSearchCurtain.mjs +56 -0
  165. package/lib/SiteSearchInput.cjs +119 -0
  166. package/lib/SiteSearchInput.mjs +97 -0
  167. package/lib/Skeleton.cjs +63 -0
  168. package/lib/Skeleton.mjs +39 -0
  169. package/lib/SubHeading.cjs +43 -0
  170. package/lib/SubHeading.mjs +19 -0
  171. package/lib/Tabs.cjs +166 -0
  172. package/lib/Tabs.mjs +144 -0
  173. package/lib/TagPill.cjs +113 -0
  174. package/lib/TagPill.mjs +91 -0
  175. package/lib/TextBlock.cjs +45 -0
  176. package/lib/TextBlock.mjs +21 -0
  177. package/lib/TextButton.cjs +55 -0
  178. package/lib/TextButton.mjs +33 -0
  179. package/lib/TextInput.cjs +136 -0
  180. package/lib/TextInput.mjs +114 -0
  181. package/lib/VSpacer.cjs +70 -0
  182. package/lib/VSpacer.mjs +46 -0
  183. package/lib/VerticalTabsTOC.cjs +123 -0
  184. package/lib/VerticalTabsTOC.mjs +101 -0
  185. package/lib/WizardLayout.cjs +79 -0
  186. package/lib/WizardLayout.mjs +55 -0
  187. package/lib/WizardLayoutClose.cjs +47 -0
  188. package/lib/WizardLayoutClose.mjs +25 -0
  189. package/lib/WizardStepper.cjs +55 -0
  190. package/lib/WizardStepper.mjs +31 -0
  191. package/lib/_abstract/Button.cjs +114 -0
  192. package/lib/_abstract/Button.mjs +92 -0
  193. package/lib/_abstract/CardList.cjs +100 -0
  194. package/lib/_abstract/CardList.mjs +76 -0
  195. package/lib/_abstract/Image.cjs +75 -0
  196. package/lib/_abstract/Image.mjs +51 -0
  197. package/lib/_abstract/Link.cjs +37 -0
  198. package/lib/_abstract/Link.mjs +10 -0
  199. package/lib/_abstract/TogglerGroup.cjs +92 -0
  200. package/lib/_abstract/TogglerGroup.mjs +70 -0
  201. package/lib/_abstract/TogglerGroupField.cjs +121 -0
  202. package/lib/_abstract/TogglerGroupField.mjs +99 -0
  203. package/lib/_abstract/TogglerInput.cjs +105 -0
  204. package/lib/_abstract/TogglerInput.mjs +83 -0
  205. package/lib/_abstract/_AbstractCarousel.cjs +170 -0
  206. package/lib/_abstract/_AbstractCarousel.mjs +152 -0
  207. package/lib/_abstract/_Blings.cjs +47 -0
  208. package/lib/_abstract/_Blings.mjs +23 -0
  209. package/lib/_abstract/_Block.cjs +73 -0
  210. package/lib/_abstract/_Block.mjs +51 -0
  211. package/lib/_abstract/_Quote.cjs +43 -0
  212. package/lib/_abstract/_Quote.mjs +17 -0
  213. package/lib/_abstract/breakOnNL.cjs +30 -0
  214. package/lib/_abstract/breakOnNL.mjs +6 -0
  215. package/lib/assets.cjs +77 -0
  216. package/lib/assets.mjs +53 -0
  217. package/lib/constants.cjs +49 -0
  218. package/lib/constants.mjs +24 -0
  219. package/lib/focus-visible.cjs +1 -0
  220. package/lib/focus-visible.mjs +1 -0
  221. package/lib/utils/config.cjs +27 -0
  222. package/lib/utils/config.mjs +4 -0
  223. package/lib/utils/detectEdgeScroll.cjs +95 -0
  224. package/lib/utils/detectEdgeScroll.mjs +71 -0
  225. package/lib/utils/env.cjs +31 -0
  226. package/lib/utils/env.mjs +5 -0
  227. package/lib/utils/seenEffect.cjs +93 -0
  228. package/lib/utils/seenEffect.mjs +65 -0
  229. package/lib/utils/useFormatMonitor.cjs +29 -0
  230. package/lib/utils/useFormatMonitor.mjs +6 -0
  231. package/lib/utils/useGetSVGtext.cjs +44 -0
  232. package/lib/utils/useGetSVGtext.mjs +21 -0
  233. package/lib/utils/useMenuToggling.cjs +83 -0
  234. package/lib/utils/useMenuToggling.mjs +60 -0
  235. package/lib/utils/useScrollbarWidthCSSVar.cjs +32 -0
  236. package/lib/utils/useScrollbarWidthCSSVar.mjs +6 -0
  237. package/lib/utils.cjs +18 -0
  238. package/lib/utils.mjs +2 -0
  239. package/package.json +491 -0
  240. package/types/AccordionList.d.ts +17 -0
  241. package/types/ActionCards.d.ts +5 -0
  242. package/types/Alert.d.ts +49 -0
  243. package/types/ArticleCarousel/_ArticleCarouselCard.d.ts +27 -0
  244. package/types/ArticleCarousel.d.ts +12 -0
  245. package/types/ArticleMeta.d.ts +9 -0
  246. package/types/Attention.d.ts +7 -0
  247. package/types/BasicTable.d.ts +12 -0
  248. package/types/Bling.d.ts +81 -0
  249. package/types/BlockBreak.d.ts +2 -0
  250. package/types/BlockQuote.d.ts +4 -0
  251. package/types/BreadCrumbs.d.ts +11 -0
  252. package/types/ButtonBack.d.ts +7 -0
  253. package/types/ButtonBar.d.ts +16 -0
  254. package/types/ButtonPrimary.d.ts +7 -0
  255. package/types/ButtonSecondary.d.ts +7 -0
  256. package/types/ButtonTertiary.d.ts +12 -0
  257. package/types/Carousel.d.ts +4 -0
  258. package/types/CarouselStepper.d.ts +4 -0
  259. package/types/CenterColumn.d.ts +7 -0
  260. package/types/Checkbox.d.ts +4 -0
  261. package/types/CheckboxButtonsGroup.d.ts +11 -0
  262. package/types/CheckboxGroup.d.ts +9 -0
  263. package/types/CityBlock.d.ts +23 -0
  264. package/types/ContactBubble.d.ts +58 -0
  265. package/types/ContentArticle.d.ts +15 -0
  266. package/types/ContentImage.d.ts +8 -0
  267. package/types/Datepicker.d.ts +39 -0
  268. package/types/ExtraLinks.d.ts +18 -0
  269. package/types/FeatureList.d.ts +12 -0
  270. package/types/FieldGroup.d.ts +9 -0
  271. package/types/FileInput.d.ts +17 -0
  272. package/types/Foonote.d.ts +12 -0
  273. package/types/FooterBadges.d.ts +9 -0
  274. package/types/FooterInfo.d.ts +18 -0
  275. package/types/Footnote.d.ts +6 -0
  276. package/types/Form.d.ts +7 -0
  277. package/types/FormField.d.ts +65 -0
  278. package/types/Gallery/_GalleryItem.d.ts +8 -0
  279. package/types/Gallery/_GalleryModal.d.ts +6 -0
  280. package/types/Gallery/_GalleryModalContext.d.ts +9 -0
  281. package/types/Gallery/_GalleryModalItem.d.ts +3 -0
  282. package/types/Gallery.d.ts +17 -0
  283. package/types/GridBlocks.d.ts +26 -0
  284. package/types/Heading.d.ts +16 -0
  285. package/types/HeroBlock.d.ts +19 -0
  286. package/types/IframeBlock.d.ts +23 -0
  287. package/types/Illustration.d.ts +13 -0
  288. package/types/ImageCards.d.ts +8 -0
  289. package/types/InfoBlock.d.ts +17 -0
  290. package/types/InfoHero.d.ts +17 -0
  291. package/types/IslandBlock.d.ts +25 -0
  292. package/types/IslandPageBlock.d.ts +24 -0
  293. package/types/LabeledTextBlock.d.ts +11 -0
  294. package/types/Layout.d.ts +33 -0
  295. package/types/MainMenu/_Auxiliary.d.ts +6 -0
  296. package/types/MainMenu/_PrimaryPanel.d.ts +13 -0
  297. package/types/MainMenu.d.ts +48 -0
  298. package/types/MiniMetrics.d.ts +8 -0
  299. package/types/Modal.d.ts +10 -0
  300. package/types/NameCard.d.ts +64 -0
  301. package/types/NameCards.d.ts +6 -0
  302. package/types/NewsHero.d.ts +14 -0
  303. package/types/PageFilter.d.ts +17 -0
  304. package/types/PageHeading.d.ts +10 -0
  305. package/types/ProcessOverview.d.ts +13 -0
  306. package/types/PullQuote.d.ts +4 -0
  307. package/types/RadioButtonsGroup.d.ts +11 -0
  308. package/types/RadioGroup.d.ts +13 -0
  309. package/types/RelatedLinks.d.ts +20 -0
  310. package/types/RowBlock.d.ts +12 -0
  311. package/types/RowBlockColumn.d.ts +8 -0
  312. package/types/SearchInput.d.ts +18 -0
  313. package/types/SearchResults/_SearchResultsItem.d.ts +18 -0
  314. package/types/SearchResults.d.ts +33 -0
  315. package/types/SeenEffect.d.ts +4 -0
  316. package/types/Selectbox.d.ts +8 -0
  317. package/types/ShareButtons.d.ts +9 -0
  318. package/types/Sharpie.d.ts +23 -0
  319. package/types/SiteSearchAutocomplete.d.ts +40 -0
  320. package/types/SiteSearchCurtain.d.ts +6 -0
  321. package/types/SiteSearchInput.d.ts +24 -0
  322. package/types/Skeleton.d.ts +25 -0
  323. package/types/SubHeading.d.ts +10 -0
  324. package/types/Tabs.d.ts +35 -0
  325. package/types/TagPill.d.ts +27 -0
  326. package/types/TextBlock.d.ts +15 -0
  327. package/types/TextButton.d.ts +9 -0
  328. package/types/TextInput.d.ts +16 -0
  329. package/types/VSpacer.d.ts +24 -0
  330. package/types/VerticalTabsTOC.d.ts +14 -0
  331. package/types/WizardLayout.d.ts +15 -0
  332. package/types/WizardLayoutClose.d.ts +3 -0
  333. package/types/WizardStepper.d.ts +36 -0
  334. package/types/_abstract/Button.d.ts +40 -0
  335. package/types/_abstract/CardList.d.ts +29 -0
  336. package/types/_abstract/Image.d.ts +32 -0
  337. package/types/_abstract/Link.d.ts +27 -0
  338. package/types/_abstract/TogglerGroup.d.ts +31 -0
  339. package/types/_abstract/TogglerGroupField.d.ts +17 -0
  340. package/types/_abstract/TogglerInput.d.ts +22 -0
  341. package/types/_abstract/_AbstractCarousel.d.ts +25 -0
  342. package/types/_abstract/_Blings.d.ts +11 -0
  343. package/types/_abstract/_Block.d.ts +22 -0
  344. package/types/_abstract/_Quote.d.ts +9 -0
  345. package/types/_abstract/breakOnNL.d.ts +2 -0
  346. package/types/assets.d.ts +42 -0
  347. package/types/constants.d.ts +39 -0
  348. package/types/focus-visible.d.ts +1 -0
  349. package/types/utils/config.d.ts +2 -0
  350. package/types/utils/detectEdgeScroll.d.ts +52 -0
  351. package/types/utils/env.d.ts +1 -0
  352. package/types/utils/seenEffect.d.ts +28 -0
  353. package/types/utils/useFormatMonitor.d.ts +38 -0
  354. package/types/utils/useGetSVGtext.d.ts +6 -0
  355. package/types/utils/useMenuToggling.d.ts +8 -0
  356. package/types/utils/useScrollbarWidthCSSVar.d.ts +1 -0
  357. package/types/utils.d.ts +2 -0
@@ -0,0 +1,49 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+ var IslandPageBlock_exports = {};
22
+ __export(IslandPageBlock_exports, {
23
+ default: () => IslandPageBlock_default
24
+ });
25
+ module.exports = __toCommonJS(IslandPageBlock_exports);
26
+ var import_react = __toESM(require("react"));
27
+ var import_assets = require("@reykjavik/hanna-utils/assets");
28
+ var import_Block = __toESM(require("./_abstract/_Block"));
29
+ var import_constants = require("./constants");
30
+ const backgrounds = {
31
+ none: void 0,
32
+ gray: "gray",
33
+ secondary: "secondary"
34
+ };
35
+ const IslandPageBlock = (props) => {
36
+ const { title, summary, buttons, illustration, image, align, background, startSeen } = props;
37
+ const alignment = align && import_constants.aligns[align] ? align : "right";
38
+ const bg = backgrounds[background || "none"];
39
+ return /* @__PURE__ */ import_react.default.createElement(import_Block.default, {
40
+ bem: "IslandPageBlock",
41
+ modifier: ["align--" + alignment, bg && "background--" + bg],
42
+ content: { title, summary, buttons },
43
+ image: illustration ? { src: (0, import_assets.getIllustrationUrl)(illustration) } : image || {},
44
+ startSeen
45
+ });
46
+ };
47
+ var IslandPageBlock_default = IslandPageBlock;
48
+ // Annotate the CommonJS export names for ESM import in node:
49
+ 0 && (module.exports = {});
@@ -0,0 +1,25 @@
1
+ import React from "react";
2
+ import { getIllustrationUrl } from "@reykjavik/hanna-utils/assets";
3
+ import Block from "./_abstract/_Block";
4
+ import { aligns } from "./constants";
5
+ const backgrounds = {
6
+ none: void 0,
7
+ gray: "gray",
8
+ secondary: "secondary"
9
+ };
10
+ const IslandPageBlock = (props) => {
11
+ const { title, summary, buttons, illustration, image, align, background, startSeen } = props;
12
+ const alignment = align && aligns[align] ? align : "right";
13
+ const bg = backgrounds[background || "none"];
14
+ return /* @__PURE__ */ React.createElement(Block, {
15
+ bem: "IslandPageBlock",
16
+ modifier: ["align--" + alignment, bg && "background--" + bg],
17
+ content: { title, summary, buttons },
18
+ image: illustration ? { src: getIllustrationUrl(illustration) } : image || {},
19
+ startSeen
20
+ });
21
+ };
22
+ var IslandPageBlock_default = IslandPageBlock;
23
+ export {
24
+ IslandPageBlock_default as default
25
+ };
@@ -0,0 +1,60 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
+ var __spreadValues = (a, b) => {
11
+ for (var prop in b || (b = {}))
12
+ if (__hasOwnProp.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ if (__getOwnPropSymbols)
15
+ for (var prop of __getOwnPropSymbols(b)) {
16
+ if (__propIsEnum.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ }
19
+ return a;
20
+ };
21
+ var __export = (target, all) => {
22
+ for (var name in all)
23
+ __defProp(target, name, { get: all[name], enumerable: true });
24
+ };
25
+ var __copyProps = (to, from, except, desc) => {
26
+ if (from && typeof from === "object" || typeof from === "function") {
27
+ for (let key of __getOwnPropNames(from))
28
+ if (!__hasOwnProp.call(to, key) && key !== except)
29
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
30
+ }
31
+ return to;
32
+ };
33
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
34
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
35
+ var LabeledTextBlock_exports = {};
36
+ __export(LabeledTextBlock_exports, {
37
+ default: () => LabeledTextBlock_default
38
+ });
39
+ module.exports = __toCommonJS(LabeledTextBlock_exports);
40
+ var import_react = __toESM(require("react"));
41
+ var import_getBemClass = __toESM(require("@hugsmidjan/react/utils/getBemClass"));
42
+ var import_seenEffect = require("./utils/seenEffect");
43
+ var import_ButtonTertiary = __toESM(require("./ButtonTertiary"));
44
+ const LabeledTextBlock = (props) => {
45
+ const { label, summary, wide, buttons = [], startSeen } = props;
46
+ const [ref] = (0, import_seenEffect.useSeenEffect)(startSeen);
47
+ return /* @__PURE__ */ import_react.default.createElement("div", {
48
+ className: (0, import_getBemClass.default)("LabeledTextBlock", wide && "wide"),
49
+ ref
50
+ }, /* @__PURE__ */ import_react.default.createElement("h2", {
51
+ className: "LabeledTextBlock__label"
52
+ }, label), /* @__PURE__ */ import_react.default.createElement("div", {
53
+ className: "LabeledTextBlock__summary"
54
+ }, summary, buttons.map((button, i) => /* @__PURE__ */ import_react.default.createElement(import_ButtonTertiary.default, __spreadValues({
55
+ key: i
56
+ }, button)))));
57
+ };
58
+ var LabeledTextBlock_default = LabeledTextBlock;
59
+ // Annotate the CommonJS export names for ESM import in node:
60
+ 0 && (module.exports = {});
@@ -0,0 +1,38 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+ import React from "react";
18
+ import getBemClass from "@hugsmidjan/react/utils/getBemClass";
19
+ import { useSeenEffect } from "./utils/seenEffect";
20
+ import ButtonTertiary from "./ButtonTertiary";
21
+ const LabeledTextBlock = (props) => {
22
+ const { label, summary, wide, buttons = [], startSeen } = props;
23
+ const [ref] = useSeenEffect(startSeen);
24
+ return /* @__PURE__ */ React.createElement("div", {
25
+ className: getBemClass("LabeledTextBlock", wide && "wide"),
26
+ ref
27
+ }, /* @__PURE__ */ React.createElement("h2", {
28
+ className: "LabeledTextBlock__label"
29
+ }, label), /* @__PURE__ */ React.createElement("div", {
30
+ className: "LabeledTextBlock__summary"
31
+ }, summary, buttons.map((button, i) => /* @__PURE__ */ React.createElement(ButtonTertiary, __spreadValues({
32
+ key: i
33
+ }, button)))));
34
+ };
35
+ var LabeledTextBlock_default = LabeledTextBlock;
36
+ export {
37
+ LabeledTextBlock_default as default
38
+ };
package/lib/Layout.cjs ADDED
@@ -0,0 +1,113 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+ var Layout_exports = {};
22
+ __export(Layout_exports, {
23
+ default: () => Layout_default,
24
+ defaultLayoutTexts: () => defaultLayoutTexts
25
+ });
26
+ module.exports = __toCommonJS(Layout_exports);
27
+ var import_react = __toESM(require("react"));
28
+ var import_hooks = require("@hugsmidjan/react/hooks");
29
+ var import_getBemClass = __toESM(require("@hugsmidjan/react/utils/getBemClass"));
30
+ var import_assets = require("@reykjavik/hanna-utils/assets");
31
+ var import_i18n = require("@reykjavik/hanna-utils/i18n");
32
+ var import_Image = __toESM(require("./_abstract/Image"));
33
+ var import_Link = require("./_abstract/Link");
34
+ var import_useMenuToggling = require("./utils/useMenuToggling");
35
+ var import_useScrollbarWidthCSSVar = require("./utils/useScrollbarWidthCSSVar");
36
+ const defaultLayoutTexts = {
37
+ is: {
38
+ lang: "is",
39
+ skipLinkLabel: "Valmynd",
40
+ closeMenuLabel: "Loka",
41
+ closeMenuLabelLong: "Loka valmynd"
42
+ },
43
+ en: {
44
+ lang: "en",
45
+ skipLinkLabel: "Skip to navigation",
46
+ closeMenuLabel: "Close",
47
+ closeMenuLabelLong: "Close menu"
48
+ }
49
+ };
50
+ const Layout = (props) => {
51
+ (0, import_useScrollbarWidthCSSVar.useScrollbarWidthCSSVar)();
52
+ const {
53
+ ssr,
54
+ globalAlerts,
55
+ mainChildren,
56
+ navChildren,
57
+ footerChildren,
58
+ colorTheme,
59
+ children,
60
+ siteName = "Reykjav\xEDk",
61
+ logoLink = "/"
62
+ } = props;
63
+ const { isMenuActive, closeMenu, toggleMenu } = (0, import_useMenuToggling.useMenuToggling)(ssr !== "ssr-only");
64
+ const isBrowser = (0, import_hooks.useIsBrowserSide)();
65
+ const txt = (0, import_i18n.getTexts)(props, defaultLayoutTexts);
66
+ return /* @__PURE__ */ import_react.default.createElement("div", {
67
+ className: (0, import_getBemClass.default)("Layout", props.modifier),
68
+ "data-sprinkled": isBrowser,
69
+ "data-color-theme": colorTheme
70
+ }, globalAlerts && /* @__PURE__ */ import_react.default.createElement("div", {
71
+ className: "Layout__alerts",
72
+ role: "alert"
73
+ }, globalAlerts), /* @__PURE__ */ import_react.default.createElement("div", {
74
+ className: "Layout__content"
75
+ }, /* @__PURE__ */ import_react.default.createElement("div", {
76
+ className: "Layout__header",
77
+ role: "banner"
78
+ }, /* @__PURE__ */ import_react.default.createElement(import_Link.Link, {
79
+ className: "Layout__header__logo",
80
+ href: logoLink
81
+ }, " ", /* @__PURE__ */ import_react.default.createElement(import_Image.default, {
82
+ inline: true,
83
+ src: (0, import_assets.getAssetUrl)("reykjavik-logo.svg")
84
+ }), " ", siteName, " "), " ", navChildren && /* @__PURE__ */ import_react.default.createElement(import_Link.Link, {
85
+ className: "Layout__header__skiplink",
86
+ href: "#pagenav",
87
+ onClick: isMenuActive && ((e) => {
88
+ e.preventDefault();
89
+ toggleMenu();
90
+ }),
91
+ "aria-label": txt.skipLinkLabel
92
+ }, txt.skipLinkLabel)), /* @__PURE__ */ import_react.default.createElement("div", {
93
+ className: "Layout__main",
94
+ role: "main"
95
+ }, mainChildren || children), navChildren && /* @__PURE__ */ import_react.default.createElement("div", {
96
+ className: "Layout__nav",
97
+ id: "pagenav",
98
+ role: "navigation"
99
+ }, navChildren, isMenuActive && /* @__PURE__ */ import_react.default.createElement("button", {
100
+ className: "Layout__nav__closebutton",
101
+ onClick: closeMenu,
102
+ "aria-label": txt.closeMenuLabelLong,
103
+ type: "button"
104
+ }, txt.closeMenuLabel)), /* @__PURE__ */ import_react.default.createElement("div", {
105
+ className: "Layout__footer",
106
+ role: "complementary"
107
+ }, footerChildren)));
108
+ };
109
+ var Layout_default = Layout;
110
+ // Annotate the CommonJS export names for ESM import in node:
111
+ 0 && (module.exports = {
112
+ defaultLayoutTexts
113
+ });
package/lib/Layout.mjs ADDED
@@ -0,0 +1,87 @@
1
+ import React from "react";
2
+ import { useIsBrowserSide } from "@hugsmidjan/react/hooks";
3
+ import getBemClass from "@hugsmidjan/react/utils/getBemClass";
4
+ import { getAssetUrl } from "@reykjavik/hanna-utils/assets";
5
+ import { getTexts } from "@reykjavik/hanna-utils/i18n";
6
+ import Image from "./_abstract/Image";
7
+ import { Link } from "./_abstract/Link";
8
+ import { useMenuToggling } from "./utils/useMenuToggling";
9
+ import { useScrollbarWidthCSSVar } from "./utils/useScrollbarWidthCSSVar";
10
+ const defaultLayoutTexts = {
11
+ is: {
12
+ lang: "is",
13
+ skipLinkLabel: "Valmynd",
14
+ closeMenuLabel: "Loka",
15
+ closeMenuLabelLong: "Loka valmynd"
16
+ },
17
+ en: {
18
+ lang: "en",
19
+ skipLinkLabel: "Skip to navigation",
20
+ closeMenuLabel: "Close",
21
+ closeMenuLabelLong: "Close menu"
22
+ }
23
+ };
24
+ const Layout = (props) => {
25
+ useScrollbarWidthCSSVar();
26
+ const {
27
+ ssr,
28
+ globalAlerts,
29
+ mainChildren,
30
+ navChildren,
31
+ footerChildren,
32
+ colorTheme,
33
+ children,
34
+ siteName = "Reykjav\xEDk",
35
+ logoLink = "/"
36
+ } = props;
37
+ const { isMenuActive, closeMenu, toggleMenu } = useMenuToggling(ssr !== "ssr-only");
38
+ const isBrowser = useIsBrowserSide();
39
+ const txt = getTexts(props, defaultLayoutTexts);
40
+ return /* @__PURE__ */ React.createElement("div", {
41
+ className: getBemClass("Layout", props.modifier),
42
+ "data-sprinkled": isBrowser,
43
+ "data-color-theme": colorTheme
44
+ }, globalAlerts && /* @__PURE__ */ React.createElement("div", {
45
+ className: "Layout__alerts",
46
+ role: "alert"
47
+ }, globalAlerts), /* @__PURE__ */ React.createElement("div", {
48
+ className: "Layout__content"
49
+ }, /* @__PURE__ */ React.createElement("div", {
50
+ className: "Layout__header",
51
+ role: "banner"
52
+ }, /* @__PURE__ */ React.createElement(Link, {
53
+ className: "Layout__header__logo",
54
+ href: logoLink
55
+ }, " ", /* @__PURE__ */ React.createElement(Image, {
56
+ inline: true,
57
+ src: getAssetUrl("reykjavik-logo.svg")
58
+ }), " ", siteName, " "), " ", navChildren && /* @__PURE__ */ React.createElement(Link, {
59
+ className: "Layout__header__skiplink",
60
+ href: "#pagenav",
61
+ onClick: isMenuActive && ((e) => {
62
+ e.preventDefault();
63
+ toggleMenu();
64
+ }),
65
+ "aria-label": txt.skipLinkLabel
66
+ }, txt.skipLinkLabel)), /* @__PURE__ */ React.createElement("div", {
67
+ className: "Layout__main",
68
+ role: "main"
69
+ }, mainChildren || children), navChildren && /* @__PURE__ */ React.createElement("div", {
70
+ className: "Layout__nav",
71
+ id: "pagenav",
72
+ role: "navigation"
73
+ }, navChildren, isMenuActive && /* @__PURE__ */ React.createElement("button", {
74
+ className: "Layout__nav__closebutton",
75
+ onClick: closeMenu,
76
+ "aria-label": txt.closeMenuLabelLong,
77
+ type: "button"
78
+ }, txt.closeMenuLabel)), /* @__PURE__ */ React.createElement("div", {
79
+ className: "Layout__footer",
80
+ role: "complementary"
81
+ }, footerChildren)));
82
+ };
83
+ var Layout_default = Layout;
84
+ export {
85
+ Layout_default as default,
86
+ defaultLayoutTexts
87
+ };
@@ -0,0 +1,54 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+ var Auxiliary_exports = {};
22
+ __export(Auxiliary_exports, {
23
+ AuxiliaryPanel: () => AuxiliaryPanel
24
+ });
25
+ module.exports = __toCommonJS(Auxiliary_exports);
26
+ var import_react = __toESM(require("react"));
27
+ var import_assets = require("@reykjavik/hanna-utils/assets");
28
+ var import_Link = require("../_abstract/Link");
29
+ const AuxiliaryPanel = (props) => {
30
+ const { title, id, items, image } = props;
31
+ const imageUrl = image ? (0, import_assets.getIllustrationUrl)(image) : image;
32
+ return /* @__PURE__ */ import_react.default.createElement("li", {
33
+ className: "AuxiliaryPanel",
34
+ id,
35
+ style: imageUrl ? { "--menu-auxiliary-image": `url(${imageUrl})` } : void 0
36
+ }, /* @__PURE__ */ import_react.default.createElement("h3", {
37
+ className: "AuxiliaryPanel__title"
38
+ }, title), /* @__PURE__ */ import_react.default.createElement("ul", {
39
+ className: "AuxiliaryPanel__items"
40
+ }, items.map((item, i) => /* @__PURE__ */ import_react.default.createElement("li", {
41
+ key: i,
42
+ className: "AuxiliaryPanel__item",
43
+ "aria-current": item.current || void 0
44
+ }, /* @__PURE__ */ import_react.default.createElement(import_Link.Link, {
45
+ className: "AuxiliaryPanel__link",
46
+ href: item.href,
47
+ target: item.target,
48
+ lang: item.lang
49
+ }, item.label)))));
50
+ };
51
+ // Annotate the CommonJS export names for ESM import in node:
52
+ 0 && (module.exports = {
53
+ AuxiliaryPanel
54
+ });
@@ -0,0 +1,28 @@
1
+ import React from "react";
2
+ import { getIllustrationUrl } from "@reykjavik/hanna-utils/assets";
3
+ import { Link } from "../_abstract/Link";
4
+ const AuxiliaryPanel = (props) => {
5
+ const { title, id, items, image } = props;
6
+ const imageUrl = image ? getIllustrationUrl(image) : image;
7
+ return /* @__PURE__ */ React.createElement("li", {
8
+ className: "AuxiliaryPanel",
9
+ id,
10
+ style: imageUrl ? { "--menu-auxiliary-image": `url(${imageUrl})` } : void 0
11
+ }, /* @__PURE__ */ React.createElement("h3", {
12
+ className: "AuxiliaryPanel__title"
13
+ }, title), /* @__PURE__ */ React.createElement("ul", {
14
+ className: "AuxiliaryPanel__items"
15
+ }, items.map((item, i) => /* @__PURE__ */ React.createElement("li", {
16
+ key: i,
17
+ className: "AuxiliaryPanel__item",
18
+ "aria-current": item.current || void 0
19
+ }, /* @__PURE__ */ React.createElement(Link, {
20
+ className: "AuxiliaryPanel__link",
21
+ href: item.href,
22
+ target: item.target,
23
+ lang: item.lang
24
+ }, item.label)))));
25
+ };
26
+ export {
27
+ AuxiliaryPanel
28
+ };
@@ -0,0 +1,74 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+ var PrimaryPanel_exports = {};
22
+ __export(PrimaryPanel_exports, {
23
+ PrimaryPanel: () => PrimaryPanel
24
+ });
25
+ module.exports = __toCommonJS(PrimaryPanel_exports);
26
+ var import_react = __toESM(require("react"));
27
+ var import_getBemClass = __toESM(require("@hugsmidjan/react/utils/getBemClass"));
28
+ var import_Link = require("../_abstract/Link");
29
+ const PrimaryPanel = (props) => {
30
+ const { setActivePanel, panel, isParent, isActive, isBrowser, texts } = props;
31
+ const { items } = panel;
32
+ return /* @__PURE__ */ import_react.default.createElement("li", {
33
+ ref: isActive ? props.activeRef : void 0,
34
+ className: (0, import_getBemClass.default)("PrimaryPanel", [
35
+ isParent && "parent",
36
+ isActive && "active",
37
+ items.length > 5 && "twocol"
38
+ ]),
39
+ id: panel.id
40
+ }, /* @__PURE__ */ import_react.default.createElement("h3", {
41
+ className: "PrimaryPanel__title"
42
+ }, " ", isBrowser && !isActive ? /* @__PURE__ */ import_react.default.createElement("button", {
43
+ className: "MainMenu__mega__title-toggler",
44
+ "aria-controls": panel.id,
45
+ onClick: () => setActivePanel(panel, false),
46
+ "aria-pressed": isActive,
47
+ type: "button"
48
+ }, panel.title) : panel.title), /* @__PURE__ */ import_react.default.createElement("ul", {
49
+ className: "PrimaryPanel__items"
50
+ }, items.map((item, i) => /* @__PURE__ */ import_react.default.createElement("li", {
51
+ key: i,
52
+ className: "PrimaryPanel__item",
53
+ "aria-current": item.current || void 0
54
+ }, /* @__PURE__ */ import_react.default.createElement(import_Link.Link, {
55
+ className: "PrimaryPanel__link",
56
+ href: item.href,
57
+ target: item.target,
58
+ lang: item.lang
59
+ }, /* @__PURE__ */ import_react.default.createElement("span", {
60
+ className: "PrimaryPanel__linkTitle"
61
+ }, item.label), " ", /* @__PURE__ */ import_react.default.createElement("small", {
62
+ className: "PrimaryPanel__summary"
63
+ }, item.summary), " ")))), isBrowser && isActive && /* @__PURE__ */ import_react.default.createElement("button", {
64
+ className: "MainMenu__megapanel__backtomenu",
65
+ "aria-controls": panel.id,
66
+ "aria-label": texts.backToMenuLong,
67
+ onClick: () => setActivePanel(void 0),
68
+ type: "button"
69
+ }, texts.backToMenu));
70
+ };
71
+ // Annotate the CommonJS export names for ESM import in node:
72
+ 0 && (module.exports = {
73
+ PrimaryPanel
74
+ });
@@ -0,0 +1,48 @@
1
+ import React from "react";
2
+ import getBemClass from "@hugsmidjan/react/utils/getBemClass";
3
+ import { Link } from "../_abstract/Link";
4
+ const PrimaryPanel = (props) => {
5
+ const { setActivePanel, panel, isParent, isActive, isBrowser, texts } = props;
6
+ const { items } = panel;
7
+ return /* @__PURE__ */ React.createElement("li", {
8
+ ref: isActive ? props.activeRef : void 0,
9
+ className: getBemClass("PrimaryPanel", [
10
+ isParent && "parent",
11
+ isActive && "active",
12
+ items.length > 5 && "twocol"
13
+ ]),
14
+ id: panel.id
15
+ }, /* @__PURE__ */ React.createElement("h3", {
16
+ className: "PrimaryPanel__title"
17
+ }, " ", isBrowser && !isActive ? /* @__PURE__ */ React.createElement("button", {
18
+ className: "MainMenu__mega__title-toggler",
19
+ "aria-controls": panel.id,
20
+ onClick: () => setActivePanel(panel, false),
21
+ "aria-pressed": isActive,
22
+ type: "button"
23
+ }, panel.title) : panel.title), /* @__PURE__ */ React.createElement("ul", {
24
+ className: "PrimaryPanel__items"
25
+ }, items.map((item, i) => /* @__PURE__ */ React.createElement("li", {
26
+ key: i,
27
+ className: "PrimaryPanel__item",
28
+ "aria-current": item.current || void 0
29
+ }, /* @__PURE__ */ React.createElement(Link, {
30
+ className: "PrimaryPanel__link",
31
+ href: item.href,
32
+ target: item.target,
33
+ lang: item.lang
34
+ }, /* @__PURE__ */ React.createElement("span", {
35
+ className: "PrimaryPanel__linkTitle"
36
+ }, item.label), " ", /* @__PURE__ */ React.createElement("small", {
37
+ className: "PrimaryPanel__summary"
38
+ }, item.summary), " ")))), isBrowser && isActive && /* @__PURE__ */ React.createElement("button", {
39
+ className: "MainMenu__megapanel__backtomenu",
40
+ "aria-controls": panel.id,
41
+ "aria-label": texts.backToMenuLong,
42
+ onClick: () => setActivePanel(void 0),
43
+ type: "button"
44
+ }, texts.backToMenu));
45
+ };
46
+ export {
47
+ PrimaryPanel
48
+ };