@x-wave/blog 1.0.8 → 1.0.9

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 (2) hide show
  1. package/index.js +164 -164
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsxs as d, jsx as e, Fragment as z } from "react/jsx-runtime";
2
2
  import { useTranslation as R } from "react-i18next";
3
- import { useLocation as U, useNavigate as G, useParams as ae, Link as de, Navigate as ve, Routes as Ce, Route as ue } from "react-router-dom";
4
- import { X as se, Tag as Te, User as Se, CalendarBlank as ye, MagnifyingGlass as he, List as Le, Sun as me, Moon as ge, Monitor as _e, CaretDown as oe, Globe as Pe, CaretRight as Be } from "@phosphor-icons/react";
3
+ import { useLocation as U, useNavigate as G, useParams as oe, Link as de, Navigate as ve, Routes as Ce, Route as ue } from "react-router-dom";
4
+ import { X as se, Tag as Te, User as Se, CalendarBlank as ye, MagnifyingGlass as he, List as Le, Sun as me, Moon as ge, Monitor as _e, CaretDown as ae, Globe as Pe, CaretRight as Be } from "@phosphor-icons/react";
5
5
  import { useState as L, useEffect as P, createContext as De, useContext as Me, useRef as W } from "react";
6
6
  import Ee from "react-markdown";
7
7
  import Oe from "remark-gfm";
@@ -13,19 +13,19 @@ const Re = "_tabContainer_zk6h4_1", je = "_tab_zk6h4_1", Ae = "_active_zk6h4_45"
13
13
  active: Ae
14
14
  };
15
15
  function He({ hasAdvanced: t }) {
16
- const { t: n } = R(), s = U(), a = G();
16
+ const { t: n } = R(), s = U(), o = G();
17
17
  if (!t) return null;
18
- const o = new URLSearchParams(s.search).has("advanced"), l = () => {
19
- if (o) {
18
+ const a = new URLSearchParams(s.search).has("advanced"), l = () => {
19
+ if (a) {
20
20
  const u = new URLSearchParams(s.search);
21
21
  u.delete("advanced");
22
22
  const p = u.toString(), w = p ? `?${p}` : "";
23
- a(`${s.pathname}${w}${s.hash}`);
23
+ o(`${s.pathname}${w}${s.hash}`);
24
24
  }
25
25
  }, g = () => {
26
- if (!o) {
26
+ if (!a) {
27
27
  const u = new URLSearchParams(s.search);
28
- u.set("advanced", ""), a(`${s.pathname}?${u.toString()}${s.hash}`);
28
+ u.set("advanced", ""), o(`${s.pathname}?${u.toString()}${s.hash}`);
29
29
  }
30
30
  };
31
31
  return /* @__PURE__ */ d("div", { className: Y.tabContainer, children: [
@@ -33,7 +33,7 @@ function He({ hasAdvanced: t }) {
33
33
  "button",
34
34
  {
35
35
  type: "button",
36
- className: `${Y.tab} ${o ? "" : Y.active}`,
36
+ className: `${Y.tab} ${a ? "" : Y.active}`,
37
37
  onClick: l,
38
38
  children: n("ui.simple")
39
39
  }
@@ -42,7 +42,7 @@ function He({ hasAdvanced: t }) {
42
42
  "button",
43
43
  {
44
44
  type: "button",
45
- className: `${Y.tab} ${o ? Y.active : ""}`,
45
+ className: `${Y.tab} ${a ? Y.active : ""}`,
46
46
  onClick: g,
47
47
  children: n("ui.advanced")
48
48
  }
@@ -54,12 +54,12 @@ function qe({ children: t }) {
54
54
  }
55
55
  function be(t) {
56
56
  function n(s) {
57
- const a = s.match(/^---\s*\n([\s\S]*?)\n---\s*\n/);
58
- if (!a) return { frontmatter: {}, content: s };
59
- const c = {}, o = a[1];
57
+ const o = s.match(/^---\s*\n([\s\S]*?)\n---\s*\n/);
58
+ if (!o) return { frontmatter: {}, content: s };
59
+ const c = {}, a = o[1];
60
60
  let l = "", g = !1;
61
61
  const u = [];
62
- for (const w of o.split(`
62
+ for (const w of a.split(`
63
63
  `)) {
64
64
  const _ = w.trim();
65
65
  if (_.startsWith("-")) {
@@ -90,8 +90,8 @@ function be(t) {
90
90
  * Load MDX content for a given language and slug.
91
91
  * Automatically loads the advanced variant if `advanced` is true.
92
92
  */
93
- async loadMDXContent(s, a, c = !1) {
94
- const o = c ? `${a}-advanced.mdx` : `${a}.mdx`, l = `./docs/${s}/${o}`, g = t[l];
93
+ async loadMDXContent(s, o, c = !1) {
94
+ const a = c ? `${o}-advanced.mdx` : `${o}.mdx`, l = `./docs/${s}/${a}`, g = t[l];
95
95
  if (!g) throw new Error(`File not found: ${l}`);
96
96
  const u = await g(), { frontmatter: p, content: w } = n(u);
97
97
  return { content: w, frontmatter: p };
@@ -100,9 +100,9 @@ function be(t) {
100
100
  * Load English content for generating consistent heading IDs.
101
101
  * All heading anchors are derived from English content for stability across translations.
102
102
  */
103
- async loadEnglishContent(s, a = !1) {
104
- const o = `./docs/en/${a ? `${s}-advanced.mdx` : `${s}.mdx`}`, l = t[o];
105
- if (!l) throw new Error(`File not found: ${o}`);
103
+ async loadEnglishContent(s, o = !1) {
104
+ const a = `./docs/en/${o ? `${s}-advanced.mdx` : `${s}.mdx`}`, l = t[a];
105
+ if (!l) throw new Error(`File not found: ${a}`);
106
106
  const g = await l(), { content: u } = n(g);
107
107
  return u;
108
108
  },
@@ -114,25 +114,25 @@ function be(t) {
114
114
  * @returns Promise resolving to tag index mapping tag names to document info
115
115
  */
116
116
  async buildTagIndex(s = "en") {
117
- const a = {}, c = `./docs/${s}/`, o = Object.keys(t).filter(
117
+ const o = {}, c = `./docs/${s}/`, a = Object.keys(t).filter(
118
118
  (l) => l.startsWith(c)
119
119
  );
120
- for (const l of o)
120
+ for (const l of a)
121
121
  try {
122
122
  const g = t[l], u = await g(), { frontmatter: p, content: w } = n(u), _ = l.split("/").pop() || "", f = _.replace(".mdx", "").replace("-advanced", ""), r = w.match(/^#\s+(.+)$/m), v = r ? r[1].trim() : f;
123
123
  if (_.includes("-advanced")) continue;
124
124
  const i = p.tags;
125
125
  if (i && Array.isArray(i))
126
126
  for (const b of i)
127
- a[b] || (a[b] = []), a[b].some((x) => x.slug === f) || a[b].push({ slug: f, title: v });
127
+ o[b] || (o[b] = []), o[b].some((x) => x.slug === f) || o[b].push({ slug: f, title: v });
128
128
  } catch (g) {
129
129
  console.warn(`Failed to process ${l}:`, g);
130
130
  }
131
- return a;
131
+ return o;
132
132
  }
133
133
  };
134
134
  }
135
- function Oo(t) {
135
+ function Ea(t) {
136
136
  const n = be(t);
137
137
  return {
138
138
  mdxFiles: t,
@@ -143,29 +143,29 @@ function Oo(t) {
143
143
  const we = "app-theme", $e = () => typeof window > "u" ? "light" : window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light", pe = (t) => t === "system" ? $e() : t, We = () => typeof window > "u" ? "system" : localStorage.getItem(we) || "system", Ne = () => {
144
144
  const [t, n] = L(We);
145
145
  return P(() => {
146
- const a = pe(t), c = document.querySelector(".xw-blog-root");
147
- if (c && (c.classList.remove("light", "dark"), c.classList.add(a)), t === "system") {
148
- const o = window.matchMedia("(prefers-color-scheme: dark)"), l = () => {
146
+ const o = pe(t), c = document.querySelector(".xw-blog-root");
147
+ if (c && (c.classList.remove("light", "dark"), c.classList.add(o)), t === "system") {
148
+ const a = window.matchMedia("(prefers-color-scheme: dark)"), l = () => {
149
149
  const g = $e(), u = document.querySelector(".xw-blog-root");
150
150
  u && (u.classList.remove("light", "dark"), u.classList.add(g));
151
151
  };
152
- return o.addEventListener("change", l), () => o.removeEventListener("change", l);
152
+ return a.addEventListener("change", l), () => a.removeEventListener("change", l);
153
153
  }
154
154
  }, [t]), {
155
155
  theme: t,
156
- setTheme: (a) => {
157
- localStorage.setItem(we, a), n(a);
156
+ setTheme: (o) => {
157
+ localStorage.setItem(we, o), n(o);
158
158
  },
159
159
  effectiveTheme: pe(t)
160
160
  };
161
161
  }, Fe = (t) => "items" in t, te = (t, n) => t.map((s) => Fe(s) ? {
162
162
  title: ne.getFixedT(n)(s.title),
163
- items: s.items.map((a) => ({
164
- title: ne.getFixedT(n)(a.title),
165
- slug: a.slug,
166
- ...a.hasAdvanced && { hasAdvanced: a.hasAdvanced },
167
- ...a.showTableOfContents !== void 0 && {
168
- showTableOfContents: a.showTableOfContents
163
+ items: s.items.map((o) => ({
164
+ title: ne.getFixedT(n)(o.title),
165
+ slug: o.slug,
166
+ ...o.hasAdvanced && { hasAdvanced: o.hasAdvanced },
167
+ ...o.showTableOfContents !== void 0 && {
168
+ showTableOfContents: o.showTableOfContents
169
169
  }
170
170
  }))
171
171
  } : {
@@ -176,14 +176,14 @@ const we = "app-theme", $e = () => typeof window > "u" ? "light" : window.matchM
176
176
  showTableOfContents: s.showTableOfContents
177
177
  }
178
178
  }), J = (t) => t.toString().toLowerCase().trim().replace(/[^\w\s-]/g, "").replace(/\s+/g, "-").replace(/-+/g, "-").replace(/^-+|-+$/g, ""), Ie = De(null);
179
- function Ro({
179
+ function Oa({
180
180
  children: t,
181
181
  config: n,
182
182
  blog: s,
183
- navigationData: a = []
183
+ navigationData: o = []
184
184
  }) {
185
185
  Ne();
186
- const [c, o] = L({});
186
+ const [c, a] = L({});
187
187
  P(() => {
188
188
  const { buildTagIndex: g } = be(s.mdxFiles), u = n.supportedLanguages.map(async (p) => {
189
189
  try {
@@ -197,12 +197,12 @@ function Ro({
197
197
  const w = {};
198
198
  for (const _ of p)
199
199
  w[_.language] = _.index;
200
- o(w);
200
+ a(w);
201
201
  }).catch((p) => {
202
202
  console.error("Failed to build tag indices:", p);
203
203
  });
204
204
  }, [s.mdxFiles, n.supportedLanguages]);
205
- const l = { ...n, navigationData: a, tagIndex: c };
205
+ const l = { ...n, navigationData: o, tagIndex: c };
206
206
  return /* @__PURE__ */ e(
207
207
  Ie.Provider,
208
208
  {
@@ -236,11 +236,11 @@ const Ke = "_tableOfContents_11q9u_1", ze = "_header_11q9u_20", Ue = "_title_11q
236
236
  level5: tt,
237
237
  level6: nt
238
238
  };
239
- function ot({
239
+ function at({
240
240
  content: t,
241
241
  englishContent: n
242
242
  }) {
243
- const { t: s } = R(), a = U(), c = G(), [o, l] = L([]), [g, u] = L(""), p = W(null);
243
+ const { t: s } = R(), o = U(), c = G(), [a, l] = L([]), [g, u] = L(""), p = W(null);
244
244
  P(() => {
245
245
  u(""), (() => {
246
246
  const f = /^(#{1,6})\s+(.+)$/gm, r = [];
@@ -264,19 +264,19 @@ function ot({
264
264
  l(r);
265
265
  })();
266
266
  }, [t, n]), P(() => {
267
- if (o.length === 0) return;
267
+ if (a.length === 0) return;
268
268
  const _ = setTimeout(() => {
269
- const f = o.filter(
269
+ const f = a.filter(
270
270
  (r) => !document.getElementById(r.id)
271
271
  );
272
272
  f.length > 0 && console.warn("Some heading elements not found:", f);
273
273
  }, 100);
274
274
  return () => clearTimeout(_);
275
- }, [o]), P(() => {
276
- if (o.length === 0) return;
275
+ }, [a]), P(() => {
276
+ if (a.length === 0) return;
277
277
  p.current && p.current.disconnect();
278
278
  const _ = setTimeout(() => {
279
- const f = o.map((r) => document.getElementById(r.id)).filter(Boolean);
279
+ const f = a.map((r) => document.getElementById(r.id)).filter(Boolean);
280
280
  f.length !== 0 && (p.current = new IntersectionObserver(
281
281
  (r) => {
282
282
  const v = r.filter((i) => i.isIntersecting);
@@ -296,15 +296,15 @@ function ot({
296
296
  return () => {
297
297
  clearTimeout(_), p.current && p.current.disconnect();
298
298
  };
299
- }, [o]), P(() => () => {
299
+ }, [a]), P(() => () => {
300
300
  p.current && p.current.disconnect();
301
301
  }, []);
302
302
  const w = (_) => {
303
303
  const f = document.getElementById(_);
304
304
  if (f) {
305
- const r = new URLSearchParams(a.search);
305
+ const r = new URLSearchParams(o.search);
306
306
  r.set("a", _), c(
307
- `${a.pathname}?${r.toString()}${a.hash}`,
307
+ `${o.pathname}?${r.toString()}${o.hash}`,
308
308
  {
309
309
  replace: !0
310
310
  }
@@ -316,9 +316,9 @@ function ot({
316
316
  });
317
317
  }
318
318
  };
319
- return o.length === 0 ? null : /* @__PURE__ */ d("aside", { className: H.tableOfContents, children: [
319
+ return a.length === 0 ? null : /* @__PURE__ */ d("aside", { className: H.tableOfContents, children: [
320
320
  /* @__PURE__ */ e("div", { className: H.header, children: /* @__PURE__ */ e("span", { className: H.title, children: s("ui.onThisPage", "On this page") }) }),
321
- /* @__PURE__ */ e("nav", { className: H.nav, children: /* @__PURE__ */ e("ul", { className: H.list, children: o.map((_) => /* @__PURE__ */ e("li", { className: H.item, children: /* @__PURE__ */ e(
321
+ /* @__PURE__ */ e("nav", { className: H.nav, children: /* @__PURE__ */ e("ul", { className: H.list, children: a.map((_) => /* @__PURE__ */ e("li", { className: H.item, children: /* @__PURE__ */ e(
322
322
  "button",
323
323
  {
324
324
  className: `${H.link} ${H[`level${_.level}`]} ${g === _.id ? H.active : ""}`,
@@ -329,8 +329,8 @@ function ot({
329
329
  ) }, _.id)) }) })
330
330
  ] });
331
331
  }
332
- const at = "_overlay_1e1d4_1", st = "_modal_1e1d4_26", ct = "_header_1e1d4_50", rt = "_title_1e1d4_58", lt = "_closeButton_1e1d4_65", it = "_results_1e1d4_86", dt = "_resultsList_1e1d4_94", ut = "_resultItem_1e1d4_100", ht = "_resultTitle_1e1d4_119", mt = "_resultSlug_1e1d4_124", gt = "_noResults_1e1d4_130", O = {
333
- overlay: at,
332
+ const ot = "_overlay_1e1d4_1", st = "_modal_1e1d4_26", ct = "_header_1e1d4_50", rt = "_title_1e1d4_58", lt = "_closeButton_1e1d4_65", it = "_results_1e1d4_86", dt = "_resultsList_1e1d4_94", ut = "_resultItem_1e1d4_100", ht = "_resultTitle_1e1d4_119", mt = "_resultSlug_1e1d4_124", gt = "_noResults_1e1d4_130", O = {
333
+ overlay: ot,
334
334
  modal: st,
335
335
  header: ct,
336
336
  title: rt,
@@ -346,14 +346,14 @@ function _t({
346
346
  tag: t,
347
347
  results: n,
348
348
  language: s,
349
- onClose: a
349
+ onClose: o
350
350
  }) {
351
- const { t: c } = R(), { config: o } = j(), l = G(), g = (u) => {
352
- const p = o.basePath || "";
353
- l(`${p}/${s}/${u}`), a();
351
+ const { t: c } = R(), { config: a } = j(), l = G(), g = (u) => {
352
+ const p = a.basePath || "";
353
+ l(`${p}/${s}/${u}`), o();
354
354
  };
355
355
  return fe(
356
- /* @__PURE__ */ e("div", { className: O.overlay, onClick: a, children: /* @__PURE__ */ d("div", { className: O.modal, onClick: (u) => u.stopPropagation(), children: [
356
+ /* @__PURE__ */ e("div", { className: O.overlay, onClick: o, children: /* @__PURE__ */ d("div", { className: O.modal, onClick: (u) => u.stopPropagation(), children: [
357
357
  /* @__PURE__ */ d("div", { className: O.header, children: [
358
358
  /* @__PURE__ */ d("h2", { className: O.title, children: [
359
359
  c("ui.tagResults"),
@@ -365,7 +365,7 @@ function _t({
365
365
  {
366
366
  type: "button",
367
367
  className: O.closeButton,
368
- onClick: a,
368
+ onClick: o,
369
369
  "aria-label": "Close",
370
370
  children: /* @__PURE__ */ e(se, {})
371
371
  }
@@ -399,10 +399,10 @@ const pt = "_tags_11t8a_1", vt = "_compact_11t8a_9", ft = "_tagLabel_11t8a_15",
399
399
  tag: $t
400
400
  };
401
401
  function Nt({ tags: t, variant: n = "default", onTagClick: s }) {
402
- const { t: a } = R();
402
+ const { t: o } = R();
403
403
  if (!t || t.length === 0) return null;
404
- const c = (o) => {
405
- s && s(o);
404
+ const c = (a) => {
405
+ s && s(a);
406
406
  };
407
407
  return /* @__PURE__ */ d(
408
408
  "div",
@@ -412,20 +412,20 @@ function Nt({ tags: t, variant: n = "default", onTagClick: s }) {
412
412
  n === "default" && /* @__PURE__ */ d("div", { className: K.tagLabel, children: [
413
413
  /* @__PURE__ */ e(Te, { className: K.tagIcon, weight: "duotone" }),
414
414
  /* @__PURE__ */ d("span", { children: [
415
- a("ui.tags"),
415
+ o("ui.tags"),
416
416
  ":"
417
417
  ] })
418
418
  ] }),
419
- /* @__PURE__ */ e("div", { className: K.tagList, children: t.map((o) => /* @__PURE__ */ e(
419
+ /* @__PURE__ */ e("div", { className: K.tagList, children: t.map((a) => /* @__PURE__ */ e(
420
420
  "button",
421
421
  {
422
422
  type: "button",
423
423
  className: K.tag,
424
- onClick: () => c(o),
425
- "aria-label": `${a("ui.filterByTag")}: ${o}`,
426
- children: o
424
+ onClick: () => c(a),
425
+ "aria-label": `${o("ui.filterByTag")}: ${a}`,
426
+ children: a
427
427
  },
428
- o
428
+ a
429
429
  )) })
430
430
  ]
431
431
  }
@@ -449,7 +449,7 @@ const It = "_contentPage_1nxj5_1", xt = "_metadata_1nxj5_20", kt = "_author_1nxj
449
449
  };
450
450
  function Rt({ language: t }) {
451
451
  var ie;
452
- const { slug: n } = ae(), s = U(), { t: a } = R(), { config: c, loadContent: o, loadEnglishContent: l } = j(), [g, u] = L(""), [p, w] = L(""), [_, f] = L({}), [r, v] = L(!0), [i, b] = L(null), [x, T] = L(!0), [m, N] = L(null), B = W(0), Q = W([]), Z = ((h) => {
452
+ const { slug: n } = oe(), s = U(), { t: o } = R(), { config: c, loadContent: a, loadEnglishContent: l } = j(), [g, u] = L(""), [p, w] = L(""), [_, f] = L({}), [r, v] = L(!0), [i, b] = L(null), [x, T] = L(!0), [m, N] = L(null), B = W(0), Q = W([]), Z = ((h) => {
453
453
  const k = {
454
454
  advanced: !1,
455
455
  anchor: ""
@@ -481,10 +481,10 @@ function Rt({ language: t }) {
481
481
  try {
482
482
  let $;
483
483
  try {
484
- $ = await o(t, n, A);
484
+ $ = await a(t, n, A);
485
485
  } catch {
486
486
  if (A)
487
- $ = await o(t, n, !1);
487
+ $ = await a(t, n, !1);
488
488
  else
489
489
  throw new Error("Content not found");
490
490
  }
@@ -512,7 +512,7 @@ function Rt({ language: t }) {
512
512
  t,
513
513
  A,
514
514
  c.navigationData,
515
- o,
515
+ a,
516
516
  l
517
517
  ]), P(() => {
518
518
  if (!r && Z.anchor) {
@@ -549,7 +549,7 @@ function Rt({ language: t }) {
549
549
  ] }),
550
550
  _.date && /* @__PURE__ */ d("span", { className: D.date, children: [
551
551
  /* @__PURE__ */ e(ye, { size: 16, weight: "regular" }),
552
- a("ui.lastEdited"),
552
+ o("ui.lastEdited"),
553
553
  ": ",
554
554
  _.date
555
555
  ] })
@@ -673,7 +673,7 @@ function Rt({ language: t }) {
673
673
  }
674
674
  )
675
675
  ] }),
676
- x && /* @__PURE__ */ e(ot, { content: g, englishContent: p }),
676
+ x && /* @__PURE__ */ e(at, { content: g, englishContent: p }),
677
677
  m && ((ie = c.tagIndex) == null ? void 0 : ie[t]) && /* @__PURE__ */ e(
678
678
  _t,
679
679
  {
@@ -706,7 +706,7 @@ const jt = "_searchButton_1k9sl_1", At = "_searchIcon_1k9sl_17", Ht = "_searchHi
706
706
  hint: tn
707
707
  };
708
708
  function nn({ language: t }) {
709
- const { t: n } = R(), s = G(), { config: a } = j(), [c, o] = L(!1), [l, g] = L(""), [u, p] = L([]), [w, _] = L(0), f = W(null), r = W(null), i = typeof navigator < "u" && /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform) ? "⌘K" : "Ctrl+K", b = (a.navigationData ? te(a.navigationData, t) : []).flatMap((m) => "items" in m ? m.items.map((N) => ({
709
+ const { t: n } = R(), s = G(), { config: o } = j(), [c, a] = L(!1), [l, g] = L(""), [u, p] = L([]), [w, _] = L(0), f = W(null), r = W(null), i = typeof navigator < "u" && /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform) ? "⌘K" : "Ctrl+K", b = (o.navigationData ? te(o.navigationData, t) : []).flatMap((m) => "items" in m ? m.items.map((N) => ({
710
710
  title: N.title,
711
711
  slug: N.slug
712
712
  })) : [{ title: m.title, slug: m.slug }]);
@@ -721,20 +721,20 @@ function nn({ language: t }) {
721
721
  p(N), _(0);
722
722
  }, [l]), P(() => {
723
723
  const m = (N) => {
724
- (N.metaKey || N.ctrlKey) && N.key === "k" && (N.preventDefault(), o(!0), setTimeout(() => {
724
+ (N.metaKey || N.ctrlKey) && N.key === "k" && (N.preventDefault(), a(!0), setTimeout(() => {
725
725
  var B;
726
726
  return (B = f.current) == null ? void 0 : B.focus();
727
- }, 100)), N.key === "Escape" && c && (o(!1), g(""));
727
+ }, 100)), N.key === "Escape" && c && (a(!1), g(""));
728
728
  };
729
729
  return document.addEventListener("keydown", m), () => document.removeEventListener("keydown", m);
730
730
  }, [c]), P(() => {
731
731
  const m = () => {
732
- o(!0), setTimeout(() => {
732
+ a(!0), setTimeout(() => {
733
733
  var B;
734
734
  return (B = f.current) == null ? void 0 : B.focus();
735
735
  }, 100);
736
736
  }, N = () => {
737
- o(!1), g("");
737
+ a(!1), g("");
738
738
  };
739
739
  return window.addEventListener("blog:open-search", m), window.addEventListener("blog:close-search", N), () => {
740
740
  window.removeEventListener("blog:open-search", m), window.removeEventListener("blog:close-search", N);
@@ -745,13 +745,13 @@ function nn({ language: t }) {
745
745
  };
746
746
  P(() => {
747
747
  const m = (N) => {
748
- r.current && !r.current.contains(N.target) && (o(!1), g(""));
748
+ r.current && !r.current.contains(N.target) && (a(!1), g(""));
749
749
  };
750
750
  return c && document.addEventListener("mousedown", m), () => document.removeEventListener("mousedown", m);
751
751
  }, [c]);
752
752
  const T = (m) => {
753
- const N = a.basePath || "";
754
- s(`${N}/${t}/${m}`), o(!1), g("");
753
+ const N = o.basePath || "";
754
+ s(`${N}/${t}/${m}`), a(!1), g("");
755
755
  };
756
756
  return /* @__PURE__ */ d(z, { children: [
757
757
  /* @__PURE__ */ d(
@@ -760,7 +760,7 @@ function nn({ language: t }) {
760
760
  type: "button",
761
761
  className: S.searchButton,
762
762
  onClick: () => {
763
- o(!0), setTimeout(() => {
763
+ a(!0), setTimeout(() => {
764
764
  var m;
765
765
  return (m = f.current) == null ? void 0 : m.focus();
766
766
  }, 100);
@@ -779,7 +779,7 @@ function nn({ language: t }) {
779
779
  {
780
780
  className: S.searchOverlay,
781
781
  onClick: () => {
782
- o(!1), g("");
782
+ a(!1), g("");
783
783
  },
784
784
  children: /* @__PURE__ */ d(
785
785
  "div",
@@ -808,7 +808,7 @@ function nn({ language: t }) {
808
808
  type: "button",
809
809
  className: S.closeButton,
810
810
  onClick: () => {
811
- o(!1), g("");
811
+ a(!1), g("");
812
812
  },
813
813
  "aria-label": "Close search",
814
814
  children: /* @__PURE__ */ e(se, {})
@@ -855,9 +855,9 @@ function nn({ language: t }) {
855
855
  )
856
856
  ] });
857
857
  }
858
- const on = "_header_jrobc_1", an = "_container_jrobc_24", sn = "_content_jrobc_36", cn = "_leftSection_jrobc_43", rn = "_mobileMenuButton_jrobc_49", ln = "_burgerIcon_jrobc_87", dn = "_logo_jrobc_92", un = "_nav_jrobc_98", hn = "_navLink_jrobc_109", mn = "_externalIcon_jrobc_135", gn = "_supportDropdown_jrobc_141", _n = "_themeDropdown_jrobc_145", pn = "_themeButton_jrobc_149", vn = "_themeIcon_jrobc_171", fn = "_supportButton_jrobc_177", bn = "_caretIcon_jrobc_198", wn = "_dropdownMenu_jrobc_208", $n = "_dropdownItem_jrobc_221", Nn = "_dropdownIcon_jrobc_244", I = {
859
- header: on,
860
- container: an,
858
+ const an = "_header_jrobc_1", on = "_container_jrobc_24", sn = "_content_jrobc_36", cn = "_leftSection_jrobc_43", rn = "_mobileMenuButton_jrobc_49", ln = "_burgerIcon_jrobc_87", dn = "_logo_jrobc_92", un = "_nav_jrobc_98", hn = "_navLink_jrobc_109", mn = "_externalIcon_jrobc_135", gn = "_supportDropdown_jrobc_141", _n = "_themeDropdown_jrobc_145", pn = "_themeButton_jrobc_149", vn = "_themeIcon_jrobc_171", fn = "_supportButton_jrobc_177", bn = "_caretIcon_jrobc_198", wn = "_dropdownMenu_jrobc_208", $n = "_dropdownItem_jrobc_221", Nn = "_dropdownIcon_jrobc_244", I = {
859
+ header: an,
860
+ container: on,
861
861
  content: sn,
862
862
  leftSection: cn,
863
863
  mobileMenuButton: rn,
@@ -877,7 +877,7 @@ const on = "_header_jrobc_1", an = "_container_jrobc_24", sn = "_content_jrobc_3
877
877
  dropdownIcon: Nn
878
878
  };
879
879
  function In({ onMobileMenuToggle: t }) {
880
- const { t: n, i18n: s } = R(), { config: a } = j(), c = a.header ?? {}, o = c.navLinks ?? [], l = c.dropdownItems ?? [], [g, u] = L(!1), [p, w] = L(!1), { theme: _, setTheme: f } = Ne(), r = W(null), v = W(null);
880
+ const { t: n, i18n: s } = R(), { config: o } = j(), c = o.header ?? {}, a = c.navLinks ?? [], l = c.dropdownItems ?? [], [g, u] = L(!1), [p, w] = L(!1), { theme: _, setTheme: f } = Ne(), r = W(null), v = W(null);
881
881
  return P(() => {
882
882
  const i = (b) => {
883
883
  r.current && !r.current.contains(b.target) && u(!1), v.current && !v.current.contains(b.target) && w(!1);
@@ -913,7 +913,7 @@ function In({ onMobileMenuToggle: t }) {
913
913
  _ === "light" && /* @__PURE__ */ e(me, { className: I.themeIcon }),
914
914
  _ === "dark" && /* @__PURE__ */ e(ge, { className: I.themeIcon }),
915
915
  _ === "system" && /* @__PURE__ */ e(_e, { className: I.themeIcon }),
916
- /* @__PURE__ */ e(oe, { className: I.caretIcon })
916
+ /* @__PURE__ */ e(ae, { className: I.caretIcon })
917
917
  ]
918
918
  }
919
919
  ),
@@ -973,7 +973,7 @@ function In({ onMobileMenuToggle: t }) {
973
973
  "aria-haspopup": "true",
974
974
  children: [
975
975
  n("ui.support"),
976
- /* @__PURE__ */ e(oe, { className: I.caretIcon })
976
+ /* @__PURE__ */ e(ae, { className: I.caretIcon })
977
977
  ]
978
978
  }
979
979
  ),
@@ -995,7 +995,7 @@ function In({ onMobileMenuToggle: t }) {
995
995
  );
996
996
  }) })
997
997
  ] }),
998
- o.map((i, b) => {
998
+ a.map((i, b) => {
999
999
  const x = i.target ?? (typeof i.url == "string" && i.url.startsWith("http") ? "_blank" : "_self"), T = i.rel ?? (x === "_blank" ? "noopener noreferrer" : void 0), m = i.icon;
1000
1000
  return /* @__PURE__ */ d(
1001
1001
  "a",
@@ -1020,14 +1020,14 @@ function ce({
1020
1020
  styles: t,
1021
1021
  onLanguageChange: n
1022
1022
  }) {
1023
- const { i18n: s } = R(), a = U(), c = G(), { config: o } = j(), [l, g] = L(!1), u = W(null), p = s.language, w = (f) => {
1024
- const r = o.basePath || "";
1025
- let v = a.pathname;
1023
+ const { i18n: s } = R(), o = U(), c = G(), { config: a } = j(), [l, g] = L(!1), u = W(null), p = s.language, w = (f) => {
1024
+ const r = a.basePath || "";
1025
+ let v = o.pathname;
1026
1026
  r && v.startsWith(r) && (v = v.slice(r.length));
1027
1027
  const i = v.split("/").filter(Boolean), b = i[0];
1028
1028
  let x = "";
1029
- o.supportedLanguages.includes(b) ? (i[0] = f, x = `${r}/${i.join("/")}`) : x = `${r}/${f}${v}`;
1030
- const T = x + a.search + a.hash;
1029
+ a.supportedLanguages.includes(b) ? (i[0] = f, x = `${r}/${i.join("/")}`) : x = `${r}/${f}${v}`;
1030
+ const T = x + o.search + o.hash;
1031
1031
  s.changeLanguage(f), c(T), g(!1), n == null || n();
1032
1032
  };
1033
1033
  P(() => {
@@ -1049,11 +1049,11 @@ function ce({
1049
1049
  children: [
1050
1050
  /* @__PURE__ */ e(Pe, { className: t.icon }),
1051
1051
  _(p),
1052
- /* @__PURE__ */ e(oe, { className: t.chevron })
1052
+ /* @__PURE__ */ e(ae, { className: t.chevron })
1053
1053
  ]
1054
1054
  }
1055
1055
  ),
1056
- l && /* @__PURE__ */ e("div", { className: t.languageDropdown, role: "listbox", children: o.supportedLanguages.map((f) => /* @__PURE__ */ e(
1056
+ l && /* @__PURE__ */ e("div", { className: t.languageDropdown, role: "listbox", children: a.supportedLanguages.map((f) => /* @__PURE__ */ e(
1057
1057
  "button",
1058
1058
  {
1059
1059
  type: "button",
@@ -1068,7 +1068,7 @@ function ce({
1068
1068
  ] });
1069
1069
  }
1070
1070
  function re({ styles: t, onLinkClick: n }) {
1071
- const { i18n: s } = R(), a = U(), { config: c } = j(), [o, l] = L(() => {
1071
+ const { i18n: s } = R(), o = U(), { config: c } = j(), [a, l] = L(() => {
1072
1072
  if (!c.navigationData) return {};
1073
1073
  const r = s.language;
1074
1074
  return te(c.navigationData, r).reduce(
@@ -1106,13 +1106,13 @@ function re({ styles: t, onLinkClick: n }) {
1106
1106
  }));
1107
1107
  }, w = (r) => {
1108
1108
  const v = c.basePath || "";
1109
- let i = a.pathname;
1109
+ let i = o.pathname;
1110
1110
  v && i.startsWith(v) && (i = i.slice(v.length));
1111
1111
  const b = i.split("/").filter(Boolean);
1112
1112
  return b[b.length - 1] === r;
1113
1113
  }, _ = (r) => {
1114
1114
  const v = c.basePath || "";
1115
- let i = a.pathname;
1115
+ let i = o.pathname;
1116
1116
  v && i.startsWith(v) && (i = i.slice(v.length));
1117
1117
  const b = i.split("/").filter(Boolean);
1118
1118
  return b[0] && c.supportedLanguages.includes(b[0]) ? `${v}/${b[0]}/${r}` : `${v}/${g}/${r}`;
@@ -1124,7 +1124,7 @@ function re({ styles: t, onLinkClick: n }) {
1124
1124
  "button",
1125
1125
  {
1126
1126
  type: "button",
1127
- className: `${t.sectionButton} ${o[r.title] ? t.expanded : ""}`,
1127
+ className: `${t.sectionButton} ${a[r.title] ? t.expanded : ""}`,
1128
1128
  onClick: () => p(r.title),
1129
1129
  children: [
1130
1130
  r.title,
@@ -1132,7 +1132,7 @@ function re({ styles: t, onLinkClick: n }) {
1132
1132
  ]
1133
1133
  }
1134
1134
  ),
1135
- o[r.title] && /* @__PURE__ */ e("div", { className: t.sectionItems, children: r.items.map((v) => /* @__PURE__ */ e(
1135
+ a[r.title] && /* @__PURE__ */ e("div", { className: t.sectionItems, children: r.items.map((v) => /* @__PURE__ */ e(
1136
1136
  de,
1137
1137
  {
1138
1138
  to: _(v.slug),
@@ -1153,7 +1153,7 @@ function re({ styles: t, onLinkClick: n }) {
1153
1153
  r.slug
1154
1154
  )) });
1155
1155
  }
1156
- function jo({
1156
+ function Ra({
1157
1157
  styles: t,
1158
1158
  onLinkClick: n,
1159
1159
  onLanguageChange: s
@@ -1193,12 +1193,12 @@ const xn = "_backdrop_1a7pu_1", kn = "_open_1a7pu_13", Cn = "_mobileMenu_1a7pu_1
1193
1193
  navItemTitle: Yn
1194
1194
  };
1195
1195
  function Vn({ isOpen: t, onClose: n }) {
1196
- const { config: s } = j(), a = s.logo;
1196
+ const { config: s } = j(), o = s.logo;
1197
1197
  return P(() => (t ? document.body.style.overflow = "hidden" : document.body.style.overflow = "unset", () => {
1198
1198
  document.body.style.overflow = "unset";
1199
1199
  }), [t]), P(() => {
1200
- const c = (o) => {
1201
- o.key === "Escape" && t && n();
1200
+ const c = (a) => {
1201
+ a.key === "Escape" && t && n();
1202
1202
  };
1203
1203
  return document.addEventListener("keydown", c), () => document.removeEventListener("keydown", c);
1204
1204
  }, [t, n]), /* @__PURE__ */ d(z, { children: [
@@ -1212,7 +1212,7 @@ function Vn({ isOpen: t, onClose: n }) {
1212
1212
  /* @__PURE__ */ d("div", { className: `${M.mobileMenu} ${t ? M.open : ""}`, children: [
1213
1213
  /* @__PURE__ */ d("div", { className: M.header, children: [
1214
1214
  /* @__PURE__ */ d("div", { className: M.brand, children: [
1215
- a && /* @__PURE__ */ e(a, { className: M.cloudIcon }),
1215
+ o && /* @__PURE__ */ e(o, { className: M.cloudIcon }),
1216
1216
  /* @__PURE__ */ e("h1", { className: M.title, children: s.title })
1217
1217
  ] }),
1218
1218
  /* @__PURE__ */ e(
@@ -1231,30 +1231,30 @@ function Vn({ isOpen: t, onClose: n }) {
1231
1231
  ] })
1232
1232
  ] });
1233
1233
  }
1234
- const Jn = "_sidebar_1tdxt_1", Zn = "_header_1tdxt_17", eo = "_brand_1tdxt_29", to = "_cloudIcon_1tdxt_35", no = "_title_1tdxt_44", oo = "_languageSelect_1tdxt_55", ao = "_languageButton_1tdxt_61", so = "_icon_1tdxt_99", co = "_chevron_1tdxt_104", ro = "_languageDropdown_1tdxt_114", lo = "_languageOption_1tdxt_128", io = "_selected_1tdxt_147", uo = "_scrollArea_1tdxt_152", ho = "_navigation_1tdxt_158", mo = "_section_1tdxt_164", go = "_sectionButton_1tdxt_170", _o = "_expanded_1tdxt_213", po = "_sectionItems_1tdxt_217", vo = "_navItem_1tdxt_225", fo = "_active_1tdxt_238", bo = "_navItemContent_1tdxt_243", q = {
1234
+ const Jn = "_sidebar_1tdxt_1", Zn = "_header_1tdxt_17", ea = "_brand_1tdxt_29", ta = "_cloudIcon_1tdxt_35", na = "_title_1tdxt_44", aa = "_languageSelect_1tdxt_55", oa = "_languageButton_1tdxt_61", sa = "_icon_1tdxt_99", ca = "_chevron_1tdxt_104", ra = "_languageDropdown_1tdxt_114", la = "_languageOption_1tdxt_128", ia = "_selected_1tdxt_147", da = "_scrollArea_1tdxt_152", ua = "_navigation_1tdxt_158", ha = "_section_1tdxt_164", ma = "_sectionButton_1tdxt_170", ga = "_expanded_1tdxt_213", _a = "_sectionItems_1tdxt_217", pa = "_navItem_1tdxt_225", va = "_active_1tdxt_238", fa = "_navItemContent_1tdxt_243", q = {
1235
1235
  sidebar: Jn,
1236
1236
  header: Zn,
1237
- brand: eo,
1238
- cloudIcon: to,
1239
- title: no,
1240
- languageSelect: oo,
1241
- languageButton: ao,
1242
- icon: so,
1243
- chevron: co,
1244
- languageDropdown: ro,
1245
- languageOption: lo,
1246
- selected: io,
1247
- scrollArea: uo,
1248
- navigation: ho,
1249
- section: mo,
1250
- sectionButton: go,
1251
- expanded: _o,
1252
- sectionItems: po,
1253
- navItem: vo,
1254
- active: fo,
1255
- navItemContent: bo
1237
+ brand: ea,
1238
+ cloudIcon: ta,
1239
+ title: na,
1240
+ languageSelect: aa,
1241
+ languageButton: oa,
1242
+ icon: sa,
1243
+ chevron: ca,
1244
+ languageDropdown: ra,
1245
+ languageOption: la,
1246
+ selected: ia,
1247
+ scrollArea: da,
1248
+ navigation: ua,
1249
+ section: ha,
1250
+ sectionButton: ma,
1251
+ expanded: ga,
1252
+ sectionItems: _a,
1253
+ navItem: pa,
1254
+ active: va,
1255
+ navItemContent: fa
1256
1256
  };
1257
- function wo() {
1257
+ function ba() {
1258
1258
  const { config: t } = j(), n = t.logo, s = t.supportedLanguages.length > 1;
1259
1259
  return /* @__PURE__ */ d("div", { className: q.sidebar, children: [
1260
1260
  /* @__PURE__ */ d("div", { className: q.header, children: [
@@ -1267,42 +1267,42 @@ function wo() {
1267
1267
  /* @__PURE__ */ e("div", { className: q.scrollArea, children: /* @__PURE__ */ e(re, { styles: q }) })
1268
1268
  ] });
1269
1269
  }
1270
- const $o = "_app_1v4z4_1", No = "_layout_1v4z4_9", Io = "_main_1v4z4_15", xo = "_contentWrapper_1v4z4_27", ee = {
1271
- app: $o,
1272
- layout: No,
1273
- main: Io,
1274
- contentWrapper: xo
1270
+ const wa = "_app_1v4z4_1", $a = "_layout_1v4z4_9", Na = "_main_1v4z4_15", Ia = "_contentWrapper_1v4z4_27", ee = {
1271
+ app: wa,
1272
+ layout: $a,
1273
+ main: Na,
1274
+ contentWrapper: Ia
1275
1275
  };
1276
- function ko({ children: t }) {
1277
- const { language: n } = ae(), { i18n: s } = R(), { config: a } = j(), [c, o] = L(!1);
1276
+ function xa({ children: t }) {
1277
+ const { language: n } = oe(), { i18n: s } = R(), { config: o } = j(), [c, a] = L(!1);
1278
1278
  P(() => {
1279
- n && a.supportedLanguages.includes(n) && s.changeLanguage(n);
1280
- }, [n, s, a.supportedLanguages]);
1279
+ n && o.supportedLanguages.includes(n) && s.changeLanguage(n);
1280
+ }, [n, s, o.supportedLanguages]);
1281
1281
  const l = () => {
1282
- o(!c);
1282
+ a(!c);
1283
1283
  }, g = () => {
1284
- o(!1);
1284
+ a(!1);
1285
1285
  };
1286
- if (!n || !a.supportedLanguages.includes(n))
1286
+ if (!n || !o.supportedLanguages.includes(n))
1287
1287
  return /* @__PURE__ */ e(ve, { to: "/en/welcome", replace: !0 });
1288
- const u = !!a.header, p = !!a.navigationData;
1288
+ const u = !!o.header, p = !!o.navigationData && o.navigationData.length > 0;
1289
1289
  return /* @__PURE__ */ d("div", { className: ee.app, children: [
1290
1290
  u && /* @__PURE__ */ e(In, { onMobileMenuToggle: l }),
1291
1291
  /* @__PURE__ */ e(Vn, { isOpen: c, onClose: g }),
1292
1292
  /* @__PURE__ */ d("div", { className: ee.layout, children: [
1293
- p && /* @__PURE__ */ e(wo, {}),
1293
+ p && /* @__PURE__ */ e(ba, {}),
1294
1294
  /* @__PURE__ */ e("main", { className: ee.main, children: /* @__PURE__ */ e("div", { className: ee.contentWrapper, children: t }) })
1295
1295
  ] })
1296
1296
  ] });
1297
1297
  }
1298
- function Ao() {
1299
- const { language: t } = ae();
1300
- return /* @__PURE__ */ e(ko, { children: /* @__PURE__ */ d(Ce, { children: [
1298
+ function ja() {
1299
+ const { language: t } = oe();
1300
+ return /* @__PURE__ */ e(xa, { children: /* @__PURE__ */ d(Ce, { children: [
1301
1301
  /* @__PURE__ */ e(ue, { path: "/:slug", element: /* @__PURE__ */ e(Rt, { language: t }) }),
1302
1302
  /* @__PURE__ */ e(ue, { path: "/", element: /* @__PURE__ */ e(ve, { to: "welcome", replace: !0 }) })
1303
1303
  ] }) });
1304
1304
  }
1305
- function Ho() {
1305
+ function Aa() {
1306
1306
  return {
1307
1307
  openSearchModal: () => {
1308
1308
  window.dispatchEvent(new CustomEvent("blog:open-search"));
@@ -1312,42 +1312,42 @@ function Ho() {
1312
1312
  }
1313
1313
  };
1314
1314
  }
1315
- function qo() {
1316
- const { i18n: t } = R(), n = U(), s = G(), { config: a } = j();
1315
+ function Ha() {
1316
+ const { i18n: t } = R(), n = U(), s = G(), { config: o } = j();
1317
1317
  return (c) => {
1318
- const o = a.basePath || "";
1318
+ const a = o.basePath || "";
1319
1319
  let l = n.pathname;
1320
- o && l.startsWith(o) && (l = l.slice(o.length));
1320
+ a && l.startsWith(a) && (l = l.slice(a.length));
1321
1321
  const g = l.split("/").filter(Boolean), u = g[0];
1322
1322
  let p = "";
1323
- a.supportedLanguages.includes(u) ? (g[0] = c, p = `${o}/${g.join("/")}`) : p = `${o}/${c}${l}`;
1323
+ o.supportedLanguages.includes(u) ? (g[0] = c, p = `${a}/${g.join("/")}`) : p = `${a}/${c}${l}`;
1324
1324
  const w = p + n.search + n.hash;
1325
1325
  t.changeLanguage(c), s(w);
1326
1326
  };
1327
1327
  }
1328
1328
  export {
1329
1329
  He as AdvancedModeToggle,
1330
- Ro as BlogProvider,
1330
+ Oa as BlogProvider,
1331
1331
  qe as BlogRoot,
1332
1332
  Rt as ContentPage,
1333
- ko as DocumentationLayout,
1334
- Ao as DocumentationRoutes,
1333
+ xa as DocumentationLayout,
1334
+ ja as DocumentationRoutes,
1335
1335
  In as Header,
1336
1336
  ce as LanguageSelector,
1337
1337
  Vn as MobileMenu,
1338
- jo as NavigationContent,
1338
+ Ra as NavigationContent,
1339
1339
  re as NavigationMenu,
1340
1340
  nn as SearchBar,
1341
- wo as Sidebar,
1342
- ot as TableOfContents,
1341
+ ba as Sidebar,
1342
+ at as TableOfContents,
1343
1343
  _t as TagResultsModal,
1344
1344
  Nt as Tags,
1345
- Oo as createBlogUtils,
1345
+ Ea as createBlogUtils,
1346
1346
  be as createContentLoaders,
1347
1347
  J as generateHeadingId,
1348
1348
  te as getNavigationData,
1349
1349
  j as useBlogConfig,
1350
- qo as useLanguageChange,
1351
- Ho as useSearchModal,
1350
+ Ha as useLanguageChange,
1351
+ Aa as useSearchModal,
1352
1352
  Ne as useTheme
1353
1353
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@x-wave/blog",
3
- "version": "1.0.8",
3
+ "version": "1.0.9",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {