@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,8 +1,18 @@
1
- import IStrapi from './IStrapi';
2
1
  import IStrapiData from './IStrapiData';
2
+ import StrapiImage from './StrapiImage';
3
3
  import StrapiProject from './StrapiProject';
4
4
  interface StrapiProjectCard {
5
5
  id: number;
6
- project: IStrapi<IStrapiData<StrapiProject>>;
6
+ title: string;
7
+ facts: {
8
+ id: number;
9
+ text: string;
10
+ }[];
11
+ footerTitle: string;
12
+ footerSubTitle: string;
13
+ image: StrapiImage;
14
+ project?: {
15
+ data?: IStrapiData<StrapiProject>;
16
+ };
7
17
  }
8
18
  export default StrapiProjectCard;
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import StrapiLink from '../../models/strapi/StrapiLink';
3
3
  import StrapiProjectCard from '../../models/strapi/StrapiProjectCard';
4
- import PortfolioProject from '../../models/PortfolioProject';
5
4
  interface TextWithCardSlice {
6
5
  tagline?: string;
7
6
  title: string;
@@ -16,7 +15,6 @@ interface TextWithCardSlice {
16
15
  }
17
16
  export interface TextWithCardProps {
18
17
  slice: TextWithCardSlice;
19
- projects: PortfolioProject[];
20
18
  }
21
19
  export declare const TextWithCard: React.FC<TextWithCardProps>;
22
20
  export {};
@@ -2127,26 +2127,205 @@ var TextWithTextCards = function TextWithTextCards(_ref) {
2127
2127
  }))));
2128
2128
  };
2129
2129
 
2130
- var CreditsAvailableState;
2131
- (function (CreditsAvailableState) {
2132
- CreditsAvailableState["YES"] = "yes";
2133
- CreditsAvailableState["SOME"] = "some";
2134
- CreditsAvailableState["NO"] = "no";
2135
- CreditsAvailableState["NOT_YET"] = "notYet";
2136
- })(CreditsAvailableState || (CreditsAvailableState = {}));
2137
- var CreditsAvailableState$1 = CreditsAvailableState;
2130
+ var TextWithCard = function TextWithCard(_ref) {
2131
+ var slice = _ref.slice;
2132
+ var card = React__default.default.createElement(boemly.GridItem, {
2133
+ colSpan: [4, null, null, null, 2],
2134
+ rowSpan: 1,
2135
+ position: "relative",
2136
+ "data-testid": "card-position-" + slice.cardPosition
2137
+ }, slice.card && React__default.default.createElement(boemly.ProjectCard, {
2138
+ facts: slice.card.facts,
2139
+ footerSubTitle: slice.card.footerSubTitle,
2140
+ footerTitle: slice.card.footerTitle,
2141
+ title: slice.card.title,
2142
+ image: React__default.default.createElement(Image__default.default, {
2143
+ src: strapiMediaUrl(slice.card.image.img, 'medium'),
2144
+ alt: slice.card.image.alt,
2145
+ fill: true,
2146
+ style: {
2147
+ objectFit: slice.card.image.objectFit || 'cover'
2148
+ }
2149
+ })
2150
+ }));
2151
+ return React__default.default.createElement(boemly.DefaultSectionContainer, {
2152
+ title: slice.title
2153
+ }, React__default.default.createElement(boemly.Wrapper, null, React__default.default.createElement(boemly.Grid, {
2154
+ templateColumns: ['repeat(4, auto)', null, null, null, 'repeat(6, auto)'],
2155
+ templateRows: ['repeat(2, auto)', null, null, null, 'repeat(1, auto)'],
2156
+ rowGap: "12",
2157
+ columnGap: ['0', null, null, null, '28']
2158
+ }, slice.cardPosition === 'left' && card, React__default.default.createElement(boemly.GridItem, {
2159
+ colSpan: 4,
2160
+ rowSpan: 1,
2161
+ position: "relative"
2162
+ }, React__default.default.createElement(boemly.DefaultSectionHeader, {
2163
+ tagline: slice.tagline,
2164
+ title: slice.title,
2165
+ text: slice.text
2166
+ }), slice.listItems && React__default.default.createElement(React__default.default.Fragment, null, React__default.default.createElement(boemly.Spacer, {
2167
+ height: "10"
2168
+ }), React__default.default.createElement(boemly.BoemlyList, {
2169
+ listItems: slice.listItems
2170
+ }), React__default.default.createElement(boemly.Spacer, {
2171
+ height: "10"
2172
+ })), slice.button && React__default.default.createElement(StrapiLinkButton, {
2173
+ link: slice.button,
2174
+ size: "md",
2175
+ colorScheme: "white",
2176
+ variant: "outline",
2177
+ rightIcon: React__default.default.createElement(react.ArrowRight, null)
2178
+ })), slice.cardPosition === 'right' && card)));
2179
+ };
2138
2180
 
2139
- var FORMAT_AS_HECTARE_CONFIG = {
2140
- unit: 'hectare',
2141
- unitDisplay: 'short',
2142
- style: 'unit',
2143
- maximumFractionDigits: 2
2181
+ var MEDIUM_TRANSITION_DURATION = 0.2;
2182
+
2183
+ var LinkCardsGrid = function LinkCardsGrid(_ref) {
2184
+ var slice = _ref.slice;
2185
+ return React__default.default.createElement(boemly.DefaultSectionContainer, {
2186
+ title: slice.title
2187
+ }, React__default.default.createElement(boemly.Wrapper, null, React__default.default.createElement(boemly.DefaultSectionHeader, {
2188
+ tagline: slice.tagline,
2189
+ title: slice.title,
2190
+ text: slice.text
2191
+ }), React__default.default.createElement(boemly.SimpleGrid, {
2192
+ mt: "16",
2193
+ columns: [1, null, null, null, 2],
2194
+ gap: "4"
2195
+ }, slice.cards.map(function (_ref2) {
2196
+ var id = _ref2.id,
2197
+ title = _ref2.title,
2198
+ text = _ref2.text,
2199
+ link = _ref2.link;
2200
+ return React__default.default.createElement(boemly.Box, {
2201
+ key: id,
2202
+ as: Link__default.default,
2203
+ href: strapiLinkUrl(link),
2204
+ "data-testid": "link",
2205
+ px: "10",
2206
+ py: "8",
2207
+ borderStyle: "solid",
2208
+ borderWidth: "thin",
2209
+ borderColor: "gray.200",
2210
+ borderRadius: "2xl",
2211
+ display: "flex",
2212
+ flexDir: "row",
2213
+ alignItems: "center",
2214
+ justifyContent: "space-between",
2215
+ cursor: "pointer",
2216
+ transitionDuration: MEDIUM_TRANSITION_DURATION + "s",
2217
+ _hover: {
2218
+ backgroundColor: 'gray.50'
2219
+ }
2220
+ }, React__default.default.createElement("div", null, React__default.default.createElement(boemly.Heading, {
2221
+ as: "h4",
2222
+ size: "lg"
2223
+ }, title), text && React__default.default.createElement(boemly.Text, {
2224
+ mt: "2",
2225
+ size: "smRegularNormal"
2226
+ }, text)), React__default.default.createElement(boemly.Box, {
2227
+ display: "flex",
2228
+ alignItems: "center",
2229
+ justifyContent: "center",
2230
+ borderStyle: "solid",
2231
+ borderWidth: "thin",
2232
+ borderColor: "gray.200",
2233
+ borderRadius: "2xl",
2234
+ height: "12",
2235
+ width: "12",
2236
+ minWidth: "12",
2237
+ minHeight: "12",
2238
+ ml: "6",
2239
+ backgroundColor: "white"
2240
+ }, React__default.default.createElement(react.CaretRight, null)));
2241
+ }))));
2144
2242
  };
2145
- var FORMAT_AS_PERCENT_CONFIG = {
2146
- style: 'percent',
2147
- maximumFractionDigits: 2
2243
+
2244
+ var colors = {
2245
+ dark: {
2246
+ tagline: 'white',
2247
+ title: 'white',
2248
+ text: 'white',
2249
+ background: 'gray.900'
2250
+ },
2251
+ light: {
2252
+ tagline: 'primary.500',
2253
+ title: 'black',
2254
+ text: 'gray.500',
2255
+ background: 'primary.50'
2256
+ }
2257
+ };
2258
+ var SmallHero = function SmallHero(_ref) {
2259
+ var slice = _ref.slice,
2260
+ theme = _ref.theme;
2261
+ return React__default.default.createElement(boemly.Box, {
2262
+ position: "relative",
2263
+ width: "full",
2264
+ height: "xl",
2265
+ backgroundColor: colors[theme].background
2266
+ }, slice.image && React__default.default.createElement(React__default.default.Fragment, null, React__default.default.createElement(Image__default.default, {
2267
+ src: strapiMediaUrl(slice.image.img, 'xLarge'),
2268
+ alt: slice.image.alt,
2269
+ fill: true,
2270
+ style: {
2271
+ objectFit: slice.image.objectFit || 'cover'
2272
+ }
2273
+ }), slice.gradient && React__default.default.createElement(boemly.Gradient, null)), React__default.default.createElement(boemly.Box, {
2274
+ position: "absolute",
2275
+ left: "0",
2276
+ top: "60%",
2277
+ width: "full",
2278
+ textAlign: "center",
2279
+ transform: "translateY(-50%)"
2280
+ }, React__default.default.createElement(boemly.Wrapper, null, React__default.default.createElement(React__default.default.Fragment, null, slice.tags && React__default.default.createElement(boemly.Flex, {
2281
+ direction: "row",
2282
+ justify: "center",
2283
+ gap: "2",
2284
+ mb: "4",
2285
+ wrap: "wrap"
2286
+ }, slice.tags.map(function (_ref2) {
2287
+ var id = _ref2.id,
2288
+ text = _ref2.text,
2289
+ colorScheme = _ref2.colorScheme;
2290
+ return React__default.default.createElement(boemly.Tag, {
2291
+ key: id,
2292
+ colorScheme: colorScheme,
2293
+ size: "md",
2294
+ variant: "subtle"
2295
+ }, text);
2296
+ })), React__default.default.createElement(boemly.DefaultSectionHeader, {
2297
+ isHero: true,
2298
+ tagline: slice.tagline,
2299
+ title: slice.title,
2300
+ text: slice.subTitle,
2301
+ taglineProps: {
2302
+ color: colors[theme].tagline,
2303
+ textAlign: 'center',
2304
+ mx: 'auto'
2305
+ },
2306
+ titleProps: {
2307
+ color: colors[theme].title,
2308
+ maxW: '4xl',
2309
+ textAlign: 'center',
2310
+ mx: 'auto'
2311
+ },
2312
+ textProps: {
2313
+ maxW: '2xl',
2314
+ textAlign: 'center',
2315
+ mx: 'auto',
2316
+ color: colors[theme].text
2317
+ }
2318
+ }), slice.button && React__default.default.createElement(StrapiLinkButton, {
2319
+ link: slice.button,
2320
+ mt: "6",
2321
+ size: "lg"
2322
+ })))));
2148
2323
  };
2149
2324
 
2325
+ var _templateObject$4, _templateObject2$1;
2326
+ var BlogItemContainer = /*#__PURE__*/styled__default.default(boemly.Link)(_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"])));
2327
+ var ImageContainer$1 = /*#__PURE__*/styled__default.default(boemly.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);
2328
+
2150
2329
  var messagesDe$b = {
2151
2330
  'sections.comparison.backgroundShapes': 'Hintergrundformen'
2152
2331
  };
@@ -2342,8 +2521,8 @@ var messagesEn = {
2342
2521
 
2343
2522
  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);
2344
2523
 
2345
- var _templateObject$4;
2346
- var GLOBAL_STYLE = /*#__PURE__*/react$1.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);
2524
+ var _templateObject$3;
2525
+ var GLOBAL_STYLE = /*#__PURE__*/react$1.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);
2347
2526
 
2348
2527
  var FONT_CUSTOMIZATIONS = {
2349
2528
  body: 'Inter',
@@ -2377,236 +2556,6 @@ var ContextProvider = function ContextProvider(_ref) {
2377
2556
  }, children));
2378
2557
  };
2379
2558
 
2380
- var PortfolioProjectCard = function PortfolioProjectCard(_ref) {
2381
- var _creditsAvailableMess, _project$creditsAvail, _project$thumbnail, _project$thumbnail2, _project$thumbnail3;
2382
- var project = _ref.project;
2383
- var _useContext = React.useContext(IntlContext),
2384
- formatMessage = _useContext.formatMessage,
2385
- formatNumber = _useContext.formatNumber;
2386
- var creditsAvailableMessages = (_creditsAvailableMess = {}, _creditsAvailableMess[CreditsAvailableState$1.YES] = formatMessage({
2387
- id: 'components.portfolioProjectCard.text.yes'
2388
- }), _creditsAvailableMess[CreditsAvailableState$1.SOME] = formatMessage({
2389
- id: 'components.portfolioProjectCard.text.some'
2390
- }), _creditsAvailableMess[CreditsAvailableState$1.NO] = formatMessage({
2391
- id: 'components.portfolioProjectCard.text.no'
2392
- }), _creditsAvailableMess[CreditsAvailableState$1.NOT_YET] = formatMessage({
2393
- id: 'components.portfolioProjectCard.text.notYet'
2394
- }), _creditsAvailableMess);
2395
- return React__default.default.createElement(boemly.ProjectCard, {
2396
- title: project.title,
2397
- facts: [{
2398
- id: 1,
2399
- text: formatNumber((project.area || 0) / 10000, FORMAT_AS_HECTARE_CONFIG)
2400
- }, {
2401
- id: 2,
2402
- text: project.location || ''
2403
- }],
2404
- footerTitle: creditsAvailableMessages[(_project$creditsAvail = project.creditsAvailable) != null ? _project$creditsAvail : CreditsAvailableState$1.NOT_YET],
2405
- footerSubTitle: project.footerSubTitle || '',
2406
- image: project.thumbnail && React__default.default.createElement(Image__default.default, {
2407
- src: strapiMediaUrl((_project$thumbnail = project.thumbnail) == null ? void 0 : _project$thumbnail.img, 'medium'),
2408
- alt: (_project$thumbnail2 = project.thumbnail) == null ? void 0 : _project$thumbnail2.alt,
2409
- fill: true,
2410
- style: {
2411
- objectFit: ((_project$thumbnail3 = project.thumbnail) == null ? void 0 : _project$thumbnail3.objectFit) || 'cover'
2412
- }
2413
- })
2414
- });
2415
- };
2416
-
2417
- var TextWithCard = function TextWithCard(_ref) {
2418
- var slice = _ref.slice,
2419
- projects = _ref.projects;
2420
- var fpmData = projects.find(function (project) {
2421
- var _slice$card;
2422
- return project.slug === ((_slice$card = slice.card) == null || (_slice$card = _slice$card.project) == null ? void 0 : _slice$card.data.attributes.slug);
2423
- });
2424
- var card = React__default.default.createElement(boemly.GridItem, {
2425
- colSpan: [4, null, null, null, 2],
2426
- rowSpan: 1,
2427
- position: "relative",
2428
- "data-testid": "card-position-" + slice.cardPosition
2429
- }, slice.card && fpmData && React__default.default.createElement(PortfolioProjectCard, {
2430
- project: _extends({}, slice.card, fpmData)
2431
- }));
2432
- return React__default.default.createElement(boemly.DefaultSectionContainer, {
2433
- title: slice.title
2434
- }, React__default.default.createElement(boemly.Wrapper, null, React__default.default.createElement(boemly.Grid, {
2435
- templateColumns: ['repeat(4, auto)', null, null, null, 'repeat(6, auto)'],
2436
- templateRows: ['repeat(2, auto)', null, null, null, 'repeat(1, auto)'],
2437
- rowGap: "12",
2438
- columnGap: ['0', null, null, null, '28']
2439
- }, slice.cardPosition === 'left' && card, React__default.default.createElement(boemly.GridItem, {
2440
- colSpan: 4,
2441
- rowSpan: 1,
2442
- position: "relative"
2443
- }, React__default.default.createElement(boemly.DefaultSectionHeader, {
2444
- tagline: slice.tagline,
2445
- title: slice.title,
2446
- text: slice.text
2447
- }), slice.listItems && React__default.default.createElement(React__default.default.Fragment, null, React__default.default.createElement(boemly.Spacer, {
2448
- height: "10"
2449
- }), React__default.default.createElement(boemly.BoemlyList, {
2450
- listItems: slice.listItems
2451
- }), React__default.default.createElement(boemly.Spacer, {
2452
- height: "10"
2453
- })), slice.button && React__default.default.createElement(StrapiLinkButton, {
2454
- link: slice.button,
2455
- size: "md",
2456
- colorScheme: "white",
2457
- variant: "outline",
2458
- rightIcon: React__default.default.createElement(react.ArrowRight, null)
2459
- })), slice.cardPosition === 'right' && card)));
2460
- };
2461
-
2462
- var MEDIUM_TRANSITION_DURATION = 0.2;
2463
-
2464
- var LinkCardsGrid = function LinkCardsGrid(_ref) {
2465
- var slice = _ref.slice;
2466
- return React__default.default.createElement(boemly.DefaultSectionContainer, {
2467
- title: slice.title
2468
- }, React__default.default.createElement(boemly.Wrapper, null, React__default.default.createElement(boemly.DefaultSectionHeader, {
2469
- tagline: slice.tagline,
2470
- title: slice.title,
2471
- text: slice.text
2472
- }), React__default.default.createElement(boemly.SimpleGrid, {
2473
- mt: "16",
2474
- columns: [1, null, null, null, 2],
2475
- gap: "4"
2476
- }, slice.cards.map(function (_ref2) {
2477
- var id = _ref2.id,
2478
- title = _ref2.title,
2479
- text = _ref2.text,
2480
- link = _ref2.link;
2481
- return React__default.default.createElement(boemly.Box, {
2482
- key: id,
2483
- as: Link__default.default,
2484
- href: strapiLinkUrl(link),
2485
- "data-testid": "link",
2486
- px: "10",
2487
- py: "8",
2488
- borderStyle: "solid",
2489
- borderWidth: "thin",
2490
- borderColor: "gray.200",
2491
- borderRadius: "2xl",
2492
- display: "flex",
2493
- flexDir: "row",
2494
- alignItems: "center",
2495
- justifyContent: "space-between",
2496
- cursor: "pointer",
2497
- transitionDuration: MEDIUM_TRANSITION_DURATION + "s",
2498
- _hover: {
2499
- backgroundColor: 'gray.50'
2500
- }
2501
- }, React__default.default.createElement("div", null, React__default.default.createElement(boemly.Heading, {
2502
- as: "h4",
2503
- size: "lg"
2504
- }, title), text && React__default.default.createElement(boemly.Text, {
2505
- mt: "2",
2506
- size: "smRegularNormal"
2507
- }, text)), React__default.default.createElement(boemly.Box, {
2508
- display: "flex",
2509
- alignItems: "center",
2510
- justifyContent: "center",
2511
- borderStyle: "solid",
2512
- borderWidth: "thin",
2513
- borderColor: "gray.200",
2514
- borderRadius: "2xl",
2515
- height: "12",
2516
- width: "12",
2517
- minWidth: "12",
2518
- minHeight: "12",
2519
- ml: "6",
2520
- backgroundColor: "white"
2521
- }, React__default.default.createElement(react.CaretRight, null)));
2522
- }))));
2523
- };
2524
-
2525
- var colors = {
2526
- dark: {
2527
- tagline: 'white',
2528
- title: 'white',
2529
- text: 'white',
2530
- background: 'gray.900'
2531
- },
2532
- light: {
2533
- tagline: 'primary.500',
2534
- title: 'black',
2535
- text: 'gray.500',
2536
- background: 'primary.50'
2537
- }
2538
- };
2539
- var SmallHero = function SmallHero(_ref) {
2540
- var slice = _ref.slice,
2541
- theme = _ref.theme;
2542
- return React__default.default.createElement(boemly.Box, {
2543
- position: "relative",
2544
- width: "full",
2545
- height: "xl",
2546
- backgroundColor: colors[theme].background
2547
- }, slice.image && React__default.default.createElement(React__default.default.Fragment, null, React__default.default.createElement(Image__default.default, {
2548
- src: strapiMediaUrl(slice.image.img, 'xLarge'),
2549
- alt: slice.image.alt,
2550
- fill: true,
2551
- style: {
2552
- objectFit: slice.image.objectFit || 'cover'
2553
- }
2554
- }), slice.gradient && React__default.default.createElement(boemly.Gradient, null)), React__default.default.createElement(boemly.Box, {
2555
- position: "absolute",
2556
- left: "0",
2557
- top: "60%",
2558
- width: "full",
2559
- textAlign: "center",
2560
- transform: "translateY(-50%)"
2561
- }, React__default.default.createElement(boemly.Wrapper, null, React__default.default.createElement(React__default.default.Fragment, null, slice.tags && React__default.default.createElement(boemly.Flex, {
2562
- direction: "row",
2563
- justify: "center",
2564
- gap: "2",
2565
- mb: "4",
2566
- wrap: "wrap"
2567
- }, slice.tags.map(function (_ref2) {
2568
- var id = _ref2.id,
2569
- text = _ref2.text,
2570
- colorScheme = _ref2.colorScheme;
2571
- return React__default.default.createElement(boemly.Tag, {
2572
- key: id,
2573
- colorScheme: colorScheme,
2574
- size: "md",
2575
- variant: "subtle"
2576
- }, text);
2577
- })), React__default.default.createElement(boemly.DefaultSectionHeader, {
2578
- isHero: true,
2579
- tagline: slice.tagline,
2580
- title: slice.title,
2581
- text: slice.subTitle,
2582
- taglineProps: {
2583
- color: colors[theme].tagline,
2584
- textAlign: 'center',
2585
- mx: 'auto'
2586
- },
2587
- titleProps: {
2588
- color: colors[theme].title,
2589
- maxW: '4xl',
2590
- textAlign: 'center',
2591
- mx: 'auto'
2592
- },
2593
- textProps: {
2594
- maxW: '2xl',
2595
- textAlign: 'center',
2596
- mx: 'auto',
2597
- color: colors[theme].text
2598
- }
2599
- }), slice.button && React__default.default.createElement(StrapiLinkButton, {
2600
- link: slice.button,
2601
- mt: "6",
2602
- size: "lg"
2603
- })))));
2604
- };
2605
-
2606
- var _templateObject$3, _templateObject2$1;
2607
- var BlogItemContainer = /*#__PURE__*/styled__default.default(boemly.Link)(_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"])));
2608
- var ImageContainer$1 = /*#__PURE__*/styled__default.default(boemly.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);
2609
-
2610
2559
  var Blog = function Blog(_ref) {
2611
2560
  var slice = _ref.slice,
2612
2561
  blogPosts = _ref.blogPosts;
@@ -2669,6 +2618,63 @@ var Blog = function Blog(_ref) {
2669
2618
  }))));
2670
2619
  };
2671
2620
 
2621
+ var CreditsAvailableState;
2622
+ (function (CreditsAvailableState) {
2623
+ CreditsAvailableState["YES"] = "yes";
2624
+ CreditsAvailableState["SOME"] = "some";
2625
+ CreditsAvailableState["NO"] = "no";
2626
+ CreditsAvailableState["NOT_YET"] = "notYet";
2627
+ })(CreditsAvailableState || (CreditsAvailableState = {}));
2628
+ var CreditsAvailableState$1 = CreditsAvailableState;
2629
+
2630
+ var FORMAT_AS_HECTARE_CONFIG = {
2631
+ unit: 'hectare',
2632
+ unitDisplay: 'short',
2633
+ style: 'unit',
2634
+ maximumFractionDigits: 2
2635
+ };
2636
+ var FORMAT_AS_PERCENT_CONFIG = {
2637
+ style: 'percent',
2638
+ maximumFractionDigits: 2
2639
+ };
2640
+
2641
+ var PortfolioProjectCard = function PortfolioProjectCard(_ref) {
2642
+ var _creditsAvailableMess, _project$creditsAvail, _project$thumbnail, _project$thumbnail2, _project$thumbnail3;
2643
+ var project = _ref.project;
2644
+ var _useContext = React.useContext(IntlContext),
2645
+ formatMessage = _useContext.formatMessage,
2646
+ formatNumber = _useContext.formatNumber;
2647
+ var creditsAvailableMessages = (_creditsAvailableMess = {}, _creditsAvailableMess[CreditsAvailableState$1.YES] = formatMessage({
2648
+ id: 'components.portfolioProjectCard.text.yes'
2649
+ }), _creditsAvailableMess[CreditsAvailableState$1.SOME] = formatMessage({
2650
+ id: 'components.portfolioProjectCard.text.some'
2651
+ }), _creditsAvailableMess[CreditsAvailableState$1.NO] = formatMessage({
2652
+ id: 'components.portfolioProjectCard.text.no'
2653
+ }), _creditsAvailableMess[CreditsAvailableState$1.NOT_YET] = formatMessage({
2654
+ id: 'components.portfolioProjectCard.text.notYet'
2655
+ }), _creditsAvailableMess);
2656
+ return React__default.default.createElement(boemly.ProjectCard, {
2657
+ title: project.title,
2658
+ facts: [{
2659
+ id: 1,
2660
+ text: formatNumber((project.area || 0) / 10000, FORMAT_AS_HECTARE_CONFIG)
2661
+ }, {
2662
+ id: 2,
2663
+ text: project.location || ''
2664
+ }],
2665
+ footerTitle: creditsAvailableMessages[(_project$creditsAvail = project.creditsAvailable) != null ? _project$creditsAvail : CreditsAvailableState$1.NOT_YET],
2666
+ footerSubTitle: project.footerSubTitle || '',
2667
+ image: project.thumbnail && React__default.default.createElement(Image__default.default, {
2668
+ src: strapiMediaUrl((_project$thumbnail = project.thumbnail) == null ? void 0 : _project$thumbnail.img, 'medium'),
2669
+ alt: (_project$thumbnail2 = project.thumbnail) == null ? void 0 : _project$thumbnail2.alt,
2670
+ fill: true,
2671
+ style: {
2672
+ objectFit: ((_project$thumbnail3 = project.thumbnail) == null ? void 0 : _project$thumbnail3.objectFit) || 'cover'
2673
+ }
2674
+ })
2675
+ });
2676
+ };
2677
+
2672
2678
  var ConditionalWrapper = function ConditionalWrapper(_ref) {
2673
2679
  var condition = _ref.condition,
2674
2680
  wrapper = _ref.wrapper,
@@ -4718,8 +4724,7 @@ var SliceRenderer = function SliceRenderer(_ref) {
4718
4724
  case 'sections.text-with-card':
4719
4725
  return React__default.default.createElement(TextWithCard, {
4720
4726
  key: slice.__component + "-" + slice.id,
4721
- slice: slice,
4722
- projects: projects
4727
+ slice: slice
4723
4728
  });
4724
4729
  case 'sections.logo-grid-with-text':
4725
4730
  return React__default.default.createElement(LogoGridWithText, {