@x-wave/blog 2.2.2 → 2.2.4

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 +147 -147
  2. package/package.json +1 -1
  3. package/styles/index.css +1 -1
package/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { jsxs as i, jsx as e, Fragment as U } from "react/jsx-runtime";
2
2
  import { useTranslation as j } from "react-i18next";
3
- import { useLocation as Y, useNavigate as Q, Link as de, useParams as pe, Navigate as qe, Routes as Xe, Route as xe } from "react-router-dom";
3
+ import { useLocation as Y, useNavigate as Q, Link as de, useParams as pe, Navigate as qe, Routes as Xe, Route as Le } from "react-router-dom";
4
4
  import { CaretLeft as Ye, CaretRight as Oe, ArrowSquareOut as Ve, User as Je, CalendarBlank as Ze, X as ve, Tag as et, MagnifyingGlass as Se, List as tt, Sun as Pe, Moon as Me, Monitor as Be, CaretDown as _e, Globe as nt } from "@phosphor-icons/react";
5
5
  import { useState as T, useEffect as S, createContext as at, useContext as ot, useRef as G } from "react";
6
6
  import st from "i18next";
@@ -71,12 +71,12 @@ function He(t) {
71
71
  continue;
72
72
  }
73
73
  if (l && !k.startsWith("-") && (a[o] = v.slice(), v.length = 0, l = !1), k != null && k.includes(":")) {
74
- const [f, ...b] = k.split(":"), y = b.join(":").trim();
75
- if (o = f.trim(), !y) {
74
+ const [f, ...b] = k.split(":"), $ = b.join(":").trim();
75
+ if (o = f.trim(), !$) {
76
76
  l = !0;
77
77
  continue;
78
78
  }
79
- y === "true" ? a[o] = !0 : y === "false" ? a[o] = !1 : a[o] = y;
79
+ $ === "true" ? a[o] = !0 : $ === "false" ? a[o] = !1 : a[o] = $;
80
80
  }
81
81
  }
82
82
  l && v.length > 0 && (a[o] = v);
@@ -341,15 +341,15 @@ function ft(t = "smooth") {
341
341
  behavior: t
342
342
  });
343
343
  }
344
- const bt = "_articleNavigation_kz84g_1", kt = "_navContainer_kz84g_7", Nt = "_navLink_kz84g_24", wt = "_navLinkContent_kz84g_61", It = "_navIcon_kz84g_76", yt = "_navText_kz84g_83", $t = "_navLabel_kz84g_90", Ct = "_navTitle_kz84g_98", q = {
344
+ const bt = "_articleNavigation_kz84g_1", kt = "_navContainer_kz84g_7", Nt = "_navLink_kz84g_24", wt = "_navLinkContent_kz84g_61", It = "_navIcon_kz84g_76", $t = "_navText_kz84g_83", Ct = "_navLabel_kz84g_90", yt = "_navTitle_kz84g_98", q = {
345
345
  articleNavigation: bt,
346
346
  navContainer: kt,
347
347
  navLink: Nt,
348
348
  navLinkContent: wt,
349
349
  navIcon: It,
350
- navText: yt,
351
- navLabel: $t,
352
- navTitle: Ct
350
+ navText: $t,
351
+ navLabel: Ct,
352
+ navTitle: yt
353
353
  };
354
354
  function Tt({
355
355
  prevSlug: t,
@@ -400,9 +400,9 @@ function Tt({
400
400
  ) : /* @__PURE__ */ e("div", {})
401
401
  ] }) });
402
402
  }
403
- const Lt = "_blogSidebar_n1up9_1", xt = "_section_n1up9_21", St = "_sectionTitle_n1up9_28", Pt = "_linksList_n1up9_35", Mt = "_link_n1up9_35", oe = {
404
- blogSidebar: Lt,
405
- section: xt,
403
+ const xt = "_blogSidebar_n1up9_1", Lt = "_section_n1up9_21", St = "_sectionTitle_n1up9_28", Pt = "_linksList_n1up9_35", Mt = "_link_n1up9_35", oe = {
404
+ blogSidebar: xt,
405
+ section: Lt,
406
406
  sectionTitle: St,
407
407
  linksList: Pt,
408
408
  link: Mt
@@ -504,13 +504,13 @@ function an({
504
504
  let w = l.exec(t);
505
505
  const g = [];
506
506
  for (; w !== null; ) {
507
- const y = w[1].length, P = w[2].trim();
508
- g.push({ level: y, text: P }), w = l.exec(t);
507
+ const $ = w[1].length, P = w[2].trim();
508
+ g.push({ level: $, text: P }), w = l.exec(t);
509
509
  }
510
510
  const k = /^(#{1,6})\s+(.+)$/gm;
511
511
  let f = k.exec(n), b = 0;
512
512
  for (; f !== null && b < g.length; ) {
513
- const y = f[2].trim(), P = ee(y);
513
+ const $ = f[2].trim(), P = ee($);
514
514
  v.push({
515
515
  id: P,
516
516
  text: g[b].text,
@@ -688,13 +688,13 @@ function In({ tags: t, variant: n = "default", onTagClick: s }) {
688
688
  }
689
689
  );
690
690
  }
691
- const yn = "_contentPage_mc666_1", $n = "_withMetadata_mc666_30", Cn = "_loadingContainer_mc666_64", Tn = "_errorContainer_mc666_65", Ln = "_skeletonTitle_mc666_87", xn = "_skeletonParagraph_mc666_96", Sn = "_skeletonParagraphShort_mc666_109", Pn = "_errorText_mc666_123", Mn = "_mdxContent_mc666_128", Bn = "_codeBlock_mc666_316", En = "_codeLanguage_mc666_320", D = {
692
- contentPage: yn,
693
- withMetadata: $n,
694
- loadingContainer: Cn,
691
+ const $n = "_contentPage_mc666_1", Cn = "_withMetadata_mc666_30", yn = "_loadingContainer_mc666_64", Tn = "_errorContainer_mc666_65", xn = "_skeletonTitle_mc666_87", Ln = "_skeletonParagraph_mc666_96", Sn = "_skeletonParagraphShort_mc666_109", Pn = "_errorText_mc666_123", Mn = "_mdxContent_mc666_128", Bn = "_codeBlock_mc666_316", En = "_codeLanguage_mc666_320", D = {
692
+ contentPage: $n,
693
+ withMetadata: Cn,
694
+ loadingContainer: yn,
695
695
  errorContainer: Tn,
696
- skeletonTitle: Ln,
697
- skeletonParagraph: xn,
696
+ skeletonTitle: xn,
697
+ skeletonParagraph: Ln,
698
698
  skeletonParagraphShort: Sn,
699
699
  errorText: Pn,
700
700
  mdxContent: Mn,
@@ -708,8 +708,8 @@ const yn = "_contentPage_mc666_1", $n = "_withMetadata_mc666_30", Cn = "_loading
708
708
  } : { title: void 0, content: t };
709
709
  };
710
710
  function An({ language: t }) {
711
- var we, Ie, ye, $e, Ce;
712
- const { slug: n } = pe(), s = Y(), { config: c, loadContent: h, loadEnglishContent: r, discoverArticles: _ } = R(), [d, u] = T(""), [a, m] = T(""), [o, l] = T({}), [v, w] = T(!0), [g, k] = T(null), [f, b] = T(!0), [y, P] = T(null), [N, C] = T(""), [M, W] = T({}), z = G(0), te = G([]), ce = Ue(s.search), V = ce.advanced;
711
+ var we, Ie, $e, Ce, ye;
712
+ const { slug: n } = pe(), s = Y(), { config: c, loadContent: h, loadEnglishContent: r, discoverArticles: _ } = R(), [d, u] = T(""), [a, m] = T(""), [o, l] = T({}), [v, w] = T(!0), [g, k] = T(null), [f, b] = T(!0), [$, P] = T(null), [N, y] = T(""), [M, W] = T({}), z = G(0), te = G([]), ce = Ue(s.search), V = ce.advanced;
713
713
  if (S(() => {
714
714
  (async () => {
715
715
  if (n) {
@@ -726,28 +726,28 @@ function An({ language: t }) {
726
726
  }
727
727
  const B = I.frontmatter.showTableOfContents !== !1;
728
728
  b(B);
729
- let L = "";
729
+ let x = "";
730
730
  try {
731
- L = await r(n, V);
731
+ x = await r(n, V);
732
732
  } catch {
733
- V && (L = await r(n, !1));
733
+ V && (x = await r(n, !1));
734
734
  }
735
735
  const A = typeof I.frontmatter.title == "string" ? I.frontmatter.title : void 0;
736
- let ne = I.content, J = L, ue = "";
736
+ let ne = I.content, J = x, ue = "";
737
737
  if (A) {
738
- const ie = Re(L), Qe = Re(I.content);
738
+ const ie = Re(x), Qe = Re(I.content);
739
739
  ue = ie.title || "", J = ie.content, ne = Qe.content;
740
740
  } else
741
741
  ue = "";
742
- const Te = /^(#{1,6})\s+(.+)$/gm, Le = [];
742
+ const Te = /^(#{1,6})\s+(.+)$/gm, xe = [];
743
743
  let he = Te.exec(
744
744
  J
745
745
  );
746
746
  for (; he !== null; ) {
747
747
  const ie = he[2].trim();
748
- Le.push(ie), he = Te.exec(J);
748
+ xe.push(ie), he = Te.exec(J);
749
749
  }
750
- te.current = Le, C(ue), m(J), u(ne), l(I.frontmatter);
750
+ te.current = xe, y(ue), m(J), u(ne), l(I.frontmatter);
751
751
  } catch (I) {
752
752
  k(I instanceof Error ? I.message : "Failed to load content");
753
753
  } finally {
@@ -815,20 +815,20 @@ function An({ language: t }) {
815
815
  remarkPlugins: [rt],
816
816
  components: {
817
817
  h1: ({ children: p }) => {
818
- const I = z.current++, B = te.current[I] || "", L = ee(B), A = !Ne;
818
+ const I = z.current++, B = te.current[I] || "", x = ee(B), A = !Ne;
819
819
  Ne = !0;
820
820
  const ne = o.date || o.author;
821
821
  return /* @__PURE__ */ i(U, { children: [
822
822
  /* @__PURE__ */ e(
823
823
  "h1",
824
824
  {
825
- id: L,
825
+ id: x,
826
826
  className: A && ne && !re ? D.withMetadata : void 0,
827
827
  children: /* @__PURE__ */ e(
828
828
  "a",
829
829
  {
830
- href: `#${L}`,
831
- onClick: (J) => le(J, L),
830
+ href: `#${x}`,
831
+ onClick: (J) => le(J, x),
832
832
  style: { color: "inherit", textDecoration: "none" },
833
833
  children: p
834
834
  }
@@ -845,36 +845,36 @@ function An({ language: t }) {
845
845
  ] });
846
846
  },
847
847
  h2: ({ children: p }) => {
848
- const I = z.current++, B = te.current[I] || "", L = ee(B);
849
- return /* @__PURE__ */ e("h2", { id: L, children: /* @__PURE__ */ e(
848
+ const I = z.current++, B = te.current[I] || "", x = ee(B);
849
+ return /* @__PURE__ */ e("h2", { id: x, children: /* @__PURE__ */ e(
850
850
  "a",
851
851
  {
852
- href: `#${L}`,
853
- onClick: (A) => le(A, L),
852
+ href: `#${x}`,
853
+ onClick: (A) => le(A, x),
854
854
  style: { color: "inherit", textDecoration: "none" },
855
855
  children: p
856
856
  }
857
857
  ) });
858
858
  },
859
859
  h3: ({ children: p }) => {
860
- const I = z.current++, B = te.current[I] || "", L = ee(B);
861
- return /* @__PURE__ */ e("h3", { id: L, children: /* @__PURE__ */ e(
860
+ const I = z.current++, B = te.current[I] || "", x = ee(B);
861
+ return /* @__PURE__ */ e("h3", { id: x, children: /* @__PURE__ */ e(
862
862
  "a",
863
863
  {
864
- href: `#${L}`,
865
- onClick: (A) => le(A, L),
864
+ href: `#${x}`,
865
+ onClick: (A) => le(A, x),
866
866
  style: { color: "inherit", textDecoration: "none" },
867
867
  children: p
868
868
  }
869
869
  ) });
870
870
  },
871
871
  h4: ({ children: p }) => {
872
- const I = z.current++, B = te.current[I] || "", L = ee(B);
873
- return /* @__PURE__ */ e("h4", { id: L, children: /* @__PURE__ */ e(
872
+ const I = z.current++, B = te.current[I] || "", x = ee(B);
873
+ return /* @__PURE__ */ e("h4", { id: x, children: /* @__PURE__ */ e(
874
874
  "a",
875
875
  {
876
- href: `#${L}`,
877
- onClick: (A) => le(A, L),
876
+ href: `#${x}`,
877
+ onClick: (A) => le(A, x),
878
878
  style: { color: "inherit", textDecoration: "none" },
879
879
  children: p
880
880
  }
@@ -906,8 +906,8 @@ function An({ language: t }) {
906
906
  blockquote: ({ children: p }) => /* @__PURE__ */ e("blockquote", { children: p }),
907
907
  a: ({ href: p, children: I, ...B }) => {
908
908
  if (p != null && p.startsWith("./")) {
909
- const L = p.slice(2), A = pt(
910
- L,
909
+ const x = p.slice(2), A = pt(
910
+ x,
911
911
  t,
912
912
  c.basePath
913
913
  );
@@ -944,25 +944,25 @@ function An({ language: t }) {
944
944
  {
945
945
  prevSlug: (we = M.prev) == null ? void 0 : we.slug,
946
946
  prevTitle: (Ie = M.prev) == null ? void 0 : Ie.title,
947
- nextSlug: (ye = M.next) == null ? void 0 : ye.slug,
948
- nextTitle: ($e = M.next) == null ? void 0 : $e.title,
947
+ nextSlug: ($e = M.next) == null ? void 0 : $e.slug,
948
+ nextTitle: (Ce = M.next) == null ? void 0 : Ce.title,
949
949
  language: t
950
950
  }
951
951
  )
952
952
  ] }),
953
953
  f && /* @__PURE__ */ e(an, { content: d, englishContent: a }),
954
- y && ((Ce = c.tagIndex) == null ? void 0 : Ce[t]) && /* @__PURE__ */ e(
954
+ $ && ((ye = c.tagIndex) == null ? void 0 : ye[t]) && /* @__PURE__ */ e(
955
955
  pn,
956
956
  {
957
- tag: y,
958
- results: c.tagIndex[t][y] || [],
957
+ tag: $,
958
+ results: c.tagIndex[t][$] || [],
959
959
  language: t,
960
960
  onClose: () => P(null)
961
961
  }
962
962
  )
963
963
  ] });
964
964
  }
965
- const Dn = "_searchButton_1k9sl_1", jn = "_searchIcon_1k9sl_17", Rn = "_searchHint_1k9sl_23", qn = "_kbd_1k9sl_27", On = "_searchOverlay_1k9sl_42", Wn = "_searchModal_1k9sl_67", Hn = "_searchHeader_1k9sl_91", Fn = "_searchInput_1k9sl_105", zn = "_closeButton_1k9sl_123", Kn = "_searchResults_1k9sl_144", Un = "_resultsList_1k9sl_152", Gn = "_resultItem_1k9sl_158", Qn = "_selected_1k9sl_173", Xn = "_resultTitle_1k9sl_176", Yn = "_resultSlug_1k9sl_180", Vn = "_noResults_1k9sl_186", Jn = "_searchHints_1k9sl_193", Zn = "_hint_1k9sl_210", x = {
965
+ const Dn = "_searchButton_1k9sl_1", jn = "_searchIcon_1k9sl_17", Rn = "_searchHint_1k9sl_23", qn = "_kbd_1k9sl_27", On = "_searchOverlay_1k9sl_42", Wn = "_searchModal_1k9sl_67", Hn = "_searchHeader_1k9sl_91", Fn = "_searchInput_1k9sl_105", zn = "_closeButton_1k9sl_123", Kn = "_searchResults_1k9sl_144", Un = "_resultsList_1k9sl_152", Gn = "_resultItem_1k9sl_158", Qn = "_selected_1k9sl_173", Xn = "_resultTitle_1k9sl_176", Yn = "_resultSlug_1k9sl_180", Vn = "_noResults_1k9sl_186", Jn = "_searchHints_1k9sl_193", Zn = "_hint_1k9sl_210", L = {
966
966
  searchButton: Dn,
967
967
  searchIcon: jn,
968
968
  searchHint: Rn,
@@ -993,8 +993,8 @@ function ea({ language: t }) {
993
993
  description: W.description
994
994
  }));
995
995
  w(M);
996
- } catch (C) {
997
- console.error("Failed to build search index:", C);
996
+ } catch (y) {
997
+ console.error("Failed to build search index:", y);
998
998
  }
999
999
  })();
1000
1000
  }, [t, h]), S(() => {
@@ -1002,19 +1002,19 @@ function ea({ language: t }) {
1002
1002
  m([]), l(0);
1003
1003
  return;
1004
1004
  }
1005
- const N = d.toLowerCase(), C = v.filter(
1005
+ const N = d.toLowerCase(), y = v.filter(
1006
1006
  (M) => {
1007
1007
  var W;
1008
1008
  return M.title.toLowerCase().includes(N) || M.slug.toLowerCase().includes(N) || ((W = M.description) == null ? void 0 : W.toLowerCase().includes(N));
1009
1009
  }
1010
1010
  );
1011
- m(C), l(0);
1011
+ m(y), l(0);
1012
1012
  }, [d, v]), S(() => {
1013
- const N = (C) => {
1014
- (C.metaKey || C.ctrlKey) && C.key === "k" && (C.preventDefault(), _(!0), setTimeout(() => {
1013
+ const N = (y) => {
1014
+ (y.metaKey || y.ctrlKey) && y.key === "k" && (y.preventDefault(), _(!0), setTimeout(() => {
1015
1015
  var M;
1016
1016
  return (M = g.current) == null ? void 0 : M.focus();
1017
- }, 100)), C.key === "Escape" && r && (_(!1), u(""));
1017
+ }, 100)), y.key === "Escape" && r && (_(!1), u(""));
1018
1018
  };
1019
1019
  return document.addEventListener("keydown", N), () => document.removeEventListener("keydown", N);
1020
1020
  }, [r]), S(() => {
@@ -1023,32 +1023,32 @@ function ea({ language: t }) {
1023
1023
  var M;
1024
1024
  return (M = g.current) == null ? void 0 : M.focus();
1025
1025
  }, 100);
1026
- }, C = () => {
1026
+ }, y = () => {
1027
1027
  _(!1), u("");
1028
1028
  };
1029
- return window.addEventListener("blog:open-search", N), window.addEventListener("blog:close-search", C), () => {
1030
- window.removeEventListener("blog:open-search", N), window.removeEventListener("blog:close-search", C);
1029
+ return window.addEventListener("blog:open-search", N), window.addEventListener("blog:close-search", y), () => {
1030
+ window.removeEventListener("blog:open-search", N), window.removeEventListener("blog:close-search", y);
1031
1031
  };
1032
1032
  }, []);
1033
- const y = (N) => {
1034
- N.key === "ArrowDown" ? (N.preventDefault(), l((C) => Math.min(C + 1, a.length - 1))) : N.key === "ArrowUp" ? (N.preventDefault(), l((C) => Math.max(C - 1, 0))) : N.key === "Enter" && a[o] && (N.preventDefault(), P(a[o].slug));
1033
+ const $ = (N) => {
1034
+ N.key === "ArrowDown" ? (N.preventDefault(), l((y) => Math.min(y + 1, a.length - 1))) : N.key === "ArrowUp" ? (N.preventDefault(), l((y) => Math.max(y - 1, 0))) : N.key === "Enter" && a[o] && (N.preventDefault(), P(a[o].slug));
1035
1035
  };
1036
1036
  S(() => {
1037
- const N = (C) => {
1038
- k.current && !k.current.contains(C.target) && (_(!1), u(""));
1037
+ const N = (y) => {
1038
+ k.current && !k.current.contains(y.target) && (_(!1), u(""));
1039
1039
  };
1040
1040
  return r && document.addEventListener("mousedown", N), () => document.removeEventListener("mousedown", N);
1041
1041
  }, [r]);
1042
1042
  const P = (N) => {
1043
- const C = c.basePath || "";
1044
- s(`${C}/${t}/${N}`), _(!1), u("");
1043
+ const y = c.basePath || "";
1044
+ s(`${y}/${t}/${N}`), _(!1), u("");
1045
1045
  };
1046
1046
  return /* @__PURE__ */ i(U, { children: [
1047
1047
  /* @__PURE__ */ i(
1048
1048
  "button",
1049
1049
  {
1050
1050
  type: "button",
1051
- className: x.searchButton,
1051
+ className: L.searchButton,
1052
1052
  onClick: () => {
1053
1053
  _(!0), setTimeout(() => {
1054
1054
  var N;
@@ -1057,9 +1057,9 @@ function ea({ language: t }) {
1057
1057
  },
1058
1058
  "aria-label": n("ui.search"),
1059
1059
  children: [
1060
- /* @__PURE__ */ e(Se, { className: x.searchIcon }),
1061
- /* @__PURE__ */ e("span", { className: x.searchHint, children: n("ui.search") }),
1062
- /* @__PURE__ */ e("kbd", { className: x.kbd, children: b })
1060
+ /* @__PURE__ */ e(Se, { className: L.searchIcon }),
1061
+ /* @__PURE__ */ e("span", { className: L.searchHint, children: n("ui.search") }),
1062
+ /* @__PURE__ */ e("kbd", { className: L.kbd, children: b })
1063
1063
  ]
1064
1064
  }
1065
1065
  ),
@@ -1067,36 +1067,36 @@ function ea({ language: t }) {
1067
1067
  /* @__PURE__ */ e(
1068
1068
  "div",
1069
1069
  {
1070
- className: x.searchOverlay,
1070
+ className: L.searchOverlay,
1071
1071
  onClick: () => {
1072
1072
  _(!1), u("");
1073
1073
  },
1074
1074
  children: /* @__PURE__ */ i(
1075
1075
  "div",
1076
1076
  {
1077
- className: x.searchModal,
1077
+ className: L.searchModal,
1078
1078
  ref: k,
1079
1079
  onClick: (N) => N.stopPropagation(),
1080
1080
  children: [
1081
- /* @__PURE__ */ i("div", { className: x.searchHeader, children: [
1082
- /* @__PURE__ */ e(Se, { className: x.searchIcon }),
1081
+ /* @__PURE__ */ i("div", { className: L.searchHeader, children: [
1082
+ /* @__PURE__ */ e(Se, { className: L.searchIcon }),
1083
1083
  /* @__PURE__ */ e(
1084
1084
  "input",
1085
1085
  {
1086
1086
  ref: g,
1087
1087
  type: "text",
1088
- className: x.searchInput,
1088
+ className: L.searchInput,
1089
1089
  placeholder: n("ui.searchPlaceholder"),
1090
1090
  value: d,
1091
1091
  onChange: (N) => u(N.target.value),
1092
- onKeyDown: y
1092
+ onKeyDown: $
1093
1093
  }
1094
1094
  ),
1095
1095
  /* @__PURE__ */ e(
1096
1096
  "button",
1097
1097
  {
1098
1098
  type: "button",
1099
- className: x.closeButton,
1099
+ className: L.closeButton,
1100
1100
  onClick: () => {
1101
1101
  _(!1), u("");
1102
1102
  },
@@ -1105,33 +1105,33 @@ function ea({ language: t }) {
1105
1105
  }
1106
1106
  )
1107
1107
  ] }),
1108
- d && /* @__PURE__ */ e("div", { className: x.searchResults, children: a.length === 0 ? /* @__PURE__ */ e("div", { className: x.noResults, children: n("ui.noSearchResults") }) : /* @__PURE__ */ e("ul", { className: x.resultsList, children: a.map((N, C) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ i(
1108
+ d && /* @__PURE__ */ e("div", { className: L.searchResults, children: a.length === 0 ? /* @__PURE__ */ e("div", { className: L.noResults, children: n("ui.noSearchResults") }) : /* @__PURE__ */ e("ul", { className: L.resultsList, children: a.map((N, y) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ i(
1109
1109
  "button",
1110
1110
  {
1111
1111
  type: "button",
1112
- className: `${x.resultItem} ${C === o ? x.selected : ""}`,
1112
+ className: `${L.resultItem} ${y === o ? L.selected : ""}`,
1113
1113
  onClick: () => P(N.slug),
1114
- onMouseEnter: () => l(C),
1114
+ onMouseEnter: () => l(y),
1115
1115
  children: [
1116
- /* @__PURE__ */ e("div", { className: x.resultTitle, children: N.title }),
1117
- /* @__PURE__ */ i("div", { className: x.resultSlug, children: [
1116
+ /* @__PURE__ */ e("div", { className: L.resultTitle, children: N.title }),
1117
+ /* @__PURE__ */ i("div", { className: L.resultSlug, children: [
1118
1118
  "/",
1119
1119
  N.slug
1120
1120
  ] })
1121
1121
  ]
1122
1122
  }
1123
1123
  ) }, N.slug)) }) }),
1124
- !d && /* @__PURE__ */ i("div", { className: x.searchHints, children: [
1125
- /* @__PURE__ */ i("div", { className: x.hint, children: [
1124
+ !d && /* @__PURE__ */ i("div", { className: L.searchHints, children: [
1125
+ /* @__PURE__ */ i("div", { className: L.hint, children: [
1126
1126
  /* @__PURE__ */ e("kbd", { children: "↑" }),
1127
1127
  /* @__PURE__ */ e("kbd", { children: "↓" }),
1128
1128
  /* @__PURE__ */ e("span", { children: n("ui.searchNavigate") })
1129
1129
  ] }),
1130
- /* @__PURE__ */ i("div", { className: x.hint, children: [
1130
+ /* @__PURE__ */ i("div", { className: L.hint, children: [
1131
1131
  /* @__PURE__ */ e("kbd", { children: "↵" }),
1132
1132
  /* @__PURE__ */ e("span", { children: n("ui.searchSelect") })
1133
1133
  ] }),
1134
- /* @__PURE__ */ i("div", { className: x.hint, children: [
1134
+ /* @__PURE__ */ i("div", { className: L.hint, children: [
1135
1135
  /* @__PURE__ */ e("kbd", { children: "esc" }),
1136
1136
  /* @__PURE__ */ e("span", { children: n("ui.searchClose") })
1137
1137
  ] })
@@ -1145,7 +1145,7 @@ function ea({ language: t }) {
1145
1145
  )
1146
1146
  ] });
1147
1147
  }
1148
- const ta = "_header_jrobc_1", na = "_container_jrobc_24", aa = "_content_jrobc_36", oa = "_leftSection_jrobc_43", sa = "_mobileMenuButton_jrobc_49", ca = "_burgerIcon_jrobc_87", ra = "_logo_jrobc_92", la = "_nav_jrobc_98", ia = "_navLink_jrobc_109", da = "_externalIcon_jrobc_135", ua = "_supportDropdown_jrobc_141", ha = "_themeDropdown_jrobc_145", ma = "_themeButton_jrobc_149", _a = "_themeIcon_jrobc_171", ga = "_supportButton_jrobc_177", pa = "_caretIcon_jrobc_198", va = "_dropdownMenu_jrobc_208", fa = "_dropdownItem_jrobc_221", ba = "_dropdownIcon_jrobc_244", $ = {
1148
+ const ta = "_header_jrobc_1", na = "_container_jrobc_24", aa = "_content_jrobc_36", oa = "_leftSection_jrobc_43", sa = "_mobileMenuButton_jrobc_49", ca = "_burgerIcon_jrobc_87", ra = "_logo_jrobc_92", la = "_nav_jrobc_98", ia = "_navLink_jrobc_109", da = "_externalIcon_jrobc_135", ua = "_supportDropdown_jrobc_141", ha = "_themeDropdown_jrobc_145", ma = "_themeButton_jrobc_149", _a = "_themeIcon_jrobc_171", ga = "_supportButton_jrobc_177", pa = "_caretIcon_jrobc_198", va = "_dropdownMenu_jrobc_208", fa = "_dropdownItem_jrobc_221", ba = "_dropdownIcon_jrobc_244", C = {
1149
1149
  header: ta,
1150
1150
  container: na,
1151
1151
  content: aa,
@@ -1173,41 +1173,41 @@ function ka({ onMobileMenuToggle: t }) {
1173
1173
  v.current && !v.current.contains(k.target) && u(!1), w.current && !w.current.contains(k.target) && m(!1);
1174
1174
  };
1175
1175
  return document.addEventListener("mousedown", g), () => document.removeEventListener("mousedown", g);
1176
- }, []), /* @__PURE__ */ e("header", { className: $.header, children: /* @__PURE__ */ e("div", { className: $.container, children: /* @__PURE__ */ i("div", { className: $.content, children: [
1177
- /* @__PURE__ */ i("div", { className: $.leftSection, children: [
1176
+ }, []), /* @__PURE__ */ e("header", { className: C.header, children: /* @__PURE__ */ e("div", { className: C.container, children: /* @__PURE__ */ i("div", { className: C.content, children: [
1177
+ /* @__PURE__ */ i("div", { className: C.leftSection, children: [
1178
1178
  /* @__PURE__ */ e(
1179
1179
  "button",
1180
1180
  {
1181
1181
  type: "button",
1182
- className: $.mobileMenuButton,
1182
+ className: C.mobileMenuButton,
1183
1183
  onClick: t,
1184
1184
  "aria-label": "Open menu",
1185
- children: /* @__PURE__ */ e(tt, { className: $.burgerIcon })
1185
+ children: /* @__PURE__ */ e(tt, { className: C.burgerIcon })
1186
1186
  }
1187
1187
  ),
1188
- /* @__PURE__ */ e("div", { className: $.logo })
1188
+ /* @__PURE__ */ e("div", { className: C.logo })
1189
1189
  ] }),
1190
- /* @__PURE__ */ i("nav", { className: $.nav, children: [
1190
+ /* @__PURE__ */ i("nav", { className: C.nav, children: [
1191
1191
  /* @__PURE__ */ e(ea, { language: s.language }),
1192
- /* @__PURE__ */ i("div", { className: $.themeDropdown, ref: w, children: [
1192
+ /* @__PURE__ */ i("div", { className: C.themeDropdown, ref: w, children: [
1193
1193
  /* @__PURE__ */ i(
1194
1194
  "button",
1195
1195
  {
1196
1196
  type: "button",
1197
- className: $.themeButton,
1197
+ className: C.themeButton,
1198
1198
  onClick: () => m(!a),
1199
1199
  "aria-expanded": a,
1200
1200
  "aria-haspopup": "true",
1201
1201
  "aria-label": n("ui.theme"),
1202
1202
  children: [
1203
- o === "light" && /* @__PURE__ */ e(Pe, { className: $.themeIcon }),
1204
- o === "dark" && /* @__PURE__ */ e(Me, { className: $.themeIcon }),
1205
- o === "system" && /* @__PURE__ */ e(Be, { className: $.themeIcon }),
1206
- /* @__PURE__ */ e(_e, { className: $.caretIcon })
1203
+ o === "light" && /* @__PURE__ */ e(Pe, { className: C.themeIcon }),
1204
+ o === "dark" && /* @__PURE__ */ e(Me, { className: C.themeIcon }),
1205
+ o === "system" && /* @__PURE__ */ e(Be, { className: C.themeIcon }),
1206
+ /* @__PURE__ */ e(_e, { className: C.caretIcon })
1207
1207
  ]
1208
1208
  }
1209
1209
  ),
1210
- a && /* @__PURE__ */ i("div", { className: $.dropdownMenu, children: [
1210
+ a && /* @__PURE__ */ i("div", { className: C.dropdownMenu, children: [
1211
1211
  /* @__PURE__ */ i(
1212
1212
  "button",
1213
1213
  {
@@ -1215,9 +1215,9 @@ function ka({ onMobileMenuToggle: t }) {
1215
1215
  onClick: () => {
1216
1216
  l("light"), m(!1);
1217
1217
  },
1218
- className: $.dropdownItem,
1218
+ className: C.dropdownItem,
1219
1219
  children: [
1220
- /* @__PURE__ */ e(Pe, { className: $.dropdownIcon }),
1220
+ /* @__PURE__ */ e(Pe, { className: C.dropdownIcon }),
1221
1221
  n("ui.light")
1222
1222
  ]
1223
1223
  }
@@ -1229,9 +1229,9 @@ function ka({ onMobileMenuToggle: t }) {
1229
1229
  onClick: () => {
1230
1230
  l("dark"), m(!1);
1231
1231
  },
1232
- className: $.dropdownItem,
1232
+ className: C.dropdownItem,
1233
1233
  children: [
1234
- /* @__PURE__ */ e(Me, { className: $.dropdownIcon }),
1234
+ /* @__PURE__ */ e(Me, { className: C.dropdownIcon }),
1235
1235
  n("ui.dark")
1236
1236
  ]
1237
1237
  }
@@ -1243,41 +1243,41 @@ function ka({ onMobileMenuToggle: t }) {
1243
1243
  onClick: () => {
1244
1244
  l("system"), m(!1);
1245
1245
  },
1246
- className: $.dropdownItem,
1246
+ className: C.dropdownItem,
1247
1247
  children: [
1248
- /* @__PURE__ */ e(Be, { className: $.dropdownIcon }),
1248
+ /* @__PURE__ */ e(Be, { className: C.dropdownIcon }),
1249
1249
  n("ui.system")
1250
1250
  ]
1251
1251
  }
1252
1252
  )
1253
1253
  ] })
1254
1254
  ] }),
1255
- _.length > 0 && /* @__PURE__ */ i("div", { className: $.supportDropdown, ref: v, children: [
1255
+ _.length > 0 && /* @__PURE__ */ i("div", { className: C.supportDropdown, ref: v, children: [
1256
1256
  /* @__PURE__ */ i(
1257
1257
  "button",
1258
1258
  {
1259
1259
  type: "button",
1260
- className: $.supportButton,
1260
+ className: C.supportButton,
1261
1261
  onClick: () => u(!d),
1262
1262
  "aria-expanded": d,
1263
1263
  "aria-haspopup": "true",
1264
1264
  children: [
1265
1265
  n("ui.support"),
1266
- /* @__PURE__ */ e(_e, { className: $.caretIcon })
1266
+ /* @__PURE__ */ e(_e, { className: C.caretIcon })
1267
1267
  ]
1268
1268
  }
1269
1269
  ),
1270
- d && /* @__PURE__ */ e("div", { className: $.dropdownMenu, children: _.map((g, k) => {
1271
- const f = g.target ?? (g.url.startsWith("http") ? "_blank" : "_self"), b = g.rel ?? (f === "_blank" ? "noopener noreferrer" : void 0), y = g.icon;
1270
+ d && /* @__PURE__ */ e("div", { className: C.dropdownMenu, children: _.map((g, k) => {
1271
+ const f = g.target ?? (g.url.startsWith("http") ? "_blank" : "_self"), b = g.rel ?? (f === "_blank" ? "noopener noreferrer" : void 0), $ = g.icon;
1272
1272
  return /* @__PURE__ */ i(
1273
1273
  "a",
1274
1274
  {
1275
1275
  href: g.url,
1276
1276
  target: f,
1277
1277
  rel: b,
1278
- className: $.dropdownItem,
1278
+ className: C.dropdownItem,
1279
1279
  children: [
1280
- y && /* @__PURE__ */ e(y, { className: $.dropdownIcon }),
1280
+ $ && /* @__PURE__ */ e($, { className: C.dropdownIcon }),
1281
1281
  g.label
1282
1282
  ]
1283
1283
  },
@@ -1286,17 +1286,17 @@ function ka({ onMobileMenuToggle: t }) {
1286
1286
  }) })
1287
1287
  ] }),
1288
1288
  r.map((g, k) => {
1289
- const f = g.target ?? (typeof g.url == "string" && g.url.startsWith("http") ? "_blank" : "_self"), b = g.rel ?? (f === "_blank" ? "noopener noreferrer" : void 0), y = g.icon;
1289
+ const f = g.target ?? (typeof g.url == "string" && g.url.startsWith("http") ? "_blank" : "_self"), b = g.rel ?? (f === "_blank" ? "noopener noreferrer" : void 0), $ = g.icon;
1290
1290
  return /* @__PURE__ */ i(
1291
1291
  "a",
1292
1292
  {
1293
1293
  href: g.url,
1294
1294
  target: f,
1295
1295
  rel: b,
1296
- className: g.className ?? $.navLink,
1296
+ className: g.className ?? C.navLink,
1297
1297
  children: [
1298
1298
  g.label,
1299
- y && /* @__PURE__ */ e(y, { className: $.externalIcon })
1299
+ $ && /* @__PURE__ */ e($, { className: C.externalIcon })
1300
1300
  ]
1301
1301
  },
1302
1302
  k
@@ -1369,17 +1369,17 @@ function be({ styles: t, onLinkClick: n }) {
1369
1369
  h.navigationData,
1370
1370
  l,
1371
1371
  r
1372
- ), y = b.reduce(
1373
- (P, N, C) => {
1372
+ ), $ = b.reduce(
1373
+ (P, N, y) => {
1374
1374
  if (De(N)) {
1375
- const M = h.navigationData[C], W = "items" in M && M.defaultOpen === !0;
1375
+ const M = h.navigationData[y], W = "items" in M && M.defaultOpen === !0;
1376
1376
  P[N.title] = W;
1377
1377
  }
1378
1378
  return P;
1379
1379
  },
1380
1380
  {}
1381
1381
  );
1382
- a(y), d(b), o(!1);
1382
+ a($), d(b), o(!1);
1383
1383
  } catch (b) {
1384
1384
  console.error("Failed to load navigation data:", b), o(!1);
1385
1385
  }
@@ -1392,15 +1392,15 @@ function be({ styles: t, onLinkClick: n }) {
1392
1392
  }));
1393
1393
  }, w = (f) => {
1394
1394
  const b = h.basePath || "";
1395
- let y = c.pathname;
1396
- b && y.startsWith(b) && (y = y.slice(b.length));
1397
- const P = y.split("/").filter(Boolean);
1395
+ let $ = c.pathname;
1396
+ b && $.startsWith(b) && ($ = $.slice(b.length));
1397
+ const P = $.split("/").filter(Boolean);
1398
1398
  return P[P.length - 1] === f;
1399
1399
  }, g = (f) => {
1400
1400
  const b = h.basePath || "";
1401
- let y = c.pathname;
1402
- b && y.startsWith(b) && (y = y.slice(b.length));
1403
- const P = y.split("/").filter(Boolean);
1401
+ let $ = c.pathname;
1402
+ b && $.startsWith(b) && ($ = $.slice(b.length));
1403
+ const P = $.split("/").filter(Boolean);
1404
1404
  return P[0] && h.supportedLanguages.includes(P[0]) ? `${b}/${P[0]}/${f}` : `${b}/${l}/${f}`;
1405
1405
  }, k = () => {
1406
1406
  n == null || n();
@@ -1464,16 +1464,16 @@ function Zo({
1464
1464
  /* @__PURE__ */ e(be, { styles: t, onLinkClick: n })
1465
1465
  ] });
1466
1466
  }
1467
- const Na = "_backdrop_1a7pu_1", wa = "_open_1a7pu_13", Ia = "_mobileMenu_1a7pu_18", ya = "_header_1a7pu_37", $a = "_brand_1a7pu_46", Ca = "_cloudIcon_1a7pu_53", Ta = "_title_1a7pu_62", La = "_closeButton_1a7pu_69", xa = "_closeIcon_1a7pu_101", Sa = "_languageSection_1a7pu_106", Pa = "_languageSelect_1a7pu_112", Ma = "_languageButton_1a7pu_117", Ba = "_icon_1a7pu_156", Ea = "_chevron_1a7pu_162", Aa = "_languageDropdown_1a7pu_172", Da = "_languageOption_1a7pu_185", ja = "_selected_1a7pu_226", Ra = "_scrollArea_1a7pu_231", qa = "_navigation_1a7pu_237", Oa = "_section_1a7pu_241", Wa = "_sectionButton_1a7pu_245", Ha = "_expanded_1a7pu_285", Fa = "_sectionItems_1a7pu_289", za = "_navItem_1a7pu_297", Ka = "_active_1a7pu_310", Ua = "_navItemContent_1a7pu_316", Ga = "_navItemTitle_1a7pu_322", O = {
1467
+ const Na = "_backdrop_1a7pu_1", wa = "_open_1a7pu_13", Ia = "_mobileMenu_1a7pu_18", $a = "_header_1a7pu_37", Ca = "_brand_1a7pu_46", ya = "_cloudIcon_1a7pu_53", Ta = "_title_1a7pu_62", xa = "_closeButton_1a7pu_69", La = "_closeIcon_1a7pu_101", Sa = "_languageSection_1a7pu_106", Pa = "_languageSelect_1a7pu_112", Ma = "_languageButton_1a7pu_117", Ba = "_icon_1a7pu_156", Ea = "_chevron_1a7pu_162", Aa = "_languageDropdown_1a7pu_172", Da = "_languageOption_1a7pu_185", ja = "_selected_1a7pu_226", Ra = "_scrollArea_1a7pu_231", qa = "_navigation_1a7pu_237", Oa = "_section_1a7pu_241", Wa = "_sectionButton_1a7pu_245", Ha = "_expanded_1a7pu_285", Fa = "_sectionItems_1a7pu_289", za = "_navItem_1a7pu_297", Ka = "_active_1a7pu_310", Ua = "_navItemContent_1a7pu_316", Ga = "_navItemTitle_1a7pu_322", O = {
1468
1468
  backdrop: Na,
1469
1469
  open: wa,
1470
1470
  mobileMenu: Ia,
1471
- header: ya,
1472
- brand: $a,
1473
- cloudIcon: Ca,
1471
+ header: $a,
1472
+ brand: Ca,
1473
+ cloudIcon: ya,
1474
1474
  title: Ta,
1475
- closeButton: La,
1476
- closeIcon: xa,
1475
+ closeButton: xa,
1476
+ closeIcon: La,
1477
1477
  languageSection: Sa,
1478
1478
  languageSelect: Pa,
1479
1479
  languageButton: Ma,
@@ -1574,14 +1574,14 @@ function wo() {
1574
1574
  /* @__PURE__ */ e("div", { className: K.scrollArea, children: /* @__PURE__ */ e(be, { styles: K }) })
1575
1575
  ] });
1576
1576
  }
1577
- const Io = "_app_wf6ni_1", yo = "_layout_wf6ni_9", $o = "_main_wf6ni_15", Co = "_fullWidth_wf6ni_21", To = "_contentWrapper_wf6ni_30", se = {
1577
+ const Io = "_app_h5ex0_1", $o = "_layout_h5ex0_9", Co = "_main_h5ex0_15", yo = "_fullWidth_h5ex0_21", To = "_contentWrapper_h5ex0_30", se = {
1578
1578
  app: Io,
1579
- layout: yo,
1580
- main: $o,
1581
- fullWidth: Co,
1579
+ layout: $o,
1580
+ main: Co,
1581
+ fullWidth: yo,
1582
1582
  contentWrapper: To
1583
1583
  };
1584
- function Lo({ children: t }) {
1584
+ function xo({ children: t }) {
1585
1585
  const { language: n } = pe(), { i18n: s } = j(), { config: c } = R(), [h, r] = T(!1);
1586
1586
  S(() => {
1587
1587
  n && c.supportedLanguages.includes(n) && s.changeLanguage(n);
@@ -1609,8 +1609,8 @@ function Lo({ children: t }) {
1609
1609
  ] })
1610
1610
  ] });
1611
1611
  }
1612
- const xo = "_homePage_1otqy_1", So = "_header_1otqy_20", Po = "_title_1otqy_24", Mo = "_articlesList_1otqy_31", Bo = "_articleCard_1otqy_37", Eo = "_articleTitle_1otqy_56", Ao = "_articleDescription_1otqy_63", Do = "_empty_1otqy_71", jo = "_skeletonCard_1otqy_85", Ro = "_skeletonTitle_1otqy_95", qo = "_skeletonText_1otqy_104", Oo = "_skeletonMetadata_1otqy_113", E = {
1613
- homePage: xo,
1612
+ const Lo = "_homePage_1q89n_1", So = "_header_1q89n_20", Po = "_title_1q89n_24", Mo = "_articlesList_1q89n_31", Bo = "_articleCard_1q89n_37", Eo = "_articleTitle_1q89n_56", Ao = "_articleDescription_1q89n_63", Do = "_empty_1q89n_71", jo = "_skeletonCard_1q89n_85", Ro = "_skeletonTitle_1q89n_95", qo = "_skeletonText_1q89n_104", Oo = "_skeletonMetadata_1q89n_113", E = {
1613
+ homePage: Lo,
1614
1614
  header: So,
1615
1615
  title: Po,
1616
1616
  articlesList: Mo,
@@ -1672,10 +1672,10 @@ function Wo() {
1672
1672
  }
1673
1673
  function es() {
1674
1674
  const { language: t } = pe(), { config: n } = R();
1675
- return /* @__PURE__ */ e(Lo, { children: /* @__PURE__ */ i(Xe, { children: [
1676
- /* @__PURE__ */ e(xe, { path: "/:slug", element: /* @__PURE__ */ e(An, { language: t }) }),
1675
+ return /* @__PURE__ */ e(xo, { children: /* @__PURE__ */ i(Xe, { children: [
1676
+ /* @__PURE__ */ e(Le, { path: "/:slug", element: /* @__PURE__ */ e(An, { language: t }) }),
1677
1677
  /* @__PURE__ */ e(
1678
- xe,
1678
+ Le,
1679
1679
  {
1680
1680
  index: !0,
1681
1681
  element: (n.defaultRoute || "latest") === "latest" ? /* @__PURE__ */ e(Wo, {}) : /* @__PURE__ */ e(qe, { to: `./${n.defaultRoute}`, replace: !0 })
@@ -1714,7 +1714,7 @@ export {
1714
1714
  Bt as BlogSidebar,
1715
1715
  Ot as Breadcrumb,
1716
1716
  An as ContentPage,
1717
- Lo as DocumentationLayout,
1717
+ xo as DocumentationLayout,
1718
1718
  es as DocumentationRoutes,
1719
1719
  ka as Header,
1720
1720
  Wo as HomePage,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@x-wave/blog",
3
- "version": "2.2.2",
3
+ "version": "2.2.4",
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_kz84g_1{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--xw-border)}._navContainer_kz84g_7{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:767px){._navContainer_kz84g_7{grid-template-columns:1fr;gap:1rem}}@media(min-width:1024px){._navContainer_kz84g_7{gap:1.5rem}}._navLink_kz84g_24{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_kz84g_24:hover{border-color:var(--xw-ring);background-color:var(--xw-card);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}._navLink_kz84g_24:first-child{justify-content:flex-start}@media(max-width:767px){._navLink_kz84g_24:first-child{justify-content:center;text-align:center}}._navLink_kz84g_24:last-child{justify-content:flex-end;text-align:right}@media(max-width:767px){._navLink_kz84g_24:last-child{justify-content:center;text-align:center}}._navLinkContent_kz84g_61{display:flex;align-items:center;gap:.75rem;min-width:0;width:100%}@media(max-width:767px){._navLinkContent_kz84g_61{justify-content:center;flex-direction:column;text-align:center}}._navIcon_kz84g_76{display:flex;align-items:center;color:var(--xw-primary);flex-shrink:0}._navText_kz84g_83{display:flex;flex-direction:column;gap:.25rem;min-width:0}._navLabel_kz84g_90{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--xw-muted-foreground)}._navTitle_kz84g_98{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_kz84g_98{font-size:.9rem}}._blogSidebar_n1up9_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_n1up9_1{display:none}}._section_n1up9_21{margin-bottom:2rem}._section_n1up9_21:last-child{margin-bottom:0}._sectionTitle_n1up9_28{font-size:.75rem;font-weight:600;color:var(--xw-foreground);margin:0 0 1rem}._linksList_n1up9_35{display:flex;flex-direction:column;gap:.25rem}._link_n1up9_35{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_n1up9_35:hover{color:var(--xw-primary)}._link_n1up9_35 svg{flex-shrink:0}._breadcrumb_rarc4_1{margin-bottom:1rem}._breadcrumbList_rarc4_5{display:flex;align-items:center;list-style:none;margin:0;padding:0;font-size:.875rem;color:var(--xw-muted-foreground)}._breadcrumbItem_rarc4_15{display:flex;align-items:center;gap:.25rem}._breadcrumbLink_rarc4_21{background:none;border:none;cursor:pointer;color:var(--xw-link);text-decoration:none;font-size:inherit;padding:0;font-weight:500;transition:color .2s ease}._breadcrumbLink_rarc4_21:hover{color:var(--xw-primary);text-decoration:underline}._breadcrumbLink_rarc4_21:focus-visible{outline:2px solid var(--xw-primary);outline-offset:2px}._breadcrumbSeparator_rarc4_41{color:var(--xw-border);margin:0 .5rem}._breadcrumbCurrent_rarc4_46{color:var(--xw-foreground);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:20rem}@media(max-width:767px){._breadcrumbCurrent_rarc4_46{max-width:10rem}}._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_mc666_1{flex:1;max-width:48rem;margin:0;padding:0 0 2rem}@media(max-width:767px){._contentPage_mc666_1{padding:1rem;max-width:none}}@media(max-width:1024px){._contentPage_mc666_1{max-width:none;padding:2rem}}._contentPage_mc666_1>h1{font-size:1.875rem;font-weight:600;letter-spacing:-.025em;margin-top:1.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--xw-border);padding-bottom:.75rem;line-height:1.2;scroll-margin-top:5rem}._contentPage_mc666_1>h1._withMetadata_mc666_30{border-bottom:none;padding-bottom:0;margin-bottom:.5rem}._metadata_mc666_36{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_mc666_36 ._author_mc666_46,._metadata_mc666_36 ._date_mc666_47{display:flex;align-items:center;gap:.5rem}._metadata_mc666_36 ._author_mc666_46{font-weight:500;color:var(--xw-foreground)}@media(max-width:767px){._metadata_mc666_36{flex-direction:column;align-items:flex-start;gap:.25rem}}._loadingContainer_mc666_64,._errorContainer_mc666_65{display:flex;align-items:center;justify-content:center;height:16rem}._loadingContainer_mc666_64{flex-direction:column;align-items:flex-start;gap:1.5rem;padding:2rem 0}@keyframes _shimmer_mc666_1{0%{background-position:-1000px 0}to{background-position:1000px 0}}._skeletonTitle_mc666_87{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_mc666_1 2s infinite linear;border-radius:.5rem}._skeletonParagraph_mc666_96{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_mc666_1 2s infinite linear;border-radius:.25rem;margin-bottom:.5rem}._skeletonParagraph_mc666_96:not(:last-child){margin-bottom:1rem}._skeletonParagraphShort_mc666_109{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_mc666_1 2s infinite linear;border-radius:.25rem}._loadingText_mc666_118{color:var(--xw-muted-foreground);font-size:1rem}._errorText_mc666_123{color:var(--xw-destructive);font-size:1rem}._mdxContent_mc666_128{max-width:none}._mdxContent_mc666_128 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_mc666_128 h1._withMetadata_mc666_30{border-bottom:none;padding-bottom:0;margin-bottom:.5rem}._mdxContent_mc666_128 h1 a{color:inherit;text-decoration:none;border:none;position:relative}._mdxContent_mc666_128 h1 a:hover{color:inherit;border:none}._mdxContent_mc666_128 h1 a:hover:before{content:"#";position:absolute;left:-1.5rem;color:var(--xw-link);opacity:.7;font-weight:400}._mdxContent_mc666_128 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_mc666_128 h2 a{color:inherit;text-decoration:none;border:none;position:relative}._mdxContent_mc666_128 h2 a:hover{color:inherit;border:none}._mdxContent_mc666_128 h2 a:hover:before{content:"#";position:absolute;left:-1.5rem;color:var(--xw-link);opacity:.7;font-weight:400}._mdxContent_mc666_128 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_mc666_128 h3 a{color:inherit;text-decoration:none;border:none;position:relative}._mdxContent_mc666_128 h3 a:hover{color:inherit;border:none}._mdxContent_mc666_128 h3 a:hover:before{content:"#";position:absolute;left:-1.5rem;color:var(--xw-link);opacity:.7;font-weight:400}._mdxContent_mc666_128 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_mc666_128 h4 a{color:inherit;text-decoration:none;border:none;position:relative}._mdxContent_mc666_128 h4 a:hover{color:inherit;border:none}._mdxContent_mc666_128 h4 a:hover:before{content:"#";position:absolute;left:-1.5rem;color:var(--xw-link);opacity:.7;font-weight:400}._mdxContent_mc666_128 h5{font-size:1rem;font-weight:500;margin-bottom:.5rem;margin-top:1.25rem;line-height:1.5}._mdxContent_mc666_128 h6{font-size:.875rem;font-weight:500;margin-bottom:.5rem;margin-top:1rem;line-height:1.5}._mdxContent_mc666_128 p{font-size:1rem;line-height:1.65;margin-bottom:1rem;color:var(--xw-foreground)}._mdxContent_mc666_128 ul,._mdxContent_mc666_128 ol{margin-bottom:1rem;padding-left:1.5rem}._mdxContent_mc666_128 ul li,._mdxContent_mc666_128 ol li{font-size:1rem;line-height:1.65;margin-bottom:.375rem}._mdxContent_mc666_128 ul ul,._mdxContent_mc666_128 ul ol,._mdxContent_mc666_128 ol ul,._mdxContent_mc666_128 ol ol{margin-top:.375rem;margin-bottom:.375rem}._mdxContent_mc666_128 ul{list-style-type:disc}._mdxContent_mc666_128 ol{list-style-type:decimal}._mdxContent_mc666_128 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_mc666_128 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_mc666_128 pre code{background-color:transparent;padding:0;color:inherit;font-weight:400}._mdxContent_mc666_128 ._codeBlock_mc666_316{position:relative;margin-bottom:1.5rem}._mdxContent_mc666_128 ._codeLanguage_mc666_320{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_mc666_128 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_mc666_128 blockquote p{margin-bottom:.5rem}._mdxContent_mc666_128 blockquote p:last-child{margin-bottom:0}._mdxContent_mc666_128 a{color:var(--xw-link);text-decoration:none;transition:color .15s cubic-bezier(.4,0,.2,1);border-bottom:1px solid transparent}._mdxContent_mc666_128 a:hover{color:color-mix(in oklch,var(--xw-link) 80%,transparent);border-bottom-color:currentColor}._mdxContent_mc666_128 strong{font-weight:600}._mdxContent_mc666_128 em{font-style:italic}._mdxContent_mc666_128 table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.95rem}._mdxContent_mc666_128 table th,._mdxContent_mc666_128 table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--xw-border);line-height:1.4}._mdxContent_mc666_128 table th{font-weight:500;background-color:var(--xw-muted);font-size:.875rem;letter-spacing:.025em}._mdxContent_mc666_128 table tbody tr:hover{background-color:color-mix(in oklch,var(--xw-muted) 50%,transparent)}._mdxContent_mc666_128 img{max-width:100%;height:auto;border-radius:.5rem;margin:1.5rem 0;border:1px solid var(--xw-border)}._mdxContent_mc666_128 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_1qgjy_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_1qgjy_1{display:none}}._header_1qgjy_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_1qgjy_29{display:flex;align-items:center;gap:.5rem}._cloudIcon_1qgjy_35{width:1.5rem;height:1.5rem;flex-shrink:0}._cloudIcon_1qgjy_35 .accent{fill:#d33079}._title_1qgjy_44{font-size:1rem;font-weight:600;line-height:1.5;margin:0;letter-spacing:-.02em;color:var(--xw-foreground)}._languageSelect_1qgjy_55{position:relative;margin-top:.25rem;width:100%}._languageButton_1qgjy_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_1qgjy_61:focus-visible{outline:2px solid var(--xw-ring);outline-offset:2px}._languageButton_1qgjy_61:disabled{pointer-events:none;opacity:.5}._languageButton_1qgjy_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_1qgjy_61:hover{background-color:var(--xw-muted);color:var(--xw-foreground)}._languageButton_1qgjy_61 ._icon_1qgjy_99{width:.875rem;height:.875rem;flex-shrink:0}._languageButton_1qgjy_61 ._chevron_1qgjy_104{width:.875rem;height:.875rem;flex-shrink:0;transition:transform .15s cubic-bezier(.4,0,.2,1)}._languageButton_1qgjy_61[aria-expanded=true] ._chevron_1qgjy_104{transform:rotate(180deg)}._languageDropdown_1qgjy_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_1qgjy_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_1qgjy_128:hover{background-color:var(--xw-muted)}._languageOption_1qgjy_128:focus{outline:none;background-color:var(--xw-muted)}._languageOption_1qgjy_128._selected_1qgjy_147{background-color:var(--xw-muted);color:var(--xw-foreground)}._scrollArea_1qgjy_152{height:calc(100vh - 120px);padding:1rem .5rem 1rem 1rem;overflow-y:auto}._navigation_1qgjy_158{display:flex;flex-direction:column;gap:.125rem}._section_1qgjy_164{display:flex;flex-direction:column;gap:0}._sectionButton_1qgjy_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_1qgjy_170:focus-visible{outline:2px solid var(--xw-ring);outline-offset:2px}._sectionButton_1qgjy_170:disabled{pointer-events:none;opacity:.5}._sectionButton_1qgjy_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_1qgjy_170:hover{color:var(--xw-foreground)}._sectionButton_1qgjy_170 ._icon_1qgjy_99{width:.875rem;height:.875rem;transition:transform .15s cubic-bezier(.4,0,.2,1)}._sectionButton_1qgjy_170._expanded_1qgjy_213 ._icon_1qgjy_99{transform:rotate(90deg)}._sectionItems_1qgjy_217{margin-top:.25rem;padding-left:1rem;display:flex;flex-direction:column;gap:.125rem}._navItem_1qgjy_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_1qgjy_225:hover{color:var(--xw-foreground)}._navItem_1qgjy_225._active_1qgjy_238{color:var(--xw-foreground);font-weight:500}._navItemContent_1qgjy_243{display:flex;align-items:center;justify-content:space-between;width:100%}._sidebar_1qgjy_1::-webkit-scrollbar{width:6px}._sidebar_1qgjy_1::-webkit-scrollbar-track{background:transparent}._sidebar_1qgjy_1::-webkit-scrollbar-thumb{background:var(--xw-muted-foreground);border-radius:9999px;opacity:.3}._sidebar_1qgjy_1::-webkit-scrollbar-thumb:hover{opacity:.6}._skeletonSection_1qgjy_267{display:flex;flex-direction:column;gap:0;margin-bottom:.5rem}._skeletonSectionTitle_1qgjy_274{height:1rem;width:60%;position:relative;overflow:hidden;background-color:#80808026;border-radius:.25rem;margin-bottom:.25rem}._skeletonSectionTitle_1qgjy_274:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.15) 50%,transparent 100%);animation:_skeleton-loading_1qgjy_1 1.5s ease-in-out infinite}._skeletonSectionItems_1qgjy_294{padding-left:1rem;display:flex;flex-direction:column;gap:.25rem;margin-top:.25rem}._skeletonItem_1qgjy_302{height:1rem;width:85%;position:relative;overflow:hidden;background-color:#80808026;border-radius:.25rem;margin-bottom:.125rem}._skeletonItem_1qgjy_302:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.15) 50%,transparent 100%);animation:_skeleton-loading_1qgjy_1 1.5s ease-in-out infinite}._skeletonItem_1qgjy_302:nth-child(2){width:75%}._skeletonItem_1qgjy_302:nth-child(2):before{animation-delay:.1s}@keyframes _skeleton-loading_1qgjy_1{0%{transform:translate(-100%)}to{transform:translate(200%)}}._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_1otqy_1{flex:1;max-width:48rem;margin:0;padding:0 0 2rem}@media(max-width:767px){._homePage_1otqy_1{padding:1rem;max-width:none}}@media(max-width:1024px){._homePage_1otqy_1{max-width:none;padding:2rem}}._header_1otqy_20{margin-bottom:1.5rem}._title_1otqy_24{font-size:1.5rem;font-weight:700;color:var(--xw-foreground);margin-bottom:0!important}._articlesList_1otqy_31{display:flex;flex-direction:column;gap:1rem}._articleCard_1otqy_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_1otqy_37:hover{border-color:var(--xw-primary);background-color:var(--xw-card);transform:translateY(-2px)}._articleCard_1otqy_37:focus-visible{outline:2px solid var(--xw-primary);outline-offset:2px}._articleTitle_1otqy_56{font-size:1.25rem;font-weight:600;margin:0 0 .5rem;color:var(--xw-foreground)}._articleDescription_1otqy_63{font-size:.9rem;color:var(--xw-muted-foreground);margin:0 0 .5rem;line-height:1.5}._loading_1otqy_70,._empty_1otqy_71{padding:2rem;text-align:center;color:var(--xw-muted-foreground)}@keyframes _shimmer_1otqy_1{0%{background-position:-1000px 0}to{background-position:1000px 0}}._skeletonCard_1otqy_85{padding:1rem;border:1px solid var(--xw-border);border-radius:.5rem;background:transparent;display:flex;flex-direction:column;gap:.5rem}._skeletonTitle_1otqy_95{width:70%;height:1.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_1otqy_1 2s infinite linear;border-radius:.5rem}._skeletonText_1otqy_104{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_1otqy_1 2s infinite linear;border-radius:.25rem}._skeletonMetadata_1otqy_113{width:40%;height:.875rem;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_1otqy_1 2s infinite linear;border-radius:.25rem;margin-top:.25rem}
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_kz84g_1{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--xw-border)}._navContainer_kz84g_7{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:767px){._navContainer_kz84g_7{grid-template-columns:1fr;gap:1rem}}@media(min-width:1024px){._navContainer_kz84g_7{gap:1.5rem}}._navLink_kz84g_24{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_kz84g_24:hover{border-color:var(--xw-ring);background-color:var(--xw-card);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}._navLink_kz84g_24:first-child{justify-content:flex-start}@media(max-width:767px){._navLink_kz84g_24:first-child{justify-content:center;text-align:center}}._navLink_kz84g_24:last-child{justify-content:flex-end;text-align:right}@media(max-width:767px){._navLink_kz84g_24:last-child{justify-content:center;text-align:center}}._navLinkContent_kz84g_61{display:flex;align-items:center;gap:.75rem;min-width:0;width:100%}@media(max-width:767px){._navLinkContent_kz84g_61{justify-content:center;flex-direction:column;text-align:center}}._navIcon_kz84g_76{display:flex;align-items:center;color:var(--xw-primary);flex-shrink:0}._navText_kz84g_83{display:flex;flex-direction:column;gap:.25rem;min-width:0}._navLabel_kz84g_90{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--xw-muted-foreground)}._navTitle_kz84g_98{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_kz84g_98{font-size:.9rem}}._blogSidebar_n1up9_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_n1up9_1{display:none}}._section_n1up9_21{margin-bottom:2rem}._section_n1up9_21:last-child{margin-bottom:0}._sectionTitle_n1up9_28{font-size:.75rem;font-weight:600;color:var(--xw-foreground);margin:0 0 1rem}._linksList_n1up9_35{display:flex;flex-direction:column;gap:.25rem}._link_n1up9_35{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_n1up9_35:hover{color:var(--xw-primary)}._link_n1up9_35 svg{flex-shrink:0}._breadcrumb_rarc4_1{margin-bottom:1rem}._breadcrumbList_rarc4_5{display:flex;align-items:center;list-style:none;margin:0;padding:0;font-size:.875rem;color:var(--xw-muted-foreground)}._breadcrumbItem_rarc4_15{display:flex;align-items:center;gap:.25rem}._breadcrumbLink_rarc4_21{background:none;border:none;cursor:pointer;color:var(--xw-link);text-decoration:none;font-size:inherit;padding:0;font-weight:500;transition:color .2s ease}._breadcrumbLink_rarc4_21:hover{color:var(--xw-primary);text-decoration:underline}._breadcrumbLink_rarc4_21:focus-visible{outline:2px solid var(--xw-primary);outline-offset:2px}._breadcrumbSeparator_rarc4_41{color:var(--xw-border);margin:0 .5rem}._breadcrumbCurrent_rarc4_46{color:var(--xw-foreground);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:20rem}@media(max-width:767px){._breadcrumbCurrent_rarc4_46{max-width:10rem}}._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_mc666_1{flex:1;max-width:48rem;margin:0;padding:0 0 2rem}@media(max-width:767px){._contentPage_mc666_1{padding:1rem;max-width:none}}@media(max-width:1024px){._contentPage_mc666_1{max-width:none;padding:2rem}}._contentPage_mc666_1>h1{font-size:1.875rem;font-weight:600;letter-spacing:-.025em;margin-top:1.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--xw-border);padding-bottom:.75rem;line-height:1.2;scroll-margin-top:5rem}._contentPage_mc666_1>h1._withMetadata_mc666_30{border-bottom:none;padding-bottom:0;margin-bottom:.5rem}._metadata_mc666_36{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_mc666_36 ._author_mc666_46,._metadata_mc666_36 ._date_mc666_47{display:flex;align-items:center;gap:.5rem}._metadata_mc666_36 ._author_mc666_46{font-weight:500;color:var(--xw-foreground)}@media(max-width:767px){._metadata_mc666_36{flex-direction:column;align-items:flex-start;gap:.25rem}}._loadingContainer_mc666_64,._errorContainer_mc666_65{display:flex;align-items:center;justify-content:center;height:16rem}._loadingContainer_mc666_64{flex-direction:column;align-items:flex-start;gap:1.5rem;padding:2rem 0}@keyframes _shimmer_mc666_1{0%{background-position:-1000px 0}to{background-position:1000px 0}}._skeletonTitle_mc666_87{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_mc666_1 2s infinite linear;border-radius:.5rem}._skeletonParagraph_mc666_96{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_mc666_1 2s infinite linear;border-radius:.25rem;margin-bottom:.5rem}._skeletonParagraph_mc666_96:not(:last-child){margin-bottom:1rem}._skeletonParagraphShort_mc666_109{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_mc666_1 2s infinite linear;border-radius:.25rem}._loadingText_mc666_118{color:var(--xw-muted-foreground);font-size:1rem}._errorText_mc666_123{color:var(--xw-destructive);font-size:1rem}._mdxContent_mc666_128{max-width:none}._mdxContent_mc666_128 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_mc666_128 h1._withMetadata_mc666_30{border-bottom:none;padding-bottom:0;margin-bottom:.5rem}._mdxContent_mc666_128 h1 a{color:inherit;text-decoration:none;border:none;position:relative}._mdxContent_mc666_128 h1 a:hover{color:inherit;border:none}._mdxContent_mc666_128 h1 a:hover:before{content:"#";position:absolute;left:-1.5rem;color:var(--xw-link);opacity:.7;font-weight:400}._mdxContent_mc666_128 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_mc666_128 h2 a{color:inherit;text-decoration:none;border:none;position:relative}._mdxContent_mc666_128 h2 a:hover{color:inherit;border:none}._mdxContent_mc666_128 h2 a:hover:before{content:"#";position:absolute;left:-1.5rem;color:var(--xw-link);opacity:.7;font-weight:400}._mdxContent_mc666_128 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_mc666_128 h3 a{color:inherit;text-decoration:none;border:none;position:relative}._mdxContent_mc666_128 h3 a:hover{color:inherit;border:none}._mdxContent_mc666_128 h3 a:hover:before{content:"#";position:absolute;left:-1.5rem;color:var(--xw-link);opacity:.7;font-weight:400}._mdxContent_mc666_128 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_mc666_128 h4 a{color:inherit;text-decoration:none;border:none;position:relative}._mdxContent_mc666_128 h4 a:hover{color:inherit;border:none}._mdxContent_mc666_128 h4 a:hover:before{content:"#";position:absolute;left:-1.5rem;color:var(--xw-link);opacity:.7;font-weight:400}._mdxContent_mc666_128 h5{font-size:1rem;font-weight:500;margin-bottom:.5rem;margin-top:1.25rem;line-height:1.5}._mdxContent_mc666_128 h6{font-size:.875rem;font-weight:500;margin-bottom:.5rem;margin-top:1rem;line-height:1.5}._mdxContent_mc666_128 p{font-size:1rem;line-height:1.65;margin-bottom:1rem;color:var(--xw-foreground)}._mdxContent_mc666_128 ul,._mdxContent_mc666_128 ol{margin-bottom:1rem;padding-left:1.5rem}._mdxContent_mc666_128 ul li,._mdxContent_mc666_128 ol li{font-size:1rem;line-height:1.65;margin-bottom:.375rem}._mdxContent_mc666_128 ul ul,._mdxContent_mc666_128 ul ol,._mdxContent_mc666_128 ol ul,._mdxContent_mc666_128 ol ol{margin-top:.375rem;margin-bottom:.375rem}._mdxContent_mc666_128 ul{list-style-type:disc}._mdxContent_mc666_128 ol{list-style-type:decimal}._mdxContent_mc666_128 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_mc666_128 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_mc666_128 pre code{background-color:transparent;padding:0;color:inherit;font-weight:400}._mdxContent_mc666_128 ._codeBlock_mc666_316{position:relative;margin-bottom:1.5rem}._mdxContent_mc666_128 ._codeLanguage_mc666_320{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_mc666_128 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_mc666_128 blockquote p{margin-bottom:.5rem}._mdxContent_mc666_128 blockquote p:last-child{margin-bottom:0}._mdxContent_mc666_128 a{color:var(--xw-link);text-decoration:none;transition:color .15s cubic-bezier(.4,0,.2,1);border-bottom:1px solid transparent}._mdxContent_mc666_128 a:hover{color:color-mix(in oklch,var(--xw-link) 80%,transparent);border-bottom-color:currentColor}._mdxContent_mc666_128 strong{font-weight:600}._mdxContent_mc666_128 em{font-style:italic}._mdxContent_mc666_128 table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.95rem}._mdxContent_mc666_128 table th,._mdxContent_mc666_128 table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--xw-border);line-height:1.4}._mdxContent_mc666_128 table th{font-weight:500;background-color:var(--xw-muted);font-size:.875rem;letter-spacing:.025em}._mdxContent_mc666_128 table tbody tr:hover{background-color:color-mix(in oklch,var(--xw-muted) 50%,transparent)}._mdxContent_mc666_128 img{max-width:100%;height:auto;border-radius:.5rem;margin:1.5rem 0;border:1px solid var(--xw-border)}._mdxContent_mc666_128 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_1qgjy_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_1qgjy_1{display:none}}._header_1qgjy_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_1qgjy_29{display:flex;align-items:center;gap:.5rem}._cloudIcon_1qgjy_35{width:1.5rem;height:1.5rem;flex-shrink:0}._cloudIcon_1qgjy_35 .accent{fill:#d33079}._title_1qgjy_44{font-size:1rem;font-weight:600;line-height:1.5;margin:0;letter-spacing:-.02em;color:var(--xw-foreground)}._languageSelect_1qgjy_55{position:relative;margin-top:.25rem;width:100%}._languageButton_1qgjy_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_1qgjy_61:focus-visible{outline:2px solid var(--xw-ring);outline-offset:2px}._languageButton_1qgjy_61:disabled{pointer-events:none;opacity:.5}._languageButton_1qgjy_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_1qgjy_61:hover{background-color:var(--xw-muted);color:var(--xw-foreground)}._languageButton_1qgjy_61 ._icon_1qgjy_99{width:.875rem;height:.875rem;flex-shrink:0}._languageButton_1qgjy_61 ._chevron_1qgjy_104{width:.875rem;height:.875rem;flex-shrink:0;transition:transform .15s cubic-bezier(.4,0,.2,1)}._languageButton_1qgjy_61[aria-expanded=true] ._chevron_1qgjy_104{transform:rotate(180deg)}._languageDropdown_1qgjy_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_1qgjy_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_1qgjy_128:hover{background-color:var(--xw-muted)}._languageOption_1qgjy_128:focus{outline:none;background-color:var(--xw-muted)}._languageOption_1qgjy_128._selected_1qgjy_147{background-color:var(--xw-muted);color:var(--xw-foreground)}._scrollArea_1qgjy_152{height:calc(100vh - 120px);padding:1rem .5rem 1rem 1rem;overflow-y:auto}._navigation_1qgjy_158{display:flex;flex-direction:column;gap:.125rem}._section_1qgjy_164{display:flex;flex-direction:column;gap:0}._sectionButton_1qgjy_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_1qgjy_170:focus-visible{outline:2px solid var(--xw-ring);outline-offset:2px}._sectionButton_1qgjy_170:disabled{pointer-events:none;opacity:.5}._sectionButton_1qgjy_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_1qgjy_170:hover{color:var(--xw-foreground)}._sectionButton_1qgjy_170 ._icon_1qgjy_99{width:.875rem;height:.875rem;transition:transform .15s cubic-bezier(.4,0,.2,1)}._sectionButton_1qgjy_170._expanded_1qgjy_213 ._icon_1qgjy_99{transform:rotate(90deg)}._sectionItems_1qgjy_217{margin-top:.25rem;padding-left:1rem;display:flex;flex-direction:column;gap:.125rem}._navItem_1qgjy_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_1qgjy_225:hover{color:var(--xw-foreground)}._navItem_1qgjy_225._active_1qgjy_238{color:var(--xw-foreground);font-weight:500}._navItemContent_1qgjy_243{display:flex;align-items:center;justify-content:space-between;width:100%}._sidebar_1qgjy_1::-webkit-scrollbar{width:6px}._sidebar_1qgjy_1::-webkit-scrollbar-track{background:transparent}._sidebar_1qgjy_1::-webkit-scrollbar-thumb{background:var(--xw-muted-foreground);border-radius:9999px;opacity:.3}._sidebar_1qgjy_1::-webkit-scrollbar-thumb:hover{opacity:.6}._skeletonSection_1qgjy_267{display:flex;flex-direction:column;gap:0;margin-bottom:.5rem}._skeletonSectionTitle_1qgjy_274{height:1rem;width:60%;position:relative;overflow:hidden;background-color:#80808026;border-radius:.25rem;margin-bottom:.25rem}._skeletonSectionTitle_1qgjy_274:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.15) 50%,transparent 100%);animation:_skeleton-loading_1qgjy_1 1.5s ease-in-out infinite}._skeletonSectionItems_1qgjy_294{padding-left:1rem;display:flex;flex-direction:column;gap:.25rem;margin-top:.25rem}._skeletonItem_1qgjy_302{height:1rem;width:85%;position:relative;overflow:hidden;background-color:#80808026;border-radius:.25rem;margin-bottom:.125rem}._skeletonItem_1qgjy_302:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.15) 50%,transparent 100%);animation:_skeleton-loading_1qgjy_1 1.5s ease-in-out infinite}._skeletonItem_1qgjy_302:nth-child(2){width:75%}._skeletonItem_1qgjy_302:nth-child(2):before{animation-delay:.1s}@keyframes _skeleton-loading_1qgjy_1{0%{transform:translate(-100%)}to{transform:translate(200%)}}._app_h5ex0_1{min-height:100vh;background-color:var(--xw-background);color:var(--xw-foreground);display:flex;flex-direction:column}._layout_h5ex0_9{display:flex;flex:1;min-height:calc(100vh - 3.5rem)}._main_h5ex0_15{flex:1;display:flex;flex-direction:column;margin-left:16rem}._main_h5ex0_15._fullWidth_h5ex0_21{margin-left:0}@media(max-width:767px){._main_h5ex0_15{margin-left:0}}._contentWrapper_h5ex0_30{display:flex;flex:1;position:relative;width:100%;max-width:80rem;margin:0 auto;padding:2rem;padding-top:0}._main_h5ex0_15._fullWidth_h5ex0_21 ._contentWrapper_h5ex0_30{width:auto}@media(max-width:1024px){._contentWrapper_h5ex0_30{padding:1.5rem;padding-top:0}}@media(max-width:767px){._contentWrapper_h5ex0_30{padding:.5rem;padding-top:0}}._homePage_1q89n_1{flex:1;max-width:48rem;margin:0;padding:0 0 2rem}@media(max-width:767px){._homePage_1q89n_1{padding:1rem;max-width:none}}@media(max-width:1024px){._homePage_1q89n_1{max-width:none;padding:2rem}}._header_1q89n_20{margin-bottom:1rem}._title_1q89n_24{font-size:1.5rem;font-weight:700;color:var(--xw-foreground);margin-bottom:0!important}._articlesList_1q89n_31{display:flex;flex-direction:column;gap:1rem}._articleCard_1q89n_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_1q89n_37:hover{border-color:var(--xw-primary);background-color:var(--xw-card);transform:translateY(-2px)}._articleCard_1q89n_37:focus-visible{outline:2px solid var(--xw-primary);outline-offset:2px}._articleTitle_1q89n_56{font-size:1.25rem;font-weight:600;margin:0 0 .5rem;color:var(--xw-foreground)}._articleDescription_1q89n_63{font-size:.9rem;color:var(--xw-muted-foreground);margin:0 0 .5rem;line-height:1.5}._loading_1q89n_70,._empty_1q89n_71{padding:2rem;text-align:center;color:var(--xw-muted-foreground)}@keyframes _shimmer_1q89n_1{0%{background-position:-1000px 0}to{background-position:1000px 0}}._skeletonCard_1q89n_85{padding:1rem;border:1px solid var(--xw-border);border-radius:.5rem;background:transparent;display:flex;flex-direction:column;gap:.5rem}._skeletonTitle_1q89n_95{width:70%;height:1.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_1q89n_1 2s infinite linear;border-radius:.5rem}._skeletonText_1q89n_104{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_1q89n_1 2s infinite linear;border-radius:.25rem}._skeletonMetadata_1q89n_113{width:40%;height:.875rem;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_1q89n_1 2s infinite linear;border-radius:.25rem;margin-top:.25rem}