orbitchat 2.14.0 → 3.0.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.
Files changed (179) hide show
  1. package/dist/assets/ChartRenderer-B1mYF_kk.js +80 -0
  2. package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  3. package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  4. package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  5. package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  6. package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  7. package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  8. package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  9. package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  10. package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  11. package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  12. package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  13. package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  14. package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  15. package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  16. package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  17. package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  18. package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  19. package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  20. package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  21. package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  22. package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  23. package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  24. package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  25. package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  26. package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  27. package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  28. package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  29. package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  30. package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  31. package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  32. package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  33. package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  34. package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  35. package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  36. package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  37. package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  38. package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  39. package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  40. package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  41. package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  42. package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  43. package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  44. package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  45. package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  46. package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  47. package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  48. package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  49. package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  50. package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  51. package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  52. package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  53. package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  54. package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  55. package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  56. package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  57. package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  58. package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  59. package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  60. package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  61. package/dist/assets/MermaidRenderer-Dhffx5mc.js +260 -0
  62. package/dist/assets/MusicRenderer-DbXJ8e4-.js +18 -0
  63. package/dist/assets/SVGRenderer-EhamRX_K.js +6 -0
  64. package/dist/assets/_basePickBy-C2AibBqo.js +1 -0
  65. package/dist/assets/_baseUniq-D52pUSvn.js +1 -0
  66. package/dist/assets/arc-BSnyvXPh.js +1 -0
  67. package/dist/assets/architectureDiagram-VXUJARFQ-BLMvVsZu.js +36 -0
  68. package/dist/assets/band-CquvqAHh.js +1 -0
  69. package/dist/assets/blockDiagram-VD42YOAC-CTz0dv5u.js +122 -0
  70. package/dist/assets/c4Diagram-YG6GDRKO-BjbN-GGh.js +10 -0
  71. package/dist/assets/channel-ryTtfXZE.js +1 -0
  72. package/dist/assets/chunk-4BX2VUAB-DEMWGIsU.js +1 -0
  73. package/dist/assets/chunk-55IACEB6-BYaauHLT.js +1 -0
  74. package/dist/assets/chunk-B4BG7PRW-D3_GFcfd.js +165 -0
  75. package/dist/assets/chunk-DI55MBZ5-Dy2EuzfA.js +220 -0
  76. package/dist/assets/{chunk-FMBD7UC4-dPK7Boav-Cz7OoDLR.js → chunk-FMBD7UC4-C9XHmwza.js} +2 -2
  77. package/dist/assets/chunk-QN33PNHL-BOCltIi9.js +1 -0
  78. package/dist/assets/chunk-QZHKN3VN-CvA964eQ.js +1 -0
  79. package/dist/assets/chunk-TZMSLE5B-B-3rZz90.js +1 -0
  80. package/dist/assets/classDiagram-2ON5EDUG-VbShFIzz.js +1 -0
  81. package/dist/assets/classDiagram-v2-WZHVMYZB-VbShFIzz.js +1 -0
  82. package/dist/assets/clone-BlhdKVDQ.js +1 -0
  83. package/dist/assets/cose-bilkent-S5V4N54A-CzPip3he.js +1 -0
  84. package/dist/assets/cytoscape.esm-CyJtwmzi.js +331 -0
  85. package/dist/assets/dagre-6UL2VRFP-CfCXYus3.js +4 -0
  86. package/dist/assets/defaultLocale-DX6XiGOO.js +1 -0
  87. package/dist/assets/diagram-PSM6KHXK-DyI2eDqp.js +24 -0
  88. package/dist/assets/diagram-QEK2KX5R-DuakIh40.js +43 -0
  89. package/dist/assets/diagram-S2PKOQOG-C3-4IORM.js +24 -0
  90. package/dist/assets/erDiagram-Q2GNP2WA-Dt-nZEaD.js +60 -0
  91. package/dist/assets/flowDiagram-NV44I4VS-B-2wjyTQ.js +162 -0
  92. package/dist/assets/ganttDiagram-JELNMOA3-CHTvjPq0.js +267 -0
  93. package/dist/assets/gitGraphDiagram-V2S2FVAM-d5GWmgY4.js +65 -0
  94. package/dist/assets/graph-COgkbiU8.js +1 -0
  95. package/dist/assets/index-DN2bBcCs.js +134 -0
  96. package/dist/assets/index-DtztdW2a.js +643 -0
  97. package/dist/assets/index-lGqyWNWb.css +1 -0
  98. package/dist/assets/infoDiagram-HS3SLOUP-30Hn0iLj.js +2 -0
  99. package/dist/assets/init-Dmth1JHB.js +1 -0
  100. package/dist/assets/journeyDiagram-XKPGCS4Q-CMOYXQ79.js +139 -0
  101. package/dist/assets/kanban-definition-3W4ZIXB7-dt3376cq.js +89 -0
  102. package/dist/assets/layout-DH97sy5g.js +1 -0
  103. package/dist/assets/linear-CKzVTQ0r.js +1 -0
  104. package/dist/assets/mindmap-definition-VGOIOE7T-BcZHPAlA.js +68 -0
  105. package/dist/assets/ordinal-DILIJJjt.js +1 -0
  106. package/dist/assets/pieDiagram-ADFJNKIX-DXjvgcgl.js +30 -0
  107. package/dist/assets/purify.es-A66Cw1IH.js +2 -0
  108. package/dist/assets/quadrantDiagram-AYHSOK5B-CICk2FdS.js +7 -0
  109. package/dist/assets/requirementDiagram-UZGBJVZJ-BdtxpQRA.js +64 -0
  110. package/dist/assets/sankeyDiagram-TZEHDZUN-BVNS9BQJ.js +10 -0
  111. package/dist/assets/sequenceDiagram-WL72ISMW-DF4fJTM7.js +145 -0
  112. package/dist/assets/stateDiagram-FKZM4ZOC-C8H8HujX.js +1 -0
  113. package/dist/assets/stateDiagram-v2-4FDKWEC3-DwtU033b.js +1 -0
  114. package/dist/assets/step-EjIQ8UIn.js +1 -0
  115. package/dist/assets/time-h5EapSZu.js +1 -0
  116. package/dist/assets/timeline-definition-IT6M3QCI-DUSG5Vfy.js +61 -0
  117. package/dist/assets/treemap-GDKQZRPO-1PI2PY4S.js +160 -0
  118. package/dist/assets/xychartDiagram-PRI3JC2R-CFPJj8WK.js +7 -0
  119. package/dist/favicon.svg +3 -1
  120. package/dist/index.html +2 -2
  121. package/markdown-renderer/LICENSE +201 -0
  122. package/markdown-renderer/src/CodeBlock.tsx +332 -0
  123. package/markdown-renderer/src/MarkdownComponents.tsx +233 -0
  124. package/markdown-renderer/src/MarkdownStyles.css +668 -0
  125. package/markdown-renderer/src/css.d.ts +4 -0
  126. package/markdown-renderer/src/index.ts +32 -0
  127. package/markdown-renderer/src/preprocessing.ts +519 -0
  128. package/markdown-renderer/src/renderers/ChartRenderer.tsx +1434 -0
  129. package/markdown-renderer/src/renderers/MermaidRenderer.tsx +474 -0
  130. package/markdown-renderer/src/renderers/MusicRenderer.tsx +394 -0
  131. package/markdown-renderer/src/renderers/SVGRenderer.tsx +307 -0
  132. package/markdown-renderer/src/types.ts +174 -0
  133. package/package.json +25 -3
  134. package/dist/assets/_baseUniq-BRKsqoH--68FUaYxk.js +0 -1
  135. package/dist/assets/arc-pab_su9s-BuY-VRZt.js +0 -1
  136. package/dist/assets/architectureDiagram-VXUJARFQ-DqQ8r_6g-C5b5VsO8.js +0 -36
  137. package/dist/assets/blockDiagram-VD42YOAC-B-dKfcH3-DVjqMJ-3.js +0 -122
  138. package/dist/assets/c4Diagram-YG6GDRKO-DMUPaBEl-o6ghjFV9.js +0 -10
  139. package/dist/assets/channel-HKsfPa5q-rOME8XF8.js +0 -1
  140. package/dist/assets/chunk-4BX2VUAB-CX67kh_B-Dl0Loq_e.js +0 -1
  141. package/dist/assets/chunk-55IACEB6-BocSyyvr-DYW83vZR.js +0 -1
  142. package/dist/assets/chunk-B4BG7PRW-CO8QAyfE-CsF1OX4R.js +0 -165
  143. package/dist/assets/chunk-DI55MBZ5-Dw1L6Eos-Dl1shJzL.js +0 -220
  144. package/dist/assets/chunk-QN33PNHL-vP2PqfVG-BuQNN8G2.js +0 -1
  145. package/dist/assets/chunk-QZHKN3VN-Bcidzu63-Bud1NKOb.js +0 -1
  146. package/dist/assets/chunk-TZMSLE5B-BtljMjlg-BKLxPJ-x.js +0 -1
  147. package/dist/assets/classDiagram-2ON5EDUG-C7cYN9hv-BHg-LSxQ.js +0 -1
  148. package/dist/assets/classDiagram-v2-WZHVMYZB-C7cYN9hv-BHg-LSxQ.js +0 -1
  149. package/dist/assets/clone-DoPb9X13-DejjKfXe.js +0 -1
  150. package/dist/assets/cose-bilkent-S5V4N54A-BGzO4EsH-rofdToAx.js +0 -1
  151. package/dist/assets/cytoscape.esm-CjI2IsL8-Da6dFVsf.js +0 -331
  152. package/dist/assets/dagre-6UL2VRFP-TzNvXCds-Ls1mVyc7.js +0 -4
  153. package/dist/assets/diagram-PSM6KHXK-BqY4RpUg-BJmYXUei.js +0 -24
  154. package/dist/assets/diagram-QEK2KX5R-CTjgBsne-dz-VLadE.js +0 -43
  155. package/dist/assets/diagram-S2PKOQOG-BqrhTIpA-ikxUE9Dj.js +0 -24
  156. package/dist/assets/erDiagram-Q2GNP2WA-B2hsi_Tl-B5gu6Jrx.js +0 -60
  157. package/dist/assets/flowDiagram-NV44I4VS-C03vtt_F-C9LVdVvn.js +0 -162
  158. package/dist/assets/ganttDiagram-JELNMOA3-B3hAg964-CYO6ZcQ8.js +0 -267
  159. package/dist/assets/gitGraphDiagram-NY62KEGX-ByhMH0yZ-BvO0WGzP.js +0 -65
  160. package/dist/assets/graph-BmNkcFEM-Bl2fiTgr.js +0 -1
  161. package/dist/assets/index-BXexqYFc-CFPIFV8r.js +0 -134
  162. package/dist/assets/index-KsGsuMGp.css +0 -1
  163. package/dist/assets/index-nqhgVFEP.js +0 -1010
  164. package/dist/assets/infoDiagram-WHAUD3N6-is6Ho4-T-D6tHdi3J.js +0 -2
  165. package/dist/assets/journeyDiagram-XKPGCS4Q-CRTOL26C-CL4DFaQP.js +0 -139
  166. package/dist/assets/kanban-definition-3W4ZIXB7-CNnO_t6O-DZBlsSao.js +0 -89
  167. package/dist/assets/layout-C0kZPebx-DiUdszUx.js +0 -1
  168. package/dist/assets/min-7Gb0pNxh-DsojA8pm.js +0 -1
  169. package/dist/assets/mindmap-definition-VGOIOE7T-CJZ2wTTa-Cd46k2jT.js +0 -68
  170. package/dist/assets/pieDiagram-ADFJNKIX-C9OSknjr-BGVcHmss.js +0 -30
  171. package/dist/assets/quadrantDiagram-AYHSOK5B-CW8yuAqv-CrCYjmJT.js +0 -7
  172. package/dist/assets/requirementDiagram-UZGBJVZJ-nGPhruO1-BzOGHXGi.js +0 -64
  173. package/dist/assets/sankeyDiagram-TZEHDZUN-CmL90u-m-BWp9STLO.js +0 -10
  174. package/dist/assets/sequenceDiagram-WL72ISMW-B02VRcnM-DB4Adljk.js +0 -145
  175. package/dist/assets/stateDiagram-FKZM4ZOC-DjoyLUdz-pDyQ50aU.js +0 -1
  176. package/dist/assets/stateDiagram-v2-4FDKWEC3-Bq76BTB7-C3j4gDpN.js +0 -1
  177. package/dist/assets/timeline-definition-IT6M3QCI-CTn0Gm3T-O1FhSixZ.js +0 -61
  178. package/dist/assets/treemap-KMMF4GRG-BjgLKKyi-DG8IQefJ.js +0 -128
  179. package/dist/assets/xychartDiagram-PRI3JC2R-Cgg6Uija-CPVch5-l.js +0 -7
@@ -0,0 +1,174 @@
1
+ import type { ReactNode } from 'react';
2
+
3
+ /**
4
+ * Props for Mermaid diagram renderer
5
+ */
6
+ export interface MermaidRendererProps {
7
+ code: string;
8
+ }
9
+
10
+ /**
11
+ * Props for SVG renderer
12
+ */
13
+ export interface SVGRendererProps {
14
+ code: string;
15
+ }
16
+
17
+ /**
18
+ * Props for chart renderer
19
+ */
20
+ export interface ChartRendererProps {
21
+ code: string;
22
+ language: string;
23
+ }
24
+
25
+ /**
26
+ * Props for music notation renderer
27
+ */
28
+ export interface MusicRendererProps {
29
+ code: string;
30
+ }
31
+
32
+ export type ChartValueFormat = 'number' | 'compact' | 'currency' | 'percent';
33
+
34
+ export interface ChartFormatterConfig {
35
+ format?: ChartValueFormat;
36
+ currency?: string;
37
+ decimals?: number;
38
+ minimumFractionDigits?: number;
39
+ maximumFractionDigits?: number;
40
+ prefix?: string;
41
+ suffix?: string;
42
+ }
43
+
44
+ export interface ChartSeriesConfig {
45
+ key: string;
46
+ name?: string;
47
+ type?: 'bar' | 'line' | 'area' | 'scatter';
48
+ color?: string;
49
+ yAxisId?: 'left' | 'right';
50
+ stackId?: string;
51
+ strokeWidth?: number;
52
+ dot?: boolean;
53
+ opacity?: number;
54
+ }
55
+
56
+ export interface ChartReferenceLineConfig {
57
+ x?: string | number;
58
+ y?: string | number;
59
+ label?: string;
60
+ color?: string;
61
+ strokeDasharray?: string;
62
+ position?: 'start' | 'middle' | 'end';
63
+ }
64
+
65
+ /**
66
+ * Chart configuration interface
67
+ */
68
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
69
+ export type ChartDataItem = Record<string, any>;
70
+
71
+ export interface ChartConfig {
72
+ type: 'bar' | 'line' | 'pie' | 'area' | 'scatter' | 'composed';
73
+ title?: string;
74
+ description?: string;
75
+ data: ChartDataItem[];
76
+ dataKeys?: string[];
77
+ xKey?: string;
78
+ xAxisType?: 'category' | 'number';
79
+ colors?: string[];
80
+ width?: number;
81
+ height?: number;
82
+ stacked?: boolean;
83
+ showLegend?: boolean;
84
+ showGrid?: boolean;
85
+ xAxisLabel?: string;
86
+ yAxisLabel?: string;
87
+ yAxisRightLabel?: string;
88
+ formatter?: ChartFormatterConfig;
89
+ series?: ChartSeriesConfig[];
90
+ referenceLines?: ChartReferenceLineConfig[];
91
+ }
92
+
93
+ /**
94
+ * Props for the main MarkdownRenderer component
95
+ */
96
+ export interface MarkdownRendererProps {
97
+ content: string;
98
+ className?: string;
99
+ /**
100
+ * Optional flag to disable math rendering entirely if needed
101
+ */
102
+ disableMath?: boolean;
103
+ /**
104
+ * Enable graph rendering (default: true)
105
+ */
106
+ enableGraphs?: boolean;
107
+ /**
108
+ * Enable Mermaid diagram rendering (default: true)
109
+ */
110
+ enableMermaid?: boolean;
111
+ /**
112
+ * Enable SVG rendering (default: true)
113
+ */
114
+ enableSVG?: boolean;
115
+ /**
116
+ * Enable syntax highlighting for code blocks (default: true)
117
+ */
118
+ enableSyntaxHighlighting?: boolean;
119
+ /**
120
+ * Syntax highlighting theme: 'dark' or 'light' (default: 'dark')
121
+ */
122
+ syntaxTheme?: 'dark' | 'light';
123
+ /**
124
+ * Enable chart rendering (default: true)
125
+ */
126
+ enableCharts?: boolean;
127
+ /**
128
+ * Enable music notation rendering (default: true)
129
+ */
130
+ enableMusic?: boolean;
131
+ }
132
+
133
+ /**
134
+ * Props for CodeBlock component
135
+ */
136
+ export interface CodeBlockProps {
137
+ inline?: boolean;
138
+ className?: string;
139
+ children?: ReactNode;
140
+ 'data-block-code'?: string;
141
+ enableGraphs?: boolean;
142
+ enableMermaid?: boolean;
143
+ enableSVG?: boolean;
144
+ enableCharts?: boolean;
145
+ enableMusic?: boolean;
146
+ enableSyntaxHighlighting?: boolean;
147
+ syntaxTheme?: 'dark' | 'light';
148
+ }
149
+
150
+ /**
151
+ * Set of block-level HTML tags that should not be wrapped in paragraph tags
152
+ */
153
+ export const BLOCK_LEVEL_TAGS = new Set([
154
+ 'div',
155
+ 'pre',
156
+ 'blockquote',
157
+ 'ul',
158
+ 'ol',
159
+ 'table',
160
+ 'thead',
161
+ 'tbody',
162
+ 'tr',
163
+ 'td',
164
+ 'th',
165
+ 'h1',
166
+ 'h2',
167
+ 'h3',
168
+ 'h4',
169
+ 'h5',
170
+ 'h6',
171
+ 'section',
172
+ 'article',
173
+ 'figure',
174
+ ]);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "orbitchat",
3
3
  "private": false,
4
- "version": "2.14.0",
4
+ "version": "3.0.0",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "orbitchat": "./bin/orbitchat.js"
@@ -9,6 +9,12 @@
9
9
  "files": [
10
10
  "bin",
11
11
  "dist",
12
+ "markdown-renderer/src",
13
+ "!markdown-renderer/src/demo",
14
+ "!markdown-renderer/src/demo/**",
15
+ "!markdown-renderer/package.json",
16
+ "!markdown-renderer/README.md",
17
+ "markdown-renderer/LICENSE",
12
18
  "README.md",
13
19
  "package.json"
14
20
  ],
@@ -19,21 +25,35 @@
19
25
  "build:local": "VITE_USE_LOCAL_API=true tsc && vite build",
20
26
  "build:api": "cd ../node-api && npm run build && mkdir -p ../chat-app/src/api/local && cp dist/api.mjs ../chat-app/src/api/local/api.mjs && cp dist/api.mjs.map ../chat-app/src/api/local/api.mjs.map && cp dist/api.d.ts ../chat-app/src/api/local/api.d.ts",
21
27
  "dev:with-api": "npm run build:api && npm run dev:local",
22
- "lint": "eslint . --report-unused-disable-directives --max-warnings 0",
28
+ "lint": "npm run lint:app",
29
+ "lint:app": "eslint . --report-unused-disable-directives --max-warnings 0",
30
+ "lint:renderer": "eslint --config markdown-renderer/eslint.config.js \"markdown-renderer/src/**/*.{ts,tsx}\"",
31
+ "lint:all": "npm run lint:app && npm run lint:renderer",
23
32
  "preview": "vite preview",
24
33
  "preview:local": "VITE_USE_LOCAL_API=true vite preview",
25
34
  "test": "node --test 'tests/**/*.test.js'",
26
35
  "prepublishOnly": "npm run build"
27
36
  },
28
37
  "dependencies": {
29
- "@schmitech/markdown-renderer": "^0.8.0",
38
+ "abcjs": "^6.5.2",
39
+ "ajv": "^8.17.1",
40
+ "dompurify": "^3.0.8",
30
41
  "express": "^5.0.1",
31
42
  "http-proxy-middleware": "^3.0.5",
32
43
  "js-yaml": "^4.1.1",
44
+ "katex": "^0.16.27",
33
45
  "lucide-react": "^0.469.0",
46
+ "mermaid": "^11.12.2",
34
47
  "path": "^0.12.7",
35
48
  "react": "^19.0.0",
36
49
  "react-dom": "^19.0.0",
50
+ "react-markdown": "^10.1.0",
51
+ "react-syntax-highlighter": "^15.5.0",
52
+ "recharts": "^3.7.0",
53
+ "rehype-katex": "^7.0.1",
54
+ "remark-gfm": "^4.0.1",
55
+ "remark-math": "^6.0.0",
56
+ "unified": "^11.0.5",
37
57
  "vite-plugin-dts": "^4.5.4",
38
58
  "zustand": "^5.0.5"
39
59
  },
@@ -44,6 +64,8 @@
44
64
  "@types/node": "^24.0.1",
45
65
  "@types/react": "^19.0.0",
46
66
  "@types/react-dom": "^19.0.0",
67
+ "@typescript-eslint/eslint-plugin": "^8.0.0",
68
+ "@typescript-eslint/parser": "^8.0.0",
47
69
  "@vitejs/plugin-react": "^4.2.1",
48
70
  "autoprefixer": "^10.4.19",
49
71
  "eslint": "^9.0.0",
@@ -1 +0,0 @@
1
- import{aS as Q,bH as cr,bI as ir,aK as h,aL as U,bJ as L,bK as lr,aO as sr,by as k,br as P,bL as vr,bM as br,aP as hr,bN as V,bn as N,bo as T,bO as gr,bw as _,aG as pr,bP as x,bQ as yr,aT as dr}from"./index-nqhgVFEP.js";var jr="[object Symbol]";function B(r){return typeof r=="symbol"||k(r)&&vr(r)==jr}function _r(r,t){for(var e=-1,n=r==null?0:r.length,a=Array(n);++e<n;)a[e]=t(r[e],e,r);return a}var E=_?_.prototype:void 0,G=E?E.toString:void 0;function W(r){if(typeof r=="string")return r;if(h(r))return _r(r,W)+"";if(B(r))return G?G.call(r):"";var t=r+"";return t=="0"&&1/r==-1/0?"-0":t}function mr(){}function wr(r,t){for(var e=-1,n=r==null?0:r.length;++e<n&&t(r[e],e,r)!==!1;);return r}function Or(r,t,e,n){for(var a=r.length,u=e+-1;++u<a;)if(t(r[u],u,r))return u;return-1}function Sr(r){return r!==r}function Pr(r,t,e){for(var n=e-1,a=r.length;++n<a;)if(r[n]===t)return n;return-1}function Ar(r,t,e){return t===t?Pr(r,t,e):Or(r,Sr,e)}function Lr(r,t){var e=r==null?0:r.length;return!!e&&Ar(r,t,0)>-1}function C(r){return Q(r)?cr(r):ir(r)}var $r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,kr=/^\w*$/;function z(r,t){if(h(r))return!1;var e=typeof r;return e=="number"||e=="symbol"||e=="boolean"||r==null||B(r)?!0:kr.test(r)||!$r.test(r)||t!=null&&r in Object(t)}var Br=500;function Cr(r){var t=yr(r,function(n){return e.size===Br&&e.clear(),n}),e=t.cache;return t}var zr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Dr=/\\(\\)?/g,Fr=Cr(function(r){var t=[];return r.charCodeAt(0)===46&&t.push(""),r.replace(zr,function(e,n,a,u){t.push(a?u.replace(Dr,"$1"):n||e)}),t});function Kr(r){return r==null?"":W(r)}function X(r,t){return h(r)?r:z(r,t)?[r]:Fr(Kr(r))}function A(r){if(typeof r=="string"||B(r))return r;var t=r+"";return t=="0"&&1/r==-1/0?"-0":t}function rr(r,t){t=X(t,r);for(var e=0,n=t.length;r!=null&&e<n;)r=r[A(t[e++])];return e&&e==n?r:void 0}function Mr(r,t,e){var n=r==null?void 0:rr(r,t);return n===void 0?e:n}function tr(r,t){for(var e=-1,n=t.length,a=r.length;++e<n;)r[a+e]=t[e];return r}var I=_?_.isConcatSpreadable:void 0;function Nr(r){return h(r)||V(r)||!!(I&&r&&r[I])}function Gt(r,t,e,n,a){var u=-1,o=r.length;for(e||(e=Nr),a||(a=[]);++u<o;){var f=r[u];e(f)?tr(a,f):n||(a[a.length]=f)}return a}function Tr(r,t,e,n){var a=-1,u=r==null?0:r.length;for(n&&u&&(e=r[++a]);++a<u;)e=t(e,r[a],a,r);return e}function er(r,t){for(var e=-1,n=r==null?0:r.length,a=0,u=[];++e<n;){var o=r[e];t(o,e,r)&&(u[a++]=o)}return u}function xr(){return[]}var Er=Object.prototype,Gr=Er.propertyIsEnumerable,J=Object.getOwnPropertySymbols,Ir=J?function(r){return r==null?[]:(r=Object(r),er(J(r),function(t){return Gr.call(r,t)}))}:xr;function Jr(r,t,e){var n=t(r);return h(r)?n:tr(n,e(r))}function q(r){return Jr(r,C,Ir)}var qr="__lodash_hash_undefined__";function Rr(r){return this.__data__.set(r,qr),this}function Yr(r){return this.__data__.has(r)}function m(r){var t=-1,e=r==null?0:r.length;for(this.__data__=new lr;++t<e;)this.add(r[t])}m.prototype.add=m.prototype.push=Rr;m.prototype.has=Yr;function Zr(r,t){for(var e=-1,n=r==null?0:r.length;++e<n;)if(t(r[e],e,r))return!0;return!1}function nr(r,t){return r.has(t)}var Hr=1,Qr=2;function ur(r,t,e,n,a,u){var o=e&Hr,f=r.length,c=t.length;if(f!=c&&!(o&&c>f))return!1;var v=u.get(r),l=u.get(t);if(v&&l)return v==t&&l==r;var i=-1,s=!0,p=e&Qr?new m:void 0;for(u.set(r,t),u.set(t,r);++i<f;){var b=r[i],g=t[i];if(n)var y=o?n(g,b,i,t,r,u):n(b,g,i,r,t,u);if(y!==void 0){if(y)continue;s=!1;break}if(p){if(!Zr(t,function(d,j){if(!nr(p,j)&&(b===d||a(b,d,e,n,u)))return p.push(j)})){s=!1;break}}else if(!(b===g||a(b,g,e,n,u))){s=!1;break}}return u.delete(r),u.delete(t),s}function Ur(r){var t=-1,e=Array(r.size);return r.forEach(function(n,a){e[++t]=[a,n]}),e}function D(r){var t=-1,e=Array(r.size);return r.forEach(function(n){e[++t]=n}),e}var Vr=1,Wr=2,Xr="[object Boolean]",rt="[object Date]",tt="[object Error]",et="[object Map]",nt="[object Number]",ut="[object RegExp]",at="[object Set]",ot="[object String]",ft="[object Symbol]",ct="[object ArrayBuffer]",it="[object DataView]",R=_?_.prototype:void 0,$=R?R.valueOf:void 0;function lt(r,t,e,n,a,u,o){switch(e){case it:if(r.byteLength!=t.byteLength||r.byteOffset!=t.byteOffset)return!1;r=r.buffer,t=t.buffer;case ct:return!(r.byteLength!=t.byteLength||!u(new x(r),new x(t)));case Xr:case rt:case nt:return pr(+r,+t);case tt:return r.name==t.name&&r.message==t.message;case ut:case ot:return r==t+"";case et:var f=Ur;case at:var c=n&Vr;if(f||(f=D),r.size!=t.size&&!c)return!1;var v=o.get(r);if(v)return v==t;n|=Wr,o.set(r,t);var l=ur(f(r),f(t),n,a,u,o);return o.delete(r),l;case ft:if($)return $.call(r)==$.call(t)}return!1}var st=1,vt=Object.prototype,bt=vt.hasOwnProperty;function ht(r,t,e,n,a,u){var o=e&st,f=q(r),c=f.length,v=q(t),l=v.length;if(c!=l&&!o)return!1;for(var i=c;i--;){var s=f[i];if(!(o?s in t:bt.call(t,s)))return!1}var p=u.get(r),b=u.get(t);if(p&&b)return p==t&&b==r;var g=!0;u.set(r,t),u.set(t,r);for(var y=o;++i<c;){s=f[i];var d=r[s],j=t[s];if(n)var M=o?n(j,d,s,t,r,u):n(d,j,s,r,t,u);if(!(M===void 0?d===j||a(d,j,e,n,u):M)){g=!1;break}y||(y=s=="constructor")}if(g&&!y){var w=r.constructor,O=t.constructor;w!=O&&"constructor"in r&&"constructor"in t&&!(typeof w=="function"&&w instanceof w&&typeof O=="function"&&O instanceof O)&&(g=!1)}return u.delete(r),u.delete(t),g}var gt=1,Y="[object Arguments]",Z="[object Array]",S="[object Object]",pt=Object.prototype,H=pt.hasOwnProperty;function yt(r,t,e,n,a,u){var o=h(r),f=h(t),c=o?Z:N(r),v=f?Z:N(t);c=c==Y?S:c,v=v==Y?S:v;var l=c==S,i=v==S,s=c==v;if(s&&T(r)){if(!T(t))return!1;o=!0,l=!1}if(s&&!l)return u||(u=new P),o||gr(r)?ur(r,t,e,n,a,u):lt(r,t,c,e,n,a,u);if(!(e&gt)){var p=l&&H.call(r,"__wrapped__"),b=i&&H.call(t,"__wrapped__");if(p||b){var g=p?r.value():r,y=b?t.value():t;return u||(u=new P),a(g,y,e,n,u)}}return s?(u||(u=new P),ht(r,t,e,n,a,u)):!1}function F(r,t,e,n,a){return r===t?!0:r==null||t==null||!k(r)&&!k(t)?r!==r&&t!==t:yt(r,t,e,n,F,a)}var dt=1,jt=2;function _t(r,t,e,n){var a=e.length,u=a;if(r==null)return!u;for(r=Object(r);a--;){var o=e[a];if(o[2]?o[1]!==r[o[0]]:!(o[0]in r))return!1}for(;++a<u;){o=e[a];var f=o[0],c=r[f],v=o[1];if(o[2]){if(c===void 0&&!(f in r))return!1}else{var l=new P,i;if(!(i===void 0?F(v,c,dt|jt,n,l):i))return!1}}return!0}function ar(r){return r===r&&!sr(r)}function mt(r){for(var t=C(r),e=t.length;e--;){var n=t[e],a=r[n];t[e]=[n,a,ar(a)]}return t}function or(r,t){return function(e){return e==null?!1:e[r]===t&&(t!==void 0||r in Object(e))}}function wt(r){var t=mt(r);return t.length==1&&t[0][2]?or(t[0][0],t[0][1]):function(e){return e===r||_t(e,r,t)}}function Ot(r,t){return r!=null&&t in Object(r)}function St(r,t,e){t=X(t,r);for(var n=-1,a=t.length,u=!1;++n<a;){var o=A(t[n]);if(!(u=r!=null&&e(r,o)))break;r=r[o]}return u||++n!=a?u:(a=r==null?0:r.length,!!a&&br(a)&&hr(o,a)&&(h(r)||V(r)))}function Pt(r,t){return r!=null&&St(r,t,Ot)}var At=1,Lt=2;function $t(r,t){return z(r)&&ar(t)?or(A(r),t):function(e){var n=Mr(e,r);return n===void 0&&n===t?Pt(e,r):F(t,n,At|Lt)}}function kt(r){return function(t){return t==null?void 0:t[r]}}function Bt(r){return function(t){return rr(t,r)}}function Ct(r){return z(r)?kt(A(r)):Bt(r)}function fr(r){return typeof r=="function"?r:r==null?U:typeof r=="object"?h(r)?$t(r[0],r[1]):wt(r):Ct(r)}function zt(r,t){return r&&dr(r,t,C)}function Dt(r,t){return function(e,n){if(e==null)return e;if(!Q(e))return r(e,n);for(var a=e.length,u=-1,o=Object(e);++u<a&&n(o[u],u,o)!==!1;);return e}}var K=Dt(zt);function Ft(r){return typeof r=="function"?r:U}function It(r,t){var e=h(r)?wr:K;return e(r,Ft(t))}function Kt(r,t){var e=[];return K(r,function(n,a,u){t(n,a,u)&&e.push(n)}),e}function Jt(r,t){var e=h(r)?er:Kt;return e(r,fr(t))}function Mt(r,t,e,n,a){return a(r,function(u,o,f){e=n?(n=!1,u):t(e,u,o,f)}),e}function qt(r,t,e){var n=h(r)?Tr:Mt,a=arguments.length<3;return n(r,fr(t),e,a,K)}var Nt=1/0,Tt=L&&1/D(new L([,-0]))[1]==Nt?function(r){return new L(r)}:mr,xt=200;function Rt(r,t,e){var n=-1,a=Lr,u=r.length,o=!0,f=[],c=f;if(u>=xt){var v=t?null:Tt(r);if(v)return D(v);o=!1,a=nr,c=new m}else c=t?[]:f;r:for(;++n<u;){var l=r[n],i=t?t(l):l;if(l=l!==0?l:0,o&&i===i){for(var s=c.length;s--;)if(c[s]===i)continue r;t&&c.push(i),f.push(l)}else a(c,i,e)||(c!==f&&c.push(i),f.push(l))}return f}export{zt as $,Gt as B,wr as E,Ft as F,Kr as G,A as I,Rt as J,xr as K,C as M,St as T,qt as Y,Jt as Z,fr as a,Pt as b,Or as c,Ir as d,q as e,Jr as f,K as g,X as j,rr as n,It as q,tr as r,_r as v,B as x};
@@ -1 +0,0 @@
1
- import{a$ as sn,b0 as an,b1 as l,ar as on,b2 as j,b3 as F,b4 as E,b5 as un,b6 as cn,b7 as Y,b8 as e,ap as G,b9 as en,ba as rn,bb as yn}from"./index-nqhgVFEP.js";function fn(i){return i.innerRadius}function ln(i){return i.outerRadius}function gn(i){return i.startAngle}function pn(i){return i.endAngle}function xn(i){return i&&i.padAngle}function mn(i,d,C,W,v,b,H,a){var I=C-i,r=W-d,n=H-v,p=a-b,u=p*I-n*r;if(!(u*u<l))return u=(n*(d-b)-p*(i-v))/u,[i+u*I,d+u*r]}function M(i,d,C,W,v,b,H){var a=i-C,I=d-W,r=(H?b:-b)/Y(a*a+I*I),n=r*I,p=-r*a,u=i+n,s=d+p,y=C+n,f=W+p,P=(u+y)/2,o=(s+f)/2,x=y-u,g=f-s,O=x*x+g*g,T=v-b,A=u*f-y*s,L=(g<0?-1:1)*Y(en(0,T*T*O-A*A)),q=(A*g-x*L)/O,D=(-A*x-g*L)/O,R=(A*g+x*L)/O,m=(-A*x+g*L)/O,h=q-P,t=D-o,c=R-P,_=m-o;return h*h+t*t>c*c+_*_&&(q=R,D=m),{cx:q,cy:D,x01:-n,y01:-p,x11:q*(v/T-1),y11:D*(v/T-1)}}function dn(){var i=fn,d=ln,C=G(0),W=null,v=gn,b=pn,H=xn,a=null,I=sn(r);function r(){var n,p,u=+i.apply(this,arguments),s=+d.apply(this,arguments),y=v.apply(this,arguments)-an,f=b.apply(this,arguments)-an,P=un(f-y),o=f>y;if(a||(a=n=I()),s<u&&(p=s,s=u,u=p),!(s>l))a.moveTo(0,0);else if(P>on-l)a.moveTo(s*j(y),s*F(y)),a.arc(0,0,s,y,f,!o),u>l&&(a.moveTo(u*j(f),u*F(f)),a.arc(0,0,u,f,y,o));else{var x=y,g=f,O=y,T=f,A=P,L=P,q=H.apply(this,arguments)/2,D=q>l&&(W?+W.apply(this,arguments):Y(u*u+s*s)),R=E(un(s-u)/2,+C.apply(this,arguments)),m=R,h=R,t,c;if(D>l){var _=rn(D/u*F(q)),$=rn(D/s*F(q));(A-=_*2)>l?(_*=o?1:-1,O+=_,T-=_):(A=0,O=T=(y+f)/2),(L-=$*2)>l?($*=o?1:-1,x+=$,g-=$):(L=0,x=g=(y+f)/2)}var z=s*j(x),S=s*F(x),k=u*j(T),N=u*F(T);if(R>l){var X=s*j(g),Z=s*F(g),Q=u*j(O),U=u*F(O),B;if(P<cn)if(B=mn(z,S,Q,U,X,Z,k,N)){var V=z-B[0],w=S-B[1],J=X-B[0],K=Z-B[1],nn=1/F(yn((V*J+w*K)/(Y(V*V+w*w)*Y(J*J+K*K)))/2),tn=Y(B[0]*B[0]+B[1]*B[1]);m=E(R,(u-tn)/(nn-1)),h=E(R,(s-tn)/(nn+1))}else m=h=0}L>l?h>l?(t=M(Q,U,z,S,s,h,o),c=M(X,Z,k,N,s,h,o),a.moveTo(t.cx+t.x01,t.cy+t.y01),h<R?a.arc(t.cx,t.cy,h,e(t.y01,t.x01),e(c.y01,c.x01),!o):(a.arc(t.cx,t.cy,h,e(t.y01,t.x01),e(t.y11,t.x11),!o),a.arc(0,0,s,e(t.cy+t.y11,t.cx+t.x11),e(c.cy+c.y11,c.cx+c.x11),!o),a.arc(c.cx,c.cy,h,e(c.y11,c.x11),e(c.y01,c.x01),!o))):(a.moveTo(z,S),a.arc(0,0,s,x,g,!o)):a.moveTo(z,S),!(u>l)||!(A>l)?a.lineTo(k,N):m>l?(t=M(k,N,X,Z,u,-m,o),c=M(z,S,Q,U,u,-m,o),a.lineTo(t.cx+t.x01,t.cy+t.y01),m<R?a.arc(t.cx,t.cy,m,e(t.y01,t.x01),e(c.y01,c.x01),!o):(a.arc(t.cx,t.cy,m,e(t.y01,t.x01),e(t.y11,t.x11),!o),a.arc(0,0,u,e(t.cy+t.y11,t.cx+t.x11),e(c.cy+c.y11,c.cx+c.x11),o),a.arc(c.cx,c.cy,m,e(c.y11,c.x11),e(c.y01,c.x01),!o))):a.arc(0,0,u,T,O,o)}if(a.closePath(),n)return a=null,n+""||null}return r.centroid=function(){var n=(+i.apply(this,arguments)+ +d.apply(this,arguments))/2,p=(+v.apply(this,arguments)+ +b.apply(this,arguments))/2-cn/2;return[j(p)*n,F(p)*n]},r.innerRadius=function(n){return arguments.length?(i=typeof n=="function"?n:G(+n),r):i},r.outerRadius=function(n){return arguments.length?(d=typeof n=="function"?n:G(+n),r):d},r.cornerRadius=function(n){return arguments.length?(C=typeof n=="function"?n:G(+n),r):C},r.padRadius=function(n){return arguments.length?(W=n==null?null:typeof n=="function"?n:G(+n),r):W},r.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:G(+n),r):v},r.endAngle=function(n){return arguments.length?(b=typeof n=="function"?n:G(+n),r):b},r.padAngle=function(n){return arguments.length?(H=typeof n=="function"?n:G(+n),r):H},r.context=function(n){return arguments.length?(a=n??null,r):a},r}export{dn as h};