@docubook/mdx-content 3.4.1 → 3.4.3
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/README.md +4 -3
- package/dist/chunk-PSDC53TU.js +1056 -0
- package/dist/chunk-PSDC53TU.js.map +1 -0
- package/dist/client.d.ts +91 -9
- package/dist/client.js +1191 -8
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +91 -20
- package/dist/index.js +1245 -19
- package/dist/index.js.map +1 -1
- package/dist/server-BObcTM97.d.ts +100 -0
- package/dist/server.d.ts +3 -11
- package/dist/server.js +40 -10
- package/dist/server.js.map +1 -1
- package/package.json +5 -14
- package/dist/__test__/AccordionMdx.test.d.ts +0 -2
- package/dist/__test__/AccordionMdx.test.d.ts.map +0 -1
- package/dist/__test__/AccordionMdx.test.js +0 -21
- package/dist/__test__/AccordionMdx.test.js.map +0 -1
- package/dist/__test__/AccordionsMdx.test.d.ts +0 -2
- package/dist/__test__/AccordionsMdx.test.d.ts.map +0 -1
- package/dist/__test__/AccordionsMdx.test.js +0 -22
- package/dist/__test__/AccordionsMdx.test.js.map +0 -1
- package/dist/__test__/ButtonMdx.test.d.ts +0 -2
- package/dist/__test__/ButtonMdx.test.d.ts.map +0 -1
- package/dist/__test__/ButtonMdx.test.js +0 -20
- package/dist/__test__/ButtonMdx.test.js.map +0 -1
- package/dist/__test__/CardMdx.test.d.ts +0 -2
- package/dist/__test__/CardMdx.test.d.ts.map +0 -1
- package/dist/__test__/CardMdx.test.js +0 -29
- package/dist/__test__/CardMdx.test.js.map +0 -1
- package/dist/__test__/CardsMdx.test.d.ts +0 -2
- package/dist/__test__/CardsMdx.test.d.ts.map +0 -1
- package/dist/__test__/CardsMdx.test.js +0 -33
- package/dist/__test__/CardsMdx.test.js.map +0 -1
- package/dist/__test__/CodeBlockMdx.test.d.ts +0 -2
- package/dist/__test__/CodeBlockMdx.test.d.ts.map +0 -1
- package/dist/__test__/CodeBlockMdx.test.js +0 -48
- package/dist/__test__/CodeBlockMdx.test.js.map +0 -1
- package/dist/__test__/FileTreeMdx.test.d.ts +0 -2
- package/dist/__test__/FileTreeMdx.test.d.ts.map +0 -1
- package/dist/__test__/FileTreeMdx.test.js +0 -26
- package/dist/__test__/FileTreeMdx.test.js.map +0 -1
- package/dist/__test__/ImageMdx.test.d.ts +0 -2
- package/dist/__test__/ImageMdx.test.d.ts.map +0 -1
- package/dist/__test__/ImageMdx.test.js +0 -32
- package/dist/__test__/ImageMdx.test.js.map +0 -1
- package/dist/__test__/KbdMdx.test.d.ts +0 -2
- package/dist/__test__/KbdMdx.test.d.ts.map +0 -1
- package/dist/__test__/KbdMdx.test.js +0 -27
- package/dist/__test__/KbdMdx.test.js.map +0 -1
- package/dist/__test__/LinkMdx.test.d.ts +0 -2
- package/dist/__test__/LinkMdx.test.d.ts.map +0 -1
- package/dist/__test__/LinkMdx.test.js +0 -29
- package/dist/__test__/LinkMdx.test.js.map +0 -1
- package/dist/__test__/MermaidMdx.test.d.ts +0 -2
- package/dist/__test__/MermaidMdx.test.d.ts.map +0 -1
- package/dist/__test__/MermaidMdx.test.js +0 -287
- package/dist/__test__/MermaidMdx.test.js.map +0 -1
- package/dist/__test__/NoteMdx.test.d.ts +0 -2
- package/dist/__test__/NoteMdx.test.d.ts.map +0 -1
- package/dist/__test__/NoteMdx.test.js +0 -39
- package/dist/__test__/NoteMdx.test.js.map +0 -1
- package/dist/__test__/ReleaseMdx.test.d.ts +0 -2
- package/dist/__test__/ReleaseMdx.test.d.ts.map +0 -1
- package/dist/__test__/ReleaseMdx.test.js +0 -39
- package/dist/__test__/ReleaseMdx.test.js.map +0 -1
- package/dist/__test__/StepperMdx.test.d.ts +0 -2
- package/dist/__test__/StepperMdx.test.d.ts.map +0 -1
- package/dist/__test__/StepperMdx.test.js +0 -25
- package/dist/__test__/StepperMdx.test.js.map +0 -1
- package/dist/__test__/TableMdx.test.d.ts +0 -2
- package/dist/__test__/TableMdx.test.d.ts.map +0 -1
- package/dist/__test__/TableMdx.test.js +0 -25
- package/dist/__test__/TableMdx.test.js.map +0 -1
- package/dist/__test__/TabsMdx.test.d.ts +0 -2
- package/dist/__test__/TabsMdx.test.d.ts.map +0 -1
- package/dist/__test__/TabsMdx.test.js +0 -30
- package/dist/__test__/TabsMdx.test.js.map +0 -1
- package/dist/__test__/TooltipMdx.test.d.ts +0 -2
- package/dist/__test__/TooltipMdx.test.d.ts.map +0 -1
- package/dist/__test__/TooltipMdx.test.js +0 -23
- package/dist/__test__/TooltipMdx.test.js.map +0 -1
- package/dist/__test__/YoutubeMdx.test.d.ts +0 -2
- package/dist/__test__/YoutubeMdx.test.d.ts.map +0 -1
- package/dist/__test__/YoutubeMdx.test.js +0 -25
- package/dist/__test__/YoutubeMdx.test.js.map +0 -1
- package/dist/__test__/utils/ExpandableCode.test.d.ts +0 -2
- package/dist/__test__/utils/ExpandableCode.test.d.ts.map +0 -1
- package/dist/__test__/utils/ExpandableCode.test.js +0 -62
- package/dist/__test__/utils/ExpandableCode.test.js.map +0 -1
- package/dist/__test__/utils/Icon.test.d.ts +0 -2
- package/dist/__test__/utils/Icon.test.d.ts.map +0 -1
- package/dist/__test__/utils/Icon.test.js +0 -29
- package/dist/__test__/utils/Icon.test.js.map +0 -1
- package/dist/adapters/next/ButtonMdx.d.ts +0 -4
- package/dist/adapters/next/ButtonMdx.d.ts.map +0 -1
- package/dist/adapters/next/ButtonMdx.js +0 -8
- package/dist/adapters/next/ButtonMdx.js.map +0 -1
- package/dist/adapters/next/CardMdx.d.ts +0 -4
- package/dist/adapters/next/CardMdx.d.ts.map +0 -1
- package/dist/adapters/next/CardMdx.js +0 -8
- package/dist/adapters/next/CardMdx.js.map +0 -1
- package/dist/adapters/next/ImageMdx.d.ts +0 -8
- package/dist/adapters/next/ImageMdx.d.ts.map +0 -1
- package/dist/adapters/next/ImageMdx.js +0 -8
- package/dist/adapters/next/ImageMdx.js.map +0 -1
- package/dist/adapters/next/LinkMdx.d.ts +0 -3
- package/dist/adapters/next/LinkMdx.d.ts.map +0 -1
- package/dist/adapters/next/LinkMdx.js +0 -11
- package/dist/adapters/next/LinkMdx.js.map +0 -1
- package/dist/adapters/next/index.d.ts +0 -5
- package/dist/adapters/next/index.d.ts.map +0 -1
- package/dist/adapters/next/index.js +0 -5
- package/dist/adapters/next/index.js.map +0 -1
- package/dist/client.d.ts.map +0 -1
- package/dist/components/AccordionMdx.d.ts +0 -11
- package/dist/components/AccordionMdx.d.ts.map +0 -1
- package/dist/components/AccordionMdx.js +0 -64
- package/dist/components/AccordionMdx.js.map +0 -1
- package/dist/components/AccordionsMdx.d.ts +0 -7
- package/dist/components/AccordionsMdx.d.ts.map +0 -1
- package/dist/components/AccordionsMdx.js +0 -14
- package/dist/components/AccordionsMdx.js.map +0 -1
- package/dist/components/ButtonMdx.d.ts +0 -17
- package/dist/components/ButtonMdx.d.ts.map +0 -1
- package/dist/components/ButtonMdx.js +0 -57
- package/dist/components/ButtonMdx.js.map +0 -1
- package/dist/components/CardMdx.d.ts +0 -17
- package/dist/components/CardMdx.d.ts.map +0 -1
- package/dist/components/CardMdx.js +0 -52
- package/dist/components/CardMdx.js.map +0 -1
- package/dist/components/CardsMdx.d.ts +0 -9
- package/dist/components/CardsMdx.d.ts.map +0 -1
- package/dist/components/CardsMdx.js +0 -9
- package/dist/components/CardsMdx.js.map +0 -1
- package/dist/components/CodeBlockMdx.d.ts +0 -11
- package/dist/components/CodeBlockMdx.d.ts.map +0 -1
- package/dist/components/CodeBlockMdx.js +0 -135
- package/dist/components/CodeBlockMdx.js.map +0 -1
- package/dist/components/FileTreeMdx.d.ts +0 -19
- package/dist/components/FileTreeMdx.d.ts.map +0 -1
- package/dist/components/FileTreeMdx.js +0 -99
- package/dist/components/FileTreeMdx.js.map +0 -1
- package/dist/components/ImageMdx.d.ts +0 -8
- package/dist/components/ImageMdx.d.ts.map +0 -1
- package/dist/components/ImageMdx.js +0 -111
- package/dist/components/ImageMdx.js.map +0 -1
- package/dist/components/KbdMdx.d.ts +0 -9
- package/dist/components/KbdMdx.d.ts.map +0 -1
- package/dist/components/KbdMdx.js +0 -74
- package/dist/components/KbdMdx.js.map +0 -1
- package/dist/components/LinkMdx.d.ts +0 -4
- package/dist/components/LinkMdx.d.ts.map +0 -1
- package/dist/components/LinkMdx.js +0 -10
- package/dist/components/LinkMdx.js.map +0 -1
- package/dist/components/MermaidMdx.d.ts +0 -13
- package/dist/components/MermaidMdx.d.ts.map +0 -1
- package/dist/components/MermaidMdx.js +0 -241
- package/dist/components/MermaidMdx.js.map +0 -1
- package/dist/components/NoteMdx.d.ts +0 -13
- package/dist/components/NoteMdx.d.ts.map +0 -1
- package/dist/components/NoteMdx.js +0 -79
- package/dist/components/NoteMdx.js.map +0 -1
- package/dist/components/ReleaseMdx.d.ts +0 -16
- package/dist/components/ReleaseMdx.d.ts.map +0 -1
- package/dist/components/ReleaseMdx.js +0 -44
- package/dist/components/ReleaseMdx.js.map +0 -1
- package/dist/components/StepperMdx.d.ts +0 -17
- package/dist/components/StepperMdx.d.ts.map +0 -1
- package/dist/components/StepperMdx.js +0 -74
- package/dist/components/StepperMdx.js.map +0 -1
- package/dist/components/TableMdx.d.ts +0 -9
- package/dist/components/TableMdx.d.ts.map +0 -1
- package/dist/components/TableMdx.js +0 -56
- package/dist/components/TableMdx.js.map +0 -1
- package/dist/components/TabsMdx.d.ts +0 -13
- package/dist/components/TabsMdx.d.ts.map +0 -1
- package/dist/components/TabsMdx.js +0 -67
- package/dist/components/TabsMdx.js.map +0 -1
- package/dist/components/TooltipMdx.d.ts +0 -10
- package/dist/components/TooltipMdx.d.ts.map +0 -1
- package/dist/components/TooltipMdx.js +0 -36
- package/dist/components/TooltipMdx.js.map +0 -1
- package/dist/components/YoutubeMdx.d.ts +0 -7
- package/dist/components/YoutubeMdx.d.ts.map +0 -1
- package/dist/components/YoutubeMdx.js +0 -24
- package/dist/components/YoutubeMdx.js.map +0 -1
- package/dist/components/index.d.ts +0 -19
- package/dist/components/index.d.ts.map +0 -1
- package/dist/components/index.js +0 -19
- package/dist/components/index.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/registry/index.d.ts +0 -4
- package/dist/registry/index.d.ts.map +0 -1
- package/dist/registry/index.js +0 -38
- package/dist/registry/index.js.map +0 -1
- package/dist/server.d.ts.map +0 -1
- package/dist/utils/AccordionGroupContext.d.ts +0 -8
- package/dist/utils/AccordionGroupContext.d.ts.map +0 -1
- package/dist/utils/AccordionGroupContext.js +0 -4
- package/dist/utils/AccordionGroupContext.js.map +0 -1
- package/dist/utils/CopyButton.d.ts +0 -6
- package/dist/utils/CopyButton.d.ts.map +0 -1
- package/dist/utils/CopyButton.js +0 -39
- package/dist/utils/CopyButton.js.map +0 -1
- package/dist/utils/ExpandableCode.d.ts +0 -11
- package/dist/utils/ExpandableCode.d.ts.map +0 -1
- package/dist/utils/ExpandableCode.js +0 -78
- package/dist/utils/ExpandableCode.js.map +0 -1
- package/dist/utils/Icon.d.ts +0 -6
- package/dist/utils/Icon.d.ts.map +0 -1
- package/dist/utils/Icon.js +0 -12
- package/dist/utils/Icon.js.map +0 -1
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { createPortal } from "react-dom";
|
|
4
|
-
import { useEffect, useId, useRef, useState } from "react";
|
|
5
|
-
export function ImageMdx({ src, alt = "image", width = 800, height = 350, zoom = true, style, ImageComponent, ...props }) {
|
|
6
|
-
const Image = ImageComponent ?? "img";
|
|
7
|
-
const [isOpen, setIsOpen] = useState(false);
|
|
8
|
-
const scrollYRef = useRef(0);
|
|
9
|
-
const closeButtonRef = useRef(null);
|
|
10
|
-
const dialogId = useId();
|
|
11
|
-
useEffect(() => {
|
|
12
|
-
if (!isOpen)
|
|
13
|
-
return;
|
|
14
|
-
scrollYRef.current = window.scrollY;
|
|
15
|
-
document.body.style.position = "fixed";
|
|
16
|
-
document.body.style.top = `-${scrollYRef.current}px`;
|
|
17
|
-
document.body.style.width = "100%";
|
|
18
|
-
closeButtonRef.current?.focus();
|
|
19
|
-
const onEsc = (e) => {
|
|
20
|
-
if (e.key === "Escape")
|
|
21
|
-
setIsOpen(false);
|
|
22
|
-
};
|
|
23
|
-
const onFocusTrap = (e) => {
|
|
24
|
-
if (e.key !== "Tab")
|
|
25
|
-
return;
|
|
26
|
-
const dialog = document.getElementById(dialogId);
|
|
27
|
-
const focusable = dialog?.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
|
|
28
|
-
if (!focusable || focusable.length === 0)
|
|
29
|
-
return;
|
|
30
|
-
const first = focusable[0];
|
|
31
|
-
const last = focusable[focusable.length - 1];
|
|
32
|
-
if (!e.shiftKey && document.activeElement === last) {
|
|
33
|
-
e.preventDefault();
|
|
34
|
-
first.focus();
|
|
35
|
-
}
|
|
36
|
-
if (e.shiftKey && document.activeElement === first) {
|
|
37
|
-
e.preventDefault();
|
|
38
|
-
last.focus();
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
window.addEventListener("keydown", onEsc);
|
|
42
|
-
window.addEventListener("keydown", onFocusTrap);
|
|
43
|
-
return () => {
|
|
44
|
-
document.body.style.position = "";
|
|
45
|
-
document.body.style.top = "";
|
|
46
|
-
document.body.style.width = "";
|
|
47
|
-
window.scrollTo(0, scrollYRef.current);
|
|
48
|
-
window.removeEventListener("keydown", onEsc);
|
|
49
|
-
window.removeEventListener("keydown", onFocusTrap);
|
|
50
|
-
};
|
|
51
|
-
}, [dialogId, isOpen]);
|
|
52
|
-
if (!src)
|
|
53
|
-
return null;
|
|
54
|
-
const canZoom = zoom;
|
|
55
|
-
return (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", onClick: () => canZoom && setIsOpen(true), "aria-label": canZoom ? "Zoom image" : "Image", style: {
|
|
56
|
-
position: "relative",
|
|
57
|
-
width: "100%",
|
|
58
|
-
border: "none",
|
|
59
|
-
background: "transparent",
|
|
60
|
-
padding: 0,
|
|
61
|
-
margin: "1rem 0",
|
|
62
|
-
cursor: canZoom ? "zoom-in" : "default",
|
|
63
|
-
}, children: _jsx(Image, { src: src, alt: alt, width: typeof width === "number" ? width : parseInt(width, 10), height: typeof height === "number" ? height : parseInt(height, 10), style: {
|
|
64
|
-
width: "100%",
|
|
65
|
-
height: "auto",
|
|
66
|
-
borderRadius: 10,
|
|
67
|
-
objectFit: "contain",
|
|
68
|
-
...style,
|
|
69
|
-
}, ...props }) }), canZoom && isOpen ? (_jsx(Portal, { children: _jsxs("div", { id: dialogId, role: "dialog", "aria-modal": "true", "aria-label": "Image preview", onClick: () => setIsOpen(false), style: {
|
|
70
|
-
position: "fixed",
|
|
71
|
-
inset: 0,
|
|
72
|
-
zIndex: 99999,
|
|
73
|
-
background: "rgba(0,0,0,0.88)",
|
|
74
|
-
display: "flex",
|
|
75
|
-
alignItems: "center",
|
|
76
|
-
justifyContent: "center",
|
|
77
|
-
padding: "1rem",
|
|
78
|
-
}, children: [_jsx("button", { ref: closeButtonRef, type: "button", "aria-label": "Close image preview", onClick: (e) => {
|
|
79
|
-
e.stopPropagation();
|
|
80
|
-
setIsOpen(false);
|
|
81
|
-
}, style: {
|
|
82
|
-
position: "absolute",
|
|
83
|
-
top: 16,
|
|
84
|
-
right: 16,
|
|
85
|
-
border: "1px solid rgba(255,255,255,0.24)",
|
|
86
|
-
borderRadius: 8,
|
|
87
|
-
background: "rgba(0,0,0,0.45)",
|
|
88
|
-
color: "#fff",
|
|
89
|
-
padding: "0.4rem 0.55rem",
|
|
90
|
-
cursor: "pointer",
|
|
91
|
-
}, children: "Close" }), _jsx("div", { onClick: (e) => e.stopPropagation(), style: {
|
|
92
|
-
maxWidth: "92vw",
|
|
93
|
-
maxHeight: "90vh",
|
|
94
|
-
display: "flex",
|
|
95
|
-
alignItems: "center",
|
|
96
|
-
justifyContent: "center",
|
|
97
|
-
}, children: _jsx(Image, { src: src, alt: alt, width: 1920, height: 1080, style: {
|
|
98
|
-
width: "auto",
|
|
99
|
-
height: "auto",
|
|
100
|
-
maxWidth: "92vw",
|
|
101
|
-
maxHeight: "90vh",
|
|
102
|
-
objectFit: "contain",
|
|
103
|
-
borderRadius: 10,
|
|
104
|
-
} }) })] }) })) : null] }));
|
|
105
|
-
}
|
|
106
|
-
function Portal({ children }) {
|
|
107
|
-
if (typeof window === "undefined")
|
|
108
|
-
return null;
|
|
109
|
-
return createPortal(children, document.body);
|
|
110
|
-
}
|
|
111
|
-
//# sourceMappingURL=ImageMdx.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ImageMdx.js","sourceRoot":"","sources":["../../src/components/ImageMdx.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { CSSProperties } from "react";
|
|
2
|
-
type KeyboardMdxProps = {
|
|
3
|
-
show: string;
|
|
4
|
-
type?: "window" | "mac";
|
|
5
|
-
style?: CSSProperties;
|
|
6
|
-
};
|
|
7
|
-
export declare function KbdMdx({ show, type, style }: KeyboardMdxProps): import("react").JSX.Element;
|
|
8
|
-
export {};
|
|
9
|
-
//# sourceMappingURL=KbdMdx.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"KbdMdx.d.ts","sourceRoot":"","sources":["../../src/components/KbdMdx.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IACxB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAyEF,wBAAgB,MAAM,CAAC,EAAE,IAAI,EAAE,IAAe,EAAE,KAAK,EAAE,EAAE,gBAAgB,+BAKxE"}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
const wrapperStyle = {
|
|
3
|
-
display: "inline-flex",
|
|
4
|
-
alignItems: "center",
|
|
5
|
-
justifyContent: "center",
|
|
6
|
-
border: "1px solid hsl(var(--border, 210 20% 85%))",
|
|
7
|
-
borderBottomWidth: 2,
|
|
8
|
-
borderRadius: 8,
|
|
9
|
-
background: "hsl(var(--muted, 210 20% 92%))",
|
|
10
|
-
color: "hsl(var(--foreground, 220 30% 15%))",
|
|
11
|
-
minWidth: "1.9rem",
|
|
12
|
-
height: "1.7rem",
|
|
13
|
-
padding: "0 0.45rem",
|
|
14
|
-
fontSize: "0.8rem",
|
|
15
|
-
fontWeight: 600,
|
|
16
|
-
lineHeight: 1,
|
|
17
|
-
};
|
|
18
|
-
const aliases = {
|
|
19
|
-
cmd: "Win",
|
|
20
|
-
command: "Win",
|
|
21
|
-
ctrl: "Ctrl",
|
|
22
|
-
control: "Ctrl",
|
|
23
|
-
alt: "Alt",
|
|
24
|
-
option: "Alt",
|
|
25
|
-
shift: "Shift",
|
|
26
|
-
tab: "Tab",
|
|
27
|
-
enter: "Enter",
|
|
28
|
-
return: "Enter",
|
|
29
|
-
delete: "Del",
|
|
30
|
-
del: "Del",
|
|
31
|
-
escape: "Esc",
|
|
32
|
-
esc: "Esc",
|
|
33
|
-
space: "Space",
|
|
34
|
-
up: "↑",
|
|
35
|
-
down: "↓",
|
|
36
|
-
left: "←",
|
|
37
|
-
right: "→",
|
|
38
|
-
};
|
|
39
|
-
const macSymbols = {
|
|
40
|
-
cmd: "⌘",
|
|
41
|
-
command: "⌘",
|
|
42
|
-
ctrl: "⌃",
|
|
43
|
-
control: "⌃",
|
|
44
|
-
alt: "⌥",
|
|
45
|
-
option: "⌥",
|
|
46
|
-
shift: "⇧",
|
|
47
|
-
tab: "⇥",
|
|
48
|
-
enter: "⏎",
|
|
49
|
-
return: "⏎",
|
|
50
|
-
delete: "⌫",
|
|
51
|
-
del: "⌫",
|
|
52
|
-
escape: "⎋",
|
|
53
|
-
esc: "⎋",
|
|
54
|
-
space: "␣",
|
|
55
|
-
up: "↑",
|
|
56
|
-
down: "↓",
|
|
57
|
-
left: "←",
|
|
58
|
-
right: "→",
|
|
59
|
-
};
|
|
60
|
-
function normalize(show, type) {
|
|
61
|
-
const token = (show || "").toLowerCase();
|
|
62
|
-
const label = aliases[token] || show || "Key";
|
|
63
|
-
if (type === "mac") {
|
|
64
|
-
return macSymbols[token] || label;
|
|
65
|
-
}
|
|
66
|
-
return label;
|
|
67
|
-
}
|
|
68
|
-
export function KbdMdx({ show, type = "window", style }) {
|
|
69
|
-
const label = normalize(show, type);
|
|
70
|
-
const isLetter = /^[a-zA-Z]$/.test(show);
|
|
71
|
-
const display = isLetter ? show.toUpperCase() : label;
|
|
72
|
-
return _jsx("kbd", { style: { ...wrapperStyle, ...style }, children: display });
|
|
73
|
-
}
|
|
74
|
-
//# sourceMappingURL=KbdMdx.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"KbdMdx.js","sourceRoot":"","sources":["../../src/components/KbdMdx.tsx"],"names":[],"mappings":";AAQA,MAAM,YAAY,GAAkB;IAClC,OAAO,EAAE,aAAa;IACtB,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,QAAQ;IACxB,MAAM,EAAE,2CAA2C;IACnD,iBAAiB,EAAE,CAAC;IACpB,YAAY,EAAE,CAAC;IACf,UAAU,EAAE,gCAAgC;IAC5C,KAAK,EAAE,qCAAqC;IAC5C,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,CAAC;CACd,CAAC;AAEF,MAAM,OAAO,GAA2B;IACtC,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,MAAM;IACf,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,OAAO;IACd,EAAE,EAAE,GAAG;IACP,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,GAAG;CACX,CAAC;AAEF,MAAM,UAAU,GAA2B;IACzC,GAAG,EAAE,GAAG;IACR,OAAO,EAAE,GAAG;IACZ,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,GAAG;IACZ,GAAG,EAAE,GAAG;IACR,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,GAAG;IACV,GAAG,EAAE,GAAG;IACR,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,GAAG,EAAE,GAAG;IACR,MAAM,EAAE,GAAG;IACX,GAAG,EAAE,GAAG;IACR,KAAK,EAAE,GAAG;IACV,EAAE,EAAE,GAAG;IACP,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,GAAG;CACX,CAAC;AAEF,SAAS,SAAS,CAAC,IAAY,EAAE,IAAsB;IACrD,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC;IAE9C,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;IACpC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,QAAQ,EAAE,KAAK,EAAoB;IACvE,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IACtD,OAAO,cAAK,KAAK,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,EAAE,YAAG,OAAO,GAAO,CAAC;AACpE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LinkMdx.d.ts","sourceRoot":"","sources":["../../src/components/LinkMdx.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;AAE/C,wBAAgB,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,sCAQpE"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
export function LinkMdx({ href, rel, target, ...props }) {
|
|
3
|
-
if (!href)
|
|
4
|
-
return null;
|
|
5
|
-
const external = /^https?:\/\//.test(href);
|
|
6
|
-
const computedTarget = target ?? (external ? "_blank" : undefined);
|
|
7
|
-
const computedRel = rel ?? (external ? "noopener noreferrer" : undefined);
|
|
8
|
-
return _jsx("a", { href: href, target: computedTarget, rel: computedRel, ...props });
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=LinkMdx.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LinkMdx.js","sourceRoot":"","sources":["../../src/components/LinkMdx.tsx"],"names":[],"mappings":";AAIA,MAAM,UAAU,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,EAAgB;IACjE,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAE1E,OAAO,YAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,WAAW,KAAM,KAAK,GAAI,CAAC;AAClF,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
interface MermaidMdxProps {
|
|
2
|
-
/** Mermaid diagram definition (from rehype plugin or programmatic) */
|
|
3
|
-
chart: string;
|
|
4
|
-
/** Custom DOM id (auto-generated if omitted) */
|
|
5
|
-
id?: string;
|
|
6
|
-
/** Additional CSS class on container */
|
|
7
|
-
className?: string;
|
|
8
|
-
/** Show GFM-style pan/zoom controls once the diagram renders (default true) */
|
|
9
|
-
panZoom?: boolean;
|
|
10
|
-
}
|
|
11
|
-
export declare function MermaidMdx({ chart, id, className, panZoom }: MermaidMdxProps): import("react").JSX.Element | null;
|
|
12
|
-
export {};
|
|
13
|
-
//# sourceMappingURL=MermaidMdx.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MermaidMdx.d.ts","sourceRoot":"","sources":["../../src/components/MermaidMdx.tsx"],"names":[],"mappings":"AAgBA,UAAU,eAAe;IACvB,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAgED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,OAAc,EAAE,EAAE,eAAe,sCAwTnF"}
|
|
@@ -1,241 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useId, useRef, useEffect, useState, } from "react";
|
|
4
|
-
// Module-level singleton — one dynamic import regardless of diagram count
|
|
5
|
-
let mermaidPromise = null;
|
|
6
|
-
function getTheme() {
|
|
7
|
-
return document.documentElement.classList.contains("dark") ? "dark" : "default";
|
|
8
|
-
}
|
|
9
|
-
// Pan/zoom tuning — button-driven like GFM's mermaid viewer (no drag/wheel)
|
|
10
|
-
const PAN_STEP = 50;
|
|
11
|
-
const ZOOM_STEP = 1.2;
|
|
12
|
-
const MIN_SCALE = 0.4;
|
|
13
|
-
const MAX_SCALE = 4;
|
|
14
|
-
const clampScale = (scale) => Math.min(MAX_SCALE, Math.max(MIN_SCALE, scale));
|
|
15
|
-
const controlButtonStyle = {
|
|
16
|
-
display: "flex",
|
|
17
|
-
alignItems: "center",
|
|
18
|
-
justifyContent: "center",
|
|
19
|
-
width: 28,
|
|
20
|
-
height: 28,
|
|
21
|
-
padding: 0,
|
|
22
|
-
border: "1px solid rgba(127,127,127,0.35)",
|
|
23
|
-
borderRadius: 6,
|
|
24
|
-
background: "rgba(127,127,127,0.12)",
|
|
25
|
-
color: "currentcolor",
|
|
26
|
-
cursor: "pointer",
|
|
27
|
-
};
|
|
28
|
-
function ControlButton({ label, onClick, cell, children, }) {
|
|
29
|
-
return (_jsx("button", { type: "button", "aria-label": label, title: label, onClick: onClick, style: { ...controlButtonStyle, gridColumn: cell.col, gridRow: cell.row }, children: _jsx("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: children }) }));
|
|
30
|
-
}
|
|
31
|
-
export function MermaidMdx({ chart, id, className, panZoom = true }) {
|
|
32
|
-
const generatedId = useId();
|
|
33
|
-
const domId = id ?? `mermaid-${generatedId.replace(/[:.]/g, "-")}`;
|
|
34
|
-
const ref = useRef(null);
|
|
35
|
-
const chartRef = useRef(chart);
|
|
36
|
-
const mermaidRef = useRef(null);
|
|
37
|
-
const [error, setError] = useState(null);
|
|
38
|
-
const [rendered, setRendered] = useState(false);
|
|
39
|
-
const [view, setView] = useState({ x: 0, y: 0, scale: 1 });
|
|
40
|
-
const [fullscreen, setFullscreen] = useState(false);
|
|
41
|
-
// Keep chartRef in sync so theme-change re-render (T-005) can restore text
|
|
42
|
-
chartRef.current = chart;
|
|
43
|
-
useEffect(() => {
|
|
44
|
-
if (typeof window === "undefined")
|
|
45
|
-
return;
|
|
46
|
-
if (!chart)
|
|
47
|
-
return;
|
|
48
|
-
let cancelled = false;
|
|
49
|
-
let lazyObserver = null;
|
|
50
|
-
let syncObserver = null;
|
|
51
|
-
let themeTimer = null;
|
|
52
|
-
let lastTheme = getTheme();
|
|
53
|
-
// Serialize mermaid.run calls — overlapping runs on the same node detach
|
|
54
|
-
// in-flight SVG and crash inside d3's dispatchEvent (issue #268)
|
|
55
|
-
let runChain = Promise.resolve();
|
|
56
|
-
function enqueueRun(run) {
|
|
57
|
-
const next = runChain.then(() => {
|
|
58
|
-
if (cancelled || !ref.current?.isConnected)
|
|
59
|
-
return;
|
|
60
|
-
return run();
|
|
61
|
-
});
|
|
62
|
-
// Keep the chain alive after a failure; the caller handles rejection
|
|
63
|
-
runChain = next.catch(() => { });
|
|
64
|
-
return next;
|
|
65
|
-
}
|
|
66
|
-
async function init() {
|
|
67
|
-
try {
|
|
68
|
-
// Invariant 6: singleton dynamic import
|
|
69
|
-
if (!mermaidPromise) {
|
|
70
|
-
mermaidPromise = import("mermaid");
|
|
71
|
-
}
|
|
72
|
-
const mod = await mermaidPromise;
|
|
73
|
-
const mermaid = (mermaidRef.current = mod.default);
|
|
74
|
-
mermaid.initialize({ startOnLoad: false, theme: getTheme() });
|
|
75
|
-
// Validate syntax early — show error before attempting render
|
|
76
|
-
try {
|
|
77
|
-
await mermaid.parse(chart);
|
|
78
|
-
}
|
|
79
|
-
catch {
|
|
80
|
-
if (!cancelled)
|
|
81
|
-
setError("Invalid Mermaid syntax");
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
if (cancelled || !ref.current)
|
|
85
|
-
return;
|
|
86
|
-
// T-009: lazy rendering via IntersectionObserver
|
|
87
|
-
lazyObserver = new IntersectionObserver(([entry]) => {
|
|
88
|
-
if (!entry.isIntersecting || cancelled || !ref.current)
|
|
89
|
-
return;
|
|
90
|
-
enqueueRun(() => {
|
|
91
|
-
const node = ref.current;
|
|
92
|
-
if (!node)
|
|
93
|
-
return Promise.resolve();
|
|
94
|
-
return mermaid.run({ nodes: [node] });
|
|
95
|
-
})
|
|
96
|
-
.then(() => {
|
|
97
|
-
if (!cancelled)
|
|
98
|
-
setRendered(true);
|
|
99
|
-
})
|
|
100
|
-
.catch(() => {
|
|
101
|
-
if (!cancelled)
|
|
102
|
-
setError("Failed to render diagram");
|
|
103
|
-
});
|
|
104
|
-
lazyObserver?.disconnect();
|
|
105
|
-
}, { rootMargin: "200px" });
|
|
106
|
-
lazyObserver.observe(ref.current);
|
|
107
|
-
}
|
|
108
|
-
catch {
|
|
109
|
-
if (!cancelled)
|
|
110
|
-
setError("Failed to load Mermaid renderer");
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
init();
|
|
114
|
-
// T-005: theme sync via MutationObserver on <html class>
|
|
115
|
-
syncObserver = new MutationObserver(() => {
|
|
116
|
-
if (themeTimer)
|
|
117
|
-
clearTimeout(themeTimer);
|
|
118
|
-
themeTimer = setTimeout(() => {
|
|
119
|
-
if (cancelled || !mermaidRef.current || !ref.current)
|
|
120
|
-
return;
|
|
121
|
-
// Mount effects toggle the class without changing the theme — skip
|
|
122
|
-
// so a spurious mutation cannot race the initial render (issue #268)
|
|
123
|
-
if (getTheme() === lastTheme)
|
|
124
|
-
return;
|
|
125
|
-
enqueueRun(() => {
|
|
126
|
-
const mermaid = mermaidRef.current;
|
|
127
|
-
const node = ref.current;
|
|
128
|
-
if (!mermaid || !node)
|
|
129
|
-
return Promise.resolve();
|
|
130
|
-
lastTheme = getTheme();
|
|
131
|
-
// Mermaid replaces innerHTML — restore original chart text before re-render
|
|
132
|
-
node.textContent = chartRef.current;
|
|
133
|
-
// Remove data-processed so mermaid v11 does not skip this node
|
|
134
|
-
node.removeAttribute("data-processed");
|
|
135
|
-
mermaid.initialize({ startOnLoad: false, theme: lastTheme });
|
|
136
|
-
return mermaid.run({ nodes: [node] });
|
|
137
|
-
}).catch((e) => {
|
|
138
|
-
// Warn, not error state — the previously rendered diagram is still on screen
|
|
139
|
-
console.warn("[mermaid] diagram render error:", e);
|
|
140
|
-
});
|
|
141
|
-
}, 200);
|
|
142
|
-
});
|
|
143
|
-
syncObserver.observe(document.documentElement, {
|
|
144
|
-
attributes: true,
|
|
145
|
-
attributeFilter: ["class"],
|
|
146
|
-
});
|
|
147
|
-
return () => {
|
|
148
|
-
cancelled = true;
|
|
149
|
-
if (themeTimer)
|
|
150
|
-
clearTimeout(themeTimer);
|
|
151
|
-
lazyObserver?.disconnect();
|
|
152
|
-
syncObserver?.disconnect();
|
|
153
|
-
};
|
|
154
|
-
// chart string is static from MDX — this only fires on mount
|
|
155
|
-
}, []);
|
|
156
|
-
// Lock page scroll while the fullscreen lightbox is open
|
|
157
|
-
useEffect(() => {
|
|
158
|
-
if (!fullscreen)
|
|
159
|
-
return;
|
|
160
|
-
const previous = document.body.style.overflow;
|
|
161
|
-
document.body.style.overflow = "hidden";
|
|
162
|
-
return () => {
|
|
163
|
-
document.body.style.overflow = previous;
|
|
164
|
-
};
|
|
165
|
-
}, [fullscreen]);
|
|
166
|
-
// Guard: empty chart
|
|
167
|
-
if (!chart)
|
|
168
|
-
return null;
|
|
169
|
-
const pan = (dx, dy) => setView((v) => ({ ...v, x: v.x + dx, y: v.y + dy }));
|
|
170
|
-
const zoom = (factor) => setView((v) => ({ ...v, scale: clampScale(v.scale * factor) }));
|
|
171
|
-
const resetView = () => setView({ x: 0, y: 0, scale: 1 });
|
|
172
|
-
const controlsActive = panZoom && rendered;
|
|
173
|
-
const handleKeyDown = (e) => {
|
|
174
|
-
// Leave browser shortcuts (Ctrl/Cmd+0, Ctrl/Cmd+-, Alt+arrows, ...) alone
|
|
175
|
-
if (!controlsActive || e.ctrlKey || e.metaKey || e.altKey)
|
|
176
|
-
return;
|
|
177
|
-
const actions = {
|
|
178
|
-
ArrowUp: () => pan(0, -PAN_STEP),
|
|
179
|
-
ArrowDown: () => pan(0, PAN_STEP),
|
|
180
|
-
ArrowLeft: () => pan(-PAN_STEP, 0),
|
|
181
|
-
ArrowRight: () => pan(PAN_STEP, 0),
|
|
182
|
-
"+": () => zoom(ZOOM_STEP),
|
|
183
|
-
"=": () => zoom(ZOOM_STEP),
|
|
184
|
-
"-": () => zoom(1 / ZOOM_STEP),
|
|
185
|
-
"0": resetView,
|
|
186
|
-
...(fullscreen ? { Escape: () => setFullscreen(false) } : {}),
|
|
187
|
-
};
|
|
188
|
-
const action = actions[e.key];
|
|
189
|
-
if (!action)
|
|
190
|
-
return;
|
|
191
|
-
e.preventDefault();
|
|
192
|
-
action();
|
|
193
|
-
};
|
|
194
|
-
if (error) {
|
|
195
|
-
return (_jsxs("div", { className: className, style: {
|
|
196
|
-
border: "1px solid hsl(var(--destructive, 0 85% 60%))",
|
|
197
|
-
borderRadius: 8,
|
|
198
|
-
padding: "0.75rem 1rem",
|
|
199
|
-
margin: "1em 0",
|
|
200
|
-
}, children: [_jsx("p", { style: {
|
|
201
|
-
color: "hsl(var(--destructive, 0 85% 60%))",
|
|
202
|
-
fontWeight: 600,
|
|
203
|
-
marginBottom: 8,
|
|
204
|
-
fontSize: "0.875rem",
|
|
205
|
-
}, children: "\u26A0\uFE0F Diagram rendering error" }), _jsx("pre", { style: {
|
|
206
|
-
fontSize: "0.875rem",
|
|
207
|
-
whiteSpace: "pre-wrap",
|
|
208
|
-
margin: 0,
|
|
209
|
-
}, children: chart })] }));
|
|
210
|
-
}
|
|
211
|
-
return (_jsxs("div", { className: "max-w-full", tabIndex: controlsActive ? 0 : undefined, role: controlsActive ? "group" : undefined, "aria-label": controlsActive
|
|
212
|
-
? "Mermaid diagram. Use arrow keys to pan, + and - to zoom, 0 to reset."
|
|
213
|
-
: undefined, onKeyDown: handleKeyDown, style: {
|
|
214
|
-
...(fullscreen
|
|
215
|
-
? {
|
|
216
|
-
position: "fixed",
|
|
217
|
-
inset: 0,
|
|
218
|
-
zIndex: 50,
|
|
219
|
-
background: "hsl(var(--background, 0 0% 100%))",
|
|
220
|
-
display: "flex",
|
|
221
|
-
alignItems: "center",
|
|
222
|
-
justifyContent: "center",
|
|
223
|
-
}
|
|
224
|
-
: { position: "relative" }),
|
|
225
|
-
...(controlsActive ? { overflow: "hidden" } : { overflowX: "auto" }),
|
|
226
|
-
}, children: [_jsx("div", { style: controlsActive
|
|
227
|
-
? {
|
|
228
|
-
transform: `translate(${view.x}px, ${view.y}px) scale(${view.scale})`,
|
|
229
|
-
transformOrigin: "center center",
|
|
230
|
-
transition: "transform 150ms ease",
|
|
231
|
-
}
|
|
232
|
-
: undefined, children: _jsx("pre", { ref: ref, id: domId, className: `mermaid not-prose${className ? ` ${className}` : ""}`, style: { margin: "1em auto", width: "fit-content", maxWidth: "100%" }, children: chart }) }), controlsActive ? (_jsxs("div", { role: "group", "aria-label": "Pan and zoom controls", style: {
|
|
233
|
-
position: "absolute",
|
|
234
|
-
bottom: 8,
|
|
235
|
-
right: 8,
|
|
236
|
-
display: "grid",
|
|
237
|
-
gridTemplateColumns: "repeat(3, 28px)",
|
|
238
|
-
gap: 4,
|
|
239
|
-
}, children: [_jsx(ControlButton, { label: fullscreen ? "Exit full screen" : "Enter full screen", onClick: () => setFullscreen((f) => !f), cell: { col: 1, row: 1 }, children: fullscreen ? (_jsx("path", { d: "M8 3v3a2 2 0 0 1-2 2H3M21 8h-3a2 2 0 0 1-2-2V3M3 16h3a2 2 0 0 1 2 2v3M16 21v-3a2 2 0 0 1 2-2h3" })) : (_jsx("path", { d: "M8 3H5a2 2 0 0 0-2 2v3M21 8V5a2 2 0 0 0-2-2h-3M3 16v3a2 2 0 0 0 2 2h3M16 21h3a2 2 0 0 0 2-2v-3" })) }), _jsx(ControlButton, { label: "Pan up", onClick: () => pan(0, -PAN_STEP), cell: { col: 2, row: 1 }, children: _jsx("path", { d: "m18 15-6-6-6 6" }) }), _jsxs(ControlButton, { label: "Zoom in", onClick: () => zoom(ZOOM_STEP), cell: { col: 3, row: 1 }, children: [_jsx("circle", { cx: "11", cy: "11", r: "7" }), _jsx("path", { d: "m21 21-4-4M8 11h6M11 8v6" })] }), _jsx(ControlButton, { label: "Pan left", onClick: () => pan(-PAN_STEP, 0), cell: { col: 1, row: 2 }, children: _jsx("path", { d: "m15 18-6-6 6-6" }) }), _jsxs(ControlButton, { label: "Reset view", onClick: resetView, cell: { col: 2, row: 2 }, children: [_jsx("path", { d: "M3 12a9 9 0 1 0 2.6-6.3L3 8" }), _jsx("path", { d: "M3 3v5h5" })] }), _jsx(ControlButton, { label: "Pan right", onClick: () => pan(PAN_STEP, 0), cell: { col: 3, row: 2 }, children: _jsx("path", { d: "m9 18 6-6-6-6" }) }), _jsx(ControlButton, { label: "Pan down", onClick: () => pan(0, PAN_STEP), cell: { col: 2, row: 3 }, children: _jsx("path", { d: "m6 9 6 6 6-6" }) }), _jsxs(ControlButton, { label: "Zoom out", onClick: () => zoom(1 / ZOOM_STEP), cell: { col: 3, row: 3 }, children: [_jsx("circle", { cx: "11", cy: "11", r: "7" }), _jsx("path", { d: "m21 21-4-4M8 11h6" })] })] })) : null] }));
|
|
240
|
-
}
|
|
241
|
-
//# sourceMappingURL=MermaidMdx.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MermaidMdx.js","sourceRoot":"","sources":["../../src/components/MermaidMdx.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { CSSProperties, HTMLAttributes, ReactNode } from "react";
|
|
2
|
-
import { IconProp } from "../utils/Icon";
|
|
3
|
-
type NoteType = "danger" | "warning" | "success" | "info" | "tip";
|
|
4
|
-
type NoteMdxProps = HTMLAttributes<HTMLElement> & {
|
|
5
|
-
type?: NoteType;
|
|
6
|
-
title?: string;
|
|
7
|
-
icon?: IconProp;
|
|
8
|
-
children?: ReactNode;
|
|
9
|
-
style?: CSSProperties;
|
|
10
|
-
};
|
|
11
|
-
export declare function NoteMdx({ type, title, icon, children, style, className, ...props }: NoteMdxProps): import("react").JSX.Element | null;
|
|
12
|
-
export {};
|
|
13
|
-
//# sourceMappingURL=NoteMdx.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NoteMdx.d.ts","sourceRoot":"","sources":["../../src/components/NoteMdx.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,EAAE,QAAQ,EAA+B,MAAM,eAAe,CAAC;AAEtE,KAAK,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC;AAElE,KAAK,YAAY,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG;IAChD,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAuDF,wBAAgB,OAAO,CAAC,EACtB,IAAa,EACb,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,SAAS,EACT,GAAG,KAAK,EACT,EAAE,YAAY,sCAyDd"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { resolveLucideIcon } from "../utils/Icon";
|
|
3
|
-
const palette = {
|
|
4
|
-
danger: {
|
|
5
|
-
border: "hsl(var(--destructive, 0 85% 60%))",
|
|
6
|
-
bg: "hsl(var(--destructive, 0 85% 60%) / 0.16)",
|
|
7
|
-
text: "hsl(var(--foreground, 220 30% 15%))",
|
|
8
|
-
header: "hsl(var(--destructive, 0 85% 60%))",
|
|
9
|
-
content: "hsl(var(--destructive, 0 85% 60%) / 0.75)",
|
|
10
|
-
defaultIcon: "Siren",
|
|
11
|
-
},
|
|
12
|
-
warning: {
|
|
13
|
-
border: "hsl(36 100% 56%)",
|
|
14
|
-
bg: "rgba(249, 115, 22, 0.14)",
|
|
15
|
-
text: "hsl(24 100% 18%)",
|
|
16
|
-
header: "hsl(36 100% 56%)",
|
|
17
|
-
content: "hsl(36 100% 56% / 0.75)",
|
|
18
|
-
defaultIcon: "AlertTriangle",
|
|
19
|
-
},
|
|
20
|
-
success: {
|
|
21
|
-
border: "hsl(145 63% 42%)",
|
|
22
|
-
bg: "hsl(145 63% 42% / 0.16)",
|
|
23
|
-
text: "hsl(var(--foreground, 220 30% 15%))",
|
|
24
|
-
header: "hsl(145 63% 42%)",
|
|
25
|
-
content: "hsl(145 63% 42% / 0.75)",
|
|
26
|
-
defaultIcon: "CheckCircle2",
|
|
27
|
-
},
|
|
28
|
-
info: {
|
|
29
|
-
border: "hsl(var(--primary, 210 81% 56%))",
|
|
30
|
-
bg: "hsl(var(--primary, 210 81% 56%) / 0.16)",
|
|
31
|
-
text: "hsl(var(--foreground, 220 30% 15%))",
|
|
32
|
-
header: "hsl(var(--primary, 210 81% 56%))",
|
|
33
|
-
content: "hsl(var(--primary, 210 81% 56%) / 0.75)",
|
|
34
|
-
defaultIcon: "Info",
|
|
35
|
-
},
|
|
36
|
-
tip: {
|
|
37
|
-
border: "hsl(137 50% 35%)",
|
|
38
|
-
bg: "hsl(137 50% 35% / 0.16)",
|
|
39
|
-
text: "hsl(var(--foreground, 220 30% 15%))",
|
|
40
|
-
header: "hsl(137 50% 35%)",
|
|
41
|
-
content: "hsl(137 50% 35% / 0.75)",
|
|
42
|
-
defaultIcon: "Lightbulb",
|
|
43
|
-
},
|
|
44
|
-
};
|
|
45
|
-
export function NoteMdx({ type = "info", title, icon, children, style, className, ...props }) {
|
|
46
|
-
const safeType = Object.hasOwn(palette, type) ? type : "info";
|
|
47
|
-
const token = palette[safeType];
|
|
48
|
-
if (!token)
|
|
49
|
-
return null;
|
|
50
|
-
const normalizedTitle = typeof title === "string" ? title.trim() : title;
|
|
51
|
-
const resolvedIcon = resolveLucideIcon(icon || token.defaultIcon);
|
|
52
|
-
const fallbackTitle = normalizedTitle || type.charAt(0).toUpperCase() + type.slice(1);
|
|
53
|
-
return (_jsxs("aside", { role: "note", className: className, ...props, style: {
|
|
54
|
-
border: "1px solid transparent",
|
|
55
|
-
borderLeft: `4px solid ${token.border}`,
|
|
56
|
-
borderRadius: 10,
|
|
57
|
-
background: token.bg,
|
|
58
|
-
color: token.text,
|
|
59
|
-
padding: "0.5rem 1rem",
|
|
60
|
-
margin: "1rem 0",
|
|
61
|
-
boxShadow: "0 1px 2px rgba(15, 23, 42, 0.08)",
|
|
62
|
-
...style,
|
|
63
|
-
}, children: [fallbackTitle || resolvedIcon ? (_jsxs("div", { style: {
|
|
64
|
-
display: "flex",
|
|
65
|
-
alignItems: "center",
|
|
66
|
-
gap: "0.5rem",
|
|
67
|
-
fontWeight: 700,
|
|
68
|
-
marginBottom: "0.35rem",
|
|
69
|
-
color: token.header,
|
|
70
|
-
}, children: [resolvedIcon ? (_jsx("span", { "aria-hidden": "true", style: {
|
|
71
|
-
display: "inline-flex",
|
|
72
|
-
alignItems: "center",
|
|
73
|
-
justifyContent: "center",
|
|
74
|
-
width: 20,
|
|
75
|
-
height: 20,
|
|
76
|
-
color: token.header,
|
|
77
|
-
}, children: resolvedIcon })) : null, _jsx("span", { style: { color: token.header }, children: fallbackTitle })] })) : null, _jsx("div", { style: { color: token.content, lineHeight: 1.5 }, children: children })] }));
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=NoteMdx.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NoteMdx.js","sourceRoot":"","sources":["../../src/components/NoteMdx.tsx"],"names":[],"mappings":"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"}
|