@deepseek-ai/dsh-client-ui-primitives 0.1.3-alpha.2 → 0.1.5-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.i18n.yaml +2 -2
- package/README.md +8 -5
- package/README.zh.md +8 -5
- package/lib/ConnectionIndicator.module.css +4 -4
- package/lib/FileTypeIcon.module.css +50 -0
- package/lib/Toast.module.css +7 -2
- package/lib/index.js +1935 -248
- package/lib/markdown/CodeBlock.module.css +29 -3
- package/lib/types/CodeFileIcon.d.ts +12 -0
- package/lib/types/FileTypeIcon.d.ts +43 -0
- package/lib/types/Menu.d.ts +7 -3
- package/lib/types/code-file-types.d.ts +30 -0
- package/lib/types/icons/index.d.ts +6 -1
- package/lib/types/index.d.ts +3 -2
- package/lib/types/markdown/CodeBlock.d.ts +3 -1
- package/lib/types/markdown/MarkdownText.d.ts +8 -5
- package/lib/types/markdown/render.d.ts +19 -0
- package/package.json +17 -19
- package/lib/types/DocumentFileIcon.d.ts +0 -9
package/lib/index.js
CHANGED
|
@@ -15,20 +15,21 @@ import css$9 from "./Modal.module.css";
|
|
|
15
15
|
import css$10 from "./OnboardingSurface.module.css";
|
|
16
16
|
import css$11 from "./RiskConfirmation.module.css";
|
|
17
17
|
import css$12 from "./ConnectionIndicator.module.css";
|
|
18
|
-
import css$13 from "./
|
|
19
|
-
import css$14 from "./
|
|
20
|
-
import css$15 from "./
|
|
21
|
-
import css$16 from "./
|
|
18
|
+
import css$13 from "./FileTypeIcon.module.css";
|
|
19
|
+
import css$14 from "./user-text.module.css";
|
|
20
|
+
import css$15 from "./Tooltip.module.css";
|
|
21
|
+
import css$16 from "./Toast.module.css";
|
|
22
|
+
import css$17 from "./JsonTree.module.css";
|
|
22
23
|
import Anser from "anser";
|
|
23
|
-
import css$
|
|
24
|
+
import css$18 from "./TerminalBlock.module.css";
|
|
24
25
|
import { createCssVariablesTheme, createHighlighterCoreSync } from "shiki/core";
|
|
25
26
|
import { createJavaScriptRegexEngine, defaultJavaScriptRegexConstructor } from "shiki/engine/javascript";
|
|
26
27
|
import langTs from "@shikijs/langs/typescript";
|
|
27
28
|
import langBash from "@shikijs/langs/shellscript";
|
|
28
29
|
import langJson from "@shikijs/langs/json";
|
|
29
|
-
import css$
|
|
30
|
-
import css$
|
|
31
|
-
import css$
|
|
30
|
+
import css$19 from "./ReadBlock.module.css";
|
|
31
|
+
import css$20 from "./DiffBlock.module.css";
|
|
32
|
+
import css$21 from "./SearchBlock.module.css";
|
|
32
33
|
import { fromMarkdown } from "mdast-util-from-markdown";
|
|
33
34
|
import { gfmFromMarkdown } from "mdast-util-gfm";
|
|
34
35
|
import { mathFromMarkdown } from "mdast-util-math";
|
|
@@ -40,12 +41,12 @@ import { classifyCharacter } from "micromark-util-classify-character";
|
|
|
40
41
|
import { codes, constants, types } from "micromark-util-symbol";
|
|
41
42
|
import { factorySpace } from "micromark-factory-space";
|
|
42
43
|
import { normalizeUri } from "micromark-util-sanitize-uri";
|
|
43
|
-
import css$
|
|
44
|
+
import css$22 from "./markdown/CodeBlock.module.css";
|
|
44
45
|
import katex from "katex";
|
|
45
|
-
import css$
|
|
46
|
+
import css$23 from "./markdown/MarkdownText.module.css";
|
|
46
47
|
import "katex/dist/katex.min.css";
|
|
47
|
-
import css$
|
|
48
|
-
import css$
|
|
48
|
+
import css$24 from "./WebBlock.module.css";
|
|
49
|
+
import css$25 from "./markdown/JsonBlock.module.css";
|
|
49
50
|
//#region lib/types/StateDot.js
|
|
50
51
|
/** Outer 3x3 matrix cells (2px pixels on a 10px grid), clockwise from top-left. */
|
|
51
52
|
const MATRIX_CELLS = [
|
|
@@ -390,7 +391,8 @@ const IconCopyOutline16 = ({ size = 16, className }) => jsx("svg", {
|
|
|
390
391
|
fill: "currentColor"
|
|
391
392
|
})
|
|
392
393
|
});
|
|
393
|
-
/** ic_ds_refresh_outline_16
|
|
394
|
+
/** ic_ds_refresh_outline_16, inset 10%: the exported glyph fills its box edge
|
|
395
|
+
* to edge, one visual size above the neighbouring 16px glyphs. */
|
|
394
396
|
const IconRefreshOutline16 = ({ size = 16, className }) => jsx("svg", {
|
|
395
397
|
width: size,
|
|
396
398
|
height: size,
|
|
@@ -399,6 +401,7 @@ const IconRefreshOutline16 = ({ size = 16, className }) => jsx("svg", {
|
|
|
399
401
|
fill: "none",
|
|
400
402
|
xmlns: "http://www.w3.org/2000/svg",
|
|
401
403
|
children: jsx("path", {
|
|
404
|
+
transform: "translate(0.8 0.8) scale(0.9)",
|
|
402
405
|
d: "M7.92136 0.349152C10.3744 0.349234 12.5564 1.5052 13.9557 3.29894L15.1281 2.12759C15.3303 1.92546 15.6767 2.06943 15.6767 2.35538V5.53923C15.6766 5.71626 15.5329 5.85976 15.3559 5.86002H12.171C11.8854 5.8597 11.7426 5.51465 11.9443 5.31249L12.9641 4.29056C11.8237 2.74305 9.98908 1.74106 7.92136 1.74097C4.46436 1.74097 1.66233 4.543 1.66233 8C1.66233 11.457 4.46436 14.259 7.92136 14.259C11.3782 14.2589 14.1804 11.4569 14.1804 8H15.5722C15.5722 12.2251 12.1465 15.6507 7.92136 15.6508C3.69614 15.6508 0.270508 12.2252 0.270508 8C0.270508 3.77478 3.69614 0.349152 7.92136 0.349152Z",
|
|
403
406
|
fill: "currentColor"
|
|
404
407
|
})
|
|
@@ -701,7 +704,7 @@ const IconRightUpOutline16 = ({ size = 16, className }) => jsx("svg", {
|
|
|
701
704
|
fill: "none",
|
|
702
705
|
xmlns: "http://www.w3.org/2000/svg",
|
|
703
706
|
children: jsx("path", {
|
|
704
|
-
d: "
|
|
707
|
+
d: "M11.3822 6.28945C11.3822 6.02863 11.3815 5.81352 11.3781 5.63184L3.7875 13.2238L3.24336 12.6797L2.69922 12.1342L10.2898 4.54219C10.1083 4.53884 9.89281 4.53945 9.63223 4.53945H4.2332V3H9.63223C10.14 3 10.5838 2.99932 10.9434 3.03828C11.317 3.07882 11.6907 3.16965 12.0275 3.41426C12.2118 3.5481 12.3749 3.70992 12.5088 3.89414C12.7536 4.23123 12.8443 4.60576 12.8848 4.97969C12.9237 5.3392 12.923 5.78179 12.923 6.28945V11.6898H11.3822V6.28945Z",
|
|
705
708
|
fill: "currentColor"
|
|
706
709
|
})
|
|
707
710
|
});
|
|
@@ -1205,6 +1208,35 @@ const IconClockOutline16 = ({ size = 16, className }) => jsxs("svg", {
|
|
|
1205
1208
|
strokeWidth: "1.25"
|
|
1206
1209
|
})]
|
|
1207
1210
|
});
|
|
1211
|
+
/** Thin-stroke gauge: dial arc open at the bottom, filled hub, square-cut needle to the upper right.
|
|
1212
|
+
* The dial center sits at y=8.75, not 8: the bottom opening leaves the glyph top-heavy, and the
|
|
1213
|
+
* 0.75 drop optically centers the drawn extent in the 16 box. */
|
|
1214
|
+
const IconGaugeOutline16 = ({ size = 16, className }) => jsxs("svg", {
|
|
1215
|
+
width: size,
|
|
1216
|
+
height: size,
|
|
1217
|
+
className,
|
|
1218
|
+
viewBox: "0 0 16 16",
|
|
1219
|
+
fill: "none",
|
|
1220
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1221
|
+
children: [
|
|
1222
|
+
jsx("path", {
|
|
1223
|
+
d: "M3.49 13.26A6.375 6.375 0 1 1 12.51 13.26",
|
|
1224
|
+
stroke: "currentColor",
|
|
1225
|
+
strokeWidth: "1.25"
|
|
1226
|
+
}),
|
|
1227
|
+
jsx("path", {
|
|
1228
|
+
d: "M8 8.75L11.4 5.35",
|
|
1229
|
+
stroke: "currentColor",
|
|
1230
|
+
strokeWidth: "1.25"
|
|
1231
|
+
}),
|
|
1232
|
+
jsx("circle", {
|
|
1233
|
+
cx: "8",
|
|
1234
|
+
cy: "8.75",
|
|
1235
|
+
r: "1.55",
|
|
1236
|
+
fill: "currentColor"
|
|
1237
|
+
})
|
|
1238
|
+
]
|
|
1239
|
+
});
|
|
1208
1240
|
/** ic_send_outline_14 (figma extract): thin-stroke upward send arrow. */
|
|
1209
1241
|
const IconSendOutline14 = ({ size = 14, className }) => jsx("svg", {
|
|
1210
1242
|
width: size,
|
|
@@ -1670,13 +1702,16 @@ const MEASURE_STYLE = {
|
|
|
1670
1702
|
};
|
|
1671
1703
|
/**
|
|
1672
1704
|
* Render an anchored dropdown menu.
|
|
1705
|
+
* @param props.autoFocus - focus the first item on open and enable arrow-key navigation; Escape focuses the anchor's first button.
|
|
1673
1706
|
* @param props.open - whether the list is showing (owner-controlled).
|
|
1674
1707
|
* @param props.anchor - the trigger element (rendered in place).
|
|
1675
1708
|
* @param props.items - selectable rows and optional separators.
|
|
1676
1709
|
* @param props.selectedId - row shown as selected.
|
|
1677
1710
|
* @param props.selectedIds - rows shown as selected when a menu contains independent option groups.
|
|
1678
1711
|
* @param props.onSelect - row click callback (not called for disabled rows or submenu parents that only open children).
|
|
1679
|
-
* @param props.onClose - invoked on outside click or
|
|
1712
|
+
* @param props.onClose - invoked on outside click, Escape, or a window blur
|
|
1713
|
+
* that moved focus into an iframe (the only signal a pointerdown inside a
|
|
1714
|
+
* cross-origin iframe leaves).
|
|
1680
1715
|
* @param props.align - list alignment against the anchor (default 'start').
|
|
1681
1716
|
* @param props.side - open below (`bottom`, default) or above (`top`) the anchor.
|
|
1682
1717
|
* @param props.portal - render the list into document.body, fixed-positioned
|
|
@@ -1703,7 +1738,7 @@ const MEASURE_STYLE = {
|
|
|
1703
1738
|
* crowds the cell).
|
|
1704
1739
|
* @returns anchor wrapper with the conditional list.
|
|
1705
1740
|
*/
|
|
1706
|
-
function Menu({ open, anchor, items, selectedId, selectedIds, onSelect, onClose, align = "start", side = "bottom", portal = false, closeOnPointerLeave = false, dense = false, compact = false, selection = "check", getAnchorRect, footer, className }) {
|
|
1741
|
+
function Menu({ open, anchor, items, selectedId, selectedIds, onSelect, onClose, align = "start", side = "bottom", portal = false, closeOnPointerLeave = false, dense = false, compact = false, autoFocus = false, selection = "check", getAnchorRect, footer, className }) {
|
|
1707
1742
|
const rootRef = useRef(null);
|
|
1708
1743
|
const listRef = useRef(null);
|
|
1709
1744
|
const [openSubmenuId, setOpenSubmenuId] = useState(null);
|
|
@@ -1760,6 +1795,9 @@ function Menu({ open, anchor, items, selectedId, selectedIds, onSelect, onClose,
|
|
|
1760
1795
|
side,
|
|
1761
1796
|
getAnchorRect
|
|
1762
1797
|
]);
|
|
1798
|
+
useEffect(() => {
|
|
1799
|
+
if (open && autoFocus) listRef.current?.querySelector("button:not(:disabled)")?.focus();
|
|
1800
|
+
}, [open, autoFocus]);
|
|
1763
1801
|
useEffect(() => {
|
|
1764
1802
|
if (!open) {
|
|
1765
1803
|
setOpenSubmenuId(null);
|
|
@@ -1772,15 +1810,38 @@ function Menu({ open, anchor, items, selectedId, selectedIds, onSelect, onClose,
|
|
|
1772
1810
|
onClose();
|
|
1773
1811
|
};
|
|
1774
1812
|
const onKeyDown = (e) => {
|
|
1775
|
-
if (e.key === "Escape")
|
|
1813
|
+
if (e.key === "Escape") {
|
|
1814
|
+
onClose();
|
|
1815
|
+
if (autoFocus) rootRef.current?.querySelector("button")?.focus();
|
|
1816
|
+
}
|
|
1817
|
+
if (!autoFocus || ![
|
|
1818
|
+
"ArrowDown",
|
|
1819
|
+
"ArrowUp",
|
|
1820
|
+
"Home",
|
|
1821
|
+
"End"
|
|
1822
|
+
].includes(e.key)) return;
|
|
1823
|
+
const buttons = Array.from(listRef.current?.querySelectorAll("button:not(:disabled)") ?? []);
|
|
1824
|
+
const index = buttons.indexOf(document.activeElement);
|
|
1825
|
+
if (index < 0) return;
|
|
1826
|
+
e.preventDefault();
|
|
1827
|
+
buttons[e.key === "Home" ? 0 : e.key === "End" ? buttons.length - 1 : (index + (e.key === "ArrowDown" ? 1 : -1) + buttons.length) % buttons.length]?.focus();
|
|
1828
|
+
};
|
|
1829
|
+
const onWindowBlur = () => {
|
|
1830
|
+
if (document.activeElement instanceof HTMLIFrameElement) onClose();
|
|
1776
1831
|
};
|
|
1777
1832
|
document.addEventListener("pointerdown", onPointerDown);
|
|
1778
1833
|
document.addEventListener("keydown", onKeyDown);
|
|
1834
|
+
window.addEventListener("blur", onWindowBlur);
|
|
1779
1835
|
return () => {
|
|
1780
1836
|
document.removeEventListener("pointerdown", onPointerDown);
|
|
1781
1837
|
document.removeEventListener("keydown", onKeyDown);
|
|
1838
|
+
window.removeEventListener("blur", onWindowBlur);
|
|
1782
1839
|
};
|
|
1783
|
-
}, [
|
|
1840
|
+
}, [
|
|
1841
|
+
open,
|
|
1842
|
+
onClose,
|
|
1843
|
+
autoFocus
|
|
1844
|
+
]);
|
|
1784
1845
|
useEffect(() => {
|
|
1785
1846
|
if (!open) cancelClose();
|
|
1786
1847
|
}, [open, cancelClose]);
|
|
@@ -2667,9 +2728,1331 @@ function ReferenceIcon({ kind, size = 16, className }) {
|
|
|
2667
2728
|
}
|
|
2668
2729
|
}
|
|
2669
2730
|
//#endregion
|
|
2670
|
-
//#region lib/types/
|
|
2671
|
-
/**
|
|
2672
|
-
const
|
|
2731
|
+
//#region lib/types/CodeFileIcon.js
|
|
2732
|
+
/** Non-localizable letterforms that are part of the source-format artwork. */
|
|
2733
|
+
const CODE_MARKS = {
|
|
2734
|
+
c: "C",
|
|
2735
|
+
cpp: "C",
|
|
2736
|
+
csharp: "C",
|
|
2737
|
+
css: "CSS",
|
|
2738
|
+
env: "ENV",
|
|
2739
|
+
erlang: "E",
|
|
2740
|
+
ini: "INI",
|
|
2741
|
+
javascript: "JS",
|
|
2742
|
+
objectiveC: "OC",
|
|
2743
|
+
perl: "PL",
|
|
2744
|
+
php: "PHP",
|
|
2745
|
+
r: "R",
|
|
2746
|
+
toml: "TOML",
|
|
2747
|
+
typescript: "TS",
|
|
2748
|
+
yaml: "YAML",
|
|
2749
|
+
zig: "ZIG"
|
|
2750
|
+
};
|
|
2751
|
+
/**
|
|
2752
|
+
* Render one full-color square code-file glyph from the embedded icon set.
|
|
2753
|
+
* @param props - Detailed code type, optional size, and optional CSS class.
|
|
2754
|
+
* @returns The selected decorative SVG with its identifying palette intact.
|
|
2755
|
+
*/
|
|
2756
|
+
function CodeFileIcon({ type, size = 20, className }) {
|
|
2757
|
+
return jsx("svg", {
|
|
2758
|
+
width: size,
|
|
2759
|
+
height: size,
|
|
2760
|
+
className,
|
|
2761
|
+
viewBox: "0 0 20 20",
|
|
2762
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
2763
|
+
"aria-hidden": true,
|
|
2764
|
+
children: codeFileArtwork(type, useId())
|
|
2765
|
+
});
|
|
2766
|
+
}
|
|
2767
|
+
function codeFileArtwork(type, gradientId) {
|
|
2768
|
+
switch (type) {
|
|
2769
|
+
case "angular": return jsxs(Fragment, { children: [
|
|
2770
|
+
jsx("rect", {
|
|
2771
|
+
x: "1",
|
|
2772
|
+
y: "1",
|
|
2773
|
+
width: "18",
|
|
2774
|
+
height: "18",
|
|
2775
|
+
rx: "4",
|
|
2776
|
+
fill: "#DD0031"
|
|
2777
|
+
}),
|
|
2778
|
+
jsx("path", {
|
|
2779
|
+
fill: "none",
|
|
2780
|
+
stroke: "#fff",
|
|
2781
|
+
strokeWidth: "1.4",
|
|
2782
|
+
strokeLinejoin: "round",
|
|
2783
|
+
d: "m10 3.4 6 2-1 8-5 3-5-3-1-8z"
|
|
2784
|
+
}),
|
|
2785
|
+
jsx("path", {
|
|
2786
|
+
fill: "#fff",
|
|
2787
|
+
d: "m10 5.3-3.7 8.2h1.9l.7-1.8h2.2l.7 1.8h1.9zm0 3.4.5 1.4h-1z"
|
|
2788
|
+
})
|
|
2789
|
+
] });
|
|
2790
|
+
case "c": return jsxs(Fragment, { children: [
|
|
2791
|
+
jsx("rect", {
|
|
2792
|
+
x: "1",
|
|
2793
|
+
y: "1",
|
|
2794
|
+
width: "18",
|
|
2795
|
+
height: "18",
|
|
2796
|
+
rx: "4",
|
|
2797
|
+
fill: "#659AD2"
|
|
2798
|
+
}),
|
|
2799
|
+
jsx("path", {
|
|
2800
|
+
fill: "none",
|
|
2801
|
+
stroke: "#fff",
|
|
2802
|
+
strokeWidth: "1.3",
|
|
2803
|
+
strokeLinejoin: "round",
|
|
2804
|
+
d: "m10 3.4 6 3.3v6.6l-6 3.3-6-3.3V6.7z"
|
|
2805
|
+
}),
|
|
2806
|
+
jsx("text", {
|
|
2807
|
+
x: "10",
|
|
2808
|
+
y: "13.5",
|
|
2809
|
+
textAnchor: "middle",
|
|
2810
|
+
fontFamily: "Arial,sans-serif",
|
|
2811
|
+
fontSize: "9.5",
|
|
2812
|
+
fontWeight: "800",
|
|
2813
|
+
fill: "#fff",
|
|
2814
|
+
children: CODE_MARKS.c
|
|
2815
|
+
})
|
|
2816
|
+
] });
|
|
2817
|
+
case "clojure": return jsxs(Fragment, { children: [
|
|
2818
|
+
jsx("rect", {
|
|
2819
|
+
x: "1",
|
|
2820
|
+
y: "1",
|
|
2821
|
+
width: "18",
|
|
2822
|
+
height: "18",
|
|
2823
|
+
rx: "4",
|
|
2824
|
+
fill: "#344D70"
|
|
2825
|
+
}),
|
|
2826
|
+
jsx("circle", {
|
|
2827
|
+
cx: "10",
|
|
2828
|
+
cy: "10",
|
|
2829
|
+
r: "6.6",
|
|
2830
|
+
fill: "#fff"
|
|
2831
|
+
}),
|
|
2832
|
+
jsx("path", {
|
|
2833
|
+
fill: "#63B132",
|
|
2834
|
+
d: "M9.5 3.5a6.5 6.5 0 0 0-4.7 10.8c1-2.6 2.5-4.3 4.3-5.3-1-1.5-.8-3.4.4-5.5z"
|
|
2835
|
+
}),
|
|
2836
|
+
jsx("path", {
|
|
2837
|
+
fill: "#5881D8",
|
|
2838
|
+
d: "M10.7 3.5c1.8 1.6 2.5 3.3 2 5.1 1.5 1.1 2.4 2.8 2.7 5.2a6.5 6.5 0 0 0-4.7-10.3z"
|
|
2839
|
+
}),
|
|
2840
|
+
jsx("path", {
|
|
2841
|
+
fill: "#90B4FE",
|
|
2842
|
+
d: "M12 9.8c-1.6.3-2.8 2.1-3.8 5.4a6.4 6.4 0 0 0 6.3-.7c-.2-2.1-1-3.7-2.5-4.7z"
|
|
2843
|
+
})
|
|
2844
|
+
] });
|
|
2845
|
+
case "cmake": return jsxs(Fragment, { children: [
|
|
2846
|
+
jsx("rect", {
|
|
2847
|
+
x: "1",
|
|
2848
|
+
y: "1",
|
|
2849
|
+
width: "18",
|
|
2850
|
+
height: "18",
|
|
2851
|
+
rx: "4",
|
|
2852
|
+
fill: "#263A55"
|
|
2853
|
+
}),
|
|
2854
|
+
jsx("path", {
|
|
2855
|
+
fill: "#4D9DCC",
|
|
2856
|
+
d: "M10 3 4 16h4.6z"
|
|
2857
|
+
}),
|
|
2858
|
+
jsx("path", {
|
|
2859
|
+
fill: "#43A047",
|
|
2860
|
+
d: "M10 3 8.6 16H16z"
|
|
2861
|
+
}),
|
|
2862
|
+
jsx("path", {
|
|
2863
|
+
fill: "#E53935",
|
|
2864
|
+
d: "m10 3 6 13-6-5z"
|
|
2865
|
+
}),
|
|
2866
|
+
jsx("path", {
|
|
2867
|
+
fill: "#fff",
|
|
2868
|
+
d: "m10 6 2.3 5.1-2.3-1.8-.8 2.9z"
|
|
2869
|
+
})
|
|
2870
|
+
] });
|
|
2871
|
+
case "cpp": return jsxs(Fragment, { children: [
|
|
2872
|
+
jsx("rect", {
|
|
2873
|
+
x: "1",
|
|
2874
|
+
y: "1",
|
|
2875
|
+
width: "18",
|
|
2876
|
+
height: "18",
|
|
2877
|
+
rx: "4",
|
|
2878
|
+
fill: "#00599C"
|
|
2879
|
+
}),
|
|
2880
|
+
jsx("path", {
|
|
2881
|
+
fill: "none",
|
|
2882
|
+
stroke: "#fff",
|
|
2883
|
+
strokeWidth: "1.15",
|
|
2884
|
+
strokeLinejoin: "round",
|
|
2885
|
+
d: "m10 3.4 6 3.3v6.6l-6 3.3-6-3.3V6.7z"
|
|
2886
|
+
}),
|
|
2887
|
+
jsx("text", {
|
|
2888
|
+
x: "7.8",
|
|
2889
|
+
y: "13",
|
|
2890
|
+
textAnchor: "middle",
|
|
2891
|
+
fontFamily: "Arial,sans-serif",
|
|
2892
|
+
fontSize: "8.2",
|
|
2893
|
+
fontWeight: "800",
|
|
2894
|
+
fill: "#fff",
|
|
2895
|
+
children: CODE_MARKS.cpp
|
|
2896
|
+
}),
|
|
2897
|
+
jsx("path", {
|
|
2898
|
+
stroke: "#fff",
|
|
2899
|
+
strokeWidth: "1.1",
|
|
2900
|
+
d: "M12 8.8v3.8m-1.9-1.9h3.8m2-1.9v3.8M14 10.7h3.8"
|
|
2901
|
+
})
|
|
2902
|
+
] });
|
|
2903
|
+
case "csharp": return jsxs(Fragment, { children: [
|
|
2904
|
+
jsx("rect", {
|
|
2905
|
+
x: "1",
|
|
2906
|
+
y: "1",
|
|
2907
|
+
width: "18",
|
|
2908
|
+
height: "18",
|
|
2909
|
+
rx: "4",
|
|
2910
|
+
fill: "#68217A"
|
|
2911
|
+
}),
|
|
2912
|
+
jsx("path", {
|
|
2913
|
+
fill: "none",
|
|
2914
|
+
stroke: "#fff",
|
|
2915
|
+
strokeWidth: "1.15",
|
|
2916
|
+
strokeLinejoin: "round",
|
|
2917
|
+
d: "m10 3.4 6 3.3v6.6l-6 3.3-6-3.3V6.7z"
|
|
2918
|
+
}),
|
|
2919
|
+
jsx("text", {
|
|
2920
|
+
x: "7.6",
|
|
2921
|
+
y: "13",
|
|
2922
|
+
textAnchor: "middle",
|
|
2923
|
+
fontFamily: "Arial,sans-serif",
|
|
2924
|
+
fontSize: "8.2",
|
|
2925
|
+
fontWeight: "800",
|
|
2926
|
+
fill: "#fff",
|
|
2927
|
+
children: CODE_MARKS.csharp
|
|
2928
|
+
}),
|
|
2929
|
+
jsx("path", {
|
|
2930
|
+
stroke: "#fff",
|
|
2931
|
+
strokeWidth: ".95",
|
|
2932
|
+
d: "M11.6 8.6h5m-5 3h5m-3.3-5v7m1.8-7v7"
|
|
2933
|
+
})
|
|
2934
|
+
] });
|
|
2935
|
+
case "css": return jsxs(Fragment, { children: [jsx("rect", {
|
|
2936
|
+
x: "1",
|
|
2937
|
+
y: "1",
|
|
2938
|
+
width: "18",
|
|
2939
|
+
height: "18",
|
|
2940
|
+
rx: "4",
|
|
2941
|
+
fill: "#1572B6"
|
|
2942
|
+
}), jsx("text", {
|
|
2943
|
+
x: "10",
|
|
2944
|
+
y: "12.8",
|
|
2945
|
+
textAnchor: "middle",
|
|
2946
|
+
fontFamily: "Arial,sans-serif",
|
|
2947
|
+
fontSize: "6.2",
|
|
2948
|
+
fontWeight: "900",
|
|
2949
|
+
fill: "#fff",
|
|
2950
|
+
children: CODE_MARKS.css
|
|
2951
|
+
})] });
|
|
2952
|
+
case "dart": return jsxs(Fragment, { children: [
|
|
2953
|
+
jsx("rect", {
|
|
2954
|
+
x: "1",
|
|
2955
|
+
y: "1",
|
|
2956
|
+
width: "18",
|
|
2957
|
+
height: "18",
|
|
2958
|
+
rx: "4",
|
|
2959
|
+
fill: "#0175C2"
|
|
2960
|
+
}),
|
|
2961
|
+
jsx("path", {
|
|
2962
|
+
fill: "#fff",
|
|
2963
|
+
d: "M5 4h6.5l4.5 4.5-3.2 7.5H8.5L4 11.5z"
|
|
2964
|
+
}),
|
|
2965
|
+
jsx("path", {
|
|
2966
|
+
fill: "#13B9FD",
|
|
2967
|
+
d: "m5 4 4 5.5h7L11.5 4zm4 5.5 3.8 6.5H8.5z"
|
|
2968
|
+
})
|
|
2969
|
+
] });
|
|
2970
|
+
case "docker": return jsxs(Fragment, { children: [
|
|
2971
|
+
jsx("rect", {
|
|
2972
|
+
x: "1",
|
|
2973
|
+
y: "1",
|
|
2974
|
+
width: "18",
|
|
2975
|
+
height: "18",
|
|
2976
|
+
rx: "4",
|
|
2977
|
+
fill: "#2496ED"
|
|
2978
|
+
}),
|
|
2979
|
+
jsx("path", {
|
|
2980
|
+
fill: "#fff",
|
|
2981
|
+
d: "M3 10h11.7c.2-1.2.9-2 2-2.5.5 1 .4 2-.3 2.7.5.1 1 .1 1.5-.1-.7 3.9-3.6 5.9-8.2 5.9C6 16 3.4 14 3 10z"
|
|
2982
|
+
}),
|
|
2983
|
+
jsx("g", {
|
|
2984
|
+
fill: "#2496ED",
|
|
2985
|
+
children: jsx("path", { d: "M4.5 7h2v2h-2zm2.6 0h2v2h-2zm2.6 0h2v2h-2zM7.1 4.5h2v2h-2zm2.6 0h2v2h-2zm2.6 2.5h2v2h-2z" })
|
|
2986
|
+
})
|
|
2987
|
+
] });
|
|
2988
|
+
case "elixir": return jsxs(Fragment, { children: [
|
|
2989
|
+
jsx("defs", { children: jsxs("linearGradient", {
|
|
2990
|
+
id: gradientId,
|
|
2991
|
+
x1: "1",
|
|
2992
|
+
y1: "19",
|
|
2993
|
+
x2: "19",
|
|
2994
|
+
y2: "1",
|
|
2995
|
+
children: [jsx("stop", { stopColor: "#4B275F" }), jsx("stop", {
|
|
2996
|
+
offset: "1",
|
|
2997
|
+
stopColor: "#8E6AAF"
|
|
2998
|
+
})]
|
|
2999
|
+
}) }),
|
|
3000
|
+
jsx("rect", {
|
|
3001
|
+
x: "1",
|
|
3002
|
+
y: "1",
|
|
3003
|
+
width: "18",
|
|
3004
|
+
height: "18",
|
|
3005
|
+
rx: "4",
|
|
3006
|
+
fill: `url(#${gradientId})`
|
|
3007
|
+
}),
|
|
3008
|
+
jsx("path", {
|
|
3009
|
+
fill: "#fff",
|
|
3010
|
+
d: "M10.7 3c.2 3.5-4.3 5.8-4.3 9.4 0 2.9 1.8 4.9 4.4 4.9 2.8 0 4.7-1.9 4.7-4.6 0-4.3-3.4-7-4.8-9.7z"
|
|
3011
|
+
}),
|
|
3012
|
+
jsx("path", {
|
|
3013
|
+
fill: "#8E6AAF",
|
|
3014
|
+
d: "M10.7 4.8c-.4 3.1-3 5.4-3 7.8 0 1.5.7 2.6 1.9 3-1-3.6 2.8-5.8 1.1-10.8z"
|
|
3015
|
+
})
|
|
3016
|
+
] });
|
|
3017
|
+
case "env": return jsxs(Fragment, { children: [jsx("rect", {
|
|
3018
|
+
x: "1",
|
|
3019
|
+
y: "1",
|
|
3020
|
+
width: "18",
|
|
3021
|
+
height: "18",
|
|
3022
|
+
rx: "4",
|
|
3023
|
+
fill: "#ECD53F"
|
|
3024
|
+
}), jsx("text", {
|
|
3025
|
+
x: "10",
|
|
3026
|
+
y: "13.2",
|
|
3027
|
+
textAnchor: "middle",
|
|
3028
|
+
fontFamily: "Arial,sans-serif",
|
|
3029
|
+
fontSize: "6.8",
|
|
3030
|
+
fontWeight: "900",
|
|
3031
|
+
fill: "#24292F",
|
|
3032
|
+
children: CODE_MARKS.env
|
|
3033
|
+
})] });
|
|
3034
|
+
case "erlang": return jsxs(Fragment, { children: [
|
|
3035
|
+
jsx("rect", {
|
|
3036
|
+
x: "1",
|
|
3037
|
+
y: "1",
|
|
3038
|
+
width: "18",
|
|
3039
|
+
height: "18",
|
|
3040
|
+
rx: "4",
|
|
3041
|
+
fill: "#A90533"
|
|
3042
|
+
}),
|
|
3043
|
+
jsx("circle", {
|
|
3044
|
+
cx: "10",
|
|
3045
|
+
cy: "10",
|
|
3046
|
+
r: "6.4",
|
|
3047
|
+
fill: "none",
|
|
3048
|
+
stroke: "#fff",
|
|
3049
|
+
strokeWidth: "1"
|
|
3050
|
+
}),
|
|
3051
|
+
jsx("text", {
|
|
3052
|
+
x: "10",
|
|
3053
|
+
y: "13.8",
|
|
3054
|
+
textAnchor: "middle",
|
|
3055
|
+
fontFamily: "Georgia,serif",
|
|
3056
|
+
fontSize: "10.5",
|
|
3057
|
+
fontWeight: "700",
|
|
3058
|
+
fill: "#fff",
|
|
3059
|
+
children: CODE_MARKS.erlang
|
|
3060
|
+
})
|
|
3061
|
+
] });
|
|
3062
|
+
case "flutter": return jsxs(Fragment, { children: [
|
|
3063
|
+
jsx("rect", {
|
|
3064
|
+
x: "1",
|
|
3065
|
+
y: "1",
|
|
3066
|
+
width: "18",
|
|
3067
|
+
height: "18",
|
|
3068
|
+
rx: "4",
|
|
3069
|
+
fill: "#027DFD"
|
|
3070
|
+
}),
|
|
3071
|
+
jsx("path", {
|
|
3072
|
+
fill: "#fff",
|
|
3073
|
+
d: "m4 10 6-6h4L8 10zm4 0 2.5-2.5H14L11.5 10l2.5 2.5h-3.5z"
|
|
3074
|
+
}),
|
|
3075
|
+
jsx("path", {
|
|
3076
|
+
fill: "#B9E6FF",
|
|
3077
|
+
d: "m8 10 4.5 4.5-2 2L4 10z"
|
|
3078
|
+
})
|
|
3079
|
+
] });
|
|
3080
|
+
case "git": return jsxs(Fragment, { children: [
|
|
3081
|
+
jsx("rect", {
|
|
3082
|
+
x: "1",
|
|
3083
|
+
y: "1",
|
|
3084
|
+
width: "18",
|
|
3085
|
+
height: "18",
|
|
3086
|
+
rx: "4",
|
|
3087
|
+
fill: "#F05032"
|
|
3088
|
+
}),
|
|
3089
|
+
jsx("rect", {
|
|
3090
|
+
x: "5",
|
|
3091
|
+
y: "5",
|
|
3092
|
+
width: "10",
|
|
3093
|
+
height: "10",
|
|
3094
|
+
rx: "1.4",
|
|
3095
|
+
transform: "rotate(45 10 10)",
|
|
3096
|
+
fill: "#fff"
|
|
3097
|
+
}),
|
|
3098
|
+
jsx("path", {
|
|
3099
|
+
d: "m7.7 7.4 4.9 4.9M9.9 9.6v3.6",
|
|
3100
|
+
fill: "none",
|
|
3101
|
+
stroke: "#F05032",
|
|
3102
|
+
strokeWidth: "1.15"
|
|
3103
|
+
}),
|
|
3104
|
+
jsx("circle", {
|
|
3105
|
+
cx: "7.7",
|
|
3106
|
+
cy: "7.4",
|
|
3107
|
+
r: "1.1",
|
|
3108
|
+
fill: "#F05032"
|
|
3109
|
+
}),
|
|
3110
|
+
jsx("circle", {
|
|
3111
|
+
cx: "12.6",
|
|
3112
|
+
cy: "12.3",
|
|
3113
|
+
r: "1.1",
|
|
3114
|
+
fill: "#F05032"
|
|
3115
|
+
}),
|
|
3116
|
+
jsx("circle", {
|
|
3117
|
+
cx: "9.9",
|
|
3118
|
+
cy: "13.2",
|
|
3119
|
+
r: "1.1",
|
|
3120
|
+
fill: "#F05032"
|
|
3121
|
+
})
|
|
3122
|
+
] });
|
|
3123
|
+
case "go": return jsxs(Fragment, { children: [jsx("rect", {
|
|
3124
|
+
x: "1",
|
|
3125
|
+
y: "1",
|
|
3126
|
+
width: "18",
|
|
3127
|
+
height: "18",
|
|
3128
|
+
rx: "4",
|
|
3129
|
+
fill: "#00ADD8"
|
|
3130
|
+
}), jsx("path", {
|
|
3131
|
+
fill: "#fff",
|
|
3132
|
+
d: "M3.5 8h6v1.6H5.2a2 2 0 0 0 0 .8h2.4v-.5H6.8V8.7h3.7c.3 3-1 4.4-3.6 4.4S3 11.7 3 9.7c0-.6.2-1.2.5-1.7Zm9.3 0h1.7c1.6 0 2.5 1 2.5 2.5s-.9 2.6-2.5 2.6h-1.7c-1.6 0-2.5-1-2.5-2.6S11.2 8 12.8 8Zm.3 1.6c-.7 0-1 .3-1 .9s.3 1 1 1h1.1c.7 0 1-.4 1-1s-.3-.9-1-.9z"
|
|
3133
|
+
})] });
|
|
3134
|
+
case "graphql": return jsxs(Fragment, { children: [
|
|
3135
|
+
jsx("rect", {
|
|
3136
|
+
x: "1",
|
|
3137
|
+
y: "1",
|
|
3138
|
+
width: "18",
|
|
3139
|
+
height: "18",
|
|
3140
|
+
rx: "4",
|
|
3141
|
+
fill: "#E10098"
|
|
3142
|
+
}),
|
|
3143
|
+
jsx("path", {
|
|
3144
|
+
d: "m10 4 5.2 3v6L10 16l-5.2-3V7zm-5 3.2h10M5 12.8h10M10 4l5 8.8M10 4l-5 8.8M10 16 5 7.2m5 8.8 5-8.8",
|
|
3145
|
+
stroke: "#fff",
|
|
3146
|
+
strokeWidth: ".8"
|
|
3147
|
+
}),
|
|
3148
|
+
jsxs("g", {
|
|
3149
|
+
fill: "#fff",
|
|
3150
|
+
children: [
|
|
3151
|
+
jsx("circle", {
|
|
3152
|
+
cx: "10",
|
|
3153
|
+
cy: "4",
|
|
3154
|
+
r: "1"
|
|
3155
|
+
}),
|
|
3156
|
+
jsx("circle", {
|
|
3157
|
+
cx: "15.2",
|
|
3158
|
+
cy: "7",
|
|
3159
|
+
r: "1"
|
|
3160
|
+
}),
|
|
3161
|
+
jsx("circle", {
|
|
3162
|
+
cx: "15.2",
|
|
3163
|
+
cy: "13",
|
|
3164
|
+
r: "1"
|
|
3165
|
+
}),
|
|
3166
|
+
jsx("circle", {
|
|
3167
|
+
cx: "10",
|
|
3168
|
+
cy: "16",
|
|
3169
|
+
r: "1"
|
|
3170
|
+
}),
|
|
3171
|
+
jsx("circle", {
|
|
3172
|
+
cx: "4.8",
|
|
3173
|
+
cy: "13",
|
|
3174
|
+
r: "1"
|
|
3175
|
+
}),
|
|
3176
|
+
jsx("circle", {
|
|
3177
|
+
cx: "4.8",
|
|
3178
|
+
cy: "7",
|
|
3179
|
+
r: "1"
|
|
3180
|
+
})
|
|
3181
|
+
]
|
|
3182
|
+
})
|
|
3183
|
+
] });
|
|
3184
|
+
case "haskell": return jsxs(Fragment, { children: [jsx("rect", {
|
|
3185
|
+
x: "1",
|
|
3186
|
+
y: "1",
|
|
3187
|
+
width: "18",
|
|
3188
|
+
height: "18",
|
|
3189
|
+
rx: "4",
|
|
3190
|
+
fill: "#5D4F85"
|
|
3191
|
+
}), jsx("path", {
|
|
3192
|
+
fill: "#fff",
|
|
3193
|
+
d: "m3.5 4.5 3.5 5.5-3.5 5.5h2.7L9.8 10 6.2 4.5zm4 0L11 10l-3.5 5.5h2.7l3.5-5.5-3.5-5.5zm5 3.1 1 1.6H17V7.6zm1.4 3 1 1.7H17v-1.7z"
|
|
3194
|
+
})] });
|
|
3195
|
+
case "ini": return jsxs(Fragment, { children: [jsx("rect", {
|
|
3196
|
+
x: "1",
|
|
3197
|
+
y: "1",
|
|
3198
|
+
width: "18",
|
|
3199
|
+
height: "18",
|
|
3200
|
+
rx: "4",
|
|
3201
|
+
fill: "#6E7781"
|
|
3202
|
+
}), jsx("text", {
|
|
3203
|
+
x: "10",
|
|
3204
|
+
y: "13.2",
|
|
3205
|
+
textAnchor: "middle",
|
|
3206
|
+
fontFamily: "Arial,sans-serif",
|
|
3207
|
+
fontSize: "7.2",
|
|
3208
|
+
fontWeight: "800",
|
|
3209
|
+
fill: "#fff",
|
|
3210
|
+
children: CODE_MARKS.ini
|
|
3211
|
+
})] });
|
|
3212
|
+
case "java": return jsxs(Fragment, { children: [
|
|
3213
|
+
jsx("rect", {
|
|
3214
|
+
x: "1",
|
|
3215
|
+
y: "1",
|
|
3216
|
+
width: "18",
|
|
3217
|
+
height: "18",
|
|
3218
|
+
rx: "4",
|
|
3219
|
+
fill: "#427A9B"
|
|
3220
|
+
}),
|
|
3221
|
+
jsx("path", {
|
|
3222
|
+
d: "M9 3.1c2.3 1.7-2.4 2.5.5 4.5m2-4.9c2.3 1.9-3.2 2.9-.2 5",
|
|
3223
|
+
stroke: "#FF6B57",
|
|
3224
|
+
strokeWidth: "1.15",
|
|
3225
|
+
strokeLinecap: "round"
|
|
3226
|
+
}),
|
|
3227
|
+
jsx("path", {
|
|
3228
|
+
d: "M5.4 8.6h8c-.2 3.7-1.3 4.8-4 4.8-2.6 0-3.8-1.2-4-4.8Zm7.8 1h1c1.6 0 1.6 2.5-.5 2.5M4.7 14.8c2.5.8 7.5.8 10.1 0M5.7 16.5c2 .5 6.3.6 8.3 0",
|
|
3229
|
+
stroke: "#fff",
|
|
3230
|
+
strokeWidth: "1.05",
|
|
3231
|
+
strokeLinecap: "round"
|
|
3232
|
+
})
|
|
3233
|
+
] });
|
|
3234
|
+
case "javascript": return jsxs(Fragment, { children: [jsx("rect", {
|
|
3235
|
+
x: "1",
|
|
3236
|
+
y: "1",
|
|
3237
|
+
width: "18",
|
|
3238
|
+
height: "18",
|
|
3239
|
+
rx: "4",
|
|
3240
|
+
fill: "#F7DF1E"
|
|
3241
|
+
}), jsx("text", {
|
|
3242
|
+
x: "10",
|
|
3243
|
+
y: "14",
|
|
3244
|
+
textAnchor: "middle",
|
|
3245
|
+
fontFamily: "Arial,sans-serif",
|
|
3246
|
+
fontSize: "8.4",
|
|
3247
|
+
fontWeight: "800",
|
|
3248
|
+
fill: "#191919",
|
|
3249
|
+
children: CODE_MARKS.javascript
|
|
3250
|
+
})] });
|
|
3251
|
+
case "json": return jsxs(Fragment, { children: [jsx("rect", {
|
|
3252
|
+
x: "1",
|
|
3253
|
+
y: "1",
|
|
3254
|
+
width: "18",
|
|
3255
|
+
height: "18",
|
|
3256
|
+
rx: "4",
|
|
3257
|
+
fill: "#4A4A4A"
|
|
3258
|
+
}), jsx("text", {
|
|
3259
|
+
x: "10",
|
|
3260
|
+
y: "13.6",
|
|
3261
|
+
textAnchor: "middle",
|
|
3262
|
+
fontFamily: "Arial,sans-serif",
|
|
3263
|
+
fontSize: "9.4",
|
|
3264
|
+
fontWeight: "700",
|
|
3265
|
+
fill: "#F7DF1E",
|
|
3266
|
+
children: "{ }"
|
|
3267
|
+
})] });
|
|
3268
|
+
case "kotlin": return jsxs(Fragment, { children: [
|
|
3269
|
+
jsx("defs", { children: jsxs("linearGradient", {
|
|
3270
|
+
id: gradientId,
|
|
3271
|
+
x1: "1",
|
|
3272
|
+
y1: "19",
|
|
3273
|
+
x2: "19",
|
|
3274
|
+
y2: "1",
|
|
3275
|
+
children: [
|
|
3276
|
+
jsx("stop", { stopColor: "#0095D5" }),
|
|
3277
|
+
jsx("stop", {
|
|
3278
|
+
offset: ".5",
|
|
3279
|
+
stopColor: "#7F52FF"
|
|
3280
|
+
}),
|
|
3281
|
+
jsx("stop", {
|
|
3282
|
+
offset: "1",
|
|
3283
|
+
stopColor: "#F88909"
|
|
3284
|
+
})
|
|
3285
|
+
]
|
|
3286
|
+
}) }),
|
|
3287
|
+
jsx("rect", {
|
|
3288
|
+
x: "1",
|
|
3289
|
+
y: "1",
|
|
3290
|
+
width: "18",
|
|
3291
|
+
height: "18",
|
|
3292
|
+
rx: "4",
|
|
3293
|
+
fill: `url(#${gradientId})`
|
|
3294
|
+
}),
|
|
3295
|
+
jsx("path", {
|
|
3296
|
+
fill: "#fff",
|
|
3297
|
+
d: "M5 5h2.2v4.1L11.1 5h3l-4.6 4.6 5 5.4h-3l-3.6-4-.7.7V15H5z"
|
|
3298
|
+
})
|
|
3299
|
+
] });
|
|
3300
|
+
case "lua": return jsxs(Fragment, { children: [
|
|
3301
|
+
jsx("rect", {
|
|
3302
|
+
x: "1",
|
|
3303
|
+
y: "1",
|
|
3304
|
+
width: "18",
|
|
3305
|
+
height: "18",
|
|
3306
|
+
rx: "4",
|
|
3307
|
+
fill: "#000080"
|
|
3308
|
+
}),
|
|
3309
|
+
jsx("circle", {
|
|
3310
|
+
cx: "9",
|
|
3311
|
+
cy: "11",
|
|
3312
|
+
r: "5.7",
|
|
3313
|
+
fill: "none",
|
|
3314
|
+
stroke: "#fff",
|
|
3315
|
+
strokeWidth: "1"
|
|
3316
|
+
}),
|
|
3317
|
+
jsx("circle", {
|
|
3318
|
+
cx: "13.1",
|
|
3319
|
+
cy: "6.6",
|
|
3320
|
+
r: "2.3",
|
|
3321
|
+
fill: "#000080",
|
|
3322
|
+
stroke: "#fff",
|
|
3323
|
+
strokeWidth: "1"
|
|
3324
|
+
}),
|
|
3325
|
+
jsx("circle", {
|
|
3326
|
+
cx: "13.8",
|
|
3327
|
+
cy: "5.9",
|
|
3328
|
+
r: ".65",
|
|
3329
|
+
fill: "#fff"
|
|
3330
|
+
}),
|
|
3331
|
+
jsx("circle", {
|
|
3332
|
+
cx: "10.7",
|
|
3333
|
+
cy: "9",
|
|
3334
|
+
r: ".9",
|
|
3335
|
+
fill: "#fff"
|
|
3336
|
+
})
|
|
3337
|
+
] });
|
|
3338
|
+
case "makefile": return jsxs(Fragment, { children: [jsx("rect", {
|
|
3339
|
+
x: "1",
|
|
3340
|
+
y: "1",
|
|
3341
|
+
width: "18",
|
|
3342
|
+
height: "18",
|
|
3343
|
+
rx: "4",
|
|
3344
|
+
fill: "#427819"
|
|
3345
|
+
}), jsx("path", {
|
|
3346
|
+
fill: "#fff",
|
|
3347
|
+
d: "m5 4.5 2.3 2.3 2.3-2.3L11 5.9 8.7 8.2l2.4 2.4L9.7 12l-2.4-2.4L5 11.9 3.6 10.5l2.3-2.3-2.3-2.3zm7 6.5h4v1.5h-4zm0 2.8h4v1.5h-4z"
|
|
3348
|
+
})] });
|
|
3349
|
+
case "node": return jsxs(Fragment, { children: [
|
|
3350
|
+
jsx("rect", {
|
|
3351
|
+
x: "1",
|
|
3352
|
+
y: "1",
|
|
3353
|
+
width: "18",
|
|
3354
|
+
height: "18",
|
|
3355
|
+
rx: "4",
|
|
3356
|
+
fill: "#539E43"
|
|
3357
|
+
}),
|
|
3358
|
+
jsx("path", {
|
|
3359
|
+
fill: "none",
|
|
3360
|
+
stroke: "#fff",
|
|
3361
|
+
strokeWidth: "1.35",
|
|
3362
|
+
strokeLinejoin: "round",
|
|
3363
|
+
d: "m10 3.5 6 3.3v6.4l-6 3.3-6-3.3V6.8z"
|
|
3364
|
+
}),
|
|
3365
|
+
jsx("path", {
|
|
3366
|
+
fill: "#fff",
|
|
3367
|
+
d: "M6.8 7h1.8l2.8 4.2V7h1.8v6h-1.8L8.6 8.8V13H6.8z"
|
|
3368
|
+
})
|
|
3369
|
+
] });
|
|
3370
|
+
case "objective-c": return jsxs(Fragment, { children: [jsx("rect", {
|
|
3371
|
+
x: "1",
|
|
3372
|
+
y: "1",
|
|
3373
|
+
width: "18",
|
|
3374
|
+
height: "18",
|
|
3375
|
+
rx: "4",
|
|
3376
|
+
fill: "#438EFF"
|
|
3377
|
+
}), jsx("text", {
|
|
3378
|
+
x: "10",
|
|
3379
|
+
y: "13.2",
|
|
3380
|
+
textAnchor: "middle",
|
|
3381
|
+
fontFamily: "Arial,sans-serif",
|
|
3382
|
+
fontSize: "7.2",
|
|
3383
|
+
fontWeight: "800",
|
|
3384
|
+
fill: "#fff",
|
|
3385
|
+
children: CODE_MARKS.objectiveC
|
|
3386
|
+
})] });
|
|
3387
|
+
case "perl": return jsxs(Fragment, { children: [jsx("rect", {
|
|
3388
|
+
x: "1",
|
|
3389
|
+
y: "1",
|
|
3390
|
+
width: "18",
|
|
3391
|
+
height: "18",
|
|
3392
|
+
rx: "4",
|
|
3393
|
+
fill: "#39457E"
|
|
3394
|
+
}), jsx("text", {
|
|
3395
|
+
x: "10",
|
|
3396
|
+
y: "13.3",
|
|
3397
|
+
textAnchor: "middle",
|
|
3398
|
+
fontFamily: "Arial,sans-serif",
|
|
3399
|
+
fontSize: "7.8",
|
|
3400
|
+
fontWeight: "800",
|
|
3401
|
+
fill: "#fff",
|
|
3402
|
+
children: CODE_MARKS.perl
|
|
3403
|
+
})] });
|
|
3404
|
+
case "php": return jsxs(Fragment, { children: [
|
|
3405
|
+
jsx("rect", {
|
|
3406
|
+
x: "1",
|
|
3407
|
+
y: "1",
|
|
3408
|
+
width: "18",
|
|
3409
|
+
height: "18",
|
|
3410
|
+
rx: "4",
|
|
3411
|
+
fill: "#777BB4"
|
|
3412
|
+
}),
|
|
3413
|
+
jsx("ellipse", {
|
|
3414
|
+
cx: "10",
|
|
3415
|
+
cy: "10",
|
|
3416
|
+
rx: "7",
|
|
3417
|
+
ry: "4.5",
|
|
3418
|
+
fill: "none",
|
|
3419
|
+
stroke: "#fff",
|
|
3420
|
+
strokeWidth: "1"
|
|
3421
|
+
}),
|
|
3422
|
+
jsx("text", {
|
|
3423
|
+
x: "10",
|
|
3424
|
+
y: "12.1",
|
|
3425
|
+
textAnchor: "middle",
|
|
3426
|
+
fontFamily: "Arial,sans-serif",
|
|
3427
|
+
fontSize: "5.8",
|
|
3428
|
+
fontStyle: "italic",
|
|
3429
|
+
fontWeight: "800",
|
|
3430
|
+
fill: "#fff",
|
|
3431
|
+
children: CODE_MARKS.php
|
|
3432
|
+
})
|
|
3433
|
+
] });
|
|
3434
|
+
case "powershell": return jsxs(Fragment, { children: [
|
|
3435
|
+
jsx("rect", {
|
|
3436
|
+
x: "1",
|
|
3437
|
+
y: "1",
|
|
3438
|
+
width: "18",
|
|
3439
|
+
height: "18",
|
|
3440
|
+
rx: "4",
|
|
3441
|
+
fill: "#2671BE"
|
|
3442
|
+
}),
|
|
3443
|
+
jsx("path", {
|
|
3444
|
+
fill: "#fff",
|
|
3445
|
+
fillOpacity: ".16",
|
|
3446
|
+
d: "M5.5 4h11l-3.5 12H2z"
|
|
3447
|
+
}),
|
|
3448
|
+
jsx("path", {
|
|
3449
|
+
d: "m6.5 6.5 3 3-4.2 3.2m4 1h4",
|
|
3450
|
+
fill: "none",
|
|
3451
|
+
stroke: "#fff",
|
|
3452
|
+
strokeWidth: "1.4",
|
|
3453
|
+
strokeLinecap: "round",
|
|
3454
|
+
strokeLinejoin: "round"
|
|
3455
|
+
})
|
|
3456
|
+
] });
|
|
3457
|
+
case "protobuf": return jsxs(Fragment, { children: [
|
|
3458
|
+
jsx("rect", {
|
|
3459
|
+
x: "1",
|
|
3460
|
+
y: "1",
|
|
3461
|
+
width: "18",
|
|
3462
|
+
height: "18",
|
|
3463
|
+
rx: "4",
|
|
3464
|
+
fill: "#4285F4"
|
|
3465
|
+
}),
|
|
3466
|
+
jsx("path", {
|
|
3467
|
+
fill: "none",
|
|
3468
|
+
stroke: "#fff",
|
|
3469
|
+
strokeWidth: "1.2",
|
|
3470
|
+
strokeLinejoin: "round",
|
|
3471
|
+
d: "m10 3.5 6 3.3v6.4l-6 3.3-6-3.3V6.8z"
|
|
3472
|
+
}),
|
|
3473
|
+
jsx("path", {
|
|
3474
|
+
fill: "#fff",
|
|
3475
|
+
d: "M6.5 6.5h4.4c2.3 0 3.6 1.2 3.6 3.1s-1.3 3.1-3.6 3.1H9v2H6.5zM9 8.4v2.4h1.6c.8 0 1.2-.4 1.2-1.2s-.4-1.2-1.2-1.2z"
|
|
3476
|
+
})
|
|
3477
|
+
] });
|
|
3478
|
+
case "python": return jsxs(Fragment, { children: [
|
|
3479
|
+
jsx("rect", {
|
|
3480
|
+
x: "1",
|
|
3481
|
+
y: "1",
|
|
3482
|
+
width: "18",
|
|
3483
|
+
height: "18",
|
|
3484
|
+
rx: "4",
|
|
3485
|
+
fill: "#306998"
|
|
3486
|
+
}),
|
|
3487
|
+
jsx("path", {
|
|
3488
|
+
fill: "#fff",
|
|
3489
|
+
d: "M9.8 3.2c-3.5 0-3.6 1.5-3.6 1.5v2.5H10V8H5s-2.2-.2-2.2 3.3 2 3.4 2 3.4h1.8v-2.6c0-2 1.8-2.4 3.2-2.4H13c1.8 0 2.4-1.4 2.4-3.2S13.8 3.2 12 3.2z"
|
|
3490
|
+
}),
|
|
3491
|
+
jsx("circle", {
|
|
3492
|
+
cx: "8.1",
|
|
3493
|
+
cy: "5.1",
|
|
3494
|
+
r: ".65",
|
|
3495
|
+
fill: "#306998"
|
|
3496
|
+
}),
|
|
3497
|
+
jsx("path", {
|
|
3498
|
+
fill: "#FFD43B",
|
|
3499
|
+
d: "M10.2 16.8c3.5 0 3.6-1.5 3.6-1.5v-2.5H10V12h5s2.2.2 2.2-3.3-2-3.4-2-3.4h-1.8v2.6c0 2-1.8 2.4-3.2 2.4H7c-1.8 0-2.4 1.4-2.4 3.2s1.6 3.3 3.4 3.3z"
|
|
3500
|
+
}),
|
|
3501
|
+
jsx("circle", {
|
|
3502
|
+
cx: "11.9",
|
|
3503
|
+
cy: "14.9",
|
|
3504
|
+
r: ".65",
|
|
3505
|
+
fill: "#306998"
|
|
3506
|
+
})
|
|
3507
|
+
] });
|
|
3508
|
+
case "r": return jsxs(Fragment, { children: [
|
|
3509
|
+
jsx("rect", {
|
|
3510
|
+
x: "1",
|
|
3511
|
+
y: "1",
|
|
3512
|
+
width: "18",
|
|
3513
|
+
height: "18",
|
|
3514
|
+
rx: "4",
|
|
3515
|
+
fill: "#276DC3"
|
|
3516
|
+
}),
|
|
3517
|
+
jsx("ellipse", {
|
|
3518
|
+
cx: "9",
|
|
3519
|
+
cy: "9.4",
|
|
3520
|
+
rx: "6.4",
|
|
3521
|
+
ry: "4.5",
|
|
3522
|
+
fill: "#fff",
|
|
3523
|
+
fillOpacity: ".9"
|
|
3524
|
+
}),
|
|
3525
|
+
jsx("ellipse", {
|
|
3526
|
+
cx: "8.3",
|
|
3527
|
+
cy: "8.9",
|
|
3528
|
+
rx: "4.5",
|
|
3529
|
+
ry: "2.8",
|
|
3530
|
+
fill: "#276DC3"
|
|
3531
|
+
}),
|
|
3532
|
+
jsx("path", {
|
|
3533
|
+
fill: "#fff",
|
|
3534
|
+
d: "M8 7h4c2.2 0 3.4.9 3.4 2.5 0 1-.6 1.7-1.7 2.1l2.5 4.1h-2.7l-2-3.7h-.9v3.7H8zm2.6 1.9v1.4h1c.7 0 1.1-.2 1.1-.7s-.4-.7-1.1-.7z"
|
|
3535
|
+
})
|
|
3536
|
+
] });
|
|
3537
|
+
case "react": return jsxs(Fragment, { children: [
|
|
3538
|
+
jsx("rect", {
|
|
3539
|
+
x: "1",
|
|
3540
|
+
y: "1",
|
|
3541
|
+
width: "18",
|
|
3542
|
+
height: "18",
|
|
3543
|
+
rx: "4",
|
|
3544
|
+
fill: "#20232A"
|
|
3545
|
+
}),
|
|
3546
|
+
jsx("circle", {
|
|
3547
|
+
cx: "10",
|
|
3548
|
+
cy: "10",
|
|
3549
|
+
r: "1.4",
|
|
3550
|
+
fill: "#61DAFB"
|
|
3551
|
+
}),
|
|
3552
|
+
jsxs("g", {
|
|
3553
|
+
stroke: "#61DAFB",
|
|
3554
|
+
strokeWidth: "1",
|
|
3555
|
+
children: [
|
|
3556
|
+
jsx("ellipse", {
|
|
3557
|
+
cx: "10",
|
|
3558
|
+
cy: "10",
|
|
3559
|
+
rx: "6.8",
|
|
3560
|
+
ry: "2.7"
|
|
3561
|
+
}),
|
|
3562
|
+
jsx("ellipse", {
|
|
3563
|
+
cx: "10",
|
|
3564
|
+
cy: "10",
|
|
3565
|
+
rx: "6.8",
|
|
3566
|
+
ry: "2.7",
|
|
3567
|
+
transform: "rotate(60 10 10)"
|
|
3568
|
+
}),
|
|
3569
|
+
jsx("ellipse", {
|
|
3570
|
+
cx: "10",
|
|
3571
|
+
cy: "10",
|
|
3572
|
+
rx: "6.8",
|
|
3573
|
+
ry: "2.7",
|
|
3574
|
+
transform: "rotate(120 10 10)"
|
|
3575
|
+
})
|
|
3576
|
+
]
|
|
3577
|
+
})
|
|
3578
|
+
] });
|
|
3579
|
+
case "ruby": return jsxs(Fragment, { children: [
|
|
3580
|
+
jsx("rect", {
|
|
3581
|
+
x: "1",
|
|
3582
|
+
y: "1",
|
|
3583
|
+
width: "18",
|
|
3584
|
+
height: "18",
|
|
3585
|
+
rx: "4",
|
|
3586
|
+
fill: "#B51F27"
|
|
3587
|
+
}),
|
|
3588
|
+
jsx("path", {
|
|
3589
|
+
fill: "#fff",
|
|
3590
|
+
d: "m4 7 3-3h6l3 3-6 9-6-6z"
|
|
3591
|
+
}),
|
|
3592
|
+
jsx("path", {
|
|
3593
|
+
fill: "#F15A4A",
|
|
3594
|
+
d: "m7 4 1.8 3H4zm1.8 3L13 4l3 3zm0 0L10 16 4 10zm0 0H16l-6 9z"
|
|
3595
|
+
})
|
|
3596
|
+
] });
|
|
3597
|
+
case "rust": return jsxs(Fragment, { children: [
|
|
3598
|
+
jsx("rect", {
|
|
3599
|
+
x: "1",
|
|
3600
|
+
y: "1",
|
|
3601
|
+
width: "18",
|
|
3602
|
+
height: "18",
|
|
3603
|
+
rx: "4",
|
|
3604
|
+
fill: "#2B2B2B"
|
|
3605
|
+
}),
|
|
3606
|
+
jsx("path", {
|
|
3607
|
+
fill: "#DEA584",
|
|
3608
|
+
d: "m10 2.8.7 1.3 1.4-.4.1 1.5 1.5.2-.6 1.4 1.3.8-.1.1 1.4.7-.9 1.2 1 1.1-1.2.8.6 1.3-1.4.4.3 1.5-1.5.1-.4 1.4-1.3-.5-.9 1.2-.9-1.2-1.3.5-.4-1.4-1.5-.1.3-1.5-1.4-.4.6-1.3-1.2-.8 1-1.1-.9-1.2 1.4-.7-.1-.1 1.3-.8-.6-1.4 1.5-.2.1-1.5 1.4.4z"
|
|
3609
|
+
}),
|
|
3610
|
+
jsx("circle", {
|
|
3611
|
+
cx: "10",
|
|
3612
|
+
cy: "10",
|
|
3613
|
+
r: "4.6",
|
|
3614
|
+
fill: "#2B2B2B"
|
|
3615
|
+
}),
|
|
3616
|
+
jsx("text", {
|
|
3617
|
+
x: "10",
|
|
3618
|
+
y: "13.1",
|
|
3619
|
+
textAnchor: "middle",
|
|
3620
|
+
fontFamily: "Georgia,serif",
|
|
3621
|
+
fontSize: "8.2",
|
|
3622
|
+
fontWeight: "700",
|
|
3623
|
+
fill: "#DEA584",
|
|
3624
|
+
children: CODE_MARKS.r
|
|
3625
|
+
})
|
|
3626
|
+
] });
|
|
3627
|
+
case "scala": return jsxs(Fragment, { children: [jsx("rect", {
|
|
3628
|
+
x: "1",
|
|
3629
|
+
y: "1",
|
|
3630
|
+
width: "18",
|
|
3631
|
+
height: "18",
|
|
3632
|
+
rx: "4",
|
|
3633
|
+
fill: "#DE3423"
|
|
3634
|
+
}), jsx("path", {
|
|
3635
|
+
fill: "#fff",
|
|
3636
|
+
d: "M5 4.2c3.3 1.1 6.7-.3 10-.9v3.3c-3.3.5-6.7 2-10 .8zm0 4.7c3.3 1.2 6.7-.3 10-.8v3.3c-3.3.5-6.7 1.9-10 .8zm0 4.7c3.3 1.2 6.7-.3 10-.8v3.3c-3.3.5-6.7 1.9-10 .8z"
|
|
3637
|
+
})] });
|
|
3638
|
+
case "shell": return jsxs(Fragment, { children: [jsx("rect", {
|
|
3639
|
+
x: "1",
|
|
3640
|
+
y: "1",
|
|
3641
|
+
width: "18",
|
|
3642
|
+
height: "18",
|
|
3643
|
+
rx: "4",
|
|
3644
|
+
fill: "#303642"
|
|
3645
|
+
}), jsx("path", {
|
|
3646
|
+
d: "m5 6.5 3.5 3.5L5 13.5m5 0h5",
|
|
3647
|
+
fill: "none",
|
|
3648
|
+
stroke: "#7EE787",
|
|
3649
|
+
strokeWidth: "1.5",
|
|
3650
|
+
strokeLinecap: "round",
|
|
3651
|
+
strokeLinejoin: "round"
|
|
3652
|
+
})] });
|
|
3653
|
+
case "solidity": return jsxs(Fragment, { children: [jsx("rect", {
|
|
3654
|
+
x: "1",
|
|
3655
|
+
y: "1",
|
|
3656
|
+
width: "18",
|
|
3657
|
+
height: "18",
|
|
3658
|
+
rx: "4",
|
|
3659
|
+
fill: "#555"
|
|
3660
|
+
}), jsx("path", {
|
|
3661
|
+
fill: "#fff",
|
|
3662
|
+
d: "M7.2 3.2h5.6L10 8zm-.5.8 2.8 4.8H4zm6.6 0L16 8.8h-5.5zM4 10.3h5.5l-2.8 4.8zm6.5 0H16l-2.7 4.8zM10 11.2l2.8 4.8H7.2z"
|
|
3663
|
+
})] });
|
|
3664
|
+
case "sql": return jsxs(Fragment, { children: [
|
|
3665
|
+
jsx("rect", {
|
|
3666
|
+
x: "1",
|
|
3667
|
+
y: "1",
|
|
3668
|
+
width: "18",
|
|
3669
|
+
height: "18",
|
|
3670
|
+
rx: "4",
|
|
3671
|
+
fill: "#336791"
|
|
3672
|
+
}),
|
|
3673
|
+
jsx("ellipse", {
|
|
3674
|
+
cx: "10",
|
|
3675
|
+
cy: "5.5",
|
|
3676
|
+
rx: "5.8",
|
|
3677
|
+
ry: "2.1",
|
|
3678
|
+
fill: "#fff"
|
|
3679
|
+
}),
|
|
3680
|
+
jsx("path", {
|
|
3681
|
+
fill: "#fff",
|
|
3682
|
+
fillOpacity: ".88",
|
|
3683
|
+
d: "M4.2 5.5v8.9c0 1.2 2.6 2.1 5.8 2.1s5.8-.9 5.8-2.1V5.5c0 1.2-2.6 2.1-5.8 2.1s-5.8-.9-5.8-2.1z"
|
|
3684
|
+
}),
|
|
3685
|
+
jsx("path", {
|
|
3686
|
+
d: "M4.2 9.2c0 1.2 2.6 2.1 5.8 2.1s5.8-.9 5.8-2.1M4.2 12.9c0 1.2 2.6 2.1 5.8 2.1s5.8-.9 5.8-2.1",
|
|
3687
|
+
fill: "none",
|
|
3688
|
+
stroke: "#336791",
|
|
3689
|
+
strokeOpacity: ".7",
|
|
3690
|
+
strokeWidth: ".7"
|
|
3691
|
+
})
|
|
3692
|
+
] });
|
|
3693
|
+
case "svelte": return jsxs(Fragment, { children: [
|
|
3694
|
+
jsx("rect", {
|
|
3695
|
+
x: "1",
|
|
3696
|
+
y: "1",
|
|
3697
|
+
width: "18",
|
|
3698
|
+
height: "18",
|
|
3699
|
+
rx: "4",
|
|
3700
|
+
fill: "#FF3E00"
|
|
3701
|
+
}),
|
|
3702
|
+
jsx("path", {
|
|
3703
|
+
d: "M13.9 6.1c-.9-1.1-2.6-1.4-3.8-.7L7 7.4c-1.2.8-1.5 2.4-.7 3.6.7 1 2 1.4 3.1 1l3-1.2c.5-.2 1 .1 1.2.5.2.4 0 .9-.4 1.2l-3.1 2c-.5.3-1.1.2-1.5-.2",
|
|
3704
|
+
stroke: "#fff",
|
|
3705
|
+
strokeWidth: "1.6",
|
|
3706
|
+
strokeLinecap: "round"
|
|
3707
|
+
}),
|
|
3708
|
+
jsx("path", {
|
|
3709
|
+
d: "M6.1 13.9c.9 1.1 2.6 1.4 3.8.7l3.1-2c1.2-.8 1.5-2.4.7-3.6-.7-1-2-1.4-3.1-1l-3 1.2c-.5.2-1-.1-1.2-.5-.2-.4 0-.9.4-1.2l3.1-2c.5-.3 1.1-.2 1.5.2",
|
|
3710
|
+
stroke: "#fff",
|
|
3711
|
+
strokeWidth: "1.6",
|
|
3712
|
+
strokeLinecap: "round"
|
|
3713
|
+
})
|
|
3714
|
+
] });
|
|
3715
|
+
case "swift": return jsxs(Fragment, { children: [jsx("rect", {
|
|
3716
|
+
x: "1",
|
|
3717
|
+
y: "1",
|
|
3718
|
+
width: "18",
|
|
3719
|
+
height: "18",
|
|
3720
|
+
rx: "4",
|
|
3721
|
+
fill: "#F05138"
|
|
3722
|
+
}), jsx("path", {
|
|
3723
|
+
fill: "#fff",
|
|
3724
|
+
d: "M15.9 14.9c.3-3.6-1.2-6.2-3.8-8.4 1.1 1.5 1.7 2.9 1.9 4.1C10.9 8.4 8 6 5.4 3.7c1.6 2.3 3.4 4.4 5.4 6.2-1.7-1-3.5-2.2-5.6-3.7 2.3 3 4.7 5.1 7.3 6.1-2 .9-4.5.7-7.2-.8 2.2 3.2 5.6 4.1 8.3 2.4.8.4 1.6.8 2.3 1z"
|
|
3725
|
+
})] });
|
|
3726
|
+
case "toml": return jsxs(Fragment, { children: [jsx("rect", {
|
|
3727
|
+
x: "1",
|
|
3728
|
+
y: "1",
|
|
3729
|
+
width: "18",
|
|
3730
|
+
height: "18",
|
|
3731
|
+
rx: "4",
|
|
3732
|
+
fill: "#9C4121"
|
|
3733
|
+
}), jsx("text", {
|
|
3734
|
+
x: "10",
|
|
3735
|
+
y: "12.9",
|
|
3736
|
+
textAnchor: "middle",
|
|
3737
|
+
fontFamily: "Arial,sans-serif",
|
|
3738
|
+
fontSize: "5.6",
|
|
3739
|
+
fontWeight: "800",
|
|
3740
|
+
fill: "#fff",
|
|
3741
|
+
children: CODE_MARKS.toml
|
|
3742
|
+
})] });
|
|
3743
|
+
case "typescript": return jsxs(Fragment, { children: [jsx("rect", {
|
|
3744
|
+
x: "1",
|
|
3745
|
+
y: "1",
|
|
3746
|
+
width: "18",
|
|
3747
|
+
height: "18",
|
|
3748
|
+
rx: "4",
|
|
3749
|
+
fill: "#3178C6"
|
|
3750
|
+
}), jsx("text", {
|
|
3751
|
+
x: "10",
|
|
3752
|
+
y: "14",
|
|
3753
|
+
textAnchor: "middle",
|
|
3754
|
+
fontFamily: "Arial,sans-serif",
|
|
3755
|
+
fontSize: "8.4",
|
|
3756
|
+
fontWeight: "800",
|
|
3757
|
+
fill: "#fff",
|
|
3758
|
+
children: CODE_MARKS.typescript
|
|
3759
|
+
})] });
|
|
3760
|
+
case "vue": return jsxs(Fragment, { children: [
|
|
3761
|
+
jsx("rect", {
|
|
3762
|
+
x: "1",
|
|
3763
|
+
y: "1",
|
|
3764
|
+
width: "18",
|
|
3765
|
+
height: "18",
|
|
3766
|
+
rx: "4",
|
|
3767
|
+
fill: "#41B883"
|
|
3768
|
+
}),
|
|
3769
|
+
jsx("path", {
|
|
3770
|
+
fill: "#fff",
|
|
3771
|
+
d: "M3.5 5h3.2l3.3 5.7L13.3 5h3.2L10 16z"
|
|
3772
|
+
}),
|
|
3773
|
+
jsx("path", {
|
|
3774
|
+
fill: "#35495E",
|
|
3775
|
+
d: "M6.7 5H9l1 1.8L11 5h2.3L10 10.7z"
|
|
3776
|
+
})
|
|
3777
|
+
] });
|
|
3778
|
+
case "wasm": return jsxs(Fragment, { children: [jsx("rect", {
|
|
3779
|
+
x: "1",
|
|
3780
|
+
y: "1",
|
|
3781
|
+
width: "18",
|
|
3782
|
+
height: "18",
|
|
3783
|
+
rx: "4",
|
|
3784
|
+
fill: "#654FF0"
|
|
3785
|
+
}), jsx("path", {
|
|
3786
|
+
fill: "#fff",
|
|
3787
|
+
d: "M4 6h2l.8 5.1L8 7h2l1.2 4.1L12 6h2l-1.7 8h-2l-1.3-4-1.3 4h-2zm10.5 0H17v8h-2V8h-.5z"
|
|
3788
|
+
})] });
|
|
3789
|
+
case "xml": return jsxs(Fragment, { children: [jsx("rect", {
|
|
3790
|
+
x: "1",
|
|
3791
|
+
y: "1",
|
|
3792
|
+
width: "18",
|
|
3793
|
+
height: "18",
|
|
3794
|
+
rx: "4",
|
|
3795
|
+
fill: "#F28C28"
|
|
3796
|
+
}), jsx("path", {
|
|
3797
|
+
d: "m7.5 6-4 4 4 4m5-8 4 4-4 4M11 5 9 15",
|
|
3798
|
+
fill: "none",
|
|
3799
|
+
stroke: "#fff",
|
|
3800
|
+
strokeWidth: "1.5",
|
|
3801
|
+
strokeLinecap: "round",
|
|
3802
|
+
strokeLinejoin: "round"
|
|
3803
|
+
})] });
|
|
3804
|
+
case "yaml": return jsxs(Fragment, { children: [jsx("rect", {
|
|
3805
|
+
x: "1",
|
|
3806
|
+
y: "1",
|
|
3807
|
+
width: "18",
|
|
3808
|
+
height: "18",
|
|
3809
|
+
rx: "4",
|
|
3810
|
+
fill: "#CB171E"
|
|
3811
|
+
}), jsx("text", {
|
|
3812
|
+
x: "10",
|
|
3813
|
+
y: "12.9",
|
|
3814
|
+
textAnchor: "middle",
|
|
3815
|
+
fontFamily: "Arial,sans-serif",
|
|
3816
|
+
fontSize: "5.6",
|
|
3817
|
+
fontWeight: "800",
|
|
3818
|
+
fill: "#fff",
|
|
3819
|
+
children: CODE_MARKS.yaml
|
|
3820
|
+
})] });
|
|
3821
|
+
case "zig": return jsxs(Fragment, { children: [
|
|
3822
|
+
jsx("rect", {
|
|
3823
|
+
x: "1",
|
|
3824
|
+
y: "1",
|
|
3825
|
+
width: "18",
|
|
3826
|
+
height: "18",
|
|
3827
|
+
rx: "4",
|
|
3828
|
+
fill: "#F7A41D"
|
|
3829
|
+
}),
|
|
3830
|
+
jsx("path", {
|
|
3831
|
+
fill: "#fff",
|
|
3832
|
+
d: "M3.5 6h4L6 7.5h5L7.5 12h5L11 14h5.5l-.8-3 1-5h-4.4L14 7.5h-3.7L13 4.2H6L7.3 6z"
|
|
3833
|
+
}),
|
|
3834
|
+
jsx("text", {
|
|
3835
|
+
x: "10",
|
|
3836
|
+
y: "12.2",
|
|
3837
|
+
textAnchor: "middle",
|
|
3838
|
+
fontFamily: "Arial,sans-serif",
|
|
3839
|
+
fontSize: "4.6",
|
|
3840
|
+
fontWeight: "900",
|
|
3841
|
+
fill: "#F7A41D",
|
|
3842
|
+
children: CODE_MARKS.zig
|
|
3843
|
+
})
|
|
3844
|
+
] });
|
|
3845
|
+
/* v8 ignore next -- closed-union backstop; only reached if a type is forged */
|
|
3846
|
+
default: return assertNever$3(type);
|
|
3847
|
+
}
|
|
3848
|
+
}
|
|
3849
|
+
/** Closed-union exhaustiveness guard for the embedded artwork table. */
|
|
3850
|
+
/* v8 ignore next 3 -- only reachable when an untyped caller forges a code file type */
|
|
3851
|
+
function assertNever$3(value) {
|
|
3852
|
+
throw new Error(`unreachable code file type: ${String(value)}`);
|
|
3853
|
+
}
|
|
3854
|
+
const CODE_FILE_TYPE_SET = new Set([
|
|
3855
|
+
"angular",
|
|
3856
|
+
"c",
|
|
3857
|
+
"clojure",
|
|
3858
|
+
"cmake",
|
|
3859
|
+
"cpp",
|
|
3860
|
+
"csharp",
|
|
3861
|
+
"css",
|
|
3862
|
+
"dart",
|
|
3863
|
+
"docker",
|
|
3864
|
+
"elixir",
|
|
3865
|
+
"env",
|
|
3866
|
+
"erlang",
|
|
3867
|
+
"flutter",
|
|
3868
|
+
"git",
|
|
3869
|
+
"go",
|
|
3870
|
+
"graphql",
|
|
3871
|
+
"haskell",
|
|
3872
|
+
"ini",
|
|
3873
|
+
"java",
|
|
3874
|
+
"javascript",
|
|
3875
|
+
"json",
|
|
3876
|
+
"kotlin",
|
|
3877
|
+
"lua",
|
|
3878
|
+
"makefile",
|
|
3879
|
+
"node",
|
|
3880
|
+
"objective-c",
|
|
3881
|
+
"perl",
|
|
3882
|
+
"php",
|
|
3883
|
+
"powershell",
|
|
3884
|
+
"protobuf",
|
|
3885
|
+
"python",
|
|
3886
|
+
"r",
|
|
3887
|
+
"react",
|
|
3888
|
+
"ruby",
|
|
3889
|
+
"rust",
|
|
3890
|
+
"scala",
|
|
3891
|
+
"shell",
|
|
3892
|
+
"solidity",
|
|
3893
|
+
"sql",
|
|
3894
|
+
"svelte",
|
|
3895
|
+
"swift",
|
|
3896
|
+
"toml",
|
|
3897
|
+
"typescript",
|
|
3898
|
+
"vue",
|
|
3899
|
+
"wasm",
|
|
3900
|
+
"xml",
|
|
3901
|
+
"yaml",
|
|
3902
|
+
"zig"
|
|
3903
|
+
]);
|
|
3904
|
+
const FILE_NAME_TYPES = {
|
|
3905
|
+
".bash_profile": "shell",
|
|
3906
|
+
".bashrc": "shell",
|
|
3907
|
+
".env": "env",
|
|
3908
|
+
".gitattributes": "git",
|
|
3909
|
+
".gitconfig": "git",
|
|
3910
|
+
".gitignore": "git",
|
|
3911
|
+
".gitmodules": "git",
|
|
3912
|
+
".mailmap": "git",
|
|
3913
|
+
".profile": "shell",
|
|
3914
|
+
".zprofile": "shell",
|
|
3915
|
+
".zshrc": "shell",
|
|
3916
|
+
"bsdmakefile": "makefile",
|
|
3917
|
+
"cmakelists.txt": "cmake",
|
|
3918
|
+
"commit_editmsg": "git",
|
|
3919
|
+
"compose.yaml": "docker",
|
|
3920
|
+
"compose.yml": "docker",
|
|
3921
|
+
"docker-compose.yaml": "docker",
|
|
3922
|
+
"docker-compose.yml": "docker",
|
|
3923
|
+
"dockerfile": "docker",
|
|
3924
|
+
"gemfile": "ruby",
|
|
3925
|
+
"gnumakefile": "makefile",
|
|
3926
|
+
"guardfile": "ruby",
|
|
3927
|
+
"makefile": "makefile",
|
|
3928
|
+
"npm-shrinkwrap.json": "node",
|
|
3929
|
+
"package-lock.json": "node",
|
|
3930
|
+
"package.json": "node",
|
|
3931
|
+
"podfile": "ruby",
|
|
3932
|
+
"rakefile": "ruby"
|
|
3933
|
+
};
|
|
3934
|
+
const FILE_NAME_PREFIX_TYPES = [["dockerfile.", "docker"], [".env.", "env"]];
|
|
3935
|
+
const FILE_NAME_SUFFIX_TYPES = [
|
|
3936
|
+
[".component.ts", "angular"],
|
|
3937
|
+
[".component.html", "angular"],
|
|
3938
|
+
[".directive.ts", "angular"],
|
|
3939
|
+
[".service.ts", "angular"],
|
|
3940
|
+
[".module.ts", "angular"],
|
|
3941
|
+
[".pipe.ts", "angular"],
|
|
3942
|
+
[".guard.ts", "angular"],
|
|
3943
|
+
[".interceptor.ts", "angular"],
|
|
3944
|
+
[".dockerfile", "docker"]
|
|
3945
|
+
];
|
|
3946
|
+
const EXTENSION_TYPES$1 = {
|
|
3947
|
+
"bash": "shell",
|
|
3948
|
+
"c": "c",
|
|
3949
|
+
"c++": "cpp",
|
|
3950
|
+
"cc": "cpp",
|
|
3951
|
+
"cfg": "ini",
|
|
3952
|
+
"cjs": "javascript",
|
|
3953
|
+
"clj": "clojure",
|
|
3954
|
+
"cljc": "clojure",
|
|
3955
|
+
"cljs": "clojure",
|
|
3956
|
+
"cmake": "cmake",
|
|
3957
|
+
"cpp": "cpp",
|
|
3958
|
+
"cs": "csharp",
|
|
3959
|
+
"csh": "shell",
|
|
3960
|
+
"css": "css",
|
|
3961
|
+
"csx": "csharp",
|
|
3962
|
+
"cts": "typescript",
|
|
3963
|
+
"cxx": "cpp",
|
|
3964
|
+
"dart": "dart",
|
|
3965
|
+
"dtd": "xml",
|
|
3966
|
+
"edn": "clojure",
|
|
3967
|
+
"env": "env",
|
|
3968
|
+
"erl": "erlang",
|
|
3969
|
+
"es6": "javascript",
|
|
3970
|
+
"escript": "erlang",
|
|
3971
|
+
"ex": "elixir",
|
|
3972
|
+
"exs": "elixir",
|
|
3973
|
+
"fish": "shell",
|
|
3974
|
+
"gemspec": "ruby",
|
|
3975
|
+
"go": "go",
|
|
3976
|
+
"gql": "graphql",
|
|
3977
|
+
"graphql": "graphql",
|
|
3978
|
+
"h": "c",
|
|
3979
|
+
"h++": "cpp",
|
|
3980
|
+
"hh": "cpp",
|
|
3981
|
+
"hpp": "cpp",
|
|
3982
|
+
"hrl": "erlang",
|
|
3983
|
+
"hs": "haskell",
|
|
3984
|
+
"hxx": "cpp",
|
|
3985
|
+
"ini": "ini",
|
|
3986
|
+
"ipp": "cpp",
|
|
3987
|
+
"java": "java",
|
|
3988
|
+
"js": "javascript",
|
|
3989
|
+
"json": "json",
|
|
3990
|
+
"json5": "json",
|
|
3991
|
+
"jsonc": "json",
|
|
3992
|
+
"jsx": "react",
|
|
3993
|
+
"ksh": "shell",
|
|
3994
|
+
"kt": "kotlin",
|
|
3995
|
+
"kts": "kotlin",
|
|
3996
|
+
"lhs": "haskell",
|
|
3997
|
+
"lua": "lua",
|
|
3998
|
+
"m": "objective-c",
|
|
3999
|
+
"mak": "makefile",
|
|
4000
|
+
"mjs": "javascript",
|
|
4001
|
+
"mk": "makefile",
|
|
4002
|
+
"mm": "objective-c",
|
|
4003
|
+
"mts": "typescript",
|
|
4004
|
+
"node": "node",
|
|
4005
|
+
"pch": "objective-c",
|
|
4006
|
+
"php": "php",
|
|
4007
|
+
"php3": "php",
|
|
4008
|
+
"php4": "php",
|
|
4009
|
+
"php5": "php",
|
|
4010
|
+
"phps": "php",
|
|
4011
|
+
"phtml": "php",
|
|
4012
|
+
"pl": "perl",
|
|
4013
|
+
"plist": "xml",
|
|
4014
|
+
"pm": "perl",
|
|
4015
|
+
"pod": "perl",
|
|
4016
|
+
"proto": "protobuf",
|
|
4017
|
+
"ps1": "powershell",
|
|
4018
|
+
"psd1": "powershell",
|
|
4019
|
+
"psm1": "powershell",
|
|
4020
|
+
"py": "python",
|
|
4021
|
+
"pyi": "python",
|
|
4022
|
+
"pyw": "python",
|
|
4023
|
+
"pyx": "python",
|
|
4024
|
+
"r": "r",
|
|
4025
|
+
"rake": "ruby",
|
|
4026
|
+
"rb": "ruby",
|
|
4027
|
+
"rmd": "r",
|
|
4028
|
+
"rs": "rust",
|
|
4029
|
+
"sc": "scala",
|
|
4030
|
+
"scala": "scala",
|
|
4031
|
+
"sh": "shell",
|
|
4032
|
+
"sol": "solidity",
|
|
4033
|
+
"sql": "sql",
|
|
4034
|
+
"svelte": "svelte",
|
|
4035
|
+
"swift": "swift",
|
|
4036
|
+
"t": "perl",
|
|
4037
|
+
"tcsh": "shell",
|
|
4038
|
+
"toml": "toml",
|
|
4039
|
+
"tpp": "cpp",
|
|
4040
|
+
"ts": "typescript",
|
|
4041
|
+
"tsx": "react",
|
|
4042
|
+
"vue": "vue",
|
|
4043
|
+
"wasm": "wasm",
|
|
4044
|
+
"wast": "wasm",
|
|
4045
|
+
"wat": "wasm",
|
|
4046
|
+
"xml": "xml",
|
|
4047
|
+
"xsd": "xml",
|
|
4048
|
+
"xsl": "xml",
|
|
4049
|
+
"xslt": "xml",
|
|
4050
|
+
"yaml": "yaml",
|
|
4051
|
+
"yml": "yaml",
|
|
4052
|
+
"zig": "zig",
|
|
4053
|
+
"zsh": "shell"
|
|
4054
|
+
};
|
|
4055
|
+
const LINK_CODE_EXTENSIONS = new Set([
|
|
2673
4056
|
"ts",
|
|
2674
4057
|
"tsx",
|
|
2675
4058
|
"js",
|
|
@@ -2739,30 +4122,316 @@ const CODE_EXTENSIONS = new Set([
|
|
|
2739
4122
|
"hs",
|
|
2740
4123
|
"dart"
|
|
2741
4124
|
]);
|
|
2742
|
-
|
|
2743
|
-
"
|
|
2744
|
-
|
|
2745
|
-
|
|
2746
|
-
|
|
2747
|
-
|
|
2748
|
-
|
|
2749
|
-
|
|
2750
|
-
|
|
2751
|
-
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
|
|
2759
|
-
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
|
|
4125
|
+
function basename$1(path) {
|
|
4126
|
+
return path.slice(Math.max(path.lastIndexOf("/"), path.lastIndexOf("\\")) + 1);
|
|
4127
|
+
}
|
|
4128
|
+
/**
|
|
4129
|
+
* Test whether a resolved file type uses the full-color code-icon set.
|
|
4130
|
+
* @param type - Resolved file-type string.
|
|
4131
|
+
* @returns Whether the value is a detailed code-file type.
|
|
4132
|
+
*/
|
|
4133
|
+
function isCodeFileType(type) {
|
|
4134
|
+
return CODE_FILE_TYPE_SET.has(type);
|
|
4135
|
+
}
|
|
4136
|
+
/**
|
|
4137
|
+
* Test whether an extension belonged to the established coarse LinkIcon code category.
|
|
4138
|
+
* @param extension - Extension without a leading dot.
|
|
4139
|
+
* @returns Whether clickable links keep the code glyph for this extension.
|
|
4140
|
+
*/
|
|
4141
|
+
function isLinkCodeExtension(extension) {
|
|
4142
|
+
return LINK_CODE_EXTENSIONS.has(extension.toLowerCase());
|
|
4143
|
+
}
|
|
4144
|
+
/**
|
|
4145
|
+
* Resolve the most specific code/configuration icon according to the supplied map priority.
|
|
4146
|
+
* @param name - Lowercase basename.
|
|
4147
|
+
* @param extension - Lowercase extension without the leading dot.
|
|
4148
|
+
* @param context - Optional project-file snapshot for context-sensitive matches.
|
|
4149
|
+
* @returns The detailed code type, or null when the traditional file classifier owns the path.
|
|
4150
|
+
*/
|
|
4151
|
+
function classifyCodeFileType(name, extension, context) {
|
|
4152
|
+
const exact = FILE_NAME_TYPES[name];
|
|
4153
|
+
if (exact !== void 0) return exact;
|
|
4154
|
+
for (const [prefix, type] of FILE_NAME_PREFIX_TYPES) if (name.startsWith(prefix)) return type;
|
|
4155
|
+
for (const [suffix, type] of FILE_NAME_SUFFIX_TYPES) if (name.endsWith(suffix)) return type;
|
|
4156
|
+
if (extension === "dart" && context !== void 0) {
|
|
4157
|
+
if ((Object.entries(context.files).find(([path]) => basename$1(path).toLowerCase() === "pubspec.yaml")?.[1])?.includes("flutter:") === true) return "flutter";
|
|
4158
|
+
}
|
|
4159
|
+
return EXTENSION_TYPES$1[extension] ?? null;
|
|
4160
|
+
}
|
|
4161
|
+
//#endregion
|
|
4162
|
+
//#region lib/types/FileTypeIcon.js
|
|
4163
|
+
const EXTENSION_TYPES = {
|
|
4164
|
+
scss: "code",
|
|
4165
|
+
sass: "code",
|
|
4166
|
+
less: "code",
|
|
4167
|
+
vue: "code",
|
|
4168
|
+
svelte: "code",
|
|
4169
|
+
astro: "code",
|
|
4170
|
+
bat: "code",
|
|
4171
|
+
cmd: "code",
|
|
4172
|
+
csv: "code",
|
|
4173
|
+
tsv: "code",
|
|
4174
|
+
html: "html",
|
|
4175
|
+
htm: "html",
|
|
4176
|
+
png: "image",
|
|
4177
|
+
jpg: "image",
|
|
4178
|
+
jpeg: "image",
|
|
4179
|
+
gif: "image",
|
|
4180
|
+
svg: "image",
|
|
4181
|
+
webp: "image",
|
|
4182
|
+
avif: "image",
|
|
4183
|
+
bmp: "image",
|
|
4184
|
+
ico: "image",
|
|
4185
|
+
tif: "image",
|
|
4186
|
+
tiff: "image",
|
|
4187
|
+
heic: "image",
|
|
4188
|
+
heif: "image",
|
|
4189
|
+
md: "markdown",
|
|
4190
|
+
mdx: "markdown",
|
|
4191
|
+
markdown: "markdown",
|
|
4192
|
+
pdf: "pdf",
|
|
4193
|
+
ppt: "ppt",
|
|
4194
|
+
pptx: "ppt",
|
|
4195
|
+
key: "ppt",
|
|
4196
|
+
mp4: "video",
|
|
4197
|
+
mov: "video",
|
|
4198
|
+
m4v: "video",
|
|
4199
|
+
webm: "video",
|
|
4200
|
+
mkv: "video",
|
|
4201
|
+
avi: "video",
|
|
4202
|
+
mpg: "video",
|
|
4203
|
+
mpeg: "video",
|
|
4204
|
+
doc: "word",
|
|
4205
|
+
docx: "word",
|
|
4206
|
+
rtf: "word",
|
|
4207
|
+
odt: "word",
|
|
4208
|
+
pages: "word",
|
|
4209
|
+
xls: "excel",
|
|
4210
|
+
xlsx: "excel",
|
|
4211
|
+
xlsm: "excel",
|
|
4212
|
+
numbers: "excel"
|
|
4213
|
+
};
|
|
4214
|
+
const NAME_TYPES = {
|
|
4215
|
+
changelog: "markdown",
|
|
4216
|
+
contributing: "markdown",
|
|
4217
|
+
readme: "markdown"
|
|
4218
|
+
};
|
|
4219
|
+
function basename(path) {
|
|
4220
|
+
return path.slice(Math.max(path.lastIndexOf("/"), path.lastIndexOf("\\")) + 1);
|
|
4221
|
+
}
|
|
4222
|
+
/**
|
|
4223
|
+
* Extract the final suffix from a file path without changing its case.
|
|
4224
|
+
* A leading dot starts a suffix, while a missing or trailing dot returns an empty string.
|
|
4225
|
+
* @param path - File path or basename using either path separator.
|
|
4226
|
+
* @returns The characters after the basename's final dot.
|
|
4227
|
+
*/
|
|
4228
|
+
function fileExtension(path) {
|
|
4229
|
+
const name = basename(path);
|
|
4230
|
+
const dot = name.lastIndexOf(".");
|
|
4231
|
+
return dot < 0 ? "" : name.slice(dot + 1);
|
|
4232
|
+
}
|
|
4233
|
+
/**
|
|
4234
|
+
* Classify a file path or name for file-card presentation.
|
|
4235
|
+
* Matching is case-insensitive and applies code filename rules before extension rules;
|
|
4236
|
+
* unknown names fall back to `other`.
|
|
4237
|
+
* @param path - File path or basename using either path separator.
|
|
4238
|
+
* @param context - Optional project files used by context-sensitive code mappings.
|
|
4239
|
+
* @returns The file's closed presentation category.
|
|
4240
|
+
*/
|
|
4241
|
+
function classifyFileType(path, context) {
|
|
4242
|
+
const name = basename(path).toLowerCase();
|
|
4243
|
+
const extension = fileExtension(name).toLowerCase();
|
|
4244
|
+
return classifyCodeFileType(name, extension, context) ?? NAME_TYPES[name] ?? EXTENSION_TYPES[extension] ?? "other";
|
|
4245
|
+
}
|
|
4246
|
+
const FILE_BODY = "M8.48924 28H19.5108C21.6479 28 22.7165 28 23.5594 27.6509C24.6833 27.1853 25.5762 26.2924 26.0417 25.1685C26.3909 24.3256 26.3909 23.257 26.3909 21.1199V8.79443C26.3909 8.32877 26.3909 8.09593 26.3471 7.87507C26.2887 7.58058 26.173 7.30042 26.0067 7.05048C25.882 6.86303 25.7177 6.69799 25.3893 6.36792L20.0611 1.01354C19.7304 0.681235 19.5651 0.515081 19.3769 0.38885C19.126 0.220541 18.8443 0.103463 18.5481 0.0443412C18.3259 0 18.0915 0 17.6226 0H8.48924C6.35209 0 5.28351 0 4.4406 0.349145C3.31672 0.814671 2.4238 1.70759 1.95828 2.83147C1.60913 3.67438 1.60913 4.74296 1.60913 6.88011V21.1199C1.60913 23.257 1.60913 24.3256 1.95828 25.1685C2.4238 26.2924 3.31672 27.1853 4.4406 27.6509C5.28351 28 6.35209 28 8.48924 28Z";
|
|
4247
|
+
const FILE_FOLD = "M26.3909 7.37445L19.0525 0V3.77445C19.0525 4.89271 19.0525 5.45184 19.2352 5.89289C19.4788 6.48096 19.946 6.94818 20.5341 7.19176C20.9751 7.37445 21.5342 7.37445 22.6525 7.37445H26.3909Z";
|
|
4248
|
+
const FILE_MARK_TRANSFORM = "translate(14 16) scale(1.12) translate(-14 -16)";
|
|
4249
|
+
const LARGE_FILE_MARK_TRANSFORM = "translate(14 16) scale(1.22) translate(-14 -16)";
|
|
4250
|
+
const FOLDER_MARK_TRANSFORM = "translate(14 13.0693) scale(1.12) translate(-14 -13.0693)";
|
|
4251
|
+
function FileGlyph({ size, className, children, markTransform = FILE_MARK_TRANSFORM, muted = false }) {
|
|
4252
|
+
return jsxs("svg", {
|
|
4253
|
+
width: size,
|
|
4254
|
+
height: size,
|
|
4255
|
+
className,
|
|
4256
|
+
viewBox: "0 0 28 28",
|
|
4257
|
+
fill: "none",
|
|
4258
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
4259
|
+
"aria-hidden": true,
|
|
4260
|
+
children: [
|
|
4261
|
+
jsx("path", {
|
|
4262
|
+
d: FILE_BODY,
|
|
4263
|
+
fill: "currentColor"
|
|
4264
|
+
}),
|
|
4265
|
+
muted ? jsx("path", {
|
|
4266
|
+
d: FILE_FOLD,
|
|
4267
|
+
fill: "var(--dsw-static-neutral-400)"
|
|
4268
|
+
}) : jsx("path", {
|
|
4269
|
+
d: FILE_FOLD,
|
|
4270
|
+
fill: "var(--dsw-static-neutral-00)",
|
|
4271
|
+
fillOpacity: ".7"
|
|
4272
|
+
}),
|
|
4273
|
+
children !== void 0 && jsx("g", {
|
|
4274
|
+
color: "var(--dsw-static-neutral-00)",
|
|
4275
|
+
"data-file-type-mark": true,
|
|
4276
|
+
transform: markTransform,
|
|
4277
|
+
children
|
|
4278
|
+
})
|
|
4279
|
+
]
|
|
4280
|
+
});
|
|
4281
|
+
}
|
|
4282
|
+
function FolderGlyph$1({ size, className }) {
|
|
4283
|
+
return jsxs("svg", {
|
|
4284
|
+
width: size,
|
|
4285
|
+
height: size,
|
|
4286
|
+
className,
|
|
4287
|
+
viewBox: "0 0 28 28",
|
|
4288
|
+
fill: "none",
|
|
4289
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
4290
|
+
"aria-hidden": true,
|
|
4291
|
+
children: [jsx("path", {
|
|
4292
|
+
d: "M2.80078 10.2112C2.80078 9.52802 2.80078 9.18642 2.85314 8.866C2.98648 8.05 3.36942 7.29538 3.94925 6.70595C4.17694 6.4745 4.45264 6.2728 5.00404 5.86939C5.29197 5.65874 5.43594 5.55342 5.58711 5.46632C5.97089 5.24521 6.39638 5.10618 6.83667 5.05803C7.01011 5.03906 7.18849 5.03906 7.54524 5.03906H11.6543C12.4669 5.03906 12.8732 5.03906 13.2599 5.13697C13.3882 5.16945 13.5143 5.20986 13.6375 5.25795C14.0091 5.40294 14.3398 5.63902 15.0012 6.1112L16.2632 7.01224C16.5526 7.21881 16.6972 7.3221 16.8598 7.38553C16.9137 7.40657 16.9689 7.42425 17.025 7.43846C17.1942 7.4813 17.372 7.4813 17.7275 7.4813H19.8008C22.0506 7.4813 23.1755 7.4813 23.9641 8.05425C24.2188 8.23928 24.4428 8.46326 24.6278 8.71794C25.2008 9.50654 25.2008 10.6315 25.2008 12.8813V18.7283C25.2008 20.9781 25.2008 22.1031 24.6278 22.8917C24.4428 23.1463 24.2188 23.3703 23.9641 23.5554C23.1755 24.1283 22.0506 24.1283 19.8008 24.1283H8.20077C5.95094 24.1283 4.82602 24.1283 4.03743 23.5554C3.78274 23.3703 3.55877 23.1463 3.37373 22.8917C2.80078 22.1031 2.80078 20.9781 2.80078 18.7283V10.2112Z",
|
|
4293
|
+
fill: "currentColor"
|
|
4294
|
+
}), jsx("g", {
|
|
4295
|
+
color: "var(--dsw-static-neutral-00)",
|
|
4296
|
+
"data-file-type-mark": true,
|
|
4297
|
+
transform: FOLDER_MARK_TRANSFORM,
|
|
4298
|
+
children: jsx("path", {
|
|
4299
|
+
d: "M6.31445 13.0693H21.6893",
|
|
4300
|
+
stroke: "currentColor",
|
|
4301
|
+
strokeWidth: "2.38"
|
|
4302
|
+
})
|
|
4303
|
+
})]
|
|
4304
|
+
});
|
|
4305
|
+
}
|
|
4306
|
+
function glyph(type, size, className) {
|
|
4307
|
+
switch (type) {
|
|
4308
|
+
case "code": return jsxs(FileGlyph, {
|
|
4309
|
+
size,
|
|
4310
|
+
className,
|
|
4311
|
+
children: [jsx("path", {
|
|
4312
|
+
d: "M8.61 16.3601L11.76 18.3901V20.1401L7 17.0601V15.6601L11.76 12.5801V14.3301L8.61 16.3601Z",
|
|
4313
|
+
fill: "currentColor"
|
|
4314
|
+
}), jsx("path", {
|
|
4315
|
+
d: "M16.1918 14.3301V12.5801L20.9518 15.6601V17.0601L16.1918 20.1401V18.3901L19.3418 16.3601L16.1918 14.3301Z",
|
|
4316
|
+
fill: "currentColor"
|
|
4317
|
+
})]
|
|
4318
|
+
});
|
|
4319
|
+
case "excel": return jsx(FileGlyph, {
|
|
4320
|
+
size,
|
|
4321
|
+
className,
|
|
4322
|
+
markTransform: LARGE_FILE_MARK_TRANSFORM,
|
|
4323
|
+
children: jsx("path", {
|
|
4324
|
+
d: "M10.2932 20.5L13.3532 16.25L13.3432 17.66L10.4032 13.5H12.6332L14.5132 16.21L13.5632 16.22L15.4132 13.5H17.5532L14.6132 17.58V16.18L17.7132 20.5H15.4332L13.5232 17.65H14.4332L12.5532 20.5H10.2932Z",
|
|
4325
|
+
fill: "currentColor"
|
|
4326
|
+
})
|
|
4327
|
+
});
|
|
4328
|
+
case "folder": return jsx(FolderGlyph$1, {
|
|
4329
|
+
size,
|
|
4330
|
+
className
|
|
4331
|
+
});
|
|
4332
|
+
case "html": return jsx(FileGlyph, {
|
|
4333
|
+
size,
|
|
4334
|
+
className,
|
|
4335
|
+
children: jsx("path", {
|
|
4336
|
+
fillRule: "evenodd",
|
|
4337
|
+
clipRule: "evenodd",
|
|
4338
|
+
d: "M13.9994 9.68298C17.212 9.68298 19.8167 12.2872 19.8168 15.4997C19.8168 18.7123 17.2121 21.3171 13.9994 21.3171C10.7869 21.3169 8.18274 18.7122 8.18274 15.4997C8.1829 12.2873 10.787 9.68315 13.9994 9.68298ZM9.26213 16.0247C9.47025 17.9241 10.7936 19.4876 12.5639 20.0463C12.42 19.7977 12.2952 19.5152 12.1879 19.2116C11.885 18.3541 11.693 17.2434 11.6424 16.0247H9.26213ZM16.3565 16.0247C16.3059 17.2434 16.1145 18.3542 15.8116 19.2116C15.7044 19.5151 15.5788 19.7971 15.435 20.0456C17.2054 19.487 18.5293 17.9242 18.7374 16.0247H16.3565ZM12.6938 16.0247C12.7439 17.1459 12.9212 18.1334 13.1784 18.8616C13.332 19.2962 13.503 19.61 13.6686 19.805C13.834 19.9996 13.9473 20.0256 13.9994 20.0258C14.0514 20.0258 14.1651 20.0002 14.331 19.805C14.4966 19.61 14.6676 19.2962 14.8211 18.8616C15.0784 18.1334 15.2557 17.1459 15.3058 16.0247H12.6938ZM13.9994 10.733C13.9473 10.7331 13.834 10.7598 13.6686 10.9545C13.503 11.1494 13.3319 11.4633 13.1784 11.8978C12.903 12.6777 12.7188 13.7545 12.6849 14.9747H15.3147C15.2808 13.7545 15.0966 12.6777 14.8211 11.8978C14.6676 11.4633 14.4965 11.1494 14.331 10.9545C14.1651 10.7593 14.0514 10.733 13.9994 10.733ZM15.5888 11.0051C15.6701 11.1756 15.7444 11.3576 15.8116 11.5478C16.1343 12.4613 16.3308 13.6619 16.3647 14.9747H18.7374C18.5352 13.1307 17.2817 11.6036 15.5888 11.0051ZM12.4101 11.0051C10.7174 11.6037 9.46428 13.1308 9.26213 14.9747H11.6349C11.6688 13.6619 11.8652 12.4613 12.1879 11.5478C12.2551 11.3577 12.3288 11.1756 12.4101 11.0051Z",
|
|
4339
|
+
fill: "currentColor"
|
|
4340
|
+
})
|
|
4341
|
+
});
|
|
4342
|
+
case "image": return jsxs(FileGlyph, {
|
|
4343
|
+
size,
|
|
4344
|
+
className,
|
|
4345
|
+
children: [
|
|
4346
|
+
jsx("path", {
|
|
4347
|
+
d: "M10.4212 15.9204C10.5756 15.6558 10.9579 15.6558 11.1123 15.9204L13.6493 20.2696C13.8048 20.5362 13.6125 20.8711 13.3037 20.8711H8.22974C7.92102 20.8711 7.72868 20.5362 7.88423 20.2696L10.4212 15.9204Z",
|
|
4348
|
+
fill: "currentColor"
|
|
4349
|
+
}),
|
|
4350
|
+
jsx("path", {
|
|
4351
|
+
d: "M15.4981 13.186C15.6505 12.9117 16.0451 12.9117 16.1975 13.186L20.1368 20.2769C20.2849 20.5435 20.0922 20.8711 19.7872 20.8711H11.9084C11.6034 20.8711 11.4107 20.5435 11.5588 20.2769L15.4981 13.186Z",
|
|
4352
|
+
fill: "currentColor"
|
|
4353
|
+
}),
|
|
4354
|
+
jsx("path", {
|
|
4355
|
+
d: "M11.8603 11.3997C11.8603 12.286 11.1418 13.0045 10.2555 13.0045C9.36924 13.0045 8.65076 12.286 8.65076 11.3997C8.65076 10.5134 9.36924 9.79492 10.2555 9.79492C11.1418 9.79492 11.8603 10.5134 11.8603 11.3997Z",
|
|
4356
|
+
fill: "currentColor"
|
|
4357
|
+
})
|
|
4358
|
+
]
|
|
4359
|
+
});
|
|
4360
|
+
case "markdown": return jsx(FileGlyph, {
|
|
4361
|
+
size,
|
|
4362
|
+
className,
|
|
4363
|
+
markTransform: LARGE_FILE_MARK_TRANSFORM,
|
|
4364
|
+
children: jsx("path", {
|
|
4365
|
+
d: "M8.7588 19.5V14.6H9.8998L11.9298 17.932H11.3278L13.3018 14.6H14.4428L14.4568 19.5H13.1828L13.1688 16.539H13.3858L11.9088 19.017H11.2928L9.7738 16.539H10.0398V19.5H8.7588ZM15.4375 19.5V14.6H17.7545C18.2958 14.6 18.7718 14.7003 19.1825 14.901C19.5932 15.1017 19.9128 15.384 20.1415 15.748C20.3748 16.112 20.4915 16.546 20.4915 17.05C20.4915 17.5493 20.3748 17.9833 20.1415 18.352C19.9128 18.716 19.5932 18.9983 19.1825 19.199C18.7718 19.3997 18.2958 19.5 17.7545 19.5H15.4375ZM16.8235 18.394H17.6985C17.9785 18.394 18.2212 18.3427 18.4265 18.24C18.6365 18.1327 18.7998 17.9787 18.9165 17.778C19.0332 17.5727 19.0915 17.33 19.0915 17.05C19.0915 16.7653 19.0332 16.5227 18.9165 16.322C18.7998 16.1213 18.6365 15.9697 18.4265 15.867C18.2212 15.7597 17.9785 15.706 17.6985 15.706H16.8235V18.394Z",
|
|
4366
|
+
fill: "currentColor"
|
|
4367
|
+
})
|
|
4368
|
+
});
|
|
4369
|
+
case "other": return jsx(FileGlyph, {
|
|
4370
|
+
size,
|
|
4371
|
+
className,
|
|
4372
|
+
muted: true
|
|
4373
|
+
});
|
|
4374
|
+
case "pdf": return jsx(FileGlyph, {
|
|
4375
|
+
size,
|
|
4376
|
+
className,
|
|
4377
|
+
markTransform: LARGE_FILE_MARK_TRANSFORM,
|
|
4378
|
+
children: jsx("path", {
|
|
4379
|
+
d: "M6.80616 19.5V14.6H9.04616C9.49416 14.6 9.87916 14.6723 10.2012 14.817C10.5278 14.9617 10.7798 15.1717 10.9572 15.447C11.1345 15.7177 11.2232 16.0397 11.2232 16.413C11.2232 16.7817 11.1345 17.1013 10.9572 17.372C10.7798 17.6427 10.5278 17.8527 10.2012 18.002C9.87916 18.1467 9.49416 18.219 9.04616 18.219H7.57616L8.19216 17.617V19.5H6.80616ZM8.19216 17.764L7.57616 17.127H8.96216C9.2515 17.127 9.46616 17.064 9.60616 16.938C9.75083 16.812 9.82316 16.637 9.82316 16.413C9.82316 16.1843 9.75083 16.007 9.60616 15.881C9.46616 15.755 9.2515 15.692 8.96216 15.692H7.57616L8.19216 15.055V17.764ZM11.8989 19.5V14.6H14.2159C14.7573 14.6 15.2333 14.7003 15.6439 14.901C16.0546 15.1017 16.3743 15.384 16.6029 15.748C16.8363 16.112 16.9529 16.546 16.9529 17.05C16.9529 17.5493 16.8363 17.9833 16.6029 18.352C16.3743 18.716 16.0546 18.9983 15.6439 19.199C15.2333 19.3997 14.7573 19.5 14.2159 19.5H11.8989ZM13.2849 18.394H14.1599C14.4399 18.394 14.6826 18.3427 14.8879 18.24C15.0979 18.1327 15.2613 17.9787 15.3779 17.778C15.4946 17.5727 15.5529 17.33 15.5529 17.05C15.5529 16.7653 15.4946 16.5227 15.3779 16.322C15.2613 16.1213 15.0979 15.9697 14.8879 15.867C14.6826 15.7597 14.4399 15.706 14.1599 15.706H13.2849V18.394ZM17.6821 19.5V14.6H21.5251V15.671H19.0681V19.5H17.6821ZM18.9701 17.82V16.749H21.2311V17.82H18.9701Z",
|
|
4380
|
+
fill: "currentColor"
|
|
4381
|
+
})
|
|
4382
|
+
});
|
|
4383
|
+
case "ppt": return jsx(FileGlyph, {
|
|
4384
|
+
size,
|
|
4385
|
+
className,
|
|
4386
|
+
markTransform: LARGE_FILE_MARK_TRANSFORM,
|
|
4387
|
+
children: jsx("path", {
|
|
4388
|
+
d: "M11.0132 20.5V13.5H14.2132C14.8532 13.5 15.4032 13.6033 15.8632 13.81C16.3299 14.0167 16.6899 14.3167 16.9432 14.71C17.1966 15.0967 17.3232 15.5567 17.3232 16.09C17.3232 16.6167 17.1966 17.0733 16.9432 17.46C16.6899 17.8467 16.3299 18.1467 15.8632 18.36C15.4032 18.5667 14.8532 18.67 14.2132 18.67H12.1132L12.9932 17.81V20.5H11.0132ZM12.9932 18.02L12.1132 17.11H14.0932C14.5066 17.11 14.8132 17.02 15.0132 16.84C15.2199 16.66 15.3232 16.41 15.3232 16.09C15.3232 15.7633 15.2199 15.51 15.0132 15.33C14.8132 15.15 14.5066 15.06 14.0932 15.06H12.1132L12.9932 14.15V18.02Z",
|
|
4389
|
+
fill: "currentColor"
|
|
4390
|
+
})
|
|
4391
|
+
});
|
|
4392
|
+
case "video": return jsx(FileGlyph, {
|
|
4393
|
+
size,
|
|
4394
|
+
className,
|
|
4395
|
+
children: jsx("path", {
|
|
4396
|
+
d: "M17.5 14.634C18.1667 15.0189 18.1667 15.9811 17.5 16.366L11.5 19.8301C10.8333 20.215 10 19.7339 10 18.9641L10 12.0359C10 11.2661 10.8333 10.785 11.5 11.1699L17.5 14.634Z",
|
|
4397
|
+
fill: "currentColor"
|
|
4398
|
+
})
|
|
4399
|
+
});
|
|
4400
|
+
case "word": return jsx(FileGlyph, {
|
|
4401
|
+
size,
|
|
4402
|
+
className,
|
|
4403
|
+
markTransform: LARGE_FILE_MARK_TRANSFORM,
|
|
4404
|
+
children: jsx("path", {
|
|
4405
|
+
d: "M10.5118 20.5L8.24179 13.5H10.2818L12.1918 19.56H11.1618L13.1718 13.5H14.9918L16.8918 19.56H15.9018L17.8718 13.5H19.7618L17.4918 20.5H15.3718L13.7518 15.35H14.3218L12.6318 20.5H10.5118Z",
|
|
4406
|
+
fill: "currentColor"
|
|
4407
|
+
})
|
|
4408
|
+
});
|
|
4409
|
+
/* v8 ignore next -- closed-union backstop; only reached if a type is forged */
|
|
4410
|
+
default: return assertNever$2(type);
|
|
4411
|
+
}
|
|
4412
|
+
}
|
|
4413
|
+
/** Closed-union exhaustiveness guard for traditional file artwork. */
|
|
4414
|
+
/* v8 ignore next 3 -- only reachable when an untyped caller forges a traditional file type */
|
|
4415
|
+
function assertNever$2(value) {
|
|
4416
|
+
throw new Error(`unreachable traditional file type: ${String(value)}`);
|
|
4417
|
+
}
|
|
4418
|
+
/**
|
|
4419
|
+
* Render a decorative file-type glyph for a path or an explicitly resolved kind.
|
|
4420
|
+
* @param props - Path or kind selection, optional project context, size, and CSS class.
|
|
4421
|
+
* @returns The category-colored SVG; the caller owns the accessible name and may override
|
|
4422
|
+
* the color through `--dsh-file-type-icon-color`.
|
|
4423
|
+
*/
|
|
4424
|
+
function FileTypeIcon(props) {
|
|
4425
|
+
const { size = 28, className } = props;
|
|
4426
|
+
const resolvedType = "path" in props ? classifyFileType(props.path, props.context) : props.kind;
|
|
4427
|
+
return isCodeFileType(resolvedType) ? jsx(CodeFileIcon, {
|
|
4428
|
+
type: resolvedType,
|
|
4429
|
+
size,
|
|
4430
|
+
className
|
|
4431
|
+
}) : glyph(resolvedType, size, clsx(css$13.icon, css$13[resolvedType], className));
|
|
4432
|
+
}
|
|
4433
|
+
//#endregion
|
|
4434
|
+
//#region lib/types/LinkIcon.js
|
|
2766
4435
|
/**
|
|
2767
4436
|
* Derive a file path's link-icon category from its extension. Unknown and
|
|
2768
4437
|
* missing extensions fall to `other` (the plain-paper glyph).
|
|
@@ -2770,13 +4439,24 @@ const DOCUMENT_EXTENSIONS = new Set([
|
|
|
2770
4439
|
* @returns The file's glyph category; never `url` or `folder`.
|
|
2771
4440
|
*/
|
|
2772
4441
|
function classifyLinkPath(path) {
|
|
2773
|
-
const
|
|
2774
|
-
const
|
|
2775
|
-
if (
|
|
2776
|
-
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
|
|
4442
|
+
const type = classifyFileType(path);
|
|
4443
|
+
const extension = fileExtension(path);
|
|
4444
|
+
if (isCodeFileType(type)) return isLinkCodeExtension(extension) ? "code" : "other";
|
|
4445
|
+
if (extension === "") return "other";
|
|
4446
|
+
switch (type) {
|
|
4447
|
+
case "code":
|
|
4448
|
+
case "html": return "code";
|
|
4449
|
+
case "image": return "image";
|
|
4450
|
+
case "excel":
|
|
4451
|
+
case "pdf":
|
|
4452
|
+
case "ppt":
|
|
4453
|
+
case "word": return "document";
|
|
4454
|
+
case "markdown":
|
|
4455
|
+
case "other":
|
|
4456
|
+
case "video": return "other";
|
|
4457
|
+
/* v8 ignore next -- classifyFileType returns a closed union exhausted above */
|
|
4458
|
+
default: return assertNever$1(type);
|
|
4459
|
+
}
|
|
2780
4460
|
}
|
|
2781
4461
|
const GlobeGlyph = ({ size, className }) => jsx("svg", {
|
|
2782
4462
|
width: size,
|
|
@@ -2990,7 +4670,7 @@ function projectUserText(text, sessionLabels, slashNames = [], slashKind = "skil
|
|
|
2990
4670
|
let cursor = 0;
|
|
2991
4671
|
const pushPlain = (from, to) => {
|
|
2992
4672
|
parts.push(jsx("span", {
|
|
2993
|
-
className: css$
|
|
4673
|
+
className: css$14.plainRun,
|
|
2994
4674
|
children: text.slice(from, to)
|
|
2995
4675
|
}, `t${from}`));
|
|
2996
4676
|
};
|
|
@@ -3001,19 +4681,19 @@ function projectUserText(text, sessionLabels, slashNames = [], slashKind = "skil
|
|
|
3001
4681
|
const referenceKind = kind === "session" ? "session" : label.startsWith("@") ? label.endsWith("/") ? "folder" : "file" : void 0;
|
|
3002
4682
|
const displayLabel = range.display ?? (referenceKind === void 0 ? label : referenceKind === "session" ? label.slice(1) : label.slice(1).replace(/^"|"$/gu, "").split(/[\\/]/u).filter(Boolean).at(-1) ?? label.slice(1));
|
|
3003
4683
|
parts.push(jsxs("span", {
|
|
3004
|
-
className: clsx(css$
|
|
4684
|
+
className: clsx(css$14.refChip, referenceKind === void 0 && css$14.slashChip),
|
|
3005
4685
|
"data-ref-chip": referenceKind ?? slashKind,
|
|
3006
4686
|
title: label,
|
|
3007
4687
|
children: [referenceKind !== void 0 && jsx(ReferenceIcon, {
|
|
3008
4688
|
kind: referenceKind,
|
|
3009
4689
|
size: 16,
|
|
3010
|
-
className: css$
|
|
4690
|
+
className: css$14.refIcon
|
|
3011
4691
|
}), displayLabel]
|
|
3012
4692
|
}, tokenStart));
|
|
3013
4693
|
cursor = end;
|
|
3014
4694
|
}
|
|
3015
4695
|
if (parts.length === 0) return jsx("span", {
|
|
3016
|
-
className: css$
|
|
4696
|
+
className: css$14.plainRun,
|
|
3017
4697
|
children: text
|
|
3018
4698
|
});
|
|
3019
4699
|
if (cursor < text.length) pushPlain(cursor, text.length);
|
|
@@ -3151,7 +4831,7 @@ function Tooltip({ label, side = "right", delayMs = 0, disabled = false, maxWidt
|
|
|
3151
4831
|
}
|
|
3152
4832
|
}), pos !== null && jsx("span", {
|
|
3153
4833
|
ref: bubble,
|
|
3154
|
-
className: css$
|
|
4834
|
+
className: css$15.bubble,
|
|
3155
4835
|
"data-side": placement,
|
|
3156
4836
|
style: {
|
|
3157
4837
|
left: pos.x,
|
|
@@ -3212,18 +4892,18 @@ function Toast({ text, icon, anchor, holdMs = HOLD_MS, onDone }) {
|
|
|
3212
4892
|
};
|
|
3213
4893
|
}, [anchor]);
|
|
3214
4894
|
return createPortal(jsxs("div", {
|
|
3215
|
-
className: css$
|
|
4895
|
+
className: css$16.toast,
|
|
3216
4896
|
role: "alert",
|
|
3217
4897
|
style: {
|
|
3218
4898
|
...left === null ? {} : { left },
|
|
3219
4899
|
"--dsh-toast-hold": `${String(holdMs)}ms`
|
|
3220
4900
|
},
|
|
3221
4901
|
children: [icon !== void 0 && jsx("span", {
|
|
3222
|
-
className: css$
|
|
4902
|
+
className: css$16.icon,
|
|
3223
4903
|
"aria-hidden": true,
|
|
3224
4904
|
children: icon
|
|
3225
4905
|
}), jsx("span", {
|
|
3226
|
-
className: css$
|
|
4906
|
+
className: css$16.text,
|
|
3227
4907
|
children: text
|
|
3228
4908
|
})]
|
|
3229
4909
|
}), document.body);
|
|
@@ -3246,52 +4926,6 @@ function fileSizeText(bytes) {
|
|
|
3246
4926
|
return `${gb < 10 ? gb.toFixed(1) : Math.round(gb)}GB`;
|
|
3247
4927
|
}
|
|
3248
4928
|
//#endregion
|
|
3249
|
-
//#region lib/types/DocumentFileIcon.js
|
|
3250
|
-
/**
|
|
3251
|
-
* Render the DeepSeek Web document glyph used by generic-file cards.
|
|
3252
|
-
* @param props - optional CSS class for sizing and placement.
|
|
3253
|
-
* @returns a decorative document SVG with an instance-safe gradient id.
|
|
3254
|
-
*/
|
|
3255
|
-
function DocumentFileIcon({ className }) {
|
|
3256
|
-
const gradientId = useId();
|
|
3257
|
-
return jsxs("svg", {
|
|
3258
|
-
className,
|
|
3259
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
3260
|
-
width: "24",
|
|
3261
|
-
height: "28",
|
|
3262
|
-
viewBox: "0 0 24 28",
|
|
3263
|
-
fill: "none",
|
|
3264
|
-
"aria-hidden": true,
|
|
3265
|
-
children: [
|
|
3266
|
-
jsx("path", {
|
|
3267
|
-
d: "M16.5 0l7 7v15.6c0 2.25 0 3.375-.573 4.164a3 3 0 0 1-.663.663C21.475 28 20.349 28 18.1 28H5.9c-2.25 0-3.375 0-4.164-.573a3 3 0 0 1-.663-.663C.5 25.975.5 24.849.5 22.6V5.4c0-2.25 0-3.375.573-4.164a3 3 0 0 1 .663-.663C2.525 0 3.651 0 5.9 0h10.6z",
|
|
3268
|
-
fill: `url(#${gradientId})`
|
|
3269
|
-
}),
|
|
3270
|
-
jsx("path", {
|
|
3271
|
-
d: "M16.5 0l7 7h-3.8c-1.12 0-1.68 0-2.108-.218a2 2 0 0 1-.874-.874C16.5 5.48 16.5 4.92 16.5 3.8V0z",
|
|
3272
|
-
fill: "#fff",
|
|
3273
|
-
fillOpacity: ".55"
|
|
3274
|
-
}),
|
|
3275
|
-
jsx("path", {
|
|
3276
|
-
d: "M6 11.784c0-.433.351-.784.784-.784h10.432a.784.784 0 1 1 0 1.568H6.784A.784.784 0 0 1 6 11.784zM6 15.784c0-.433.351-.784.784-.784h10.432a.784.784 0 1 1 0 1.568H6.784A.784.784 0 0 1 6 15.784zM6.114 19.817c0-.433.35-.784.784-.784h6.318a.784.784 0 1 1 0 1.568H6.898a.784.784 0 0 1-.784-.784z",
|
|
3277
|
-
fill: "#fff"
|
|
3278
|
-
}),
|
|
3279
|
-
jsx("defs", { children: jsxs("linearGradient", {
|
|
3280
|
-
id: gradientId,
|
|
3281
|
-
x1: "1.5",
|
|
3282
|
-
y1: "-1",
|
|
3283
|
-
x2: "23.5",
|
|
3284
|
-
y2: "28",
|
|
3285
|
-
gradientUnits: "userSpaceOnUse",
|
|
3286
|
-
children: [jsx("stop", { stopColor: "#6D93FF" }), jsx("stop", {
|
|
3287
|
-
offset: "1",
|
|
3288
|
-
stopColor: "#5A71F0"
|
|
3289
|
-
})]
|
|
3290
|
-
}) })
|
|
3291
|
-
]
|
|
3292
|
-
});
|
|
3293
|
-
}
|
|
3294
|
-
//#endregion
|
|
3295
4929
|
//#region lib/types/relative-time.js
|
|
3296
4930
|
/**
|
|
3297
4931
|
* Compact relative-time bucketing shared by every surface that dates a
|
|
@@ -3456,35 +5090,35 @@ function bracketOf(value) {
|
|
|
3456
5090
|
}
|
|
3457
5091
|
function previewPrimitive(value) {
|
|
3458
5092
|
if (value === null) return jsx("span", {
|
|
3459
|
-
className: css$
|
|
5093
|
+
className: css$17.keywordValue,
|
|
3460
5094
|
children: "null"
|
|
3461
5095
|
});
|
|
3462
5096
|
if (typeof value === "string") return jsx("span", {
|
|
3463
|
-
className: css$
|
|
5097
|
+
className: css$17.stringValue,
|
|
3464
5098
|
children: JSON.stringify(value)
|
|
3465
5099
|
});
|
|
3466
5100
|
if (typeof value === "number") return jsx("span", {
|
|
3467
|
-
className: css$
|
|
5101
|
+
className: css$17.numberValue,
|
|
3468
5102
|
children: String(value)
|
|
3469
5103
|
});
|
|
3470
5104
|
if (typeof value === "boolean") return jsx("span", {
|
|
3471
|
-
className: css$
|
|
5105
|
+
className: css$17.keywordValue,
|
|
3472
5106
|
children: String(value)
|
|
3473
5107
|
});
|
|
3474
5108
|
if (typeof value === "bigint") return jsx("span", {
|
|
3475
|
-
className: css$
|
|
5109
|
+
className: css$17.otherValue,
|
|
3476
5110
|
children: value.toString()
|
|
3477
5111
|
});
|
|
3478
5112
|
if (typeof value === "undefined") return jsx("span", {
|
|
3479
|
-
className: css$
|
|
5113
|
+
className: css$17.otherValue,
|
|
3480
5114
|
children: "undefined"
|
|
3481
5115
|
});
|
|
3482
5116
|
if (typeof value === "symbol") return jsx("span", {
|
|
3483
|
-
className: css$
|
|
5117
|
+
className: css$17.otherValue,
|
|
3484
5118
|
children: value.description ?? "Symbol"
|
|
3485
5119
|
});
|
|
3486
5120
|
if (typeof value === "function") return jsx("span", {
|
|
3487
|
-
className: css$
|
|
5121
|
+
className: css$17.otherValue,
|
|
3488
5122
|
children: value.name || "Function"
|
|
3489
5123
|
});
|
|
3490
5124
|
return null;
|
|
@@ -3498,71 +5132,71 @@ function previewValue(value, depth) {
|
|
|
3498
5132
|
const [open, close] = bracketOf(value);
|
|
3499
5133
|
return jsxs(Fragment, { children: [
|
|
3500
5134
|
jsx("span", {
|
|
3501
|
-
className: css$
|
|
5135
|
+
className: css$17.punctuation,
|
|
3502
5136
|
children: open
|
|
3503
5137
|
}),
|
|
3504
5138
|
depth >= PREVIEW_DEPTH_LIMIT ? jsx("span", {
|
|
3505
|
-
className: css$
|
|
5139
|
+
className: css$17.previewEllipsis,
|
|
3506
5140
|
children: "…"
|
|
3507
5141
|
}) : visible.map(([key, item], index) => jsxs("span", { children: [
|
|
3508
5142
|
index > 0 && jsx("span", {
|
|
3509
|
-
className: css$
|
|
5143
|
+
className: css$17.punctuation,
|
|
3510
5144
|
children: ", "
|
|
3511
5145
|
}),
|
|
3512
5146
|
!array && jsxs(Fragment, { children: [jsx("span", {
|
|
3513
|
-
className: css$
|
|
5147
|
+
className: css$17.previewProperty,
|
|
3514
5148
|
children: key
|
|
3515
5149
|
}), jsx("span", {
|
|
3516
|
-
className: css$
|
|
5150
|
+
className: css$17.punctuation,
|
|
3517
5151
|
children: ": "
|
|
3518
5152
|
})] }),
|
|
3519
5153
|
previewValue(item, depth + 1)
|
|
3520
5154
|
] }, key)),
|
|
3521
5155
|
depth < PREVIEW_DEPTH_LIMIT && entries.length > limit && jsx("span", {
|
|
3522
|
-
className: css$
|
|
5156
|
+
className: css$17.previewEllipsis,
|
|
3523
5157
|
children: ", …"
|
|
3524
5158
|
}),
|
|
3525
5159
|
jsx("span", {
|
|
3526
|
-
className: css$
|
|
5160
|
+
className: css$17.punctuation,
|
|
3527
5161
|
children: close
|
|
3528
5162
|
})
|
|
3529
5163
|
] });
|
|
3530
5164
|
}
|
|
3531
5165
|
function primitiveValue(value) {
|
|
3532
5166
|
if (value === null) return jsx("span", {
|
|
3533
|
-
className: css$
|
|
5167
|
+
className: css$17.keywordValue,
|
|
3534
5168
|
children: "null"
|
|
3535
5169
|
});
|
|
3536
5170
|
if (typeof value === "string") return jsx("span", {
|
|
3537
|
-
className: css$
|
|
5171
|
+
className: css$17.stringValue,
|
|
3538
5172
|
children: JSON.stringify(value)
|
|
3539
5173
|
});
|
|
3540
5174
|
if (typeof value === "boolean") return jsx("span", {
|
|
3541
|
-
className: css$
|
|
5175
|
+
className: css$17.keywordValue,
|
|
3542
5176
|
children: String(value)
|
|
3543
5177
|
});
|
|
3544
5178
|
if (typeof value === "number") return jsx("span", {
|
|
3545
|
-
className: css$
|
|
5179
|
+
className: css$17.numberValue,
|
|
3546
5180
|
children: String(value)
|
|
3547
5181
|
});
|
|
3548
5182
|
if (typeof value === "bigint") return jsx("span", {
|
|
3549
|
-
className: css$
|
|
5183
|
+
className: css$17.numberValue,
|
|
3550
5184
|
children: `${value.toString()}n`
|
|
3551
5185
|
});
|
|
3552
5186
|
if (value instanceof Date) return jsx("span", {
|
|
3553
|
-
className: css$
|
|
5187
|
+
className: css$17.otherValue,
|
|
3554
5188
|
children: value.toISOString()
|
|
3555
5189
|
});
|
|
3556
5190
|
if (typeof value === "function") return jsxs("span", {
|
|
3557
|
-
className: css$
|
|
5191
|
+
className: css$17.otherValue,
|
|
3558
5192
|
children: ["function() ", "{ }"]
|
|
3559
5193
|
});
|
|
3560
5194
|
if (typeof value === "undefined") return jsx("span", {
|
|
3561
|
-
className: css$
|
|
5195
|
+
className: css$17.otherValue,
|
|
3562
5196
|
children: "undefined"
|
|
3563
5197
|
});
|
|
3564
5198
|
return jsx("span", {
|
|
3565
|
-
className: css$
|
|
5199
|
+
className: css$17.otherValue,
|
|
3566
5200
|
children: value.toString()
|
|
3567
5201
|
});
|
|
3568
5202
|
}
|
|
@@ -3590,7 +5224,7 @@ function moveFocus(button, direction) {
|
|
|
3590
5224
|
function NodeField({ field, expandable, onToggle }) {
|
|
3591
5225
|
if (field === void 0) return null;
|
|
3592
5226
|
return jsxs("span", {
|
|
3593
|
-
className: clsx(css$
|
|
5227
|
+
className: clsx(css$17.label, expandable && css$17.clickableLabel),
|
|
3594
5228
|
onClick: expandable ? onToggle : void 0,
|
|
3595
5229
|
children: [fieldText(field), ":"]
|
|
3596
5230
|
});
|
|
@@ -3619,7 +5253,7 @@ function JsonTreeNode({ field, initialExpanded, labels, lastElement, onClaimTabS
|
|
|
3619
5253
|
}
|
|
3620
5254
|
};
|
|
3621
5255
|
const row = (children, ariaExpanded) => jsx("div", {
|
|
3622
|
-
className: css$
|
|
5256
|
+
className: css$17.row,
|
|
3623
5257
|
role: "treeitem",
|
|
3624
5258
|
"aria-expanded": ariaExpanded,
|
|
3625
5259
|
onMouseOver: (event) => {
|
|
@@ -3639,7 +5273,7 @@ function JsonTreeNode({ field, initialExpanded, labels, lastElement, onClaimTabS
|
|
|
3639
5273
|
}),
|
|
3640
5274
|
primitiveValue(value),
|
|
3641
5275
|
!lastElement && jsx("span", {
|
|
3642
|
-
className: css$
|
|
5276
|
+
className: css$17.punctuation,
|
|
3643
5277
|
children: ","
|
|
3644
5278
|
})
|
|
3645
5279
|
] }));
|
|
@@ -3651,22 +5285,22 @@ function JsonTreeNode({ field, initialExpanded, labels, lastElement, onClaimTabS
|
|
|
3651
5285
|
onToggle: toggle
|
|
3652
5286
|
}),
|
|
3653
5287
|
jsx("span", {
|
|
3654
|
-
className: css$
|
|
5288
|
+
className: css$17.punctuation,
|
|
3655
5289
|
children: open
|
|
3656
5290
|
}),
|
|
3657
5291
|
jsx("span", {
|
|
3658
|
-
className: css$
|
|
5292
|
+
className: css$17.punctuation,
|
|
3659
5293
|
children: close
|
|
3660
5294
|
}),
|
|
3661
5295
|
!lastElement && jsx("span", {
|
|
3662
|
-
className: css$
|
|
5296
|
+
className: css$17.punctuation,
|
|
3663
5297
|
children: ","
|
|
3664
5298
|
})
|
|
3665
5299
|
] }));
|
|
3666
5300
|
return row(jsxs(Fragment, { children: [
|
|
3667
5301
|
jsx("span", {
|
|
3668
5302
|
ref: expanderRef,
|
|
3669
|
-
className: clsx(css$
|
|
5303
|
+
className: clsx(css$17.expander, expanded ? css$17.collapseIcon : css$17.expandIcon),
|
|
3670
5304
|
"data-json-expander": true,
|
|
3671
5305
|
role: "button",
|
|
3672
5306
|
"aria-label": expanded ? labels.collapseNode : labels.expandNode,
|
|
@@ -3685,17 +5319,17 @@ function JsonTreeNode({ field, initialExpanded, labels, lastElement, onClaimTabS
|
|
|
3685
5319
|
onToggle: toggle
|
|
3686
5320
|
}),
|
|
3687
5321
|
jsx("span", {
|
|
3688
|
-
className: css$
|
|
5322
|
+
className: css$17.preview,
|
|
3689
5323
|
children: previewValue(value, 0)
|
|
3690
5324
|
}),
|
|
3691
5325
|
!lastElement && jsx("span", {
|
|
3692
|
-
className: css$
|
|
5326
|
+
className: css$17.punctuation,
|
|
3693
5327
|
children: ","
|
|
3694
5328
|
}),
|
|
3695
5329
|
expanded && jsx("ul", {
|
|
3696
5330
|
id: contentsId,
|
|
3697
5331
|
role: "group",
|
|
3698
|
-
className: css$
|
|
5332
|
+
className: css$17.children,
|
|
3699
5333
|
children: entries.map(([key, item], index) => jsx(JsonTreeNode, {
|
|
3700
5334
|
field: key,
|
|
3701
5335
|
value: item,
|
|
@@ -3856,17 +5490,17 @@ function JsonTree({ data, label, className, copyable = true, expandTopLevel = tr
|
|
|
3856
5490
|
const copyTitle = copyState === "copied" ? labels.copied : copyState === "failed" ? labels.copyFailed : copyTargetIsObject ? labels.copyPrettyJson : labels.copyValue;
|
|
3857
5491
|
return jsxs("div", {
|
|
3858
5492
|
ref: rootRef,
|
|
3859
|
-
className: clsx(css$
|
|
5493
|
+
className: clsx(css$17.root, className),
|
|
3860
5494
|
onMouseOver: handleRootMouseOver,
|
|
3861
5495
|
onMouseLeave: () => {
|
|
3862
5496
|
if (!copyMenuOpenRef.current) clearCopyTarget();
|
|
3863
5497
|
},
|
|
3864
5498
|
onScroll: handleScroll,
|
|
3865
5499
|
children: [expandTopLevel ? jsxs("div", {
|
|
3866
|
-
className: css$
|
|
5500
|
+
className: css$17.expandedTopLevel,
|
|
3867
5501
|
children: [
|
|
3868
5502
|
jsx("div", {
|
|
3869
|
-
className: clsx(css$
|
|
5503
|
+
className: clsx(css$17.row, css$17.topLevelBracket),
|
|
3870
5504
|
"data-json-root-row": true,
|
|
3871
5505
|
onMouseOver: (event) => {
|
|
3872
5506
|
event.stopPropagation();
|
|
@@ -3876,13 +5510,13 @@ function JsonTree({ data, label, className, copyable = true, expandTopLevel = tr
|
|
|
3876
5510
|
});
|
|
3877
5511
|
},
|
|
3878
5512
|
children: jsx("span", {
|
|
3879
|
-
className: css$
|
|
5513
|
+
className: css$17.punctuation,
|
|
3880
5514
|
children: rootOpen
|
|
3881
5515
|
})
|
|
3882
5516
|
}),
|
|
3883
5517
|
jsx("div", {
|
|
3884
5518
|
"aria-label": label,
|
|
3885
|
-
className: clsx(css$
|
|
5519
|
+
className: clsx(css$17.container, css$17.expandedTopLevelContainer),
|
|
3886
5520
|
role: "tree",
|
|
3887
5521
|
children: rootEntries.map(([key, value], index) => jsx(JsonTreeNode, {
|
|
3888
5522
|
field: key,
|
|
@@ -3897,16 +5531,16 @@ function JsonTree({ data, label, className, copyable = true, expandTopLevel = tr
|
|
|
3897
5531
|
}, key))
|
|
3898
5532
|
}),
|
|
3899
5533
|
jsx("div", {
|
|
3900
|
-
className: clsx(css$
|
|
5534
|
+
className: clsx(css$17.row, css$17.topLevelBracket),
|
|
3901
5535
|
children: jsx("span", {
|
|
3902
|
-
className: css$
|
|
5536
|
+
className: css$17.punctuation,
|
|
3903
5537
|
children: rootClose
|
|
3904
5538
|
})
|
|
3905
5539
|
})
|
|
3906
5540
|
]
|
|
3907
5541
|
}) : jsx("div", {
|
|
3908
5542
|
"aria-label": label,
|
|
3909
|
-
className: css$
|
|
5543
|
+
className: css$17.container,
|
|
3910
5544
|
role: "tree",
|
|
3911
5545
|
children: jsx(JsonTreeNode, {
|
|
3912
5546
|
value: data,
|
|
@@ -3919,7 +5553,7 @@ function JsonTree({ data, label, className, copyable = true, expandTopLevel = tr
|
|
|
3919
5553
|
onRowHover: handleRowHover
|
|
3920
5554
|
})
|
|
3921
5555
|
}), copyTarget !== void 0 && jsx("span", {
|
|
3922
|
-
className: css$
|
|
5556
|
+
className: css$17.copyAnchor,
|
|
3923
5557
|
style: {
|
|
3924
5558
|
left: copyTarget.left,
|
|
3925
5559
|
top: copyTarget.top
|
|
@@ -3933,7 +5567,7 @@ function JsonTree({ data, label, className, copyable = true, expandTopLevel = tr
|
|
|
3933
5567
|
anchor: jsx("button", {
|
|
3934
5568
|
ref: copyButtonRef,
|
|
3935
5569
|
type: "button",
|
|
3936
|
-
className: css$
|
|
5570
|
+
className: css$17.copyButton,
|
|
3937
5571
|
"data-json-copy-button": true,
|
|
3938
5572
|
"data-state": copyState,
|
|
3939
5573
|
"aria-label": copyTitle,
|
|
@@ -4498,66 +6132,66 @@ function TerminalBlock({ command, cwd, home, output, exitCode, signal, running =
|
|
|
4498
6132
|
const empty = lines.every((line) => line.every((span) => span.text.trim() === ""));
|
|
4499
6133
|
const { hidden, capped, headLines, tailLines } = headTailCap(lines.length, maxLines, expanded);
|
|
4500
6134
|
return jsxs("div", {
|
|
4501
|
-
className: clsx(css$
|
|
6135
|
+
className: clsx(css$18.block, className),
|
|
4502
6136
|
"data-terminal": "",
|
|
4503
6137
|
"data-running": running ? "" : void 0,
|
|
4504
6138
|
children: [jsxs("div", {
|
|
4505
|
-
className: css$
|
|
6139
|
+
className: css$18.header,
|
|
4506
6140
|
children: [
|
|
4507
6141
|
jsxs("div", {
|
|
4508
|
-
className: css$
|
|
6142
|
+
className: css$18.prompt,
|
|
4509
6143
|
children: [jsx("span", {
|
|
4510
|
-
className: css$
|
|
6144
|
+
className: css$18.runStateLabel,
|
|
4511
6145
|
children: state.label
|
|
4512
6146
|
}), commandLines.map((line, index) => jsxs("div", {
|
|
4513
|
-
className: css$
|
|
6147
|
+
className: css$18.promptLine,
|
|
4514
6148
|
children: [
|
|
4515
6149
|
index === 0 && jsx(StateDot, {
|
|
4516
6150
|
state: state.state,
|
|
4517
|
-
className: css$
|
|
6151
|
+
className: css$18.runState
|
|
4518
6152
|
}),
|
|
4519
6153
|
jsx("span", {
|
|
4520
|
-
className: css$
|
|
6154
|
+
className: css$18.cwd,
|
|
4521
6155
|
children: index > 0 || cwd === void 0 ? "$" : promptLabel(cwd, home)
|
|
4522
6156
|
}),
|
|
4523
6157
|
jsx("span", {
|
|
4524
|
-
className: css$
|
|
6158
|
+
className: css$18.command,
|
|
4525
6159
|
children: line
|
|
4526
6160
|
})
|
|
4527
6161
|
]
|
|
4528
6162
|
}, index))]
|
|
4529
6163
|
}),
|
|
4530
6164
|
status !== void 0 && jsx(Pill, {
|
|
4531
|
-
className: css$
|
|
6165
|
+
className: css$18.status,
|
|
4532
6166
|
children: status
|
|
4533
6167
|
}),
|
|
4534
6168
|
!running && !empty && jsx("button", {
|
|
4535
6169
|
type: "button",
|
|
4536
|
-
className: css$
|
|
6170
|
+
className: css$18.copyButton,
|
|
4537
6171
|
onClick: onCopy,
|
|
4538
6172
|
children: copied ? copy.copied : copy.copy
|
|
4539
6173
|
})
|
|
4540
6174
|
]
|
|
4541
6175
|
}), !running && (empty ? jsx("div", {
|
|
4542
|
-
className: css$
|
|
6176
|
+
className: css$18.empty,
|
|
4543
6177
|
children: copy.noOutput
|
|
4544
6178
|
}) : jsxs("div", {
|
|
4545
|
-
className: css$
|
|
6179
|
+
className: css$18.output,
|
|
4546
6180
|
children: [
|
|
4547
6181
|
(capped ? lines.slice(0, headLines) : lines).map((line, index) => jsx("div", {
|
|
4548
|
-
className: css$
|
|
6182
|
+
className: css$18.line,
|
|
4549
6183
|
children: renderLine$1(line)
|
|
4550
6184
|
}, index)),
|
|
4551
6185
|
hidden > 0 && jsx("button", {
|
|
4552
6186
|
type: "button",
|
|
4553
|
-
className: css$
|
|
6187
|
+
className: css$18.expand,
|
|
4554
6188
|
"aria-expanded": expanded,
|
|
4555
6189
|
"aria-label": expanded ? copy.collapseAria : copy.expandAria(hidden),
|
|
4556
6190
|
onClick: onToggle,
|
|
4557
6191
|
children: expanded ? copy.collapse : copy.expand(hidden)
|
|
4558
6192
|
}),
|
|
4559
6193
|
capped && lines.slice(lines.length - tailLines).map((line, index) => jsx("div", {
|
|
4560
|
-
className: css$
|
|
6194
|
+
className: css$18.line,
|
|
4561
6195
|
children: renderLine$1(line)
|
|
4562
6196
|
}, index))
|
|
4563
6197
|
]
|
|
@@ -5135,51 +6769,51 @@ function ReadBlock({ label, labels, lines, totalLines, lang, maxLines = 16, clas
|
|
|
5135
6769
|
const tailLines = maxLines - headLines;
|
|
5136
6770
|
const windowed = lines.length < totalLines;
|
|
5137
6771
|
const rows = (slice) => slice.map(([line, spans]) => jsxs("div", {
|
|
5138
|
-
className: css$
|
|
6772
|
+
className: css$19.line,
|
|
5139
6773
|
children: [jsx("span", {
|
|
5140
|
-
className: css$
|
|
6774
|
+
className: css$19.gutter,
|
|
5141
6775
|
"aria-hidden": true,
|
|
5142
6776
|
children: line.number
|
|
5143
6777
|
}), jsx("span", {
|
|
5144
|
-
className: css$
|
|
6778
|
+
className: css$19.content,
|
|
5145
6779
|
children: spans === void 0 ? line.text : renderSpans(spans)
|
|
5146
6780
|
})]
|
|
5147
6781
|
}, line.number));
|
|
5148
6782
|
const paired = lines.map((line, index) => [line, highlighted?.[index]]);
|
|
5149
6783
|
return jsxs("div", {
|
|
5150
6784
|
ref: rootRef,
|
|
5151
|
-
className: clsx(css$
|
|
6785
|
+
className: clsx(css$19.block, className),
|
|
5152
6786
|
"data-read": "",
|
|
5153
6787
|
children: [jsxs("div", {
|
|
5154
|
-
className: css$
|
|
6788
|
+
className: css$19.banner,
|
|
5155
6789
|
children: [jsx("div", {
|
|
5156
|
-
className: css$
|
|
6790
|
+
className: css$19.label,
|
|
5157
6791
|
children: label ?? ""
|
|
5158
6792
|
}), jsxs("div", {
|
|
5159
|
-
className: css$
|
|
6793
|
+
className: css$19.action,
|
|
5160
6794
|
children: [
|
|
5161
6795
|
windowed && jsx("span", {
|
|
5162
|
-
className: css$
|
|
6796
|
+
className: css$19.count,
|
|
5163
6797
|
children: labels.window(lines.length, totalLines)
|
|
5164
6798
|
}),
|
|
5165
6799
|
jsx("span", {
|
|
5166
|
-
className: css$
|
|
6800
|
+
className: css$19.lang,
|
|
5167
6801
|
children: lang ?? ""
|
|
5168
6802
|
}),
|
|
5169
6803
|
lines.length > 0 && jsx("button", {
|
|
5170
6804
|
type: "button",
|
|
5171
|
-
className: css$
|
|
6805
|
+
className: css$19.copyButton,
|
|
5172
6806
|
onClick: onCopy,
|
|
5173
6807
|
children: copied ? labels.copied : labels.copy
|
|
5174
6808
|
})
|
|
5175
6809
|
]
|
|
5176
6810
|
})]
|
|
5177
6811
|
}), jsxs("div", {
|
|
5178
|
-
className: css$
|
|
6812
|
+
className: css$19.body,
|
|
5179
6813
|
children: [
|
|
5180
6814
|
rows(capped ? paired.slice(0, headLines) : paired),
|
|
5181
6815
|
hidden > 0 && jsx(FoldToggle, {
|
|
5182
|
-
className: css$
|
|
6816
|
+
className: css$19.expand,
|
|
5183
6817
|
expanded,
|
|
5184
6818
|
hidden,
|
|
5185
6819
|
labels,
|
|
@@ -5201,10 +6835,10 @@ function assertNever(value) {
|
|
|
5201
6835
|
}
|
|
5202
6836
|
/** The dim class per row kind (path/gap chrome vs the diff's own +/- colors). */
|
|
5203
6837
|
const ROW_CLASS = {
|
|
5204
|
-
path: css$
|
|
5205
|
-
del: css$
|
|
5206
|
-
add: css$
|
|
5207
|
-
gap: css$
|
|
6838
|
+
path: css$20.path,
|
|
6839
|
+
del: css$20.del,
|
|
6840
|
+
add: css$20.add,
|
|
6841
|
+
gap: css$20.gap
|
|
5208
6842
|
};
|
|
5209
6843
|
/**
|
|
5210
6844
|
* Total added/removed line counts across hunks — the same numbers the footer
|
|
@@ -5328,37 +6962,37 @@ function DiffBlock({ diffs, labels, maxLines = 16, className }) {
|
|
|
5328
6962
|
const head = capped ? rows.slice(0, headLines) : rows;
|
|
5329
6963
|
const tail = capped ? rows.slice(rows.length - tailLines) : [];
|
|
5330
6964
|
return jsxs("div", {
|
|
5331
|
-
className: clsx(css$
|
|
6965
|
+
className: clsx(css$20.block, className),
|
|
5332
6966
|
"data-diff": "",
|
|
5333
6967
|
children: [
|
|
5334
6968
|
jsx("button", {
|
|
5335
6969
|
type: "button",
|
|
5336
|
-
className: css$
|
|
6970
|
+
className: css$20.copyButton,
|
|
5337
6971
|
onClick: onCopy,
|
|
5338
6972
|
children: copied ? labels.copied : labels.copy
|
|
5339
6973
|
}),
|
|
5340
6974
|
jsxs("div", {
|
|
5341
|
-
className: css$
|
|
6975
|
+
className: css$20.body,
|
|
5342
6976
|
children: [
|
|
5343
6977
|
head.map((row, index) => jsx("div", {
|
|
5344
|
-
className: clsx(css$
|
|
6978
|
+
className: clsx(css$20.line, ROW_CLASS[row.kind]),
|
|
5345
6979
|
children: row.text
|
|
5346
6980
|
}, index)),
|
|
5347
6981
|
hidden > 0 && jsx(FoldToggle, {
|
|
5348
|
-
className: css$
|
|
6982
|
+
className: css$20.expand,
|
|
5349
6983
|
expanded,
|
|
5350
6984
|
hidden,
|
|
5351
6985
|
labels,
|
|
5352
6986
|
onToggle
|
|
5353
6987
|
}),
|
|
5354
6988
|
tail.map((row, index) => jsx("div", {
|
|
5355
|
-
className: clsx(css$
|
|
6989
|
+
className: clsx(css$20.line, ROW_CLASS[row.kind]),
|
|
5356
6990
|
children: row.text
|
|
5357
6991
|
}, index))
|
|
5358
6992
|
]
|
|
5359
6993
|
}),
|
|
5360
6994
|
jsxs("div", {
|
|
5361
|
-
className: css$
|
|
6995
|
+
className: css$20.footer,
|
|
5362
6996
|
children: [
|
|
5363
6997
|
"└ +",
|
|
5364
6998
|
added,
|
|
@@ -5494,56 +7128,56 @@ function SearchBlock(props) {
|
|
|
5494
7128
|
const tail = tailHeader === void 0 ? naturalTail : naturalTail.slice(1);
|
|
5495
7129
|
const renderRow = (row) => {
|
|
5496
7130
|
if (row.type === "path") return jsx("div", {
|
|
5497
|
-
className: css$
|
|
7131
|
+
className: css$21.line,
|
|
5498
7132
|
children: row.path
|
|
5499
7133
|
});
|
|
5500
7134
|
if (row.type === "match") return jsxs("div", {
|
|
5501
|
-
className: css$
|
|
7135
|
+
className: css$21.line,
|
|
5502
7136
|
children: [jsxs("span", {
|
|
5503
|
-
className: css$
|
|
7137
|
+
className: css$21.lineNumber,
|
|
5504
7138
|
children: [row.lineNumber, ": "]
|
|
5505
7139
|
}), row.line]
|
|
5506
7140
|
});
|
|
5507
7141
|
return jsxs("button", {
|
|
5508
7142
|
type: "button",
|
|
5509
|
-
className: css$
|
|
7143
|
+
className: css$21.fileHeader,
|
|
5510
7144
|
"aria-expanded": !row.collapsed,
|
|
5511
7145
|
onClick: () => {
|
|
5512
7146
|
toggleFile(row.index);
|
|
5513
7147
|
},
|
|
5514
7148
|
children: [jsx("span", {
|
|
5515
|
-
className: css$
|
|
7149
|
+
className: css$21.filePath,
|
|
5516
7150
|
children: row.path
|
|
5517
7151
|
}), jsx("span", {
|
|
5518
|
-
className: css$
|
|
7152
|
+
className: css$21.fileCount,
|
|
5519
7153
|
children: row.count
|
|
5520
7154
|
})]
|
|
5521
7155
|
});
|
|
5522
7156
|
};
|
|
5523
7157
|
return jsxs("div", {
|
|
5524
|
-
className: clsx(css$
|
|
7158
|
+
className: clsx(css$21.block, className),
|
|
5525
7159
|
"data-search": props.kind,
|
|
5526
7160
|
children: [jsxs("div", {
|
|
5527
|
-
className: css$
|
|
7161
|
+
className: css$21.header,
|
|
5528
7162
|
children: [jsx("span", {
|
|
5529
|
-
className: css$
|
|
7163
|
+
className: css$21.summary,
|
|
5530
7164
|
children: summaryText(props, shown, truncated, total)
|
|
5531
7165
|
}), !empty && jsx("button", {
|
|
5532
7166
|
type: "button",
|
|
5533
|
-
className: css$
|
|
7167
|
+
className: css$21.copyButton,
|
|
5534
7168
|
onClick: onCopy,
|
|
5535
7169
|
children: copied ? props.labels.copied : props.labels.copy
|
|
5536
7170
|
})]
|
|
5537
7171
|
}), empty ? jsx("div", {
|
|
5538
|
-
className: css$
|
|
7172
|
+
className: css$21.empty,
|
|
5539
7173
|
children: props.labels.noResults
|
|
5540
7174
|
}) : jsxs("div", {
|
|
5541
|
-
className: css$
|
|
7175
|
+
className: css$21.body,
|
|
5542
7176
|
children: [
|
|
5543
7177
|
head.map((row) => jsx("div", { children: renderRow(row) }, rowKey(row))),
|
|
5544
7178
|
hidden > 0 && jsx("button", {
|
|
5545
7179
|
type: "button",
|
|
5546
|
-
className: css$
|
|
7180
|
+
className: css$21.expand,
|
|
5547
7181
|
"aria-expanded": expanded,
|
|
5548
7182
|
"aria-label": expanded ? props.labels.collapseAria : props.labels.expandAria(hidden),
|
|
5549
7183
|
onClick: onToggle,
|
|
@@ -6249,8 +7883,9 @@ function renderLine(line, index) {
|
|
|
6249
7883
|
}, spanIndex))
|
|
6250
7884
|
})] }, index);
|
|
6251
7885
|
}
|
|
6252
|
-
function CodeBlock({ code, lang, streaming, className, copyLabel, copiedLabel }) {
|
|
7886
|
+
function CodeBlock({ code, lang, streaming, className, lineNumbers = false, copyLabel, copiedLabel }) {
|
|
6253
7887
|
const trimmed = code.endsWith("\n") ? code.slice(0, -1) : code;
|
|
7888
|
+
const sourceLines = lineNumbers ? trimmed.split("\n") : void 0;
|
|
6254
7889
|
const rootRef = useRef(null);
|
|
6255
7890
|
const highlighting = useViewportHighlighting(rootRef, lang);
|
|
6256
7891
|
const loaded = useSyncExternalStore(subscribeGrammarLoaded, grammarLoadCount, grammarLoadCount);
|
|
@@ -6344,24 +7979,30 @@ function CodeBlock({ code, lang, streaming, className, copyLabel, copiedLabel })
|
|
|
6344
7979
|
});
|
|
6345
7980
|
}, [copied, trimmed]);
|
|
6346
7981
|
const body = streamedBody !== void 0 ? streamedBody : html === void 0 ? jsx("pre", {
|
|
6347
|
-
className: css$
|
|
6348
|
-
children: jsx("code", { children: trimmed
|
|
7982
|
+
className: css$22.plain,
|
|
7983
|
+
children: jsx("code", { children: sourceLines === void 0 ? trimmed : sourceLines.map((line, index) => jsxs(Fragment$1, { children: [index > 0 && "\n", jsx("span", {
|
|
7984
|
+
className: "line",
|
|
7985
|
+
children: line
|
|
7986
|
+
})] }, index)) })
|
|
6349
7987
|
}) : jsx("div", { dangerouslySetInnerHTML: { __html: html } });
|
|
6350
7988
|
return jsxs("div", {
|
|
6351
7989
|
ref: rootRef,
|
|
6352
|
-
className: clsx(css$
|
|
7990
|
+
className: clsx(css$22.block, "md-code-block", lineNumbers && css$22.numbered, className),
|
|
7991
|
+
"data-line-numbers": lineNumbers || void 0,
|
|
7992
|
+
style: sourceLines === void 0 ? void 0 : { "--dsl-code-block-line-number-width": `${Math.max(2, String(sourceLines.length).length)}ch` },
|
|
6353
7993
|
children: [jsx("div", {
|
|
6354
|
-
className: css$
|
|
7994
|
+
className: css$22.bannerWrap,
|
|
6355
7995
|
children: jsxs("div", {
|
|
6356
|
-
className: css$
|
|
7996
|
+
className: css$22.banner,
|
|
7997
|
+
"data-code-block-banner": true,
|
|
6357
7998
|
children: [jsx("div", {
|
|
6358
|
-
className: css$
|
|
7999
|
+
className: css$22.infostring,
|
|
6359
8000
|
children: lang ?? ""
|
|
6360
8001
|
}), jsx("div", {
|
|
6361
|
-
className: css$
|
|
8002
|
+
className: css$22.action,
|
|
6362
8003
|
children: jsx("button", {
|
|
6363
8004
|
type: "button",
|
|
6364
|
-
className: css$
|
|
8005
|
+
className: css$22.copyButton,
|
|
6365
8006
|
onClick: onCopy,
|
|
6366
8007
|
children: copied ? copiedLabel : copyLabel
|
|
6367
8008
|
})
|
|
@@ -6490,6 +8131,30 @@ function remoteImageUrl(url) {
|
|
|
6490
8131
|
return;
|
|
6491
8132
|
}
|
|
6492
8133
|
}
|
|
8134
|
+
/** Protocols a vocabulary-rewritten image destination may carry. */
|
|
8135
|
+
function vocabularyImageUrl(url) {
|
|
8136
|
+
try {
|
|
8137
|
+
const protocol = new URL(url).protocol;
|
|
8138
|
+
return protocol === "http:" || protocol === "https:" || protocol === "blob:" || protocol === "data:" ? url : void 0;
|
|
8139
|
+
} catch {
|
|
8140
|
+
return;
|
|
8141
|
+
}
|
|
8142
|
+
}
|
|
8143
|
+
/**
|
|
8144
|
+
* The displayable source for one image destination: absolute HTTP(S) as
|
|
8145
|
+
* authored, otherwise the context's local-path vocabulary when it vouches for
|
|
8146
|
+
* the destination. Either miss leaves the authored fallback (alt text) to the
|
|
8147
|
+
* caller.
|
|
8148
|
+
* @param url - The authored markdown destination.
|
|
8149
|
+
* @param pathImages - Rewriting vocabulary, when the render pass has one.
|
|
8150
|
+
* @returns The displayable image URL, or undefined.
|
|
8151
|
+
*/
|
|
8152
|
+
function imageSource(url, pathImages) {
|
|
8153
|
+
const remote = remoteImageUrl(sanitizeUrl(normalizeUri(url)));
|
|
8154
|
+
if (remote !== void 0) return remote;
|
|
8155
|
+
const rewritten = pathImages?.resolve(url);
|
|
8156
|
+
return rewritten === void 0 ? void 0 : vocabularyImageUrl(rewritten);
|
|
8157
|
+
}
|
|
6493
8158
|
/**
|
|
6494
8159
|
* Create an empty {@link ReferenceTargets}.
|
|
6495
8160
|
* @returns Fresh empty maps.
|
|
@@ -6581,13 +8246,13 @@ function renderNode(node, key, context) {
|
|
|
6581
8246
|
const mention = context.inLink === true ? void 0 : context.fileMentions?.resolve(value);
|
|
6582
8247
|
if (mention !== void 0) return jsx("code", { children: jsxs("button", {
|
|
6583
8248
|
type: "button",
|
|
6584
|
-
className: css$
|
|
8249
|
+
className: css$23.fileMention,
|
|
6585
8250
|
title: mention.title,
|
|
6586
8251
|
"aria-label": mention.label,
|
|
6587
8252
|
onClick: mention.open,
|
|
6588
8253
|
children: [jsx(LinkIcon, {
|
|
6589
8254
|
kind: classifyLinkPath(value),
|
|
6590
|
-
className: css$
|
|
8255
|
+
className: css$23.linkIcon
|
|
6591
8256
|
}), value]
|
|
6592
8257
|
}) }, key);
|
|
6593
8258
|
return jsx("code", { children: value }, key);
|
|
@@ -6604,7 +8269,7 @@ function renderNode(node, key, context) {
|
|
|
6604
8269
|
inLink: true
|
|
6605
8270
|
}), key, !anchorWrapsOnlyImages(node.children));
|
|
6606
8271
|
case "linkReference": return renderLinkReference(node, key, context);
|
|
6607
|
-
case "image": return renderImage(node.url, node.alt ?? "", key);
|
|
8272
|
+
case "image": return renderImage(node.url, node.alt ?? "", key, context);
|
|
6608
8273
|
case "imageReference": return renderImageReference(node, key, context);
|
|
6609
8274
|
case "footnoteReference": return renderFootnoteReference(node, key, context);
|
|
6610
8275
|
case "definition":
|
|
@@ -6679,7 +8344,7 @@ function renderTable(node, key, context) {
|
|
|
6679
8344
|
const [headRow, ...bodyRows] = node.children;
|
|
6680
8345
|
const wide = (align === null ? headRow?.children.length ?? 0 : align.length) >= 4 && context.inBlockquote !== true;
|
|
6681
8346
|
return jsx("div", {
|
|
6682
|
-
className: clsx(css$
|
|
8347
|
+
className: clsx(css$23.tableScroll, wide ? "md-table-wide" : css$23.tableFill),
|
|
6683
8348
|
tabIndex: wide ? 0 : void 0,
|
|
6684
8349
|
children: jsxs("table", { children: [headRow !== void 0 && jsx("thead", { children: renderTableRow(headRow, "th", align, 0, context) }), bodyRows.length > 0 && jsx("tbody", { children: bodyRows.map((row, index) => renderTableRow(row, "td", align, index + 1, context)) })] })
|
|
6685
8350
|
}, key);
|
|
@@ -6717,7 +8382,7 @@ function renderSafeLink(href, children, key, glyph = true) {
|
|
|
6717
8382
|
} : {},
|
|
6718
8383
|
children: [glyph && jsx(LinkIcon, {
|
|
6719
8384
|
kind: "url",
|
|
6720
|
-
className: css$
|
|
8385
|
+
className: css$23.linkIcon
|
|
6721
8386
|
}), children]
|
|
6722
8387
|
}, key);
|
|
6723
8388
|
}
|
|
@@ -6738,20 +8403,36 @@ function inlineCodeHttpUrl(value) {
|
|
|
6738
8403
|
return;
|
|
6739
8404
|
}
|
|
6740
8405
|
}
|
|
6741
|
-
function renderImage(url, alt, key) {
|
|
6742
|
-
const imageSrc =
|
|
8406
|
+
function renderImage(url, alt, key, context) {
|
|
8407
|
+
const imageSrc = imageSource(url, context.pathImages);
|
|
6743
8408
|
if (imageSrc === void 0) return jsx("span", {
|
|
6744
|
-
className: css$
|
|
8409
|
+
className: css$23.imageAlt,
|
|
6745
8410
|
children: alt
|
|
6746
8411
|
}, key);
|
|
6747
|
-
return jsx(
|
|
6748
|
-
className: css$22.image,
|
|
8412
|
+
return jsx(MarkdownImage, {
|
|
6749
8413
|
src: imageSrc,
|
|
6750
8414
|
alt,
|
|
8415
|
+
destination: url
|
|
8416
|
+
}, `${key}:${imageSrc}`);
|
|
8417
|
+
}
|
|
8418
|
+
/** Failed loads retain the authored alt or destination; a new source remounts the image. */
|
|
8419
|
+
function MarkdownImage({ src, alt, destination }) {
|
|
8420
|
+
const [failed, setFailed] = useState(false);
|
|
8421
|
+
if (failed) return jsx("span", {
|
|
8422
|
+
className: css$23.imageAlt,
|
|
8423
|
+
children: alt || destination
|
|
8424
|
+
});
|
|
8425
|
+
return jsx("img", {
|
|
8426
|
+
className: css$23.image,
|
|
8427
|
+
src,
|
|
8428
|
+
alt,
|
|
8429
|
+
onError: () => {
|
|
8430
|
+
setFailed(true);
|
|
8431
|
+
},
|
|
6751
8432
|
loading: "lazy",
|
|
6752
8433
|
decoding: "async",
|
|
6753
8434
|
referrerPolicy: "no-referrer"
|
|
6754
|
-
}
|
|
8435
|
+
});
|
|
6755
8436
|
}
|
|
6756
8437
|
/** The bracketed source text a reference reverts to when its definition is missing. */
|
|
6757
8438
|
function referenceSuffix(node) {
|
|
@@ -6775,7 +8456,7 @@ function renderLinkReference(node, key, context) {
|
|
|
6775
8456
|
function renderImageReference(node, key, context) {
|
|
6776
8457
|
const definition = context.targets.definitions.get(node.identifier.toUpperCase());
|
|
6777
8458
|
if (definition === void 0) return `![${node.alt ?? ""}${referenceSuffix(node)}`;
|
|
6778
|
-
return renderImage(definition.url, node.alt ?? "", key);
|
|
8459
|
+
return renderImage(definition.url, node.alt ?? "", key, context);
|
|
6779
8460
|
}
|
|
6780
8461
|
function renderFootnoteReference(node, key, context) {
|
|
6781
8462
|
const id = node.identifier.toUpperCase();
|
|
@@ -6838,7 +8519,7 @@ function renderFootnoteSection(context) {
|
|
|
6838
8519
|
* full parse self-heals it.
|
|
6839
8520
|
*/
|
|
6840
8521
|
/** One settled full render: parse with math, resolve references, append the footnote section. */
|
|
6841
|
-
function renderSettled(text, labels, fileMentions) {
|
|
8522
|
+
function renderSettled(text, labels, fileMentions, pathImages) {
|
|
6842
8523
|
const root = parseGfmWithMath(text);
|
|
6843
8524
|
const targets = createReferenceTargets();
|
|
6844
8525
|
collectReferenceTargets(root.children, targets);
|
|
@@ -6846,6 +8527,7 @@ function renderSettled(text, labels, fileMentions) {
|
|
|
6846
8527
|
streaming: false,
|
|
6847
8528
|
labels,
|
|
6848
8529
|
fileMentions,
|
|
8530
|
+
pathImages,
|
|
6849
8531
|
targets,
|
|
6850
8532
|
footnoteOrder: [],
|
|
6851
8533
|
footnoteCounts: /* @__PURE__ */ new Map()
|
|
@@ -6912,6 +8594,7 @@ var StreamingRenderer = class {
|
|
|
6912
8594
|
streaming: true,
|
|
6913
8595
|
labels: this.labels,
|
|
6914
8596
|
fileMentions: void 0,
|
|
8597
|
+
pathImages: void 0,
|
|
6915
8598
|
targets: frameTargets,
|
|
6916
8599
|
footnoteOrder: this.frozenFootnoteOrder,
|
|
6917
8600
|
footnoteCounts: this.frozenFootnoteCounts
|
|
@@ -6928,6 +8611,7 @@ var StreamingRenderer = class {
|
|
|
6928
8611
|
streaming: true,
|
|
6929
8612
|
labels: this.labels,
|
|
6930
8613
|
fileMentions: void 0,
|
|
8614
|
+
pathImages: void 0,
|
|
6931
8615
|
targets: frameTargets,
|
|
6932
8616
|
footnoteOrder: [...this.frozenFootnoteOrder],
|
|
6933
8617
|
footnoteCounts: new Map(this.frozenFootnoteCounts)
|
|
@@ -6953,21 +8637,23 @@ var StreamingRenderer = class {
|
|
|
6953
8637
|
* `labels` forwards localized fence and footnote chrome — pass a
|
|
6954
8638
|
* reference-stable object (memoized per locale revision), because a new
|
|
6955
8639
|
* identity discards the streaming render cache mid-message. `fileMentions`
|
|
6956
|
-
* links inline-code tokens its resolver recognizes as real files
|
|
6957
|
-
*
|
|
8640
|
+
* links inline-code tokens its resolver recognizes as real files, and
|
|
8641
|
+
* `pathImages` rewrites image destinations that are local file paths into
|
|
8642
|
+
* displayable URLs its resolver vouches for; both vocabularies are the
|
|
8643
|
+
* single streaming gate — they apply to settled renders only, because a
|
|
6958
8644
|
* streaming message's vocabulary is not final and frozen cached elements
|
|
6959
8645
|
* must not bake in handlers that could go stale.
|
|
6960
8646
|
* @returns A GFM document with TeX math rendered through KaTeX; raw HTML,
|
|
6961
8647
|
* relative links, and unsafe protocols are disabled, while absolute HTTP(S)
|
|
6962
8648
|
* images render directly.
|
|
6963
8649
|
*/
|
|
6964
|
-
const MarkdownText = memo(function MarkdownText({ text, streaming = false, labels, fileMentions }) {
|
|
8650
|
+
const MarkdownText = memo(function MarkdownText({ text, streaming = false, labels, fileMentions, pathImages }) {
|
|
6965
8651
|
const streamRef = useRef(null);
|
|
6966
8652
|
const streamLabelsRef = useRef(labels);
|
|
6967
8653
|
const children = useMemo(() => {
|
|
6968
8654
|
if (!streaming) {
|
|
6969
8655
|
streamRef.current = null;
|
|
6970
|
-
return renderSettled(text, labels, fileMentions);
|
|
8656
|
+
return renderSettled(text, labels, fileMentions, pathImages);
|
|
6971
8657
|
}
|
|
6972
8658
|
if (streamRef.current === null || streamLabelsRef.current !== labels) {
|
|
6973
8659
|
streamRef.current = new StreamingRenderer(labels);
|
|
@@ -6978,10 +8664,11 @@ const MarkdownText = memo(function MarkdownText({ text, streaming = false, label
|
|
|
6978
8664
|
text,
|
|
6979
8665
|
streaming,
|
|
6980
8666
|
labels,
|
|
6981
|
-
fileMentions
|
|
8667
|
+
fileMentions,
|
|
8668
|
+
pathImages
|
|
6982
8669
|
]);
|
|
6983
8670
|
return jsx("div", {
|
|
6984
|
-
className: css$
|
|
8671
|
+
className: css$23.markdown,
|
|
6985
8672
|
children
|
|
6986
8673
|
});
|
|
6987
8674
|
});
|
|
@@ -7044,7 +8731,7 @@ function SafeLink({ url, label, className }) {
|
|
|
7044
8731
|
rel: "noopener noreferrer",
|
|
7045
8732
|
children: [jsx(LinkIcon, {
|
|
7046
8733
|
kind: "url",
|
|
7047
|
-
className: css$
|
|
8734
|
+
className: css$24.linkIcon
|
|
7048
8735
|
}), label]
|
|
7049
8736
|
});
|
|
7050
8737
|
}
|
|
@@ -7059,20 +8746,20 @@ function SafeLink({ url, label, className }) {
|
|
|
7059
8746
|
*/
|
|
7060
8747
|
function SourceItem({ source, ordinal }) {
|
|
7061
8748
|
return jsxs("li", {
|
|
7062
|
-
className: css$
|
|
8749
|
+
className: css$24.source,
|
|
7063
8750
|
value: ordinal,
|
|
7064
8751
|
children: [
|
|
7065
8752
|
jsx(SafeLink, {
|
|
7066
8753
|
url: source.url,
|
|
7067
8754
|
label: linkLabel(source.url, source.title),
|
|
7068
|
-
className: css$
|
|
8755
|
+
className: css$24.sourceLink
|
|
7069
8756
|
}),
|
|
7070
8757
|
source.snippet !== void 0 && source.snippet !== "" && jsx("div", {
|
|
7071
|
-
className: css$
|
|
8758
|
+
className: css$24.snippet,
|
|
7072
8759
|
children: source.snippet
|
|
7073
8760
|
}),
|
|
7074
8761
|
source.publishedAt !== void 0 && source.publishedAt !== "" && jsx("div", {
|
|
7075
|
-
className: css$
|
|
8762
|
+
className: css$24.published,
|
|
7076
8763
|
children: source.publishedAt
|
|
7077
8764
|
})
|
|
7078
8765
|
]
|
|
@@ -7087,28 +8774,28 @@ function SourceItem({ source, ordinal }) {
|
|
|
7087
8774
|
function WebSearchBlock({ answer, sources, truncated, labels, className }) {
|
|
7088
8775
|
const empty = (answer === void 0 || answer === "") && sources.length === 0;
|
|
7089
8776
|
return jsxs("div", {
|
|
7090
|
-
className: clsx(css$
|
|
8777
|
+
className: clsx(css$24.block, className),
|
|
7091
8778
|
"data-web": "search",
|
|
7092
8779
|
children: [
|
|
7093
8780
|
answer !== void 0 && answer !== "" && jsx("div", {
|
|
7094
|
-
className: css$
|
|
8781
|
+
className: css$24.answer,
|
|
7095
8782
|
children: jsx(MarkdownText, {
|
|
7096
8783
|
text: answer,
|
|
7097
8784
|
labels: labels.markdown
|
|
7098
8785
|
})
|
|
7099
8786
|
}),
|
|
7100
8787
|
empty ? jsx("div", {
|
|
7101
|
-
className: css$
|
|
8788
|
+
className: css$24.empty,
|
|
7102
8789
|
children: labels.noResults
|
|
7103
8790
|
}) : jsx("ol", {
|
|
7104
|
-
className: css$
|
|
8791
|
+
className: css$24.sources,
|
|
7105
8792
|
children: sources.map((source, index) => jsx(SourceItem, {
|
|
7106
8793
|
source,
|
|
7107
8794
|
ordinal: index + 1
|
|
7108
8795
|
}, index))
|
|
7109
8796
|
}),
|
|
7110
8797
|
truncated && jsx("div", {
|
|
7111
|
-
className: css$
|
|
8798
|
+
className: css$24.truncated,
|
|
7112
8799
|
children: labels.sourcesTruncated
|
|
7113
8800
|
})
|
|
7114
8801
|
]
|
|
@@ -7121,23 +8808,23 @@ function WebSearchBlock({ answer, sources, truncated, labels, className }) {
|
|
|
7121
8808
|
*/
|
|
7122
8809
|
function WebFetchBlock({ url, statusCode, truncated, labels, className }) {
|
|
7123
8810
|
return jsxs("div", {
|
|
7124
|
-
className: clsx(css$
|
|
8811
|
+
className: clsx(css$24.block, css$24.fetch, className),
|
|
7125
8812
|
"data-web": "fetch",
|
|
7126
8813
|
children: [jsx(SafeLink, {
|
|
7127
8814
|
url,
|
|
7128
8815
|
label: url,
|
|
7129
|
-
className: css$
|
|
8816
|
+
className: css$24.fetchUrl
|
|
7130
8817
|
}), jsxs("div", {
|
|
7131
|
-
className: css$
|
|
8818
|
+
className: css$24.fetchMeta,
|
|
7132
8819
|
children: [jsxs("span", {
|
|
7133
|
-
className: css$
|
|
8820
|
+
className: css$24.status,
|
|
7134
8821
|
children: [
|
|
7135
8822
|
labels.http,
|
|
7136
8823
|
" ",
|
|
7137
8824
|
statusCode
|
|
7138
8825
|
]
|
|
7139
8826
|
}), truncated && jsx("span", {
|
|
7140
|
-
className: css$
|
|
8827
|
+
className: css$24.truncated,
|
|
7141
8828
|
children: labels.contentTruncated
|
|
7142
8829
|
})]
|
|
7143
8830
|
})]
|
|
@@ -7171,10 +8858,10 @@ function JsonBlock({ label, payload, defaultOpen = false, truncatedLabel }) {
|
|
|
7171
8858
|
truncatedLabel
|
|
7172
8859
|
]);
|
|
7173
8860
|
return jsxs("div", {
|
|
7174
|
-
className: css$
|
|
8861
|
+
className: css$25.root,
|
|
7175
8862
|
children: [jsxs("button", {
|
|
7176
8863
|
type: "button",
|
|
7177
|
-
className: css$
|
|
8864
|
+
className: css$25.toggle,
|
|
7178
8865
|
onClick: () => {
|
|
7179
8866
|
setOpen((v) => !v);
|
|
7180
8867
|
},
|
|
@@ -7184,7 +8871,7 @@ function JsonBlock({ label, payload, defaultOpen = false, truncatedLabel }) {
|
|
|
7184
8871
|
label
|
|
7185
8872
|
]
|
|
7186
8873
|
}), open && jsx("pre", {
|
|
7187
|
-
className: css$
|
|
8874
|
+
className: css$25.body,
|
|
7188
8875
|
children: body
|
|
7189
8876
|
})]
|
|
7190
8877
|
});
|
|
@@ -7261,6 +8948,6 @@ function extractMarkdownPlainText(markdown, options = {}) {
|
|
|
7261
8948
|
}
|
|
7262
8949
|
}
|
|
7263
8950
|
//#endregion
|
|
7264
|
-
export { BrandWordmark, Button, CodeBlock, ConnectionIndicator, DEFAULT_DIFF_MAX_LINES, DEFAULT_READ_MAX_LINES, DEFAULT_SEARCH_MAX_LINES, DEFAULT_TERMINAL_MAX_LINES, DiffBlock, DisclosureRow,
|
|
8951
|
+
export { BrandWordmark, Button, CodeBlock, ConnectionIndicator, DEFAULT_DIFF_MAX_LINES, DEFAULT_READ_MAX_LINES, DEFAULT_SEARCH_MAX_LINES, DEFAULT_TERMINAL_MAX_LINES, DiffBlock, DisclosureRow, FISH_LOGO_PATH, FISH_LOGO_VIEWBOX, FileTypeIcon, FishLogo, HoverCard, IconAgentPresetOutline16, IconAlarmClockOutline16, IconApiOutline14, IconArchiveOutline20, IconBranchOutline16, IconBrowseOutline16, IconCheckOutline14, IconCheckOutline16, IconChecklistOutline14, IconChevronDownOutline14, IconChevronLeftOutline14, IconChevronRightOutline14, IconChevronUpOutline14, IconClockOutline16, IconCloseFill14, IconCloseOutline16, IconCodeOutline16, IconContextInjectionOutline16, IconCopyOutline16, IconCordisPluginOutline14, IconDarkOutline16, IconDataOutline16, IconDatabaseOutline16, IconDislikeFill16, IconDislikeOutline16, IconDownloadOutline16, IconEditOutline16, IconEllipsisOutline16, IconEnhanceOutline16, IconFolderClose16, IconFolderOpen16, IconFolderOpenOutline16, IconFollowsystemOutline16, IconFullscreenOutline16, IconGaugeOutline16, IconGlobeOutline14, IconGoalOutline16, IconInspectOutline12, IconLightOutline16, IconLikeFill16, IconLikeOutline16, IconLinkOutline14, IconLinkOutline16, IconListPenOutline16, IconLoadingOutline16, IconNewChatOutline16, IconPanelLeftOutline16, IconPaperclipOutline16, IconPauseOutline16, IconPersonalizationOutline16, IconPlayOutline16, IconPlusOutline16, IconProjectAddOutline16, IconQuestionOutline14, IconQueueOutline14, IconRefreshOutline14, IconRefreshOutline16, IconRightUpOutline14, IconRightUpOutline16, IconSearchOutline16, IconSendOutline14, IconSendOutline16, IconSettingsOutline14, IconSettingsOutline16, IconShareOutline16, IconSkillOutline16, IconSparkle16, IconStopFill16, IconThinkOutline14, IconThinkOutline16, IconTrashOutline16, IconTreeCorner8x10, IconTriangleRightFill14, IconUserOutline16, IconWarningOutline16, Input, JsonBlock, JsonTree, LinkIcon, MarkdownText, Menu, Modal, OnboardingSurface, Pill, ReadBlock, ReferenceIcon, RiskConfirmation, SearchBlock, StateDot, Switch, Tag, TerminalBlock, Toast, Tooltip, WebBlock, classifyFileType, classifyLinkPath, diffTotals, extractMarkdownPlainText, fileExtension, fileSizeText, projectUserText, rankByName, relativeTime, useAnchoredMaxHeight, useAnchoredPosition, useDismissOnOutsidePointer, writeClipboard };
|
|
7265
8952
|
|
|
7266
8953
|
//# sourceMappingURL=index.js.map
|