@anywayseo/tools 5.11.0 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/dist/components/game-demo/index.d.ts +2 -6
  2. package/dist/components/index.cjs +3 -3
  3. package/dist/components/index.mjs +3 -3
  4. package/dist/components/seo/href-langs/index.d.ts +8 -0
  5. package/dist/components/seo/index.d.ts +3 -2
  6. package/dist/components/seo/json-ld/index.d.ts +7 -0
  7. package/dist/components/seo/types.d.ts +4 -3
  8. package/dist/components/seo/utils.d.ts +1 -0
  9. package/dist/components/{strapi-component → strapi-content-renderer/strapi-component}/external-image/index.d.ts +1 -1
  10. package/dist/components/{strapi-component → strapi-content-renderer/strapi-component}/index.d.ts +1 -1
  11. package/dist/components/{strapi-component → strapi-content-renderer/strapi-component}/rich-text/index.d.ts +2 -1
  12. package/dist/components/{strapi-component → strapi-content-renderer/strapi-component}/utils.d.ts +1 -1
  13. package/dist/hooks/index.cjs +1 -1
  14. package/dist/hooks/index.mjs +1 -1
  15. package/dist/i18n/index.cjs +24 -12
  16. package/dist/i18n/index.mjs +24 -12
  17. package/dist/i18n/resources/bn/index.d.ts +331 -0
  18. package/dist/i18n/resources/cs/index.d.ts +331 -0
  19. package/dist/i18n/resources/el/index.d.ts +331 -0
  20. package/dist/i18n/resources/hu/index.d.ts +331 -0
  21. package/dist/i18n/resources/nb/index.d.ts +331 -0
  22. package/dist/i18n/resources/nl/index.d.ts +331 -0
  23. package/dist/i18n/resources/pl/index.d.ts +331 -0
  24. package/dist/i18n/resources/ro/index.d.ts +331 -0
  25. package/dist/i18n/resources/sr/index.d.ts +331 -0
  26. package/dist/i18n/resources/sv/index.d.ts +331 -0
  27. package/dist/i18n/resources/tr/index.d.ts +331 -0
  28. package/dist/i18n/resources/uz/index.d.ts +331 -0
  29. package/dist/{index-DqMBmwe5.mjs → index-2sU4ya6z.mjs} +5 -6
  30. package/dist/{index-B6wLLS6t.mjs → index-B5WurBlm.mjs} +2 -2
  31. package/dist/{index-Ca9tsjT8.js → index-BAxlqkw0.js} +2 -2
  32. package/dist/{index-CG7F6SYt.mjs → index-BBU_vIrY.mjs} +68 -30
  33. package/dist/{index-C1kr7Vd-.mjs → index-BS5T9Il4.mjs} +1 -1
  34. package/dist/{index-RzByAgHO.mjs → index-C6A-3gBz.mjs} +4577 -432
  35. package/dist/{index-hGzNO4AL.js → index-C93pA9Jv.js} +69 -31
  36. package/dist/{index-C3n63_nP.js → index-CAjUjAgI.js} +1 -1
  37. package/dist/{index-CBRFCYhV.js → index-CMLDQbgR.js} +4577 -432
  38. package/dist/{index-DSP348cK.mjs → index-CQC6DRGf.mjs} +1 -1
  39. package/dist/index-CnVcCa5O.js +151 -0
  40. package/dist/index-CoNbTY7l.mjs +152 -0
  41. package/dist/{index-CVv755RW.js → index-CuIVcnIS.js} +1 -1
  42. package/dist/{index-DhhGhwm2.js → index-CxuOu0E2.js} +5 -6
  43. package/dist/{index-D-jM-cHx.js → index-DAPaiozu.js} +2 -2
  44. package/dist/index-MnQnVvsM.mjs +198 -0
  45. package/dist/index-P_fDAJVz.js +197 -0
  46. package/dist/{index-CPbWQKoT.mjs → index-TcBorTSf.mjs} +2 -2
  47. package/dist/index.cjs +20 -9
  48. package/dist/index.mjs +31 -20
  49. package/dist/layout/header/locale-switcher/icons/bangladesh/index.d.ts +2 -0
  50. package/dist/layout/header/locale-switcher/icons/belgium/index.d.ts +2 -0
  51. package/dist/layout/header/locale-switcher/icons/canada/index.d.ts +2 -0
  52. package/dist/layout/header/locale-switcher/icons/czechia/index.d.ts +2 -0
  53. package/dist/layout/header/locale-switcher/icons/greece/index.d.ts +2 -0
  54. package/dist/layout/header/locale-switcher/icons/hungary/index.d.ts +2 -0
  55. package/dist/layout/header/locale-switcher/icons/index.d.ts +20 -1
  56. package/dist/layout/header/locale-switcher/icons/india/index.d.ts +2 -0
  57. package/dist/layout/header/locale-switcher/icons/morocco/index.d.ts +2 -0
  58. package/dist/layout/header/locale-switcher/icons/netherlands/index.d.ts +2 -0
  59. package/dist/layout/header/locale-switcher/icons/nigeria/index.d.ts +2 -0
  60. package/dist/layout/header/locale-switcher/icons/norway/index.d.ts +2 -0
  61. package/dist/layout/header/locale-switcher/icons/poland/index.d.ts +2 -0
  62. package/dist/layout/header/locale-switcher/icons/romania/index.d.ts +2 -0
  63. package/dist/layout/header/locale-switcher/icons/serbia/index.d.ts +2 -0
  64. package/dist/layout/header/locale-switcher/icons/south-africa/index.d.ts +2 -0
  65. package/dist/layout/header/locale-switcher/icons/sweden/index.d.ts +2 -0
  66. package/dist/layout/header/locale-switcher/icons/switzerland/index.d.ts +2 -0
  67. package/dist/layout/header/locale-switcher/icons/turkey/index.d.ts +2 -0
  68. package/dist/layout/header/locale-switcher/icons/uzbekistan/index.d.ts +2 -0
  69. package/dist/layout/index.cjs +396 -52
  70. package/dist/layout/index.mjs +396 -52
  71. package/dist/providers/index.cjs +2 -2
  72. package/dist/providers/index.mjs +2 -2
  73. package/dist/providers/site-provider/index.d.ts +2 -1
  74. package/dist/types/api/index.d.ts +2 -16
  75. package/dist/types/api/strapi-navigation.d.ts +16 -0
  76. package/dist/types/api/strapi-page.d.ts +46 -0
  77. package/dist/types/components/game-demo/index.d.ts +5 -0
  78. package/dist/types/components/index.d.ts +1 -1
  79. package/dist/types/content/seo/index.d.ts +38 -1
  80. package/dist/types/i18n/index.d.ts +1 -1
  81. package/dist/types/index.d.ts +1 -1
  82. package/dist/types/json-ld/index.d.ts +162 -0
  83. package/dist/types/site/index.d.ts +9 -4
  84. package/dist/utils/api/index.d.ts +4 -2
  85. package/dist/utils/api/strapi-guards.d.ts +5 -0
  86. package/dist/utils/api/strapi-navigation.d.ts +2 -0
  87. package/dist/utils/api/strapi-seo.d.ts +13 -0
  88. package/dist/utils/index.cjs +14 -3
  89. package/dist/utils/index.d.ts +1 -0
  90. package/dist/utils/index.mjs +25 -14
  91. package/dist/utils/json-ld/index.d.ts +70 -0
  92. package/dist/utils/navigation/index.d.ts +1 -1
  93. package/package.json +1 -1
  94. package/dist/components/strapi-content-renderer/utils.d.ts +0 -2
  95. package/dist/index-Ba_pXx_e.js +0 -97
  96. package/dist/index-BeJTy4iY.mjs +0 -26
  97. package/dist/index-BfITsKAr.js +0 -25
  98. package/dist/index-CJANSiM5.mjs +0 -98
  99. package/dist/types/components/strapi-component/index.d.ts +0 -5
  100. package/dist/types/page/index.d.ts +0 -7
@@ -0,0 +1,331 @@
1
+ declare const dictionary: {
2
+ readonly pageNotFound: {
3
+ seo: {
4
+ title: string;
5
+ };
6
+ title: string;
7
+ description: string;
8
+ action: string;
9
+ };
10
+ readonly pageContacts: {
11
+ title: string;
12
+ text: string;
13
+ };
14
+ readonly pagePrivacyPolicy: {
15
+ title: string;
16
+ text: string;
17
+ sectionOne: {
18
+ title: string;
19
+ text: string;
20
+ };
21
+ sectionTwo: {
22
+ title: string;
23
+ textOne: string;
24
+ list: {
25
+ itemOne: string;
26
+ itemTwo: string;
27
+ };
28
+ textTwo: string;
29
+ };
30
+ sectionThree: {
31
+ title: string;
32
+ text: string;
33
+ };
34
+ sectionFour: {
35
+ title: string;
36
+ text: string;
37
+ };
38
+ sectionFive: {
39
+ title: string;
40
+ text: string;
41
+ };
42
+ sectionSix: {
43
+ title: string;
44
+ text: string;
45
+ textWithLink: {
46
+ contentStart: string;
47
+ link: string;
48
+ contentEnd: string;
49
+ };
50
+ };
51
+ };
52
+ readonly pageCookiePolicy: {
53
+ title: string;
54
+ text: string;
55
+ sectionOne: {
56
+ title: string;
57
+ textOne: string;
58
+ textTwo: string;
59
+ };
60
+ sectionTwo: {
61
+ title: string;
62
+ textOne: string;
63
+ list: {
64
+ itemOne: string;
65
+ itemTwo: string;
66
+ itemThree: string;
67
+ };
68
+ textTwo: string;
69
+ };
70
+ sectionThree: {
71
+ title: string;
72
+ list: {
73
+ itemOne: string;
74
+ itemTwo: string;
75
+ itemThree: string;
76
+ itemFour: string;
77
+ };
78
+ text: string;
79
+ };
80
+ };
81
+ readonly pageTermsAndConditions: {
82
+ title: string;
83
+ text: string;
84
+ sectionOne: {
85
+ title: string;
86
+ text: string;
87
+ list: {
88
+ itemOne: {
89
+ title: string;
90
+ description: string;
91
+ };
92
+ itemTwo: {
93
+ title: string;
94
+ description: string;
95
+ };
96
+ itemThree: {
97
+ title: string;
98
+ description: string;
99
+ };
100
+ itemFour: {
101
+ title: string;
102
+ description: string;
103
+ };
104
+ };
105
+ };
106
+ sectionTwo: {
107
+ title: string;
108
+ list: {
109
+ itemOne: {
110
+ title: string;
111
+ description: string;
112
+ };
113
+ itemTwo: {
114
+ title: string;
115
+ description: string;
116
+ };
117
+ itemThree: {
118
+ title: string;
119
+ description: string;
120
+ };
121
+ itemFour: {
122
+ title: string;
123
+ description: string;
124
+ };
125
+ };
126
+ };
127
+ sectionThree: {
128
+ title: string;
129
+ text: string;
130
+ };
131
+ sectionFour: {
132
+ title: string;
133
+ text: string;
134
+ list: {
135
+ itemOne: {
136
+ title: string;
137
+ description: string;
138
+ };
139
+ itemTwo: {
140
+ title: string;
141
+ description: string;
142
+ };
143
+ };
144
+ };
145
+ sectionFive: {
146
+ title: string;
147
+ text: string;
148
+ };
149
+ sectionSix: {
150
+ title: string;
151
+ textOne: string;
152
+ list: {
153
+ itemOne: string;
154
+ itemTwo: string;
155
+ itemThree: string;
156
+ };
157
+ textTwo: string;
158
+ textTwoWithLink: {
159
+ contentStart: string;
160
+ link: string;
161
+ contentEnd: string;
162
+ };
163
+ };
164
+ sectionSeven: {
165
+ title: string;
166
+ list: {
167
+ itemOne: {
168
+ title: string;
169
+ description: string;
170
+ };
171
+ itemTwo: {
172
+ title: string;
173
+ description: string;
174
+ };
175
+ };
176
+ };
177
+ };
178
+ readonly footer: {
179
+ copyright: string;
180
+ disclaimer: {
181
+ title: string;
182
+ description: string;
183
+ };
184
+ };
185
+ readonly article: {
186
+ meta: {
187
+ author: string;
188
+ publicationDate: string;
189
+ readingTime: {
190
+ label: string;
191
+ count_one: string;
192
+ count_few: string;
193
+ count_many: string;
194
+ count_other: string;
195
+ };
196
+ };
197
+ };
198
+ readonly casinoInfo: {
199
+ feature: {
200
+ RTP: string;
201
+ GAMES_COUNT: string;
202
+ MIN_DEPOSIT: string;
203
+ PAYOUT_SPEED: string;
204
+ };
205
+ };
206
+ readonly casinoTable: {
207
+ column: {
208
+ ID: string;
209
+ LOGO: string;
210
+ NAME: string;
211
+ LICENSE: string;
212
+ BONUS: string;
213
+ INFO: string;
214
+ ACTIONS: string;
215
+ };
216
+ row: {
217
+ logo: {
218
+ bestChoiceBadge: string;
219
+ };
220
+ actions: {
221
+ getBonus: string;
222
+ readReview: string;
223
+ };
224
+ };
225
+ };
226
+ readonly copyText: {
227
+ title: string;
228
+ };
229
+ readonly gameDemo: {
230
+ warning: string;
231
+ action: {
232
+ playForReal: string;
233
+ playForFree: string;
234
+ activateFullscreen: string;
235
+ deactivateFullscreen: string;
236
+ exit: string;
237
+ };
238
+ alert: {
239
+ title: string;
240
+ description: string;
241
+ };
242
+ };
243
+ readonly gameInfo: {
244
+ title: string;
245
+ group: {
246
+ general: string;
247
+ features: string;
248
+ };
249
+ feature: {
250
+ BONUS_FEATURES: string;
251
+ COMPATIBILITY: string;
252
+ FUNCTIONS: string;
253
+ DEVELOPER: string;
254
+ HAS_AUTOPLAY: string;
255
+ HAS_BONUS_PURCHASE: string;
256
+ HAS_COLLECTION_SYMBOLS: string;
257
+ HAS_DEMO: string;
258
+ HAS_FAST_SPIN: string;
259
+ HAS_FREE_SPINS: string;
260
+ HAS_PROGRESSIVE_JACKPOT: string;
261
+ LANGUAGES: string;
262
+ MAX_WIN: string;
263
+ MAX_BET: string;
264
+ MIN_BET: string;
265
+ NAME: string;
266
+ PAY_LINES: string;
267
+ REELS_NUMBER: string;
268
+ RELEASE_DATE: string;
269
+ ROWS_WITH_PINS: string;
270
+ RTP: string;
271
+ THEME: string;
272
+ TYPE: string;
273
+ VOLATILITY: string;
274
+ };
275
+ value: {
276
+ boolean: {
277
+ true: string;
278
+ false: string;
279
+ };
280
+ volatility: {
281
+ HIGH: string;
282
+ MEDIUM: string;
283
+ LOW: string;
284
+ };
285
+ };
286
+ };
287
+ readonly prosCons: {
288
+ advantages: string;
289
+ disadvantages: string;
290
+ };
291
+ readonly author: {
292
+ title: string;
293
+ action: {
294
+ expand: string;
295
+ collapse: string;
296
+ };
297
+ };
298
+ readonly contactForm: {
299
+ field: {
300
+ name: {
301
+ label: string;
302
+ placeholder: string;
303
+ };
304
+ email: {
305
+ label: string;
306
+ placeholder: string;
307
+ };
308
+ message: {
309
+ label: string;
310
+ placeholder: string;
311
+ };
312
+ };
313
+ notification: {
314
+ title: string;
315
+ description: string;
316
+ };
317
+ action: {
318
+ send: string;
319
+ };
320
+ };
321
+ readonly bonusCard: {
322
+ action: {
323
+ expand: string;
324
+ collapse: string;
325
+ };
326
+ };
327
+ readonly informer: {
328
+ [x: string]: string;
329
+ };
330
+ };
331
+ export default dictionary;
@@ -1,14 +1,14 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { Flex, Container as Container$1, useColorModeValue, useToast, useClipboard, Text, IconButton, Button, Box, Stack, Card, Badge, Td, Tr, Table, Thead, Th, Tbody } from "@chakra-ui/react";
3
- import { L as Link, a as useSiteContext, I as Image, u as usePageContext } from "./index-B6wLLS6t.mjs";
3
+ import { L as Link, a as useSiteContext, I as Image, u as usePageContext } from "./index-B5WurBlm.mjs";
4
4
  import "@mdx-js/react";
5
5
  import { useTranslation } from "react-i18next";
6
6
  import { A as Animation } from "./index-BJRvnR8Q.mjs";
7
- import { a as CasinoCharacteristic, C as CasinoTableColumn } from "./index-RzByAgHO.mjs";
7
+ import { a as CasinoCharacteristic, C as CasinoTableColumn } from "./index-C6A-3gBz.mjs";
8
8
  import { CheckIcon, CopyIcon, StarIcon } from "@chakra-ui/icons";
9
9
  import "react";
10
10
  import "react-medium-image-zoom";
11
- import { u as usePrimaryColors } from "./index-C1kr7Vd-.mjs";
11
+ import { u as usePrimaryColors } from "./index-BS5T9Il4.mjs";
12
12
  import { b as formatNumber } from "./index-BPthShL-.mjs";
13
13
  const FacebookIcon = (props) => {
14
14
  return /* @__PURE__ */ jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", "aria-label": "Facebook", ...props, children: [
@@ -172,9 +172,8 @@ const LinkButton = ({
172
172
  );
173
173
  };
174
174
  const Logo = () => {
175
- const { metadata } = useSiteContext();
176
- const { logo } = metadata;
177
- return /* @__PURE__ */ jsx(Box, { display: "flex", h: { base: 10, md: 14 }, alignSelf: "center", overflow: "hidden", children: /* @__PURE__ */ jsx(Image, { src: logo, alt: "Logo", objectFit: "contain" }) });
175
+ const { logo } = useSiteContext();
176
+ return /* @__PURE__ */ jsx(Box, { display: "flex", h: { base: 10, md: 14 }, alignSelf: "center", overflow: "hidden", children: /* @__PURE__ */ jsx(Image, { src: logo.src, alt: logo.alt, objectFit: "contain" }) });
178
177
  };
179
178
  const StarSizeMap = {
180
179
  sm: "1rem",
@@ -6,10 +6,10 @@ import { Link as Link$2 } from "gatsby";
6
6
  import "@mdx-js/react";
7
7
  import "react-i18next";
8
8
  import "./index-BJRvnR8Q.mjs";
9
- import "./index-RzByAgHO.mjs";
9
+ import "./index-C6A-3gBz.mjs";
10
10
  import "@chakra-ui/icons";
11
11
  import { u as useLocalization } from "./index-DHURrUMW.mjs";
12
- import { c as isAbsolutePath, i as isRelativePath } from "./index-DSP348cK.mjs";
12
+ import { c as isAbsolutePath, i as isRelativePath } from "./index-CQC6DRGf.mjs";
13
13
  const SiteContext = createContext(null);
14
14
  const SiteProvider = ({ children, ...context }) => {
15
15
  const value = useMemo(() => context, []);
@@ -3,9 +3,9 @@ const jsxRuntime = require("react/jsx-runtime");
3
3
  const react = require("@mdx-js/react");
4
4
  require("react-i18next");
5
5
  require("@chakra-ui/react");
6
- const index$1 = require("./index-D-jM-cHx.js");
6
+ const index$1 = require("./index-DAPaiozu.js");
7
7
  require("./index-C6MG_f24.js");
8
- require("./index-CBRFCYhV.js");
8
+ require("./index-CMLDQbgR.js");
9
9
  require("@chakra-ui/icons");
10
10
  require("react");
11
11
  const index = require("./index-DDg_PkD2.js");
@@ -2,18 +2,18 @@ import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
2
  import { useColorModeValue, Flex, Text, Box, 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
4
  import { useMDXComponents } from "@mdx-js/react";
5
- import { u as usePageContext, I as Image, L as Link, a as useSiteContext } from "./index-B6wLLS6t.mjs";
5
+ import { u as usePageContext, I as Image, L as Link, a as useSiteContext } from "./index-B5WurBlm.mjs";
6
6
  import "./index-BJRvnR8Q.mjs";
7
- import { b as GameCharacteristic, G as GameVolatility } from "./index-RzByAgHO.mjs";
7
+ import { b as GameCharacteristic, G as GameVolatility } from "./index-C6A-3gBz.mjs";
8
8
  import { AtSignIcon, TimeIcon, CalendarIcon, StarIcon, CloseIcon, ViewOffIcon, ViewIcon, EmailIcon, WarningIcon, CheckCircleIcon } from "@chakra-ui/icons";
9
9
  import "react-medium-image-zoom";
10
10
  import { useRef, useState, useLayoutEffect, Fragment as Fragment$1, useMemo } from "react";
11
- import { d as SocialNetworks, L as LinkButton, R as Rating } from "./index-DqMBmwe5.mjs";
11
+ import { d as SocialNetworks, L as LinkButton, R as Rating } from "./index-2sU4ya6z.mjs";
12
12
  import { a as Heading2, H as Heading1, P as Paragraph, U as Unordered, O as Ordered } from "./index-BEjKnOZA.mjs";
13
- import { a as buildCanonicalUrl } from "./index-DSP348cK.mjs";
13
+ import { a as buildCanonicalUrl } from "./index-CQC6DRGf.mjs";
14
+ import { l as getSeededRandomComparator, r as randomComparator, g as getCurrencySymbol, d as buildGraph, e as buildOrganizationSchema, f as buildWebsiteSchema, h as getEntitySchema, j as buildWebpageSchema, i as isStrapiContent } from "./index-CoNbTY7l.mjs";
14
15
  import { f as formatDate, b as formatNumber, a as getCurrentMonth, g as getCurrentYear } from "./index-BPthShL-.mjs";
15
- import { u as usePrimaryColors } from "./index-C1kr7Vd-.mjs";
16
- import { a as getSeededRandomComparator, r as randomComparator, g as getCurrencySymbol } from "./index-BeJTy4iY.mjs";
16
+ import { u as usePrimaryColors } from "./index-BS5T9Il4.mjs";
17
17
  import { t } from "i18next";
18
18
  import Markdown from "react-markdown";
19
19
  const ArticleMetaIconMap = {
@@ -692,7 +692,7 @@ const NotFound = () => {
692
692
  const CookiePolicy = () => {
693
693
  const { t: t2 } = useTranslation("pageCookiePolicy");
694
694
  const { metadata } = useSiteContext();
695
- const { name: siteName } = metadata;
695
+ const siteName = metadata.name;
696
696
  return /* @__PURE__ */ jsxs(Fragment, { children: [
697
697
  /* @__PURE__ */ jsx(Heading1, { children: t2("title") }),
698
698
  /* @__PURE__ */ jsx(Paragraph, { children: t2("text", { siteName }) }),
@@ -798,7 +798,7 @@ const Contacts = () => {
798
798
  const PrivacyPolicy = ({ contactsSlug }) => {
799
799
  const { t: t2 } = useTranslation("pagePrivacyPolicy");
800
800
  const { metadata } = useSiteContext();
801
- const { name: siteName } = metadata;
801
+ const siteName = metadata.name;
802
802
  return /* @__PURE__ */ jsxs(Fragment, { children: [
803
803
  /* @__PURE__ */ jsx(Heading1, { children: t2("title") }),
804
804
  /* @__PURE__ */ jsx(Paragraph, { children: t2("text") }),
@@ -828,7 +828,7 @@ const PrivacyPolicy = ({ contactsSlug }) => {
828
828
  const TermsAndConditions = ({ privacyPolicySlug }) => {
829
829
  const { t: t2 } = useTranslation("pageTermsAndConditions");
830
830
  const { metadata } = useSiteContext();
831
- const { name: siteName } = metadata;
831
+ const siteName = metadata.name;
832
832
  return /* @__PURE__ */ jsxs(Fragment, { children: [
833
833
  /* @__PURE__ */ jsx(Heading1, { children: t2("title") }),
834
834
  /* @__PURE__ */ jsx(Paragraph, { children: t2("text", { siteName }) }),
@@ -950,6 +950,13 @@ const ProsCons = ({ items, ...boxProps }) => {
950
950
  /* @__PURE__ */ jsx(ProsConsCard, { itemType: "cons", items: cons })
951
951
  ] });
952
952
  };
953
+ function buildPlaceholders(siteName, lang) {
954
+ return {
955
+ siteName,
956
+ currentYear: getCurrentYear(lang),
957
+ currentMonth: getCurrentMonth(lang)
958
+ };
959
+ }
953
960
  function replacePlaceholders(text, placeholders) {
954
961
  Object.entries(placeholders).forEach(([placeholder, replacement]) => {
955
962
  const regex = new RegExp(`{{${placeholder}}}`, "g");
@@ -963,25 +970,61 @@ function getSeoMetaItem(item, placeholders) {
963
970
  }
964
971
  return item(placeholders);
965
972
  }
966
- const Seo = ({ children, pathname, locale, title, description, canonical, hrefLangs = [] }) => {
967
- const { metadata: siteMetadata } = useSiteContext();
968
- const { name: siteName, lang: siteLocale, seo: siteSeo } = siteMetadata;
969
- const { title: siteTitle, description: siteDescription } = siteSeo;
970
- const lang = locale || siteLocale;
971
- const placeholders = useMemo(
972
- () => ({
973
- siteName,
974
- currentYear: getCurrentYear(lang),
975
- currentMonth: getCurrentMonth(lang)
976
- }),
977
- [siteName, lang]
973
+ const JsonLd = ({ schemas }) => {
974
+ const graph = buildGraph(schemas);
975
+ if (!graph.length) {
976
+ return null;
977
+ }
978
+ const jsonLd = {
979
+ "@context": "https://schema.org",
980
+ "@graph": graph
981
+ };
982
+ return /* @__PURE__ */ jsx(
983
+ "script",
984
+ {
985
+ type: "application/ld+json",
986
+ dangerouslySetInnerHTML: {
987
+ __html: JSON.stringify(jsonLd)
988
+ }
989
+ }
978
990
  );
991
+ };
992
+ const HrefLangs = ({ siteName, hrefLangs }) => {
993
+ return hrefLangs.map(({ href, hrefLang }, index) => /* @__PURE__ */ jsx("link", { rel: "alternate", hrefLang, href: buildCanonicalUrl(siteName, href) }, index));
994
+ };
995
+ const Seo = ({
996
+ children,
997
+ pathname,
998
+ locale,
999
+ title,
1000
+ description,
1001
+ canonicalUrl,
1002
+ hrefLangs = [],
1003
+ structuredData
1004
+ }) => {
1005
+ const { metadata: siteMetadata, logo: siteLogo, localization } = useSiteContext();
1006
+ const { name: siteName, seo: siteSeo } = siteMetadata;
1007
+ const { title: defaultTitle, description: defaultDescription } = siteSeo;
1008
+ const defaultLocale = localization.defaultLocale.code;
1009
+ const lang = locale || defaultLocale;
1010
+ const placeholders = buildPlaceholders(siteName, lang);
1011
+ const siteUrl = buildCanonicalUrl(siteName);
1012
+ const pageUrl = buildCanonicalUrl(siteName, pathname);
1013
+ const pageTitle = getSeoMetaItem(title ?? defaultTitle, placeholders);
1014
+ const pageDescription = getSeoMetaItem(description ?? defaultDescription, placeholders);
1015
+ const siteData = { url: siteUrl, name: siteName, logo: siteLogo };
1016
+ const pageData = { url: pageUrl, title: pageTitle, description: pageDescription };
1017
+ const organizationSchema = buildOrganizationSchema({ site: siteData, lang });
1018
+ const websiteSchema = buildWebsiteSchema({ site: siteData, lang });
1019
+ const entitySchema = getEntitySchema({ site: siteData, page: pageData, structuredData });
1020
+ const webpageSchema = buildWebpageSchema({ site: siteData, page: pageData, lang }, entitySchema);
979
1021
  return /* @__PURE__ */ jsxs(Fragment, { children: [
980
1022
  /* @__PURE__ */ jsx("html", { lang }),
981
- /* @__PURE__ */ jsx("title", { children: getSeoMetaItem(title ?? siteTitle, placeholders) }),
982
- /* @__PURE__ */ jsx("meta", { name: "description", content: getSeoMetaItem(description ?? siteDescription, placeholders) }),
983
- /* @__PURE__ */ jsx("link", { rel: "canonical", href: canonical ?? buildCanonicalUrl(siteName, pathname) }),
984
- hrefLangs.map(({ href, hrefLang }, index) => /* @__PURE__ */ jsx("link", { rel: "alternate", hrefLang, href: buildCanonicalUrl(siteName, href) }, index)),
1023
+ /* @__PURE__ */ jsx("title", { children: pageTitle }),
1024
+ /* @__PURE__ */ jsx("meta", { name: "description", content: pageDescription }),
1025
+ /* @__PURE__ */ jsx("link", { rel: "canonical", href: canonicalUrl ?? pageUrl }),
1026
+ /* @__PURE__ */ jsx(HrefLangs, { siteName, hrefLangs }),
1027
+ /* @__PURE__ */ jsx(JsonLd, { schemas: { organization: organizationSchema, website: websiteSchema, webpage: webpageSchema } }),
985
1028
  children
986
1029
  ] });
987
1030
  };
@@ -1263,11 +1306,6 @@ const StrapiComponent = ({ type, props, imageComponent }) => {
1263
1306
  return null;
1264
1307
  }
1265
1308
  };
1266
- function isStrapiContent(array) {
1267
- return Array.isArray(array) && array.every(
1268
- (item) => typeof item === "object" && item !== null && "__typename" in item && typeof item.__typename === "string"
1269
- );
1270
- }
1271
1309
  const StrapiContentRenderer = ({ content, imageComponent }) => {
1272
1310
  if (!isStrapiContent(content)) {
1273
1311
  return null;
@@ -1,6 +1,6 @@
1
1
  import { useColorModeValue } from "@chakra-ui/react";
2
2
  import "./index-BJRvnR8Q.mjs";
3
- import "./index-RzByAgHO.mjs";
3
+ import "./index-C6A-3gBz.mjs";
4
4
  import { L as LIGHT_THEME_COLOR, D as DARK_THEME_COLOR } from "./index-BRVKhbs6.mjs";
5
5
  function usePrimaryColors() {
6
6
  const color = useColorModeValue(LIGHT_THEME_COLOR, DARK_THEME_COLOR);