@anywayseo/tools 5.6.0 → 5.7.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 (92) hide show
  1. package/dist/components/action-button/index.d.ts +5 -0
  2. package/dist/components/article-card/index.d.ts +7 -0
  3. package/dist/components/article-card-grid/index.d.ts +7 -0
  4. package/dist/components/article-info-card/index.d.ts +5 -0
  5. package/dist/components/base/article-meta/index.d.ts +7 -0
  6. package/dist/components/base/article-meta/item/index.d.ts +7 -0
  7. package/dist/components/base/copy-text/index.d.ts +6 -0
  8. package/dist/components/base/grid/index.d.ts +2 -4
  9. package/dist/components/base/index.d.ts +3 -0
  10. package/dist/components/base/rating/index.d.ts +10 -0
  11. package/dist/components/bonus-card-grid/index.d.ts +2 -4
  12. package/dist/components/casino-table/index.d.ts +8 -0
  13. package/dist/components/casino-table/row/casino-actions/index.d.ts +8 -0
  14. package/dist/components/casino-table/row/casino-bonus/index.d.ts +8 -0
  15. package/dist/components/casino-table/row/casino-info/index.d.ts +7 -0
  16. package/dist/components/casino-table/row/casino-info/item/index.d.ts +7 -0
  17. package/dist/components/casino-table/row/casino-info/utils.d.ts +2 -0
  18. package/dist/components/casino-table/row/casino-license/index.d.ts +5 -0
  19. package/dist/components/casino-table/row/casino-logo/index.d.ts +9 -0
  20. package/dist/components/casino-table/row/casino-name/index.d.ts +8 -0
  21. package/dist/components/casino-table/row/cell/index.d.ts +7 -0
  22. package/dist/components/casino-table/row/index.d.ts +7 -0
  23. package/dist/components/feature-card-grid/index.d.ts +2 -4
  24. package/dist/components/game-card-grid/index.d.ts +2 -4
  25. package/dist/components/game-demo/content/index.d.ts +1 -1
  26. package/dist/components/game-demo/index.d.ts +2 -2
  27. package/dist/components/game-demo/preview/alert/index.d.ts +3 -0
  28. package/dist/components/game-demo/preview/index.d.ts +2 -1
  29. package/dist/components/index.cjs +12 -3
  30. package/dist/components/index.d.ts +6 -0
  31. package/dist/components/index.mjs +32 -23
  32. package/dist/components/informer/index.d.ts +9 -0
  33. package/dist/components/informer/utils.d.ts +5 -0
  34. package/dist/components/tip/index.d.ts +3 -0
  35. package/dist/hooks/index.cjs +2 -2
  36. package/dist/hooks/index.mjs +2 -2
  37. package/dist/i18n/index.cjs +1 -1
  38. package/dist/i18n/index.mjs +1 -1
  39. package/dist/i18n/resources/bg/index.d.ts +51 -0
  40. package/dist/i18n/resources/da/index.d.ts +51 -0
  41. package/dist/i18n/resources/de/index.d.ts +51 -0
  42. package/dist/i18n/resources/en/index.d.ts +51 -0
  43. package/dist/i18n/resources/fi/index.d.ts +51 -0
  44. package/dist/i18n/resources/fr/index.d.ts +51 -0
  45. package/dist/i18n/resources/it/index.d.ts +51 -0
  46. package/dist/i18n/resources/ka/index.d.ts +51 -0
  47. package/dist/i18n/resources/pt/index.d.ts +51 -0
  48. package/dist/i18n/resources/ru/index.d.ts +51 -0
  49. package/dist/{index-DMR4Ptkt.js → index-B-k9oWE7.js} +606 -10
  50. package/dist/{index-D4zJ5RBA.js → index-BFkFqBM7.js} +5 -4
  51. package/dist/index-BUz6iLeg.mjs +402 -0
  52. package/dist/index-BeJTy4iY.mjs +26 -0
  53. package/dist/index-BfITsKAr.js +25 -0
  54. package/dist/{index-Drz_7u2p.mjs → index-C7z5qqm_.mjs} +21 -23
  55. package/dist/{index-DYS7zQW4.mjs → index-CB0JfZMx.mjs} +1 -1
  56. package/dist/{index-CR5rM7at.js → index-CNyyTj_C.js} +37 -36
  57. package/dist/{index-CWMHJGbL.mjs → index-CVN8I7r9.mjs} +616 -20
  58. package/dist/index-CzAt2Bs2.js +401 -0
  59. package/dist/{index-5J1CqqcW.js → index-D15SAjJc.js} +1 -1
  60. package/dist/{index-BzbpMLDD.mjs → index-DHURrUMW.mjs} +1 -1
  61. package/dist/{index-JUwyHkmj.mjs → index-N0fjwTCB.mjs} +238 -69
  62. package/dist/{index-CyuHme_p.js → index-RL_4tl8T.js} +403 -234
  63. package/dist/{index-HLGPI9-S.mjs → index-ZivV_RbX.mjs} +30 -29
  64. package/dist/{index-WFgDSB1A.js → index-ma-iV7GU.js} +1 -1
  65. package/dist/{index-CkRY_NXp.js → index-qR3kVjjs.js} +20 -22
  66. package/dist/{index-C2T70CMa.mjs → index-s2a55HsU.mjs} +5 -4
  67. package/dist/index.cjs +24 -12
  68. package/dist/index.mjs +53 -41
  69. package/dist/layout/index.cjs +24 -13
  70. package/dist/layout/index.mjs +24 -13
  71. package/dist/providers/index.cjs +2 -2
  72. package/dist/providers/index.mjs +2 -2
  73. package/dist/types/components/article-card/index.d.ts +9 -0
  74. package/dist/types/components/button/index.d.ts +1 -1
  75. package/dist/types/components/casino/index.d.ts +32 -0
  76. package/dist/types/components/casino-info/index.d.ts +12 -0
  77. package/dist/types/components/common/index.d.ts +1 -1
  78. package/dist/types/components/game-info/index.d.ts +4 -8
  79. package/dist/types/components/grid/index.d.ts +4 -0
  80. package/dist/types/components/index.d.ts +4 -0
  81. package/dist/types/components/informer/index.d.ts +5 -0
  82. package/dist/types/components/strapi-component/index.d.ts +1 -1
  83. package/dist/types/content/article/index.d.ts +12 -0
  84. package/dist/types/content/index.d.ts +1 -0
  85. package/dist/types/i18n/index.d.ts +1 -1
  86. package/dist/utils/index.cjs +5 -5
  87. package/dist/utils/index.mjs +7 -7
  88. package/package.json +1 -1
  89. package/dist/index-B1PwYYQt.mjs +0 -24
  90. package/dist/index-B6wz_B9_.js +0 -145
  91. package/dist/index-C-ri0Fgy.js +0 -23
  92. package/dist/index-COv56GyV.mjs +0 -146
@@ -1,20 +1,48 @@
1
1
  import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
- import { Box, Collapse, Text, Button, Flex, Stack, Center as Center$1, SimpleGrid, Card, CardHeader, Heading, CardBody, Popover, PopoverTrigger, Portal, PopoverContent, PopoverBody, CardFooter, Accordion, AccordionItem, AccordionButton, AccordionIcon, AccordionPanel, LinkBox, LinkOverlay, IconButton, AbsoluteCenter, Spinner, useDisclosure, Divider, Circle, List as List$1, ListItem, useToast, useColorModeValue, VStack, FormControl, FormLabel, InputGroup, InputLeftElement, Input, Textarea, ListIcon, TableContainer, Table as Table$1, Thead, Tr, Th, Tbody, Td, TableCaption, Tabs as Tabs$1, TabList, Tab, TabPanels, TabPanel } from "@chakra-ui/react";
2
+ import { useColorModeValue, Box, Text, Flex, Collapse, Button, Stack, Center as Center$1, SimpleGrid, Card, CardBody, CardFooter, CardHeader, Heading, Popover, PopoverTrigger, Portal, PopoverContent, PopoverBody, Accordion, AccordionItem, AccordionButton, AccordionIcon, AccordionPanel, LinkBox, LinkOverlay, IconButton, AbsoluteCenter, Spinner, Alert, AlertIcon, AlertTitle, AlertDescription, useDisclosure, Divider, Circle, List as List$1, ListItem, useToast, VStack, FormControl, FormLabel, InputGroup, InputLeftElement, Input, Textarea, ListIcon, TableContainer, Table as Table$1, Thead, Tr, Th, Tbody, Td, TableCaption, Tabs as Tabs$1, TabList, Tab, TabPanels, TabPanel } from "@chakra-ui/react";
3
3
  import { useTranslation } from "react-i18next";
4
- import "react-medium-image-zoom";
5
- import { I as Image, L as Link, u as usePageContext, a as useSiteContext } from "./index-HLGPI9-S.mjs";
6
4
  import { useMDXComponents } from "@mdx-js/react";
7
- import { useRef, useState, useLayoutEffect, Fragment as Fragment$1, useMemo } from "react";
5
+ import { u as usePageContext, I as Image, L as Link, a as useSiteContext } from "./index-ZivV_RbX.mjs";
8
6
  import "./index-BJRvnR8Q.mjs";
9
- import { a as GameCharacteristic, G as GameVolatility } from "./index-CWMHJGbL.mjs";
10
- import { b as SocialNetworks, L as LinkButton } from "./index-COv56GyV.mjs";
11
- import { H as Heading1, P as Paragraph, a as Heading2, U as Unordered, O as Ordered } from "./index-BEjKnOZA.mjs";
12
- import { f as formatDate, a as getCurrentMonth, g as getCurrentYear } from "./index-B1PwYYQt.mjs";
7
+ import { b as GameCharacteristic, G as GameVolatility } from "./index-CVN8I7r9.mjs";
8
+ import "react-medium-image-zoom";
9
+ import { useRef, useState, useLayoutEffect, Fragment as Fragment$1, useMemo } from "react";
13
10
  import { StarIcon, CloseIcon, ViewOffIcon, ViewIcon, EmailIcon, WarningIcon, CheckCircleIcon } from "@chakra-ui/icons";
14
- import { u as usePrimaryColors } from "./index-DYS7zQW4.mjs";
15
- import { b as getSeededRandomComparator, a as randomComparator, g as getCurrencySymbol, f as formatNumber } from "./index-Drz_7u2p.mjs";
11
+ import { a as Heading2, H as Heading1, P as Paragraph, U as Unordered, O as Ordered } from "./index-BEjKnOZA.mjs";
12
+ import { f as formatDate, b as formatNumber, a as getCurrentMonth, g as getCurrentYear } from "./index-C7z5qqm_.mjs";
13
+ import { d as SocialNetworks, L as LinkButton } from "./index-BUz6iLeg.mjs";
14
+ import { u as usePrimaryColors } from "./index-CB0JfZMx.mjs";
15
+ import { a as getSeededRandomComparator, r as randomComparator, g as getCurrencySymbol } from "./index-BeJTy4iY.mjs";
16
16
  import { t } from "i18next";
17
17
  import Markdown from "react-markdown";
18
+ const ArticleMetaItem = ({ label, value }) => {
19
+ const color = useColorModeValue("gray.600", "gray.400");
20
+ return /* @__PURE__ */ jsxs(Box, { children: [
21
+ /* @__PURE__ */ jsx(Text, { as: "span", color, children: label }),
22
+ value
23
+ ] });
24
+ };
25
+ const ArticleMeta = ({ createdAt, updatedAt, minutesToRead, author, variant = "full" }) => {
26
+ const { currentLocale } = usePageContext();
27
+ const { t: t2 } = useTranslation("article");
28
+ return /* @__PURE__ */ jsxs(Flex, { columnGap: 4, rowGap: 2, wrap: "wrap", children: [
29
+ /* @__PURE__ */ jsx(
30
+ ArticleMetaItem,
31
+ {
32
+ label: variant === "full" ? `📅 ${t2("meta.publicationDate")}` : "📅 ",
33
+ value: formatDate({ value: updatedAt ?? createdAt, locale: currentLocale.code })
34
+ }
35
+ ),
36
+ !!minutesToRead && /* @__PURE__ */ jsx(
37
+ ArticleMetaItem,
38
+ {
39
+ label: variant === "full" ? `⏳ ${t2("meta.readingTime.label")}` : "⏳ ",
40
+ value: t2("meta.readingTime.count", { count: minutesToRead })
41
+ }
42
+ ),
43
+ !!author && /* @__PURE__ */ jsx(ArticleMetaItem, { label: variant === "full" ? `🧑🏻‍💻 ${t2("meta.author")}` : "🧑🏻‍💻 ", value: author.name })
44
+ ] });
45
+ };
18
46
  const ONE_LINE_HEIGHT = 24;
19
47
  const Bio = ({ content, maxLines = 1 }) => {
20
48
  const ref = useRef(null);
@@ -67,7 +95,44 @@ const Center = ({ children, ...boxProps }) => {
67
95
  };
68
96
  const defaultColumns = { base: 1, sm: 2, md: 3, lg: 4, xl: 5 };
69
97
  const Grid = ({ items, columns = defaultColumns, gap, render, getKey, ...boxProps }) => {
70
- return /* @__PURE__ */ jsx(SimpleGrid, { as: "ul", columns, spacing: gap, p: 0, m: 0, listStyleType: "none", ...boxProps, children: items.map((item, index) => /* @__PURE__ */ jsx(Box, { as: "li", children: render(item) }, getKey ? getKey(item) : index)) });
98
+ return /* @__PURE__ */ jsx(SimpleGrid, { as: "ul", columns, spacing: gap, p: 0, m: 0, listStyleType: "none", ...boxProps, children: items.map((item, index) => /* @__PURE__ */ jsx(Box, { as: "li", children: render(item) }, getKey ? getKey(item, index) : index)) });
99
+ };
100
+ const ActionButton = ({ label, href, ...boxProps }) => {
101
+ return /* @__PURE__ */ jsx(Flex, { justifyContent: "center", ...boxProps, children: /* @__PURE__ */ jsx(LinkButton, { label, href, textDecoration: "none" }) });
102
+ };
103
+ const ArticleCard = ({ title, image, meta, url }) => {
104
+ return /* @__PURE__ */ jsxs(Card, { as: Link, to: url, overflow: "hidden", _hover: { transform: "scale(1.02)", textDecoration: "none" }, children: [
105
+ /* @__PURE__ */ jsxs(CardBody, { as: "section", p: 0, children: [
106
+ !!image && /* @__PURE__ */ jsx(Image, { src: image, alt: title, mode: "thumbnail" }),
107
+ /* @__PURE__ */ jsx(Heading2, { size: "md", px: 4, children: title })
108
+ ] }),
109
+ !!meta && /* @__PURE__ */ jsx(CardFooter, { as: "footer", fontSize: "sm", pt: 0, px: 4, children: /* @__PURE__ */ jsx(ArticleMeta, { ...meta, variant: "short" }) })
110
+ ] });
111
+ };
112
+ const ArticleCardGrid = ({
113
+ items,
114
+ columns = { base: 1, md: 2, lg: 3 },
115
+ gap = 4,
116
+ ...boxProps
117
+ }) => {
118
+ return /* @__PURE__ */ jsx(
119
+ Grid,
120
+ {
121
+ items,
122
+ columns,
123
+ gap,
124
+ getKey: (_, index) => index,
125
+ render: (item) => /* @__PURE__ */ jsx(ArticleCard, { ...item }),
126
+ ...boxProps
127
+ }
128
+ );
129
+ };
130
+ const ArticleInfoCard = ({ title, description, meta, ...boxProps }) => {
131
+ return /* @__PURE__ */ jsxs(Card, { as: "article", variant: "filled", ...boxProps, children: [
132
+ /* @__PURE__ */ jsx(CardHeader, { as: "header", pb: 0, children: /* @__PURE__ */ jsx(Heading1, { children: title }) }),
133
+ /* @__PURE__ */ jsx(CardBody, { as: "section", py: 0, children: description }),
134
+ !!meta && /* @__PURE__ */ jsx(CardFooter, { as: "footer", children: /* @__PURE__ */ jsx(ArticleMeta, { ...meta }) })
135
+ ] });
71
136
  };
72
137
  const AuthorCard = ({ author, ...boxProps }) => {
73
138
  const { t: t2 } = useTranslation("author");
@@ -196,7 +261,7 @@ const FeatureCardGrid = ({
196
261
  items,
197
262
  columns,
198
263
  gap,
199
- getKey: ({ title }) => title,
264
+ getKey: (_, index) => index,
200
265
  render: (item) => /* @__PURE__ */ jsx(FeatureCard, { ...item }),
201
266
  ...boxProps
202
267
  }
@@ -306,19 +371,54 @@ const GameDemoContent = ({
306
371
  /* @__PURE__ */ jsx(AbsoluteCenter, { children: /* @__PURE__ */ jsx(Spinner, { size: "xl", thickness: "0.6rem", display: isLoaded ? "none" : "block", color: "brand.100" }) })
307
372
  ] });
308
373
  };
309
- const GameDemoPreview = ({ image, alt, href, imageFit = "contain", onPlayDemo }) => {
374
+ const GameDemoAlert = () => {
310
375
  const { t: t2 } = useTranslation("gameDemo");
311
- return /* @__PURE__ */ jsxs(Fragment, { children: [
312
- /* @__PURE__ */ jsx(Image, { src: image, alt, objectFit: imageFit, w: "100%", h: "100%" }),
313
- /* @__PURE__ */ jsx(AbsoluteCenter, { children: /* @__PURE__ */ jsxs(Stack, { spacing: 4, children: [
314
- /* @__PURE__ */ jsx(
315
- LinkButton,
316
- {
317
- animation: { type: "pulse", params: { duration: 2, timingFunction: "ease-out", isInfinite: true } },
318
- ...href ? { label: t2("action.playForReal"), href } : { label: t2("action.playForFree"), onClick: onPlayDemo }
319
- }
320
- ),
321
- !!href && /* @__PURE__ */ jsx(
376
+ return /* @__PURE__ */ jsxs(
377
+ Alert,
378
+ {
379
+ status: "warning",
380
+ flexDirection: { base: "column", md: "row" },
381
+ justifyContent: { base: "center", md: "flex-start" },
382
+ alignItems: "center",
383
+ rounded: "lg",
384
+ children: [
385
+ /* @__PURE__ */ jsx(AlertIcon, {}),
386
+ /* @__PURE__ */ jsxs(
387
+ Flex,
388
+ {
389
+ direction: { base: "column", md: "row" },
390
+ justifyContent: { base: "center", md: "flex-start" },
391
+ alignItems: { base: "center", md: "baseline" },
392
+ wrap: "wrap",
393
+ textAlign: { base: "center", md: "start" },
394
+ children: [
395
+ /* @__PURE__ */ jsx(AlertTitle, { my: 1, fontSize: { base: "sm", sm: "md", md: "lg" }, lineHeight: "short", children: t2("alert.title") }),
396
+ /* @__PURE__ */ jsx(AlertDescription, { fontSize: { base: "sm", sm: "md", md: "lg" }, lineHeight: "short", children: t2("alert.description") })
397
+ ]
398
+ }
399
+ )
400
+ ]
401
+ }
402
+ );
403
+ };
404
+ const buttonAnimationProps = {
405
+ type: "pulse",
406
+ params: { duration: 2, timingFunction: "ease-out", isInfinite: true }
407
+ };
408
+ const GameDemoPreview = ({ image, alt, src, refLink, imageFit = "contain", onPlayDemo }) => {
409
+ const { t: t2 } = useTranslation("gameDemo");
410
+ function getPrimaryButton() {
411
+ if (refLink) {
412
+ return /* @__PURE__ */ jsx(LinkButton, { animation: buttonAnimationProps, label: t2("action.playForReal"), href: refLink });
413
+ } else if (src) {
414
+ return /* @__PURE__ */ jsx(LinkButton, { animation: buttonAnimationProps, label: t2("action.playForFree"), onClick: onPlayDemo });
415
+ } else {
416
+ return null;
417
+ }
418
+ }
419
+ function getSecondaryButton() {
420
+ if (refLink && src) {
421
+ return /* @__PURE__ */ jsx(
322
422
  Button,
323
423
  {
324
424
  variant: "solid",
@@ -328,11 +428,23 @@ const GameDemoPreview = ({ image, alt, href, imageFit = "contain", onPlayDemo })
328
428
  onClick: onPlayDemo,
329
429
  children: t2("action.playForFree")
330
430
  }
331
- )
332
- ] }) })
431
+ );
432
+ } else {
433
+ return null;
434
+ }
435
+ }
436
+ return /* @__PURE__ */ jsxs(Stack, { children: [
437
+ !src && /* @__PURE__ */ jsx(GameDemoAlert, {}),
438
+ /* @__PURE__ */ jsxs(Box, { position: "relative", children: [
439
+ /* @__PURE__ */ jsx(Image, { src: image, alt, objectFit: imageFit, w: "100%", h: "100%" }),
440
+ /* @__PURE__ */ jsx(AbsoluteCenter, { children: /* @__PURE__ */ jsxs(Stack, { spacing: 4, children: [
441
+ getPrimaryButton(),
442
+ getSecondaryButton()
443
+ ] }) })
444
+ ] })
333
445
  ] });
334
446
  };
335
- const GameDemo = ({ name, src, href, previewImage, previewImageFit, ...boxProps }) => {
447
+ const GameDemo = ({ name, src, refLink, previewImage, previewImageFit, ...boxProps }) => {
336
448
  const [isRunning, setIsRunning] = useState(false);
337
449
  const [isLoaded, setIsLoaded] = useState(false);
338
450
  const { isOpen: isFullscreen, onToggle, onClose } = useDisclosure({ defaultIsOpen: false });
@@ -375,7 +487,8 @@ const GameDemo = ({ name, src, href, previewImage, previewImageFit, ...boxProps
375
487
  {
376
488
  image: previewImage,
377
489
  alt: name,
378
- href,
490
+ src,
491
+ refLink,
379
492
  imageFit: previewImageFit,
380
493
  onPlayDemo: handlePlayDemo
381
494
  }
@@ -482,6 +595,54 @@ const HowTo = ({ steps, ...boxProps }) => {
482
595
  ] })
483
596
  ] }, index)) });
484
597
  };
598
+ function getQuotePseudoElement(color) {
599
+ return {
600
+ content: '"❛❛"',
601
+ position: "absolute",
602
+ top: -8,
603
+ left: -2,
604
+ fontSize: "6rem",
605
+ fontStyle: "italic",
606
+ color
607
+ };
608
+ }
609
+ const PrefixMap = {
610
+ advice: "🚀",
611
+ fact: "💡",
612
+ quote: ""
613
+ };
614
+ const BorderColorMap = {
615
+ advice: "red.400",
616
+ fact: "yellow.400",
617
+ quote: "gray"
618
+ };
619
+ const Informer = ({ type, text, author = null, ...boxProps }) => {
620
+ const { t: t2 } = useTranslation("informer");
621
+ const quotePseudoElementColor = useColorModeValue("blackAlpha.300", "whiteAlpha.300");
622
+ return /* @__PURE__ */ jsxs(
623
+ Card,
624
+ {
625
+ variant: "filled",
626
+ p: 4,
627
+ borderLeft: "4px solid",
628
+ borderLeftColor: BorderColorMap[type],
629
+ gap: 4,
630
+ ...type === "quote" && { _before: getQuotePseudoElement(quotePseudoElementColor) },
631
+ ...boxProps,
632
+ children: [
633
+ /* @__PURE__ */ jsxs(CardBody, { as: "blockquote", p: 0, fontStyle: "italic", children: [
634
+ type !== "quote" && /* @__PURE__ */ jsxs(Text, { as: "span", fontStyle: "normal", fontWeight: "semibold", mr: 2, children: [
635
+ PrefixMap[type],
636
+ t2(type),
637
+ ":"
638
+ ] }),
639
+ text
640
+ ] }),
641
+ !!author && /* @__PURE__ */ jsx(CardFooter, { alignItems: "center", justify: "flex-end", p: 0, children: /* @__PURE__ */ jsx(Author, { author, variant: "short" }) })
642
+ ]
643
+ }
644
+ );
645
+ };
485
646
  const List = ({ items, bullet = "—", render, ...boxProps }) => {
486
647
  return /* @__PURE__ */ jsx(List$1, { pl: 0, ml: 2, ...boxProps, children: items.map((item, index) => /* @__PURE__ */ jsxs(ListItem, { display: "flex", gap: 1, children: [
487
648
  /* @__PURE__ */ jsx(Box, { children: bullet }),
@@ -834,29 +995,7 @@ const Tabs = ({ items, render, ...boxProps }) => {
834
995
  ] });
835
996
  };
836
997
  const Tip = ({ tip, author = null, ...boxProps }) => {
837
- return /* @__PURE__ */ jsxs(
838
- Card,
839
- {
840
- variant: "filled",
841
- p: 4,
842
- borderLeft: "4px solid gray",
843
- gap: 4,
844
- _before: {
845
- content: '"❛❛"',
846
- position: "absolute",
847
- top: -8,
848
- left: -2,
849
- fontSize: "6rem",
850
- fontStyle: "italic",
851
- color: useColorModeValue("blackAlpha.300", "whiteAlpha.300")
852
- },
853
- ...boxProps,
854
- children: [
855
- /* @__PURE__ */ jsx(CardBody, { as: "blockquote", p: 0, fontStyle: "italic", children: tip }),
856
- !!author && /* @__PURE__ */ jsx(CardFooter, { alignItems: "center", justify: "flex-end", p: 0, children: /* @__PURE__ */ jsx(Author, { author, variant: "short" }) })
857
- ]
858
- }
859
- );
998
+ return /* @__PURE__ */ jsx(Informer, { type: "quote", text: tip, author, ...boxProps });
860
999
  };
861
1000
  const ExternalImage = ({ image, component: ImageComponent, alt = "", ...imageProps }) => {
862
1001
  var _a, _b;
@@ -877,7 +1016,10 @@ function extractCurrencies(currencyList) {
877
1016
  return [...new Set(currencyList.items.map(({ code }) => code))];
878
1017
  }
879
1018
  const StrapiComponent = ({ type, props, imageComponent }) => {
1019
+ var _a;
880
1020
  switch (type) {
1021
+ case "STRAPI__COMPONENT_CONTENT_ACTION_BUTTON":
1022
+ return /* @__PURE__ */ jsx(ActionButton, { label: props.label, href: props.url, mb: 4 });
881
1023
  case "STRAPI__COMPONENT_CONTENT_FAQ":
882
1024
  return /* @__PURE__ */ jsx(Faq, { items: props.items, mb: 4 });
883
1025
  case "STRAPI__COMPONENT_CONTENT_FEATURES":
@@ -932,8 +1074,8 @@ const StrapiComponent = ({ type, props, imageComponent }) => {
932
1074
  GameDemo,
933
1075
  {
934
1076
  name: props.name,
935
- src: props.src,
936
- href: props.href,
1077
+ src: props == null ? void 0 : props.src,
1078
+ refLink: ((_a = props == null ? void 0 : props.partner) == null ? void 0 : _a.refLink) ?? (props == null ? void 0 : props.href),
937
1079
  previewImage: /* @__PURE__ */ jsx(ExternalImage, { image: props.previewImage, alt: props.name, component: imageComponent }),
938
1080
  mb: 4
939
1081
  }
@@ -959,6 +1101,27 @@ const StrapiComponent = ({ type, props, imageComponent }) => {
959
1101
  mb: 4
960
1102
  }
961
1103
  );
1104
+ case "STRAPI__COMPONENT_CONTENT_INFORMER":
1105
+ return /* @__PURE__ */ jsx(
1106
+ Informer,
1107
+ {
1108
+ type: props.type,
1109
+ text: props.text,
1110
+ author: props.author ? {
1111
+ ...props.author,
1112
+ avatar: /* @__PURE__ */ jsx(
1113
+ ExternalImage,
1114
+ {
1115
+ component: imageComponent,
1116
+ image: props.author.avatar,
1117
+ alt: props.author.name,
1118
+ style: { borderRadius: "50%" }
1119
+ }
1120
+ )
1121
+ } : null,
1122
+ mb: 4
1123
+ }
1124
+ );
962
1125
  case "STRAPI__COMPONENT_CONTENT_LIST":
963
1126
  return /* @__PURE__ */ jsx(List, { bullet: props.bullet, items: extractItemsFromJson(props.content), mb: 4 });
964
1127
  case "STRAPI__COMPONENT_CONTENT_MEDIA":
@@ -1031,30 +1194,36 @@ const StrapiContentRenderer = ({ content, imageComponent }) => {
1031
1194
  return content.map(({ __typename: type, ...props }, index) => /* @__PURE__ */ jsx(StrapiComponent, { type, props, imageComponent }, index));
1032
1195
  };
1033
1196
  export {
1034
- AuthorCard as A,
1197
+ ActionButton as A,
1035
1198
  BonusCard as B,
1036
1199
  Center as C,
1037
1200
  Faq as F,
1038
1201
  GameCard as G,
1039
1202
  HowTo as H,
1203
+ Informer as I,
1040
1204
  List as L,
1041
1205
  NotFound as N,
1042
1206
  ProsCons as P,
1043
1207
  Seo as S,
1044
1208
  Table as T,
1045
- BonusCardGrid as a,
1046
- FeatureCard as b,
1047
- FeatureCardGrid as c,
1048
- GameCardGrid as d,
1049
- GameDemo as e,
1050
- GameInfo as f,
1051
- StrapiContentRenderer as g,
1052
- Tabs as h,
1053
- Tip as i,
1054
- Author as j,
1055
- Grid as k,
1056
- CookiePolicy as l,
1057
- Contacts as m,
1058
- PrivacyPolicy as n,
1059
- TermsAndConditions as o
1209
+ ArticleCard as a,
1210
+ ArticleCardGrid as b,
1211
+ ArticleInfoCard as c,
1212
+ AuthorCard as d,
1213
+ BonusCardGrid as e,
1214
+ FeatureCard as f,
1215
+ FeatureCardGrid as g,
1216
+ GameCardGrid as h,
1217
+ GameDemo as i,
1218
+ GameInfo as j,
1219
+ StrapiContentRenderer as k,
1220
+ Tabs as l,
1221
+ Tip as m,
1222
+ ArticleMeta as n,
1223
+ Author as o,
1224
+ Grid as p,
1225
+ CookiePolicy as q,
1226
+ Contacts as r,
1227
+ PrivacyPolicy as s,
1228
+ TermsAndConditions as t
1060
1229
  };