@treely/strapi-slices 7.7.0 → 7.8.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 (38) hide show
  1. package/dist/components/ContextProvider/ContextProvider.d.ts +6 -0
  2. package/dist/components/SliceRenderer/SliceRenderer.d.ts +3 -1
  3. package/dist/components/StrapiLinkButton/StrapiLinkButton.d.ts +1 -0
  4. package/dist/strapi-slices.cjs.development.js +1507 -1370
  5. package/dist/strapi-slices.cjs.development.js.map +1 -1
  6. package/dist/strapi-slices.cjs.production.min.js +1 -1
  7. package/dist/strapi-slices.cjs.production.min.js.map +1 -1
  8. package/dist/strapi-slices.esm.js +1508 -1371
  9. package/dist/strapi-slices.esm.js.map +1 -1
  10. package/package.json +1 -1
  11. package/src/components/ContextProvider/ContextProvider.tsx +17 -1
  12. package/src/components/EventCard/EventCard.tsx +1 -0
  13. package/src/components/SliceRenderer/SliceRenderer.tsx +4 -1
  14. package/src/components/StrapiLinkButton/StrapiLinkButton.test.tsx +67 -7
  15. package/src/components/StrapiLinkButton/StrapiLinkButton.tsx +41 -4
  16. package/src/components/portfolio/Contact/Contact.tsx +7 -1
  17. package/src/components/portfolio/SmallCheckout/SmallCheckout.tsx +1 -0
  18. package/src/slices/BlogCards/BlogCards.tsx +2 -0
  19. package/src/slices/Comparison/Comparison.tsx +2 -1
  20. package/src/slices/Cta/Cta.tsx +1 -0
  21. package/src/slices/CtaOnly/CtaOnly.tsx +1 -1
  22. package/src/slices/Facts/Facts.tsx +1 -0
  23. package/src/slices/Hero/Hero.tsx +2 -0
  24. package/src/slices/IconGrid/IconGrid.tsx +1 -0
  25. package/src/slices/ImageGrid/ImageGrid.tsx +1 -0
  26. package/src/slices/ImageTextSequence/ImageTextSequence.tsx +1 -0
  27. package/src/slices/LeftTextRightCard/LeftTextRightCard.tsx +24 -2
  28. package/src/slices/LogoGridWithText/LogoGridWithText.tsx +1 -0
  29. package/src/slices/MapHero/MapHero.tsx +6 -1
  30. package/src/slices/QAndA/QAndA.tsx +21 -2
  31. package/src/slices/QuoteCards/QuoteCards.tsx +20 -2
  32. package/src/slices/SmallHero/SmallHero.tsx +6 -1
  33. package/src/slices/Steps/Steps.tsx +26 -2
  34. package/src/slices/TextCardGrid/TextCardGrid.tsx +1 -0
  35. package/src/slices/TextCarousel/TextCarousel.tsx +20 -1
  36. package/src/slices/TextWithCard/TextWithCard.tsx +1 -0
  37. package/src/slices/TextWithTextCards/TextWithTextCards.tsx +21 -3
  38. package/src/slices/Timeline/Timeline.tsx +1 -0
@@ -1,7 +1,7 @@
1
1
  import axios from 'axios';
2
2
  import qs from 'qs';
3
3
  import { setupCache } from 'axios-cache-interceptor';
4
- import React, { useState, useRef, useMemo, useCallback, useEffect, Fragment, createRef, createContext, useContext } from 'react';
4
+ import React, { useState, useRef, useMemo, useCallback, useEffect, createContext, useContext, Fragment, createRef } from 'react';
5
5
  import { Box, BoemlyAlert, BoemlyModal, Flex, IconButton, useMediaQuery, DefaultSectionContainer, Wrapper, DefaultSectionHeader, Button, Gradient, Spacer, SimpleGrid, Heading, Text, useToken, Grid, GridItem, BoemlyList, PortfolioCard, RichText, BoemlyAccordion, HeroCard, Shape, QuoteCard, Center, ShapesCard, TextCardWithIcon, ContactArea, Tag, Container, ProjectCard, Link as Link$1, DatePersonPair, BoemlyThemeProvider, useDisclosure, AvatarWithName, Divider, Badge, LabelNumberPair, BoemlyFormControl, InputRightAddon, LabelTextPair, Tooltip, Select, BoemlyTag } from 'boemly';
6
6
  import Head from 'next/head';
7
7
  import Image from 'next/image';
@@ -9,12 +9,12 @@ import { useLockBodyScroll, useKey, useWindowScroll, useWindowSize, useMeasure,
9
9
  import { CaretLeft, CaretRight, Globe, ArrowRight, ArrowLeft, MapPin, Check, Link as Link$2, FilePdf, DownloadSimple, X, Star, Laptop, MapPinLine, CalendarBlank, CaretUp, CaretDown, Info, ProjectorScreenChart, Confetti, ChalkboardTeacher, BowlFood, Handshake, PersonSimpleWalk, UsersThree, Headset, Webcam } from '@phosphor-icons/react';
10
10
  import Link from 'next/link';
11
11
  import { useDetectAdBlock } from 'adblock-detect-react';
12
+ import { createIntl, createIntlCache, IntlProvider, IntlContext as IntlContext$1 } from 'react-intl';
13
+ import { css, Global } from '@emotion/react';
14
+ import { SWRConfig, mutate } from 'swr/_internal';
12
15
  import { useRouter } from 'next/router';
13
16
  import styled from '@emotion/styled';
14
- import { css, Global } from '@emotion/react';
15
17
  import { motion, AnimatePresence } from 'framer-motion';
16
- import { createIntl, createIntlCache, IntlProvider, IntlContext as IntlContext$1 } from 'react-intl';
17
- import { SWRConfig, mutate } from 'swr/_internal';
18
18
  import mapboxgl, { Map as Map$1, Marker } from 'mapbox-gl';
19
19
  import { createRoot } from 'react-dom/client';
20
20
  import { Formik, Form, Field } from 'formik';
@@ -1191,1342 +1191,247 @@ var openHubSpotChat = function openHubSpotChat() {
1191
1191
  }
1192
1192
  };
1193
1193
 
1194
- var _excluded$1 = ["link"];
1195
- var StrapiLinkButton = function StrapiLinkButton(_ref) {
1196
- var link = _ref.link,
1197
- buttonProps = _objectWithoutPropertiesLoose(_ref, _excluded$1);
1198
- var adBlockDetected = useDetectAdBlock();
1199
- if (link.intercomLauncher) {
1200
- if (adBlockDetected) {
1201
- return React.createElement(Button, _extends({}, buttonProps, {
1202
- as: Link,
1203
- href: "mailto:hello@tree.ly"
1204
- }), link.text);
1205
- }
1206
- return React.createElement(Button, _extends({}, buttonProps, {
1207
- onClick: openHubSpotChat
1208
- }), link.text);
1209
- }
1210
- return React.createElement(Button, _extends({}, buttonProps, {
1211
- as: Link,
1212
- href: strapiLinkUrl(link)
1213
- }), link.text);
1194
+ var _templateObject$9;
1195
+ var GLOBAL_STYLE = /*#__PURE__*/css(_templateObject$9 || (_templateObject$9 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n :root {\n --default-hero-height: calc(100vh - var(--boemly-space-24));\n }\n\n a {\n text-decoration: none;\n }\n"])));
1196
+
1197
+ var messagesDe$j = {
1198
+ 'sections.comparison.backgroundShapes': 'Hintergrundformen'
1214
1199
  };
1215
1200
 
1216
- var Hero = function Hero(_ref) {
1217
- var slice = _ref.slice;
1218
- return React.createElement(Box, {
1219
- position: "relative",
1220
- width: "full",
1221
- height: "var(--default-hero-height)",
1222
- minHeight: "2xl",
1223
- backgroundColor: "gray.900",
1224
- overflowX: "hidden"
1225
- }, slice.image && React.createElement(React.Fragment, null, React.createElement(Image, {
1226
- src: strapiMediaUrl(slice.image.img, 'xLarge'),
1227
- alt: slice.image.alt,
1228
- fill: true,
1229
- style: {
1230
- objectFit: slice.image.objectFit || 'cover'
1231
- }
1232
- }), React.createElement(Gradient, null)), slice.shape && React.createElement(Box, {
1233
- position: "absolute",
1234
- bottom: "0",
1235
- borderTopRightRadius: "full",
1236
- width: ['3xs', null, '2xs', null, 'sm'],
1237
- height: ['3xs', null, '2xs', null, 'sm'],
1238
- right: ['-16', null, '24']
1239
- }, React.createElement(Image, {
1240
- src: strapiMediaUrl(slice.shape.img, 'medium'),
1241
- alt: slice.shape.alt,
1242
- fill: true,
1243
- style: {
1244
- objectFit: slice.shape.objectFit || 'cover',
1245
- borderTopRightRadius: 'var(--boemly-radii-full)'
1246
- }
1247
- })), React.createElement(Box, {
1248
- position: "absolute",
1249
- left: "0",
1250
- top: "56%",
1251
- width: "full",
1252
- textAlign: slice.textAlign,
1253
- transform: "translateY(-50%)"
1254
- }, React.createElement(Wrapper, null, React.createElement(React.Fragment, null, React.createElement(DefaultSectionHeader, {
1255
- isHero: true,
1256
- tagline: slice.tagline,
1257
- title: slice.title,
1258
- text: slice.subTitle,
1259
- taglineProps: {
1260
- color: 'white'
1261
- },
1262
- titleProps: {
1263
- color: 'white',
1264
- maxW: slice.textAlign === 'center' ? '4xl' : '3xl',
1265
- mx: slice.textAlign === 'center' ? 'auto' : 'unset',
1266
- textAlign: slice.textAlign
1267
- },
1268
- textProps: {
1269
- maxW: '2xl',
1270
- mx: slice.textAlign === 'center' ? 'auto' : 'unset',
1271
- textAlign: slice.textAlign,
1272
- color: 'white'
1273
- }
1274
- }), React.createElement(Flex, {
1275
- gap: "8",
1276
- justifyContent: slice.textAlign === 'center' ? 'center' : 'start'
1277
- }, slice.button && React.createElement(StrapiLinkButton, {
1278
- key: slice.button.id,
1279
- mt: "10",
1280
- size: "xl",
1281
- link: slice.button
1282
- }), slice.additionalButtons.map(function (button) {
1283
- return React.createElement(StrapiLinkButton, {
1284
- key: button.button.id,
1285
- mt: "10",
1286
- size: "xl",
1287
- variant: button.variant,
1288
- link: button.button
1289
- });
1290
- }))))));
1201
+ var messagesDe$i = {
1202
+ 'components.creditsAvailableBadge.text.yes': 'Credits verfügbar',
1203
+ 'components.creditsAvailableBadge.text.some': 'Einige verbleibende Credits',
1204
+ 'components.creditsAvailableBadge.text.no': 'Keine verbleibenden Credits',
1205
+ 'components.creditsAvailableBadge.text.notYet': 'Credits bald verfügbar'
1291
1206
  };
1292
1207
 
1293
- var IconGrid = function IconGrid(_ref) {
1294
- var slice = _ref.slice;
1295
- var columns = function columns() {
1296
- if (slice.iconsWithTextAndButton.length === 2) {
1297
- return [1, null, null, 2, 2];
1298
- }
1299
- if (slice.iconsWithTextAndButton.length === 1) {
1300
- return 1;
1301
- }
1302
- return [1, null, null, 2, 3];
1303
- };
1304
- return React.createElement(DefaultSectionContainer, null, React.createElement(Wrapper, null, slice.title ? React.createElement(React.Fragment, null, React.createElement(Flex, {
1305
- alignItems: "center",
1306
- flexDirection: "column"
1307
- }, React.createElement(DefaultSectionHeader, {
1308
- tagline: slice.tagline,
1309
- title: slice.title,
1310
- text: slice.subTitle,
1311
- taglineProps: {
1312
- maxW: '2xl',
1313
- textAlign: 'center'
1314
- },
1315
- titleProps: {
1316
- maxW: '3xl',
1317
- textAlign: 'center'
1318
- },
1319
- textProps: {
1320
- maxW: '3xl',
1321
- textAlign: 'center'
1322
- }
1323
- })), React.createElement(Spacer, {
1324
- h: "20"
1325
- })) : React.createElement(React.Fragment, null), React.createElement(SimpleGrid, {
1326
- columns: columns(),
1327
- gap: slice.iconsWithTextAndButton.length === 2 ? '14' : '16',
1328
- rowGap: ['16', null, null, '20']
1329
- }, slice.iconsWithTextAndButton.map(function (iconWithTextAndButton) {
1330
- return React.createElement(Box, {
1331
- key: iconWithTextAndButton.id
1332
- }, React.createElement(Box, {
1333
- margin: "0 auto",
1334
- backgroundColor: "primary.50",
1335
- borderRadius: "full",
1336
- display: "flex",
1337
- alignItems: "center",
1338
- justifyContent: "space-around",
1339
- width: "6.5rem",
1340
- height: "6.5rem"
1341
- }, React.createElement(Box, {
1342
- position: "absolute",
1343
- width: "12",
1344
- height: "12"
1345
- }, React.createElement(Image, {
1346
- src: strapiMediaUrl(iconWithTextAndButton.icon.img, 'xSmall'),
1347
- alt: iconWithTextAndButton.icon.alt,
1348
- fill: true,
1349
- style: {
1350
- objectFit: iconWithTextAndButton.icon.objectFit || 'contain'
1351
- }
1352
- }))), React.createElement(Heading, {
1353
- size: "xl",
1354
- textAlign: "center",
1355
- mb: "4",
1356
- mt: "8"
1357
- }, iconWithTextAndButton.title), React.createElement(Text, {
1358
- size: "mdRegularNormal",
1359
- textAlign: "center"
1360
- }, iconWithTextAndButton.text), iconWithTextAndButton.button && React.createElement(Box, {
1361
- textAlign: "center"
1362
- }, React.createElement(StrapiLinkButton, {
1363
- key: iconWithTextAndButton.button.id,
1364
- mt: "8",
1365
- size: "md",
1366
- variant: "outline",
1367
- link: iconWithTextAndButton.button
1368
- })));
1369
- }))));
1208
+ var messagesDe$h = {
1209
+ 'sections.cta.backgroundShapes': 'Dunkle Hintergrundformen',
1210
+ 'sections.cta.backgroundShapesLight': 'Helle Hintergrundformen'
1370
1211
  };
1371
1212
 
1372
- var LinkedInIcon = function LinkedInIcon() {
1373
- return React.createElement("svg", {
1374
- width: "14",
1375
- height: "14",
1376
- viewBox: "0 0 14 14",
1377
- fill: "none",
1378
- xmlns: "http://www.w3.org/2000/svg"
1379
- }, React.createElement("g", {
1380
- clipPath: "url(#clip0_112_606)"
1381
- }, React.createElement("path", {
1382
- 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",
1383
- fill: "#0A66C2"
1384
- })), React.createElement("defs", null, React.createElement("clipPath", {
1385
- id: "clip0_112_606"
1386
- }, React.createElement("rect", {
1387
- width: "14",
1388
- height: "14",
1389
- fill: "white"
1390
- }))));
1213
+ var messagesDe$g = {
1214
+ 'sections.customerCard.more': 'Weiterlesen'
1391
1215
  };
1392
1216
 
1393
- var _excluded = ["link"];
1394
- var StrapiLinkButtonWithIcon = function StrapiLinkButtonWithIcon(_ref) {
1395
- var link = _ref.link,
1396
- props = _objectWithoutPropertiesLoose(_ref, _excluded);
1397
- var getLinkIcon = function getLinkIcon(destination) {
1398
- switch (destination) {
1399
- case 'linkedin':
1400
- {
1401
- return React.createElement(LinkedInIcon, null);
1402
- }
1403
- case 'web':
1404
- {
1405
- return React.createElement(Globe, null);
1406
- }
1407
- default:
1408
- {
1409
- return React.createElement(CaretRight, null);
1410
- }
1411
- }
1412
- };
1413
- return React.createElement(StrapiLinkButton, _extends({}, props, {
1414
- link: link.link,
1415
- rightIcon: getLinkIcon(link.destination)
1416
- }));
1217
+ var messagesDe$f = {
1218
+ 'sections.customerQuoteCard.more': 'Weiterlesen'
1417
1219
  };
1418
1220
 
1419
- var ImageGrid = function ImageGrid(_ref) {
1420
- var slice = _ref.slice;
1421
- var _useToken = useToken('colors', ['primary.50']),
1422
- primary50 = _useToken[0];
1423
- return React.createElement(DefaultSectionContainer, {
1424
- backgroundColor: primary50,
1425
- title: slice.title
1426
- }, React.createElement(Wrapper, null, React.createElement(DefaultSectionHeader, {
1427
- tagline: slice.tagline,
1428
- title: slice.title,
1429
- text: slice.text,
1430
- taglineProps: {
1431
- textAlign: 'center'
1432
- },
1433
- titleProps: {
1434
- textAlign: 'center',
1435
- maxW: '6xl',
1436
- marginX: 'auto'
1437
- },
1438
- textProps: {
1439
- textAlign: 'center',
1440
- maxW: '2xl',
1441
- marginX: 'auto'
1442
- }
1443
- }), React.createElement(SimpleGrid, {
1444
- mt: "24",
1445
- columns: 3,
1446
- gap: "24",
1447
- rowGap: "16",
1448
- minChildWidth: "16rem"
1449
- }, slice.images.map(function (_ref2) {
1450
- var id = _ref2.id,
1451
- title = _ref2.title,
1452
- subTitle = _ref2.subTitle,
1453
- image = _ref2.image,
1454
- links = _ref2.links;
1455
- return React.createElement(Box, {
1456
- key: id
1457
- }, React.createElement(Box, {
1458
- position: "relative",
1459
- height: "sm",
1460
- borderRadius: "xl"
1461
- }, React.createElement(Image, {
1462
- src: strapiMediaUrl(image.img, 'medium'),
1463
- alt: image.alt,
1464
- fill: true,
1465
- style: {
1466
- objectFit: image.objectFit || 'cover',
1467
- borderRadius: 'var(--boemly-radii-xl)'
1468
- }
1469
- })), React.createElement(Heading, {
1470
- size: "xl",
1471
- mt: "4"
1472
- }, title), subTitle && React.createElement(Text, {
1473
- size: "mdRegularNormal"
1474
- }, subTitle), links && links.length > 0 && React.createElement(Flex, {
1475
- mt: "3",
1476
- flexDir: "row",
1477
- gap: "2",
1478
- flexWrap: "wrap"
1479
- }, links.map(function (link) {
1480
- return React.createElement(StrapiLinkButtonWithIcon, {
1481
- key: link.id,
1482
- link: link,
1483
- size: "sm",
1484
- variant: "outline"
1485
- });
1486
- })));
1487
- }))));
1221
+ var messagesDe$e = {
1222
+ 'sections.eventCard.recommendedEvent': 'Empfohlene Veranstaltung',
1223
+ 'sections.eventCard.buttonShowMore': 'Mehr anzeigen',
1224
+ 'sections.eventCard.buttonShowLess': 'Weniger anzeigen',
1225
+ 'sections.eventCard.eventType.conference': 'Konferenz',
1226
+ 'sections.eventCard.eventType.webinar': 'Webinar',
1227
+ 'sections.eventCard.eventType.forestwalk': 'Waldspaziergang',
1228
+ 'sections.eventCard.eventType.partnerevent': 'Partnerveranstaltung',
1229
+ 'sections.eventCard.eventType.lunch&learn': 'Mittagessen & Lernen',
1230
+ 'sections.eventCard.eventType.fair': 'Messe',
1231
+ 'sections.eventCard.eventType.festival': 'Festival',
1232
+ 'sections.eventCard.eventType.roadshow': 'Roadshow',
1233
+ 'sections.eventCard.eventType.meetup': 'Meet Up'
1488
1234
  };
1489
1235
 
1490
- var ImageTextSequence = function ImageTextSequence(_ref) {
1491
- var slice = _ref.slice;
1492
- var _useMediaQuery = useMediaQuery(BREAKPOINT_LG_QUERY),
1493
- oneColumnGrid = _useMediaQuery[0];
1494
- var _useToken = useToken('colors', ['primary.50']),
1495
- primary50 = _useToken[0];
1496
- var _useToken2 = useToken('colors', ['gray.700']),
1497
- gray700 = _useToken2[0];
1498
- return React.createElement(DefaultSectionContainer, {
1499
- backgroundColor: primary50,
1500
- title: slice.title
1501
- }, slice.background ? React.createElement(React.Fragment, null, React.createElement(Box, {
1502
- position: "absolute",
1503
- top: "0",
1504
- right: "24",
1505
- display: ['none', null, null, 'unset']
1506
- }, React.createElement(Image, {
1507
- src: CDN_URI + "/assets/v3/strapi-slices/desktop-map-border.svg",
1508
- alt: "Map",
1509
- width: "786",
1510
- height: "897"
1511
- })), React.createElement(Box, {
1512
- position: "absolute",
1513
- top: "64",
1514
- right: "-14",
1515
- display: ['unset', null, null, 'none']
1516
- }, React.createElement(Image, {
1517
- src: CDN_URI + "/assets/v3/strapi-slices/mobile-map-border.svg",
1518
- alt: "Map",
1519
- width: "227",
1520
- height: "452"
1521
- }))) : React.createElement(React.Fragment, null), React.createElement(Wrapper, null, React.createElement(DefaultSectionHeader, {
1522
- tagline: slice.tagline,
1523
- title: slice.title,
1524
- text: slice.text,
1525
- taglineProps: {
1526
- textAlign: ['left', null, null, null, 'center']
1527
- },
1528
- titleProps: {
1529
- maxW: '6xl',
1530
- marginX: ['0', null, null, null, 'auto'],
1531
- textAlign: ['left', null, null, null, 'center']
1532
- },
1533
- textProps: {
1534
- maxW: '2xl',
1535
- marginX: ['0', null, null, null, 'auto'],
1536
- textAlign: ['left', null, null, null, 'center'],
1537
- color: 'black'
1538
- }
1539
- }), React.createElement(SimpleGrid, {
1540
- gap: "16",
1541
- mt: ['28', null, null, null, '40'],
1542
- columns: [1, null, null, null, 2]
1543
- }, slice.imageTextRows.map(function (_ref2, index) {
1544
- var id = _ref2.id,
1545
- title = _ref2.title,
1546
- text = _ref2.text,
1547
- button = _ref2.button,
1548
- image = _ref2.image;
1549
- var imageBox = React.createElement(Box, null, React.createElement(Box, {
1550
- position: "relative",
1551
- width: "full",
1552
- minHeight: ['2xs', null, null, 'sm']
1553
- }, React.createElement(Image, {
1554
- src: strapiMediaUrl(image.img, 'large'),
1555
- alt: image.alt,
1556
- fill: true,
1557
- style: {
1558
- objectFit: image.objectFit || 'contain',
1559
- borderRadius: 'var(--boemly-radii-xl)'
1560
- }
1561
- })));
1562
- return React.createElement(Fragment, {
1563
- key: id
1564
- }, (oneColumnGrid || index % 2 !== 0) && imageBox, React.createElement(Box, {
1565
- display: "flex",
1566
- alignItems: "flex-start",
1567
- flexDirection: "column",
1568
- justifyContent: "center"
1569
- }, React.createElement(Heading, {
1570
- as: "h2",
1571
- size: "xl",
1572
- mb: "4"
1573
- }, title), React.createElement(Text, {
1574
- size: "mdRegularNormal"
1575
- }, text), button && React.createElement(StrapiLinkButton, {
1576
- mt: "5",
1577
- link: button,
1578
- size: "sm",
1579
- variant: "outline",
1580
- rightIcon: React.createElement(CaretRight, {
1581
- size: "10",
1582
- color: gray700
1583
- })
1584
- })), !oneColumnGrid && index % 2 === 0 && imageBox);
1585
- }))));
1236
+ var messagesDe$d = {
1237
+ 'sections.events.loadMore': 'Mehr laden',
1238
+ 'sections.events.noUpcomingEvents': 'Keine bevorstehenden Veranstaltungen gefunden',
1239
+ 'sections.events.noPastEvents': 'Keine vergangenen Veranstaltungen gefunden',
1240
+ 'sections.eventsFilter.searchPlaceholder': 'Suchen',
1241
+ 'sections.events.eventsFilter.eventType': 'Event Type',
1242
+ 'sections.events.eventsFilter.language': 'Sprache',
1243
+ 'sections.events.eventsFilter.sortBy.title': 'Sortieren nach',
1244
+ 'sections.events.eventsFilter.sortBy.newest': 'Neueste zuerst',
1245
+ 'sections.events.eventsFilter.sortBy.oldest': 'Älteste zuerst'
1586
1246
  };
1587
1247
 
1588
- var LeftTextRightCard = function LeftTextRightCard(_ref) {
1589
- var slice = _ref.slice;
1590
- var _useRouter = useRouter(),
1591
- push = _useRouter.push;
1592
- return React.createElement(DefaultSectionContainer, {
1593
- title: slice.title
1594
- }, React.createElement(Wrapper, null, React.createElement(Grid, {
1595
- templateColumns: ['repeat(8, 1fr)', null, null, null, 'repeat(12, 1fr)'],
1596
- templateRows: ['repeat(2, 1fr)', null, null, null, 'repeat(1, 1fr)'],
1597
- rowGap: "12"
1598
- }, React.createElement(GridItem, {
1599
- colSpan: 8,
1600
- rowSpan: 1,
1601
- pr: ['0', null, null, null, '28']
1602
- }, React.createElement(DefaultSectionHeader, {
1603
- tagline: slice.tagline,
1604
- title: slice.title,
1605
- text: slice.text
1606
- }), slice.checkMarkLabels && React.createElement(React.Fragment, null, React.createElement(Spacer, {
1607
- height: "10"
1608
- }), React.createElement(BoemlyList, {
1609
- listItems: slice.checkMarkLabels
1610
- }), React.createElement(Spacer, {
1611
- height: "10"
1612
- })), slice.button && React.createElement(StrapiLinkButton, {
1613
- link: slice.button,
1614
- size: "md",
1615
- colorScheme: "white",
1616
- variant: "outline",
1617
- rightIcon: React.createElement(ArrowRight, null)
1618
- })), React.createElement(GridItem, {
1619
- colSpan: [8, null, null, null, 4],
1620
- rowSpan: 1,
1621
- position: "relative"
1622
- }, slice.card && React.createElement(PortfolioCard, {
1623
- title: slice.card.title,
1624
- button: slice.card.button && {
1625
- text: slice.card.button.text,
1626
- onClick: function onClick() {
1627
- var _slice$card;
1628
- return push(strapiLinkUrl((_slice$card = slice.card) == null ? void 0 : _slice$card.button));
1629
- }
1630
- },
1631
- facts: slice.card.facts,
1632
- image: React.createElement(Image, {
1633
- src: strapiMediaUrl(slice.card.image.img, 'medium'),
1634
- alt: slice.card.image.alt,
1635
- fill: true,
1636
- style: {
1637
- objectFit: slice.card.image.objectFit || 'cover'
1638
- }
1639
- }),
1640
- portfolioNumber: slice.card.portfolioNumber
1641
- })))));
1248
+ var messagesDe$c = {
1249
+ 'sections.glossary.copyButtonLabel': 'Kopiere den Link zu diesem Abschnitt in die Zwischenablage',
1250
+ 'sections.glossary.copySuccessMessage': 'Link in die Zwischenablage kopiert',
1251
+ 'sections.glossary.copyFailureMessage': 'Link konnte nicht in die Zwischenablage kopiert werden'
1642
1252
  };
1643
1253
 
1644
- var LogoGridWithText = function LogoGridWithText(_ref) {
1645
- var slice = _ref.slice;
1646
- var _useToken = useToken('colors', ['primary.50']),
1647
- primary50 = _useToken[0];
1648
- return React.createElement(DefaultSectionContainer, {
1649
- backgroundColor: primary50,
1650
- title: slice.title
1651
- }, React.createElement(Wrapper, null, React.createElement(SimpleGrid, {
1652
- columns: 2,
1653
- gap: "28",
1654
- minChildWidth: "16rem"
1655
- }, React.createElement(Box, {
1656
- display: "flex",
1657
- flexDirection: "column",
1658
- justifyContent: "center",
1659
- alignItems: "flex-start"
1660
- }, React.createElement(Heading, {
1661
- as: "h2",
1662
- size: "3xl",
1663
- mb: "4"
1664
- }, slice.title), React.createElement(RichText, {
1665
- content: slice.text
1666
- }), slice.button && React.createElement(StrapiLinkButton, {
1667
- link: slice.button,
1668
- size: "md",
1669
- colorScheme: "white",
1670
- variant: "outline",
1671
- mt: "6",
1672
- rightIcon: React.createElement(ArrowRight, null)
1673
- })), React.createElement(Flex, {
1674
- flexDir: "row",
1675
- flexWrap: "wrap",
1676
- gap: ['12', null, null, '28']
1677
- }, slice.logos.map(function (logo) {
1678
- return React.createElement(Flex, {
1679
- key: logo.id,
1680
- justifyContent: "center",
1681
- alignItems: "center",
1682
- flexGrow: 1,
1683
- flexShrink: 0,
1684
- flexBasis: slice.logos.length > 2 ? '34%' : '90%'
1685
- }, React.createElement(Box, {
1686
- position: "relative",
1687
- height: "20",
1688
- width: "100%"
1689
- }, logo.link ? React.createElement("a", {
1690
- href: strapiLinkUrl(logo.link)
1691
- }, React.createElement(Image, {
1692
- src: strapiMediaUrl(logo.img, 'small'),
1693
- alt: logo.alt,
1694
- fill: true,
1695
- style: {
1696
- objectFit: logo.objectFit || 'contain'
1697
- }
1698
- })) : React.createElement(Image, {
1699
- src: strapiMediaUrl(logo.img, 'small'),
1700
- alt: logo.alt,
1701
- fill: true,
1702
- style: {
1703
- objectFit: logo.objectFit || 'contain'
1704
- }
1705
- })));
1706
- })))));
1254
+ var messagesDe$b = {
1255
+ 'features.portfolio.documentsDownloadList.projectDocuments': 'Projektdokumente',
1256
+ 'features.portfolio.documentsDownloadList.downloadDocument': 'Dokument herunterladen'
1707
1257
  };
1708
1258
 
1709
- var _templateObject$9, _templateObject2$5, _templateObject3$2, _templateObject4$1, _templateObject5;
1710
- var MapHeroContainer = /*#__PURE__*/styled(Box)(_templateObject$9 || (_templateObject$9 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\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: ", ") {\n height: auto;\n }\n"])), BREAKPOINT_LG);
1711
- var MapHeroTextContainer = /*#__PURE__*/styled(Box)(_templateObject2$5 || (_templateObject2$5 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\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: ", ") {\n position: relative;\n transform: unset;\n\n padding-top: var(--boemly-space-32);\n }\n"])), BREAKPOINT_LG);
1712
- var ShapeContainer = /*#__PURE__*/styled(Box)(_templateObject3$2 || (_templateObject3$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\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: ", ") {\n display: none;\n }\n"])), BREAKPOINT_LG);
1713
- var MapContainer = /*#__PURE__*/styled(Box)(_templateObject4$1 || (_templateObject4$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\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: ", ") {\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"])), BREAKPOINT_LG);
1714
- var MapGradient = /*#__PURE__*/styled(Box)(_templateObject5 || (_templateObject5 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\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: ", ") {\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"])), BREAKPOINT_LG);
1259
+ var messagesDe$a = {
1260
+ 'sections.projectFacts.projectInfo.value': 'Projekt Infos'
1261
+ };
1715
1262
 
1716
- var MapHero = function MapHero(_ref) {
1717
- var slice = _ref.slice;
1718
- var _useMediaQuery = useMediaQuery(BREAKPOINT_LG_QUERY),
1719
- belowBreakpoint = _useMediaQuery[0];
1720
- return React.createElement(MapHeroContainer, {
1721
- maxWidth: "full"
1722
- }, slice.shape && React.createElement(ShapeContainer, null, React.createElement(Image, {
1723
- src: strapiMediaUrl(slice.shape.img, 'medium'),
1724
- alt: slice.shape.alt,
1725
- fill: true,
1726
- style: {
1727
- objectFit: slice.shape.objectFit || 'cover'
1728
- }
1729
- })), React.createElement(MapHeroTextContainer, null, React.createElement(Wrapper, null, React.createElement(React.Fragment, null, React.createElement(DefaultSectionHeader, {
1730
- isHero: true,
1731
- tagline: slice.tagline,
1732
- title: slice.title,
1733
- text: slice.subTitle,
1734
- titleProps: {
1735
- maxW: ['100%', null, null, null, '60%']
1736
- },
1737
- textProps: {
1738
- maxW: ['100%', null, null, null, '55%']
1739
- }
1740
- }), slice.buttons && slice.buttons.length > 0 && React.createElement(Flex, {
1741
- mt: "10",
1742
- flexDir: "row",
1743
- gap: "5"
1744
- }, React.createElement(StrapiLinkButton, {
1745
- link: slice.buttons[0],
1746
- size: "xl"
1747
- }), slice.buttons.length === 2 && React.createElement(StrapiLinkButton, {
1748
- link: slice.buttons[1],
1749
- variant: "outline",
1750
- size: "xl"
1751
- }))))), React.createElement(MapContainer, null, belowBreakpoint ? React.createElement(Image, {
1752
- src: strapiMediaUrl(slice.mobileMap.img, 'xLarge'),
1753
- alt: slice.mobileMap.alt,
1754
- fill: true,
1755
- style: {
1756
- objectFit: slice.mobileMap.objectFit || 'contain'
1757
- }
1758
- }) : React.createElement(Image, {
1759
- src: strapiMediaUrl(slice.map.img, 'xLarge'),
1760
- alt: slice.map.alt,
1761
- fill: true,
1762
- style: {
1763
- objectFit: slice.map.objectFit || 'cover'
1764
- }
1765
- }), React.createElement(MapGradient, null)));
1263
+ var messagesDe$9 = {
1264
+ 'components.projectGridCard.certified': 'Zertifiziert, {year}',
1265
+ 'components.projectGridCard.certificationInProgress': 'Zertifizierung ist in Arbeit'
1766
1266
  };
1767
1267
 
1768
- var convertToKebabCase = function convertToKebabCase(str) {
1769
- var matches = str && str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g);
1770
- return matches ? matches.map(function (x) {
1771
- return x.toLowerCase();
1772
- }).join('-') : '';
1268
+ var messagesDe$8 = {
1269
+ 'sections.projectsMap.link.text': 'Mehr Infos'
1773
1270
  };
1774
1271
 
1775
- var VARIANTS$4 = {
1776
- gray: {
1777
- backgroundColor: 'primary.50',
1778
- tagLineColor: 'primary.500',
1779
- textColor: 'black',
1780
- accordionVariant: 'black',
1781
- otherQuestionsBackground: 'primary.700'
1782
- },
1783
- green: {
1784
- backgroundColor: 'primary.800',
1785
- tagLineColor: 'white',
1786
- textColor: 'white',
1787
- accordionVariant: 'white',
1788
- otherQuestionsBackground: 'primary.900'
1789
- },
1790
- white: {
1791
- backgroundColor: 'white',
1792
- tagLineColor: 'primary.500',
1793
- textColor: 'black',
1794
- accordionVariant: 'black',
1795
- otherQuestionsBackground: 'primary.700'
1796
- }
1272
+ var messagesDe$7 = {
1273
+ 'features.projectInfo.projectInfo.value': 'Projekt Infos',
1274
+ 'features.projectInfo.properties.area': 'Projekt Fläche',
1275
+ 'features.projectInfo.properties.location': 'Standort',
1276
+ 'features.projectInfo.properties.start': 'Projekt Start Datum',
1277
+ 'features.projectInfo.properties.timeSpan': 'Projekt Zeitraum',
1278
+ 'features.projectInfo.properties.projectType': 'Projekt Typ',
1279
+ 'features.projectInfo.properties.projectDeveloper': 'Projekt Entwickler',
1280
+ 'features.projectInfo.properties.verificationStandard.label': 'Verifizierungsstandard',
1281
+ 'features.projectInfo.properties.verificationStandard.value.SilvaconsultFCSISO14': 'SILVACONSULT® Forest Carbon Standard, ISO 14064-2',
1282
+ 'features.projectInfo.properties.verificationStandard.value.MfKWCH': 'Methodik für Klimaschutzprojekte im Wald für die Schweiz',
1283
+ 'features.projectInfo.properties.forecastedAmountYear.toolTip': 'Dies ist das jährliche Projekt-Senkenvolumen gemäß dem TÜV-geprüften PDD, dieser Wert stellt nicht die aktuellen Verfügbarkeiten dar.',
1284
+ 'features.projectInfo.properties.forecastedAmountYear.label': 'Projektvolumen',
1285
+ 'features.projectInfo.properties.riskBuffer': 'Anteil Risikopuffer',
1286
+ 'features.projectInfo.properties.year': '{years} {years, plural, one {Jahr} other {Jahre} }'
1797
1287
  };
1798
- var QAndA = function QAndA(_ref) {
1799
- var _slice$variant;
1800
- var slice = _ref.slice;
1801
- var _useRouter = useRouter(),
1802
- push = _useRouter.push;
1803
- var variant = VARIANTS$4[(_slice$variant = slice.variant) != null ? _slice$variant : 'green'];
1804
- return React.createElement(React.Fragment, null, React.createElement(Box, {
1805
- pb: slice.hero ? 80 : 28,
1806
- id: convertToKebabCase(slice.title),
1807
- backgroundColor: variant.backgroundColor
1808
- }, React.createElement(Wrapper, null, React.createElement(SimpleGrid, {
1809
- columns: [1, null, null, 2]
1810
- }, React.createElement(Box, {
1811
- mr: "16",
1812
- paddingY: "28"
1813
- }, React.createElement(Text, {
1814
- size: "mdMonoUppercase",
1815
- color: variant.tagLineColor
1816
- }, slice.tagline), React.createElement(Heading, {
1817
- as: "h2",
1818
- size: "3xl",
1819
- color: variant.textColor,
1820
- mt: "6",
1821
- mb: "16"
1822
- }, slice.title)), React.createElement(Box, {
1823
- maxHeight: ['unset', null, null, 'xl'],
1824
- paddingTop: ['0', null, null, '28'],
1825
- paddingRight: ['0', null, null, '6'],
1826
- overflowY: ['unset', null, null, 'scroll']
1827
- }, React.createElement(Box, null, React.createElement(BoemlyAccordion, {
1828
- rows: slice.questionsAndAnswers,
1829
- defaultIndex: slice.defaultIndex,
1830
- variant: variant.accordionVariant
1831
- }), React.createElement(Flex, {
1832
- padding: "8",
1833
- backgroundColor: variant.otherQuestionsBackground,
1834
- borderRadius: "2xl",
1835
- mt: "14",
1836
- flexDir: ['column', null, null, 'row'],
1837
- justifyContent: ['flex-start', null, null, 'space-between'],
1838
- alignItems: ['flex-start', null, null, 'center']
1839
- }, React.createElement(Heading, {
1840
- as: "h6",
1841
- size: "sm",
1842
- color: "white"
1843
- }, slice.otherQuestions), React.createElement(Spacer, {
1844
- minHeight: ['4', null, null, '0']
1845
- }), React.createElement(StrapiLinkButton, {
1846
- size: "lg",
1847
- colorScheme: "white",
1848
- background: "white",
1849
- rightIcon: React.createElement(ArrowRight, null),
1850
- link: slice.button
1851
- }))))))), slice.hero && React.createElement(Box, {
1852
- pb: "28",
1853
- mt: "-56"
1854
- }, React.createElement(Wrapper, null, React.createElement(HeroCard, {
1855
- title: slice.hero.title,
1856
- subTitle: slice.hero.subTitle,
1857
- link: slice.hero.button && {
1858
- text: slice.hero.button.text,
1859
- onClick: function onClick() {
1860
- var _slice$hero;
1861
- return push(strapiLinkUrl((_slice$hero = slice.hero) == null ? void 0 : _slice$hero.button));
1862
- }
1863
- },
1864
- image: slice.hero.image && React.createElement(Image, {
1865
- src: strapiMediaUrl(slice.hero.image.img, 'xLarge'),
1866
- alt: slice.hero.image.alt,
1867
- fill: true,
1868
- style: {
1869
- objectFit: slice.hero.image.objectFit || 'cover'
1870
- }
1871
- })
1872
- }))));
1288
+
1289
+ var messagesDe$6 = {
1290
+ 'portfolio.smallCheckout.price.taxNotIncluded': 'ohne Steuern',
1291
+ 'portfolio.smallCheckout.price.taxIncluded': 'Preis inklusive Steuern: {number}',
1292
+ 'portfolio.smallCheckout.contributionValueCurrency.label.CHF': 'Geben Sie den Beitrag in Fr. ein',
1293
+ 'portfolio.smallCheckout.contributionValueCurrency.label.EUR': 'Geben Sie den Beitrag in ein',
1294
+ 'portfolio.smallCheckout.contributionValueCurrency.unit.EUR': '€',
1295
+ 'portfolio.smallCheckout.contributionValueCurrency.unit.CHF': 'Fr.',
1296
+ 'portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.CHF': 'Der Wert muss mindestens 10 CHF betragen',
1297
+ 'portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.EUR': 'Der Wert muss mindestens 10 Euro betragen.',
1298
+ 'portfolio.smallCheckout.contributionValueCurrency.validation.empty': 'Bitte geben Sie einen Wert ein',
1299
+ 'portfolio.smallCheckout.contributionValueCurrency.validation.tooHigh': 'Für größere Einkäufe kontaktieren Sie bitte unser Verkaufsteam',
1300
+ 'portfolio.smallCheckout.contributionValueTons.label': 'Beitrag in Tonnen',
1301
+ 'portfolio.smallCheckout.submitButton': 'Credits kaufen'
1873
1302
  };
1874
1303
 
1875
- var QuoteCards = function QuoteCards(_ref) {
1876
- var slice = _ref.slice;
1877
- var _useRouter = useRouter(),
1878
- push = _useRouter.push;
1879
- return React.createElement(React.Fragment, null, React.createElement(Box, {
1880
- id: convertToKebabCase(slice.title),
1881
- position: "relative",
1882
- paddingTop: "28",
1883
- paddingBottom: !!slice.hero ? '80' : '28'
1884
- }, slice.shapes && slice.shapes.length === 2 && React.createElement(React.Fragment, null, React.createElement(Shape, {
1885
- shape: React.createElement(Image, {
1886
- src: strapiMediaUrl(slice.shapes[0].img, 'small'),
1887
- alt: slice.shapes[0].alt,
1888
- fill: true,
1889
- style: {
1890
- objectFit: slice.shapes[0].objectFit || 'cover'
1891
- }
1892
- }),
1893
- top: "0",
1894
- right: "0",
1895
- size: "xs",
1896
- radius: "bottom-left"
1897
- }), React.createElement(Shape, {
1898
- shape: React.createElement(Image, {
1899
- src: strapiMediaUrl(slice.shapes[1].img, 'small'),
1900
- alt: slice.shapes[1].alt,
1901
- fill: true,
1902
- style: {
1903
- objectFit: slice.shapes[1].objectFit || 'cover'
1904
- }
1905
- }),
1906
- bottom: "0",
1907
- left: "0",
1908
- radius: "top-right"
1909
- })), React.createElement(Wrapper, null, React.createElement(Box, {
1910
- maxW: "3xl"
1911
- }, React.createElement(DefaultSectionHeader, {
1912
- tagline: slice.tagline,
1913
- title: slice.title,
1914
- text: slice.text
1915
- })), React.createElement(SimpleGrid, {
1916
- columns: 2,
1917
- gap: "20",
1918
- rowGap: "6",
1919
- mt: "16",
1920
- minChildWidth: ['100%', null, '16rem']
1921
- }, slice.cards.map(function (card) {
1922
- return React.createElement(Box, {
1923
- key: card.id,
1924
- width: "full",
1925
- maxWidth: "2xl"
1926
- }, React.createElement(QuoteCard, {
1927
- key: card.id,
1928
- avatar: {
1929
- name: card.avatar.name,
1930
- description: card.avatar.description,
1931
- image: React.createElement(Image, {
1932
- src: strapiMediaUrl(card.avatar.image.img, 'small'),
1933
- alt: card.avatar.image.alt,
1934
- fill: true,
1935
- style: {
1936
- objectFit: card.avatar.image.objectFit || 'cover'
1937
- }
1938
- })
1939
- },
1940
- text: card.text
1941
- }));
1942
- })))), slice.hero && React.createElement(Box, {
1943
- marginTop: "-40",
1944
- paddingBottom: "28"
1945
- }, React.createElement(Wrapper, null, React.createElement(HeroCard, {
1946
- title: slice.hero.title,
1947
- subTitle: slice.hero.subTitle,
1948
- link: slice.hero.button && {
1949
- text: slice.hero.button.text,
1950
- onClick: function onClick() {
1951
- var _slice$hero;
1952
- return push(strapiLinkUrl((_slice$hero = slice.hero) == null ? void 0 : _slice$hero.button));
1953
- }
1954
- },
1955
- image: slice.hero.image && React.createElement(Image, {
1956
- src: strapiMediaUrl(slice.hero.image.img, 'xLarge'),
1957
- alt: slice.hero.image.alt,
1958
- fill: true,
1959
- style: {
1960
- objectFit: slice.hero.image.objectFit || 'cover'
1961
- }
1962
- })
1963
- }))));
1304
+ var messagesDe$5 = {
1305
+ 'sections.shopCheckout.intro.price': 'Preis',
1306
+ 'sections.shopCheckout.contributionValue.label.EUR': 'Geben sie einen Betrag in € ein',
1307
+ 'sections.shopCheckout.contributionValue.label.CHF': 'Geben sie einen Betrag in CHF ein',
1308
+ 'sections.shopCheckout.contributionValue.unit.EUR': '€',
1309
+ 'sections.shopCheckout.contributionValue.unit.CHF': 'CHF',
1310
+ 'sections.shopCheckout.contributionValue.validation.empty': 'Bitte geben sie einen Betrag ein',
1311
+ 'sections.shopCheckout.contributionValue.validation.tooLow.EUR': 'Der Betrag muss mindestens 10 Euro sein',
1312
+ 'sections.shopCheckout.contributionValue.validation.tooLow.CHF': 'Der Betrag muss mindestens 10 CHF sein',
1313
+ 'sections.shopCheckout.contributionValue.validation.tooHigh': 'Für größere Einkäufe kontaktieren Sie bitte unser Verkaufsteam über office@tree.ly',
1314
+ 'sections.shopCheckout.summary.kg': 'Menge',
1315
+ 'sections.shopCheckout.summary.price': 'Preis',
1316
+ 'sections.shopCheckout.summary.price.taxNotIncluded': 'ohne Steuern',
1317
+ 'sections.shopCheckout.summary.price.taxIncluded': 'Preis inklusive Steuern: {number}',
1318
+ 'sections.shopCheckout.submit': 'Kaufen'
1964
1319
  };
1965
1320
 
1966
- var RichTextSection = function RichTextSection(_ref) {
1967
- var slice = _ref.slice;
1968
- return React.createElement(DefaultSectionContainer, null, React.createElement(Wrapper, null, React.createElement(Grid, {
1969
- templateColumns: "repeat(12, 1fr)",
1970
- gap: "4"
1971
- }, React.createElement(GridItem, {
1972
- colSpan: [12, null, null, 7]
1973
- }, React.createElement(RichText, {
1974
- content: slice.content
1975
- })))));
1321
+ var messagesDe$4 = {
1322
+ 'sections.textCarousel.moveRight': 'Nach rechts bewegen',
1323
+ 'sections.textCarousel.moveLeft': 'Nach links bewegen'
1976
1324
  };
1977
1325
 
1978
- var Steps = function Steps(_ref) {
1979
- var _slice$card$shapes;
1980
- var slice = _ref.slice;
1981
- var _useRouter = useRouter(),
1982
- push = _useRouter.push;
1983
- var _useToken = useToken('colors', ['gray.900']),
1984
- gray900 = _useToken[0];
1985
- var containerRef = useRef(null);
1986
- var _useState = useState(new Array(slice.steps.length)),
1987
- stepRefs = _useState[0],
1988
- setStepRefs = _useState[1];
1989
- var _useState2 = useState(new Array(slice.steps.length)),
1990
- stepProgress = _useState2[0],
1991
- setStepProgress = _useState2[1];
1992
- var _useWindowScroll = useWindowScroll(),
1993
- offsetY = _useWindowScroll.y;
1994
- var _useWindowSize = useWindowSize(),
1995
- windowHeight = _useWindowSize.height;
1996
- useEffect(function () {
1997
- setStepRefs(slice.steps.map(function () {
1998
- return createRef();
1999
- }));
2000
- }, []);
2001
- useEffect(function () {
2002
- var _containerRef$current;
2003
- var containerOffsetTop = ((_containerRef$current = containerRef.current) == null ? void 0 : _containerRef$current.offsetTop) || 0;
2004
- setStepProgress(stepRefs.map(function (ref) {
2005
- var _ref$current;
2006
- var currentItemOffsetTop = ((_ref$current = ref.current) == null ? void 0 : _ref$current.offsetTop) || 0;
2007
- return containerOffsetTop + currentItemOffsetTop < offsetY + windowHeight / 3 ? 100 : 0;
2008
- }));
2009
- }, [offsetY]);
2010
- return React.createElement("div", {
2011
- ref: containerRef
2012
- }, React.createElement(DefaultSectionContainer, {
2013
- backgroundColor: gray900,
2014
- title: slice.title
2015
- }, React.createElement(React.Fragment, null, slice.image && React.createElement(Box, {
2016
- position: "absolute",
2017
- top: "0",
2018
- left: "0",
2019
- width: "full",
2020
- height: "full"
2021
- }, React.createElement(Image, {
2022
- src: strapiMediaUrl(slice.image.img, 'xLarge'),
2023
- alt: slice.image.alt,
2024
- fill: true,
2025
- style: {
2026
- objectFit: slice.image.objectFit || 'cover'
2027
- }
2028
- }), React.createElement(Gradient, null))), React.createElement(Wrapper, null, React.createElement(React.Fragment, null, React.createElement(DefaultSectionHeader, {
2029
- tagline: slice.tagline,
2030
- title: slice.title,
2031
- text: slice.text,
2032
- taglineProps: {
2033
- textAlign: 'center'
2034
- },
2035
- titleProps: {
2036
- textAlign: 'center',
2037
- maxW: '2xl',
2038
- marginX: 'auto',
2039
- color: 'white'
2040
- },
2041
- textProps: {
2042
- textAlign: 'center',
2043
- maxW: 'xl',
2044
- marginX: 'auto',
2045
- color: 'whiteAlpha.800'
2046
- }
2047
- }), React.createElement(Box, {
2048
- marginTop: ['16', null, '24']
2049
- }, slice.steps.map(function (_ref2, index) {
2050
- var id = _ref2.id,
2051
- step = _ref2.step,
2052
- title = _ref2.title,
2053
- text = _ref2.text;
2054
- return React.createElement(Flex, {
2055
- flexDir: "column",
2056
- alignItems: "center",
2057
- key: id
2058
- }, React.createElement(Center, {
2059
- width: "10",
2060
- height: "10",
2061
- borderRadius: "full",
2062
- backgroundColor: "white"
2063
- }, React.createElement(Text, {
2064
- size: "smRegularNormal",
2065
- color: "black"
2066
- }, step)), React.createElement(Heading, {
2067
- size: "lg",
2068
- color: "white",
2069
- mt: "4",
2070
- textAlign: "center"
2071
- }, title), text && React.createElement(Box, {
2072
- maxW: "xl",
2073
- mt: "4"
2074
- }, React.createElement(RichText, {
2075
- options: {
2076
- forceBlock: true
2077
- },
2078
- content: text,
2079
- textProps: {
2080
- size: 'mdRegularNormal',
2081
- color: 'whiteAlpha.700',
2082
- textAlign: 'center'
2083
- }
2084
- })), (index + 1 < slice.steps.length || slice.card) && React.createElement(Box, {
2085
- ref: stepRefs[index],
2086
- position: "relative",
2087
- marginTop: "4",
2088
- marginBottom: "6",
2089
- height: "12"
2090
- }, React.createElement(Box, {
2091
- position: "absolute",
2092
- height: "full",
2093
- borderLeft: "dashed 1px white",
2094
- opacity: "0.5"
2095
- }), React.createElement(Box, {
2096
- position: "absolute",
2097
- height: stepProgress[index] + "%",
2098
- borderRight: "solid 1px white",
2099
- opacity: "1",
2100
- transition: "height ease var(--medium-transition-duration)"
2101
- })));
2102
- })), slice.card && React.createElement(ShapesCard, {
2103
- tagline: slice.card.tagline,
2104
- title: slice.card.title,
2105
- text: slice.card.text,
2106
- shapes: slice.card.shapes && ((_slice$card$shapes = slice.card.shapes) == null ? void 0 : _slice$card$shapes.map(function (shape) {
2107
- return React.createElement(Image, {
2108
- key: shape.id,
2109
- src: strapiMediaUrl(shape.img, 'small'),
2110
- alt: shape.alt,
2111
- fill: true,
2112
- style: {
2113
- objectFit: shape.objectFit || 'cover'
2114
- }
2115
- });
2116
- })),
2117
- button: slice.card.button && {
2118
- text: slice.card.button.text,
2119
- onClick: function onClick() {
2120
- var _slice$card;
2121
- return push(strapiLinkUrl((_slice$card = slice.card) == null ? void 0 : _slice$card.button));
2122
- }
2123
- }
2124
- })))));
1326
+ var messagesDe$3 = {
1327
+ 'sections.timeline.backgroundShapes': 'Hintergrundformen',
1328
+ 'sections.timeline.showMoreButton': 'Drei weitere Meilensteine anzeigen'
2125
1329
  };
2126
1330
 
2127
- var _oppositesOfCorners, _templateObject$8, _templateObject2$4;
2128
- var ShapePosition;
2129
- (function (ShapePosition) {
2130
- ShapePosition["topLeft"] = "top-left";
2131
- ShapePosition["topRight"] = "top-right";
2132
- ShapePosition["bottomLeft"] = "bottom-left";
2133
- ShapePosition["bottomRight"] = "bottom-right";
2134
- ShapePosition["unset"] = "unset";
2135
- })(ShapePosition || (ShapePosition = {}));
2136
- var shapePositions = [ShapePosition.topLeft, ShapePosition.bottomRight, ShapePosition.topRight, ShapePosition.bottomLeft, ShapePosition.topRight, ShapePosition.bottomLeft, ShapePosition.topLeft, ShapePosition.bottomRight];
2137
- var oppositesOfCorners = (_oppositesOfCorners = {}, _oppositesOfCorners[ShapePosition.bottomLeft] = ShapePosition.topRight, _oppositesOfCorners[ShapePosition.topRight] = ShapePosition.bottomLeft, _oppositesOfCorners[ShapePosition.bottomRight] = ShapePosition.topLeft, _oppositesOfCorners[ShapePosition.topLeft] = ShapePosition.bottomRight, _oppositesOfCorners[ShapePosition.unset] = ShapePosition.unset, _oppositesOfCorners);
2138
- var variants = {
2139
- shape: {
2140
- padding: ['6', null, null, '8'],
2141
- positionIcon: function positionIcon(index) {
2142
- return shapePositions[index % shapePositions.length];
2143
- },
2144
- width: '40',
2145
- height: '40',
2146
- position: 'absolute',
2147
- mb: 'unset'
2148
- },
2149
- image: {
2150
- padding: ['6', null, null, '8'],
2151
- positionIcon: function positionIcon() {
2152
- return ShapePosition.unset;
2153
- },
2154
- width: '24',
2155
- height: '24',
2156
- position: 'relative',
2157
- mb: '10'
2158
- }
2159
- };
2160
- var TextCardGrid = function TextCardGrid(_ref) {
2161
- var slice = _ref.slice;
2162
- var _useToken = useToken('colors', ['primary.800']),
2163
- primary800 = _useToken[0];
2164
- return React.createElement(DefaultSectionContainer, {
2165
- backgroundColor: primary800,
2166
- title: slice.title
2167
- }, React.createElement(Wrapper, null, React.createElement(DefaultSectionHeader, {
2168
- tagline: slice.tagline,
2169
- title: slice.title,
2170
- text: slice.text,
2171
- taglineProps: {
2172
- textAlign: 'center',
2173
- color: 'white'
2174
- },
2175
- titleProps: {
2176
- textAlign: 'center',
2177
- maxW: '2xl',
2178
- marginX: 'auto',
2179
- color: 'white'
2180
- },
2181
- textProps: {
2182
- textAlign: 'center',
2183
- maxW: 'xl',
2184
- marginX: 'auto',
2185
- color: 'whiteAlpha.800'
2186
- }
2187
- }), React.createElement(SimpleGrid, {
2188
- mt: ['14', null, null, '24'],
2189
- columns: 3,
2190
- justifyItems: "center",
2191
- gap: "20",
2192
- rowGap: "16",
2193
- minChildWidth: ['100%', null, '16rem']
2194
- }, slice.cards.map(function (_ref2, index) {
2195
- var id = _ref2.id,
2196
- tagline = _ref2.tagline,
2197
- title = _ref2.title,
2198
- text = _ref2.text,
2199
- image = _ref2.image,
2200
- buttons = _ref2.buttons;
2201
- return React.createElement(Box, {
2202
- key: id,
2203
- backgroundColor: "white",
2204
- zIndex: "base",
2205
- padding: variants[slice.variant].padding,
2206
- boxShadow: "lg",
2207
- borderRadius: "2xl",
2208
- minHeight: "2xs",
2209
- width: "full",
2210
- maxWidth: slice.cards.length > 1 ? 'unset' : 'xl',
2211
- position: "relative",
2212
- display: "flex",
2213
- flexDir: "column",
2214
- alignItems: "flex-start",
2215
- justifyContent: slice.variant === 'shape' ? 'flex-end' : 'flex-start',
2216
- overflow: "hidden"
2217
- }, React.createElement(Box, {
2218
- position: variants[slice.variant].position,
2219
- width: variants[slice.variant].width,
2220
- height: variants[slice.variant].height,
2221
- mb: variants[slice.variant].mb,
2222
- top: variants[slice.variant].positionIcon(index).includes('top') ? '-4' : 'unset',
2223
- left: variants[slice.variant].positionIcon(index).includes('left') ? '-4' : 'unset',
2224
- right: variants[slice.variant].positionIcon(index).includes('right') ? '-4' : 'unset',
2225
- bottom: variants[slice.variant].positionIcon(index).includes('bottom') ? '-4' : 'unset',
2226
- borderBottomRightRadius: oppositesOfCorners[variants[slice.variant].positionIcon(index)].includes('bottomRight') ? 'full' : 'unset',
2227
- borderBottomLeftRadius: oppositesOfCorners[variants[slice.variant].positionIcon(index)].includes('bottomLeft') ? 'full' : 'unset',
2228
- borderTopRightRadius: oppositesOfCorners[variants[slice.variant].positionIcon(index)].includes('topRight') ? 'full' : 'unset',
2229
- borderTopLeftRadius: oppositesOfCorners[variants[slice.variant].positionIcon(index)].includes('topLeft') ? 'full' : 'unset',
2230
- css: variants[slice.variant].positionIcon(index).includes('unset') ? css(_templateObject$8 || (_templateObject$8 = _taggedTemplateLiteralLoose(["\n & span,\n div,\n img {\n border-radius: var(--boemly-radii-xl);\n }\n "]))) : css(_templateObject2$4 || (_templateObject2$4 = _taggedTemplateLiteralLoose(["\n & span,\n div,\n img {\n border-", "-radius: var(--boemly-radii-full);\n }\n "])), oppositesOfCorners[variants[slice.variant].positionIcon(index)])
2231
- }, React.createElement(Image, {
2232
- src: strapiMediaUrl(image.img, 'small'),
2233
- alt: image.alt,
2234
- fill: true,
2235
- style: {
2236
- objectFit: image.objectFit || 'cover'
2237
- }
2238
- })), React.createElement(Box, {
2239
- zIndex: "aboveBase",
2240
- width: "full"
2241
- }, tagline && React.createElement(Text, {
2242
- color: "black",
2243
- size: "smMonoNormal",
2244
- mb: "2"
2245
- }, tagline), React.createElement(Heading, {
2246
- as: "h4",
2247
- size: "xl",
2248
- mb: "3"
2249
- }, title), React.createElement(RichText, {
2250
- content: text,
2251
- listProps: {
2252
- textColor: 'gray.500',
2253
- textSize: 'smRegularNormal'
2254
- },
2255
- textProps: {
2256
- color: 'gray.500',
2257
- size: 'smRegularNormal'
2258
- }
2259
- }), buttons && !!buttons.length && React.createElement(Flex, {
2260
- mt: "4",
2261
- gap: "3",
2262
- flexDir: ['column', null, null, null, 'row']
2263
- }, buttons.map(function (button, buttonIndex) {
2264
- return React.createElement(StrapiLinkButton, {
2265
- key: button.id,
2266
- link: button,
2267
- size: "sm",
2268
- rightIcon: buttonIndex === 0 ? React.createElement(CaretRight, {
2269
- size: "10",
2270
- weight: "bold"
2271
- }) : undefined,
2272
- variant: buttonIndex === 0 ? 'outline' : 'ghost'
2273
- });
2274
- }))));
2275
- }))));
1331
+ var unitMessagesDe = {
1332
+ 'unit.formatter.tonsCo2': '{number} /tCO₂',
1333
+ 'unit.formatter.tonsCo2PerYear': '{number} tCO₂/Jahr'
2276
1334
  };
2277
1335
 
2278
- var _templateObject$7, _templateObject2$3, _templateObject3$1;
2279
- var CarouselContainer = /*#__PURE__*/styled(Box)(_templateObject$7 || (_templateObject$7 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-top: var(--boemly-space-6);\n padding: var(--boemly-space-8) 0;\n\n @media screen and (max-width: ", ") {\n margin-top: var(--boemly-space-4);\n width: var(--boemly-sizes-full);\n }\n\n width: var(--boemly-sizes-full);\n\n overflow-x: hidden;\n\n @media screen and (max-width: ", ") {\n overflow-x: scroll;\n }\n"])), BREAKPOINT_MD, BREAKPOINT_MD);
2280
- var CarouselInnerContainer$1 = /*#__PURE__*/styled(motion.div)(_templateObject2$3 || (_templateObject2$3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n gap: var(--boemly-space-6);\n justify-content: center;\n\n width: calc(\n (var(--boemly-sizes-sm) + var(--boemly-space-6)) *\n ", " +\n var(--boemly-space-6)\n );\n min-width: var(--boemly-sizes-full);\n\n @media screen and (max-width: ", ") {\n gap: var(--boemly-space-1);\n justify-content: flex-start;\n width: calc(\n (var(--boemly-sizes-2xs) + var(--boemly-space-4)) *\n ", " +\n var(--boemly-space-6)\n );\n }\n"])), function (_ref) {
2281
- var numberOfItems = _ref.numberOfItems;
2282
- return numberOfItems;
2283
- }, BREAKPOINT_MD, function (_ref2) {
2284
- var numberOfItems = _ref2.numberOfItems;
2285
- return numberOfItems;
2286
- });
2287
- var CardContainer = /*#__PURE__*/styled(Box)(_templateObject3$1 || (_templateObject3$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: var(--boemly-sizes-sm);\n\n @media screen and (max-width: ", ") {\n min-width: var(--boemly-sizes-sm);\n\n margin-right: var(--boemly-space-4);\n\n &:first-of-type {\n margin-left: var(--boemly-space-6);\n }\n }\n"])), BREAKPOINT_MD);
2288
-
2289
- var _templateObject$6;
2290
- var GLOBAL_STYLE = /*#__PURE__*/css(_templateObject$6 || (_templateObject$6 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n :root {\n --default-hero-height: calc(100vh - var(--boemly-space-24));\n }\n\n a {\n text-decoration: none;\n }\n"])));
1336
+ var rootMessagesDe = /*#__PURE__*/_extends({}, messagesDe$i, messagesDe$e, messagesDe$b, messagesDe$7, messagesDe$6, messagesDe$9, messagesDe$j, messagesDe$h, messagesDe$g, messagesDe$f, messagesDe$d, messagesDe$c, messagesDe$a, messagesDe$8, messagesDe$5, messagesDe$4, messagesDe$3, unitMessagesDe);
2291
1337
 
2292
- var messagesDe$j = {
2293
- 'sections.comparison.backgroundShapes': 'Hintergrundformen'
1338
+ var messagesEn$d = {
1339
+ 'sections.comparison.backgroundShapes': 'Background shapes'
2294
1340
  };
2295
1341
 
2296
- var messagesDe$i = {
2297
- 'components.creditsAvailableBadge.text.yes': 'Credits verfügbar',
2298
- 'components.creditsAvailableBadge.text.some': 'Einige verbleibende Credits',
2299
- 'components.creditsAvailableBadge.text.no': 'Keine verbleibenden Credits',
2300
- 'components.creditsAvailableBadge.text.notYet': 'Credits bald verfügbar'
1342
+ var messagesEn$c = {
1343
+ 'components.creditsAvailableBadge.text.yes': 'Credits available',
1344
+ 'components.creditsAvailableBadge.text.some': 'Some remaining credits',
1345
+ 'components.creditsAvailableBadge.text.no': 'No remaining credits',
1346
+ 'components.creditsAvailableBadge.text.notYet': 'Credits available soon'
2301
1347
  };
2302
1348
 
2303
- var messagesDe$h = {
2304
- 'sections.cta.backgroundShapes': 'Dunkle Hintergrundformen',
2305
- 'sections.cta.backgroundShapesLight': 'Helle Hintergrundformen'
1349
+ var messagesEn$b = {
1350
+ 'sections.cta.backgroundShapesDark': 'Dark background shapes',
1351
+ 'sections.cta.backgroundShapesLight': 'Light background shapes'
2306
1352
  };
2307
1353
 
2308
- var messagesDe$g = {
2309
- 'sections.customerCard.more': 'Weiterlesen'
1354
+ var messagesEn$a = {
1355
+ 'sections.customerCard.more': 'Read more'
2310
1356
  };
2311
1357
 
2312
- var messagesDe$f = {
2313
- 'sections.customerQuoteCard.more': 'Weiterlesen'
1358
+ var messagesEn$9 = {
1359
+ 'sections.customerQuoteCard.more': 'Read more'
2314
1360
  };
2315
1361
 
2316
- var messagesDe$e = {
2317
- 'sections.eventCard.recommendedEvent': 'Empfohlene Veranstaltung',
2318
- 'sections.eventCard.buttonShowMore': 'Mehr anzeigen',
2319
- 'sections.eventCard.buttonShowLess': 'Weniger anzeigen',
2320
- 'sections.eventCard.eventType.conference': 'Konferenz',
1362
+ var messagesEn$8 = {
1363
+ 'sections.eventCard.recommendedEvent': 'Recommended Event',
1364
+ 'sections.eventCard.buttonShowMore': 'Show More',
1365
+ 'sections.eventCard.buttonShowLess': 'Show Less',
1366
+ 'sections.eventCard.eventType.conference': 'Conference',
2321
1367
  'sections.eventCard.eventType.webinar': 'Webinar',
2322
- 'sections.eventCard.eventType.forestwalk': 'Waldspaziergang',
2323
- 'sections.eventCard.eventType.partnerevent': 'Partnerveranstaltung',
2324
- 'sections.eventCard.eventType.lunch&learn': 'Mittagessen & Lernen',
2325
- 'sections.eventCard.eventType.fair': 'Messe',
1368
+ 'sections.eventCard.eventType.forestwalk': 'Forest Walk',
1369
+ 'sections.eventCard.eventType.partnerevent': 'Partner Event',
1370
+ 'sections.eventCard.eventType.lunch&learn': 'Lunch & Learn',
1371
+ 'sections.eventCard.eventType.fair': 'Fair',
2326
1372
  'sections.eventCard.eventType.festival': 'Festival',
2327
1373
  'sections.eventCard.eventType.roadshow': 'Roadshow',
2328
1374
  'sections.eventCard.eventType.meetup': 'Meet Up'
2329
1375
  };
2330
1376
 
2331
- var messagesDe$d = {
2332
- 'sections.events.loadMore': 'Mehr laden',
2333
- 'sections.events.noUpcomingEvents': 'Keine bevorstehenden Veranstaltungen gefunden',
2334
- 'sections.events.noPastEvents': 'Keine vergangenen Veranstaltungen gefunden',
2335
- 'sections.eventsFilter.searchPlaceholder': 'Suchen',
1377
+ var messagesDe$2 = {
1378
+ 'sections.events.loadMore': 'Load more',
1379
+ 'sections.events.noUpcomingEvents': 'No upcoming events found',
1380
+ 'sections.events.noPastEvents': 'No past events found',
1381
+ 'sections.events.eventsFilter.searchPlaceholder': 'Search',
2336
1382
  'sections.events.eventsFilter.eventType': 'Event Type',
2337
- 'sections.events.eventsFilter.language': 'Sprache',
2338
- 'sections.events.eventsFilter.sortBy.title': 'Sortieren nach',
2339
- 'sections.events.eventsFilter.sortBy.newest': 'Neueste zuerst',
2340
- 'sections.events.eventsFilter.sortBy.oldest': 'Älteste zuerst'
1383
+ 'sections.events.eventsFilter.language': 'Language',
1384
+ 'sections.events.eventsFilter.sortBy.title': 'Sort by',
1385
+ 'sections.events.eventsFilter.sortBy.newest': 'Newest first',
1386
+ 'sections.events.eventsFilter.sortBy.oldest': 'Oldest first'
2341
1387
  };
2342
1388
 
2343
- var messagesDe$c = {
2344
- 'sections.glossary.copyButtonLabel': 'Kopiere den Link zu diesem Abschnitt in die Zwischenablage',
2345
- 'sections.glossary.copySuccessMessage': 'Link in die Zwischenablage kopiert',
2346
- 'sections.glossary.copyFailureMessage': 'Link konnte nicht in die Zwischenablage kopiert werden'
1389
+ var messagesEn$7 = {
1390
+ 'sections.glossary.copyButtonLabel': 'Copy a link to this section to your clipboard',
1391
+ 'sections.glossary.copySuccessMessage': 'Copied the link to your clipboard',
1392
+ 'sections.glossary.copyFailureMessage': 'Could not copy link to clipboard'
2347
1393
  };
2348
1394
 
2349
- var messagesDe$b = {
2350
- 'features.portfolio.documentsDownloadList.projectDocuments': 'Projektdokumente',
2351
- 'features.portfolio.documentsDownloadList.downloadDocument': 'Dokument herunterladen'
1395
+ var messagesEn$6 = {
1396
+ 'features.portfolio.documentsDownloadList.projectDocuments': 'Project documents',
1397
+ 'features.portfolio.documentsDownloadList.downloadDocument': 'Download document'
2352
1398
  };
2353
1399
 
2354
- var messagesDe$a = {
2355
- 'sections.projectFacts.projectInfo.value': 'Projekt Infos'
1400
+ var messagesEn$5 = {
1401
+ 'sections.projectFacts.projectInfo.value': 'Project Infos'
2356
1402
  };
2357
1403
 
2358
- var messagesDe$9 = {
2359
- 'components.projectGridCard.certified': 'Zertifiziert, {year}',
2360
- 'components.projectGridCard.certificationInProgress': 'Zertifizierung ist in Arbeit'
1404
+ var messagesDe$1 = {
1405
+ 'components.projectGridCard.certified': 'Certified, {year}',
1406
+ 'components.projectGridCard.certificationInProgress': 'Certification in progress'
2361
1407
  };
2362
1408
 
2363
- var messagesDe$8 = {
2364
- 'sections.projectsMap.link.text': 'Mehr Infos'
1409
+ var messagesEn$4 = {
1410
+ 'sections.projectsMap.link.text': 'Show more info'
2365
1411
  };
2366
1412
 
2367
- var messagesDe$7 = {
2368
- 'features.projectInfo.projectInfo.value': 'Projekt Infos',
2369
- 'features.projectInfo.properties.area': 'Projekt Fläche',
2370
- 'features.projectInfo.properties.location': 'Standort',
2371
- 'features.projectInfo.properties.start': 'Projekt Start Datum',
2372
- 'features.projectInfo.properties.timeSpan': 'Projekt Zeitraum',
2373
- 'features.projectInfo.properties.projectType': 'Projekt Typ',
2374
- 'features.projectInfo.properties.projectDeveloper': 'Projekt Entwickler',
2375
- 'features.projectInfo.properties.verificationStandard.label': 'Verifizierungsstandard',
1413
+ var messagesEn$3 = {
1414
+ 'features.projectInfo.projectInfo.value': 'Project Infos',
1415
+ 'features.projectInfo.properties.area': 'Project Area',
1416
+ 'features.projectInfo.properties.location': 'Location',
1417
+ 'features.projectInfo.properties.start': 'Project Start Date',
1418
+ 'features.projectInfo.properties.timeSpan': 'Project Time Span',
1419
+ 'features.projectInfo.properties.projectType': 'Project Type',
1420
+ 'features.projectInfo.properties.projectDeveloper': 'Project Developer',
1421
+ 'features.projectInfo.properties.verificationStandard.label': 'Verification Standard',
2376
1422
  'features.projectInfo.properties.verificationStandard.value.SilvaconsultFCSISO14': 'SILVACONSULT® Forest Carbon Standard, ISO 14064-2',
2377
1423
  'features.projectInfo.properties.verificationStandard.value.MfKWCH': 'Methodik für Klimaschutzprojekte im Wald für die Schweiz',
2378
- 'features.projectInfo.properties.forecastedAmountYear.toolTip': 'Dies ist das jährliche Projekt-Senkenvolumen gemäß dem TÜV-geprüften PDD, dieser Wert stellt nicht die aktuellen Verfügbarkeiten dar.',
2379
- 'features.projectInfo.properties.forecastedAmountYear.label': 'Projektvolumen',
2380
- 'features.projectInfo.properties.riskBuffer': 'Anteil Risikopuffer',
2381
- 'features.projectInfo.properties.year': '{years} {years, plural, one {Jahr} other {Jahre} }'
1424
+ 'features.projectInfo.properties.forecastedAmountYear.label': 'Project Volume',
1425
+ 'features.projectInfo.properties.forecastedAmountYear.toolTip': "This is the yearly project sink volume according to the TÜV-verified PDD, this value doesn't represent current availabilities.",
1426
+ 'features.projectInfo.properties.riskBuffer': 'Risk Buffer Share',
1427
+ 'features.projectInfo.properties.year': '{years} {years, plural, one {year} other {years} }'
2382
1428
  };
2383
1429
 
2384
- var messagesDe$6 = {
2385
- 'portfolio.smallCheckout.price.taxNotIncluded': 'ohne Steuern',
2386
- 'portfolio.smallCheckout.price.taxIncluded': 'Preis inklusive Steuern: {number}',
2387
- 'portfolio.smallCheckout.contributionValueCurrency.label.CHF': 'Geben Sie den Beitrag in Fr. ein',
2388
- 'portfolio.smallCheckout.contributionValueCurrency.label.EUR': 'Geben Sie den Beitrag in € ein',
2389
- 'portfolio.smallCheckout.contributionValueCurrency.unit.EUR': '€',
2390
- 'portfolio.smallCheckout.contributionValueCurrency.unit.CHF': 'Fr.',
2391
- 'portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.CHF': 'Der Wert muss mindestens 10 CHF betragen',
2392
- 'portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.EUR': 'Der Wert muss mindestens 10 Euro betragen.',
2393
- 'portfolio.smallCheckout.contributionValueCurrency.validation.empty': 'Bitte geben Sie einen Wert ein',
2394
- 'portfolio.smallCheckout.contributionValueCurrency.validation.tooHigh': 'Für größere Einkäufe kontaktieren Sie bitte unser Verkaufsteam',
2395
- 'portfolio.smallCheckout.contributionValueTons.label': 'Beitrag in Tonnen',
2396
- 'portfolio.smallCheckout.submitButton': 'Credits kaufen'
2397
- };
2398
-
2399
- var messagesDe$5 = {
2400
- 'sections.shopCheckout.intro.price': 'Preis',
2401
- 'sections.shopCheckout.contributionValue.label.EUR': 'Geben sie einen Betrag in € ein',
2402
- 'sections.shopCheckout.contributionValue.label.CHF': 'Geben sie einen Betrag in CHF ein',
2403
- 'sections.shopCheckout.contributionValue.unit.EUR': '€',
2404
- 'sections.shopCheckout.contributionValue.unit.CHF': 'CHF',
2405
- 'sections.shopCheckout.contributionValue.validation.empty': 'Bitte geben sie einen Betrag ein',
2406
- 'sections.shopCheckout.contributionValue.validation.tooLow.EUR': 'Der Betrag muss mindestens 10 Euro sein',
2407
- 'sections.shopCheckout.contributionValue.validation.tooLow.CHF': 'Der Betrag muss mindestens 10 CHF sein',
2408
- 'sections.shopCheckout.contributionValue.validation.tooHigh': 'Für größere Einkäufe kontaktieren Sie bitte unser Verkaufsteam über office@tree.ly',
2409
- 'sections.shopCheckout.summary.kg': 'Menge',
2410
- 'sections.shopCheckout.summary.price': 'Preis',
2411
- 'sections.shopCheckout.summary.price.taxNotIncluded': 'ohne Steuern',
2412
- 'sections.shopCheckout.summary.price.taxIncluded': 'Preis inklusive Steuern: {number}',
2413
- 'sections.shopCheckout.submit': 'Kaufen'
2414
- };
2415
-
2416
- var messagesDe$4 = {
2417
- 'sections.textCarousel.moveRight': 'Nach rechts bewegen',
2418
- 'sections.textCarousel.moveLeft': 'Nach links bewegen'
2419
- };
2420
-
2421
- var messagesDe$3 = {
2422
- 'sections.timeline.backgroundShapes': 'Hintergrundformen',
2423
- 'sections.timeline.showMoreButton': 'Drei weitere Meilensteine anzeigen'
2424
- };
2425
-
2426
- var unitMessagesDe = {
2427
- 'unit.formatter.tonsCo2': '{number} /tCO₂',
2428
- 'unit.formatter.tonsCo2PerYear': '{number} tCO₂/Jahr'
2429
- };
2430
-
2431
- var rootMessagesDe = /*#__PURE__*/_extends({}, messagesDe$i, messagesDe$e, messagesDe$b, messagesDe$7, messagesDe$6, messagesDe$9, messagesDe$j, messagesDe$h, messagesDe$g, messagesDe$f, messagesDe$d, messagesDe$c, messagesDe$a, messagesDe$8, messagesDe$5, messagesDe$4, messagesDe$3, unitMessagesDe);
2432
-
2433
- var messagesEn$d = {
2434
- 'sections.comparison.backgroundShapes': 'Background shapes'
2435
- };
2436
-
2437
- var messagesEn$c = {
2438
- 'components.creditsAvailableBadge.text.yes': 'Credits available',
2439
- 'components.creditsAvailableBadge.text.some': 'Some remaining credits',
2440
- 'components.creditsAvailableBadge.text.no': 'No remaining credits',
2441
- 'components.creditsAvailableBadge.text.notYet': 'Credits available soon'
2442
- };
2443
-
2444
- var messagesEn$b = {
2445
- 'sections.cta.backgroundShapesDark': 'Dark background shapes',
2446
- 'sections.cta.backgroundShapesLight': 'Light background shapes'
2447
- };
2448
-
2449
- var messagesEn$a = {
2450
- 'sections.customerCard.more': 'Read more'
2451
- };
2452
-
2453
- var messagesEn$9 = {
2454
- 'sections.customerQuoteCard.more': 'Read more'
2455
- };
2456
-
2457
- var messagesEn$8 = {
2458
- 'sections.eventCard.recommendedEvent': 'Recommended Event',
2459
- 'sections.eventCard.buttonShowMore': 'Show More',
2460
- 'sections.eventCard.buttonShowLess': 'Show Less',
2461
- 'sections.eventCard.eventType.conference': 'Conference',
2462
- 'sections.eventCard.eventType.webinar': 'Webinar',
2463
- 'sections.eventCard.eventType.forestwalk': 'Forest Walk',
2464
- 'sections.eventCard.eventType.partnerevent': 'Partner Event',
2465
- 'sections.eventCard.eventType.lunch&learn': 'Lunch & Learn',
2466
- 'sections.eventCard.eventType.fair': 'Fair',
2467
- 'sections.eventCard.eventType.festival': 'Festival',
2468
- 'sections.eventCard.eventType.roadshow': 'Roadshow',
2469
- 'sections.eventCard.eventType.meetup': 'Meet Up'
2470
- };
2471
-
2472
- var messagesDe$2 = {
2473
- 'sections.events.loadMore': 'Load more',
2474
- 'sections.events.noUpcomingEvents': 'No upcoming events found',
2475
- 'sections.events.noPastEvents': 'No past events found',
2476
- 'sections.events.eventsFilter.searchPlaceholder': 'Search',
2477
- 'sections.events.eventsFilter.eventType': 'Event Type',
2478
- 'sections.events.eventsFilter.language': 'Language',
2479
- 'sections.events.eventsFilter.sortBy.title': 'Sort by',
2480
- 'sections.events.eventsFilter.sortBy.newest': 'Newest first',
2481
- 'sections.events.eventsFilter.sortBy.oldest': 'Oldest first'
2482
- };
2483
-
2484
- var messagesEn$7 = {
2485
- 'sections.glossary.copyButtonLabel': 'Copy a link to this section to your clipboard',
2486
- 'sections.glossary.copySuccessMessage': 'Copied the link to your clipboard',
2487
- 'sections.glossary.copyFailureMessage': 'Could not copy link to clipboard'
2488
- };
2489
-
2490
- var messagesEn$6 = {
2491
- 'features.portfolio.documentsDownloadList.projectDocuments': 'Project documents',
2492
- 'features.portfolio.documentsDownloadList.downloadDocument': 'Download document'
2493
- };
2494
-
2495
- var messagesEn$5 = {
2496
- 'sections.projectFacts.projectInfo.value': 'Project Infos'
2497
- };
2498
-
2499
- var messagesDe$1 = {
2500
- 'components.projectGridCard.certified': 'Certified, {year}',
2501
- 'components.projectGridCard.certificationInProgress': 'Certification in progress'
2502
- };
2503
-
2504
- var messagesEn$4 = {
2505
- 'sections.projectsMap.link.text': 'Show more info'
2506
- };
2507
-
2508
- var messagesEn$3 = {
2509
- 'features.projectInfo.projectInfo.value': 'Project Infos',
2510
- 'features.projectInfo.properties.area': 'Project Area',
2511
- 'features.projectInfo.properties.location': 'Location',
2512
- 'features.projectInfo.properties.start': 'Project Start Date',
2513
- 'features.projectInfo.properties.timeSpan': 'Project Time Span',
2514
- 'features.projectInfo.properties.projectType': 'Project Type',
2515
- 'features.projectInfo.properties.projectDeveloper': 'Project Developer',
2516
- 'features.projectInfo.properties.verificationStandard.label': 'Verification Standard',
2517
- 'features.projectInfo.properties.verificationStandard.value.SilvaconsultFCSISO14': 'SILVACONSULT® Forest Carbon Standard, ISO 14064-2',
2518
- 'features.projectInfo.properties.verificationStandard.value.MfKWCH': 'Methodik für Klimaschutzprojekte im Wald für die Schweiz',
2519
- 'features.projectInfo.properties.forecastedAmountYear.label': 'Project Volume',
2520
- 'features.projectInfo.properties.forecastedAmountYear.toolTip': "This is the yearly project sink volume according to the TÜV-verified PDD, this value doesn't represent current availabilities.",
2521
- 'features.projectInfo.properties.riskBuffer': 'Risk Buffer Share',
2522
- 'features.projectInfo.properties.year': '{years} {years, plural, one {year} other {years} }'
2523
- };
2524
-
2525
- var messagesEn$2 = {
2526
- 'portfolio.smallCheckout.price.taxNotIncluded': 'not including tax',
2527
- 'portfolio.smallCheckout.price.taxIncluded': 'Price including tax: {number}',
2528
- 'portfolio.smallCheckout.contributionValueCurrency.label.CHF': 'Contribution Amount in CHF',
2529
- 'portfolio.smallCheckout.contributionValueCurrency.label.EUR': 'Contribution Amount in €',
1430
+ var messagesEn$2 = {
1431
+ 'portfolio.smallCheckout.price.taxNotIncluded': 'not including tax',
1432
+ 'portfolio.smallCheckout.price.taxIncluded': 'Price including tax: {number}',
1433
+ 'portfolio.smallCheckout.contributionValueCurrency.label.CHF': 'Contribution Amount in CHF',
1434
+ 'portfolio.smallCheckout.contributionValueCurrency.label.EUR': 'Contribution Amount in €',
2530
1435
  'portfolio.smallCheckout.contributionValueCurrency.unit.EUR': '€',
2531
1436
  'portfolio.smallCheckout.contributionValueCurrency.unit.CHF': 'CHF',
2532
1437
  'portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.CHF': 'The value must be at least 10 CHF',
@@ -2580,84 +1485,1274 @@ var getMessages = function getMessages(locale) {
2580
1485
  return messages[messagesLocale];
2581
1486
  };
2582
1487
 
2583
- var cache = /*#__PURE__*/createIntlCache();
2584
- var intlFactory = function intlFactory(locale) {
2585
- return createIntl({
2586
- locale: locale,
2587
- messages: getMessages(locale)
2588
- }, cache);
1488
+ var AnalyticsContext = /*#__PURE__*/createContext(undefined);
1489
+ var cache = /*#__PURE__*/createIntlCache();
1490
+ var intlFactory = function intlFactory(locale) {
1491
+ return createIntl({
1492
+ locale: locale,
1493
+ messages: getMessages(locale)
1494
+ }, cache);
1495
+ };
1496
+ var IntlContext = /*#__PURE__*/createContext(/*#__PURE__*/intlFactory('en'));
1497
+ var ContextProvider = function ContextProvider(_ref) {
1498
+ var children = _ref.children,
1499
+ locale = _ref.locale,
1500
+ analyticsFunction = _ref.analyticsFunction;
1501
+ var fetcher = /*#__PURE__*/function () {
1502
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(resource, init) {
1503
+ var response, errorData;
1504
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
1505
+ while (1) switch (_context.prev = _context.next) {
1506
+ case 0:
1507
+ _context.next = 2;
1508
+ return strapiClient.get("" + resource, _extends({}, init, {
1509
+ headers: {}
1510
+ }));
1511
+ case 2:
1512
+ response = _context.sent;
1513
+ if (!(response.status < 200 || response.status >= 300)) {
1514
+ _context.next = 15;
1515
+ break;
1516
+ }
1517
+ errorData = {
1518
+ message: ''
1519
+ };
1520
+ _context.prev = 5;
1521
+ _context.next = 8;
1522
+ return response.data;
1523
+ case 8:
1524
+ errorData = _context.sent;
1525
+ _context.next = 14;
1526
+ break;
1527
+ case 11:
1528
+ _context.prev = 11;
1529
+ _context.t0 = _context["catch"](5);
1530
+ errorData = {
1531
+ message: "An unknown error occurred while fetching data."
1532
+ };
1533
+ case 14:
1534
+ throw new Error(errorData.message);
1535
+ case 15:
1536
+ _context.next = 17;
1537
+ return response.data;
1538
+ case 17:
1539
+ _context.t1 = _context.sent;
1540
+ _context.t2 = response.headers;
1541
+ return _context.abrupt("return", {
1542
+ body: _context.t1,
1543
+ headers: _context.t2
1544
+ });
1545
+ case 20:
1546
+ case "end":
1547
+ return _context.stop();
1548
+ }
1549
+ }, _callee, null, [[5, 11]]);
1550
+ }));
1551
+ return function fetcher(_x, _x2) {
1552
+ return _ref2.apply(this, arguments);
1553
+ };
1554
+ }();
1555
+ return React.createElement(React.Fragment, null, React.createElement(SWRConfig, {
1556
+ value: {
1557
+ fetcher: fetcher
1558
+ }
1559
+ }, React.createElement(Global, {
1560
+ styles: {
1561
+ GLOBAL_STYLE: GLOBAL_STYLE
1562
+ }
1563
+ }), React.createElement(IntlContext.Provider, {
1564
+ value: intlFactory(locale)
1565
+ }, React.createElement(AnalyticsContext.Provider, {
1566
+ value: analyticsFunction
1567
+ }, children))));
1568
+ };
1569
+
1570
+ var _excluded$1 = ["link", "component"];
1571
+ var StrapiLinkButton = function StrapiLinkButton(_ref) {
1572
+ var link = _ref.link,
1573
+ _ref$component = _ref.component,
1574
+ component = _ref$component === void 0 ? 'StrapiLinkButton' : _ref$component,
1575
+ buttonProps = _objectWithoutPropertiesLoose(_ref, _excluded$1);
1576
+ var adBlockDetected = useDetectAdBlock();
1577
+ var analyticsFunction = useContext(AnalyticsContext);
1578
+ var handleClick = function handleClick() {
1579
+ var buttonUrl = link.intercomLauncher && adBlockDetected ? 'mailto:hello@tree.ly' : strapiLinkUrl(link);
1580
+ analyticsFunction == null || analyticsFunction({
1581
+ type: 'track',
1582
+ props: {
1583
+ action: 'click',
1584
+ component: component,
1585
+ buttonText: link.text,
1586
+ buttonUrl: buttonUrl
1587
+ }
1588
+ });
1589
+ };
1590
+ if (link.intercomLauncher) {
1591
+ if (adBlockDetected) {
1592
+ return React.createElement(Button, _extends({}, buttonProps, {
1593
+ as: Link,
1594
+ href: "mailto:hello@tree.ly",
1595
+ onClick: handleClick
1596
+ }), link.text);
1597
+ }
1598
+ return React.createElement(Button, _extends({}, buttonProps, {
1599
+ onClick: function onClick() {
1600
+ handleClick();
1601
+ openHubSpotChat();
1602
+ }
1603
+ }), link.text);
1604
+ }
1605
+ return React.createElement(Button, _extends({}, buttonProps, {
1606
+ as: Link,
1607
+ href: strapiLinkUrl(link),
1608
+ onClick: handleClick
1609
+ }), link.text);
1610
+ };
1611
+
1612
+ var Hero = function Hero(_ref) {
1613
+ var slice = _ref.slice;
1614
+ return React.createElement(Box, {
1615
+ position: "relative",
1616
+ width: "full",
1617
+ height: "var(--default-hero-height)",
1618
+ minHeight: "2xl",
1619
+ backgroundColor: "gray.900",
1620
+ overflowX: "hidden"
1621
+ }, slice.image && React.createElement(React.Fragment, null, React.createElement(Image, {
1622
+ src: strapiMediaUrl(slice.image.img, 'xLarge'),
1623
+ alt: slice.image.alt,
1624
+ fill: true,
1625
+ style: {
1626
+ objectFit: slice.image.objectFit || 'cover'
1627
+ }
1628
+ }), React.createElement(Gradient, null)), slice.shape && React.createElement(Box, {
1629
+ position: "absolute",
1630
+ bottom: "0",
1631
+ borderTopRightRadius: "full",
1632
+ width: ['3xs', null, '2xs', null, 'sm'],
1633
+ height: ['3xs', null, '2xs', null, 'sm'],
1634
+ right: ['-16', null, '24']
1635
+ }, React.createElement(Image, {
1636
+ src: strapiMediaUrl(slice.shape.img, 'medium'),
1637
+ alt: slice.shape.alt,
1638
+ fill: true,
1639
+ style: {
1640
+ objectFit: slice.shape.objectFit || 'cover',
1641
+ borderTopRightRadius: 'var(--boemly-radii-full)'
1642
+ }
1643
+ })), React.createElement(Box, {
1644
+ position: "absolute",
1645
+ left: "0",
1646
+ top: "56%",
1647
+ width: "full",
1648
+ textAlign: slice.textAlign,
1649
+ transform: "translateY(-50%)"
1650
+ }, React.createElement(Wrapper, null, React.createElement(React.Fragment, null, React.createElement(DefaultSectionHeader, {
1651
+ isHero: true,
1652
+ tagline: slice.tagline,
1653
+ title: slice.title,
1654
+ text: slice.subTitle,
1655
+ taglineProps: {
1656
+ color: 'white'
1657
+ },
1658
+ titleProps: {
1659
+ color: 'white',
1660
+ maxW: slice.textAlign === 'center' ? '4xl' : '3xl',
1661
+ mx: slice.textAlign === 'center' ? 'auto' : 'unset',
1662
+ textAlign: slice.textAlign
1663
+ },
1664
+ textProps: {
1665
+ maxW: '2xl',
1666
+ mx: slice.textAlign === 'center' ? 'auto' : 'unset',
1667
+ textAlign: slice.textAlign,
1668
+ color: 'white'
1669
+ }
1670
+ }), React.createElement(Flex, {
1671
+ gap: "8",
1672
+ justifyContent: slice.textAlign === 'center' ? 'center' : 'start'
1673
+ }, slice.button && React.createElement(StrapiLinkButton, {
1674
+ key: slice.button.id,
1675
+ mt: "10",
1676
+ size: "xl",
1677
+ link: slice.button,
1678
+ component: "Hero"
1679
+ }), slice.additionalButtons.map(function (button) {
1680
+ return React.createElement(StrapiLinkButton, {
1681
+ key: button.button.id,
1682
+ mt: "10",
1683
+ size: "xl",
1684
+ variant: button.variant,
1685
+ link: button.button,
1686
+ component: "Hero"
1687
+ });
1688
+ }))))));
1689
+ };
1690
+
1691
+ var IconGrid = function IconGrid(_ref) {
1692
+ var slice = _ref.slice;
1693
+ var columns = function columns() {
1694
+ if (slice.iconsWithTextAndButton.length === 2) {
1695
+ return [1, null, null, 2, 2];
1696
+ }
1697
+ if (slice.iconsWithTextAndButton.length === 1) {
1698
+ return 1;
1699
+ }
1700
+ return [1, null, null, 2, 3];
1701
+ };
1702
+ return React.createElement(DefaultSectionContainer, null, React.createElement(Wrapper, null, slice.title ? React.createElement(React.Fragment, null, React.createElement(Flex, {
1703
+ alignItems: "center",
1704
+ flexDirection: "column"
1705
+ }, React.createElement(DefaultSectionHeader, {
1706
+ tagline: slice.tagline,
1707
+ title: slice.title,
1708
+ text: slice.subTitle,
1709
+ taglineProps: {
1710
+ maxW: '2xl',
1711
+ textAlign: 'center'
1712
+ },
1713
+ titleProps: {
1714
+ maxW: '3xl',
1715
+ textAlign: 'center'
1716
+ },
1717
+ textProps: {
1718
+ maxW: '3xl',
1719
+ textAlign: 'center'
1720
+ }
1721
+ })), React.createElement(Spacer, {
1722
+ h: "20"
1723
+ })) : React.createElement(React.Fragment, null), React.createElement(SimpleGrid, {
1724
+ columns: columns(),
1725
+ gap: slice.iconsWithTextAndButton.length === 2 ? '14' : '16',
1726
+ rowGap: ['16', null, null, '20']
1727
+ }, slice.iconsWithTextAndButton.map(function (iconWithTextAndButton) {
1728
+ return React.createElement(Box, {
1729
+ key: iconWithTextAndButton.id
1730
+ }, React.createElement(Box, {
1731
+ margin: "0 auto",
1732
+ backgroundColor: "primary.50",
1733
+ borderRadius: "full",
1734
+ display: "flex",
1735
+ alignItems: "center",
1736
+ justifyContent: "space-around",
1737
+ width: "6.5rem",
1738
+ height: "6.5rem"
1739
+ }, React.createElement(Box, {
1740
+ position: "absolute",
1741
+ width: "12",
1742
+ height: "12"
1743
+ }, React.createElement(Image, {
1744
+ src: strapiMediaUrl(iconWithTextAndButton.icon.img, 'xSmall'),
1745
+ alt: iconWithTextAndButton.icon.alt,
1746
+ fill: true,
1747
+ style: {
1748
+ objectFit: iconWithTextAndButton.icon.objectFit || 'contain'
1749
+ }
1750
+ }))), React.createElement(Heading, {
1751
+ size: "xl",
1752
+ textAlign: "center",
1753
+ mb: "4",
1754
+ mt: "8"
1755
+ }, iconWithTextAndButton.title), React.createElement(Text, {
1756
+ size: "mdRegularNormal",
1757
+ textAlign: "center"
1758
+ }, iconWithTextAndButton.text), iconWithTextAndButton.button && React.createElement(Box, {
1759
+ textAlign: "center"
1760
+ }, React.createElement(StrapiLinkButton, {
1761
+ key: iconWithTextAndButton.button.id,
1762
+ mt: "8",
1763
+ size: "md",
1764
+ variant: "outline",
1765
+ link: iconWithTextAndButton.button,
1766
+ component: "IconGrid"
1767
+ })));
1768
+ }))));
1769
+ };
1770
+
1771
+ var LinkedInIcon = function LinkedInIcon() {
1772
+ return React.createElement("svg", {
1773
+ width: "14",
1774
+ height: "14",
1775
+ viewBox: "0 0 14 14",
1776
+ fill: "none",
1777
+ xmlns: "http://www.w3.org/2000/svg"
1778
+ }, React.createElement("g", {
1779
+ clipPath: "url(#clip0_112_606)"
1780
+ }, React.createElement("path", {
1781
+ 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",
1782
+ fill: "#0A66C2"
1783
+ })), React.createElement("defs", null, React.createElement("clipPath", {
1784
+ id: "clip0_112_606"
1785
+ }, React.createElement("rect", {
1786
+ width: "14",
1787
+ height: "14",
1788
+ fill: "white"
1789
+ }))));
1790
+ };
1791
+
1792
+ var _excluded = ["link"];
1793
+ var StrapiLinkButtonWithIcon = function StrapiLinkButtonWithIcon(_ref) {
1794
+ var link = _ref.link,
1795
+ props = _objectWithoutPropertiesLoose(_ref, _excluded);
1796
+ var getLinkIcon = function getLinkIcon(destination) {
1797
+ switch (destination) {
1798
+ case 'linkedin':
1799
+ {
1800
+ return React.createElement(LinkedInIcon, null);
1801
+ }
1802
+ case 'web':
1803
+ {
1804
+ return React.createElement(Globe, null);
1805
+ }
1806
+ default:
1807
+ {
1808
+ return React.createElement(CaretRight, null);
1809
+ }
1810
+ }
1811
+ };
1812
+ return React.createElement(StrapiLinkButton, _extends({}, props, {
1813
+ link: link.link,
1814
+ rightIcon: getLinkIcon(link.destination)
1815
+ }));
1816
+ };
1817
+
1818
+ var ImageGrid = function ImageGrid(_ref) {
1819
+ var slice = _ref.slice;
1820
+ var _useToken = useToken('colors', ['primary.50']),
1821
+ primary50 = _useToken[0];
1822
+ return React.createElement(DefaultSectionContainer, {
1823
+ backgroundColor: primary50,
1824
+ title: slice.title
1825
+ }, React.createElement(Wrapper, null, React.createElement(DefaultSectionHeader, {
1826
+ tagline: slice.tagline,
1827
+ title: slice.title,
1828
+ text: slice.text,
1829
+ taglineProps: {
1830
+ textAlign: 'center'
1831
+ },
1832
+ titleProps: {
1833
+ textAlign: 'center',
1834
+ maxW: '6xl',
1835
+ marginX: 'auto'
1836
+ },
1837
+ textProps: {
1838
+ textAlign: 'center',
1839
+ maxW: '2xl',
1840
+ marginX: 'auto'
1841
+ }
1842
+ }), React.createElement(SimpleGrid, {
1843
+ mt: "24",
1844
+ columns: 3,
1845
+ gap: "24",
1846
+ rowGap: "16",
1847
+ minChildWidth: "16rem"
1848
+ }, slice.images.map(function (_ref2) {
1849
+ var id = _ref2.id,
1850
+ title = _ref2.title,
1851
+ subTitle = _ref2.subTitle,
1852
+ image = _ref2.image,
1853
+ links = _ref2.links;
1854
+ return React.createElement(Box, {
1855
+ key: id
1856
+ }, React.createElement(Box, {
1857
+ position: "relative",
1858
+ height: "sm",
1859
+ borderRadius: "xl"
1860
+ }, React.createElement(Image, {
1861
+ src: strapiMediaUrl(image.img, 'medium'),
1862
+ alt: image.alt,
1863
+ fill: true,
1864
+ style: {
1865
+ objectFit: image.objectFit || 'cover',
1866
+ borderRadius: 'var(--boemly-radii-xl)'
1867
+ }
1868
+ })), React.createElement(Heading, {
1869
+ size: "xl",
1870
+ mt: "4"
1871
+ }, title), subTitle && React.createElement(Text, {
1872
+ size: "mdRegularNormal"
1873
+ }, subTitle), links && links.length > 0 && React.createElement(Flex, {
1874
+ mt: "3",
1875
+ flexDir: "row",
1876
+ gap: "2",
1877
+ flexWrap: "wrap"
1878
+ }, links.map(function (link) {
1879
+ return React.createElement(StrapiLinkButtonWithIcon, {
1880
+ key: link.id,
1881
+ link: link,
1882
+ size: "sm",
1883
+ variant: "outline",
1884
+ component: "ImageGrid"
1885
+ });
1886
+ })));
1887
+ }))));
1888
+ };
1889
+
1890
+ var ImageTextSequence = function ImageTextSequence(_ref) {
1891
+ var slice = _ref.slice;
1892
+ var _useMediaQuery = useMediaQuery(BREAKPOINT_LG_QUERY),
1893
+ oneColumnGrid = _useMediaQuery[0];
1894
+ var _useToken = useToken('colors', ['primary.50']),
1895
+ primary50 = _useToken[0];
1896
+ var _useToken2 = useToken('colors', ['gray.700']),
1897
+ gray700 = _useToken2[0];
1898
+ return React.createElement(DefaultSectionContainer, {
1899
+ backgroundColor: primary50,
1900
+ title: slice.title
1901
+ }, slice.background ? React.createElement(React.Fragment, null, React.createElement(Box, {
1902
+ position: "absolute",
1903
+ top: "0",
1904
+ right: "24",
1905
+ display: ['none', null, null, 'unset']
1906
+ }, React.createElement(Image, {
1907
+ src: CDN_URI + "/assets/v3/strapi-slices/desktop-map-border.svg",
1908
+ alt: "Map",
1909
+ width: "786",
1910
+ height: "897"
1911
+ })), React.createElement(Box, {
1912
+ position: "absolute",
1913
+ top: "64",
1914
+ right: "-14",
1915
+ display: ['unset', null, null, 'none']
1916
+ }, React.createElement(Image, {
1917
+ src: CDN_URI + "/assets/v3/strapi-slices/mobile-map-border.svg",
1918
+ alt: "Map",
1919
+ width: "227",
1920
+ height: "452"
1921
+ }))) : React.createElement(React.Fragment, null), React.createElement(Wrapper, null, React.createElement(DefaultSectionHeader, {
1922
+ tagline: slice.tagline,
1923
+ title: slice.title,
1924
+ text: slice.text,
1925
+ taglineProps: {
1926
+ textAlign: ['left', null, null, null, 'center']
1927
+ },
1928
+ titleProps: {
1929
+ maxW: '6xl',
1930
+ marginX: ['0', null, null, null, 'auto'],
1931
+ textAlign: ['left', null, null, null, 'center']
1932
+ },
1933
+ textProps: {
1934
+ maxW: '2xl',
1935
+ marginX: ['0', null, null, null, 'auto'],
1936
+ textAlign: ['left', null, null, null, 'center'],
1937
+ color: 'black'
1938
+ }
1939
+ }), React.createElement(SimpleGrid, {
1940
+ gap: "16",
1941
+ mt: ['28', null, null, null, '40'],
1942
+ columns: [1, null, null, null, 2]
1943
+ }, slice.imageTextRows.map(function (_ref2, index) {
1944
+ var id = _ref2.id,
1945
+ title = _ref2.title,
1946
+ text = _ref2.text,
1947
+ button = _ref2.button,
1948
+ image = _ref2.image;
1949
+ var imageBox = React.createElement(Box, null, React.createElement(Box, {
1950
+ position: "relative",
1951
+ width: "full",
1952
+ minHeight: ['2xs', null, null, 'sm']
1953
+ }, React.createElement(Image, {
1954
+ src: strapiMediaUrl(image.img, 'large'),
1955
+ alt: image.alt,
1956
+ fill: true,
1957
+ style: {
1958
+ objectFit: image.objectFit || 'contain',
1959
+ borderRadius: 'var(--boemly-radii-xl)'
1960
+ }
1961
+ })));
1962
+ return React.createElement(Fragment, {
1963
+ key: id
1964
+ }, (oneColumnGrid || index % 2 !== 0) && imageBox, React.createElement(Box, {
1965
+ display: "flex",
1966
+ alignItems: "flex-start",
1967
+ flexDirection: "column",
1968
+ justifyContent: "center"
1969
+ }, React.createElement(Heading, {
1970
+ as: "h2",
1971
+ size: "xl",
1972
+ mb: "4"
1973
+ }, title), React.createElement(Text, {
1974
+ size: "mdRegularNormal"
1975
+ }, text), button && React.createElement(StrapiLinkButton, {
1976
+ mt: "5",
1977
+ link: button,
1978
+ size: "sm",
1979
+ variant: "outline",
1980
+ rightIcon: React.createElement(CaretRight, {
1981
+ size: "10",
1982
+ color: gray700
1983
+ }),
1984
+ component: "ImageTextSequence"
1985
+ })), !oneColumnGrid && index % 2 === 0 && imageBox);
1986
+ }))));
1987
+ };
1988
+
1989
+ var LeftTextRightCard = function LeftTextRightCard(_ref) {
1990
+ var slice = _ref.slice;
1991
+ var _useRouter = useRouter(),
1992
+ push = _useRouter.push;
1993
+ var analyticsFunction = useContext(AnalyticsContext);
1994
+ var handleCardButtonClick = function handleCardButtonClick() {
1995
+ var _slice$card;
1996
+ if ((_slice$card = slice.card) != null && _slice$card.button) {
1997
+ var _slice$card5;
1998
+ if (analyticsFunction) {
1999
+ var _slice$card2, _slice$card3, _slice$card4;
2000
+ analyticsFunction({
2001
+ type: 'track',
2002
+ props: {
2003
+ action: 'click',
2004
+ component: 'LeftTextRightCard',
2005
+ buttonText: (_slice$card2 = slice.card) == null || (_slice$card2 = _slice$card2.button) == null ? void 0 : _slice$card2.text,
2006
+ buttonUrl: strapiLinkUrl((_slice$card3 = slice.card) == null ? void 0 : _slice$card3.button),
2007
+ cardTitle: (_slice$card4 = slice.card) == null ? void 0 : _slice$card4.title
2008
+ }
2009
+ });
2010
+ }
2011
+ push(strapiLinkUrl((_slice$card5 = slice.card) == null ? void 0 : _slice$card5.button));
2012
+ }
2013
+ };
2014
+ return React.createElement(DefaultSectionContainer, {
2015
+ title: slice.title
2016
+ }, React.createElement(Wrapper, null, React.createElement(Grid, {
2017
+ templateColumns: ['repeat(8, 1fr)', null, null, null, 'repeat(12, 1fr)'],
2018
+ templateRows: ['repeat(2, 1fr)', null, null, null, 'repeat(1, 1fr)'],
2019
+ rowGap: "12"
2020
+ }, React.createElement(GridItem, {
2021
+ colSpan: 8,
2022
+ rowSpan: 1,
2023
+ pr: ['0', null, null, null, '28']
2024
+ }, React.createElement(DefaultSectionHeader, {
2025
+ tagline: slice.tagline,
2026
+ title: slice.title,
2027
+ text: slice.text
2028
+ }), slice.checkMarkLabels && React.createElement(React.Fragment, null, React.createElement(Spacer, {
2029
+ height: "10"
2030
+ }), React.createElement(BoemlyList, {
2031
+ listItems: slice.checkMarkLabels
2032
+ }), React.createElement(Spacer, {
2033
+ height: "10"
2034
+ })), slice.button && React.createElement(StrapiLinkButton, {
2035
+ link: slice.button,
2036
+ size: "md",
2037
+ colorScheme: "white",
2038
+ variant: "outline",
2039
+ rightIcon: React.createElement(ArrowRight, null),
2040
+ component: "LeftTextRightCard"
2041
+ })), React.createElement(GridItem, {
2042
+ colSpan: [8, null, null, null, 4],
2043
+ rowSpan: 1,
2044
+ position: "relative"
2045
+ }, slice.card && React.createElement(PortfolioCard, {
2046
+ title: slice.card.title,
2047
+ button: slice.card.button && {
2048
+ text: slice.card.button.text,
2049
+ onClick: handleCardButtonClick
2050
+ },
2051
+ facts: slice.card.facts,
2052
+ image: React.createElement(Image, {
2053
+ src: strapiMediaUrl(slice.card.image.img, 'medium'),
2054
+ alt: slice.card.image.alt,
2055
+ fill: true,
2056
+ style: {
2057
+ objectFit: slice.card.image.objectFit || 'cover'
2058
+ }
2059
+ }),
2060
+ portfolioNumber: slice.card.portfolioNumber
2061
+ })))));
2062
+ };
2063
+
2064
+ var LogoGridWithText = function LogoGridWithText(_ref) {
2065
+ var slice = _ref.slice;
2066
+ var _useToken = useToken('colors', ['primary.50']),
2067
+ primary50 = _useToken[0];
2068
+ return React.createElement(DefaultSectionContainer, {
2069
+ backgroundColor: primary50,
2070
+ title: slice.title
2071
+ }, React.createElement(Wrapper, null, React.createElement(SimpleGrid, {
2072
+ columns: 2,
2073
+ gap: "28",
2074
+ minChildWidth: "16rem"
2075
+ }, React.createElement(Box, {
2076
+ display: "flex",
2077
+ flexDirection: "column",
2078
+ justifyContent: "center",
2079
+ alignItems: "flex-start"
2080
+ }, React.createElement(Heading, {
2081
+ as: "h2",
2082
+ size: "3xl",
2083
+ mb: "4"
2084
+ }, slice.title), React.createElement(RichText, {
2085
+ content: slice.text
2086
+ }), slice.button && React.createElement(StrapiLinkButton, {
2087
+ link: slice.button,
2088
+ size: "md",
2089
+ colorScheme: "white",
2090
+ variant: "outline",
2091
+ mt: "6",
2092
+ rightIcon: React.createElement(ArrowRight, null),
2093
+ component: "LogoGridWithText"
2094
+ })), React.createElement(Flex, {
2095
+ flexDir: "row",
2096
+ flexWrap: "wrap",
2097
+ gap: ['12', null, null, '28']
2098
+ }, slice.logos.map(function (logo) {
2099
+ return React.createElement(Flex, {
2100
+ key: logo.id,
2101
+ justifyContent: "center",
2102
+ alignItems: "center",
2103
+ flexGrow: 1,
2104
+ flexShrink: 0,
2105
+ flexBasis: slice.logos.length > 2 ? '34%' : '90%'
2106
+ }, React.createElement(Box, {
2107
+ position: "relative",
2108
+ height: "20",
2109
+ width: "100%"
2110
+ }, logo.link ? React.createElement("a", {
2111
+ href: strapiLinkUrl(logo.link)
2112
+ }, React.createElement(Image, {
2113
+ src: strapiMediaUrl(logo.img, 'small'),
2114
+ alt: logo.alt,
2115
+ fill: true,
2116
+ style: {
2117
+ objectFit: logo.objectFit || 'contain'
2118
+ }
2119
+ })) : React.createElement(Image, {
2120
+ src: strapiMediaUrl(logo.img, 'small'),
2121
+ alt: logo.alt,
2122
+ fill: true,
2123
+ style: {
2124
+ objectFit: logo.objectFit || 'contain'
2125
+ }
2126
+ })));
2127
+ })))));
2128
+ };
2129
+
2130
+ var _templateObject$8, _templateObject2$5, _templateObject3$2, _templateObject4$1, _templateObject5;
2131
+ var MapHeroContainer = /*#__PURE__*/styled(Box)(_templateObject$8 || (_templateObject$8 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\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: ", ") {\n height: auto;\n }\n"])), BREAKPOINT_LG);
2132
+ var MapHeroTextContainer = /*#__PURE__*/styled(Box)(_templateObject2$5 || (_templateObject2$5 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\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: ", ") {\n position: relative;\n transform: unset;\n\n padding-top: var(--boemly-space-32);\n }\n"])), BREAKPOINT_LG);
2133
+ var ShapeContainer = /*#__PURE__*/styled(Box)(_templateObject3$2 || (_templateObject3$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\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: ", ") {\n display: none;\n }\n"])), BREAKPOINT_LG);
2134
+ var MapContainer = /*#__PURE__*/styled(Box)(_templateObject4$1 || (_templateObject4$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\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: ", ") {\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"])), BREAKPOINT_LG);
2135
+ var MapGradient = /*#__PURE__*/styled(Box)(_templateObject5 || (_templateObject5 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\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: ", ") {\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"])), BREAKPOINT_LG);
2136
+
2137
+ var MapHero = function MapHero(_ref) {
2138
+ var slice = _ref.slice;
2139
+ var _useMediaQuery = useMediaQuery(BREAKPOINT_LG_QUERY),
2140
+ belowBreakpoint = _useMediaQuery[0];
2141
+ return React.createElement(MapHeroContainer, {
2142
+ maxWidth: "full"
2143
+ }, slice.shape && React.createElement(ShapeContainer, null, React.createElement(Image, {
2144
+ src: strapiMediaUrl(slice.shape.img, 'medium'),
2145
+ alt: slice.shape.alt,
2146
+ fill: true,
2147
+ style: {
2148
+ objectFit: slice.shape.objectFit || 'cover'
2149
+ }
2150
+ })), React.createElement(MapHeroTextContainer, null, React.createElement(Wrapper, null, React.createElement(React.Fragment, null, React.createElement(DefaultSectionHeader, {
2151
+ isHero: true,
2152
+ tagline: slice.tagline,
2153
+ title: slice.title,
2154
+ text: slice.subTitle,
2155
+ titleProps: {
2156
+ maxW: ['100%', null, null, null, '60%']
2157
+ },
2158
+ textProps: {
2159
+ maxW: ['100%', null, null, null, '55%']
2160
+ }
2161
+ }), slice.buttons && slice.buttons.length > 0 && React.createElement(Flex, {
2162
+ mt: "10",
2163
+ flexDir: "row",
2164
+ gap: "5"
2165
+ }, React.createElement(StrapiLinkButton, {
2166
+ link: slice.buttons[0],
2167
+ size: "xl",
2168
+ component: "MapHero"
2169
+ }), slice.buttons.length === 2 && React.createElement(StrapiLinkButton, {
2170
+ link: slice.buttons[1],
2171
+ variant: "outline",
2172
+ size: "xl",
2173
+ component: "MapHero"
2174
+ }))))), React.createElement(MapContainer, null, belowBreakpoint ? React.createElement(Image, {
2175
+ src: strapiMediaUrl(slice.mobileMap.img, 'xLarge'),
2176
+ alt: slice.mobileMap.alt,
2177
+ fill: true,
2178
+ style: {
2179
+ objectFit: slice.mobileMap.objectFit || 'contain'
2180
+ }
2181
+ }) : React.createElement(Image, {
2182
+ src: strapiMediaUrl(slice.map.img, 'xLarge'),
2183
+ alt: slice.map.alt,
2184
+ fill: true,
2185
+ style: {
2186
+ objectFit: slice.map.objectFit || 'cover'
2187
+ }
2188
+ }), React.createElement(MapGradient, null)));
2189
+ };
2190
+
2191
+ var convertToKebabCase = function convertToKebabCase(str) {
2192
+ var matches = str && str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g);
2193
+ return matches ? matches.map(function (x) {
2194
+ return x.toLowerCase();
2195
+ }).join('-') : '';
2196
+ };
2197
+
2198
+ var VARIANTS$4 = {
2199
+ gray: {
2200
+ backgroundColor: 'primary.50',
2201
+ tagLineColor: 'primary.500',
2202
+ textColor: 'black',
2203
+ accordionVariant: 'black',
2204
+ otherQuestionsBackground: 'primary.700'
2205
+ },
2206
+ green: {
2207
+ backgroundColor: 'primary.800',
2208
+ tagLineColor: 'white',
2209
+ textColor: 'white',
2210
+ accordionVariant: 'white',
2211
+ otherQuestionsBackground: 'primary.900'
2212
+ },
2213
+ white: {
2214
+ backgroundColor: 'white',
2215
+ tagLineColor: 'primary.500',
2216
+ textColor: 'black',
2217
+ accordionVariant: 'black',
2218
+ otherQuestionsBackground: 'primary.700'
2219
+ }
2220
+ };
2221
+ var QAndA = function QAndA(_ref) {
2222
+ var _slice$variant;
2223
+ var slice = _ref.slice;
2224
+ var _useRouter = useRouter(),
2225
+ push = _useRouter.push;
2226
+ var analyticsFunction = useContext(AnalyticsContext);
2227
+ var handleHeroButtonClick = function handleHeroButtonClick() {
2228
+ var _slice$hero;
2229
+ if ((_slice$hero = slice.hero) != null && _slice$hero.button) {
2230
+ analyticsFunction == null || analyticsFunction({
2231
+ type: 'track',
2232
+ props: {
2233
+ action: 'click',
2234
+ component: 'QAndA',
2235
+ buttonText: slice.hero.button.text,
2236
+ buttonUrl: strapiLinkUrl(slice.hero.button),
2237
+ section: 'hero'
2238
+ }
2239
+ });
2240
+ push(strapiLinkUrl(slice.hero.button));
2241
+ }
2242
+ };
2243
+ var variant = VARIANTS$4[(_slice$variant = slice.variant) != null ? _slice$variant : 'green'];
2244
+ return React.createElement(React.Fragment, null, React.createElement(Box, {
2245
+ pb: slice.hero ? 80 : 28,
2246
+ id: convertToKebabCase(slice.title),
2247
+ backgroundColor: variant.backgroundColor
2248
+ }, React.createElement(Wrapper, null, React.createElement(SimpleGrid, {
2249
+ columns: [1, null, null, 2]
2250
+ }, React.createElement(Box, {
2251
+ mr: "16",
2252
+ paddingY: "28"
2253
+ }, React.createElement(Text, {
2254
+ size: "mdMonoUppercase",
2255
+ color: variant.tagLineColor
2256
+ }, slice.tagline), React.createElement(Heading, {
2257
+ as: "h2",
2258
+ size: "3xl",
2259
+ color: variant.textColor,
2260
+ mt: "6",
2261
+ mb: "16"
2262
+ }, slice.title)), React.createElement(Box, {
2263
+ maxHeight: ['unset', null, null, 'xl'],
2264
+ paddingTop: ['0', null, null, '28'],
2265
+ paddingRight: ['0', null, null, '6'],
2266
+ overflowY: ['unset', null, null, 'scroll']
2267
+ }, React.createElement(Box, null, React.createElement(BoemlyAccordion, {
2268
+ rows: slice.questionsAndAnswers,
2269
+ defaultIndex: slice.defaultIndex,
2270
+ variant: variant.accordionVariant
2271
+ }), React.createElement(Flex, {
2272
+ padding: "8",
2273
+ backgroundColor: variant.otherQuestionsBackground,
2274
+ borderRadius: "2xl",
2275
+ mt: "14",
2276
+ flexDir: ['column', null, null, 'row'],
2277
+ justifyContent: ['flex-start', null, null, 'space-between'],
2278
+ alignItems: ['flex-start', null, null, 'center']
2279
+ }, React.createElement(Heading, {
2280
+ as: "h6",
2281
+ size: "sm",
2282
+ color: "white"
2283
+ }, slice.otherQuestions), React.createElement(Spacer, {
2284
+ minHeight: ['4', null, null, '0']
2285
+ }), React.createElement(StrapiLinkButton, {
2286
+ size: "lg",
2287
+ colorScheme: "white",
2288
+ background: "white",
2289
+ rightIcon: React.createElement(ArrowRight, null),
2290
+ link: slice.button,
2291
+ component: "QAndA"
2292
+ }))))))), slice.hero && React.createElement(Box, {
2293
+ pb: "28",
2294
+ mt: "-56"
2295
+ }, React.createElement(Wrapper, null, React.createElement(HeroCard, {
2296
+ title: slice.hero.title,
2297
+ subTitle: slice.hero.subTitle,
2298
+ link: slice.hero.button && {
2299
+ text: slice.hero.button.text,
2300
+ onClick: handleHeroButtonClick
2301
+ },
2302
+ image: slice.hero.image && React.createElement(Image, {
2303
+ src: strapiMediaUrl(slice.hero.image.img, 'xLarge'),
2304
+ alt: slice.hero.image.alt,
2305
+ fill: true,
2306
+ style: {
2307
+ objectFit: slice.hero.image.objectFit || 'cover'
2308
+ }
2309
+ })
2310
+ }))));
2311
+ };
2312
+
2313
+ var QuoteCards = function QuoteCards(_ref) {
2314
+ var slice = _ref.slice;
2315
+ var _useRouter = useRouter(),
2316
+ push = _useRouter.push;
2317
+ var analyticsFunction = useContext(AnalyticsContext);
2318
+ var handleHeroCardButtonClick = function handleHeroCardButtonClick() {
2319
+ var _slice$hero;
2320
+ if ((_slice$hero = slice.hero) != null && _slice$hero.button) {
2321
+ analyticsFunction == null || analyticsFunction({
2322
+ type: 'track',
2323
+ props: {
2324
+ action: 'click',
2325
+ component: 'QuoteCards',
2326
+ buttonText: slice.hero.button.text,
2327
+ buttonUrl: strapiLinkUrl(slice.hero.button),
2328
+ section: 'hero'
2329
+ }
2330
+ });
2331
+ push(strapiLinkUrl(slice.hero.button));
2332
+ }
2333
+ };
2334
+ return React.createElement(React.Fragment, null, React.createElement(Box, {
2335
+ id: convertToKebabCase(slice.title),
2336
+ position: "relative",
2337
+ paddingTop: "28",
2338
+ paddingBottom: !!slice.hero ? '80' : '28'
2339
+ }, slice.shapes && slice.shapes.length === 2 && React.createElement(React.Fragment, null, React.createElement(Shape, {
2340
+ shape: React.createElement(Image, {
2341
+ src: strapiMediaUrl(slice.shapes[0].img, 'small'),
2342
+ alt: slice.shapes[0].alt,
2343
+ fill: true,
2344
+ style: {
2345
+ objectFit: slice.shapes[0].objectFit || 'cover'
2346
+ }
2347
+ }),
2348
+ top: "0",
2349
+ right: "0",
2350
+ size: "xs",
2351
+ radius: "bottom-left"
2352
+ }), React.createElement(Shape, {
2353
+ shape: React.createElement(Image, {
2354
+ src: strapiMediaUrl(slice.shapes[1].img, 'small'),
2355
+ alt: slice.shapes[1].alt,
2356
+ fill: true,
2357
+ style: {
2358
+ objectFit: slice.shapes[1].objectFit || 'cover'
2359
+ }
2360
+ }),
2361
+ bottom: "0",
2362
+ left: "0",
2363
+ radius: "top-right"
2364
+ })), React.createElement(Wrapper, null, React.createElement(Box, {
2365
+ maxW: "3xl"
2366
+ }, React.createElement(DefaultSectionHeader, {
2367
+ tagline: slice.tagline,
2368
+ title: slice.title,
2369
+ text: slice.text
2370
+ })), React.createElement(SimpleGrid, {
2371
+ columns: 2,
2372
+ gap: "20",
2373
+ rowGap: "6",
2374
+ mt: "16",
2375
+ minChildWidth: ['100%', null, '16rem']
2376
+ }, slice.cards.map(function (card) {
2377
+ return React.createElement(Box, {
2378
+ key: card.id,
2379
+ width: "full",
2380
+ maxWidth: "2xl"
2381
+ }, React.createElement(QuoteCard, {
2382
+ key: card.id,
2383
+ avatar: {
2384
+ name: card.avatar.name,
2385
+ description: card.avatar.description,
2386
+ image: React.createElement(Image, {
2387
+ src: strapiMediaUrl(card.avatar.image.img, 'small'),
2388
+ alt: card.avatar.image.alt,
2389
+ fill: true,
2390
+ style: {
2391
+ objectFit: card.avatar.image.objectFit || 'cover'
2392
+ }
2393
+ })
2394
+ },
2395
+ text: card.text
2396
+ }));
2397
+ })))), slice.hero && React.createElement(Box, {
2398
+ marginTop: "-40",
2399
+ paddingBottom: "28"
2400
+ }, React.createElement(Wrapper, null, React.createElement(HeroCard, {
2401
+ title: slice.hero.title,
2402
+ subTitle: slice.hero.subTitle,
2403
+ link: slice.hero.button && {
2404
+ text: slice.hero.button.text,
2405
+ onClick: handleHeroCardButtonClick
2406
+ },
2407
+ image: slice.hero.image && React.createElement(Image, {
2408
+ src: strapiMediaUrl(slice.hero.image.img, 'xLarge'),
2409
+ alt: slice.hero.image.alt,
2410
+ fill: true,
2411
+ style: {
2412
+ objectFit: slice.hero.image.objectFit || 'cover'
2413
+ }
2414
+ })
2415
+ }))));
2416
+ };
2417
+
2418
+ var RichTextSection = function RichTextSection(_ref) {
2419
+ var slice = _ref.slice;
2420
+ return React.createElement(DefaultSectionContainer, null, React.createElement(Wrapper, null, React.createElement(Grid, {
2421
+ templateColumns: "repeat(12, 1fr)",
2422
+ gap: "4"
2423
+ }, React.createElement(GridItem, {
2424
+ colSpan: [12, null, null, 7]
2425
+ }, React.createElement(RichText, {
2426
+ content: slice.content
2427
+ })))));
2428
+ };
2429
+
2430
+ var Steps = function Steps(_ref) {
2431
+ var _slice$card$shapes;
2432
+ var slice = _ref.slice;
2433
+ var _useRouter = useRouter(),
2434
+ push = _useRouter.push;
2435
+ var analyticsFunction = useContext(AnalyticsContext);
2436
+ var _useToken = useToken('colors', ['gray.900']),
2437
+ gray900 = _useToken[0];
2438
+ var containerRef = useRef(null);
2439
+ var _useState = useState(new Array(slice.steps.length)),
2440
+ stepRefs = _useState[0],
2441
+ setStepRefs = _useState[1];
2442
+ var _useState2 = useState(new Array(slice.steps.length)),
2443
+ stepProgress = _useState2[0],
2444
+ setStepProgress = _useState2[1];
2445
+ var _useWindowScroll = useWindowScroll(),
2446
+ offsetY = _useWindowScroll.y;
2447
+ var _useWindowSize = useWindowSize(),
2448
+ windowHeight = _useWindowSize.height;
2449
+ var handleShapesCardButtonClick = function handleShapesCardButtonClick() {
2450
+ var _slice$card;
2451
+ if ((_slice$card = slice.card) != null && _slice$card.button) {
2452
+ analyticsFunction == null || analyticsFunction({
2453
+ type: 'track',
2454
+ props: {
2455
+ action: 'click',
2456
+ component: 'Steps',
2457
+ buttonText: slice.card.button.text,
2458
+ buttonUrl: strapiLinkUrl(slice.card.button),
2459
+ section: 'card'
2460
+ }
2461
+ });
2462
+ push(strapiLinkUrl(slice.card.button));
2463
+ }
2464
+ };
2465
+ useEffect(function () {
2466
+ setStepRefs(slice.steps.map(function () {
2467
+ return createRef();
2468
+ }));
2469
+ }, []);
2470
+ useEffect(function () {
2471
+ var _containerRef$current;
2472
+ var containerOffsetTop = ((_containerRef$current = containerRef.current) == null ? void 0 : _containerRef$current.offsetTop) || 0;
2473
+ setStepProgress(stepRefs.map(function (ref) {
2474
+ var _ref$current;
2475
+ var currentItemOffsetTop = ((_ref$current = ref.current) == null ? void 0 : _ref$current.offsetTop) || 0;
2476
+ return containerOffsetTop + currentItemOffsetTop < offsetY + windowHeight / 3 ? 100 : 0;
2477
+ }));
2478
+ }, [offsetY]);
2479
+ return React.createElement("div", {
2480
+ ref: containerRef
2481
+ }, React.createElement(DefaultSectionContainer, {
2482
+ backgroundColor: gray900,
2483
+ title: slice.title
2484
+ }, React.createElement(React.Fragment, null, slice.image && React.createElement(Box, {
2485
+ position: "absolute",
2486
+ top: "0",
2487
+ left: "0",
2488
+ width: "full",
2489
+ height: "full"
2490
+ }, React.createElement(Image, {
2491
+ src: strapiMediaUrl(slice.image.img, 'xLarge'),
2492
+ alt: slice.image.alt,
2493
+ fill: true,
2494
+ style: {
2495
+ objectFit: slice.image.objectFit || 'cover'
2496
+ }
2497
+ }), React.createElement(Gradient, null))), React.createElement(Wrapper, null, React.createElement(React.Fragment, null, React.createElement(DefaultSectionHeader, {
2498
+ tagline: slice.tagline,
2499
+ title: slice.title,
2500
+ text: slice.text,
2501
+ taglineProps: {
2502
+ textAlign: 'center'
2503
+ },
2504
+ titleProps: {
2505
+ textAlign: 'center',
2506
+ maxW: '2xl',
2507
+ marginX: 'auto',
2508
+ color: 'white'
2509
+ },
2510
+ textProps: {
2511
+ textAlign: 'center',
2512
+ maxW: 'xl',
2513
+ marginX: 'auto',
2514
+ color: 'whiteAlpha.800'
2515
+ }
2516
+ }), React.createElement(Box, {
2517
+ marginTop: ['16', null, '24']
2518
+ }, slice.steps.map(function (_ref2, index) {
2519
+ var id = _ref2.id,
2520
+ step = _ref2.step,
2521
+ title = _ref2.title,
2522
+ text = _ref2.text;
2523
+ return React.createElement(Flex, {
2524
+ flexDir: "column",
2525
+ alignItems: "center",
2526
+ key: id
2527
+ }, React.createElement(Center, {
2528
+ width: "10",
2529
+ height: "10",
2530
+ borderRadius: "full",
2531
+ backgroundColor: "white"
2532
+ }, React.createElement(Text, {
2533
+ size: "smRegularNormal",
2534
+ color: "black"
2535
+ }, step)), React.createElement(Heading, {
2536
+ size: "lg",
2537
+ color: "white",
2538
+ mt: "4",
2539
+ textAlign: "center"
2540
+ }, title), text && React.createElement(Box, {
2541
+ maxW: "xl",
2542
+ mt: "4"
2543
+ }, React.createElement(RichText, {
2544
+ options: {
2545
+ forceBlock: true
2546
+ },
2547
+ content: text,
2548
+ textProps: {
2549
+ size: 'mdRegularNormal',
2550
+ color: 'whiteAlpha.700',
2551
+ textAlign: 'center'
2552
+ }
2553
+ })), (index + 1 < slice.steps.length || slice.card) && React.createElement(Box, {
2554
+ ref: stepRefs[index],
2555
+ position: "relative",
2556
+ marginTop: "4",
2557
+ marginBottom: "6",
2558
+ height: "12"
2559
+ }, React.createElement(Box, {
2560
+ position: "absolute",
2561
+ height: "full",
2562
+ borderLeft: "dashed 1px white",
2563
+ opacity: "0.5"
2564
+ }), React.createElement(Box, {
2565
+ position: "absolute",
2566
+ height: stepProgress[index] + "%",
2567
+ borderRight: "solid 1px white",
2568
+ opacity: "1",
2569
+ transition: "height ease var(--medium-transition-duration)"
2570
+ })));
2571
+ })), slice.card && React.createElement(ShapesCard, {
2572
+ tagline: slice.card.tagline,
2573
+ title: slice.card.title,
2574
+ text: slice.card.text,
2575
+ shapes: slice.card.shapes && ((_slice$card$shapes = slice.card.shapes) == null ? void 0 : _slice$card$shapes.map(function (shape) {
2576
+ return React.createElement(Image, {
2577
+ key: shape.id,
2578
+ src: strapiMediaUrl(shape.img, 'small'),
2579
+ alt: shape.alt,
2580
+ fill: true,
2581
+ style: {
2582
+ objectFit: shape.objectFit || 'cover'
2583
+ }
2584
+ });
2585
+ })),
2586
+ button: slice.card.button && {
2587
+ text: slice.card.button.text,
2588
+ onClick: handleShapesCardButtonClick
2589
+ }
2590
+ })))));
2591
+ };
2592
+
2593
+ var _oppositesOfCorners, _templateObject$7, _templateObject2$4;
2594
+ var ShapePosition;
2595
+ (function (ShapePosition) {
2596
+ ShapePosition["topLeft"] = "top-left";
2597
+ ShapePosition["topRight"] = "top-right";
2598
+ ShapePosition["bottomLeft"] = "bottom-left";
2599
+ ShapePosition["bottomRight"] = "bottom-right";
2600
+ ShapePosition["unset"] = "unset";
2601
+ })(ShapePosition || (ShapePosition = {}));
2602
+ var shapePositions = [ShapePosition.topLeft, ShapePosition.bottomRight, ShapePosition.topRight, ShapePosition.bottomLeft, ShapePosition.topRight, ShapePosition.bottomLeft, ShapePosition.topLeft, ShapePosition.bottomRight];
2603
+ var oppositesOfCorners = (_oppositesOfCorners = {}, _oppositesOfCorners[ShapePosition.bottomLeft] = ShapePosition.topRight, _oppositesOfCorners[ShapePosition.topRight] = ShapePosition.bottomLeft, _oppositesOfCorners[ShapePosition.bottomRight] = ShapePosition.topLeft, _oppositesOfCorners[ShapePosition.topLeft] = ShapePosition.bottomRight, _oppositesOfCorners[ShapePosition.unset] = ShapePosition.unset, _oppositesOfCorners);
2604
+ var variants = {
2605
+ shape: {
2606
+ padding: ['6', null, null, '8'],
2607
+ positionIcon: function positionIcon(index) {
2608
+ return shapePositions[index % shapePositions.length];
2609
+ },
2610
+ width: '40',
2611
+ height: '40',
2612
+ position: 'absolute',
2613
+ mb: 'unset'
2614
+ },
2615
+ image: {
2616
+ padding: ['6', null, null, '8'],
2617
+ positionIcon: function positionIcon() {
2618
+ return ShapePosition.unset;
2619
+ },
2620
+ width: '24',
2621
+ height: '24',
2622
+ position: 'relative',
2623
+ mb: '10'
2624
+ }
2589
2625
  };
2590
- var IntlContext = /*#__PURE__*/createContext(/*#__PURE__*/intlFactory('en'));
2591
- var ContextProvider = function ContextProvider(_ref) {
2592
- var children = _ref.children,
2593
- locale = _ref.locale;
2594
- var fetcher = /*#__PURE__*/function () {
2595
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(resource, init) {
2596
- var response, errorData;
2597
- return _regeneratorRuntime().wrap(function _callee$(_context) {
2598
- while (1) switch (_context.prev = _context.next) {
2599
- case 0:
2600
- _context.next = 2;
2601
- return strapiClient.get("" + resource, _extends({}, init, {
2602
- headers: {}
2603
- }));
2604
- case 2:
2605
- response = _context.sent;
2606
- if (!(response.status < 200 || response.status >= 300)) {
2607
- _context.next = 15;
2608
- break;
2609
- }
2610
- errorData = {
2611
- message: ''
2612
- };
2613
- _context.prev = 5;
2614
- _context.next = 8;
2615
- return response.data;
2616
- case 8:
2617
- errorData = _context.sent;
2618
- _context.next = 14;
2619
- break;
2620
- case 11:
2621
- _context.prev = 11;
2622
- _context.t0 = _context["catch"](5);
2623
- errorData = {
2624
- message: "An unknown error occurred while fetching data."
2625
- };
2626
- case 14:
2627
- throw new Error(errorData.message);
2628
- case 15:
2629
- _context.next = 17;
2630
- return response.data;
2631
- case 17:
2632
- _context.t1 = _context.sent;
2633
- _context.t2 = response.headers;
2634
- return _context.abrupt("return", {
2635
- body: _context.t1,
2636
- headers: _context.t2
2637
- });
2638
- case 20:
2639
- case "end":
2640
- return _context.stop();
2641
- }
2642
- }, _callee, null, [[5, 11]]);
2643
- }));
2644
- return function fetcher(_x, _x2) {
2645
- return _ref2.apply(this, arguments);
2646
- };
2647
- }();
2648
- return React.createElement(React.Fragment, null, React.createElement(SWRConfig, {
2649
- value: {
2650
- fetcher: fetcher
2651
- }
2652
- }, React.createElement(Global, {
2653
- styles: {
2654
- GLOBAL_STYLE: GLOBAL_STYLE
2626
+ var TextCardGrid = function TextCardGrid(_ref) {
2627
+ var slice = _ref.slice;
2628
+ var _useToken = useToken('colors', ['primary.800']),
2629
+ primary800 = _useToken[0];
2630
+ return React.createElement(DefaultSectionContainer, {
2631
+ backgroundColor: primary800,
2632
+ title: slice.title
2633
+ }, React.createElement(Wrapper, null, React.createElement(DefaultSectionHeader, {
2634
+ tagline: slice.tagline,
2635
+ title: slice.title,
2636
+ text: slice.text,
2637
+ taglineProps: {
2638
+ textAlign: 'center',
2639
+ color: 'white'
2640
+ },
2641
+ titleProps: {
2642
+ textAlign: 'center',
2643
+ maxW: '2xl',
2644
+ marginX: 'auto',
2645
+ color: 'white'
2646
+ },
2647
+ textProps: {
2648
+ textAlign: 'center',
2649
+ maxW: 'xl',
2650
+ marginX: 'auto',
2651
+ color: 'whiteAlpha.800'
2655
2652
  }
2656
- }), React.createElement(IntlContext.Provider, {
2657
- value: intlFactory(locale)
2658
- }, children)));
2653
+ }), React.createElement(SimpleGrid, {
2654
+ mt: ['14', null, null, '24'],
2655
+ columns: 3,
2656
+ justifyItems: "center",
2657
+ gap: "20",
2658
+ rowGap: "16",
2659
+ minChildWidth: ['100%', null, '16rem']
2660
+ }, slice.cards.map(function (_ref2, index) {
2661
+ var id = _ref2.id,
2662
+ tagline = _ref2.tagline,
2663
+ title = _ref2.title,
2664
+ text = _ref2.text,
2665
+ image = _ref2.image,
2666
+ buttons = _ref2.buttons;
2667
+ return React.createElement(Box, {
2668
+ key: id,
2669
+ backgroundColor: "white",
2670
+ zIndex: "base",
2671
+ padding: variants[slice.variant].padding,
2672
+ boxShadow: "lg",
2673
+ borderRadius: "2xl",
2674
+ minHeight: "2xs",
2675
+ width: "full",
2676
+ maxWidth: slice.cards.length > 1 ? 'unset' : 'xl',
2677
+ position: "relative",
2678
+ display: "flex",
2679
+ flexDir: "column",
2680
+ alignItems: "flex-start",
2681
+ justifyContent: slice.variant === 'shape' ? 'flex-end' : 'flex-start',
2682
+ overflow: "hidden"
2683
+ }, React.createElement(Box, {
2684
+ position: variants[slice.variant].position,
2685
+ width: variants[slice.variant].width,
2686
+ height: variants[slice.variant].height,
2687
+ mb: variants[slice.variant].mb,
2688
+ top: variants[slice.variant].positionIcon(index).includes('top') ? '-4' : 'unset',
2689
+ left: variants[slice.variant].positionIcon(index).includes('left') ? '-4' : 'unset',
2690
+ right: variants[slice.variant].positionIcon(index).includes('right') ? '-4' : 'unset',
2691
+ bottom: variants[slice.variant].positionIcon(index).includes('bottom') ? '-4' : 'unset',
2692
+ borderBottomRightRadius: oppositesOfCorners[variants[slice.variant].positionIcon(index)].includes('bottomRight') ? 'full' : 'unset',
2693
+ borderBottomLeftRadius: oppositesOfCorners[variants[slice.variant].positionIcon(index)].includes('bottomLeft') ? 'full' : 'unset',
2694
+ borderTopRightRadius: oppositesOfCorners[variants[slice.variant].positionIcon(index)].includes('topRight') ? 'full' : 'unset',
2695
+ borderTopLeftRadius: oppositesOfCorners[variants[slice.variant].positionIcon(index)].includes('topLeft') ? 'full' : 'unset',
2696
+ css: variants[slice.variant].positionIcon(index).includes('unset') ? css(_templateObject$7 || (_templateObject$7 = _taggedTemplateLiteralLoose(["\n & span,\n div,\n img {\n border-radius: var(--boemly-radii-xl);\n }\n "]))) : css(_templateObject2$4 || (_templateObject2$4 = _taggedTemplateLiteralLoose(["\n & span,\n div,\n img {\n border-", "-radius: var(--boemly-radii-full);\n }\n "])), oppositesOfCorners[variants[slice.variant].positionIcon(index)])
2697
+ }, React.createElement(Image, {
2698
+ src: strapiMediaUrl(image.img, 'small'),
2699
+ alt: image.alt,
2700
+ fill: true,
2701
+ style: {
2702
+ objectFit: image.objectFit || 'cover'
2703
+ }
2704
+ })), React.createElement(Box, {
2705
+ zIndex: "aboveBase",
2706
+ width: "full"
2707
+ }, tagline && React.createElement(Text, {
2708
+ color: "black",
2709
+ size: "smMonoNormal",
2710
+ mb: "2"
2711
+ }, tagline), React.createElement(Heading, {
2712
+ as: "h4",
2713
+ size: "xl",
2714
+ mb: "3"
2715
+ }, title), React.createElement(RichText, {
2716
+ content: text,
2717
+ listProps: {
2718
+ textColor: 'gray.500',
2719
+ textSize: 'smRegularNormal'
2720
+ },
2721
+ textProps: {
2722
+ color: 'gray.500',
2723
+ size: 'smRegularNormal'
2724
+ }
2725
+ }), buttons && !!buttons.length && React.createElement(Flex, {
2726
+ mt: "4",
2727
+ gap: "3",
2728
+ flexDir: ['column', null, null, null, 'row']
2729
+ }, buttons.map(function (button, buttonIndex) {
2730
+ return React.createElement(StrapiLinkButton, {
2731
+ key: button.id,
2732
+ link: button,
2733
+ size: "sm",
2734
+ rightIcon: buttonIndex === 0 ? React.createElement(CaretRight, {
2735
+ size: "10",
2736
+ weight: "bold"
2737
+ }) : undefined,
2738
+ variant: buttonIndex === 0 ? 'outline' : 'ghost',
2739
+ component: "TextCardGrid"
2740
+ });
2741
+ }))));
2742
+ }))));
2659
2743
  };
2660
2744
 
2745
+ var _templateObject$6, _templateObject2$3, _templateObject3$1;
2746
+ var CarouselContainer = /*#__PURE__*/styled(Box)(_templateObject$6 || (_templateObject$6 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-top: var(--boemly-space-6);\n padding: var(--boemly-space-8) 0;\n\n @media screen and (max-width: ", ") {\n margin-top: var(--boemly-space-4);\n width: var(--boemly-sizes-full);\n }\n\n width: var(--boemly-sizes-full);\n\n overflow-x: hidden;\n\n @media screen and (max-width: ", ") {\n overflow-x: scroll;\n }\n"])), BREAKPOINT_MD, BREAKPOINT_MD);
2747
+ var CarouselInnerContainer$1 = /*#__PURE__*/styled(motion.div)(_templateObject2$3 || (_templateObject2$3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n gap: var(--boemly-space-6);\n justify-content: center;\n\n width: calc(\n (var(--boemly-sizes-sm) + var(--boemly-space-6)) *\n ", " +\n var(--boemly-space-6)\n );\n min-width: var(--boemly-sizes-full);\n\n @media screen and (max-width: ", ") {\n gap: var(--boemly-space-1);\n justify-content: flex-start;\n width: calc(\n (var(--boemly-sizes-2xs) + var(--boemly-space-4)) *\n ", " +\n var(--boemly-space-6)\n );\n }\n"])), function (_ref) {
2748
+ var numberOfItems = _ref.numberOfItems;
2749
+ return numberOfItems;
2750
+ }, BREAKPOINT_MD, function (_ref2) {
2751
+ var numberOfItems = _ref2.numberOfItems;
2752
+ return numberOfItems;
2753
+ });
2754
+ var CardContainer = /*#__PURE__*/styled(Box)(_templateObject3$1 || (_templateObject3$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: var(--boemly-sizes-sm);\n\n @media screen and (max-width: ", ") {\n min-width: var(--boemly-sizes-sm);\n\n margin-right: var(--boemly-space-4);\n\n &:first-of-type {\n margin-left: var(--boemly-space-6);\n }\n }\n"])), BREAKPOINT_MD);
2755
+
2661
2756
  var shuffleElements = function shuffleElements(slides) {
2662
2757
  var slidesCopy = [].concat(slides); // Create a copy to avoid mutating the original array
2663
2758
  for (var i = slidesCopy.length - 1; i > 0; i--) {
@@ -2681,6 +2776,7 @@ var TextCarousel = function TextCarousel(_ref) {
2681
2776
  itemWidth = _useMeasure[1].width;
2682
2777
  var _useContext = useContext(IntlContext),
2683
2778
  formatMessage = _useContext.formatMessage;
2779
+ var analyticsFunction = useContext(AnalyticsContext);
2684
2780
  var _useWindowSize = useWindowSize(),
2685
2781
  windowWidth = _useWindowSize.width;
2686
2782
  var _useRouter = useRouter(),
@@ -2710,6 +2806,21 @@ var TextCarousel = function TextCarousel(_ref) {
2710
2806
  var canMoveLeft = useMemo(function () {
2711
2807
  return sliderIndex !== 0;
2712
2808
  }, [sliderIndex]);
2809
+ var handleSlidesButtonClick = function handleSlidesButtonClick(button) {
2810
+ if (button) {
2811
+ analyticsFunction == null || analyticsFunction({
2812
+ type: 'track',
2813
+ props: {
2814
+ action: 'click',
2815
+ component: 'TextCarousel',
2816
+ buttonText: button.text,
2817
+ buttonUrl: strapiLinkUrl(button),
2818
+ section: 'slides'
2819
+ }
2820
+ });
2821
+ push(strapiLinkUrl(button));
2822
+ }
2823
+ };
2713
2824
  var slides = slice.slides,
2714
2825
  _slice$isShuffled = slice.isShuffled,
2715
2826
  isShuffled = _slice$isShuffled === void 0 ? false : _slice$isShuffled;
@@ -2786,7 +2897,7 @@ var TextCarousel = function TextCarousel(_ref) {
2786
2897
  button: button && {
2787
2898
  text: button.text,
2788
2899
  onClick: function onClick() {
2789
- return push(strapiLinkUrl(button));
2900
+ return handleSlidesButtonClick(button);
2790
2901
  }
2791
2902
  },
2792
2903
  displayAs: "column"
@@ -2854,7 +2965,8 @@ var TextCarousel = function TextCarousel(_ref) {
2854
2965
  })))))), React.createElement(React.Fragment, null, slice.button && React.createElement(Wrapper, null, React.createElement(Center, null, React.createElement(StrapiLinkButton, {
2855
2966
  link: slice.button,
2856
2967
  size: "xl",
2857
- mt: ['8', null, '14']
2968
+ mt: ['8', null, '14'],
2969
+ component: "TextCarousel"
2858
2970
  })))));
2859
2971
  };
2860
2972
 
@@ -2862,10 +2974,27 @@ var TextWithTextCards = function TextWithTextCards(_ref) {
2862
2974
  var slice = _ref.slice;
2863
2975
  var _useRouter = useRouter(),
2864
2976
  push = _useRouter.push;
2977
+ var analyticsFunction = useContext(AnalyticsContext);
2865
2978
  var _useToken = useToken('colors', ['white']),
2866
2979
  white = _useToken[0];
2867
2980
  var _useMediaQuery = useMediaQuery(BREAKPOINT_LG_QUERY),
2868
2981
  belowBreakpoint = _useMediaQuery[0];
2982
+ var handleContactButtonClick = function handleContactButtonClick() {
2983
+ var _slice$contact;
2984
+ if ((_slice$contact = slice.contact) != null && _slice$contact.button) {
2985
+ analyticsFunction == null || analyticsFunction({
2986
+ type: 'track',
2987
+ props: {
2988
+ action: 'click',
2989
+ component: 'TextWithTextCards',
2990
+ buttonText: slice.contact.button.text,
2991
+ buttonUrl: strapiLinkUrl(slice.contact.button),
2992
+ section: 'contact'
2993
+ }
2994
+ });
2995
+ push(strapiLinkUrl(slice.contact.button));
2996
+ }
2997
+ };
2869
2998
  return React.createElement(DefaultSectionContainer, {
2870
2999
  backgroundColor: white,
2871
3000
  title: slice.title
@@ -2916,10 +3045,7 @@ var TextWithTextCards = function TextWithTextCards(_ref) {
2916
3045
  },
2917
3046
  link: {
2918
3047
  text: slice.contact.button.text,
2919
- onClick: function onClick() {
2920
- var _slice$contact;
2921
- return push(strapiLinkUrl((_slice$contact = slice.contact) == null ? void 0 : _slice$contact.button));
2922
- }
3048
+ onClick: handleContactButtonClick
2923
3049
  }
2924
3050
  })), React.createElement(GridItem, {
2925
3051
  colSpan: [8, null, null, null, 7],
@@ -2956,10 +3082,7 @@ var TextWithTextCards = function TextWithTextCards(_ref) {
2956
3082
  },
2957
3083
  link: {
2958
3084
  text: slice.contact.button.text,
2959
- onClick: function onClick() {
2960
- var _slice$contact2;
2961
- return push(strapiLinkUrl((_slice$contact2 = slice.contact) == null ? void 0 : _slice$contact2.button));
2962
- }
3085
+ onClick: handleContactButtonClick
2963
3086
  }
2964
3087
  }))));
2965
3088
  };
@@ -3131,7 +3254,8 @@ var TextWithCard = function TextWithCard(_ref) {
3131
3254
  size: "md",
3132
3255
  colorScheme: "white",
3133
3256
  variant: "outline",
3134
- rightIcon: React.createElement(ArrowRight, null)
3257
+ rightIcon: React.createElement(ArrowRight, null),
3258
+ component: "TextWithCard"
3135
3259
  })), slice.cardPosition === 'right' && card)));
3136
3260
  };
3137
3261
 
@@ -3275,7 +3399,8 @@ var SmallHero = function SmallHero(_ref) {
3275
3399
  }), slice.button && React.createElement(StrapiLinkButton, {
3276
3400
  link: slice.button,
3277
3401
  mt: "6",
3278
- size: "lg"
3402
+ size: "lg",
3403
+ component: "SmallHero"
3279
3404
  })))));
3280
3405
  };
3281
3406
 
@@ -4111,7 +4236,8 @@ var Cta = function Cta(_ref) {
4111
4236
  key: button.button.id,
4112
4237
  link: button.button,
4113
4238
  size: "md",
4114
- variant: button.variant
4239
+ variant: button.variant,
4240
+ component: "Cta"
4115
4241
  });
4116
4242
  }))) : React.createElement(React.Fragment, null), React.createElement(Spacer, {
4117
4243
  height: ['1', null, null, null, '20']
@@ -4139,7 +4265,8 @@ var CtaOnly = function CtaOnly(_ref) {
4139
4265
  transform: "translateY(50%)"
4140
4266
  }, React.createElement(StrapiLinkButton, {
4141
4267
  size: "md",
4142
- link: slice.button
4268
+ link: slice.button,
4269
+ component: "CtaOnly"
4143
4270
  })));
4144
4271
  };
4145
4272
 
@@ -4517,7 +4644,8 @@ var Facts = function Facts(_ref) {
4517
4644
  }), React.createElement(StrapiLinkButton, {
4518
4645
  link: slice.button,
4519
4646
  size: "md",
4520
- variant: slice.variant === 'green' ? 'outline' : 'solid'
4647
+ variant: slice.variant === 'green' ? 'outline' : 'solid',
4648
+ component: "Facts"
4521
4649
  }))));
4522
4650
  };
4523
4651
 
@@ -4580,7 +4708,8 @@ var BlogCards = function BlogCards(_ref) {
4580
4708
  variant: "outline",
4581
4709
  rightIcon: React.createElement(CaretRight, {
4582
4710
  color: gray700
4583
- })
4711
+ }),
4712
+ component: "BlogCards"
4584
4713
  }))), React.createElement(Spacer, {
4585
4714
  height: "14"
4586
4715
  }), React.createElement(SimpleGrid, {
@@ -4639,7 +4768,8 @@ var BlogCards = function BlogCards(_ref) {
4639
4768
  variant: "outline",
4640
4769
  rightIcon: React.createElement(CaretRight, {
4641
4770
  color: gray700
4642
- })
4771
+ }),
4772
+ component: "BlogCards"
4643
4773
  }))))));
4644
4774
  };
4645
4775
 
@@ -4863,7 +4993,8 @@ var SmallCheckout = function SmallCheckout(_ref) {
4863
4993
  link: _extends({
4864
4994
  intercomLauncher: true
4865
4995
  }, button),
4866
- variant: "outline"
4996
+ variant: "outline",
4997
+ component: "SmallCheckout"
4867
4998
  })));
4868
4999
  };
4869
5000
 
@@ -5114,7 +5245,8 @@ var Contact = function Contact(_ref) {
5114
5245
  mt: "6",
5115
5246
  link: button,
5116
5247
  size: "md",
5117
- variant: "outline"
5248
+ variant: "outline",
5249
+ component: "Contact"
5118
5250
  }) : React.createElement(React.Fragment, null)));
5119
5251
  };
5120
5252
 
@@ -5438,7 +5570,7 @@ var Comparison = function Comparison(_ref) {
5438
5570
  alignItems: "center",
5439
5571
  flexWrap: "wrap"
5440
5572
  }, React.createElement(Heading, {
5441
- size: "2xl",
5573
+ size: "xl",
5442
5574
  color: VARIANTS[comparisonCard.variant].textColor,
5443
5575
  whiteSpace: "pre-line"
5444
5576
  }, comparisonCard.title), comparisonCard.badge && React.createElement(Badge, {
@@ -5468,7 +5600,8 @@ var Comparison = function Comparison(_ref) {
5468
5600
  rightIcon: React.createElement(CaretRight, {
5469
5601
  size: 16,
5470
5602
  weight: "bold"
5471
- })
5603
+ }),
5604
+ component: "Comparison"
5472
5605
  }))) : React.createElement(React.Fragment, null), React.createElement(React.Fragment, null, comparisonCard.lists.map(function (list) {
5473
5606
  return React.createElement(Box, {
5474
5607
  key: list.id
@@ -5779,7 +5912,8 @@ var Timeline = function Timeline(_ref) {
5779
5912
  }), React.createElement(StrapiLinkButton, {
5780
5913
  link: item.button,
5781
5914
  size: "sm",
5782
- variant: "outline"
5915
+ variant: "outline",
5916
+ component: "Timeline"
5783
5917
  })), item.image ? React.createElement(React.Fragment, null, React.createElement(Box, {
5784
5918
  position: "relative",
5785
5919
  mt: "4",
@@ -6081,7 +6215,8 @@ var EventCard = function EventCard(_ref) {
6081
6215
  rightIcon: React.createElement(CaretRight, {
6082
6216
  size: "10"
6083
6217
  }),
6084
- width: "full"
6218
+ width: "full",
6219
+ component: "EventCard"
6085
6220
  })), event.speakers && event.speakers.length > 0 && React.createElement(Flex, {
6086
6221
  flexDir: "row",
6087
6222
  gap: "2"
@@ -6526,9 +6661,11 @@ var SliceRenderer = function SliceRenderer(_ref) {
6526
6661
  customerStories = _ref.customerStories,
6527
6662
  _ref$locale = _ref.locale,
6528
6663
  locale = _ref$locale === void 0 ? 'en' : _ref$locale,
6529
- CustomSlice = _ref.CustomSlice;
6664
+ CustomSlice = _ref.CustomSlice,
6665
+ analyticsFunction = _ref.analyticsFunction;
6530
6666
  return React.createElement(ContextProvider, {
6531
- locale: locale
6667
+ locale: locale,
6668
+ analyticsFunction: analyticsFunction
6532
6669
  }, slices.map(function (slice) {
6533
6670
  switch (slice.__component) {
6534
6671
  case 'sections.hero':