@almadar/ui 5.21.3 → 5.21.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.
- package/dist/avl/index.cjs +157 -139
- package/dist/avl/index.js +153 -135
- package/dist/components/index.cjs +157 -139
- package/dist/components/index.js +153 -135
- package/dist/providers/index.cjs +157 -139
- package/dist/providers/index.js +153 -135
- package/dist/runtime/index.cjs +157 -139
- package/dist/runtime/index.js +153 -135
- package/package.json +1 -1
package/dist/providers/index.cjs
CHANGED
|
@@ -15,10 +15,6 @@ var evaluator = require('@almadar/evaluator');
|
|
|
15
15
|
var context = require('@almadar/ui/context');
|
|
16
16
|
var reactRouterDom = require('react-router-dom');
|
|
17
17
|
var ELK = require('elkjs/lib/elk.bundled.js');
|
|
18
|
-
var ReactMarkdown = require('react-markdown');
|
|
19
|
-
var remarkGfm = require('remark-gfm');
|
|
20
|
-
var remarkMath = require('remark-math');
|
|
21
|
-
var rehypeKatex = require('rehype-katex');
|
|
22
18
|
var SyntaxHighlighter = require('react-syntax-highlighter/dist/esm/prism-light.js');
|
|
23
19
|
var dark = require('react-syntax-highlighter/dist/esm/styles/prism/vsc-dark-plus.js');
|
|
24
20
|
var syntax = require('@almadar/syntax');
|
|
@@ -38,6 +34,10 @@ var langDiff = require('react-syntax-highlighter/dist/esm/languages/prism/diff.j
|
|
|
38
34
|
var langToml = require('react-syntax-highlighter/dist/esm/languages/prism/toml.js');
|
|
39
35
|
var langGo = require('react-syntax-highlighter/dist/esm/languages/prism/go.js');
|
|
40
36
|
var langGraphql = require('react-syntax-highlighter/dist/esm/languages/prism/graphql.js');
|
|
37
|
+
var ReactMarkdown = require('react-markdown');
|
|
38
|
+
var remarkGfm = require('remark-gfm');
|
|
39
|
+
var remarkMath = require('remark-math');
|
|
40
|
+
var rehypeKatex = require('rehype-katex');
|
|
41
41
|
var core = require('@almadar/core');
|
|
42
42
|
var core$1 = require('@dnd-kit/core');
|
|
43
43
|
var sortable = require('@dnd-kit/sortable');
|
|
@@ -71,10 +71,6 @@ var PhosphorIcons__namespace = /*#__PURE__*/_interopNamespace(PhosphorIcons);
|
|
|
71
71
|
var TablerIcons__namespace = /*#__PURE__*/_interopNamespace(TablerIcons);
|
|
72
72
|
var FaIcons__namespace = /*#__PURE__*/_interopNamespace(FaIcons);
|
|
73
73
|
var ELK__default = /*#__PURE__*/_interopDefault(ELK);
|
|
74
|
-
var ReactMarkdown__default = /*#__PURE__*/_interopDefault(ReactMarkdown);
|
|
75
|
-
var remarkGfm__default = /*#__PURE__*/_interopDefault(remarkGfm);
|
|
76
|
-
var remarkMath__default = /*#__PURE__*/_interopDefault(remarkMath);
|
|
77
|
-
var rehypeKatex__default = /*#__PURE__*/_interopDefault(rehypeKatex);
|
|
78
74
|
var SyntaxHighlighter__default = /*#__PURE__*/_interopDefault(SyntaxHighlighter);
|
|
79
75
|
var dark__default = /*#__PURE__*/_interopDefault(dark);
|
|
80
76
|
var langJson__default = /*#__PURE__*/_interopDefault(langJson);
|
|
@@ -93,6 +89,10 @@ var langDiff__default = /*#__PURE__*/_interopDefault(langDiff);
|
|
|
93
89
|
var langToml__default = /*#__PURE__*/_interopDefault(langToml);
|
|
94
90
|
var langGo__default = /*#__PURE__*/_interopDefault(langGo);
|
|
95
91
|
var langGraphql__default = /*#__PURE__*/_interopDefault(langGraphql);
|
|
92
|
+
var ReactMarkdown__default = /*#__PURE__*/_interopDefault(ReactMarkdown);
|
|
93
|
+
var remarkGfm__default = /*#__PURE__*/_interopDefault(remarkGfm);
|
|
94
|
+
var remarkMath__default = /*#__PURE__*/_interopDefault(remarkMath);
|
|
95
|
+
var rehypeKatex__default = /*#__PURE__*/_interopDefault(rehypeKatex);
|
|
96
96
|
|
|
97
97
|
var __defProp = Object.defineProperty;
|
|
98
98
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -13822,137 +13822,6 @@ var init_katex_min = __esm({
|
|
|
13822
13822
|
"node_modules/katex/dist/katex.min.css"() {
|
|
13823
13823
|
}
|
|
13824
13824
|
});
|
|
13825
|
-
var MarkdownContent;
|
|
13826
|
-
var init_MarkdownContent = __esm({
|
|
13827
|
-
"components/core/molecules/markdown/MarkdownContent.tsx"() {
|
|
13828
|
-
init_katex_min();
|
|
13829
|
-
init_Box();
|
|
13830
|
-
init_useTranslate();
|
|
13831
|
-
init_cn();
|
|
13832
|
-
MarkdownContent = React85__namespace.default.memo(
|
|
13833
|
-
({ content, direction, className }) => {
|
|
13834
|
-
const { t: _t } = useTranslate();
|
|
13835
|
-
const safeContent = typeof content === "string" ? content : String(content ?? "");
|
|
13836
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13837
|
-
Box,
|
|
13838
|
-
{
|
|
13839
|
-
className: cn("prose max-w-none", className),
|
|
13840
|
-
style: {
|
|
13841
|
-
color: "var(--color-foreground)",
|
|
13842
|
-
"--tw-prose-body": "var(--color-foreground)",
|
|
13843
|
-
"--tw-prose-headings": "var(--color-foreground)",
|
|
13844
|
-
"--tw-prose-lead": "var(--color-muted-foreground)",
|
|
13845
|
-
"--tw-prose-links": "var(--color-primary)",
|
|
13846
|
-
"--tw-prose-bold": "var(--color-foreground)",
|
|
13847
|
-
"--tw-prose-counters": "var(--color-muted-foreground)",
|
|
13848
|
-
"--tw-prose-bullets": "var(--color-muted-foreground)",
|
|
13849
|
-
"--tw-prose-hr": "var(--color-border)",
|
|
13850
|
-
"--tw-prose-quotes": "var(--color-foreground)",
|
|
13851
|
-
"--tw-prose-quote-borders": "var(--color-primary)",
|
|
13852
|
-
"--tw-prose-captions": "var(--color-muted-foreground)",
|
|
13853
|
-
"--tw-prose-code": "var(--color-foreground)",
|
|
13854
|
-
"--tw-prose-pre-code": "var(--color-foreground)",
|
|
13855
|
-
"--tw-prose-pre-bg": "var(--color-muted)",
|
|
13856
|
-
"--tw-prose-th-borders": "var(--color-border)",
|
|
13857
|
-
"--tw-prose-td-borders": "var(--color-border)",
|
|
13858
|
-
direction
|
|
13859
|
-
},
|
|
13860
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
13861
|
-
ReactMarkdown__default.default,
|
|
13862
|
-
{
|
|
13863
|
-
remarkPlugins: [remarkMath__default.default, remarkGfm__default.default],
|
|
13864
|
-
rehypePlugins: [
|
|
13865
|
-
[rehypeKatex__default.default, { strict: false, throwOnError: false }]
|
|
13866
|
-
],
|
|
13867
|
-
components: {
|
|
13868
|
-
// Handle inline code only — fenced code blocks are parsed out separately
|
|
13869
|
-
code({ className: codeClassName, children, ...props }) {
|
|
13870
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13871
|
-
"code",
|
|
13872
|
-
{
|
|
13873
|
-
...props,
|
|
13874
|
-
className: codeClassName,
|
|
13875
|
-
style: {
|
|
13876
|
-
backgroundColor: "var(--color-muted)",
|
|
13877
|
-
color: "var(--color-foreground)",
|
|
13878
|
-
border: "1px solid var(--color-border)",
|
|
13879
|
-
padding: "0.125rem 0.375rem",
|
|
13880
|
-
borderRadius: "0.25rem",
|
|
13881
|
-
fontSize: "0.875em",
|
|
13882
|
-
fontFamily: "ui-monospace, monospace"
|
|
13883
|
-
},
|
|
13884
|
-
children
|
|
13885
|
-
}
|
|
13886
|
-
);
|
|
13887
|
-
},
|
|
13888
|
-
// Style links
|
|
13889
|
-
a({ href, children, ...props }) {
|
|
13890
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13891
|
-
"a",
|
|
13892
|
-
{
|
|
13893
|
-
href,
|
|
13894
|
-
...props,
|
|
13895
|
-
className: "text-[var(--color-primary)] hover:underline",
|
|
13896
|
-
target: href?.startsWith("http") ? "_blank" : void 0,
|
|
13897
|
-
rel: href?.startsWith("http") ? "noopener noreferrer" : void 0,
|
|
13898
|
-
children
|
|
13899
|
-
}
|
|
13900
|
-
);
|
|
13901
|
-
},
|
|
13902
|
-
// Style tables
|
|
13903
|
-
table({ children, ...props }) {
|
|
13904
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-x-auto my-4", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
13905
|
-
"table",
|
|
13906
|
-
{
|
|
13907
|
-
...props,
|
|
13908
|
-
className: "min-w-full border-collapse border border-[var(--color-border)]",
|
|
13909
|
-
children
|
|
13910
|
-
}
|
|
13911
|
-
) });
|
|
13912
|
-
},
|
|
13913
|
-
th({ children, ...props }) {
|
|
13914
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13915
|
-
"th",
|
|
13916
|
-
{
|
|
13917
|
-
...props,
|
|
13918
|
-
className: "border border-[var(--color-border)] bg-[var(--color-muted)] px-4 py-2 text-left font-semibold",
|
|
13919
|
-
children
|
|
13920
|
-
}
|
|
13921
|
-
);
|
|
13922
|
-
},
|
|
13923
|
-
td({ children, ...props }) {
|
|
13924
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13925
|
-
"td",
|
|
13926
|
-
{
|
|
13927
|
-
...props,
|
|
13928
|
-
className: "border border-[var(--color-border)] px-4 py-2",
|
|
13929
|
-
children
|
|
13930
|
-
}
|
|
13931
|
-
);
|
|
13932
|
-
},
|
|
13933
|
-
// Style blockquotes
|
|
13934
|
-
blockquote({ children, ...props }) {
|
|
13935
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13936
|
-
"blockquote",
|
|
13937
|
-
{
|
|
13938
|
-
...props,
|
|
13939
|
-
className: "border-l-4 border-[var(--color-primary)] pl-4 italic text-[var(--color-foreground)] my-4",
|
|
13940
|
-
children
|
|
13941
|
-
}
|
|
13942
|
-
);
|
|
13943
|
-
}
|
|
13944
|
-
},
|
|
13945
|
-
children: safeContent
|
|
13946
|
-
}
|
|
13947
|
-
)
|
|
13948
|
-
}
|
|
13949
|
-
);
|
|
13950
|
-
},
|
|
13951
|
-
(prev, next) => prev.content === next.content && prev.className === next.className && prev.direction === next.direction
|
|
13952
|
-
);
|
|
13953
|
-
MarkdownContent.displayName = "MarkdownContent";
|
|
13954
|
-
}
|
|
13955
|
-
});
|
|
13956
13825
|
function computeFoldRegions(code) {
|
|
13957
13826
|
const lines = code.split("\n");
|
|
13958
13827
|
const regions = [];
|
|
@@ -14498,6 +14367,155 @@ var init_CodeBlock = __esm({
|
|
|
14498
14367
|
CodeBlock.displayName = "CodeBlock";
|
|
14499
14368
|
}
|
|
14500
14369
|
});
|
|
14370
|
+
var MarkdownContent;
|
|
14371
|
+
var init_MarkdownContent = __esm({
|
|
14372
|
+
"components/core/molecules/markdown/MarkdownContent.tsx"() {
|
|
14373
|
+
init_katex_min();
|
|
14374
|
+
init_Box();
|
|
14375
|
+
init_CodeBlock();
|
|
14376
|
+
init_useTranslate();
|
|
14377
|
+
init_cn();
|
|
14378
|
+
MarkdownContent = React85__namespace.default.memo(
|
|
14379
|
+
({ content, direction, className }) => {
|
|
14380
|
+
const { t: _t } = useTranslate();
|
|
14381
|
+
const safeContent = typeof content === "string" ? content : String(content ?? "");
|
|
14382
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
14383
|
+
Box,
|
|
14384
|
+
{
|
|
14385
|
+
className: cn("prose max-w-none", className),
|
|
14386
|
+
style: {
|
|
14387
|
+
color: "var(--color-foreground)",
|
|
14388
|
+
"--tw-prose-body": "var(--color-foreground)",
|
|
14389
|
+
"--tw-prose-headings": "var(--color-foreground)",
|
|
14390
|
+
"--tw-prose-lead": "var(--color-muted-foreground)",
|
|
14391
|
+
"--tw-prose-links": "var(--color-primary)",
|
|
14392
|
+
"--tw-prose-bold": "var(--color-foreground)",
|
|
14393
|
+
"--tw-prose-counters": "var(--color-muted-foreground)",
|
|
14394
|
+
"--tw-prose-bullets": "var(--color-muted-foreground)",
|
|
14395
|
+
"--tw-prose-hr": "var(--color-border)",
|
|
14396
|
+
"--tw-prose-quotes": "var(--color-foreground)",
|
|
14397
|
+
"--tw-prose-quote-borders": "var(--color-primary)",
|
|
14398
|
+
"--tw-prose-captions": "var(--color-muted-foreground)",
|
|
14399
|
+
"--tw-prose-code": "var(--color-foreground)",
|
|
14400
|
+
"--tw-prose-pre-code": "var(--color-foreground)",
|
|
14401
|
+
"--tw-prose-pre-bg": "var(--color-muted)",
|
|
14402
|
+
"--tw-prose-th-borders": "var(--color-border)",
|
|
14403
|
+
"--tw-prose-td-borders": "var(--color-border)",
|
|
14404
|
+
direction
|
|
14405
|
+
},
|
|
14406
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
14407
|
+
ReactMarkdown__default.default,
|
|
14408
|
+
{
|
|
14409
|
+
remarkPlugins: [remarkMath__default.default, remarkGfm__default.default],
|
|
14410
|
+
rehypePlugins: [
|
|
14411
|
+
[rehypeKatex__default.default, { strict: false, throwOnError: false }]
|
|
14412
|
+
],
|
|
14413
|
+
components: {
|
|
14414
|
+
code({
|
|
14415
|
+
className: codeClassName,
|
|
14416
|
+
children,
|
|
14417
|
+
inline,
|
|
14418
|
+
...props
|
|
14419
|
+
}) {
|
|
14420
|
+
if (!inline) {
|
|
14421
|
+
const match = /language-(\w+)/.exec(codeClassName ?? "");
|
|
14422
|
+
const language = match ? match[1] : "text";
|
|
14423
|
+
const code = String(children).replace(/\n$/, "");
|
|
14424
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
14425
|
+
CodeBlock,
|
|
14426
|
+
{
|
|
14427
|
+
code,
|
|
14428
|
+
language,
|
|
14429
|
+
maxHeight: "60vh"
|
|
14430
|
+
}
|
|
14431
|
+
);
|
|
14432
|
+
}
|
|
14433
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
14434
|
+
"code",
|
|
14435
|
+
{
|
|
14436
|
+
...props,
|
|
14437
|
+
className: codeClassName,
|
|
14438
|
+
style: {
|
|
14439
|
+
backgroundColor: "var(--color-muted)",
|
|
14440
|
+
color: "var(--color-foreground)",
|
|
14441
|
+
border: "1px solid var(--color-border)",
|
|
14442
|
+
padding: "0.125rem 0.375rem",
|
|
14443
|
+
borderRadius: "0.25rem",
|
|
14444
|
+
fontSize: "0.875em",
|
|
14445
|
+
fontFamily: "ui-monospace, monospace"
|
|
14446
|
+
},
|
|
14447
|
+
children
|
|
14448
|
+
}
|
|
14449
|
+
);
|
|
14450
|
+
},
|
|
14451
|
+
// Style links
|
|
14452
|
+
a({ href, children, ...props }) {
|
|
14453
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
14454
|
+
"a",
|
|
14455
|
+
{
|
|
14456
|
+
href,
|
|
14457
|
+
...props,
|
|
14458
|
+
className: "text-[var(--color-primary)] hover:underline",
|
|
14459
|
+
target: href?.startsWith("http") ? "_blank" : void 0,
|
|
14460
|
+
rel: href?.startsWith("http") ? "noopener noreferrer" : void 0,
|
|
14461
|
+
children
|
|
14462
|
+
}
|
|
14463
|
+
);
|
|
14464
|
+
},
|
|
14465
|
+
// Style tables
|
|
14466
|
+
table({ children, ...props }) {
|
|
14467
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-x-auto my-4", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
14468
|
+
"table",
|
|
14469
|
+
{
|
|
14470
|
+
...props,
|
|
14471
|
+
className: "min-w-full border-collapse border border-[var(--color-border)]",
|
|
14472
|
+
children
|
|
14473
|
+
}
|
|
14474
|
+
) });
|
|
14475
|
+
},
|
|
14476
|
+
th({ children, ...props }) {
|
|
14477
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
14478
|
+
"th",
|
|
14479
|
+
{
|
|
14480
|
+
...props,
|
|
14481
|
+
className: "border border-[var(--color-border)] bg-[var(--color-muted)] px-4 py-2 text-left font-semibold",
|
|
14482
|
+
children
|
|
14483
|
+
}
|
|
14484
|
+
);
|
|
14485
|
+
},
|
|
14486
|
+
td({ children, ...props }) {
|
|
14487
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
14488
|
+
"td",
|
|
14489
|
+
{
|
|
14490
|
+
...props,
|
|
14491
|
+
className: "border border-[var(--color-border)] px-4 py-2",
|
|
14492
|
+
children
|
|
14493
|
+
}
|
|
14494
|
+
);
|
|
14495
|
+
},
|
|
14496
|
+
// Style blockquotes
|
|
14497
|
+
blockquote({ children, ...props }) {
|
|
14498
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
14499
|
+
"blockquote",
|
|
14500
|
+
{
|
|
14501
|
+
...props,
|
|
14502
|
+
className: "border-l-4 border-[var(--color-primary)] pl-4 italic text-[var(--color-foreground)] my-4",
|
|
14503
|
+
children
|
|
14504
|
+
}
|
|
14505
|
+
);
|
|
14506
|
+
}
|
|
14507
|
+
},
|
|
14508
|
+
children: safeContent
|
|
14509
|
+
}
|
|
14510
|
+
)
|
|
14511
|
+
}
|
|
14512
|
+
);
|
|
14513
|
+
},
|
|
14514
|
+
(prev, next) => prev.content === next.content && prev.className === next.className && prev.direction === next.direction
|
|
14515
|
+
);
|
|
14516
|
+
MarkdownContent.displayName = "MarkdownContent";
|
|
14517
|
+
}
|
|
14518
|
+
});
|
|
14501
14519
|
function useLongPress(onLongPress, options = {}) {
|
|
14502
14520
|
const { duration = 500, moveThreshold = 10 } = options;
|
|
14503
14521
|
const timerRef = React85.useRef(null);
|
package/dist/providers/index.js
CHANGED
|
@@ -15,10 +15,6 @@ import { evaluate, createMinimalContext } from '@almadar/evaluator';
|
|
|
15
15
|
import { useUISlots } from '@almadar/ui/context';
|
|
16
16
|
import { Link, Outlet, useLocation } from 'react-router-dom';
|
|
17
17
|
import ELK from 'elkjs/lib/elk.bundled.js';
|
|
18
|
-
import ReactMarkdown from 'react-markdown';
|
|
19
|
-
import remarkGfm from 'remark-gfm';
|
|
20
|
-
import remarkMath from 'remark-math';
|
|
21
|
-
import rehypeKatex from 'rehype-katex';
|
|
22
18
|
import SyntaxHighlighter from 'react-syntax-highlighter/dist/esm/prism-light.js';
|
|
23
19
|
import dark from 'react-syntax-highlighter/dist/esm/styles/prism/vsc-dark-plus.js';
|
|
24
20
|
import { orbLanguage, loloLanguage, ORB_COLORS } from '@almadar/syntax';
|
|
@@ -38,6 +34,10 @@ import langDiff from 'react-syntax-highlighter/dist/esm/languages/prism/diff.js'
|
|
|
38
34
|
import langToml from 'react-syntax-highlighter/dist/esm/languages/prism/toml.js';
|
|
39
35
|
import langGo from 'react-syntax-highlighter/dist/esm/languages/prism/go.js';
|
|
40
36
|
import langGraphql from 'react-syntax-highlighter/dist/esm/languages/prism/graphql.js';
|
|
37
|
+
import ReactMarkdown from 'react-markdown';
|
|
38
|
+
import remarkGfm from 'remark-gfm';
|
|
39
|
+
import remarkMath from 'remark-math';
|
|
40
|
+
import rehypeKatex from 'rehype-katex';
|
|
41
41
|
import { isInlineTrait } from '@almadar/core';
|
|
42
42
|
import { DndContext, pointerWithin, rectIntersection, closestCorners, useSensors, useSensor, PointerSensor, KeyboardSensor, useDroppable } from '@dnd-kit/core';
|
|
43
43
|
import { useSortable, arrayMove, sortableKeyboardCoordinates, SortableContext, rectSortingStrategy, verticalListSortingStrategy } from '@dnd-kit/sortable';
|
|
@@ -13773,137 +13773,6 @@ var init_katex_min = __esm({
|
|
|
13773
13773
|
"node_modules/katex/dist/katex.min.css"() {
|
|
13774
13774
|
}
|
|
13775
13775
|
});
|
|
13776
|
-
var MarkdownContent;
|
|
13777
|
-
var init_MarkdownContent = __esm({
|
|
13778
|
-
"components/core/molecules/markdown/MarkdownContent.tsx"() {
|
|
13779
|
-
init_katex_min();
|
|
13780
|
-
init_Box();
|
|
13781
|
-
init_useTranslate();
|
|
13782
|
-
init_cn();
|
|
13783
|
-
MarkdownContent = React85__default.memo(
|
|
13784
|
-
({ content, direction, className }) => {
|
|
13785
|
-
const { t: _t } = useTranslate();
|
|
13786
|
-
const safeContent = typeof content === "string" ? content : String(content ?? "");
|
|
13787
|
-
return /* @__PURE__ */ jsx(
|
|
13788
|
-
Box,
|
|
13789
|
-
{
|
|
13790
|
-
className: cn("prose max-w-none", className),
|
|
13791
|
-
style: {
|
|
13792
|
-
color: "var(--color-foreground)",
|
|
13793
|
-
"--tw-prose-body": "var(--color-foreground)",
|
|
13794
|
-
"--tw-prose-headings": "var(--color-foreground)",
|
|
13795
|
-
"--tw-prose-lead": "var(--color-muted-foreground)",
|
|
13796
|
-
"--tw-prose-links": "var(--color-primary)",
|
|
13797
|
-
"--tw-prose-bold": "var(--color-foreground)",
|
|
13798
|
-
"--tw-prose-counters": "var(--color-muted-foreground)",
|
|
13799
|
-
"--tw-prose-bullets": "var(--color-muted-foreground)",
|
|
13800
|
-
"--tw-prose-hr": "var(--color-border)",
|
|
13801
|
-
"--tw-prose-quotes": "var(--color-foreground)",
|
|
13802
|
-
"--tw-prose-quote-borders": "var(--color-primary)",
|
|
13803
|
-
"--tw-prose-captions": "var(--color-muted-foreground)",
|
|
13804
|
-
"--tw-prose-code": "var(--color-foreground)",
|
|
13805
|
-
"--tw-prose-pre-code": "var(--color-foreground)",
|
|
13806
|
-
"--tw-prose-pre-bg": "var(--color-muted)",
|
|
13807
|
-
"--tw-prose-th-borders": "var(--color-border)",
|
|
13808
|
-
"--tw-prose-td-borders": "var(--color-border)",
|
|
13809
|
-
direction
|
|
13810
|
-
},
|
|
13811
|
-
children: /* @__PURE__ */ jsx(
|
|
13812
|
-
ReactMarkdown,
|
|
13813
|
-
{
|
|
13814
|
-
remarkPlugins: [remarkMath, remarkGfm],
|
|
13815
|
-
rehypePlugins: [
|
|
13816
|
-
[rehypeKatex, { strict: false, throwOnError: false }]
|
|
13817
|
-
],
|
|
13818
|
-
components: {
|
|
13819
|
-
// Handle inline code only — fenced code blocks are parsed out separately
|
|
13820
|
-
code({ className: codeClassName, children, ...props }) {
|
|
13821
|
-
return /* @__PURE__ */ jsx(
|
|
13822
|
-
"code",
|
|
13823
|
-
{
|
|
13824
|
-
...props,
|
|
13825
|
-
className: codeClassName,
|
|
13826
|
-
style: {
|
|
13827
|
-
backgroundColor: "var(--color-muted)",
|
|
13828
|
-
color: "var(--color-foreground)",
|
|
13829
|
-
border: "1px solid var(--color-border)",
|
|
13830
|
-
padding: "0.125rem 0.375rem",
|
|
13831
|
-
borderRadius: "0.25rem",
|
|
13832
|
-
fontSize: "0.875em",
|
|
13833
|
-
fontFamily: "ui-monospace, monospace"
|
|
13834
|
-
},
|
|
13835
|
-
children
|
|
13836
|
-
}
|
|
13837
|
-
);
|
|
13838
|
-
},
|
|
13839
|
-
// Style links
|
|
13840
|
-
a({ href, children, ...props }) {
|
|
13841
|
-
return /* @__PURE__ */ jsx(
|
|
13842
|
-
"a",
|
|
13843
|
-
{
|
|
13844
|
-
href,
|
|
13845
|
-
...props,
|
|
13846
|
-
className: "text-[var(--color-primary)] hover:underline",
|
|
13847
|
-
target: href?.startsWith("http") ? "_blank" : void 0,
|
|
13848
|
-
rel: href?.startsWith("http") ? "noopener noreferrer" : void 0,
|
|
13849
|
-
children
|
|
13850
|
-
}
|
|
13851
|
-
);
|
|
13852
|
-
},
|
|
13853
|
-
// Style tables
|
|
13854
|
-
table({ children, ...props }) {
|
|
13855
|
-
return /* @__PURE__ */ jsx("div", { className: "overflow-x-auto my-4", children: /* @__PURE__ */ jsx(
|
|
13856
|
-
"table",
|
|
13857
|
-
{
|
|
13858
|
-
...props,
|
|
13859
|
-
className: "min-w-full border-collapse border border-[var(--color-border)]",
|
|
13860
|
-
children
|
|
13861
|
-
}
|
|
13862
|
-
) });
|
|
13863
|
-
},
|
|
13864
|
-
th({ children, ...props }) {
|
|
13865
|
-
return /* @__PURE__ */ jsx(
|
|
13866
|
-
"th",
|
|
13867
|
-
{
|
|
13868
|
-
...props,
|
|
13869
|
-
className: "border border-[var(--color-border)] bg-[var(--color-muted)] px-4 py-2 text-left font-semibold",
|
|
13870
|
-
children
|
|
13871
|
-
}
|
|
13872
|
-
);
|
|
13873
|
-
},
|
|
13874
|
-
td({ children, ...props }) {
|
|
13875
|
-
return /* @__PURE__ */ jsx(
|
|
13876
|
-
"td",
|
|
13877
|
-
{
|
|
13878
|
-
...props,
|
|
13879
|
-
className: "border border-[var(--color-border)] px-4 py-2",
|
|
13880
|
-
children
|
|
13881
|
-
}
|
|
13882
|
-
);
|
|
13883
|
-
},
|
|
13884
|
-
// Style blockquotes
|
|
13885
|
-
blockquote({ children, ...props }) {
|
|
13886
|
-
return /* @__PURE__ */ jsx(
|
|
13887
|
-
"blockquote",
|
|
13888
|
-
{
|
|
13889
|
-
...props,
|
|
13890
|
-
className: "border-l-4 border-[var(--color-primary)] pl-4 italic text-[var(--color-foreground)] my-4",
|
|
13891
|
-
children
|
|
13892
|
-
}
|
|
13893
|
-
);
|
|
13894
|
-
}
|
|
13895
|
-
},
|
|
13896
|
-
children: safeContent
|
|
13897
|
-
}
|
|
13898
|
-
)
|
|
13899
|
-
}
|
|
13900
|
-
);
|
|
13901
|
-
},
|
|
13902
|
-
(prev, next) => prev.content === next.content && prev.className === next.className && prev.direction === next.direction
|
|
13903
|
-
);
|
|
13904
|
-
MarkdownContent.displayName = "MarkdownContent";
|
|
13905
|
-
}
|
|
13906
|
-
});
|
|
13907
13776
|
function computeFoldRegions(code) {
|
|
13908
13777
|
const lines = code.split("\n");
|
|
13909
13778
|
const regions = [];
|
|
@@ -14449,6 +14318,155 @@ var init_CodeBlock = __esm({
|
|
|
14449
14318
|
CodeBlock.displayName = "CodeBlock";
|
|
14450
14319
|
}
|
|
14451
14320
|
});
|
|
14321
|
+
var MarkdownContent;
|
|
14322
|
+
var init_MarkdownContent = __esm({
|
|
14323
|
+
"components/core/molecules/markdown/MarkdownContent.tsx"() {
|
|
14324
|
+
init_katex_min();
|
|
14325
|
+
init_Box();
|
|
14326
|
+
init_CodeBlock();
|
|
14327
|
+
init_useTranslate();
|
|
14328
|
+
init_cn();
|
|
14329
|
+
MarkdownContent = React85__default.memo(
|
|
14330
|
+
({ content, direction, className }) => {
|
|
14331
|
+
const { t: _t } = useTranslate();
|
|
14332
|
+
const safeContent = typeof content === "string" ? content : String(content ?? "");
|
|
14333
|
+
return /* @__PURE__ */ jsx(
|
|
14334
|
+
Box,
|
|
14335
|
+
{
|
|
14336
|
+
className: cn("prose max-w-none", className),
|
|
14337
|
+
style: {
|
|
14338
|
+
color: "var(--color-foreground)",
|
|
14339
|
+
"--tw-prose-body": "var(--color-foreground)",
|
|
14340
|
+
"--tw-prose-headings": "var(--color-foreground)",
|
|
14341
|
+
"--tw-prose-lead": "var(--color-muted-foreground)",
|
|
14342
|
+
"--tw-prose-links": "var(--color-primary)",
|
|
14343
|
+
"--tw-prose-bold": "var(--color-foreground)",
|
|
14344
|
+
"--tw-prose-counters": "var(--color-muted-foreground)",
|
|
14345
|
+
"--tw-prose-bullets": "var(--color-muted-foreground)",
|
|
14346
|
+
"--tw-prose-hr": "var(--color-border)",
|
|
14347
|
+
"--tw-prose-quotes": "var(--color-foreground)",
|
|
14348
|
+
"--tw-prose-quote-borders": "var(--color-primary)",
|
|
14349
|
+
"--tw-prose-captions": "var(--color-muted-foreground)",
|
|
14350
|
+
"--tw-prose-code": "var(--color-foreground)",
|
|
14351
|
+
"--tw-prose-pre-code": "var(--color-foreground)",
|
|
14352
|
+
"--tw-prose-pre-bg": "var(--color-muted)",
|
|
14353
|
+
"--tw-prose-th-borders": "var(--color-border)",
|
|
14354
|
+
"--tw-prose-td-borders": "var(--color-border)",
|
|
14355
|
+
direction
|
|
14356
|
+
},
|
|
14357
|
+
children: /* @__PURE__ */ jsx(
|
|
14358
|
+
ReactMarkdown,
|
|
14359
|
+
{
|
|
14360
|
+
remarkPlugins: [remarkMath, remarkGfm],
|
|
14361
|
+
rehypePlugins: [
|
|
14362
|
+
[rehypeKatex, { strict: false, throwOnError: false }]
|
|
14363
|
+
],
|
|
14364
|
+
components: {
|
|
14365
|
+
code({
|
|
14366
|
+
className: codeClassName,
|
|
14367
|
+
children,
|
|
14368
|
+
inline,
|
|
14369
|
+
...props
|
|
14370
|
+
}) {
|
|
14371
|
+
if (!inline) {
|
|
14372
|
+
const match = /language-(\w+)/.exec(codeClassName ?? "");
|
|
14373
|
+
const language = match ? match[1] : "text";
|
|
14374
|
+
const code = String(children).replace(/\n$/, "");
|
|
14375
|
+
return /* @__PURE__ */ jsx(
|
|
14376
|
+
CodeBlock,
|
|
14377
|
+
{
|
|
14378
|
+
code,
|
|
14379
|
+
language,
|
|
14380
|
+
maxHeight: "60vh"
|
|
14381
|
+
}
|
|
14382
|
+
);
|
|
14383
|
+
}
|
|
14384
|
+
return /* @__PURE__ */ jsx(
|
|
14385
|
+
"code",
|
|
14386
|
+
{
|
|
14387
|
+
...props,
|
|
14388
|
+
className: codeClassName,
|
|
14389
|
+
style: {
|
|
14390
|
+
backgroundColor: "var(--color-muted)",
|
|
14391
|
+
color: "var(--color-foreground)",
|
|
14392
|
+
border: "1px solid var(--color-border)",
|
|
14393
|
+
padding: "0.125rem 0.375rem",
|
|
14394
|
+
borderRadius: "0.25rem",
|
|
14395
|
+
fontSize: "0.875em",
|
|
14396
|
+
fontFamily: "ui-monospace, monospace"
|
|
14397
|
+
},
|
|
14398
|
+
children
|
|
14399
|
+
}
|
|
14400
|
+
);
|
|
14401
|
+
},
|
|
14402
|
+
// Style links
|
|
14403
|
+
a({ href, children, ...props }) {
|
|
14404
|
+
return /* @__PURE__ */ jsx(
|
|
14405
|
+
"a",
|
|
14406
|
+
{
|
|
14407
|
+
href,
|
|
14408
|
+
...props,
|
|
14409
|
+
className: "text-[var(--color-primary)] hover:underline",
|
|
14410
|
+
target: href?.startsWith("http") ? "_blank" : void 0,
|
|
14411
|
+
rel: href?.startsWith("http") ? "noopener noreferrer" : void 0,
|
|
14412
|
+
children
|
|
14413
|
+
}
|
|
14414
|
+
);
|
|
14415
|
+
},
|
|
14416
|
+
// Style tables
|
|
14417
|
+
table({ children, ...props }) {
|
|
14418
|
+
return /* @__PURE__ */ jsx("div", { className: "overflow-x-auto my-4", children: /* @__PURE__ */ jsx(
|
|
14419
|
+
"table",
|
|
14420
|
+
{
|
|
14421
|
+
...props,
|
|
14422
|
+
className: "min-w-full border-collapse border border-[var(--color-border)]",
|
|
14423
|
+
children
|
|
14424
|
+
}
|
|
14425
|
+
) });
|
|
14426
|
+
},
|
|
14427
|
+
th({ children, ...props }) {
|
|
14428
|
+
return /* @__PURE__ */ jsx(
|
|
14429
|
+
"th",
|
|
14430
|
+
{
|
|
14431
|
+
...props,
|
|
14432
|
+
className: "border border-[var(--color-border)] bg-[var(--color-muted)] px-4 py-2 text-left font-semibold",
|
|
14433
|
+
children
|
|
14434
|
+
}
|
|
14435
|
+
);
|
|
14436
|
+
},
|
|
14437
|
+
td({ children, ...props }) {
|
|
14438
|
+
return /* @__PURE__ */ jsx(
|
|
14439
|
+
"td",
|
|
14440
|
+
{
|
|
14441
|
+
...props,
|
|
14442
|
+
className: "border border-[var(--color-border)] px-4 py-2",
|
|
14443
|
+
children
|
|
14444
|
+
}
|
|
14445
|
+
);
|
|
14446
|
+
},
|
|
14447
|
+
// Style blockquotes
|
|
14448
|
+
blockquote({ children, ...props }) {
|
|
14449
|
+
return /* @__PURE__ */ jsx(
|
|
14450
|
+
"blockquote",
|
|
14451
|
+
{
|
|
14452
|
+
...props,
|
|
14453
|
+
className: "border-l-4 border-[var(--color-primary)] pl-4 italic text-[var(--color-foreground)] my-4",
|
|
14454
|
+
children
|
|
14455
|
+
}
|
|
14456
|
+
);
|
|
14457
|
+
}
|
|
14458
|
+
},
|
|
14459
|
+
children: safeContent
|
|
14460
|
+
}
|
|
14461
|
+
)
|
|
14462
|
+
}
|
|
14463
|
+
);
|
|
14464
|
+
},
|
|
14465
|
+
(prev, next) => prev.content === next.content && prev.className === next.className && prev.direction === next.direction
|
|
14466
|
+
);
|
|
14467
|
+
MarkdownContent.displayName = "MarkdownContent";
|
|
14468
|
+
}
|
|
14469
|
+
});
|
|
14452
14470
|
function useLongPress(onLongPress, options = {}) {
|
|
14453
14471
|
const { duration = 500, moveThreshold = 10 } = options;
|
|
14454
14472
|
const timerRef = useRef(null);
|