@hejiayue/x-markdown-test 0.0.1-beta.118 → 0.0.1-beta.120
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/x-markdown.cjs10.js +1 -1
- package/dist/x-markdown.cjs13.js +1 -1
- package/dist/x-markdown.cjs14.js +1 -1
- package/dist/x-markdown.cjs14.js.map +1 -1
- package/dist/x-markdown.cjs15.js +1 -1
- package/dist/x-markdown.cjs15.js.map +1 -1
- package/dist/x-markdown.cjs16.js +1 -1
- package/dist/x-markdown.cjs17.js +1 -1
- package/dist/x-markdown.cjs18.js +1 -1
- package/dist/x-markdown.cjs19.js +1 -1
- package/dist/x-markdown.cjs19.js.map +1 -1
- package/dist/x-markdown.cjs20.js +2 -0
- package/dist/x-markdown.cjs20.js.map +1 -0
- package/dist/x-markdown.cjs22.js +1 -1
- package/dist/x-markdown.cjs22.js.map +1 -1
- package/dist/x-markdown.cjs23.js +2 -0
- package/dist/x-markdown.cjs23.js.map +1 -0
- package/dist/{x-markdown.cjs24.js → x-markdown.cjs25.js} +2 -2
- package/dist/{x-markdown.cjs24.js.map → x-markdown.cjs25.js.map} +1 -1
- package/dist/x-markdown.cjs27.js +1 -1
- package/dist/x-markdown.cjs27.js.map +1 -1
- package/dist/x-markdown.cjs28.js +2 -0
- package/dist/x-markdown.cjs28.js.map +1 -0
- package/dist/x-markdown.cjs29.js +1 -1
- package/dist/x-markdown.cjs29.js.map +1 -1
- package/dist/x-markdown.cjs31.js +1 -1
- package/dist/x-markdown.cjs31.js.map +1 -1
- package/dist/x-markdown.cjs34.js +2 -0
- package/dist/x-markdown.cjs34.js.map +1 -0
- package/dist/x-markdown.cjs7.js +1 -1
- package/dist/x-markdown.cjs7.js.map +1 -1
- package/dist/x-markdown.cjs9.js +1 -1
- package/dist/x-markdown.cjs9.js.map +1 -1
- package/dist/x-markdown.es10.js +1 -1
- package/dist/x-markdown.es13.js +3 -3
- package/dist/x-markdown.es14.js +69 -28
- package/dist/x-markdown.es14.js.map +1 -1
- package/dist/x-markdown.es15.js +31 -2
- package/dist/x-markdown.es15.js.map +1 -1
- package/dist/x-markdown.es16.js +1 -2
- package/dist/x-markdown.es16.js.map +1 -1
- package/dist/x-markdown.es17.js +2 -4
- package/dist/x-markdown.es17.js.map +1 -1
- package/dist/x-markdown.es18.js +4 -4
- package/dist/x-markdown.es19.js +5 -204
- package/dist/x-markdown.es19.js.map +1 -1
- package/dist/x-markdown.es20.js +207 -0
- package/dist/x-markdown.es20.js.map +1 -0
- package/dist/x-markdown.es22.js +7 -71
- package/dist/x-markdown.es22.js.map +1 -1
- package/dist/x-markdown.es23.js +75 -0
- package/dist/x-markdown.es23.js.map +1 -0
- package/dist/{x-markdown.es24.js → x-markdown.es25.js} +4 -4
- package/dist/{x-markdown.es24.js.map → x-markdown.es25.js.map} +1 -1
- package/dist/x-markdown.es27.js +152 -134
- package/dist/x-markdown.es27.js.map +1 -1
- package/dist/x-markdown.es28.js +8 -0
- package/dist/x-markdown.es28.js.map +1 -0
- package/dist/x-markdown.es29.js +139 -5
- package/dist/x-markdown.es29.js.map +1 -1
- package/dist/x-markdown.es31.js +75 -3
- package/dist/x-markdown.es31.js.map +1 -1
- package/dist/x-markdown.es34.js +6 -0
- package/dist/x-markdown.es34.js.map +1 -0
- package/dist/x-markdown.es7.js +14 -39
- package/dist/x-markdown.es7.js.map +1 -1
- package/dist/x-markdown.es9.js +11 -9
- package/dist/x-markdown.es9.js.map +1 -1
- package/package.json +2 -1
- package/dist/x-markdown.cjs21.js +0 -2
- package/dist/x-markdown.cjs21.js.map +0 -1
- package/dist/x-markdown.cjs26.js +0 -2
- package/dist/x-markdown.cjs26.js.map +0 -1
- package/dist/x-markdown.cjs30.js +0 -2
- package/dist/x-markdown.cjs30.js.map +0 -1
- package/dist/x-markdown.es21.js +0 -11
- package/dist/x-markdown.es21.js.map +0 -1
- package/dist/x-markdown.es26.js +0 -160
- package/dist/x-markdown.es26.js.map +0 -1
- package/dist/x-markdown.es30.js +0 -78
- package/dist/x-markdown.es30.js.map +0 -1
package/dist/x-markdown.es14.js
CHANGED
|
@@ -1,34 +1,75 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
+
class ShikiStreamTokenizer {
|
|
5
|
+
constructor(options) {
|
|
6
|
+
__publicField(this, "options");
|
|
7
|
+
__publicField(this, "tokensStable", []);
|
|
8
|
+
__publicField(this, "tokensUnstable", []);
|
|
9
|
+
__publicField(this, "lastUnstableCodeChunk", "");
|
|
10
|
+
__publicField(this, "lastStableGrammarState");
|
|
11
|
+
this.options = options;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Enqueue a chunk of code to the buffer.
|
|
15
|
+
*/
|
|
16
|
+
async enqueue(chunk) {
|
|
17
|
+
const chunkLines = (this.lastUnstableCodeChunk + chunk).split("\n");
|
|
18
|
+
const stable = [];
|
|
19
|
+
let unstable = [];
|
|
20
|
+
const recall = this.tokensUnstable.length;
|
|
21
|
+
chunkLines.forEach((line, i) => {
|
|
22
|
+
const isLastLine = i === chunkLines.length - 1;
|
|
23
|
+
const result = this.options.highlighter.codeToTokens(line, {
|
|
24
|
+
...this.options,
|
|
25
|
+
grammarState: this.lastStableGrammarState
|
|
26
|
+
});
|
|
27
|
+
const tokens = result.tokens[0];
|
|
28
|
+
if (!isLastLine)
|
|
29
|
+
tokens.push({ content: "\n", offset: 0 });
|
|
30
|
+
if (!isLastLine) {
|
|
31
|
+
this.lastStableGrammarState = result.grammarState;
|
|
32
|
+
stable.push(...tokens);
|
|
33
|
+
} else {
|
|
34
|
+
unstable = tokens;
|
|
35
|
+
this.lastUnstableCodeChunk = line;
|
|
27
36
|
}
|
|
28
37
|
});
|
|
29
|
-
|
|
38
|
+
this.tokensStable.push(...stable);
|
|
39
|
+
this.tokensUnstable = unstable;
|
|
40
|
+
return {
|
|
41
|
+
recall,
|
|
42
|
+
stable,
|
|
43
|
+
unstable
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
close() {
|
|
47
|
+
const stable = this.tokensUnstable;
|
|
48
|
+
this.tokensUnstable = [];
|
|
49
|
+
this.lastUnstableCodeChunk = "";
|
|
50
|
+
this.lastStableGrammarState = void 0;
|
|
51
|
+
return {
|
|
52
|
+
stable
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
clear() {
|
|
56
|
+
this.tokensStable = [];
|
|
57
|
+
this.tokensUnstable = [];
|
|
58
|
+
this.lastUnstableCodeChunk = "";
|
|
59
|
+
this.lastStableGrammarState = void 0;
|
|
60
|
+
}
|
|
61
|
+
clone() {
|
|
62
|
+
const clone = new ShikiStreamTokenizer(
|
|
63
|
+
this.options
|
|
64
|
+
);
|
|
65
|
+
clone.lastUnstableCodeChunk = this.lastUnstableCodeChunk;
|
|
66
|
+
clone.tokensUnstable = this.tokensUnstable;
|
|
67
|
+
clone.tokensStable = this.tokensStable;
|
|
68
|
+
clone.lastStableGrammarState = this.lastStableGrammarState;
|
|
69
|
+
return clone;
|
|
70
|
+
}
|
|
30
71
|
}
|
|
31
72
|
export {
|
|
32
|
-
|
|
73
|
+
ShikiStreamTokenizer
|
|
33
74
|
};
|
|
34
75
|
//# sourceMappingURL=x-markdown.es14.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x-markdown.es14.js","sources":["
|
|
1
|
+
{"version":3,"file":"x-markdown.es14.js","sources":["../../../node_modules/.pnpm/shiki-stream@0.1.4_vue@3.5.25_typescript@5.9.3_/node_modules/shiki-stream/dist/index.mjs"],"sourcesContent":["class ShikiStreamTokenizer {\n options;\n tokensStable = [];\n tokensUnstable = [];\n lastUnstableCodeChunk = \"\";\n lastStableGrammarState;\n constructor(options) {\n this.options = options;\n }\n /**\n * Enqueue a chunk of code to the buffer.\n */\n async enqueue(chunk) {\n const chunkLines = (this.lastUnstableCodeChunk + chunk).split(\"\\n\");\n const stable = [];\n let unstable = [];\n const recall = this.tokensUnstable.length;\n chunkLines.forEach((line, i) => {\n const isLastLine = i === chunkLines.length - 1;\n const result = this.options.highlighter.codeToTokens(line, {\n ...this.options,\n grammarState: this.lastStableGrammarState\n });\n const tokens = result.tokens[0];\n if (!isLastLine)\n tokens.push({ content: \"\\n\", offset: 0 });\n if (!isLastLine) {\n this.lastStableGrammarState = result.grammarState;\n stable.push(...tokens);\n } else {\n unstable = tokens;\n this.lastUnstableCodeChunk = line;\n }\n });\n this.tokensStable.push(...stable);\n this.tokensUnstable = unstable;\n return {\n recall,\n stable,\n unstable\n };\n }\n close() {\n const stable = this.tokensUnstable;\n this.tokensUnstable = [];\n this.lastUnstableCodeChunk = \"\";\n this.lastStableGrammarState = void 0;\n return {\n stable\n };\n }\n clear() {\n this.tokensStable = [];\n this.tokensUnstable = [];\n this.lastUnstableCodeChunk = \"\";\n this.lastStableGrammarState = void 0;\n }\n clone() {\n const clone = new ShikiStreamTokenizer(\n this.options\n );\n clone.lastUnstableCodeChunk = this.lastUnstableCodeChunk;\n clone.tokensUnstable = this.tokensUnstable;\n clone.tokensStable = this.tokensStable;\n clone.lastStableGrammarState = this.lastStableGrammarState;\n return clone;\n }\n}\n\nclass CodeToTokenTransformStream extends TransformStream {\n tokenizer;\n options;\n constructor(options) {\n const tokenizer = new ShikiStreamTokenizer(options);\n const {\n allowRecalls = false\n } = options;\n super({\n async transform(chunk, controller) {\n const { stable, unstable: buffer, recall } = await tokenizer.enqueue(chunk);\n if (allowRecalls && recall > 0) {\n controller.enqueue({ recall });\n }\n for (const token of stable) {\n controller.enqueue(token);\n }\n if (allowRecalls) {\n for (const token of buffer) {\n controller.enqueue(token);\n }\n }\n },\n async flush(controller) {\n const { stable } = tokenizer.close();\n if (!allowRecalls) {\n for (const token of stable) {\n controller.enqueue(token);\n }\n }\n }\n });\n this.tokenizer = tokenizer;\n this.options = options;\n }\n}\n\nexport { CodeToTokenTransformStream, ShikiStreamTokenizer };\n"],"names":[],"mappings":";;;AAAA,MAAM,qBAAqB;AAAA,EAMzB,YAAY,SAAS;AALrB;AACA,wCAAe,CAAA;AACf,0CAAiB,CAAA;AACjB,iDAAwB;AACxB;AAEE,SAAK,UAAU;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA,EAIA,MAAM,QAAQ,OAAO;AACnB,UAAM,cAAc,KAAK,wBAAwB,OAAO,MAAM,IAAI;AAClE,UAAM,SAAS,CAAA;AACf,QAAI,WAAW,CAAA;AACf,UAAM,SAAS,KAAK,eAAe;AACnC,eAAW,QAAQ,CAAC,MAAM,MAAM;AAC9B,YAAM,aAAa,MAAM,WAAW,SAAS;AAC7C,YAAM,SAAS,KAAK,QAAQ,YAAY,aAAa,MAAM;AAAA,QACzD,GAAG,KAAK;AAAA,QACR,cAAc,KAAK;AAAA,MAC3B,CAAO;AACD,YAAM,SAAS,OAAO,OAAO,CAAC;AAC9B,UAAI,CAAC;AACH,eAAO,KAAK,EAAE,SAAS,MAAM,QAAQ,GAAG;AAC1C,UAAI,CAAC,YAAY;AACf,aAAK,yBAAyB,OAAO;AACrC,eAAO,KAAK,GAAG,MAAM;AAAA,MACvB,OAAO;AACL,mBAAW;AACX,aAAK,wBAAwB;AAAA,MAC/B;AAAA,IACF,CAAC;AACD,SAAK,aAAa,KAAK,GAAG,MAAM;AAChC,SAAK,iBAAiB;AACtB,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACN;AAAA,EACE;AAAA,EACA,QAAQ;AACN,UAAM,SAAS,KAAK;AACpB,SAAK,iBAAiB,CAAA;AACtB,SAAK,wBAAwB;AAC7B,SAAK,yBAAyB;AAC9B,WAAO;AAAA,MACL;AAAA,IACN;AAAA,EACE;AAAA,EACA,QAAQ;AACN,SAAK,eAAe,CAAA;AACpB,SAAK,iBAAiB,CAAA;AACtB,SAAK,wBAAwB;AAC7B,SAAK,yBAAyB;AAAA,EAChC;AAAA,EACA,QAAQ;AACN,UAAM,QAAQ,IAAI;AAAA,MAChB,KAAK;AAAA,IACX;AACI,UAAM,wBAAwB,KAAK;AACnC,UAAM,iBAAiB,KAAK;AAC5B,UAAM,eAAe,KAAK;AAC1B,UAAM,yBAAyB,KAAK;AACpC,WAAO;AAAA,EACT;AACF;","x_google_ignoreList":[0]}
|
package/dist/x-markdown.es15.js
CHANGED
|
@@ -1,5 +1,34 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { visit } from "unist-util-visit";
|
|
2
|
+
function rehypeAnimatedPlugin() {
|
|
3
|
+
return (tree) => {
|
|
4
|
+
visit(tree, "element", (node) => {
|
|
5
|
+
if (["p", "h1", "h2", "h3", "h4", "h5", "h6", "li", "strong", "th", "td"].includes(node.tagName) && node.children) {
|
|
6
|
+
const newChildren = [];
|
|
7
|
+
for (const child of node.children) {
|
|
8
|
+
if (child.type === "text") {
|
|
9
|
+
const segmenter = new Intl.Segmenter("zh", { granularity: "word" });
|
|
10
|
+
const segments = segmenter.segment(child.value);
|
|
11
|
+
const words = [...segments].map((segment) => segment.segment).filter(Boolean);
|
|
12
|
+
words.forEach((word) => {
|
|
13
|
+
newChildren.push({
|
|
14
|
+
children: [{ type: "text", value: word }],
|
|
15
|
+
properties: {
|
|
16
|
+
className: "x-md-animated-word"
|
|
17
|
+
},
|
|
18
|
+
tagName: "span",
|
|
19
|
+
type: "element"
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
} else {
|
|
23
|
+
newChildren.push(child);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
node.children = newChildren;
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
}
|
|
2
31
|
export {
|
|
3
|
-
|
|
32
|
+
rehypeAnimatedPlugin
|
|
4
33
|
};
|
|
5
34
|
//# sourceMappingURL=x-markdown.es15.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x-markdown.es15.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"x-markdown.es15.js","sources":["../src/plugins/rehypePlugin.ts"],"sourcesContent":["// Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\r\n// SPDX-License-Identifier: MIT\r\nimport type { Element, ElementContent, Root } from 'hast'\r\nimport type { BuildVisitor } from 'unist-util-visit'\r\nimport { visit } from 'unist-util-visit'\r\n\r\nexport function rehypeAnimatedPlugin() {\r\n return (tree: Root) => {\r\n visit(tree, 'element', ((node: Element) => {\r\n if (\r\n ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'li', 'strong', 'th', 'td'].includes(node.tagName) &&\r\n node.children\r\n ) {\r\n const newChildren: Array<ElementContent> = []\r\n for (const child of node.children) {\r\n if (child.type === 'text') {\r\n // @ts-expect-error Segmenter is not available in all environments\r\n const segmenter = new Intl.Segmenter('zh', { granularity: 'word' })\r\n const segments = segmenter.segment(child.value)\r\n const words = [...segments].map((segment) => segment.segment).filter(Boolean)\r\n words.forEach((word: string) => {\r\n newChildren.push({\r\n children: [{ type: 'text', value: word }],\r\n properties: {\r\n className: 'x-md-animated-word',\r\n },\r\n tagName: 'span',\r\n type: 'element',\r\n })\r\n })\r\n } else {\r\n newChildren.push(child)\r\n }\r\n }\r\n node.children = newChildren\r\n }\r\n }) as BuildVisitor<Root, 'element'>)\r\n }\r\n}\r\n"],"names":[],"mappings":";AAMO,SAAS,uBAAuB;AACrC,SAAO,CAAC,SAAe;AACrB,UAAM,MAAM,WAAY,CAAC,SAAkB;AACzC,UACE,CAAC,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,UAAU,MAAM,IAAI,EAAE,SAAS,KAAK,OAAO,KAC3F,KAAK,UACL;AACA,cAAM,cAAqC,CAAA;AAC3C,mBAAW,SAAS,KAAK,UAAU;AACjC,cAAI,MAAM,SAAS,QAAQ;AAEzB,kBAAM,YAAY,IAAI,KAAK,UAAU,MAAM,EAAE,aAAa,QAAQ;AAClE,kBAAM,WAAW,UAAU,QAAQ,MAAM,KAAK;AAC9C,kBAAM,QAAQ,CAAC,GAAG,QAAQ,EAAE,IAAI,CAAC,YAAY,QAAQ,OAAO,EAAE,OAAO,OAAO;AAC5E,kBAAM,QAAQ,CAAC,SAAiB;AAC9B,0BAAY,KAAK;AAAA,gBACf,UAAU,CAAC,EAAE,MAAM,QAAQ,OAAO,MAAM;AAAA,gBACxC,YAAY;AAAA,kBACV,WAAW;AAAA,gBAAA;AAAA,gBAEb,SAAS;AAAA,gBACT,MAAM;AAAA,cAAA,CACP;AAAA,YACH,CAAC;AAAA,UACH,OAAO;AACL,wBAAY,KAAK,KAAK;AAAA,UACxB;AAAA,QACF;AACA,aAAK,WAAW;AAAA,MAClB;AAAA,IACF,CAAmC;AAAA,EACrC;AACF;"}
|
package/dist/x-markdown.es16.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x-markdown.es16.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"x-markdown.es16.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/dist/x-markdown.es17.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import _sfc_main from "./x-markdown.
|
|
1
|
+
import _sfc_main from "./x-markdown.es25.js";
|
|
2
2
|
/* empty css */
|
|
3
|
-
import _export_sfc from "./x-markdown.es21.js";
|
|
4
|
-
const CodeBlock = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-8b0fb0b9"]]);
|
|
5
3
|
export {
|
|
6
|
-
|
|
4
|
+
_sfc_main as default
|
|
7
5
|
};
|
|
8
6
|
//# sourceMappingURL=x-markdown.es17.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x-markdown.es17.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"x-markdown.es17.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
package/dist/x-markdown.es18.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import _sfc_main from "./x-markdown.
|
|
1
|
+
import _sfc_main from "./x-markdown.es20.js";
|
|
2
2
|
/* empty css */
|
|
3
|
-
import _export_sfc from "./x-markdown.
|
|
4
|
-
const
|
|
3
|
+
import _export_sfc from "./x-markdown.es22.js";
|
|
4
|
+
const CodeBlock = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-8b0fb0b9"]]);
|
|
5
5
|
export {
|
|
6
|
-
|
|
6
|
+
CodeBlock as default
|
|
7
7
|
};
|
|
8
8
|
//# sourceMappingURL=x-markdown.es18.js.map
|
package/dist/x-markdown.es19.js
CHANGED
|
@@ -1,207 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
const
|
|
5
|
-
const _hoisted_2 = { class: "x-md-code-header__left" };
|
|
6
|
-
const _hoisted_3 = ["title"];
|
|
7
|
-
const _hoisted_4 = { class: "x-md-code-lang" };
|
|
8
|
-
const _hoisted_5 = { class: "x-md-code-header__right" };
|
|
9
|
-
const _hoisted_6 = ["title", "disabled", "onClick"];
|
|
10
|
-
const _hoisted_7 = {
|
|
11
|
-
key: 0,
|
|
12
|
-
class: "x-md-copy-icon",
|
|
13
|
-
width: "16",
|
|
14
|
-
height: "16",
|
|
15
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
16
|
-
viewBox: "0 0 1024 1024"
|
|
17
|
-
};
|
|
18
|
-
const _hoisted_8 = {
|
|
19
|
-
key: 1,
|
|
20
|
-
class: "x-md-copy-icon",
|
|
21
|
-
width: "16",
|
|
22
|
-
height: "16",
|
|
23
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
24
|
-
viewBox: "0 0 1024 1024"
|
|
25
|
-
};
|
|
26
|
-
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
27
|
-
...{
|
|
28
|
-
name: "CodeBlock"
|
|
29
|
-
},
|
|
30
|
-
__name: "index",
|
|
31
|
-
props: {
|
|
32
|
-
code: {},
|
|
33
|
-
language: {},
|
|
34
|
-
lightTheme: { default: "vitesse-light" },
|
|
35
|
-
darkTheme: { default: "vitesse-dark" },
|
|
36
|
-
isDark: { type: Boolean, default: false },
|
|
37
|
-
colorReplacements: {},
|
|
38
|
-
codeMaxHeight: {},
|
|
39
|
-
showCodeBlockHeader: { type: Boolean, default: true },
|
|
40
|
-
enableAnimate: { type: Boolean, default: false },
|
|
41
|
-
codeBlockActions: { default: void 0 },
|
|
42
|
-
stickyCodeBlockHeader: { type: Boolean, default: true }
|
|
43
|
-
},
|
|
44
|
-
setup(__props, { expose: __expose }) {
|
|
45
|
-
const { copy, copied } = useClipboard({ copiedDuring: 2e3 });
|
|
46
|
-
const collapsed = ref(false);
|
|
47
|
-
const syntaxCodeBlockRef = ref(null);
|
|
48
|
-
const toggleCollapse = () => {
|
|
49
|
-
collapsed.value = !collapsed.value;
|
|
50
|
-
};
|
|
51
|
-
const props = __props;
|
|
52
|
-
const code = computed(() => props.code.trim());
|
|
53
|
-
const language = computed(() => props.language || "text");
|
|
54
|
-
const normalizedActions = computed(() => {
|
|
55
|
-
return props.codeBlockActions || [];
|
|
56
|
-
});
|
|
57
|
-
const filteredActions = computed(() => {
|
|
58
|
-
return normalizedActions.value.filter((action) => {
|
|
59
|
-
if (!action.show) return true;
|
|
60
|
-
return action.show(slotProps.value);
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
const slotProps = computed(() => ({
|
|
64
|
-
language: language.value,
|
|
65
|
-
code: code.value,
|
|
66
|
-
copy,
|
|
67
|
-
copied: copied.value,
|
|
68
|
-
collapsed: collapsed.value,
|
|
69
|
-
toggleCollapse
|
|
70
|
-
}));
|
|
71
|
-
function renderActionIcon(action) {
|
|
72
|
-
if (!action.icon) return null;
|
|
73
|
-
if (typeof action.icon === "string") {
|
|
74
|
-
return h("span", {
|
|
75
|
-
class: "x-md-action-icon",
|
|
76
|
-
innerHTML: action.icon
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
if (typeof action.icon === "function") {
|
|
80
|
-
try {
|
|
81
|
-
const result = action.icon(slotProps.value);
|
|
82
|
-
if (result && typeof result === "object" && "__v_isVNode" in result) {
|
|
83
|
-
return result;
|
|
84
|
-
}
|
|
85
|
-
} catch {
|
|
86
|
-
}
|
|
87
|
-
return h(action.icon);
|
|
88
|
-
}
|
|
89
|
-
return h(action.icon);
|
|
90
|
-
}
|
|
91
|
-
function handleActionClick(action) {
|
|
92
|
-
if (action.disabled) return;
|
|
93
|
-
action.onClick?.(slotProps.value);
|
|
94
|
-
}
|
|
95
|
-
__expose({
|
|
96
|
-
copy,
|
|
97
|
-
copied,
|
|
98
|
-
collapsed,
|
|
99
|
-
toggleCollapse,
|
|
100
|
-
syntaxCodeBlockRef
|
|
101
|
-
});
|
|
102
|
-
return (_ctx, _cache) => {
|
|
103
|
-
return openBlock(), createElementBlock("div", {
|
|
104
|
-
class: normalizeClass(["x-md-code-block", { "x-md-code-block--dark": props.isDark }])
|
|
105
|
-
}, [
|
|
106
|
-
__props.showCodeBlockHeader ? (openBlock(), createElementBlock("div", {
|
|
107
|
-
key: 0,
|
|
108
|
-
class: normalizeClass(["x-md-code-header-wrapper", [{ "x-md-code-header-wrapper--sticky": props.stickyCodeBlockHeader }, { "x-md-code-header-wrapper--collapsed": collapsed.value }]])
|
|
109
|
-
}, [
|
|
110
|
-
createElementVNode("div", _hoisted_1, [
|
|
111
|
-
renderSlot(_ctx.$slots, "codeHeader", {
|
|
112
|
-
language: language.value,
|
|
113
|
-
code: code.value,
|
|
114
|
-
copy: unref(copy),
|
|
115
|
-
copied: unref(copied),
|
|
116
|
-
collapsed: collapsed.value,
|
|
117
|
-
toggleCollapse
|
|
118
|
-
}, () => [
|
|
119
|
-
createElementVNode("div", _hoisted_2, [
|
|
120
|
-
createElementVNode("button", {
|
|
121
|
-
class: normalizeClass(["x-md-collapse-btn", { "x-md-collapse-btn--collapsed": collapsed.value }]),
|
|
122
|
-
onClick: toggleCollapse,
|
|
123
|
-
title: collapsed.value ? "展开代码" : "折叠代码"
|
|
124
|
-
}, [..._cache[1] || (_cache[1] = [
|
|
125
|
-
createElementVNode("svg", {
|
|
126
|
-
class: "x-md-collapse-icon",
|
|
127
|
-
viewBox: "0 0 24 24",
|
|
128
|
-
width: "14",
|
|
129
|
-
height: "14",
|
|
130
|
-
fill: "none",
|
|
131
|
-
stroke: "currentColor",
|
|
132
|
-
"stroke-width": "2",
|
|
133
|
-
"stroke-linecap": "round",
|
|
134
|
-
"stroke-linejoin": "round"
|
|
135
|
-
}, [
|
|
136
|
-
createElementVNode("polyline", { points: "6 9 12 15 18 9" })
|
|
137
|
-
], -1)
|
|
138
|
-
])], 10, _hoisted_3),
|
|
139
|
-
createElementVNode("span", _hoisted_4, toDisplayString(language.value), 1)
|
|
140
|
-
]),
|
|
141
|
-
createElementVNode("div", _hoisted_5, [
|
|
142
|
-
renderSlot(_ctx.$slots, "codeActions", {
|
|
143
|
-
code: code.value,
|
|
144
|
-
copy: unref(copy),
|
|
145
|
-
copied: unref(copied)
|
|
146
|
-
}, () => [
|
|
147
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(filteredActions.value, (action) => {
|
|
148
|
-
return openBlock(), createElementBlock("button", {
|
|
149
|
-
key: action.key,
|
|
150
|
-
class: normalizeClass(["x-md-action-btn", [action.class, { "x-md-action-btn--disabled": action.disabled }]]),
|
|
151
|
-
style: normalizeStyle(action.style),
|
|
152
|
-
title: action.title,
|
|
153
|
-
disabled: action.disabled,
|
|
154
|
-
onClick: ($event) => handleActionClick(action)
|
|
155
|
-
}, [
|
|
156
|
-
action.icon ? (openBlock(), createBlock(resolveDynamicComponent(renderActionIcon(action)), { key: 0 })) : createCommentVNode("", true)
|
|
157
|
-
], 14, _hoisted_6);
|
|
158
|
-
}), 128)),
|
|
159
|
-
createElementVNode("button", {
|
|
160
|
-
class: normalizeClass(["x-md-copy-btn", { "x-md-copy-btn--copied": unref(copied) }]),
|
|
161
|
-
onClick: _cache[0] || (_cache[0] = ($event) => unref(copy)(code.value))
|
|
162
|
-
}, [
|
|
163
|
-
unref(copied) ? (openBlock(), createElementBlock("svg", _hoisted_7, [..._cache[2] || (_cache[2] = [
|
|
164
|
-
createElementVNode("path", {
|
|
165
|
-
fill: "currentColor",
|
|
166
|
-
d: "M406.656 706.944 195.84 496.256a32 32 0 1 0-45.248 45.248l256 256 512-512a32 32 0 0 0-45.248-45.248L406.592 706.944z"
|
|
167
|
-
}, null, -1)
|
|
168
|
-
])])) : (openBlock(), createElementBlock("svg", _hoisted_8, [..._cache[3] || (_cache[3] = [
|
|
169
|
-
createElementVNode("path", {
|
|
170
|
-
fill: "currentColor",
|
|
171
|
-
d: "M768 832a128 128 0 0 1-128 128H192A128 128 0 0 1 64 832V384a128 128 0 0 1 128-128v64a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64z"
|
|
172
|
-
}, null, -1),
|
|
173
|
-
createElementVNode("path", {
|
|
174
|
-
fill: "currentColor",
|
|
175
|
-
d: "M384 128a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64V192a64 64 0 0 0-64-64zm0-64h448a128 128 0 0 1 128 128v448a128 128 0 0 1-128 128H384a128 128 0 0 1-128-128V192A128 128 0 0 1 384 64"
|
|
176
|
-
}, null, -1)
|
|
177
|
-
])]))
|
|
178
|
-
], 2)
|
|
179
|
-
], true)
|
|
180
|
-
])
|
|
181
|
-
], true)
|
|
182
|
-
])
|
|
183
|
-
], 2)) : createCommentVNode("", true),
|
|
184
|
-
createElementVNode("div", {
|
|
185
|
-
class: normalizeClass(["x-md-code-body", { "x-md-code-body--collapsed": collapsed.value }])
|
|
186
|
-
}, [
|
|
187
|
-
createVNode(SyntaxCodeBlock, {
|
|
188
|
-
ref_key: "syntaxCodeBlockRef",
|
|
189
|
-
ref: syntaxCodeBlockRef,
|
|
190
|
-
code: code.value,
|
|
191
|
-
language: language.value,
|
|
192
|
-
"light-theme": props.lightTheme,
|
|
193
|
-
"dark-theme": props.darkTheme,
|
|
194
|
-
"is-dark": props.isDark,
|
|
195
|
-
"color-replacements": props.colorReplacements,
|
|
196
|
-
"code-max-height": props.codeMaxHeight,
|
|
197
|
-
"enable-animate": props.enableAnimate
|
|
198
|
-
}, null, 8, ["code", "language", "light-theme", "dark-theme", "is-dark", "color-replacements", "code-max-height", "enable-animate"])
|
|
199
|
-
], 2)
|
|
200
|
-
], 2);
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
});
|
|
1
|
+
import _sfc_main from "./x-markdown.es23.js";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import _export_sfc from "./x-markdown.es22.js";
|
|
4
|
+
const CodeLine = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-97166d5b"]]);
|
|
204
5
|
export {
|
|
205
|
-
|
|
6
|
+
CodeLine as default
|
|
206
7
|
};
|
|
207
8
|
//# sourceMappingURL=x-markdown.es19.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x-markdown.es19.js","sources":["../src/components/CodeBlock/index.vue"],"sourcesContent":["<template>\r\n <div class=\"x-md-code-block\" :class=\"{ 'x-md-code-block--dark': props.isDark }\">\r\n <!-- 头部区域:支持完全自定义或默认渲染 -->\r\n <div\r\n v-if=\"showCodeBlockHeader\"\r\n class=\"x-md-code-header-wrapper\"\r\n :class=\"[{'x-md-code-header-wrapper--sticky': props.stickyCodeBlockHeader }, { 'x-md-code-header-wrapper--collapsed': collapsed }]\"\r\n >\r\n <div class=\"x-md-code-header\">\r\n <slot\r\n name=\"codeHeader\"\r\n :language=\"language\"\r\n :code=\"code\"\r\n :copy=\"copy\"\r\n :copied=\"copied\"\r\n :collapsed=\"collapsed\"\r\n :toggleCollapse=\"toggleCollapse\"\r\n >\r\n <div class=\"x-md-code-header__left\">\r\n <button\r\n class=\"x-md-collapse-btn\"\r\n :class=\"{ 'x-md-collapse-btn--collapsed': collapsed }\"\r\n @click=\"toggleCollapse\"\r\n :title=\"collapsed ? '展开代码' : '折叠代码'\"\r\n >\r\n <svg\r\n class=\"x-md-collapse-icon\"\r\n viewBox=\"0 0 24 24\"\r\n width=\"14\"\r\n height=\"14\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n >\r\n <polyline points=\"6 9 12 15 18 9\"></polyline>\r\n </svg>\r\n </button>\r\n <span class=\"x-md-code-lang\">{{ language }}</span>\r\n </div>\r\n <div class=\"x-md-code-header__right\">\r\n <slot name=\"codeActions\" :code=\"code\" :copy=\"copy\" :copied=\"copied\">\r\n <button\r\n v-for=\"action in filteredActions\"\r\n :key=\"action.key\"\r\n class=\"x-md-action-btn\"\r\n :class=\"[action.class, { 'x-md-action-btn--disabled': action.disabled }]\"\r\n :style=\"action.style\"\r\n :title=\"action.title\"\r\n :disabled=\"action.disabled\"\r\n @click=\"handleActionClick(action)\"\r\n >\r\n <component :is=\"renderActionIcon(action)\" v-if=\"action.icon\" />\r\n </button>\r\n <button class=\"x-md-copy-btn\" :class=\"{ 'x-md-copy-btn--copied': copied }\" @click=\"copy(code)\">\r\n <svg\r\n v-if=\"copied\"\r\n class=\"x-md-copy-icon\"\r\n width=\"16\"\r\n height=\"16\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 1024 1024\"\r\n >\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M406.656 706.944 195.84 496.256a32 32 0 1 0-45.248 45.248l256 256 512-512a32 32 0 0 0-45.248-45.248L406.592 706.944z\"\r\n />\r\n </svg>\r\n <svg\r\n v-else\r\n class=\"x-md-copy-icon\"\r\n width=\"16\"\r\n height=\"16\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 1024 1024\"\r\n >\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M768 832a128 128 0 0 1-128 128H192A128 128 0 0 1 64 832V384a128 128 0 0 1 128-128v64a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64z\"\r\n />\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M384 128a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64V192a64 64 0 0 0-64-64zm0-64h448a128 128 0 0 1 128 128v448a128 128 0 0 1-128 128H384a128 128 0 0 1-128-128V192A128 128 0 0 1 384 64\"\r\n />\r\n </svg>\r\n </button>\r\n </slot>\r\n </div>\r\n </slot>\r\n </div>\r\n </div>\r\n <div class=\"x-md-code-body\" :class=\"{ 'x-md-code-body--collapsed': collapsed }\">\r\n <SyntaxCodeBlock\r\n ref=\"syntaxCodeBlockRef\"\r\n :code=\"code\"\r\n :language=\"language\"\r\n :light-theme=\"props.lightTheme\"\r\n :dark-theme=\"props.darkTheme\"\r\n :is-dark=\"props.isDark\"\r\n :color-replacements=\"props.colorReplacements\"\r\n :code-max-height=\"props.codeMaxHeight\"\r\n :enable-animate=\"props.enableAnimate\"\r\n />\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, ref, h, type VNode } from 'vue'\r\nimport { useClipboard } from '@vueuse/core'\r\nimport type { CodeBlockProps, CodeBlockAction, CodeBlockSlotProps } from './types'\r\nimport SyntaxCodeBlock from './SyntaxCodeBlock.vue'\r\n\r\ndefineOptions({\r\n name: 'CodeBlock',\r\n})\r\n\r\nconst { copy, copied } = useClipboard({ copiedDuring: 2000 })\r\n\r\nconst collapsed = ref(false)\r\n\r\nconst syntaxCodeBlockRef = ref<InstanceType<typeof SyntaxCodeBlock> | null>(null)\r\n\r\nconst toggleCollapse = () => {\r\n collapsed.value = !collapsed.value\r\n}\r\n\r\nconst props = withDefaults(defineProps<CodeBlockProps>(), {\r\n lightTheme: 'vitesse-light',\r\n darkTheme: 'vitesse-dark',\r\n isDark: false,\r\n showCodeBlockHeader: true,\r\n enableAnimate: false,\r\n codeBlockActions: undefined,\r\n stickyCodeBlockHeader: true,\r\n})\r\n\r\nconst code = computed(() => props.code.trim())\r\n\r\nconst language = computed(() => props.language || 'text')\r\n\r\nconst normalizedActions = computed<CodeBlockAction[]>(() => {\r\n return props.codeBlockActions || []\r\n})\r\n\r\nconst filteredActions = computed<CodeBlockAction[]>(() => {\r\n return normalizedActions.value.filter((action) => {\r\n if (!action.show) return true\r\n return action.show(slotProps.value)\r\n })\r\n})\r\n\r\nconst slotProps = computed<CodeBlockSlotProps>(() => ({\r\n language: language.value,\r\n code: code.value,\r\n copy,\r\n copied: copied.value,\r\n collapsed: collapsed.value,\r\n toggleCollapse,\r\n}))\r\n\r\nfunction renderActionIcon(action: CodeBlockAction): VNode | null {\r\n if (!action.icon) return null\r\n\r\n if (typeof action.icon === 'string') {\r\n return h('span', {\r\n class: 'x-md-action-icon',\r\n innerHTML: action.icon,\r\n })\r\n }\r\n\r\n if (typeof action.icon === 'function') {\r\n try {\r\n const result = (action.icon as (props: CodeBlockSlotProps) => VNode)(slotProps.value)\r\n if (result && typeof result === 'object' && '__v_isVNode' in result) {\r\n return result\r\n }\r\n } catch {\r\n }\r\n return h(action.icon as any)\r\n }\r\n\r\n return h(action.icon as any)\r\n}\r\n\r\nfunction handleActionClick(action: CodeBlockAction) {\r\n if (action.disabled) return\r\n action.onClick?.(slotProps.value)\r\n}\r\n\r\ndefineExpose({\r\n copy,\r\n copied,\r\n collapsed,\r\n toggleCollapse,\r\n syntaxCodeBlockRef,\r\n})\r\n</script>\r\n\r\n<style scoped>\r\n.x-md-code-block {\r\n border-radius: 8px;\r\n overflow: hidden;\r\n font-size: 0;\r\n background: rgba(0, 0, 0, 0.03);\r\n}\r\n\r\n.x-md-code-block.x-md-code-block--dark {\r\n background: rgba(255, 255, 255, 0.13);\r\n}\r\n\r\n.x-md-code-header-wrapper--sticky {\r\n background: #fff;\r\n position: sticky;\r\n top: 0;\r\n}\r\n\r\n.x-md-code-block.x-md-code-block--dark .x-md-code-header-wrapper--sticky {\r\n background: #1a1a1a;\r\n}\r\n\r\n.x-md-code-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 8px 16px;\r\n background: rgba(0, 0, 0, 0.05);\r\n color: #333;\r\n}\r\n\r\n.x-md-code-block .x-md-code-header-wrapper--sticky .x-md-code-header{\r\n background: rgba(235, 235, 235);\r\n border-radius: 8px 8px 0 0;\r\n}\r\n\r\n.x-md-code-block:has(.x-md-code-header-wrapper--sticky) {\r\n overflow: visible;\r\n}\r\n\r\n.x-md-code-block.x-md-code-block--dark .x-md-code-header {\r\n background: rgba(0, 0, 0, 0.25);\r\n color: #fff;\r\n}\r\n\r\n.x-md-code-block.x-md-code-block--dark .x-md-code-header-wrapper--sticky .x-md-code-header {\r\n background: rgba(44, 44, 44);\r\n}\r\n\r\n.x-md-code-block .x-md-code-header-wrapper--collapsed .x-md-code-header {\r\n border-radius: 8px;\r\n}\r\n\r\n.x-md-code-header__left,\r\n.x-md-code-header__right {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n}\r\n\r\n.x-md-code-lang {\r\n font-size: 12px;\r\n font-weight: 500;\r\n opacity: 0.6;\r\n text-transform: lowercase;\r\n}\r\n\r\n.x-md-copy-btn {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 28px;\r\n height: 28px;\r\n padding: 0;\r\n border: none;\r\n border-radius: 4px;\r\n background: transparent;\r\n color: inherit;\r\n cursor: pointer;\r\n opacity: 0.7;\r\n transition: all 0.2s ease;\r\n}\r\n\r\n.x-md-copy-btn:hover {\r\n opacity: 1;\r\n background: rgba(0, 0, 0, 0.08);\r\n}\r\n\r\n.x-md-code-block.x-md-code-block--dark .x-md-copy-btn:hover {\r\n background: rgba(255, 255, 255, 0.1);\r\n}\r\n\r\n.x-md-copy-btn.x-md-copy-btn--copied {\r\n opacity: 1;\r\n color: #22c55e;\r\n}\r\n\r\n.x-md-copy-icon {\r\n flex-shrink: 0;\r\n}\r\n\r\n.x-md-action-btn {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 28px;\r\n height: 28px;\r\n padding: 0;\r\n border: none;\r\n border-radius: 4px;\r\n background: transparent;\r\n color: inherit;\r\n cursor: pointer;\r\n opacity: 0.7;\r\n transition: all 0.2s ease;\r\n}\r\n\r\n.x-md-action-btn:hover {\r\n opacity: 1;\r\n background: rgba(0, 0, 0, 0.08);\r\n}\r\n\r\n.x-md-code-block.x-md-code-block--dark .x-md-action-btn:hover {\r\n background: rgba(255, 255, 255, 0.1);\r\n}\r\n\r\n.x-md-action-btn.x-md-action-btn--disabled {\r\n opacity: 0.3;\r\n cursor: not-allowed;\r\n pointer-events: none;\r\n}\r\n\r\n.x-md-action-icon {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.x-md-action-icon :deep(svg) {\r\n width: 16px;\r\n height: 16px;\r\n flex-shrink: 0;\r\n}\r\n\r\n.x-md-collapse-btn {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 20px;\r\n height: 20px;\r\n padding: 0;\r\n border: none;\r\n border-radius: 4px;\r\n background: transparent;\r\n color: inherit;\r\n cursor: pointer;\r\n opacity: 0.5;\r\n transition: all 0.2s ease;\r\n}\r\n\r\n.x-md-collapse-btn:hover {\r\n opacity: 1;\r\n background: rgba(0, 0, 0, 0.08);\r\n}\r\n\r\n.x-md-code-block.x-md-code-block--dark .x-md-collapse-btn:hover {\r\n background: rgba(255, 255, 255, 0.1);\r\n}\r\n\r\n.x-md-collapse-icon {\r\n transition: transform 0.2s ease;\r\n}\r\n\r\n.x-md-collapse-btn--collapsed .x-md-collapse-icon {\r\n transform: rotate(-90deg);\r\n}\r\n\r\n.x-md-code-body {\r\n overflow: hidden;\r\n transition:\r\n max-height 0.3s ease,\r\n opacity 0.2s ease;\r\n}\r\n\r\n.x-md-code-body--collapsed {\r\n max-height: 0 !important;\r\n opacity: 0;\r\n}\r\n</style>"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_renderSlot","_unref","_toDisplayString","_Fragment","_renderList","_normalizeStyle","_createBlock","_resolveDynamicComponent","_openBlock","_createVNode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"x-markdown.es19.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|