@anywayseo/tools 4.1.0 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/components/base/index.d.ts +0 -1
  2. package/dist/components/base/link-button/index.d.ts +3 -3
  3. package/dist/components/game-demo/content/index.d.ts +1 -0
  4. package/dist/components/game-demo/index.d.ts +1 -0
  5. package/dist/components/game-demo/preview/index.d.ts +5 -4
  6. package/dist/components/index.cjs +1 -2
  7. package/dist/components/index.mjs +1 -2
  8. package/dist/hooks/index.cjs +1 -1
  9. package/dist/hooks/index.mjs +1 -1
  10. package/dist/hooks/use-primary-colors/index.d.ts +1 -0
  11. package/dist/i18n/index.cjs +1 -1
  12. package/dist/i18n/index.mjs +1 -1
  13. package/dist/i18n/resources/de/index.d.ts +2 -0
  14. package/dist/i18n/resources/en/index.d.ts +2 -0
  15. package/dist/i18n/resources/it/index.d.ts +2 -0
  16. package/dist/i18n/resources/ru/index.d.ts +2 -0
  17. package/dist/{index-NsIHOkeN.js → index-BClxYYix.js} +0 -46
  18. package/dist/{index-DoBCANwf.mjs → index-BE9gNdXx.mjs} +15 -7
  19. package/dist/{index-Biz1dDqA.js → index-BPLxhZG_.js} +15 -7
  20. package/dist/index-BV0hDmYP.js +11 -0
  21. package/dist/{index-DzEvPZny.mjs → index-Ca_M-II5.mjs} +0 -46
  22. package/dist/index-CkTgVjZS.mjs +12 -0
  23. package/dist/{index-Db-ZIQ0A.mjs → index-DPO0aIC3.mjs} +1 -19
  24. package/dist/index-DVcQxWMZ.js +36 -0
  25. package/dist/{index-CpjGjVVj.js → index-DuQjQMNN.js} +1 -19
  26. package/dist/{index-BxPYJ5OB.js → index-FzrDuS6r.js} +136 -88
  27. package/dist/{index-BKg1_9Hw.mjs → index-HjgJxxVi.mjs} +130 -82
  28. package/dist/index-MpNfBHkQ.mjs +37 -0
  29. package/dist/index.cjs +19 -19
  30. package/dist/index.mjs +8 -8
  31. package/dist/types/components/bonus-card/index.d.ts +2 -1
  32. package/dist/types/components/button/index.d.ts +6 -0
  33. package/dist/types/components/common/index.d.ts +12 -0
  34. package/dist/types/components/game-card/index.d.ts +3 -2
  35. package/dist/types/components/index.d.ts +2 -0
  36. package/dist/types/components/link/index.d.ts +5 -0
  37. package/dist/types/content/index.d.ts +0 -1
  38. package/dist/types/site/index.d.ts +4 -0
  39. package/dist/utils/animation/index.d.ts +2 -8
  40. package/dist/utils/index.cjs +16 -15
  41. package/dist/utils/index.mjs +5 -4
  42. package/dist/utils/theme/index.d.ts +2 -3
  43. package/package.json +1 -1
  44. package/dist/components/base/pulse-button/index.d.ts +0 -15
  45. package/dist/components/base/pulse-button/utils.d.ts +0 -4
  46. package/dist/index-IpSV-c71.js +0 -8
  47. package/dist/index-xuSxvz5z.mjs +0 -9
  48. package/dist/types/content/link/index.d.ts +0 -4
@@ -2,15 +2,15 @@
2
2
  const jsxRuntime = require("react/jsx-runtime");
3
3
  const react$1 = require("@chakra-ui/react");
4
4
  const reactI18next = require("react-i18next");
5
- const index = require("./index-CpjGjVVj.js");
6
- const i18n = require("./index-Biz1dDqA.js");
7
- require("@ctrl/tinycolor");
5
+ const gatsby = require("gatsby");
6
+ const index$2 = require("./index-DVcQxWMZ.js");
7
+ const i18n = require("./index-BPLxhZG_.js");
8
+ const react$2 = require("@mdx-js/react");
9
+ const index = require("./index-BhsXlbd8.js");
8
10
  const react = require("react");
9
11
  const icons = require("@chakra-ui/icons");
10
- const react$2 = require("@mdx-js/react");
11
- const gatsby = require("gatsby");
12
- const index$2 = require("./index-BhsXlbd8.js");
13
- const index$1 = require("./index-IpSV-c71.js");
12
+ const index$3 = require("./index-DuQjQMNN.js");
13
+ const index$1 = require("./index-BV0hDmYP.js");
14
14
  const i18n$1 = require("i18next");
15
15
  const Markdown = require("react-markdown");
16
16
  const ONE_LINE_HEIGHT = 24;
@@ -68,36 +68,44 @@ const defaultColumns = { base: 1, sm: 2, md: 3, lg: 4, xl: 5 };
68
68
  const Grid = ({ items, columns = defaultColumns, gap, render, getKey, ...boxProps }) => {
69
69
  return /* @__PURE__ */ jsxRuntime.jsx(react$1.SimpleGrid, { as: "ul", columns, spacing: gap, p: 0, m: 0, listStyleType: "none", ...boxProps, children: items.map((item, index2) => /* @__PURE__ */ jsxRuntime.jsx(react$1.Box, { as: "li", children: render(item) }, getKey ? getKey(item) : index2)) });
70
70
  };
71
- const LinkButton = ({ label, url, width = "auto", ...boxProps }) => {
71
+ const LinkButton = ({
72
+ label,
73
+ href,
74
+ linkType = "redirect",
75
+ size = "auto",
76
+ width = "auto",
77
+ textTransform,
78
+ textDecoration,
79
+ animation,
80
+ onClick,
81
+ ...boxProps
82
+ }) => {
83
+ var _a;
84
+ const { configs } = index.useSiteContext();
85
+ const { color, invertedColor } = index$1.usePrimaryColors();
86
+ const isInvertedColor = (_a = configs == null ? void 0 : configs.theme) == null ? void 0 : _a.isInvertedColor;
87
+ const isInternalLink = linkType === "redirect" || (href == null ? void 0 : href.startsWith("/"));
88
+ const LinkComponent = isInternalLink ? gatsby.Link : react$1.Link;
89
+ const hrefKey = isInternalLink ? "to" : "href";
90
+ const hrefValue = linkType === "redirect" ? `/follow?to=${href}` : href;
72
91
  return /* @__PURE__ */ jsxRuntime.jsx(
73
92
  react$1.Button,
74
93
  {
75
- as: react$1.Link,
76
- href: url,
77
94
  w: width,
78
- bg: "brand.600",
79
- textTransform: "uppercase",
80
- _hover: { textDecoration: "none", bg: "brand.300" },
95
+ size: size === "auto" ? { base: "sm", md: "lg" } : size,
96
+ bg: "brand.500",
97
+ color: isInvertedColor ? invertedColor : color,
98
+ animation: animation ? index$2.Animation[animation.type](animation.params) : void 0,
99
+ textTransform,
100
+ _hover: { textDecoration, bg: "brand.200" },
81
101
  _active: { transform: "scale(0.95)" },
102
+ onClick,
82
103
  ...boxProps,
83
- children: label
84
- }
85
- );
86
- };
87
- const ColorMap = {
88
- light: "gray.200",
89
- dark: "gray.700"
90
- };
91
- const PulseButton = ({ label, colorScheme = "light", to, onClick }) => {
92
- return /* @__PURE__ */ jsxRuntime.jsx(
93
- react$1.Button,
94
- {
95
- size: { base: "sm", md: "lg" },
96
- color: ColorMap[colorScheme],
97
- bgColor: "brand.500",
98
- animation: `${index.Animation.pulse} 2s infinite linear`,
99
- _hover: { bgColor: "brand.200", color: "gray.700" },
100
- ...to ? { as: react$1.Link, href: to } : { onClick },
104
+ ...href ? {
105
+ as: LinkComponent,
106
+ [hrefKey]: hrefValue,
107
+ rel: "nofollow"
108
+ } : {},
101
109
  children: label
102
110
  }
103
111
  );
@@ -181,7 +189,7 @@ const BonusCard = ({
181
189
  /* @__PURE__ */ jsxRuntime.jsx(react$1.Text, { fontSize: "2xl", fontWeight: "bold", my: 2, children: subtitle }),
182
190
  /* @__PURE__ */ jsxRuntime.jsx(BonusCardContent, { content, buttonColor: textColor })
183
191
  ] }),
184
- /* @__PURE__ */ jsxRuntime.jsx(react$1.CardFooter, { as: "footer", p: 4, children: /* @__PURE__ */ jsxRuntime.jsx(LinkButton, { ...link, width: "full" }) })
192
+ /* @__PURE__ */ jsxRuntime.jsx(react$1.CardFooter, { as: "footer", p: 4, children: /* @__PURE__ */ jsxRuntime.jsx(LinkButton, { ...link, width: "full", size: "md", textDecoration: "none" }) })
185
193
  ]
186
194
  }
187
195
  );
@@ -275,10 +283,10 @@ const ContactForm = ({ ...boxProps }) => {
275
283
  );
276
284
  };
277
285
  const Faq = ({ items, ...boxProps }) => {
278
- const { bgColor, color } = index$1.usePrimaryColors();
286
+ const { bgColor, invertedColor } = index$1.usePrimaryColors();
279
287
  return /* @__PURE__ */ jsxRuntime.jsx(react$1.Accordion, { allowToggle: true, ...boxProps, children: items.map(({ question, answer }) => {
280
288
  return /* @__PURE__ */ jsxRuntime.jsxs(react$1.AccordionItem, { border: 0, children: [
281
- /* @__PURE__ */ jsxRuntime.jsx(react$1.Box, { as: "h3", children: /* @__PURE__ */ jsxRuntime.jsxs(react$1.AccordionButton, { _hover: { color, bgColor }, children: [
289
+ /* @__PURE__ */ jsxRuntime.jsx(react$1.Box, { as: "h3", children: /* @__PURE__ */ jsxRuntime.jsxs(react$1.AccordionButton, { _hover: { color: invertedColor, bgColor }, children: [
282
290
  /* @__PURE__ */ jsxRuntime.jsx(react$1.Box, { as: "span", flex: "1", textAlign: "left", fontWeight: "bold", children: question }),
283
291
  /* @__PURE__ */ jsxRuntime.jsx(react$1.AccordionIcon, {})
284
292
  ] }) }),
@@ -314,7 +322,7 @@ const FeatureCardGrid = ({
314
322
  }
315
323
  );
316
324
  };
317
- const GameCard = ({ name, description, image, link, height = "auto" }) => {
325
+ const GameCard = ({ name, description, image, href, height = "auto" }) => {
318
326
  return /* @__PURE__ */ jsxRuntime.jsxs(
319
327
  react$1.LinkBox,
320
328
  {
@@ -322,15 +330,15 @@ const GameCard = ({ name, description, image, link, height = "auto" }) => {
322
330
  rounded: "md",
323
331
  borderWidth: 1,
324
332
  transition: "transform 0.2s ease",
325
- cursor: link ? "pointer" : "default",
333
+ cursor: href ? "pointer" : "default",
326
334
  overflow: "hidden",
327
335
  bg: "blackAlpha.200",
328
336
  height,
329
- _hover: { transform: "scale(1.1)" },
337
+ _hover: { transform: "scale(1.05)" },
330
338
  children: [
331
339
  typeof image === "string" ? /* @__PURE__ */ jsxRuntime.jsx(react$1.Image, { src: image, alt: name, w: "100%", aspectRatio: "16/9", objectFit: "cover", objectPosition: "center" }) : !!image && /* @__PURE__ */ jsxRuntime.jsx(react$1.Box, { w: "100%", aspectRatio: "16/9", children: image }),
332
340
  /* @__PURE__ */ jsxRuntime.jsxs(react$1.Box, { as: "section", rounded: "md", p: 4, children: [
333
- /* @__PURE__ */ jsxRuntime.jsx(react$1.Text, { as: "span", children: link ? /* @__PURE__ */ jsxRuntime.jsx(react$1.LinkOverlay, { href: link, children: name }) : name }),
341
+ /* @__PURE__ */ jsxRuntime.jsx(react$1.Text, { as: "span", children: href ? /* @__PURE__ */ jsxRuntime.jsx(react$1.LinkOverlay, { href, children: name }) : name }),
334
342
  !!description && /* @__PURE__ */ jsxRuntime.jsx(react$1.Text, { fontSize: "sm", color: "gray.600", children: description })
335
343
  ] })
336
344
  ]
@@ -339,7 +347,7 @@ const GameCard = ({ name, description, image, link, height = "auto" }) => {
339
347
  };
340
348
  const GameCardGrid = ({
341
349
  items,
342
- columns = { base: 1, md: 2, lg: 3 },
350
+ columns = { base: 1, sm: 2, md: 3, lg: 4 },
343
351
  gap = 4,
344
352
  cardHeight = "full",
345
353
  order = "default",
@@ -348,7 +356,7 @@ const GameCardGrid = ({
348
356
  }) => {
349
357
  let sortedItems = items;
350
358
  if (order === "random") {
351
- sortedItems = [...items].sort(randomSeed ? index.getSeededRandomComparator(randomSeed) : index.randomComparator);
359
+ sortedItems = [...items].sort(randomSeed ? index$3.getSeededRandomComparator(randomSeed) : index$3.randomComparator);
352
360
  }
353
361
  return /* @__PURE__ */ jsxRuntime.jsx(
354
362
  Grid,
@@ -361,7 +369,14 @@ const GameCardGrid = ({
361
369
  }
362
370
  );
363
371
  };
364
- const GameDemoContent = ({ src, isFullscreen, isLoaded, onLoad, onToggleFullscreen }) => {
372
+ const GameDemoContent = ({
373
+ src,
374
+ isFullscreen,
375
+ isLoaded,
376
+ onLoad,
377
+ onExit,
378
+ onToggleFullscreen
379
+ }) => {
365
380
  const { t } = reactI18next.useTranslation("gameDemo");
366
381
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
367
382
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -378,50 +393,73 @@ const GameDemoContent = ({ src, isFullscreen, isLoaded, onLoad, onToggleFullscre
378
393
  children: /* @__PURE__ */ jsxRuntime.jsx("p", { children: t("warning") })
379
394
  }
380
395
  ),
381
- /* @__PURE__ */ jsxRuntime.jsx(
382
- react$1.IconButton,
383
- {
384
- icon: isFullscreen ? /* @__PURE__ */ jsxRuntime.jsx(icons.CloseIcon, { w: 3, h: 3 }) : /* @__PURE__ */ jsxRuntime.jsx(icons.ExternalLinkIcon, { w: 4, h: 4 }),
385
- size: "sm",
386
- variant: "outline",
387
- title: t(isFullscreen ? "action.deactivateFullscreen" : "action.activateFullscreen"),
388
- "aria-label": "Fullscreen mode Toggle",
389
- isRound: true,
390
- disabled: !isLoaded,
391
- position: "absolute",
392
- top: 2,
393
- left: 2,
394
- border: "none",
395
- color: "white",
396
- _hover: { bgColor: "whiteAlpha.400" },
397
- onClick: onToggleFullscreen
398
- }
399
- ),
396
+ /* @__PURE__ */ jsxRuntime.jsxs(react$1.Flex, { position: "absolute", top: 2, left: 2, gap: 2, children: [
397
+ /* @__PURE__ */ jsxRuntime.jsx(
398
+ react$1.IconButton,
399
+ {
400
+ icon: /* @__PURE__ */ jsxRuntime.jsx(icons.CloseIcon, { w: 3, h: 3 }),
401
+ title: t("action.exit"),
402
+ "aria-label": t("action.exit"),
403
+ size: "sm",
404
+ color: "white",
405
+ variant: "ghost",
406
+ disabled: !isLoaded,
407
+ isRound: true,
408
+ onClick: onExit
409
+ }
410
+ ),
411
+ /* @__PURE__ */ jsxRuntime.jsx(
412
+ react$1.IconButton,
413
+ {
414
+ icon: isFullscreen ? /* @__PURE__ */ jsxRuntime.jsx(icons.ViewOffIcon, { w: 3, h: 3 }) : /* @__PURE__ */ jsxRuntime.jsx(icons.ViewIcon, { w: 4, h: 4 }),
415
+ title: t(isFullscreen ? "action.deactivateFullscreen" : "action.activateFullscreen"),
416
+ "aria-label": t(isFullscreen ? "action.deactivateFullscreen" : "action.activateFullscreen"),
417
+ size: "sm",
418
+ color: "white",
419
+ variant: "ghost",
420
+ disabled: !isLoaded,
421
+ isRound: true,
422
+ onClick: onToggleFullscreen
423
+ }
424
+ )
425
+ ] }),
400
426
  /* @__PURE__ */ jsxRuntime.jsx(react$1.AbsoluteCenter, { children: /* @__PURE__ */ jsxRuntime.jsx(react$1.Spinner, { size: "xl", thickness: "0.6rem", display: isLoaded ? "none" : "block", color: "brand.100" }) })
401
427
  ] });
402
428
  };
403
- const GameDemoPreview = ({ image, alt, imageFit = "contain", onPlay }) => {
429
+ const GameDemoPreview = ({ image, alt, href, imageFit = "contain", onPlayDemo }) => {
404
430
  const { t } = reactI18next.useTranslation("gameDemo");
405
- const imageComponent = typeof image === "string" ? /* @__PURE__ */ jsxRuntime.jsx(react$1.Image, { src: image, alt, objectFit: imageFit }) : image;
431
+ const imageComponent = typeof image === "string" ? /* @__PURE__ */ jsxRuntime.jsx(react$1.Image, { src: image, alt, objectFit: imageFit, w: "100%", h: "100%" }) : image;
406
432
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
407
433
  imageComponent,
408
- /* @__PURE__ */ jsxRuntime.jsx(react$1.AbsoluteCenter, { children: /* @__PURE__ */ jsxRuntime.jsx(PulseButton, { label: t("action.playForFree"), onClick: onPlay }) })
434
+ /* @__PURE__ */ jsxRuntime.jsx(react$1.AbsoluteCenter, { children: /* @__PURE__ */ jsxRuntime.jsxs(react$1.Stack, { spacing: 4, children: [
435
+ /* @__PURE__ */ jsxRuntime.jsx(
436
+ LinkButton,
437
+ {
438
+ animation: { type: "pulse", params: { duration: 2, timingFunction: "ease-out", isInfinite: true } },
439
+ ...href ? { label: t("action.playForReal"), href } : { label: t("action.playForFree"), onClick: onPlayDemo }
440
+ }
441
+ ),
442
+ !!href && /* @__PURE__ */ jsxRuntime.jsx(react$1.Button, { variant: "outline", colorScheme: "brand", size: { base: "sm", md: "md" }, onClick: onPlayDemo, children: t("action.playForFree") })
443
+ ] }) })
409
444
  ] });
410
445
  };
411
- const GameDemo = ({ name, src, previewImage, previewImageFit, ...boxProps }) => {
446
+ const GameDemo = ({ name, src, href, previewImage, previewImageFit, ...boxProps }) => {
412
447
  const [isRunning, setIsRunning] = react.useState(false);
413
448
  const [isLoaded, setIsLoaded] = react.useState(false);
414
449
  const { isOpen: isFullscreen, onToggle } = react$1.useDisclosure({ defaultIsOpen: false });
415
- function handlePlay() {
416
- setIsRunning(true);
417
- }
418
- function onLoad() {
450
+ function handleLoad() {
419
451
  setIsLoaded(true);
420
452
  }
453
+ function handleExit() {
454
+ setIsRunning(false);
455
+ }
421
456
  function handleToggleFullscreen() {
422
457
  document.body.style.overflowY = isFullscreen ? "auto" : "hidden";
423
458
  onToggle();
424
459
  }
460
+ function handlePlayDemo() {
461
+ setIsRunning(true);
462
+ }
425
463
  return /* @__PURE__ */ jsxRuntime.jsx(
426
464
  react$1.Box,
427
465
  {
@@ -437,10 +475,20 @@ const GameDemo = ({ name, src, previewImage, previewImageFit, ...boxProps }) =>
437
475
  src,
438
476
  isFullscreen,
439
477
  isLoaded,
440
- onLoad,
478
+ onLoad: handleLoad,
479
+ onExit: handleExit,
441
480
  onToggleFullscreen: handleToggleFullscreen
442
481
  }
443
- ) : /* @__PURE__ */ jsxRuntime.jsx(GameDemoPreview, { image: previewImage, alt: name, imageFit: previewImageFit, onPlay: handlePlay })
482
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
483
+ GameDemoPreview,
484
+ {
485
+ image: previewImage,
486
+ alt: name,
487
+ href,
488
+ imageFit: previewImageFit,
489
+ onPlayDemo: handlePlayDemo
490
+ }
491
+ )
444
492
  }
445
493
  );
446
494
  };
@@ -470,15 +518,15 @@ function getGameInfoItemValue(key, value, currency) {
470
518
  let formattedValue = "";
471
519
  if (typeof value !== "string") {
472
520
  if (key === i18n.GameCharacteristic.Rtp) {
473
- formattedValue = index.formatNumber(value, { percent: "real", precision: 3 });
521
+ formattedValue = index$3.formatNumber(value, { percent: "real", precision: 3 });
474
522
  }
475
523
  if (key === i18n.GameCharacteristic.MinBet || key === i18n.GameCharacteristic.MaxBet || key === i18n.GameCharacteristic.MaxWin) {
476
524
  if (Array.isArray(currency)) {
477
525
  const [primary, ...secondaries] = currency || ["USD"];
478
- const primaryValue = index.formatNumber(value, { currency: primary });
479
- formattedValue = secondaries.length ? `${primaryValue} (${secondaries.map((currency2) => index.getCurrencySymbol(currency2)).join(", ")})` : primaryValue;
526
+ const primaryValue = index$3.formatNumber(value, { currency: primary });
527
+ formattedValue = secondaries.length ? `${primaryValue} (${secondaries.map((currency2) => index$3.getCurrencySymbol(currency2)).join(", ")})` : primaryValue;
480
528
  } else {
481
- formattedValue = index.formatNumber(value, { currency });
529
+ formattedValue = index$3.formatNumber(value, { currency });
482
530
  }
483
531
  }
484
532
  if (key === i18n.GameCharacteristic.Compatibility || key === i18n.GameCharacteristic.BonusFeatures) {
@@ -492,7 +540,7 @@ function getGameInfoItemValue(key, value, currency) {
492
540
  }
493
541
  }
494
542
  if (key === i18n.GameCharacteristic.ReleaseDate) {
495
- formattedValue = index.formatDate({ value, options: { year: "numeric", month: "long" } });
543
+ formattedValue = index$3.formatDate({ value, options: { year: "numeric", month: "long" } });
496
544
  }
497
545
  if (key === i18n.GameCharacteristic.Volatility) {
498
546
  formattedValue = stringifyVolatility(value);
@@ -503,7 +551,7 @@ function getGameInfoItemValue(key, value, currency) {
503
551
  return formattedValue;
504
552
  }
505
553
  const GameInfo = ({ info }) => {
506
- const { metadata } = index$2.useSiteContext();
554
+ const { metadata } = index.useSiteContext();
507
555
  const { currency } = metadata;
508
556
  const { t } = reactI18next.useTranslation("gameInfo");
509
557
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -533,9 +581,9 @@ const GameInfo = ({ info }) => {
533
581
  );
534
582
  };
535
583
  const HowTo = ({ steps, ...boxProps }) => {
536
- const { color, bgColor } = index$1.usePrimaryColors();
584
+ const { bgColor, invertedColor } = index$1.usePrimaryColors();
537
585
  return /* @__PURE__ */ jsxRuntime.jsx(react$1.SimpleGrid, { as: "ol", columns: { base: 1, md: 2, lg: 3 }, gap: 4, p: 0, ...boxProps, children: steps.map(({ title, description, thumbnail }, index2) => /* @__PURE__ */ jsxRuntime.jsxs(react$1.Flex, { as: "li", alignItems: "flex-start", gap: 4, children: [
538
- /* @__PURE__ */ jsxRuntime.jsx(react$1.Circle, { size: 12, bgColor, color, fontSize: "lg", fontWeight: "bold", children: String(index2 + 1) }),
586
+ /* @__PURE__ */ jsxRuntime.jsx(react$1.Circle, { size: 12, bgColor, color: invertedColor, fontSize: "lg", fontWeight: "bold", children: String(index2 + 1) }),
539
587
  /* @__PURE__ */ jsxRuntime.jsxs(react$1.Stack, { flex: 1, children: [
540
588
  /* @__PURE__ */ jsxRuntime.jsx(react$1.Text, { fontSize: "lg", fontWeight: "bold", children: title }),
541
589
  typeof thumbnail === "string" ? /* @__PURE__ */ jsxRuntime.jsx(react$1.Image, { src: thumbnail, alt: title, aspectRatio: "16/9", objectFit: "cover" }) : thumbnail,
@@ -550,7 +598,7 @@ const Content = ({ children }) => {
550
598
  return /* @__PURE__ */ jsxRuntime.jsx(react$1.Box, { as: "section", py: 4, children: /* @__PURE__ */ jsxRuntime.jsx(Container, { children }) });
551
599
  };
552
600
  const Logo = () => {
553
- const { metadata } = index$2.useSiteContext();
601
+ const { metadata } = index.useSiteContext();
554
602
  const { logo } = metadata;
555
603
  return /* @__PURE__ */ jsxRuntime.jsx(react$1.Box, { display: "flex", h: { base: 10, md: 14 }, overflow: "hidden", children: typeof logo === "string" ? /* @__PURE__ */ jsxRuntime.jsx(react$1.Image, { src: logo, alt: "Logo", objectFit: "contain" }) : logo });
556
604
  };
@@ -561,13 +609,13 @@ const Brand$1 = ({ brand }) => {
561
609
  ] });
562
610
  };
563
611
  const Copyright = () => {
564
- const { metadata } = index$2.useSiteContext();
612
+ const { metadata } = index.useSiteContext();
565
613
  const { name: siteName } = metadata;
566
614
  const { t } = reactI18next.useTranslation("footer");
567
- return /* @__PURE__ */ jsxRuntime.jsx(react$1.Text, { as: "small", colorScheme: "gray", display: "flex", align: "center", justifyContent: "center", children: t("copyright", { year: index.getCurrentYear(), siteName }) });
615
+ return /* @__PURE__ */ jsxRuntime.jsx(react$1.Text, { as: "small", colorScheme: "gray", display: "flex", align: "center", justifyContent: "center", children: t("copyright", { year: index$3.getCurrentYear(), siteName }) });
568
616
  };
569
617
  const Disclaimer = () => {
570
- const { metadata } = index$2.useSiteContext();
618
+ const { metadata } = index.useSiteContext();
571
619
  const { name: siteName } = metadata;
572
620
  const { t } = reactI18next.useTranslation("footer");
573
621
  return /* @__PURE__ */ jsxRuntime.jsxs(react$1.Text, { as: "small", colorScheme: "gray", fontSize: "sm", children: [
@@ -608,7 +656,7 @@ const Navigation$1 = ({ menu }) => {
608
656
  };
609
657
  const Footer = () => {
610
658
  var _a, _b, _c;
611
- const { configs } = index$2.useSiteContext();
659
+ const { configs } = index.useSiteContext();
612
660
  const navigation = ((_a = configs == null ? void 0 : configs.footer) == null ? void 0 : _a.navigation) ?? [];
613
661
  const extra = (_b = configs == null ? void 0 : configs.footer) == null ? void 0 : _b.extra;
614
662
  const showDisclaimer = ((_c = configs == null ? void 0 : configs.footer) == null ? void 0 : _c.showDisclaimer) ?? true;
@@ -771,7 +819,7 @@ const Navigation = ({ menu }) => {
771
819
  };
772
820
  const Header = () => {
773
821
  var _a, _b;
774
- const { configs } = index$2.useSiteContext();
822
+ const { configs } = index.useSiteContext();
775
823
  const navigation = ((_a = configs == null ? void 0 : configs.header) == null ? void 0 : _a.navigation) ?? [];
776
824
  const toolbar = (_b = configs == null ? void 0 : configs.header) == null ? void 0 : _b.toolbar;
777
825
  const hasToolbar = !!toolbar;
@@ -818,7 +866,7 @@ const Hero = ({ title, subtitle, content, link, image }) => {
818
866
  /* @__PURE__ */ jsxRuntime.jsx(react$1.Text, { as: "span", display: "block", color: "brand.400", children: subtitle })
819
867
  ] }),
820
868
  /* @__PURE__ */ jsxRuntime.jsx(react$1.Text, { fontSize: { base: "md", lg: "lg" }, color: "gray.500", children: content }),
821
- !!link && /* @__PURE__ */ jsxRuntime.jsx(react$1.Flex, { direction: { base: "column", md: "row" }, children: /* @__PURE__ */ jsxRuntime.jsx(LinkButton, { ...link }) })
869
+ !!link && /* @__PURE__ */ jsxRuntime.jsx(react$1.Flex, { direction: { base: "column", md: "row" }, children: /* @__PURE__ */ jsxRuntime.jsx(LinkButton, { ...link, size: "md", textDecoration: "none" }) })
822
870
  ] }) }),
823
871
  image && /* @__PURE__ */ jsxRuntime.jsx(react$1.Flex, { display: { base: "none", md: "flex" }, flex: 1, children: image })
824
872
  ] }) }) });
@@ -984,8 +1032,8 @@ const Seo = ({ children, siteMetadata, title, description, lang }) => {
984
1032
  const placeholders = react.useMemo(
985
1033
  () => ({
986
1034
  siteName,
987
- currentYear: index.getCurrentYear(),
988
- currentMonth: index.getCurrentMonth()
1035
+ currentYear: index$3.getCurrentYear(),
1036
+ currentMonth: index$3.getCurrentMonth()
989
1037
  }),
990
1038
  [siteName]
991
1039
  );
@@ -1076,6 +1124,7 @@ const StrapiComponent = ({ type, props, imageComponent }) => {
1076
1124
  {
1077
1125
  name: props.name,
1078
1126
  src: props.src,
1127
+ href: props.href,
1079
1128
  previewImage: /* @__PURE__ */ jsxRuntime.jsx(ExternalImage, { image: props.previewImage, alt: props.name, component: imageComponent }),
1080
1129
  mb: 4
1081
1130
  }
@@ -1194,7 +1243,6 @@ exports.LinkButton = LinkButton;
1194
1243
  exports.List = List;
1195
1244
  exports.NotFound = NotFound;
1196
1245
  exports.ProsCons = ProsCons;
1197
- exports.PulseButton = PulseButton;
1198
1246
  exports.Seo = Seo;
1199
1247
  exports.StrapiContentRenderer = StrapiContentRenderer;
1200
1248
  exports.Table = Table;