@anywayseo/tools 1.0.1 → 1.5.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.
- package/dist/components/base/center/index.d.ts +6 -0
- package/dist/components/base/grid/index.d.ts +19 -0
- package/dist/components/base/grid/types.d.ts +3 -0
- package/dist/components/base/grid/utils.d.ts +2 -0
- package/dist/components/base/index.d.ts +3 -0
- package/dist/components/base/link-button/index.d.ts +7 -0
- package/dist/components/bonus-card/content/index.d.ts +7 -0
- package/dist/components/bonus-card/index.d.ts +7 -0
- package/dist/components/bonus-card/title/index.d.ts +7 -0
- package/dist/components/game-card/index.d.ts +7 -0
- package/dist/components/game-info/utils.d.ts +1 -1
- package/dist/components/index.cjs +9 -1
- package/dist/components/index.d.ts +6 -0
- package/dist/components/index.mjs +12 -4
- package/dist/components/layout/container/index.d.ts +3 -0
- package/dist/components/layout/hero/index.d.ts +2 -0
- package/dist/components/list/index.d.ts +13 -0
- package/dist/components/table/index.d.ts +12 -0
- package/dist/components/tabs/index.d.ts +8 -0
- package/dist/i18n/index.cjs +1 -1
- package/dist/i18n/index.mjs +1 -1
- package/dist/i18n/resources/de/index.d.ts +108 -0
- package/dist/i18n/resources/en/index.d.ts +9 -0
- package/dist/i18n/resources/it/index.d.ts +9 -0
- package/dist/index-B-5oUop6.js +47 -0
- package/dist/index-BUx1Bxrs.mjs +48 -0
- package/dist/{index-alye-Zt-.js → index-CB4bJU2N.js} +182 -10
- package/dist/{index-D5QkKj_Z.mjs → index-CD5ZU1Gw.mjs} +194 -22
- package/dist/{index-BtWxmLHW.mjs → index-CJvs4SfG.mjs} +12 -2
- package/dist/{index-DB1dS9cp.js → index-DCIXk-YH.js} +140 -4
- package/dist/{index-Bh5idiRE.mjs → index-DxLcykuT.mjs} +140 -4
- package/dist/{index-JMmaWcmu.js → index-jvxaXXE3.js} +11 -1
- package/dist/index.cjs +15 -3
- package/dist/index.mjs +20 -8
- package/dist/types/components/bonus-card/index.d.ts +9 -0
- package/dist/types/components/common/index.d.ts +3 -0
- package/dist/types/components/game-card/index.d.ts +6 -0
- package/dist/types/{game-info → components/game-info}/index.d.ts +2 -2
- package/dist/types/components/index.d.ts +8 -0
- package/dist/types/components/tabs/index.d.ts +8 -0
- package/dist/types/i18n/index.d.ts +2 -2
- package/dist/types/index.d.ts +4 -7
- package/dist/types/models/bonus/index.d.ts +4 -0
- package/dist/types/models/game/index.d.ts +3 -0
- package/dist/types/models/index.d.ts +5 -0
- package/dist/types/models/link/index.d.ts +4 -0
- package/dist/types/site-metadata/index.d.ts +1 -1
- package/dist/types/theme/index.d.ts +27 -0
- package/dist/utils/index.cjs +5 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.mjs +6 -2
- package/dist/utils/numbers/index.d.ts +1 -0
- package/dist/utils/theme/index.d.ts +3 -0
- package/package.json +3 -1
- /package/dist/types/{faq → components/faq}/index.d.ts +0 -0
- /package/dist/types/{how-to → components/how-to}/index.d.ts +0 -0
- /package/dist/types/{pros-cons → components/pros-cons}/index.d.ts +0 -0
- /package/dist/types/{author → models/author}/index.d.ts +0 -0
- /package/dist/types/{feature → models/feature}/index.d.ts +0 -0
|
@@ -9,9 +9,10 @@ const index = require("./index-D96zh94V.js");
|
|
|
9
9
|
const react = require("react");
|
|
10
10
|
const index$1 = require("./index-IpSV-c71.js");
|
|
11
11
|
const react$2 = require("@emotion/react");
|
|
12
|
-
const i18n = require("./index-
|
|
12
|
+
const i18n = require("./index-DCIXk-YH.js");
|
|
13
13
|
const i18n$1 = require("i18next");
|
|
14
|
-
const index$2 = require("./index-
|
|
14
|
+
const index$2 = require("./index-jvxaXXE3.js");
|
|
15
|
+
require("@ctrl/tinycolor");
|
|
15
16
|
const gatsby = require("gatsby");
|
|
16
17
|
const ONE_LINE_HEIGHT = 24;
|
|
17
18
|
const Bio = ({ content, maxLines = 1 }) => {
|
|
@@ -78,6 +79,81 @@ const Author = ({ author, ...cardProps }) => {
|
|
|
78
79
|
)
|
|
79
80
|
] });
|
|
80
81
|
};
|
|
82
|
+
const Center = ({ children, className }) => {
|
|
83
|
+
return /* @__PURE__ */ jsxRuntime.jsx(react$1.Center, { className, children });
|
|
84
|
+
};
|
|
85
|
+
const LinkButton = ({ label, url, width = "auto" }) => {
|
|
86
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
87
|
+
react$1.Button,
|
|
88
|
+
{
|
|
89
|
+
as: react$1.Link,
|
|
90
|
+
href: url,
|
|
91
|
+
w: width,
|
|
92
|
+
bg: "brand.600",
|
|
93
|
+
textTransform: "uppercase",
|
|
94
|
+
_hover: { textDecoration: "none", bg: "brand.300" },
|
|
95
|
+
_active: { transform: "scale(0.95)" },
|
|
96
|
+
children: label
|
|
97
|
+
}
|
|
98
|
+
);
|
|
99
|
+
};
|
|
100
|
+
const BonusCardContent = ({ content }) => {
|
|
101
|
+
const { t } = reactI18next.useTranslation("author");
|
|
102
|
+
return /* @__PURE__ */ jsxRuntime.jsx(react$1.Popover, { flip: false, matchWidth: false, placement: "bottom", children: ({ isOpen }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
103
|
+
/* @__PURE__ */ jsxRuntime.jsx(react$1.PopoverTrigger, { children: /* @__PURE__ */ jsxRuntime.jsx(react$1.Button, { size: "sm", variant: "link", color: "white", children: isOpen ? t("action.collapse") : t("action.expand") }) }),
|
|
104
|
+
/* @__PURE__ */ jsxRuntime.jsx(react$1.PopoverContent, { w: 60, children: /* @__PURE__ */ jsxRuntime.jsx(react$1.PopoverBody, { children: Array.isArray(content) ? /* @__PURE__ */ jsxRuntime.jsx(react$1.Stack, { children: content.map((paragraph, index2) => /* @__PURE__ */ jsxRuntime.jsx(react$1.Text, { as: "span", children: paragraph }, index2)) }) : /* @__PURE__ */ jsxRuntime.jsx(react$1.Text, { children: content }) }) })
|
|
105
|
+
] }) });
|
|
106
|
+
};
|
|
107
|
+
const BonusCardTitle = ({ content }) => {
|
|
108
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
109
|
+
react$1.Text,
|
|
110
|
+
{
|
|
111
|
+
as: "h3",
|
|
112
|
+
display: "inline-block",
|
|
113
|
+
py: 1,
|
|
114
|
+
px: 2,
|
|
115
|
+
borderRadius: "md",
|
|
116
|
+
bg: "yellow",
|
|
117
|
+
color: "black",
|
|
118
|
+
fontWeight: "bold",
|
|
119
|
+
fontSize: "lg",
|
|
120
|
+
children: content
|
|
121
|
+
}
|
|
122
|
+
);
|
|
123
|
+
};
|
|
124
|
+
const BonusCard = ({ title, subtitle, content, link, image, className }) => {
|
|
125
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
126
|
+
react$1.Card,
|
|
127
|
+
{
|
|
128
|
+
as: "article",
|
|
129
|
+
h: "full",
|
|
130
|
+
bg: "linear-gradient(90deg, #3b1f47, #731d58)",
|
|
131
|
+
overflow: "hidden",
|
|
132
|
+
_before: image ? {
|
|
133
|
+
content: '""',
|
|
134
|
+
position: "absolute",
|
|
135
|
+
top: 0,
|
|
136
|
+
left: 0,
|
|
137
|
+
w: "100%",
|
|
138
|
+
h: "100%",
|
|
139
|
+
bgImage: `url(${image})`,
|
|
140
|
+
bgSize: "cover",
|
|
141
|
+
bgPosition: "center",
|
|
142
|
+
filter: "blur(0.05em) opacity(50%)",
|
|
143
|
+
zIndex: 0
|
|
144
|
+
} : void 0,
|
|
145
|
+
className,
|
|
146
|
+
children: [
|
|
147
|
+
/* @__PURE__ */ jsxRuntime.jsxs(react$1.CardBody, { as: "section", pb: 0, flex: 1, children: [
|
|
148
|
+
/* @__PURE__ */ jsxRuntime.jsx(BonusCardTitle, { content: title }),
|
|
149
|
+
/* @__PURE__ */ jsxRuntime.jsx(react$1.Text, { fontSize: "2xl", fontWeight: "bold", my: 2, children: subtitle }),
|
|
150
|
+
/* @__PURE__ */ jsxRuntime.jsx(BonusCardContent, { content })
|
|
151
|
+
] }),
|
|
152
|
+
/* @__PURE__ */ jsxRuntime.jsx(react$1.CardFooter, { as: "footer", p: 4, children: /* @__PURE__ */ jsxRuntime.jsx(LinkButton, { ...link, width: "full" }) })
|
|
153
|
+
]
|
|
154
|
+
}
|
|
155
|
+
);
|
|
156
|
+
};
|
|
81
157
|
const ContactForm = () => {
|
|
82
158
|
const toast = react$1.useToast();
|
|
83
159
|
const { t } = reactI18next.useTranslation("contactForm");
|
|
@@ -194,6 +270,26 @@ const Features = ({ features, ...boxProps }) => {
|
|
|
194
270
|
/* @__PURE__ */ jsxRuntime.jsx(react$1.CardBody, { as: "section", pt: 0, children: /* @__PURE__ */ jsxRuntime.jsx(react$1.Text, { color: "gray.600", children: description }) })
|
|
195
271
|
] }) }, title)) });
|
|
196
272
|
};
|
|
273
|
+
const GameCard = ({ name, image, link, className }) => {
|
|
274
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
275
|
+
react$1.LinkBox,
|
|
276
|
+
{
|
|
277
|
+
as: "article",
|
|
278
|
+
rounded: "md",
|
|
279
|
+
borderWidth: 1,
|
|
280
|
+
transition: "transform 0.2s ease",
|
|
281
|
+
cursor: link ? "pointer" : "default",
|
|
282
|
+
overflow: "hidden",
|
|
283
|
+
bg: "blackAlpha.400",
|
|
284
|
+
_hover: { transform: "scale(1.1)" },
|
|
285
|
+
className,
|
|
286
|
+
children: [
|
|
287
|
+
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 }),
|
|
288
|
+
/* @__PURE__ */ jsxRuntime.jsx(react$1.Box, { as: "section", rounded: "md", p: 4, children: /* @__PURE__ */ jsxRuntime.jsx(react$1.Text, { as: "span", children: link ? /* @__PURE__ */ jsxRuntime.jsx(react$1.LinkOverlay, { href: link, children: name }) : name }) })
|
|
289
|
+
]
|
|
290
|
+
}
|
|
291
|
+
);
|
|
292
|
+
};
|
|
197
293
|
const GameDemoContent = ({ src, isFullscreen, isLoaded, onLoad, onToggleFullscreen }) => {
|
|
198
294
|
const { t } = reactI18next.useTranslation("gameDemo");
|
|
199
295
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
@@ -329,8 +425,14 @@ function getGameInfoItemValue(key, value, currency) {
|
|
|
329
425
|
if (key === i18n.GameCharacteristic.Rtp) {
|
|
330
426
|
formattedValue = index$2.formatNumber(value, { percent: "real", precision: 3 });
|
|
331
427
|
}
|
|
332
|
-
if (key === i18n.GameCharacteristic.MinBet || key === i18n.GameCharacteristic.MaxBet || key === i18n.GameCharacteristic.MaxWin && typeof value === "number") {
|
|
333
|
-
|
|
428
|
+
if ((key === i18n.GameCharacteristic.MinBet || key === i18n.GameCharacteristic.MaxBet || key === i18n.GameCharacteristic.MaxWin) && typeof value === "number") {
|
|
429
|
+
if (Array.isArray(currency)) {
|
|
430
|
+
const [primary, ...secondaries] = currency || ["USD"];
|
|
431
|
+
const primaryValue = index$2.formatNumber(value, { currency: primary });
|
|
432
|
+
formattedValue = secondaries.length ? `${primaryValue} (${secondaries.map((currency2) => index$2.getCurrencySymbol(currency2)).join(", ")})` : primaryValue;
|
|
433
|
+
} else {
|
|
434
|
+
formattedValue = index$2.formatNumber(value, { currency });
|
|
435
|
+
}
|
|
334
436
|
}
|
|
335
437
|
if (key === i18n.GameCharacteristic.Compatibility || key === i18n.GameCharacteristic.BonusFeatures && typeof value !== "string") {
|
|
336
438
|
formattedValue = stringifyArray(value);
|
|
@@ -389,8 +491,11 @@ const HowTo = ({ steps, ...boxProps }) => {
|
|
|
389
491
|
] })
|
|
390
492
|
] }, index2)) });
|
|
391
493
|
};
|
|
494
|
+
const Container = ({ children }) => {
|
|
495
|
+
return /* @__PURE__ */ jsxRuntime.jsx(react$1.Container, { maxW: "container.xl", children });
|
|
496
|
+
};
|
|
392
497
|
const Content = ({ children }) => {
|
|
393
|
-
return /* @__PURE__ */ jsxRuntime.jsx(react$1.
|
|
498
|
+
return /* @__PURE__ */ jsxRuntime.jsx(react$1.Box, { as: "section", py: 4, children: /* @__PURE__ */ jsxRuntime.jsx(Container, { children }) });
|
|
394
499
|
};
|
|
395
500
|
const Logo = () => {
|
|
396
501
|
const { logoImageData } = index.useSiteMetadataContext();
|
|
@@ -457,7 +562,7 @@ const Footer = () => {
|
|
|
457
562
|
bg: react$1.useColorModeValue("gray.50", "gray.900"),
|
|
458
563
|
color: react$1.useColorModeValue("gray.700", "gray.200"),
|
|
459
564
|
py: 4,
|
|
460
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
565
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { children: [
|
|
461
566
|
/* @__PURE__ */ jsxRuntime.jsx(Navigation$1, {}),
|
|
462
567
|
/* @__PURE__ */ jsxRuntime.jsx(Disclaimer, {}),
|
|
463
568
|
/* @__PURE__ */ jsxRuntime.jsx(Brand$1, { brand: /* @__PURE__ */ jsxRuntime.jsx(Logo, {}) }),
|
|
@@ -601,12 +706,25 @@ const Header = () => {
|
|
|
601
706
|
color: react$1.useColorModeValue("gray.700", "gray.200"),
|
|
602
707
|
boxShadow: "sm",
|
|
603
708
|
zIndex: 100,
|
|
604
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
709
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Container, { children: /* @__PURE__ */ jsxRuntime.jsx(Navbar, { brand: /* @__PURE__ */ jsxRuntime.jsx(Logo, {}) }) })
|
|
605
710
|
}
|
|
606
711
|
);
|
|
607
712
|
};
|
|
608
|
-
const Hero = () => {
|
|
609
|
-
return /* @__PURE__ */ jsxRuntime.jsx("section",
|
|
713
|
+
const Hero = ({ title, subtitle, content, link, image }) => {
|
|
714
|
+
return /* @__PURE__ */ jsxRuntime.jsx(react$1.Box, { as: "section", bg: "gray.900", children: /* @__PURE__ */ jsxRuntime.jsx(Container, { children: /* @__PURE__ */ jsxRuntime.jsxs(react$1.Flex, { direction: { base: "column", md: "row" }, children: [
|
|
715
|
+
/* @__PURE__ */ jsxRuntime.jsx(react$1.Flex, { align: "center", justify: { base: "center", md: "flex-start" }, flex: 1, py: 8, pe: 8, children: /* @__PURE__ */ jsxRuntime.jsxs(react$1.Stack, { spacing: 6, w: "full", maxW: "lg", children: [
|
|
716
|
+
/* @__PURE__ */ jsxRuntime.jsxs(react$1.Heading, { as: "h1", fontSize: { base: "3xl", md: "4xl", lg: "5xl" }, children: [
|
|
717
|
+
/* @__PURE__ */ jsxRuntime.jsxs(react$1.Text, { as: "span", display: "block", children: [
|
|
718
|
+
title,
|
|
719
|
+
" —"
|
|
720
|
+
] }),
|
|
721
|
+
/* @__PURE__ */ jsxRuntime.jsx(react$1.Text, { as: "span", display: "block", color: "brand.400", children: subtitle })
|
|
722
|
+
] }),
|
|
723
|
+
/* @__PURE__ */ jsxRuntime.jsx(react$1.Text, { fontSize: { base: "md", lg: "lg" }, color: "gray.500", children: content }),
|
|
724
|
+
!!link && /* @__PURE__ */ jsxRuntime.jsx(react$1.Flex, { direction: { base: "column", md: "row" }, children: /* @__PURE__ */ jsxRuntime.jsx(LinkButton, { ...link }) })
|
|
725
|
+
] }) }),
|
|
726
|
+
image && /* @__PURE__ */ jsxRuntime.jsx(react$1.Flex, { display: { base: "none", md: "flex" }, flex: 1, children: image })
|
|
727
|
+
] }) }) });
|
|
610
728
|
};
|
|
611
729
|
const Main = ({ children }) => {
|
|
612
730
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -615,7 +733,6 @@ const Main = ({ children }) => {
|
|
|
615
733
|
as: "main",
|
|
616
734
|
direction: "column",
|
|
617
735
|
flexGrow: 1,
|
|
618
|
-
py: 4,
|
|
619
736
|
bg: react$1.useColorModeValue("white", "gray.800"),
|
|
620
737
|
color: react$1.useColorModeValue("gray.700", "gray.200"),
|
|
621
738
|
children
|
|
@@ -674,6 +791,12 @@ const Layout = ({ children }) => {
|
|
|
674
791
|
/* @__PURE__ */ jsxRuntime.jsx(ScrollToTop, {})
|
|
675
792
|
] });
|
|
676
793
|
};
|
|
794
|
+
const List = ({ items, bullet = "—", render, className }) => {
|
|
795
|
+
return /* @__PURE__ */ jsxRuntime.jsx(react$1.List, { as: "ul", pl: 0, ml: 2, mb: 4, className, children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(react$1.ListItem, { as: "li", display: "flex", gap: 1, children: [
|
|
796
|
+
/* @__PURE__ */ jsxRuntime.jsx(react$1.Box, { children: bullet }),
|
|
797
|
+
render ? render(item) : item
|
|
798
|
+
] })) });
|
|
799
|
+
};
|
|
677
800
|
const TitleMap = {
|
|
678
801
|
pros: "advantages",
|
|
679
802
|
cons: "disadvantages"
|
|
@@ -763,14 +886,63 @@ const Seo = ({ children, siteMetadata, title, description, lang }) => {
|
|
|
763
886
|
children
|
|
764
887
|
] });
|
|
765
888
|
};
|
|
889
|
+
const Table = ({
|
|
890
|
+
columnNumber,
|
|
891
|
+
items,
|
|
892
|
+
caption,
|
|
893
|
+
bordered = false,
|
|
894
|
+
striped = true,
|
|
895
|
+
scrollable,
|
|
896
|
+
className
|
|
897
|
+
}) => {
|
|
898
|
+
const headerItems = items.slice(0, columnNumber);
|
|
899
|
+
const bodyItems = items.slice(columnNumber);
|
|
900
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
901
|
+
react$1.TableContainer,
|
|
902
|
+
{
|
|
903
|
+
border: bordered ? void 0 : "none",
|
|
904
|
+
...scrollable ? { maxH: "50vh", overflowY: "auto" } : {},
|
|
905
|
+
className,
|
|
906
|
+
children: [
|
|
907
|
+
/* @__PURE__ */ jsxRuntime.jsxs(react$1.Table, { variant: striped ? "striped" : "simple", children: [
|
|
908
|
+
/* @__PURE__ */ jsxRuntime.jsx(react$1.Thead, { ...scrollable ? { position: "sticky", top: 0, zIndex: 1, bg: "gray.800" } : {}, children: /* @__PURE__ */ jsxRuntime.jsx(react$1.Tr, { children: headerItems.map((item, index2) => /* @__PURE__ */ jsxRuntime.jsx(react$1.Th, { children: item }, index2)) }) }),
|
|
909
|
+
/* @__PURE__ */ jsxRuntime.jsx(react$1.Tbody, { children: Array.from({ length: Math.ceil(bodyItems.length / columnNumber) }, (_, rowIndex) => /* @__PURE__ */ jsxRuntime.jsx(react$1.Tr, { children: Array.from({ length: columnNumber }, (_2, colIndex) => /* @__PURE__ */ jsxRuntime.jsx(react$1.Td, { children: bodyItems[rowIndex * columnNumber + colIndex] || "" }, colIndex)) }, rowIndex)) })
|
|
910
|
+
] }),
|
|
911
|
+
!!caption && /* @__PURE__ */ jsxRuntime.jsx(react$1.TableCaption, { children: caption })
|
|
912
|
+
]
|
|
913
|
+
}
|
|
914
|
+
);
|
|
915
|
+
};
|
|
916
|
+
const Tabs = ({ items, className, render }) => {
|
|
917
|
+
const { tabs, panels } = react.useMemo(() => {
|
|
918
|
+
const tabs2 = [];
|
|
919
|
+
const panels2 = [];
|
|
920
|
+
items.forEach(({ content, ...tab }) => {
|
|
921
|
+
tabs2.push(tab);
|
|
922
|
+
panels2.push(content);
|
|
923
|
+
});
|
|
924
|
+
return { tabs: tabs2, panels: panels2 };
|
|
925
|
+
}, []);
|
|
926
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(react$1.Tabs, { overflow: "hidden", colorScheme: "brand", className, children: [
|
|
927
|
+
/* @__PURE__ */ jsxRuntime.jsx(react$1.TabList, { overflow: "auto hidden", children: tabs.map(({ label, icon }, index2) => /* @__PURE__ */ jsxRuntime.jsx(react$1.Tab, { children: /* @__PURE__ */ jsxRuntime.jsx(react$1.Text, { as: "h3", isTruncated: true, children: icon ? `${icon} ${label}` : label }) }, index2)) }),
|
|
928
|
+
/* @__PURE__ */ jsxRuntime.jsx(react$1.TabPanels, { children: panels.map((panel, index2) => /* @__PURE__ */ jsxRuntime.jsx(react$1.TabPanel, { children: render(panel) }, index2)) })
|
|
929
|
+
] });
|
|
930
|
+
};
|
|
766
931
|
exports.Author = Author;
|
|
932
|
+
exports.BonusCard = BonusCard;
|
|
933
|
+
exports.Center = Center;
|
|
767
934
|
exports.ContactForm = ContactForm;
|
|
768
935
|
exports.ExpertTip = ExpertTip;
|
|
769
936
|
exports.Faq = Faq;
|
|
770
937
|
exports.Features = Features;
|
|
938
|
+
exports.GameCard = GameCard;
|
|
771
939
|
exports.GameDemo = GameDemo;
|
|
772
940
|
exports.GameInfo = GameInfo;
|
|
773
941
|
exports.HowTo = HowTo;
|
|
774
942
|
exports.Layout = Layout;
|
|
943
|
+
exports.LinkButton = LinkButton;
|
|
944
|
+
exports.List = List;
|
|
775
945
|
exports.ProsCons = ProsCons;
|
|
776
946
|
exports.Seo = Seo;
|
|
947
|
+
exports.Table = Table;
|
|
948
|
+
exports.Tabs = Tabs;
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Collapse, Text, Button, Flex, Stack, Card, CardHeader, Heading, CardBody, useToast, useColorModeValue, VStack, FormControl, FormLabel, InputGroup, InputLeftElement, Input, Textarea,
|
|
2
|
+
import { Box, Collapse, Text, Button, Flex, Stack, Card, CardHeader, Heading, CardBody, Center as Center$1, Link, Popover, PopoverTrigger, PopoverContent, PopoverBody, CardFooter, useToast, useColorModeValue, VStack, FormControl, FormLabel, InputGroup, InputLeftElement, Input, Textarea, Accordion, AccordionItem, AccordionButton, AccordionIcon, AccordionPanel, SimpleGrid, LinkBox, Image, LinkOverlay, IconButton, AbsoluteCenter, Spinner, useDisclosure, Divider, Circle, Container as Container$1, Icon, useBreakpointValue, List as List$1, ListItem, 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
4
|
import { EmailIcon, StarIcon, CloseIcon, ExternalLinkIcon, ChevronRightIcon, ChevronDownIcon, HamburgerIcon, ChevronUpIcon, WarningIcon, CheckCircleIcon } from "@chakra-ui/icons";
|
|
5
5
|
import { getImage, GatsbyImage } from "gatsby-plugin-image";
|
|
6
6
|
import "@mdx-js/react";
|
|
7
7
|
import { u as useSiteMetadataContext } from "./index-Bs4zA1wD.mjs";
|
|
8
|
-
import { useRef, useState, useLayoutEffect, Fragment as Fragment$1, useEffect } from "react";
|
|
8
|
+
import { useRef, useState, useLayoutEffect, Fragment as Fragment$1, useEffect, useMemo } from "react";
|
|
9
9
|
import { u as usePrimaryColors } from "./index-xuSxvz5z.mjs";
|
|
10
10
|
import { keyframes } from "@emotion/react";
|
|
11
|
-
import { a as GameCharacteristic } from "./index-
|
|
11
|
+
import { a as GameCharacteristic } from "./index-DxLcykuT.mjs";
|
|
12
12
|
import { t } from "i18next";
|
|
13
|
-
import { b as formatNumber, f as formatDate,
|
|
14
|
-
import
|
|
13
|
+
import { b as formatNumber, c as getCurrencySymbol, f as formatDate, d as getDomain, g as getCurrentYear, a as getCurrentMonth } from "./index-CJvs4SfG.mjs";
|
|
14
|
+
import "@ctrl/tinycolor";
|
|
15
|
+
import { Link as Link$1 } from "gatsby";
|
|
15
16
|
const ONE_LINE_HEIGHT = 24;
|
|
16
17
|
const Bio = ({ content, maxLines = 1 }) => {
|
|
17
18
|
const ref = useRef(null);
|
|
@@ -77,6 +78,81 @@ const Author = ({ author, ...cardProps }) => {
|
|
|
77
78
|
)
|
|
78
79
|
] });
|
|
79
80
|
};
|
|
81
|
+
const Center = ({ children, className }) => {
|
|
82
|
+
return /* @__PURE__ */ jsx(Center$1, { className, children });
|
|
83
|
+
};
|
|
84
|
+
const LinkButton = ({ label, url, width = "auto" }) => {
|
|
85
|
+
return /* @__PURE__ */ jsx(
|
|
86
|
+
Button,
|
|
87
|
+
{
|
|
88
|
+
as: Link,
|
|
89
|
+
href: url,
|
|
90
|
+
w: width,
|
|
91
|
+
bg: "brand.600",
|
|
92
|
+
textTransform: "uppercase",
|
|
93
|
+
_hover: { textDecoration: "none", bg: "brand.300" },
|
|
94
|
+
_active: { transform: "scale(0.95)" },
|
|
95
|
+
children: label
|
|
96
|
+
}
|
|
97
|
+
);
|
|
98
|
+
};
|
|
99
|
+
const BonusCardContent = ({ content }) => {
|
|
100
|
+
const { t: t2 } = useTranslation("author");
|
|
101
|
+
return /* @__PURE__ */ jsx(Popover, { flip: false, matchWidth: false, placement: "bottom", children: ({ isOpen }) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
102
|
+
/* @__PURE__ */ jsx(PopoverTrigger, { children: /* @__PURE__ */ jsx(Button, { size: "sm", variant: "link", color: "white", children: isOpen ? t2("action.collapse") : t2("action.expand") }) }),
|
|
103
|
+
/* @__PURE__ */ jsx(PopoverContent, { w: 60, children: /* @__PURE__ */ jsx(PopoverBody, { children: Array.isArray(content) ? /* @__PURE__ */ jsx(Stack, { children: content.map((paragraph, index) => /* @__PURE__ */ jsx(Text, { as: "span", children: paragraph }, index)) }) : /* @__PURE__ */ jsx(Text, { children: content }) }) })
|
|
104
|
+
] }) });
|
|
105
|
+
};
|
|
106
|
+
const BonusCardTitle = ({ content }) => {
|
|
107
|
+
return /* @__PURE__ */ jsx(
|
|
108
|
+
Text,
|
|
109
|
+
{
|
|
110
|
+
as: "h3",
|
|
111
|
+
display: "inline-block",
|
|
112
|
+
py: 1,
|
|
113
|
+
px: 2,
|
|
114
|
+
borderRadius: "md",
|
|
115
|
+
bg: "yellow",
|
|
116
|
+
color: "black",
|
|
117
|
+
fontWeight: "bold",
|
|
118
|
+
fontSize: "lg",
|
|
119
|
+
children: content
|
|
120
|
+
}
|
|
121
|
+
);
|
|
122
|
+
};
|
|
123
|
+
const BonusCard = ({ title, subtitle, content, link, image, className }) => {
|
|
124
|
+
return /* @__PURE__ */ jsxs(
|
|
125
|
+
Card,
|
|
126
|
+
{
|
|
127
|
+
as: "article",
|
|
128
|
+
h: "full",
|
|
129
|
+
bg: "linear-gradient(90deg, #3b1f47, #731d58)",
|
|
130
|
+
overflow: "hidden",
|
|
131
|
+
_before: image ? {
|
|
132
|
+
content: '""',
|
|
133
|
+
position: "absolute",
|
|
134
|
+
top: 0,
|
|
135
|
+
left: 0,
|
|
136
|
+
w: "100%",
|
|
137
|
+
h: "100%",
|
|
138
|
+
bgImage: `url(${image})`,
|
|
139
|
+
bgSize: "cover",
|
|
140
|
+
bgPosition: "center",
|
|
141
|
+
filter: "blur(0.05em) opacity(50%)",
|
|
142
|
+
zIndex: 0
|
|
143
|
+
} : void 0,
|
|
144
|
+
className,
|
|
145
|
+
children: [
|
|
146
|
+
/* @__PURE__ */ jsxs(CardBody, { as: "section", pb: 0, flex: 1, children: [
|
|
147
|
+
/* @__PURE__ */ jsx(BonusCardTitle, { content: title }),
|
|
148
|
+
/* @__PURE__ */ jsx(Text, { fontSize: "2xl", fontWeight: "bold", my: 2, children: subtitle }),
|
|
149
|
+
/* @__PURE__ */ jsx(BonusCardContent, { content })
|
|
150
|
+
] }),
|
|
151
|
+
/* @__PURE__ */ jsx(CardFooter, { as: "footer", p: 4, children: /* @__PURE__ */ jsx(LinkButton, { ...link, width: "full" }) })
|
|
152
|
+
]
|
|
153
|
+
}
|
|
154
|
+
);
|
|
155
|
+
};
|
|
80
156
|
const ContactForm = () => {
|
|
81
157
|
const toast = useToast();
|
|
82
158
|
const { t: t2 } = useTranslation("contactForm");
|
|
@@ -193,6 +269,26 @@ const Features = ({ features, ...boxProps }) => {
|
|
|
193
269
|
/* @__PURE__ */ jsx(CardBody, { as: "section", pt: 0, children: /* @__PURE__ */ jsx(Text, { color: "gray.600", children: description }) })
|
|
194
270
|
] }) }, title)) });
|
|
195
271
|
};
|
|
272
|
+
const GameCard = ({ name, image, link, className }) => {
|
|
273
|
+
return /* @__PURE__ */ jsxs(
|
|
274
|
+
LinkBox,
|
|
275
|
+
{
|
|
276
|
+
as: "article",
|
|
277
|
+
rounded: "md",
|
|
278
|
+
borderWidth: 1,
|
|
279
|
+
transition: "transform 0.2s ease",
|
|
280
|
+
cursor: link ? "pointer" : "default",
|
|
281
|
+
overflow: "hidden",
|
|
282
|
+
bg: "blackAlpha.400",
|
|
283
|
+
_hover: { transform: "scale(1.1)" },
|
|
284
|
+
className,
|
|
285
|
+
children: [
|
|
286
|
+
typeof image === "string" ? /* @__PURE__ */ jsx(Image, { src: image, alt: name, w: "100%", aspectRatio: "16/9", objectFit: "cover", objectPosition: "center" }) : !!image && /* @__PURE__ */ jsx(Box, { w: "100%", aspectRatio: "16/9", children: image }),
|
|
287
|
+
/* @__PURE__ */ jsx(Box, { as: "section", rounded: "md", p: 4, children: /* @__PURE__ */ jsx(Text, { as: "span", children: link ? /* @__PURE__ */ jsx(LinkOverlay, { href: link, children: name }) : name }) })
|
|
288
|
+
]
|
|
289
|
+
}
|
|
290
|
+
);
|
|
291
|
+
};
|
|
196
292
|
const GameDemoContent = ({ src, isFullscreen, isLoaded, onLoad, onToggleFullscreen }) => {
|
|
197
293
|
const { t: t2 } = useTranslation("gameDemo");
|
|
198
294
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -328,8 +424,14 @@ function getGameInfoItemValue(key, value, currency) {
|
|
|
328
424
|
if (key === GameCharacteristic.Rtp) {
|
|
329
425
|
formattedValue = formatNumber(value, { percent: "real", precision: 3 });
|
|
330
426
|
}
|
|
331
|
-
if (key === GameCharacteristic.MinBet || key === GameCharacteristic.MaxBet || key === GameCharacteristic.MaxWin && typeof value === "number") {
|
|
332
|
-
|
|
427
|
+
if ((key === GameCharacteristic.MinBet || key === GameCharacteristic.MaxBet || key === GameCharacteristic.MaxWin) && typeof value === "number") {
|
|
428
|
+
if (Array.isArray(currency)) {
|
|
429
|
+
const [primary, ...secondaries] = currency || ["USD"];
|
|
430
|
+
const primaryValue = formatNumber(value, { currency: primary });
|
|
431
|
+
formattedValue = secondaries.length ? `${primaryValue} (${secondaries.map((currency2) => getCurrencySymbol(currency2)).join(", ")})` : primaryValue;
|
|
432
|
+
} else {
|
|
433
|
+
formattedValue = formatNumber(value, { currency });
|
|
434
|
+
}
|
|
333
435
|
}
|
|
334
436
|
if (key === GameCharacteristic.Compatibility || key === GameCharacteristic.BonusFeatures && typeof value !== "string") {
|
|
335
437
|
formattedValue = stringifyArray(value);
|
|
@@ -388,8 +490,11 @@ const HowTo = ({ steps, ...boxProps }) => {
|
|
|
388
490
|
] })
|
|
389
491
|
] }, index)) });
|
|
390
492
|
};
|
|
493
|
+
const Container = ({ children }) => {
|
|
494
|
+
return /* @__PURE__ */ jsx(Container$1, { maxW: "container.xl", children });
|
|
495
|
+
};
|
|
391
496
|
const Content = ({ children }) => {
|
|
392
|
-
return /* @__PURE__ */ jsx(
|
|
497
|
+
return /* @__PURE__ */ jsx(Box, { as: "section", py: 4, children: /* @__PURE__ */ jsx(Container, { children }) });
|
|
393
498
|
};
|
|
394
499
|
const Logo = () => {
|
|
395
500
|
const { logoImageData } = useSiteMetadataContext();
|
|
@@ -402,7 +507,7 @@ const Logo = () => {
|
|
|
402
507
|
const Brand$1 = ({ brand }) => {
|
|
403
508
|
return /* @__PURE__ */ jsxs(Box, { position: "relative", my: 2, py: 8, children: [
|
|
404
509
|
/* @__PURE__ */ jsx(Divider, {}),
|
|
405
|
-
/* @__PURE__ */ jsx(AbsoluteCenter, { display: "flex", bgColor: useColorModeValue("gray.50", "gray.900"), children: /* @__PURE__ */ jsx(Box, { as: Link, to: "/", children: brand }) })
|
|
510
|
+
/* @__PURE__ */ jsx(AbsoluteCenter, { display: "flex", bgColor: useColorModeValue("gray.50", "gray.900"), children: /* @__PURE__ */ jsx(Box, { as: Link$1, to: "/", children: brand }) })
|
|
406
511
|
] });
|
|
407
512
|
};
|
|
408
513
|
const Copyright = () => {
|
|
@@ -435,7 +540,7 @@ const Navigation$1 = () => {
|
|
|
435
540
|
children: footerMenuLinks.map(({ url, title }) => /* @__PURE__ */ jsx(
|
|
436
541
|
Text,
|
|
437
542
|
{
|
|
438
|
-
as: Link,
|
|
543
|
+
as: Link$1,
|
|
439
544
|
to: url,
|
|
440
545
|
fontSize: "md",
|
|
441
546
|
fontWeight: "semibold",
|
|
@@ -456,7 +561,7 @@ const Footer = () => {
|
|
|
456
561
|
bg: useColorModeValue("gray.50", "gray.900"),
|
|
457
562
|
color: useColorModeValue("gray.700", "gray.200"),
|
|
458
563
|
py: 4,
|
|
459
|
-
children: /* @__PURE__ */ jsxs(
|
|
564
|
+
children: /* @__PURE__ */ jsxs(Container, { children: [
|
|
460
565
|
/* @__PURE__ */ jsx(Navigation$1, {}),
|
|
461
566
|
/* @__PURE__ */ jsx(Disclaimer, {}),
|
|
462
567
|
/* @__PURE__ */ jsx(Brand$1, { brand: /* @__PURE__ */ jsx(Logo, {}) }),
|
|
@@ -469,7 +574,7 @@ const Brand = ({ brand }) => {
|
|
|
469
574
|
return /* @__PURE__ */ jsx(
|
|
470
575
|
Box,
|
|
471
576
|
{
|
|
472
|
-
as: Link,
|
|
577
|
+
as: Link$1,
|
|
473
578
|
to: "/",
|
|
474
579
|
display: "flex",
|
|
475
580
|
h: { base: "40px", md: "60px" },
|
|
@@ -486,7 +591,7 @@ const DesktopNavItem = ({ title, url, children }) => {
|
|
|
486
591
|
/* @__PURE__ */ jsx(PopoverTrigger, { children: /* @__PURE__ */ jsx(
|
|
487
592
|
Text,
|
|
488
593
|
{
|
|
489
|
-
as: Link,
|
|
594
|
+
as: Link$1,
|
|
490
595
|
to: url,
|
|
491
596
|
p: 2,
|
|
492
597
|
fontSize: "sm",
|
|
@@ -536,7 +641,7 @@ const MobileNavItem = ({ title, children, url }) => {
|
|
|
536
641
|
const { isOpen, onToggle } = useDisclosure();
|
|
537
642
|
return /* @__PURE__ */ jsxs(Stack, { w: "100%", p: 2, children: [
|
|
538
643
|
/* @__PURE__ */ jsxs(Flex, { align: "center", gap: 2, justify: "space-between", children: [
|
|
539
|
-
/* @__PURE__ */ jsx(Text, { as: Link, to: url, isTruncated: true, fontWeight: 600, children: title }),
|
|
644
|
+
/* @__PURE__ */ jsx(Text, { as: Link$1, to: url, isTruncated: true, fontWeight: 600, children: title }),
|
|
540
645
|
!!children && /* @__PURE__ */ jsx(Flex, { as: "button", onClick: onToggle, children: /* @__PURE__ */ jsx(
|
|
541
646
|
Icon,
|
|
542
647
|
{
|
|
@@ -556,7 +661,7 @@ const MobileNavItem = ({ title, children, url }) => {
|
|
|
556
661
|
borderLeft: 1,
|
|
557
662
|
borderStyle: "solid",
|
|
558
663
|
borderColor: useColorModeValue("gray.200", "gray.700"),
|
|
559
|
-
children: !!children && children.map((child) => /* @__PURE__ */ jsx(Flex, { as: "li", children: /* @__PURE__ */ jsx(Text, { as: Link, to: `${url}${child.url}`, py: 2, children: child.title }) }, child.url))
|
|
664
|
+
children: !!children && children.map((child) => /* @__PURE__ */ jsx(Flex, { as: "li", children: /* @__PURE__ */ jsx(Text, { as: Link$1, to: `${url}${child.url}`, py: 2, children: child.title }) }, child.url))
|
|
560
665
|
}
|
|
561
666
|
) })
|
|
562
667
|
] });
|
|
@@ -600,12 +705,25 @@ const Header = () => {
|
|
|
600
705
|
color: useColorModeValue("gray.700", "gray.200"),
|
|
601
706
|
boxShadow: "sm",
|
|
602
707
|
zIndex: 100,
|
|
603
|
-
children: /* @__PURE__ */ jsx(
|
|
708
|
+
children: /* @__PURE__ */ jsx(Container, { children: /* @__PURE__ */ jsx(Navbar, { brand: /* @__PURE__ */ jsx(Logo, {}) }) })
|
|
604
709
|
}
|
|
605
710
|
);
|
|
606
711
|
};
|
|
607
|
-
const Hero = () => {
|
|
608
|
-
return /* @__PURE__ */ jsx("section",
|
|
712
|
+
const Hero = ({ title, subtitle, content, link, image }) => {
|
|
713
|
+
return /* @__PURE__ */ jsx(Box, { as: "section", bg: "gray.900", children: /* @__PURE__ */ jsx(Container, { children: /* @__PURE__ */ jsxs(Flex, { direction: { base: "column", md: "row" }, children: [
|
|
714
|
+
/* @__PURE__ */ jsx(Flex, { align: "center", justify: { base: "center", md: "flex-start" }, flex: 1, py: 8, pe: 8, children: /* @__PURE__ */ jsxs(Stack, { spacing: 6, w: "full", maxW: "lg", children: [
|
|
715
|
+
/* @__PURE__ */ jsxs(Heading, { as: "h1", fontSize: { base: "3xl", md: "4xl", lg: "5xl" }, children: [
|
|
716
|
+
/* @__PURE__ */ jsxs(Text, { as: "span", display: "block", children: [
|
|
717
|
+
title,
|
|
718
|
+
" —"
|
|
719
|
+
] }),
|
|
720
|
+
/* @__PURE__ */ jsx(Text, { as: "span", display: "block", color: "brand.400", children: subtitle })
|
|
721
|
+
] }),
|
|
722
|
+
/* @__PURE__ */ jsx(Text, { fontSize: { base: "md", lg: "lg" }, color: "gray.500", children: content }),
|
|
723
|
+
!!link && /* @__PURE__ */ jsx(Flex, { direction: { base: "column", md: "row" }, children: /* @__PURE__ */ jsx(LinkButton, { ...link }) })
|
|
724
|
+
] }) }),
|
|
725
|
+
image && /* @__PURE__ */ jsx(Flex, { display: { base: "none", md: "flex" }, flex: 1, children: image })
|
|
726
|
+
] }) }) });
|
|
609
727
|
};
|
|
610
728
|
const Main = ({ children }) => {
|
|
611
729
|
return /* @__PURE__ */ jsx(
|
|
@@ -614,7 +732,6 @@ const Main = ({ children }) => {
|
|
|
614
732
|
as: "main",
|
|
615
733
|
direction: "column",
|
|
616
734
|
flexGrow: 1,
|
|
617
|
-
py: 4,
|
|
618
735
|
bg: useColorModeValue("white", "gray.800"),
|
|
619
736
|
color: useColorModeValue("gray.700", "gray.200"),
|
|
620
737
|
children
|
|
@@ -673,6 +790,12 @@ const Layout = ({ children }) => {
|
|
|
673
790
|
/* @__PURE__ */ jsx(ScrollToTop, {})
|
|
674
791
|
] });
|
|
675
792
|
};
|
|
793
|
+
const List = ({ items, bullet = "—", render, className }) => {
|
|
794
|
+
return /* @__PURE__ */ jsx(List$1, { as: "ul", pl: 0, ml: 2, mb: 4, className, children: items.map((item) => /* @__PURE__ */ jsxs(ListItem, { as: "li", display: "flex", gap: 1, children: [
|
|
795
|
+
/* @__PURE__ */ jsx(Box, { children: bullet }),
|
|
796
|
+
render ? render(item) : item
|
|
797
|
+
] })) });
|
|
798
|
+
};
|
|
676
799
|
const TitleMap = {
|
|
677
800
|
pros: "advantages",
|
|
678
801
|
cons: "disadvantages"
|
|
@@ -716,7 +839,7 @@ const ProsConsCard = ({ itemType, items }) => {
|
|
|
716
839
|
p: 2,
|
|
717
840
|
borderBottomRadius: "md",
|
|
718
841
|
bgColor: useColorModeValue("whiteAlpha.800", "blackAlpha.800"),
|
|
719
|
-
children: /* @__PURE__ */ jsx(List, { spacing: 4, p: 0, children: items.map(({ title, description }) => /* @__PURE__ */ jsxs(ListItem, { display: "flex", children: [
|
|
842
|
+
children: /* @__PURE__ */ jsx(List$1, { spacing: 4, p: 0, children: items.map(({ title, description }) => /* @__PURE__ */ jsxs(ListItem, { display: "flex", children: [
|
|
720
843
|
/* @__PURE__ */ jsx(ListIcon, { as: IconMap[itemType], w: 6, h: 6, color: IconColorMap[itemType] }),
|
|
721
844
|
/* @__PURE__ */ jsxs(Text, { fontWeight: "semibold", fontSize: "md", children: [
|
|
722
845
|
title,
|
|
@@ -762,16 +885,65 @@ const Seo = ({ children, siteMetadata, title, description, lang }) => {
|
|
|
762
885
|
children
|
|
763
886
|
] });
|
|
764
887
|
};
|
|
888
|
+
const Table = ({
|
|
889
|
+
columnNumber,
|
|
890
|
+
items,
|
|
891
|
+
caption,
|
|
892
|
+
bordered = false,
|
|
893
|
+
striped = true,
|
|
894
|
+
scrollable,
|
|
895
|
+
className
|
|
896
|
+
}) => {
|
|
897
|
+
const headerItems = items.slice(0, columnNumber);
|
|
898
|
+
const bodyItems = items.slice(columnNumber);
|
|
899
|
+
return /* @__PURE__ */ jsxs(
|
|
900
|
+
TableContainer,
|
|
901
|
+
{
|
|
902
|
+
border: bordered ? void 0 : "none",
|
|
903
|
+
...scrollable ? { maxH: "50vh", overflowY: "auto" } : {},
|
|
904
|
+
className,
|
|
905
|
+
children: [
|
|
906
|
+
/* @__PURE__ */ jsxs(Table$1, { variant: striped ? "striped" : "simple", children: [
|
|
907
|
+
/* @__PURE__ */ jsx(Thead, { ...scrollable ? { position: "sticky", top: 0, zIndex: 1, bg: "gray.800" } : {}, children: /* @__PURE__ */ jsx(Tr, { children: headerItems.map((item, index) => /* @__PURE__ */ jsx(Th, { children: item }, index)) }) }),
|
|
908
|
+
/* @__PURE__ */ jsx(Tbody, { children: Array.from({ length: Math.ceil(bodyItems.length / columnNumber) }, (_, rowIndex) => /* @__PURE__ */ jsx(Tr, { children: Array.from({ length: columnNumber }, (_2, colIndex) => /* @__PURE__ */ jsx(Td, { children: bodyItems[rowIndex * columnNumber + colIndex] || "" }, colIndex)) }, rowIndex)) })
|
|
909
|
+
] }),
|
|
910
|
+
!!caption && /* @__PURE__ */ jsx(TableCaption, { children: caption })
|
|
911
|
+
]
|
|
912
|
+
}
|
|
913
|
+
);
|
|
914
|
+
};
|
|
915
|
+
const Tabs = ({ items, className, render }) => {
|
|
916
|
+
const { tabs, panels } = useMemo(() => {
|
|
917
|
+
const tabs2 = [];
|
|
918
|
+
const panels2 = [];
|
|
919
|
+
items.forEach(({ content, ...tab }) => {
|
|
920
|
+
tabs2.push(tab);
|
|
921
|
+
panels2.push(content);
|
|
922
|
+
});
|
|
923
|
+
return { tabs: tabs2, panels: panels2 };
|
|
924
|
+
}, []);
|
|
925
|
+
return /* @__PURE__ */ jsxs(Tabs$1, { overflow: "hidden", colorScheme: "brand", className, children: [
|
|
926
|
+
/* @__PURE__ */ jsx(TabList, { overflow: "auto hidden", children: tabs.map(({ label, icon }, index) => /* @__PURE__ */ jsx(Tab, { children: /* @__PURE__ */ jsx(Text, { as: "h3", isTruncated: true, children: icon ? `${icon} ${label}` : label }) }, index)) }),
|
|
927
|
+
/* @__PURE__ */ jsx(TabPanels, { children: panels.map((panel, index) => /* @__PURE__ */ jsx(TabPanel, { children: render(panel) }, index)) })
|
|
928
|
+
] });
|
|
929
|
+
};
|
|
765
930
|
export {
|
|
766
931
|
Author as A,
|
|
932
|
+
BonusCard as B,
|
|
767
933
|
ContactForm as C,
|
|
768
934
|
ExpertTip as E,
|
|
769
935
|
Faq as F,
|
|
770
|
-
|
|
936
|
+
GameCard as G,
|
|
771
937
|
HowTo as H,
|
|
772
938
|
Layout as L,
|
|
773
939
|
ProsCons as P,
|
|
774
940
|
Seo as S,
|
|
941
|
+
Table as T,
|
|
775
942
|
Features as a,
|
|
776
|
-
|
|
943
|
+
GameDemo as b,
|
|
944
|
+
GameInfo as c,
|
|
945
|
+
List as d,
|
|
946
|
+
Tabs as e,
|
|
947
|
+
Center as f,
|
|
948
|
+
LinkButton as g
|
|
777
949
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./index-
|
|
1
|
+
import "./index-DxLcykuT.mjs";
|
|
2
2
|
import i18n from "i18next";
|
|
3
3
|
function getCurrentYear() {
|
|
4
4
|
const locale = i18n.language;
|
|
@@ -64,6 +64,15 @@ function parseNumber(value) {
|
|
|
64
64
|
}
|
|
65
65
|
return parsedNumber;
|
|
66
66
|
}
|
|
67
|
+
function getCurrencySymbol(currencyCode) {
|
|
68
|
+
const symbol = 0 .toLocaleString(i18n.language, {
|
|
69
|
+
style: "currency",
|
|
70
|
+
currency: currencyCode,
|
|
71
|
+
minimumFractionDigits: 0,
|
|
72
|
+
maximumFractionDigits: 0
|
|
73
|
+
}).replace(/\d/g, "").trim();
|
|
74
|
+
return symbol;
|
|
75
|
+
}
|
|
67
76
|
const protocolRegex = /^https?:\/\//;
|
|
68
77
|
function getDomain(url) {
|
|
69
78
|
return url.replace(protocolRegex, "");
|
|
@@ -71,7 +80,8 @@ function getDomain(url) {
|
|
|
71
80
|
export {
|
|
72
81
|
getCurrentMonth as a,
|
|
73
82
|
formatNumber as b,
|
|
74
|
-
|
|
83
|
+
getCurrencySymbol as c,
|
|
84
|
+
getDomain as d,
|
|
75
85
|
formatDate as f,
|
|
76
86
|
getCurrentYear as g,
|
|
77
87
|
parseNumber as p,
|