@zjlab-frontier/markdown 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +227 -98
  2. package/dist/{arc-CPA0p2nr.mjs → arc-BHEwWl-R.mjs} +1 -1
  3. package/dist/{blockDiagram-c4efeb88-BMWiFiP3.mjs → blockDiagram-c4efeb88-DyOoVect.mjs} +5 -5
  4. package/dist/{c4Diagram-c83219d4-BVeP4sGZ.mjs → c4Diagram-c83219d4-DHGfdjir.mjs} +2 -2
  5. package/dist/{channel-CfTtXS54.mjs → channel-BmV1r3s7.mjs} +1 -1
  6. package/dist/{classDiagram-beda092f-Dkg1paTI.mjs → classDiagram-beda092f-CB0v6_Kk.mjs} +5 -5
  7. package/dist/{classDiagram-v2-2358418a-CbmP87w3.mjs → classDiagram-v2-2358418a-Dm0RUDeY.mjs} +5 -5
  8. package/dist/{clone-DQz5S2Gf.mjs → clone-DTBtIqJg.mjs} +1 -1
  9. package/dist/{createText-1719965b-THljj3Tg.mjs → createText-1719965b-DW-oYHSB.mjs} +1 -1
  10. package/dist/{edges-96097737-DX03sOnb.mjs → edges-96097737-CkGJprh5.mjs} +3 -3
  11. package/dist/{erDiagram-0228fc6a-DyRJb1N0.mjs → erDiagram-0228fc6a-DzhfKO3z.mjs} +4 -4
  12. package/dist/{flowDb-c6c81e3f-DnVrIVtg.mjs → flowDb-c6c81e3f-YcPeW35q.mjs} +1 -1
  13. package/dist/{flowDiagram-50d868cf-QAHsagSv.mjs → flowDiagram-50d868cf-izGKL3O5.mjs} +6 -6
  14. package/dist/{flowDiagram-v2-4f6560a1-DW1Pj1Vu.mjs → flowDiagram-v2-4f6560a1-B8Kan8nl.mjs} +5 -5
  15. package/dist/{flowchart-elk-definition-6af322e1-dwC_tSCA.mjs → flowchart-elk-definition-6af322e1-Dc9ac7eJ.mjs} +4 -4
  16. package/dist/{ganttDiagram-a2739b55-_A-dB1hR.mjs → ganttDiagram-a2739b55-9EwUnbQw.mjs} +2 -2
  17. package/dist/{gitGraphDiagram-82fe8481-CKx-e37z.mjs → gitGraphDiagram-82fe8481-B22OVcM6.mjs} +1 -1
  18. package/dist/{graph-B9GBc3rj.mjs → graph-BX4CQ7a6.mjs} +1 -1
  19. package/dist/{index-5325376f-BL-CvGIA.mjs → index-5325376f-DOFI0AFK.mjs} +6 -6
  20. package/dist/{index-B4uS92Er.mjs → index-Brh5I_kO.mjs} +9046 -8229
  21. package/dist/index.mjs +7 -6
  22. package/dist/index.umd.js +1075 -263
  23. package/dist/{infoDiagram-8eee0895-BABOdtUo.mjs → infoDiagram-8eee0895-CMKG0jbC.mjs} +1 -1
  24. package/dist/{journeyDiagram-c64418c1-BYRsVkKo.mjs → journeyDiagram-c64418c1-CQKwMdBY.mjs} +3 -3
  25. package/dist/{layout-BUJf-1Jb.mjs → layout-CkUncrIs.mjs} +2 -2
  26. package/dist/{line-uLxZxf3W.mjs → line-CEZ0ubsb.mjs} +1 -1
  27. package/dist/{linear-CBVXYCUV.mjs → linear-o71vhqnz.mjs} +1 -1
  28. package/dist/markdown.d.ts +1 -0
  29. package/dist/markdownTestContent.d.ts +1 -0
  30. package/dist/{mindmap-definition-8da855dc-DWSxtoVH.mjs → mindmap-definition-8da855dc-B4o1M-OZ.mjs} +2 -2
  31. package/dist/{pieDiagram-a8764435-BcWeSl2Y.mjs → pieDiagram-a8764435-U_S49vNS.mjs} +2 -2
  32. package/dist/{quadrantDiagram-1e28029f-C1HyCJ5I.mjs → quadrantDiagram-1e28029f-BGhIh-ln.mjs} +2 -2
  33. package/dist/{requirementDiagram-08caed73-DV1Fzm7r.mjs → requirementDiagram-08caed73-DrVHFmsv.mjs} +4 -4
  34. package/dist/{sankeyDiagram-a04cb91d-P4WlwOft.mjs → sankeyDiagram-a04cb91d-qlmUrrFF.mjs} +1 -1
  35. package/dist/{sequenceDiagram-c5b8d532-DHsCSj90.mjs → sequenceDiagram-c5b8d532-Cw4B_5SK.mjs} +2 -2
  36. package/dist/{stateDiagram-1ecb1508-Bwrw-MHB.mjs → stateDiagram-1ecb1508-BjokwihF.mjs} +5 -5
  37. package/dist/{stateDiagram-v2-c2b004d7-CtAFN7FK.mjs → stateDiagram-v2-c2b004d7-3tMxgf-m.mjs} +5 -5
  38. package/dist/{styles-b4e223ce-D5j_RO45.mjs → styles-b4e223ce-CV7BwNuA.mjs} +1 -1
  39. package/dist/{styles-ca3715f6-BxOa4jQC.mjs → styles-ca3715f6-D4yfmGTJ.mjs} +1 -1
  40. package/dist/{styles-d45a18b0-Cx7oeddZ.mjs → styles-d45a18b0-3op7wW0_.mjs} +4 -4
  41. package/dist/{svgDrawCommon-b86b1483-C79Aamah.mjs → svgDrawCommon-b86b1483-D_24b2u6.mjs} +1 -1
  42. package/dist/{timeline-definition-faaaa080-BavFg_pt.mjs → timeline-definition-faaaa080-C0chzj1o.mjs} +2 -2
  43. package/dist/{xychartDiagram-f5964ef8-Ddgl02xp.mjs → xychartDiagram-f5964ef8-TUh_IZR-.mjs} +4 -4
  44. package/package.json +1 -1
package/README.md CHANGED
@@ -1,148 +1,277 @@
1
- # @zjlab-frontier/markdown
1
+ # `@zjlab-frontier/markdown` 使用说明文档
2
2
 
3
- 一个功能强大的 React Markdown 组件,支持 Mermaid 图表、KaTeX 数学公式、代码高亮等高级特性。
3
+ > **包名**:`@zjlab-frontier/markdown`
4
+ > **适用框架**:React(支持 React 16.8+、17.x、18.x)
5
+ > **功能亮点**:支持 **Mermaid 图表**、**LaTeX 数学公式(KaTeX)**、**代码高亮**、**GitHub 风格 Markdown(GFM)**、**自动换行**、**代码复制**、**长代码折叠**、**媒体自动识别** 等。
4
6
 
5
- ## 安装
7
+ ---
8
+
9
+ ## 📦 安装
6
10
 
7
11
  ```bash
8
12
  npm install @zjlab-frontier/markdown
9
- # 或
10
- yarn add @zjlab-frontier/markdown
11
13
  ```
12
14
 
13
- ## 使用方法
15
+ > ⚠️ 注意:本组件为 **React 组件**,需确保项目中已安装 React(版本 ≥16.8)。
16
+
17
+ ---
18
+
19
+ ## 🚀 快速开始
14
20
 
15
- ```jsx
16
- import React from 'react';
17
- import { ZJMarkdown } from '@zjlab-frontier/markdown';
21
+ ### 1. 引入组件与样式
22
+
23
+ ```tsx
24
+ import ZJMarkdown from '@zjlab-frontier/markdown';
25
+ ```
18
26
 
27
+ ### 2. 基本使用
28
+
29
+ ```tsx
19
30
  function App() {
20
31
  const markdownContent = `
21
- # Hello World
32
+ # 欢迎使用 ZJLab Markdown
33
+
34
+ 这是一个支持 **Mermaid**、**LaTeX** 和 **代码高亮** 的 React Markdown 组件。
22
35
 
23
- ## 这是一个示例文档
36
+ - ✅ 表格
37
+ - ✅ 任务列表
38
+ - ✅ 数学公式:$E = mc^2$
39
+ - ✅ 代码块(带复制按钮)
40
+ - ✅ 自动识别音视频链接
41
+ `;
24
42
 
25
- ### 代码高亮
26
- \`\`\`javascript
27
- function hello() {
28
- console.log('Hello World!');
43
+ return <ZJMarkdown content={markdownContent} />;
29
44
  }
30
- \`\`\`
45
+ ```
46
+
47
+ ---
48
+
49
+ ## 🧩 功能详解
50
+
51
+ ### 1. **GitHub 风格 Markdown(GFM)支持**
52
+
53
+ 通过 `remark-gfm` 插件,完整支持:
54
+
55
+ - 表格
56
+ - 删除线 `~~text~~`
57
+ - 任务列表 `- [x] done`
58
+ - 自动链接(如 `https://example.com`)
59
+
60
+ ✅ 示例:
61
+
62
+ ```md
63
+ | 语法 | 描述 |
64
+ |------|------|
65
+ | `**bold**` | 加粗 |
66
+
67
+ - [x] 支持 GFM
68
+ - [ ] 其他功能
69
+ ```
31
70
 
32
- ### Mermaid 图表
33
- \`\`\`mermaid
34
- graph TD;
35
- A-->B;
36
- B-->C;
37
- C-->D;
38
- \`\`\`
71
+ ---
39
72
 
40
- ### 数学公式
41
- 行内公式: $E = mc^2$
73
+ ### 2. **LaTeX 数学公式(KaTeX)**
42
74
 
43
- 块级公式:
75
+ 支持两种语法:
76
+
77
+ - 行内公式:`$...$` 或 `\(...\)`
78
+ - 块级公式:`$$...$$` 或 `\[...\]`
79
+
80
+ > ⚠️ 注意:组件内部会自动将 `\(...\)` 和 `\[...\]` 转换为 `$...$` 和 `$$...$$`,确保 KaTeX 正确渲染。
81
+
82
+ ✅ 示例:
83
+
84
+ ```md
85
+ 爱因斯坦质能方程:$E = mc^2$
86
+
87
+ 高斯积分:
44
88
  $$
45
89
  \int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}
46
90
  $$
47
- `;
91
+ ```
48
92
 
49
- return (
50
- <div className="app">
51
- <ZJMarkdown
52
- content={markdownContent}
53
- fontSize={16}
54
- fontFamily="Arial, sans-serif"
55
- />
56
- </div>
57
- );
58
- }
93
+ > 📌 **样式说明**:已自动引入 `katex/dist/katex.min.css`,无需手动引入。
94
+
95
+ ---
59
96
 
60
- export default App;
97
+ ### 3. **Mermaid 图表渲染**
98
+
99
+ 在代码块中标注语言为 `mermaid` 即可自动渲染图表:
100
+
101
+ ✅ 示例:
102
+
103
+ ````
104
+ ```mermaid
105
+ graph TD
106
+ A[Start] --> B{Is it?}
107
+ B -->|Yes| C[OK]
108
+ B -->|No| D[Cancel]
61
109
  ```
110
+ ````
62
111
 
63
- ## 功能特性
112
+ > 🔒 **安全机制**:
113
+ > - 若 Mermaid 渲染失败(如语法错误),组件将 **静默失败**(不显示原始代码,避免泄露敏感内容)。
114
+ > - 图表容器带有 `no-dark` 类,防止深色主题干扰 Mermaid 默认配色。
64
115
 
65
- - 支持标准 Markdown 语法
66
- - ✅ 支持 GFM (GitHub Flavored Markdown)
67
- - ✅ 代码高亮显示
68
- - ✅ Mermaid 图表渲染
69
- - ✅ KaTeX 数学公式支持
70
- - ✅ 音频/视频嵌入
71
- - ✅ 代码折叠功能
72
- - ✅ 自动复制代码按钮
73
- - ✅ 响应式设计
116
+ > 🖱️ **交互**:点击图表可触发 `viewSvgInNewWindow()`(当前为预留功能,实际未启用弹窗,但保留点击事件扩展点)。
74
117
 
75
- ## ZJMarkdown 组件属性
118
+ ---
76
119
 
77
- | 属性 | 类型 | 默认值 | 说明 |
78
- |------|------|--------|------|
79
- | content | string | 必需 | Markdown 内容 |
80
- | fontSize | number | 16 | 字体大小 |
81
- | fontFamily | string | inherit | 字体家族 |
82
- | color | string | inherit | 文字颜色 |
83
- | isUser | boolean | false | 是否为用户内容 |
84
- | loading | boolean | false | 加载状态 |
85
- | parentRef | React.RefObject<HTMLDivElement> | undefined | 父元素引用 |
86
- | defaultShow | boolean | true | 默认显示状态 |
87
- | onContextMenu | (e: React.MouseEvent) => void | undefined | 右键菜单事件 |
88
- | onDoubleClickCapture | (e: React.MouseEvent) => void | undefined | 双击事件捕获 |
120
+ ### 4. **代码高亮与增强功能**
89
121
 
90
- ## 支持的语法
122
+ #### ✅ 支持特性:
91
123
 
92
- ### 代码块
124
+ - 自动识别语言(基于 `language-xxx` class)
125
+ - 显示语言标签(如 “javascript”)
126
+ - 一键复制代码(右上角复制按钮)
127
+ - 长代码块自动折叠(>400px 高度)
128
+ - 纯文本类代码自动换行(如 `text`, `md`, `latex` 等)
93
129
 
94
- 使用三反引号包裹代码,并指定语言以启用语法高亮:
130
+ #### ✅ 支持自动换行的语言:
95
131
 
96
- \`\`\`javascript
97
- // JavaScript 代码
98
- const greeting = 'Hello World';
99
- console.log(greeting);
100
- \`\`\`
132
+ ```txt
133
+ "", "md", "markdown", "text", "txt", "plaintext", "tex", "latex"
134
+ ```
101
135
 
102
- ### Mermaid 图表
136
+ #### 复制按钮样式:
103
137
 
104
- 使用语言标记 `mermaid` 来渲染 Mermaid 图表:
138
+ - 使用 `.copy-code-button` 类,可通过 CSS 自定义图标。
105
139
 
106
- \`\`\`mermaid
107
- graph LR;
108
- A[开始] --> B[处理];
109
- B --> C[结束];
110
- \`\`\`
140
+ ---
111
141
 
112
- ### 数学公式
142
+ ### 5. **媒体自动识别**
113
143
 
114
- 使用 `$` 包裹行内公式,使用 `$$` 包裹块级公式:
144
+ 组件会自动将特定后缀的链接转换为 `<audio>` `<video>` 元素:
115
145
 
116
- 行内公式: $x^2 + y^2 = z^2$
146
+ #### 音频格式(自动转为 `<audio controls>`):
147
+ - `.aac`, `.mp3`, `.opus`, `.wav`
117
148
 
118
- 块级公式:
119
- $$
120
- \frac{n!}{k!(n-k)!} = \binom{n}{k}
121
- $$
149
+ #### 视频格式(自动转为 `<video controls>`):
150
+ - `.3gp`, `.3g2`, `.webm`, `.ogv`, `.mpeg`, `.mp4`, `.avi`
122
151
 
123
- ### 多媒体
152
+ 示例:
124
153
 
125
- 自动识别并嵌入音频和视频文件:
154
+ ```md
155
+ 听一段音乐:https://example.com/song.mp3
126
156
 
127
- ```markdown
128
- [音频文件](path/to/audio.mp3)
129
- [视频文件](path/to/video.mp4)
157
+ 看一个视频:https://example.com/demo.mp4
130
158
  ```
131
159
 
132
- ## 样式自定义
160
+ ---
161
+
162
+ ### 6. **HTML 安全过滤(防 XSS)**
133
163
 
134
- 您可以通过导入并覆盖默认样式来自定义组件外观:
164
+ 组件对输入内容进行 **双重安全处理**:
135
165
 
136
- ```jsx
137
- import 'zjlab-frontier-markdown/dist/styles/markdown.scss';
138
- import 'zjlab-frontier-markdown/dist/styles/highlight.scss';
139
- import './your-custom-styles.scss';
166
+ 1. **转义危险字符**:`<`, `>`, `/`, `=` → 对应 HTML 实体
167
+ 2. **智能跳过**:
168
+ - 所有代码块(行内 `` `...` `` 和块级 ```...```)
169
+ - LaTeX 公式(`$...$`, `$$...$$`)
170
+
171
+ > ✅ 保证公式和代码内容不被破坏,同时防止 XSS 攻击。
172
+
173
+ ---
174
+
175
+ ### 7. **文本方向与段落**
176
+
177
+ - 所有 `<p>` 标签自动添加 `dir="auto"`,支持多语言自动排版。
178
+ - 所有换行符(单个 `\n`)自动转为 `<br>`(通过 `remark-breaks`)。
179
+
180
+ ---
181
+
182
+ ## 🎨 自定义样式
183
+
184
+ ### 1. **全局样式类**
185
+
186
+ 组件根元素自动应用:
187
+
188
+ ```html
189
+ <div class="markdown-body">...</div>
140
190
  ```
141
191
 
142
- ## 贡献
192
+ > `.markdown-body` 采用 **GitHub 风格样式**(基于 `github-markdown-css` 理念定制)。
193
+
194
+ ### 2. **自定义字体与字号**
195
+
196
+ 通过 props 控制:
197
+
198
+ ```tsx
199
+ <ZJMarkdown
200
+ content={content}
201
+ fontSize={18} // 默认 16
202
+ fontFamily="'Inter', sans-serif"
203
+ />
204
+ ```
205
+
206
+ ### 3. **覆盖内置样式**
207
+
208
+ 可通过 CSS 覆盖以下关键类:
209
+
210
+ | 类名 | 用途 |
211
+ |------|------|
212
+ | `.markdown-body` | 整体容器 |
213
+ | `.mermaid` | Mermaid 图表容器 |
214
+ | `.copy-code-button` | 代码复制按钮 |
215
+ | `.show-hide-button` | 代码折叠按钮 |
216
+ | `.no-dark` | 防止深色主题干扰 Mermaid |
217
+
218
+ ---
219
+
220
+ ## 🛠️ API 说明
221
+
222
+ ### `ZJMarkdown` Props
223
+
224
+ | 属性 | 类型 | 默认值 | 说明 |
225
+ |------|------|--------|------|
226
+ | `content` | `string` | **必需** | Markdown 源字符串 |
227
+ | `fontSize` | `number` | `16` | 字体大小(单位:px) |
228
+ | `fontFamily` | `string` | `"inherit"` | 字体族 |
229
+ | `onContextMenu` | `React.MouseEventHandler` | - | 右键菜单事件 |
230
+ | `onDoubleClickCapture` | `React.MouseEventHandler` | - | 双击捕获事件 |
231
+ | 其他 `div` 原生属性 | - | - | 如 `className`, `style` 等(透传至根 `div`) |
232
+
233
+ > ⚠️ 注意:`content` 中的 HTML 标签会被 **安全过滤**,仅保留必要结构。
234
+
235
+ ---
236
+
237
+ ## 🧪 注意事项与限制
238
+
239
+ 1. **Mermaid 渲染异步性**:
240
+ - 首次渲染可能因 debounce 延迟(600ms)导致短暂显示原始代码。
241
+ - 组件已做兼容处理,尽量减少此现象。
242
+
243
+ 2. **KaTeX 公式转义**:
244
+ - 不要混用 `\(...\)` 和 `$...$`,建议统一使用 `$...$`。
245
+ - 公式内避免使用 `<`, `>` 等符号,或使用 `\lt`, `\gt` 替代。
246
+
247
+ 3. **代码折叠逻辑**:
248
+ - 仅当代码块高度 > 400px 时显示“查看全部”按钮。
249
+ - 折叠状态下,代码块最大高度为 400px,`overflow-y: hidden`。
250
+
251
+ 4. **性能优化**:
252
+ - 内部使用 `React.memo`,仅当 `content` 变化时重渲染。
253
+ - 建议对大型文档做分页或懒加载。
254
+
255
+ ---
256
+
257
+ ## 📜 许可证
258
+
259
+ MIT License
260
+
261
+ ---
262
+
263
+ ## 🙏 致谢
264
+
265
+ 本组件基于以下优秀开源库构建:
143
266
 
144
- 欢迎提交 Issues 和 Pull Requests!
267
+ - [`react-markdown`](https://github.com/remarkjs/react-markdown)
268
+ - [`rehype-highlight`](https://github.com/rehypejs/rehype-highlight)
269
+ - [`rehype-katex`](https://github.com/remarkjs/remark-math)
270
+ - [`mermaid`](https://mermaid.js.org/)
271
+ - [`katex`](https://katex.org/)
272
+ - [`clsx`](https://github.com/lukeed/clsx)
273
+ - [`use-debounce`](https://github.com/xnimorz/use-debounce)
145
274
 
146
- ## 许可证
275
+ ---
147
276
 
148
- MIT
277
+ > ✅ 本说明文档完整覆盖 `@zjlab-frontier/markdown@1.0.6` 所有功能,无省略,可直接用于团队协作或用户文档。
@@ -1,5 +1,5 @@
1
1
  import { w as ln, c as I } from "./path-DLwuMfdd.mjs";
2
- import { av as an, aw as j, ax as D, ay as rn, az as y, U as on, aA as K, aB as _, aC as un, aD as t, aE as sn, aF as tn, aG as fn } from "./index-B4uS92Er.mjs";
2
+ import { av as an, aw as j, ax as D, ay as rn, az as y, U as on, aA as K, aB as _, aC as un, aD as t, aE as sn, aF as tn, aG as fn } from "./index-Brh5I_kO.mjs";
3
3
  function cn(l) {
4
4
  return l.innerRadius;
5
5
  }
@@ -1,8 +1,8 @@
1
- import { Z as se, A as ye, d as H, e as Ee, l as S, E as we, k as De, g as he, p as ve } from "./index-B4uS92Er.mjs";
2
- import { c as Ne } from "./clone-DQz5S2Gf.mjs";
3
- import { i as ke, c as Ie, b as Oe, d as Te, a as ge, p as ze } from "./edges-96097737-DX03sOnb.mjs";
4
- import { G as Ce } from "./graph-B9GBc3rj.mjs";
5
- import { c as Ae } from "./channel-CfTtXS54.mjs";
1
+ import { Z as se, A as ye, d as H, e as Ee, l as S, E as we, k as De, g as he, p as ve } from "./index-Brh5I_kO.mjs";
2
+ import { c as Ne } from "./clone-DTBtIqJg.mjs";
3
+ import { i as ke, c as Ie, b as Oe, d as Te, a as ge, p as ze } from "./edges-96097737-CkGJprh5.mjs";
4
+ import { G as Ce } from "./graph-BX4CQ7a6.mjs";
5
+ import { c as Ae } from "./channel-BmV1r3s7.mjs";
6
6
  import { o as Re } from "./ordinal-C0oynhte.mjs";
7
7
  import { s as Be } from "./Tableau10-D7jGxypv.mjs";
8
8
  var le, oe, ee = (function() {
@@ -1,5 +1,5 @@
1
- import { g as Dt, s as we, a as Oe, b as Te, c as Re, d as Nt, l as le, e as De, f as Se, h as wt, i as ue, j as Pe, w as Me, k as Kt, m as oe } from "./index-B4uS92Er.mjs";
2
- import { d as Le, g as Ne } from "./svgDrawCommon-b86b1483-C79Aamah.mjs";
1
+ import { g as Dt, s as we, a as Oe, b as Te, c as Re, d as Nt, l as le, e as De, f as Se, h as wt, i as ue, j as Pe, w as Me, k as Kt, m as oe } from "./index-Brh5I_kO.mjs";
2
+ import { d as Le, g as Ne } from "./svgDrawCommon-b86b1483-D_24b2u6.mjs";
3
3
  var Yt = (function() {
4
4
  var e = function(bt, _, x, m) {
5
5
  for (x = x || {}, m = bt.length; m--; x[bt[m]] = _)
@@ -1,4 +1,4 @@
1
- import { aH as o, aI as n } from "./index-B4uS92Er.mjs";
1
+ import { aH as o, aI as n } from "./index-Brh5I_kO.mjs";
2
2
  const t = (a, r) => o.lang.round(n.parse(a)[r]);
3
3
  export {
4
4
  t as c
@@ -1,8 +1,8 @@
1
- import { s as G, d as S, p as A } from "./styles-b4e223ce-D5j_RO45.mjs";
2
- import { g as v, l as y, d as B, e as W, F as $, B as M, G as I } from "./index-B4uS92Er.mjs";
3
- import { G as O } from "./graph-B9GBc3rj.mjs";
4
- import { l as P } from "./layout-BUJf-1Jb.mjs";
5
- import { l as X } from "./line-uLxZxf3W.mjs";
1
+ import { s as G, d as S, p as A } from "./styles-b4e223ce-CV7BwNuA.mjs";
2
+ import { g as v, l as y, d as B, e as W, F as $, B as M, G as I } from "./index-Brh5I_kO.mjs";
3
+ import { G as O } from "./graph-BX4CQ7a6.mjs";
4
+ import { l as P } from "./layout-CkUncrIs.mjs";
5
+ import { l as X } from "./line-CEZ0ubsb.mjs";
6
6
  let H = 0;
7
7
  const Y = function(i, a, t, o, p) {
8
8
  const g = function(e) {
@@ -1,8 +1,8 @@
1
- import { s as M, d as _, p as B } from "./styles-b4e223ce-D5j_RO45.mjs";
2
- import { l as d, g as c, d as w, B as R, o as G, k as D, p as E, q as C, n as A } from "./index-B4uS92Er.mjs";
3
- import { G as q } from "./graph-B9GBc3rj.mjs";
4
- import { r as z } from "./index-5325376f-BL-CvGIA.mjs";
5
- import "./layout-BUJf-1Jb.mjs";
1
+ import { s as M, d as _, p as B } from "./styles-b4e223ce-CV7BwNuA.mjs";
2
+ import { l as d, g as c, d as w, B as R, o as G, k as D, p as E, q as C, n as A } from "./index-Brh5I_kO.mjs";
3
+ import { G as q } from "./graph-BX4CQ7a6.mjs";
4
+ import { r as z } from "./index-5325376f-DOFI0AFK.mjs";
5
+ import "./layout-CkUncrIs.mjs";
6
6
  const S = (s) => D.sanitizeText(s, c());
7
7
  let k = {
8
8
  dividerMargin: 10,
@@ -1,4 +1,4 @@
1
- import { c as r } from "./graph-B9GBc3rj.mjs";
1
+ import { c as r } from "./graph-BX4CQ7a6.mjs";
2
2
  var e = 4;
3
3
  function a(o) {
4
4
  return r(o, e);
@@ -1,4 +1,4 @@
1
- import { l as b, b6 as T, b7 as m, i as W, Z as E, b8 as w } from "./index-B4uS92Er.mjs";
1
+ import { l as b, b6 as T, b7 as m, i as W, Z as E, b8 as w } from "./index-Brh5I_kO.mjs";
2
2
  function S(n) {
3
3
  const t = n.replace(/\n{2,}/g, `
4
4
  `);
@@ -1,6 +1,6 @@
1
- import { l as g, F as lt, g as b, r as H, d as E, B as j, i as Q, b6 as V } from "./index-B4uS92Er.mjs";
2
- import { a as st } from "./createText-1719965b-THljj3Tg.mjs";
3
- import { l as ct } from "./line-uLxZxf3W.mjs";
1
+ import { l as g, F as lt, g as b, r as H, d as E, B as j, i as Q, b6 as V } from "./index-Brh5I_kO.mjs";
2
+ import { a as st } from "./createText-1719965b-DW-oYHSB.mjs";
3
+ import { l as ct } from "./line-CEZ0ubsb.mjs";
4
4
  const ht = (a, t, e, i) => {
5
5
  t.forEach((l) => {
6
6
  wt[l](a, e, i);
@@ -1,7 +1,7 @@
1
- import { C as Et, D as mt, a as gt, s as kt, b as xt, c as Rt, g as Z, l as V, d as rt, B as Ot, e as bt, E as Nt, F as Tt, G as At } from "./index-B4uS92Er.mjs";
2
- import { G as Mt } from "./graph-B9GBc3rj.mjs";
3
- import { l as St } from "./layout-BUJf-1Jb.mjs";
4
- import { l as wt } from "./line-uLxZxf3W.mjs";
1
+ import { C as Et, D as mt, a as gt, s as kt, b as xt, c as Rt, g as Z, l as V, d as rt, B as Ot, e as bt, E as Nt, F as Tt, G as At } from "./index-Brh5I_kO.mjs";
2
+ import { G as Mt } from "./graph-BX4CQ7a6.mjs";
3
+ import { l as St } from "./layout-CkUncrIs.mjs";
4
+ import { l as wt } from "./line-CEZ0ubsb.mjs";
5
5
  const It = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
6
6
  function Dt(t) {
7
7
  return typeof t == "string" && It.test(t);
@@ -1,4 +1,4 @@
1
- import { C as me, D as ye, s as ve, a as Ve, b as Le, c as Ie, aq as Re, k as Ne, l as J1, g as et, E as we, B as dt, d as w1 } from "./index-B4uS92Er.mjs";
1
+ import { C as me, D as ye, s as ve, a as Ve, b as Le, c as Ie, aq as Re, k as Ne, l as J1, g as et, E as we, B as dt, d as w1 } from "./index-Brh5I_kO.mjs";
2
2
  var pt = (function() {
3
3
  var e = function(f1, a, o, f) {
4
4
  for (o = o || {}, f = f1.length; f--; o[f1[f]] = a)
@@ -1,9 +1,9 @@
1
- import { f as $, p as kt } from "./flowDb-c6c81e3f-DnVrIVtg.mjs";
2
- import { d as m, n as G, l as M, g as D, o as St, p as z, q as W, r as Z, t as tt, k as et } from "./index-B4uS92Er.mjs";
3
- import { G as Lt } from "./graph-B9GBc3rj.mjs";
4
- import { u as Et, r as _t, p as Tt, l as Nt, d as I } from "./layout-BUJf-1Jb.mjs";
5
- import { a as T, b as rt, i as at, c as E, e as nt, d as st, f as At, g as Pt, s as Ct } from "./styles-d45a18b0-Cx7oeddZ.mjs";
6
- import { l as It } from "./line-uLxZxf3W.mjs";
1
+ import { f as $, p as kt } from "./flowDb-c6c81e3f-YcPeW35q.mjs";
2
+ import { d as m, n as G, l as M, g as D, o as St, p as z, q as W, r as Z, t as tt, k as et } from "./index-Brh5I_kO.mjs";
3
+ import { G as Lt } from "./graph-BX4CQ7a6.mjs";
4
+ import { u as Et, r as _t, p as Tt, l as Nt, d as I } from "./layout-CkUncrIs.mjs";
5
+ import { a as T, b as rt, i as at, c as E, e as nt, d as st, f as At, g as Pt, s as Ct } from "./styles-d45a18b0-3op7wW0_.mjs";
6
+ import { l as It } from "./line-CEZ0ubsb.mjs";
7
7
  function Bt(r) {
8
8
  if (!r.ok) throw new Error(r.status + " " + r.statusText);
9
9
  return r.text();
@@ -1,8 +1,8 @@
1
- import { f as o, p as a } from "./flowDb-c6c81e3f-DnVrIVtg.mjs";
2
- import { f as t, g as e } from "./styles-d45a18b0-Cx7oeddZ.mjs";
3
- import { u as s } from "./index-B4uS92Er.mjs";
4
- import "./graph-B9GBc3rj.mjs";
5
- import "./layout-BUJf-1Jb.mjs";
1
+ import { f as o, p as a } from "./flowDb-c6c81e3f-YcPeW35q.mjs";
2
+ import { f as t, g as e } from "./styles-d45a18b0-3op7wW0_.mjs";
3
+ import { u as s } from "./index-Brh5I_kO.mjs";
4
+ import "./graph-BX4CQ7a6.mjs";
5
+ import "./layout-CkUncrIs.mjs";
6
6
  const p = {
7
7
  parser: a,
8
8
  db: o,
@@ -1,7 +1,7 @@
1
- import { p as FNe, d as BNe } from "./flowDb-c6c81e3f-DnVrIVtg.mjs";
2
- import { ap as $se, P as RNe, d as IO, l as Ba, Z as xU, o as KNe, p as C0n, q as j0n, n as $U, k as _Ne } from "./index-B4uS92Er.mjs";
3
- import { i as HNe, a as qNe, l as UNe, b as GNe, k as zNe, m as XNe } from "./edges-96097737-DX03sOnb.mjs";
4
- import { l as VNe } from "./line-uLxZxf3W.mjs";
1
+ import { p as FNe, d as BNe } from "./flowDb-c6c81e3f-YcPeW35q.mjs";
2
+ import { ap as $se, P as RNe, d as IO, l as Ba, Z as xU, o as KNe, p as C0n, q as j0n, n as $U, k as _Ne } from "./index-Brh5I_kO.mjs";
3
+ import { i as HNe, a as qNe, l as UNe, b as GNe, k as zNe, m as XNe } from "./edges-96097737-CkGJprh5.mjs";
4
+ import { l as VNe } from "./line-CEZ0ubsb.mjs";
5
5
  function NU(ct) {
6
6
  throw new Error('Could not dynamically require "' + ct + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
7
7
  }
@@ -1,5 +1,5 @@
1
- import { R as Ge, J as Sn, K as je, L as Je, M as $e, N as ne, O as _n, P as Te, a as Yn, s as Un, C as Fn, D as En, b as Ln, c as An, g as Dt, d as Rt, e as Wn, Q as nt, l as Jt, k as In, j as On, E as Hn, B as Nn } from "./index-B4uS92Er.mjs";
2
- import { b as Pn, t as Fe, c as Vn, a as zn, l as Rn } from "./linear-CBVXYCUV.mjs";
1
+ import { R as Ge, J as Sn, K as je, L as Je, M as $e, N as ne, O as _n, P as Te, a as Yn, s as Un, C as Fn, D as En, b as Ln, c as An, g as Dt, d as Rt, e as Wn, Q as nt, l as Jt, k as In, j as On, E as Hn, B as Nn } from "./index-Brh5I_kO.mjs";
2
+ import { b as Pn, t as Fe, c as Vn, a as zn, l as Rn } from "./linear-o71vhqnz.mjs";
3
3
  import { i as Bn } from "./init-DjUOC4st.mjs";
4
4
  function Zn(t, e) {
5
5
  let n;
@@ -1,4 +1,4 @@
1
- import { C as vt, D as Ct, s as Ot, a as Pt, b as Gt, c as It, g as C, l as B, d as St, B as At, H as Nt, E as Ht, k as D, I as Bt } from "./index-B4uS92Er.mjs";
1
+ import { C as vt, D as Ct, s as Ot, a as Pt, b as Gt, c as It, g as C, l as B, d as St, B as At, H as Nt, E as Ht, k as D, I as Bt } from "./index-Brh5I_kO.mjs";
2
2
  var mt = (function() {
3
3
  var r = function(I, o, u, d) {
4
4
  for (u = u || {}, d = I.length; d--; u[I[d]] = o)
@@ -1,4 +1,4 @@
1
- import { aJ as $, aK as He, aL as T, af as y, aM as Ye, aN as Ze, ae as Ae, aO as qe, aP as Oe, aQ as D, ac as q, aR as Xe, aS as Te, aT as Je, aU as C, al as Ee, aV as x, a7 as me, aW as Qe, aX as Y, aY as We, aZ as ze, a_ as L, ak as Ve, a$ as ke, ad as en, b0 as ne, b1 as nn, b2 as rn, aj as tn, ai as we, ag as sn, b3 as j, aa as an, b4 as un, am as F, z as re, b5 as te } from "./index-B4uS92Er.mjs";
1
+ import { aJ as $, aK as He, aL as T, af as y, aM as Ye, aN as Ze, ae as Ae, aO as qe, aP as Oe, aQ as D, ac as q, aR as Xe, aS as Te, aT as Je, aU as C, al as Ee, aV as x, a7 as me, aW as Qe, aX as Y, aY as We, aZ as ze, a_ as L, ak as Ve, a$ as ke, ad as en, b0 as ne, b1 as nn, b2 as rn, aj as tn, ai as we, ag as sn, b3 as j, aa as an, b4 as un, am as F, z as re, b5 as te } from "./index-Brh5I_kO.mjs";
2
2
  var fn = "[object Symbol]";
3
3
  function X(e) {
4
4
  return typeof e == "symbol" || $(e) && He(e) == fn;
@@ -1,9 +1,9 @@
1
- import { i as N, G as A } from "./graph-B9GBc3rj.mjs";
2
- import { m as $, l as H } from "./layout-BUJf-1Jb.mjs";
3
- import { c as V } from "./clone-DQz5S2Gf.mjs";
4
- import { i as U, u as W, s as _, a as q, b as z, g as D, p as O, c as K, d as Q, e as p, f as J, h as Y, j as Z } from "./edges-96097737-DX03sOnb.mjs";
5
- import { l as s, g as T, r as S, d as L } from "./index-B4uS92Er.mjs";
6
- import { a as I } from "./createText-1719965b-THljj3Tg.mjs";
1
+ import { i as N, G as A } from "./graph-BX4CQ7a6.mjs";
2
+ import { m as $, l as H } from "./layout-CkUncrIs.mjs";
3
+ import { c as V } from "./clone-DTBtIqJg.mjs";
4
+ import { i as U, u as W, s as _, a as q, b as z, g as D, p as O, c as K, d as Q, e as p, f as J, h as Y, j as Z } from "./edges-96097737-CkGJprh5.mjs";
5
+ import { l as s, g as T, r as S, d as L } from "./index-Brh5I_kO.mjs";
6
+ import { a as I } from "./createText-1719965b-DW-oYHSB.mjs";
7
7
  function m(e) {
8
8
  var t = {
9
9
  options: {