@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,153 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
+ var __export = (target, all) => {
25
+ for (var name in all)
26
+ __defProp(target, name, { get: all[name], enumerable: true });
27
+ };
28
+ var __copyProps = (to, from, except, desc) => {
29
+ if (from && typeof from === "object" || typeof from === "function") {
30
+ for (let key of __getOwnPropNames(from))
31
+ if (!__hasOwnProp.call(to, key) && key !== except)
32
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
33
+ }
34
+ return to;
35
+ };
36
+ 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));
37
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
38
+ var FormField_exports = {};
39
+ __export(FormField_exports, {
40
+ default: () => FormField_default
41
+ });
42
+ module.exports = __toCommonJS(FormField_exports);
43
+ var import_react = __toESM(require("react"));
44
+ var import_hooks = require("@hugsmidjan/react/hooks");
45
+ var import_getBemClass = __toESM(require("@hugsmidjan/react/utils/getBemClass"));
46
+ var import_env = require("./utils/env");
47
+ const inputClassNames = {
48
+ bem: "FormField",
49
+ input: "FormField__input",
50
+ options: "FormField__options",
51
+ control: "FormField__control"
52
+ };
53
+ const FormField = (props) => {
54
+ const {
55
+ className,
56
+ small,
57
+ group,
58
+ LabelTag = group ? "h4" : void 0,
59
+ label,
60
+ assistText,
61
+ hideLabel,
62
+ empty,
63
+ filled,
64
+ readOnly,
65
+ disabled,
66
+ invalid,
67
+ errorMessage,
68
+ required,
69
+ reqText,
70
+ renderInput,
71
+ id,
72
+ ssr
73
+ } = props;
74
+ const isBrowser = (0, import_hooks.useIsBrowserSide)(ssr);
75
+ const isInvalid = invalid || !!errorMessage || void 0;
76
+ const domid = (0, import_hooks.useDomid)(id);
77
+ const [focused, setFocused] = (0, import_react.useState)(false);
78
+ const addFocusProps = (0, import_react.useCallback)((ownProps) => {
79
+ const { onFocus, onBlur } = ownProps || {};
80
+ const focusHandler = (e) => {
81
+ if (!e.relatedTarget || !e.currentTarget.contains(e.relatedTarget)) {
82
+ setFocused(true);
83
+ }
84
+ onFocus && onFocus(e);
85
+ };
86
+ const blurHandler = (e) => {
87
+ if (!e.relatedTarget || !e.currentTarget.contains(e.relatedTarget)) {
88
+ setFocused(false);
89
+ }
90
+ onBlur && onBlur(e);
91
+ };
92
+ const focusProps = __spreadProps(__spreadValues({}, ownProps), {
93
+ onFocus: focusHandler,
94
+ onBlur: blurHandler
95
+ });
96
+ if (import_env.isPreact) {
97
+ const focusinHandler = (e) => {
98
+ e.currentTarget !== e.target && focusHandler(e);
99
+ };
100
+ const focusoutHandler = (e) => {
101
+ e.currentTarget !== e.target && blurHandler(e);
102
+ };
103
+ focusProps.onfocusin = focusinHandler;
104
+ focusProps.onfocusout = focusoutHandler;
105
+ }
106
+ return focusProps;
107
+ }, []);
108
+ const errorId = errorMessage ? "error:" + domid : void 0;
109
+ const assistTextId = assistText ? "assist:" + domid : void 0;
110
+ const labelId = LabelTag ? "label:" + domid : void 0;
111
+ const reqStar = required && reqText !== false && /* @__PURE__ */ import_react.default.createElement("abbr", {
112
+ className: "FormField__label__reqstar",
113
+ title: (reqText || "\xDEarf a\xF0 fylla \xFAt") + ": "
114
+ }, "*");
115
+ const inputProps = {
116
+ id: domid,
117
+ disabled,
118
+ required,
119
+ readOnly,
120
+ "aria-invalid": isInvalid,
121
+ "aria-describedby": assistTextId && errorId ? assistTextId + " " + errorId : assistTextId || errorId,
122
+ "aria-labelledby": labelId
123
+ };
124
+ return /* @__PURE__ */ import_react.default.createElement("div", {
125
+ className: (0, import_getBemClass.default)("FormField", [
126
+ small && "small",
127
+ hideLabel && "nolabel",
128
+ isInvalid && "invalid",
129
+ disabled && "disabled",
130
+ readOnly && "readonly",
131
+ isBrowser && empty && "empty",
132
+ isBrowser && filled && "filled",
133
+ isBrowser && focused && "focused"
134
+ ], className),
135
+ role: group ? "group" : void 0,
136
+ ref: props.wrapperRef
137
+ }, LabelTag ? /* @__PURE__ */ import_react.default.createElement(LabelTag, {
138
+ className: "FormField__label",
139
+ id: labelId
140
+ }, " ", reqStar, " ", label, " ") : /* @__PURE__ */ import_react.default.createElement("label", {
141
+ className: "FormField__label",
142
+ htmlFor: domid
143
+ }, " ", reqStar, " ", label, " "), " ", renderInput(inputClassNames, inputProps, addFocusProps, isBrowser), assistText && /* @__PURE__ */ import_react.default.createElement("div", {
144
+ id: assistTextId,
145
+ className: "FormField__assist"
146
+ }, assistText), errorMessage && /* @__PURE__ */ import_react.default.createElement("div", {
147
+ id: errorId,
148
+ className: "FormField__error"
149
+ }, errorMessage));
150
+ };
151
+ var FormField_default = FormField;
152
+ // Annotate the CommonJS export names for ESM import in node:
153
+ 0 && (module.exports = {});
@@ -0,0 +1,131 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import React, { useCallback, useState } from "react";
21
+ import { useDomid, useIsBrowserSide } from "@hugsmidjan/react/hooks";
22
+ import getBemClass from "@hugsmidjan/react/utils/getBemClass";
23
+ import { isPreact } from "./utils/env";
24
+ const inputClassNames = {
25
+ bem: "FormField",
26
+ input: "FormField__input",
27
+ options: "FormField__options",
28
+ control: "FormField__control"
29
+ };
30
+ const FormField = (props) => {
31
+ const {
32
+ className,
33
+ small,
34
+ group,
35
+ LabelTag = group ? "h4" : void 0,
36
+ label,
37
+ assistText,
38
+ hideLabel,
39
+ empty,
40
+ filled,
41
+ readOnly,
42
+ disabled,
43
+ invalid,
44
+ errorMessage,
45
+ required,
46
+ reqText,
47
+ renderInput,
48
+ id,
49
+ ssr
50
+ } = props;
51
+ const isBrowser = useIsBrowserSide(ssr);
52
+ const isInvalid = invalid || !!errorMessage || void 0;
53
+ const domid = useDomid(id);
54
+ const [focused, setFocused] = useState(false);
55
+ const addFocusProps = useCallback((ownProps) => {
56
+ const { onFocus, onBlur } = ownProps || {};
57
+ const focusHandler = (e) => {
58
+ if (!e.relatedTarget || !e.currentTarget.contains(e.relatedTarget)) {
59
+ setFocused(true);
60
+ }
61
+ onFocus && onFocus(e);
62
+ };
63
+ const blurHandler = (e) => {
64
+ if (!e.relatedTarget || !e.currentTarget.contains(e.relatedTarget)) {
65
+ setFocused(false);
66
+ }
67
+ onBlur && onBlur(e);
68
+ };
69
+ const focusProps = __spreadProps(__spreadValues({}, ownProps), {
70
+ onFocus: focusHandler,
71
+ onBlur: blurHandler
72
+ });
73
+ if (isPreact) {
74
+ const focusinHandler = (e) => {
75
+ e.currentTarget !== e.target && focusHandler(e);
76
+ };
77
+ const focusoutHandler = (e) => {
78
+ e.currentTarget !== e.target && blurHandler(e);
79
+ };
80
+ focusProps.onfocusin = focusinHandler;
81
+ focusProps.onfocusout = focusoutHandler;
82
+ }
83
+ return focusProps;
84
+ }, []);
85
+ const errorId = errorMessage ? "error:" + domid : void 0;
86
+ const assistTextId = assistText ? "assist:" + domid : void 0;
87
+ const labelId = LabelTag ? "label:" + domid : void 0;
88
+ const reqStar = required && reqText !== false && /* @__PURE__ */ React.createElement("abbr", {
89
+ className: "FormField__label__reqstar",
90
+ title: (reqText || "\xDEarf a\xF0 fylla \xFAt") + ": "
91
+ }, "*");
92
+ const inputProps = {
93
+ id: domid,
94
+ disabled,
95
+ required,
96
+ readOnly,
97
+ "aria-invalid": isInvalid,
98
+ "aria-describedby": assistTextId && errorId ? assistTextId + " " + errorId : assistTextId || errorId,
99
+ "aria-labelledby": labelId
100
+ };
101
+ return /* @__PURE__ */ React.createElement("div", {
102
+ className: getBemClass("FormField", [
103
+ small && "small",
104
+ hideLabel && "nolabel",
105
+ isInvalid && "invalid",
106
+ disabled && "disabled",
107
+ readOnly && "readonly",
108
+ isBrowser && empty && "empty",
109
+ isBrowser && filled && "filled",
110
+ isBrowser && focused && "focused"
111
+ ], className),
112
+ role: group ? "group" : void 0,
113
+ ref: props.wrapperRef
114
+ }, LabelTag ? /* @__PURE__ */ React.createElement(LabelTag, {
115
+ className: "FormField__label",
116
+ id: labelId
117
+ }, " ", reqStar, " ", label, " ") : /* @__PURE__ */ React.createElement("label", {
118
+ className: "FormField__label",
119
+ htmlFor: domid
120
+ }, " ", reqStar, " ", label, " "), " ", renderInput(inputClassNames, inputProps, addFocusProps, isBrowser), assistText && /* @__PURE__ */ React.createElement("div", {
121
+ id: assistTextId,
122
+ className: "FormField__assist"
123
+ }, assistText), errorMessage && /* @__PURE__ */ React.createElement("div", {
124
+ id: errorId,
125
+ className: "FormField__error"
126
+ }, errorMessage));
127
+ };
128
+ var FormField_default = FormField;
129
+ export {
130
+ FormField_default as default
131
+ };
@@ -0,0 +1,83 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
+ var __objRest = (source, exclude) => {
25
+ var target = {};
26
+ for (var prop in source)
27
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
28
+ target[prop] = source[prop];
29
+ if (source != null && __getOwnPropSymbols)
30
+ for (var prop of __getOwnPropSymbols(source)) {
31
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
32
+ target[prop] = source[prop];
33
+ }
34
+ return target;
35
+ };
36
+ var __export = (target, all) => {
37
+ for (var name in all)
38
+ __defProp(target, name, { get: all[name], enumerable: true });
39
+ };
40
+ var __copyProps = (to, from, except, desc) => {
41
+ if (from && typeof from === "object" || typeof from === "function") {
42
+ for (let key of __getOwnPropNames(from))
43
+ if (!__hasOwnProp.call(to, key) && key !== except)
44
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
45
+ }
46
+ return to;
47
+ };
48
+ 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));
49
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
50
+ var GalleryItem_exports = {};
51
+ __export(GalleryItem_exports, {
52
+ default: () => GalleryItem_default
53
+ });
54
+ module.exports = __toCommonJS(GalleryItem_exports);
55
+ var import_react = __toESM(require("react"));
56
+ var import_Button = __toESM(require("../_abstract/Button"));
57
+ var import_Image = __toESM(require("../_abstract/Image"));
58
+ var import_GalleryModalContext = __toESM(require("./_GalleryModalContext"));
59
+ const GalleryItem = (props) => {
60
+ const _a = props, { caption, description, largeImageSrc } = _a, image = __objRest(_a, ["caption", "description", "largeImageSrc"]);
61
+ const { setCurrentImage } = (0, import_react.useContext)(import_GalleryModalContext.default);
62
+ return /* @__PURE__ */ import_react.default.createElement("figure", {
63
+ className: "GalleryItem"
64
+ }, /* @__PURE__ */ import_react.default.createElement("figcaption", {
65
+ className: "GalleryItem__caption"
66
+ }, caption), largeImageSrc ? /* @__PURE__ */ import_react.default.createElement(import_Button.default, {
67
+ bem: "GalleryItem__button",
68
+ href: largeImageSrc,
69
+ onClick: (e) => {
70
+ e.preventDefault();
71
+ setCurrentImage(__spreadProps(__spreadValues({}, image), { caption, description, largeImageSrc }));
72
+ }
73
+ }, " ", /* @__PURE__ */ import_react.default.createElement(import_Image.default, __spreadValues({
74
+ className: "GalleryItem__image"
75
+ }, image)), " ") : /* @__PURE__ */ import_react.default.createElement(import_Image.default, __spreadValues({
76
+ className: "GalleryItem__image"
77
+ }, image)), description && /* @__PURE__ */ import_react.default.createElement("div", {
78
+ className: "GalleryItem__description"
79
+ }, description));
80
+ };
81
+ var GalleryItem_default = GalleryItem;
82
+ // Annotate the CommonJS export names for ESM import in node:
83
+ 0 && (module.exports = {});
@@ -0,0 +1,61 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
32
+ import React, { useContext } from "react";
33
+ import Button from "../_abstract/Button";
34
+ import Image from "../_abstract/Image";
35
+ import GalleryModalContext from "./_GalleryModalContext";
36
+ const GalleryItem = (props) => {
37
+ const _a = props, { caption, description, largeImageSrc } = _a, image = __objRest(_a, ["caption", "description", "largeImageSrc"]);
38
+ const { setCurrentImage } = useContext(GalleryModalContext);
39
+ return /* @__PURE__ */ React.createElement("figure", {
40
+ className: "GalleryItem"
41
+ }, /* @__PURE__ */ React.createElement("figcaption", {
42
+ className: "GalleryItem__caption"
43
+ }, caption), largeImageSrc ? /* @__PURE__ */ React.createElement(Button, {
44
+ bem: "GalleryItem__button",
45
+ href: largeImageSrc,
46
+ onClick: (e) => {
47
+ e.preventDefault();
48
+ setCurrentImage(__spreadProps(__spreadValues({}, image), { caption, description, largeImageSrc }));
49
+ }
50
+ }, " ", /* @__PURE__ */ React.createElement(Image, __spreadValues({
51
+ className: "GalleryItem__image"
52
+ }, image)), " ") : /* @__PURE__ */ React.createElement(Image, __spreadValues({
53
+ className: "GalleryItem__image"
54
+ }, image)), description && /* @__PURE__ */ React.createElement("div", {
55
+ className: "GalleryItem__description"
56
+ }, description));
57
+ };
58
+ var GalleryItem_default = GalleryItem;
59
+ export {
60
+ GalleryItem_default as default
61
+ };
@@ -0,0 +1,104 @@
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 GalleryModal_exports = {};
36
+ __export(GalleryModal_exports, {
37
+ default: () => GalleryModal_default
38
+ });
39
+ module.exports = __toCommonJS(GalleryModal_exports);
40
+ var import_react = __toESM(require("react"));
41
+ var import_react_transition_group = require("react-transition-group");
42
+ var import_object = require("@hugsmidjan/qj/object");
43
+ var import_CarouselPaging = __toESM(require("@hugsmidjan/react/CarouselPaging"));
44
+ var import_Modal = __toESM(require("@hugsmidjan/react/Modal"));
45
+ var import_GalleryModalContext = __toESM(require("./_GalleryModalContext"));
46
+ var import_GalleryModalItem = __toESM(require("./_GalleryModalItem"));
47
+ const GalleryModal = (props) => {
48
+ const { texts } = props;
49
+ const { currentImage, items, setCurrentImage } = (0, import_react.useContext)(import_GalleryModalContext.default);
50
+ const [image, setImage] = (0, import_react.useState)(currentImage);
51
+ const [animated, setAnimated] = (0, import_react.useState)(false);
52
+ const updateImage = (index) => {
53
+ setAnimated(!animated);
54
+ setTimeout(() => {
55
+ setCurrentImage(items[index]);
56
+ }, 200);
57
+ };
58
+ (0, import_react.useEffect)(() => {
59
+ if (image !== currentImage) {
60
+ const imgSource = (currentImage == null ? void 0 : currentImage.largeImageSrc) || (currentImage == null ? void 0 : currentImage.src);
61
+ if (imgSource) {
62
+ const imageToLoad = new window.Image();
63
+ imageToLoad.src = imgSource;
64
+ imageToLoad.onload = () => {
65
+ setImage(currentImage);
66
+ };
67
+ } else {
68
+ setImage(void 0);
69
+ }
70
+ }
71
+ }, [image, currentImage]);
72
+ if (!image) {
73
+ return null;
74
+ }
75
+ const imageIndex = items.findIndex((item) => (0, import_object.objectIsSame)((0, import_object.objectClean)(image), (0, import_object.objectClean)(item)));
76
+ return /* @__PURE__ */ import_react.default.createElement(import_Modal.default, {
77
+ open: true,
78
+ onClosed: () => {
79
+ setCurrentImage(void 0);
80
+ },
81
+ startOpen: false,
82
+ bem: "GalleryModal",
83
+ texts: { closeButton: texts.modalCloseLabel }
84
+ }, /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(import_react_transition_group.CSSTransition, {
85
+ in: animated,
86
+ timeout: 200,
87
+ onEntered: () => {
88
+ setAnimated(!animated);
89
+ },
90
+ classNames: "GalleryModalItem--"
91
+ }, /* @__PURE__ */ import_react.default.createElement(import_GalleryModalItem.default, __spreadValues({}, image))), /* @__PURE__ */ import_react.default.createElement(import_CarouselPaging.default, {
92
+ bem: "GalleryModalPager",
93
+ itemCount: items.length,
94
+ current: imageIndex,
95
+ setCurrent: updateImage,
96
+ texts: {
97
+ next: texts.modalNextLabel,
98
+ prev: texts.modalPrevLabel
99
+ }
100
+ })));
101
+ };
102
+ var GalleryModal_default = GalleryModal;
103
+ // Annotate the CommonJS export names for ESM import in node:
104
+ 0 && (module.exports = {});
@@ -0,0 +1,82 @@
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, { useContext, useEffect, useState } from "react";
18
+ import { CSSTransition } from "react-transition-group";
19
+ import { objectClean, objectIsSame } from "@hugsmidjan/qj/object";
20
+ import CarouselPaging from "@hugsmidjan/react/CarouselPaging";
21
+ import Modal from "@hugsmidjan/react/Modal";
22
+ import GalleryModalContext from "./_GalleryModalContext";
23
+ import GalleryModalItem from "./_GalleryModalItem";
24
+ const GalleryModal = (props) => {
25
+ const { texts } = props;
26
+ const { currentImage, items, setCurrentImage } = useContext(GalleryModalContext);
27
+ const [image, setImage] = useState(currentImage);
28
+ const [animated, setAnimated] = useState(false);
29
+ const updateImage = (index) => {
30
+ setAnimated(!animated);
31
+ setTimeout(() => {
32
+ setCurrentImage(items[index]);
33
+ }, 200);
34
+ };
35
+ useEffect(() => {
36
+ if (image !== currentImage) {
37
+ const imgSource = (currentImage == null ? void 0 : currentImage.largeImageSrc) || (currentImage == null ? void 0 : currentImage.src);
38
+ if (imgSource) {
39
+ const imageToLoad = new window.Image();
40
+ imageToLoad.src = imgSource;
41
+ imageToLoad.onload = () => {
42
+ setImage(currentImage);
43
+ };
44
+ } else {
45
+ setImage(void 0);
46
+ }
47
+ }
48
+ }, [image, currentImage]);
49
+ if (!image) {
50
+ return null;
51
+ }
52
+ const imageIndex = items.findIndex((item) => objectIsSame(objectClean(image), objectClean(item)));
53
+ return /* @__PURE__ */ React.createElement(Modal, {
54
+ open: true,
55
+ onClosed: () => {
56
+ setCurrentImage(void 0);
57
+ },
58
+ startOpen: false,
59
+ bem: "GalleryModal",
60
+ texts: { closeButton: texts.modalCloseLabel }
61
+ }, /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(CSSTransition, {
62
+ in: animated,
63
+ timeout: 200,
64
+ onEntered: () => {
65
+ setAnimated(!animated);
66
+ },
67
+ classNames: "GalleryModalItem--"
68
+ }, /* @__PURE__ */ React.createElement(GalleryModalItem, __spreadValues({}, image))), /* @__PURE__ */ React.createElement(CarouselPaging, {
69
+ bem: "GalleryModalPager",
70
+ itemCount: items.length,
71
+ current: imageIndex,
72
+ setCurrent: updateImage,
73
+ texts: {
74
+ next: texts.modalNextLabel,
75
+ prev: texts.modalPrevLabel
76
+ }
77
+ })));
78
+ };
79
+ var GalleryModal_default = GalleryModal;
80
+ export {
81
+ GalleryModal_default as default
82
+ };
@@ -0,0 +1,30 @@
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 GalleryModalContext_exports = {};
22
+ __export(GalleryModalContext_exports, {
23
+ default: () => GalleryModalContext_default
24
+ });
25
+ module.exports = __toCommonJS(GalleryModalContext_exports);
26
+ var import_react = __toESM(require("react"));
27
+ const GalleryModalContext = import_react.default.createContext({});
28
+ var GalleryModalContext_default = GalleryModalContext;
29
+ // Annotate the CommonJS export names for ESM import in node:
30
+ 0 && (module.exports = {});
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ const GalleryModalContext = React.createContext({});
3
+ var GalleryModalContext_default = GalleryModalContext;
4
+ export {
5
+ GalleryModalContext_default as default
6
+ };