ds-markdown 0.0.9-beta.1 → 0.0.10-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -9
- package/dist/cjs/MarkdownCMD/index.js +72 -37
- package/dist/cjs/MarkdownCMD/index.js.map +1 -1
- package/dist/cjs/components/HighReactMarkdown/index.js.map +1 -1
- package/dist/cjs/utils/Tokenizer.d.ts +40 -0
- package/dist/cjs/utils/Tokenizer.js +183 -0
- package/dist/cjs/utils/Tokenizer.js.map +1 -0
- package/dist/cjs/utils/compiler.d.ts +4 -0
- package/dist/cjs/utils/compiler.js +52 -0
- package/dist/cjs/utils/compiler.js.map +1 -0
- package/dist/cjs/utils/rule.d.ts +25 -0
- package/dist/cjs/utils/rule.js +71 -0
- package/dist/cjs/utils/rule.js.map +1 -0
- package/dist/esm/MarkdownCMD/index.js +71 -36
- package/dist/esm/MarkdownCMD/index.js.map +1 -1
- package/dist/esm/components/HighReactMarkdown/index.js.map +1 -1
- package/dist/esm/utils/Tokenizer.d.ts +40 -0
- package/dist/esm/utils/Tokenizer.js +179 -0
- package/dist/esm/utils/Tokenizer.js.map +1 -0
- package/dist/esm/utils/compiler.d.ts +4 -0
- package/dist/esm/utils/compiler.js +49 -0
- package/dist/esm/utils/compiler.js.map +1 -0
- package/dist/esm/utils/rule.d.ts +25 -0
- package/dist/esm/utils/rule.js +68 -0
- package/dist/esm/utils/rule.js.map +1 -0
- package/dist/style.css +3 -0
- package/package.json +12 -3
- package/dist/cjs/components/HighReactMarkdown/Highlighter/index.d.ts +0 -9
- package/dist/cjs/components/HighReactMarkdown/Highlighter/index.js +0 -23
- package/dist/cjs/components/HighReactMarkdown/Highlighter/index.js.map +0 -1
- package/dist/esm/components/HighReactMarkdown/Highlighter/index.d.ts +0 -9
- package/dist/esm/components/HighReactMarkdown/Highlighter/index.js +0 -18
- package/dist/esm/components/HighReactMarkdown/Highlighter/index.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../src/utils/compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,SAAS,EAAE,MAAM,aAAa,CAAC;AAE/C,SAAS,OAAO,CAAC,GAAW;IAC1B,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;IAElC,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAG,GAAG,CAAC;IAClB,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClC,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACjC,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClC,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpC,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;YAC3B,qBAAqB;YACrB,oBAAoB;YACpB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,SAAS;gBACf,GAAG,EAAE,GAAG;aACT,CAAC,CAAC;YACH,GAAG,GAAG,EAAE,CAAC;QACX,CAAC;QACD,OAAO,GAAG,GAAG,CAAC;IAChB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,cAAc,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** 此文件借鉴 marked 的部分代码 */
|
|
2
|
+
export declare const rules: {
|
|
3
|
+
block: {
|
|
4
|
+
newline: RegExp;
|
|
5
|
+
fences: RegExp;
|
|
6
|
+
segment: RegExp;
|
|
7
|
+
list: RegExp;
|
|
8
|
+
hr: RegExp;
|
|
9
|
+
};
|
|
10
|
+
other: {
|
|
11
|
+
caret: RegExp;
|
|
12
|
+
listItemRegex: (bull: string) => RegExp;
|
|
13
|
+
nextBulletRegex: (indent: number) => RegExp;
|
|
14
|
+
listReplaceTabs: RegExp;
|
|
15
|
+
nonSpaceChar: RegExp;
|
|
16
|
+
blankLine: RegExp;
|
|
17
|
+
listIsTask: RegExp;
|
|
18
|
+
listReplaceTask: RegExp;
|
|
19
|
+
tabCharGlobal: RegExp;
|
|
20
|
+
hrRegex: (indent: number) => RegExp;
|
|
21
|
+
headingBeginRegex: (indent: number) => RegExp;
|
|
22
|
+
htmlBeginRegex: (indent: number) => RegExp;
|
|
23
|
+
fencesBeginRegex: (indent: number) => RegExp;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/** 此文件借鉴 marked 的部分代码 */
|
|
2
|
+
const other = {
|
|
3
|
+
caret: /(^|[^[])\^/g,
|
|
4
|
+
listItemRegex: (bull) => new RegExp(`^( {0,3}${bull})((?:[\t ][^\\n]*)?(?:\\n|$))`),
|
|
5
|
+
nextBulletRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`),
|
|
6
|
+
listReplaceTabs: /^\t+/,
|
|
7
|
+
nonSpaceChar: /[^ ]/,
|
|
8
|
+
blankLine: /^[ \t]*$/,
|
|
9
|
+
listIsTask: /^\[[ xX]\] /,
|
|
10
|
+
listReplaceTask: /^\[[ xX]\] +/,
|
|
11
|
+
tabCharGlobal: /\t/g,
|
|
12
|
+
hrRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),
|
|
13
|
+
headingBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`),
|
|
14
|
+
htmlBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}<(?:[a-z].*>|!--)`, 'i'),
|
|
15
|
+
fencesBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\`\`\`|~~~)`),
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* 编辑正则表达式
|
|
19
|
+
* @param regex 正则表达式
|
|
20
|
+
* @param opt 正则表达式选项
|
|
21
|
+
* @returns 编辑后的正则表达式
|
|
22
|
+
*/
|
|
23
|
+
function edit(regex, opt = '') {
|
|
24
|
+
let source = typeof regex === 'string' ? regex : regex.source;
|
|
25
|
+
const obj = {
|
|
26
|
+
replace: (name, val) => {
|
|
27
|
+
let valSource = typeof val === 'string' ? val : val.source;
|
|
28
|
+
valSource = valSource.replace(other.caret, '$1');
|
|
29
|
+
source = source.replace(name, valSource);
|
|
30
|
+
return obj;
|
|
31
|
+
},
|
|
32
|
+
getRegex: () => {
|
|
33
|
+
return new RegExp(source, opt);
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
return obj;
|
|
37
|
+
}
|
|
38
|
+
const newline = /^(?:[ \t]*(?:\n|$))+/;
|
|
39
|
+
const hr = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/;
|
|
40
|
+
/** 列表 */
|
|
41
|
+
const bullet = /(?:[*+-]|\d{1,9}[.)])/;
|
|
42
|
+
/** 列表 */
|
|
43
|
+
const list = edit(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/)
|
|
44
|
+
.replace(/bull/g, bullet)
|
|
45
|
+
.getRegex();
|
|
46
|
+
/** 围栏 fence
|
|
47
|
+
* 什么是围栏: 围栏是用来包裹代码块的,比如 ```javascript 和 ``` 之间就是围栏
|
|
48
|
+
*/
|
|
49
|
+
const fences = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/;
|
|
50
|
+
// 一个块
|
|
51
|
+
const _segment = /^([^\n]+(?:\n(?!fences|list|hr| +\n)[^\n]+)*)/;
|
|
52
|
+
const segment = edit(_segment)
|
|
53
|
+
.replace(/fences/, fences)
|
|
54
|
+
.replace(/list/, list)
|
|
55
|
+
.replace(/hr/, hr)
|
|
56
|
+
.getRegex();
|
|
57
|
+
const blockNormal = {
|
|
58
|
+
newline,
|
|
59
|
+
fences,
|
|
60
|
+
segment,
|
|
61
|
+
list,
|
|
62
|
+
hr,
|
|
63
|
+
};
|
|
64
|
+
export const rules = {
|
|
65
|
+
block: blockNormal,
|
|
66
|
+
other,
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=rule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule.js","sourceRoot":"","sources":["../../../src/utils/rule.ts"],"names":[],"mappings":"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"}
|
package/dist/style.css
CHANGED
|
@@ -19,9 +19,11 @@
|
|
|
19
19
|
--ds-rgb-neutral-900: 23 23 23;
|
|
20
20
|
--ds-rgb-neutral-950: 10 10 10;
|
|
21
21
|
--ds-rgb-blue-500: 59 130 246;
|
|
22
|
+
--ds-rgb-label-1: var(--ds-rgb-neutral-700);
|
|
22
23
|
}
|
|
23
24
|
.ds-markdown {
|
|
24
25
|
--ds-font-family-code: Menlo, 'Roboto Mono', 'Courier New', Courier, monospace, 'Inter', sans-serif;
|
|
26
|
+
font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Noto Sans, Ubuntu, Cantarell, Helvetica Neue, Oxygen, Open Sans, sans-serif;
|
|
25
27
|
}
|
|
26
28
|
.ds-markdown {
|
|
27
29
|
--ds-rgb-primary: var(--ds-rgb-blue-500);
|
|
@@ -50,6 +52,7 @@
|
|
|
50
52
|
font-size: var(--ds-md-font-size);
|
|
51
53
|
min-height: var(--ds-md-font-size);
|
|
52
54
|
line-height: var(--ds-md-line-height);
|
|
55
|
+
color: rgb(var(--ds-rgb-label-1));
|
|
53
56
|
}
|
|
54
57
|
.ds-markdown img {
|
|
55
58
|
max-width: 100%;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ds-markdown",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.10-beta.0",
|
|
5
5
|
"main": "./dist/cjs/index.js",
|
|
6
6
|
"types": "./dist/cjs/index.d.ts",
|
|
7
7
|
"module": "./dist/esm/index.js",
|
|
@@ -40,8 +40,9 @@
|
|
|
40
40
|
"build:less": "lessc src/style.less dist/style.css",
|
|
41
41
|
"lint": "eslint .",
|
|
42
42
|
"preview": "vite preview",
|
|
43
|
-
"
|
|
44
|
-
"prepublishOnly": "
|
|
43
|
+
"release": "npm run build && node scripts/set-tag.cjs && cross-env RELEASE_MODE=true npm publish",
|
|
44
|
+
"prepublishOnly": "node scripts/prepublish.js",
|
|
45
|
+
"test": "jest"
|
|
45
46
|
},
|
|
46
47
|
"dependencies": {
|
|
47
48
|
"classnames": "^2.5.1",
|
|
@@ -52,6 +53,7 @@
|
|
|
52
53
|
"devDependencies": {
|
|
53
54
|
"@antfu/eslint-config": "^4.12.0",
|
|
54
55
|
"@babel/core": "^7.27.1",
|
|
56
|
+
"@babel/preset-env": "^7.27.2",
|
|
55
57
|
"@babel/preset-react": "^7.27.1",
|
|
56
58
|
"@babel/preset-typescript": "^7.27.1",
|
|
57
59
|
"@eslint-react/eslint-plugin": "^1.48.5",
|
|
@@ -66,6 +68,8 @@
|
|
|
66
68
|
"@types/react-dom": "^19.1.2",
|
|
67
69
|
"@types/react-syntax-highlighter": "^15.5.13",
|
|
68
70
|
"@vitejs/plugin-react": "^4.4.1",
|
|
71
|
+
"babel-jest": "^30.0.0-beta.3",
|
|
72
|
+
"cross-env": "^7.0.3",
|
|
69
73
|
"eslint": "^9.25.0",
|
|
70
74
|
"eslint-config-prettier": "^10.1.2",
|
|
71
75
|
"eslint-plugin-compat": "^6.0.2",
|
|
@@ -74,6 +78,10 @@
|
|
|
74
78
|
"eslint-plugin-react-hooks": "^5.2.0",
|
|
75
79
|
"eslint-plugin-react-refresh": "^0.4.19",
|
|
76
80
|
"globals": "^16.0.0",
|
|
81
|
+
"identity-obj-proxy": "^3.0.0",
|
|
82
|
+
"jest": "^29.7.0",
|
|
83
|
+
"jest-environment-jsdom": "^30.0.0-beta.3",
|
|
84
|
+
"jsdom": "^26.1.0",
|
|
77
85
|
"less": "^4.3.0",
|
|
78
86
|
"prettier": "3.5.3",
|
|
79
87
|
"react": "^19.1.0",
|
|
@@ -85,6 +93,7 @@
|
|
|
85
93
|
"rimraf": "^6.0.1",
|
|
86
94
|
"rollup": "^4.40.2",
|
|
87
95
|
"rollup-plugin-postcss": "^4.0.2",
|
|
96
|
+
"ts-jest": "^29.3.4",
|
|
88
97
|
"typescript": "~5.8.3",
|
|
89
98
|
"typescript-eslint": "^8.30.1",
|
|
90
99
|
"unified": "^11.0.5",
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import 'prismjs/components/prism-typescript';
|
|
3
|
-
import 'prismjs/components/prism-jsx';
|
|
4
|
-
import 'prismjs/components/prism-tsx';
|
|
5
|
-
interface HighlighterProps {
|
|
6
|
-
children: string;
|
|
7
|
-
}
|
|
8
|
-
declare const Highlighter: React.FC<HighlighterProps>;
|
|
9
|
-
export default Highlighter;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
-
const prismjs_1 = __importDefault(require("prismjs"));
|
|
8
|
-
const classnames_1 = __importDefault(require("classnames"));
|
|
9
|
-
// 必须手动导入 TSX 相关语言定义
|
|
10
|
-
require("prismjs/components/prism-typescript");
|
|
11
|
-
require("prismjs/components/prism-jsx");
|
|
12
|
-
require("prismjs/components/prism-tsx"); // TSX 核心语法
|
|
13
|
-
console.log(prismjs_1.default.languages);
|
|
14
|
-
const modulePrefix = 'Highlighter';
|
|
15
|
-
const Highlighter = ({ children }) => {
|
|
16
|
-
const html = prismjs_1.default.highlight(children, prismjs_1.default.languages.jsx, 'jsx');
|
|
17
|
-
return ((0, jsx_runtime_1.jsx)("pre", { className: (0, classnames_1.default)({
|
|
18
|
-
[modulePrefix]: true,
|
|
19
|
-
'language-jsx': true,
|
|
20
|
-
}), children: (0, jsx_runtime_1.jsx)("code", { className: "language-jsx", dangerouslySetInnerHTML: { __html: html } }) }));
|
|
21
|
-
};
|
|
22
|
-
exports.default = Highlighter;
|
|
23
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/HighReactMarkdown/Highlighter/index.tsx"],"names":[],"mappings":";;;;;;AACA,sDAA4B;AAC5B,4DAAoC;AAEpC,oBAAoB;AACpB,+CAA6C;AAC7C,wCAAsC;AACtC,wCAAsC,CAAC,WAAW;AAElD,OAAO,CAAC,GAAG,CAAC,iBAAK,CAAC,SAAS,CAAC,CAAC;AAM7B,MAAM,YAAY,GAAG,aAAa,CAAC;AACnC,MAAM,WAAW,GAA+B,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC/D,MAAM,IAAI,GAAG,iBAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,iBAAK,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACnE,OAAO,CACL,gCACE,SAAS,EAAE,IAAA,oBAAU,EAAC;YACpB,CAAC,YAAY,CAAC,EAAE,IAAI;YACpB,cAAc,EAAE,IAAI;SACrB,CAAC,YAEF,iCAAM,SAAS,EAAC,cAAc,EAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAI,GACxE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,WAAW,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import 'prismjs/components/prism-typescript';
|
|
3
|
-
import 'prismjs/components/prism-jsx';
|
|
4
|
-
import 'prismjs/components/prism-tsx';
|
|
5
|
-
interface HighlighterProps {
|
|
6
|
-
children: string;
|
|
7
|
-
}
|
|
8
|
-
declare const Highlighter: React.FC<HighlighterProps>;
|
|
9
|
-
export default Highlighter;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import Prism from 'prismjs';
|
|
3
|
-
import classNames from 'classnames';
|
|
4
|
-
// 必须手动导入 TSX 相关语言定义
|
|
5
|
-
import 'prismjs/components/prism-typescript';
|
|
6
|
-
import 'prismjs/components/prism-jsx';
|
|
7
|
-
import 'prismjs/components/prism-tsx'; // TSX 核心语法
|
|
8
|
-
console.log(Prism.languages);
|
|
9
|
-
const modulePrefix = 'Highlighter';
|
|
10
|
-
const Highlighter = ({ children }) => {
|
|
11
|
-
const html = Prism.highlight(children, Prism.languages.jsx, 'jsx');
|
|
12
|
-
return (_jsx("pre", { className: classNames({
|
|
13
|
-
[modulePrefix]: true,
|
|
14
|
-
'language-jsx': true,
|
|
15
|
-
}), children: _jsx("code", { className: "language-jsx", dangerouslySetInnerHTML: { __html: html } }) }));
|
|
16
|
-
};
|
|
17
|
-
export default Highlighter;
|
|
18
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/HighReactMarkdown/Highlighter/index.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,oBAAoB;AACpB,OAAO,qCAAqC,CAAC;AAC7C,OAAO,8BAA8B,CAAC;AACtC,OAAO,8BAA8B,CAAC,CAAC,WAAW;AAElD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAM7B,MAAM,YAAY,GAAG,aAAa,CAAC;AACnC,MAAM,WAAW,GAA+B,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACnE,OAAO,CACL,cACE,SAAS,EAAE,UAAU,CAAC;YACpB,CAAC,YAAY,CAAC,EAAE,IAAI;YACpB,cAAc,EAAE,IAAI;SACrB,CAAC,YAEF,eAAM,SAAS,EAAC,cAAc,EAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAI,GACxE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
|