@anywayseo/tools 4.1.0 → 4.2.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.
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-BxPYJ5OB.js → index-BrOQF5EQ.js} +138 -89
  22. package/dist/{index-BKg1_9Hw.mjs → index-CaIyg0au.mjs} +132 -83
  23. package/dist/{index-DzEvPZny.mjs → index-Ca_M-II5.mjs} +0 -46
  24. package/dist/index-CkTgVjZS.mjs +12 -0
  25. package/dist/{index-Db-ZIQ0A.mjs → index-DPO0aIC3.mjs} +1 -19
  26. package/dist/index-DVcQxWMZ.js +36 -0
  27. package/dist/{index-CpjGjVVj.js → index-DuQjQMNN.js} +1 -19
  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,74 @@ 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
- const { isOpen: isFullscreen, onToggle } = react$1.useDisclosure({ defaultIsOpen: false });
415
- function handlePlay() {
416
- setIsRunning(true);
417
- }
418
- function onLoad() {
449
+ const { isOpen: isFullscreen, onToggle, onClose } = react$1.useDisclosure({ defaultIsOpen: false });
450
+ function handleLoad() {
419
451
  setIsLoaded(true);
420
452
  }
453
+ function handleExit() {
454
+ onClose();
455
+ setIsRunning(false);
456
+ }
421
457
  function handleToggleFullscreen() {
422
458
  document.body.style.overflowY = isFullscreen ? "auto" : "hidden";
423
459
  onToggle();
424
460
  }
461
+ function handlePlayDemo() {
462
+ setIsRunning(true);
463
+ }
425
464
  return /* @__PURE__ */ jsxRuntime.jsx(
426
465
  react$1.Box,
427
466
  {
@@ -437,10 +476,20 @@ const GameDemo = ({ name, src, previewImage, previewImageFit, ...boxProps }) =>
437
476
  src,
438
477
  isFullscreen,
439
478
  isLoaded,
440
- onLoad,
479
+ onLoad: handleLoad,
480
+ onExit: handleExit,
441
481
  onToggleFullscreen: handleToggleFullscreen
442
482
  }
443
- ) : /* @__PURE__ */ jsxRuntime.jsx(GameDemoPreview, { image: previewImage, alt: name, imageFit: previewImageFit, onPlay: handlePlay })
483
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
484
+ GameDemoPreview,
485
+ {
486
+ image: previewImage,
487
+ alt: name,
488
+ href,
489
+ imageFit: previewImageFit,
490
+ onPlayDemo: handlePlayDemo
491
+ }
492
+ )
444
493
  }
445
494
  );
446
495
  };
@@ -470,15 +519,15 @@ function getGameInfoItemValue(key, value, currency) {
470
519
  let formattedValue = "";
471
520
  if (typeof value !== "string") {
472
521
  if (key === i18n.GameCharacteristic.Rtp) {
473
- formattedValue = index.formatNumber(value, { percent: "real", precision: 3 });
522
+ formattedValue = index$3.formatNumber(value, { percent: "real", precision: 3 });
474
523
  }
475
524
  if (key === i18n.GameCharacteristic.MinBet || key === i18n.GameCharacteristic.MaxBet || key === i18n.GameCharacteristic.MaxWin) {
476
525
  if (Array.isArray(currency)) {
477
526
  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;
527
+ const primaryValue = index$3.formatNumber(value, { currency: primary });
528
+ formattedValue = secondaries.length ? `${primaryValue} (${secondaries.map((currency2) => index$3.getCurrencySymbol(currency2)).join(", ")})` : primaryValue;
480
529
  } else {
481
- formattedValue = index.formatNumber(value, { currency });
530
+ formattedValue = index$3.formatNumber(value, { currency });
482
531
  }
483
532
  }
484
533
  if (key === i18n.GameCharacteristic.Compatibility || key === i18n.GameCharacteristic.BonusFeatures) {
@@ -492,7 +541,7 @@ function getGameInfoItemValue(key, value, currency) {
492
541
  }
493
542
  }
494
543
  if (key === i18n.GameCharacteristic.ReleaseDate) {
495
- formattedValue = index.formatDate({ value, options: { year: "numeric", month: "long" } });
544
+ formattedValue = index$3.formatDate({ value, options: { year: "numeric", month: "long" } });
496
545
  }
497
546
  if (key === i18n.GameCharacteristic.Volatility) {
498
547
  formattedValue = stringifyVolatility(value);
@@ -503,7 +552,7 @@ function getGameInfoItemValue(key, value, currency) {
503
552
  return formattedValue;
504
553
  }
505
554
  const GameInfo = ({ info }) => {
506
- const { metadata } = index$2.useSiteContext();
555
+ const { metadata } = index.useSiteContext();
507
556
  const { currency } = metadata;
508
557
  const { t } = reactI18next.useTranslation("gameInfo");
509
558
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -533,9 +582,9 @@ const GameInfo = ({ info }) => {
533
582
  );
534
583
  };
535
584
  const HowTo = ({ steps, ...boxProps }) => {
536
- const { color, bgColor } = index$1.usePrimaryColors();
585
+ const { bgColor, invertedColor } = index$1.usePrimaryColors();
537
586
  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) }),
587
+ /* @__PURE__ */ jsxRuntime.jsx(react$1.Circle, { size: 12, bgColor, color: invertedColor, fontSize: "lg", fontWeight: "bold", children: String(index2 + 1) }),
539
588
  /* @__PURE__ */ jsxRuntime.jsxs(react$1.Stack, { flex: 1, children: [
540
589
  /* @__PURE__ */ jsxRuntime.jsx(react$1.Text, { fontSize: "lg", fontWeight: "bold", children: title }),
541
590
  typeof thumbnail === "string" ? /* @__PURE__ */ jsxRuntime.jsx(react$1.Image, { src: thumbnail, alt: title, aspectRatio: "16/9", objectFit: "cover" }) : thumbnail,
@@ -550,7 +599,7 @@ const Content = ({ children }) => {
550
599
  return /* @__PURE__ */ jsxRuntime.jsx(react$1.Box, { as: "section", py: 4, children: /* @__PURE__ */ jsxRuntime.jsx(Container, { children }) });
551
600
  };
552
601
  const Logo = () => {
553
- const { metadata } = index$2.useSiteContext();
602
+ const { metadata } = index.useSiteContext();
554
603
  const { logo } = metadata;
555
604
  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
605
  };
@@ -561,13 +610,13 @@ const Brand$1 = ({ brand }) => {
561
610
  ] });
562
611
  };
563
612
  const Copyright = () => {
564
- const { metadata } = index$2.useSiteContext();
613
+ const { metadata } = index.useSiteContext();
565
614
  const { name: siteName } = metadata;
566
615
  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 }) });
616
+ 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
617
  };
569
618
  const Disclaimer = () => {
570
- const { metadata } = index$2.useSiteContext();
619
+ const { metadata } = index.useSiteContext();
571
620
  const { name: siteName } = metadata;
572
621
  const { t } = reactI18next.useTranslation("footer");
573
622
  return /* @__PURE__ */ jsxRuntime.jsxs(react$1.Text, { as: "small", colorScheme: "gray", fontSize: "sm", children: [
@@ -608,7 +657,7 @@ const Navigation$1 = ({ menu }) => {
608
657
  };
609
658
  const Footer = () => {
610
659
  var _a, _b, _c;
611
- const { configs } = index$2.useSiteContext();
660
+ const { configs } = index.useSiteContext();
612
661
  const navigation = ((_a = configs == null ? void 0 : configs.footer) == null ? void 0 : _a.navigation) ?? [];
613
662
  const extra = (_b = configs == null ? void 0 : configs.footer) == null ? void 0 : _b.extra;
614
663
  const showDisclaimer = ((_c = configs == null ? void 0 : configs.footer) == null ? void 0 : _c.showDisclaimer) ?? true;
@@ -771,7 +820,7 @@ const Navigation = ({ menu }) => {
771
820
  };
772
821
  const Header = () => {
773
822
  var _a, _b;
774
- const { configs } = index$2.useSiteContext();
823
+ const { configs } = index.useSiteContext();
775
824
  const navigation = ((_a = configs == null ? void 0 : configs.header) == null ? void 0 : _a.navigation) ?? [];
776
825
  const toolbar = (_b = configs == null ? void 0 : configs.header) == null ? void 0 : _b.toolbar;
777
826
  const hasToolbar = !!toolbar;
@@ -818,7 +867,7 @@ const Hero = ({ title, subtitle, content, link, image }) => {
818
867
  /* @__PURE__ */ jsxRuntime.jsx(react$1.Text, { as: "span", display: "block", color: "brand.400", children: subtitle })
819
868
  ] }),
820
869
  /* @__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 }) })
870
+ !!link && /* @__PURE__ */ jsxRuntime.jsx(react$1.Flex, { direction: { base: "column", md: "row" }, children: /* @__PURE__ */ jsxRuntime.jsx(LinkButton, { ...link, size: "md", textDecoration: "none" }) })
822
871
  ] }) }),
823
872
  image && /* @__PURE__ */ jsxRuntime.jsx(react$1.Flex, { display: { base: "none", md: "flex" }, flex: 1, children: image })
824
873
  ] }) }) });
@@ -984,8 +1033,8 @@ const Seo = ({ children, siteMetadata, title, description, lang }) => {
984
1033
  const placeholders = react.useMemo(
985
1034
  () => ({
986
1035
  siteName,
987
- currentYear: index.getCurrentYear(),
988
- currentMonth: index.getCurrentMonth()
1036
+ currentYear: index$3.getCurrentYear(),
1037
+ currentMonth: index$3.getCurrentMonth()
989
1038
  }),
990
1039
  [siteName]
991
1040
  );
@@ -1076,6 +1125,7 @@ const StrapiComponent = ({ type, props, imageComponent }) => {
1076
1125
  {
1077
1126
  name: props.name,
1078
1127
  src: props.src,
1128
+ href: props.href,
1079
1129
  previewImage: /* @__PURE__ */ jsxRuntime.jsx(ExternalImage, { image: props.previewImage, alt: props.name, component: imageComponent }),
1080
1130
  mb: 4
1081
1131
  }
@@ -1194,7 +1244,6 @@ exports.LinkButton = LinkButton;
1194
1244
  exports.List = List;
1195
1245
  exports.NotFound = NotFound;
1196
1246
  exports.ProsCons = ProsCons;
1197
- exports.PulseButton = PulseButton;
1198
1247
  exports.Seo = Seo;
1199
1248
  exports.StrapiContentRenderer = StrapiContentRenderer;
1200
1249
  exports.Table = Table;