@pstdio/ui 0.8.0 → 0.9.0
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/{MermaidComponent-D7Baqkwx.js → MermaidComponent-Cz_Iob5U.js} +56 -53
- package/dist/MermaidComponent-Cz_Iob5U.js.map +1 -0
- package/dist/chat-ui.js +117 -117
- package/dist/chat-ui.js.map +1 -1
- package/dist/components/data-renderer/data-renderer-board.d.ts +1 -0
- package/dist/components/data-renderer/data-renderer-card.d.ts +5 -20
- package/dist/components/data-renderer/data-renderer-grouping.d.ts +11 -10
- package/dist/components/data-renderer/data-renderer-helpers.d.ts +63 -15
- package/dist/components/data-renderer/data-renderer-list.d.ts +5 -8
- package/dist/components/data-renderer/data-renderer-toolbar.d.ts +12 -0
- package/dist/components/data-renderer/data-renderer.d.ts +12 -23
- package/dist/components/data-renderer/display-menu.d.ts +9 -8
- package/dist/components/data-renderer/filter-menu.d.ts +5 -4
- package/dist/components/data-renderer/types.d.ts +83 -49
- package/dist/components/data-renderer/use-data-renderer-store.d.ts +15 -11
- package/dist/components/data-renderer/use-resolved-attributes.d.ts +14 -0
- package/dist/components/diff-viewer/diff-card-body.d.ts +10 -0
- package/dist/components/diff-viewer/diff-card-content.d.ts +1 -0
- package/dist/components/diff-viewer/diff-card.d.ts +1 -0
- package/dist/components/diff-viewer/diff-size.d.ts +2 -0
- package/dist/components/icon-color-picker.d.ts +13 -0
- package/dist/components/list-row/list-row-content.d.ts +9 -0
- package/dist/components/list-row/list-row.types.d.ts +1 -0
- package/dist/components/rich-text/shared/lexical-code.d.ts +2 -0
- package/dist/components/rich-text/shared/plugins/CodePlugin/CodeBlockPlugin.d.ts +1 -1
- package/dist/components/rich-text/shared/prism-global.d.ts +2 -0
- package/dist/components/status-option-editor/index.d.ts +2 -0
- package/dist/components/status-option-editor/status-option-editor.d.ts +2 -0
- package/dist/components/status-option-editor/status-option-editor.types.d.ts +39 -0
- package/dist/components/status-option-editor/status-option-row.d.ts +16 -0
- package/dist/components/tab-strip/tab-visibility-filter.d.ts +19 -0
- package/dist/components/tab-strip/tab-visibility.store.d.ts +41 -0
- package/dist/components/tree-list/tree-list-model.d.ts +58 -0
- package/dist/components/tree-list/tree-list-node-row.d.ts +20 -0
- package/dist/components/tree-list/tree-list-order-filter.d.ts +3 -0
- package/dist/components/tree-list/tree-list-order.store.d.ts +42 -0
- package/dist/components/tree-list/tree-list-reorder.d.ts +13 -0
- package/dist/components/tree-list/tree-list-section-header.d.ts +14 -0
- package/dist/components/tree-list/tree-list-sortable.d.ts +22 -0
- package/dist/components/tree-list/tree-list-visibility-filter.d.ts +17 -0
- package/dist/components/tree-list/tree-list-visibility.store.d.ts +45 -0
- package/dist/components/tree-list/tree-list.d.ts +7 -27
- package/dist/components/tree-list/tree-list.types.d.ts +2 -0
- package/dist/components/tree-list/use-tree-list-keyboard-navigation.d.ts +15 -0
- package/dist/get-file-type-icon-ufFb0IkR.js +102 -0
- package/dist/get-file-type-icon-ufFb0IkR.js.map +1 -0
- package/dist/index.d.ts +22 -3
- package/dist/index.js +5171 -3890
- package/dist/index.js.map +1 -1
- package/dist/{rich-message-33DPxuWJ.js → rich-message-CEOSsdR2.js} +428 -421
- package/dist/rich-message-CEOSsdR2.js.map +1 -0
- package/dist/rich-text.js +26 -26
- package/dist/rich-text.js.map +1 -1
- package/dist/theme/custom/index.d.ts +0 -3
- package/dist/theme/index.d.ts +1 -1
- package/dist/theme/recipes/tabs.d.ts +30 -0
- package/dist/theme/tokens/colors.d.ts +6 -0
- package/dist/{theme-D-aCJqTf.js → theme-qP4YOZ2R.js} +197 -148
- package/dist/theme-qP4YOZ2R.js.map +1 -0
- package/dist/theme.js +2 -4
- package/dist/utils/browser-storage.d.ts +7 -0
- package/dist/utils/prism.d.ts +1 -0
- package/package.json +8 -3
- package/dist/MermaidComponent-D7Baqkwx.js.map +0 -1
- package/dist/components/data-renderer/tag-badge.d.ts +0 -10
- package/dist/components/data-renderer/tag-option-icon.d.ts +0 -2
- package/dist/get-file-type-icon-Bwqf1WXA.js +0 -101
- package/dist/get-file-type-icon-Bwqf1WXA.js.map +0 -1
- package/dist/rich-message-33DPxuWJ.js.map +0 -1
- package/dist/theme/custom/monokai.json.d.ts +0 -80
- package/dist/theme-D-aCJqTf.js.map +0 -1
|
@@ -1,95 +1,98 @@
|
|
|
1
1
|
import { jsxs as o, jsx as r } from "react/jsx-runtime";
|
|
2
|
-
import { Box as n, Flex as
|
|
3
|
-
import { useLexicalComposerContext as
|
|
2
|
+
import { Box as n, Flex as O, NumberInput as x, Button as b, Textarea as H, Text as C } from "@chakra-ui/react";
|
|
3
|
+
import { useLexicalComposerContext as Y } from "@lexical/react/LexicalComposerContext";
|
|
4
4
|
import { useLexicalEditable as K } from "@lexical/react/useLexicalEditable";
|
|
5
5
|
import { $getNodeByKey as U } from "lexical";
|
|
6
6
|
import $ from "mermaid";
|
|
7
|
-
import { useState as t, useRef as W, useId as q, useEffect as
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
import { useState as t, useRef as W, useId as q, useEffect as k } from "react";
|
|
8
|
+
import { S as G } from "./get-file-type-icon-ufFb0IkR.js";
|
|
9
|
+
import { $ as J } from "./rich-message-CEOSsdR2.js";
|
|
10
|
+
let v = !1;
|
|
11
|
+
function Q() {
|
|
12
|
+
v || ($.initialize({
|
|
12
13
|
startOnLoad: !1,
|
|
13
14
|
securityLevel: "strict",
|
|
14
15
|
theme: "default"
|
|
15
|
-
}),
|
|
16
|
+
}), v = !0);
|
|
16
17
|
}
|
|
17
|
-
function
|
|
18
|
+
function _(i) {
|
|
18
19
|
return i instanceof Error ? i.message : "Failed to render mermaid diagram.";
|
|
19
20
|
}
|
|
20
|
-
const N = 0, T = 2,
|
|
21
|
-
function
|
|
21
|
+
const N = 0, T = 2, ee = 0.1;
|
|
22
|
+
function re(i) {
|
|
22
23
|
return Number(Math.min(T, Math.max(N, i)).toFixed(2));
|
|
23
24
|
}
|
|
24
|
-
function
|
|
25
|
+
function me(i) {
|
|
25
26
|
const {
|
|
26
27
|
code: a,
|
|
27
|
-
nodeKey:
|
|
28
|
-
} = i, [
|
|
28
|
+
nodeKey: Z
|
|
29
|
+
} = i, [X] = Y(), B = K(), [s, m] = t(!1), [u, f] = t(a), [l, y] = t(a), [D, I] = t(""), [p, M] = t(""), [S, w] = t(!1), [F, P] = t(1), [c, E] = t({
|
|
29
30
|
x: 0,
|
|
30
31
|
y: 0
|
|
31
|
-
}), [z,
|
|
32
|
+
}), [z, g] = t(!1), d = W({
|
|
32
33
|
pointerId: -1,
|
|
33
34
|
x: 0,
|
|
34
35
|
y: 0
|
|
35
|
-
}),
|
|
36
|
-
|
|
36
|
+
}), R = q().replaceAll(":", "-");
|
|
37
|
+
k(() => {
|
|
37
38
|
f(a), y(a);
|
|
38
|
-
}, [a]),
|
|
39
|
+
}, [a]), k(() => {
|
|
39
40
|
let e = !1;
|
|
40
|
-
async function
|
|
41
|
-
|
|
41
|
+
async function A() {
|
|
42
|
+
Q(), w(!0), M("");
|
|
42
43
|
try {
|
|
43
44
|
const {
|
|
44
|
-
svg:
|
|
45
|
-
} = await $.render(`mermaid-${
|
|
46
|
-
e || I(
|
|
47
|
-
} catch (
|
|
48
|
-
e || (I(""), M(
|
|
45
|
+
svg: h
|
|
46
|
+
} = await $.render(`mermaid-${R}`, l);
|
|
47
|
+
e || I(h);
|
|
48
|
+
} catch (h) {
|
|
49
|
+
e || (I(""), M(_(h)));
|
|
49
50
|
} finally {
|
|
50
|
-
e ||
|
|
51
|
+
e || w(!1);
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
|
-
return s ||
|
|
54
|
+
return s || A(), () => {
|
|
54
55
|
e = !0;
|
|
55
56
|
};
|
|
56
|
-
}, [s, l,
|
|
57
|
+
}, [s, l, R]);
|
|
57
58
|
const L = () => {
|
|
58
|
-
|
|
59
|
-
const e = U(
|
|
60
|
-
|
|
61
|
-
}), y(u),
|
|
62
|
-
}, j = () => {
|
|
63
|
-
f(l), m(!1);
|
|
59
|
+
X.update(() => {
|
|
60
|
+
const e = U(Z);
|
|
61
|
+
J(e) && e.setCode(u);
|
|
62
|
+
}), y(u), j(), m(!1);
|
|
64
63
|
}, V = () => {
|
|
65
|
-
|
|
64
|
+
f(l), m(!1);
|
|
65
|
+
}, j = () => {
|
|
66
|
+
P(1), E({
|
|
66
67
|
x: 0,
|
|
67
68
|
y: 0
|
|
68
69
|
});
|
|
69
70
|
};
|
|
70
71
|
return /* @__PURE__ */ o(n, { borderWidth: "1px", borderColor: "border.muted", borderRadius: "md", overflow: "hidden", width: "100%", children: [
|
|
71
|
-
/* @__PURE__ */ o(
|
|
72
|
-
!s && !
|
|
72
|
+
/* @__PURE__ */ o(O, { justifyContent: "flex-end", alignItems: "center", gap: "xs", paddingX: "sm", paddingY: "xs", bg: "bg.muted", children: [
|
|
73
|
+
!s && !p && !S ? /* @__PURE__ */ o(x.Root, { size: "xs", width: "64px", defaultValue: "100", min: N, max: T, step: ee, formatOptions: {
|
|
73
74
|
style: "percent"
|
|
74
75
|
}, onValueChange: ({
|
|
75
76
|
valueAsNumber: e
|
|
76
77
|
}) => {
|
|
77
|
-
Number.isNaN(e) || P(
|
|
78
|
+
Number.isNaN(e) || P(re(e));
|
|
78
79
|
}, children: [
|
|
79
|
-
/* @__PURE__ */ r(
|
|
80
|
-
/* @__PURE__ */ r(
|
|
80
|
+
/* @__PURE__ */ r(x.Control, {}),
|
|
81
|
+
/* @__PURE__ */ r(x.Input, { "aria-label": "Zoom percentage" })
|
|
81
82
|
] }) : null,
|
|
82
|
-
B ? s ? /* @__PURE__ */ o(
|
|
83
|
-
/* @__PURE__ */ r(b, { size: "xs", variant: "surface", onClick:
|
|
83
|
+
B ? s ? /* @__PURE__ */ o(O, { gap: "xs", children: [
|
|
84
|
+
/* @__PURE__ */ r(b, { size: "xs", variant: "surface", onClick: V, children: "Cancel" }),
|
|
84
85
|
/* @__PURE__ */ r(b, { size: "xs", onClick: L, children: "Preview" })
|
|
85
86
|
] }) : /* @__PURE__ */ r(b, { size: "xs", variant: "surface", onClick: () => m(!0), children: "Edit" }) : null
|
|
86
87
|
] }),
|
|
87
|
-
s ? /* @__PURE__ */ r(n, { padding: "sm", bg: "bg.muted", children: /* @__PURE__ */ r(
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
s ? /* @__PURE__ */ r(n, { padding: "sm", bg: "bg.muted", children: /* @__PURE__ */ r(H, { value: u, onChange: (e) => f(e.target.value), minHeight: "180px", resize: "vertical", fontFamily: "mono", fontSize: "sm", spellCheck: !1 }) }) : /* @__PURE__ */ o(n, { paddingX: "sm", paddingBottom: "sm", background: "bg.muted", children: [
|
|
89
|
+
S ? /* @__PURE__ */ r(C, { color: "fg.muted", children: "Rendering diagram..." }) : null,
|
|
90
|
+
p ? /* @__PURE__ */ o(n, { children: [
|
|
90
91
|
/* @__PURE__ */ r(C, { color: "fg.error", textStyle: "label/S/medium", children: "Mermaid parse failed" }),
|
|
91
|
-
/* @__PURE__ */ r(C, { color: "fg.muted", textStyle: "label/S/regular", marginTop: "2xs", children:
|
|
92
|
-
/* @__PURE__ */ r(
|
|
92
|
+
/* @__PURE__ */ r(C, { color: "fg.muted", textStyle: "label/S/regular", marginTop: "2xs", children: p }),
|
|
93
|
+
/* @__PURE__ */ r(G, { marginTop: "sm", borderRadius: "sm", bg: "bg.panel", showHorizontalScrollbar: !0, showVerticalScrollbar: !1, contentProps: {
|
|
94
|
+
p: "sm"
|
|
95
|
+
}, children: /* @__PURE__ */ r(n, { as: "pre", children: l }) })
|
|
93
96
|
] }) : /* @__PURE__ */ r(n, { borderRadius: "sm", overflow: "hidden", minHeight: "160px", onWheel: (e) => {
|
|
94
97
|
e.preventDefault(), e.stopPropagation();
|
|
95
98
|
}, children: /* @__PURE__ */ r(n, { transform: `translate(${c.x}px, ${c.y}px) scale(${F})`, transformOrigin: "top left", cursor: z ? "grabbing" : "grab", touchAction: "none", onPointerDown: (e) => {
|
|
@@ -97,16 +100,16 @@ function le(i) {
|
|
|
97
100
|
pointerId: e.pointerId,
|
|
98
101
|
x: e.clientX - c.x,
|
|
99
102
|
y: e.clientY - c.y
|
|
100
|
-
},
|
|
103
|
+
}, g(!0), e.currentTarget.setPointerCapture(e.pointerId);
|
|
101
104
|
}, onPointerMove: (e) => {
|
|
102
|
-
!z || d.current.pointerId !== e.pointerId ||
|
|
105
|
+
!z || d.current.pointerId !== e.pointerId || E({
|
|
103
106
|
x: e.clientX - d.current.x,
|
|
104
107
|
y: e.clientY - d.current.y
|
|
105
108
|
});
|
|
106
109
|
}, onPointerUp: (e) => {
|
|
107
|
-
d.current.pointerId === e.pointerId && (
|
|
110
|
+
d.current.pointerId === e.pointerId && (g(!1), e.currentTarget.releasePointerCapture(e.pointerId));
|
|
108
111
|
}, onPointerCancel: () => {
|
|
109
|
-
|
|
112
|
+
g(!1);
|
|
110
113
|
}, css: {
|
|
111
114
|
"& img": {
|
|
112
115
|
display: "block",
|
|
@@ -119,6 +122,6 @@ function le(i) {
|
|
|
119
122
|
] });
|
|
120
123
|
}
|
|
121
124
|
export {
|
|
122
|
-
|
|
125
|
+
me as default
|
|
123
126
|
};
|
|
124
|
-
//# sourceMappingURL=MermaidComponent-
|
|
127
|
+
//# sourceMappingURL=MermaidComponent-Cz_Iob5U.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MermaidComponent-Cz_Iob5U.js","sources":["../src/components/rich-text/shared/plugins/MermaidPlugin/MermaidComponent.tsx"],"sourcesContent":["import { Box, Button, Flex, NumberInput, Text, Textarea } from \"@chakra-ui/react\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { useLexicalEditable } from \"@lexical/react/useLexicalEditable\";\nimport { $getNodeByKey } from \"lexical\";\nimport mermaid from \"mermaid\";\nimport { useEffect, useId, useRef, useState } from \"react\";\nimport { ScrollArea } from \"@/components/scroll-area\";\nimport { $isMermaidNode } from \"./MermaidNode\";\n\nlet mermaidInitialized = false;\n\nfunction initializeMermaid() {\n if (mermaidInitialized) {\n return;\n }\n\n mermaid.initialize({\n startOnLoad: false,\n securityLevel: \"strict\",\n theme: \"default\",\n });\n\n mermaidInitialized = true;\n}\n\nfunction formatErrorMessage(error: unknown) {\n if (!(error instanceof Error)) {\n return \"Failed to render mermaid diagram.\";\n }\n\n return error.message;\n}\n\nconst MIN_ZOOM = 0;\nconst MAX_ZOOM = 2;\nconst ZOOM_STEP = 0.1;\n\nfunction clampZoom(value: number) {\n return Number(Math.min(MAX_ZOOM, Math.max(MIN_ZOOM, value)).toFixed(2));\n}\n\ninterface MermaidComponentProps {\n code: string;\n nodeKey: string;\n}\n\nexport default function MermaidComponent(props: MermaidComponentProps) {\n const { code, nodeKey } = props;\n const [editor] = useLexicalComposerContext();\n const isEditable = useLexicalEditable();\n const [isEditing, setIsEditing] = useState(false);\n const [draftCode, setDraftCode] = useState(code);\n const [previewCode, setPreviewCode] = useState(code);\n const [svgMarkup, setSvgMarkup] = useState(\"\");\n const [renderError, setRenderError] = useState(\"\");\n const [isRendering, setIsRendering] = useState(false);\n const [zoom, setZoom] = useState(1);\n const [offset, setOffset] = useState({ x: 0, y: 0 });\n const [isPanning, setIsPanning] = useState(false);\n const panStartRef = useRef({ pointerId: -1, x: 0, y: 0 });\n const renderId = useId().replaceAll(\":\", \"-\");\n\n useEffect(() => {\n setDraftCode(code);\n setPreviewCode(code);\n }, [code]);\n\n useEffect(() => {\n let cancelled = false;\n\n async function renderDiagram() {\n initializeMermaid();\n setIsRendering(true);\n setRenderError(\"\");\n\n try {\n const { svg } = await mermaid.render(`mermaid-${renderId}`, previewCode);\n if (!cancelled) {\n setSvgMarkup(svg);\n }\n } catch (error) {\n if (!cancelled) {\n setSvgMarkup(\"\");\n setRenderError(formatErrorMessage(error));\n }\n } finally {\n if (!cancelled) {\n setIsRendering(false);\n }\n }\n }\n\n if (!isEditing) {\n void renderDiagram();\n }\n\n return () => {\n cancelled = true;\n };\n }, [isEditing, previewCode, renderId]);\n\n const commitCodeChanges = () => {\n editor.update(() => {\n const node = $getNodeByKey(nodeKey);\n if ($isMermaidNode(node)) {\n node.setCode(draftCode);\n }\n });\n\n setPreviewCode(draftCode);\n resetView();\n setIsEditing(false);\n };\n\n const cancelEditing = () => {\n setDraftCode(previewCode);\n setIsEditing(false);\n };\n\n const resetView = () => {\n setZoom(1);\n setOffset({ x: 0, y: 0 });\n };\n\n return (\n <Box borderWidth=\"1px\" borderColor=\"border.muted\" borderRadius=\"md\" overflow=\"hidden\" width=\"100%\">\n <Flex justifyContent=\"flex-end\" alignItems=\"center\" gap=\"xs\" paddingX=\"sm\" paddingY=\"xs\" bg=\"bg.muted\">\n {!isEditing && !renderError && !isRendering ? (\n <NumberInput.Root\n size=\"xs\"\n width=\"64px\"\n defaultValue={\"100\"}\n min={MIN_ZOOM}\n max={MAX_ZOOM}\n step={ZOOM_STEP}\n formatOptions={{\n style: \"percent\",\n }}\n onValueChange={({ valueAsNumber }) => {\n if (Number.isNaN(valueAsNumber)) {\n return;\n }\n\n setZoom(clampZoom(valueAsNumber));\n }}\n >\n <NumberInput.Control />\n <NumberInput.Input aria-label=\"Zoom percentage\" />\n </NumberInput.Root>\n ) : null}\n\n {isEditable ? (\n isEditing ? (\n <Flex gap=\"xs\">\n <Button size=\"xs\" variant=\"surface\" onClick={cancelEditing}>\n Cancel\n </Button>\n <Button size=\"xs\" onClick={commitCodeChanges}>\n Preview\n </Button>\n </Flex>\n ) : (\n <Button size=\"xs\" variant=\"surface\" onClick={() => setIsEditing(true)}>\n Edit\n </Button>\n )\n ) : null}\n </Flex>\n\n {isEditing ? (\n <Box padding=\"sm\" bg=\"bg.muted\">\n <Textarea\n value={draftCode}\n onChange={(event) => setDraftCode(event.target.value)}\n minHeight=\"180px\"\n resize=\"vertical\"\n fontFamily=\"mono\"\n fontSize=\"sm\"\n spellCheck={false}\n />\n </Box>\n ) : (\n <Box paddingX=\"sm\" paddingBottom=\"sm\" background=\"bg.muted\">\n {isRendering ? <Text color=\"fg.muted\">Rendering diagram...</Text> : null}\n {renderError ? (\n <Box>\n <Text color=\"fg.error\" textStyle=\"label/S/medium\">\n Mermaid parse failed\n </Text>\n <Text color=\"fg.muted\" textStyle=\"label/S/regular\" marginTop=\"2xs\">\n {renderError}\n </Text>\n <ScrollArea\n marginTop=\"sm\"\n borderRadius=\"sm\"\n bg=\"bg.panel\"\n showHorizontalScrollbar\n showVerticalScrollbar={false}\n contentProps={{ p: \"sm\" }}\n >\n <Box as=\"pre\">{previewCode}</Box>\n </ScrollArea>\n </Box>\n ) : (\n <Box\n borderRadius=\"sm\"\n overflow=\"hidden\"\n minHeight=\"160px\"\n onWheel={(event) => {\n event.preventDefault();\n event.stopPropagation();\n }}\n >\n <Box\n transform={`translate(${offset.x}px, ${offset.y}px) scale(${zoom})`}\n transformOrigin=\"top left\"\n cursor={isPanning ? \"grabbing\" : \"grab\"}\n touchAction=\"none\"\n onPointerDown={(event) => {\n panStartRef.current = {\n pointerId: event.pointerId,\n x: event.clientX - offset.x,\n y: event.clientY - offset.y,\n };\n setIsPanning(true);\n event.currentTarget.setPointerCapture(event.pointerId);\n }}\n onPointerMove={(event) => {\n if (!isPanning || panStartRef.current.pointerId !== event.pointerId) {\n return;\n }\n\n setOffset({\n x: event.clientX - panStartRef.current.x,\n y: event.clientY - panStartRef.current.y,\n });\n }}\n onPointerUp={(event) => {\n if (panStartRef.current.pointerId !== event.pointerId) {\n return;\n }\n\n setIsPanning(false);\n event.currentTarget.releasePointerCapture(event.pointerId);\n }}\n onPointerCancel={() => {\n setIsPanning(false);\n }}\n css={{\n \"& img\": {\n display: \"block\",\n width: \"100%\",\n height: \"auto\",\n userSelect: \"none\",\n },\n }}\n >\n <img\n alt=\"Mermaid diagram\"\n src={`data:image/svg+xml;utf8,${encodeURIComponent(svgMarkup)}`}\n draggable={false}\n />\n </Box>\n </Box>\n )}\n </Box>\n )}\n </Box>\n );\n}\n"],"names":["mermaidInitialized","initializeMermaid","mermaid","initialize","startOnLoad","securityLevel","theme","formatErrorMessage","error","Error","message","MIN_ZOOM","MAX_ZOOM","ZOOM_STEP","clampZoom","value","Number","Math","min","max","toFixed","MermaidComponent","props","code","nodeKey","editor","useLexicalComposerContext","isEditable","useLexicalEditable","isEditing","setIsEditing","useState","draftCode","setDraftCode","previewCode","setPreviewCode","svgMarkup","setSvgMarkup","renderError","setRenderError","isRendering","setIsRendering","zoom","setZoom","offset","setOffset","x","y","isPanning","setIsPanning","panStartRef","useRef","pointerId","renderId","useId","replaceAll","useEffect","cancelled","renderDiagram","svg","render","commitCodeChanges","update","node","$getNodeByKey","$isMermaidNode","setCode","resetView","cancelEditing","jsxs","Box","Flex","NumberInput","style","valueAsNumber","isNaN","jsx","Button","Textarea","event","target","Text","ScrollArea","p","preventDefault","stopPropagation","current","clientX","clientY","currentTarget","setPointerCapture","releasePointerCapture","display","width","height","userSelect","encodeURIComponent"],"mappings":"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"}
|