@x-wave/blog 1.0.34 → 1.0.36

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 (3) hide show
  1. package/index.js +138 -138
  2. package/package.json +1 -1
  3. package/styles/index.css +1 -1
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { jsxs as d, jsx as t, Fragment as q } from "react/jsx-runtime";
1
+ import { jsxs as d, jsx as t, Fragment as K } from "react/jsx-runtime";
2
2
  import { useTranslation as A } from "react-i18next";
3
3
  import { useLocation as Q, useNavigate as X, Link as dt, useParams as vt, Navigate as Wt, Routes as Yt, Route as Pt } from "react-router-dom";
4
4
  import { CaretLeft as Vt, CaretRight as Ht, ArrowSquareOut as Jt, User as Zt, CalendarBlank as te, X as bt, Tag as ee, MagnifyingGlass as Dt, List as ne, Sun as Mt, Moon as Bt, Monitor as Et, CaretDown as pt, Globe as ae } from "@phosphor-icons/react";
@@ -6,7 +6,7 @@ import { useState as y, useEffect as S, createContext as oe, useContext as se, u
6
6
  import ce from "i18next";
7
7
  import re from "react-markdown";
8
8
  import le from "remark-gfm";
9
- import { createPortal as zt } from "react-dom";
9
+ import { createPortal as Ft } from "react-dom";
10
10
  const ie = "_tabContainer_zk6h4_1", de = "_tab_zk6h4_1", ue = "_active_zk6h4_45", et = {
11
11
  tabContainer: ie,
12
12
  tab: de,
@@ -52,7 +52,7 @@ function he({ hasAdvanced: e }) {
52
52
  function me({ children: e }) {
53
53
  return /* @__PURE__ */ t("div", { className: "xw-blog-root", children: e });
54
54
  }
55
- function Ft(e) {
55
+ function qt(e) {
56
56
  function n(o) {
57
57
  const a = o.match(/^---\s*\n([\s\S]*?)\n---\s*\n/);
58
58
  if (!a) return { frontmatter: {}, content: o };
@@ -133,20 +133,20 @@ function Ft(e) {
133
133
  };
134
134
  }
135
135
  function Eo(e) {
136
- const n = Ft(e);
136
+ const n = qt(e);
137
137
  return {
138
138
  mdxFiles: e,
139
139
  loadContent: n.loadMDXContent,
140
140
  loadEnglishContent: n.loadEnglishContent
141
141
  };
142
142
  }
143
- const Rt = "app-theme", Ut = () => typeof window > "u" ? "light" : window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light", At = (e) => e === "system" ? Ut() : e, Kt = (e) => {
143
+ const Rt = "app-theme", zt = () => typeof window > "u" ? "light" : window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light", At = (e) => e === "system" ? zt() : e, Ut = (e) => {
144
144
  const n = () => e || (typeof window > "u" ? "system" : localStorage.getItem(Rt) || "system"), [o, a] = y(n);
145
145
  return S(() => {
146
146
  const s = At(o), l = document.querySelector(".xw-blog-root");
147
147
  if (l && (l.classList.remove("light", "dark"), l.classList.add(s)), o === "system") {
148
148
  const g = window.matchMedia("(prefers-color-scheme: dark)"), h = () => {
149
- const u = Ut(), i = document.querySelector(".xw-blog-root");
149
+ const u = zt(), i = document.querySelector(".xw-blog-root");
150
150
  i && (i.classList.remove("light", "dark"), i.classList.add(u));
151
151
  };
152
152
  return g.addEventListener("change", h), () => g.removeEventListener("change", h);
@@ -209,17 +209,17 @@ const Rt = "app-theme", Ut = () => typeof window > "u" ? "light" : window.matchM
209
209
  prev: a > 0 ? o[a - 1] : void 0,
210
210
  next: a < o.length - 1 ? o[a + 1] : void 0
211
211
  };
212
- }, qt = oe(null);
212
+ }, Kt = oe(null);
213
213
  function Ro({
214
214
  children: e,
215
215
  config: n,
216
216
  blog: o,
217
217
  navigationData: a = []
218
218
  }) {
219
- Kt(n.defaultTheme);
219
+ Ut(n.defaultTheme);
220
220
  const [c, s] = y({});
221
221
  S(() => {
222
- const { buildTagIndex: g } = Ft(o.mdxFiles), h = n.supportedLanguages.map(async (u) => {
222
+ const { buildTagIndex: g } = qt(o.mdxFiles), h = n.supportedLanguages.map(async (u) => {
223
223
  try {
224
224
  const i = await g(u);
225
225
  return { language: u, index: i };
@@ -238,7 +238,7 @@ function Ro({
238
238
  }, [o.mdxFiles, n.supportedLanguages]);
239
239
  const l = { ...n, navigationData: a, tagIndex: c };
240
240
  return /* @__PURE__ */ t(
241
- qt.Provider,
241
+ Kt.Provider,
242
242
  {
243
243
  value: {
244
244
  config: l,
@@ -250,7 +250,7 @@ function Ro({
250
250
  );
251
251
  }
252
252
  function O() {
253
- const e = se(qt);
253
+ const e = se(Kt);
254
254
  if (!e)
255
255
  throw new Error("useBlogConfig must be used within a BlogProvider");
256
256
  return e;
@@ -296,14 +296,14 @@ function fe(e, n = !1) {
296
296
  }
297
297
  window.history.pushState(null, "", o.toString());
298
298
  }
299
- const ve = "_articleNavigation_1m2tz_1", be = "_navContainer_1m2tz_7", we = "_navLink_1m2tz_18", Ne = "_navLinkContent_1m2tz_43", ke = "_navIcon_1m2tz_50", $e = "_navText_1m2tz_57", xe = "_navLabel_1m2tz_64", Ie = "_navTitle_1m2tz_72", E = {
299
+ const ve = "_articleNavigation_1ir6x_1", be = "_navContainer_1ir6x_7", we = "_navLink_1ir6x_18", Ne = "_navLinkContent_1ir6x_43", ke = "_navIcon_1ir6x_50", xe = "_navText_1ir6x_57", $e = "_navLabel_1ir6x_64", Ie = "_navTitle_1ir6x_72", E = {
300
300
  articleNavigation: ve,
301
301
  navContainer: be,
302
302
  navLink: we,
303
303
  navLinkContent: Ne,
304
304
  navIcon: ke,
305
- navText: $e,
306
- navLabel: xe,
305
+ navText: xe,
306
+ navLabel: $e,
307
307
  navTitle: Ie
308
308
  };
309
309
  function Ce({
@@ -334,7 +334,7 @@ function Ce({
334
334
  ] }) }) : /* @__PURE__ */ t("div", {})
335
335
  ] }) });
336
336
  }
337
- const ye = "_blogSidebar_124vg_1", Le = "_section_124vg_21", Te = "_sectionTitle_124vg_28", Se = "_linksList_124vg_36", Pe = "_link_124vg_36", nt = {
337
+ const ye = "_blogSidebar_1ik3q_1", Le = "_section_1ik3q_21", Te = "_sectionTitle_1ik3q_28", Se = "_linksList_1ik3q_36", Pe = "_link_1ik3q_36", nt = {
338
338
  blogSidebar: ye,
339
339
  section: Le,
340
340
  sectionTitle: Te,
@@ -384,18 +384,18 @@ function ft({ date: e, author: n }) {
384
384
  ] })
385
385
  ] });
386
386
  }
387
- const Re = "_tableOfContents_9ofak_1", Ae = "_header_9ofak_21", Oe = "_title_9ofak_25", je = "_nav_9ofak_34", We = "_list_9ofak_40", He = "_link_9ofak_47", ze = "_active_9ofak_71", Fe = "_level1_9ofak_87", Ue = "_level2_9ofak_93", Ke = "_level3_9ofak_98", qe = "_level4_9ofak_104", Ge = "_level5_9ofak_110", Qe = "_level6_9ofak_116", z = {
387
+ const Re = "_tableOfContents_9ofak_1", Ae = "_header_9ofak_21", Oe = "_title_9ofak_25", je = "_nav_9ofak_34", We = "_list_9ofak_40", He = "_link_9ofak_47", Fe = "_active_9ofak_71", qe = "_level1_9ofak_87", ze = "_level2_9ofak_93", Ue = "_level3_9ofak_98", Ke = "_level4_9ofak_104", Ge = "_level5_9ofak_110", Qe = "_level6_9ofak_116", F = {
388
388
  tableOfContents: Re,
389
389
  header: Ae,
390
390
  title: Oe,
391
391
  nav: je,
392
392
  list: We,
393
393
  link: He,
394
- active: ze,
395
- level1: Fe,
396
- level2: Ue,
397
- level3: Ke,
398
- level4: qe,
394
+ active: Fe,
395
+ level1: qe,
396
+ level2: ze,
397
+ level3: Ue,
398
+ level4: Ke,
399
399
  level5: Ge,
400
400
  level6: Qe
401
401
  };
@@ -479,12 +479,12 @@ function Xe({
479
479
  });
480
480
  }
481
481
  };
482
- return s.length === 0 ? null : /* @__PURE__ */ d("aside", { className: z.tableOfContents, children: [
483
- /* @__PURE__ */ t("div", { className: z.header, children: /* @__PURE__ */ t("span", { className: z.title, children: o("ui.onThisPage", "On this page") }) }),
484
- /* @__PURE__ */ t("nav", { className: z.nav, children: /* @__PURE__ */ t("ul", { className: z.list, children: s.map((f) => /* @__PURE__ */ t("li", { className: z.item, children: /* @__PURE__ */ t(
482
+ return s.length === 0 ? null : /* @__PURE__ */ d("aside", { className: F.tableOfContents, children: [
483
+ /* @__PURE__ */ t("div", { className: F.header, children: /* @__PURE__ */ t("span", { className: F.title, children: o("ui.onThisPage", "On this page") }) }),
484
+ /* @__PURE__ */ t("nav", { className: F.nav, children: /* @__PURE__ */ t("ul", { className: F.list, children: s.map((f) => /* @__PURE__ */ t("li", { className: F.item, children: /* @__PURE__ */ t(
485
485
  "button",
486
486
  {
487
- className: `${z.link} ${z[`level${f.level}`]} ${g === f.id ? z.active : ""}`,
487
+ className: `${F.link} ${F[`level${f.level}`]} ${g === f.id ? F.active : ""}`,
488
488
  onClick: () => i(f.id),
489
489
  type: "button",
490
490
  children: f.text
@@ -515,7 +515,7 @@ function rn({
515
515
  const u = s.basePath || "";
516
516
  l(`${u}/${o}/${h}`), a();
517
517
  };
518
- return zt(
518
+ return Ft(
519
519
  /* @__PURE__ */ t("div", { className: W.overlay, onClick: a, children: /* @__PURE__ */ d("div", { className: W.modal, onClick: (h) => h.stopPropagation(), children: [
520
520
  /* @__PURE__ */ d("div", { className: W.header, children: [
521
521
  /* @__PURE__ */ d("h2", { className: W.title, children: [
@@ -594,7 +594,7 @@ function _n({ tags: e, variant: n = "default", onTagClick: o }) {
594
594
  }
595
595
  );
596
596
  }
597
- const pn = "_contentPage_1nxj5_1", fn = "_loadingContainer_1nxj5_48", vn = "_errorContainer_1nxj5_49", bn = "_skeletonTitle_1nxj5_71", wn = "_skeletonParagraph_1nxj5_80", Nn = "_skeletonParagraphShort_1nxj5_93", kn = "_errorText_1nxj5_107", $n = "_mdxContent_1nxj5_112", xn = "_withMetadata_1nxj5_125", In = "_codeBlock_1nxj5_300", Cn = "_codeLanguage_1nxj5_304", M = {
597
+ const pn = "_contentPage_1nxj5_1", fn = "_loadingContainer_1nxj5_48", vn = "_errorContainer_1nxj5_49", bn = "_skeletonTitle_1nxj5_71", wn = "_skeletonParagraph_1nxj5_80", Nn = "_skeletonParagraphShort_1nxj5_93", kn = "_errorText_1nxj5_107", xn = "_mdxContent_1nxj5_112", $n = "_withMetadata_1nxj5_125", In = "_codeBlock_1nxj5_300", Cn = "_codeLanguage_1nxj5_304", M = {
598
598
  contentPage: pn,
599
599
  loadingContainer: fn,
600
600
  errorContainer: vn,
@@ -602,8 +602,8 @@ const pn = "_contentPage_1nxj5_1", fn = "_loadingContainer_1nxj5_48", vn = "_err
602
602
  skeletonParagraph: wn,
603
603
  skeletonParagraphShort: Nn,
604
604
  errorText: kn,
605
- mdxContent: $n,
606
- withMetadata: xn,
605
+ mdxContent: xn,
606
+ withMetadata: $n,
607
607
  codeBlock: In,
608
608
  codeLanguage: Cn
609
609
  }, jt = (e) => {
@@ -614,8 +614,8 @@ const pn = "_contentPage_1nxj5_1", fn = "_loadingContainer_1nxj5_48", vn = "_err
614
614
  } : { title: void 0, content: e };
615
615
  };
616
616
  function yn({ language: e }) {
617
- var xt, It, Ct, yt, Lt;
618
- const { slug: n } = vt(), o = Q(), { config: a, loadContent: c, loadEnglishContent: s } = O(), [l, g] = y(""), [h, u] = y(""), [i, f] = y({}), [_, v] = y(!0), [w, r] = y(null), [m, N] = y(!0), [I, D] = y(null), [H, b] = y(""), [$, B] = y({}), j = G(0), U = G([]), st = Qt(o.search), Y = st.advanced;
617
+ var $t, It, Ct, yt, Lt;
618
+ const { slug: n } = vt(), o = Q(), { config: a, loadContent: c, loadEnglishContent: s } = O(), [l, g] = y(""), [h, u] = y(""), [i, f] = y({}), [_, v] = y(!0), [w, r] = y(null), [m, N] = y(!0), [I, D] = y(null), [H, b] = y(""), [x, B] = y({}), j = G(0), z = G([]), st = Qt(o.search), Y = st.advanced;
619
619
  if (S(() => {
620
620
  (async () => {
621
621
  if (!n) return;
@@ -665,7 +665,7 @@ function yn({ language: e }) {
665
665
  const it = gt[2].trim();
666
666
  St.push(it), gt = Tt.exec(lt);
667
667
  }
668
- U.current = St, b(mt), u(lt), g(rt), f(k.frontmatter);
668
+ z.current = St, b(mt), u(lt), g(rt), f(k.frontmatter);
669
669
  } catch (k) {
670
670
  r(k instanceof Error ? k.message : "Failed to load content");
671
671
  } finally {
@@ -723,14 +723,14 @@ function yn({ language: e }) {
723
723
  ] }) }) });
724
724
  const ct = typeof i.title == "string" && i.title.trim().length > 0, ht = ct ? Z(H || i.title) : "", kt = !!(i.date || i.author);
725
725
  j.current = 0;
726
- let $t = !1;
726
+ let xt = !1;
727
727
  const tt = (p, C) => {
728
728
  p.preventDefault(), Ot(C), fe(C, Y);
729
729
  };
730
- return /* @__PURE__ */ d(q, { children: [
730
+ return /* @__PURE__ */ d(K, { children: [
731
731
  /* @__PURE__ */ d("div", { className: M.contentPage, children: [
732
732
  /* @__PURE__ */ t(he, { hasAdvanced: i.hasAdvanced || !1 }),
733
- ct && /* @__PURE__ */ d(q, { children: [
733
+ ct && /* @__PURE__ */ d(K, { children: [
734
734
  /* @__PURE__ */ t(
735
735
  "h1",
736
736
  {
@@ -755,10 +755,10 @@ function yn({ language: e }) {
755
755
  remarkPlugins: [le],
756
756
  components: {
757
757
  h1: ({ children: p }) => {
758
- const C = j.current++, P = U.current[C] || "", k = Z(P), L = !$t;
759
- $t = !0;
758
+ const C = j.current++, P = z.current[C] || "", k = Z(P), L = !xt;
759
+ xt = !0;
760
760
  const V = i.date || i.author;
761
- return /* @__PURE__ */ d(q, { children: [
761
+ return /* @__PURE__ */ d(K, { children: [
762
762
  /* @__PURE__ */ t(
763
763
  "h1",
764
764
  {
@@ -785,7 +785,7 @@ function yn({ language: e }) {
785
785
  ] });
786
786
  },
787
787
  h2: ({ children: p }) => {
788
- const C = j.current++, P = U.current[C] || "", k = Z(P);
788
+ const C = j.current++, P = z.current[C] || "", k = Z(P);
789
789
  return /* @__PURE__ */ t("h2", { id: k, children: /* @__PURE__ */ t(
790
790
  "a",
791
791
  {
@@ -797,7 +797,7 @@ function yn({ language: e }) {
797
797
  ) });
798
798
  },
799
799
  h3: ({ children: p }) => {
800
- const C = j.current++, P = U.current[C] || "", k = Z(P);
800
+ const C = j.current++, P = z.current[C] || "", k = Z(P);
801
801
  return /* @__PURE__ */ t("h3", { id: k, children: /* @__PURE__ */ t(
802
802
  "a",
803
803
  {
@@ -809,7 +809,7 @@ function yn({ language: e }) {
809
809
  ) });
810
810
  },
811
811
  h4: ({ children: p }) => {
812
- const C = j.current++, P = U.current[C] || "", k = Z(P);
812
+ const C = j.current++, P = z.current[C] || "", k = Z(P);
813
813
  return /* @__PURE__ */ t("h4", { id: k, children: /* @__PURE__ */ t(
814
814
  "a",
815
815
  {
@@ -841,7 +841,7 @@ function yn({ language: e }) {
841
841
  /* @__PURE__ */ t("pre", { children: /* @__PURE__ */ t("code", { className: p, ...P, children: C }) })
842
842
  ] });
843
843
  },
844
- pre: ({ children: p }) => /* @__PURE__ */ t(q, { children: p }),
844
+ pre: ({ children: p }) => /* @__PURE__ */ t(K, { children: p }),
845
845
  // Let code component handle pre styling
846
846
  blockquote: ({ children: p }) => /* @__PURE__ */ t("blockquote", { children: p }),
847
847
  a: ({ href: p, children: C, ...P }) => {
@@ -882,10 +882,10 @@ function yn({ language: e }) {
882
882
  a.showArticleNavigation && /* @__PURE__ */ t(
883
883
  Ce,
884
884
  {
885
- prevSlug: (xt = $.prev) == null ? void 0 : xt.slug,
886
- prevTitle: (It = $.prev) == null ? void 0 : It.title,
887
- nextSlug: (Ct = $.next) == null ? void 0 : Ct.slug,
888
- nextTitle: (yt = $.next) == null ? void 0 : yt.title,
885
+ prevSlug: ($t = x.prev) == null ? void 0 : $t.slug,
886
+ prevTitle: (It = x.prev) == null ? void 0 : It.title,
887
+ nextSlug: (Ct = x.next) == null ? void 0 : Ct.slug,
888
+ nextTitle: (yt = x.next) == null ? void 0 : yt.title,
889
889
  language: e
890
890
  }
891
891
  )
@@ -902,7 +902,7 @@ function yn({ language: e }) {
902
902
  )
903
903
  ] });
904
904
  }
905
- const Ln = "_searchButton_1k9sl_1", Tn = "_searchIcon_1k9sl_17", Sn = "_searchHint_1k9sl_23", Pn = "_kbd_1k9sl_27", Dn = "_searchOverlay_1k9sl_42", Mn = "_searchModal_1k9sl_67", Bn = "_searchHeader_1k9sl_91", En = "_searchInput_1k9sl_105", Rn = "_closeButton_1k9sl_123", An = "_searchResults_1k9sl_144", On = "_resultsList_1k9sl_152", jn = "_resultItem_1k9sl_158", Wn = "_selected_1k9sl_173", Hn = "_resultTitle_1k9sl_176", zn = "_resultSlug_1k9sl_180", Fn = "_noResults_1k9sl_186", Un = "_searchHints_1k9sl_193", Kn = "_hint_1k9sl_210", T = {
905
+ const Ln = "_searchButton_1k9sl_1", Tn = "_searchIcon_1k9sl_17", Sn = "_searchHint_1k9sl_23", Pn = "_kbd_1k9sl_27", Dn = "_searchOverlay_1k9sl_42", Mn = "_searchModal_1k9sl_67", Bn = "_searchHeader_1k9sl_91", En = "_searchInput_1k9sl_105", Rn = "_closeButton_1k9sl_123", An = "_searchResults_1k9sl_144", On = "_resultsList_1k9sl_152", jn = "_resultItem_1k9sl_158", Wn = "_selected_1k9sl_173", Hn = "_resultTitle_1k9sl_176", Fn = "_resultSlug_1k9sl_180", qn = "_noResults_1k9sl_186", zn = "_searchHints_1k9sl_193", Un = "_hint_1k9sl_210", T = {
906
906
  searchButton: Ln,
907
907
  searchIcon: Tn,
908
908
  searchHint: Sn,
@@ -917,12 +917,12 @@ const Ln = "_searchButton_1k9sl_1", Tn = "_searchIcon_1k9sl_17", Sn = "_searchHi
917
917
  resultItem: jn,
918
918
  selected: Wn,
919
919
  resultTitle: Hn,
920
- resultSlug: zn,
921
- noResults: Fn,
922
- searchHints: Un,
923
- hint: Kn
920
+ resultSlug: Fn,
921
+ noResults: qn,
922
+ searchHints: zn,
923
+ hint: Un
924
924
  };
925
- function qn({ language: e }) {
925
+ function Kn({ language: e }) {
926
926
  const { t: n } = A(), o = X(), { config: a, loadContent: c } = O(), [s, l] = y(!1), [g, h] = y(""), [u, i] = y([]), [f, _] = y(0), [v, w] = y([]), r = G(null), m = G(null), I = typeof navigator < "u" && /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform) ? "⌘K" : "Ctrl+K";
927
927
  S(() => {
928
928
  (async () => {
@@ -932,13 +932,13 @@ function qn({ language: e }) {
932
932
  a.navigationData,
933
933
  e,
934
934
  c
935
- )).flatMap((j) => ot(j) ? j.items.map((U) => ({
936
- title: U.title,
937
- slug: U.slug
935
+ )).flatMap((j) => ot(j) ? j.items.map((z) => ({
936
+ title: z.title,
937
+ slug: z.slug
938
938
  })) : [{ title: j.title, slug: j.slug }]);
939
939
  w(B);
940
- } catch ($) {
941
- console.error("Failed to build search index:", $);
940
+ } catch (x) {
941
+ console.error("Failed to build search index:", x);
942
942
  }
943
943
  })();
944
944
  }, [a.navigationData, e, c]), S(() => {
@@ -946,16 +946,16 @@ function qn({ language: e }) {
946
946
  i([]), _(0);
947
947
  return;
948
948
  }
949
- const b = g.toLowerCase(), $ = v.filter(
949
+ const b = g.toLowerCase(), x = v.filter(
950
950
  (B) => B.title.toLowerCase().includes(b) || B.slug.toLowerCase().includes(b)
951
951
  );
952
- i($), _(0);
952
+ i(x), _(0);
953
953
  }, [g]), S(() => {
954
- const b = ($) => {
955
- ($.metaKey || $.ctrlKey) && $.key === "k" && ($.preventDefault(), l(!0), setTimeout(() => {
954
+ const b = (x) => {
955
+ (x.metaKey || x.ctrlKey) && x.key === "k" && (x.preventDefault(), l(!0), setTimeout(() => {
956
956
  var B;
957
957
  return (B = r.current) == null ? void 0 : B.focus();
958
- }, 100)), $.key === "Escape" && s && (l(!1), h(""));
958
+ }, 100)), x.key === "Escape" && s && (l(!1), h(""));
959
959
  };
960
960
  return document.addEventListener("keydown", b), () => document.removeEventListener("keydown", b);
961
961
  }, [s]), S(() => {
@@ -964,27 +964,27 @@ function qn({ language: e }) {
964
964
  var B;
965
965
  return (B = r.current) == null ? void 0 : B.focus();
966
966
  }, 100);
967
- }, $ = () => {
967
+ }, x = () => {
968
968
  l(!1), h("");
969
969
  };
970
- return window.addEventListener("blog:open-search", b), window.addEventListener("blog:close-search", $), () => {
971
- window.removeEventListener("blog:open-search", b), window.removeEventListener("blog:close-search", $);
970
+ return window.addEventListener("blog:open-search", b), window.addEventListener("blog:close-search", x), () => {
971
+ window.removeEventListener("blog:open-search", b), window.removeEventListener("blog:close-search", x);
972
972
  };
973
973
  }, []);
974
974
  const D = (b) => {
975
- b.key === "ArrowDown" ? (b.preventDefault(), _(($) => Math.min($ + 1, u.length - 1))) : b.key === "ArrowUp" ? (b.preventDefault(), _(($) => Math.max($ - 1, 0))) : b.key === "Enter" && u[f] && (b.preventDefault(), H(u[f].slug));
975
+ b.key === "ArrowDown" ? (b.preventDefault(), _((x) => Math.min(x + 1, u.length - 1))) : b.key === "ArrowUp" ? (b.preventDefault(), _((x) => Math.max(x - 1, 0))) : b.key === "Enter" && u[f] && (b.preventDefault(), H(u[f].slug));
976
976
  };
977
977
  S(() => {
978
- const b = ($) => {
979
- m.current && !m.current.contains($.target) && (l(!1), h(""));
978
+ const b = (x) => {
979
+ m.current && !m.current.contains(x.target) && (l(!1), h(""));
980
980
  };
981
981
  return s && document.addEventListener("mousedown", b), () => document.removeEventListener("mousedown", b);
982
982
  }, [s]);
983
983
  const H = (b) => {
984
- const $ = a.basePath || "";
985
- o(`${$}/${e}/${b}`), l(!1), h("");
984
+ const x = a.basePath || "";
985
+ o(`${x}/${e}/${b}`), l(!1), h("");
986
986
  };
987
- return /* @__PURE__ */ d(q, { children: [
987
+ return /* @__PURE__ */ d(K, { children: [
988
988
  /* @__PURE__ */ d(
989
989
  "button",
990
990
  {
@@ -1004,7 +1004,7 @@ function qn({ language: e }) {
1004
1004
  ]
1005
1005
  }
1006
1006
  ),
1007
- s && zt(
1007
+ s && Ft(
1008
1008
  /* @__PURE__ */ t(
1009
1009
  "div",
1010
1010
  {
@@ -1046,13 +1046,13 @@ function qn({ language: e }) {
1046
1046
  }
1047
1047
  )
1048
1048
  ] }),
1049
- g && /* @__PURE__ */ t("div", { className: T.searchResults, children: u.length === 0 ? /* @__PURE__ */ t("div", { className: T.noResults, children: n("ui.noSearchResults") }) : /* @__PURE__ */ t("ul", { className: T.resultsList, children: u.map((b, $) => /* @__PURE__ */ t("li", { children: /* @__PURE__ */ d(
1049
+ g && /* @__PURE__ */ t("div", { className: T.searchResults, children: u.length === 0 ? /* @__PURE__ */ t("div", { className: T.noResults, children: n("ui.noSearchResults") }) : /* @__PURE__ */ t("ul", { className: T.resultsList, children: u.map((b, x) => /* @__PURE__ */ t("li", { children: /* @__PURE__ */ d(
1050
1050
  "button",
1051
1051
  {
1052
1052
  type: "button",
1053
- className: `${T.resultItem} ${$ === f ? T.selected : ""}`,
1053
+ className: `${T.resultItem} ${x === f ? T.selected : ""}`,
1054
1054
  onClick: () => H(b.slug),
1055
- onMouseEnter: () => _($),
1055
+ onMouseEnter: () => _(x),
1056
1056
  children: [
1057
1057
  /* @__PURE__ */ t("div", { className: T.resultTitle, children: b.title }),
1058
1058
  /* @__PURE__ */ d("div", { className: T.resultSlug, children: [
@@ -1086,7 +1086,7 @@ function qn({ language: e }) {
1086
1086
  )
1087
1087
  ] });
1088
1088
  }
1089
- const Gn = "_header_jrobc_1", Qn = "_container_jrobc_24", Xn = "_content_jrobc_36", Yn = "_leftSection_jrobc_43", Vn = "_mobileMenuButton_jrobc_49", Jn = "_burgerIcon_jrobc_87", Zn = "_logo_jrobc_92", ta = "_nav_jrobc_98", ea = "_navLink_jrobc_109", na = "_externalIcon_jrobc_135", aa = "_supportDropdown_jrobc_141", oa = "_themeDropdown_jrobc_145", sa = "_themeButton_jrobc_149", ca = "_themeIcon_jrobc_171", ra = "_supportButton_jrobc_177", la = "_caretIcon_jrobc_198", ia = "_dropdownMenu_jrobc_208", da = "_dropdownItem_jrobc_221", ua = "_dropdownIcon_jrobc_244", x = {
1089
+ const Gn = "_header_jrobc_1", Qn = "_container_jrobc_24", Xn = "_content_jrobc_36", Yn = "_leftSection_jrobc_43", Vn = "_mobileMenuButton_jrobc_49", Jn = "_burgerIcon_jrobc_87", Zn = "_logo_jrobc_92", ta = "_nav_jrobc_98", ea = "_navLink_jrobc_109", na = "_externalIcon_jrobc_135", aa = "_supportDropdown_jrobc_141", oa = "_themeDropdown_jrobc_145", sa = "_themeButton_jrobc_149", ca = "_themeIcon_jrobc_171", ra = "_supportButton_jrobc_177", la = "_caretIcon_jrobc_198", ia = "_dropdownMenu_jrobc_208", da = "_dropdownItem_jrobc_221", ua = "_dropdownIcon_jrobc_244", $ = {
1090
1090
  header: Gn,
1091
1091
  container: Qn,
1092
1092
  content: Xn,
@@ -1108,47 +1108,47 @@ const Gn = "_header_jrobc_1", Qn = "_container_jrobc_24", Xn = "_content_jrobc_3
1108
1108
  dropdownIcon: ua
1109
1109
  };
1110
1110
  function ha({ onMobileMenuToggle: e }) {
1111
- const { t: n, i18n: o } = A(), { config: a } = O(), c = a.header ?? {}, s = c.navLinks ?? [], l = c.dropdownItems ?? [], [g, h] = y(!1), [u, i] = y(!1), { theme: f, setTheme: _ } = Kt(), v = G(null), w = G(null);
1111
+ const { t: n, i18n: o } = A(), { config: a } = O(), c = a.header ?? {}, s = c.navLinks ?? [], l = c.dropdownItems ?? [], [g, h] = y(!1), [u, i] = y(!1), { theme: f, setTheme: _ } = Ut(), v = G(null), w = G(null);
1112
1112
  return S(() => {
1113
1113
  const r = (m) => {
1114
1114
  v.current && !v.current.contains(m.target) && h(!1), w.current && !w.current.contains(m.target) && i(!1);
1115
1115
  };
1116
1116
  return document.addEventListener("mousedown", r), () => document.removeEventListener("mousedown", r);
1117
- }, []), /* @__PURE__ */ t("header", { className: x.header, children: /* @__PURE__ */ t("div", { className: x.container, children: /* @__PURE__ */ d("div", { className: x.content, children: [
1118
- /* @__PURE__ */ d("div", { className: x.leftSection, children: [
1117
+ }, []), /* @__PURE__ */ t("header", { className: $.header, children: /* @__PURE__ */ t("div", { className: $.container, children: /* @__PURE__ */ d("div", { className: $.content, children: [
1118
+ /* @__PURE__ */ d("div", { className: $.leftSection, children: [
1119
1119
  /* @__PURE__ */ t(
1120
1120
  "button",
1121
1121
  {
1122
1122
  type: "button",
1123
- className: x.mobileMenuButton,
1123
+ className: $.mobileMenuButton,
1124
1124
  onClick: e,
1125
1125
  "aria-label": "Open menu",
1126
- children: /* @__PURE__ */ t(ne, { className: x.burgerIcon })
1126
+ children: /* @__PURE__ */ t(ne, { className: $.burgerIcon })
1127
1127
  }
1128
1128
  ),
1129
- /* @__PURE__ */ t("div", { className: x.logo })
1129
+ /* @__PURE__ */ t("div", { className: $.logo })
1130
1130
  ] }),
1131
- /* @__PURE__ */ d("nav", { className: x.nav, children: [
1132
- /* @__PURE__ */ t(qn, { language: o.language }),
1133
- /* @__PURE__ */ d("div", { className: x.themeDropdown, ref: w, children: [
1131
+ /* @__PURE__ */ d("nav", { className: $.nav, children: [
1132
+ /* @__PURE__ */ t(Kn, { language: o.language }),
1133
+ /* @__PURE__ */ d("div", { className: $.themeDropdown, ref: w, children: [
1134
1134
  /* @__PURE__ */ d(
1135
1135
  "button",
1136
1136
  {
1137
1137
  type: "button",
1138
- className: x.themeButton,
1138
+ className: $.themeButton,
1139
1139
  onClick: () => i(!u),
1140
1140
  "aria-expanded": u,
1141
1141
  "aria-haspopup": "true",
1142
1142
  "aria-label": n("ui.theme"),
1143
1143
  children: [
1144
- f === "light" && /* @__PURE__ */ t(Mt, { className: x.themeIcon }),
1145
- f === "dark" && /* @__PURE__ */ t(Bt, { className: x.themeIcon }),
1146
- f === "system" && /* @__PURE__ */ t(Et, { className: x.themeIcon }),
1147
- /* @__PURE__ */ t(pt, { className: x.caretIcon })
1144
+ f === "light" && /* @__PURE__ */ t(Mt, { className: $.themeIcon }),
1145
+ f === "dark" && /* @__PURE__ */ t(Bt, { className: $.themeIcon }),
1146
+ f === "system" && /* @__PURE__ */ t(Et, { className: $.themeIcon }),
1147
+ /* @__PURE__ */ t(pt, { className: $.caretIcon })
1148
1148
  ]
1149
1149
  }
1150
1150
  ),
1151
- u && /* @__PURE__ */ d("div", { className: x.dropdownMenu, children: [
1151
+ u && /* @__PURE__ */ d("div", { className: $.dropdownMenu, children: [
1152
1152
  /* @__PURE__ */ d(
1153
1153
  "button",
1154
1154
  {
@@ -1156,9 +1156,9 @@ function ha({ onMobileMenuToggle: e }) {
1156
1156
  onClick: () => {
1157
1157
  _("light"), i(!1);
1158
1158
  },
1159
- className: x.dropdownItem,
1159
+ className: $.dropdownItem,
1160
1160
  children: [
1161
- /* @__PURE__ */ t(Mt, { className: x.dropdownIcon }),
1161
+ /* @__PURE__ */ t(Mt, { className: $.dropdownIcon }),
1162
1162
  n("ui.light")
1163
1163
  ]
1164
1164
  }
@@ -1170,9 +1170,9 @@ function ha({ onMobileMenuToggle: e }) {
1170
1170
  onClick: () => {
1171
1171
  _("dark"), i(!1);
1172
1172
  },
1173
- className: x.dropdownItem,
1173
+ className: $.dropdownItem,
1174
1174
  children: [
1175
- /* @__PURE__ */ t(Bt, { className: x.dropdownIcon }),
1175
+ /* @__PURE__ */ t(Bt, { className: $.dropdownIcon }),
1176
1176
  n("ui.dark")
1177
1177
  ]
1178
1178
  }
@@ -1184,31 +1184,31 @@ function ha({ onMobileMenuToggle: e }) {
1184
1184
  onClick: () => {
1185
1185
  _("system"), i(!1);
1186
1186
  },
1187
- className: x.dropdownItem,
1187
+ className: $.dropdownItem,
1188
1188
  children: [
1189
- /* @__PURE__ */ t(Et, { className: x.dropdownIcon }),
1189
+ /* @__PURE__ */ t(Et, { className: $.dropdownIcon }),
1190
1190
  n("ui.system")
1191
1191
  ]
1192
1192
  }
1193
1193
  )
1194
1194
  ] })
1195
1195
  ] }),
1196
- l.length > 0 && /* @__PURE__ */ d("div", { className: x.supportDropdown, ref: v, children: [
1196
+ l.length > 0 && /* @__PURE__ */ d("div", { className: $.supportDropdown, ref: v, children: [
1197
1197
  /* @__PURE__ */ d(
1198
1198
  "button",
1199
1199
  {
1200
1200
  type: "button",
1201
- className: x.supportButton,
1201
+ className: $.supportButton,
1202
1202
  onClick: () => h(!g),
1203
1203
  "aria-expanded": g,
1204
1204
  "aria-haspopup": "true",
1205
1205
  children: [
1206
1206
  n("ui.support"),
1207
- /* @__PURE__ */ t(pt, { className: x.caretIcon })
1207
+ /* @__PURE__ */ t(pt, { className: $.caretIcon })
1208
1208
  ]
1209
1209
  }
1210
1210
  ),
1211
- g && /* @__PURE__ */ t("div", { className: x.dropdownMenu, children: l.map((r, m) => {
1211
+ g && /* @__PURE__ */ t("div", { className: $.dropdownMenu, children: l.map((r, m) => {
1212
1212
  const N = r.target ?? (r.url.startsWith("http") ? "_blank" : "_self"), I = r.rel ?? (N === "_blank" ? "noopener noreferrer" : void 0), D = r.icon;
1213
1213
  return /* @__PURE__ */ d(
1214
1214
  "a",
@@ -1216,9 +1216,9 @@ function ha({ onMobileMenuToggle: e }) {
1216
1216
  href: r.url,
1217
1217
  target: N,
1218
1218
  rel: I,
1219
- className: x.dropdownItem,
1219
+ className: $.dropdownItem,
1220
1220
  children: [
1221
- D && /* @__PURE__ */ t(D, { className: x.dropdownIcon }),
1221
+ D && /* @__PURE__ */ t(D, { className: $.dropdownIcon }),
1222
1222
  r.label
1223
1223
  ]
1224
1224
  },
@@ -1234,10 +1234,10 @@ function ha({ onMobileMenuToggle: e }) {
1234
1234
  href: r.url,
1235
1235
  target: N,
1236
1236
  rel: I,
1237
- className: r.className ?? x.navLink,
1237
+ className: r.className ?? $.navLink,
1238
1238
  children: [
1239
1239
  r.label,
1240
- D && /* @__PURE__ */ t(D, { className: x.externalIcon })
1240
+ D && /* @__PURE__ */ t(D, { className: $.externalIcon })
1241
1241
  ]
1242
1242
  },
1243
1243
  m
@@ -1312,8 +1312,8 @@ function Nt({ styles: e, onLinkClick: n }) {
1312
1312
  const N = m.reduce(
1313
1313
  (I, D, H) => {
1314
1314
  if (ot(D)) {
1315
- const b = c.navigationData[H], $ = "items" in b && b.defaultOpen === !0;
1316
- I[D.title] = $;
1315
+ const b = c.navigationData[H], x = "items" in b && b.defaultOpen === !0;
1316
+ I[D.title] = x;
1317
1317
  }
1318
1318
  return I;
1319
1319
  },
@@ -1384,12 +1384,12 @@ function Ao({
1384
1384
  onLinkClick: n,
1385
1385
  onLanguageChange: o
1386
1386
  }) {
1387
- return /* @__PURE__ */ d(q, { children: [
1387
+ return /* @__PURE__ */ d(K, { children: [
1388
1388
  /* @__PURE__ */ t(wt, { styles: e, onLanguageChange: o }),
1389
1389
  /* @__PURE__ */ t(Nt, { styles: e, onLinkClick: n })
1390
1390
  ] });
1391
1391
  }
1392
- const ma = "_backdrop_1a7pu_1", ga = "_open_1a7pu_13", _a = "_mobileMenu_1a7pu_18", pa = "_header_1a7pu_37", fa = "_brand_1a7pu_46", va = "_cloudIcon_1a7pu_53", ba = "_title_1a7pu_62", wa = "_closeButton_1a7pu_69", Na = "_closeIcon_1a7pu_101", ka = "_languageSection_1a7pu_106", $a = "_languageSelect_1a7pu_112", xa = "_languageButton_1a7pu_117", Ia = "_icon_1a7pu_156", Ca = "_chevron_1a7pu_162", ya = "_languageDropdown_1a7pu_172", La = "_languageOption_1a7pu_185", Ta = "_selected_1a7pu_226", Sa = "_scrollArea_1a7pu_231", Pa = "_navigation_1a7pu_237", Da = "_section_1a7pu_241", Ma = "_sectionButton_1a7pu_245", Ba = "_expanded_1a7pu_285", Ea = "_sectionItems_1a7pu_289", Ra = "_navItem_1a7pu_297", Aa = "_active_1a7pu_310", Oa = "_navItemContent_1a7pu_316", ja = "_navItemTitle_1a7pu_322", R = {
1392
+ const ma = "_backdrop_1a7pu_1", ga = "_open_1a7pu_13", _a = "_mobileMenu_1a7pu_18", pa = "_header_1a7pu_37", fa = "_brand_1a7pu_46", va = "_cloudIcon_1a7pu_53", ba = "_title_1a7pu_62", wa = "_closeButton_1a7pu_69", Na = "_closeIcon_1a7pu_101", ka = "_languageSection_1a7pu_106", xa = "_languageSelect_1a7pu_112", $a = "_languageButton_1a7pu_117", Ia = "_icon_1a7pu_156", Ca = "_chevron_1a7pu_162", ya = "_languageDropdown_1a7pu_172", La = "_languageOption_1a7pu_185", Ta = "_selected_1a7pu_226", Sa = "_scrollArea_1a7pu_231", Pa = "_navigation_1a7pu_237", Da = "_section_1a7pu_241", Ma = "_sectionButton_1a7pu_245", Ba = "_expanded_1a7pu_285", Ea = "_sectionItems_1a7pu_289", Ra = "_navItem_1a7pu_297", Aa = "_active_1a7pu_310", Oa = "_navItemContent_1a7pu_316", ja = "_navItemTitle_1a7pu_322", R = {
1393
1393
  backdrop: ma,
1394
1394
  open: ga,
1395
1395
  mobileMenu: _a,
@@ -1400,8 +1400,8 @@ const ma = "_backdrop_1a7pu_1", ga = "_open_1a7pu_13", _a = "_mobileMenu_1a7pu_1
1400
1400
  closeButton: wa,
1401
1401
  closeIcon: Na,
1402
1402
  languageSection: ka,
1403
- languageSelect: $a,
1404
- languageButton: xa,
1403
+ languageSelect: xa,
1404
+ languageButton: $a,
1405
1405
  icon: Ia,
1406
1406
  chevron: Ca,
1407
1407
  languageDropdown: ya,
@@ -1427,7 +1427,7 @@ function Wa({ isOpen: e, onClose: n }) {
1427
1427
  s.key === "Escape" && e && n();
1428
1428
  };
1429
1429
  return document.addEventListener("keydown", c), () => document.removeEventListener("keydown", c);
1430
- }, [e, n]), /* @__PURE__ */ d(q, { children: [
1430
+ }, [e, n]), /* @__PURE__ */ d(K, { children: [
1431
1431
  /* @__PURE__ */ t(
1432
1432
  "div",
1433
1433
  {
@@ -1457,13 +1457,13 @@ function Wa({ isOpen: e, onClose: n }) {
1457
1457
  ] })
1458
1458
  ] });
1459
1459
  }
1460
- const Ha = "_sidebar_1tdxt_1", za = "_header_1tdxt_17", Fa = "_brand_1tdxt_29", Ua = "_cloudIcon_1tdxt_35", Ka = "_title_1tdxt_44", qa = "_languageSelect_1tdxt_55", Ga = "_languageButton_1tdxt_61", Qa = "_icon_1tdxt_99", Xa = "_chevron_1tdxt_104", Ya = "_languageDropdown_1tdxt_114", Va = "_languageOption_1tdxt_128", Ja = "_selected_1tdxt_147", Za = "_scrollArea_1tdxt_152", to = "_navigation_1tdxt_158", eo = "_section_1tdxt_164", no = "_sectionButton_1tdxt_170", ao = "_expanded_1tdxt_213", oo = "_sectionItems_1tdxt_217", so = "_navItem_1tdxt_225", co = "_active_1tdxt_238", ro = "_navItemContent_1tdxt_243", K = {
1460
+ const Ha = "_sidebar_1tdxt_1", Fa = "_header_1tdxt_17", qa = "_brand_1tdxt_29", za = "_cloudIcon_1tdxt_35", Ua = "_title_1tdxt_44", Ka = "_languageSelect_1tdxt_55", Ga = "_languageButton_1tdxt_61", Qa = "_icon_1tdxt_99", Xa = "_chevron_1tdxt_104", Ya = "_languageDropdown_1tdxt_114", Va = "_languageOption_1tdxt_128", Ja = "_selected_1tdxt_147", Za = "_scrollArea_1tdxt_152", to = "_navigation_1tdxt_158", eo = "_section_1tdxt_164", no = "_sectionButton_1tdxt_170", ao = "_expanded_1tdxt_213", oo = "_sectionItems_1tdxt_217", so = "_navItem_1tdxt_225", co = "_active_1tdxt_238", ro = "_navItemContent_1tdxt_243", U = {
1461
1461
  sidebar: Ha,
1462
- header: za,
1463
- brand: Fa,
1464
- cloudIcon: Ua,
1465
- title: Ka,
1466
- languageSelect: qa,
1462
+ header: Fa,
1463
+ brand: qa,
1464
+ cloudIcon: za,
1465
+ title: Ua,
1466
+ languageSelect: Ka,
1467
1467
  languageButton: Ga,
1468
1468
  icon: Qa,
1469
1469
  chevron: Xa,
@@ -1482,15 +1482,15 @@ const Ha = "_sidebar_1tdxt_1", za = "_header_1tdxt_17", Fa = "_brand_1tdxt_29",
1482
1482
  };
1483
1483
  function lo() {
1484
1484
  const { config: e } = O(), n = e.logo, o = e.supportedLanguages.length > 1;
1485
- return /* @__PURE__ */ d("div", { className: K.sidebar, children: [
1486
- /* @__PURE__ */ d("div", { className: K.header, children: [
1487
- /* @__PURE__ */ d("div", { className: K.brand, children: [
1488
- n && /* @__PURE__ */ t(n, { className: K.cloudIcon }),
1489
- /* @__PURE__ */ t("div", { className: K.title, children: e.title })
1485
+ return /* @__PURE__ */ d("div", { className: U.sidebar, children: [
1486
+ /* @__PURE__ */ d("div", { className: U.header, children: [
1487
+ /* @__PURE__ */ d("div", { className: U.brand, children: [
1488
+ n && /* @__PURE__ */ t(n, { className: U.cloudIcon }),
1489
+ /* @__PURE__ */ t("div", { className: U.title, children: e.title })
1490
1490
  ] }),
1491
- o && /* @__PURE__ */ t(wt, { styles: K })
1491
+ o && /* @__PURE__ */ t(wt, { styles: U })
1492
1492
  ] }),
1493
- /* @__PURE__ */ t("div", { className: K.scrollArea, children: /* @__PURE__ */ t(Nt, { styles: K }) })
1493
+ /* @__PURE__ */ t("div", { className: U.scrollArea, children: /* @__PURE__ */ t(Nt, { styles: U }) })
1494
1494
  ] });
1495
1495
  }
1496
1496
  const io = "_app_wf6ni_1", uo = "_layout_wf6ni_9", ho = "_main_wf6ni_15", mo = "_fullWidth_wf6ni_21", go = "_contentWrapper_wf6ni_30", at = {
@@ -1528,7 +1528,7 @@ function _o({ children: e }) {
1528
1528
  ] })
1529
1529
  ] });
1530
1530
  }
1531
- const po = "_homePage_1lc5u_1", fo = "_header_1lc5u_20", vo = "_title_1lc5u_24", bo = "_articlesList_1lc5u_31", wo = "_articleCard_1lc5u_37", No = "_articleTitle_1lc5u_56", ko = "_articleDescription_1lc5u_63", $o = "_loading_1lc5u_70", xo = "_empty_1lc5u_71", F = {
1531
+ const po = "_homePage_1lc5u_1", fo = "_header_1lc5u_20", vo = "_title_1lc5u_24", bo = "_articlesList_1lc5u_31", wo = "_articleCard_1lc5u_37", No = "_articleTitle_1lc5u_56", ko = "_articleDescription_1lc5u_63", xo = "_loading_1lc5u_70", $o = "_empty_1lc5u_71", q = {
1532
1532
  homePage: po,
1533
1533
  header: fo,
1534
1534
  title: vo,
@@ -1536,8 +1536,8 @@ const po = "_homePage_1lc5u_1", fo = "_header_1lc5u_20", vo = "_title_1lc5u_24",
1536
1536
  articleCard: wo,
1537
1537
  articleTitle: No,
1538
1538
  articleDescription: ko,
1539
- loading: $o,
1540
- empty: xo
1539
+ loading: xo,
1540
+ empty: $o
1541
1541
  };
1542
1542
  function Io() {
1543
1543
  const { i18n: e, t: n } = A(), { config: o, loadContent: a } = O(), c = X(), [s, l] = y([]), [g, h] = y(!0);
@@ -1591,18 +1591,18 @@ function Io() {
1591
1591
  const f = o.basePath || "";
1592
1592
  window.scrollTo({ top: 0, left: 0, behavior: "auto" }), c(`${f}/${e.language}/${i}`);
1593
1593
  };
1594
- return g ? /* @__PURE__ */ t("div", { className: F.loading, children: n("ui.loadingArticles") }) : s.length === 0 ? /* @__PURE__ */ t("div", { className: F.empty, children: n("ui.noArticlesFound") }) : /* @__PURE__ */ d(q, { children: [
1595
- /* @__PURE__ */ d("div", { className: F.homePage, children: [
1596
- /* @__PURE__ */ t("div", { className: F.header, children: /* @__PURE__ */ t("h1", { className: F.title, children: n("ui.latestPosts") }) }),
1597
- /* @__PURE__ */ t("div", { className: F.articlesList, children: s.map((i) => /* @__PURE__ */ d(
1594
+ return g ? /* @__PURE__ */ t("div", { className: q.loading, children: n("ui.loadingArticles") }) : s.length === 0 ? /* @__PURE__ */ t("div", { className: q.empty, children: n("ui.noArticlesFound") }) : /* @__PURE__ */ d(K, { children: [
1595
+ /* @__PURE__ */ d("div", { className: q.homePage, children: [
1596
+ /* @__PURE__ */ t("div", { className: q.header, children: /* @__PURE__ */ t("h1", { className: q.title, children: n("ui.latestPosts") }) }),
1597
+ /* @__PURE__ */ t("div", { className: q.articlesList, children: s.map((i) => /* @__PURE__ */ d(
1598
1598
  "button",
1599
1599
  {
1600
- className: F.articleCard,
1600
+ className: q.articleCard,
1601
1601
  onClick: () => u(i.slug),
1602
1602
  type: "button",
1603
1603
  children: [
1604
- /* @__PURE__ */ t("h2", { className: F.articleTitle, children: i.title }),
1605
- i.description && /* @__PURE__ */ t("p", { className: F.articleDescription, children: i.description }),
1604
+ /* @__PURE__ */ t("h2", { className: q.articleTitle, children: i.title }),
1605
+ i.description && /* @__PURE__ */ t("p", { className: q.articleDescription, children: i.description }),
1606
1606
  /* @__PURE__ */ t(ft, { date: i.date, author: i.author })
1607
1607
  ]
1608
1608
  },
@@ -1664,18 +1664,18 @@ export {
1664
1664
  Wa as MobileMenu,
1665
1665
  Ao as NavigationContent,
1666
1666
  Nt as NavigationMenu,
1667
- qn as SearchBar,
1667
+ Kn as SearchBar,
1668
1668
  lo as Sidebar,
1669
1669
  Xe as TableOfContents,
1670
1670
  rn as TagResultsModal,
1671
1671
  _n as Tags,
1672
1672
  Eo as createBlogUtils,
1673
- Ft as createContentLoaders,
1673
+ qt as createContentLoaders,
1674
1674
  Z as generateHeadingId,
1675
1675
  _e as getAdjacentArticles,
1676
1676
  ut as getNavigationData,
1677
1677
  O as useBlogConfig,
1678
1678
  Wo as useLanguageChange,
1679
1679
  jo as useSearchModal,
1680
- Kt as useTheme
1680
+ Ut as useTheme
1681
1681
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@x-wave/blog",
3
- "version": "1.0.34",
3
+ "version": "1.0.36",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
package/styles/index.css CHANGED
@@ -214,4 +214,4 @@
214
214
  --xw-sidebar-border: oklch(1 0 0 / 10%);
215
215
  --xw-sidebar-ring: oklch(0.556 0 0);
216
216
  }
217
- ._tabContainer_zk6h4_1{display:inline-flex;background-color:var(--xw-card);border:1px solid var(--xw-border);border-radius:.5rem;margin-bottom:2rem;overflow:hidden}._tab_zk6h4_1{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:.5rem;font-size:.875rem;font-weight:500;transition:.15s cubic-bezier(.4,0,.2,1);cursor:pointer;border:none;outline:none}._tab_zk6h4_1:focus-visible{outline:2px solid var(--xw-ring);outline-offset:2px}._tab_zk6h4_1:disabled{pointer-events:none;opacity:.5}._tab_zk6h4_1{padding:.5rem 1rem;font-size:.87rem;font-weight:500;background-color:transparent;border:none;border-radius:0;color:var(--xw-muted-foreground);cursor:pointer;white-space:nowrap}._tab_zk6h4_1:not(:last-child){border-right:1px solid var(--xw-border)}._tab_zk6h4_1._active_zk6h4_45{background-color:var(--xw-accent);color:var(--xw-accent-foreground)}._tab_zk6h4_1:hover:not(._active_zk6h4_45){background-color:var(--xw-muted);color:var(--xw-foreground)}._tab_zk6h4_1:focus-visible{outline:2px solid var(--xw-accent);outline-offset:-2px}._articleNavigation_1m2tz_1{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--xw-border)}._navContainer_1m2tz_7{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(min-width:1024px){._navContainer_1m2tz_7{gap:1.5rem}}._navLink_1m2tz_18{display:flex;padding:1rem;border:1px solid var(--xw-border);border-radius:.5rem;text-decoration:none;color:var(--xw-foreground);background-color:var(--xw-background);transition:all .2s ease;box-shadow:0 1px 3px #0000000d}._navLink_1m2tz_18:hover{border-color:var(--xw-ring);background-color:var(--xw-card);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}._navLink_1m2tz_18:first-child{justify-content:flex-start}._navLink_1m2tz_18:last-child{justify-content:flex-end;text-align:right}._navLinkContent_1m2tz_43{display:flex;align-items:center;gap:.75rem;min-width:0}._navIcon_1m2tz_50{display:flex;align-items:center;color:var(--xw-primary);flex-shrink:0}._navText_1m2tz_57{display:flex;flex-direction:column;gap:.25rem;min-width:0}._navLabel_1m2tz_64{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--xw-muted-foreground)}._navTitle_1m2tz_72{font-size:.875rem;font-weight:400;color:var(--xw-foreground);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;line-height:1.4}@media(min-width:1024px){._navTitle_1m2tz_72{font-size:1rem}}._blogSidebar_124vg_1{position:sticky;top:0;align-self:flex-start;height:fit-content;max-height:calc(100vh - 8rem);overflow-y:auto;padding:0 0 2rem 1.5rem;margin-left:2rem;background:transparent;border-left:1px solid var(--xw-border);flex-shrink:0;width:250px}@media(max-width:1024px){._blogSidebar_124vg_1{display:none}}._section_124vg_21{margin-bottom:2rem}._section_124vg_21:last-child{margin-bottom:0}._sectionTitle_124vg_28{font-size:.75rem;font-weight:600;color:var(--xw-muted-foreground);letter-spacing:.05em;margin:0 0 1rem}._linksList_124vg_36{display:flex;flex-direction:column;gap:.25rem}._link_124vg_36{display:flex;align-items:center;gap:.5rem;padding:.5rem;color:var(--xw-foreground);text-decoration:none;border-radius:.25rem;transition:all .15s cubic-bezier(.4,0,.2,1);font-size:.875rem}._link_124vg_36:hover{background-color:var(--xw-card);color:var(--xw-primary)}._link_124vg_36 svg{flex-shrink:0}._metadata_bsge0_1{display:flex;align-items:center;gap:1.5rem;margin-top:1rem;margin-bottom:1rem}._author_bsge0_9,._date_bsge0_10{display:flex;align-items:center;gap:.5rem;font-weight:500;font-size:.9rem}._author_bsge0_9 svg,._date_bsge0_10 svg{flex-shrink:0}._date_bsge0_10{color:var(--xw-text-secondary, #666)}._tableOfContents_9ofak_1{position:sticky;top:5rem;align-self:flex-start;height:fit-content;max-height:calc(100vh - 8rem);overflow-y:auto;padding:2rem 0 2rem 1.5rem;margin-left:2rem;background:transparent;border-left:1px solid var(--xw-border);flex-shrink:0;max-width:250px}@media(max-width:1024px){._tableOfContents_9ofak_1{display:none}}._header_9ofak_21{margin-bottom:1rem}._title_9ofak_25{font-size:.75rem;font-weight:500;color:var(--xw-muted-foreground);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}._nav_9ofak_34 ul{margin:0;padding:0;list-style:none}._list_9ofak_40{display:flex;flex-direction:column;gap:.125rem;margin:0}._link_9ofak_47{display:block;width:100%;padding:.25rem 0;text-align:left;background:none;border:none;cursor:pointer;font-size:.875rem;line-height:1.4;color:var(--xw-muted-foreground);text-decoration:none;border-radius:.25rem;transition:all .15s cubic-bezier(.4,0,.2,1);position:relative;font-family:inherit}._link_9ofak_47:hover{color:var(--xw-foreground)}._link_9ofak_47:focus{outline:none;color:var(--xw-foreground)}._link_9ofak_47._active_9ofak_71{color:var(--xw-primary);font-weight:500}._link_9ofak_47._active_9ofak_71:before{content:"";position:absolute;left:-1.5rem;top:50%;transform:translateY(-50%);width:1px;height:1rem;background-color:var(--xw-primary);border-radius:.5px}._level1_9ofak_87{font-weight:500;padding-left:0;margin-bottom:.125rem}._level2_9ofak_93{padding-left:.5rem;margin-bottom:.0625rem}._level3_9ofak_98{padding-left:1rem;font-size:.8125rem;margin-bottom:.0625rem}._level4_9ofak_104{padding-left:1.5rem;font-size:.8125rem;margin-bottom:.0625rem}._level5_9ofak_110{padding-left:2rem;font-size:.75rem;margin-bottom:.0625rem}._level6_9ofak_116{padding-left:2.5rem;font-size:.75rem;margin-bottom:.0625rem}._tableOfContents_9ofak_1::-webkit-scrollbar{width:4px}._tableOfContents_9ofak_1::-webkit-scrollbar-track{background:transparent}._tableOfContents_9ofak_1::-webkit-scrollbar-thumb{background:var(--xw-border);border-radius:2px}._tableOfContents_9ofak_1::-webkit-scrollbar-thumb:hover{background:var(--xw-muted-foreground)}._overlay_1e1d4_1{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;display:flex;align-items:flex-start;justify-content:center;padding-top:10vh;animation:_fadeIn_1e1d4_1 .2s ease;height:100vh}@keyframes _fadeIn_1e1d4_1{0%{opacity:0}to{opacity:1}}._modal_1e1d4_26{width:90%;max-width:600px;background:var(--xw-card);border:1px solid var(--xw-border);border-radius:.75rem;box-shadow:0 20px 60px #0000004d;animation:_slideIn_1e1d4_1 .2s ease;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}@keyframes _slideIn_1e1d4_1{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}._header_1e1d4_50{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--xw-border)}._title_1e1d4_58{font-size:1.125rem;font-weight:600;color:var(--xw-foreground);margin:0}._closeButton_1e1d4_65{background:none;border:none;color:var(--xw-muted-foreground);cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:.25rem;transition:all .2s ease}._closeButton_1e1d4_65 svg{width:1.25rem;height:1.25rem}._closeButton_1e1d4_65:hover{background:var(--xw-secondary);color:var(--xw-foreground)}._results_1e1d4_86{flex:1;overflow-y:auto;padding:.5rem;min-height:200px;max-height:400px}._resultsList_1e1d4_94{list-style:none;padding:0;margin:0}._resultItem_1e1d4_100{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;width:100%;padding:.75rem 1rem;background:none;border:none;border-radius:.5rem;cursor:pointer;text-align:left;transition:all .15s ease;color:var(--xw-foreground)}._resultItem_1e1d4_100:hover{background:var(--xw-secondary)}._resultTitle_1e1d4_119{font-weight:500;font-size:.95rem}._resultSlug_1e1d4_124{font-size:.8rem;color:var(--xw-muted-foreground);opacity:.8}._noResults_1e1d4_130{padding:3rem 1rem;text-align:center;color:var(--xw-muted-foreground);font-size:.9rem}._tags_11t8a_1{display:flex;align-items:center;gap:.75rem;margin:2rem 0 1rem;padding:1rem 0 0;border-top:1px solid var(--xw-border)}._tags_11t8a_1._compact_11t8a_9{margin:2rem 0 1rem;padding:1rem 0 0;border-top:1px solid var(--xw-border)}._tagLabel_11t8a_15{display:flex;align-items:center;gap:.5rem;color:var(--xw-muted-foreground);font-size:.875rem;font-weight:500;white-space:nowrap}._tagIcon_11t8a_25{width:1.125rem;height:1.125rem}._tagList_11t8a_30{display:flex;flex-wrap:wrap;gap:.5rem}._tag_11t8a_1{display:inline-flex;align-items:center;padding:.25rem .75rem;background:none;border:1px solid var(--xw-border);border-radius:.75rem;color:var(--xw-muted-foreground);font-size:.8rem;font-weight:400;cursor:pointer;transition:all .2s ease}._tag_11t8a_1:hover{color:var(--xw-foreground);border-color:var(--xw-ring)}._contentPage_1nxj5_1{flex:1;max-width:48rem;margin:0;padding:0 0 2rem}@media(max-width:767px){._contentPage_1nxj5_1{padding:1.5rem;max-width:none}}@media(max-width:1024px){._contentPage_1nxj5_1{max-width:none;padding:2rem}}._metadata_1nxj5_20{display:flex;gap:1rem;align-items:center;padding:.5rem 0 1rem;color:var(--xw-muted-foreground);font-size:.875rem;border-bottom:1px solid var(--xw-border);margin-bottom:1rem}._metadata_1nxj5_20 ._author_1nxj5_30,._metadata_1nxj5_20 ._date_1nxj5_31{display:flex;align-items:center;gap:.5rem}._metadata_1nxj5_20 ._author_1nxj5_30{font-weight:500;color:var(--xw-foreground)}@media(max-width:767px){._metadata_1nxj5_20{flex-direction:column;align-items:flex-start;gap:.25rem}}._loadingContainer_1nxj5_48,._errorContainer_1nxj5_49{display:flex;align-items:center;justify-content:center;height:16rem}._loadingContainer_1nxj5_48{flex-direction:column;align-items:flex-start;gap:1.5rem;padding:2rem 0}@keyframes _shimmer_1nxj5_1{0%{background-position:-1000px 0}to{background-position:1000px 0}}._skeletonTitle_1nxj5_71{width:60%;height:2.5rem;background:linear-gradient(90deg,var(--xw-muted) 0%,color-mix(in oklch,var(--xw-muted) 50%,white) 50%,var(--xw-muted) 100%);background-size:1000px 100%;animation:_shimmer_1nxj5_1 2s infinite linear;border-radius:.5rem}._skeletonParagraph_1nxj5_80{width:100%;height:1rem;background:linear-gradient(90deg,var(--xw-muted) 0%,color-mix(in oklch,var(--xw-muted) 50%,white) 50%,var(--xw-muted) 100%);background-size:1000px 100%;animation:_shimmer_1nxj5_1 2s infinite linear;border-radius:.25rem;margin-bottom:.5rem}._skeletonParagraph_1nxj5_80:not(:last-child){margin-bottom:1rem}._skeletonParagraphShort_1nxj5_93{width:70%;height:1rem;background:linear-gradient(90deg,var(--xw-muted) 0%,color-mix(in oklch,var(--xw-muted) 50%,white) 50%,var(--xw-muted) 100%);background-size:1000px 100%;animation:_shimmer_1nxj5_1 2s infinite linear;border-radius:.25rem}._loadingText_1nxj5_102{color:var(--xw-muted-foreground);font-size:1rem}._errorText_1nxj5_107{color:var(--xw-destructive);font-size:1rem}._mdxContent_1nxj5_112{max-width:none}._mdxContent_1nxj5_112 h1{font-size:1.875rem;font-weight:600;letter-spacing:-.025em;margin-bottom:1.5rem;border-bottom:1px solid var(--xw-border);padding-bottom:.75rem;line-height:1.2;scroll-margin-top:5rem}._mdxContent_1nxj5_112 h1._withMetadata_1nxj5_125{border-bottom:none;padding-bottom:0;margin-bottom:.5rem}._mdxContent_1nxj5_112 h1 a{color:inherit;text-decoration:none;border:none;position:relative}._mdxContent_1nxj5_112 h1 a:hover{color:inherit;border:none}._mdxContent_1nxj5_112 h1 a:hover:before{content:"#";position:absolute;left:-1.5rem;color:var(--xw-link);opacity:.7;font-weight:400}._mdxContent_1nxj5_112 h2{font-size:1.5rem;font-weight:500;letter-spacing:-.02em;margin-bottom:1rem;margin-top:2.5rem;border-bottom:1px solid var(--xw-border);padding-bottom:.5rem;line-height:1.3;scroll-margin-top:5rem}._mdxContent_1nxj5_112 h2 a{color:inherit;text-decoration:none;border:none;position:relative}._mdxContent_1nxj5_112 h2 a:hover{color:inherit;border:none}._mdxContent_1nxj5_112 h2 a:hover:before{content:"#";position:absolute;left:-1.5rem;color:var(--xw-link);opacity:.7;font-weight:400}._mdxContent_1nxj5_112 h3{font-size:1.25rem;font-weight:500;letter-spacing:-.015em;margin-bottom:.75rem;margin-top:2rem;line-height:1.4;scroll-margin-top:5rem}._mdxContent_1nxj5_112 h3 a{color:inherit;text-decoration:none;border:none;position:relative}._mdxContent_1nxj5_112 h3 a:hover{color:inherit;border:none}._mdxContent_1nxj5_112 h3 a:hover:before{content:"#";position:absolute;left:-1.5rem;color:var(--xw-link);opacity:.7;font-weight:400}._mdxContent_1nxj5_112 h4{font-size:1.125rem;font-weight:500;letter-spacing:-.01em;margin-bottom:.5rem;margin-top:1.5rem;line-height:1.4;scroll-margin-top:5rem}._mdxContent_1nxj5_112 h4 a{color:inherit;text-decoration:none;border:none;position:relative}._mdxContent_1nxj5_112 h4 a:hover{color:inherit;border:none}._mdxContent_1nxj5_112 h4 a:hover:before{content:"#";position:absolute;left:-1.5rem;color:var(--xw-link);opacity:.7;font-weight:400}._mdxContent_1nxj5_112 h5{font-size:1rem;font-weight:500;margin-bottom:.5rem;margin-top:1.25rem;line-height:1.5}._mdxContent_1nxj5_112 h6{font-size:.875rem;font-weight:500;margin-bottom:.5rem;margin-top:1rem;line-height:1.5}._mdxContent_1nxj5_112 p{font-size:1rem;line-height:1.65;margin-bottom:1rem;color:var(--xw-foreground)}._mdxContent_1nxj5_112 ul,._mdxContent_1nxj5_112 ol{margin-bottom:1rem;padding-left:1.5rem}._mdxContent_1nxj5_112 ul li,._mdxContent_1nxj5_112 ol li{font-size:1rem;line-height:1.65;margin-bottom:.375rem}._mdxContent_1nxj5_112 ul ul,._mdxContent_1nxj5_112 ul ol,._mdxContent_1nxj5_112 ol ul,._mdxContent_1nxj5_112 ol ol{margin-top:.375rem;margin-bottom:.375rem}._mdxContent_1nxj5_112 ul{list-style-type:disc}._mdxContent_1nxj5_112 ol{list-style-type:decimal}._mdxContent_1nxj5_112 code{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.875rem;background-color:var(--xw-muted);padding:.1875rem .4375rem;border-radius:.25rem;color:var(--xw-foreground);font-weight:500}._mdxContent_1nxj5_112 pre{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;background-color:var(--xw-muted);padding:1.25rem;border-radius:.75rem;overflow-x:auto;margin:1.5rem 0;position:relative;border:1px solid var(--xw-border)}._mdxContent_1nxj5_112 pre code{background-color:transparent;padding:0;color:inherit;font-weight:400}._mdxContent_1nxj5_112 ._codeBlock_1nxj5_300{position:relative;margin-bottom:1.5rem}._mdxContent_1nxj5_112 ._codeLanguage_1nxj5_304{position:absolute;top:.5rem;right:.5rem;font-size:.75rem;color:var(--xw-muted-foreground);background-color:var(--xw-background);padding:.25rem .5rem;border-radius:.25rem;border:1px solid var(--xw-border)}._mdxContent_1nxj5_112 blockquote{border-left:3px solid var(--xw-accent);padding-left:1rem;font-style:italic;color:var(--xw-muted-foreground);margin-bottom:1rem;margin-top:1rem}._mdxContent_1nxj5_112 blockquote p{margin-bottom:.5rem}._mdxContent_1nxj5_112 blockquote p:last-child{margin-bottom:0}._mdxContent_1nxj5_112 a{color:var(--xw-link);text-decoration:none;transition:color .15s cubic-bezier(.4,0,.2,1);border-bottom:1px solid transparent}._mdxContent_1nxj5_112 a:hover{color:color-mix(in oklch,var(--xw-link) 80%,transparent);border-bottom-color:currentColor}._mdxContent_1nxj5_112 strong{font-weight:600}._mdxContent_1nxj5_112 em{font-style:italic}._mdxContent_1nxj5_112 table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.95rem}._mdxContent_1nxj5_112 table th,._mdxContent_1nxj5_112 table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--xw-border);line-height:1.4}._mdxContent_1nxj5_112 table th{font-weight:500;background-color:var(--xw-muted);font-size:.875rem;letter-spacing:.025em}._mdxContent_1nxj5_112 table tbody tr:hover{background-color:color-mix(in oklch,var(--xw-muted) 50%,transparent)}._mdxContent_1nxj5_112 img{max-width:100%;height:auto;border-radius:.5rem;margin:1.5rem 0;border:1px solid var(--xw-border)}._mdxContent_1nxj5_112 hr{border:none;border-top:1px solid var(--xw-border);margin:2rem 0}._searchButton_1k9sl_1{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:.375rem;background:none;border:none;color:var(--xw-muted-foreground);cursor:pointer;transition:all .2s ease;font-size:.875rem}._searchButton_1k9sl_1:hover{border-color:var(--xw-input)}._searchButton_1k9sl_1 ._searchIcon_1k9sl_17{width:1rem;height:1rem;opacity:.6}@media(max-width:768px){._searchButton_1k9sl_1 ._searchHint_1k9sl_23{display:none}}._searchButton_1k9sl_1 ._kbd_1k9sl_27{display:none;padding:.125rem .375rem;background:var(--xw-card);border:1px solid var(--xw-border);border-radius:.25rem;font-size:.75rem;font-family:monospace}@media(min-width:768px){._searchButton_1k9sl_1 ._kbd_1k9sl_27{display:block}}._searchOverlay_1k9sl_42{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;display:flex;align-items:flex-start;justify-content:center;padding-top:10vh;animation:_fadeIn_1k9sl_1 .2s ease;height:100vh}@keyframes _fadeIn_1k9sl_1{0%{opacity:0}to{opacity:1}}._searchModal_1k9sl_67{width:90%;max-width:600px;background:var(--xw-card);border:1px solid var(--xw-border);border-radius:.75rem;box-shadow:0 20px 60px #0000004d;animation:_slideIn_1k9sl_1 .2s ease;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}@keyframes _slideIn_1k9sl_1{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}._searchHeader_1k9sl_91{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--xw-border)}._searchHeader_1k9sl_91 ._searchIcon_1k9sl_17{width:1.25rem;height:1.25rem;opacity:.5;flex-shrink:0}._searchInput_1k9sl_105{flex:1;border:none;background:transparent;color:var(--xw-foreground);font-size:1rem;outline:none}._searchInput_1k9sl_105:focus{border:none;outline:none;box-shadow:none}._searchInput_1k9sl_105::placeholder{color:var(--xw-muted-foreground);opacity:.6}._closeButton_1k9sl_123{background:none;border:none;color:var(--xw-muted-foreground);cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:.25rem;transition:all .2s ease}._closeButton_1k9sl_123 svg{width:1.25rem;height:1.25rem}._closeButton_1k9sl_123:hover{background:var(--xw-secondary);color:var(--xw-foreground)}._searchResults_1k9sl_144{flex:1;overflow-y:auto;padding:.5rem;min-height:200px;max-height:400px}._resultsList_1k9sl_152{list-style:none;padding:0;margin:0}._resultItem_1k9sl_158{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;width:100%;padding:.75rem 1rem;background:none;border:none;border-radius:.5rem;cursor:pointer;text-align:left;transition:all .15s ease;color:var(--xw-foreground)}._resultItem_1k9sl_158:hover,._resultItem_1k9sl_158._selected_1k9sl_173{background:var(--xw-secondary)}._resultItem_1k9sl_158 ._resultTitle_1k9sl_176{font-weight:500;font-size:.95rem}._resultItem_1k9sl_158 ._resultSlug_1k9sl_180{font-size:.8rem;color:var(--xw-muted-foreground);opacity:.8}._noResults_1k9sl_186{padding:3rem 1rem;text-align:center;color:var(--xw-muted-foreground);font-size:.9rem}._searchHints_1k9sl_193{display:flex;align-items:center;gap:1.5rem;padding:.75rem 1.25rem;border-top:1px solid var(--xw-border);background:var(--xw-secondary);font-size:.8rem;color:var(--xw-muted-foreground)}@media(max-width:768px){._searchHints_1k9sl_193{flex-direction:column;align-items:flex-start;gap:.5rem}}._searchHints_1k9sl_193 ._hint_1k9sl_210{display:flex;align-items:center;gap:.5rem}._searchHints_1k9sl_193 ._hint_1k9sl_210 kbd{padding:.125rem .375rem;background:var(--xw-card);border:1px solid var(--xw-border);border-radius:.25rem;font-size:.75rem;font-family:monospace;min-width:1.5rem;text-align:center}._header_jrobc_1{position:sticky;top:0;z-index:1020;background-color:#fffc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);height:3.5rem;padding-left:16rem}.dark ._header_jrobc_1{background-color:#2020201a}@supports not (backdrop-filter: blur(12px)){._header_jrobc_1{background-color:var(--xw-background)}}@media(max-width:767px){._header_jrobc_1{padding:0}}._container_jrobc_24{width:100%;max-width:1400px;margin:0 auto;padding:0 1.5rem}@media(max-width:767px){._container_jrobc_24{padding:0 1rem}}._content_jrobc_36{display:flex;align-items:center;justify-content:space-between;height:3.5rem}._leftSection_jrobc_43{display:flex;align-items:center;gap:1rem}._mobileMenuButton_jrobc_49{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:.5rem;font-size:.875rem;font-weight:500;transition:.15s cubic-bezier(.4,0,.2,1);cursor:pointer;border:none;outline:none}._mobileMenuButton_jrobc_49:focus-visible{outline:2px solid var(--xw-ring);outline-offset:2px}._mobileMenuButton_jrobc_49:disabled{pointer-events:none;opacity:.5}._mobileMenuButton_jrobc_49{padding:.5rem;background-color:transparent;color:var(--xw-muted-foreground);border-radius:.5rem;display:none}._mobileMenuButton_jrobc_49:hover{background-color:var(--xw-muted);color:var(--xw-foreground)}@media(max-width:767px){._mobileMenuButton_jrobc_49{display:flex}}._burgerIcon_jrobc_87{width:1.25rem;height:1.25rem}._logo_jrobc_92,._nav_jrobc_98{display:flex;align-items:center;gap:.5rem}@media(max-width:767px){._nav_jrobc_98{gap:.25rem}}._navLink_jrobc_109{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:500;color:var(--xw-muted-foreground);text-decoration:none;transition:all .15s cubic-bezier(.4,0,.2,1)}._navLink_jrobc_109:hover{color:var(--xw-foreground)}._navLink_jrobc_109:focus{outline:none}._githubIcon_jrobc_128{width:1rem;height:1rem;flex-shrink:0;transition:transform .15s cubic-bezier(.4,0,.2,1)}._externalIcon_jrobc_135{width:1rem;height:1rem;flex-shrink:0}._supportDropdown_jrobc_141,._themeDropdown_jrobc_145{position:relative}._themeButton_jrobc_149{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:.5rem;font-size:.875rem;font-weight:500;color:var(--xw-muted-foreground);background:none;border:none;cursor:pointer;transition:all .15s cubic-bezier(.4,0,.2,1)}._themeButton_jrobc_149:hover{color:var(--xw-foreground);background-color:var(--xw-muted)}._themeButton_jrobc_149:focus{outline:none}._themeIcon_jrobc_171{width:1.125rem;height:1.125rem;flex-shrink:0}._supportButton_jrobc_177{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:500;color:var(--xw-muted-foreground);background:none;border:none;cursor:pointer;transition:all .15s cubic-bezier(.4,0,.2,1)}._supportButton_jrobc_177:hover{color:var(--xw-foreground)}._supportButton_jrobc_177:focus{outline:none}._caretIcon_jrobc_198{width:.875rem;height:.875rem;flex-shrink:0;transition:transform .15s cubic-bezier(.4,0,.2,1)}button[aria-expanded=true] ._caretIcon_jrobc_198{transform:rotate(180deg)}._dropdownMenu_jrobc_208{position:absolute;top:calc(100% + .25rem);right:0;min-width:10rem;background-color:var(--xw-popover);border:1px solid var(--xw-border);border-radius:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;z-index:1000;overflow:hidden}._dropdownItem_jrobc_221{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem 1rem;font-size:.875rem;color:var(--xw-popover-foreground);text-decoration:none;background:none;border:none;cursor:pointer;text-align:left;transition:background-color .15s cubic-bezier(.4,0,.2,1)}._dropdownItem_jrobc_221:hover{background-color:var(--xw-muted)}._dropdownItem_jrobc_221:focus{outline:none;background-color:var(--xw-muted)}._dropdownIcon_jrobc_244{width:1rem;height:1rem;flex-shrink:0}@media(max-width:767px){._logoText_jrobc_251{font-size:1rem}._navLink_jrobc_109{padding:.25rem .5rem;font-size:.8rem;gap:.25rem}._githubIcon_jrobc_128{width:.875rem;height:.875rem}}._backdrop_1a7pu_1{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;z-index:1040;opacity:0;visibility:hidden;transition:all .15s cubic-bezier(.4,0,.2,1)}._backdrop_1a7pu_1._open_1a7pu_13{opacity:1;visibility:visible}._mobileMenu_1a7pu_18{position:fixed;top:0;left:0;width:320px;height:100vh;background-color:var(--xw-background);border-right:1px solid var(--xw-border);z-index:1050;transform:translate(-100%);transition:transform .15s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;overflow:hidden}._mobileMenu_1a7pu_18._open_1a7pu_13{transform:translate(0)}._header_1a7pu_37{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--xw-border);flex-shrink:0}._brand_1a7pu_46{flex:1;display:flex;align-items:center;gap:.5rem}._cloudIcon_1a7pu_53{width:1.5rem;height:1.5rem;flex-shrink:0}._cloudIcon_1a7pu_53 .accent{fill:#d33079}._title_1a7pu_62{font-size:1.125rem;font-weight:600;color:var(--xw-foreground);margin:0}._closeButton_1a7pu_69{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:.5rem;font-size:.875rem;font-weight:500;transition:.15s cubic-bezier(.4,0,.2,1);cursor:pointer;border:none;outline:none}._closeButton_1a7pu_69:focus-visible{outline:2px solid var(--xw-ring);outline-offset:2px}._closeButton_1a7pu_69:disabled{pointer-events:none;opacity:.5}._closeButton_1a7pu_69{padding:.5rem;background-color:transparent;color:var(--xw-muted-foreground);border-radius:.5rem}._closeButton_1a7pu_69:hover{background-color:var(--xw-muted);color:var(--xw-foreground)}._closeIcon_1a7pu_101{width:1.25rem;height:1.25rem}._languageSection_1a7pu_106{padding:1.5rem;border-bottom:1px solid var(--xw-border);flex-shrink:0}._languageSelect_1a7pu_112{position:relative;width:100%}._languageButton_1a7pu_117{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:.5rem;font-size:.875rem;font-weight:500;transition:.15s cubic-bezier(.4,0,.2,1);cursor:pointer;border:none;outline:none}._languageButton_1a7pu_117:focus-visible{outline:2px solid var(--xw-ring);outline-offset:2px}._languageButton_1a7pu_117:disabled{pointer-events:none;opacity:.5}._languageButton_1a7pu_117{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.5rem 1rem;background-color:var(--xw-background);border:1px solid var(--xw-border);color:var(--xw-foreground);gap:.5rem}._languageButton_1a7pu_117:hover,._languageButton_1a7pu_117[aria-expanded=true]{background-color:var(--xw-muted)}._icon_1a7pu_156{width:1rem;height:1rem;flex-shrink:0}._chevron_1a7pu_162{width:1rem;height:1rem;transition:transform .15s cubic-bezier(.4,0,.2,1);margin-left:auto}._languageButton_1a7pu_117[aria-expanded=true] ._chevron_1a7pu_162{transform:rotate(180deg)}._languageDropdown_1a7pu_172{position:absolute;top:100%;left:0;right:0;background-color:var(--xw-popover);border:1px solid var(--xw-border);border-radius:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;z-index:1000;margin-top:.25rem}._languageOption_1a7pu_185{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:.5rem;font-size:.875rem;font-weight:500;transition:.15s cubic-bezier(.4,0,.2,1);cursor:pointer;border:none;outline:none}._languageOption_1a7pu_185:focus-visible{outline:2px solid var(--xw-ring);outline-offset:2px}._languageOption_1a7pu_185:disabled{pointer-events:none;opacity:.5}._languageOption_1a7pu_185{width:100%;padding:.5rem 1rem;background-color:transparent;color:var(--xw-foreground);text-align:left;justify-content:flex-start;border-radius:0}._languageOption_1a7pu_185:first-child{border-top-left-radius:.5rem;border-top-right-radius:.5rem}._languageOption_1a7pu_185:last-child{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}._languageOption_1a7pu_185:hover{background-color:var(--xw-muted)}._languageOption_1a7pu_185._selected_1a7pu_226{background-color:var(--xw-accent);color:var(--xw-accent-foreground)}._scrollArea_1a7pu_231{flex:1;overflow-y:auto;padding:1.5rem 0}._navigation_1a7pu_237{padding:0 1.5rem}._section_1a7pu_241{margin-bottom:1rem}._sectionButton_1a7pu_245{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:.5rem;font-size:.875rem;font-weight:500;transition:.15s cubic-bezier(.4,0,.2,1);cursor:pointer;border:none;outline:none}._sectionButton_1a7pu_245:focus-visible{outline:2px solid var(--xw-ring);outline-offset:2px}._sectionButton_1a7pu_245:disabled{pointer-events:none;opacity:.5}._sectionButton_1a7pu_245{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.5rem 1rem;background-color:transparent;color:var(--xw-foreground);font-weight:600;gap:.5rem;border-radius:.5rem}._sectionButton_1a7pu_245:hover{background-color:var(--xw-muted)}._sectionButton_1a7pu_245 ._icon_1a7pu_156{transition:transform .15s cubic-bezier(.4,0,.2,1);margin-left:auto}._sectionButton_1a7pu_245._expanded_1a7pu_285 ._icon_1a7pu_156{transform:rotate(90deg)}._sectionItems_1a7pu_289{margin-top:.5rem;margin-left:1rem;display:flex;flex-direction:column;gap:.25rem}._navItem_1a7pu_297{display:block;padding:.5rem 1rem;border-radius:.5rem;color:var(--xw-muted-foreground);text-decoration:none;transition:all .15s cubic-bezier(.4,0,.2,1);font-size:.875rem}._navItem_1a7pu_297:hover{background-color:var(--xw-muted);color:var(--xw-foreground)}._navItem_1a7pu_297._active_1a7pu_310{background-color:var(--xw-accent);color:var(--xw-accent-foreground);font-weight:500}._navItemContent_1a7pu_316{display:flex;align-items:center;gap:.5rem}._navItemTitle_1a7pu_322{flex:1}@media(min-width:1024px){._mobileMenu_1a7pu_18,._backdrop_1a7pu_1{display:none}}._sidebar_1tdxt_1{position:fixed;top:0;left:0;width:16rem;height:100vh;background-color:var(--xw-sidebar);overflow-y:auto;z-index:1020}@media(max-width:767px){._sidebar_1tdxt_1{display:none}}._header_1tdxt_17{position:sticky;top:0;z-index:1020;padding:1rem;background-color:var(--xw-sidebar);display:flex;flex-direction:column;gap:.5rem;padding-bottom:0}._brand_1tdxt_29{display:flex;align-items:center;gap:.5rem}._cloudIcon_1tdxt_35{width:1.5rem;height:1.5rem;flex-shrink:0}._cloudIcon_1tdxt_35 .accent{fill:#d33079}._title_1tdxt_44{font-size:1rem;font-weight:600;line-height:1.5;margin:0;letter-spacing:-.02em;color:var(--xw-foreground)}._languageSelect_1tdxt_55{position:relative;margin-top:.25rem;width:100%}._languageButton_1tdxt_61{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:.5rem;font-size:.875rem;font-weight:500;transition:.15s cubic-bezier(.4,0,.2,1);cursor:pointer;border:none;outline:none}._languageButton_1tdxt_61:focus-visible{outline:2px solid var(--xw-ring);outline-offset:2px}._languageButton_1tdxt_61:disabled{pointer-events:none;opacity:.5}._languageButton_1tdxt_61{display:flex;align-items:center;justify-content:space-between;padding:.25rem .5rem;width:100%;gap:.25rem;font-size:.8rem;background:transparent;border:1px solid var(--xw-border);border-radius:.25rem;color:var(--xw-muted-foreground)}._languageButton_1tdxt_61:hover{background-color:var(--xw-muted);color:var(--xw-foreground)}._languageButton_1tdxt_61 ._icon_1tdxt_99{width:.875rem;height:.875rem;flex-shrink:0}._languageButton_1tdxt_61 ._chevron_1tdxt_104{width:.875rem;height:.875rem;flex-shrink:0;transition:transform .15s cubic-bezier(.4,0,.2,1)}._languageButton_1tdxt_61[aria-expanded=true] ._chevron_1tdxt_104{transform:rotate(180deg)}._languageDropdown_1tdxt_114{position:absolute;top:100%;left:0;right:0;margin-top:.25rem;background-color:var(--xw-popover);border:1px solid var(--xw-border);border-radius:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;z-index:1000;overflow:hidden}._languageOption_1tdxt_128{display:block;width:100%;padding:.25rem .5rem;text-align:left;background:none;border:none;color:var(--xw-popover-foreground);font-size:.85rem;cursor:pointer;transition:background-color .15s cubic-bezier(.4,0,.2,1)}._languageOption_1tdxt_128:hover{background-color:var(--xw-muted)}._languageOption_1tdxt_128:focus{outline:none;background-color:var(--xw-muted)}._languageOption_1tdxt_128._selected_1tdxt_147{background-color:var(--xw-muted);color:var(--xw-foreground)}._scrollArea_1tdxt_152{height:calc(100vh - 120px);padding:1rem .5rem 1rem 1rem;overflow-y:auto}._navigation_1tdxt_158{display:flex;flex-direction:column;gap:.125rem}._section_1tdxt_164{display:flex;flex-direction:column;gap:0}._sectionButton_1tdxt_170{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:.5rem;font-size:.875rem;font-weight:500;transition:.15s cubic-bezier(.4,0,.2,1);cursor:pointer;border:none;outline:none}._sectionButton_1tdxt_170:focus-visible{outline:2px solid var(--xw-ring);outline-offset:2px}._sectionButton_1tdxt_170:disabled{pointer-events:none;opacity:.5}._sectionButton_1tdxt_170{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.25rem .5rem;font-weight:500;font-size:.85rem;color:var(--xw-muted-foreground);background:transparent;text-align:left;letter-spacing:-.01em;border:none}._sectionButton_1tdxt_170:hover{color:var(--xw-foreground)}._sectionButton_1tdxt_170 ._icon_1tdxt_99{width:.875rem;height:.875rem;transition:transform .15s cubic-bezier(.4,0,.2,1)}._sectionButton_1tdxt_170._expanded_1tdxt_213 ._icon_1tdxt_99{transform:rotate(90deg)}._sectionItems_1tdxt_217{margin-top:.25rem;padding-left:1rem;display:flex;flex-direction:column;gap:.125rem}._navItem_1tdxt_225{display:block;width:100%;padding:.25rem .5rem;border-radius:.25rem;font-size:.85rem;color:var(--xw-muted-foreground);text-decoration:none;transition:color .15s cubic-bezier(.4,0,.2,1)}._navItem_1tdxt_225:hover{color:var(--xw-foreground)}._navItem_1tdxt_225._active_1tdxt_238{color:var(--xw-foreground);font-weight:500}._navItemContent_1tdxt_243{display:flex;align-items:center;justify-content:space-between;width:100%}._sidebar_1tdxt_1::-webkit-scrollbar{width:6px}._sidebar_1tdxt_1::-webkit-scrollbar-track{background:transparent}._sidebar_1tdxt_1::-webkit-scrollbar-thumb{background:var(--xw-muted-foreground);border-radius:9999px;opacity:.3}._sidebar_1tdxt_1::-webkit-scrollbar-thumb:hover{opacity:.6}._app_wf6ni_1{min-height:100vh;background-color:var(--xw-background);color:var(--xw-foreground);display:flex;flex-direction:column}._layout_wf6ni_9{display:flex;flex:1;min-height:calc(100vh - 3.5rem)}._main_wf6ni_15{flex:1;display:flex;flex-direction:column;margin-left:16rem}._main_wf6ni_15._fullWidth_wf6ni_21{margin-left:0}@media(max-width:767px){._main_wf6ni_15{margin-left:0}}._contentWrapper_wf6ni_30{display:flex;flex:1;position:relative;width:100%;max-width:80rem;margin:0 auto;padding:2rem}._main_wf6ni_15._fullWidth_wf6ni_21 ._contentWrapper_wf6ni_30{width:auto}@media(max-width:1024px){._contentWrapper_wf6ni_30{padding:1.5rem}}@media(max-width:767px){._contentWrapper_wf6ni_30{padding:1rem}}._homePage_1lc5u_1{flex:1;max-width:48rem;margin:0;padding:0 0 2rem}@media(max-width:767px){._homePage_1lc5u_1{padding:1.5rem;max-width:none}}@media(max-width:1024px){._homePage_1lc5u_1{max-width:none;padding:2rem}}._header_1lc5u_20{margin-bottom:1.5rem}._title_1lc5u_24{font-size:2rem;font-weight:700;color:var(--xw-foreground);margin-bottom:0!important}._articlesList_1lc5u_31{display:flex;flex-direction:column;gap:1rem}._articleCard_1lc5u_37{padding:1rem;border:1px solid var(--xw-border);border-radius:.5rem;background:transparent;cursor:pointer;text-align:left;transition:all .2s ease-in-out}._articleCard_1lc5u_37:hover{border-color:var(--xw-primary);background-color:var(--xw-card);transform:translateY(-2px)}._articleCard_1lc5u_37:focus-visible{outline:2px solid var(--xw-primary);outline-offset:2px}._articleTitle_1lc5u_56{font-size:1.25rem;font-weight:600;margin:0 0 .5rem;color:var(--xw-foreground)}._articleDescription_1lc5u_63{font-size:.9rem;color:var(--xw-muted-foreground);margin:0 0 .5rem;line-height:1.5}._loading_1lc5u_70,._empty_1lc5u_71{padding:2rem;text-align:center;color:var(--xw-muted-foreground)}
217
+ ._tabContainer_zk6h4_1{display:inline-flex;background-color:var(--xw-card);border:1px solid var(--xw-border);border-radius:.5rem;margin-bottom:2rem;overflow:hidden}._tab_zk6h4_1{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:.5rem;font-size:.875rem;font-weight:500;transition:.15s cubic-bezier(.4,0,.2,1);cursor:pointer;border:none;outline:none}._tab_zk6h4_1:focus-visible{outline:2px solid var(--xw-ring);outline-offset:2px}._tab_zk6h4_1:disabled{pointer-events:none;opacity:.5}._tab_zk6h4_1{padding:.5rem 1rem;font-size:.87rem;font-weight:500;background-color:transparent;border:none;border-radius:0;color:var(--xw-muted-foreground);cursor:pointer;white-space:nowrap}._tab_zk6h4_1:not(:last-child){border-right:1px solid var(--xw-border)}._tab_zk6h4_1._active_zk6h4_45{background-color:var(--xw-accent);color:var(--xw-accent-foreground)}._tab_zk6h4_1:hover:not(._active_zk6h4_45){background-color:var(--xw-muted);color:var(--xw-foreground)}._tab_zk6h4_1:focus-visible{outline:2px solid var(--xw-accent);outline-offset:-2px}._articleNavigation_1ir6x_1{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--xw-border)}._navContainer_1ir6x_7{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(min-width:1024px){._navContainer_1ir6x_7{gap:1.5rem}}._navLink_1ir6x_18{display:flex;padding:1rem;border:1px solid var(--xw-border);border-radius:.5rem;text-decoration:none;color:var(--xw-foreground);background-color:var(--xw-background);transition:all .2s ease;box-shadow:0 1px 3px #0000000d}._navLink_1ir6x_18:hover{border-color:var(--xw-ring);background-color:var(--xw-card);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}._navLink_1ir6x_18:first-child{justify-content:flex-start}._navLink_1ir6x_18:last-child{justify-content:flex-end;text-align:right}._navLinkContent_1ir6x_43{display:flex;align-items:center;gap:.75rem;min-width:0}._navIcon_1ir6x_50{display:flex;align-items:center;color:var(--xw-primary);flex-shrink:0}._navText_1ir6x_57{display:flex;flex-direction:column;gap:.25rem;min-width:0}._navLabel_1ir6x_64{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--xw-muted-foreground)}._navTitle_1ir6x_72{font-size:.875rem;font-weight:400;color:var(--xw-foreground);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;line-height:1.4}@media(min-width:1024px){._navTitle_1ir6x_72{font-size:.9rem}}._blogSidebar_1ik3q_1{position:sticky;top:0;align-self:flex-start;height:fit-content;max-height:calc(100vh - 8rem);overflow-y:auto;padding:0 0 2rem 1.5rem;margin-left:2rem;background:transparent;border-left:1px solid var(--xw-border);flex-shrink:0;width:250px}@media(max-width:1024px){._blogSidebar_1ik3q_1{display:none}}._section_1ik3q_21{margin-bottom:2rem}._section_1ik3q_21:last-child{margin-bottom:0}._sectionTitle_1ik3q_28{font-size:.75rem;font-weight:600;color:var(--xw-muted-foreground);letter-spacing:.05em;margin:0 0 1rem}._linksList_1ik3q_36{display:flex;flex-direction:column;gap:.25rem}._link_1ik3q_36{display:flex;align-items:center;gap:.5rem;padding:.5rem;color:var(--xw-foreground);text-decoration:none;border-radius:.25rem;transition:all .15s cubic-bezier(.4,0,.2,1);font-size:.875rem}._link_1ik3q_36:hover{color:var(--xw-primary)}._link_1ik3q_36 svg{flex-shrink:0}._metadata_bsge0_1{display:flex;align-items:center;gap:1.5rem;margin-top:1rem;margin-bottom:1rem}._author_bsge0_9,._date_bsge0_10{display:flex;align-items:center;gap:.5rem;font-weight:500;font-size:.9rem}._author_bsge0_9 svg,._date_bsge0_10 svg{flex-shrink:0}._date_bsge0_10{color:var(--xw-text-secondary, #666)}._tableOfContents_9ofak_1{position:sticky;top:5rem;align-self:flex-start;height:fit-content;max-height:calc(100vh - 8rem);overflow-y:auto;padding:2rem 0 2rem 1.5rem;margin-left:2rem;background:transparent;border-left:1px solid var(--xw-border);flex-shrink:0;max-width:250px}@media(max-width:1024px){._tableOfContents_9ofak_1{display:none}}._header_9ofak_21{margin-bottom:1rem}._title_9ofak_25{font-size:.75rem;font-weight:500;color:var(--xw-muted-foreground);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}._nav_9ofak_34 ul{margin:0;padding:0;list-style:none}._list_9ofak_40{display:flex;flex-direction:column;gap:.125rem;margin:0}._link_9ofak_47{display:block;width:100%;padding:.25rem 0;text-align:left;background:none;border:none;cursor:pointer;font-size:.875rem;line-height:1.4;color:var(--xw-muted-foreground);text-decoration:none;border-radius:.25rem;transition:all .15s cubic-bezier(.4,0,.2,1);position:relative;font-family:inherit}._link_9ofak_47:hover{color:var(--xw-foreground)}._link_9ofak_47:focus{outline:none;color:var(--xw-foreground)}._link_9ofak_47._active_9ofak_71{color:var(--xw-primary);font-weight:500}._link_9ofak_47._active_9ofak_71:before{content:"";position:absolute;left:-1.5rem;top:50%;transform:translateY(-50%);width:1px;height:1rem;background-color:var(--xw-primary);border-radius:.5px}._level1_9ofak_87{font-weight:500;padding-left:0;margin-bottom:.125rem}._level2_9ofak_93{padding-left:.5rem;margin-bottom:.0625rem}._level3_9ofak_98{padding-left:1rem;font-size:.8125rem;margin-bottom:.0625rem}._level4_9ofak_104{padding-left:1.5rem;font-size:.8125rem;margin-bottom:.0625rem}._level5_9ofak_110{padding-left:2rem;font-size:.75rem;margin-bottom:.0625rem}._level6_9ofak_116{padding-left:2.5rem;font-size:.75rem;margin-bottom:.0625rem}._tableOfContents_9ofak_1::-webkit-scrollbar{width:4px}._tableOfContents_9ofak_1::-webkit-scrollbar-track{background:transparent}._tableOfContents_9ofak_1::-webkit-scrollbar-thumb{background:var(--xw-border);border-radius:2px}._tableOfContents_9ofak_1::-webkit-scrollbar-thumb:hover{background:var(--xw-muted-foreground)}._overlay_1e1d4_1{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;display:flex;align-items:flex-start;justify-content:center;padding-top:10vh;animation:_fadeIn_1e1d4_1 .2s ease;height:100vh}@keyframes _fadeIn_1e1d4_1{0%{opacity:0}to{opacity:1}}._modal_1e1d4_26{width:90%;max-width:600px;background:var(--xw-card);border:1px solid var(--xw-border);border-radius:.75rem;box-shadow:0 20px 60px #0000004d;animation:_slideIn_1e1d4_1 .2s ease;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}@keyframes _slideIn_1e1d4_1{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}._header_1e1d4_50{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--xw-border)}._title_1e1d4_58{font-size:1.125rem;font-weight:600;color:var(--xw-foreground);margin:0}._closeButton_1e1d4_65{background:none;border:none;color:var(--xw-muted-foreground);cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:.25rem;transition:all .2s ease}._closeButton_1e1d4_65 svg{width:1.25rem;height:1.25rem}._closeButton_1e1d4_65:hover{background:var(--xw-secondary);color:var(--xw-foreground)}._results_1e1d4_86{flex:1;overflow-y:auto;padding:.5rem;min-height:200px;max-height:400px}._resultsList_1e1d4_94{list-style:none;padding:0;margin:0}._resultItem_1e1d4_100{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;width:100%;padding:.75rem 1rem;background:none;border:none;border-radius:.5rem;cursor:pointer;text-align:left;transition:all .15s ease;color:var(--xw-foreground)}._resultItem_1e1d4_100:hover{background:var(--xw-secondary)}._resultTitle_1e1d4_119{font-weight:500;font-size:.95rem}._resultSlug_1e1d4_124{font-size:.8rem;color:var(--xw-muted-foreground);opacity:.8}._noResults_1e1d4_130{padding:3rem 1rem;text-align:center;color:var(--xw-muted-foreground);font-size:.9rem}._tags_11t8a_1{display:flex;align-items:center;gap:.75rem;margin:2rem 0 1rem;padding:1rem 0 0;border-top:1px solid var(--xw-border)}._tags_11t8a_1._compact_11t8a_9{margin:2rem 0 1rem;padding:1rem 0 0;border-top:1px solid var(--xw-border)}._tagLabel_11t8a_15{display:flex;align-items:center;gap:.5rem;color:var(--xw-muted-foreground);font-size:.875rem;font-weight:500;white-space:nowrap}._tagIcon_11t8a_25{width:1.125rem;height:1.125rem}._tagList_11t8a_30{display:flex;flex-wrap:wrap;gap:.5rem}._tag_11t8a_1{display:inline-flex;align-items:center;padding:.25rem .75rem;background:none;border:1px solid var(--xw-border);border-radius:.75rem;color:var(--xw-muted-foreground);font-size:.8rem;font-weight:400;cursor:pointer;transition:all .2s ease}._tag_11t8a_1:hover{color:var(--xw-foreground);border-color:var(--xw-ring)}._contentPage_1nxj5_1{flex:1;max-width:48rem;margin:0;padding:0 0 2rem}@media(max-width:767px){._contentPage_1nxj5_1{padding:1.5rem;max-width:none}}@media(max-width:1024px){._contentPage_1nxj5_1{max-width:none;padding:2rem}}._metadata_1nxj5_20{display:flex;gap:1rem;align-items:center;padding:.5rem 0 1rem;color:var(--xw-muted-foreground);font-size:.875rem;border-bottom:1px solid var(--xw-border);margin-bottom:1rem}._metadata_1nxj5_20 ._author_1nxj5_30,._metadata_1nxj5_20 ._date_1nxj5_31{display:flex;align-items:center;gap:.5rem}._metadata_1nxj5_20 ._author_1nxj5_30{font-weight:500;color:var(--xw-foreground)}@media(max-width:767px){._metadata_1nxj5_20{flex-direction:column;align-items:flex-start;gap:.25rem}}._loadingContainer_1nxj5_48,._errorContainer_1nxj5_49{display:flex;align-items:center;justify-content:center;height:16rem}._loadingContainer_1nxj5_48{flex-direction:column;align-items:flex-start;gap:1.5rem;padding:2rem 0}@keyframes _shimmer_1nxj5_1{0%{background-position:-1000px 0}to{background-position:1000px 0}}._skeletonTitle_1nxj5_71{width:60%;height:2.5rem;background:linear-gradient(90deg,var(--xw-muted) 0%,color-mix(in oklch,var(--xw-muted) 50%,white) 50%,var(--xw-muted) 100%);background-size:1000px 100%;animation:_shimmer_1nxj5_1 2s infinite linear;border-radius:.5rem}._skeletonParagraph_1nxj5_80{width:100%;height:1rem;background:linear-gradient(90deg,var(--xw-muted) 0%,color-mix(in oklch,var(--xw-muted) 50%,white) 50%,var(--xw-muted) 100%);background-size:1000px 100%;animation:_shimmer_1nxj5_1 2s infinite linear;border-radius:.25rem;margin-bottom:.5rem}._skeletonParagraph_1nxj5_80:not(:last-child){margin-bottom:1rem}._skeletonParagraphShort_1nxj5_93{width:70%;height:1rem;background:linear-gradient(90deg,var(--xw-muted) 0%,color-mix(in oklch,var(--xw-muted) 50%,white) 50%,var(--xw-muted) 100%);background-size:1000px 100%;animation:_shimmer_1nxj5_1 2s infinite linear;border-radius:.25rem}._loadingText_1nxj5_102{color:var(--xw-muted-foreground);font-size:1rem}._errorText_1nxj5_107{color:var(--xw-destructive);font-size:1rem}._mdxContent_1nxj5_112{max-width:none}._mdxContent_1nxj5_112 h1{font-size:1.875rem;font-weight:600;letter-spacing:-.025em;margin-bottom:1.5rem;border-bottom:1px solid var(--xw-border);padding-bottom:.75rem;line-height:1.2;scroll-margin-top:5rem}._mdxContent_1nxj5_112 h1._withMetadata_1nxj5_125{border-bottom:none;padding-bottom:0;margin-bottom:.5rem}._mdxContent_1nxj5_112 h1 a{color:inherit;text-decoration:none;border:none;position:relative}._mdxContent_1nxj5_112 h1 a:hover{color:inherit;border:none}._mdxContent_1nxj5_112 h1 a:hover:before{content:"#";position:absolute;left:-1.5rem;color:var(--xw-link);opacity:.7;font-weight:400}._mdxContent_1nxj5_112 h2{font-size:1.5rem;font-weight:500;letter-spacing:-.02em;margin-bottom:1rem;margin-top:2.5rem;border-bottom:1px solid var(--xw-border);padding-bottom:.5rem;line-height:1.3;scroll-margin-top:5rem}._mdxContent_1nxj5_112 h2 a{color:inherit;text-decoration:none;border:none;position:relative}._mdxContent_1nxj5_112 h2 a:hover{color:inherit;border:none}._mdxContent_1nxj5_112 h2 a:hover:before{content:"#";position:absolute;left:-1.5rem;color:var(--xw-link);opacity:.7;font-weight:400}._mdxContent_1nxj5_112 h3{font-size:1.25rem;font-weight:500;letter-spacing:-.015em;margin-bottom:.75rem;margin-top:2rem;line-height:1.4;scroll-margin-top:5rem}._mdxContent_1nxj5_112 h3 a{color:inherit;text-decoration:none;border:none;position:relative}._mdxContent_1nxj5_112 h3 a:hover{color:inherit;border:none}._mdxContent_1nxj5_112 h3 a:hover:before{content:"#";position:absolute;left:-1.5rem;color:var(--xw-link);opacity:.7;font-weight:400}._mdxContent_1nxj5_112 h4{font-size:1.125rem;font-weight:500;letter-spacing:-.01em;margin-bottom:.5rem;margin-top:1.5rem;line-height:1.4;scroll-margin-top:5rem}._mdxContent_1nxj5_112 h4 a{color:inherit;text-decoration:none;border:none;position:relative}._mdxContent_1nxj5_112 h4 a:hover{color:inherit;border:none}._mdxContent_1nxj5_112 h4 a:hover:before{content:"#";position:absolute;left:-1.5rem;color:var(--xw-link);opacity:.7;font-weight:400}._mdxContent_1nxj5_112 h5{font-size:1rem;font-weight:500;margin-bottom:.5rem;margin-top:1.25rem;line-height:1.5}._mdxContent_1nxj5_112 h6{font-size:.875rem;font-weight:500;margin-bottom:.5rem;margin-top:1rem;line-height:1.5}._mdxContent_1nxj5_112 p{font-size:1rem;line-height:1.65;margin-bottom:1rem;color:var(--xw-foreground)}._mdxContent_1nxj5_112 ul,._mdxContent_1nxj5_112 ol{margin-bottom:1rem;padding-left:1.5rem}._mdxContent_1nxj5_112 ul li,._mdxContent_1nxj5_112 ol li{font-size:1rem;line-height:1.65;margin-bottom:.375rem}._mdxContent_1nxj5_112 ul ul,._mdxContent_1nxj5_112 ul ol,._mdxContent_1nxj5_112 ol ul,._mdxContent_1nxj5_112 ol ol{margin-top:.375rem;margin-bottom:.375rem}._mdxContent_1nxj5_112 ul{list-style-type:disc}._mdxContent_1nxj5_112 ol{list-style-type:decimal}._mdxContent_1nxj5_112 code{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.875rem;background-color:var(--xw-muted);padding:.1875rem .4375rem;border-radius:.25rem;color:var(--xw-foreground);font-weight:500}._mdxContent_1nxj5_112 pre{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;background-color:var(--xw-muted);padding:1.25rem;border-radius:.75rem;overflow-x:auto;margin:1.5rem 0;position:relative;border:1px solid var(--xw-border)}._mdxContent_1nxj5_112 pre code{background-color:transparent;padding:0;color:inherit;font-weight:400}._mdxContent_1nxj5_112 ._codeBlock_1nxj5_300{position:relative;margin-bottom:1.5rem}._mdxContent_1nxj5_112 ._codeLanguage_1nxj5_304{position:absolute;top:.5rem;right:.5rem;font-size:.75rem;color:var(--xw-muted-foreground);background-color:var(--xw-background);padding:.25rem .5rem;border-radius:.25rem;border:1px solid var(--xw-border)}._mdxContent_1nxj5_112 blockquote{border-left:3px solid var(--xw-accent);padding-left:1rem;font-style:italic;color:var(--xw-muted-foreground);margin-bottom:1rem;margin-top:1rem}._mdxContent_1nxj5_112 blockquote p{margin-bottom:.5rem}._mdxContent_1nxj5_112 blockquote p:last-child{margin-bottom:0}._mdxContent_1nxj5_112 a{color:var(--xw-link);text-decoration:none;transition:color .15s cubic-bezier(.4,0,.2,1);border-bottom:1px solid transparent}._mdxContent_1nxj5_112 a:hover{color:color-mix(in oklch,var(--xw-link) 80%,transparent);border-bottom-color:currentColor}._mdxContent_1nxj5_112 strong{font-weight:600}._mdxContent_1nxj5_112 em{font-style:italic}._mdxContent_1nxj5_112 table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.95rem}._mdxContent_1nxj5_112 table th,._mdxContent_1nxj5_112 table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--xw-border);line-height:1.4}._mdxContent_1nxj5_112 table th{font-weight:500;background-color:var(--xw-muted);font-size:.875rem;letter-spacing:.025em}._mdxContent_1nxj5_112 table tbody tr:hover{background-color:color-mix(in oklch,var(--xw-muted) 50%,transparent)}._mdxContent_1nxj5_112 img{max-width:100%;height:auto;border-radius:.5rem;margin:1.5rem 0;border:1px solid var(--xw-border)}._mdxContent_1nxj5_112 hr{border:none;border-top:1px solid var(--xw-border);margin:2rem 0}._searchButton_1k9sl_1{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:.375rem;background:none;border:none;color:var(--xw-muted-foreground);cursor:pointer;transition:all .2s ease;font-size:.875rem}._searchButton_1k9sl_1:hover{border-color:var(--xw-input)}._searchButton_1k9sl_1 ._searchIcon_1k9sl_17{width:1rem;height:1rem;opacity:.6}@media(max-width:768px){._searchButton_1k9sl_1 ._searchHint_1k9sl_23{display:none}}._searchButton_1k9sl_1 ._kbd_1k9sl_27{display:none;padding:.125rem .375rem;background:var(--xw-card);border:1px solid var(--xw-border);border-radius:.25rem;font-size:.75rem;font-family:monospace}@media(min-width:768px){._searchButton_1k9sl_1 ._kbd_1k9sl_27{display:block}}._searchOverlay_1k9sl_42{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;display:flex;align-items:flex-start;justify-content:center;padding-top:10vh;animation:_fadeIn_1k9sl_1 .2s ease;height:100vh}@keyframes _fadeIn_1k9sl_1{0%{opacity:0}to{opacity:1}}._searchModal_1k9sl_67{width:90%;max-width:600px;background:var(--xw-card);border:1px solid var(--xw-border);border-radius:.75rem;box-shadow:0 20px 60px #0000004d;animation:_slideIn_1k9sl_1 .2s ease;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}@keyframes _slideIn_1k9sl_1{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}._searchHeader_1k9sl_91{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--xw-border)}._searchHeader_1k9sl_91 ._searchIcon_1k9sl_17{width:1.25rem;height:1.25rem;opacity:.5;flex-shrink:0}._searchInput_1k9sl_105{flex:1;border:none;background:transparent;color:var(--xw-foreground);font-size:1rem;outline:none}._searchInput_1k9sl_105:focus{border:none;outline:none;box-shadow:none}._searchInput_1k9sl_105::placeholder{color:var(--xw-muted-foreground);opacity:.6}._closeButton_1k9sl_123{background:none;border:none;color:var(--xw-muted-foreground);cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:.25rem;transition:all .2s ease}._closeButton_1k9sl_123 svg{width:1.25rem;height:1.25rem}._closeButton_1k9sl_123:hover{background:var(--xw-secondary);color:var(--xw-foreground)}._searchResults_1k9sl_144{flex:1;overflow-y:auto;padding:.5rem;min-height:200px;max-height:400px}._resultsList_1k9sl_152{list-style:none;padding:0;margin:0}._resultItem_1k9sl_158{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;width:100%;padding:.75rem 1rem;background:none;border:none;border-radius:.5rem;cursor:pointer;text-align:left;transition:all .15s ease;color:var(--xw-foreground)}._resultItem_1k9sl_158:hover,._resultItem_1k9sl_158._selected_1k9sl_173{background:var(--xw-secondary)}._resultItem_1k9sl_158 ._resultTitle_1k9sl_176{font-weight:500;font-size:.95rem}._resultItem_1k9sl_158 ._resultSlug_1k9sl_180{font-size:.8rem;color:var(--xw-muted-foreground);opacity:.8}._noResults_1k9sl_186{padding:3rem 1rem;text-align:center;color:var(--xw-muted-foreground);font-size:.9rem}._searchHints_1k9sl_193{display:flex;align-items:center;gap:1.5rem;padding:.75rem 1.25rem;border-top:1px solid var(--xw-border);background:var(--xw-secondary);font-size:.8rem;color:var(--xw-muted-foreground)}@media(max-width:768px){._searchHints_1k9sl_193{flex-direction:column;align-items:flex-start;gap:.5rem}}._searchHints_1k9sl_193 ._hint_1k9sl_210{display:flex;align-items:center;gap:.5rem}._searchHints_1k9sl_193 ._hint_1k9sl_210 kbd{padding:.125rem .375rem;background:var(--xw-card);border:1px solid var(--xw-border);border-radius:.25rem;font-size:.75rem;font-family:monospace;min-width:1.5rem;text-align:center}._header_jrobc_1{position:sticky;top:0;z-index:1020;background-color:#fffc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);height:3.5rem;padding-left:16rem}.dark ._header_jrobc_1{background-color:#2020201a}@supports not (backdrop-filter: blur(12px)){._header_jrobc_1{background-color:var(--xw-background)}}@media(max-width:767px){._header_jrobc_1{padding:0}}._container_jrobc_24{width:100%;max-width:1400px;margin:0 auto;padding:0 1.5rem}@media(max-width:767px){._container_jrobc_24{padding:0 1rem}}._content_jrobc_36{display:flex;align-items:center;justify-content:space-between;height:3.5rem}._leftSection_jrobc_43{display:flex;align-items:center;gap:1rem}._mobileMenuButton_jrobc_49{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:.5rem;font-size:.875rem;font-weight:500;transition:.15s cubic-bezier(.4,0,.2,1);cursor:pointer;border:none;outline:none}._mobileMenuButton_jrobc_49:focus-visible{outline:2px solid var(--xw-ring);outline-offset:2px}._mobileMenuButton_jrobc_49:disabled{pointer-events:none;opacity:.5}._mobileMenuButton_jrobc_49{padding:.5rem;background-color:transparent;color:var(--xw-muted-foreground);border-radius:.5rem;display:none}._mobileMenuButton_jrobc_49:hover{background-color:var(--xw-muted);color:var(--xw-foreground)}@media(max-width:767px){._mobileMenuButton_jrobc_49{display:flex}}._burgerIcon_jrobc_87{width:1.25rem;height:1.25rem}._logo_jrobc_92,._nav_jrobc_98{display:flex;align-items:center;gap:.5rem}@media(max-width:767px){._nav_jrobc_98{gap:.25rem}}._navLink_jrobc_109{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:500;color:var(--xw-muted-foreground);text-decoration:none;transition:all .15s cubic-bezier(.4,0,.2,1)}._navLink_jrobc_109:hover{color:var(--xw-foreground)}._navLink_jrobc_109:focus{outline:none}._githubIcon_jrobc_128{width:1rem;height:1rem;flex-shrink:0;transition:transform .15s cubic-bezier(.4,0,.2,1)}._externalIcon_jrobc_135{width:1rem;height:1rem;flex-shrink:0}._supportDropdown_jrobc_141,._themeDropdown_jrobc_145{position:relative}._themeButton_jrobc_149{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:.5rem;font-size:.875rem;font-weight:500;color:var(--xw-muted-foreground);background:none;border:none;cursor:pointer;transition:all .15s cubic-bezier(.4,0,.2,1)}._themeButton_jrobc_149:hover{color:var(--xw-foreground);background-color:var(--xw-muted)}._themeButton_jrobc_149:focus{outline:none}._themeIcon_jrobc_171{width:1.125rem;height:1.125rem;flex-shrink:0}._supportButton_jrobc_177{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:500;color:var(--xw-muted-foreground);background:none;border:none;cursor:pointer;transition:all .15s cubic-bezier(.4,0,.2,1)}._supportButton_jrobc_177:hover{color:var(--xw-foreground)}._supportButton_jrobc_177:focus{outline:none}._caretIcon_jrobc_198{width:.875rem;height:.875rem;flex-shrink:0;transition:transform .15s cubic-bezier(.4,0,.2,1)}button[aria-expanded=true] ._caretIcon_jrobc_198{transform:rotate(180deg)}._dropdownMenu_jrobc_208{position:absolute;top:calc(100% + .25rem);right:0;min-width:10rem;background-color:var(--xw-popover);border:1px solid var(--xw-border);border-radius:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;z-index:1000;overflow:hidden}._dropdownItem_jrobc_221{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem 1rem;font-size:.875rem;color:var(--xw-popover-foreground);text-decoration:none;background:none;border:none;cursor:pointer;text-align:left;transition:background-color .15s cubic-bezier(.4,0,.2,1)}._dropdownItem_jrobc_221:hover{background-color:var(--xw-muted)}._dropdownItem_jrobc_221:focus{outline:none;background-color:var(--xw-muted)}._dropdownIcon_jrobc_244{width:1rem;height:1rem;flex-shrink:0}@media(max-width:767px){._logoText_jrobc_251{font-size:1rem}._navLink_jrobc_109{padding:.25rem .5rem;font-size:.8rem;gap:.25rem}._githubIcon_jrobc_128{width:.875rem;height:.875rem}}._backdrop_1a7pu_1{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;z-index:1040;opacity:0;visibility:hidden;transition:all .15s cubic-bezier(.4,0,.2,1)}._backdrop_1a7pu_1._open_1a7pu_13{opacity:1;visibility:visible}._mobileMenu_1a7pu_18{position:fixed;top:0;left:0;width:320px;height:100vh;background-color:var(--xw-background);border-right:1px solid var(--xw-border);z-index:1050;transform:translate(-100%);transition:transform .15s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;overflow:hidden}._mobileMenu_1a7pu_18._open_1a7pu_13{transform:translate(0)}._header_1a7pu_37{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--xw-border);flex-shrink:0}._brand_1a7pu_46{flex:1;display:flex;align-items:center;gap:.5rem}._cloudIcon_1a7pu_53{width:1.5rem;height:1.5rem;flex-shrink:0}._cloudIcon_1a7pu_53 .accent{fill:#d33079}._title_1a7pu_62{font-size:1.125rem;font-weight:600;color:var(--xw-foreground);margin:0}._closeButton_1a7pu_69{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:.5rem;font-size:.875rem;font-weight:500;transition:.15s cubic-bezier(.4,0,.2,1);cursor:pointer;border:none;outline:none}._closeButton_1a7pu_69:focus-visible{outline:2px solid var(--xw-ring);outline-offset:2px}._closeButton_1a7pu_69:disabled{pointer-events:none;opacity:.5}._closeButton_1a7pu_69{padding:.5rem;background-color:transparent;color:var(--xw-muted-foreground);border-radius:.5rem}._closeButton_1a7pu_69:hover{background-color:var(--xw-muted);color:var(--xw-foreground)}._closeIcon_1a7pu_101{width:1.25rem;height:1.25rem}._languageSection_1a7pu_106{padding:1.5rem;border-bottom:1px solid var(--xw-border);flex-shrink:0}._languageSelect_1a7pu_112{position:relative;width:100%}._languageButton_1a7pu_117{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:.5rem;font-size:.875rem;font-weight:500;transition:.15s cubic-bezier(.4,0,.2,1);cursor:pointer;border:none;outline:none}._languageButton_1a7pu_117:focus-visible{outline:2px solid var(--xw-ring);outline-offset:2px}._languageButton_1a7pu_117:disabled{pointer-events:none;opacity:.5}._languageButton_1a7pu_117{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.5rem 1rem;background-color:var(--xw-background);border:1px solid var(--xw-border);color:var(--xw-foreground);gap:.5rem}._languageButton_1a7pu_117:hover,._languageButton_1a7pu_117[aria-expanded=true]{background-color:var(--xw-muted)}._icon_1a7pu_156{width:1rem;height:1rem;flex-shrink:0}._chevron_1a7pu_162{width:1rem;height:1rem;transition:transform .15s cubic-bezier(.4,0,.2,1);margin-left:auto}._languageButton_1a7pu_117[aria-expanded=true] ._chevron_1a7pu_162{transform:rotate(180deg)}._languageDropdown_1a7pu_172{position:absolute;top:100%;left:0;right:0;background-color:var(--xw-popover);border:1px solid var(--xw-border);border-radius:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;z-index:1000;margin-top:.25rem}._languageOption_1a7pu_185{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:.5rem;font-size:.875rem;font-weight:500;transition:.15s cubic-bezier(.4,0,.2,1);cursor:pointer;border:none;outline:none}._languageOption_1a7pu_185:focus-visible{outline:2px solid var(--xw-ring);outline-offset:2px}._languageOption_1a7pu_185:disabled{pointer-events:none;opacity:.5}._languageOption_1a7pu_185{width:100%;padding:.5rem 1rem;background-color:transparent;color:var(--xw-foreground);text-align:left;justify-content:flex-start;border-radius:0}._languageOption_1a7pu_185:first-child{border-top-left-radius:.5rem;border-top-right-radius:.5rem}._languageOption_1a7pu_185:last-child{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}._languageOption_1a7pu_185:hover{background-color:var(--xw-muted)}._languageOption_1a7pu_185._selected_1a7pu_226{background-color:var(--xw-accent);color:var(--xw-accent-foreground)}._scrollArea_1a7pu_231{flex:1;overflow-y:auto;padding:1.5rem 0}._navigation_1a7pu_237{padding:0 1.5rem}._section_1a7pu_241{margin-bottom:1rem}._sectionButton_1a7pu_245{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:.5rem;font-size:.875rem;font-weight:500;transition:.15s cubic-bezier(.4,0,.2,1);cursor:pointer;border:none;outline:none}._sectionButton_1a7pu_245:focus-visible{outline:2px solid var(--xw-ring);outline-offset:2px}._sectionButton_1a7pu_245:disabled{pointer-events:none;opacity:.5}._sectionButton_1a7pu_245{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.5rem 1rem;background-color:transparent;color:var(--xw-foreground);font-weight:600;gap:.5rem;border-radius:.5rem}._sectionButton_1a7pu_245:hover{background-color:var(--xw-muted)}._sectionButton_1a7pu_245 ._icon_1a7pu_156{transition:transform .15s cubic-bezier(.4,0,.2,1);margin-left:auto}._sectionButton_1a7pu_245._expanded_1a7pu_285 ._icon_1a7pu_156{transform:rotate(90deg)}._sectionItems_1a7pu_289{margin-top:.5rem;margin-left:1rem;display:flex;flex-direction:column;gap:.25rem}._navItem_1a7pu_297{display:block;padding:.5rem 1rem;border-radius:.5rem;color:var(--xw-muted-foreground);text-decoration:none;transition:all .15s cubic-bezier(.4,0,.2,1);font-size:.875rem}._navItem_1a7pu_297:hover{background-color:var(--xw-muted);color:var(--xw-foreground)}._navItem_1a7pu_297._active_1a7pu_310{background-color:var(--xw-accent);color:var(--xw-accent-foreground);font-weight:500}._navItemContent_1a7pu_316{display:flex;align-items:center;gap:.5rem}._navItemTitle_1a7pu_322{flex:1}@media(min-width:1024px){._mobileMenu_1a7pu_18,._backdrop_1a7pu_1{display:none}}._sidebar_1tdxt_1{position:fixed;top:0;left:0;width:16rem;height:100vh;background-color:var(--xw-sidebar);overflow-y:auto;z-index:1020}@media(max-width:767px){._sidebar_1tdxt_1{display:none}}._header_1tdxt_17{position:sticky;top:0;z-index:1020;padding:1rem;background-color:var(--xw-sidebar);display:flex;flex-direction:column;gap:.5rem;padding-bottom:0}._brand_1tdxt_29{display:flex;align-items:center;gap:.5rem}._cloudIcon_1tdxt_35{width:1.5rem;height:1.5rem;flex-shrink:0}._cloudIcon_1tdxt_35 .accent{fill:#d33079}._title_1tdxt_44{font-size:1rem;font-weight:600;line-height:1.5;margin:0;letter-spacing:-.02em;color:var(--xw-foreground)}._languageSelect_1tdxt_55{position:relative;margin-top:.25rem;width:100%}._languageButton_1tdxt_61{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:.5rem;font-size:.875rem;font-weight:500;transition:.15s cubic-bezier(.4,0,.2,1);cursor:pointer;border:none;outline:none}._languageButton_1tdxt_61:focus-visible{outline:2px solid var(--xw-ring);outline-offset:2px}._languageButton_1tdxt_61:disabled{pointer-events:none;opacity:.5}._languageButton_1tdxt_61{display:flex;align-items:center;justify-content:space-between;padding:.25rem .5rem;width:100%;gap:.25rem;font-size:.8rem;background:transparent;border:1px solid var(--xw-border);border-radius:.25rem;color:var(--xw-muted-foreground)}._languageButton_1tdxt_61:hover{background-color:var(--xw-muted);color:var(--xw-foreground)}._languageButton_1tdxt_61 ._icon_1tdxt_99{width:.875rem;height:.875rem;flex-shrink:0}._languageButton_1tdxt_61 ._chevron_1tdxt_104{width:.875rem;height:.875rem;flex-shrink:0;transition:transform .15s cubic-bezier(.4,0,.2,1)}._languageButton_1tdxt_61[aria-expanded=true] ._chevron_1tdxt_104{transform:rotate(180deg)}._languageDropdown_1tdxt_114{position:absolute;top:100%;left:0;right:0;margin-top:.25rem;background-color:var(--xw-popover);border:1px solid var(--xw-border);border-radius:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;z-index:1000;overflow:hidden}._languageOption_1tdxt_128{display:block;width:100%;padding:.25rem .5rem;text-align:left;background:none;border:none;color:var(--xw-popover-foreground);font-size:.85rem;cursor:pointer;transition:background-color .15s cubic-bezier(.4,0,.2,1)}._languageOption_1tdxt_128:hover{background-color:var(--xw-muted)}._languageOption_1tdxt_128:focus{outline:none;background-color:var(--xw-muted)}._languageOption_1tdxt_128._selected_1tdxt_147{background-color:var(--xw-muted);color:var(--xw-foreground)}._scrollArea_1tdxt_152{height:calc(100vh - 120px);padding:1rem .5rem 1rem 1rem;overflow-y:auto}._navigation_1tdxt_158{display:flex;flex-direction:column;gap:.125rem}._section_1tdxt_164{display:flex;flex-direction:column;gap:0}._sectionButton_1tdxt_170{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:.5rem;font-size:.875rem;font-weight:500;transition:.15s cubic-bezier(.4,0,.2,1);cursor:pointer;border:none;outline:none}._sectionButton_1tdxt_170:focus-visible{outline:2px solid var(--xw-ring);outline-offset:2px}._sectionButton_1tdxt_170:disabled{pointer-events:none;opacity:.5}._sectionButton_1tdxt_170{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.25rem .5rem;font-weight:500;font-size:.85rem;color:var(--xw-muted-foreground);background:transparent;text-align:left;letter-spacing:-.01em;border:none}._sectionButton_1tdxt_170:hover{color:var(--xw-foreground)}._sectionButton_1tdxt_170 ._icon_1tdxt_99{width:.875rem;height:.875rem;transition:transform .15s cubic-bezier(.4,0,.2,1)}._sectionButton_1tdxt_170._expanded_1tdxt_213 ._icon_1tdxt_99{transform:rotate(90deg)}._sectionItems_1tdxt_217{margin-top:.25rem;padding-left:1rem;display:flex;flex-direction:column;gap:.125rem}._navItem_1tdxt_225{display:block;width:100%;padding:.25rem .5rem;border-radius:.25rem;font-size:.85rem;color:var(--xw-muted-foreground);text-decoration:none;transition:color .15s cubic-bezier(.4,0,.2,1)}._navItem_1tdxt_225:hover{color:var(--xw-foreground)}._navItem_1tdxt_225._active_1tdxt_238{color:var(--xw-foreground);font-weight:500}._navItemContent_1tdxt_243{display:flex;align-items:center;justify-content:space-between;width:100%}._sidebar_1tdxt_1::-webkit-scrollbar{width:6px}._sidebar_1tdxt_1::-webkit-scrollbar-track{background:transparent}._sidebar_1tdxt_1::-webkit-scrollbar-thumb{background:var(--xw-muted-foreground);border-radius:9999px;opacity:.3}._sidebar_1tdxt_1::-webkit-scrollbar-thumb:hover{opacity:.6}._app_wf6ni_1{min-height:100vh;background-color:var(--xw-background);color:var(--xw-foreground);display:flex;flex-direction:column}._layout_wf6ni_9{display:flex;flex:1;min-height:calc(100vh - 3.5rem)}._main_wf6ni_15{flex:1;display:flex;flex-direction:column;margin-left:16rem}._main_wf6ni_15._fullWidth_wf6ni_21{margin-left:0}@media(max-width:767px){._main_wf6ni_15{margin-left:0}}._contentWrapper_wf6ni_30{display:flex;flex:1;position:relative;width:100%;max-width:80rem;margin:0 auto;padding:2rem}._main_wf6ni_15._fullWidth_wf6ni_21 ._contentWrapper_wf6ni_30{width:auto}@media(max-width:1024px){._contentWrapper_wf6ni_30{padding:1.5rem}}@media(max-width:767px){._contentWrapper_wf6ni_30{padding:1rem}}._homePage_1lc5u_1{flex:1;max-width:48rem;margin:0;padding:0 0 2rem}@media(max-width:767px){._homePage_1lc5u_1{padding:1.5rem;max-width:none}}@media(max-width:1024px){._homePage_1lc5u_1{max-width:none;padding:2rem}}._header_1lc5u_20{margin-bottom:1.5rem}._title_1lc5u_24{font-size:2rem;font-weight:700;color:var(--xw-foreground);margin-bottom:0!important}._articlesList_1lc5u_31{display:flex;flex-direction:column;gap:1rem}._articleCard_1lc5u_37{padding:1rem;border:1px solid var(--xw-border);border-radius:.5rem;background:transparent;cursor:pointer;text-align:left;transition:all .2s ease-in-out}._articleCard_1lc5u_37:hover{border-color:var(--xw-primary);background-color:var(--xw-card);transform:translateY(-2px)}._articleCard_1lc5u_37:focus-visible{outline:2px solid var(--xw-primary);outline-offset:2px}._articleTitle_1lc5u_56{font-size:1.25rem;font-weight:600;margin:0 0 .5rem;color:var(--xw-foreground)}._articleDescription_1lc5u_63{font-size:.9rem;color:var(--xw-muted-foreground);margin:0 0 .5rem;line-height:1.5}._loading_1lc5u_70,._empty_1lc5u_71{padding:2rem;text-align:center;color:var(--xw-muted-foreground)}