@anywayseo/tools 2.6.0 → 3.0.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.
- package/dist/components/author-card/index.d.ts +7 -0
- package/dist/components/{author → base/author}/index.d.ts +3 -3
- package/dist/components/base/index.d.ts +1 -1
- package/dist/components/index.cjs +4 -3
- package/dist/components/index.d.ts +3 -2
- package/dist/components/index.mjs +10 -9
- package/dist/components/not-found/index.d.ts +3 -0
- package/dist/components/seo/index.d.ts +7 -12
- package/dist/components/seo/types.d.ts +6 -0
- package/dist/components/seo/utils.d.ts +2 -0
- package/dist/components/{expert-tip → tip}/index.d.ts +4 -4
- package/dist/i18n/index.cjs +1 -1
- package/dist/i18n/index.mjs +1 -1
- package/dist/{index-BqUBNm7v.mjs → index-25M8hPOF.mjs} +1 -6
- package/dist/{index-BEqFPNAt.js → index-Biz1dDqA.js} +12 -12
- package/dist/index-BuvY6WUO.mjs +27 -0
- package/dist/{index-D2APUOog.js → index-Cte2-g6s.js} +1 -6
- package/dist/index-D32PZCoe.js +1039 -0
- package/dist/{index-F6_fGeRI.mjs → index-DoBCANwf.mjs} +12 -12
- package/dist/{index-m97PmVsd.js → index-Sod4uKHB.js} +16 -7
- package/dist/{index-Ct1pg92K.mjs → index-VQ0_fg4m.mjs} +116 -98
- package/dist/index.cjs +7 -7
- package/dist/index.mjs +12 -12
- package/dist/providers/index.cjs +1 -1
- package/dist/providers/index.mjs +1 -1
- package/dist/providers/site-provider/index.d.ts +1 -2
- package/dist/types/components/how-to/index.d.ts +2 -2
- package/dist/types/components/image/index.d.ts +4 -0
- package/dist/types/content/author/index.d.ts +5 -4
- package/dist/types/content/index.d.ts +1 -0
- package/dist/types/content/seo/index.d.ts +4 -0
- package/dist/types/site/index.d.ts +8 -14
- package/dist/utils/index.cjs +1 -2
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/index.mjs +1 -2
- package/package.json +1 -1
- package/dist/components/base/expert/index.d.ts +0 -8
- package/dist/index-C-e_0aJJ.mjs +0 -18
- package/dist/index-qgcoV14g.js +0 -1021
- package/dist/utils/url/index.d.ts +0 -1
- /package/dist/components/base/{expert → author}/bio/index.d.ts +0 -0
|
@@ -35,17 +35,17 @@ var GameCharacteristic = /* @__PURE__ */ ((GameCharacteristic2) => {
|
|
|
35
35
|
})(GameCharacteristic || {});
|
|
36
36
|
const pageNotFound$3 = {
|
|
37
37
|
seo: {
|
|
38
|
-
title: "Seite nicht gefunden | {{
|
|
38
|
+
title: "Seite nicht gefunden | {{siteName}}"
|
|
39
39
|
},
|
|
40
40
|
title: "404 — Seite nicht gefunden",
|
|
41
41
|
description: "Entschuldigung 😔, wir konnten nicht finden, wonach Sie gesucht haben.",
|
|
42
42
|
action: "Zur Startseite"
|
|
43
43
|
};
|
|
44
44
|
const footer$3 = {
|
|
45
|
-
copyright: "© {{year}} {{
|
|
45
|
+
copyright: "© {{year}} {{siteName}}. Alle Rechte vorbehalten.",
|
|
46
46
|
disclaimer: {
|
|
47
47
|
title: "Spielen Sie verantwortungsbewusst: ",
|
|
48
|
-
description: "{{
|
|
48
|
+
description: "{{siteName}} ist eine unabhängige Ressource und nicht mit den von uns beworbenen Seiten verbunden. Stellen Sie sicher, dass Sie über alle erforderlichen Zertifikate verfügen und die gesetzlichen Anforderungen erfüllt sind, bevor Sie mit dem Spielen beginnen. Der Hauptzweck von {{siteName}} besteht darin, informative und unterhaltsame Inhalte bereitzustellen. Wenn Sie nach Links zu verwandten Ressourcen suchen, werden Sie zu den entsprechenden Plattformen weitergeleitet."
|
|
49
49
|
}
|
|
50
50
|
};
|
|
51
51
|
const gameDemo$3 = {
|
|
@@ -152,17 +152,17 @@ const dictionary$3 = {
|
|
|
152
152
|
};
|
|
153
153
|
const pageNotFound$2 = {
|
|
154
154
|
seo: {
|
|
155
|
-
title: "Page not found | {{
|
|
155
|
+
title: "Page not found | {{siteName}}"
|
|
156
156
|
},
|
|
157
157
|
title: "404 — Page not found",
|
|
158
158
|
description: "Sorry 😔, we couldn’t find what you were looking for.",
|
|
159
159
|
action: "Go Home"
|
|
160
160
|
};
|
|
161
161
|
const footer$2 = {
|
|
162
|
-
copyright: "© {{year}} {{
|
|
162
|
+
copyright: "© {{year}} {{siteName}}. All rights reserved.",
|
|
163
163
|
disclaimer: {
|
|
164
164
|
title: "Play responsibly: ",
|
|
165
|
-
description: "{{
|
|
165
|
+
description: "{{siteName}} is an independent resource not affiliated with the sites we promote. Make sure you have all the necessary certifications and legal requirements are met before you start playing. The main purpose of {{siteName}} is to provide informative and entertaining content. If you are looking for links to related resources, you will be redirected to the relevant platforms."
|
|
166
166
|
}
|
|
167
167
|
};
|
|
168
168
|
const gameDemo$2 = {
|
|
@@ -269,17 +269,17 @@ const dictionary$2 = {
|
|
|
269
269
|
};
|
|
270
270
|
const pageNotFound$1 = {
|
|
271
271
|
seo: {
|
|
272
|
-
title: "Pagina non trovata | {{
|
|
272
|
+
title: "Pagina non trovata | {{siteName}}"
|
|
273
273
|
},
|
|
274
274
|
title: "404 — Pagina non trovata",
|
|
275
275
|
description: "Spiacenti 😔, non siamo riusciti a trovare quello che cercavi.",
|
|
276
276
|
action: "Ritorna alla pagina principale"
|
|
277
277
|
};
|
|
278
278
|
const footer$1 = {
|
|
279
|
-
copyright: "© {{year}} {{
|
|
279
|
+
copyright: "© {{year}} {{siteName}}. Tutte le cose sono fatte.",
|
|
280
280
|
disclaimer: {
|
|
281
281
|
title: "Gioca responsabilmente: ",
|
|
282
|
-
description: "{{
|
|
282
|
+
description: "{{siteName}} è una risorsa indipendente e non affiliata ai siti che promuoviamo. Prima di iniziare a giocare, assicurati di possedere tutte le certificazioni necessarie e di rispettare i requisiti legali in vigore. L'obiettivo principale di {{siteName}} è offrire contenuti informativi e di intrattenimento. Se cerchi collegamenti a risorse correlate, verrai reindirizzato alle piattaforme pertinenti."
|
|
283
283
|
}
|
|
284
284
|
};
|
|
285
285
|
const gameDemo$1 = {
|
|
@@ -386,17 +386,17 @@ const dictionary$1 = {
|
|
|
386
386
|
};
|
|
387
387
|
const pageNotFound = {
|
|
388
388
|
seo: {
|
|
389
|
-
title: "Страница не найдена | {{
|
|
389
|
+
title: "Страница не найдена | {{siteName}}"
|
|
390
390
|
},
|
|
391
391
|
title: "404 — Страница не найдена",
|
|
392
392
|
description: "Извините 😔, мы не смогли найти то, что вы искали.",
|
|
393
393
|
action: "На главную"
|
|
394
394
|
};
|
|
395
395
|
const footer = {
|
|
396
|
-
copyright: "© {{year}} {{
|
|
396
|
+
copyright: "© {{year}} {{siteName}}. Все права защищены.",
|
|
397
397
|
disclaimer: {
|
|
398
398
|
title: "Играйте ответственно: ",
|
|
399
|
-
description: "{{
|
|
399
|
+
description: "{{siteName}} — независимый ресурс, не связанный с продвигаемыми сайтами. Убедитесь, что у вас есть все необходимые сертификаты и соблюдены юридические требования перед началом игры. Основная цель {{siteName}} — предоставление информационного и развлекательного контента. Если вы ищете ссылки на связанные ресурсы, вас перенаправят на соответствующие платформы."
|
|
400
400
|
}
|
|
401
401
|
};
|
|
402
402
|
const gameDemo = {
|
|
@@ -2,14 +2,23 @@
|
|
|
2
2
|
const jsxRuntime = require("react/jsx-runtime");
|
|
3
3
|
const react$1 = require("@chakra-ui/react");
|
|
4
4
|
const react = require("@mdx-js/react");
|
|
5
|
+
function omitProps(props, keysToOmit) {
|
|
6
|
+
const result = { ...props };
|
|
7
|
+
keysToOmit.forEach((key) => {
|
|
8
|
+
if (key in result) {
|
|
9
|
+
delete result[key];
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
return result;
|
|
13
|
+
}
|
|
5
14
|
const components = {
|
|
6
|
-
h1: (props) => /* @__PURE__ */ jsxRuntime.jsx(react$1.Heading, { as: "h1", size: "xl", mb: 4, ...props }),
|
|
7
|
-
h2: (props) => /* @__PURE__ */ jsxRuntime.jsx(react$1.Heading, { as: "h2", size: "lg", mt: 6, mb: 4, ...props }),
|
|
8
|
-
h3: (props) => /* @__PURE__ */ jsxRuntime.jsx(react$1.Heading, { as: "h3", size: "md", mt: 4, mb: 4, ...props }),
|
|
9
|
-
ol: (props) => /* @__PURE__ */ jsxRuntime.jsx(react$1.OrderedList, { mb: 4, ...props }),
|
|
10
|
-
ul: (props) => /* @__PURE__ */ jsxRuntime.jsx(react$1.UnorderedList, { mb: 4, ...props }),
|
|
11
|
-
p: (props) => /* @__PURE__ */ jsxRuntime.jsx(react$1.Text, { mb: 4, ...props }),
|
|
12
|
-
a: (props) => /* @__PURE__ */ jsxRuntime.jsx(react$1.Link, {
|
|
15
|
+
h1: (props) => /* @__PURE__ */ jsxRuntime.jsx(react$1.Heading, { as: "h1", size: "xl", mb: 4, ...omitProps(props, ["node"]) }),
|
|
16
|
+
h2: (props) => /* @__PURE__ */ jsxRuntime.jsx(react$1.Heading, { as: "h2", size: "lg", mt: 6, mb: 4, ...omitProps(props, ["node"]) }),
|
|
17
|
+
h3: (props) => /* @__PURE__ */ jsxRuntime.jsx(react$1.Heading, { as: "h3", size: "md", mt: 4, mb: 4, ...omitProps(props, ["node"]) }),
|
|
18
|
+
ol: (props) => /* @__PURE__ */ jsxRuntime.jsx(react$1.OrderedList, { mb: 4, ...omitProps(props, ["node"]) }),
|
|
19
|
+
ul: (props) => /* @__PURE__ */ jsxRuntime.jsx(react$1.UnorderedList, { mb: 4, ...omitProps(props, ["node"]) }),
|
|
20
|
+
p: (props) => /* @__PURE__ */ jsxRuntime.jsx(react$1.Text, { mb: 4, ...omitProps(props, ["node"]) }),
|
|
21
|
+
a: (props) => /* @__PURE__ */ jsxRuntime.jsx(react$1.Link, { color: "brand.400", ...omitProps(props, ["node"]) })
|
|
13
22
|
};
|
|
14
23
|
const MdxProvider = ({ children }) => {
|
|
15
24
|
return /* @__PURE__ */ jsxRuntime.jsx(react.MDXProvider, { components, children });
|
|
@@ -1,20 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { jsxs, jsx, Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Collapse, Text, Button, Flex, Stack, Image, Center as Center$1, SimpleGrid, Link, Card, CardHeader, Heading, CardBody, Popover, PopoverTrigger, Portal, PopoverContent, PopoverBody, CardFooter, useToast, useColorModeValue, VStack, FormControl, FormLabel, InputGroup, InputLeftElement, Input, Textarea, Accordion, AccordionItem, AccordionButton, AccordionIcon, AccordionPanel, LinkBox, LinkOverlay, IconButton, AbsoluteCenter, Spinner, useDisclosure, Divider, Circle, Container as Container$1, List as List$1, ListItem, Icon, 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 { A as Animation, b as formatNumber, c as getCurrencySymbol, f as formatDate,
|
|
5
|
-
import { a as GameCharacteristic } from "./index-
|
|
4
|
+
import { A as Animation, b as formatNumber, c as getCurrencySymbol, f as formatDate, g as getCurrentYear, a as getCurrentMonth } from "./index-25M8hPOF.mjs";
|
|
5
|
+
import { a as GameCharacteristic } from "./index-DoBCANwf.mjs";
|
|
6
6
|
import "@ctrl/tinycolor";
|
|
7
|
-
import { useMDXComponents } from "@mdx-js/react";
|
|
8
|
-
import { u as useSiteContext } from "./index-BNb-P8a6.mjs";
|
|
9
7
|
import { useRef, useState, useLayoutEffect, Fragment as Fragment$1, forwardRef, useEffect, useMemo } from "react";
|
|
10
8
|
import { EmailIcon, StarIcon, CloseIcon, ExternalLinkIcon, ChevronRightIcon, ChevronDownIcon, HamburgerIcon, ChevronUpIcon, WarningIcon, CheckCircleIcon } from "@chakra-ui/icons";
|
|
11
9
|
import { u as usePrimaryColors } from "./index-xuSxvz5z.mjs";
|
|
10
|
+
import { useMDXComponents } from "@mdx-js/react";
|
|
11
|
+
import { u as useSiteContext } from "./index-BNb-P8a6.mjs";
|
|
12
12
|
import { t } from "i18next";
|
|
13
13
|
import { Link as Link$1 } from "gatsby";
|
|
14
14
|
import Markdown from "react-markdown";
|
|
15
|
-
const Center = ({ children, ...boxProps }) => {
|
|
16
|
-
return /* @__PURE__ */ jsx(Center$1, { ...boxProps, children });
|
|
17
|
-
};
|
|
18
15
|
const ONE_LINE_HEIGHT = 24;
|
|
19
16
|
const Bio = ({ content, maxLines = 1 }) => {
|
|
20
17
|
const ref = useRef(null);
|
|
@@ -39,19 +36,15 @@ const Bio = ({ content, maxLines = 1 }) => {
|
|
|
39
36
|
showToggle && /* @__PURE__ */ jsx(Button, { size: "sm", variant: "link", colorScheme: "blue", onClick: handleClick, children: isExpanded ? t2("action.collapse") : t2("action.expand") })
|
|
40
37
|
] });
|
|
41
38
|
};
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
const
|
|
45
|
-
const { assets } = useSiteContext();
|
|
46
|
-
const fullName = `${firstName} ${lastName}`;
|
|
47
|
-
const image = (_a = assets == null ? void 0 : assets.images) == null ? void 0 : _a.expert;
|
|
48
|
-
const imageComponent = typeof image === "string" ? /* @__PURE__ */ jsx(Image, { src: image, alt: fullName, rounded: "full" }) : image;
|
|
39
|
+
const Author = ({ author, variant }) => {
|
|
40
|
+
const { name, role, bio, avatar } = author;
|
|
41
|
+
const imageComponent = typeof avatar === "string" ? /* @__PURE__ */ jsx(Image, { src: avatar, alt: name, rounded: "full" }) : avatar;
|
|
49
42
|
if (variant === "short") {
|
|
50
43
|
return /* @__PURE__ */ jsxs(Flex, { as: "article", align: "center", gap: 4, children: [
|
|
51
44
|
!!imageComponent && /* @__PURE__ */ jsx(Box, { w: 12, h: 12, children: imageComponent }),
|
|
52
45
|
/* @__PURE__ */ jsxs(Box, { fontWeight: "semibold", children: [
|
|
53
|
-
/* @__PURE__ */ jsx(Text, { children:
|
|
54
|
-
/* @__PURE__ */ jsx(Text, { color: "gray.500", children:
|
|
46
|
+
/* @__PURE__ */ jsx(Text, { children: name }),
|
|
47
|
+
/* @__PURE__ */ jsx(Text, { color: "gray.500", children: role })
|
|
55
48
|
] })
|
|
56
49
|
] });
|
|
57
50
|
}
|
|
@@ -59,13 +52,17 @@ const Expert = ({ expert, variant }) => {
|
|
|
59
52
|
!!imageComponent && /* @__PURE__ */ jsx(Flex, { grow: 1, maxW: { base: 48, sm: 32 }, children: imageComponent }),
|
|
60
53
|
/* @__PURE__ */ jsx(Flex, { w: "100%", children: /* @__PURE__ */ jsxs(Stack, { children: [
|
|
61
54
|
/* @__PURE__ */ jsxs(Text, { fontSize: "lg", fontWeight: 600, children: [
|
|
62
|
-
|
|
63
|
-
|
|
55
|
+
name,
|
|
56
|
+
", ",
|
|
57
|
+
/* @__PURE__ */ jsx(Text, { as: "span", color: "gray.500", children: role })
|
|
64
58
|
] }),
|
|
65
59
|
/* @__PURE__ */ jsx(Bio, { content: bio })
|
|
66
60
|
] }) })
|
|
67
61
|
] });
|
|
68
62
|
};
|
|
63
|
+
const Center = ({ children, ...boxProps }) => {
|
|
64
|
+
return /* @__PURE__ */ jsx(Center$1, { ...boxProps, children });
|
|
65
|
+
};
|
|
69
66
|
const defaultColumns = { base: 1, sm: 2, md: 3, lg: 4, xl: 5 };
|
|
70
67
|
const Grid = ({ items, columns = defaultColumns, gap, render, getKey, ...boxProps }) => {
|
|
71
68
|
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)) });
|
|
@@ -104,9 +101,9 @@ const PulseButton = ({ label, colorScheme = "light", to, onClick }) => {
|
|
|
104
101
|
}
|
|
105
102
|
);
|
|
106
103
|
};
|
|
107
|
-
const
|
|
104
|
+
const AuthorCard = ({ author, ...boxProps }) => {
|
|
108
105
|
const { t: t2 } = useTranslation("author");
|
|
109
|
-
return /* @__PURE__ */ jsxs(Card, { as: "article", variant: "filled", ...
|
|
106
|
+
return /* @__PURE__ */ jsxs(Card, { as: "article", variant: "filled", ...boxProps, children: [
|
|
110
107
|
/* @__PURE__ */ jsx(CardHeader, { pb: 0, children: /* @__PURE__ */ jsx(Heading, { size: "md", children: t2("title") }) }),
|
|
111
108
|
/* @__PURE__ */ jsx(
|
|
112
109
|
CardBody,
|
|
@@ -115,7 +112,7 @@ const Author = ({ author, ...cardProps }) => {
|
|
|
115
112
|
flexDirection: { base: "column", sm: "row" },
|
|
116
113
|
alignItems: { base: "center", sm: "flex-start" },
|
|
117
114
|
gap: 4,
|
|
118
|
-
children: /* @__PURE__ */ jsx(
|
|
115
|
+
children: /* @__PURE__ */ jsx(Author, { author, variant: "full" })
|
|
119
116
|
}
|
|
120
117
|
)
|
|
121
118
|
] });
|
|
@@ -247,31 +244,6 @@ const ContactForm = ({ ...boxProps }) => {
|
|
|
247
244
|
}
|
|
248
245
|
);
|
|
249
246
|
};
|
|
250
|
-
const ExpertTip = ({ tip, expert, ...boxProps }) => {
|
|
251
|
-
return /* @__PURE__ */ jsxs(
|
|
252
|
-
Card,
|
|
253
|
-
{
|
|
254
|
-
variant: "filled",
|
|
255
|
-
p: 4,
|
|
256
|
-
borderLeft: "4px solid gray",
|
|
257
|
-
gap: 4,
|
|
258
|
-
_before: {
|
|
259
|
-
content: '"❛❛"',
|
|
260
|
-
position: "absolute",
|
|
261
|
-
top: -8,
|
|
262
|
-
left: -2,
|
|
263
|
-
fontSize: "6rem",
|
|
264
|
-
fontStyle: "italic",
|
|
265
|
-
color: useColorModeValue("blackAlpha.300", "whiteAlpha.300")
|
|
266
|
-
},
|
|
267
|
-
...boxProps,
|
|
268
|
-
children: [
|
|
269
|
-
/* @__PURE__ */ jsx(CardBody, { as: "blockquote", p: 0, fontStyle: "italic", children: tip }),
|
|
270
|
-
!!expert && /* @__PURE__ */ jsx(CardFooter, { alignItems: "center", justify: "flex-end", p: 0, children: /* @__PURE__ */ jsx(Expert, { expert, variant: "short" }) })
|
|
271
|
-
]
|
|
272
|
-
}
|
|
273
|
-
);
|
|
274
|
-
};
|
|
275
247
|
const Faq = ({ items, ...boxProps }) => {
|
|
276
248
|
const { bgColor, color } = usePrimaryColors();
|
|
277
249
|
return /* @__PURE__ */ jsx(Accordion, { allowToggle: true, ...boxProps, children: items.map(({ question, answer }) => {
|
|
@@ -437,23 +409,28 @@ function stringifyLanguageArray(languages) {
|
|
|
437
409
|
}
|
|
438
410
|
function getGameInfoItemValue(key, value, currency) {
|
|
439
411
|
let formattedValue = "";
|
|
440
|
-
if (
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
if (
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
412
|
+
if (typeof value !== "string") {
|
|
413
|
+
if (key === GameCharacteristic.Rtp) {
|
|
414
|
+
formattedValue = formatNumber(value, { percent: "real", precision: 3 });
|
|
415
|
+
}
|
|
416
|
+
if (key === GameCharacteristic.MinBet || key === GameCharacteristic.MaxBet || key === GameCharacteristic.MaxWin) {
|
|
417
|
+
if (Array.isArray(currency)) {
|
|
418
|
+
const [primary, ...secondaries] = currency || ["USD"];
|
|
419
|
+
const primaryValue = formatNumber(value, { currency: primary });
|
|
420
|
+
formattedValue = secondaries.length ? `${primaryValue} (${secondaries.map((currency2) => getCurrencySymbol(currency2)).join(", ")})` : primaryValue;
|
|
421
|
+
} else {
|
|
422
|
+
formattedValue = formatNumber(value, { currency });
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
if (key === GameCharacteristic.Compatibility || key === GameCharacteristic.BonusFeatures) {
|
|
426
|
+
formattedValue = stringifyArray(value);
|
|
427
|
+
}
|
|
428
|
+
if (key === GameCharacteristic.Languages) {
|
|
429
|
+
formattedValue = stringifyLanguageArray(value);
|
|
430
|
+
}
|
|
431
|
+
if (typeof value === "boolean") {
|
|
432
|
+
formattedValue = stringifyHasFeature(value);
|
|
450
433
|
}
|
|
451
|
-
}
|
|
452
|
-
if (key === GameCharacteristic.Compatibility || key === GameCharacteristic.BonusFeatures && typeof value !== "string") {
|
|
453
|
-
formattedValue = stringifyArray(value);
|
|
454
|
-
}
|
|
455
|
-
if (key === GameCharacteristic.Languages) {
|
|
456
|
-
formattedValue = stringifyLanguageArray(value);
|
|
457
434
|
}
|
|
458
435
|
if (key === GameCharacteristic.ReleaseDate) {
|
|
459
436
|
formattedValue = formatDate({ value, options: { year: "numeric", month: "long" } });
|
|
@@ -461,9 +438,6 @@ function getGameInfoItemValue(key, value, currency) {
|
|
|
461
438
|
if (key === GameCharacteristic.Volatility) {
|
|
462
439
|
formattedValue = stringifyVolatility(value);
|
|
463
440
|
}
|
|
464
|
-
if (typeof value === "boolean") {
|
|
465
|
-
formattedValue = stringifyHasFeature(value);
|
|
466
|
-
}
|
|
467
441
|
if (!formattedValue) {
|
|
468
442
|
formattedValue = value.toLocaleString();
|
|
469
443
|
}
|
|
@@ -487,6 +461,9 @@ const GameInfo = ({ info }) => {
|
|
|
487
461
|
/* @__PURE__ */ jsx(Divider, { my: 2 }),
|
|
488
462
|
/* @__PURE__ */ jsx(Text, { fontWeight: "semibold", mb: 2, children: t2(`group.${group}`) }),
|
|
489
463
|
Object.entries(items).map(([itemKey, itemValue]) => {
|
|
464
|
+
if (!itemValue) {
|
|
465
|
+
return null;
|
|
466
|
+
}
|
|
490
467
|
const feature = itemKey;
|
|
491
468
|
const value = getGameInfoItemValue(feature, itemValue, currency);
|
|
492
469
|
return /* @__PURE__ */ jsx(GameInfoItem, { title: t2(`feature.${feature}`), value }, itemKey);
|
|
@@ -498,11 +475,11 @@ const GameInfo = ({ info }) => {
|
|
|
498
475
|
};
|
|
499
476
|
const HowTo = ({ steps, ...boxProps }) => {
|
|
500
477
|
const { color, bgColor } = usePrimaryColors();
|
|
501
|
-
return /* @__PURE__ */ jsx(SimpleGrid, { as: "ol", columns: { base: 1, md: 2, lg: 3 }, gap: 4, p: 0, ...boxProps, children: steps.map(({ title, description,
|
|
478
|
+
return /* @__PURE__ */ jsx(SimpleGrid, { as: "ol", columns: { base: 1, md: 2, lg: 3 }, gap: 4, p: 0, ...boxProps, children: steps.map(({ title, description, thumbnail }, index) => /* @__PURE__ */ jsxs(Flex, { as: "li", alignItems: "flex-start", gap: 4, children: [
|
|
502
479
|
/* @__PURE__ */ jsx(Circle, { size: 12, bgColor, color, fontSize: "lg", fontWeight: "bold", children: String(index + 1) }),
|
|
503
480
|
/* @__PURE__ */ jsxs(Stack, { flex: 1, children: [
|
|
504
481
|
/* @__PURE__ */ jsx(Text, { fontSize: "lg", fontWeight: "bold", children: title }),
|
|
505
|
-
typeof
|
|
482
|
+
typeof thumbnail === "string" ? /* @__PURE__ */ jsx(Image, { src: thumbnail, alt: title, aspectRatio: "16/9", objectFit: "cover" }) : thumbnail,
|
|
506
483
|
/* @__PURE__ */ jsx(Text, { children: description })
|
|
507
484
|
] })
|
|
508
485
|
] }, index)) });
|
|
@@ -514,13 +491,9 @@ const Content = ({ children }) => {
|
|
|
514
491
|
return /* @__PURE__ */ jsx(Box, { as: "section", py: 4, children: /* @__PURE__ */ jsx(Container, { children }) });
|
|
515
492
|
};
|
|
516
493
|
const Logo = () => {
|
|
517
|
-
|
|
518
|
-
const {
|
|
519
|
-
|
|
520
|
-
if (!image) {
|
|
521
|
-
return null;
|
|
522
|
-
}
|
|
523
|
-
return /* @__PURE__ */ jsx(Box, { display: "flex", h: { base: 10, md: 14 }, overflow: "hidden", children: typeof image === "string" ? /* @__PURE__ */ jsx(Image, { src: image, alt: "Logo", objectFit: "contain" }) : image });
|
|
494
|
+
const { metadata } = useSiteContext();
|
|
495
|
+
const { logo } = metadata;
|
|
496
|
+
return /* @__PURE__ */ jsx(Box, { display: "flex", h: { base: 10, md: 14 }, overflow: "hidden", children: typeof logo === "string" ? /* @__PURE__ */ jsx(Image, { src: logo, alt: "Logo", objectFit: "contain" }) : logo });
|
|
524
497
|
};
|
|
525
498
|
const Brand$1 = ({ brand }) => {
|
|
526
499
|
return /* @__PURE__ */ jsxs(Box, { position: "relative", my: 2, py: 8, children: [
|
|
@@ -530,17 +503,17 @@ const Brand$1 = ({ brand }) => {
|
|
|
530
503
|
};
|
|
531
504
|
const Copyright = () => {
|
|
532
505
|
const { metadata } = useSiteContext();
|
|
533
|
-
const {
|
|
506
|
+
const { name: siteName } = metadata;
|
|
534
507
|
const { t: t2 } = useTranslation("footer");
|
|
535
|
-
return /* @__PURE__ */ jsx(Text, { as: "small", colorScheme: "gray", display: "flex", align: "center", justifyContent: "center", children: t2("copyright", { year: getCurrentYear(),
|
|
508
|
+
return /* @__PURE__ */ jsx(Text, { as: "small", colorScheme: "gray", display: "flex", align: "center", justifyContent: "center", children: t2("copyright", { year: getCurrentYear(), siteName }) });
|
|
536
509
|
};
|
|
537
510
|
const Disclaimer = () => {
|
|
538
511
|
const { metadata } = useSiteContext();
|
|
539
|
-
const {
|
|
512
|
+
const { name: siteName } = metadata;
|
|
540
513
|
const { t: t2 } = useTranslation("footer");
|
|
541
514
|
return /* @__PURE__ */ jsxs(Text, { as: "small", colorScheme: "gray", fontSize: "sm", children: [
|
|
542
515
|
/* @__PURE__ */ jsx(Text, { as: "span", fontWeight: "bold", color: "red.600", children: t2("disclaimer.title") }),
|
|
543
|
-
t2("disclaimer.description", {
|
|
516
|
+
t2("disclaimer.description", { siteName })
|
|
544
517
|
] });
|
|
545
518
|
};
|
|
546
519
|
const Extra = ({ children }) => {
|
|
@@ -862,6 +835,17 @@ const List = ({ items, bullet = "—", render, ...boxProps }) => {
|
|
|
862
835
|
render ? render(item) : item
|
|
863
836
|
] }, index)) });
|
|
864
837
|
};
|
|
838
|
+
const NotFound = () => {
|
|
839
|
+
const { t: t2 } = useTranslation("pageNotFound");
|
|
840
|
+
return /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
|
|
841
|
+
/* @__PURE__ */ jsx(Heading, { as: "h1", children: t2("title") }),
|
|
842
|
+
/* @__PURE__ */ jsxs(Text, { fontSize: "xl", children: [
|
|
843
|
+
t2("description"),
|
|
844
|
+
" ",
|
|
845
|
+
/* @__PURE__ */ jsx(Button, { as: Link$1, to: "/", variant: "link", colorScheme: "brand", fontSize: "xl", children: t2("action") })
|
|
846
|
+
] })
|
|
847
|
+
] });
|
|
848
|
+
};
|
|
865
849
|
const TitleMap = {
|
|
866
850
|
pros: "advantages",
|
|
867
851
|
cons: "disadvantages"
|
|
@@ -932,24 +916,32 @@ const RichTextRenderer = ({ content }) => {
|
|
|
932
916
|
const components = useMDXComponents();
|
|
933
917
|
return /* @__PURE__ */ jsx(Markdown, { components, children: content });
|
|
934
918
|
};
|
|
919
|
+
function replacePlaceholders(text, placeholders) {
|
|
920
|
+
Object.entries(placeholders).forEach(([placeholder, replacement]) => {
|
|
921
|
+
const regex = new RegExp(`{{${placeholder}}}`, "g");
|
|
922
|
+
text = text.replace(regex, replacement);
|
|
923
|
+
});
|
|
924
|
+
return text;
|
|
925
|
+
}
|
|
935
926
|
const Seo = ({ children, siteMetadata, title, description, lang }) => {
|
|
936
|
-
const {
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
927
|
+
const { name: siteName, lang: defaultLang, seo } = siteMetadata;
|
|
928
|
+
const { title: defaultTitle, description: defaultDescription } = seo;
|
|
929
|
+
const placeholders = useMemo(
|
|
930
|
+
() => ({
|
|
931
|
+
siteName,
|
|
941
932
|
currentYear: getCurrentYear(),
|
|
942
933
|
currentMonth: getCurrentMonth()
|
|
943
|
-
})
|
|
934
|
+
}),
|
|
935
|
+
[siteName]
|
|
936
|
+
);
|
|
937
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
938
|
+
/* @__PURE__ */ jsx("html", { lang: lang ?? defaultLang }),
|
|
939
|
+
/* @__PURE__ */ jsx("title", { children: title ? typeof title === "string" ? replacePlaceholders(title, placeholders) : title(placeholders) : defaultTitle }),
|
|
944
940
|
/* @__PURE__ */ jsx(
|
|
945
941
|
"meta",
|
|
946
942
|
{
|
|
947
943
|
name: "description",
|
|
948
|
-
content: description ? typeof description === "string" ? description : description(
|
|
949
|
-
domain: getDomain(siteUrl),
|
|
950
|
-
currentYear: getCurrentYear(),
|
|
951
|
-
currentMonth: getCurrentMonth()
|
|
952
|
-
}) : defaultDescription
|
|
944
|
+
content: description ? typeof description === "string" ? replacePlaceholders(description, placeholders) : description(placeholders) : defaultDescription
|
|
953
945
|
}
|
|
954
946
|
),
|
|
955
947
|
children
|
|
@@ -995,15 +987,40 @@ const Tabs = ({ items, render, ...boxProps }) => {
|
|
|
995
987
|
/* @__PURE__ */ jsx(TabPanels, { children: panels.map((panel, index) => /* @__PURE__ */ jsx(TabPanel, { children: render ? render(panel) : panel }, index)) })
|
|
996
988
|
] });
|
|
997
989
|
};
|
|
990
|
+
const Tip = ({ tip, author = null, ...boxProps }) => {
|
|
991
|
+
return /* @__PURE__ */ jsxs(
|
|
992
|
+
Card,
|
|
993
|
+
{
|
|
994
|
+
variant: "filled",
|
|
995
|
+
p: 4,
|
|
996
|
+
borderLeft: "4px solid gray",
|
|
997
|
+
gap: 4,
|
|
998
|
+
_before: {
|
|
999
|
+
content: '"❛❛"',
|
|
1000
|
+
position: "absolute",
|
|
1001
|
+
top: -8,
|
|
1002
|
+
left: -2,
|
|
1003
|
+
fontSize: "6rem",
|
|
1004
|
+
fontStyle: "italic",
|
|
1005
|
+
color: useColorModeValue("blackAlpha.300", "whiteAlpha.300")
|
|
1006
|
+
},
|
|
1007
|
+
...boxProps,
|
|
1008
|
+
children: [
|
|
1009
|
+
/* @__PURE__ */ jsx(CardBody, { as: "blockquote", p: 0, fontStyle: "italic", children: tip }),
|
|
1010
|
+
!!author && /* @__PURE__ */ jsx(CardFooter, { alignItems: "center", justify: "flex-end", p: 0, children: /* @__PURE__ */ jsx(Author, { author, variant: "short" }) })
|
|
1011
|
+
]
|
|
1012
|
+
}
|
|
1013
|
+
);
|
|
1014
|
+
};
|
|
998
1015
|
export {
|
|
999
|
-
|
|
1016
|
+
AuthorCard as A,
|
|
1000
1017
|
BonusCard as B,
|
|
1001
1018
|
ContactForm as C,
|
|
1002
|
-
ExpertTip as E,
|
|
1003
1019
|
Faq as F,
|
|
1004
1020
|
GameCard as G,
|
|
1005
1021
|
HowTo as H,
|
|
1006
1022
|
Layout as L,
|
|
1023
|
+
NotFound as N,
|
|
1007
1024
|
ProsCons as P,
|
|
1008
1025
|
RichTextRenderer as R,
|
|
1009
1026
|
Seo as S,
|
|
@@ -1014,9 +1031,10 @@ export {
|
|
|
1014
1031
|
GameInfo as d,
|
|
1015
1032
|
List as e,
|
|
1016
1033
|
Tabs as f,
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1034
|
+
Tip as g,
|
|
1035
|
+
Author as h,
|
|
1036
|
+
Center as i,
|
|
1037
|
+
Grid as j,
|
|
1038
|
+
LinkButton as k,
|
|
1039
|
+
PulseButton as l
|
|
1022
1040
|
};
|
package/dist/index.cjs
CHANGED
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const index = require("./index-
|
|
3
|
+
const index = require("./index-D32PZCoe.js");
|
|
4
4
|
const index$1 = require("./index-IpSV-c71.js");
|
|
5
|
-
const i18n$1 = require("./index-
|
|
6
|
-
const index$2 = require("./index-
|
|
5
|
+
const i18n$1 = require("./index-Biz1dDqA.js");
|
|
6
|
+
const index$2 = require("./index-Sod4uKHB.js");
|
|
7
7
|
const index$3 = require("./index-BhsXlbd8.js");
|
|
8
|
-
const index$4 = require("./index-
|
|
8
|
+
const index$4 = require("./index-Cte2-g6s.js");
|
|
9
9
|
const index$5 = require("./index-B-5oUop6.js");
|
|
10
10
|
const i18n = require("i18next");
|
|
11
11
|
exports.Author = index.Author;
|
|
12
|
+
exports.AuthorCard = index.AuthorCard;
|
|
12
13
|
exports.BonusCard = index.BonusCard;
|
|
13
14
|
exports.Center = index.Center;
|
|
14
15
|
exports.ContactForm = index.ContactForm;
|
|
15
|
-
exports.Expert = index.Expert;
|
|
16
|
-
exports.ExpertTip = index.ExpertTip;
|
|
17
16
|
exports.Faq = index.Faq;
|
|
18
17
|
exports.FeatureCard = index.FeatureCard;
|
|
19
18
|
exports.Features = index.Features;
|
|
@@ -25,12 +24,14 @@ exports.HowTo = index.HowTo;
|
|
|
25
24
|
exports.Layout = index.Layout;
|
|
26
25
|
exports.LinkButton = index.LinkButton;
|
|
27
26
|
exports.List = index.List;
|
|
27
|
+
exports.NotFound = index.NotFound;
|
|
28
28
|
exports.ProsCons = index.ProsCons;
|
|
29
29
|
exports.PulseButton = index.PulseButton;
|
|
30
30
|
exports.RichTextRenderer = index.RichTextRenderer;
|
|
31
31
|
exports.Seo = index.Seo;
|
|
32
32
|
exports.Table = index.Table;
|
|
33
33
|
exports.Tabs = index.Tabs;
|
|
34
|
+
exports.Tip = index.Tip;
|
|
34
35
|
exports.usePrimaryColors = index$1.usePrimaryColors;
|
|
35
36
|
exports.GameCharacteristic = i18n$1.GameCharacteristic;
|
|
36
37
|
exports.GameVolatility = i18n$1.GameVolatility;
|
|
@@ -44,7 +45,6 @@ exports.formatNumber = index$4.formatNumber;
|
|
|
44
45
|
exports.getCurrencySymbol = index$4.getCurrencySymbol;
|
|
45
46
|
exports.getCurrentMonth = index$4.getCurrentMonth;
|
|
46
47
|
exports.getCurrentYear = index$4.getCurrentYear;
|
|
47
|
-
exports.getDomain = index$4.getDomain;
|
|
48
48
|
exports.parseNumber = index$4.parseNumber;
|
|
49
49
|
exports.round = index$4.round;
|
|
50
50
|
exports.toFixedTwo = index$4.toFixedTwo;
|
package/dist/index.mjs
CHANGED
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
import { A, B,
|
|
1
|
+
import { h, A, B, i, C, F, a, b, G, c, d, j, H, L, k, e, N, P, l, R, S, T, f, g } from "./index-VQ0_fg4m.mjs";
|
|
2
2
|
import { u } from "./index-xuSxvz5z.mjs";
|
|
3
|
-
import { a as a2, G as G2, r } from "./index-
|
|
4
|
-
import { M } from "./index-
|
|
3
|
+
import { a as a2, G as G2, r } from "./index-DoBCANwf.mjs";
|
|
4
|
+
import { M } from "./index-BuvY6WUO.mjs";
|
|
5
5
|
import { S as S2, u as u2 } from "./index-BNb-P8a6.mjs";
|
|
6
|
-
import { A as A2, f as f2, b as b2, c as c2, a as a3, g as g2,
|
|
6
|
+
import { A as A2, f as f2, b as b2, c as c2, a as a3, g as g2, p, r as r2, t } from "./index-25M8hPOF.mjs";
|
|
7
7
|
import { e as e2, g as g3 } from "./index-BUx1Bxrs.mjs";
|
|
8
8
|
import { default as default2 } from "i18next";
|
|
9
9
|
export {
|
|
10
10
|
A2 as Animation,
|
|
11
|
-
|
|
11
|
+
h as Author,
|
|
12
|
+
A as AuthorCard,
|
|
12
13
|
B as BonusCard,
|
|
13
|
-
|
|
14
|
+
i as Center,
|
|
14
15
|
C as ContactForm,
|
|
15
|
-
h as Expert,
|
|
16
|
-
E as ExpertTip,
|
|
17
16
|
F as Faq,
|
|
18
17
|
a as FeatureCard,
|
|
19
18
|
b as Features,
|
|
@@ -22,19 +21,21 @@ export {
|
|
|
22
21
|
c as GameDemo,
|
|
23
22
|
d as GameInfo,
|
|
24
23
|
G2 as GameVolatility,
|
|
25
|
-
|
|
24
|
+
j as Grid,
|
|
26
25
|
H as HowTo,
|
|
27
26
|
L as Layout,
|
|
28
|
-
|
|
27
|
+
k as LinkButton,
|
|
29
28
|
e as List,
|
|
30
29
|
M as MdxProvider,
|
|
30
|
+
N as NotFound,
|
|
31
31
|
P as ProsCons,
|
|
32
|
-
|
|
32
|
+
l as PulseButton,
|
|
33
33
|
R as RichTextRenderer,
|
|
34
34
|
S as Seo,
|
|
35
35
|
S2 as SiteProvider,
|
|
36
36
|
T as Table,
|
|
37
37
|
f as Tabs,
|
|
38
|
+
g as Tip,
|
|
38
39
|
e2 as extractTheme,
|
|
39
40
|
f2 as formatDate,
|
|
40
41
|
b2 as formatNumber,
|
|
@@ -42,7 +43,6 @@ export {
|
|
|
42
43
|
c2 as getCurrencySymbol,
|
|
43
44
|
a3 as getCurrentMonth,
|
|
44
45
|
g2 as getCurrentYear,
|
|
45
|
-
d2 as getDomain,
|
|
46
46
|
default2 as i18n,
|
|
47
47
|
p as parseNumber,
|
|
48
48
|
r as resources,
|
package/dist/providers/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const index = require("../index-
|
|
3
|
+
const index = require("../index-Sod4uKHB.js");
|
|
4
4
|
const index$1 = require("../index-BhsXlbd8.js");
|
|
5
5
|
exports.MdxProvider = index.MdxProvider;
|
|
6
6
|
exports.SiteProvider = index$1.SiteProvider;
|
package/dist/providers/index.mjs
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { FC, PropsWithChildren } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { ISiteConfigs, ISiteMetadata } from '../../types';
|
|
3
3
|
interface ISiteContext {
|
|
4
4
|
metadata: ISiteMetadata;
|
|
5
5
|
configs?: ISiteConfigs;
|
|
6
|
-
assets?: ISiteAssets;
|
|
7
6
|
}
|
|
8
7
|
type SiteMetadataProviderProps = ISiteContext;
|
|
9
8
|
declare const SiteProvider: FC<PropsWithChildren<SiteMetadataProviderProps>>;
|