@treely/strapi-slices 3.1.0 → 3.1.1

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.
@@ -1,6 +1,6 @@
1
1
  import React, { useState, useRef, useEffect, Fragment, createRef, createContext, useContext, useCallback, useMemo } from 'react';
2
2
  import Head from 'next/head';
3
- import { Box, 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, BoemlyThemeProvider, ProjectCard, Tag, Link as Link$1, DatePersonPair, Badge, useDisclosure, Container, AvatarWithName, Divider, LabelNumberPair, BoemlyFormControl, InputRightAddon, LabelTextPair } from 'boemly';
3
+ import { Box, 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, ProjectCard, Tag, Link as Link$1, BoemlyThemeProvider, DatePersonPair, Badge, useDisclosure, Container, AvatarWithName, Divider, LabelNumberPair, BoemlyFormControl, InputRightAddon, LabelTextPair } from 'boemly';
4
4
  import Image from 'next/image';
5
5
  import { useLockBodyScroll, useKey, useWindowScroll, useWindowSize, useMeasure, useCopyToClipboard } from 'react-use';
6
6
  import { CaretLeft, CaretRight, Globe, ArrowRight, MapPin, ArrowLeft, Check, Link as Link$2, FilePdf, DownloadSimple, X } from '@phosphor-icons/react';
@@ -2114,26 +2114,205 @@ var TextWithTextCards = function TextWithTextCards(_ref) {
2114
2114
  }))));
2115
2115
  };
2116
2116
 
2117
- var CreditsAvailableState;
2118
- (function (CreditsAvailableState) {
2119
- CreditsAvailableState["YES"] = "yes";
2120
- CreditsAvailableState["SOME"] = "some";
2121
- CreditsAvailableState["NO"] = "no";
2122
- CreditsAvailableState["NOT_YET"] = "notYet";
2123
- })(CreditsAvailableState || (CreditsAvailableState = {}));
2124
- var CreditsAvailableState$1 = CreditsAvailableState;
2117
+ var TextWithCard = function TextWithCard(_ref) {
2118
+ var slice = _ref.slice;
2119
+ var card = React.createElement(GridItem, {
2120
+ colSpan: [4, null, null, null, 2],
2121
+ rowSpan: 1,
2122
+ position: "relative",
2123
+ "data-testid": "card-position-" + slice.cardPosition
2124
+ }, slice.card && React.createElement(ProjectCard, {
2125
+ facts: slice.card.facts,
2126
+ footerSubTitle: slice.card.footerSubTitle,
2127
+ footerTitle: slice.card.footerTitle,
2128
+ title: slice.card.title,
2129
+ image: React.createElement(Image, {
2130
+ src: strapiMediaUrl(slice.card.image.img, 'medium'),
2131
+ alt: slice.card.image.alt,
2132
+ fill: true,
2133
+ style: {
2134
+ objectFit: slice.card.image.objectFit || 'cover'
2135
+ }
2136
+ })
2137
+ }));
2138
+ return React.createElement(DefaultSectionContainer, {
2139
+ title: slice.title
2140
+ }, React.createElement(Wrapper, null, React.createElement(Grid, {
2141
+ templateColumns: ['repeat(4, auto)', null, null, null, 'repeat(6, auto)'],
2142
+ templateRows: ['repeat(2, auto)', null, null, null, 'repeat(1, auto)'],
2143
+ rowGap: "12",
2144
+ columnGap: ['0', null, null, null, '28']
2145
+ }, slice.cardPosition === 'left' && card, React.createElement(GridItem, {
2146
+ colSpan: 4,
2147
+ rowSpan: 1,
2148
+ position: "relative"
2149
+ }, React.createElement(DefaultSectionHeader, {
2150
+ tagline: slice.tagline,
2151
+ title: slice.title,
2152
+ text: slice.text
2153
+ }), slice.listItems && React.createElement(React.Fragment, null, React.createElement(Spacer, {
2154
+ height: "10"
2155
+ }), React.createElement(BoemlyList, {
2156
+ listItems: slice.listItems
2157
+ }), React.createElement(Spacer, {
2158
+ height: "10"
2159
+ })), slice.button && React.createElement(StrapiLinkButton, {
2160
+ link: slice.button,
2161
+ size: "md",
2162
+ colorScheme: "white",
2163
+ variant: "outline",
2164
+ rightIcon: React.createElement(ArrowRight, null)
2165
+ })), slice.cardPosition === 'right' && card)));
2166
+ };
2125
2167
 
2126
- var FORMAT_AS_HECTARE_CONFIG = {
2127
- unit: 'hectare',
2128
- unitDisplay: 'short',
2129
- style: 'unit',
2130
- maximumFractionDigits: 2
2168
+ var MEDIUM_TRANSITION_DURATION = 0.2;
2169
+
2170
+ var LinkCardsGrid = function LinkCardsGrid(_ref) {
2171
+ var slice = _ref.slice;
2172
+ return React.createElement(DefaultSectionContainer, {
2173
+ title: slice.title
2174
+ }, React.createElement(Wrapper, null, React.createElement(DefaultSectionHeader, {
2175
+ tagline: slice.tagline,
2176
+ title: slice.title,
2177
+ text: slice.text
2178
+ }), React.createElement(SimpleGrid, {
2179
+ mt: "16",
2180
+ columns: [1, null, null, null, 2],
2181
+ gap: "4"
2182
+ }, slice.cards.map(function (_ref2) {
2183
+ var id = _ref2.id,
2184
+ title = _ref2.title,
2185
+ text = _ref2.text,
2186
+ link = _ref2.link;
2187
+ return React.createElement(Box, {
2188
+ key: id,
2189
+ as: Link,
2190
+ href: strapiLinkUrl(link),
2191
+ "data-testid": "link",
2192
+ px: "10",
2193
+ py: "8",
2194
+ borderStyle: "solid",
2195
+ borderWidth: "thin",
2196
+ borderColor: "gray.200",
2197
+ borderRadius: "2xl",
2198
+ display: "flex",
2199
+ flexDir: "row",
2200
+ alignItems: "center",
2201
+ justifyContent: "space-between",
2202
+ cursor: "pointer",
2203
+ transitionDuration: MEDIUM_TRANSITION_DURATION + "s",
2204
+ _hover: {
2205
+ backgroundColor: 'gray.50'
2206
+ }
2207
+ }, React.createElement("div", null, React.createElement(Heading, {
2208
+ as: "h4",
2209
+ size: "lg"
2210
+ }, title), text && React.createElement(Text, {
2211
+ mt: "2",
2212
+ size: "smRegularNormal"
2213
+ }, text)), React.createElement(Box, {
2214
+ display: "flex",
2215
+ alignItems: "center",
2216
+ justifyContent: "center",
2217
+ borderStyle: "solid",
2218
+ borderWidth: "thin",
2219
+ borderColor: "gray.200",
2220
+ borderRadius: "2xl",
2221
+ height: "12",
2222
+ width: "12",
2223
+ minWidth: "12",
2224
+ minHeight: "12",
2225
+ ml: "6",
2226
+ backgroundColor: "white"
2227
+ }, React.createElement(CaretRight, null)));
2228
+ }))));
2131
2229
  };
2132
- var FORMAT_AS_PERCENT_CONFIG = {
2133
- style: 'percent',
2134
- maximumFractionDigits: 2
2230
+
2231
+ var colors = {
2232
+ dark: {
2233
+ tagline: 'white',
2234
+ title: 'white',
2235
+ text: 'white',
2236
+ background: 'gray.900'
2237
+ },
2238
+ light: {
2239
+ tagline: 'primary.500',
2240
+ title: 'black',
2241
+ text: 'gray.500',
2242
+ background: 'primary.50'
2243
+ }
2244
+ };
2245
+ var SmallHero = function SmallHero(_ref) {
2246
+ var slice = _ref.slice,
2247
+ theme = _ref.theme;
2248
+ return React.createElement(Box, {
2249
+ position: "relative",
2250
+ width: "full",
2251
+ height: "xl",
2252
+ backgroundColor: colors[theme].background
2253
+ }, slice.image && React.createElement(React.Fragment, null, React.createElement(Image, {
2254
+ src: strapiMediaUrl(slice.image.img, 'xLarge'),
2255
+ alt: slice.image.alt,
2256
+ fill: true,
2257
+ style: {
2258
+ objectFit: slice.image.objectFit || 'cover'
2259
+ }
2260
+ }), slice.gradient && React.createElement(Gradient, null)), React.createElement(Box, {
2261
+ position: "absolute",
2262
+ left: "0",
2263
+ top: "60%",
2264
+ width: "full",
2265
+ textAlign: "center",
2266
+ transform: "translateY(-50%)"
2267
+ }, React.createElement(Wrapper, null, React.createElement(React.Fragment, null, slice.tags && React.createElement(Flex, {
2268
+ direction: "row",
2269
+ justify: "center",
2270
+ gap: "2",
2271
+ mb: "4",
2272
+ wrap: "wrap"
2273
+ }, slice.tags.map(function (_ref2) {
2274
+ var id = _ref2.id,
2275
+ text = _ref2.text,
2276
+ colorScheme = _ref2.colorScheme;
2277
+ return React.createElement(Tag, {
2278
+ key: id,
2279
+ colorScheme: colorScheme,
2280
+ size: "md",
2281
+ variant: "subtle"
2282
+ }, text);
2283
+ })), React.createElement(DefaultSectionHeader, {
2284
+ isHero: true,
2285
+ tagline: slice.tagline,
2286
+ title: slice.title,
2287
+ text: slice.subTitle,
2288
+ taglineProps: {
2289
+ color: colors[theme].tagline,
2290
+ textAlign: 'center',
2291
+ mx: 'auto'
2292
+ },
2293
+ titleProps: {
2294
+ color: colors[theme].title,
2295
+ maxW: '4xl',
2296
+ textAlign: 'center',
2297
+ mx: 'auto'
2298
+ },
2299
+ textProps: {
2300
+ maxW: '2xl',
2301
+ textAlign: 'center',
2302
+ mx: 'auto',
2303
+ color: colors[theme].text
2304
+ }
2305
+ }), slice.button && React.createElement(StrapiLinkButton, {
2306
+ link: slice.button,
2307
+ mt: "6",
2308
+ size: "lg"
2309
+ })))));
2135
2310
  };
2136
2311
 
2312
+ var _templateObject$4, _templateObject2$1;
2313
+ var BlogItemContainer = /*#__PURE__*/styled(Link$1)(_templateObject$4 || (_templateObject$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n text-decoration: none;\n\n & div img {\n transition: transform var(--default-ease) var(--medium-transition-duration);\n }\n\n &:hover {\n text-decoration: none;\n\n & > div:first-of-type img {\n transform: scale(1.03);\n }\n }\n"])));
2314
+ var ImageContainer$1 = /*#__PURE__*/styled(Box)(_templateObject2$1 || (_templateObject2$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: 100%;\n height: var(--boemly-sizes-xs);\n position: relative;\n border-radius: var(--boemly-radii-2xl);\n\n // Fixes the flickering of borders during animation in Safari\n -webkit-mask-image: -webkit-radial-gradient(white, black);\n\n & span,\n div {\n border-radius: var(--boemly-radii-2xl);\n }\n\n @media screen and (max-width: ", ") {\n height: var(--boemly-sizes-3xs);\n }\n"])), BREAKPOINT_MD);
2315
+
2137
2316
  var messagesDe$b = {
2138
2317
  'sections.comparison.backgroundShapes': 'Hintergrundformen'
2139
2318
  };
@@ -2329,8 +2508,8 @@ var messagesEn = {
2329
2508
 
2330
2509
  var rootMessagesEn = /*#__PURE__*/_extends({}, messagesEn$4, messagesEn$3, messagesEn, messagesEn$2, messagesEn$1, messagesEn$b, messagesEn$a, messagesEn$9, messagesEn$8, messagesEn$7, messagesEn$6, messagesEn$5, unitMessagesEn);
2331
2510
 
2332
- var _templateObject$4;
2333
- var GLOBAL_STYLE = /*#__PURE__*/css(_templateObject$4 || (_templateObject$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n // GintoNord\n @font-face {\n font-family: 'GintoNord';\n src: url('", "/assets/v3/fonts/ABCGintoNord-Bold.woff2')\n format('woff2');\n font-style: normal;\n font-weight: 700;\n font-display: block;\n }\n // Inter\n @font-face {\n font-family: 'Inter';\n src: url('", "/assets/v3/fonts/Inter-Regular.woff2') format('woff2');\n font-style: normal;\n font-weight: 400;\n font-display: block;\n }\n @font-face {\n font-family: 'Inter';\n src: url('", "/assets/v3/fonts/Inter-Medium.woff2') format('woff2');\n font-style: normal;\n font-weight: 500;\n font-display: block;\n }\n @font-face {\n font-family: 'Inter';\n src: url('", "/assets/v3/fonts/Inter-SemiBold.woff2') format('woff2');\n font-style: normal;\n font-weight: 600;\n font-display: block;\n }\n @font-face {\n font-family: 'Inter';\n src: url('", "/assets/v3/fonts/Inter-Bold.woff2') format('woff2');\n font-style: normal;\n font-weight: 700;\n font-display: block;\n }\n // SpaceMono\n @font-face {\n font-family: 'SpaceMono';\n src: url('", "/assets/v3/fonts/SpaceMono-Bold.woff2') format('woff2');\n font-style: normal;\n font-weight: 700;\n font-display: block;\n }\n\n :root {\n --default-hero-height: calc(100vh - var(--boemly-space-24));\n }\n\n a {\n text-decoration: none;\n }\n"])), CDN_URI, CDN_URI, CDN_URI, CDN_URI, CDN_URI, CDN_URI);
2511
+ var _templateObject$3;
2512
+ var GLOBAL_STYLE = /*#__PURE__*/css(_templateObject$3 || (_templateObject$3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n // GintoNord\n @font-face {\n font-family: 'GintoNord';\n src: url('", "/assets/v3/fonts/ABCGintoNord-Bold.woff2')\n format('woff2');\n font-style: normal;\n font-weight: 700;\n font-display: block;\n }\n // Inter\n @font-face {\n font-family: 'Inter';\n src: url('", "/assets/v3/fonts/Inter-Regular.woff2') format('woff2');\n font-style: normal;\n font-weight: 400;\n font-display: block;\n }\n @font-face {\n font-family: 'Inter';\n src: url('", "/assets/v3/fonts/Inter-Medium.woff2') format('woff2');\n font-style: normal;\n font-weight: 500;\n font-display: block;\n }\n @font-face {\n font-family: 'Inter';\n src: url('", "/assets/v3/fonts/Inter-SemiBold.woff2') format('woff2');\n font-style: normal;\n font-weight: 600;\n font-display: block;\n }\n @font-face {\n font-family: 'Inter';\n src: url('", "/assets/v3/fonts/Inter-Bold.woff2') format('woff2');\n font-style: normal;\n font-weight: 700;\n font-display: block;\n }\n // SpaceMono\n @font-face {\n font-family: 'SpaceMono';\n src: url('", "/assets/v3/fonts/SpaceMono-Bold.woff2') format('woff2');\n font-style: normal;\n font-weight: 700;\n font-display: block;\n }\n\n :root {\n --default-hero-height: calc(100vh - var(--boemly-space-24));\n }\n\n a {\n text-decoration: none;\n }\n"])), CDN_URI, CDN_URI, CDN_URI, CDN_URI, CDN_URI, CDN_URI);
2334
2513
 
2335
2514
  var FONT_CUSTOMIZATIONS = {
2336
2515
  body: 'Inter',
@@ -2364,236 +2543,6 @@ var ContextProvider = function ContextProvider(_ref) {
2364
2543
  }, children));
2365
2544
  };
2366
2545
 
2367
- var PortfolioProjectCard = function PortfolioProjectCard(_ref) {
2368
- var _creditsAvailableMess, _project$creditsAvail, _project$thumbnail, _project$thumbnail2, _project$thumbnail3;
2369
- var project = _ref.project;
2370
- var _useContext = useContext(IntlContext),
2371
- formatMessage = _useContext.formatMessage,
2372
- formatNumber = _useContext.formatNumber;
2373
- var creditsAvailableMessages = (_creditsAvailableMess = {}, _creditsAvailableMess[CreditsAvailableState$1.YES] = formatMessage({
2374
- id: 'components.portfolioProjectCard.text.yes'
2375
- }), _creditsAvailableMess[CreditsAvailableState$1.SOME] = formatMessage({
2376
- id: 'components.portfolioProjectCard.text.some'
2377
- }), _creditsAvailableMess[CreditsAvailableState$1.NO] = formatMessage({
2378
- id: 'components.portfolioProjectCard.text.no'
2379
- }), _creditsAvailableMess[CreditsAvailableState$1.NOT_YET] = formatMessage({
2380
- id: 'components.portfolioProjectCard.text.notYet'
2381
- }), _creditsAvailableMess);
2382
- return React.createElement(ProjectCard, {
2383
- title: project.title,
2384
- facts: [{
2385
- id: 1,
2386
- text: formatNumber((project.area || 0) / 10000, FORMAT_AS_HECTARE_CONFIG)
2387
- }, {
2388
- id: 2,
2389
- text: project.location || ''
2390
- }],
2391
- footerTitle: creditsAvailableMessages[(_project$creditsAvail = project.creditsAvailable) != null ? _project$creditsAvail : CreditsAvailableState$1.NOT_YET],
2392
- footerSubTitle: project.footerSubTitle || '',
2393
- image: project.thumbnail && React.createElement(Image, {
2394
- src: strapiMediaUrl((_project$thumbnail = project.thumbnail) == null ? void 0 : _project$thumbnail.img, 'medium'),
2395
- alt: (_project$thumbnail2 = project.thumbnail) == null ? void 0 : _project$thumbnail2.alt,
2396
- fill: true,
2397
- style: {
2398
- objectFit: ((_project$thumbnail3 = project.thumbnail) == null ? void 0 : _project$thumbnail3.objectFit) || 'cover'
2399
- }
2400
- })
2401
- });
2402
- };
2403
-
2404
- var TextWithCard = function TextWithCard(_ref) {
2405
- var slice = _ref.slice,
2406
- projects = _ref.projects;
2407
- var fpmData = projects.find(function (project) {
2408
- var _slice$card;
2409
- return project.slug === ((_slice$card = slice.card) == null || (_slice$card = _slice$card.project) == null ? void 0 : _slice$card.data.attributes.slug);
2410
- });
2411
- var card = React.createElement(GridItem, {
2412
- colSpan: [4, null, null, null, 2],
2413
- rowSpan: 1,
2414
- position: "relative",
2415
- "data-testid": "card-position-" + slice.cardPosition
2416
- }, slice.card && fpmData && React.createElement(PortfolioProjectCard, {
2417
- project: _extends({}, slice.card, fpmData)
2418
- }));
2419
- return React.createElement(DefaultSectionContainer, {
2420
- title: slice.title
2421
- }, React.createElement(Wrapper, null, React.createElement(Grid, {
2422
- templateColumns: ['repeat(4, auto)', null, null, null, 'repeat(6, auto)'],
2423
- templateRows: ['repeat(2, auto)', null, null, null, 'repeat(1, auto)'],
2424
- rowGap: "12",
2425
- columnGap: ['0', null, null, null, '28']
2426
- }, slice.cardPosition === 'left' && card, React.createElement(GridItem, {
2427
- colSpan: 4,
2428
- rowSpan: 1,
2429
- position: "relative"
2430
- }, React.createElement(DefaultSectionHeader, {
2431
- tagline: slice.tagline,
2432
- title: slice.title,
2433
- text: slice.text
2434
- }), slice.listItems && React.createElement(React.Fragment, null, React.createElement(Spacer, {
2435
- height: "10"
2436
- }), React.createElement(BoemlyList, {
2437
- listItems: slice.listItems
2438
- }), React.createElement(Spacer, {
2439
- height: "10"
2440
- })), slice.button && React.createElement(StrapiLinkButton, {
2441
- link: slice.button,
2442
- size: "md",
2443
- colorScheme: "white",
2444
- variant: "outline",
2445
- rightIcon: React.createElement(ArrowRight, null)
2446
- })), slice.cardPosition === 'right' && card)));
2447
- };
2448
-
2449
- var MEDIUM_TRANSITION_DURATION = 0.2;
2450
-
2451
- var LinkCardsGrid = function LinkCardsGrid(_ref) {
2452
- var slice = _ref.slice;
2453
- return React.createElement(DefaultSectionContainer, {
2454
- title: slice.title
2455
- }, React.createElement(Wrapper, null, React.createElement(DefaultSectionHeader, {
2456
- tagline: slice.tagline,
2457
- title: slice.title,
2458
- text: slice.text
2459
- }), React.createElement(SimpleGrid, {
2460
- mt: "16",
2461
- columns: [1, null, null, null, 2],
2462
- gap: "4"
2463
- }, slice.cards.map(function (_ref2) {
2464
- var id = _ref2.id,
2465
- title = _ref2.title,
2466
- text = _ref2.text,
2467
- link = _ref2.link;
2468
- return React.createElement(Box, {
2469
- key: id,
2470
- as: Link,
2471
- href: strapiLinkUrl(link),
2472
- "data-testid": "link",
2473
- px: "10",
2474
- py: "8",
2475
- borderStyle: "solid",
2476
- borderWidth: "thin",
2477
- borderColor: "gray.200",
2478
- borderRadius: "2xl",
2479
- display: "flex",
2480
- flexDir: "row",
2481
- alignItems: "center",
2482
- justifyContent: "space-between",
2483
- cursor: "pointer",
2484
- transitionDuration: MEDIUM_TRANSITION_DURATION + "s",
2485
- _hover: {
2486
- backgroundColor: 'gray.50'
2487
- }
2488
- }, React.createElement("div", null, React.createElement(Heading, {
2489
- as: "h4",
2490
- size: "lg"
2491
- }, title), text && React.createElement(Text, {
2492
- mt: "2",
2493
- size: "smRegularNormal"
2494
- }, text)), React.createElement(Box, {
2495
- display: "flex",
2496
- alignItems: "center",
2497
- justifyContent: "center",
2498
- borderStyle: "solid",
2499
- borderWidth: "thin",
2500
- borderColor: "gray.200",
2501
- borderRadius: "2xl",
2502
- height: "12",
2503
- width: "12",
2504
- minWidth: "12",
2505
- minHeight: "12",
2506
- ml: "6",
2507
- backgroundColor: "white"
2508
- }, React.createElement(CaretRight, null)));
2509
- }))));
2510
- };
2511
-
2512
- var colors = {
2513
- dark: {
2514
- tagline: 'white',
2515
- title: 'white',
2516
- text: 'white',
2517
- background: 'gray.900'
2518
- },
2519
- light: {
2520
- tagline: 'primary.500',
2521
- title: 'black',
2522
- text: 'gray.500',
2523
- background: 'primary.50'
2524
- }
2525
- };
2526
- var SmallHero = function SmallHero(_ref) {
2527
- var slice = _ref.slice,
2528
- theme = _ref.theme;
2529
- return React.createElement(Box, {
2530
- position: "relative",
2531
- width: "full",
2532
- height: "xl",
2533
- backgroundColor: colors[theme].background
2534
- }, slice.image && React.createElement(React.Fragment, null, React.createElement(Image, {
2535
- src: strapiMediaUrl(slice.image.img, 'xLarge'),
2536
- alt: slice.image.alt,
2537
- fill: true,
2538
- style: {
2539
- objectFit: slice.image.objectFit || 'cover'
2540
- }
2541
- }), slice.gradient && React.createElement(Gradient, null)), React.createElement(Box, {
2542
- position: "absolute",
2543
- left: "0",
2544
- top: "60%",
2545
- width: "full",
2546
- textAlign: "center",
2547
- transform: "translateY(-50%)"
2548
- }, React.createElement(Wrapper, null, React.createElement(React.Fragment, null, slice.tags && React.createElement(Flex, {
2549
- direction: "row",
2550
- justify: "center",
2551
- gap: "2",
2552
- mb: "4",
2553
- wrap: "wrap"
2554
- }, slice.tags.map(function (_ref2) {
2555
- var id = _ref2.id,
2556
- text = _ref2.text,
2557
- colorScheme = _ref2.colorScheme;
2558
- return React.createElement(Tag, {
2559
- key: id,
2560
- colorScheme: colorScheme,
2561
- size: "md",
2562
- variant: "subtle"
2563
- }, text);
2564
- })), React.createElement(DefaultSectionHeader, {
2565
- isHero: true,
2566
- tagline: slice.tagline,
2567
- title: slice.title,
2568
- text: slice.subTitle,
2569
- taglineProps: {
2570
- color: colors[theme].tagline,
2571
- textAlign: 'center',
2572
- mx: 'auto'
2573
- },
2574
- titleProps: {
2575
- color: colors[theme].title,
2576
- maxW: '4xl',
2577
- textAlign: 'center',
2578
- mx: 'auto'
2579
- },
2580
- textProps: {
2581
- maxW: '2xl',
2582
- textAlign: 'center',
2583
- mx: 'auto',
2584
- color: colors[theme].text
2585
- }
2586
- }), slice.button && React.createElement(StrapiLinkButton, {
2587
- link: slice.button,
2588
- mt: "6",
2589
- size: "lg"
2590
- })))));
2591
- };
2592
-
2593
- var _templateObject$3, _templateObject2$1;
2594
- var BlogItemContainer = /*#__PURE__*/styled(Link$1)(_templateObject$3 || (_templateObject$3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n text-decoration: none;\n\n & div img {\n transition: transform var(--default-ease) var(--medium-transition-duration);\n }\n\n &:hover {\n text-decoration: none;\n\n & > div:first-of-type img {\n transform: scale(1.03);\n }\n }\n"])));
2595
- var ImageContainer$1 = /*#__PURE__*/styled(Box)(_templateObject2$1 || (_templateObject2$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: 100%;\n height: var(--boemly-sizes-xs);\n position: relative;\n border-radius: var(--boemly-radii-2xl);\n\n // Fixes the flickering of borders during animation in Safari\n -webkit-mask-image: -webkit-radial-gradient(white, black);\n\n & span,\n div {\n border-radius: var(--boemly-radii-2xl);\n }\n\n @media screen and (max-width: ", ") {\n height: var(--boemly-sizes-3xs);\n }\n"])), BREAKPOINT_MD);
2596
-
2597
2546
  var Blog = function Blog(_ref) {
2598
2547
  var slice = _ref.slice,
2599
2548
  blogPosts = _ref.blogPosts;
@@ -2656,6 +2605,63 @@ var Blog = function Blog(_ref) {
2656
2605
  }))));
2657
2606
  };
2658
2607
 
2608
+ var CreditsAvailableState;
2609
+ (function (CreditsAvailableState) {
2610
+ CreditsAvailableState["YES"] = "yes";
2611
+ CreditsAvailableState["SOME"] = "some";
2612
+ CreditsAvailableState["NO"] = "no";
2613
+ CreditsAvailableState["NOT_YET"] = "notYet";
2614
+ })(CreditsAvailableState || (CreditsAvailableState = {}));
2615
+ var CreditsAvailableState$1 = CreditsAvailableState;
2616
+
2617
+ var FORMAT_AS_HECTARE_CONFIG = {
2618
+ unit: 'hectare',
2619
+ unitDisplay: 'short',
2620
+ style: 'unit',
2621
+ maximumFractionDigits: 2
2622
+ };
2623
+ var FORMAT_AS_PERCENT_CONFIG = {
2624
+ style: 'percent',
2625
+ maximumFractionDigits: 2
2626
+ };
2627
+
2628
+ var PortfolioProjectCard = function PortfolioProjectCard(_ref) {
2629
+ var _creditsAvailableMess, _project$creditsAvail, _project$thumbnail, _project$thumbnail2, _project$thumbnail3;
2630
+ var project = _ref.project;
2631
+ var _useContext = useContext(IntlContext),
2632
+ formatMessage = _useContext.formatMessage,
2633
+ formatNumber = _useContext.formatNumber;
2634
+ var creditsAvailableMessages = (_creditsAvailableMess = {}, _creditsAvailableMess[CreditsAvailableState$1.YES] = formatMessage({
2635
+ id: 'components.portfolioProjectCard.text.yes'
2636
+ }), _creditsAvailableMess[CreditsAvailableState$1.SOME] = formatMessage({
2637
+ id: 'components.portfolioProjectCard.text.some'
2638
+ }), _creditsAvailableMess[CreditsAvailableState$1.NO] = formatMessage({
2639
+ id: 'components.portfolioProjectCard.text.no'
2640
+ }), _creditsAvailableMess[CreditsAvailableState$1.NOT_YET] = formatMessage({
2641
+ id: 'components.portfolioProjectCard.text.notYet'
2642
+ }), _creditsAvailableMess);
2643
+ return React.createElement(ProjectCard, {
2644
+ title: project.title,
2645
+ facts: [{
2646
+ id: 1,
2647
+ text: formatNumber((project.area || 0) / 10000, FORMAT_AS_HECTARE_CONFIG)
2648
+ }, {
2649
+ id: 2,
2650
+ text: project.location || ''
2651
+ }],
2652
+ footerTitle: creditsAvailableMessages[(_project$creditsAvail = project.creditsAvailable) != null ? _project$creditsAvail : CreditsAvailableState$1.NOT_YET],
2653
+ footerSubTitle: project.footerSubTitle || '',
2654
+ image: project.thumbnail && React.createElement(Image, {
2655
+ src: strapiMediaUrl((_project$thumbnail = project.thumbnail) == null ? void 0 : _project$thumbnail.img, 'medium'),
2656
+ alt: (_project$thumbnail2 = project.thumbnail) == null ? void 0 : _project$thumbnail2.alt,
2657
+ fill: true,
2658
+ style: {
2659
+ objectFit: ((_project$thumbnail3 = project.thumbnail) == null ? void 0 : _project$thumbnail3.objectFit) || 'cover'
2660
+ }
2661
+ })
2662
+ });
2663
+ };
2664
+
2659
2665
  var ConditionalWrapper = function ConditionalWrapper(_ref) {
2660
2666
  var condition = _ref.condition,
2661
2667
  wrapper = _ref.wrapper,
@@ -4705,8 +4711,7 @@ var SliceRenderer = function SliceRenderer(_ref) {
4705
4711
  case 'sections.text-with-card':
4706
4712
  return React.createElement(TextWithCard, {
4707
4713
  key: slice.__component + "-" + slice.id,
4708
- slice: slice,
4709
- projects: projects
4714
+ slice: slice
4710
4715
  });
4711
4716
  case 'sections.logo-grid-with-text':
4712
4717
  return React.createElement(LogoGridWithText, {