@anywayseo/tools 5.5.0 → 5.6.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 (114) hide show
  1. package/dist/components/base/h1/index.d.ts +4 -0
  2. package/dist/components/base/h2/index.d.ts +4 -0
  3. package/dist/components/base/h3/index.d.ts +4 -0
  4. package/dist/components/base/index.d.ts +8 -0
  5. package/dist/components/base/link/index.d.ts +5 -1
  6. package/dist/components/base/link/utils.d.ts +1 -0
  7. package/dist/components/base/ol/index.d.ts +4 -0
  8. package/dist/components/base/p/index.d.ts +4 -0
  9. package/dist/components/base/ul/index.d.ts +4 -0
  10. package/dist/components/index.cjs +21 -9
  11. package/dist/components/index.d.ts +1 -3
  12. package/dist/components/index.mjs +27 -15
  13. package/dist/components/{contact-form → pages/contacts/contact-form}/index.d.ts +1 -1
  14. package/dist/components/pages/contacts/index.d.ts +3 -0
  15. package/dist/components/pages/cookie-policy/index.d.ts +3 -0
  16. package/dist/components/pages/index.d.ts +5 -0
  17. package/dist/components/pages/privacy-policy/index.d.ts +6 -0
  18. package/dist/components/pages/terms-and-conditions/index.d.ts +6 -0
  19. package/dist/hooks/index.cjs +1 -1
  20. package/dist/hooks/index.mjs +1 -1
  21. package/dist/i18n/index.cjs +10 -5
  22. package/dist/i18n/index.mjs +10 -5
  23. package/dist/i18n/resources/bg/index.d.ts +280 -0
  24. package/dist/i18n/resources/da/index.d.ts +280 -0
  25. package/dist/i18n/resources/de/index.d.ts +168 -0
  26. package/dist/i18n/resources/en/index.d.ts +168 -0
  27. package/dist/i18n/resources/fi/index.d.ts +280 -0
  28. package/dist/i18n/resources/fr/index.d.ts +168 -0
  29. package/dist/i18n/resources/it/index.d.ts +168 -0
  30. package/dist/i18n/resources/ka/index.d.ts +280 -0
  31. package/dist/i18n/resources/pt/index.d.ts +280 -0
  32. package/dist/i18n/resources/ru/index.d.ts +168 -0
  33. package/dist/{index-CAfBnNV6.js → index-5J1CqqcW.js} +1 -1
  34. package/dist/index-B1PwYYQt.mjs +24 -0
  35. package/dist/index-B6wz_B9_.js +145 -0
  36. package/dist/index-BEjKnOZA.mjs +28 -0
  37. package/dist/{index-BmaWfWLV.mjs → index-Bph7a3PR.mjs} +4 -0
  38. package/dist/index-C-ri0Fgy.js +23 -0
  39. package/dist/index-C2T70CMa.mjs +44 -0
  40. package/dist/index-COv56GyV.mjs +146 -0
  41. package/dist/{index-DZBLiQFh.js → index-CR5rM7at.js} +21 -6
  42. package/dist/index-CWMHJGbL.mjs +2957 -0
  43. package/dist/{index-BICcOaT7.js → index-CkRY_NXp.js} +0 -21
  44. package/dist/index-CyuHme_p.js +1059 -0
  45. package/dist/{index-BcFDxh8P.js → index-D4zJ5RBA.js} +13 -26
  46. package/dist/index-DDg_PkD2.js +27 -0
  47. package/dist/index-DMR4Ptkt.js +2956 -0
  48. package/dist/{index-tj12BA6U.mjs → index-DYS7zQW4.mjs} +1 -1
  49. package/dist/{index-At00w6EN.js → index-DgrIJs-a.js} +4 -0
  50. package/dist/{index-BCK4kr6V.mjs → index-Drz_7u2p.mjs} +3 -24
  51. package/dist/{index-8_-KtKsW.mjs → index-HLGPI9-S.mjs} +23 -8
  52. package/dist/{index-cEaX-HbN.mjs → index-JUwyHkmj.mjs} +222 -691
  53. package/dist/index.cjs +61 -45
  54. package/dist/index.d.ts +1 -0
  55. package/dist/index.mjs +52 -36
  56. package/dist/{components/layout → layout}/footer/navigation/index.d.ts +1 -1
  57. package/dist/layout/header/locale-switcher/icons/brazil/index.d.ts +2 -0
  58. package/dist/layout/header/locale-switcher/icons/bulgaria/index.d.ts +2 -0
  59. package/dist/layout/header/locale-switcher/icons/denmark/index.d.ts +2 -0
  60. package/dist/layout/header/locale-switcher/icons/finland/index.d.ts +2 -0
  61. package/dist/layout/header/locale-switcher/icons/france/index.d.ts +2 -0
  62. package/dist/layout/header/locale-switcher/icons/georgia/index.d.ts +2 -0
  63. package/dist/layout/header/locale-switcher/icons/germany/index.d.ts +2 -0
  64. package/dist/layout/header/locale-switcher/icons/globe/index.d.ts +2 -0
  65. package/dist/layout/header/locale-switcher/icons/index.d.ts +10 -0
  66. package/dist/layout/header/locale-switcher/icons/italy/index.d.ts +2 -0
  67. package/dist/layout/header/locale-switcher/icons/russia/index.d.ts +2 -0
  68. package/dist/{components/layout → layout}/header/locale-switcher/index.d.ts +1 -1
  69. package/dist/{components/layout → layout}/header/locale-switcher/utils.d.ts +1 -1
  70. package/dist/{components/layout → layout}/header/navigation/desktop/index.d.ts +1 -1
  71. package/dist/{components/layout → layout}/header/navigation/desktop/nav-list/index.d.ts +1 -1
  72. package/dist/{components/layout → layout}/header/navigation/index.d.ts +1 -1
  73. package/dist/{components/layout → layout}/header/navigation/mobile/index.d.ts +1 -1
  74. package/dist/{components/layout → layout}/header/navigation/mobile/nav-list/index.d.ts +1 -1
  75. package/dist/{components/layout → layout}/header/navigation/nav-link/index.d.ts +1 -1
  76. package/dist/{components/layout → layout}/hero/index.d.ts +1 -1
  77. package/dist/layout/index.cjs +596 -0
  78. package/dist/layout/index.mjs +597 -0
  79. package/dist/providers/index.cjs +2 -2
  80. package/dist/providers/index.mjs +2 -2
  81. package/dist/providers/mdx-provider/types.d.ts +3 -1
  82. package/dist/providers/mdx-provider/utils.d.ts +1 -2
  83. package/dist/types/components/strapi-component/index.d.ts +1 -1
  84. package/dist/types/i18n/index.d.ts +1 -1
  85. package/dist/utils/index.cjs +12 -10
  86. package/dist/utils/index.mjs +10 -8
  87. package/dist/utils/navigation/index.d.ts +1 -0
  88. package/package.json +7 -1
  89. package/dist/components/layout/header/locale-switcher/icons/earth/index.d.ts +0 -2
  90. package/dist/components/layout/header/locale-switcher/icons/france/index.d.ts +0 -2
  91. package/dist/components/layout/header/locale-switcher/icons/germany/index.d.ts +0 -2
  92. package/dist/components/layout/header/locale-switcher/icons/globe/index.d.ts +0 -2
  93. package/dist/components/layout/header/locale-switcher/icons/index.d.ts +0 -6
  94. package/dist/components/layout/header/locale-switcher/icons/italy/index.d.ts +0 -2
  95. package/dist/components/layout/header/locale-switcher/icons/russia/index.d.ts +0 -2
  96. package/dist/index-Bts2DBYS.mjs +0 -637
  97. package/dist/index-CJVr79Z2.js +0 -636
  98. package/dist/index-C_FekfFC.mjs +0 -57
  99. package/dist/index-D86anUPd.js +0 -1528
  100. /package/dist/components/{layout → base}/container/index.d.ts +0 -0
  101. /package/dist/components/{layout → base}/logo/index.d.ts +0 -0
  102. /package/dist/components/{not-found → pages/not-found}/index.d.ts +0 -0
  103. /package/dist/{components/layout → layout}/content/index.d.ts +0 -0
  104. /package/dist/{components/layout → layout}/footer/brand/index.d.ts +0 -0
  105. /package/dist/{components/layout → layout}/footer/copyright/index.d.ts +0 -0
  106. /package/dist/{components/layout → layout}/footer/disclaimer/index.d.ts +0 -0
  107. /package/dist/{components/layout → layout}/footer/extra/index.d.ts +0 -0
  108. /package/dist/{components/layout → layout}/footer/index.d.ts +0 -0
  109. /package/dist/{components/layout → layout}/header/brand/index.d.ts +0 -0
  110. /package/dist/{components/layout → layout}/header/index.d.ts +0 -0
  111. /package/dist/{components/layout → layout}/header/theme-toggler/index.d.ts +0 -0
  112. /package/dist/{components/layout → layout}/index.d.ts +0 -0
  113. /package/dist/{components/layout → layout}/main/index.d.ts +0 -0
  114. /package/dist/{components/layout → layout}/scroll-to-top/index.d.ts +0 -0
@@ -0,0 +1,596 @@
1
+ "use strict";
2
+ const jsxRuntime = require("react/jsx-runtime");
3
+ const react = require("@chakra-ui/react");
4
+ require("react-medium-image-zoom");
5
+ const index$1 = require("../index-CR5rM7at.js");
6
+ const react$1 = require("react");
7
+ const reactI18next = require("react-i18next");
8
+ const index = require("../index-B6wz_B9_.js");
9
+ require("@mdx-js/react");
10
+ require("../index-C6MG_f24.js");
11
+ require("../index-DMR4Ptkt.js");
12
+ const icons = require("@chakra-ui/icons");
13
+ require("i18next");
14
+ require("react-markdown");
15
+ const index$2 = require("../index-C-ri0Fgy.js");
16
+ const index$3 = require("../index-DgrIJs-a.js");
17
+ const Content = ({ children }) => {
18
+ return /* @__PURE__ */ jsxRuntime.jsx(react.Box, { as: "section", py: 4, children: /* @__PURE__ */ jsxRuntime.jsx(index.Container, { children }) });
19
+ };
20
+ const Brand$1 = ({ brand }) => {
21
+ return /* @__PURE__ */ jsxRuntime.jsxs(react.Box, { position: "relative", my: 2, py: 8, children: [
22
+ /* @__PURE__ */ jsxRuntime.jsx(react.Divider, {}),
23
+ /* @__PURE__ */ jsxRuntime.jsx(react.AbsoluteCenter, { display: "flex", bgColor: react.useColorModeValue("gray.50", "gray.900"), children: /* @__PURE__ */ jsxRuntime.jsx(index$1.Link, { to: "/", children: brand }) })
24
+ ] });
25
+ };
26
+ const Copyright = () => {
27
+ const { metadata } = index$1.useSiteContext();
28
+ const { t } = reactI18next.useTranslation("footer");
29
+ const siteName = metadata.name;
30
+ const lang = metadata.lang;
31
+ return /* @__PURE__ */ jsxRuntime.jsx(react.Text, { as: "small", colorScheme: "gray", display: "flex", align: "center", justifyContent: "center", children: t("copyright", { year: index$2.getCurrentYear(lang), siteName }) });
32
+ };
33
+ const Disclaimer = () => {
34
+ const { metadata } = index$1.useSiteContext();
35
+ const { t } = reactI18next.useTranslation("footer");
36
+ const siteName = metadata.name;
37
+ return /* @__PURE__ */ jsxRuntime.jsxs(react.Text, { as: "small", colorScheme: "gray", fontSize: "sm", children: [
38
+ /* @__PURE__ */ jsxRuntime.jsx(react.Text, { as: "span", fontWeight: "bold", color: "red.600", children: t("disclaimer.title") }),
39
+ t("disclaimer.description", { siteName })
40
+ ] });
41
+ };
42
+ const Extra = ({ children }) => {
43
+ return /* @__PURE__ */ jsxRuntime.jsx(react.Box, { as: "section", my: 2, children });
44
+ };
45
+ const Navigation$1 = ({ menu }) => {
46
+ return /* @__PURE__ */ jsxRuntime.jsx(
47
+ react.SimpleGrid,
48
+ {
49
+ as: "ul",
50
+ columns: { base: 1, sm: 2, md: 4 },
51
+ mt: 4,
52
+ mb: 6,
53
+ p: 0,
54
+ spacing: 4,
55
+ justifyItems: { base: "flex-start", md: "center" },
56
+ justifyContent: "space-between",
57
+ children: menu.map(({ slug, label }, index2) => /* @__PURE__ */ jsxRuntime.jsx(react.Flex, { as: "li", children: /* @__PURE__ */ jsxRuntime.jsx(
58
+ react.Text,
59
+ {
60
+ as: index$1.Link,
61
+ to: slug,
62
+ fontSize: "md",
63
+ fontWeight: "semibold",
64
+ colorScheme: "gray",
65
+ _hover: { textDecoration: "none", color: "brand.400" },
66
+ children: label
67
+ }
68
+ ) }, index2))
69
+ }
70
+ );
71
+ };
72
+ const Footer = () => {
73
+ const { metadata, navigation, config } = index$1.useSiteContext();
74
+ const { currentLocale } = index$1.usePageContext();
75
+ const menu = navigation.footer[currentLocale.code] ?? [];
76
+ const socialNetworks = metadata.socialNetworks ?? [];
77
+ const { extra, showDisclaimer = true } = (config == null ? void 0 : config.footer) ?? {};
78
+ const hasNavigation = !!menu.length;
79
+ const hasSocialNetworks = !!socialNetworks.length;
80
+ const hasExtra = !!extra;
81
+ return /* @__PURE__ */ jsxRuntime.jsx(
82
+ react.Box,
83
+ {
84
+ as: "footer",
85
+ bg: react.useColorModeValue("gray.50", "gray.900"),
86
+ color: react.useColorModeValue("gray.700", "gray.200"),
87
+ py: 4,
88
+ children: /* @__PURE__ */ jsxRuntime.jsxs(index.Container, { children: [
89
+ hasNavigation && /* @__PURE__ */ jsxRuntime.jsx(Navigation$1, { menu }),
90
+ hasExtra && /* @__PURE__ */ jsxRuntime.jsx(Extra, { children: extra }),
91
+ showDisclaimer && /* @__PURE__ */ jsxRuntime.jsx(Disclaimer, {}),
92
+ /* @__PURE__ */ jsxRuntime.jsx(Brand$1, { brand: /* @__PURE__ */ jsxRuntime.jsx(index.Logo, {}) }),
93
+ hasSocialNetworks && /* @__PURE__ */ jsxRuntime.jsx(index.SocialNetworks, { socialNetworks, justify: "center", my: 2 }),
94
+ /* @__PURE__ */ jsxRuntime.jsx(Copyright, {})
95
+ ] })
96
+ }
97
+ );
98
+ };
99
+ const Brand = ({ brand }) => {
100
+ return /* @__PURE__ */ jsxRuntime.jsx(index$1.Link, { to: "/", children: brand });
101
+ };
102
+ const BrazilIcon = (props) => {
103
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", width: "1em", height: "1em", ...props, children: [
104
+ /* @__PURE__ */ jsxRuntime.jsx("mask", { id: "circleFlagsBr0", children: /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "256", cy: "256", r: "256", fill: "#fff" }) }),
105
+ /* @__PURE__ */ jsxRuntime.jsxs("g", { mask: "url(#circleFlagsBr0)", children: [
106
+ /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#6da544", d: "M0 0h512v512H0z" }),
107
+ /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#ffda44", d: "M256 100.2L467.5 256L256 411.8L44.5 256z" }),
108
+ /* @__PURE__ */ jsxRuntime.jsx(
109
+ "path",
110
+ {
111
+ fill: "#eee",
112
+ d: "M174.2 221a87 87 0 0 0-7.2 36.3l162 49.8a88.5 88.5 0 0 0 14.4-34c-40.6-65.3-119.7-80.3-169.1-52z"
113
+ }
114
+ ),
115
+ /* @__PURE__ */ jsxRuntime.jsx(
116
+ "path",
117
+ {
118
+ fill: "#0052b4",
119
+ d: "M255.7 167a89 89 0 0 0-41.9 10.6a89 89 0 0 0-39.6 43.4a181.7 181.7 0 0 1 169.1 52.2a89 89 0 0 0-9-59.4a89 89 0 0 0-78.6-46.8M212 250.5a149 149 0 0 0-45 6.8a89 89 0 0 0 10.5 40.9a89 89 0 0 0 120.6 36.2a89 89 0 0 0 30.7-27.3A151 151 0 0 0 212 250.5"
120
+ }
121
+ )
122
+ ] })
123
+ ] });
124
+ };
125
+ const BulgariaIcon = (props) => {
126
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", width: "1em", height: "1em", ...props, children: [
127
+ /* @__PURE__ */ jsxRuntime.jsx("mask", { id: "circleFlagsBg0", children: /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "256", cy: "256", r: "256", fill: "#fff" }) }),
128
+ /* @__PURE__ */ jsxRuntime.jsxs("g", { mask: "url(#circleFlagsBg0)", children: [
129
+ /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#496e2d", d: "m0 166.9l258-31.7l254 31.7v178l-251.4 41.3L0 344.9z" }),
130
+ /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#eee", d: "M0 0h512v166.9H0z" }),
131
+ /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#d80027", d: "M0 344.9h512V512H0z" })
132
+ ] })
133
+ ] });
134
+ };
135
+ const DenmarkIcon = (props) => {
136
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", width: "1em", height: "1em", ...props, children: [
137
+ /* @__PURE__ */ jsxRuntime.jsx("mask", { id: "circleFlagsDk0", children: /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "256", cy: "256", r: "256", fill: "#fff" }) }),
138
+ /* @__PURE__ */ jsxRuntime.jsxs("g", { mask: "url(#circleFlagsDk0)", children: [
139
+ /* @__PURE__ */ jsxRuntime.jsx(
140
+ "path",
141
+ {
142
+ fill: "#d80027",
143
+ d: "M0 0h133.6l32.7 20.3l34-20.3H512v222.6L491.4 256l20.6 33.4V512H200.3l-31.7-20.4l-35 20.4H0V289.4l29.4-33L0 222.7z"
144
+ }
145
+ ),
146
+ /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#eee", d: "M133.6 0v222.6H0v66.8h133.6V512h66.7V289.4H512v-66.8H200.3V0z" })
147
+ ] })
148
+ ] });
149
+ };
150
+ const FinlandIcon = (props) => {
151
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", width: "1em", height: "1em", ...props, children: [
152
+ /* @__PURE__ */ jsxRuntime.jsx("mask", { id: "circleFlagsFi0", children: /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "256", cy: "256", r: "256", fill: "#fff" }) }),
153
+ /* @__PURE__ */ jsxRuntime.jsxs("g", { mask: "url(#circleFlagsFi0)", children: [
154
+ /* @__PURE__ */ jsxRuntime.jsx(
155
+ "path",
156
+ {
157
+ fill: "#eee",
158
+ d: "M0 0h133.6l35.3 16.7L200.3 0H512v222.6l-22.6 31.7l22.6 35.1V512H200.3l-32-19.8l-34.7 19.8H0V289.4l22.1-33.3L0 222.6z"
159
+ }
160
+ ),
161
+ /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#0052b4", d: "M133.6 0v222.6H0v66.8h133.6V512h66.7V289.4H512v-66.8H200.3V0z" })
162
+ ] })
163
+ ] });
164
+ };
165
+ const FranceIcon = (props) => {
166
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", width: "1em", height: "1em", ...props, children: [
167
+ /* @__PURE__ */ jsxRuntime.jsx("mask", { id: "circleFlagsFr0", children: /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "256", cy: "256", r: "256", fill: "#fff" }) }),
168
+ /* @__PURE__ */ jsxRuntime.jsxs("g", { mask: "url(#circleFlagsFr0)", children: [
169
+ /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#eee", d: "M167 0h178l25.9 252.3L345 512H167l-29.8-253.4z" }),
170
+ /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#0052b4", d: "M0 0h167v512H0z" }),
171
+ /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#d80027", d: "M345 0h167v512H345z" })
172
+ ] })
173
+ ] });
174
+ };
175
+ const GeorgiaIcon = (props) => {
176
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", width: "1em", height: "1em", ...props, children: [
177
+ /* @__PURE__ */ jsxRuntime.jsx("mask", { id: "circleFlagsGe0", children: /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "256", cy: "256", r: "256", fill: "#fff" }) }),
178
+ /* @__PURE__ */ jsxRuntime.jsxs("g", { mask: "url(#circleFlagsGe0)", children: [
179
+ /* @__PURE__ */ jsxRuntime.jsx(
180
+ "path",
181
+ {
182
+ fill: "#eee",
183
+ d: "M0 0h224l32 32l32-32h224v224l-32 32l32 32v224H288l-32-32l-32 32H0V288l32-32l-32-32Z"
184
+ }
185
+ ),
186
+ /* @__PURE__ */ jsxRuntime.jsx(
187
+ "path",
188
+ {
189
+ fill: "#d80027",
190
+ d: "M224 0v224H0v64h224v224h64V288h224v-64H288V0zm-96 96v32H96v32h32v32h32v-32h32v-32h-32V96zm224 0v32h-32v32h32v32h32v-32h32v-32h-32V96zM128 320v32H96v32h32v32h32v-32h32v-32h-32v-32zm224 0v32h-32v32h32v32h32v-32h32v-32h-32v-32z"
191
+ }
192
+ )
193
+ ] })
194
+ ] });
195
+ };
196
+ const GermanyIcon = (props) => {
197
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", width: "1em", height: "1em", ...props, children: [
198
+ /* @__PURE__ */ jsxRuntime.jsx("mask", { id: "circleFlagsDe0", children: /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "256", cy: "256", r: "256", fill: "#fff" }) }),
199
+ /* @__PURE__ */ jsxRuntime.jsxs("g", { mask: "url(#circleFlagsDe0)", children: [
200
+ /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#ffda44", d: "m0 345l256.7-25.5L512 345v167H0z" }),
201
+ /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#d80027", d: "m0 167l255-23l257 23v178H0z" }),
202
+ /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#333", d: "M0 0h512v167H0z" })
203
+ ] })
204
+ ] });
205
+ };
206
+ const GlobeIcon = (props) => {
207
+ return /* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 496", width: "1em", height: "1em", ...props, children: /* @__PURE__ */ jsxRuntime.jsx(
208
+ "path",
209
+ {
210
+ fill: "currentColor",
211
+ d: "M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64m324.7-96c-28.6-67.9-86.5-120.4-158-141.6c24.4 33.8 41.2 84.7 50 141.6zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6M487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64M120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64m39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6M19.3 352c28.6 67.9 86.5 120.4 158 141.6c-24.4-33.8-41.2-84.7-50-141.6z"
212
+ }
213
+ ) });
214
+ };
215
+ const ItalyIcon = (props) => {
216
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", width: "1em", height: "1em", ...props, children: [
217
+ /* @__PURE__ */ jsxRuntime.jsx("mask", { id: "circleFlagsIt0", children: /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "256", cy: "256", r: "256", fill: "#fff" }) }),
218
+ /* @__PURE__ */ jsxRuntime.jsxs("g", { mask: "url(#circleFlagsIt0)", children: [
219
+ /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#eee", d: "M167 0h178l25.9 252.3L345 512H167l-29.8-253.4z" }),
220
+ /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#6da544", d: "M0 0h167v512H0z" }),
221
+ /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#d80027", d: "M345 0h167v512H345z" })
222
+ ] })
223
+ ] });
224
+ };
225
+ const RussiaIcon = (props) => {
226
+ return /* @__PURE__ */ jsxRuntime.jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", width: "1em", height: "1em", ...props, children: [
227
+ /* @__PURE__ */ jsxRuntime.jsx("mask", { id: "circleFlagsRu0", children: /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "256", cy: "256", r: "256", fill: "#fff" }) }),
228
+ /* @__PURE__ */ jsxRuntime.jsxs("g", { mask: "url(#circleFlagsRu0)", children: [
229
+ /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#0052b4", d: "M512 170v172l-256 32L0 342V170l256-32z" }),
230
+ /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#eee", d: "M512 0v170H0V0Z" }),
231
+ /* @__PURE__ */ jsxRuntime.jsx("path", { fill: "#d80027", d: "M512 342v170H0V342Z" })
232
+ ] })
233
+ ] });
234
+ };
235
+ function getMappedIcon(code) {
236
+ let icon = GlobeIcon;
237
+ switch (code) {
238
+ case "pt-BR":
239
+ icon = BrazilIcon;
240
+ break;
241
+ case "bg":
242
+ case "bg-BG":
243
+ icon = BulgariaIcon;
244
+ break;
245
+ case "da":
246
+ case "da-DK":
247
+ case "en-DK":
248
+ icon = DenmarkIcon;
249
+ break;
250
+ case "fi":
251
+ case "fi-FI":
252
+ case "sv-FI":
253
+ case "en-FI":
254
+ icon = FinlandIcon;
255
+ break;
256
+ case "fr":
257
+ case "fr-FR":
258
+ icon = FranceIcon;
259
+ break;
260
+ case "ka":
261
+ case "ka-GE":
262
+ icon = GeorgiaIcon;
263
+ break;
264
+ case "de":
265
+ case "de-DE":
266
+ case "en-DE":
267
+ icon = GermanyIcon;
268
+ break;
269
+ case "it":
270
+ case "it-IT":
271
+ icon = ItalyIcon;
272
+ break;
273
+ case "ru":
274
+ case "ru-RU":
275
+ icon = RussiaIcon;
276
+ break;
277
+ case "en":
278
+ default:
279
+ icon = GlobeIcon;
280
+ break;
281
+ }
282
+ return icon;
283
+ }
284
+ const LocaleSwitcher = ({ currentLocale, locales }) => {
285
+ const localeCode = currentLocale.code;
286
+ const localeIcon = getMappedIcon(localeCode);
287
+ const localeMenuItems = react$1.useMemo(
288
+ () => locales.map((locale) => ({ ...locale, icon: getMappedIcon(locale.code) })),
289
+ [locales]
290
+ );
291
+ return /* @__PURE__ */ jsxRuntime.jsxs(react.Menu, { placement: "bottom-end", children: [
292
+ /* @__PURE__ */ jsxRuntime.jsx(
293
+ react.MenuButton,
294
+ {
295
+ as: react.Button,
296
+ rightIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.ChevronDownIcon, {}),
297
+ w: { base: 20, md: "28" },
298
+ px: { base: 1, md: 4 },
299
+ size: { base: "sm", md: "lg" },
300
+ children: /* @__PURE__ */ jsxRuntime.jsxs(react.HStack, { children: [
301
+ /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { as: localeIcon }),
302
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: localeCode.toUpperCase() })
303
+ ] })
304
+ }
305
+ ),
306
+ /* @__PURE__ */ jsxRuntime.jsx(react.MenuList, { minW: "fit-content", children: localeMenuItems.map(({ code, name, icon }) => /* @__PURE__ */ jsxRuntime.jsx(react.MenuItem, { as: index$1.Link, to: `/${code}`, icon: /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { as: icon, w: 4, h: 4 }), children: name }, code)) })
307
+ ] });
308
+ };
309
+ const NavLink = react$1.forwardRef(({ slug, label }, ref) => {
310
+ return /* @__PURE__ */ jsxRuntime.jsx(
311
+ react.Text,
312
+ {
313
+ ref,
314
+ as: index$1.Link,
315
+ to: slug,
316
+ p: 2,
317
+ fontWeight: "semibold",
318
+ _hover: { textDecoration: "none", color: "brand.400" },
319
+ children: label
320
+ }
321
+ );
322
+ });
323
+ NavLink.displayName = "NavLink";
324
+ const NavList$1 = ({ slug, label, children }) => {
325
+ const background = react.useColorModeValue("white", "gray.800");
326
+ const backgroundHover = react.useColorModeValue("brand.50", "gray.900");
327
+ return /* @__PURE__ */ jsxRuntime.jsxs(react.Popover, { trigger: "hover", placement: "bottom-start", children: [
328
+ /* @__PURE__ */ jsxRuntime.jsx(react.PopoverTrigger, { children: /* @__PURE__ */ jsxRuntime.jsx(
329
+ react.Text,
330
+ {
331
+ p: 2,
332
+ fontWeight: "semibold",
333
+ cursor: "pointer",
334
+ tabIndex: 0,
335
+ _hover: { textDecoration: "none", color: "brand.400" },
336
+ children: label
337
+ }
338
+ ) }),
339
+ /* @__PURE__ */ jsxRuntime.jsx(
340
+ react.PopoverContent,
341
+ {
342
+ p: 2,
343
+ border: 0,
344
+ minW: "sm",
345
+ maxH: 300,
346
+ overflowY: "auto",
347
+ rounded: "xl",
348
+ boxShadow: "xl",
349
+ bg: background,
350
+ children: /* @__PURE__ */ jsxRuntime.jsx(react.List, { spacing: 2, p: 0, children: children == null ? void 0 : children.map((child, index2) => {
351
+ return /* @__PURE__ */ jsxRuntime.jsx(react.ListItem, { rounded: "md", _hover: { bg: backgroundHover }, children: /* @__PURE__ */ jsxRuntime.jsxs(react.Flex, { as: index$1.Link, to: index$3.buildPath(child.slug, slug), p: 2, role: "group", children: [
352
+ /* @__PURE__ */ jsxRuntime.jsx(react.Text, { fontWeight: 500, transition: "all .3s ease", _groupHover: { color: "brand.400" }, children: child.label }),
353
+ /* @__PURE__ */ jsxRuntime.jsx(
354
+ react.Flex,
355
+ {
356
+ flex: 1,
357
+ justify: "flex-end",
358
+ align: "center",
359
+ opacity: 0,
360
+ transition: "all .3s ease",
361
+ transform: "translateX(-10px)",
362
+ _groupHover: { opacity: 1, transform: "translateX(0)" },
363
+ children: /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { as: icons.ChevronRightIcon, color: "brand.400", w: 5, h: 5 })
364
+ }
365
+ )
366
+ ] }) }, index2);
367
+ }) })
368
+ }
369
+ )
370
+ ] });
371
+ };
372
+ const DesktopNavigation = ({ menu }) => {
373
+ return /* @__PURE__ */ jsxRuntime.jsx(react.Flex, { as: "ul", role: "list", gap: 2, p: 0, display: { base: "none", md: "flex" }, children: menu.map((item, index2) => {
374
+ var _a;
375
+ return /* @__PURE__ */ jsxRuntime.jsx(react.Flex, { as: "li", role: "listitem", children: ((_a = item.children) == null ? void 0 : _a.length) ? /* @__PURE__ */ jsxRuntime.jsx(NavList$1, { ...item }) : /* @__PURE__ */ jsxRuntime.jsx(NavLink, { ...item }) }, index2);
376
+ }) });
377
+ };
378
+ const CHEVRON_DOWN_ICON_SIZE = "1.5rem";
379
+ const NavList = ({ slug, label, children, isExpanded, onExpand }) => {
380
+ return /* @__PURE__ */ jsxRuntime.jsxs(react.Stack, { flex: 1, children: [
381
+ /* @__PURE__ */ jsxRuntime.jsxs(
382
+ react.Flex,
383
+ {
384
+ as: "button",
385
+ p: 2,
386
+ pr: "3px",
387
+ align: "center",
388
+ justifyContent: "space-between",
389
+ _hover: { textDecoration: "none", color: "brand.400" },
390
+ onClick: onExpand,
391
+ children: [
392
+ /* @__PURE__ */ jsxRuntime.jsx(react.Text, { isTruncated: true, fontWeight: 600, children: label }),
393
+ /* @__PURE__ */ jsxRuntime.jsx(
394
+ icons.ChevronDownIcon,
395
+ {
396
+ w: CHEVRON_DOWN_ICON_SIZE,
397
+ h: CHEVRON_DOWN_ICON_SIZE,
398
+ transform: isExpanded ? "rotate(180deg)" : "",
399
+ transition: "all .25s ease-in-out"
400
+ }
401
+ )
402
+ ]
403
+ }
404
+ ),
405
+ /* @__PURE__ */ jsxRuntime.jsx(react.Collapse, { in: isExpanded, transition: { enter: { ease: "easeIn" }, exit: { duration: 0.2 } }, children: /* @__PURE__ */ jsxRuntime.jsx(
406
+ react.List,
407
+ {
408
+ ml: 2,
409
+ pl: 0,
410
+ maxH: 300,
411
+ overflowY: "auto",
412
+ borderLeft: 1,
413
+ borderStyle: "solid",
414
+ borderColor: react.useColorModeValue("gray.200", "gray.700"),
415
+ children: children == null ? void 0 : children.map((child, index2) => /* @__PURE__ */ jsxRuntime.jsx(react.Flex, { as: "li", role: "listitem", children: /* @__PURE__ */ jsxRuntime.jsx(react.Text, { as: index$1.Link, to: index$3.buildPath(child.slug, slug), p: 2, fontSize: "sm", children: child.label }) }, index2))
416
+ }
417
+ ) })
418
+ ] });
419
+ };
420
+ const CLOSE_ICON_SIZE = "0.75rem";
421
+ const HAMBURGER_ICON_SIZE = "1rem";
422
+ const MobileNavigation = ({ menu }) => {
423
+ const [expanded, setExpanded] = react$1.useState(null);
424
+ const { isOpen, onToggle } = react.useDisclosure();
425
+ const background = react.useColorModeValue("gray.50", "gray.900");
426
+ function handleExpand(index2) {
427
+ return () => {
428
+ setExpanded((prev) => prev === index2 ? null : index2);
429
+ };
430
+ }
431
+ function handleClick() {
432
+ setExpanded(null);
433
+ onToggle();
434
+ }
435
+ return /* @__PURE__ */ jsxRuntime.jsxs(react.Box, { display: { base: "block", md: "none" }, children: [
436
+ /* @__PURE__ */ jsxRuntime.jsx(
437
+ react.IconButton,
438
+ {
439
+ icon: isOpen ? /* @__PURE__ */ jsxRuntime.jsx(icons.CloseIcon, { w: CLOSE_ICON_SIZE, h: CLOSE_ICON_SIZE }) : /* @__PURE__ */ jsxRuntime.jsx(icons.HamburgerIcon, { w: HAMBURGER_ICON_SIZE, h: HAMBURGER_ICON_SIZE }),
440
+ size: "sm",
441
+ variant: "ghost",
442
+ "aria-label": `${isOpen ? "Close" : "Open"} navigation menu`,
443
+ "aria-expanded": isOpen,
444
+ onClick: handleClick
445
+ }
446
+ ),
447
+ /* @__PURE__ */ jsxRuntime.jsx(react.Collapse, { in: isOpen, animateOpacity: true, children: /* @__PURE__ */ jsxRuntime.jsx(react.Box, { position: "absolute", top: 16, left: 0, right: 0, w: "100vw", px: 2, children: /* @__PURE__ */ jsxRuntime.jsx(
448
+ react.List,
449
+ {
450
+ spacing: 2,
451
+ p: 2,
452
+ boxShadow: "md",
453
+ borderWidth: "1px",
454
+ borderColor: react.useColorModeValue("gray.200", "gray.700"),
455
+ borderRadius: "md",
456
+ bg: background,
457
+ children: menu.map((item, index2) => {
458
+ var _a;
459
+ return /* @__PURE__ */ jsxRuntime.jsx(react.Flex, { as: "li", role: "listitem", children: ((_a = item.children) == null ? void 0 : _a.length) ? /* @__PURE__ */ jsxRuntime.jsx(NavList, { ...item, isExpanded: index2 === expanded, onExpand: handleExpand(index2) }) : /* @__PURE__ */ jsxRuntime.jsx(NavLink, { ...item }) }, index2);
460
+ })
461
+ }
462
+ ) }) })
463
+ ] });
464
+ };
465
+ const Navigation = ({ menu }) => {
466
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
467
+ /* @__PURE__ */ jsxRuntime.jsx(DesktopNavigation, { menu }),
468
+ /* @__PURE__ */ jsxRuntime.jsx(MobileNavigation, { menu })
469
+ ] });
470
+ };
471
+ const Header = () => {
472
+ var _a;
473
+ const { navigation, localization, config } = index$1.useSiteContext();
474
+ const { currentLocale } = index$1.usePageContext();
475
+ const locales = localization.locales;
476
+ const menu = navigation.header[currentLocale.code] ?? [];
477
+ const toolbar = (_a = config == null ? void 0 : config.header) == null ? void 0 : _a.toolbar;
478
+ const isMultiLanguage = locales.length > 1;
479
+ const hasNavigation = !!menu.length;
480
+ const hasToolbar = !!toolbar || isMultiLanguage;
481
+ return /* @__PURE__ */ jsxRuntime.jsx(
482
+ react.Box,
483
+ {
484
+ as: "header",
485
+ position: "sticky",
486
+ top: 0,
487
+ bg: react.useColorModeValue("white", "gray.900"),
488
+ color: react.useColorModeValue("gray.700", "gray.200"),
489
+ boxShadow: "sm",
490
+ zIndex: 100,
491
+ children: /* @__PURE__ */ jsxRuntime.jsx(index.Container, { children: /* @__PURE__ */ jsxRuntime.jsxs(react.Flex, { as: "nav", gap: 2, py: 2, children: [
492
+ /* @__PURE__ */ jsxRuntime.jsx(Brand, { brand: /* @__PURE__ */ jsxRuntime.jsx(index.Logo, {}) }),
493
+ (hasNavigation || hasToolbar) && /* @__PURE__ */ jsxRuntime.jsxs(
494
+ react.Flex,
495
+ {
496
+ as: "section",
497
+ flex: 1,
498
+ flexDir: { base: "row-reverse", md: "row" },
499
+ justifyContent: "end",
500
+ align: "center",
501
+ gap: 2,
502
+ children: [
503
+ hasNavigation && /* @__PURE__ */ jsxRuntime.jsx(react.Flex, { flex: { base: 0, md: 1 }, children: /* @__PURE__ */ jsxRuntime.jsx(Navigation, { menu }) }),
504
+ hasToolbar && /* @__PURE__ */ jsxRuntime.jsxs(react.Flex, { gap: 2, flex: { base: 1, md: 0 }, justifyContent: "flex-end", children: [
505
+ !!toolbar && toolbar,
506
+ isMultiLanguage && /* @__PURE__ */ jsxRuntime.jsx(LocaleSwitcher, { currentLocale, locales })
507
+ ] })
508
+ ]
509
+ }
510
+ )
511
+ ] }) })
512
+ }
513
+ );
514
+ };
515
+ const Hero = ({ title, subtitle, content, link, image }) => {
516
+ return /* @__PURE__ */ jsxRuntime.jsx(react.Box, { as: "section", bg: "gray.900", children: /* @__PURE__ */ jsxRuntime.jsx(index.Container, { children: /* @__PURE__ */ jsxRuntime.jsxs(react.Flex, { direction: { base: "column", md: "row" }, children: [
517
+ /* @__PURE__ */ jsxRuntime.jsx(react.Flex, { align: "center", justify: { base: "center", md: "flex-start" }, flex: 1, py: 8, pe: 8, children: /* @__PURE__ */ jsxRuntime.jsxs(react.Stack, { spacing: 6, w: "full", maxW: "lg", children: [
518
+ /* @__PURE__ */ jsxRuntime.jsxs(react.Heading, { as: "h1", fontSize: { base: "3xl", md: "4xl", lg: "5xl" }, children: [
519
+ /* @__PURE__ */ jsxRuntime.jsxs(react.Text, { as: "span", display: "block", children: [
520
+ title,
521
+ " —"
522
+ ] }),
523
+ /* @__PURE__ */ jsxRuntime.jsx(react.Text, { as: "span", display: "block", color: "brand.400", children: subtitle })
524
+ ] }),
525
+ /* @__PURE__ */ jsxRuntime.jsx(react.Text, { fontSize: { base: "md", lg: "lg" }, color: "gray.500", children: content }),
526
+ !!link && /* @__PURE__ */ jsxRuntime.jsx(react.Flex, { direction: { base: "column", md: "row" }, children: /* @__PURE__ */ jsxRuntime.jsx(index.LinkButton, { ...link, size: "md", textDecoration: "none" }) })
527
+ ] }) }),
528
+ image && /* @__PURE__ */ jsxRuntime.jsx(react.Flex, { display: { base: "none", md: "flex" }, flex: 1, children: image })
529
+ ] }) }) });
530
+ };
531
+ const Main = ({ children }) => {
532
+ return /* @__PURE__ */ jsxRuntime.jsx(
533
+ react.Flex,
534
+ {
535
+ as: "main",
536
+ direction: "column",
537
+ flexGrow: 1,
538
+ bg: react.useColorModeValue("white", "gray.800"),
539
+ color: react.useColorModeValue("gray.700", "gray.200"),
540
+ children
541
+ }
542
+ );
543
+ };
544
+ const ScrollToTop = () => {
545
+ const [isVisible, setIsVisible] = react$1.useState(false);
546
+ react$1.useEffect(() => {
547
+ const toggleVisibility = () => {
548
+ setIsVisible(window.scrollY > 300);
549
+ };
550
+ window.addEventListener("scroll", toggleVisibility);
551
+ return () => {
552
+ window.removeEventListener("scroll", toggleVisibility);
553
+ };
554
+ }, []);
555
+ function handleClick() {
556
+ window.scrollTo({
557
+ top: 0,
558
+ behavior: "smooth"
559
+ });
560
+ }
561
+ return /* @__PURE__ */ jsxRuntime.jsx(
562
+ react.Box,
563
+ {
564
+ position: "fixed",
565
+ bottom: { base: 4, md: 8, lg: 16 },
566
+ right: { base: 4, md: 8, lg: 16 },
567
+ zIndex: "1000",
568
+ opacity: isVisible ? 1 : 0,
569
+ transform: isVisible ? "translateY(0)" : "translateY(0.5rem)",
570
+ transition: "opacity 0.4s ease, transform 0.4s ease",
571
+ pointerEvents: isVisible ? "auto" : "none",
572
+ children: /* @__PURE__ */ jsxRuntime.jsx(
573
+ react.IconButton,
574
+ {
575
+ "aria-label": "Scroll to top",
576
+ icon: /* @__PURE__ */ jsxRuntime.jsx(icons.ChevronUpIcon, { w: 6, h: 6 }),
577
+ size: "lg",
578
+ shadow: "lg",
579
+ colorScheme: "brand",
580
+ isRound: true,
581
+ onClick: handleClick
582
+ }
583
+ )
584
+ }
585
+ );
586
+ };
587
+ const Layout = ({ children }) => {
588
+ const content = typeof children === "function" ? children({ Hero, Content }) : /* @__PURE__ */ jsxRuntime.jsx(Content, { children });
589
+ return /* @__PURE__ */ jsxRuntime.jsxs(react.Stack, { spacing: 0, position: "relative", w: "100%", minH: "100dvh", children: [
590
+ /* @__PURE__ */ jsxRuntime.jsx(Header, {}),
591
+ /* @__PURE__ */ jsxRuntime.jsx(Main, { children: content }),
592
+ /* @__PURE__ */ jsxRuntime.jsx(Footer, {}),
593
+ /* @__PURE__ */ jsxRuntime.jsx(ScrollToTop, {})
594
+ ] });
595
+ };
596
+ module.exports = Layout;