@pstdio/ui 0.14.0 → 0.15.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.
Files changed (41) hide show
  1. package/dist/{MermaidComponent-CatfVUxA.js → MermaidComponent-DBJsTOmj.js} +3 -3
  2. package/dist/{MermaidComponent-CatfVUxA.js.map → MermaidComponent-DBJsTOmj.js.map} +1 -1
  3. package/dist/chat-ui.js +441 -442
  4. package/dist/chat-ui.js.map +1 -1
  5. package/dist/components/bubble-button.d.ts +1 -1
  6. package/dist/components/data-renderer/data-renderer-enum-helpers.d.ts +3 -3
  7. package/dist/components/data-renderer/data-renderer-helpers.d.ts +2 -0
  8. package/dist/components/diff-viewer/diff-viewer-options-menu.d.ts +16 -0
  9. package/dist/components/icon-color-picker.d.ts +2 -6
  10. package/dist/components/list-row/list-row.types.d.ts +1 -1
  11. package/dist/components/notification-center/index.d.ts +2 -0
  12. package/dist/components/notification-center/notification-center.d.ts +2 -0
  13. package/dist/components/notification-center/notification-center.types.d.ts +37 -0
  14. package/dist/components/search-modal-content.d.ts +20 -0
  15. package/dist/components/style-guide-data.d.ts +0 -6
  16. package/dist/components/tab-strip/tab-visibility-filter.d.ts +4 -2
  17. package/dist/components/tree-list/tree-list-visibility-filter.d.ts +11 -3
  18. package/dist/components/tree-list/tree-list.types.d.ts +7 -2
  19. package/dist/index.d.ts +6 -2
  20. package/dist/index.js +4471 -4328
  21. package/dist/index.js.map +1 -1
  22. package/dist/mermaid-renderer-CPGj6vsb.js +570 -0
  23. package/dist/mermaid-renderer-CPGj6vsb.js.map +1 -0
  24. package/dist/{resource-badge-D33IFv74.js → resource-badge-CeJTOn8F.js} +41 -41
  25. package/dist/resource-badge-CeJTOn8F.js.map +1 -0
  26. package/dist/{rich-message-BFtvH9H7.js → rich-message-DNSEhxXh.js} +4 -4
  27. package/dist/{rich-message-BFtvH9H7.js.map → rich-message-DNSEhxXh.js.map} +1 -1
  28. package/dist/rich-text.js +405 -399
  29. package/dist/rich-text.js.map +1 -1
  30. package/dist/style.css +1 -1
  31. package/dist/theme/shadowless-default-config.d.ts +2 -0
  32. package/dist/{theme-C5qHTCU9.js → theme-25P7ij4C.js} +209 -239
  33. package/dist/theme-25P7ij4C.js.map +1 -0
  34. package/dist/theme.js +1 -1
  35. package/package.json +1 -1
  36. package/dist/components/sidebar/sidebar-project-menu.d.ts +0 -7
  37. package/dist/mermaid-renderer-DYEiYmYQ.js +0 -411
  38. package/dist/mermaid-renderer-DYEiYmYQ.js.map +0 -1
  39. package/dist/resource-badge-D33IFv74.js.map +0 -1
  40. package/dist/theme/tokens/shadows.d.ts +0 -64
  41. package/dist/theme-C5qHTCU9.js.map +0 -1
@@ -1,411 +0,0 @@
1
- import { jsx as d, jsxs as S } from "react/jsx-runtime";
2
- import { c as B } from "react/compiler-runtime";
3
- import { Text as q, Box as H, Dialog as A, Stack as Y, Portal as fe, Icon as V, Button as he, IconButton as W } from "@chakra-ui/react";
4
- import { useState as O, useRef as ie, useEffect as Q } from "react";
5
- import { S as ue, T as J } from "./resource-badge-D33IFv74.js";
6
- import { Download as ge, X as pe, Pencil as be, Maximize2 as xe, Plus as we, Minus as ye } from "lucide-react";
7
- import le from "mermaid";
8
- const se = 0.5, ae = 3, ce = 0.25, ee = (n) => Number(Math.min(ae, Math.max(se, n)).toFixed(2)), ve = (n) => ee(n + ce), Se = (n) => ee(n - ce), te = (n) => {
9
- if (!n)
10
- return 0;
11
- const e = Number.parseFloat(n);
12
- return Number.isFinite(e) ? e : 0;
13
- }, K = (n, e) => n.match(new RegExp(`\\s${e}="([^"]+)"`))?.[1], de = (n) => {
14
- const e = K(n, "viewBox")?.split(/\s+/).map(Number) ?? [], t = e[2] ?? 0, o = e[3] ?? 0;
15
- return t > 0 && o > 0 ? {
16
- width: t,
17
- height: o
18
- } : {
19
- width: Math.max(te(K(n, "width")), 1),
20
- height: Math.max(te(K(n, "height")), 1)
21
- };
22
- }, Me = (n) => n.replace(/<br(\s[^>]*)?>/g, "<br$1/>"), ze = (n) => {
23
- const {
24
- width: e,
25
- height: t
26
- } = de(n), o = n.replace(/<svg\b[^>]*>/, (a) => {
27
- const l = /\swidth=/.test(a) ? a.replace(/\swidth="[^"]*"/, ` width="${e}"`) : a.replace("<svg", `<svg width="${e}"`);
28
- return /\sheight=/.test(l) ? l.replace(/\sheight="[^"]*"/, ` height="${t}"`) : l.replace("<svg", `<svg height="${t}"`);
29
- });
30
- return Me(o);
31
- }, me = (n) => {
32
- const e = new TextEncoder().encode(ze(n));
33
- let t = "";
34
- for (const o of e)
35
- t += String.fromCharCode(o);
36
- return `data:image/svg+xml;base64,${btoa(t)}`;
37
- }, Pe = (n) => new Promise((e, t) => {
38
- const o = new Image();
39
- o.style.position = "fixed", o.style.left = "-10000px", o.style.top = "0", o.style.pointerEvents = "none", o.onload = () => e({
40
- image: o,
41
- cleanup: () => o.remove()
42
- }), o.onerror = () => {
43
- o.remove(), t(new Error("Failed to load rendered Mermaid SVG for PNG export."));
44
- }, document.body.append(o), o.src = n;
45
- }), _e = (n) => new Promise((e, t) => {
46
- n.toBlob((o) => {
47
- if (o) {
48
- e(o);
49
- return;
50
- }
51
- t(new Error("Failed to encode Mermaid diagram as PNG."));
52
- }, "image/png");
53
- }), Ie = (n, e) => {
54
- const t = URL.createObjectURL(n), o = document.createElement("a");
55
- o.href = t, o.download = e, document.body.append(o), o.click(), o.remove(), window.setTimeout(() => URL.revokeObjectURL(t), 0);
56
- }, Re = async (n) => {
57
- const {
58
- svg: e,
59
- zoom: t,
60
- filename: o = "mermaid-diagram.png"
61
- } = n, a = me(e), {
62
- image: l,
63
- cleanup: s
64
- } = await Pe(a);
65
- try {
66
- const {
67
- width: i,
68
- height: r
69
- } = de(e), u = ee(t), c = document.createElement("canvas");
70
- c.width = Math.ceil(i * u), c.height = Math.ceil(r * u);
71
- const m = c.getContext("2d");
72
- if (!m)
73
- throw new Error("Canvas rendering is unavailable for Mermaid PNG export.");
74
- m.scale(u, u), m.drawImage(l, 0, 0, i, r), Ie(await _e(c), o);
75
- } finally {
76
- s();
77
- }
78
- }, Ce = (n) => {
79
- const e = B(9), {
80
- code: t,
81
- error: o
82
- } = n;
83
- let a;
84
- e[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (a = /* @__PURE__ */ d(q, { color: "fg.error", textStyle: "label/S/medium", children: "Mermaid parse failed" }), e[0] = a) : a = e[0];
85
- let l;
86
- e[1] !== o ? (l = /* @__PURE__ */ d(q, { color: "fg.muted", textStyle: "label/S/regular", mt: "2xs", whiteSpace: "pre-wrap", children: o }), e[1] = o, e[2] = l) : l = e[2];
87
- let s;
88
- e[3] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (s = {
89
- p: "sm"
90
- }, e[3] = s) : s = e[3];
91
- let i;
92
- e[4] !== t ? (i = /* @__PURE__ */ d(ue, { mt: "sm", borderRadius: "sm", bg: "bg.muted", showHorizontalScrollbar: !0, showVerticalScrollbar: !1, contentProps: s, children: /* @__PURE__ */ d(H, { as: "pre", m: "0", fontSize: "sm", children: t }) }), e[4] = t, e[5] = i) : i = e[5];
93
- let r;
94
- return e[6] !== l || e[7] !== i ? (r = /* @__PURE__ */ S(H, { role: "alert", borderRadius: "sm", bg: "bg.panel", p: "sm", children: [
95
- a,
96
- l,
97
- i
98
- ] }), e[6] = l, e[7] = i, e[8] = r) : r = e[8], r;
99
- }, Ee = (n) => {
100
- const e = B(23), {
101
- children: t,
102
- canDownload: o,
103
- open: a,
104
- onClose: l,
105
- onDownload: s
106
- } = n;
107
- let i;
108
- e[0] !== l ? (i = (b) => !b.open && l(), e[0] = l, e[1] = i) : i = e[1];
109
- let r;
110
- e[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (r = /* @__PURE__ */ d(A.Backdrop, {}), e[2] = r) : r = e[2];
111
- let u;
112
- e[3] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (u = /* @__PURE__ */ d(A.Title, { asChild: !0, children: /* @__PURE__ */ d(q, { textStyle: "heading/S", children: "Mermaid diagram" }) }), e[3] = u) : u = e[3];
113
- const c = !o;
114
- let m;
115
- e[4] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (m = /* @__PURE__ */ d(V, { as: ge, boxSize: "16px" }), e[4] = m) : m = e[4];
116
- let f;
117
- e[5] !== s || e[6] !== c ? (f = /* @__PURE__ */ S(he, { size: "sm", variant: "surface", onClick: s, disabled: c, children: [
118
- m,
119
- "Download as PNG"
120
- ] }), e[5] = s, e[6] = c, e[7] = f) : f = e[7];
121
- let g;
122
- e[8] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (g = /* @__PURE__ */ d(V, { as: pe, boxSize: "16px" }), e[8] = g) : g = e[8];
123
- let p;
124
- e[9] !== l ? (p = /* @__PURE__ */ d(W, { "aria-label": "Close", size: "sm", variant: "ghost", onClick: l, children: g }), e[9] = l, e[10] = p) : p = e[10];
125
- let h;
126
- e[11] !== f || e[12] !== p ? (h = /* @__PURE__ */ d(A.Header, { "data-testid": "mermaid-fullscreen-header", position: "absolute", top: "0", right: "0", left: "0", zIndex: "2", p: "0", children: /* @__PURE__ */ S(Y, { direction: "row", align: "center", justify: "space-between", width: "100%", gap: "sm", children: [
127
- u,
128
- /* @__PURE__ */ S(Y, { direction: "row", align: "center", gap: "xs", children: [
129
- f,
130
- p
131
- ] })
132
- ] }) }), e[11] = f, e[12] = p, e[13] = h) : h = e[13];
133
- let x;
134
- e[14] !== t ? (x = /* @__PURE__ */ d(A.Body, { "data-testid": "mermaid-fullscreen-body", p: "0", flex: "1", minH: "0", children: t }), e[14] = t, e[15] = x) : x = e[15];
135
- let w;
136
- e[16] !== h || e[17] !== x ? (w = /* @__PURE__ */ S(fe, { children: [
137
- r,
138
- /* @__PURE__ */ d(A.Positioner, { padding: "0", children: /* @__PURE__ */ S(A.Content, { width: "100vw", height: "100vh", maxW: "none", borderRadius: "0", overflow: "hidden", children: [
139
- h,
140
- x
141
- ] }) })
142
- ] }), e[16] = h, e[17] = x, e[18] = w) : w = e[18];
143
- let y;
144
- return e[19] !== a || e[20] !== i || e[21] !== w ? (y = /* @__PURE__ */ d(A.Root, { lazyMount: !0, unmountOnExit: !0, open: a, onOpenChange: i, children: w }), e[19] = a, e[20] = i, e[21] = w, e[22] = y) : y = e[22], y;
145
- }, Ze = (n) => {
146
- const e = B(9), {
147
- isEditable: t,
148
- onRequestEdit: o,
149
- onOpenFullscreen: a
150
- } = n;
151
- let l;
152
- e[0] !== t || e[1] !== o ? (l = t && o ? /* @__PURE__ */ d(J, { content: "Edit source", children: /* @__PURE__ */ d(W, { "aria-label": "Edit", size: "xs", variant: "surface", onClick: o, children: /* @__PURE__ */ d(V, { as: be, boxSize: "14px" }) }) }) : null, e[0] = t, e[1] = o, e[2] = l) : l = e[2];
153
- let s;
154
- e[3] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (s = /* @__PURE__ */ d(V, { as: xe, boxSize: "14px" }), e[3] = s) : s = e[3];
155
- let i;
156
- e[4] !== a ? (i = /* @__PURE__ */ d(J, { content: "Fullscreen", children: /* @__PURE__ */ d(W, { "aria-label": "Fullscreen", size: "xs", variant: "surface", onClick: a, children: s }) }), e[4] = a, e[5] = i) : i = e[5];
157
- let r;
158
- return e[6] !== l || e[7] !== i ? (r = /* @__PURE__ */ S(Y, { "data-testid": "mermaid-inline-toolbar", direction: "row", justify: "flex-end", align: "center", gap: "xs", position: "absolute", top: "sm", right: "sm", zIndex: "1", onPointerDown: Oe, children: [
159
- l,
160
- i
161
- ] }), e[6] = l, e[7] = i, e[8] = r) : r = e[8], r;
162
- }, De = (n) => {
163
- const e = B(17), {
164
- zoom: t,
165
- onZoomChange: o
166
- } = n;
167
- let a;
168
- e[0] !== o || e[1] !== t ? (a = () => o(ve(t)), e[0] = o, e[1] = t, e[2] = a) : a = e[2];
169
- const l = t >= ae;
170
- let s;
171
- e[3] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (s = /* @__PURE__ */ d(V, { as: we, boxSize: "14px" }), e[3] = s) : s = e[3];
172
- let i;
173
- e[4] !== a || e[5] !== l ? (i = /* @__PURE__ */ d(J, { content: "Zoom in", children: /* @__PURE__ */ d(W, { "aria-label": "Zoom in", size: "xs", variant: "surface", onClick: a, disabled: l, children: s }) }), e[4] = a, e[5] = l, e[6] = i) : i = e[6];
174
- let r;
175
- e[7] !== o || e[8] !== t ? (r = () => o(Se(t)), e[7] = o, e[8] = t, e[9] = r) : r = e[9];
176
- const u = t <= se;
177
- let c;
178
- e[10] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (c = /* @__PURE__ */ d(V, { as: ye, boxSize: "14px" }), e[10] = c) : c = e[10];
179
- let m;
180
- e[11] !== r || e[12] !== u ? (m = /* @__PURE__ */ d(J, { content: "Zoom out", children: /* @__PURE__ */ d(W, { "aria-label": "Zoom out", size: "xs", variant: "surface", onClick: r, disabled: u, children: c }) }), e[11] = r, e[12] = u, e[13] = m) : m = e[13];
181
- let f;
182
- return e[14] !== i || e[15] !== m ? (f = /* @__PURE__ */ S(Y, { "data-testid": "mermaid-zoom-controls", gap: "2xs", position: "absolute", right: "sm", bottom: "sm", zIndex: "1", onPointerDown: Fe, children: [
183
- i,
184
- m
185
- ] }), e[14] = i, e[15] = m, e[16] = f) : f = e[16], f;
186
- };
187
- function Oe(n) {
188
- return n.stopPropagation();
189
- }
190
- function Fe(n) {
191
- return n.stopPropagation();
192
- }
193
- const $e = (n) => {
194
- const e = B(42), {
195
- allowPanAtDefaultZoom: t,
196
- maxHeight: o,
197
- minHeight: a,
198
- overlayActions: l,
199
- svg: s,
200
- zoom: i,
201
- onZoomChange: r
202
- } = n, u = t === void 0 ? !1 : t, c = o === void 0 ? "420px" : o, m = a === void 0 ? "220px" : a;
203
- let f;
204
- e[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (f = {
205
- x: 0,
206
- y: 0
207
- }, e[0] = f) : f = e[0];
208
- const [g, p] = O(f), [h, x] = O(!1);
209
- let w;
210
- e[1] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (w = {
211
- pointerId: -1,
212
- x: 0,
213
- y: 0
214
- }, e[1] = w) : w = e[1];
215
- const y = ie(w), b = u || i > 1;
216
- let F;
217
- e[2] !== b || e[3] !== g.x || e[4] !== g.y ? (F = (v) => {
218
- b && (y.current = {
219
- pointerId: v.pointerId,
220
- x: v.clientX - g.x,
221
- y: v.clientY - g.y
222
- }, x(!0), v.currentTarget.setPointerCapture(v.pointerId));
223
- }, e[2] = b, e[3] = g.x, e[4] = g.y, e[5] = F) : F = e[5];
224
- const $ = F;
225
- let R;
226
- e[6] !== b || e[7] !== h ? (R = (v) => {
227
- !b || !h || y.current.pointerId !== v.pointerId || p({
228
- x: v.clientX - y.current.x,
229
- y: v.clientY - y.current.y
230
- });
231
- }, e[6] = b, e[7] = h, e[8] = R) : R = e[8];
232
- const E = R;
233
- let C;
234
- e[9] !== b ? (C = (v) => {
235
- !b || y.current.pointerId !== v.pointerId || (x(!1), v.currentTarget.releasePointerCapture(v.pointerId));
236
- }, e[9] = b, e[10] = C) : C = e[10];
237
- const G = C;
238
- let M, z;
239
- e[11] !== b ? (M = () => {
240
- b || (p({
241
- x: 0,
242
- y: 0
243
- }), x(!1));
244
- }, z = [b], e[11] = b, e[12] = M, e[13] = z) : (M = e[12], z = e[13]), Q(M, z);
245
- const Z = b ? h ? "grabbing" : "grab" : "default", _ = b ? "none" : "auto";
246
- let P;
247
- e[14] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (P = () => {
248
- x(!1);
249
- }, e[14] = P) : P = e[14];
250
- const I = b ? "true" : "false", D = `translate3d(${g.x}px, ${g.y}px, 0) scale(${i})`, T = b ? h ? "grabbing" : "grab" : "default";
251
- let k;
252
- e[15] !== c ? (k = {
253
- "& img": {
254
- display: "inline-block",
255
- width: "auto",
256
- maxWidth: "100%",
257
- maxHeight: c,
258
- height: "auto",
259
- userSelect: "none"
260
- }
261
- }, e[15] = c, e[16] = k) : k = e[16];
262
- let L;
263
- e[17] !== s ? (L = me(s), e[17] = s, e[18] = L) : L = e[18];
264
- let N;
265
- e[19] !== L ? (N = /* @__PURE__ */ d("img", { alt: "Mermaid diagram", draggable: !1, src: L }), e[19] = L, e[20] = N) : N = e[20];
266
- let U;
267
- e[21] !== c || e[22] !== I || e[23] !== D || e[24] !== T || e[25] !== k || e[26] !== N ? (U = /* @__PURE__ */ d(H, { "data-testid": "mermaid-diagram-transform", "data-pan-enabled": I, width: "100%", maxHeight: c, textAlign: "center", transform: D, transformOrigin: "top left", cursor: T, css: k, children: N }), e[21] = c, e[22] = I, e[23] = D, e[24] = T, e[25] = k, e[26] = N, e[27] = U) : U = e[27];
268
- let j;
269
- e[28] !== r || e[29] !== i ? (j = /* @__PURE__ */ d(De, { zoom: i, onZoomChange: r }), e[28] = r, e[29] = i, e[30] = j) : j = e[30];
270
- let X;
271
- return e[31] !== $ || e[32] !== E || e[33] !== G || e[34] !== c || e[35] !== m || e[36] !== l || e[37] !== Z || e[38] !== _ || e[39] !== U || e[40] !== j ? (X = /* @__PURE__ */ S(H, { "data-testid": "mermaid-diagram-surface", position: "relative", minHeight: m, maxHeight: c, overflow: "hidden", cursor: Z, touchAction: _, onPointerDown: $, onPointerMove: E, onPointerUp: G, onPointerCancel: P, children: [
272
- U,
273
- l,
274
- j
275
- ] }), e[31] = $, e[32] = E, e[33] = G, e[34] = c, e[35] = m, e[36] = l, e[37] = Z, e[38] = _, e[39] = U, e[40] = j, e[41] = X) : X = e[41], X;
276
- };
277
- let oe = !1, ne = 0;
278
- const Ae = () => {
279
- oe || (le.initialize({
280
- startOnLoad: !1,
281
- htmlLabels: !0,
282
- flowchart: {
283
- htmlLabels: !0
284
- },
285
- securityLevel: "antiscript",
286
- theme: "default"
287
- }), oe = !0);
288
- }, He = () => (ne += 1, `mermaid-${ne}`), Be = (n) => {
289
- if (!(n instanceof Error))
290
- return "Failed to render Mermaid diagram.";
291
- const e = n.message.trim();
292
- return e ? e.split(`
293
- `).filter(Boolean).slice(0, 3).join(`
294
- `) : "Failed to render Mermaid diagram.";
295
- }, Te = (n) => {
296
- const [e, t] = O(""), [o, a] = O(""), [l, s] = O(!1);
297
- return Q(() => {
298
- let i = !1;
299
- return (async () => {
300
- Ae(), s(!0), a("");
301
- try {
302
- const u = await le.render(He(), n);
303
- if (i)
304
- return;
305
- t(u.svg);
306
- } catch (u) {
307
- if (i)
308
- return;
309
- t(""), a(Be(u));
310
- } finally {
311
- i || s(!1);
312
- }
313
- })(), () => {
314
- i = !0;
315
- };
316
- }, [n]), {
317
- svg: e,
318
- error: o,
319
- isRendering: l
320
- };
321
- }, re = (n) => {
322
- const e = B(21), {
323
- allowPanAtDefaultZoom: t,
324
- code: o,
325
- error: a,
326
- isRendering: l,
327
- maxHeight: s,
328
- minHeight: i,
329
- overlayActions: r,
330
- svg: u,
331
- zoom: c,
332
- onZoomChange: m
333
- } = n;
334
- if (l) {
335
- const g = i ?? "220px";
336
- let p;
337
- e[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (p = /* @__PURE__ */ d(q, { color: "fg.muted", textStyle: "paragraph/S/regular", children: "Rendering diagram..." }), e[0] = p) : p = e[0];
338
- let h;
339
- return e[1] !== s || e[2] !== r || e[3] !== g ? (h = /* @__PURE__ */ S(H, { position: "relative", minHeight: g, maxHeight: s, overflow: "hidden", children: [
340
- p,
341
- r
342
- ] }), e[1] = s, e[2] = r, e[3] = g, e[4] = h) : h = e[4], h;
343
- }
344
- if (a) {
345
- const g = i ?? "220px";
346
- let p;
347
- e[5] !== o || e[6] !== a ? (p = /* @__PURE__ */ d(Ce, { code: o, error: a }), e[5] = o, e[6] = a, e[7] = p) : p = e[7];
348
- let h;
349
- return e[8] !== s || e[9] !== r || e[10] !== g || e[11] !== p ? (h = /* @__PURE__ */ S(H, { position: "relative", minHeight: g, maxHeight: s, overflow: "hidden", children: [
350
- p,
351
- r
352
- ] }), e[8] = s, e[9] = r, e[10] = g, e[11] = p, e[12] = h) : h = e[12], h;
353
- }
354
- let f;
355
- return e[13] !== t || e[14] !== s || e[15] !== i || e[16] !== m || e[17] !== r || e[18] !== u || e[19] !== c ? (f = /* @__PURE__ */ d($e, { allowPanAtDefaultZoom: t, maxHeight: s, minHeight: i, overlayActions: r, svg: u, zoom: c, onZoomChange: m }, u), e[13] = t, e[14] = s, e[15] = i, e[16] = m, e[17] = r, e[18] = u, e[19] = c, e[20] = f) : f = e[20], f;
356
- }, We = (n) => {
357
- const e = B(36), {
358
- code: t,
359
- initialFullscreenOpen: o,
360
- initialZoom: a,
361
- isEditable: l,
362
- onRequestEdit: s
363
- } = n, i = o === void 0 ? !1 : o, r = a === void 0 ? 1 : a, u = l === void 0 ? !1 : l, {
364
- svg: c,
365
- error: m,
366
- isRendering: f
367
- } = Te(t), [g, p] = O(r), [h, x] = O(1), [w, y] = O(i);
368
- let b;
369
- e[0] !== t || e[1] !== r ? (b = {
370
- code: t,
371
- initialZoom: r
372
- }, e[0] = t, e[1] = r, e[2] = b) : b = e[2];
373
- const F = ie(b), $ = !!c && !m && !f;
374
- let R, E;
375
- e[3] !== t || e[4] !== r ? (R = () => {
376
- const T = F.current;
377
- T.code === t && T.initialZoom === r || (F.current = {
378
- code: t,
379
- initialZoom: r
380
- }, p(r), x(1));
381
- }, E = [t, r], e[3] = t, e[4] = r, e[5] = R, e[6] = E) : (R = e[5], E = e[6]), Q(R, E);
382
- let C;
383
- e[7] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (C = () => {
384
- x(1), y(!0);
385
- }, e[7] = C) : C = e[7];
386
- const G = C;
387
- let M;
388
- e[8] !== u || e[9] !== s ? (M = /* @__PURE__ */ d(Ze, { isEditable: u, onRequestEdit: s, onOpenFullscreen: G }), e[8] = u, e[9] = s, e[10] = M) : M = e[10];
389
- let z;
390
- e[11] !== t || e[12] !== m || e[13] !== g || e[14] !== f || e[15] !== c || e[16] !== M ? (z = /* @__PURE__ */ d(re, { code: t, error: m, isRendering: f, overlayActions: M, svg: c, zoom: g, onZoomChange: p }), e[11] = t, e[12] = m, e[13] = g, e[14] = f, e[15] = c, e[16] = M, e[17] = z) : z = e[17];
391
- let Z;
392
- e[18] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (Z = () => y(!1), e[18] = Z) : Z = e[18];
393
- let _;
394
- e[19] !== h || e[20] !== c ? (_ = () => Re({
395
- svg: c,
396
- zoom: h
397
- }), e[19] = h, e[20] = c, e[21] = _) : _ = e[21];
398
- let P;
399
- e[22] !== t || e[23] !== m || e[24] !== h || e[25] !== f || e[26] !== c ? (P = /* @__PURE__ */ d(re, { allowPanAtDefaultZoom: !0, code: t, error: m, isRendering: f, maxHeight: "100%", minHeight: "100%", svg: c, zoom: h, onZoomChange: x }), e[22] = t, e[23] = m, e[24] = h, e[25] = f, e[26] = c, e[27] = P) : P = e[27];
400
- let I;
401
- e[28] !== $ || e[29] !== w || e[30] !== _ || e[31] !== P ? (I = /* @__PURE__ */ d(Ee, { open: w, canDownload: $, onClose: Z, onDownload: _, children: P }), e[28] = $, e[29] = w, e[30] = _, e[31] = P, e[32] = I) : I = e[32];
402
- let D;
403
- return e[33] !== I || e[34] !== z ? (D = /* @__PURE__ */ S(H, { width: "100%", children: [
404
- z,
405
- I
406
- ] }), e[33] = I, e[34] = z, e[35] = D) : D = e[35], D;
407
- };
408
- export {
409
- We as M
410
- };
411
- //# sourceMappingURL=mermaid-renderer-DYEiYmYQ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mermaid-renderer-DYEiYmYQ.js","sources":["../src/components/mermaid-renderer/mermaid-zoom.ts","../src/components/mermaid-renderer/svg-data-url.ts","../src/components/mermaid-renderer/download-png.ts","../src/components/mermaid-renderer/mermaid-error-state.tsx","../src/components/mermaid-renderer/mermaid-fullscreen.tsx","../src/components/mermaid-renderer/mermaid-toolbar.tsx","../src/components/mermaid-renderer/mermaid-svg-view.tsx","../src/components/mermaid-renderer/use-mermaid-render.ts","../src/components/mermaid-renderer/mermaid-renderer.tsx"],"sourcesContent":["export const MERMAID_MIN_ZOOM = 0.5;\nexport const MERMAID_MAX_ZOOM = 3;\nexport const MERMAID_ZOOM_STEP = 0.25;\n\nexport const clampMermaidZoom = (value: number) =>\n Number(Math.min(MERMAID_MAX_ZOOM, Math.max(MERMAID_MIN_ZOOM, value)).toFixed(2));\n\nexport const zoomIn = (zoom: number) => clampMermaidZoom(zoom + MERMAID_ZOOM_STEP);\n\nexport const zoomOut = (zoom: number) => clampMermaidZoom(zoom - MERMAID_ZOOM_STEP);\n","const parseSvgLength = (value: string | undefined) => {\n if (!value) {\n return 0;\n }\n\n const parsed = Number.parseFloat(value);\n return Number.isFinite(parsed) ? parsed : 0;\n};\n\nconst readAttribute = (svg: string, name: string) => {\n const match = svg.match(new RegExp(`\\\\s${name}=\"([^\"]+)\"`));\n return match?.[1];\n};\n\nexport const resolveSvgSize = (svg: string) => {\n const viewBox = readAttribute(svg, \"viewBox\")?.split(/\\s+/).map(Number) ?? [];\n const viewBoxWidth = viewBox[2] ?? 0;\n const viewBoxHeight = viewBox[3] ?? 0;\n\n if (viewBoxWidth > 0 && viewBoxHeight > 0) {\n return { width: viewBoxWidth, height: viewBoxHeight };\n }\n\n return {\n width: Math.max(parseSvgLength(readAttribute(svg, \"width\")), 1),\n height: Math.max(parseSvgLength(readAttribute(svg, \"height\")), 1),\n };\n};\n\n// SVG data URLs are parsed as strict XML by the browser; void HTML tags like `<br>`\n// must be self-closing or the image silently fails to decode (naturalWidth becomes 0).\n// Mermaid emits `<br/>` itself, but DOMPurify (used when securityLevel !== \"loose\")\n// normalises it back to the HTML5 form.\nconst closeVoidHtmlTags = (svg: string) => svg.replace(/<br(\\s[^>]*)?>/g, \"<br$1/>\");\n\nexport const normalizeSvgForImage = (svg: string) => {\n const { width, height } = resolveSvgSize(svg);\n\n const sized = svg.replace(/<svg\\b[^>]*>/, (tag) => {\n const withWidth = /\\swidth=/.test(tag)\n ? tag.replace(/\\swidth=\"[^\"]*\"/, ` width=\"${width}\"`)\n : tag.replace(\"<svg\", `<svg width=\"${width}\"`);\n\n return /\\sheight=/.test(withWidth)\n ? withWidth.replace(/\\sheight=\"[^\"]*\"/, ` height=\"${height}\"`)\n : withWidth.replace(\"<svg\", `<svg height=\"${height}\"`);\n });\n\n return closeVoidHtmlTags(sized);\n};\n\nexport const createSvgDataUrl = (svg: string) => {\n const bytes = new TextEncoder().encode(normalizeSvgForImage(svg));\n let binary = \"\";\n for (const byte of bytes) {\n binary += String.fromCharCode(byte);\n }\n\n return `data:image/svg+xml;base64,${btoa(binary)}`;\n};\n","import { clampMermaidZoom } from \"./mermaid-zoom\";\nimport { createSvgDataUrl, resolveSvgSize } from \"./svg-data-url\";\n\ninterface DownloadMermaidPngOptions {\n svg: string;\n zoom: number;\n filename?: string;\n}\n\nconst loadImage = (url: string) =>\n new Promise<{ image: HTMLImageElement; cleanup: () => void }>((resolve, reject) => {\n const image = new Image();\n image.style.position = \"fixed\";\n image.style.left = \"-10000px\";\n image.style.top = \"0\";\n image.style.pointerEvents = \"none\";\n image.onload = () => resolve({ image, cleanup: () => image.remove() });\n image.onerror = () => {\n image.remove();\n reject(new Error(\"Failed to load rendered Mermaid SVG for PNG export.\"));\n };\n document.body.append(image);\n image.src = url;\n });\n\nconst canvasToPngBlob = (canvas: HTMLCanvasElement) =>\n new Promise<Blob>((resolve, reject) => {\n canvas.toBlob((blob) => {\n if (blob) {\n resolve(blob);\n return;\n }\n\n reject(new Error(\"Failed to encode Mermaid diagram as PNG.\"));\n }, \"image/png\");\n });\n\nconst triggerDownload = (blob: Blob, filename: string) => {\n const url = URL.createObjectURL(blob);\n const anchor = document.createElement(\"a\");\n anchor.href = url;\n anchor.download = filename;\n document.body.append(anchor);\n anchor.click();\n anchor.remove();\n window.setTimeout(() => URL.revokeObjectURL(url), 0);\n};\n\nexport const downloadMermaidPng = async (options: DownloadMermaidPngOptions) => {\n const { svg, zoom, filename = \"mermaid-diagram.png\" } = options;\n const svgUrl = createSvgDataUrl(svg);\n\n const { image, cleanup } = await loadImage(svgUrl);\n try {\n const { width, height } = resolveSvgSize(svg);\n const scale = clampMermaidZoom(zoom);\n const canvas = document.createElement(\"canvas\");\n canvas.width = Math.ceil(width * scale);\n canvas.height = Math.ceil(height * scale);\n\n const context = canvas.getContext(\"2d\");\n if (!context) {\n throw new Error(\"Canvas rendering is unavailable for Mermaid PNG export.\");\n }\n\n context.scale(scale, scale);\n context.drawImage(image, 0, 0, width, height);\n triggerDownload(await canvasToPngBlob(canvas), filename);\n } finally {\n cleanup();\n }\n};\n","import { Box, Text } from \"@chakra-ui/react\";\nimport { ScrollArea } from \"@/components/scroll-area\";\n\ninterface MermaidErrorStateProps {\n code: string;\n error: string;\n}\n\nexport const MermaidErrorState = (props: MermaidErrorStateProps) => {\n const { code, error } = props;\n\n return (\n <Box role=\"alert\" borderRadius=\"sm\" bg=\"bg.panel\" p=\"sm\">\n <Text color=\"fg.error\" textStyle=\"label/S/medium\">\n Mermaid parse failed\n </Text>\n <Text color=\"fg.muted\" textStyle=\"label/S/regular\" mt=\"2xs\" whiteSpace=\"pre-wrap\">\n {error}\n </Text>\n <ScrollArea\n mt=\"sm\"\n borderRadius=\"sm\"\n bg=\"bg.muted\"\n showHorizontalScrollbar\n showVerticalScrollbar={false}\n contentProps={{ p: \"sm\" }}\n >\n <Box as=\"pre\" m=\"0\" fontSize=\"sm\">\n {code}\n </Box>\n </ScrollArea>\n </Box>\n );\n};\n","import { Button, Dialog, Icon, IconButton, Portal, Stack, Text } from \"@chakra-ui/react\";\nimport { Download, X } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\n\ninterface MermaidFullscreenProps {\n children: ReactNode;\n canDownload: boolean;\n open: boolean;\n onClose: () => void;\n onDownload: () => void;\n}\n\nexport const MermaidFullscreen = (props: MermaidFullscreenProps) => {\n const { children, canDownload, open, onClose, onDownload } = props;\n\n return (\n <Dialog.Root lazyMount unmountOnExit open={open} onOpenChange={(details) => !details.open && onClose()}>\n <Portal>\n <Dialog.Backdrop />\n <Dialog.Positioner padding=\"0\">\n <Dialog.Content width=\"100vw\" height=\"100vh\" maxW=\"none\" borderRadius=\"0\" overflow=\"hidden\">\n <Dialog.Header\n data-testid=\"mermaid-fullscreen-header\"\n position=\"absolute\"\n top=\"0\"\n right=\"0\"\n left=\"0\"\n zIndex=\"2\"\n p=\"0\"\n >\n <Stack direction=\"row\" align=\"center\" justify=\"space-between\" width=\"100%\" gap=\"sm\">\n <Dialog.Title asChild>\n <Text textStyle=\"heading/S\">Mermaid diagram</Text>\n </Dialog.Title>\n <Stack direction=\"row\" align=\"center\" gap=\"xs\">\n <Button size=\"sm\" variant=\"surface\" onClick={onDownload} disabled={!canDownload}>\n <Icon as={Download} boxSize=\"16px\" />\n Download as PNG\n </Button>\n <IconButton aria-label=\"Close\" size=\"sm\" variant=\"ghost\" onClick={onClose}>\n <Icon as={X} boxSize=\"16px\" />\n </IconButton>\n </Stack>\n </Stack>\n </Dialog.Header>\n <Dialog.Body data-testid=\"mermaid-fullscreen-body\" p=\"0\" flex=\"1\" minH=\"0\">\n {children}\n </Dialog.Body>\n </Dialog.Content>\n </Dialog.Positioner>\n </Portal>\n </Dialog.Root>\n );\n};\n","import { Icon, IconButton, Stack } from \"@chakra-ui/react\";\nimport { Maximize2, Minus, Pencil, Plus } from \"lucide-react\";\nimport { Tooltip } from \"@/components/tooltip\";\nimport { MERMAID_MAX_ZOOM, MERMAID_MIN_ZOOM, zoomIn, zoomOut } from \"./mermaid-zoom\";\n\ninterface MermaidInlineToolbarProps {\n isEditable: boolean;\n onRequestEdit?: () => void;\n onOpenFullscreen: () => void;\n}\n\ninterface MermaidZoomControlsProps {\n zoom: number;\n onZoomChange: (zoom: number) => void;\n}\n\nexport const MermaidInlineToolbar = (props: MermaidInlineToolbarProps) => {\n const { isEditable, onRequestEdit, onOpenFullscreen } = props;\n\n return (\n <Stack\n data-testid=\"mermaid-inline-toolbar\"\n direction=\"row\"\n justify=\"flex-end\"\n align=\"center\"\n gap=\"xs\"\n position=\"absolute\"\n top=\"sm\"\n right=\"sm\"\n zIndex=\"1\"\n onPointerDown={(event) => event.stopPropagation()}\n >\n {isEditable && onRequestEdit ? (\n <Tooltip content=\"Edit source\">\n <IconButton aria-label=\"Edit\" size=\"xs\" variant=\"surface\" onClick={onRequestEdit}>\n <Icon as={Pencil} boxSize=\"14px\" />\n </IconButton>\n </Tooltip>\n ) : null}\n <Tooltip content=\"Fullscreen\">\n <IconButton aria-label=\"Fullscreen\" size=\"xs\" variant=\"surface\" onClick={onOpenFullscreen}>\n <Icon as={Maximize2} boxSize=\"14px\" />\n </IconButton>\n </Tooltip>\n </Stack>\n );\n};\n\nexport const MermaidZoomControls = (props: MermaidZoomControlsProps) => {\n const { zoom, onZoomChange } = props;\n\n return (\n <Stack\n data-testid=\"mermaid-zoom-controls\"\n gap=\"2xs\"\n position=\"absolute\"\n right=\"sm\"\n bottom=\"sm\"\n zIndex=\"1\"\n onPointerDown={(event) => event.stopPropagation()}\n >\n <Tooltip content=\"Zoom in\">\n <IconButton\n aria-label=\"Zoom in\"\n size=\"xs\"\n variant=\"surface\"\n onClick={() => onZoomChange(zoomIn(zoom))}\n disabled={zoom >= MERMAID_MAX_ZOOM}\n >\n <Icon as={Plus} boxSize=\"14px\" />\n </IconButton>\n </Tooltip>\n <Tooltip content=\"Zoom out\">\n <IconButton\n aria-label=\"Zoom out\"\n size=\"xs\"\n variant=\"surface\"\n onClick={() => onZoomChange(zoomOut(zoom))}\n disabled={zoom <= MERMAID_MIN_ZOOM}\n >\n <Icon as={Minus} boxSize=\"14px\" />\n </IconButton>\n </Tooltip>\n </Stack>\n );\n};\n","import { Box } from \"@chakra-ui/react\";\nimport type { PointerEvent, ReactNode } from \"react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { MermaidZoomControls } from \"./mermaid-toolbar\";\nimport { createSvgDataUrl } from \"./svg-data-url\";\n\ninterface MermaidSvgViewProps {\n svg: string;\n zoom: number;\n allowPanAtDefaultZoom?: boolean;\n maxHeight?: string;\n minHeight?: string;\n overlayActions?: ReactNode;\n onZoomChange: (zoom: number) => void;\n}\n\nexport const MermaidSvgView = (props: MermaidSvgViewProps) => {\n const {\n allowPanAtDefaultZoom = false,\n maxHeight = \"420px\",\n minHeight = \"220px\",\n overlayActions,\n svg,\n zoom,\n onZoomChange,\n } = props;\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 canPan = allowPanAtDefaultZoom || zoom > 1;\n\n const handlePointerDown = (event: PointerEvent<HTMLDivElement>) => {\n if (!canPan) {\n return;\n }\n\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\n const handlePointerMove = (event: PointerEvent<HTMLDivElement>) => {\n if (!canPan || !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\n const handlePointerUp = (event: PointerEvent<HTMLDivElement>) => {\n if (!canPan || panStartRef.current.pointerId !== event.pointerId) {\n return;\n }\n\n setIsPanning(false);\n event.currentTarget.releasePointerCapture(event.pointerId);\n };\n\n useEffect(() => {\n if (canPan) {\n return;\n }\n\n setOffset({ x: 0, y: 0 });\n setIsPanning(false);\n }, [canPan]);\n\n return (\n <Box\n data-testid=\"mermaid-diagram-surface\"\n position=\"relative\"\n minHeight={minHeight}\n maxHeight={maxHeight}\n overflow=\"hidden\"\n cursor={canPan ? (isPanning ? \"grabbing\" : \"grab\") : \"default\"}\n touchAction={canPan ? \"none\" : \"auto\"}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onPointerCancel={() => {\n setIsPanning(false);\n }}\n >\n <Box\n data-testid=\"mermaid-diagram-transform\"\n data-pan-enabled={canPan ? \"true\" : \"false\"}\n width=\"100%\"\n maxHeight={maxHeight}\n textAlign=\"center\"\n transform={`translate3d(${offset.x}px, ${offset.y}px, 0) scale(${zoom})`}\n transformOrigin=\"top left\"\n cursor={canPan ? (isPanning ? \"grabbing\" : \"grab\") : \"default\"}\n css={{\n \"& img\": {\n display: \"inline-block\",\n width: \"auto\",\n maxWidth: \"100%\",\n maxHeight,\n height: \"auto\",\n userSelect: \"none\",\n },\n }}\n >\n <img alt=\"Mermaid diagram\" draggable={false} src={createSvgDataUrl(svg)} />\n </Box>\n {overlayActions}\n <MermaidZoomControls zoom={zoom} onZoomChange={onZoomChange} />\n </Box>\n );\n};\n","import mermaid from \"mermaid\";\nimport { useEffect, useState } from \"react\";\n\nlet mermaidInitialized = false;\nlet renderSequence = 0;\n\nconst initializeMermaid = () => {\n if (mermaidInitialized) {\n return;\n }\n\n mermaid.initialize({\n startOnLoad: false,\n htmlLabels: true,\n flowchart: {\n htmlLabels: true,\n },\n securityLevel: \"antiscript\",\n theme: \"default\",\n });\n\n mermaidInitialized = true;\n};\n\nconst nextRenderId = () => {\n renderSequence += 1;\n return `mermaid-${renderSequence}`;\n};\n\nconst formatMermaidError = (error: unknown) => {\n if (!(error instanceof Error)) {\n return \"Failed to render Mermaid diagram.\";\n }\n\n const message = error.message.trim();\n if (!message) {\n return \"Failed to render Mermaid diagram.\";\n }\n\n return message.split(\"\\n\").filter(Boolean).slice(0, 3).join(\"\\n\");\n};\n\nexport const useMermaidRender = (code: string) => {\n const [svg, setSvg] = useState(\"\");\n const [error, setError] = useState(\"\");\n const [isRendering, setIsRendering] = useState(false);\n\n useEffect(() => {\n let cancelled = false;\n\n const renderDiagram = async () => {\n initializeMermaid();\n setIsRendering(true);\n setError(\"\");\n\n try {\n const result = await mermaid.render(nextRenderId(), code);\n if (cancelled) {\n return;\n }\n\n setSvg(result.svg);\n } catch (renderError) {\n if (cancelled) {\n return;\n }\n\n setSvg(\"\");\n setError(formatMermaidError(renderError));\n } finally {\n if (!cancelled) {\n setIsRendering(false);\n }\n }\n };\n\n void renderDiagram();\n\n return () => {\n cancelled = true;\n };\n }, [code]);\n\n return { svg, error, isRendering };\n};\n","import { Box, Text } from \"@chakra-ui/react\";\nimport type { ReactNode } from \"react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { downloadMermaidPng } from \"./download-png\";\nimport { MermaidErrorState } from \"./mermaid-error-state\";\nimport { MermaidFullscreen } from \"./mermaid-fullscreen\";\nimport { MermaidSvgView } from \"./mermaid-svg-view\";\nimport { MermaidInlineToolbar } from \"./mermaid-toolbar\";\nimport { useMermaidRender } from \"./use-mermaid-render\";\n\nexport interface MermaidRendererProps {\n code: string;\n initialFullscreenOpen?: boolean;\n initialZoom?: number;\n isEditable?: boolean;\n onRequestEdit?: () => void;\n}\n\ninterface MermaidPreviewContentProps {\n allowPanAtDefaultZoom?: boolean;\n code: string;\n error: string;\n isRendering: boolean;\n maxHeight?: string;\n minHeight?: string;\n overlayActions?: ReactNode;\n svg: string;\n zoom: number;\n onZoomChange: (zoom: number) => void;\n}\n\nconst MermaidPreviewContent = (props: MermaidPreviewContentProps) => {\n const {\n allowPanAtDefaultZoom,\n code,\n error,\n isRendering,\n maxHeight,\n minHeight,\n overlayActions,\n svg,\n zoom,\n onZoomChange,\n } = props;\n\n if (isRendering) {\n return (\n <Box position=\"relative\" minHeight={minHeight ?? \"220px\"} maxHeight={maxHeight} overflow=\"hidden\">\n <Text color=\"fg.muted\" textStyle=\"paragraph/S/regular\">\n Rendering diagram...\n </Text>\n {overlayActions}\n </Box>\n );\n }\n\n if (error) {\n return (\n <Box position=\"relative\" minHeight={minHeight ?? \"220px\"} maxHeight={maxHeight} overflow=\"hidden\">\n <MermaidErrorState code={code} error={error} />\n {overlayActions}\n </Box>\n );\n }\n\n return (\n <MermaidSvgView\n key={svg}\n allowPanAtDefaultZoom={allowPanAtDefaultZoom}\n maxHeight={maxHeight}\n minHeight={minHeight}\n overlayActions={overlayActions}\n svg={svg}\n zoom={zoom}\n onZoomChange={onZoomChange}\n />\n );\n};\n\nexport const MermaidRenderer = (props: MermaidRendererProps) => {\n const { code, initialFullscreenOpen = false, initialZoom = 1, isEditable = false, onRequestEdit } = props;\n const { svg, error, isRendering } = useMermaidRender(code);\n const [inlineZoom, setInlineZoom] = useState(initialZoom);\n const [fullscreenZoom, setFullscreenZoom] = useState(1);\n const [isFullscreenOpen, setIsFullscreenOpen] = useState(initialFullscreenOpen);\n const previousResetValuesRef = useRef({ code, initialZoom });\n const canDownload = Boolean(svg) && !error && !isRendering;\n\n useEffect(() => {\n const previousResetValues = previousResetValuesRef.current;\n if (previousResetValues.code === code && previousResetValues.initialZoom === initialZoom) {\n return;\n }\n\n previousResetValuesRef.current = { code, initialZoom };\n setInlineZoom(initialZoom);\n setFullscreenZoom(1);\n }, [code, initialZoom]);\n\n const openFullscreen = () => {\n setFullscreenZoom(1);\n setIsFullscreenOpen(true);\n };\n\n return (\n <Box width=\"100%\">\n <MermaidPreviewContent\n code={code}\n error={error}\n isRendering={isRendering}\n overlayActions={\n <MermaidInlineToolbar\n isEditable={isEditable}\n onRequestEdit={onRequestEdit}\n onOpenFullscreen={openFullscreen}\n />\n }\n svg={svg}\n zoom={inlineZoom}\n onZoomChange={setInlineZoom}\n />\n <MermaidFullscreen\n open={isFullscreenOpen}\n canDownload={canDownload}\n onClose={() => setIsFullscreenOpen(false)}\n onDownload={() => downloadMermaidPng({ svg, zoom: fullscreenZoom })}\n >\n <MermaidPreviewContent\n allowPanAtDefaultZoom\n code={code}\n error={error}\n isRendering={isRendering}\n maxHeight=\"100%\"\n minHeight=\"100%\"\n svg={svg}\n zoom={fullscreenZoom}\n onZoomChange={setFullscreenZoom}\n />\n </MermaidFullscreen>\n </Box>\n );\n};\n"],"names":["MERMAID_MIN_ZOOM","MERMAID_MAX_ZOOM","MERMAID_ZOOM_STEP","clampMermaidZoom","value","Number","Math","min","max","toFixed","zoomIn","zoom","zoomOut","parseSvgLength","parsed","parseFloat","isFinite","readAttribute","svg","name","match","RegExp","resolveSvgSize","viewBox","split","map","viewBoxWidth","viewBoxHeight","width","height","closeVoidHtmlTags","replace","normalizeSvgForImage","sized","tag","withWidth","test","createSvgDataUrl","bytes","TextEncoder","encode","binary","byte","String","fromCharCode","btoa","loadImage","url","Promise","resolve","reject","image","Image","style","position","left","top","pointerEvents","onload","cleanup","remove","onerror","Error","document","body","append","src","canvasToPngBlob","canvas","toBlob","blob","triggerDownload","filename","URL","createObjectURL","anchor","createElement","href","download","click","window","setTimeout","revokeObjectURL","downloadMermaidPng","options","svgUrl","scale","ceil","context","getContext","drawImage","MermaidErrorState","props","$","_c","code","error","t0","Symbol","for","Text","t1","jsx","t2","p","t3","ScrollArea","Box","t4","jsxs","MermaidFullscreen","children","canDownload","open","onClose","onDownload","details","Dialog","Icon","Download","t5","Button","t6","X","t7","IconButton","t8","Stack","t9","t10","Portal","t11","MermaidInlineToolbar","isEditable","onRequestEdit","onOpenFullscreen","Tooltip","Pencil","Maximize2","_temp","MermaidZoomControls","onZoomChange","Plus","Minus","_temp2","event","stopPropagation","MermaidSvgView","allowPanAtDefaultZoom","maxHeight","minHeight","overlayActions","undefined","x","y","offset","setOffset","useState","isPanning","setIsPanning","pointerId","panStartRef","useRef","canPan","current","clientX","clientY","currentTarget","setPointerCapture","handlePointerDown","event_0","handlePointerMove","event_1","releasePointerCapture","handlePointerUp","useEffect","t12","t13","t14","t15","t16","display","maxWidth","userSelect","t17","t18","t19","t20","t21","mermaidInitialized","renderSequence","initializeMermaid","mermaid","initialize","startOnLoad","htmlLabels","flowchart","securityLevel","theme","nextRenderId","formatMermaidError","message","trim","filter","Boolean","slice","join","useMermaidRender","setSvg","setError","isRendering","setIsRendering","cancelled","result","render","renderError","renderDiagram","MermaidPreviewContent","MermaidRenderer","initialFullscreenOpen","initialZoom","inlineZoom","setInlineZoom","fullscreenZoom","setFullscreenZoom","isFullscreenOpen","setIsFullscreenOpen","previousResetValuesRef","previousResetValues","openFullscreen"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"resource-badge-D33IFv74.js","sources":["../src/components/tooltip.tsx","../src/components/scroll-area.tsx","../src/utils/get-file-type-icon.ts","../src/components/resource-badge.tsx"],"sourcesContent":["import { Tooltip as ChakraTooltip, Portal } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface TooltipProps extends ChakraTooltip.RootProps {\n children?: React.ReactElement;\n showArrow?: boolean;\n portalled?: boolean;\n portalRef?: React.RefObject<HTMLElement>;\n content: React.ReactNode;\n contentProps?: ChakraTooltip.ContentProps;\n disabled?: boolean;\n}\n\nexport const Tooltip = React.forwardRef<HTMLDivElement, TooltipProps>(function Tooltip(props, ref) {\n const { showArrow, children, disabled, portalled = true, content, contentProps, portalRef, ...rest } = props;\n\n const isEmptyContent = (node: React.ReactNode): boolean => {\n if (node === null || node === undefined || node === false) return true;\n const arr = React.Children.toArray(node);\n if (arr.length === 0) return true;\n return arr.every((child) => (typeof child === \"string\" ? child.trim().length === 0 : false));\n };\n\n if (disabled || isEmptyContent(content)) return children;\n\n return (\n <ChakraTooltip.Root openDelay={100} closeDelay={100} {...rest}>\n <ChakraTooltip.Trigger asChild>{children}</ChakraTooltip.Trigger>\n <Portal disabled={!portalled} container={portalRef}>\n <ChakraTooltip.Positioner>\n <ChakraTooltip.Content ref={ref} {...contentProps}>\n {showArrow && (\n <ChakraTooltip.Arrow>\n <ChakraTooltip.ArrowTip />\n </ChakraTooltip.Arrow>\n )}\n {content}\n </ChakraTooltip.Content>\n </ChakraTooltip.Positioner>\n </Portal>\n </ChakraTooltip.Root>\n );\n});\n","import { ScrollArea as ChakraScrollArea } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\ntype VerticalScrollbarProps = Omit<ChakraScrollArea.ScrollbarProps, \"orientation\">;\ntype HorizontalScrollbarProps = Omit<ChakraScrollArea.ScrollbarProps, \"orientation\">;\n\nexport interface ScrollAreaProps extends ChakraScrollArea.RootProps {\n viewportRef?: React.Ref<HTMLDivElement>;\n contentRef?: React.Ref<HTMLDivElement>;\n viewportProps?: ChakraScrollArea.ViewportProps;\n contentProps?: ChakraScrollArea.ContentProps;\n verticalScrollbarProps?: VerticalScrollbarProps;\n horizontalScrollbarProps?: HorizontalScrollbarProps;\n showVerticalScrollbar?: boolean;\n showHorizontalScrollbar?: boolean;\n showCorner?: boolean;\n}\n\nexport const ScrollArea = React.forwardRef<HTMLDivElement, ScrollAreaProps>(function ScrollArea(props, ref) {\n const {\n children,\n viewportRef,\n contentRef,\n viewportProps,\n contentProps,\n verticalScrollbarProps,\n horizontalScrollbarProps,\n showVerticalScrollbar = true,\n showHorizontalScrollbar = false,\n showCorner = showVerticalScrollbar && showHorizontalScrollbar,\n size = \"xs\",\n ...rest\n } = props;\n\n const mergedContentProps = showHorizontalScrollbar\n ? contentProps\n : { ...contentProps, style: { minWidth: 0, ...contentProps?.style } };\n\n return (\n <ChakraScrollArea.Root ref={ref} size={size} {...rest}>\n <ChakraScrollArea.Viewport {...viewportProps} ref={viewportRef}>\n <ChakraScrollArea.Content {...mergedContentProps} ref={contentRef}>\n {children}\n </ChakraScrollArea.Content>\n </ChakraScrollArea.Viewport>\n {showVerticalScrollbar ? <ChakraScrollArea.Scrollbar {...verticalScrollbarProps} borderRadius={\"xs\"} /> : null}\n {showHorizontalScrollbar ? (\n <ChakraScrollArea.Scrollbar orientation=\"horizontal\" {...horizontalScrollbarProps} borderRadius={\"xs\"} />\n ) : null}\n {showCorner ? <ChakraScrollArea.Corner /> : null}\n </ChakraScrollArea.Root>\n );\n});\n","import type { LucideIcon } from \"lucide-react\";\nimport {\n File,\n FileArchive,\n FileChartLine,\n FileCode,\n FileCog,\n FileImage,\n FileJson,\n FileSpreadsheet,\n FileText,\n} from \"lucide-react\";\n\nexport const getFileTypeIcon = (filename: string): LucideIcon => {\n const extension = filename.split(\".\").pop()?.toLowerCase() ?? \"\";\n\n if ([\"csv\", \"tsv\", \"xlsx\", \"xls\", \"parquet\"].includes(extension)) return FileSpreadsheet;\n if (\n [\n \"sql\",\n \"py\",\n \"js\",\n \"ts\",\n \"jsx\",\n \"tsx\",\n \"java\",\n \"cpp\",\n \"c\",\n \"h\",\n \"css\",\n \"scss\",\n \"sass\",\n \"php\",\n \"rb\",\n \"go\",\n \"rs\",\n \"kt\",\n \"swift\",\n ].includes(extension)\n ) {\n return FileCode;\n }\n if ([\"json\", \"jsonl\", \"ndjson\"].includes(extension)) {\n if (filename.includes(\"/visualizations/\")) return FileChartLine;\n return FileJson;\n }\n if ([\"md\", \"txt\", \"rst\", \"org\", \"pdf\", \"doc\", \"docx\", \"rtf\"].includes(extension)) return FileText;\n if ([\"yaml\", \"yml\", \"toml\", \"ini\", \"conf\", \"config\"].includes(extension)) return FileCog;\n if ([\"png\", \"jpg\", \"jpeg\", \"gif\", \"svg\", \"webp\", \"ico\"].includes(extension)) return FileImage;\n if ([\"zip\", \"tar\", \"gz\", \"rar\", \"7z\"].includes(extension)) return FileArchive;\n return File;\n};\n","import type { HTMLChakraProps } from \"@chakra-ui/react\";\nimport { chakra, IconButton, Spacer, Text } from \"@chakra-ui/react\";\nimport type { LucideIcon } from \"lucide-react\";\nimport { AlertTriangle, X } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { getFileTypeIcon } from \"../utils/get-file-type-icon\";\nimport { Tooltip } from \"./tooltip\";\n\nconst SIZE_STYLES = {\n sm: {\n container: {\n height: \"20px\",\n lineHeight: { base: \"20px\" },\n px: \"2xs\",\n },\n iconSize: 12,\n textStyle: \"xs\",\n },\n md: {\n container: {\n height: \"24px\",\n lineHeight: { base: \"24px\" },\n px: \"xs\",\n },\n iconSize: 14,\n textStyle: \"sm\",\n },\n} as const;\n\nconst TONE_STYLES = {\n neutral: {\n color: \"color.primary\",\n bg: \"bg.muted\",\n _hover: {\n bg: \"bg.emphasized\",\n },\n },\n accent: {\n color: \"var(--schub-foreground-accent)\",\n bg: \"var(--schub-accent-subtle)\",\n _hover: {\n bg: \"var(--schub-accent-subtle)\",\n },\n },\n} as const;\n\nexport interface MissingResourceBadgeProps {\n referenceId: string;\n onRemove?: (referenceId: string) => void;\n}\n\n/**\n * Shown when a reference points to a resource that no longer exists\n */\nexport const MissingResourceBadge = (props: MissingResourceBadgeProps) => {\n const { referenceId, onRemove } = props;\n return (\n <chakra.span\n height=\"24px\"\n lineHeight={{ base: \"24px\" }}\n gap=\"2xs\"\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n paddingX=\"xs\"\n borderRadius=\"xs\"\n color={`fg.error`}\n bg={`bg.accent-secondary.red-light`}\n _hover={{\n bg: `bg.accent-secondary.red-light`,\n }}\n >\n <chakra.span mr=\"xs\" display=\"inline-flex\">\n <AlertTriangle size={14} />\n </chakra.span>\n <Text maxW={{ base: \"17.5rem\" }} textOverflow=\"ellipsis\" whiteSpace=\"nowrap\" overflow=\"hidden\">\n Missing Reference\n </Text>\n <Spacer />\n {onRemove && (\n <IconButton\n color=\"fg.error\"\n aria-label=\"Remove reference\"\n size=\"2xs\"\n ml=\"sm\"\n variant=\"ghost\"\n _hover={{\n bg: \"transparent\",\n }}\n onClick={(e) => {\n e.stopPropagation();\n onRemove?.(referenceId);\n }}\n >\n <X size={12} />\n </IconButton>\n )}\n </chakra.span>\n );\n};\n\nexport type ResourceBadgeSize = keyof typeof SIZE_STYLES;\nexport type ResourceBadgeTone = keyof typeof TONE_STYLES;\n\nexport interface ResourceBadgeProps extends Omit<HTMLChakraProps<\"span\">, \"onSelect\"> {\n fileName: string;\n onRemove?: (fileName: string) => void;\n onSelect?: (fileName: string) => void;\n size?: ResourceBadgeSize;\n tone?: ResourceBadgeTone;\n icon?: ReactNode;\n}\n\nconst DEFAULT_SIZE: ResourceBadgeSize = \"md\";\nconst DEFAULT_TONE: ResourceBadgeTone = \"neutral\";\n\nexport const ResourceBadge = (props: ResourceBadgeProps) => {\n const { fileName, onSelect, onRemove, size = DEFAULT_SIZE, tone = DEFAULT_TONE, icon, ...rest } = props;\n const IconComp: LucideIcon = getFileTypeIcon(fileName);\n const sizeStyles = SIZE_STYLES[size];\n const toneStyles = TONE_STYLES[tone];\n\n return (\n <chakra.span\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n borderRadius=\"xs\"\n gap=\"2xs\"\n cursor={onSelect ? \"pointer\" : \"default\"}\n {...toneStyles}\n {...sizeStyles.container}\n onClick={(e) => {\n e.stopPropagation();\n onSelect?.(fileName);\n }}\n {...rest}\n >\n <chakra.span mr=\"xs\" display=\"inline-flex\">\n {icon ?? <IconComp size={sizeStyles.iconSize} />}\n </chakra.span>\n <Tooltip content={fileName}>\n <Text\n maxW={{ base: \"14rem\" }}\n textOverflow=\"ellipsis\"\n whiteSpace=\"nowrap\"\n overflow=\"hidden\"\n textStyle={sizeStyles.textStyle}\n >\n {fileName}\n </Text>\n </Tooltip>\n <Spacer />\n {onRemove && (\n <IconButton\n aria-label={`Remove ${fileName}`}\n size=\"2xs\"\n ml=\"xs\"\n variant=\"ghost\"\n _hover={{\n bg: \"transparent\",\n }}\n onClick={(e) => {\n e.stopPropagation();\n onRemove?.(fileName);\n }}\n >\n <X size={12} />\n </IconButton>\n )}\n </chakra.span>\n );\n};\n"],"names":["Tooltip","React","forwardRef","props","ref","$","_c","children","content","contentProps","disabled","portalRef","rest","showArrow","t0","portalled","undefined","_temp2","t1","ChakraTooltip","t2","t3","jsx","t4","jsxs","t5","Portal","t6","_temp","child","trim","length","node","arr","Children","toArray","every","ScrollArea","contentRef","horizontalScrollbarProps","verticalScrollbarProps","viewportProps","viewportRef","showVerticalScrollbar","showHorizontalScrollbar","showCorner","size","style","minWidth","mergedContentProps","ChakraScrollArea","t7","t8","t9","t10","getFileTypeIcon","filename","extension","split","pop","toLowerCase","includes","FileSpreadsheet","FileCode","FileChartLine","FileJson","FileText","FileCog","FileImage","FileArchive","File","SIZE_STYLES","sm","container","height","lineHeight","base","px","iconSize","textStyle","md","TONE_STYLES","neutral","color","bg","_hover","accent","DEFAULT_SIZE","DEFAULT_TONE","ResourceBadge","fileName","icon","onRemove","onSelect","tone","IconComp","sizeStyles","toneStyles","e","stopPropagation","chakra","Symbol","for","Text","Spacer","t11","IconButton","e_0","X","t12"],"mappings":"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"}
@@ -1,64 +0,0 @@
1
- export declare const shadows: {
2
- "low-light": {
3
- value: string;
4
- };
5
- "mid-light": {
6
- value: string;
7
- };
8
- "high-light": {
9
- value: string;
10
- };
11
- "low-dark": {
12
- value: string;
13
- };
14
- "mid-dark": {
15
- value: string;
16
- };
17
- "high-dark": {
18
- value: string;
19
- };
20
- "desktop-icon-label-text-light": {
21
- value: string;
22
- };
23
- "desktop-icon-label-text-dark": {
24
- value: string;
25
- };
26
- "desktop-icon-label-text-selected-light": {
27
- value: string;
28
- };
29
- "desktop-icon-label-text-selected-dark": {
30
- value: string;
31
- };
32
- };
33
- export declare const semanticShadows: {
34
- low: {
35
- value: {
36
- _light: string;
37
- _dark: string;
38
- };
39
- };
40
- mid: {
41
- value: {
42
- _light: string;
43
- _dark: string;
44
- };
45
- };
46
- high: {
47
- value: {
48
- _light: string;
49
- _dark: string;
50
- };
51
- };
52
- "desktop-icon-label": {
53
- value: {
54
- _light: string;
55
- _dark: string;
56
- };
57
- };
58
- "desktop-icon-label-selected": {
59
- value: {
60
- _light: string;
61
- _dark: string;
62
- };
63
- };
64
- };