@cntyclub/ui-react 0.10.1 → 0.10.2

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.
package/dist/index.js CHANGED
@@ -5925,6 +5925,59 @@ function KbdGroup({ className, ...props }) {
5925
5925
  }
5926
5926
  );
5927
5927
  }
5928
+ var LATEX_SYMBOLS = {
5929
+ times: "\xD7",
5930
+ cdot: "\xB7",
5931
+ div: "\xF7",
5932
+ approx: "\u2248",
5933
+ neq: "\u2260",
5934
+ ne: "\u2260",
5935
+ leq: "\u2264",
5936
+ le: "\u2264",
5937
+ geq: "\u2265",
5938
+ ge: "\u2265",
5939
+ pm: "\xB1",
5940
+ to: "\u2192",
5941
+ rightarrow: "\u2192",
5942
+ Rightarrow: "\u21D2",
5943
+ infty: "\u221E",
5944
+ cdots: "\u22EF",
5945
+ ldots: "\u2026",
5946
+ deg: "\xB0"
5947
+ };
5948
+ var wrapFracSide = (x) => {
5949
+ const t = x.trim();
5950
+ return /[+\-*/×÷·\s]/.test(t) ? `(${t})` : t;
5951
+ };
5952
+ function normalizeLatex(src) {
5953
+ if (!src.includes("\\") && !src.includes("$")) return src;
5954
+ let s = src;
5955
+ s = s.replace(/\$\$([\s\S]*?)\$\$/g, " $1 ");
5956
+ s = s.replace(/\$([^$\n]*\\[^$\n]*)\$/g, " $1 ");
5957
+ s = s.replace(/\\[()[\]]/g, " ");
5958
+ for (let i = 0; i < 3; i++) {
5959
+ const next = s.replace(
5960
+ /\\[dt]?frac\s*\{([^{}]*)\}\s*\{([^{}]*)\}/g,
5961
+ (_m, a, b) => `${wrapFracSide(a)}/${wrapFracSide(b)}`
5962
+ );
5963
+ if (next === s) break;
5964
+ s = next;
5965
+ }
5966
+ s = s.replace(/\\sqrt\s*\{([^{}]*)\}/g, "\u221A($1)");
5967
+ s = s.replace(/\\(?:text|mathrm|mathbf|mathit|operatorname)\s*\{([^{}]*)\}/g, "$1");
5968
+ s = s.replace(/\\([a-zA-Z]+)/g, (m, name) => LATEX_SYMBOLS[name] ?? m);
5969
+ s = s.replace(/\\(left|right)\b/g, "");
5970
+ s = s.replace(/\\([%$&#_{}])/g, "$1");
5971
+ s = s.replace(/\\[,;:!]/g, "");
5972
+ s = s.replace(/\\ /g, " ");
5973
+ s = s.replace(/\\([a-zA-Z]+)/g, "$1");
5974
+ for (let i = 0; i < 3; i++) {
5975
+ const next = s.replace(/\{([^{}]*)\}/g, "$1");
5976
+ if (next === s) break;
5977
+ s = next;
5978
+ }
5979
+ return s.replace(/[ \t]{2,}/g, " ");
5980
+ }
5928
5981
  function Markdown({ children, className }) {
5929
5982
  return /* @__PURE__ */ jsx(
5930
5983
  "div",
@@ -5994,7 +6047,7 @@ function Markdown({ children, className }) {
5994
6047
  },
5995
6048
  remarkPlugins: [remarkGfm],
5996
6049
  skipHtml: true,
5997
- children
6050
+ children: normalizeLatex(children)
5998
6051
  }
5999
6052
  )
6000
6053
  }