@treely/strapi-slices 2.0.0 → 2.2.0

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 (246) hide show
  1. package/package.json +1 -2
  2. package/src/components/SEOTags/SEOTags.tsx +53 -0
  3. package/src/components/SEOTags/index.ts +1 -0
  4. package/src/constants/metadata.ts +3 -0
  5. package/src/constants/sectionsConfig.ts +20 -0
  6. package/src/index.tsx +119 -0
  7. package/src/models/HeaderType.ts +6 -0
  8. package/src/models/Image.ts +6 -0
  9. package/src/models/PageMetadata.ts +11 -0
  10. package/src/models/PageProps.ts +32 -0
  11. package/src/models/strapi/StrapiBlogPostProps.ts +7 -0
  12. package/src/models/strapi/StrapiCustomerStoryProps.ts +9 -0
  13. package/src/models/strapi/StrapiPageProps.ts +7 -0
  14. package/src/models/strapi/StrapiProjectProps.ts +7 -0
  15. package/src/test/mocks/getStaticPropsContext.ts +9 -0
  16. package/src/utils/mergeGlobalAndStrapiBlogPostData.test.ts +154 -0
  17. package/src/utils/mergeGlobalAndStrapiBlogPostData.ts +68 -0
  18. package/src/utils/mergeGlobalAndStrapiCustomerStoryData.test.ts +149 -0
  19. package/src/utils/mergeGlobalAndStrapiCustomerStoryData.ts +68 -0
  20. package/src/utils/mergeGlobalAndStrapiPageData.test.ts +254 -0
  21. package/src/utils/mergeGlobalAndStrapiPageData.ts +81 -0
  22. package/src/utils/mergeGlobalAndStrapiProjectData.test.ts +243 -0
  23. package/src/utils/mergeGlobalAndStrapiProjectData.ts +79 -0
  24. package/dist/components/ContextProvider/ContextProvider.d.ts +0 -8
  25. package/dist/components/ContextProvider/index.d.ts +0 -1
  26. package/dist/components/CreditsAvailableBadge/CreditsAvailableBadge.d.ts +0 -8
  27. package/dist/components/CreditsAvailableBadge/index.d.ts +0 -2
  28. package/dist/components/CreditsAvailableBadge/messages.de.d.ts +0 -7
  29. package/dist/components/CreditsAvailableBadge/messages.en.d.ts +0 -7
  30. package/dist/components/FullScreenImage/FullScreenImage.d.ts +0 -9
  31. package/dist/components/FullScreenImage/ZoomableImage.d.ts +0 -8
  32. package/dist/components/FullScreenImage/index.d.ts +0 -2
  33. package/dist/components/MinimalProviders/MinimalProviders.d.ts +0 -7
  34. package/dist/components/MinimalProviders/index.d.ts +0 -2
  35. package/dist/components/SliceRenderer/SliceRenderer.d.ts +0 -19
  36. package/dist/components/SliceRenderer/index.d.ts +0 -1
  37. package/dist/components/StrapiLinkButton/StrapiLinkButton.d.ts +0 -18
  38. package/dist/components/StrapiLinkButton/index.d.ts +0 -2
  39. package/dist/components/StrapiLinkButtonWithIcon/StrapiLinkButtonWithIcon.d.ts +0 -7
  40. package/dist/components/StrapiLinkButtonWithIcon/index.d.ts +0 -2
  41. package/dist/components/portfolio/Contact/Contact.d.ts +0 -10
  42. package/dist/components/portfolio/Contact/index.d.ts +0 -2
  43. package/dist/components/portfolio/DocumentsDownloadList/DocumentsDownloadList.d.ts +0 -6
  44. package/dist/components/portfolio/DocumentsDownloadList/index.d.ts +0 -2
  45. package/dist/components/portfolio/DocumentsDownloadList/messages.de.d.ts +0 -5
  46. package/dist/components/portfolio/DocumentsDownloadList/messages.en.d.ts +0 -5
  47. package/dist/components/portfolio/ProjectInfo/ProjectInfo.d.ts +0 -18
  48. package/dist/components/portfolio/ProjectInfo/index.d.ts +0 -2
  49. package/dist/components/portfolio/ProjectInfo/messages.de.d.ts +0 -15
  50. package/dist/components/portfolio/ProjectInfo/messages.en.d.ts +0 -15
  51. package/dist/components/portfolio/SmallCheckout/SmallCheckout.d.ts +0 -14
  52. package/dist/components/portfolio/SmallCheckout/index.d.ts +0 -2
  53. package/dist/components/portfolio/SmallCheckout/messages.de.d.ts +0 -16
  54. package/dist/components/portfolio/SmallCheckout/messages.en.d.ts +0 -16
  55. package/dist/constants/animations.d.ts +0 -1
  56. package/dist/constants/api.d.ts +0 -3
  57. package/dist/constants/breakpoints.d.ts +0 -8
  58. package/dist/constants/domain.d.ts +0 -2
  59. package/dist/constants/fontCustomizations.d.ts +0 -6
  60. package/dist/constants/formatter.d.ts +0 -6
  61. package/dist/constants/globalStyle.d.ts +0 -1
  62. package/dist/constants/mapbox.d.ts +0 -17
  63. package/dist/constants/strapi.d.ts +0 -1
  64. package/dist/icons/LinkedInIcon.d.ts +0 -3
  65. package/dist/index.d.ts +0 -1
  66. package/dist/index.js +0 -8
  67. package/dist/models/BBox.d.ts +0 -2
  68. package/dist/models/CreditsAvailableState.d.ts +0 -7
  69. package/dist/models/Locale.d.ts +0 -2
  70. package/dist/models/PortfolioProject.d.ts +0 -7
  71. package/dist/models/forms/CheckoutForm.d.ts +0 -4
  72. package/dist/models/fpm/FPMProject.d.ts +0 -37
  73. package/dist/models/fpm/Issuer.d.ts +0 -6
  74. package/dist/models/strapi/IStrapi.d.ts +0 -4
  75. package/dist/models/strapi/IStrapiData.d.ts +0 -5
  76. package/dist/models/strapi/IStrapiResponse.d.ts +0 -13
  77. package/dist/models/strapi/StrapiAuthor.d.ts +0 -10
  78. package/dist/models/strapi/StrapiAvatarWithName.d.ts +0 -8
  79. package/dist/models/strapi/StrapiBanner.d.ts +0 -9
  80. package/dist/models/strapi/StrapiBlogPost.d.ts +0 -25
  81. package/dist/models/strapi/StrapiButtonWithVariant.d.ts +0 -6
  82. package/dist/models/strapi/StrapiCategory.d.ts +0 -8
  83. package/dist/models/strapi/StrapiContactArea.d.ts +0 -10
  84. package/dist/models/strapi/StrapiCustomerStory.d.ts +0 -21
  85. package/dist/models/strapi/StrapiDefaultHeader.d.ts +0 -6
  86. package/dist/models/strapi/StrapiGlobal.d.ts +0 -26
  87. package/dist/models/strapi/StrapiGlossaryItem.d.ts +0 -6
  88. package/dist/models/strapi/StrapiHeroCard.d.ts +0 -13
  89. package/dist/models/strapi/StrapiImage.d.ts +0 -10
  90. package/dist/models/strapi/StrapiImageFormat.d.ts +0 -12
  91. package/dist/models/strapi/StrapiImageWithLink.d.ts +0 -6
  92. package/dist/models/strapi/StrapiLink.d.ts +0 -11
  93. package/dist/models/strapi/StrapiLinkList.d.ts +0 -7
  94. package/dist/models/strapi/StrapiLinkPage.d.ts +0 -10
  95. package/dist/models/strapi/StrapiLinkWithIcon.d.ts +0 -7
  96. package/dist/models/strapi/StrapiLocalization.d.ts +0 -7
  97. package/dist/models/strapi/StrapiMedia.d.ts +0 -27
  98. package/dist/models/strapi/StrapiMetadata.d.ts +0 -13
  99. package/dist/models/strapi/StrapiNavMenu.d.ts +0 -13
  100. package/dist/models/strapi/StrapiPage.d.ts +0 -17
  101. package/dist/models/strapi/StrapiPortfolio.d.ts +0 -10
  102. package/dist/models/strapi/StrapiPortfolioCard.d.ts +0 -15
  103. package/dist/models/strapi/StrapiProject.d.ts +0 -23
  104. package/dist/models/strapi/StrapiProjectCard.d.ts +0 -18
  105. package/dist/models/strapi/StrapiQuoteCard.d.ts +0 -7
  106. package/dist/models/strapi/StrapiShapesCard.d.ts +0 -11
  107. package/dist/models/strapi/StrapiTextCardWithIcons.d.ts +0 -8
  108. package/dist/models/strapi/StrapiTopBanner.d.ts +0 -7
  109. package/dist/rootMessages.de.d.ts +0 -58
  110. package/dist/rootMessages.en.d.ts +0 -58
  111. package/dist/slices/Blog/Blog.d.ts +0 -10
  112. package/dist/slices/Blog/index.d.ts +0 -2
  113. package/dist/slices/Blog/styles.d.ts +0 -7
  114. package/dist/slices/BlogCards/BlogCards.d.ts +0 -18
  115. package/dist/slices/BlogCards/index.d.ts +0 -2
  116. package/dist/slices/Comparison/Comparison.d.ts +0 -33
  117. package/dist/slices/Comparison/Icon.d.ts +0 -7
  118. package/dist/slices/Comparison/index.d.ts +0 -2
  119. package/dist/slices/Comparison/messages.de.d.ts +0 -4
  120. package/dist/slices/Comparison/messages.en.d.ts +0 -4
  121. package/dist/slices/Cta/Cta.d.ts +0 -26
  122. package/dist/slices/Cta/index.d.ts +0 -2
  123. package/dist/slices/Cta/messages.de.d.ts +0 -5
  124. package/dist/slices/Cta/messages.en.d.ts +0 -5
  125. package/dist/slices/CtaOnly/CtaOnly.d.ts +0 -8
  126. package/dist/slices/CtaOnly/index.d.ts +0 -2
  127. package/dist/slices/CustomerStories/CustomerStories.d.ts +0 -10
  128. package/dist/slices/CustomerStories/index.d.ts +0 -2
  129. package/dist/slices/CustomerStories/messages.de.d.ts +0 -4
  130. package/dist/slices/CustomerStories/messages.en.d.ts +0 -4
  131. package/dist/slices/Facts/Facts.d.ts +0 -16
  132. package/dist/slices/Facts/index.d.ts +0 -2
  133. package/dist/slices/FullWidthHighlightQuote/FullWidthHighlightQuote.d.ts +0 -10
  134. package/dist/slices/FullWidthHighlightQuote/index.d.ts +0 -2
  135. package/dist/slices/FullWidthImage/FullWidthImage.d.ts +0 -11
  136. package/dist/slices/FullWidthImage/index.d.ts +0 -2
  137. package/dist/slices/FullWidthImageSlider/FullWidthImageSlider.d.ts +0 -12
  138. package/dist/slices/FullWidthImageSlider/index.d.ts +0 -2
  139. package/dist/slices/FullWidthImageSlider/styles.d.ts +0 -290
  140. package/dist/slices/FullWidthImageSlider/utils.d.ts +0 -1
  141. package/dist/slices/FullWidthImageSlider/utils.test.d.ts +0 -1
  142. package/dist/slices/Glossary/Glossary.d.ts +0 -9
  143. package/dist/slices/Glossary/index.d.ts +0 -2
  144. package/dist/slices/Glossary/messages.de.d.ts +0 -6
  145. package/dist/slices/Glossary/messages.en.d.ts +0 -6
  146. package/dist/slices/Hero/Hero.d.ts +0 -17
  147. package/dist/slices/Hero/index.d.ts +0 -2
  148. package/dist/slices/IconGrid/IconGrid.d.ts +0 -18
  149. package/dist/slices/IconGrid/index.d.ts +0 -2
  150. package/dist/slices/ImageGrid/ImageGrid.d.ts +0 -18
  151. package/dist/slices/ImageGrid/index.d.ts +0 -2
  152. package/dist/slices/ImageTextSequence/ImageTextSequence.d.ts +0 -19
  153. package/dist/slices/ImageTextSequence/index.d.ts +0 -2
  154. package/dist/slices/LeftTextRightCard/LeftTextRightCard.d.ts +0 -17
  155. package/dist/slices/LeftTextRightCard/index.d.ts +0 -2
  156. package/dist/slices/LinkCardsGrid/LinkCardsGrid.d.ts +0 -18
  157. package/dist/slices/LinkCardsGrid/index.d.ts +0 -2
  158. package/dist/slices/LogoGridWithText/LogoGridWithText.d.ts +0 -12
  159. package/dist/slices/LogoGridWithText/index.d.ts +0 -2
  160. package/dist/slices/MapHero/MapHero.d.ts +0 -15
  161. package/dist/slices/MapHero/index.d.ts +0 -2
  162. package/dist/slices/MapHero/styles.d.ts +0 -16
  163. package/dist/slices/ProjectFacts/ProjectFacts.d.ts +0 -34
  164. package/dist/slices/ProjectFacts/index.d.ts +0 -2
  165. package/dist/slices/ProjectFacts/messages.de.d.ts +0 -5
  166. package/dist/slices/ProjectFacts/messages.en.d.ts +0 -5
  167. package/dist/slices/ProjectsGrid/ProjectsGrid.d.ts +0 -8
  168. package/dist/slices/ProjectsGrid/index.d.ts +0 -2
  169. package/dist/slices/ProjectsMap/MapMarker.d.ts +0 -11
  170. package/dist/slices/ProjectsMap/ProjectsMap.d.ts +0 -16
  171. package/dist/slices/ProjectsMap/index.d.ts +0 -2
  172. package/dist/slices/ProjectsMap/mapboxStyle.d.ts +0 -2
  173. package/dist/slices/ProjectsMap/messages.de.d.ts +0 -4
  174. package/dist/slices/ProjectsMap/messages.en.d.ts +0 -4
  175. package/dist/slices/QAndA/QAndA.d.ts +0 -43
  176. package/dist/slices/QAndA/index.d.ts +0 -2
  177. package/dist/slices/QuoteCards/QuoteCards.d.ts +0 -15
  178. package/dist/slices/QuoteCards/index.d.ts +0 -2
  179. package/dist/slices/RichTextSection/RichTextSection.d.ts +0 -7
  180. package/dist/slices/RichTextSection/index.d.ts +0 -2
  181. package/dist/slices/ShopCheckout/ShopCheckout.d.ts +0 -16
  182. package/dist/slices/ShopCheckout/index.d.ts +0 -2
  183. package/dist/slices/ShopCheckout/messages.de.d.ts +0 -15
  184. package/dist/slices/ShopCheckout/messages.en.d.ts +0 -15
  185. package/dist/slices/SideBySideImages/SideBySideImages.d.ts +0 -12
  186. package/dist/slices/SideBySideImages/index.d.ts +0 -2
  187. package/dist/slices/SmallHero/SmallHero.d.ts +0 -20
  188. package/dist/slices/SmallHero/index.d.ts +0 -2
  189. package/dist/slices/Steps/Steps.d.ts +0 -19
  190. package/dist/slices/Steps/index.d.ts +0 -2
  191. package/dist/slices/TextCardGrid/TextCardGrid.d.ts +0 -20
  192. package/dist/slices/TextCardGrid/index.d.ts +0 -2
  193. package/dist/slices/TextCarousel/TextCarousel.d.ts +0 -13
  194. package/dist/slices/TextCarousel/index.d.ts +0 -2
  195. package/dist/slices/TextCarousel/styles.d.ts +0 -281
  196. package/dist/slices/TextWithCard/TextWithCard.d.ts +0 -20
  197. package/dist/slices/TextWithCard/index.d.ts +0 -2
  198. package/dist/slices/TextWithTextCards/TextWithTextCards.d.ts +0 -15
  199. package/dist/slices/TextWithTextCards/index.d.ts +0 -2
  200. package/dist/slices/Video/Video.d.ts +0 -10
  201. package/dist/slices/Video/index.d.ts +0 -2
  202. package/dist/strapi-slices.cjs.development.js +0 -4653
  203. package/dist/strapi-slices.cjs.development.js.map +0 -1
  204. package/dist/strapi-slices.cjs.production.min.js +0 -2
  205. package/dist/strapi-slices.cjs.production.min.js.map +0 -1
  206. package/dist/strapi-slices.esm.js +0 -4640
  207. package/dist/strapi-slices.esm.js.map +0 -1
  208. package/dist/test/defaultMocks/next.d.ts +0 -2
  209. package/dist/test/integrationMocks/fpmProjectMock.d.ts +0 -3
  210. package/dist/test/mocks/portfolioProjectMock.d.ts +0 -3
  211. package/dist/test/setupTests.d.ts +0 -1
  212. package/dist/test/storybookMocks/storybookMedia.d.ts +0 -1
  213. package/dist/test/storybookMocks/storybookStrapiMedia.d.ts +0 -8
  214. package/dist/test/strapiMocks/minimalGlobalData.d.ts +0 -4
  215. package/dist/test/strapiMocks/strapiAvatarWithName.d.ts +0 -12
  216. package/dist/test/strapiMocks/strapiBlogPost.d.ts +0 -3
  217. package/dist/test/strapiMocks/strapiContact.d.ts +0 -2
  218. package/dist/test/strapiMocks/strapiCustomerStory.d.ts +0 -3
  219. package/dist/test/strapiMocks/strapiHeroCard.d.ts +0 -2
  220. package/dist/test/strapiMocks/strapiLinkPage.d.ts +0 -3
  221. package/dist/test/strapiMocks/strapiMedia.d.ts +0 -3
  222. package/dist/test/strapiMocks/strapiMetadata.d.ts +0 -2
  223. package/dist/test/strapiMocks/strapiPage.d.ts +0 -3
  224. package/dist/test/strapiMocks/strapiPortfolioCard.d.ts +0 -2
  225. package/dist/test/strapiMocks/strapiPortfolioMock.d.ts +0 -3
  226. package/dist/test/strapiMocks/strapiProject.d.ts +0 -3
  227. package/dist/test/strapiMocks/strapiProjectCard.d.ts +0 -2
  228. package/dist/test/strapiMocks/strapiQuoteCard.d.ts +0 -2
  229. package/dist/test/testUtils.d.ts +0 -6
  230. package/dist/unit.messages.de.d.ts +0 -5
  231. package/dist/unit.messages.en.d.ts +0 -5
  232. package/dist/utils/convertAreaM2ToHa.d.ts +0 -2
  233. package/dist/utils/convertAreaM2ToHa.test.d.ts +0 -1
  234. package/dist/utils/convertCo2AmountKgToTons.d.ts +0 -2
  235. package/dist/utils/convertToKebabCase.d.ts +0 -2
  236. package/dist/utils/convertToKebabCase.test.d.ts +0 -1
  237. package/dist/utils/getTimeSpanInYears.d.ts +0 -2
  238. package/dist/utils/getTimeSpanInYears.test.d.ts +0 -1
  239. package/dist/utils/mergeBoundingBoxes.d.ts +0 -3
  240. package/dist/utils/mergeBoundingBoxes.test.d.ts +0 -1
  241. package/dist/utils/mergeDeep.d.ts +0 -12
  242. package/dist/utils/openHubSpotChat.d.ts +0 -2
  243. package/dist/utils/strapiLinkUrl.d.ts +0 -3
  244. package/dist/utils/strapiLinkUrl.test.d.ts +0 -1
  245. package/dist/utils/strapiMediaUrl.d.ts +0 -5
  246. package/dist/utils/strapiMediaUrl.test.d.ts +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"strapi-slices.esm.js","sources":["../src/constants/strapi.ts","../src/utils/strapiMediaUrl.ts","../src/components/FullScreenImage/ZoomableImage.tsx","../src/components/FullScreenImage/FullScreenImage.tsx","../src/constants/breakpoints.ts","../src/slices/FullWidthImage/FullWidthImage.tsx","../src/utils/strapiLinkUrl.ts","../src/utils/openHubSpotChat.ts","../src/components/StrapiLinkButton/StrapiLinkButton.tsx","../src/slices/Hero/Hero.tsx","../src/slices/IconGrid/IconGrid.tsx","../src/icons/LinkedInIcon.tsx","../src/components/StrapiLinkButtonWithIcon/StrapiLinkButtonWithIcon.tsx","../src/slices/ImageGrid/ImageGrid.tsx","../src/constants/api.ts","../src/slices/ImageTextSequence/ImageTextSequence.tsx","../src/slices/LeftTextRightCard/LeftTextRightCard.tsx","../src/slices/LogoGridWithText/LogoGridWithText.tsx","../src/slices/MapHero/styles.ts","../src/slices/MapHero/MapHero.tsx","../src/utils/convertToKebabCase.ts","../src/slices/QAndA/QAndA.tsx","../src/slices/QuoteCards/QuoteCards.tsx","../src/slices/RichTextSection/RichTextSection.tsx","../src/slices/Steps/Steps.tsx","../src/slices/TextCardGrid/TextCardGrid.tsx","../src/slices/TextCarousel/styles.ts","../src/slices/TextCarousel/TextCarousel.tsx","../src/slices/TextWithTextCards/TextWithTextCards.tsx","../src/slices/TextWithCard/TextWithCard.tsx","../src/constants/animations.ts","../src/slices/LinkCardsGrid/LinkCardsGrid.tsx","../src/slices/SmallHero/SmallHero.tsx","../src/slices/Blog/styles.ts","../src/slices/Comparison/messages.de.ts","../src/slices/Cta/messages.de.ts","../src/slices/CustomerStories/messages.de.ts","../src/slices/Glossary/messages.de.ts","../src/slices/ProjectFacts/messages.de.ts","../src/slices/ProjectsMap/messages.de.ts","../src/slices/ShopCheckout/messages.de.ts","../src/components/CreditsAvailableBadge/messages.de.ts","../src/components/portfolio/DocumentsDownloadList/messages.de.ts","../src/components/portfolio/ProjectInfo/messages.de.ts","../src/components/portfolio/SmallCheckout/messages.de.ts","../src/unit.messages.en.ts","../src/rootMessages.de.ts","../src/slices/Comparison/messages.en.ts","../src/slices/Cta/messages.en.ts","../src/slices/CustomerStories/messages.en.ts","../src/slices/Glossary/messages.en.ts","../src/slices/ProjectFacts/messages.en.ts","../src/slices/ProjectsMap/messages.en.ts","../src/slices/ShopCheckout/messages.en.ts","../src/components/CreditsAvailableBadge/messages.en.ts","../src/components/portfolio/DocumentsDownloadList/messages.en.ts","../src/components/portfolio/ProjectInfo/messages.en.ts","../src/components/portfolio/SmallCheckout/messages.en.ts","../src/rootMessages.en.ts","../src/constants/globalStyle.ts","../src/constants/fontCustomizations.ts","../src/components/ContextProvider/ContextProvider.tsx","../src/slices/Blog/Blog.tsx","../src/slices/ProjectsGrid/ProjectsGrid.tsx","../src/constants/mapbox.ts","../src/utils/mergeBoundingBoxes.ts","../src/components/MinimalProviders/MinimalProviders.tsx","../src/models/CreditsAvailableState.ts","../src/components/CreditsAvailableBadge/CreditsAvailableBadge.tsx","../src/slices/ProjectsMap/MapMarker.tsx","../src/slices/ProjectsMap/mapboxStyle.ts","../src/slices/ProjectsMap/ProjectsMap.tsx","../src/slices/Video/Video.tsx","../src/slices/FullWidthHighlightQuote/FullWidthHighlightQuote.tsx","../src/slices/FullWidthImageSlider/styles.ts","../src/slices/FullWidthImageSlider/utils.ts","../src/slices/FullWidthImageSlider/FullWidthImageSlider.tsx","../src/slices/SideBySideImages/SideBySideImages.tsx","../src/slices/Cta/Cta.tsx","../src/slices/CtaOnly/CtaOnly.tsx","../src/slices/Glossary/Glossary.tsx","../src/constants/domain.ts","../src/slices/ShopCheckout/ShopCheckout.tsx","../src/slices/Facts/Facts.tsx","../src/slices/BlogCards/BlogCards.tsx","../src/components/portfolio/SmallCheckout/SmallCheckout.tsx","../src/utils/convertAreaM2ToHa.ts","../src/utils/convertCo2AmountKgToTons.ts","../src/constants/formatter.ts","../src/utils/getTimeSpanInYears.ts","../src/components/portfolio/ProjectInfo/ProjectInfo.tsx","../src/components/portfolio/DocumentsDownloadList/DocumentsDownloadList.tsx","../src/components/portfolio/Contact/Contact.tsx","../src/slices/ProjectFacts/ProjectFacts.tsx","../src/slices/CustomerStories/CustomerStories.tsx","../src/slices/Comparison/Icon.tsx","../src/slices/Comparison/Comparison.tsx","../src/components/SliceRenderer/SliceRenderer.tsx"],"sourcesContent":["export const STRAPI_URI =\n process.env.NEXT_PUBLIC_STRAPI_URI || 'http://127.0.0.1:1337';\n","import { STRAPI_URI } from '../constants/strapi';\nimport IStrapi from '../models/strapi/IStrapi';\nimport IStrapiData from '../models/strapi/IStrapiData';\nimport StrapiMedia from '../models/strapi/StrapiMedia';\n\nconst strapiMediaUrl = (\n media: IStrapi<IStrapiData<StrapiMedia>>,\n preferredSize:\n | 'native'\n | 'thumbnail'\n | 'xSmall'\n | 'small'\n | 'medium'\n | 'large'\n | 'xLarge' = 'native'\n): string => {\n let { url } = media.data.attributes || {};\n if (preferredSize !== 'native' && media.data.attributes.ext !== '.svg') {\n url = media.data.attributes.formats[preferredSize]?.url || url;\n }\n if (url && (url.indexOf('http://') === 0 || url.indexOf('https://') === 0)) {\n return url;\n }\n return `${\n (STRAPI_URI.includes('127.0.0.1') || STRAPI_URI.includes('localhost')) &&\n !process.env.STORYBOOK\n ? STRAPI_URI\n : ''\n }${url}`;\n};\n\nexport default strapiMediaUrl;\n","import StrapiImage from '../../models/strapi/StrapiImage';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport { Box } from 'boemly';\nimport Head from 'next/head';\nimport Image from 'next/image';\nimport React, { useState } from 'react';\n\ninterface ZoomableImageProps {\n image: StrapiImage;\n zoom?: number;\n}\n\nconst ZoomableImage = ({ image, zoom = 200 }: ZoomableImageProps) => {\n // define and set default values to the states of the component\n const [isZoomed, setIsZoomed] = useState(false);\n const [backgroundPos, setBackgroundPos] = useState('50% 50%');\n\n const imageSrc = strapiMediaUrl(image.img, 'xLarge');\n\n const zoomInPosition = (e: React.MouseEvent<HTMLElement, MouseEvent>) => {\n // This will handle the calculations of the area where the image needs to zoom in depending on the user interaction\n const zoomer = e.currentTarget.getBoundingClientRect();\n const x = ((e.clientX - zoomer.x) / zoomer.width) * 100;\n const y = ((e.clientY - zoomer.y) / zoomer.height) * 100;\n setBackgroundPos(`${x}% ${y}%`);\n };\n\n const toggleZoomImage = (e: React.MouseEvent<HTMLElement, MouseEvent>) => {\n if (isZoomed) {\n setIsZoomed(false);\n } else {\n // Zoom in and set the background position correctly\n setIsZoomed(true);\n zoomInPosition(e);\n }\n };\n\n const handleClick = (e: React.MouseEvent<HTMLElement, MouseEvent>) => {\n toggleZoomImage(e);\n };\n\n const handleMove = (e: React.MouseEvent<HTMLElement, MouseEvent>) => {\n if (isZoomed) {\n zoomInPosition(e);\n }\n };\n\n return (\n <>\n <Head>\n <link rel=\"prefetch\" as=\"image\" href={imageSrc} />\n </Head>\n <Box\n position=\"relative\"\n display=\"inline-block\"\n width=\"full\"\n height=\"full\"\n overflow=\"hidden\"\n flexShrink=\"0\"\n scrollSnapAlign=\"center\"\n scrollSnapStop=\"always\"\n draggable=\"false\"\n cursor={isZoomed ? 'zoom-out' : 'zoom-in'}\n backgroundImage={isZoomed ? `url( ${imageSrc} )` : 'none'}\n backgroundSize={`${zoom}%`}\n backgroundPosition={backgroundPos}\n onClick={(e) => handleClick(e)}\n onMouseMove={(e) => handleMove(e)}\n >\n <Image\n src={imageSrc}\n alt={image.alt}\n fill\n style={{\n visibility: isZoomed ? 'hidden' : 'visible',\n objectFit: 'contain',\n }}\n />\n </Box>\n </>\n );\n};\n\nexport default ZoomableImage;\n","import React, { useEffect, useRef, useState } from 'react';\nimport { BoemlyModal, Flex, IconButton } from 'boemly';\nimport { useKey, useLockBodyScroll } from 'react-use';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport { CaretLeft, CaretRight } from '@phosphor-icons/react';\nimport ZoomableImage from './ZoomableImage';\n\nexport interface FullScreenImageProps {\n images: StrapiImage[];\n isOpen: boolean;\n onClose: () => void;\n openIndex?: number;\n}\n\nexport const FullScreenImage = ({\n images,\n isOpen,\n onClose,\n openIndex,\n}: FullScreenImageProps) => {\n const [imageIndex, setImageIndex] = useState(0);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useLockBodyScroll(isOpen);\n\n const canMoveRight = imageIndex < images.length - 1;\n const canMoveLeft = imageIndex !== 0;\n\n const onRight = () => setImageIndex((p) => (canMoveRight ? p + 1 : p));\n const onLeft = () => setImageIndex((p) => (canMoveLeft ? p - 1 : p));\n\n useKey('ArrowRight', onRight, {}, [onRight]);\n useKey('ArrowLeft', onLeft, {}, [onLeft]);\n\n useEffect(() => {\n if (openIndex !== undefined) {\n setImageIndex(openIndex);\n }\n }, [openIndex]);\n\n useEffect(() => {\n if (containerRef.current) {\n containerRef.current.scrollTo({\n left: imageIndex * containerRef.current.clientWidth,\n behavior: 'smooth',\n });\n }\n }, [imageIndex, containerRef]);\n\n const onCloseLocal = () => {\n setImageIndex(0);\n onClose();\n };\n\n return (\n <BoemlyModal\n onClose={onCloseLocal}\n isOpen={isOpen}\n title=\"\"\n trigger=\"\"\n size=\"full\"\n content={\n <Flex\n position=\"absolute\"\n insetY=\"16\"\n insetX=\"0\"\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n <Flex\n ref={containerRef}\n flexGrow=\"1\"\n flexBasis=\"100%\"\n flexShrink=\"1\"\n gap=\"4\"\n marginX=\"24\"\n scrollSnapType=\"x mandatory\"\n overflow=\"hidden\"\n position=\"relative\"\n height=\"full\"\n width=\"full\"\n >\n {images.map((image) => (\n <ZoomableImage key={image.id} image={image} />\n ))}\n </Flex>\n\n <Flex\n position=\"absolute\"\n inset=\"6\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n pointerEvents=\"none\"\n >\n <IconButton\n visibility={canMoveLeft ? 'visible' : 'hidden'}\n onClick={onLeft}\n icon={<CaretLeft size={16} />}\n aria-label=\"Previous picture\"\n variant=\"outline\"\n pointerEvents=\"all\"\n mr=\"6\"\n />\n\n <IconButton\n visibility={canMoveRight ? 'visible' : 'hidden'}\n onClick={onRight}\n icon={<CaretRight size={16} />}\n aria-label=\"Next picture\"\n variant=\"outline\"\n pointerEvents=\"all\"\n ml=\"4\"\n />\n </Flex>\n </Flex>\n }\n />\n );\n};\n","export const BREAKPOINT_SM = '320px';\nexport const BREAKPOINT_MD = '768px';\nexport const BREAKPOINT_LG = '960px';\nexport const BREAKPOINT_XL = '1200px';\n\nexport const BREAKPOINT_SM_QUERY = `(max-width: ${BREAKPOINT_SM})`;\nexport const BREAKPOINT_MD_QUERY = `(max-width: ${BREAKPOINT_MD})`;\nexport const BREAKPOINT_LG_QUERY = `(max-width: ${BREAKPOINT_LG})`;\nexport const BREAKPOINT_XL_QUERY = `(max-width: ${BREAKPOINT_XL})`;\n","import React, { useState } from 'react';\nimport {\n Box,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Wrapper,\n useMediaQuery,\n} from 'boemly';\nimport Image from 'next/image';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport FullScreenImage from '../../components/FullScreenImage';\nimport { BREAKPOINT_MD_QUERY } from '../../constants/breakpoints';\n\ninterface FullWidthImageSlice extends StrapiDefaultHeader {\n image: StrapiImage;\n}\nexport interface FullWidthImageProps {\n slice: FullWidthImageSlice;\n}\n\nexport const FullWidthImage: React.FC<FullWidthImageProps> = ({\n slice,\n}: FullWidthImageProps) => {\n const [isOpen, setIsOpen] = useState(false);\n const [isMobile] = useMediaQuery(BREAKPOINT_MD_QUERY);\n\n return (\n <DefaultSectionContainer title={slice.title}>\n <Wrapper>\n <DefaultSectionHeader\n isHero\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n taglineProps={{ textAlign: 'center', mt: ['32', null, null, '56'] }}\n titleProps={{ textAlign: 'center', maxW: '6xl', marginX: 'auto' }}\n textProps={{ textAlign: 'center', maxW: '3xl', marginX: 'auto' }}\n />\n\n <Box position=\"relative\" mt=\"20\" height={['3xs', null, 'xl']}>\n <Image\n src={strapiMediaUrl(slice.image.img, 'xLarge')}\n alt={slice.image.alt}\n fill\n style={{\n objectFit: slice.image.objectFit || 'cover',\n cursor: isMobile ? 'unset' : 'pointer',\n borderRadius: 'var(--boemly-radii-2xl)',\n }}\n onClick={() => !isMobile && setIsOpen(true)}\n />\n\n <FullScreenImage\n images={[slice.image]}\n isOpen={isOpen}\n onClose={() => setIsOpen(false)}\n />\n </Box>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import StrapiLink from '../models/strapi/StrapiLink';\n\nconst strapiLinkUrl = (\n strapiLink: StrapiLink | undefined = undefined\n): string => {\n if (strapiLink?.page?.data) {\n return `/${strapiLink.page.data.attributes.slug}`;\n }\n\n return strapiLink?.url || '/';\n};\n\nexport default strapiLinkUrl;\n","const openHubSpotChat = () => {\n const w = window as any;\n\n if (w.HubSpotConversations) {\n w.HubSpotConversations.widget.open();\n } else {\n w.hsConversationsOnReady = [\n () => {\n w.HubSpotConversations.widget.open();\n },\n ];\n }\n};\n\nexport default openHubSpotChat;\n","import React from 'react';\nimport { Button } from 'boemly';\nimport Link from 'next/link';\nimport { useDetectAdBlock } from 'adblock-detect-react';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport openHubSpotChat from '../../utils/openHubSpotChat';\n\nexport interface StrapiLinkButtonProps {\n link: StrapiLink;\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n variant?: 'solid' | 'outline' | 'outlineWhite' | 'link' | 'ghost';\n colorScheme?: 'primary' | 'gray' | 'orange' | 'green' | 'white';\n rightIcon?: JSX.Element;\n leftIcon?: JSX.Element;\n mt?: any;\n mr?: any;\n mb?: any;\n ml?: any;\n mx?: any;\n my?: any;\n background?: string;\n}\n\nexport const StrapiLinkButton: React.FC<StrapiLinkButtonProps> = ({\n link,\n ...buttonProps\n}: StrapiLinkButtonProps) => {\n const adBlockDetected = useDetectAdBlock();\n\n if (link.intercomLauncher) {\n if (adBlockDetected) {\n return (\n <Button {...buttonProps} as={Link} href=\"mailto:hello@tree.ly\">\n {link.text}\n </Button>\n );\n }\n\n return (\n <Button {...buttonProps} onClick={openHubSpotChat}>\n {link.text}\n </Button>\n );\n }\n\n return (\n <Button {...buttonProps} as={Link} href={strapiLinkUrl(link)}>\n {link.text}\n </Button>\n );\n};\n","import React from 'react';\nimport { Box, DefaultSectionHeader, Flex, Gradient, Wrapper } from 'boemly';\nimport Image from 'next/image';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport StrapiButtonWithVariant from '../../models/strapi/StrapiButtonWithVariant';\n\nexport interface HeroProps {\n slice: {\n tagline?: string;\n title: string;\n subTitle: string;\n button?: StrapiLink;\n additionalButtons: StrapiButtonWithVariant[];\n image?: StrapiImage;\n textAlign: 'left' | 'center';\n shape?: StrapiImage;\n };\n}\n\nexport const Hero: React.FC<HeroProps> = ({ slice }: HeroProps) => (\n <Box\n position=\"relative\"\n width=\"full\"\n height=\"var(--default-hero-height)\"\n minHeight=\"2xl\"\n backgroundColor=\"gray.900\"\n overflowX=\"hidden\"\n >\n {slice.image && (\n <>\n <Image\n src={strapiMediaUrl(slice.image.img, 'xLarge')}\n alt={slice.image.alt}\n fill\n style={{ objectFit: slice.image.objectFit || 'cover' }}\n />\n <Gradient />\n </>\n )}\n {slice.shape && (\n <Box\n position=\"absolute\"\n bottom=\"0\"\n borderTopRightRadius=\"full\"\n width={['3xs', null, '2xs', null, 'sm']}\n height={['3xs', null, '2xs', null, 'sm']}\n right={['-16', null, '24']}\n >\n <Image\n src={strapiMediaUrl(slice.shape.img, 'medium')}\n alt={slice.shape.alt}\n fill\n style={{\n objectFit: slice.shape.objectFit || 'cover',\n borderTopRightRadius: 'var(--boemly-radii-full)',\n }}\n />\n </Box>\n )}\n <Box\n position=\"absolute\"\n left=\"0\"\n top=\"56%\"\n width=\"full\"\n textAlign={slice.textAlign}\n transform=\"translateY(-50%)\"\n >\n <Wrapper>\n <>\n <DefaultSectionHeader\n isHero\n tagline={slice.tagline}\n title={slice.title}\n text={slice.subTitle}\n taglineProps={{ color: 'white' }}\n titleProps={{\n color: 'white',\n maxW: slice.textAlign === 'center' ? '4xl' : '3xl',\n mx: slice.textAlign === 'center' ? 'auto' : 'unset',\n textAlign: slice.textAlign,\n }}\n textProps={{\n maxW: '2xl',\n mx: slice.textAlign === 'center' ? 'auto' : 'unset',\n textAlign: slice.textAlign,\n color: 'white',\n }}\n />\n\n <Flex\n gap=\"8\"\n justifyContent={slice.textAlign === 'center' ? 'center' : 'start'}\n >\n {slice.button && (\n <StrapiLinkButton\n key={slice.button.id}\n mt=\"10\"\n size=\"xl\"\n link={slice.button}\n />\n )}\n {slice.additionalButtons.map((button) => (\n <StrapiLinkButton\n key={button.button.id}\n mt=\"10\"\n size=\"xl\"\n variant={button.variant}\n link={button.button}\n />\n ))}\n </Flex>\n </>\n </Wrapper>\n </Box>\n </Box>\n);\n","import React from 'react';\nimport {\n Box,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Flex,\n Heading,\n SimpleGrid,\n Spacer,\n Text,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\n\nexport interface IconGridProps {\n slice: {\n tagline?: string;\n title?: string;\n subTitle?: string;\n iconsWithTextAndButton: {\n id: number;\n title: string;\n text: string;\n icon: StrapiImage;\n button?: StrapiLink;\n }[];\n };\n}\n\nexport const IconGrid: React.FC<IconGridProps> = ({ slice }: IconGridProps) => (\n <DefaultSectionContainer>\n <Wrapper>\n {slice.title ? (\n <>\n <Flex alignItems=\"center\" flexDirection=\"column\">\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.subTitle}\n taglineProps={{ maxW: '2xl', textAlign: 'center' }}\n titleProps={{ maxW: '3xl', textAlign: 'center' }}\n textProps={{ maxW: '3xl', textAlign: 'center' }}\n />\n </Flex>\n <Spacer h=\"20\" />\n </>\n ) : (\n <></>\n )}\n\n <SimpleGrid\n columns={[1, null, null, 2]}\n gap=\"32\"\n rowGap={['16', null, null, '28']}\n >\n {slice.iconsWithTextAndButton.map((iconWithTextAndButton) => (\n <Box key={iconWithTextAndButton.id}>\n <Box\n margin=\"0 auto\"\n backgroundColor=\"primary.50\"\n borderRadius=\"full\"\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"space-around\"\n width=\"6.5rem\"\n height=\"6.5rem\"\n >\n <Box position=\"absolute\" width=\"12\" height=\"12\">\n <Image\n src={strapiMediaUrl(iconWithTextAndButton.icon.img, 'xSmall')}\n alt={iconWithTextAndButton.icon.alt}\n fill\n style={{\n objectFit:\n iconWithTextAndButton.icon.objectFit || 'contain',\n }}\n />\n </Box>\n </Box>\n <Heading size=\"xl\" textAlign=\"center\" mb=\"4\" mt=\"8\">\n {iconWithTextAndButton.title}\n </Heading>\n <Text size=\"mdRegularNormal\" textAlign=\"center\">\n {iconWithTextAndButton.text}\n </Text>\n {iconWithTextAndButton.button && (\n <Box textAlign=\"center\">\n <StrapiLinkButton\n key={iconWithTextAndButton.button.id}\n mt=\"8\"\n size=\"md\"\n variant=\"outline\"\n link={iconWithTextAndButton.button}\n />\n </Box>\n )}\n </Box>\n ))}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n);\n","import React from 'react';\n\nconst LinkedInIcon = () => (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_112_606)\">\n <path\n d=\"M11.9286 11.9285H9.85424V8.67998C9.85424 7.90534 9.84042 6.90813 8.77539 6.90813C7.695 6.90813 7.52969 7.75213 7.52969 8.62357V11.9283H5.45533V5.24799H7.44671V6.16093H7.47459C7.67388 5.82018 7.96186 5.53986 8.30786 5.34984C8.65386 5.15981 9.04493 5.06719 9.4394 5.08183C11.5418 5.08183 11.9295 6.46473 11.9295 8.2638L11.9286 11.9285ZM3.11477 4.33484C2.87669 4.33489 2.64393 4.26433 2.44595 4.13209C2.24796 3.99985 2.09365 3.81188 2.0025 3.59193C1.91135 3.37199 1.88746 3.12995 1.93387 2.89644C1.98027 2.66292 2.09488 2.44841 2.26321 2.28003C2.43153 2.11164 2.646 1.99696 2.8795 1.95047C3.11301 1.90398 3.35504 1.92778 3.57502 2.01884C3.795 2.10992 3.98303 2.26417 4.11533 2.46211C4.24764 2.66004 4.31829 2.89277 4.31833 3.13085C4.31836 3.28894 4.28725 3.44547 4.22678 3.59153C4.1663 3.7376 4.07767 3.87031 3.96591 3.98211C3.85415 4.09392 3.72146 4.18261 3.57541 4.24313C3.42937 4.30365 3.27286 4.33481 3.11477 4.33484ZM4.15194 11.9285H2.07544V5.24799H4.15194V11.9285ZM12.9628 0.000953808H1.03307C0.762304 -0.00210183 0.501383 0.102466 0.307673 0.291681C0.113961 0.480895 0.00330461 0.739273 0 1.01004V12.9892C0.00319151 13.2602 0.113783 13.5187 0.307487 13.7081C0.501192 13.8975 0.762169 14.0023 1.03307 13.9994H12.9628C13.2342 14.0028 13.496 13.8983 13.6904 13.7089C13.8848 13.5195 13.9962 13.2607 14 12.9892V1.00918C13.9961 0.737873 13.8846 0.479199 13.6902 0.28999C13.4958 0.10078 13.2341 -0.00348904 12.9628 8.91429e-05\"\n fill=\"#0A66C2\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_112_606\">\n <rect width=\"14\" height=\"14\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);\n\nexport default LinkedInIcon;\n","import React from 'react';\nimport { CaretRight, Globe } from '@phosphor-icons/react';\nimport LinkedInIcon from '../../icons/LinkedInIcon';\nimport StrapiLinkWithIcon from '../../models/strapi/StrapiLinkWithIcon';\nimport StrapiLinkButton from '../StrapiLinkButton';\nimport { StrapiLinkButtonProps } from '../StrapiLinkButton/StrapiLinkButton';\n\nexport interface StrapiLinkButtonWithIconProps\n extends Omit<StrapiLinkButtonProps, 'link'> {\n link: StrapiLinkWithIcon;\n}\n\nexport const StrapiLinkButtonWithIcon: React.FC<\n StrapiLinkButtonWithIconProps\n> = ({ link, ...props }: StrapiLinkButtonWithIconProps) => {\n const getLinkIcon = (destination: string) => {\n switch (destination) {\n case 'linkedin': {\n return <LinkedInIcon />;\n }\n case 'web': {\n return <Globe />;\n }\n default: {\n return <CaretRight />;\n }\n }\n };\n\n return (\n <StrapiLinkButton\n {...props}\n link={link.link}\n rightIcon={getLinkIcon(link.destination)}\n />\n );\n};\n","import React from 'react';\nimport {\n Box,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Flex,\n Heading,\n SimpleGrid,\n Text,\n useToken,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport StrapiLinkButtonWithIcon from '../../components/StrapiLinkButtonWithIcon';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport StrapiLinkWithIcon from '../../models/strapi/StrapiLinkWithIcon';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\n\ninterface ImageGridSlice extends StrapiDefaultHeader {\n images: {\n id: number;\n title: string;\n subTitle?: string;\n image: StrapiImage;\n links: StrapiLinkWithIcon[];\n }[];\n}\nexport interface ImageGridProps {\n slice: ImageGridSlice;\n}\n\nexport const ImageGrid: React.FC<ImageGridProps> = ({\n slice,\n}: ImageGridProps) => {\n const [primary50] = useToken('colors', ['primary.50']);\n\n return (\n <DefaultSectionContainer backgroundColor={primary50} title={slice.title}>\n <Wrapper>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n taglineProps={{ textAlign: 'center' }}\n titleProps={{ textAlign: 'center', maxW: '6xl', marginX: 'auto' }}\n textProps={{ textAlign: 'center', maxW: '2xl', marginX: 'auto' }}\n />\n\n <SimpleGrid\n mt=\"24\"\n columns={3}\n gap=\"24\"\n rowGap=\"16\"\n minChildWidth=\"16rem\"\n >\n {slice.images.map(({ id, title, subTitle, image, links }) => (\n <Box key={id}>\n <Box position=\"relative\" height=\"sm\" borderRadius=\"xl\">\n <Image\n src={strapiMediaUrl(image.img, 'medium')}\n alt={image.alt}\n fill\n style={{\n objectFit: image.objectFit || 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n <Heading size=\"xl\" mt=\"4\">\n {title}\n </Heading>\n {subTitle && <Text size=\"mdRegularNormal\">{subTitle}</Text>}\n {links && links.length > 0 && (\n <Flex mt=\"3\" flexDir=\"row\" gap=\"2\" flexWrap=\"wrap\">\n {links.map((link) => (\n <StrapiLinkButtonWithIcon\n key={link.id}\n link={link}\n size=\"sm\"\n variant=\"outline\"\n />\n ))}\n </Flex>\n )}\n </Box>\n ))}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","export const API_URI =\n process.env.NEXT_PUBLIC_API_URI || 'http://localhost:4001';\nexport const FPM_API_URI =\n process.env.NEXT_PUBLIC_FPM_API_URI || 'https://api.fpm.t-staging.com';\nexport const CDN_URI = 'https://cdn.tree.ly';\n","import React, { Fragment } from 'react';\nimport {\n Box,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Heading,\n SimpleGrid,\n Text,\n useMediaQuery,\n useToken,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport { CaretRight } from '@phosphor-icons/react';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport { BREAKPOINT_LG_QUERY } from '../../constants/breakpoints';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport { CDN_URI } from '../../constants/api';\n\ninterface ImageTextSequenceSlice extends StrapiDefaultHeader {\n imageTextRows: {\n id: number;\n title: string;\n text: string;\n button?: StrapiLink;\n image: StrapiImage;\n }[];\n background?: boolean;\n}\nexport interface ImageTextSequenceProps {\n slice: ImageTextSequenceSlice;\n}\n\nexport const ImageTextSequence: React.FC<ImageTextSequenceProps> = ({\n slice,\n}: ImageTextSequenceProps) => {\n const [oneColumnGrid] = useMediaQuery(BREAKPOINT_LG_QUERY);\n const [primary50] = useToken('colors', ['primary.50']);\n const [gray700] = useToken('colors', ['gray.700']);\n\n return (\n <DefaultSectionContainer backgroundColor={primary50} title={slice.title}>\n {slice.background ? (\n <>\n <Box\n position=\"absolute\"\n top=\"0\"\n right=\"24\"\n display={['none', null, null, 'unset']}\n >\n <Image\n src={`${CDN_URI}/assets/v3/strapi-slices/desktop-map-border.svg`}\n alt=\"Map\"\n width=\"786\"\n height=\"897\"\n />\n </Box>\n <Box\n position=\"absolute\"\n top=\"64\"\n right=\"-14\"\n display={['unset', null, null, 'none']}\n >\n <Image\n src={`${CDN_URI}/assets/v3/strapi-slices/mobile-map-border.svg`}\n alt=\"Map\"\n width=\"227\"\n height=\"452\"\n />\n </Box>\n </>\n ) : (\n <></>\n )}\n <Wrapper>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n taglineProps={{ textAlign: ['left', null, null, null, 'center'] }}\n titleProps={{\n maxW: '6xl',\n marginX: ['0', null, null, null, 'auto'],\n textAlign: ['left', null, null, null, 'center'],\n }}\n textProps={{\n maxW: '2xl',\n marginX: ['0', null, null, null, 'auto'],\n textAlign: ['left', null, null, null, 'center'],\n color: 'black',\n }}\n />\n\n <SimpleGrid\n gap=\"16\"\n mt={['28', null, null, null, '40']}\n columns={[1, null, null, null, 2]}\n >\n {slice.imageTextRows.map(\n ({ id, title, text, button, image }, index) => {\n const imageBox = (\n <Box>\n <Box\n position=\"relative\"\n width=\"full\"\n minHeight={['2xs', null, null, 'sm']}\n >\n <Image\n src={strapiMediaUrl(image.img, 'large')}\n alt={image.alt}\n fill\n style={{ objectFit: image.objectFit || 'contain' }}\n />\n </Box>\n </Box>\n );\n return (\n <Fragment key={id}>\n {(oneColumnGrid || index % 2 !== 0) && imageBox}\n <Box\n display=\"flex\"\n alignItems=\"flex-start\"\n flexDirection=\"column\"\n justifyContent=\"center\"\n >\n <Heading as=\"h2\" size=\"xl\" mb=\"4\">\n {title}\n </Heading>\n <Text size=\"mdRegularNormal\">{text}</Text>\n {button && (\n <StrapiLinkButton\n mt=\"5\"\n link={button}\n size=\"sm\"\n variant=\"outline\"\n rightIcon={<CaretRight size=\"10\" color={gray700} />}\n />\n )}\n </Box>\n {!oneColumnGrid && index % 2 === 0 && imageBox}\n </Fragment>\n );\n }\n )}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport {\n DefaultSectionContainer,\n DefaultSectionHeader,\n Grid,\n GridItem,\n PortfolioCard,\n Spacer,\n BoemlyList,\n Wrapper,\n} from 'boemly';\nimport { ArrowRight } from '@phosphor-icons/react';\nimport Image from 'next/image';\nimport { useRouter } from 'next/router';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiPortfolioCard from '../../models/strapi/StrapiPortfolioCard';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\n\ninterface LeftTextRightCardSlice extends StrapiDefaultHeader {\n checkMarkLabels?: {\n id: number;\n text: string;\n }[];\n button?: StrapiLink;\n card?: StrapiPortfolioCard;\n}\nexport interface LeftTextRightCardProps {\n slice: LeftTextRightCardSlice;\n}\n\nexport const LeftTextRightCard: React.FC<LeftTextRightCardProps> = ({\n slice,\n}: LeftTextRightCardProps) => {\n const { push } = useRouter();\n\n return (\n <DefaultSectionContainer title={slice.title}>\n <Wrapper>\n <Grid\n templateColumns={[\n 'repeat(8, 1fr)',\n null,\n null,\n null,\n 'repeat(12, 1fr)',\n ]}\n templateRows={['repeat(2, 1fr)', null, null, null, 'repeat(1, 1fr)']}\n rowGap=\"12\"\n >\n <GridItem colSpan={8} rowSpan={1} pr={['0', null, null, null, '28']}>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n />\n\n {slice.checkMarkLabels && (\n <>\n <Spacer height=\"10\" />\n <BoemlyList listItems={slice.checkMarkLabels} />\n <Spacer height=\"10\" />\n </>\n )}\n\n {slice.button && (\n <StrapiLinkButton\n link={slice.button}\n size=\"md\"\n colorScheme=\"white\"\n variant=\"outline\"\n rightIcon={<ArrowRight />}\n />\n )}\n </GridItem>\n <GridItem\n colSpan={[8, null, null, null, 4]}\n rowSpan={1}\n position=\"relative\"\n >\n {slice.card && (\n <PortfolioCard\n title={slice.card.title}\n button={\n slice.card.button && {\n text: slice.card.button.text,\n onClick: () => push(strapiLinkUrl(slice.card?.button)),\n }\n }\n facts={slice.card.facts}\n image={\n <Image\n src={strapiMediaUrl(slice.card.image.img, 'medium')}\n alt={slice.card.image.alt}\n fill\n style={{ objectFit: slice.card.image.objectFit || 'cover' }}\n />\n }\n portfolioNumber={slice.card.portfolioNumber}\n />\n )}\n </GridItem>\n </Grid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport {\n Box,\n DefaultSectionContainer,\n Flex,\n Heading,\n RichText,\n SimpleGrid,\n useToken,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport { ArrowRight } from '@phosphor-icons/react';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiImageWithLink from '../../models/strapi/StrapiImageWithLink';\nimport StrapiLink from '../../models/strapi/StrapiLink';\n\nexport interface LogoGridWithTextProps {\n slice: {\n title: string;\n text: string;\n button?: StrapiLink;\n logos: StrapiImageWithLink[];\n };\n}\n\nexport const LogoGridWithText: React.FC<LogoGridWithTextProps> = ({\n slice,\n}: LogoGridWithTextProps) => {\n const [primary50] = useToken('colors', ['primary.50']);\n\n return (\n <DefaultSectionContainer backgroundColor={primary50} title={slice.title}>\n <Wrapper>\n <SimpleGrid columns={2} gap=\"28\" minChildWidth=\"16rem\">\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n justifyContent=\"center\"\n alignItems=\"flex-start\"\n >\n <Heading as=\"h2\" size=\"3xl\" mb=\"4\">\n {slice.title}\n </Heading>\n <RichText content={slice.text} />\n {slice.button && (\n <StrapiLinkButton\n link={slice.button}\n size=\"md\"\n colorScheme=\"white\"\n variant=\"outline\"\n mt=\"6\"\n rightIcon={<ArrowRight />}\n />\n )}\n </Box>\n <Flex flexDir=\"row\" flexWrap=\"wrap\" gap={['12', null, null, '28']}>\n {slice.logos.map((logo) => (\n <Flex\n key={logo.id}\n justifyContent=\"center\"\n alignItems=\"center\"\n flexGrow={1}\n flexShrink={0}\n flexBasis={slice.logos.length > 2 ? '34%' : '90%'} // 34% are just enough to not allow three in one row\n >\n <Box position=\"relative\" height=\"20\" width=\"100%\">\n {logo.link ? (\n <a href={strapiLinkUrl(logo.link)}>\n <Image\n src={strapiMediaUrl(logo.img, 'small')}\n alt={logo.alt}\n fill\n style={{ objectFit: logo.objectFit || 'contain' }}\n />\n </a>\n ) : (\n <Image\n src={strapiMediaUrl(logo.img, 'small')}\n alt={logo.alt}\n fill\n style={{ objectFit: logo.objectFit || 'contain' }}\n />\n )}\n </Box>\n </Flex>\n ))}\n </Flex>\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import styled from '@emotion/styled';\nimport { BREAKPOINT_LG } from '../../constants/breakpoints';\nimport { Box } from 'boemly';\n\nexport const MapHeroContainer = styled(Box)`\n position: relative;\n width: 100vw;\n height: var(--default-hero-height);\n min-height: var(--boemly-sizes-3xl);\n background-color: var(--boemly-colors-primary-50);\n overflow: hidden;\n z-index: var(--boemly-zIndices-base);\n\n @media screen and (max-width: ${BREAKPOINT_LG}) {\n height: auto;\n }\n`;\n\nexport const MapHeroTextContainer = styled(Box)`\n position: absolute;\n width: 100vw;\n top: 56%;\n left: 0;\n transform: translateY(-50%);\n z-index: var(--boemly-zIndices-aboveBase);\n\n @media screen and (max-width: ${BREAKPOINT_LG}) {\n position: relative;\n transform: unset;\n\n padding-top: var(--boemly-space-32);\n }\n`;\n\nexport const ShapeContainer = styled(Box)`\n position: absolute;\n bottom: calc(var(--boemly-space-8) * -1);\n left: 0;\n\n width: var(--boemly-sizes-sm);\n height: var(--boemly-sizes-sm);\n\n border-top-right-radius: var(--boemly-radii-full);\n\n & span,\n div {\n border-top-right-radius: var(--boemly-radii-full);\n }\n\n @media screen and (max-width: ${BREAKPOINT_LG}) {\n display: none;\n }\n`;\n\nexport const MapContainer = styled(Box)`\n position: absolute;\n\n width: 50%;\n height: 100%;\n\n right: 0;\n top: 0;\n\n & img {\n object-fit: cover !important;\n }\n\n @media screen and (max-width: ${BREAKPOINT_LG}) {\n width: 100%;\n height: var(--boemly-sizes-4xl);\n position: relative;\n margin-top: calc(var(--boemly-space-72) * -1);\n background-color: var(--boemly-colors-white);\n\n & img {\n object-fit: contain !important;\n }\n }\n`;\n\nexport const MapGradient = styled(Box)`\n position: absolute;\n top: 0;\n right: 0;\n width: 100%;\n height: 100%;\n\n background: linear-gradient(\n 90deg,\n var(--boemly-colors-primary-50) 0%,\n var(--boemly-colors-primary-50) 10%,\n rgba(243, 246, 245, 0.6) 28%,\n rgba(243, 246, 245, 0) 40%,\n rgba(243, 246, 245, 0) 100%\n );\n\n @media screen and (max-width: ${BREAKPOINT_LG}) {\n background: linear-gradient(\n 180deg,\n var(--boemly-colors-primary-50) 0%,\n var(--boemly-colors-primary-50) 36%,\n rgba(243, 246, 245, 0.12) 46%,\n rgba(243, 246, 245, 0) 100%\n );\n }\n`;\n","import React from 'react';\nimport { DefaultSectionHeader, Flex, useMediaQuery, Wrapper } from 'boemly';\nimport Image from 'next/image';\nimport { BREAKPOINT_LG_QUERY } from '../../constants/breakpoints';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport {\n MapHeroContainer,\n MapHeroTextContainer,\n ShapeContainer,\n MapContainer,\n MapGradient,\n} from './styles';\n\nexport interface MapHeroProps {\n slice: {\n tagline?: string;\n title: string;\n subTitle?: string;\n buttons?: StrapiLink[];\n shape?: StrapiImage;\n map: StrapiImage;\n mobileMap: StrapiImage;\n };\n}\n\nexport const MapHero: React.FC<MapHeroProps> = ({ slice }: MapHeroProps) => {\n const [belowBreakpoint] = useMediaQuery(BREAKPOINT_LG_QUERY);\n\n return (\n <MapHeroContainer>\n {slice.shape && (\n <ShapeContainer>\n <Image\n src={strapiMediaUrl(slice.shape.img, 'medium')}\n alt={slice.shape.alt}\n fill\n style={{ objectFit: slice.shape.objectFit || 'cover' }}\n />\n </ShapeContainer>\n )}\n <MapHeroTextContainer>\n <Wrapper>\n <>\n <DefaultSectionHeader\n isHero\n tagline={slice.tagline}\n title={slice.title}\n text={slice.subTitle}\n titleProps={{ maxW: ['100%', null, null, null, '60%'] }}\n textProps={{ maxW: ['100%', null, null, null, '55%'] }}\n />\n {slice.buttons && slice.buttons.length > 0 && (\n <Flex mt=\"10\" flexDir=\"row\" gap=\"5\">\n <StrapiLinkButton link={slice.buttons[0]} size=\"xl\" />\n {slice.buttons.length === 2 && (\n <StrapiLinkButton\n link={slice.buttons[1]}\n variant=\"outline\"\n size=\"xl\"\n />\n )}\n </Flex>\n )}\n </>\n </Wrapper>\n </MapHeroTextContainer>\n <MapContainer>\n {belowBreakpoint ? (\n <Image\n src={strapiMediaUrl(slice.mobileMap.img, 'xLarge')}\n alt={slice.mobileMap.alt}\n fill\n style={{ objectFit: slice.mobileMap.objectFit || 'contain' }}\n />\n ) : (\n <Image\n src={strapiMediaUrl(slice.map.img, 'xLarge')}\n alt={slice.map.alt}\n fill\n style={{ objectFit: slice.map.objectFit || 'cover' }}\n />\n )}\n <MapGradient />\n </MapContainer>\n </MapHeroContainer>\n );\n};\n","const convertToKebabCase = (str: string) => {\n const matches =\n str &&\n str.match(\n /[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g\n );\n return matches ? matches.map((x: string) => x.toLowerCase()).join('-') : '';\n};\n\nexport default convertToKebabCase;\n","import React from 'react';\nimport {\n Box,\n Heading,\n HeroCard,\n SimpleGrid,\n Text,\n BoemlyAccordion,\n Wrapper,\n Flex,\n Spacer,\n} from 'boemly';\nimport { ArrowRight } from '@phosphor-icons/react';\nimport { useRouter } from 'next/router';\nimport Image from 'next/image';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport StrapiHeroCard from '../../models/strapi/StrapiHeroCard';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport convertToKebabCase from '../../utils/convertToKebabCase';\n\nconst VARIANTS = {\n gray: {\n backgroundColor: 'primary.50',\n tagLineColor: 'primary.500',\n textColor: 'black',\n accordionVariant: 'black',\n otherQuestionsBackground: 'primary.700',\n },\n green: {\n backgroundColor: 'primary.800',\n tagLineColor: 'white',\n textColor: 'white',\n accordionVariant: 'white',\n otherQuestionsBackground: 'primary.900',\n },\n white: {\n backgroundColor: 'white',\n tagLineColor: 'primary.500',\n textColor: 'black',\n accordionVariant: 'black',\n otherQuestionsBackground: 'primary.700',\n },\n};\n\nexport interface QAndAProps {\n slice: {\n tagline: string;\n title: string;\n questionsAndAnswers: {\n id: number;\n key: string;\n value: string;\n }[];\n otherQuestions: string;\n button: StrapiLink;\n hero?: StrapiHeroCard;\n variant?: keyof typeof VARIANTS;\n };\n}\n\nexport const QAndA: React.FC<QAndAProps> = ({ slice }: QAndAProps) => {\n const { push } = useRouter();\n\n const variant = VARIANTS[slice.variant ?? 'green'];\n\n return (\n <>\n <Box\n pb={slice.hero ? 80 : 28}\n id={convertToKebabCase(slice.title)}\n backgroundColor={variant.backgroundColor}\n >\n <Wrapper>\n <SimpleGrid columns={[1, null, null, 2]}>\n <Box mr=\"16\" paddingY=\"28\">\n <Text size=\"mdMonoUppercase\" color={variant.tagLineColor}>\n {slice.tagline}\n </Text>\n <Heading\n as=\"h2\"\n size=\"3xl\"\n color={variant.textColor}\n mt=\"6\"\n mb=\"16\"\n >\n {slice.title}\n </Heading>\n </Box>\n <Box\n maxHeight={['unset', null, null, 'xl']}\n paddingTop={['0', null, null, '28']}\n paddingRight={['0', null, null, '6']}\n overflowY={['unset', null, null, 'scroll']}\n >\n <Box>\n <BoemlyAccordion\n rows={slice.questionsAndAnswers}\n defaultIndex={0}\n variant={variant.accordionVariant as 'white' | 'black'}\n />\n <Flex\n padding=\"8\"\n backgroundColor={variant.otherQuestionsBackground}\n borderRadius=\"2xl\"\n mt=\"14\"\n flexDir={['column', null, null, 'row']}\n justifyContent={['flex-start', null, null, 'space-between']}\n alignItems={['flex-start', null, null, 'center']}\n >\n <Heading as=\"h6\" size=\"sm\" color=\"white\">\n {slice.otherQuestions}\n </Heading>\n <Spacer minHeight={['4', null, null, '0']} />\n <StrapiLinkButton\n size=\"lg\"\n colorScheme=\"white\"\n background=\"white\"\n rightIcon={<ArrowRight />}\n link={slice.button}\n />\n </Flex>\n </Box>\n </Box>\n </SimpleGrid>\n </Wrapper>\n </Box>\n\n {slice.hero && (\n <Box pb=\"28\" mt=\"-56\">\n <Wrapper>\n <HeroCard\n title={slice.hero.title}\n subTitle={slice.hero.subTitle}\n link={\n slice.hero.button && {\n text: slice.hero.button.text,\n onClick: () => push(strapiLinkUrl(slice.hero?.button)),\n }\n }\n image={\n slice.hero.image && (\n <Image\n src={strapiMediaUrl(slice.hero.image.img, 'xLarge')}\n alt={slice.hero.image.alt}\n fill\n style={{ objectFit: slice.hero.image.objectFit || 'cover' }}\n />\n )\n }\n />\n </Wrapper>\n </Box>\n )}\n </>\n );\n};\n","import React from 'react';\nimport Image from 'next/image';\nimport {\n Box,\n DefaultSectionHeader,\n HeroCard,\n QuoteCard,\n Shape,\n SimpleGrid,\n Wrapper,\n} from 'boemly';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiQuoteCard from '../../models/strapi/StrapiQuoteCard';\nimport StrapiHeroCard from '../../models/strapi/StrapiHeroCard';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport convertToKebabCase from '../../utils/convertToKebabCase';\n\ninterface QuoteCardsSlice extends StrapiDefaultHeader {\n cards: StrapiQuoteCard[];\n shapes?: StrapiImage[];\n hero?: StrapiHeroCard;\n}\nexport interface QuoteCardsProps {\n slice: QuoteCardsSlice;\n}\n\nexport const QuoteCards: React.FC<QuoteCardsProps> = ({\n slice,\n}: QuoteCardsProps) => (\n <>\n <Box\n id={convertToKebabCase(slice.title)}\n position=\"relative\"\n paddingTop=\"28\"\n paddingBottom={!!slice.hero ? '80' : '28'}\n >\n {slice.shapes && slice.shapes.length === 2 && (\n <>\n <Shape\n shape={\n <Image\n src={strapiMediaUrl(slice.shapes[0].img, 'small')}\n alt={slice.shapes[0].alt}\n fill\n style={{ objectFit: slice.shapes[0].objectFit || 'cover' }}\n />\n }\n top=\"0\"\n right=\"0\"\n size=\"xs\"\n radius=\"bottom-left\"\n />\n <Shape\n shape={\n <Image\n src={strapiMediaUrl(slice.shapes[1].img, 'small')}\n alt={slice.shapes[1].alt}\n fill\n style={{ objectFit: slice.shapes[1].objectFit || 'cover' }}\n />\n }\n bottom=\"0\"\n left=\"0\"\n radius=\"top-right\"\n />\n </>\n )}\n <Wrapper>\n <Box maxW=\"3xl\">\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n />\n </Box>\n <SimpleGrid\n columns={2}\n gap=\"20\"\n rowGap=\"6\"\n mt=\"16\"\n minChildWidth={['100%', null, '16rem']}\n >\n {slice.cards.map((card) => (\n <Box key={card.id} width=\"full\" maxWidth=\"2xl\">\n <QuoteCard\n key={card.id}\n avatar={{\n name: card.avatar.name,\n description: card.avatar.description,\n image: (\n <Image\n src={strapiMediaUrl(card.avatar.image.img, 'small')}\n alt={card.avatar.image.alt}\n fill\n style={{\n objectFit: card.avatar.image.objectFit || 'cover',\n }}\n />\n ),\n }}\n text={card.text}\n />\n </Box>\n ))}\n </SimpleGrid>\n </Wrapper>\n </Box>\n {slice.hero && (\n <Box marginTop=\"-40\" paddingBottom=\"28\">\n <Wrapper>\n <HeroCard\n title={slice.hero.title}\n subTitle={slice.hero.subTitle}\n link={\n slice.hero.button && {\n text: slice.hero.button.text,\n onClick: () => strapiLinkUrl(slice.hero?.button),\n }\n }\n image={\n slice.hero.image && (\n <Image\n src={strapiMediaUrl(slice.hero.image.img, 'xLarge')}\n alt={slice.hero.image.alt}\n fill\n style={{ objectFit: slice.hero.image.objectFit || 'cover' }}\n />\n )\n }\n />\n </Wrapper>\n </Box>\n )}\n </>\n);\n","import React from 'react';\nimport {\n DefaultSectionContainer,\n Grid,\n GridItem,\n RichText,\n Wrapper,\n} from 'boemly';\n\nexport interface RichTextSectionProps {\n slice: {\n content: string;\n };\n}\n\nexport const RichTextSection: React.FC<RichTextSectionProps> = ({\n slice,\n}: RichTextSectionProps) => (\n <DefaultSectionContainer>\n <Wrapper>\n <Grid templateColumns=\"repeat(12, 1fr)\" gap=\"4\">\n <GridItem colSpan={[12, null, null, 7]}>\n <RichText content={slice.content} />\n </GridItem>\n </Grid>\n </Wrapper>\n </DefaultSectionContainer>\n);\n","import React, { createRef, useEffect, useRef, useState } from 'react';\nimport {\n Box,\n Center,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Flex,\n Gradient,\n Heading,\n RichText,\n ShapesCard,\n Text,\n useToken,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport { useWindowScroll, useWindowSize } from 'react-use';\nimport { useRouter } from 'next/router';\nimport StrapiShapesCard from '../../models/strapi/StrapiShapesCard';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport StrapiImage from '../../models/strapi/StrapiImage';\n\ninterface StepsSlice extends StrapiDefaultHeader {\n steps: {\n id: number;\n step: number;\n title: string;\n text?: string;\n }[];\n image?: StrapiImage;\n card?: StrapiShapesCard;\n}\nexport interface StepsProps {\n slice: StepsSlice;\n}\n\nexport const Steps: React.FC<StepsProps> = ({ slice }: StepsProps) => {\n const { push } = useRouter();\n const [gray900] = useToken('colors', ['gray.900']);\n\n const containerRef = useRef<HTMLDivElement>(null);\n\n const [stepRefs, setStepRefs] = useState(new Array(slice.steps.length));\n const [stepProgress, setStepProgress] = useState(\n new Array(slice.steps.length)\n );\n\n const { y: offsetY } = useWindowScroll();\n const { height: windowHeight } = useWindowSize();\n\n useEffect(() => {\n setStepRefs(slice.steps.map(() => createRef()));\n }, []);\n\n useEffect(() => {\n const containerOffsetTop = containerRef.current?.offsetTop || 0;\n setStepProgress(\n stepRefs.map((ref) => {\n const currentItemOffsetTop = ref.current?.offsetTop || 0;\n return containerOffsetTop + currentItemOffsetTop <\n offsetY + windowHeight / 3\n ? 100\n : 0;\n })\n );\n }, [offsetY]);\n\n return (\n <div ref={containerRef}>\n <DefaultSectionContainer backgroundColor={gray900} title={slice.title}>\n <>\n {slice.image && (\n <Box\n position=\"absolute\"\n top=\"0\"\n left=\"0\"\n width=\"full\"\n height=\"full\"\n >\n <Image\n src={strapiMediaUrl(slice.image.img, 'xLarge')}\n alt={slice.image.alt}\n fill\n style={{ objectFit: slice.image.objectFit || 'cover' }}\n />\n <Gradient />\n </Box>\n )}\n </>\n <Wrapper>\n <>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n taglineProps={{ textAlign: 'center' }}\n titleProps={{\n textAlign: 'center',\n maxW: '2xl',\n marginX: 'auto',\n color: 'white',\n }}\n textProps={{\n textAlign: 'center',\n maxW: 'xl',\n marginX: 'auto',\n color: 'whiteAlpha.800',\n }}\n />\n\n <Box marginTop={['16', null, '24']}>\n {slice.steps.map(({ id, step, title, text }, index) => (\n <Flex flexDir=\"column\" alignItems=\"center\" key={id}>\n <Center\n width=\"10\"\n height=\"10\"\n borderRadius=\"full\"\n backgroundColor=\"white\"\n >\n <Text size=\"smRegularNormal\" color=\"black\">\n {step}\n </Text>\n </Center>\n <Heading size=\"lg\" color=\"white\" mt=\"4\" textAlign=\"center\">\n {title}\n </Heading>\n {text && (\n <Box maxW=\"xl\" mt=\"4\">\n <RichText\n options={{ forceBlock: true }}\n content={text}\n textProps={{\n size: 'mdRegularNormal',\n color: 'whiteAlpha.700',\n textAlign: 'center',\n }}\n />\n </Box>\n )}\n {(index + 1 < slice.steps.length || slice.card) && (\n <Box\n ref={stepRefs[index]}\n position=\"relative\"\n marginTop=\"4\"\n marginBottom=\"6\"\n height=\"12\"\n >\n <Box\n position=\"absolute\"\n height=\"full\"\n borderLeft=\"dashed 1px white\"\n opacity=\"0.5\"\n />\n <Box\n position=\"absolute\"\n height={`${stepProgress[index]}%`}\n borderRight=\"solid 1px white\"\n opacity=\"1\"\n transition=\"height ease var(--medium-transition-duration)\"\n />\n </Box>\n )}\n </Flex>\n ))}\n </Box>\n\n {slice.card && (\n <ShapesCard\n tagline={slice.card.tagline}\n title={slice.card.title}\n text={slice.card.text}\n shapes={\n slice.card.shapes &&\n slice.card.shapes?.map((shape) => (\n <Image\n src={strapiMediaUrl(shape.img, 'small')}\n alt={shape.alt}\n fill\n style={{ objectFit: shape.objectFit || 'cover' }}\n />\n ))\n }\n button={\n slice.card.button && {\n text: slice.card.button.text,\n onClick: () => push(strapiLinkUrl(slice.card?.button)),\n }\n }\n />\n )}\n </>\n </Wrapper>\n </DefaultSectionContainer>\n </div>\n );\n};\n","import React from 'react';\nimport { css } from '@emotion/react';\nimport {\n Box,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Flex,\n Heading,\n RichText,\n SimpleGrid,\n Text,\n useToken,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport { CaretRight } from '@phosphor-icons/react';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\n\ninterface TextCardGridSlice extends StrapiDefaultHeader {\n variant: 'shape' | 'image';\n cards: {\n id: number;\n tagline?: string;\n title: string;\n text: string;\n image: StrapiImage;\n buttons?: StrapiLink[];\n }[];\n}\nexport interface TextCardGridProps {\n slice: TextCardGridSlice;\n}\n\nenum ShapePosition {\n topLeft = 'top-left',\n topRight = 'top-right',\n bottomLeft = 'bottom-left',\n bottomRight = 'bottom-right',\n unset = 'unset',\n}\n\nconst shapePositions: ShapePosition[] = [\n ShapePosition.topLeft,\n ShapePosition.bottomRight,\n ShapePosition.topRight,\n ShapePosition.bottomLeft,\n ShapePosition.topRight,\n ShapePosition.bottomLeft,\n ShapePosition.topLeft,\n ShapePosition.bottomRight,\n];\n\nconst oppositesOfCorners = {\n [ShapePosition.bottomLeft]: ShapePosition.topRight,\n [ShapePosition.topRight]: ShapePosition.bottomLeft,\n [ShapePosition.bottomRight]: ShapePosition.topLeft,\n [ShapePosition.topLeft]: ShapePosition.bottomRight,\n [ShapePosition.unset]: ShapePosition.unset,\n};\n\ntype Variant = {\n padding: (string | null)[];\n positionIcon: (index: number) => ShapePosition;\n width: string;\n height: string;\n position: 'absolute' | 'relative';\n mb: string;\n};\n\nconst variants: { shape: Variant; image: Variant } = {\n shape: {\n padding: ['6', null, null, '8'],\n positionIcon: (index: number) => shapePositions[index],\n width: '40',\n height: '40',\n position: 'absolute',\n mb: 'unset',\n },\n image: {\n padding: ['6', null, null, '8'],\n positionIcon: () => ShapePosition.unset,\n width: '24',\n height: '24',\n position: 'relative',\n mb: '10',\n },\n};\n\nexport const TextCardGrid: React.FC<TextCardGridProps> = ({\n slice,\n}: TextCardGridProps) => {\n const [primary800] = useToken('colors', ['primary.800']);\n\n return (\n <DefaultSectionContainer backgroundColor={primary800} title={slice.title}>\n <Wrapper>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n taglineProps={{ textAlign: 'center', color: 'white' }}\n titleProps={{\n textAlign: 'center',\n maxW: '2xl',\n marginX: 'auto',\n color: 'white',\n }}\n textProps={{\n textAlign: 'center',\n maxW: 'xl',\n marginX: 'auto',\n color: 'whiteAlpha.800',\n }}\n />\n\n <SimpleGrid\n mt={['14', null, null, '24']}\n columns={3}\n justifyItems=\"center\"\n gap=\"20\"\n rowGap=\"16\"\n minChildWidth={['100%', null, '16rem']}\n >\n {slice.cards.map(\n ({ id, tagline, title, text, image, buttons }, index) => (\n <Box\n key={id}\n backgroundColor=\"white\"\n zIndex=\"base\"\n padding={variants[slice.variant].padding}\n boxShadow=\"lg\"\n borderRadius=\"2xl\"\n minHeight=\"2xs\"\n width=\"full\"\n maxWidth={slice.cards.length > 1 ? 'unset' : 'xl'}\n position=\"relative\"\n display=\"flex\"\n flexDir=\"column\"\n alignItems=\"flex-start\"\n justifyContent={\n slice.variant === 'shape' ? 'flex-end' : 'flex-start'\n }\n overflow=\"hidden\"\n >\n <Box\n position={variants[slice.variant].position}\n width={variants[slice.variant].width}\n height={variants[slice.variant].height}\n mb={variants[slice.variant].mb}\n top={\n variants[slice.variant].positionIcon(index).includes('top')\n ? '-4'\n : 'unset'\n }\n left={\n variants[slice.variant].positionIcon(index).includes('left')\n ? '-4'\n : 'unset'\n }\n right={\n variants[slice.variant]\n .positionIcon(index)\n .includes('right')\n ? '-4'\n : 'unset'\n }\n bottom={\n variants[slice.variant]\n .positionIcon(index)\n .includes('bottom')\n ? '-4'\n : 'unset'\n }\n borderBottomRightRadius={\n oppositesOfCorners[\n variants[slice.variant].positionIcon(index)\n ].includes('bottomRight')\n ? 'full'\n : 'unset'\n }\n borderBottomLeftRadius={\n oppositesOfCorners[\n variants[slice.variant].positionIcon(index)\n ].includes('bottomLeft')\n ? 'full'\n : 'unset'\n }\n borderTopRightRadius={\n oppositesOfCorners[\n variants[slice.variant].positionIcon(index)\n ].includes('topRight')\n ? 'full'\n : 'unset'\n }\n borderTopLeftRadius={\n oppositesOfCorners[\n variants[slice.variant].positionIcon(index)\n ].includes('topLeft')\n ? 'full'\n : 'unset'\n }\n css={\n variants[slice.variant]\n .positionIcon(index)\n .includes('unset')\n ? css`\n & span,\n div,\n img {\n border-radius: var(--boemly-radii-xl);\n }\n `\n : css`\n & span,\n div,\n img {\n border-${\n oppositesOfCorners[\n variants[slice.variant].positionIcon(index)\n ]\n }-radius: var(--boemly-radii-full);\n }\n `\n }\n >\n <Image\n src={strapiMediaUrl(image.img, 'small')}\n alt={image.alt}\n fill\n style={{ objectFit: image.objectFit || 'cover' }}\n />\n </Box>\n <Box zIndex=\"aboveBase\" width=\"full\">\n {tagline && (\n <Text color=\"black\" size=\"smMonoNormal\" mb=\"2\">\n {tagline}\n </Text>\n )}\n <Heading as=\"h4\" size=\"xl\" mb=\"3\">\n {title}\n </Heading>\n <RichText\n content={text}\n listProps={{\n textColor: 'gray.500',\n textSize: 'smRegularNormal',\n }}\n textProps={{\n color: 'gray.500',\n size: 'smRegularNormal',\n }}\n />\n {buttons && !!buttons.length && (\n <Flex\n mt=\"4\"\n gap=\"3\"\n flexDir={['column', null, null, null, 'row']}\n >\n {buttons.map((button, buttonIndex) => (\n <StrapiLinkButton\n key={button.id}\n link={button}\n size=\"sm\"\n rightIcon={\n buttonIndex === 0 ? (\n <CaretRight size=\"10\" weight=\"bold\" />\n ) : undefined\n }\n variant={buttonIndex === 0 ? 'outline' : 'ghost'}\n />\n ))}\n </Flex>\n )}\n </Box>\n </Box>\n )\n )}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import { motion } from 'framer-motion';\nimport styled from '@emotion/styled';\nimport { BREAKPOINT_MD } from '../../constants/breakpoints';\nimport { Box } from 'boemly';\n\nexport const CarouselContainer = styled(Box)`\n overflow-x: scroll;\n\n margin-top: var(--boemly-space-6);\n padding: var(--boemly-space-8) 0;\n\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n margin-top: var(--boemly-space-4);\n }\n`;\n\ninterface CarouselInnerContainerProps {\n numberOfItems: number;\n}\nexport const CarouselInnerContainer = styled(\n motion.div\n)<CarouselInnerContainerProps>`\n display: flex;\n justify-content: center;\n width: calc(\n (var(--boemly-sizes-sm) + var(--boemly-space-16)) *\n ${({ numberOfItems }: CarouselInnerContainerProps) => numberOfItems} +\n var(--boemly-space-16)\n );\n min-width: var(--boemly-sizes-full);\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n width: calc(\n (var(--boemly-sizes-xs) + var(--boemly-space-4)) *\n ${({ numberOfItems }: CarouselInnerContainerProps) => numberOfItems} +\n var(--boemly-space-6)\n );\n }\n`;\n\ninterface CardContainerProps {\n numberOfItems: number;\n}\nexport const CardContainer = styled(Box)<CardContainerProps>`\n width: ${({ numberOfItems }: CardContainerProps) =>\n numberOfItems === 3 ? 'var(--boemly-sizes-xl)' : 'var(--boemly-sizes-sm)'};\n\n margin-right: var(--boemly-space-16);\n\n &:first-of-type {\n margin-left: var(--boemly-space-16);\n }\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n width: var(--boemly-sizes-xs);\n\n margin-right: var(--boemly-space-4);\n\n &:first-of-type {\n margin-left: var(--boemly-space-6);\n }\n }\n`;\n","import React, { useRef } from 'react';\nimport {\n Center,\n DefaultSectionContainer,\n DefaultSectionHeader,\n TextCardWithIcon,\n useToken,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport StrapiTextCardWithIcon from '../../models/strapi/StrapiTextCardWithIcons';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport {\n CardContainer,\n CarouselContainer,\n CarouselInnerContainer,\n} from './styles';\n\ninterface TextCarouselSlice extends StrapiDefaultHeader {\n slides: StrapiTextCardWithIcon[];\n button?: StrapiLink;\n}\nexport interface TextCarouselProps {\n slice: TextCarouselSlice;\n}\n\nexport const TextCarousel: React.FC<TextCarouselProps> = ({\n slice,\n}: TextCarouselProps) => {\n const [primary50] = useToken('colors', ['primary.50']);\n\n const containerRef = useRef(null);\n\n return (\n <DefaultSectionContainer backgroundColor={primary50} title={slice.title}>\n <Wrapper>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n taglineProps={{ textAlign: 'center' }}\n titleProps={{ textAlign: 'center', maxW: '6xl', marginX: 'auto' }}\n textProps={{ textAlign: 'center', maxW: '2xl', marginX: 'auto' }}\n />\n </Wrapper>\n\n <CarouselContainer ref={containerRef}>\n <CarouselInnerContainer\n drag=\"x\"\n dragConstraints={containerRef}\n numberOfItems={slice.slides.length}\n >\n {slice.slides.map(({ id, title, text, icon }) => (\n <CardContainer key={id} numberOfItems={slice.slides.length}>\n <TextCardWithIcon\n title={title}\n text={text}\n icon={\n <Image\n src={strapiMediaUrl(icon.img, 'small')}\n alt={icon.alt}\n fill\n style={{ objectFit: icon.objectFit || 'contain' }}\n />\n }\n displayAs=\"column\"\n />\n </CardContainer>\n ))}\n </CarouselInnerContainer>\n </CarouselContainer>\n\n <>\n {slice.button && (\n <Wrapper>\n <Center>\n <StrapiLinkButton\n link={slice.button}\n size=\"xl\"\n mt={['8', null, '14']}\n />\n </Center>\n </Wrapper>\n )}\n </>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport {\n Box,\n ContactArea,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Grid,\n GridItem,\n TextCardWithIcon,\n useMediaQuery,\n useToken,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport { useRouter } from 'next/router';\nimport { BREAKPOINT_LG_QUERY } from '../../constants/breakpoints';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport StrapiContactArea from '../../models/strapi/StrapiContactArea';\nimport StrapiTextCardWithIcon from '../../models/strapi/StrapiTextCardWithIcons';\nimport StrapiImage from '../../models/strapi/StrapiImage';\n\ninterface TextWithTextCardsSlice extends StrapiDefaultHeader {\n cards: StrapiTextCardWithIcon[];\n contact?: StrapiContactArea;\n shape?: StrapiImage;\n}\nexport interface TextWithTextCardsProps {\n slice: TextWithTextCardsSlice;\n}\n\nexport const TextWithTextCards: React.FC<TextWithTextCardsProps> = ({\n slice,\n}: TextWithTextCardsProps) => {\n const { push } = useRouter();\n const [white] = useToken('colors', ['white']);\n const [belowBreakpoint] = useMediaQuery(BREAKPOINT_LG_QUERY);\n\n return (\n <DefaultSectionContainer backgroundColor={white} title={slice.title}>\n <>\n {slice.shape && (\n <Box\n position=\"absolute\"\n right={['-28', null, null, '-136']}\n top={['96', null, null, '-28']}\n width={['sm', null, null, '4xl']}\n height={['sm', null, null, '4xl']}\n borderBottomRightRadius=\"full\"\n >\n <Image\n src={strapiMediaUrl(slice.shape.img, 'medium')}\n alt={slice.shape.alt}\n fill\n style={{\n objectFit: slice.shape.objectFit || 'cover',\n borderBottomRightRadius: 'var(--boemly-radii-full)',\n }}\n />\n </Box>\n )}\n </>\n <Wrapper>\n <>\n <Grid\n templateColumns={[\n 'repeat(8, 1fr)',\n null,\n null,\n null,\n 'repeat(16, 1fr)',\n ]}\n templateRows={[\n 'repeat(2, auto)',\n null,\n null,\n null,\n 'repeat(1, auto)',\n ]}\n rowGap=\"12\"\n >\n <GridItem\n colSpan={[8, null, null, null, 9]}\n rowSpan={1}\n pr={['0', null, null, null, '32']}\n >\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n textProps={{ pr: ['0', null, null, null, '10'] }}\n />\n\n {slice.contact && !belowBreakpoint && (\n <ContactArea\n title={slice.contact.title}\n text={slice.contact.text}\n avatar={{\n name: slice.contact.avatar.name,\n description: slice.contact.avatar.description,\n image: (\n <Image\n src={strapiMediaUrl(\n slice.contact.avatar.image.img,\n 'small'\n )}\n alt={slice.contact.avatar.image.alt}\n fill\n style={{\n objectFit:\n slice.contact.avatar.image.objectFit || 'cover',\n }}\n />\n ),\n }}\n link={{\n text: slice.contact.button.text,\n onClick: () => push(strapiLinkUrl(slice.contact?.button)),\n }}\n />\n )}\n </GridItem>\n <GridItem\n colSpan={[8, null, null, null, 7]}\n rowSpan={1}\n position=\"relative\"\n >\n {slice.cards.map((card) => (\n <TextCardWithIcon\n key={card.id}\n title={card.title}\n text={card.text}\n icon={\n <Image\n src={strapiMediaUrl(card.icon.img, 'small')}\n alt={card.icon.alt}\n fill\n style={{ objectFit: card.icon.objectFit || 'contain' }}\n />\n }\n />\n ))}\n </GridItem>\n </Grid>\n {slice.contact && belowBreakpoint && (\n <ContactArea\n title={slice.contact.title}\n text={slice.contact.text}\n avatar={{\n name: slice.contact.avatar.name,\n description: slice.contact.avatar.description,\n image: (\n <Image\n src={strapiMediaUrl(\n slice.contact.avatar.image.img,\n 'small'\n )}\n alt={slice.contact.avatar.image.alt}\n fill\n style={{\n objectFit:\n slice.contact.avatar.image.objectFit || 'cover',\n }}\n />\n ),\n }}\n link={{\n text: slice.contact.button.text,\n onClick: () => push(strapiLinkUrl(slice.contact?.button)),\n }}\n />\n )}\n </>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport {\n DefaultSectionContainer,\n DefaultSectionHeader,\n Grid,\n GridItem,\n ProjectCard,\n Spacer,\n BoemlyList,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport { ArrowRight } from '@phosphor-icons/react';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport StrapiProjectCard from '../../models/strapi/StrapiProjectCard';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\n\ninterface TextWithCardSlice {\n tagline?: string;\n title: string;\n text?: string;\n listItems?: {\n id: number;\n text: string;\n }[];\n button?: StrapiLink;\n card?: StrapiProjectCard;\n cardPosition: 'left' | 'right';\n}\nexport interface TextWithCardProps {\n slice: TextWithCardSlice;\n}\n\nexport const TextWithCard: React.FC<TextWithCardProps> = ({\n slice,\n}: TextWithCardProps) => {\n const card = (\n <GridItem\n colSpan={[4, null, null, null, 2]}\n rowSpan={1}\n position=\"relative\"\n data-testid={`card-position-${slice.cardPosition}`}\n >\n {slice.card && (\n <ProjectCard\n facts={slice.card.facts}\n footerSubTitle={slice.card.footerSubTitle}\n footerTitle={slice.card.footerTitle}\n title={slice.card.title}\n image={\n <Image\n src={strapiMediaUrl(slice.card.image.img, 'medium')}\n alt={slice.card.image.alt}\n fill\n style={{ objectFit: slice.card.image.objectFit || 'cover' }}\n />\n }\n />\n )}\n </GridItem>\n );\n\n return (\n <DefaultSectionContainer title={slice.title}>\n <Wrapper>\n <Grid\n templateColumns={[\n 'repeat(4, auto)',\n null,\n null,\n null,\n 'repeat(6, auto)',\n ]}\n templateRows={[\n 'repeat(2, auto)',\n null,\n null,\n null,\n 'repeat(1, auto)',\n ]}\n rowGap=\"12\"\n columnGap={['0', null, null, null, '28']}\n >\n {slice.cardPosition === 'left' && card}\n <GridItem colSpan={4} rowSpan={1} position=\"relative\">\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n />\n\n {slice.listItems && (\n <>\n <Spacer height=\"10\" />\n <BoemlyList listItems={slice.listItems} />\n <Spacer height=\"10\" />\n </>\n )}\n\n {slice.button && (\n <StrapiLinkButton\n link={slice.button}\n size=\"md\"\n colorScheme=\"white\"\n variant=\"outline\"\n rightIcon={<ArrowRight />}\n />\n )}\n </GridItem>\n {slice.cardPosition === 'right' && card}\n </Grid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","export const MEDIUM_TRANSITION_DURATION = 0.2;\n","import React from 'react';\nimport Link from 'next/link';\nimport {\n Box,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Heading,\n SimpleGrid,\n Text,\n Wrapper,\n} from 'boemly';\nimport { CaretRight } from '@phosphor-icons/react';\nimport { MEDIUM_TRANSITION_DURATION } from '../../constants/animations';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport StrapiLink from '../../models/strapi/StrapiLink';\n\ninterface LinkCardsGridSlice {\n tagline?: string;\n title: string;\n text?: string;\n cards: {\n id: number;\n title: string;\n text?: string;\n link: StrapiLink;\n }[];\n}\nexport interface LinkCardsGridProps {\n slice: LinkCardsGridSlice;\n}\n\nexport const LinkCardsGrid: React.FC<LinkCardsGridProps> = ({\n slice,\n}: LinkCardsGridProps) => (\n <DefaultSectionContainer title={slice.title}>\n <Wrapper>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n />\n\n <SimpleGrid mt=\"16\" columns={[1, null, null, null, 2]} gap=\"4\">\n {slice.cards.map(({ id, title, text, link }) => (\n <Box\n key={id}\n as={Link}\n href={strapiLinkUrl(link)}\n data-testid=\"link\"\n px=\"10\"\n py=\"8\"\n borderStyle=\"solid\"\n borderWidth=\"thin\"\n borderColor=\"gray.200\"\n borderRadius=\"2xl\"\n display=\"flex\"\n flexDir=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n cursor=\"pointer\"\n transitionDuration={`${MEDIUM_TRANSITION_DURATION}s`}\n _hover={{ backgroundColor: 'gray.50' }}\n >\n <div>\n <Heading as=\"h4\" size=\"lg\">\n {title}\n </Heading>\n {text && (\n <Text mt=\"2\" size=\"smRegularNormal\">\n {text}\n </Text>\n )}\n </div>\n\n <Box\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n borderStyle=\"solid\"\n borderWidth=\"thin\"\n borderColor=\"gray.200\"\n borderRadius=\"2xl\"\n height=\"12\"\n width=\"12\"\n minWidth=\"12\"\n minHeight=\"12\"\n ml=\"6\"\n backgroundColor=\"white\"\n >\n <CaretRight />\n </Box>\n </Box>\n ))}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n);\n","import React from 'react';\nimport {\n Box,\n DefaultSectionHeader,\n Flex,\n Gradient,\n Tag,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\n\nexport interface SmallHeroProps {\n slice: {\n tags?: {\n id: number;\n text: string;\n colorScheme: string;\n }[];\n tagline?: string;\n title: string;\n subTitle?: string;\n button?: StrapiLink;\n image?: StrapiImage;\n gradient?: boolean;\n };\n theme: 'dark' | 'light';\n}\n\nconst colors = {\n dark: {\n tagline: 'white',\n title: 'white',\n text: 'white',\n background: 'gray.900',\n },\n light: {\n tagline: 'primary.500',\n title: 'black',\n text: 'gray.500',\n background: 'primary.50',\n },\n};\n\nexport const SmallHero: React.FC<SmallHeroProps> = ({\n slice,\n theme,\n}: SmallHeroProps) => (\n <Box\n position=\"relative\"\n width=\"full\"\n height=\"xl\"\n backgroundColor={colors[theme].background}\n >\n {slice.image && (\n <>\n <Image\n src={strapiMediaUrl(slice.image.img, 'xLarge')}\n alt={slice.image.alt}\n fill\n style={{ objectFit: slice.image.objectFit || 'cover' }}\n />\n {slice.gradient && <Gradient />}\n </>\n )}\n <Box\n position=\"absolute\"\n left=\"0\"\n top=\"60%\"\n width=\"full\"\n textAlign=\"center\"\n transform=\"translateY(-50%)\"\n >\n <Wrapper>\n <>\n {slice.tags && (\n <Flex direction=\"row\" justify=\"center\" gap=\"2\" mb=\"4\" wrap=\"wrap\">\n {slice.tags.map(({ id, text, colorScheme }) => (\n <Tag\n key={id}\n colorScheme={colorScheme}\n size=\"md\"\n variant=\"subtle\"\n >\n {text}\n </Tag>\n ))}\n </Flex>\n )}\n <DefaultSectionHeader\n isHero\n tagline={slice.tagline}\n title={slice.title}\n text={slice.subTitle}\n taglineProps={{\n color: colors[theme].tagline,\n textAlign: 'center',\n mx: 'auto',\n }}\n titleProps={{\n color: colors[theme].title,\n maxW: '4xl',\n textAlign: 'center',\n mx: 'auto',\n }}\n textProps={{\n maxW: '2xl',\n textAlign: 'center',\n mx: 'auto',\n color: colors[theme].text,\n }}\n />\n {slice.button && (\n <StrapiLinkButton link={slice.button} mt=\"6\" size=\"lg\" />\n )}\n </>\n </Wrapper>\n </Box>\n </Box>\n);\n","import styled from '@emotion/styled';\nimport { BREAKPOINT_MD } from '../../constants/breakpoints';\nimport { Box, Link } from 'boemly';\n\nexport const BlogItemContainer = styled(Link)`\n text-decoration: none;\n\n & div img {\n transition: transform var(--default-ease) var(--medium-transition-duration);\n }\n\n &:hover {\n text-decoration: none;\n\n & > div:first-of-type img {\n transform: scale(1.03);\n }\n }\n`;\n\nexport const ImageContainer = styled(Box)`\n width: 100%;\n height: var(--boemly-sizes-xs);\n position: relative;\n border-radius: var(--boemly-radii-2xl);\n\n // Fixes the flickering of borders during animation in Safari\n -webkit-mask-image: -webkit-radial-gradient(white, black);\n\n & span,\n div {\n border-radius: var(--boemly-radii-2xl);\n }\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n height: var(--boemly-sizes-3xs);\n }\n`;\n","export default {\n 'sections.comparison.backgroundShapes': 'Hintergrundformen',\n};\n","export default {\n 'sections.cta.backgroundShapes': 'Dunkle Hintergrundformen',\n 'sections.cta.backgroundShapesLight': 'Helle Hintergrundformen',\n};\n","export default {\n 'sections.customerStories.more': 'Weiterlesen',\n};\n","export default {\n 'sections.glossary.copyButtonLabel':\n 'Kopiere den Link zu diesem Abschnitt in die Zwischenablage',\n 'sections.glossary.copySuccessMessage': 'Link in die Zwischenablage kopiert',\n 'sections.glossary.copyFailureMessage':\n 'Link konnte nicht in die Zwischenablage kopiert werden',\n};\n","export default {\n 'sections.projectFacts.projectInfo.value': 'Projekt Infos',\n 'projects.projectFacts.properties.area': 'Fläche',\n};\n","export default {\n 'sections.projectsMap.link.text': 'Mehr Infos',\n};\n","export default {\n 'sections.shopCheckout.intro.price': 'Preis',\n\n 'sections.shopCheckout.contributionValue.label.EUR':\n 'Geben sie einen Betrag in € ein',\n 'sections.shopCheckout.contributionValue.label.CHF':\n 'Geben sie einen Betrag in CHF ein',\n 'sections.shopCheckout.contributionValue.unit.EUR': '€',\n 'sections.shopCheckout.contributionValue.unit.CHF': 'CHF',\n 'sections.shopCheckout.contributionValue.validation.empty':\n 'Bitte geben sie einen Betrag ein',\n 'sections.shopCheckout.contributionValue.validation.tooLow.EUR':\n 'Der Betrag muss mindestens 10 Euro sein',\n 'sections.shopCheckout.contributionValue.validation.tooLow.CHF':\n 'Der Betrag muss mindestens 10 CHF sein',\n 'sections.shopCheckout.contributionValue.validation.tooHigh':\n 'Für größere Einkäufe kontaktieren Sie bitte unser Verkaufsteam über office@tree.ly',\n\n 'sections.shopCheckout.summary.kg': 'Menge',\n 'sections.shopCheckout.summary.price': 'Preis',\n\n 'sections.shopCheckout.submit': 'Kaufen',\n};\n","export default {\n 'components.creditsAvailableBadge.text.yes': 'Credits verfügbar',\n 'components.creditsAvailableBadge.text.some': 'Einige verbleibende Credits',\n 'components.creditsAvailableBadge.text.no': 'Keine verbleibenden Credits',\n 'components.creditsAvailableBadge.text.notYet':\n 'Noch keine Credits verfügbar',\n};\n","export default {\n 'features.portfolio.documentsDownloadList.projectDocuments':\n 'Projektdokumente',\n 'features.portfolio.documentsDownloadList.downloadDocument':\n 'Dokument herunterladen',\n};\n","export default {\n 'features.projectInfo.projectInfo.value': 'Projekt Infos',\n 'features.projectInfo.properties.area': 'Projekt Fläche',\n 'features.projectInfo.properties.location': 'Standort',\n 'features.projectInfo.properties.start': 'Projekt Start Datum',\n 'features.projectInfo.properties.timeSpan': 'Projekt Zeitraum',\n 'features.projectInfo.properties.projectType': 'Projekt Typ',\n 'features.projectInfo.properties.projectDeveloper': 'Projekt Entwickler',\n 'features.projectInfo.properties.verificationStandard.label':\n 'Verifizierungsstandard',\n 'features.projectInfo.properties.verificationStandard.value.SilvaconsultFCSISO14':\n 'SILVACONSULT® Forest Carbon Standard, ISO 14064-2',\n 'features.projectInfo.properties.forecastedAmountYear.label':\n 'Projektvolumen',\n 'features.projectInfo.properties.riskBuffer': 'Anteil Risikopuffer',\n\n 'features.projectInfo.properties.year':\n '{years} {years, plural, one {Jahr} other {Jahre} }',\n};\n","export default {\n 'portfolio.smallCheckout.contributionValueCurrency.label.CHF':\n 'Geben Sie den Beitrag in Fr. ein',\n 'portfolio.smallCheckout.contributionValueCurrency.label.EUR':\n 'Geben Sie den Beitrag in € ein',\n 'portfolio.smallCheckout.contributionValueCurrency.unit.EUR': '€',\n 'portfolio.smallCheckout.contributionValueCurrency.unit.CHF': 'Fr.',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.CHF':\n 'Der Wert muss mindestens 10 CHF betragen',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.EUR':\n 'Der Wert muss mindestens 10 Euro betragen.',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.empty':\n 'Bitte geben Sie einen Wert ein',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.tooHigh':\n 'Für größere Einkäufe kontaktieren Sie bitte unser Verkaufsteam über den unten stehenden Button',\n\n 'portfolio.smallCheckout.contributionValueKgs.label': 'Beitrag in Tonnen',\n\n 'portfolio.smallCheckout.submitButton': 'Credits kaufen',\n\n 'portfolio.smallCheckout.cta.title':\n 'Möchten Sie mehr als 10.000 tCO₂ kaufen?',\n 'portfolio.smallCheckout.cta.subTitle':\n 'Für Unternehmenskunden bieten wir individuelle Lösungen an. Kontaktieren Sie uns.',\n 'portfolio.smallCheckout.cta.button': 'Unser Vertriebsteam kontaktieren',\n};\n","export default {\n 'unit.formatter.tonsCo2': '{number} /tCO₂',\n 'unit.formatter.tonsCo2PerYear': '{number} tCO₂/year',\n};\n","import comparisonMessagesDe from './slices/Comparison/messages.de';\nimport ctaMessagesDe from './slices/Cta/messages.de';\nimport customerStoriesDe from './slices/CustomerStories/messages.de';\nimport glossaryMessagesDe from './slices/Glossary/messages.de';\nimport projectFactsMessagesDe from './slices/ProjectFacts/messages.de';\nimport projectsMapMessagesDe from './slices/ProjectsMap/messages.de';\nimport shopCheckoutMessagesDe from './slices/ShopCheckout/messages.de';\nimport creditsAvailableBadgeMessagesDe from './components/CreditsAvailableBadge/messages.de';\nimport portfolioDocumentsDownloadListMessagesDe from './components/portfolio/DocumentsDownloadList/messages.de';\nimport portfolioProjectInfoMessagesDe from './components/portfolio/ProjectInfo/messages.de';\nimport portfolioSmallCheckoutMessagesDe from './components/portfolio/SmallCheckout/messages.de';\n\nimport unitMessagesDe from './unit.messages.en';\n\nconst rootMessagesDe = {\n //\n // Components\n //\n ...creditsAvailableBadgeMessagesDe,\n ...portfolioDocumentsDownloadListMessagesDe,\n ...portfolioProjectInfoMessagesDe,\n ...portfolioSmallCheckoutMessagesDe,\n\n //\n // Slices\n //\n ...comparisonMessagesDe,\n ...ctaMessagesDe,\n ...customerStoriesDe,\n ...glossaryMessagesDe,\n ...projectFactsMessagesDe,\n ...projectsMapMessagesDe,\n ...shopCheckoutMessagesDe,\n\n //\n // Units\n //\n ...unitMessagesDe,\n};\n\nexport default rootMessagesDe;\n","export default {\n 'sections.comparison.backgroundShapes': 'Background shapes',\n};\n","export default {\n 'sections.cta.backgroundShapesDark': 'Dark background shapes',\n 'sections.cta.backgroundShapesLight': 'Light background shapes',\n};\n","export default {\n 'sections.customerStories.more': 'Read more',\n};\n","export default {\n 'sections.glossary.copyButtonLabel':\n 'Copy a link to this section to your clipboard',\n 'sections.glossary.copySuccessMessage': 'Copied the link to your clipboard',\n 'sections.glossary.copyFailureMessage': 'Could not copy link to clipboard',\n};\n","export default {\n 'sections.projectFacts.projectInfo.value': 'Project Infos',\n 'projects.projectFacts.properties.area': 'Area',\n};\n","export default {\n 'sections.projectsMap.link.text': 'Show more info',\n};\n","export default {\n 'sections.shopCheckout.intro.price': 'Price',\n\n 'sections.shopCheckout.contributionValue.label.EUR':\n 'Enter contribution value in €',\n 'sections.shopCheckout.contributionValue.label.CHF':\n 'Enter contribution value in CHF',\n 'sections.shopCheckout.contributionValue.unit.EUR': '€',\n 'sections.shopCheckout.contributionValue.unit.CHF': 'CHF',\n 'sections.shopCheckout.contributionValue.validation.empty':\n 'Please enter a value',\n 'sections.shopCheckout.contributionValue.validation.tooLow.EUR':\n 'Der Betrag muss mindestens 10 Euro sein',\n 'sections.shopCheckout.contributionValue.validation.tooLow.CHF':\n 'Der Betrag muss mindestens 10 CHF sein',\n 'sections.shopCheckout.contributionValue.validation.tooHigh':\n 'For bigger purchases please contact our sales team via office@tree.ly',\n\n 'sections.shopCheckout.summary.kg': 'Quantity',\n 'sections.shopCheckout.summary.price': 'Price',\n\n 'sections.shopCheckout.submit': 'Checkout',\n};\n","export default {\n 'components.creditsAvailableBadge.text.yes': 'Credits available',\n 'components.creditsAvailableBadge.text.some': 'Some remaining credits',\n 'components.creditsAvailableBadge.text.no': 'No remaining credits',\n 'components.creditsAvailableBadge.text.notYet': 'No credits available yet',\n};\n","export default {\n 'features.portfolio.documentsDownloadList.projectDocuments':\n 'Project documents',\n 'features.portfolio.documentsDownloadList.downloadDocument':\n 'Download document',\n};\n","export default {\n 'features.projectInfo.projectInfo.value': 'Project Infos',\n 'features.projectInfo.properties.area': 'Project Area',\n 'features.projectInfo.properties.location': 'Location',\n 'features.projectInfo.properties.start': 'Project Start Date',\n 'features.projectInfo.properties.timeSpan': 'Project Time Span',\n 'features.projectInfo.properties.projectType': 'Project Type',\n 'features.projectInfo.properties.projectDeveloper': 'Project Developer',\n 'features.projectInfo.properties.verificationStandard.label':\n 'Verification Standard',\n 'features.projectInfo.properties.verificationStandard.value.SilvaconsultFCSISO14':\n 'SILVACONSULT® Forest Carbon Standard, ISO 14064-2',\n 'features.projectInfo.properties.forecastedAmountYear.label':\n 'Project Volume',\n 'features.projectInfo.properties.riskBuffer': 'Risk Buffer Share',\n\n 'features.projectInfo.properties.year':\n '{years} {years, plural, one {year} other {years} }',\n};\n","export default {\n 'portfolio.smallCheckout.contributionValueCurrency.label.CHF':\n 'Contribution Amount in CHF',\n 'portfolio.smallCheckout.contributionValueCurrency.label.EUR':\n 'Contribution Amount in €',\n 'portfolio.smallCheckout.contributionValueCurrency.unit.EUR': '€',\n 'portfolio.smallCheckout.contributionValueCurrency.unit.CHF': 'CHF',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.CHF':\n 'The value must be at least 10 CHF',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.EUR':\n 'The value must be at least 10 Euro',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.empty':\n 'Please enter a value',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.tooHigh':\n 'For bigger purchases please contact our sales team via office@tree.ly',\n\n 'portfolio.smallCheckout.contributionValueKgs.label':\n 'Contribution Amount in Tons',\n\n 'portfolio.smallCheckout.submitButton': 'Buy credits',\n\n 'portfolio.smallCheckout.cta.title': 'Looking to buy more than 10.000 tCO₂?',\n 'portfolio.smallCheckout.cta.subTitle':\n 'For enterprise-customers we offer custom solutions. Feel free to contact us.',\n 'portfolio.smallCheckout.cta.button': 'Contact our Sales Team',\n};\n","import comparisonMessagesEn from './slices/Comparison/messages.en';\nimport ctaMessagesEn from './slices/Cta/messages.en';\nimport customerStoriesEn from './slices/CustomerStories/messages.en';\nimport glossaryMessagesEn from './slices/Glossary/messages.en';\nimport projectFactsMessagesEn from './slices/ProjectFacts/messages.en';\nimport projectsMapMessagesEn from './slices/ProjectsMap/messages.en';\nimport shopCheckoutMessagesEn from './slices/ShopCheckout/messages.en';\nimport creditsAvailableBadgeMessagesEn from './components/CreditsAvailableBadge/messages.en';\nimport portfolioDocumentsDownloadListMessagesEn from './components/portfolio/DocumentsDownloadList/messages.en';\nimport portfolioProjectInfoMessagesEn from './components/portfolio/ProjectInfo/messages.en';\nimport portfolioSmallCheckoutMessagesEn from './components/portfolio/SmallCheckout/messages.en';\n\nimport unitMessagesEn from './unit.messages.en';\n\nconst rootMessagesEn = {\n //\n // Components\n //\n ...creditsAvailableBadgeMessagesEn,\n ...portfolioDocumentsDownloadListMessagesEn,\n ...portfolioProjectInfoMessagesEn,\n ...portfolioSmallCheckoutMessagesEn,\n\n //\n // Slices\n //\n ...comparisonMessagesEn,\n ...ctaMessagesEn,\n ...customerStoriesEn,\n ...glossaryMessagesEn,\n ...projectFactsMessagesEn,\n ...projectsMapMessagesEn,\n ...shopCheckoutMessagesEn,\n\n //\n // Units\n //\n ...unitMessagesEn,\n};\n\nexport default rootMessagesEn;\n","import { css } from '@emotion/react';\nimport { CDN_URI } from './api';\n\nexport const GLOBAL_STYLE = css`\n // GintoNord\n @font-face {\n font-family: 'GintoNord';\n src: url('${CDN_URI}/assets/v3/fonts/ABCGintoNord-Bold.woff2')\n format('woff2');\n font-style: normal;\n font-weight: 700;\n font-display: block;\n }\n // Inter\n @font-face {\n font-family: 'Inter';\n src: url('${CDN_URI}/assets/v3/fonts/Inter-Regular.woff2') format('woff2');\n font-style: normal;\n font-weight: 400;\n font-display: block;\n }\n @font-face {\n font-family: 'Inter';\n src: url('${CDN_URI}/assets/v3/fonts/Inter-Medium.woff2') format('woff2');\n font-style: normal;\n font-weight: 500;\n font-display: block;\n }\n @font-face {\n font-family: 'Inter';\n src: url('${CDN_URI}/assets/v3/fonts/Inter-SemiBold.woff2') format('woff2');\n font-style: normal;\n font-weight: 600;\n font-display: block;\n }\n @font-face {\n font-family: 'Inter';\n src: url('${CDN_URI}/assets/v3/fonts/Inter-Bold.woff2') format('woff2');\n font-style: normal;\n font-weight: 700;\n font-display: block;\n }\n // SpaceMono\n @font-face {\n font-family: 'SpaceMono';\n src: url('${CDN_URI}/assets/v3/fonts/SpaceMono-Bold.woff2') format('woff2');\n font-style: normal;\n font-weight: 700;\n font-display: block;\n }\n\n :root {\n --default-hero-height: calc(100vh - var(--boemly-space-24));\n }\n\n a {\n text-decoration: none;\n }\n`;\n","export const FONT_CUSTOMIZATIONS = {\n body: 'Inter',\n heading: 'Inter',\n display: 'GintoNord',\n mono: 'SpaceMono',\n};\n","import React, { createContext } from 'react';\nimport { createIntl, createIntlCache } from 'react-intl';\nimport rootMessagesDe from '../../rootMessages.de';\nimport rootMessagesEn from '../../rootMessages.en';\nimport Locale from '../../models/Locale';\nimport { BoemlyThemeProvider } from 'boemly';\nimport { Global } from '@emotion/react';\nimport { GLOBAL_STYLE } from '../../constants/globalStyle';\nimport { FONT_CUSTOMIZATIONS } from '../../constants/fontCustomizations';\n\nconst cache = createIntlCache();\n\nconst intlFactory = (locale: string) =>\n createIntl(\n {\n locale,\n messages: { de: rootMessagesDe, en: rootMessagesEn }[locale],\n },\n cache\n );\n\nexport const IntlContext = createContext(intlFactory('en'));\n\nexport interface ContextProviderProps {\n children: React.ReactNode;\n locale: Locale;\n}\n\nexport const ContextProvider: React.FC<ContextProviderProps> = ({\n children,\n locale,\n}: ContextProviderProps): JSX.Element => {\n return (\n <BoemlyThemeProvider fonts={FONT_CUSTOMIZATIONS}>\n <Global styles={{ GLOBAL_STYLE }} />\n <IntlContext.Provider value={intlFactory(locale)}>\n {children}\n </IntlContext.Provider>\n </BoemlyThemeProvider>\n );\n};\n","import React, { useContext } from 'react';\nimport {\n Box,\n DatePersonPair,\n DefaultSectionContainer,\n Heading,\n SimpleGrid,\n Spacer,\n Text,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport Link from 'next/link';\nimport StrapiBlogPost from '../../models/strapi/StrapiBlogPost';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport IStrapiData from '../../models/strapi/IStrapiData';\nimport { BlogItemContainer, ImageContainer } from './styles';\nimport { IntlContext } from '../../components/ContextProvider';\n\nexport interface BlogProps {\n slice: {\n blog_posts: IStrapiData<StrapiBlogPost>[];\n };\n blogPosts: IStrapiData<StrapiBlogPost>[];\n}\n\nexport const Blog: React.FC<BlogProps> = ({ slice, blogPosts }: BlogProps) => {\n const { formatDate } = useContext(IntlContext);\n const sortedBlogPosts = slice.blog_posts.sort(\n (a, b) =>\n new Date(b.attributes.createdAt).getTime() -\n new Date(a.attributes.createdAt).getTime()\n );\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n <SimpleGrid columns={[1, null, null, 2]} spacingX={56} spacingY={24}>\n {sortedBlogPosts.map(({ attributes }) => {\n const blogPost: IStrapiData<StrapiBlogPost> | undefined =\n blogPosts.find((bp) => bp.attributes.slug === attributes.slug);\n if (!blogPost) {\n return null;\n }\n return (\n <BlogItemContainer\n key={blogPost.attributes.slug}\n as={Link}\n href={`/blog/${blogPost.attributes.slug}`}\n >\n <ImageContainer>\n <Image\n src={strapiMediaUrl(blogPost.attributes.img.img, 'large')}\n alt={blogPost.attributes.img.alt}\n fill\n style={{\n objectFit: blogPost.attributes.img.objectFit || 'cover',\n }}\n />\n </ImageContainer>\n <Box px=\"2\" py=\"8\">\n {blogPost.attributes.category && (\n <Text size=\"smMonoUppercase\" color=\"primary.800\" mb=\"2\">\n {blogPost.attributes.category.data.attributes.name}\n </Text>\n )}\n <Heading size=\"lg\">{blogPost.attributes.title}</Heading>\n {blogPost.attributes.teaser && (\n <Text size=\"mdRegularNormal\" mt=\"2\">\n {blogPost.attributes.teaser}\n </Text>\n )}\n <Spacer height=\"4\" />\n <DatePersonPair\n date={formatDate(blogPost.attributes.createdAt)}\n person={\n blogPost.attributes.author\n ? {\n name: blogPost.attributes.author.data.attributes\n .name,\n image: (\n <Image\n src={strapiMediaUrl(\n blogPost.attributes.author.data.attributes.img\n .img,\n 'thumbnail'\n )}\n alt={\n blogPost.attributes.author.data.attributes.img\n .alt\n }\n fill\n style={{\n objectFit:\n blogPost.attributes.author.data.attributes\n .img.objectFit || 'cover',\n }}\n />\n ),\n }\n : undefined\n }\n />\n </Box>\n </BlogItemContainer>\n );\n })}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport {\n Box,\n DefaultSectionContainer,\n ProjectCard,\n SimpleGrid,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport Link from 'next/link';\nimport { MEDIUM_TRANSITION_DURATION } from '../../constants/animations';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiProjectCard from '../../models/strapi/StrapiProjectCard';\n\nexport interface ProjectsGridProps {\n slice: {\n projects: StrapiProjectCard[];\n };\n}\n\nconst ConditionalWrapper = ({\n condition,\n wrapper,\n children,\n}: {\n condition: boolean;\n wrapper: (children: JSX.Element) => JSX.Element;\n children: JSX.Element;\n}) => (condition ? wrapper(children) : children);\n\nexport const ProjectsGrid: React.FC<ProjectsGridProps> = ({\n slice,\n}: ProjectsGridProps) => (\n <DefaultSectionContainer>\n <Wrapper>\n <SimpleGrid columns={[1, null, null, 2, null, 3]} gap=\"16\">\n {slice.projects.map((card) => (\n <ConditionalWrapper\n key={card.id}\n condition={!!card.project?.data}\n wrapper={(children: JSX.Element) => (\n <Link\n href={`/portfolio/${card.project?.data?.attributes.slug}`}\n passHref\n key={card.id}\n legacyBehavior\n >\n {children}\n </Link>\n )}\n >\n <Box\n as=\"a\"\n cursor=\"pointer\"\n borderRadius=\"2xl\"\n width=\"fit-content\"\n height=\"fit-content\"\n transition={`box-shadow ease ${MEDIUM_TRANSITION_DURATION}s`}\n _hover={{ boxShadow: 'lg' }}\n >\n <ProjectCard\n title={card.title}\n facts={card.facts}\n footerTitle={card.footerTitle}\n footerSubTitle={card.footerSubTitle}\n image={\n <Image\n src={strapiMediaUrl(card.image.img, 'medium')}\n alt={card.image.alt}\n fill\n style={{ objectFit: card.image.objectFit || 'cover' }}\n />\n }\n />\n </Box>\n </ConditionalWrapper>\n ))}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n);\n","export const MAPBOX_TOKEN =\n 'pk.eyJ1IjoidHJlZS1seSIsImEiOiJja25rNG1heHgwNThjMnZwZTl2eThmeXUwIn0.SOrYUKfevZkbx8jZPxJesA';\n\nexport enum MapBoxStyle {\n Outdoors = 'mapbox://styles/mapbox/outdoors-v11',\n SatelliteStreets = 'mapbox://styles/mapbox/satellite-streets-v11',\n Satellite = 'mapbox://styles/mapbox/satellite-v9',\n CaliTerrain = 'mapbox://styles/tree-ly/clna54iq603ht01pbc199cszw',\n}\n\nexport const MAPBOX_TILES_URL = `${\n process.env.NEXT_PUBLIC_MAPBOX_TILES_URL || 'http://localhost:8123'\n}/vectortiles/v1/plots/{z}/{x}/{y}.mvt`;\nexport const MAPBOX_SOURCE_LAYER = 'plots';\nexport const MAPBOX_SOURCE_IDENTIFIER = 'plots';\nexport const MAPBOX_BORDER_LAYER_IDENTIFIER = 'plots-borders';\nexport const MAPBOX_FILL_LAYER_IDENTIFIER = 'plots-fill';\nexport const MAPBOX_TEXT_LAYER_IDENTIFIER = 'plots-text';\n\nexport const MAPBOX_TEXT_MIN_ZOOM = 15;\nexport const MAPBOX_SHAPES_MIN_ZOOM = 13;\n\nexport const MAPBOX_MAX_ZOOM = 19;\nexport const MAPBOX_INITIAL_ZOOM = 13;\n","import BBox from '../models/BBox';\n\nconst mergeBoundingBoxes = (boundingBoxes: BBox[]): BBox => {\n let minLeft: number = 180;\n let minBottom: number = 90;\n let maxRight: number = -180;\n let maxTop: number = -90;\n\n boundingBoxes.forEach(([left, bottom, right, top]) => {\n if (left < minLeft) minLeft = left;\n if (bottom < minBottom) minBottom = bottom;\n if (right > maxRight) maxRight = right;\n if (top > maxTop) maxTop = top;\n });\n\n return [minLeft, minBottom, maxRight, maxTop];\n};\n\nexport default mergeBoundingBoxes;\n","import React from 'react';\nimport { FONT_CUSTOMIZATIONS } from '../../constants/fontCustomizations';\nimport rootMessagesDe from '../../rootMessages.de';\nimport rootMessagesEn from '../../rootMessages.en';\nimport { BoemlyThemeProvider } from 'boemly';\nimport { IntlProvider } from 'react-intl';\n\nconst messages = {\n en: rootMessagesEn,\n de: rootMessagesDe,\n};\n\ninterface MinimalProvidersProps {\n locale: string;\n children: JSX.Element | JSX.Element[];\n}\n\nconst MinimalProviders = ({ children, locale }: MinimalProvidersProps) => (\n <IntlProvider messages={messages[locale as 'en' | 'de']} locale={locale}>\n <BoemlyThemeProvider fonts={FONT_CUSTOMIZATIONS}>\n {children}\n </BoemlyThemeProvider>\n </IntlProvider>\n);\n\nexport default MinimalProviders;\n","enum CreditsAvailableState {\n YES = 'yes',\n SOME = 'some',\n NO = 'no',\n NOT_YET = 'notYet',\n}\n\nexport default CreditsAvailableState;\n","import React, { useContext } from 'react';\nimport CreditsAvailableState from '../../models/CreditsAvailableState';\nimport { Badge } from 'boemly';\nimport NextLink from 'next/link';\nimport { IntlContext } from '../ContextProvider';\n\nexport interface CreditsAvailableBadgeProps {\n status: CreditsAvailableState;\n href?: string;\n}\n\nconst CreditsAvailableBadge = ({\n status,\n href,\n}: CreditsAvailableBadgeProps) => {\n const { formatMessage } = useContext(IntlContext);\n\n const variants: Record<\n CreditsAvailableState,\n { color: string; text: string }\n > = {\n [CreditsAvailableState.YES]: {\n color: 'green',\n text: formatMessage({ id: 'components.creditsAvailableBadge.text.yes' }),\n },\n [CreditsAvailableState.SOME]: {\n color: 'orange',\n text: formatMessage({ id: 'components.creditsAvailableBadge.text.some' }),\n },\n [CreditsAvailableState.NO]: {\n color: 'red',\n text: formatMessage({ id: 'components.creditsAvailableBadge.text.no' }),\n },\n [CreditsAvailableState.NOT_YET]: {\n color: 'blue',\n text: formatMessage({\n id: 'components.creditsAvailableBadge.text.notYet',\n }),\n },\n };\n\n const variant = variants[status];\n\n return (\n <Badge\n as={href ? NextLink : undefined}\n href={href}\n colorScheme={variant.color}\n width=\"fit-content\"\n >\n {variant.text}\n </Badge>\n );\n};\n\nexport default CreditsAvailableBadge;\n","import React, { useContext } from 'react';\nimport {\n Box,\n Button,\n Container,\n Flex,\n Heading,\n Text,\n useDisclosure,\n useToken,\n} from 'boemly';\nimport { MapPin } from '@phosphor-icons/react';\nimport NextLink from 'next/link';\nimport CreditsAvailableBadge from '../../components/CreditsAvailableBadge';\nimport CreditsAvailableState from '../../models/CreditsAvailableState';\nimport { IntlContext } from '../../components/ContextProvider';\n\nexport interface MapMarkerProps {\n title: string;\n isPublic?: boolean;\n projectDeveloper?: string;\n slug?: string;\n creditsAvailable?: CreditsAvailableState;\n}\n\nconst MapMarker = ({\n title,\n projectDeveloper,\n slug,\n creditsAvailable,\n isPublic = false,\n}: MapMarkerProps) => {\n const { formatMessage } = useContext(IntlContext);\n const { isOpen, onOpen, onClose } = useDisclosure();\n const blue600 = useToken('colors', 'blue.600');\n\n return (\n <Flex\n position=\"absolute\"\n gap=\"4\"\n onMouseEnter={onOpen}\n onMouseLeave={onClose}\n cursor=\"grab\"\n >\n <Box as={slug ? NextLink : undefined} href={slug && `/portfolio/${slug}`}>\n <MapPin\n size=\"40px\"\n color={blue600}\n weight=\"fill\"\n data-testid=\"mapmarker-pin\"\n filter=\"drop-shadow(0px 0px 2px #FFF)\"\n />\n </Box>\n\n {isPublic && isOpen && (\n <Container\n shadow=\"md\"\n width=\"max-content\"\n minWidth=\"3xs\"\n maxWidth={['3xs', null, null, 'sm']}\n >\n <Flex direction=\"column\">\n {creditsAvailable && (\n <>\n <CreditsAvailableBadge\n status={creditsAvailable}\n href={slug && `/portfolio/${slug}`}\n />\n <Box height=\"3\" />\n </>\n )}\n\n <Heading size=\"md\">{title}</Heading>\n\n {projectDeveloper && (\n <Text size=\"smLowNormal\" mt=\"1\">\n {projectDeveloper}\n </Text>\n )}\n\n {slug && (\n <Button\n width=\"fit-content\"\n variant=\"outline\"\n size=\"sm\"\n as={NextLink}\n href={`/portfolio/${slug}`}\n mt=\"4\"\n whiteSpace=\"nowrap\"\n >\n {formatMessage({ id: 'sections.projectsMap.link.text' })}\n </Button>\n )}\n </Flex>\n </Container>\n )}\n </Flex>\n );\n};\n\nexport default MapMarker;\n","import { css } from '@emotion/react';\n\nconst mapboxStyle = css`\n .mapboxgl-map {\n -webkit-tap-highlight-color: rgb(0 0 0/0);\n font: 12px/20px Helvetica Neue, Arial, Helvetica, sans-serif;\n overflow: hidden;\n position: relative;\n }\n .mapboxgl-canvas {\n left: 0;\n position: absolute;\n top: 0;\n }\n .mapboxgl-map:-webkit-full-screen {\n height: 100%;\n width: 100%;\n }\n .mapboxgl-canary {\n background-color: salmon;\n }\n .mapboxgl-canvas-container.mapboxgl-interactive,\n .mapboxgl-ctrl-group button.mapboxgl-ctrl-compass {\n cursor: grab;\n -webkit-user-select: none;\n user-select: none;\n }\n .mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer {\n cursor: pointer;\n }\n .mapboxgl-canvas-container.mapboxgl-interactive:active,\n .mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active {\n cursor: grabbing;\n }\n .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,\n .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas {\n touch-action: pan-x pan-y;\n }\n .mapboxgl-canvas-container.mapboxgl-touch-drag-pan,\n .mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas {\n touch-action: pinch-zoom;\n }\n .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,\n .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan\n .mapboxgl-canvas {\n touch-action: none;\n }\n .mapboxgl-ctrl-bottom-left,\n .mapboxgl-ctrl-bottom-right,\n .mapboxgl-ctrl-top-left,\n .mapboxgl-ctrl-top-right {\n pointer-events: none;\n position: absolute;\n z-index: 2;\n }\n .mapboxgl-ctrl-top-left {\n left: 0;\n top: 0;\n }\n .mapboxgl-ctrl-top-right {\n right: 0;\n top: 0;\n }\n .mapboxgl-ctrl-bottom-left {\n bottom: 0;\n left: 0;\n }\n .mapboxgl-ctrl-bottom-right {\n bottom: 0;\n right: 0;\n }\n .mapboxgl-ctrl {\n clear: both;\n pointer-events: auto;\n transform: translate(0);\n }\n .mapboxgl-ctrl-top-left .mapboxgl-ctrl {\n float: left;\n margin: 10px 0 0 10px;\n }\n .mapboxgl-ctrl-top-right .mapboxgl-ctrl {\n float: right;\n margin: 10px 10px 0 0;\n }\n .mapboxgl-ctrl-bottom-left .mapboxgl-ctrl {\n float: left;\n margin: 0 0 10px 10px;\n }\n .mapboxgl-ctrl-bottom-right .mapboxgl-ctrl {\n float: right;\n margin: 0 10px 10px 0;\n }\n .mapboxgl-ctrl-group {\n background: #fff;\n border-radius: 4px;\n }\n .mapboxgl-ctrl-group:not(:empty) {\n box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl-group:not(:empty) {\n box-shadow: 0 0 0 2px ButtonText;\n }\n }\n .mapboxgl-ctrl-group button {\n background-color: transparent;\n border: 0;\n box-sizing: border-box;\n cursor: pointer;\n display: block;\n height: 29px;\n outline: none;\n overflow: hidden;\n padding: 0;\n width: 29px;\n }\n .mapboxgl-ctrl-group button + button {\n border-top: 1px solid #ddd;\n }\n .mapboxgl-ctrl button .mapboxgl-ctrl-icon {\n background-position: 50%;\n background-repeat: no-repeat;\n display: block;\n height: 100%;\n width: 100%;\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl-icon {\n background-color: transparent;\n }\n .mapboxgl-ctrl-group button + button {\n border-top: 1px solid ButtonText;\n }\n }\n .mapboxgl-ctrl-attrib-button:focus,\n .mapboxgl-ctrl-group button:focus {\n box-shadow: 0 0 2px 2px #0096ff;\n }\n .mapboxgl-ctrl button:disabled {\n cursor: not-allowed;\n }\n .mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon {\n opacity: 0.25;\n }\n .mapboxgl-ctrl-group button:first-child {\n border-radius: 4px 4px 0 0;\n }\n .mapboxgl-ctrl-group button:last-child {\n border-radius: 0 0 4px 4px;\n }\n .mapboxgl-ctrl-group button:only-child {\n border-radius: inherit;\n }\n .mapboxgl-ctrl button:not(:disabled):hover {\n background-color: rgb(0 0 0/5%);\n }\n .mapboxgl-ctrl-group button:focus:focus-visible {\n box-shadow: 0 0 2px 2px #0096ff;\n }\n .mapboxgl-ctrl-group button:focus:not(:focus-visible) {\n box-shadow: none;\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E\");\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E\");\n }\n }\n @media (-ms-high-contrast: black-on-white) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E\");\n }\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E\");\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E\");\n }\n }\n @media (-ms-high-contrast: black-on-white) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E\");\n }\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E\");\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E%3C/svg%3E\");\n }\n }\n @media (-ms-high-contrast: black-on-white) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E\");\n }\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting\n .mapboxgl-ctrl-icon {\n animation: mapboxgl-spin 2s linear infinite;\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n }\n @media (-ms-high-contrast: black-on-white) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E\");\n }\n }\n @keyframes mapboxgl-spin {\n 0% {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(1turn);\n }\n }\n a.mapboxgl-ctrl-logo {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='0.3' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='0.9' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n cursor: pointer;\n display: block;\n height: 23px;\n margin: 0 0 -4px -4px;\n overflow: hidden;\n width: 88px;\n }\n a.mapboxgl-ctrl-logo.mapboxgl-compact {\n width: 23px;\n }\n @media (-ms-high-contrast: active) {\n a.mapboxgl-ctrl-logo {\n background-color: transparent;\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E\");\n }\n }\n @media (-ms-high-contrast: black-on-white) {\n a.mapboxgl-ctrl-logo {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23fff' stroke-width='3' fill='%23fff'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23000'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E\");\n }\n }\n .mapboxgl-ctrl.mapboxgl-ctrl-attrib {\n background-color: hsla(0, 0%, 100%, 0.5);\n margin: 0;\n padding: 0 5px;\n }\n @media screen {\n .mapboxgl-ctrl-attrib.mapboxgl-compact {\n background-color: #fff;\n border-radius: 12px;\n margin: 10px;\n min-height: 20px;\n padding: 2px 24px 2px 0;\n position: relative;\n }\n .mapboxgl-ctrl-attrib.mapboxgl-compact-show {\n padding: 2px 28px 2px 8px;\n visibility: visible;\n }\n .mapboxgl-ctrl-bottom-left > .mapboxgl-ctrl-attrib.mapboxgl-compact-show,\n .mapboxgl-ctrl-top-left > .mapboxgl-ctrl-attrib.mapboxgl-compact-show {\n border-radius: 12px;\n padding: 2px 8px 2px 28px;\n }\n .mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner {\n display: none;\n }\n .mapboxgl-ctrl-attrib-button {\n background-color: hsla(0, 0%, 100%, 0.5);\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E\");\n border: 0;\n border-radius: 12px;\n box-sizing: border-box;\n cursor: pointer;\n display: none;\n height: 24px;\n outline: none;\n position: absolute;\n right: 0;\n top: 0;\n width: 24px;\n }\n .mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,\n .mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button {\n left: 0;\n }\n .mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button,\n .mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner {\n display: block;\n }\n .mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button {\n background-color: rgb(0 0 0/5%);\n }\n .mapboxgl-ctrl-bottom-right > .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n bottom: 0;\n right: 0;\n }\n .mapboxgl-ctrl-top-right > .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n right: 0;\n top: 0;\n }\n .mapboxgl-ctrl-top-left > .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n left: 0;\n top: 0;\n }\n .mapboxgl-ctrl-bottom-left > .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n bottom: 0;\n left: 0;\n }\n }\n @media screen and (-ms-high-contrast: active) {\n .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E\");\n }\n }\n @media screen and (-ms-high-contrast: black-on-white) {\n .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E\");\n }\n }\n .mapboxgl-ctrl-attrib a {\n color: rgba(0, 0, 0, 0.75);\n text-decoration: none;\n }\n .mapboxgl-ctrl-attrib a:hover {\n color: inherit;\n text-decoration: underline;\n }\n .mapboxgl-ctrl-attrib .mapbox-improve-map {\n font-weight: 700;\n margin-left: 2px;\n }\n .mapboxgl-attrib-empty {\n display: none;\n }\n .mapboxgl-ctrl-scale {\n background-color: hsla(0, 0%, 100%, 0.75);\n border: 2px solid #333;\n border-top: #333;\n box-sizing: border-box;\n color: #333;\n font-size: 10px;\n padding: 0 5px;\n white-space: nowrap;\n }\n .mapboxgl-popup {\n display: flex;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n will-change: transform;\n }\n .mapboxgl-popup-anchor-top,\n .mapboxgl-popup-anchor-top-left,\n .mapboxgl-popup-anchor-top-right {\n flex-direction: column;\n }\n .mapboxgl-popup-anchor-bottom,\n .mapboxgl-popup-anchor-bottom-left,\n .mapboxgl-popup-anchor-bottom-right {\n flex-direction: column-reverse;\n }\n .mapboxgl-popup-anchor-left {\n flex-direction: row;\n }\n .mapboxgl-popup-anchor-right {\n flex-direction: row-reverse;\n }\n .mapboxgl-popup-tip {\n border: 10px solid transparent;\n height: 0;\n width: 0;\n z-index: 1;\n }\n .mapboxgl-popup-anchor-top .mapboxgl-popup-tip {\n align-self: center;\n border-bottom-color: #fff;\n border-top: none;\n }\n .mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip {\n align-self: flex-start;\n border-bottom-color: #fff;\n border-left: none;\n border-top: none;\n }\n .mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip {\n align-self: flex-end;\n border-bottom-color: #fff;\n border-right: none;\n border-top: none;\n }\n .mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip {\n align-self: center;\n border-bottom: none;\n border-top-color: #fff;\n }\n .mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip {\n align-self: flex-start;\n border-bottom: none;\n border-left: none;\n border-top-color: #fff;\n }\n .mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip {\n align-self: flex-end;\n border-bottom: none;\n border-right: none;\n border-top-color: #fff;\n }\n .mapboxgl-popup-anchor-left .mapboxgl-popup-tip {\n align-self: center;\n border-left: none;\n border-right-color: #fff;\n }\n .mapboxgl-popup-anchor-right .mapboxgl-popup-tip {\n align-self: center;\n border-left-color: #fff;\n border-right: none;\n }\n .mapboxgl-popup-close-button {\n background-color: transparent;\n border: 0;\n border-radius: 0 3px 0 0;\n cursor: pointer;\n position: absolute;\n right: 0;\n top: 0;\n }\n .mapboxgl-popup-close-button:hover {\n background-color: rgb(0 0 0/5%);\n }\n .mapboxgl-popup-content {\n background: #fff;\n border-radius: 3px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n padding: 10px 10px 15px;\n pointer-events: auto;\n position: relative;\n }\n .mapboxgl-popup-anchor-top-left .mapboxgl-popup-content {\n border-top-left-radius: 0;\n }\n .mapboxgl-popup-anchor-top-right .mapboxgl-popup-content {\n border-top-right-radius: 0;\n }\n .mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content {\n border-bottom-left-radius: 0;\n }\n .mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content {\n border-bottom-right-radius: 0;\n }\n .mapboxgl-popup-track-pointer {\n display: none;\n }\n .mapboxgl-popup-track-pointer * {\n pointer-events: none;\n user-select: none;\n }\n .mapboxgl-map:hover .mapboxgl-popup-track-pointer {\n display: flex;\n }\n .mapboxgl-map:active .mapboxgl-popup-track-pointer {\n display: none;\n }\n .mapboxgl-marker {\n left: 0;\n opacity: 1;\n position: absolute;\n top: 0;\n transition: opacity 0.2s;\n will-change: transform;\n }\n .mapboxgl-user-location-dot,\n .mapboxgl-user-location-dot:before {\n background-color: #1da1f2;\n border-radius: 50%;\n height: 15px;\n width: 15px;\n }\n .mapboxgl-user-location-dot:before {\n animation: mapboxgl-user-location-dot-pulse 2s infinite;\n content: '';\n position: absolute;\n }\n .mapboxgl-user-location-dot:after {\n border: 2px solid #fff;\n border-radius: 50%;\n box-shadow: 0 0 3px rgba(0, 0, 0, 0.35);\n box-sizing: border-box;\n content: '';\n height: 19px;\n left: -2px;\n position: absolute;\n top: -2px;\n width: 19px;\n }\n .mapboxgl-user-location-show-heading .mapboxgl-user-location-heading {\n height: 0;\n width: 0;\n }\n .mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after,\n .mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before {\n border-bottom: 7.5px solid #4aa1eb;\n content: '';\n position: absolute;\n }\n .mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before {\n border-left: 7.5px solid transparent;\n transform: translateY(-28px) skewY(-20deg);\n }\n .mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after {\n border-right: 7.5px solid transparent;\n transform: translate(7.5px, -28px) skewY(20deg);\n }\n @keyframes mapboxgl-user-location-dot-pulse {\n 0% {\n opacity: 1;\n transform: scale(1);\n }\n 70% {\n opacity: 0;\n transform: scale(3);\n }\n to {\n opacity: 0;\n transform: scale(1);\n }\n }\n .mapboxgl-user-location-dot-stale {\n background-color: #aaa;\n }\n .mapboxgl-user-location-dot-stale:after {\n display: none;\n }\n .mapboxgl-user-location-accuracy-circle {\n background-color: #1da1f233;\n border-radius: 100%;\n height: 1px;\n width: 1px;\n }\n .mapboxgl-crosshair,\n .mapboxgl-crosshair .mapboxgl-interactive,\n .mapboxgl-crosshair .mapboxgl-interactive:active {\n cursor: crosshair;\n }\n .mapboxgl-boxzoom {\n background: #fff;\n border: 2px dotted #202020;\n height: 0;\n left: 0;\n opacity: 0.5;\n position: absolute;\n top: 0;\n width: 0;\n }\n @media print {\n .mapbox-improve-map {\n display: none;\n }\n }\n .mapboxgl-scroll-zoom-blocker,\n .mapboxgl-touch-pan-blocker {\n align-items: center;\n background: rgba(0, 0, 0, 0.7);\n color: #fff;\n display: flex;\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial,\n sans-serif;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n text-align: center;\n top: 0;\n transition: opacity 0.75s ease-in-out;\n transition-delay: 1s;\n width: 100%;\n }\n .mapboxgl-scroll-zoom-blocker-show,\n .mapboxgl-touch-pan-blocker-show {\n opacity: 1;\n transition: opacity 0.1s ease-in-out;\n }\n .mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page,\n .mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page\n .mapboxgl-canvas {\n touch-action: pan-x pan-y;\n }\n`;\n\nexport default mapboxStyle;\n","import React, { useContext } from 'react';\nimport {\n MAPBOX_INITIAL_ZOOM,\n MAPBOX_MAX_ZOOM,\n MAPBOX_TOKEN,\n MapBoxStyle,\n} from '../../constants/mapbox';\nimport BBox from '../../models/BBox';\nimport mergeBoundingBoxes from '../../utils/mergeBoundingBoxes';\nimport { css } from '@emotion/react';\nimport {\n Box,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Wrapper,\n} from 'boemly';\nimport mapboxgl, { LngLatBoundsLike, LngLatLike, Map, Marker } from 'mapbox-gl';\nimport { MutableRefObject, createRef, useEffect, useRef } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport PortfolioProject from '../../models/PortfolioProject';\nimport MinimalProviders from '../../components/MinimalProviders';\nimport MapMarker from './MapMarker';\nimport mapboxStyle from './mapboxStyle';\nimport { IntlContext } from '../../components/ContextProvider';\n\nmapboxgl.accessToken = MAPBOX_TOKEN;\n\nexport interface ProjectsMapProps {\n slice: {\n tagline?: string;\n title?: string;\n text?: string;\n\n defaultCenterCoordinates?: {\n latitude: number;\n longitude: number;\n };\n defaultZoomLevel?: number;\n };\n\n projects: PortfolioProject[];\n}\n\nexport const ProjectsMap: React.FC<ProjectsMapProps> = ({\n slice,\n projects,\n}: ProjectsMapProps) => {\n const { locale } = useContext(IntlContext);\n\n const filteredProjects = projects.filter(\n (project) => project.geom\n ) as (PortfolioProject & {\n geom: Pick<PortfolioProject, 'geom'>;\n })[];\n\n const center: LngLatLike | undefined = slice.defaultCenterCoordinates\n ? [\n slice.defaultCenterCoordinates.longitude,\n slice.defaultCenterCoordinates.latitude,\n ]\n : undefined;\n\n const bounds: LngLatBoundsLike | undefined = center\n ? undefined\n : mergeBoundingBoxes(\n filteredProjects.map(\n (p): BBox =>\n [\n ...p.geom.coordinates.map((c) => c - 0.2),\n ...p.geom.coordinates.map((c) => c + 0.2),\n ] as BBox\n )\n );\n\n const mapContainer = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const map = new Map({\n container: mapContainer.current || '',\n style: MapBoxStyle.CaliTerrain,\n center,\n zoom: slice.defaultZoomLevel || MAPBOX_INITIAL_ZOOM,\n maxZoom: MAPBOX_MAX_ZOOM,\n bounds,\n });\n\n filteredProjects\n // Sort by longitude, so that the markers are rendeed form right to left\n .sort((a, b) => b.geom.coordinates[0] - a.geom.coordinates[0])\n .forEach((project) => {\n const ref =\n createRef<HTMLDivElement>() as MutableRefObject<HTMLDivElement>;\n ref.current = document.createElement('div');\n\n createRoot(ref.current).render(\n <MinimalProviders locale={locale}>\n <MapMarker\n title={project.title}\n isPublic={project.isPublic}\n slug={project.slug}\n creditsAvailable={project.creditsAvailable}\n projectDeveloper={project.projectDeveloper?.name}\n />\n </MinimalProviders>\n );\n\n // Offset is needed to center the marker on the coordinates\n const marker = new Marker(ref.current, { offset: [-20, -40] });\n\n // No chaining here, because the mocks don't support it\n marker.setLngLat(project.geom.coordinates);\n marker.addTo(map);\n });\n\n // Clean up on unmount\n return () => map.remove();\n }, [locale]);\n\n return (\n <DefaultSectionContainer>\n <Box css={mapboxStyle}>\n <Wrapper>\n {slice.title ? (\n <>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n taglineProps={{ textAlign: 'center' }}\n titleProps={{\n textAlign: 'center',\n maxW: '6xl',\n marginX: 'auto',\n }}\n textProps={{\n textAlign: 'center',\n maxW: '3xl',\n marginX: 'auto',\n }}\n />\n <Box height=\"16\" />\n </>\n ) : (\n <></>\n )}\n\n <Box\n height=\"xl\"\n ref={mapContainer}\n borderRadius=\"xl\"\n overflow=\"hidden\"\n boxShadow={['md', null, null, 'none']}\n css={css`\n mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC);\n `}\n />\n </Wrapper>\n </Box>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport { Box, DefaultSectionContainer, Wrapper } from 'boemly';\nimport { useMeasure } from 'react-use';\n\ninterface VideoSlice {\n youTubeID: string;\n title: string;\n}\n\nexport interface VideoProps {\n slice: VideoSlice;\n}\n\nexport const Video: React.FC<VideoProps> = ({ slice }: VideoProps) => {\n const [ref, { width }] = useMeasure<HTMLDivElement>();\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n <Box ref={ref} borderRadius=\"xl\">\n <iframe\n data-testid=\"video-iframe\"\n width={width}\n height={(width / 16) * 9}\n src={`https://www.youtube.com/embed/${slice.youTubeID}`}\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n title={slice.title}\n style={{ borderRadius: 'var(--boemly-radii-xl)' }}\n />\n </Box>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport Image from 'next/image';\nimport {\n DefaultSectionContainer,\n Wrapper,\n AvatarWithName,\n Text,\n Box,\n} from 'boemly';\nimport StrapiAvatarWithName from '../../models/strapi/StrapiAvatarWithName';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\n\nexport interface FullWidthHighlightQuoteProps {\n slice: {\n tagline?: string;\n quote: string;\n avatarWithName: StrapiAvatarWithName;\n };\n}\n\nexport const FullWidthHighlightQuote: React.FC<\n FullWidthHighlightQuoteProps\n> = ({ slice }: FullWidthHighlightQuoteProps) => (\n <DefaultSectionContainer>\n <Wrapper>\n <Box maxWidth=\"5xl\" marginX=\"auto\" mb=\"8\">\n {slice.tagline && (\n <Text\n color=\"primary.700\"\n size=\"mdMonoUppercase\"\n textAlign=\"center\"\n mb=\"3\"\n >\n {slice.tagline}\n </Text>\n )}\n <Text color=\"black\" size=\"xlRegularNormalBold\" textAlign=\"center\">\n {slice.quote}\n </Text>\n </Box>\n <AvatarWithName\n name={slice.avatarWithName.name}\n description={slice.avatarWithName.description}\n image={\n <Image\n src={strapiMediaUrl(slice.avatarWithName.image.img, 'small')}\n alt={slice.avatarWithName.image.alt}\n fill\n style={{\n objectFit: slice.avatarWithName.image.objectFit || 'cover',\n }}\n />\n }\n orientation=\"vertical\"\n />\n </Wrapper>\n </DefaultSectionContainer>\n);\n","import { motion } from 'framer-motion';\nimport styled from '@emotion/styled';\nimport { BREAKPOINT_MD } from '../../constants/breakpoints';\nimport { Box } from 'boemly';\n\nexport const SliderContainer = styled(Box)`\n --mobile-image-width: calc(100vw - var(--boemly-space-24));\n --desktop-image-width: var(--boemly-sizes-md);\n\n width: var(--boemly-size-full);\n\n overflow-x: hidden;\n\n padding-left: max(\n var(--boemly-space-8),\n calc(50vw - var(--boemly-sizes-7xl) / 2 + var(--boemly-space-6))\n );\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n overflow-x: scroll;\n padding-left: max(\n var(--boemly-space-8),\n calc(50vw - var(--boemly-sizes-7xl) / 2 + var(--boemly-space-8))\n );\n }\n`;\n\ninterface ButtonsContainerProps {\n show: boolean;\n}\nexport const ButtonsContainer = styled(Box)<ButtonsContainerProps>`\n display: ${({ show }: ButtonsContainerProps) => (show ? 'flex' : 'none')};\n pointer-events: none;\n\n // Place at 50% of height of tallest image minus size of button\n position: absolute;\n top: calc(50% - var(--boemly-sizes-12));\n left: 0;\n width: var(--boemly-sizes-full);\n\n padding: 0 var(--boemly-sizes-32);\n justify-content: space-between;\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n display: none;\n }\n`;\n\ninterface SliderInnerContainerProps {\n imageCount: number;\n}\nexport const SliderInnerContainer = styled(\n motion.div\n)<SliderInnerContainerProps>`\n display: flex;\n gap: var(--boemly-space-6);\n\n width: fit-content;\n`;\n\nexport const ItemContainer = styled(Box)`\n width: var(--desktop-image-width);\n\n :last-of-type {\n margin-right: var(--boemly-space-8);\n }\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n width: var(--mobile-image-width);\n }\n`;\n\ninterface ImageContainerProps {\n aspectRatio: number;\n}\nexport const ImageContainer = styled(Box)<ImageContainerProps>`\n position: relative;\n\n max-height: var(--boemly-sizes-xl);\n height: calc(\n var(--desktop-image-width) /\n ${({ aspectRatio }: ImageContainerProps) => aspectRatio}\n );\n width: var(--desktop-image-width);\n\n border-radius: var(--boemly-radii-xl);\n\n & img {\n border-radius: var(--boemly-radii-xl);\n }\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n height: calc(\n var(--mobile-image-width) /\n ${({ aspectRatio }: ImageContainerProps) => aspectRatio}\n );\n width: var(--mobile-image-width);\n }\n`;\n","const ALLOWED_RATIOS = [2 / 3, 1 / 1, 3 / 2];\n\nexport const getClosestRatio = (width: number, height: number): number => {\n const ratio = width / height;\n\n let minDiff = Math.abs(ratio - ALLOWED_RATIOS[0]);\n let posMinDiff = 0;\n\n ALLOWED_RATIOS.forEach((allowedRatio, index) => {\n if (Math.abs(ratio - allowedRatio) < minDiff) {\n minDiff = Math.abs(ratio - allowedRatio);\n posMinDiff = index;\n }\n });\n\n return ALLOWED_RATIOS[posMinDiff];\n};\n","import React, { useRef, useState } from 'react';\nimport {\n Box,\n IconButton,\n DefaultSectionContainer,\n Flex,\n Text,\n useMediaQuery,\n} from 'boemly';\nimport Image from 'next/image';\nimport { useMeasure, useWindowSize } from 'react-use';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { ArrowLeft, ArrowRight } from '@phosphor-icons/react';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport FullScreenImage from '../../components/FullScreenImage';\nimport { BREAKPOINT_MD_QUERY } from '../../constants/breakpoints';\nimport {\n ButtonsContainer,\n ItemContainer,\n SliderContainer,\n SliderInnerContainer,\n ImageContainer,\n} from './styles';\nimport { getClosestRatio } from './utils';\n\nexport interface FullWidthImageSliderProps {\n slice: {\n images: {\n id: number;\n caption: string;\n img: StrapiImage;\n }[];\n };\n}\nexport const FullWidthImageSlider: React.FC<FullWidthImageSliderProps> = ({\n slice,\n}: FullWidthImageSliderProps) => {\n const containerRef = useRef(null);\n const [imageRef, { width: imageWidth }] = useMeasure<HTMLDivElement>();\n const { width: windowWidth } = useWindowSize();\n const [isMobile] = useMediaQuery(BREAKPOINT_MD_QUERY);\n\n const [sliderIndex, setSliderIndex] = useState(0);\n const [isOpen, setIsOpen] = useState(false);\n\n const allowScroll = windowWidth / 2 / imageWidth < slice.images.length;\n const canMoveRight = sliderIndex < slice.images.length - 1;\n const canMoveLeft = sliderIndex !== 0;\n\n return (\n <DefaultSectionContainer>\n <SliderContainer ref={containerRef}>\n <SliderInnerContainer\n animate={{\n x: imageWidth * -sliderIndex,\n }}\n transition={{\n duration: 0.3,\n ease: 'easeInOut',\n }}\n imageCount={slice.images.length}\n >\n {slice.images.map((image, index) => (\n <ItemContainer key={image.id} ref={imageRef}>\n <Flex\n height=\"full\"\n width=\"full\"\n justifyContent=\"end\"\n flexDirection=\"column\"\n gap=\"2\"\n >\n <ImageContainer\n aspectRatio={getClosestRatio(\n image.img.img.data.attributes.width,\n image.img.img.data.attributes.height\n )}\n >\n <Image\n src={strapiMediaUrl(image.img.img, 'large')}\n alt={image.img.alt}\n fill\n style={{\n objectFit: image.img.objectFit || 'cover',\n cursor: isMobile ? 'unset' : 'pointer',\n }}\n onClick={() => {\n setSliderIndex(index);\n if (!isMobile) setIsOpen(true);\n }}\n />\n </ImageContainer>\n <Text height=\"6\">{image.caption}</Text>\n </Flex>\n </ItemContainer>\n ))}\n </SliderInnerContainer>\n </SliderContainer>\n\n <ButtonsContainer show={allowScroll && !isOpen}>\n <Box>\n <AnimatePresence>\n {canMoveLeft && (\n <IconButton\n key=\"leftButton\"\n as={motion.button}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n size=\"lg\"\n variant=\"outline\"\n onClick={() => setSliderIndex(sliderIndex - 1)}\n aria-label=\"Move left\"\n icon={<ArrowLeft size={16} />}\n pointerEvents=\"auto\"\n />\n )}\n </AnimatePresence>\n </Box>\n <Box>\n <AnimatePresence>\n {canMoveRight && (\n <IconButton\n key=\"rightButton\"\n as={motion.button}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n size=\"lg\"\n variant=\"outline\"\n onClick={() => setSliderIndex(sliderIndex + 1)}\n aria-label=\"Move right\"\n icon={<ArrowRight size={16} />}\n pointerEvents=\"auto\"\n />\n )}\n </AnimatePresence>\n </Box>\n </ButtonsContainer>\n\n <FullScreenImage\n images={slice.images.map((image) => image.img)}\n openIndex={sliderIndex}\n isOpen={isOpen}\n onClose={() => setIsOpen(false)}\n />\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport {\n Box,\n DefaultSectionContainer,\n Grid,\n GridItem,\n SimpleGrid,\n Text,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\n\nexport interface SideBySideImagesProps {\n slice: {\n images: {\n id: number;\n caption: string;\n img: StrapiImage;\n }[];\n };\n}\nexport const SideBySideImages: React.FC<SideBySideImagesProps> = ({\n slice,\n}: SideBySideImagesProps) => (\n <DefaultSectionContainer>\n <Wrapper>\n <Grid templateColumns=\"repeat(12, 1fr)\" gap=\"4\">\n <GridItem colSpan={[12, null, null, 7]}>\n <SimpleGrid\n columns={[1, null, null, 2]}\n gap={['12', null, null, '6']}\n >\n {slice.images.map((image) => (\n <Box key={image.id}>\n <Box height=\"md\" position=\"relative\" borderRadius=\"xl\">\n <Image\n src={strapiMediaUrl(image.img.img, 'large')}\n alt={image.img.alt}\n fill\n style={{\n objectFit: image.img.objectFit || 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n <Text mt=\"3\" size=\"xsLowNormal\">\n {image.caption}\n </Text>\n </Box>\n ))}\n </SimpleGrid>\n </GridItem>\n </Grid>\n </Wrapper>\n </DefaultSectionContainer>\n);\n","import React, { useContext } from 'react';\nimport {\n Box,\n Container,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Flex,\n Gradient,\n Spacer,\n Wrapper,\n} from 'boemly';\nimport StrapiButtonWithVariant from '../../models/strapi/StrapiButtonWithVariant';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport Image from 'next/image';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport { CDN_URI } from '../../constants/api';\nimport { IntlContext } from '../../components/ContextProvider';\n\ntype Variant = 'gray' | 'green' | 'white';\n\nenum CtaCardType {\n Left = 'left',\n CenterWithoutImage = 'centerWithoutImage',\n CenterWithImage = 'centerWithImage',\n Right = 'right',\n}\n\nexport interface CtaProps {\n slice: {\n tagline?: string;\n title?: string;\n subTitle?: string;\n variant: Variant;\n ctaCards: CtaCard[];\n };\n}\n\nexport interface CtaCard {\n id: number;\n tagline?: string;\n title: string;\n subTitle?: string;\n image?: StrapiImage;\n buttons?: StrapiButtonWithVariant[];\n variant: Variant;\n backgroundShape: boolean;\n textAlign: 'left' | 'right' | 'center';\n}\n\nconst STATES: Record<CtaCardType, Record<string, any>> = {\n left: {\n textAlign: 'left',\n paddingTagline: '0',\n paddingTitle: '0',\n justifyContent: 'space-between',\n buttonJustifyContent: 'start',\n textMarginLeft: ['0', null, null, null, '14'],\n },\n centerWithoutImage: {\n textAlign: 'center',\n paddingTagline: '28',\n paddingTitle: '20',\n justifyContent: 'center',\n buttonJustifyContent: 'center',\n textMarginLeft: '0',\n },\n centerWithImage: {\n textAlign: 'center',\n paddingTagline: '28',\n paddingTitle: '20',\n justifyContent: 'center',\n buttonJustifyContent: 'center',\n textMarginLeft: '0',\n },\n right: {\n textAlign: 'left',\n paddingTagline: '0',\n paddingTitle: '0',\n justifyContent: 'start',\n buttonJustifyContent: 'start',\n textMarginLeft: '0',\n },\n};\n\nconst VARIANTS: Record<Variant, Record<string, Record<CtaCardType, string>>> = {\n gray: {\n backgroundColor: {\n left: 'primary.50',\n centerWithoutImage: 'primary.50',\n centerWithImage: 'primary.50',\n right: 'primary.50',\n },\n taglineColor: {\n left: 'primary.500',\n centerWithoutImage: 'primary.500',\n centerWithImage: 'white',\n right: 'primary.500',\n },\n titleColor: {\n left: 'black',\n centerWithoutImage: 'black',\n centerWithImage: 'white',\n right: 'black',\n },\n subTitleColor: {\n left: 'black',\n centerWithoutImage: 'black',\n centerWithImage: 'white',\n right: 'black',\n },\n },\n green: {\n backgroundColor: {\n left: 'primary.800',\n centerWithoutImage: 'primary.800',\n centerWithImage: 'primary.800',\n right: 'primary.800',\n },\n taglineColor: {\n left: 'white',\n centerWithoutImage: 'white',\n centerWithImage: 'white',\n right: 'white',\n },\n titleColor: {\n left: 'white',\n centerWithoutImage: 'white',\n centerWithImage: 'white',\n right: 'white',\n },\n subTitleColor: {\n left: 'white',\n centerWithoutImage: 'white',\n centerWithImage: 'white',\n right: 'white',\n },\n },\n white: {\n backgroundColor: {\n left: 'white',\n centerWithoutImage: 'white',\n centerWithImage: 'primary.800',\n right: 'white',\n },\n taglineColor: {\n left: 'primary.500',\n centerWithoutImage: 'primary.500',\n centerWithImage: 'white',\n right: 'primary.500',\n },\n titleColor: {\n left: 'black',\n centerWithoutImage: 'black',\n centerWithImage: 'white',\n right: 'black',\n },\n subTitleColor: {\n left: 'black',\n centerWithoutImage: 'black',\n centerWithImage: 'white',\n right: 'black',\n },\n },\n};\n\nconst getTypeOfCard = (ctaCard: CtaCard): CtaCardType => {\n if (ctaCard.textAlign === 'center') {\n if (ctaCard.image) {\n return CtaCardType.CenterWithImage;\n }\n return CtaCardType.CenterWithoutImage;\n }\n if (ctaCard.textAlign === 'left') {\n return CtaCardType.Left;\n }\n return CtaCardType.Right;\n};\n\nexport const Cta: React.FC<CtaProps> = ({ slice }: CtaProps) => {\n const { formatMessage } = useContext(IntlContext);\n\n return (\n <DefaultSectionContainer\n backgroundColor={VARIANTS[slice.variant].backgroundColor.left}\n >\n <Wrapper>\n {slice.title ? (\n <>\n <Flex alignItems=\"center\" flexDirection=\"column\">\n <DefaultSectionHeader\n tagline={slice.tagline}\n taglineProps={{\n color: VARIANTS[slice.variant].taglineColor.left,\n textAlign: 'center',\n maxWidth: '3xl',\n }}\n title={slice.title}\n titleProps={{\n color: VARIANTS[slice.variant].titleColor.left,\n textAlign: 'center',\n width: 'full',\n maxWidth: '3xl',\n }}\n text={slice.subTitle}\n textProps={{\n color: VARIANTS[slice.variant].subTitleColor.left,\n textAlign: 'center',\n maxWidth: '3xl',\n }}\n />\n </Flex>\n <Spacer height={['16', null, null, null, '20']} />\n </>\n ) : (\n <></>\n )}\n <Flex gap=\"4\" flexDirection=\"column\">\n {slice.ctaCards.map((ctaCard) => {\n const ctaCardType = getTypeOfCard(ctaCard);\n\n return (\n <Container\n backgroundColor={\n VARIANTS[ctaCard.variant].backgroundColor[ctaCardType]\n }\n key={ctaCard.id}\n position=\"relative\"\n elevation=\"none\"\n >\n {ctaCard.image &&\n ctaCardType === CtaCardType.CenterWithImage ? (\n <Box\n position=\"absolute\"\n left=\"0\"\n top=\"0\"\n width=\"full\"\n height=\"full\"\n borderRadius=\"xl\"\n overflow=\"hidden\"\n >\n <Image\n src={strapiMediaUrl(ctaCard.image.img, 'large')}\n alt={ctaCard.image.alt}\n fill\n style={{\n objectFit: ctaCard.image.objectFit || 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n <Gradient />\n </Box>\n ) : (\n <></>\n )}\n {ctaCard.backgroundShape ? (\n <Box\n position=\"absolute\"\n left=\"0\"\n top=\"0\"\n width=\"full\"\n height=\"full\"\n >\n <Image\n src={\n ctaCardType === CtaCardType.CenterWithImage ||\n ctaCard.variant === 'green'\n ? `${CDN_URI}/assets/v3/strapi-slices/shapes-dark.svg`\n : `${CDN_URI}/assets/v3/strapi-slices/shapes-light.svg`\n }\n alt={formatMessage({\n id: `sections.cta.backgroundShapes${\n ctaCardType === CtaCardType.CenterWithImage ||\n ctaCard.variant === 'green'\n ? 'Dark'\n : 'Light'\n }`,\n })}\n fill\n style={{\n objectFit: 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n ) : (\n <></>\n )}\n\n <Flex\n flexDir={['column', null, null, null, 'row']}\n flexGrow=\"1\"\n gap={['8', null, null, null, '16']}\n justifyContent={STATES[ctaCardType].justifyContent}\n >\n {ctaCard.image && ctaCardType === CtaCardType.Right ? (\n <Box\n position=\"relative\"\n height={['3xs', null, null, null, 'auto']}\n minWidth={[null, null, null, null, '50%']}\n >\n <Image\n src={strapiMediaUrl(ctaCard.image.img, 'medium')}\n alt={ctaCard.image.alt}\n fill\n style={{\n objectFit: ctaCard.image.objectFit || 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n ) : (\n <></>\n )}\n\n <Box\n zIndex=\"base\"\n marginLeft={STATES[ctaCardType].textMarginLeft}\n maxWidth=\"3xl\"\n >\n <Spacer height={['0', null, null, null, '20']} />\n\n <DefaultSectionHeader\n tagline={ctaCard.tagline}\n taglineProps={{\n textAlign: STATES[ctaCardType].textAlign,\n color:\n VARIANTS[ctaCard.variant].taglineColor[ctaCardType],\n paddingX: [\n '0',\n null,\n null,\n null,\n STATES[ctaCardType].paddingTagline,\n ],\n }}\n title={ctaCard.title}\n titleProps={{\n fontFamily: 'Inter',\n fontSize: '4xl',\n fontWeight: '600',\n lineHeight: '9',\n textAlign: STATES[ctaCardType].textAlign,\n paddingX: [\n '0',\n null,\n null,\n null,\n STATES[ctaCardType].paddingTitle,\n ],\n color:\n VARIANTS[ctaCard.variant].titleColor[ctaCardType],\n }}\n text={ctaCard.subTitle}\n textProps={{\n textAlign: STATES[ctaCardType].textAlign,\n color:\n VARIANTS[ctaCard.variant].subTitleColor[ctaCardType],\n }}\n />\n {ctaCard.buttons && ctaCard.buttons.length > 0 ? (\n <>\n <Spacer height=\"8\" />\n <Flex\n gap=\"2\"\n justifyContent={\n STATES[ctaCardType].buttonJustifyContent\n }\n >\n {ctaCard.buttons &&\n ctaCard.buttons.map((button) => (\n <StrapiLinkButton\n key={button.button.id}\n link={button.button}\n size=\"md\"\n variant={button.variant}\n />\n ))}\n </Flex>\n </>\n ) : (\n <></>\n )}\n <Spacer height={['1', null, null, null, '20']} />\n </Box>\n {ctaCard.image && ctaCardType === CtaCardType.Left ? (\n <Box\n position=\"relative\"\n height={['3xs', null, null, null, 'auto']}\n minWidth={[null, null, null, null, '50%']}\n >\n <Image\n src={strapiMediaUrl(ctaCard.image.img, 'medium')}\n alt={ctaCard.image.alt}\n fill\n style={{\n objectFit: ctaCard.image.objectFit || 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n ) : (\n <></>\n )}\n </Flex>\n </Container>\n );\n })}\n </Flex>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport { Box, Wrapper } from 'boemly';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiLink from '../../models/strapi/StrapiLink';\n\nexport interface CtaOnlyProps {\n slice: {\n button: StrapiLink;\n };\n}\n\nexport const CtaOnly: React.FC<CtaOnlyProps> = ({ slice }: CtaOnlyProps) => (\n <Wrapper>\n <Box position=\"absolute\" top=\"-28\" transform=\"translateY(50%)\">\n <StrapiLinkButton size=\"md\" link={slice.button} />\n </Box>\n </Wrapper>\n);\n","import React, { useContext, useState } from 'react';\nimport {\n DefaultSectionContainer,\n Divider,\n Flex,\n GridItem,\n Heading,\n IconButton,\n SimpleGrid,\n Text,\n Wrapper,\n} from 'boemly';\nimport { Check, Link as LinkIcon } from '@phosphor-icons/react';\nimport { useCopyToClipboard } from 'react-use';\nimport IStrapiData from '../../models/strapi/IStrapiData';\nimport StrapiGlossaryItem from '../../models/strapi/StrapiGlossaryItem';\nimport { IntlContext } from '../../components/ContextProvider';\n\nexport interface GlossaryProps {\n slice: {\n glossary_items: IStrapiData<StrapiGlossaryItem>[];\n };\n}\n\nexport const Glossary: React.FC<GlossaryProps> = ({ slice }: GlossaryProps) => {\n const [, copyToClipboard] = useCopyToClipboard();\n const { formatMessage } = useContext(IntlContext);\n const grouped: Record<string, StrapiGlossaryItem[]> = {};\n const [copiedItem, setCopiedItem] = useState<string>();\n\n slice.glossary_items\n .sort((a, b) => a.attributes.title.localeCompare(b.attributes.title))\n .forEach((curr) => {\n const index = curr.attributes.title.at(0)?.toUpperCase() || 'A';\n if (!grouped[index]) {\n grouped[index] = [];\n }\n grouped[index].push(curr.attributes);\n }, {});\n\n const handleAnchorClick = async (slug: string) => {\n if (window?.location) {\n const currentUrl = window.location.href.split('#')[0];\n copyToClipboard(`${currentUrl}#${slug}`);\n setCopiedItem(slug);\n\n setTimeout(() => {\n setCopiedItem(undefined);\n }, 1200);\n }\n };\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n <SimpleGrid>\n {Object.entries(grouped).map(([letter, items], index) => (\n <GridItem maxW=\"xl\" placeSelf=\"center\" key={letter}>\n <Heading size=\"3xl\" mb=\"8\">\n {letter}\n </Heading>\n\n <SimpleGrid spacing=\"6\">\n {items.map((item) => (\n <GridItem key={item.slug}>\n <Flex mb=\"2\" gap=\"1.5\" alignItems=\"center\">\n <Heading\n size=\"xl\"\n id={item.slug}\n scrollMarginTop=\"calc(var(--header-height) + var(--boemly-sizes-10))\"\n >\n {item.title}\n </Heading>\n <IconButton\n variant=\"ghost\"\n size=\"xs\"\n icon={\n copiedItem === item.slug ? (\n <Check size=\"16\" data-testid=\"check-icon\" />\n ) : (\n <LinkIcon size=\"16\" />\n )\n }\n title={formatMessage({\n id: 'sections.glossary.copyButtonLabel',\n })}\n aria-label={formatMessage({\n id: 'sections.glossary.copyButtonLabel',\n })}\n onClick={async () => handleAnchorClick(item.slug)}\n />\n </Flex>\n <Text color=\"black\">{item.text}</Text>\n </GridItem>\n ))}\n </SimpleGrid>\n\n {index !== Object.keys(grouped).length - 1 && (\n <Divider maxW=\"xl\" placeSelf=\"center\" mb=\"10\" mt=\"10\" />\n )}\n </GridItem>\n ))}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","export const MINIMUM_CONTRIBUTION_VALUE_IN_MONEY = 10;\n\nexport const MAXIMUM_CONTRIBUTION_VALUE_IN_MONEY = 60_000;\n","import React, { useContext, useCallback } from 'react';\nimport {\n Badge,\n BoemlyFormControl,\n Box,\n Button,\n Container,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Divider,\n Flex,\n InputRightAddon,\n LabelNumberPair,\n RichText,\n SimpleGrid,\n Spacer,\n useToken,\n Wrapper,\n} from 'boemly';\nimport { Field, FieldProps, Form, Formik, FormikProps } from 'formik';\nimport { useRouter } from 'next/router';\nimport { FPM_API_URI } from '../../constants/api';\nimport CheckoutForm from '../../models/forms/CheckoutForm';\nimport {\n MAXIMUM_CONTRIBUTION_VALUE_IN_MONEY,\n MINIMUM_CONTRIBUTION_VALUE_IN_MONEY,\n} from '../../constants/domain';\nimport { IntlContext } from '../../components/ContextProvider';\n\nexport interface ShopCheckoutProps {\n slice: {\n tagline?: string;\n title: string;\n text?: string;\n badge?: string;\n batchId: string;\n pricePerKg: number;\n couponId?: string;\n initialContributionValue: number;\n checkoutText: string;\n currency: 'EUR' | 'CHF';\n };\n}\n\nexport const ShopCheckout = ({ slice }: ShopCheckoutProps): JSX.Element => {\n const [primary50] = useToken('colors', ['primary.50']);\n const { formatMessage, formatNumber, locale } = useContext(IntlContext);\n const { push } = useRouter();\n\n const validateForm = useCallback(\n (values: CheckoutForm) => {\n const errors: Partial<{ contributionValue: string }> = {};\n\n if (!values.contributionValue) {\n errors.contributionValue = formatMessage({\n id: 'sections.shopCheckout.contributionValue.validation.empty',\n });\n } else if (\n values.contributionValue < MINIMUM_CONTRIBUTION_VALUE_IN_MONEY\n ) {\n errors.contributionValue = formatMessage({\n id: `sections.shopCheckout.contributionValue.validation.tooLow.${slice.currency}`,\n });\n } else if (\n values.contributionValue > MAXIMUM_CONTRIBUTION_VALUE_IN_MONEY\n ) {\n errors.contributionValue = formatMessage({\n id: 'sections.shopCheckout.contributionValue.validation.tooHigh',\n });\n }\n\n return errors;\n },\n [locale]\n );\n\n const onSubmit = ({ contributionValue }: CheckoutForm) => {\n const url = new URL(`${FPM_API_URI}/v1/webhooks/shop/checkout`);\n\n url.searchParams.append('batchId', slice.batchId);\n\n url.searchParams.append(\n 'quantity',\n Math.floor(contributionValue / slice.pricePerKg).toString()\n );\n\n if (slice.couponId) url.searchParams.append('couponId', slice.couponId);\n\n push(url.toString());\n };\n\n return (\n <DefaultSectionContainer backgroundColor={primary50} title={slice.title}>\n <Wrapper>\n <Flex\n flexDir={['column', null, null, null, 'row']}\n justifyContent=\"space-between\"\n alignItems={['left', null, null, null, 'center']}\n >\n <Box marginRight={['0', null, null, null, '36']} flexShrink={2}>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n />\n </Box>\n <Container maxWidth=\"md\" padding=\"lg\" shadow=\"lg\">\n {slice.badge ? (\n <>\n <Badge\n colorScheme=\"green\"\n textTransform=\"none\"\n whiteSpace=\"unset\"\n >\n {slice.badge}\n </Badge>\n <Spacer height=\"3\" />\n </>\n ) : (\n <></>\n )}\n\n <RichText\n content={slice.checkoutText}\n textProps={{ color: 'gray.500' }}\n />\n\n <Spacer height=\"6\" />\n <Divider />\n <Spacer height=\"6\" />\n\n <LabelNumberPair\n label={formatMessage({ id: 'sections.shopCheckout.intro.price' })}\n number={`${formatNumber(slice.pricePerKg * 100, {\n style: 'currency',\n currency: slice.currency,\n })}/${formatNumber(100, {\n style: 'unit',\n unit: 'kilogram',\n })} CO₂`}\n />\n\n <Spacer height=\"6\" />\n <Divider />\n <Spacer height=\"6\" />\n\n <Formik\n initialValues={{\n contributionValue: slice.initialContributionValue,\n }}\n validate={validateForm}\n onSubmit={onSubmit}\n >\n {({\n errors,\n touched,\n handleSubmit,\n values,\n }: FormikProps<CheckoutForm>) => (\n <Form onSubmit={handleSubmit}>\n <Box width=\"full\">\n <Field name=\"contributionValue\">\n {({ field }: FieldProps) => (\n <BoemlyFormControl\n id=\"contributionValue\"\n size=\"md\"\n inputProps={{ type: 'number', ...field }}\n label={formatMessage({\n id: `sections.shopCheckout.contributionValue.label.${slice.currency}`,\n })}\n rightAddonsOrElements={[\n <InputRightAddon key=\"1\">\n {formatMessage({\n id: `sections.shopCheckout.contributionValue.unit.${slice.currency}`,\n })}\n </InputRightAddon>,\n ]}\n isInvalid={\n !!errors.contributionValue &&\n touched.contributionValue\n }\n errorMessage={errors.contributionValue}\n />\n )}\n </Field>\n </Box>\n\n <Spacer height=\"6\" />\n\n <SimpleGrid columns={2} gap=\"4\">\n <LabelNumberPair\n label={formatMessage({\n id: 'sections.shopCheckout.summary.kg',\n })}\n number={`${formatNumber(\n Math.floor(values.contributionValue / slice.pricePerKg),\n {\n style: 'unit',\n unit: 'kilogram',\n maximumFractionDigits: 0,\n }\n )} CO₂`}\n />\n <LabelNumberPair\n label={formatMessage({\n id: 'sections.shopCheckout.summary.price',\n })}\n number={formatNumber(\n Math.floor(\n values.contributionValue / slice.pricePerKg\n ) * slice.pricePerKg,\n {\n style: 'currency',\n currency: slice.currency,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n }\n )}\n />\n </SimpleGrid>\n\n <Spacer height=\"6\" />\n\n <Button type=\"submit\" width=\"full\">\n {formatMessage({ id: 'sections.shopCheckout.submit' })}\n </Button>\n </Form>\n )}\n </Formik>\n </Container>\n </Flex>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport {\n DefaultSectionContainer,\n DefaultSectionHeader,\n Flex,\n Heading,\n Spacer,\n Text,\n} from 'boemly';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiLink from '../../models/strapi/StrapiLink';\n\nexport interface FactsProps {\n slice: {\n tagline?: string;\n title?: string;\n subTitle?: string;\n button?: StrapiLink;\n variant: 'gray' | 'green' | 'white';\n facts: { key: string; value: string }[];\n };\n}\n\nconst VARIANTS = {\n gray: {\n backgroundColor: 'primary.50',\n tagLineColor: 'primary.500',\n titleColor: 'black',\n subTitleColor: 'black',\n factKeyColor: 'gray.700',\n factValueColor: 'gray.700',\n },\n green: {\n backgroundColor: 'primary.800',\n tagLineColor: 'white',\n titleColor: 'white',\n subTitleColor: 'white',\n factKeyColor: 'whiteAlpha.900',\n factValueColor: 'white',\n },\n white: {\n backgroundColor: 'white',\n tagLineColor: 'primary.500',\n titleColor: 'black',\n subTitleColor: 'black',\n factKeyColor: 'gray.700',\n factValueColor: 'gray.700',\n },\n};\n\nexport const Facts: React.FC<FactsProps> = ({ slice }: FactsProps) => (\n <DefaultSectionContainer\n backgroundColor={VARIANTS[slice.variant].backgroundColor}\n flexDir=\"column\"\n textAlign=\"center\"\n justifyContent=\"space-between\"\n paddingX={['6', null, '8']}\n title={slice.title}\n >\n <>\n {slice.title && (\n <>\n <DefaultSectionHeader\n tagline={slice.tagline}\n text={slice.subTitle}\n title={slice.title}\n taglineProps={{\n color: VARIANTS[slice.variant].tagLineColor,\n textAlign: 'center',\n }}\n titleProps={{\n color: VARIANTS[slice.variant].titleColor,\n textAlign: 'center',\n maxW: '6xl',\n marginX: 'auto',\n }}\n textProps={{\n color: VARIANTS[slice.variant].subTitleColor,\n textAlign: 'center',\n maxW: '3xl',\n marginX: 'auto',\n }}\n />\n <Spacer height={['0', null, '12']} />\n </>\n )}\n <Flex\n justifyContent={slice.facts.length < 3 ? 'center' : 'flex-start'}\n alignItems=\"center\"\n flexWrap=\"wrap\"\n mx={[null, null, null, '22', '28']}\n flexDir={['column', null, null, 'row']}\n gap={[null, null, null, '12']}\n >\n {slice.facts.map((fact) => (\n <Flex\n key={fact.key}\n flexDir=\"column\"\n width={[\n 'var(--boemly-sizes-full)',\n null,\n null,\n 'calc((var(--boemly-sizes-full) - var(--boemly-space-24))/ 3 )',\n ]}\n mt={['8', '8', '8', slice.facts.length > 3 ? '16' : '0']}\n >\n <Heading\n fontSize=\"6xl\"\n fontFamily=\"GintoNord\"\n lineHeight=\"10\"\n fontWeight=\"700\"\n color={VARIANTS[slice.variant].factValueColor}\n mb=\"2\"\n as=\"p\"\n >\n {fact.value}\n </Heading>\n\n <Text\n size=\"mdLowNormal\"\n color={VARIANTS[slice.variant].factKeyColor}\n >\n {fact.key}\n </Text>\n </Flex>\n ))}\n </Flex>\n\n {slice.button && (\n <>\n <Spacer height={['0', null, '20']} />\n <StrapiLinkButton\n link={slice.button}\n size=\"md\"\n variant={slice.variant === 'green' ? 'outline' : 'solid'}\n />\n </>\n )}\n </>\n </DefaultSectionContainer>\n);\n","import React, { useContext, useMemo } from 'react';\nimport {\n Text,\n Heading,\n Spacer,\n DatePersonPair,\n DefaultSectionHeader,\n DefaultSectionContainer,\n Wrapper,\n SimpleGrid,\n Box,\n Flex,\n useMediaQuery,\n useToken,\n} from 'boemly';\nimport Image from 'next/image';\nimport Link from 'next/link';\nimport { CaretRight } from '@phosphor-icons/react';\nimport StrapiBlogPost from '../../models/strapi/StrapiBlogPost';\nimport IStrapiData from '../../models/strapi/IStrapiData';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiCategory from '../../models/strapi/StrapiCategory';\nimport IStrapi from '../../models/strapi/IStrapi';\nimport { BREAKPOINT_LG_QUERY } from '../../constants/breakpoints';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport { BlogItemContainer, ImageContainer } from '../Blog/styles';\nimport { IntlContext } from '../../components/ContextProvider';\n\nexport interface BlogCardsProps {\n slice: {\n tagline: string;\n title: string;\n subTitle: string;\n button?: StrapiLink;\n variant: 'white' | 'gray';\n blogPostCategory?: IStrapi<IStrapiData<StrapiCategory>>;\n };\n blogPosts: IStrapiData<StrapiBlogPost>[];\n}\n\nconst VARIANTS = {\n white: {\n backgroundColor: 'white',\n },\n gray: {\n backgroundColor: 'primary.50',\n },\n};\n\nconst sortByCreatedAt = (\n a: IStrapiData<StrapiBlogPost>,\n b: IStrapiData<StrapiBlogPost>\n): number =>\n new Date(b.attributes.createdAt).getTime() -\n new Date(a.attributes.createdAt).getTime();\n\nexport const BlogCards: React.FC<BlogCardsProps> = ({\n slice,\n blogPosts,\n}: BlogCardsProps) => {\n const { formatDate } = useContext(IntlContext);\n const [mobile] = useMediaQuery(BREAKPOINT_LG_QUERY);\n const [gray700] = useToken('colors', ['gray.700']);\n\n const sortedBlogPosts = useMemo(\n () => blogPosts.sort(sortByCreatedAt),\n [blogPosts]\n );\n\n const blogPostsToDisplay = useMemo(\n () =>\n slice.blogPostCategory?.data?.attributes.name\n ? sortedBlogPosts\n .filter(\n (blogPost) =>\n blogPost.attributes.category?.data.attributes.name ===\n slice.blogPostCategory?.data?.attributes.name\n )\n .slice(0, 3)\n : sortedBlogPosts.slice(0, 3),\n [sortedBlogPosts, slice]\n );\n\n return (\n <DefaultSectionContainer\n backgroundColor={VARIANTS[slice.variant].backgroundColor}\n title={slice.title}\n >\n <Wrapper>\n {mobile || !slice.button ? (\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.subTitle}\n titleProps={{ maxW: '2xl' }}\n textProps={{ maxW: '2xl' }}\n />\n ) : (\n <Flex justifyContent=\"space-between\" alignItems=\"center\" gap=\"60\">\n <Box>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.subTitle}\n />\n </Box>\n <Box minWidth=\"40\">\n <StrapiLinkButton\n link={slice.button}\n size=\"lg\"\n variant=\"outline\"\n rightIcon={<CaretRight color={gray700} />}\n />\n </Box>\n </Flex>\n )}\n <Spacer height=\"14\" />\n <SimpleGrid\n columns={[1, null, null, 3]}\n spacingX={4}\n spacingY={24}\n flexShrink=\"0\"\n >\n {blogPostsToDisplay.map((blogPost) => (\n <BlogItemContainer\n as={Link}\n href={`/blog/${blogPost.attributes.slug}`}\n data-testid=\"blog-item\"\n key={blogPost.attributes.slug}\n >\n <ImageContainer>\n <Image\n src={strapiMediaUrl(blogPost.attributes.img.img, 'medium')}\n alt={blogPost.attributes.img.alt}\n fill\n style={{\n objectFit: blogPost.attributes.img.objectFit || 'cover',\n }}\n />\n </ImageContainer>\n <Box px=\"2\" py=\"8\">\n {blogPost.attributes.category && (\n <Text size=\"smMonoUppercase\" color=\"primary.800\" mb=\"2\">\n {blogPost.attributes.category.data.attributes.name}\n </Text>\n )}\n <Heading size=\"lg\">{blogPost.attributes.title}</Heading>\n {blogPost.attributes.teaser && (\n <Text size=\"mdRegularNormal\" mt=\"2\">\n {blogPost.attributes.teaser}\n </Text>\n )}\n\n <Spacer height=\"4\" />\n\n <DatePersonPair\n date={formatDate(blogPost.attributes.createdAt)}\n person={\n blogPost.attributes.author\n ? {\n name: blogPost.attributes.author.data.attributes.name,\n image: (\n <Image\n src={strapiMediaUrl(\n blogPost.attributes.author.data.attributes.img\n .img,\n 'thumbnail'\n )}\n alt={\n blogPost.attributes.author.data.attributes.img\n .alt\n }\n fill\n style={{\n objectFit:\n blogPost.attributes.author.data.attributes.img\n .objectFit || 'cover',\n }}\n />\n ),\n }\n : undefined\n }\n />\n </Box>\n </BlogItemContainer>\n ))}\n </SimpleGrid>\n <>\n {mobile && slice.button && (\n <>\n <Box minWidth=\"40\" mt=\"6\">\n <StrapiLinkButton\n link={slice.button}\n size=\"lg\"\n variant=\"outline\"\n rightIcon={<CaretRight color={gray700} />}\n />\n </Box>\n </>\n )}\n </>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React, { useContext, useCallback } from 'react';\nimport { CDN_URI, FPM_API_URI } from '../../../constants/api';\nimport StrapiLinkButton from '../../../components/StrapiLinkButton';\nimport {\n BoemlyFormControl,\n Box,\n Button,\n Divider,\n Flex,\n InputRightAddon,\n Spacer,\n Text,\n} from 'boemly';\nimport {\n Field,\n FieldProps,\n Form,\n Formik,\n FormikErrors,\n FormikProps,\n} from 'formik';\nimport { useRouter } from 'next/router';\nimport Image from 'next/image';\nimport StrapiLink from '../../../models/strapi/StrapiLink';\nimport {\n MAXIMUM_CONTRIBUTION_VALUE_IN_MONEY,\n MINIMUM_CONTRIBUTION_VALUE_IN_MONEY,\n} from '../../../constants/domain';\nimport { IntlContext } from '../../ContextProvider';\n\nexport interface SmallCheckoutProps {\n batchId: string;\n pricePerKg: number;\n initialContributionValue: number;\n checkoutText?: string;\n currency: 'EUR' | 'CHF';\n\n title?: string;\n subtitle?: string;\n button?: StrapiLink;\n}\n\ninterface SmallCheckoutForm {\n contributionValueCurrency: number;\n contributionValueKgs: number;\n}\n\nconst SmallCheckout = ({\n pricePerKg,\n currency,\n batchId,\n initialContributionValue,\n checkoutText,\n title,\n subtitle,\n button,\n}: SmallCheckoutProps) => {\n const { formatNumber, formatMessage, locale } = useContext(IntlContext);\n const { push } = useRouter();\n\n const validateForm = useCallback(\n (values: SmallCheckoutForm) => {\n const errors: FormikErrors<SmallCheckoutForm> = {};\n\n if (!values.contributionValueCurrency) {\n errors.contributionValueCurrency = formatMessage({\n id: 'portfolio.smallCheckout.contributionValueCurrency.validation.empty',\n });\n } else if (\n values.contributionValueCurrency < MINIMUM_CONTRIBUTION_VALUE_IN_MONEY\n ) {\n errors.contributionValueCurrency = formatMessage({\n id: `portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.${currency}`,\n });\n } else if (\n values.contributionValueCurrency > MAXIMUM_CONTRIBUTION_VALUE_IN_MONEY\n ) {\n errors.contributionValueCurrency = formatMessage({\n id: 'portfolio.smallCheckout.contributionValueCurrency.validation.tooHigh',\n });\n }\n\n return errors;\n },\n [locale]\n );\n\n const onSubmit = async ({ contributionValueCurrency }: SmallCheckoutForm) => {\n push(\n `${FPM_API_URI}/v1/webhooks/shop/checkout?batchId=${batchId}&quantity=${Math.floor(\n contributionValueCurrency / pricePerKg\n )}`\n );\n };\n\n return (\n <Flex\n width=\"full\"\n height=\"full\"\n borderRadius=\"xl\"\n background=\"primary.100\"\n padding=\"6\"\n direction=\"column\"\n >\n <Flex gap=\"1\" alignItems=\"end\" mb=\"6\">\n <Text color=\"black\" lineHeight=\"0\">\n {formatMessage(\n { id: 'unit.formatter.tonsCo2' },\n {\n number: (\n <Text as=\"span\" size=\"lgLowBold\" color=\"black\">\n {formatNumber(pricePerKg * 1000, {\n style: 'currency',\n currency,\n maximumFractionDigits: 0,\n })}\n </Text>\n ),\n }\n )}\n </Text>\n </Flex>\n\n <Formik\n initialValues={{\n contributionValueCurrency: initialContributionValue,\n contributionValueKgs: initialContributionValue / pricePerKg / 1000,\n }}\n validate={validateForm}\n onSubmit={onSubmit}\n >\n {({\n errors,\n touched,\n handleSubmit,\n setValues,\n }: FormikProps<SmallCheckoutForm>) => (\n <Form onSubmit={handleSubmit}>\n <Flex gap=\"4\">\n <Box width=\"full\">\n <Field name=\"contributionValueCurrency\">\n {({ field }: FieldProps) => (\n <BoemlyFormControl\n id=\"contributionValueCurrency\"\n size=\"md\"\n inputType=\"NumberInput\"\n numberInputProps={{\n value: field.value,\n onChange: (valueString) => {\n // valueAsNumber might be NaN\n const value = parseInt(valueString || '0', 10);\n\n setValues({\n contributionValueCurrency: value,\n contributionValueKgs: value / pricePerKg / 1000,\n });\n },\n }}\n label={formatMessage({\n id: `portfolio.smallCheckout.contributionValueCurrency.label.${currency}`,\n })}\n rightAddonsOrElements={[\n <InputRightAddon key=\"currencyUnit\">\n {formatMessage({\n id: `portfolio.smallCheckout.contributionValueCurrency.unit.${currency}`,\n })}\n </InputRightAddon>,\n ]}\n isInvalid={\n !!errors.contributionValueCurrency &&\n touched.contributionValueCurrency\n }\n errorMessage={errors.contributionValueCurrency}\n />\n )}\n </Field>\n </Box>\n\n <Box width=\"full\">\n <Field name=\"contributionValueKgs\">\n {({ field }: FieldProps) => (\n <BoemlyFormControl\n id=\"contributionValueKgs\"\n size=\"md\"\n inputType=\"NumberInput\"\n numberInputProps={{\n value: field.value,\n onChange: (valueString) => {\n const value = parseInt(valueString || '0', 10);\n\n setValues({\n contributionValueCurrency:\n value * pricePerKg * 1000,\n contributionValueKgs: value,\n });\n },\n }}\n label={formatMessage({\n id: 'portfolio.smallCheckout.contributionValueKgs.label',\n })}\n rightAddonsOrElements={[\n <InputRightAddon key=\"tCO₂\">tCO₂</InputRightAddon>,\n ]}\n isInvalid={\n !!errors.contributionValueKgs &&\n touched.contributionValueKgs\n }\n errorMessage={errors.contributionValueKgs}\n />\n )}\n </Field>\n </Box>\n </Flex>\n\n <Spacer height=\"4\" />\n\n <Button type=\"submit\" width=\"full\">\n {formatMessage({ id: 'portfolio.smallCheckout.submitButton' })}\n </Button>\n </Form>\n )}\n </Formik>\n\n <Flex\n width=\"full\"\n justifyContent=\"center\"\n alignItems=\"center\"\n mt=\"6\"\n gap=\"2\"\n >\n <Image\n src={`${CDN_URI}/assets/v3/strapi-slices/globe-love-icon.svg`}\n alt=\"Icon\"\n width={20}\n height={20}\n />\n <Text size=\"smLowNormal\">{checkoutText}</Text>\n </Flex>\n\n <Divider my=\"6\" />\n\n <Flex width=\"full\" alignItems=\"center\" direction=\"column\">\n {title && (\n <Text size=\"smLowBold\" textAlign=\"center\" color=\"black\" mb=\"2\">\n {title}\n </Text>\n )}\n {subtitle && (\n <Text size=\"smRegularNormal\" textAlign=\"center\" mb=\"3\">\n {subtitle}\n </Text>\n )}\n {button && (\n <StrapiLinkButton\n link={{\n id: 1,\n intercomLauncher: true,\n text: button.text,\n }}\n variant=\"outline\"\n />\n )}\n </Flex>\n </Flex>\n );\n};\n\nexport default SmallCheckout;\n","const convertAreaM2ToHa = (areaInM2: string): number =>\n parseInt(areaInM2, 10) / 10000;\n\nexport default convertAreaM2ToHa;\n","const convertCo2AmountKgToTons = (amount: string): number =>\n parseInt(amount, 10) / 1000;\n\nexport default convertCo2AmountKgToTons;\n","import { FormatNumberOptions } from 'react-intl';\n\nexport const FORMAT_AS_EUR_CONFIG: FormatNumberOptions = {\n style: 'currency',\n currency: 'EUR',\n};\n\nexport const FORMAT_AS_METER_CONFIG: FormatNumberOptions = {\n unit: 'meter',\n unitDisplay: 'short',\n style: 'unit',\n maximumFractionDigits: 0,\n};\n\nexport const FORMAT_AS_HECTARE_CONFIG: FormatNumberOptions = {\n unit: 'hectare',\n unitDisplay: 'short',\n style: 'unit',\n maximumFractionDigits: 2,\n};\n\nexport const FORMAT_AS_CUBIC_METERS_PER_HECTARE_CONFIG: FormatNumberOptions = {\n maximumFractionDigits: 0,\n};\n\nexport const FORMAT_AS_PERCENT_CONFIG: FormatNumberOptions = {\n style: 'percent',\n maximumFractionDigits: 2,\n};\n","const getTimeSpanInYears = (start: Date, end: Date) => {\n const monthsDifference = end.getMonth() - start.getMonth();\n const yearsDifference = end.getFullYear() - start.getFullYear();\n\n if (monthsDifference > 4) {\n return yearsDifference + 1;\n }\n if (monthsDifference < -4) {\n return yearsDifference - 1;\n }\n return yearsDifference;\n};\n\nexport default getTimeSpanInYears;\n","import React, { useContext } from 'react';\nimport {\n Box,\n Container,\n Divider,\n Flex,\n Heading,\n LabelTextPair,\n SimpleGrid,\n Spacer,\n} from 'boemly';\nimport Image from 'next/image';\nimport convertAreaM2ToHa from '../../../utils/convertAreaM2ToHa';\nimport convertCo2AmountKgToTons from '../../../utils/convertCo2AmountKgToTons';\nimport CreditsAvailableBadge from '../../../components/CreditsAvailableBadge';\nimport PortfolioProject from '../../../models/PortfolioProject';\nimport {\n FORMAT_AS_HECTARE_CONFIG,\n FORMAT_AS_PERCENT_CONFIG,\n} from '../../../constants/formatter';\nimport getTimeSpanInYears from '../../../utils/getTimeSpanInYears';\nimport { IntlContext } from '../../ContextProvider';\n\nexport interface ProjectInfoProps {\n project: PortfolioProject;\n subtitles: {\n areaSubtitle?: string;\n locationSubtitle?: string;\n startSubtitle?: string;\n timeSpanSubtitle?: string;\n projectTypeSubtitle?: string;\n projectDeveloperSubtitle?: string;\n verificationStandardSubtitle?: string;\n forecastedAmountSubtitle?: string;\n riskBufferSubtitle?: string;\n buyCreditsSubtitle?: string;\n };\n}\n\nexport const ProjectInfo: React.FC<ProjectInfoProps> = ({\n project,\n subtitles,\n}: ProjectInfoProps) => {\n const { formatMessage, formatNumber, formatDate } = useContext(IntlContext);\n\n return (\n <Container p=\"2\" width=\"full\">\n <Heading size=\"xl\" textAlign=\"left\">\n {formatMessage({ id: 'features.projectInfo.projectInfo.value' })}\n </Heading>\n\n <Spacer height=\"8\" />\n\n <SimpleGrid\n columns={[1, null, null, 2]}\n gap=\"8\"\n spacingX=\"10\"\n spacingY=\"8\"\n >\n {project.area && (\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.area',\n })}\n text={formatNumber(\n convertAreaM2ToHa(project.area.toString()),\n FORMAT_AS_HECTARE_CONFIG\n )}\n caption={subtitles.areaSubtitle}\n />\n </Box>\n )}\n\n {project.location && (\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.location',\n })}\n text={project.location}\n caption={subtitles.locationSubtitle}\n />\n </Box>\n )}\n\n {project.start && (\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.start',\n })}\n text={formatDate(project.start, {\n year: 'numeric',\n month: 'long',\n })}\n caption={subtitles.startSubtitle}\n />\n </Box>\n )}\n\n {project.start && project.end && (\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.timeSpan',\n })}\n text={formatMessage(\n {\n id: 'features.projectInfo.properties.year',\n },\n {\n years: getTimeSpanInYears(\n new Date(project.start),\n new Date(project.end)\n ),\n }\n )}\n caption={subtitles.timeSpanSubtitle}\n />\n </Box>\n )}\n </SimpleGrid>\n\n {project.projectType ||\n project.projectDeveloper ||\n project.verificationStandard ? (\n <>\n <Spacer height=\"6\" />\n <Divider />\n <Spacer height=\"6\" />\n </>\n ) : (\n <></>\n )}\n <SimpleGrid columns={[1, null, null, 2]} spacingX=\"10\" spacingY=\"8\">\n {project.projectType && (\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.projectType',\n })}\n text={project.projectType.title}\n caption={subtitles.projectTypeSubtitle}\n />\n </Box>\n )}\n {project.projectDeveloper && (\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.projectDeveloper',\n })}\n text={project.projectDeveloper.name}\n caption={subtitles.projectDeveloperSubtitle}\n />\n </Box>\n )}\n </SimpleGrid>\n\n {project.verificationStandard ? (\n <>\n {project.projectType || project.projectDeveloper ? (\n <Spacer height=\"6\" />\n ) : (\n <></>\n )}\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.verificationStandard.label',\n })}\n text={formatMessage({\n id: `features.projectInfo.properties.verificationStandard.value.${project.verificationStandard.id}`,\n defaultMessage: project.verificationStandard.id,\n })}\n caption={subtitles.verificationStandardSubtitle}\n />\n </Box>\n\n {project.defaultIssuer && (\n <Box position=\"relative\" width=\"14\" height=\"8\">\n <Image\n src={project.defaultIssuer.logoUrl}\n alt={`${project.defaultIssuer.name} logo`}\n fill\n style={{ objectFit: 'contain' }}\n />\n </Box>\n )}\n </Flex>\n </>\n ) : (\n <></>\n )}\n\n {project.forecastedAmountYearly && project.riskBuffer ? (\n <>\n <Spacer height=\"8\" />\n <Divider />\n <Spacer height=\"8\" />\n <SimpleGrid columns={[1, null, null, 2]} spacingX=\"10\" spacingY=\"8\">\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.forecastedAmountYear.label',\n })}\n text={formatMessage(\n {\n id: 'unit.formatter.tonsCo2PerYear',\n },\n {\n number: formatNumber(\n convertCo2AmountKgToTons(\n project.forecastedAmountYearly.toString()\n ),\n { maximumFractionDigits: 0 }\n ),\n }\n )}\n caption={subtitles.forecastedAmountSubtitle}\n />\n </Box>\n\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.riskBuffer',\n })}\n text={formatNumber(\n project.riskBuffer / 100,\n FORMAT_AS_PERCENT_CONFIG\n )}\n caption={subtitles.riskBufferSubtitle}\n />\n </Box>\n </SimpleGrid>\n </>\n ) : (\n <></>\n )}\n\n {project.creditsAvailable ? (\n <Box mt=\"2\">\n <CreditsAvailableBadge status={project.creditsAvailable} />\n </Box>\n ) : (\n <></>\n )}\n </Container>\n );\n};\n","import React, { useContext } from 'react';\nimport StrapiLink from '../../../models/strapi/StrapiLink';\nimport {\n Center,\n Container,\n Flex,\n Heading,\n IconButton,\n Spacer,\n Text,\n} from 'boemly';\nimport { DownloadSimple, FilePdf } from '@phosphor-icons/react';\nimport Link from 'next/link';\nimport { IntlContext } from '../../ContextProvider';\n\nexport interface DocumentsDownloadListProps {\n documentUrls: StrapiLink[];\n}\n\nexport const DocumentsDownloadList: React.FC<DocumentsDownloadListProps> = ({\n documentUrls,\n}: DocumentsDownloadListProps) => {\n const { formatMessage } = useContext(IntlContext);\n\n return (\n <Container p=\"2\">\n <Heading size=\"xl\" textAlign=\"left\">\n {formatMessage({\n id: 'features.portfolio.documentsDownloadList.projectDocuments',\n })}\n </Heading>\n\n <Flex flexDir=\"column\">\n {documentUrls.map((documentUrl) => (\n <Flex\n justifyContent=\"space-between\"\n alignItems=\"center\"\n mt=\"6\"\n key={documentUrl.text}\n >\n <Flex alignItems=\"center\">\n <Center\n w=\"8\"\n h=\"8\"\n borderRadius=\"full\"\n borderWidth=\"1px\"\n borderColor=\"grey.200\"\n >\n <FilePdf />\n </Center>\n\n <Spacer width=\"4\" />\n\n <Flex flexDir=\"column\">\n <Text size=\"smMonoNormal\">PDF</Text>\n <Text size=\"mdLowBold\" color=\"black\" textAlign=\"left\">\n {documentUrl.text}\n </Text>\n </Flex>\n </Flex>\n\n <Spacer width=\"32\" />\n\n <IconButton\n variant=\"outline\"\n aria-label={formatMessage({\n id: 'features.portfolio.documentsDownloadList.downloadDocument',\n })}\n icon={<DownloadSimple />}\n as={Link}\n href={documentUrl.url}\n size=\"sm\"\n />\n </Flex>\n ))}\n </Flex>\n </Container>\n );\n};\n","import React from 'react';\nimport StrapiImage from '../../../models/strapi/StrapiImage';\nimport StrapiLink from '../../../models/strapi/StrapiLink';\nimport strapiMediaUrl from '../../../utils/strapiMediaUrl';\nimport { Text, Heading, Flex, Box, Container } from 'boemly';\nimport Image from 'next/image';\nimport StrapiLinkButton from '../../../components/StrapiLinkButton';\n\nexport interface ContactProps {\n avatar?: StrapiImage;\n title?: string;\n text?: string;\n button?: StrapiLink;\n}\n\nexport const Contact: React.FC<ContactProps> = ({\n avatar,\n title,\n text,\n button,\n}: ContactProps) => (\n <Container backgroundColor=\"primary.100\" border=\"none\" p=\"8\" height=\"full\">\n <Flex\n flexDir=\"column\"\n justifyContent=\"center\"\n alignItems=\"center\"\n height=\"full\"\n >\n {avatar ? (\n <Box\n position=\"relative\"\n width=\"20\"\n height=\"20\"\n borderRadius=\"full\"\n overflow=\"hidden\"\n >\n <Image\n src={strapiMediaUrl(avatar.img, 'small')}\n alt={avatar.alt}\n fill\n objectFit={avatar.objectFit}\n />\n </Box>\n ) : (\n <></>\n )}\n {title ? (\n <Heading\n mt=\"6\"\n size=\"md\"\n fontWeight=\"500\"\n textAlign=\"center\"\n color=\"black\"\n >\n {title}\n </Heading>\n ) : (\n <></>\n )}\n {text ? (\n <Text mt=\"2\" size=\"smRegularNormal\" textAlign=\"center\">\n {text}\n </Text>\n ) : (\n <></>\n )}\n {button ? (\n <StrapiLinkButton mt=\"6\" link={button} size=\"md\" variant=\"outline\" />\n ) : (\n <></>\n )}\n </Flex>\n </Container>\n);\n","import React from 'react';\nimport { DefaultSectionContainer, Flex, Wrapper } from 'boemly';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport PortfolioProject from '../../models/PortfolioProject';\nimport SmallCheckout from '../../components/portfolio/SmallCheckout';\nimport ProjectInfo from '../../components/portfolio/ProjectInfo';\nimport DocumentsDownloadList from '../../components/portfolio/DocumentsDownloadList';\nimport Contact from '../../components/portfolio/Contact';\nimport StrapiImage from '../../models/strapi/StrapiImage';\n\nexport interface ProjectFactsProps {\n project?: PortfolioProject;\n slice: {\n projectId: string;\n\n batchId?: string;\n currency?: 'EUR' | 'CHF';\n pricePerKg?: number;\n initialContributionValue?: number;\n checkoutText?: string;\n\n customTitle?: string;\n customSubtitle?: string;\n customButton?: StrapiLink;\n documentUrls?: StrapiLink[];\n\n areaSubtitle?: string;\n locationSubtitle?: string;\n startSubtitle?: string;\n timeSpanSubtitle?: string;\n projectTypeSubtitle?: string;\n projectDeveloperSubtitle?: string;\n verificationStandardSubtitle?: string;\n forecastedAmountSubtitle?: string;\n riskBufferSubtitle?: string;\n buyCreditsSubtitle?: string;\n\n contactTitle?: string;\n contactText?: string;\n contactButton?: StrapiLink;\n contactAvatar?: StrapiImage;\n };\n}\n\nexport const ProjectFacts: React.FC<ProjectFactsProps> = ({\n slice,\n project,\n}: ProjectFactsProps) => {\n if (!project) {\n return (\n <>Invalid configuration, check if a project this id exists in the FPM</>\n );\n }\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n <Flex flexDir={['column', null, null, 'row']} gap=\"4\" width=\"full\">\n <ProjectInfo project={project} subtitles={slice} />\n <Flex flexDir=\"column\" gap=\"4\" width=\"full\">\n {slice.documentUrls && slice.documentUrls.length > 0 && (\n <DocumentsDownloadList documentUrls={slice.documentUrls} />\n )}\n {slice.batchId &&\n slice.pricePerKg &&\n slice.currency &&\n slice.initialContributionValue ? (\n <SmallCheckout\n batchId={slice.batchId}\n checkoutText={slice.checkoutText}\n currency={slice.currency}\n initialContributionValue={slice.initialContributionValue}\n pricePerKg={slice.pricePerKg}\n title={slice.customTitle}\n subtitle={slice.customSubtitle}\n button={slice.customButton}\n />\n ) : (\n (slice.contactTitle ||\n slice.contactText ||\n slice.contactButton ||\n slice.contactAvatar) && (\n <Contact\n title={slice.contactTitle}\n text={slice.contactText}\n button={slice.contactButton}\n avatar={slice.contactAvatar}\n />\n )\n )}\n </Flex>\n </Flex>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React, { useContext } from 'react';\nimport IStrapiData from '../../models/strapi/IStrapiData';\nimport StrapiCustomerStory from '../../models/strapi/StrapiCustomerStory';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport {\n Box,\n Button,\n Center,\n Container,\n DefaultSectionContainer,\n Heading,\n SimpleGrid,\n Text,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport Link from 'next/link';\nimport { IntlContext } from '../../components/ContextProvider';\n\nexport interface CustomerStoriesProps {\n slice: {\n customer_stories: IStrapiData<StrapiCustomerStory>[];\n };\n customerStories: IStrapiData<StrapiCustomerStory>[];\n}\n\nexport const CustomerStories = ({\n slice,\n customerStories,\n}: CustomerStoriesProps): JSX.Element => {\n const { formatMessage } = useContext(IntlContext);\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n <SimpleGrid columns={[1, null, null, 2]} spacingX={56} spacingY={24}>\n {slice.customer_stories.map(({ attributes }) => {\n const customerStory: IStrapiData<StrapiCustomerStory> | undefined =\n customerStories.find(\n (cs) => cs.attributes.slug === attributes.slug\n );\n if (!customerStory) {\n return null;\n }\n return (\n <Container padding=\"none\" key={customerStory.id}>\n <Center\n height=\"24\"\n backgroundColor=\"primary.50\"\n borderTopRadius=\"xl\"\n >\n <Box position=\"relative\" height=\"12\" width=\"12\">\n <Image\n src={strapiMediaUrl(\n customerStory.attributes.customerLogo.img,\n 'medium'\n )}\n alt={customerStory.attributes.customerLogo.alt}\n fill\n style={{\n objectFit:\n customerStory.attributes.customerLogo.objectFit,\n }}\n />\n </Box>\n </Center>\n <Box px=\"6\" pt=\"12\" pb=\"6\">\n <Text size=\"xsMonoUppercase\" color=\"gray.500\" mb=\"2\">\n {customerStory.attributes.customerIndustry}\n </Text>\n <Heading size=\"xl\">{customerStory.attributes.title}</Heading>\n <Button\n as={Link}\n href={`/customer-stories/${customerStory.attributes.slug}`}\n variant=\"outline\"\n size=\"sm\"\n mt=\"12\"\n >\n {formatMessage({ id: 'sections.customerStories.more' })}\n </Button>\n </Box>\n </Container>\n );\n })}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport { Check, X } from '@phosphor-icons/react';\nimport { Box } from 'boemly';\n\nexport interface IconProps {\n variant: 'gray' | 'green' | 'white';\n icon: string;\n}\n\nconst BULLET_POINT_VARIANTS = {\n gray: { bulletPointColor: 'black' },\n green: { bulletPointColor: 'white' },\n white: { bulletPointColor: 'black' },\n};\n\nexport const Icon = ({ variant, icon }: IconProps): JSX.Element => {\n switch (icon) {\n case 'check':\n return <Check size={20} color=\"var(--boemly-colors-primary-500)\" />;\n case 'cross':\n return <X size={20} color=\"var(--boemly-colors-red-500)\" />;\n default:\n return (\n <Box\n data-testid=\"bullet-point-box\"\n borderRadius=\"full\"\n backgroundColor={BULLET_POINT_VARIANTS[variant].bulletPointColor}\n width=\"2\"\n height=\"2\"\n margin=\"1.5\"\n />\n );\n }\n};\nexport default Icon;\n","import React, { useContext } from 'react';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport {\n Container,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Wrapper,\n Text,\n Flex,\n Box,\n Spacer,\n Divider,\n Heading,\n Badge,\n SimpleGrid,\n} from 'boemly';\nimport Image from 'next/image';\nimport { CaretRight } from '@phosphor-icons/react';\nimport { Icon } from './Icon';\nimport { CDN_URI } from '../../constants/api';\nimport { IntlContext } from '../../components/ContextProvider';\n\nexport interface ComparisonProps {\n slice: {\n title?: string;\n subTitle?: string;\n tagline?: string;\n\n comparisonCards: ComparisonCard[];\n };\n}\n\nexport interface ComparisonCard {\n id: number;\n title: string;\n subTitle: string;\n badge?: string;\n variant: 'gray' | 'green' | 'white';\n image?: StrapiImage;\n button?: StrapiLink;\n factTitle?: string;\n factSubtitle?: string;\n lists: {\n id: string;\n title: string;\n items: { id: string; text: string; icon: 'bullet' | 'check' | 'cross' }[];\n }[];\n}\n\nconst VARIANTS = {\n gray: {\n backgroundColor: 'primary.50',\n textColor: 'black',\n subTitleColor: 'gray.500',\n factColor: 'primary.800',\n dividerColor: 'gray.200',\n },\n green: {\n backgroundColor: 'primary.800',\n textColor: 'white',\n subTitleColor: 'whiteAlpha.900',\n factColor: 'white',\n dividerColor: 'whiteAlpha.200',\n },\n white: {\n backgroundColor: 'white',\n textColor: 'black',\n subTitleColor: 'gray.500',\n factColor: 'primary.800',\n dividerColor: 'gray.200',\n },\n};\n\nexport const Comparison: React.FC<ComparisonProps> = ({\n slice,\n}: ComparisonProps) => {\n const { formatMessage } = useContext(IntlContext);\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n {slice.title ? (\n <>\n <Flex alignItems=\"center\" flexDirection=\"column\">\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.subTitle}\n textProps={{ maxW: '2xl', textAlign: 'center' }}\n titleProps={{\n textAlign: 'center',\n maxWidth: '3xl',\n }}\n taglineProps={{ textAlign: 'center', maxWidth: '3xl' }}\n />\n </Flex>\n <Spacer height=\"12\" />\n </>\n ) : (\n <></>\n )}\n <SimpleGrid\n columns={[1, null, null, null, slice.comparisonCards.length]}\n spacing=\"4\"\n >\n {slice.comparisonCards.map((comparisonCard) => (\n <Container\n boxShadow={comparisonCard.variant === 'green' ? 'xl' : 'base'}\n border={\n comparisonCard.variant === 'green' ? 'primary.800' : undefined\n }\n zIndex=\"base\"\n key={comparisonCard.id}\n position=\"relative\"\n elevation=\"none\"\n p=\"3\"\n backgroundColor={VARIANTS[comparisonCard.variant].backgroundColor}\n >\n {comparisonCard.variant === 'green' ? (\n <Box\n position=\"absolute\"\n left=\"0\"\n top=\"0\"\n width=\"full\"\n height=\"full\"\n zIndex=\"-1\"\n >\n <Image\n src={`${CDN_URI}/assets/v3/strapi-slices/shapes-comparison.svg`}\n alt={formatMessage({\n id: 'sections.comparison.backgroundShapes',\n })}\n fill\n style={{\n objectFit: 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n ) : (\n <></>\n )}\n <Flex flexDir=\"column\" gap=\"4\">\n {comparisonCard.image && (\n <Box position=\"relative\" height=\"7\" width=\"100%\">\n <Image\n src={strapiMediaUrl(comparisonCard.image.img, 'small')}\n alt={comparisonCard.image.alt}\n fill\n style={{\n objectFit: comparisonCard.image.objectFit,\n }}\n />\n </Box>\n )}\n <Flex gap=\"2\" alignItems=\"center\" flexWrap=\"wrap\">\n <Heading\n size=\"2xl\"\n color={VARIANTS[comparisonCard.variant].textColor}\n whiteSpace=\"pre-line\"\n >\n {comparisonCard.title}\n </Heading>\n {comparisonCard.badge && (\n <Badge\n backgroundColor=\"green.100\"\n borderRadius=\"md\"\n whiteSpace=\"pre-line\"\n >\n {comparisonCard.badge}\n </Badge>\n )}\n </Flex>\n </Flex>\n <Spacer height=\"4\" />\n <Text\n size=\"smRegularNormal\"\n color={VARIANTS[comparisonCard.variant].subTitleColor}\n >\n {comparisonCard.subTitle}\n </Text>\n\n {comparisonCard.factTitle ||\n comparisonCard.factSubtitle ||\n comparisonCard.button ? (\n <>\n <Spacer height=\"6\" />\n <Flex flexDir=\"column\">\n {comparisonCard.factTitle && (\n <>\n <Text\n color={VARIANTS[comparisonCard.variant].factColor}\n size=\"lgMonoNormal\"\n >\n {comparisonCard.factTitle}\n </Text>\n <Text\n color={VARIANTS[comparisonCard.variant].factColor}\n size=\"smLowNormal\"\n >\n {comparisonCard.factSubtitle}\n </Text>\n </>\n )}\n {comparisonCard.button && (\n <StrapiLinkButton\n mt=\"6\"\n link={comparisonCard.button}\n size=\"md\"\n variant=\"outline\"\n rightIcon={<CaretRight size={16} weight=\"bold\" />}\n />\n )}\n </Flex>\n </>\n ) : (\n <></>\n )}\n <>\n {comparisonCard.lists.map((list) => (\n <Box key={list.id}>\n <Divider\n my=\"8\"\n color={VARIANTS[comparisonCard.variant].dividerColor}\n />\n <Text\n size=\"smLowBold\"\n color={VARIANTS[comparisonCard.variant].textColor}\n >\n {list.title}\n </Text>\n <>\n {list.items.map((item) => (\n <Box key={item.id}>\n <Spacer height=\"4\" />\n <Flex gap=\"4\" alignItems=\"center\">\n <Box>\n <Icon\n variant={comparisonCard.variant}\n icon={item.icon}\n />\n </Box>\n <Text\n size=\"smLowNormal\"\n color={VARIANTS[comparisonCard.variant].textColor}\n >\n {item.text}\n </Text>\n </Flex>\n </Box>\n ))}\n </>\n </Box>\n ))}\n </>\n </Container>\n ))}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\nexport default Comparison;\n","import React from 'react';\nimport FullWidthImage from '../../slices/FullWidthImage';\nimport Hero from '../../slices/Hero';\nimport IconGrid from '../../slices/IconGrid';\nimport ImageGrid from '../../slices/ImageGrid';\nimport ImageTextSequence from '../../slices/ImageTextSequence';\nimport LeftTextRightCard from '../../slices/LeftTextRightCard';\nimport LogoGridWithText from '../../slices/LogoGridWithText';\nimport MapHero from '../../slices/MapHero';\nimport QAndA from '../../slices/QAndA';\nimport QuoteCards from '../../slices/QuoteCards';\nimport RichTextSection from '../../slices/RichTextSection';\nimport Steps from '../../slices/Steps';\nimport TextCardGrid from '../../slices/TextCardGrid';\nimport TextCarousel from '../../slices/TextCarousel';\nimport TextWithTextCards from '../../slices/TextWithTextCards';\nimport TextWithCard from '../../slices/TextWithCard';\nimport LinkCardsGrid from '../../slices/LinkCardsGrid';\nimport SmallHero from '../../slices/SmallHero';\nimport Blog from '../../slices/Blog';\nimport StrapiBlogPost from '../../models/strapi/StrapiBlogPost';\nimport ProjectsGrid from '../../slices/ProjectsGrid';\nimport ProjectsMap from '../../slices/ProjectsMap';\nimport Video from '../../slices/Video';\nimport FullWidthHighlightQuote from '../../slices/FullWidthHighlightQuote';\nimport FullWidthImageSlider from '../../slices/FullWidthImageSlider';\nimport SideBySideImages from '../../slices/SideBySideImages';\nimport IStrapiData from '../../models/strapi/IStrapiData';\nimport Cta from '../../slices/Cta';\nimport CtaOnly from '../../slices/CtaOnly';\nimport Glossary from '../../slices/Glossary';\nimport ShopCheckout from '../../slices/ShopCheckout';\nimport Facts from '../../slices/Facts';\nimport BlogCards from '../../slices/BlogCards';\nimport PortfolioProject from '../../models/PortfolioProject';\nimport ProjectFacts from '../../slices/ProjectFacts';\nimport CustomerStories from '../../slices/CustomerStories';\nimport StrapiCustomerStory from '../../models/strapi/StrapiCustomerStory';\nimport Comparison from '../../slices/Comparison';\nimport Locale from '../../models/Locale';\nimport { ContextProvider } from '../ContextProvider';\n\nexport interface CustomSliceProps {\n slice: any;\n id: string;\n}\n\nexport interface SliceRendererProps {\n slices: any;\n blogPosts: IStrapiData<StrapiBlogPost>[];\n projects: PortfolioProject[];\n customerStories: IStrapiData<StrapiCustomerStory>[];\n locale?: Locale;\n CustomSlice?: ({ slice, id }: CustomSliceProps) => JSX.Element;\n}\n\nexport const SliceRenderer = ({\n slices,\n blogPosts,\n projects,\n customerStories,\n locale = 'en',\n CustomSlice,\n}: SliceRendererProps): JSX.Element => (\n <ContextProvider locale={locale}>\n {slices.map((slice: any) => {\n switch (slice.__component) {\n case 'sections.hero':\n return (\n <Hero key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.map-hero':\n return (\n <MapHero key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.rich-text':\n return (\n <RichTextSection\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.left-text-right-card':\n return (\n <LeftTextRightCard\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.text-with-card':\n return (\n <TextWithCard\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.logo-grid-with-text':\n return (\n <LogoGridWithText\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.quote-cards':\n return (\n <QuoteCards\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.q-and-a':\n return (\n <QAndA key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.image-grid':\n return (\n <ImageGrid key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.full-width-image':\n return (\n <FullWidthImage\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.text-with-text-cards':\n return (\n <TextWithTextCards\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.text-card-grid':\n return (\n <TextCardGrid\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.icon-grid':\n return (\n <IconGrid key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.image-text-sequence':\n return (\n <ImageTextSequence\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.steps':\n return (\n <Steps key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.text-carousel':\n return (\n <TextCarousel\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.link-cards-grid':\n return (\n <LinkCardsGrid\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.small-hero':\n return (\n <SmallHero\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n theme=\"dark\"\n />\n );\n case 'sections.small-hero-light':\n return (\n <SmallHero\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n theme=\"light\"\n />\n );\n case 'sections.project-facts':\n return (\n <ProjectFacts\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n project={projects.find((p) => p.id === slice.projectId)}\n />\n );\n case 'sections.projects-grid':\n return (\n <ProjectsGrid\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.projects-map':\n return (\n <ProjectsMap\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n projects={projects}\n />\n );\n case 'sections.video':\n return (\n <Video key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.full-width-highlight-quote':\n return (\n <FullWidthHighlightQuote\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.full-width-image-slider':\n return (\n <FullWidthImageSlider\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.side-by-side-images':\n return (\n <SideBySideImages\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.cta-only':\n return (\n <CtaOnly key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.cta':\n return <Cta key={`${slice.__component}-${slice.id}`} slice={slice} />;\n case 'sections.shop-checkout':\n return (\n <ShopCheckout\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.facts':\n return (\n <Facts key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.blog-cards':\n return (\n <BlogCards\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n blogPosts={blogPosts}\n />\n );\n case 'sections.blog':\n return (\n <Blog\n key={`${slice.__component}-${slice.id}`}\n slice={{\n ...slice,\n blog_posts: slice.blog_posts.data,\n }}\n blogPosts={blogPosts}\n />\n );\n case 'sections.glossary':\n return (\n <Glossary\n key={`${slice.__component}-${slice.id}`}\n slice={{\n ...slice,\n glossary_items: slice.glossary_items.data,\n }}\n />\n );\n case 'sections.customer-stories':\n return (\n <CustomerStories\n key={`${slice.__component}-${slice.id}`}\n slice={{\n ...slice,\n customer_stories: slice.customer_stories.data,\n }}\n customerStories={customerStories}\n />\n );\n case 'sections.comparison':\n return (\n <Comparison\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n default:\n if (CustomSlice) {\n return (\n <CustomSlice\n key={`${slice.__component}-${slice.id}`}\n id={slice.__component}\n slice={slice}\n />\n );\n }\n\n return (\n <div key={`${slice.__component}-${slice.id}`}>\n Slice component not supported\n </div>\n );\n }\n })}\n </ContextProvider>\n);\n"],"names":["STRAPI_URI","process","env","NEXT_PUBLIC_STRAPI_URI","strapiMediaUrl","media","preferredSize","_ref","data","attributes","url","ext","_media$data$attribute","formats","indexOf","includes","STORYBOOK","ZoomableImage","image","_ref$zoom","zoom","_useState","useState","isZoomed","setIsZoomed","_useState2","backgroundPos","setBackgroundPos","imageSrc","img","zoomInPosition","e","zoomer","currentTarget","getBoundingClientRect","x","clientX","width","y","clientY","height","toggleZoomImage","handleClick","handleMove","React","createElement","Fragment","Head","rel","as","href","Box","position","display","overflow","flexShrink","scrollSnapAlign","scrollSnapStop","draggable","cursor","backgroundImage","backgroundSize","backgroundPosition","onClick","onMouseMove","Image","src","alt","fill","style","visibility","objectFit","FullScreenImage","images","isOpen","onClose","openIndex","imageIndex","setImageIndex","containerRef","useRef","useLockBodyScroll","canMoveRight","length","canMoveLeft","onRight","p","onLeft","useKey","useEffect","undefined","current","scrollTo","left","clientWidth","behavior","onCloseLocal","BoemlyModal","title","trigger","size","content","Flex","insetY","insetX","alignItems","justifyContent","ref","flexGrow","flexBasis","gap","marginX","scrollSnapType","map","key","id","inset","pointerEvents","IconButton","icon","CaretLeft","variant","mr","CaretRight","ml","BREAKPOINT_MD","BREAKPOINT_LG","BREAKPOINT_MD_QUERY","BREAKPOINT_LG_QUERY","FullWidthImage","slice","setIsOpen","_useMediaQuery","useMediaQuery","isMobile","DefaultSectionContainer","Wrapper","DefaultSectionHeader","isHero","tagline","text","taglineProps","textAlign","mt","titleProps","maxW","textProps","borderRadius","strapiLinkUrl","strapiLink","_strapiLink","_strapiLink2","page","slug","openHubSpotChat","w","window","HubSpotConversations","widget","open","hsConversationsOnReady","StrapiLinkButton","link","buttonProps","_objectWithoutPropertiesLoose","_excluded","adBlockDetected","useDetectAdBlock","intercomLauncher","Button","_extends","Link","Hero","minHeight","backgroundColor","overflowX","Gradient","shape","bottom","borderTopRightRadius","right","top","transform","subTitle","color","mx","button","additionalButtons","IconGrid","flexDirection","Spacer","h","SimpleGrid","columns","rowGap","iconsWithTextAndButton","iconWithTextAndButton","margin","Heading","mb","Text","LinkedInIcon","viewBox","xmlns","clipPath","d","StrapiLinkButtonWithIcon","props","getLinkIcon","destination","Globe","rightIcon","ImageGrid","_useToken","useToken","primary50","minChildWidth","_ref2","links","flexDir","flexWrap","NEXT_PUBLIC_API_URI","FPM_API_URI","NEXT_PUBLIC_FPM_API_URI","CDN_URI","ImageTextSequence","oneColumnGrid","_useToken2","gray700","background","imageTextRows","index","imageBox","LeftTextRightCard","_useRouter","useRouter","push","Grid","templateColumns","templateRows","GridItem","colSpan","rowSpan","pr","checkMarkLabels","BoemlyList","listItems","colorScheme","ArrowRight","card","PortfolioCard","_slice$card","facts","portfolioNumber","LogoGridWithText","RichText","logos","logo","MapHeroContainer","styled","_templateObject","_taggedTemplateLiteralLoose","MapHeroTextContainer","_templateObject2","ShapeContainer","_templateObject3","MapContainer","_templateObject4","MapGradient","_templateObject5","MapHero","belowBreakpoint","buttons","mobileMap","convertToKebabCase","str","matches","match","toLowerCase","join","VARIANTS","gray","tagLineColor","textColor","accordionVariant","otherQuestionsBackground","green","white","QAndA","_slice$variant","pb","hero","paddingY","maxHeight","paddingTop","paddingRight","overflowY","BoemlyAccordion","rows","questionsAndAnswers","defaultIndex","padding","otherQuestions","HeroCard","_slice$hero","QuoteCards","paddingBottom","shapes","Shape","radius","cards","maxWidth","QuoteCard","avatar","name","description","marginTop","RichTextSection","Steps","_slice$card$shapes","gray900","Array","steps","stepRefs","setStepRefs","stepProgress","setStepProgress","_useWindowScroll","useWindowScroll","offsetY","_useWindowSize","useWindowSize","windowHeight","createRef","_containerRef$current","containerOffsetTop","offsetTop","_ref$current","currentItemOffsetTop","step","Center","options","forceBlock","marginBottom","borderLeft","opacity","borderRight","transition","ShapesCard","ShapePosition","shapePositions","topLeft","bottomRight","topRight","bottomLeft","oppositesOfCorners","_oppositesOfCorners","unset","variants","positionIcon","TextCardGrid","primary800","justifyItems","zIndex","boxShadow","borderBottomRightRadius","borderBottomLeftRadius","borderTopLeftRadius","css","listProps","textSize","buttonIndex","weight","CarouselContainer","CarouselInnerContainer","motion","div","numberOfItems","CardContainer","_ref3","TextCarousel","drag","dragConstraints","slides","TextCardWithIcon","displayAs","TextWithTextCards","contact","ContactArea","_slice$contact","_slice$contact2","TextWithCard","cardPosition","ProjectCard","footerSubTitle","footerTitle","columnGap","MEDIUM_TRANSITION_DURATION","LinkCardsGrid","px","py","borderStyle","borderWidth","borderColor","transitionDuration","_hover","minWidth","colors","dark","light","SmallHero","theme","gradient","tags","direction","justify","wrap","Tag","BlogItemContainer","ImageContainer","rootMessagesDe","creditsAvailableBadgeMessagesDe","portfolioDocumentsDownloadListMessagesDe","portfolioProjectInfoMessagesDe","portfolioSmallCheckoutMessagesDe","comparisonMessagesDe","ctaMessagesDe","customerStoriesDe","glossaryMessagesDe","projectFactsMessagesDe","projectsMapMessagesDe","shopCheckoutMessagesDe","unitMessagesDe","rootMessagesEn","creditsAvailableBadgeMessagesEn","portfolioDocumentsDownloadListMessagesEn","portfolioProjectInfoMessagesEn","portfolioSmallCheckoutMessagesEn","comparisonMessagesEn","ctaMessagesEn","customerStoriesEn","glossaryMessagesEn","projectFactsMessagesEn","projectsMapMessagesEn","shopCheckoutMessagesEn","unitMessagesEn","GLOBAL_STYLE","FONT_CUSTOMIZATIONS","body","heading","mono","cache","createIntlCache","intlFactory","locale","createIntl","messages","de","en","IntlContext","createContext","ContextProvider","children","BoemlyThemeProvider","fonts","Global","styles","Provider","value","Blog","blogPosts","_useContext","useContext","formatDate","sortedBlogPosts","blog_posts","sort","a","b","Date","createdAt","getTime","spacingX","spacingY","blogPost","find","bp","category","teaser","DatePersonPair","date","person","author","ConditionalWrapper","condition","wrapper","ProjectsGrid","projects","_card$project","project","_card$project2","passHref","legacyBehavior","MAPBOX_TOKEN","MapBoxStyle","NEXT_PUBLIC_MAPBOX_TILES_URL","MAPBOX_MAX_ZOOM","MAPBOX_INITIAL_ZOOM","mergeBoundingBoxes","boundingBoxes","minLeft","minBottom","maxRight","maxTop","forEach","MinimalProviders","IntlProvider","CreditsAvailableState","CreditsAvailableBadge","_variants","status","formatMessage","YES","SOME","NO","NOT_YET","Badge","NextLink","MapMarker","projectDeveloper","creditsAvailable","_ref$isPublic","isPublic","_useDisclosure","useDisclosure","onOpen","blue600","onMouseEnter","onMouseLeave","MapPin","filter","Container","shadow","whiteSpace","mapboxStyle","mapboxgl","accessToken","ProjectsMap","filteredProjects","geom","center","defaultCenterCoordinates","longitude","latitude","bounds","concat","coordinates","c","mapContainer","Map","container","CaliTerrain","defaultZoomLevel","maxZoom","_project$projectDevel","document","createRoot","render","marker","Marker","offset","setLngLat","addTo","remove","Video","_useMeasure","useMeasure","youTubeID","frameBorder","allow","allowFullScreen","FullWidthHighlightQuote","quote","AvatarWithName","avatarWithName","orientation","SliderContainer","ButtonsContainer","show","SliderInnerContainer","ItemContainer","aspectRatio","ALLOWED_RATIOS","getClosestRatio","ratio","minDiff","Math","abs","posMinDiff","allowedRatio","FullWidthImageSlider","imageRef","imageWidth","windowWidth","sliderIndex","setSliderIndex","allowScroll","animate","duration","ease","imageCount","caption","AnimatePresence","initial","exit","ArrowLeft","SideBySideImages","CtaCardType","STATES","paddingTagline","paddingTitle","buttonJustifyContent","textMarginLeft","centerWithoutImage","centerWithImage","taglineColor","titleColor","subTitleColor","getTypeOfCard","ctaCard","CenterWithImage","CenterWithoutImage","Left","Right","Cta","ctaCards","ctaCardType","elevation","backgroundShape","marginLeft","paddingX","fontFamily","fontSize","fontWeight","lineHeight","CtaOnly","Glossary","_useCopyToClipboard","useCopyToClipboard","copyToClipboard","grouped","copiedItem","setCopiedItem","glossary_items","localeCompare","curr","_curr$attributes$titl","at","toUpperCase","handleAnchorClick","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_window","currentUrl","_callee$","_context","prev","next","location","split","setTimeout","stop","_x","apply","arguments","Object","entries","letter","items","placeSelf","spacing","item","scrollMarginTop","Check","LinkIcon","_onClick","_callee2","_callee2$","_context2","abrupt","keys","Divider","MINIMUM_CONTRIBUTION_VALUE_IN_MONEY","MAXIMUM_CONTRIBUTION_VALUE_IN_MONEY","ShopCheckout","formatNumber","validateForm","useCallback","values","errors","contributionValue","currency","onSubmit","URL","searchParams","append","batchId","floor","pricePerKg","toString","couponId","marginRight","badge","textTransform","checkoutText","LabelNumberPair","label","number","unit","Formik","initialValues","initialContributionValue","validate","touched","handleSubmit","Form","Field","_ref4","field","BoemlyFormControl","inputProps","type","rightAddonsOrElements","InputRightAddon","isInvalid","errorMessage","maximumFractionDigits","minimumFractionDigits","factKeyColor","factValueColor","Facts","fact","sortByCreatedAt","BlogCards","mobile","useMemo","blogPostsToDisplay","_slice$blogPostCatego","blogPostCategory","_blogPost$attributes$","_slice$blogPostCatego2","SmallCheckout","subtitle","contributionValueCurrency","contributionValueKgs","setValues","_ref5","inputType","numberInputProps","onChange","valueString","parseInt","_ref6","my","convertAreaM2ToHa","areaInM2","convertCo2AmountKgToTons","amount","FORMAT_AS_HECTARE_CONFIG","unitDisplay","FORMAT_AS_PERCENT_CONFIG","getTimeSpanInYears","start","end","monthsDifference","getMonth","yearsDifference","getFullYear","ProjectInfo","subtitles","area","LabelTextPair","areaSubtitle","locationSubtitle","year","month","startSubtitle","years","timeSpanSubtitle","projectType","verificationStandard","projectTypeSubtitle","projectDeveloperSubtitle","defaultMessage","verificationStandardSubtitle","defaultIssuer","logoUrl","forecastedAmountYearly","riskBuffer","forecastedAmountSubtitle","riskBufferSubtitle","DocumentsDownloadList","documentUrls","documentUrl","FilePdf","DownloadSimple","Contact","border","ProjectFacts","customTitle","customSubtitle","customButton","contactTitle","contactText","contactButton","contactAvatar","CustomerStories","customerStories","customer_stories","customerStory","cs","borderTopRadius","customerLogo","pt","customerIndustry","BULLET_POINT_VARIANTS","bulletPointColor","Icon","X","factColor","dividerColor","Comparison","comparisonCards","comparisonCard","factTitle","factSubtitle","lists","list","SliceRenderer","slices","_ref$locale","CustomSlice","__component","projectId"],"mappings":"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"}