Subhadip007 commited on
Commit
43419f9
·
1 Parent(s): b193600

feat(ui): add markdown parsing with math, typewriter text streaming, scrollbar shift, and history tracking actions

Browse files
frontend-next/app/globals.css CHANGED
@@ -937,8 +937,8 @@ select {
937
  .history-item { padding: 10px; border-radius: 6px; font-size: 0.85rem; color: var(--text-muted); cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: 0.2s; }
938
  .history-item:hover, .history-item.active { background: rgba(255,255,255,0.05); color: #fff; }
939
 
940
- .main-chat-area { flex: 1; display: flex; flex-direction: column; position: relative; height: 100vh; }
941
- .chat-container { flex: 1; overflow-y: auto; padding: 80px 20px 140px 20px; display: flex; flex-direction: column; gap: 24px; max-width: 900px; margin: 0 auto; width: 100%; }
942
 
943
  .message-user { align-self: flex-end; background: rgba(255,255,255,0.1); color: #fff; padding: 12px 18px; border-radius: 20px; border-bottom-right-radius: 4px; max-width: 80%; }
944
  .message-ai { align-self: flex-start; background: transparent; color: #e2e8f0; border-radius: 12px; width: 100%; }
@@ -988,3 +988,49 @@ select {
988
 
989
  .send-btn { background: #fff !important; border: none; outline: none; }
990
  .send-btn:hover:not(:disabled) { background: var(--accent) !important; color: #000; box-shadow: 0 0 20px rgba(0,240,255,0.5); }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
937
  .history-item { padding: 10px; border-radius: 6px; font-size: 0.85rem; color: var(--text-muted); cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: 0.2s; }
938
  .history-item:hover, .history-item.active { background: rgba(255,255,255,0.05); color: #fff; }
939
 
940
+ .main-chat-area { flex: 1; display: flex; flex-direction: column; position: relative; height: 100vh; overflow-y: auto; overflow-x: hidden; scroll-behavior: smooth; }
941
+ .chat-container { flex: 1; padding: 80px 20px 140px 20px; display: flex; flex-direction: column; gap: 24px; max-width: 900px; margin: 0 auto; width: 100%; }
942
 
943
  .message-user { align-self: flex-end; background: rgba(255,255,255,0.1); color: #fff; padding: 12px 18px; border-radius: 20px; border-bottom-right-radius: 4px; max-width: 80%; }
944
  .message-ai { align-self: flex-start; background: transparent; color: #e2e8f0; border-radius: 12px; width: 100%; }
 
988
 
989
  .send-btn { background: #fff !important; border: none; outline: none; }
990
  .send-btn:hover:not(:disabled) { background: var(--accent) !important; color: #000; box-shadow: 0 0 20px rgba(0,240,255,0.5); }
991
+
992
+
993
+ /* Scrollbar Styling at the Edge */
994
+ ::-webkit-scrollbar {
995
+ width: 6px;
996
+ height: 6px;
997
+ }
998
+ ::-webkit-scrollbar-track {
999
+ background: transparent;
1000
+ }
1001
+ ::-webkit-scrollbar-thumb {
1002
+ background: rgba(255, 255, 255, 0.15);
1003
+ border-radius: 10px;
1004
+ }
1005
+ ::-webkit-scrollbar-thumb:hover {
1006
+ background: rgba(255, 255, 255, 0.3);
1007
+ }
1008
+
1009
+ /* History Actions */
1010
+ .history-item { position: relative; display: flex; align-items: center; padding: 10px; border-radius: 6px; font-size: 0.85rem; color: var(--text-muted); cursor: pointer; white-space: nowrap; transition: 0.2s; overflow: hidden; }
1011
+ .history-item:hover, .history-item.active { background: rgba(255,255,255,0.05); color: #fff; }
1012
+ .history-actions { display: none; gap: 8px; align-items: center; background: rgba(10, 14, 23, 0.9); padding-left: 8px; border-radius: 4px; box-shadow: -10px 0 10px rgba(10, 14, 23, 0.9); }
1013
+ .history-item:hover .history-actions { display: flex; }
1014
+ .history-actions svg { color: var(--text-muted); cursor: pointer; transition: 0.2s; }
1015
+ .history-actions svg:hover { color: #fff; transform: scale(1.1); }
1016
+ .history-actions .active-pin { color: var(--accent); }
1017
+ .history-actions .action-delete:hover { color: var(--danger); }
1018
+
1019
+ /* Thinking Animation */
1020
+ .thinking-indicator { display: flex; align-items: center; gap: 4px; padding: 12px 18px; }
1021
+ .typing-dot { width: 6px; height: 6px; background-color: var(--accent); border-radius: 50%; opacity: 0.4; animation: type-bounce 1.4s infinite cubic-bezier(0.2, 0.8, 0.2, 1); }
1022
+ .typing-dot:nth-child(1) { animation-delay: 0s; }
1023
+ .typing-dot:nth-child(2) { animation-delay: 0.2s; }
1024
+ .typing-dot:nth-child(3) { animation-delay: 0.4s; }
1025
+ @keyframes type-bounce { 0%, 100% { transform: translateY(0); opacity: 0.4; } 50% { transform: translateY(-4px); opacity: 1; } }
1026
+
1027
+ /* Markdown Body Reset */
1028
+ .markdown-body { font-family: "Inter", system-ui, sans-serif; font-size: 1.05rem; line-height: 1.7; color: #e2e8f0; }
1029
+ .markdown-body p { margin-bottom: 1em; }
1030
+ .markdown-body p:last-child { margin-bottom: 0; }
1031
+ .markdown-body h1, .markdown-body h2, .markdown-body h3 { color: #fff; font-weight: 700; margin-top: 1.5em; margin-bottom: 0.5em; }
1032
+ .markdown-body ul { list-style-type: disc; padding-left: 20px; margin-bottom: 1em; }
1033
+ .markdown-body ol { list-style-type: decimal; padding-left: 20px; margin-bottom: 1em; }
1034
+ .markdown-body li { margin-bottom: 0.25em; }
1035
+ .markdown-body strong { color: #fff; font-weight: 600; }
1036
+ .markdown-body .inline-code { background: rgba(0,0,0,0.5); padding: 2px 6px; border-radius: 4px; font-family: "JetBrains Mono", monospace; font-size: 0.9em; color: var(--accent); }
frontend-next/app/page.tsx CHANGED
@@ -2,12 +2,17 @@
2
 
3
  import { useState, useRef, useEffect } from "react";
4
  import { motion, AnimatePresence } from "framer-motion";
5
- import { InlineMath, BlockMath } from 'react-katex';
 
 
 
 
6
  import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';
7
  import { oneDark } from 'react-syntax-highlighter/dist/esm/styles/prism';
8
  import {
9
  Brain, Search, PanelLeftClose, PanelLeft, Plus,
10
- Send, Settings2, Trash2, Copy, Check, Star, ThumbsUp, ThumbsDown
 
11
  } from "lucide-react";
12
 
13
  // Config
@@ -44,6 +49,7 @@ interface ChatSession {
44
  title: string;
45
  messages: ChatMessage[];
46
  timestamp: number;
 
47
  }
48
 
49
  // --- Message Renderer Component ---
@@ -83,55 +89,76 @@ const CitationBadge = ({ id }: { id: string }) => {
83
  );
84
  };
85
 
86
- // Safe rendering to avoid KaTeX crashing
87
- const SafeMathBlock = ({ math }: { math: string }) => {
88
- try { return <BlockMath math={math} />; } catch (e) { return <pre>{`$$${math}$$`}</pre>; }
89
- };
90
- const SafeMathInline = ({ math }: { math: string }) => {
91
- try { return <InlineMath math={math} />; } catch (e) { return <span>{`$${math}$`}</span>; }
92
- };
93
 
94
- const renderTextWithMathAndCitations = (text: string) => {
95
- // 1. Block Math
96
- const blockSplit = text.split(/(\$\$[\s\S]+?\$\$)/g);
97
- return blockSplit.map((bPart, i) => {
98
- if (bPart.startsWith("$$") && bPart.endsWith("$$")) {
99
- return <SafeMathBlock key={i} math={bPart.slice(2, -2)} />;
100
  }
101
-
102
- // 2. Inline Math
103
- const inlineSplit = bPart.split(/(\$[^\$\n]+?\$)/g);
104
- return inlineSplit.map((iPart, j) => {
105
- if (iPart.startsWith("$") && iPart.endsWith("$")) {
106
- return <SafeMathInline key={`${i}-${j}`} math={iPart.slice(1, -1)} />;
107
- }
108
 
109
- // 3. Citations
110
- const citeSplit = iPart.split(/\[(\d{4}\.\d{4,5})\]/g);
111
- return citeSplit.map((cPart, k) => {
112
- if (/^\d{4}\.\d{4,5}$/.test(cPart)) {
113
- return <CitationBadge key={`${i}-${j}-${k}`} id={cPart} />;
 
 
 
 
 
 
 
 
 
114
  }
115
- return <span key={`${i}-${j}-${k}`} style={{ whiteSpace: "pre-wrap" }}>{cPart}</span>;
 
116
  });
117
- });
118
- });
119
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
120
 
121
- const MessageRenderer = ({ content }: { content: string }) => {
122
- // Split by code blocks first
123
- const parts = content.split(/(```[\s\S]*?```)/g);
124
  return (
125
- <div style={{ lineHeight: 1.6 }}>
126
- {parts.map((part, i) => {
127
- if (part.startsWith('```') && part.endsWith('```')) {
128
- const match = part.match(/```(\w+)?\n([\s\S]*?)```/);
129
- if (match) {
130
- return <CodeBlock key={i} language={match[1]} code={match[2]} />;
 
 
 
 
 
 
 
 
 
 
 
 
131
  }
132
- }
133
- return <div key={i}>{renderTextWithMathAndCitations(part)}</div>;
134
- })}
 
135
  </div>
136
  );
137
  };
@@ -205,6 +232,38 @@ export default function App() {
205
  const [category, setCategory] = useState("All");
206
  const [apiStatus, setApiStatus] = useState<"connecting" | "online" | "offline">("connecting");
207
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
208
  useEffect(() => {
209
  const checkStatus = () => {
210
  fetch(`${API_URL}/health`)
@@ -428,7 +487,35 @@ export default function App() {
428
  className={`history-item ${activeSessionId === s.id ? 'active' : ''}`}
429
  onClick={() => { setActiveSessionId(s.id); setSidebarOpen(false); }}
430
  >
431
- {s.title}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
432
  </div>
433
  ))}
434
  </div>
@@ -491,7 +578,7 @@ export default function App() {
491
  </div>
492
  ) : (
493
  <>
494
- <MessageRenderer content={msg.content} />
495
  {/* Citations section if present */}
496
  {msg.citations && msg.citations.length > 0 && (
497
  <motion.div initial={{ opacity: 0, scale: 0.95 }} animate={{ opacity: 1, scale: 1 }} style={{ marginTop: '24px', paddingTop: '20px', borderTop: '1px solid var(--border)' }}>
 
2
 
3
  import { useState, useRef, useEffect } from "react";
4
  import { motion, AnimatePresence } from "framer-motion";
5
+ import ReactMarkdown from 'react-markdown';
6
+ import remarkGfm from 'remark-gfm';
7
+ import remarkMath from 'remark-math';
8
+ import rehypeKatex from 'rehype-katex';
9
+ import 'katex/dist/katex.min.css';
10
  import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';
11
  import { oneDark } from 'react-syntax-highlighter/dist/esm/styles/prism';
12
  import {
13
  Brain, Search, PanelLeftClose, PanelLeft, Plus,
14
+ Send, Settings2, Trash2, Copy, Check, Star, ThumbsUp, ThumbsDown,
15
+ Pin, Edit2, Check as CheckIcon
16
  } from "lucide-react";
17
 
18
  // Config
 
49
  title: string;
50
  messages: ChatMessage[];
51
  timestamp: number;
52
+ pinned?: boolean;
53
  }
54
 
55
  // --- Message Renderer Component ---
 
89
  );
90
  };
91
 
92
+ const MessageRenderer = ({ content, isStreaming }: { content: string, isStreaming?: boolean }) => {
93
+ const [displayed, setDisplayed] = useState(isStreaming ? "" : content);
94
+ const [isThinking, setIsThinking] = useState(isStreaming && !content);
 
 
 
 
95
 
96
+ useEffect(() => {
97
+ if (!isStreaming) {
98
+ setDisplayed(content);
99
+ setIsThinking(false);
100
+ return;
 
101
  }
 
 
 
 
 
 
 
102
 
103
+ if (!content) {
104
+ setIsThinking(true);
105
+ return;
106
+ }
107
+ setIsThinking(false);
108
+
109
+ if (displayed === content) return;
110
+
111
+ const interval = setInterval(() => {
112
+ setDisplayed(prev => {
113
+ const diff = content.length - prev.length;
114
+ if (diff <= 0) {
115
+ clearInterval(interval);
116
+ return content;
117
  }
118
+ const charsToAdd = Math.max(1, Math.floor(diff / 5));
119
+ return content.substring(0, prev.length + charsToAdd);
120
  });
121
+ }, 15);
122
+
123
+ return () => clearInterval(interval);
124
+ }, [content, isStreaming, displayed]);
125
+
126
+ if (isThinking) {
127
+ return (
128
+ <div className="thinking-indicator">
129
+ <div className="typing-dot"></div>
130
+ <div className="typing-dot"></div>
131
+ <div className="typing-dot"></div>
132
+ </div>
133
+ );
134
+ }
135
+
136
+ const processedContent = displayed.replace(/\[(\d{4}\.\d{4,5})\]/g, '[$1](CITATION:$1)');
137
 
 
 
 
138
  return (
139
+ <div className="markdown-body">
140
+ <ReactMarkdown
141
+ remarkPlugins={[remarkGfm, remarkMath]}
142
+ rehypePlugins={[rehypeKatex]}
143
+ components={{
144
+ code({node, inline, className, children, ...props}: any) {
145
+ const match = /language-(\w+)/.exec(className || '');
146
+ return !inline ? (
147
+ <CodeBlock language={match?.[1] || 'text'} code={String(children).replace(/\n$/, '')} />
148
+ ) : (
149
+ <code className="inline-code" {...props}>{children}</code>
150
+ )
151
+ },
152
+ a({node, href, children, ...props}: any) {
153
+ if (href?.startsWith('CITATION:')) {
154
+ return <CitationBadge id={href.replace('CITATION:', '')} />
155
+ }
156
+ return <a href={href} target="_blank" rel="noopener noreferrer" {...props}>{children}</a>
157
  }
158
+ }}
159
+ >
160
+ {processedContent + (isStreaming ? " █" : "")}
161
+ </ReactMarkdown>
162
  </div>
163
  );
164
  };
 
232
  const [category, setCategory] = useState("All");
233
  const [apiStatus, setApiStatus] = useState<"connecting" | "online" | "offline">("connecting");
234
 
235
+ const [editingSessionId, setEditingSessionId] = useState<string | null>(null);
236
+ const [editTitle, setEditTitle] = useState("");
237
+
238
+ const handlePin = (id: string, e: React.MouseEvent) => {
239
+ e.stopPropagation();
240
+ setSessions(prev => {
241
+ const copy = [...prev];
242
+ const idx = copy.findIndex(s => s.id === id);
243
+ if (idx >= 0) copy[idx] = { ...copy[idx], pinned: !copy[idx].pinned };
244
+ return copy.sort((a,b) => (b.pinned ? 1 : 0) - (a.pinned ? 1 : 0) || b.timestamp - a.timestamp);
245
+ });
246
+ };
247
+
248
+ const handleDelete = (id: string, e: React.MouseEvent) => {
249
+ e.stopPropagation();
250
+ setSessions(prev => prev.filter(s => s.id !== id));
251
+ if (activeSessionId === id) setActiveSessionId(null);
252
+ };
253
+
254
+ const startEditing = (id: string, currentTitle: string, e: React.MouseEvent) => {
255
+ e.stopPropagation();
256
+ setEditingSessionId(id);
257
+ setEditTitle(currentTitle);
258
+ };
259
+
260
+ const saveTitle = (id: string, e: React.MouseEvent | React.KeyboardEvent) => {
261
+ e.stopPropagation();
262
+ if (!editTitle.trim()) { setEditingSessionId(null); return; }
263
+ setSessions(prev => prev.map(s => s.id === id ? { ...s, title: editTitle } : s));
264
+ setEditingSessionId(null);
265
+ };
266
+
267
  useEffect(() => {
268
  const checkStatus = () => {
269
  fetch(`${API_URL}/health`)
 
487
  className={`history-item ${activeSessionId === s.id ? 'active' : ''}`}
488
  onClick={() => { setActiveSessionId(s.id); setSidebarOpen(false); }}
489
  >
490
+ <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', width: '100%' }}>
491
+ {editingSessionId === s.id ? (
492
+ <div style={{ display: 'flex', alignItems: 'center', gap: '4px', width: '100%' }}>
493
+ <input
494
+ value={editTitle}
495
+ onChange={e => setEditTitle(e.target.value)}
496
+ onClick={e => e.stopPropagation()}
497
+ autoFocus
498
+ onKeyDown={e => {
499
+ if (e.key === 'Enter') saveTitle(s.id, e);
500
+ }}
501
+ style={{ background: 'rgba(0,0,0,0.5)', border: '1px solid var(--accent)', outline: 'none', color: '#fff', padding: '2px 6px', borderRadius: '4px', flex: 1, fontSize: '0.8rem' }}
502
+ />
503
+ <CheckIcon size={14} color="var(--success)" onClick={(e) => saveTitle(s.id, e)} style={{ cursor: 'pointer' }} />
504
+ </div>
505
+ ) : (
506
+ <>
507
+ <div style={{ flex: 1, overflow: 'hidden', textOverflow: 'ellipsis', display: 'flex', alignItems: 'center', gap: '6px' }}>
508
+ {s.pinned && <Pin size={12} color="var(--accent)" style={{ flexShrink: 0 }} />}
509
+ <span style={{ overflow: 'hidden', textOverflow: 'ellipsis' }}>{s.title}</span>
510
+ </div>
511
+ <div className="history-actions">
512
+ <Edit2 size={12} onClick={(e) => startEditing(s.id, s.title, e)} />
513
+ <Pin size={14} onClick={(e) => handlePin(s.id, e)} className={s.pinned ? "active-pin" : ""} />
514
+ <Trash2 size={12} onClick={(e) => handleDelete(s.id, e)} className="action-delete" />
515
+ </div>
516
+ </>
517
+ )}
518
+ </div>
519
  </div>
520
  ))}
521
  </div>
 
578
  </div>
579
  ) : (
580
  <>
581
+ <MessageRenderer content={msg.content} isStreaming={isStreaming && i === currentMessages.length - 1} />
582
  {/* Citations section if present */}
583
  {msg.citations && msg.citations.length > 0 && (
584
  <motion.div initial={{ opacity: 0, scale: 0.95 }} animate={{ opacity: 1, scale: 1 }} style={{ marginTop: '24px', paddingTop: '20px', borderTop: '1px solid var(--border)' }}>
frontend-next/package-lock.json CHANGED
@@ -16,7 +16,11 @@
16
  "react": "19.2.4",
17
  "react-dom": "19.2.4",
18
  "react-katex": "^3.1.0",
 
19
  "react-syntax-highlighter": "^16.1.1",
 
 
 
20
  "tailwind-merge": "^3.5.0"
21
  },
22
  "devDependencies": {
@@ -1615,13 +1619,30 @@
1615
  "tslib": "^2.4.0"
1616
  }
1617
  },
 
 
 
 
 
 
 
 
 
1618
  "node_modules/@types/estree": {
1619
  "version": "1.0.8",
1620
  "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
1621
  "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
1622
- "dev": true,
1623
  "license": "MIT"
1624
  },
 
 
 
 
 
 
 
 
 
1625
  "node_modules/@types/hast": {
1626
  "version": "3.0.4",
1627
  "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
@@ -1649,7 +1670,21 @@
1649
  "version": "0.16.8",
1650
  "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.8.tgz",
1651
  "integrity": "sha512-trgaNyfU+Xh2Tc+ABIb44a5AYUpicB3uwirOioeOkNPPbmgRNtcWyDeeFRzjPZENO9Vq8gvVqfhaaXWLlevVwg==",
1652
- "dev": true,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1653
  "license": "MIT"
1654
  },
1655
  "node_modules/@types/node": {
@@ -1672,7 +1707,6 @@
1672
  "version": "19.2.14",
1673
  "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz",
1674
  "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==",
1675
- "dev": true,
1676
  "license": "MIT",
1677
  "dependencies": {
1678
  "csstype": "^3.2.2"
@@ -2009,6 +2043,12 @@
2009
  "url": "https://opencollective.com/eslint"
2010
  }
2011
  },
 
 
 
 
 
 
2012
  "node_modules/@unrs/resolver-binding-android-arm-eabi": {
2013
  "version": "1.11.1",
2014
  "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz",
@@ -2588,6 +2628,16 @@
2588
  "node": ">= 0.4"
2589
  }
2590
  },
 
 
 
 
 
 
 
 
 
 
2591
  "node_modules/balanced-match": {
2592
  "version": "1.0.2",
2593
  "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -2745,6 +2795,16 @@
2745
  ],
2746
  "license": "CC-BY-4.0"
2747
  },
 
 
 
 
 
 
 
 
 
 
2748
  "node_modules/chalk": {
2749
  "version": "4.1.2",
2750
  "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -2772,6 +2832,16 @@
2772
  "url": "https://github.com/sponsors/wooorm"
2773
  }
2774
  },
 
 
 
 
 
 
 
 
 
 
2775
  "node_modules/character-entities-legacy": {
2776
  "version": "3.0.0",
2777
  "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
@@ -2879,7 +2949,6 @@
2879
  "version": "3.2.3",
2880
  "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
2881
  "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
2882
- "dev": true,
2883
  "license": "MIT"
2884
  },
2885
  "node_modules/damerau-levenshtein": {
@@ -2947,7 +3016,6 @@
2947
  "version": "4.4.3",
2948
  "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
2949
  "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
2950
- "dev": true,
2951
  "license": "MIT",
2952
  "dependencies": {
2953
  "ms": "^2.1.3"
@@ -3017,6 +3085,15 @@
3017
  "url": "https://github.com/sponsors/ljharb"
3018
  }
3019
  },
 
 
 
 
 
 
 
 
 
3020
  "node_modules/detect-libc": {
3021
  "version": "2.1.2",
3022
  "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
@@ -3027,6 +3104,19 @@
3027
  "node": ">=8"
3028
  }
3029
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
3030
  "node_modules/doctrine": {
3031
  "version": "2.1.0",
3032
  "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
@@ -3083,6 +3173,18 @@
3083
  "node": ">=10.13.0"
3084
  }
3085
  },
 
 
 
 
 
 
 
 
 
 
 
 
3086
  "node_modules/es-abstract": {
3087
  "version": "1.24.1",
3088
  "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz",
@@ -3680,6 +3782,16 @@
3680
  "node": ">=4.0"
3681
  }
3682
  },
 
 
 
 
 
 
 
 
 
 
3683
  "node_modules/esutils": {
3684
  "version": "2.0.3",
3685
  "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
@@ -3690,6 +3802,12 @@
3690
  "node": ">=0.10.0"
3691
  }
3692
  },
 
 
 
 
 
 
3693
  "node_modules/fast-deep-equal": {
3694
  "version": "3.1.3",
3695
  "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -4167,6 +4285,88 @@
4167
  "node": ">= 0.4"
4168
  }
4169
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4170
  "node_modules/hast-util-parse-selector": {
4171
  "version": "4.0.0",
4172
  "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz",
@@ -4180,6 +4380,62 @@
4180
  "url": "https://opencollective.com/unified"
4181
  }
4182
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4183
  "node_modules/hastscript": {
4184
  "version": "9.0.1",
4185
  "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz",
@@ -4229,6 +4485,16 @@
4229
  "integrity": "sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==",
4230
  "license": "CC0-1.0"
4231
  },
 
 
 
 
 
 
 
 
 
 
4232
  "node_modules/ignore": {
4233
  "version": "5.3.2",
4234
  "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
@@ -4266,6 +4532,12 @@
4266
  "node": ">=0.8.19"
4267
  }
4268
  },
 
 
 
 
 
 
4269
  "node_modules/internal-slot": {
4270
  "version": "1.1.0",
4271
  "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz",
@@ -4595,6 +4867,18 @@
4595
  "url": "https://github.com/sponsors/ljharb"
4596
  }
4597
  },
 
 
 
 
 
 
 
 
 
 
 
 
4598
  "node_modules/is-regex": {
4599
  "version": "1.2.1",
4600
  "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
@@ -5220,6 +5504,16 @@
5220
  "dev": true,
5221
  "license": "MIT"
5222
  },
 
 
 
 
 
 
 
 
 
 
5223
  "node_modules/loose-envify": {
5224
  "version": "1.4.0",
5225
  "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
@@ -5275,6 +5569,16 @@
5275
  "@jridgewell/sourcemap-codec": "^1.5.5"
5276
  }
5277
  },
 
 
 
 
 
 
 
 
 
 
5278
  "node_modules/math-intrinsics": {
5279
  "version": "1.1.0",
5280
  "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
@@ -5285,64 +5589,947 @@
5285
  "node": ">= 0.4"
5286
  }
5287
  },
5288
- "node_modules/merge2": {
5289
- "version": "1.4.1",
5290
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
5291
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
5292
- "dev": true,
5293
  "license": "MIT",
5294
- "engines": {
5295
- "node": ">= 8"
 
 
 
 
 
 
 
5296
  }
5297
  },
5298
- "node_modules/micromatch": {
5299
- "version": "4.0.8",
5300
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
5301
- "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
5302
- "dev": true,
5303
  "license": "MIT",
5304
- "dependencies": {
5305
- "braces": "^3.0.3",
5306
- "picomatch": "^2.3.1"
5307
- },
5308
  "engines": {
5309
- "node": ">=8.6"
 
 
 
5310
  }
5311
  },
5312
- "node_modules/minimatch": {
5313
- "version": "3.1.5",
5314
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
5315
- "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
5316
- "dev": true,
5317
- "license": "ISC",
5318
  "dependencies": {
5319
- "brace-expansion": "^1.1.7"
 
 
 
 
 
 
 
 
 
 
 
5320
  },
5321
- "engines": {
5322
- "node": "*"
 
5323
  }
5324
  },
5325
- "node_modules/minimist": {
5326
- "version": "1.2.8",
5327
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
5328
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
5329
- "dev": true,
5330
  "license": "MIT",
 
 
 
 
 
 
 
 
 
5331
  "funding": {
5332
- "url": "https://github.com/sponsors/ljharb"
 
5333
  }
5334
  },
5335
- "node_modules/motion-dom": {
5336
- "version": "12.38.0",
5337
- "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.38.0.tgz",
5338
- "integrity": "sha512-pdkHLD8QYRp8VfiNLb8xIBJis1byQ9gPT3Jnh2jqfFtAsWUA3dEepDlsWe/xMpO8McV+VdpKVcp+E+TGJEtOoA==",
5339
  "license": "MIT",
5340
  "dependencies": {
5341
- "motion-utils": "^12.36.0"
 
 
 
 
 
 
 
 
5342
  }
5343
  },
5344
- "node_modules/motion-utils": {
5345
- "version": "12.36.0",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5346
  "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.36.0.tgz",
5347
  "integrity": "sha512-eHWisygbiwVvf6PZ1vhaHCLamvkSbPIeAYxWUuL3a2PD/TROgE7FvfHWTIH4vMl798QLfMw15nRqIaRDXTlYRg==",
5348
  "license": "MIT"
@@ -5351,7 +6538,6 @@
5351
  "version": "2.1.3",
5352
  "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
5353
  "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
5354
- "dev": true,
5355
  "license": "MIT"
5356
  },
5357
  "node_modules/nanoid": {
@@ -5730,6 +6916,18 @@
5730
  "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
5731
  "license": "MIT"
5732
  },
 
 
 
 
 
 
 
 
 
 
 
 
5733
  "node_modules/path-exists": {
5734
  "version": "4.0.0",
5735
  "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -5926,6 +7124,33 @@
5926
  "react": ">=15.3.2 <20"
5927
  }
5928
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5929
  "node_modules/react-syntax-highlighter": {
5930
  "version": "16.1.1",
5931
  "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-16.1.1.tgz",
@@ -6006,6 +7231,107 @@
6006
  "url": "https://github.com/sponsors/ljharb"
6007
  }
6008
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6009
  "node_modules/resolve": {
6010
  "version": "2.0.0-next.6",
6011
  "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.6.tgz",
@@ -6515,6 +7841,20 @@
6515
  "url": "https://github.com/sponsors/ljharb"
6516
  }
6517
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6518
  "node_modules/strip-bom": {
6519
  "version": "3.0.0",
6520
  "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
@@ -6538,6 +7878,24 @@
6538
  "url": "https://github.com/sponsors/sindresorhus"
6539
  }
6540
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6541
  "node_modules/styled-jsx": {
6542
  "version": "5.1.6",
6543
  "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz",
@@ -6679,6 +8037,26 @@
6679
  "node": ">=8.0"
6680
  }
6681
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6682
  "node_modules/ts-api-utils": {
6683
  "version": "2.5.0",
6684
  "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz",
@@ -6879,6 +8257,121 @@
6879
  "dev": true,
6880
  "license": "MIT"
6881
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6882
  "node_modules/unrs-resolver": {
6883
  "version": "1.11.1",
6884
  "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz",
@@ -6955,6 +8448,58 @@
6955
  "punycode": "^2.1.0"
6956
  }
6957
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6958
  "node_modules/which": {
6959
  "version": "2.0.2",
6960
  "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -7112,6 +8657,16 @@
7112
  "peerDependencies": {
7113
  "zod": "^3.25.0 || ^4.0.0"
7114
  }
 
 
 
 
 
 
 
 
 
 
7115
  }
7116
  }
7117
  }
 
16
  "react": "19.2.4",
17
  "react-dom": "19.2.4",
18
  "react-katex": "^3.1.0",
19
+ "react-markdown": "^10.1.0",
20
  "react-syntax-highlighter": "^16.1.1",
21
+ "rehype-katex": "^7.0.1",
22
+ "remark-gfm": "^4.0.1",
23
+ "remark-math": "^6.0.0",
24
  "tailwind-merge": "^3.5.0"
25
  },
26
  "devDependencies": {
 
1619
  "tslib": "^2.4.0"
1620
  }
1621
  },
1622
+ "node_modules/@types/debug": {
1623
+ "version": "4.1.13",
1624
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz",
1625
+ "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==",
1626
+ "license": "MIT",
1627
+ "dependencies": {
1628
+ "@types/ms": "*"
1629
+ }
1630
+ },
1631
  "node_modules/@types/estree": {
1632
  "version": "1.0.8",
1633
  "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
1634
  "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
 
1635
  "license": "MIT"
1636
  },
1637
+ "node_modules/@types/estree-jsx": {
1638
+ "version": "1.0.5",
1639
+ "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz",
1640
+ "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==",
1641
+ "license": "MIT",
1642
+ "dependencies": {
1643
+ "@types/estree": "*"
1644
+ }
1645
+ },
1646
  "node_modules/@types/hast": {
1647
  "version": "3.0.4",
1648
  "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
 
1670
  "version": "0.16.8",
1671
  "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.8.tgz",
1672
  "integrity": "sha512-trgaNyfU+Xh2Tc+ABIb44a5AYUpicB3uwirOioeOkNPPbmgRNtcWyDeeFRzjPZENO9Vq8gvVqfhaaXWLlevVwg==",
1673
+ "license": "MIT"
1674
+ },
1675
+ "node_modules/@types/mdast": {
1676
+ "version": "4.0.4",
1677
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
1678
+ "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
1679
+ "license": "MIT",
1680
+ "dependencies": {
1681
+ "@types/unist": "*"
1682
+ }
1683
+ },
1684
+ "node_modules/@types/ms": {
1685
+ "version": "2.1.0",
1686
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz",
1687
+ "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==",
1688
  "license": "MIT"
1689
  },
1690
  "node_modules/@types/node": {
 
1707
  "version": "19.2.14",
1708
  "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz",
1709
  "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==",
 
1710
  "license": "MIT",
1711
  "dependencies": {
1712
  "csstype": "^3.2.2"
 
2043
  "url": "https://opencollective.com/eslint"
2044
  }
2045
  },
2046
+ "node_modules/@ungap/structured-clone": {
2047
+ "version": "1.3.0",
2048
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
2049
+ "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
2050
+ "license": "ISC"
2051
+ },
2052
  "node_modules/@unrs/resolver-binding-android-arm-eabi": {
2053
  "version": "1.11.1",
2054
  "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz",
 
2628
  "node": ">= 0.4"
2629
  }
2630
  },
2631
+ "node_modules/bail": {
2632
+ "version": "2.0.2",
2633
+ "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
2634
+ "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==",
2635
+ "license": "MIT",
2636
+ "funding": {
2637
+ "type": "github",
2638
+ "url": "https://github.com/sponsors/wooorm"
2639
+ }
2640
+ },
2641
  "node_modules/balanced-match": {
2642
  "version": "1.0.2",
2643
  "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
 
2795
  ],
2796
  "license": "CC-BY-4.0"
2797
  },
2798
+ "node_modules/ccount": {
2799
+ "version": "2.0.1",
2800
+ "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
2801
+ "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
2802
+ "license": "MIT",
2803
+ "funding": {
2804
+ "type": "github",
2805
+ "url": "https://github.com/sponsors/wooorm"
2806
+ }
2807
+ },
2808
  "node_modules/chalk": {
2809
  "version": "4.1.2",
2810
  "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
 
2832
  "url": "https://github.com/sponsors/wooorm"
2833
  }
2834
  },
2835
+ "node_modules/character-entities-html4": {
2836
+ "version": "2.1.0",
2837
+ "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
2838
+ "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
2839
+ "license": "MIT",
2840
+ "funding": {
2841
+ "type": "github",
2842
+ "url": "https://github.com/sponsors/wooorm"
2843
+ }
2844
+ },
2845
  "node_modules/character-entities-legacy": {
2846
  "version": "3.0.0",
2847
  "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
 
2949
  "version": "3.2.3",
2950
  "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
2951
  "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
 
2952
  "license": "MIT"
2953
  },
2954
  "node_modules/damerau-levenshtein": {
 
3016
  "version": "4.4.3",
3017
  "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
3018
  "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
 
3019
  "license": "MIT",
3020
  "dependencies": {
3021
  "ms": "^2.1.3"
 
3085
  "url": "https://github.com/sponsors/ljharb"
3086
  }
3087
  },
3088
+ "node_modules/dequal": {
3089
+ "version": "2.0.3",
3090
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
3091
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
3092
+ "license": "MIT",
3093
+ "engines": {
3094
+ "node": ">=6"
3095
+ }
3096
+ },
3097
  "node_modules/detect-libc": {
3098
  "version": "2.1.2",
3099
  "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
 
3104
  "node": ">=8"
3105
  }
3106
  },
3107
+ "node_modules/devlop": {
3108
+ "version": "1.1.0",
3109
+ "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
3110
+ "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
3111
+ "license": "MIT",
3112
+ "dependencies": {
3113
+ "dequal": "^2.0.0"
3114
+ },
3115
+ "funding": {
3116
+ "type": "github",
3117
+ "url": "https://github.com/sponsors/wooorm"
3118
+ }
3119
+ },
3120
  "node_modules/doctrine": {
3121
  "version": "2.1.0",
3122
  "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
 
3173
  "node": ">=10.13.0"
3174
  }
3175
  },
3176
+ "node_modules/entities": {
3177
+ "version": "6.0.1",
3178
+ "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
3179
+ "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
3180
+ "license": "BSD-2-Clause",
3181
+ "engines": {
3182
+ "node": ">=0.12"
3183
+ },
3184
+ "funding": {
3185
+ "url": "https://github.com/fb55/entities?sponsor=1"
3186
+ }
3187
+ },
3188
  "node_modules/es-abstract": {
3189
  "version": "1.24.1",
3190
  "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz",
 
3782
  "node": ">=4.0"
3783
  }
3784
  },
3785
+ "node_modules/estree-util-is-identifier-name": {
3786
+ "version": "3.0.0",
3787
+ "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz",
3788
+ "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==",
3789
+ "license": "MIT",
3790
+ "funding": {
3791
+ "type": "opencollective",
3792
+ "url": "https://opencollective.com/unified"
3793
+ }
3794
+ },
3795
  "node_modules/esutils": {
3796
  "version": "2.0.3",
3797
  "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
 
3802
  "node": ">=0.10.0"
3803
  }
3804
  },
3805
+ "node_modules/extend": {
3806
+ "version": "3.0.2",
3807
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
3808
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
3809
+ "license": "MIT"
3810
+ },
3811
  "node_modules/fast-deep-equal": {
3812
  "version": "3.1.3",
3813
  "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
 
4285
  "node": ">= 0.4"
4286
  }
4287
  },
4288
+ "node_modules/hast-util-from-dom": {
4289
+ "version": "5.0.1",
4290
+ "resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-5.0.1.tgz",
4291
+ "integrity": "sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==",
4292
+ "license": "ISC",
4293
+ "dependencies": {
4294
+ "@types/hast": "^3.0.0",
4295
+ "hastscript": "^9.0.0",
4296
+ "web-namespaces": "^2.0.0"
4297
+ },
4298
+ "funding": {
4299
+ "type": "opencollective",
4300
+ "url": "https://opencollective.com/unified"
4301
+ }
4302
+ },
4303
+ "node_modules/hast-util-from-html": {
4304
+ "version": "2.0.3",
4305
+ "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz",
4306
+ "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==",
4307
+ "license": "MIT",
4308
+ "dependencies": {
4309
+ "@types/hast": "^3.0.0",
4310
+ "devlop": "^1.1.0",
4311
+ "hast-util-from-parse5": "^8.0.0",
4312
+ "parse5": "^7.0.0",
4313
+ "vfile": "^6.0.0",
4314
+ "vfile-message": "^4.0.0"
4315
+ },
4316
+ "funding": {
4317
+ "type": "opencollective",
4318
+ "url": "https://opencollective.com/unified"
4319
+ }
4320
+ },
4321
+ "node_modules/hast-util-from-html-isomorphic": {
4322
+ "version": "2.0.0",
4323
+ "resolved": "https://registry.npmjs.org/hast-util-from-html-isomorphic/-/hast-util-from-html-isomorphic-2.0.0.tgz",
4324
+ "integrity": "sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==",
4325
+ "license": "MIT",
4326
+ "dependencies": {
4327
+ "@types/hast": "^3.0.0",
4328
+ "hast-util-from-dom": "^5.0.0",
4329
+ "hast-util-from-html": "^2.0.0",
4330
+ "unist-util-remove-position": "^5.0.0"
4331
+ },
4332
+ "funding": {
4333
+ "type": "opencollective",
4334
+ "url": "https://opencollective.com/unified"
4335
+ }
4336
+ },
4337
+ "node_modules/hast-util-from-parse5": {
4338
+ "version": "8.0.3",
4339
+ "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz",
4340
+ "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==",
4341
+ "license": "MIT",
4342
+ "dependencies": {
4343
+ "@types/hast": "^3.0.0",
4344
+ "@types/unist": "^3.0.0",
4345
+ "devlop": "^1.0.0",
4346
+ "hastscript": "^9.0.0",
4347
+ "property-information": "^7.0.0",
4348
+ "vfile": "^6.0.0",
4349
+ "vfile-location": "^5.0.0",
4350
+ "web-namespaces": "^2.0.0"
4351
+ },
4352
+ "funding": {
4353
+ "type": "opencollective",
4354
+ "url": "https://opencollective.com/unified"
4355
+ }
4356
+ },
4357
+ "node_modules/hast-util-is-element": {
4358
+ "version": "3.0.0",
4359
+ "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz",
4360
+ "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==",
4361
+ "license": "MIT",
4362
+ "dependencies": {
4363
+ "@types/hast": "^3.0.0"
4364
+ },
4365
+ "funding": {
4366
+ "type": "opencollective",
4367
+ "url": "https://opencollective.com/unified"
4368
+ }
4369
+ },
4370
  "node_modules/hast-util-parse-selector": {
4371
  "version": "4.0.0",
4372
  "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz",
 
4380
  "url": "https://opencollective.com/unified"
4381
  }
4382
  },
4383
+ "node_modules/hast-util-to-jsx-runtime": {
4384
+ "version": "2.3.6",
4385
+ "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz",
4386
+ "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==",
4387
+ "license": "MIT",
4388
+ "dependencies": {
4389
+ "@types/estree": "^1.0.0",
4390
+ "@types/hast": "^3.0.0",
4391
+ "@types/unist": "^3.0.0",
4392
+ "comma-separated-tokens": "^2.0.0",
4393
+ "devlop": "^1.0.0",
4394
+ "estree-util-is-identifier-name": "^3.0.0",
4395
+ "hast-util-whitespace": "^3.0.0",
4396
+ "mdast-util-mdx-expression": "^2.0.0",
4397
+ "mdast-util-mdx-jsx": "^3.0.0",
4398
+ "mdast-util-mdxjs-esm": "^2.0.0",
4399
+ "property-information": "^7.0.0",
4400
+ "space-separated-tokens": "^2.0.0",
4401
+ "style-to-js": "^1.0.0",
4402
+ "unist-util-position": "^5.0.0",
4403
+ "vfile-message": "^4.0.0"
4404
+ },
4405
+ "funding": {
4406
+ "type": "opencollective",
4407
+ "url": "https://opencollective.com/unified"
4408
+ }
4409
+ },
4410
+ "node_modules/hast-util-to-text": {
4411
+ "version": "4.0.2",
4412
+ "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz",
4413
+ "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==",
4414
+ "license": "MIT",
4415
+ "dependencies": {
4416
+ "@types/hast": "^3.0.0",
4417
+ "@types/unist": "^3.0.0",
4418
+ "hast-util-is-element": "^3.0.0",
4419
+ "unist-util-find-after": "^5.0.0"
4420
+ },
4421
+ "funding": {
4422
+ "type": "opencollective",
4423
+ "url": "https://opencollective.com/unified"
4424
+ }
4425
+ },
4426
+ "node_modules/hast-util-whitespace": {
4427
+ "version": "3.0.0",
4428
+ "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
4429
+ "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
4430
+ "license": "MIT",
4431
+ "dependencies": {
4432
+ "@types/hast": "^3.0.0"
4433
+ },
4434
+ "funding": {
4435
+ "type": "opencollective",
4436
+ "url": "https://opencollective.com/unified"
4437
+ }
4438
+ },
4439
  "node_modules/hastscript": {
4440
  "version": "9.0.1",
4441
  "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz",
 
4485
  "integrity": "sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==",
4486
  "license": "CC0-1.0"
4487
  },
4488
+ "node_modules/html-url-attributes": {
4489
+ "version": "3.0.1",
4490
+ "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz",
4491
+ "integrity": "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==",
4492
+ "license": "MIT",
4493
+ "funding": {
4494
+ "type": "opencollective",
4495
+ "url": "https://opencollective.com/unified"
4496
+ }
4497
+ },
4498
  "node_modules/ignore": {
4499
  "version": "5.3.2",
4500
  "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
 
4532
  "node": ">=0.8.19"
4533
  }
4534
  },
4535
+ "node_modules/inline-style-parser": {
4536
+ "version": "0.2.7",
4537
+ "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz",
4538
+ "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==",
4539
+ "license": "MIT"
4540
+ },
4541
  "node_modules/internal-slot": {
4542
  "version": "1.1.0",
4543
  "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz",
 
4867
  "url": "https://github.com/sponsors/ljharb"
4868
  }
4869
  },
4870
+ "node_modules/is-plain-obj": {
4871
+ "version": "4.1.0",
4872
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
4873
+ "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
4874
+ "license": "MIT",
4875
+ "engines": {
4876
+ "node": ">=12"
4877
+ },
4878
+ "funding": {
4879
+ "url": "https://github.com/sponsors/sindresorhus"
4880
+ }
4881
+ },
4882
  "node_modules/is-regex": {
4883
  "version": "1.2.1",
4884
  "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
 
5504
  "dev": true,
5505
  "license": "MIT"
5506
  },
5507
+ "node_modules/longest-streak": {
5508
+ "version": "3.1.0",
5509
+ "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz",
5510
+ "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==",
5511
+ "license": "MIT",
5512
+ "funding": {
5513
+ "type": "github",
5514
+ "url": "https://github.com/sponsors/wooorm"
5515
+ }
5516
+ },
5517
  "node_modules/loose-envify": {
5518
  "version": "1.4.0",
5519
  "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
 
5569
  "@jridgewell/sourcemap-codec": "^1.5.5"
5570
  }
5571
  },
5572
+ "node_modules/markdown-table": {
5573
+ "version": "3.0.4",
5574
+ "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz",
5575
+ "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==",
5576
+ "license": "MIT",
5577
+ "funding": {
5578
+ "type": "github",
5579
+ "url": "https://github.com/sponsors/wooorm"
5580
+ }
5581
+ },
5582
  "node_modules/math-intrinsics": {
5583
  "version": "1.1.0",
5584
  "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
 
5589
  "node": ">= 0.4"
5590
  }
5591
  },
5592
+ "node_modules/mdast-util-find-and-replace": {
5593
+ "version": "3.0.2",
5594
+ "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz",
5595
+ "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==",
 
5596
  "license": "MIT",
5597
+ "dependencies": {
5598
+ "@types/mdast": "^4.0.0",
5599
+ "escape-string-regexp": "^5.0.0",
5600
+ "unist-util-is": "^6.0.0",
5601
+ "unist-util-visit-parents": "^6.0.0"
5602
+ },
5603
+ "funding": {
5604
+ "type": "opencollective",
5605
+ "url": "https://opencollective.com/unified"
5606
  }
5607
  },
5608
+ "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": {
5609
+ "version": "5.0.0",
5610
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
5611
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
 
5612
  "license": "MIT",
 
 
 
 
5613
  "engines": {
5614
+ "node": ">=12"
5615
+ },
5616
+ "funding": {
5617
+ "url": "https://github.com/sponsors/sindresorhus"
5618
  }
5619
  },
5620
+ "node_modules/mdast-util-from-markdown": {
5621
+ "version": "2.0.3",
5622
+ "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz",
5623
+ "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==",
5624
+ "license": "MIT",
 
5625
  "dependencies": {
5626
+ "@types/mdast": "^4.0.0",
5627
+ "@types/unist": "^3.0.0",
5628
+ "decode-named-character-reference": "^1.0.0",
5629
+ "devlop": "^1.0.0",
5630
+ "mdast-util-to-string": "^4.0.0",
5631
+ "micromark": "^4.0.0",
5632
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
5633
+ "micromark-util-decode-string": "^2.0.0",
5634
+ "micromark-util-normalize-identifier": "^2.0.0",
5635
+ "micromark-util-symbol": "^2.0.0",
5636
+ "micromark-util-types": "^2.0.0",
5637
+ "unist-util-stringify-position": "^4.0.0"
5638
  },
5639
+ "funding": {
5640
+ "type": "opencollective",
5641
+ "url": "https://opencollective.com/unified"
5642
  }
5643
  },
5644
+ "node_modules/mdast-util-gfm": {
5645
+ "version": "3.1.0",
5646
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz",
5647
+ "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==",
 
5648
  "license": "MIT",
5649
+ "dependencies": {
5650
+ "mdast-util-from-markdown": "^2.0.0",
5651
+ "mdast-util-gfm-autolink-literal": "^2.0.0",
5652
+ "mdast-util-gfm-footnote": "^2.0.0",
5653
+ "mdast-util-gfm-strikethrough": "^2.0.0",
5654
+ "mdast-util-gfm-table": "^2.0.0",
5655
+ "mdast-util-gfm-task-list-item": "^2.0.0",
5656
+ "mdast-util-to-markdown": "^2.0.0"
5657
+ },
5658
  "funding": {
5659
+ "type": "opencollective",
5660
+ "url": "https://opencollective.com/unified"
5661
  }
5662
  },
5663
+ "node_modules/mdast-util-gfm-autolink-literal": {
5664
+ "version": "2.0.1",
5665
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz",
5666
+ "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==",
5667
  "license": "MIT",
5668
  "dependencies": {
5669
+ "@types/mdast": "^4.0.0",
5670
+ "ccount": "^2.0.0",
5671
+ "devlop": "^1.0.0",
5672
+ "mdast-util-find-and-replace": "^3.0.0",
5673
+ "micromark-util-character": "^2.0.0"
5674
+ },
5675
+ "funding": {
5676
+ "type": "opencollective",
5677
+ "url": "https://opencollective.com/unified"
5678
  }
5679
  },
5680
+ "node_modules/mdast-util-gfm-footnote": {
5681
+ "version": "2.1.0",
5682
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz",
5683
+ "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==",
5684
+ "license": "MIT",
5685
+ "dependencies": {
5686
+ "@types/mdast": "^4.0.0",
5687
+ "devlop": "^1.1.0",
5688
+ "mdast-util-from-markdown": "^2.0.0",
5689
+ "mdast-util-to-markdown": "^2.0.0",
5690
+ "micromark-util-normalize-identifier": "^2.0.0"
5691
+ },
5692
+ "funding": {
5693
+ "type": "opencollective",
5694
+ "url": "https://opencollective.com/unified"
5695
+ }
5696
+ },
5697
+ "node_modules/mdast-util-gfm-strikethrough": {
5698
+ "version": "2.0.0",
5699
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz",
5700
+ "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==",
5701
+ "license": "MIT",
5702
+ "dependencies": {
5703
+ "@types/mdast": "^4.0.0",
5704
+ "mdast-util-from-markdown": "^2.0.0",
5705
+ "mdast-util-to-markdown": "^2.0.0"
5706
+ },
5707
+ "funding": {
5708
+ "type": "opencollective",
5709
+ "url": "https://opencollective.com/unified"
5710
+ }
5711
+ },
5712
+ "node_modules/mdast-util-gfm-table": {
5713
+ "version": "2.0.0",
5714
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz",
5715
+ "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==",
5716
+ "license": "MIT",
5717
+ "dependencies": {
5718
+ "@types/mdast": "^4.0.0",
5719
+ "devlop": "^1.0.0",
5720
+ "markdown-table": "^3.0.0",
5721
+ "mdast-util-from-markdown": "^2.0.0",
5722
+ "mdast-util-to-markdown": "^2.0.0"
5723
+ },
5724
+ "funding": {
5725
+ "type": "opencollective",
5726
+ "url": "https://opencollective.com/unified"
5727
+ }
5728
+ },
5729
+ "node_modules/mdast-util-gfm-task-list-item": {
5730
+ "version": "2.0.0",
5731
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz",
5732
+ "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==",
5733
+ "license": "MIT",
5734
+ "dependencies": {
5735
+ "@types/mdast": "^4.0.0",
5736
+ "devlop": "^1.0.0",
5737
+ "mdast-util-from-markdown": "^2.0.0",
5738
+ "mdast-util-to-markdown": "^2.0.0"
5739
+ },
5740
+ "funding": {
5741
+ "type": "opencollective",
5742
+ "url": "https://opencollective.com/unified"
5743
+ }
5744
+ },
5745
+ "node_modules/mdast-util-math": {
5746
+ "version": "3.0.0",
5747
+ "resolved": "https://registry.npmjs.org/mdast-util-math/-/mdast-util-math-3.0.0.tgz",
5748
+ "integrity": "sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==",
5749
+ "license": "MIT",
5750
+ "dependencies": {
5751
+ "@types/hast": "^3.0.0",
5752
+ "@types/mdast": "^4.0.0",
5753
+ "devlop": "^1.0.0",
5754
+ "longest-streak": "^3.0.0",
5755
+ "mdast-util-from-markdown": "^2.0.0",
5756
+ "mdast-util-to-markdown": "^2.1.0",
5757
+ "unist-util-remove-position": "^5.0.0"
5758
+ },
5759
+ "funding": {
5760
+ "type": "opencollective",
5761
+ "url": "https://opencollective.com/unified"
5762
+ }
5763
+ },
5764
+ "node_modules/mdast-util-mdx-expression": {
5765
+ "version": "2.0.1",
5766
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz",
5767
+ "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==",
5768
+ "license": "MIT",
5769
+ "dependencies": {
5770
+ "@types/estree-jsx": "^1.0.0",
5771
+ "@types/hast": "^3.0.0",
5772
+ "@types/mdast": "^4.0.0",
5773
+ "devlop": "^1.0.0",
5774
+ "mdast-util-from-markdown": "^2.0.0",
5775
+ "mdast-util-to-markdown": "^2.0.0"
5776
+ },
5777
+ "funding": {
5778
+ "type": "opencollective",
5779
+ "url": "https://opencollective.com/unified"
5780
+ }
5781
+ },
5782
+ "node_modules/mdast-util-mdx-jsx": {
5783
+ "version": "3.2.0",
5784
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz",
5785
+ "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==",
5786
+ "license": "MIT",
5787
+ "dependencies": {
5788
+ "@types/estree-jsx": "^1.0.0",
5789
+ "@types/hast": "^3.0.0",
5790
+ "@types/mdast": "^4.0.0",
5791
+ "@types/unist": "^3.0.0",
5792
+ "ccount": "^2.0.0",
5793
+ "devlop": "^1.1.0",
5794
+ "mdast-util-from-markdown": "^2.0.0",
5795
+ "mdast-util-to-markdown": "^2.0.0",
5796
+ "parse-entities": "^4.0.0",
5797
+ "stringify-entities": "^4.0.0",
5798
+ "unist-util-stringify-position": "^4.0.0",
5799
+ "vfile-message": "^4.0.0"
5800
+ },
5801
+ "funding": {
5802
+ "type": "opencollective",
5803
+ "url": "https://opencollective.com/unified"
5804
+ }
5805
+ },
5806
+ "node_modules/mdast-util-mdxjs-esm": {
5807
+ "version": "2.0.1",
5808
+ "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz",
5809
+ "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==",
5810
+ "license": "MIT",
5811
+ "dependencies": {
5812
+ "@types/estree-jsx": "^1.0.0",
5813
+ "@types/hast": "^3.0.0",
5814
+ "@types/mdast": "^4.0.0",
5815
+ "devlop": "^1.0.0",
5816
+ "mdast-util-from-markdown": "^2.0.0",
5817
+ "mdast-util-to-markdown": "^2.0.0"
5818
+ },
5819
+ "funding": {
5820
+ "type": "opencollective",
5821
+ "url": "https://opencollective.com/unified"
5822
+ }
5823
+ },
5824
+ "node_modules/mdast-util-phrasing": {
5825
+ "version": "4.1.0",
5826
+ "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz",
5827
+ "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==",
5828
+ "license": "MIT",
5829
+ "dependencies": {
5830
+ "@types/mdast": "^4.0.0",
5831
+ "unist-util-is": "^6.0.0"
5832
+ },
5833
+ "funding": {
5834
+ "type": "opencollective",
5835
+ "url": "https://opencollective.com/unified"
5836
+ }
5837
+ },
5838
+ "node_modules/mdast-util-to-hast": {
5839
+ "version": "13.2.1",
5840
+ "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz",
5841
+ "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==",
5842
+ "license": "MIT",
5843
+ "dependencies": {
5844
+ "@types/hast": "^3.0.0",
5845
+ "@types/mdast": "^4.0.0",
5846
+ "@ungap/structured-clone": "^1.0.0",
5847
+ "devlop": "^1.0.0",
5848
+ "micromark-util-sanitize-uri": "^2.0.0",
5849
+ "trim-lines": "^3.0.0",
5850
+ "unist-util-position": "^5.0.0",
5851
+ "unist-util-visit": "^5.0.0",
5852
+ "vfile": "^6.0.0"
5853
+ },
5854
+ "funding": {
5855
+ "type": "opencollective",
5856
+ "url": "https://opencollective.com/unified"
5857
+ }
5858
+ },
5859
+ "node_modules/mdast-util-to-markdown": {
5860
+ "version": "2.1.2",
5861
+ "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz",
5862
+ "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==",
5863
+ "license": "MIT",
5864
+ "dependencies": {
5865
+ "@types/mdast": "^4.0.0",
5866
+ "@types/unist": "^3.0.0",
5867
+ "longest-streak": "^3.0.0",
5868
+ "mdast-util-phrasing": "^4.0.0",
5869
+ "mdast-util-to-string": "^4.0.0",
5870
+ "micromark-util-classify-character": "^2.0.0",
5871
+ "micromark-util-decode-string": "^2.0.0",
5872
+ "unist-util-visit": "^5.0.0",
5873
+ "zwitch": "^2.0.0"
5874
+ },
5875
+ "funding": {
5876
+ "type": "opencollective",
5877
+ "url": "https://opencollective.com/unified"
5878
+ }
5879
+ },
5880
+ "node_modules/mdast-util-to-string": {
5881
+ "version": "4.0.0",
5882
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
5883
+ "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
5884
+ "license": "MIT",
5885
+ "dependencies": {
5886
+ "@types/mdast": "^4.0.0"
5887
+ },
5888
+ "funding": {
5889
+ "type": "opencollective",
5890
+ "url": "https://opencollective.com/unified"
5891
+ }
5892
+ },
5893
+ "node_modules/merge2": {
5894
+ "version": "1.4.1",
5895
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
5896
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
5897
+ "dev": true,
5898
+ "license": "MIT",
5899
+ "engines": {
5900
+ "node": ">= 8"
5901
+ }
5902
+ },
5903
+ "node_modules/micromark": {
5904
+ "version": "4.0.2",
5905
+ "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz",
5906
+ "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==",
5907
+ "funding": [
5908
+ {
5909
+ "type": "GitHub Sponsors",
5910
+ "url": "https://github.com/sponsors/unifiedjs"
5911
+ },
5912
+ {
5913
+ "type": "OpenCollective",
5914
+ "url": "https://opencollective.com/unified"
5915
+ }
5916
+ ],
5917
+ "license": "MIT",
5918
+ "dependencies": {
5919
+ "@types/debug": "^4.0.0",
5920
+ "debug": "^4.0.0",
5921
+ "decode-named-character-reference": "^1.0.0",
5922
+ "devlop": "^1.0.0",
5923
+ "micromark-core-commonmark": "^2.0.0",
5924
+ "micromark-factory-space": "^2.0.0",
5925
+ "micromark-util-character": "^2.0.0",
5926
+ "micromark-util-chunked": "^2.0.0",
5927
+ "micromark-util-combine-extensions": "^2.0.0",
5928
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
5929
+ "micromark-util-encode": "^2.0.0",
5930
+ "micromark-util-normalize-identifier": "^2.0.0",
5931
+ "micromark-util-resolve-all": "^2.0.0",
5932
+ "micromark-util-sanitize-uri": "^2.0.0",
5933
+ "micromark-util-subtokenize": "^2.0.0",
5934
+ "micromark-util-symbol": "^2.0.0",
5935
+ "micromark-util-types": "^2.0.0"
5936
+ }
5937
+ },
5938
+ "node_modules/micromark-core-commonmark": {
5939
+ "version": "2.0.3",
5940
+ "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz",
5941
+ "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==",
5942
+ "funding": [
5943
+ {
5944
+ "type": "GitHub Sponsors",
5945
+ "url": "https://github.com/sponsors/unifiedjs"
5946
+ },
5947
+ {
5948
+ "type": "OpenCollective",
5949
+ "url": "https://opencollective.com/unified"
5950
+ }
5951
+ ],
5952
+ "license": "MIT",
5953
+ "dependencies": {
5954
+ "decode-named-character-reference": "^1.0.0",
5955
+ "devlop": "^1.0.0",
5956
+ "micromark-factory-destination": "^2.0.0",
5957
+ "micromark-factory-label": "^2.0.0",
5958
+ "micromark-factory-space": "^2.0.0",
5959
+ "micromark-factory-title": "^2.0.0",
5960
+ "micromark-factory-whitespace": "^2.0.0",
5961
+ "micromark-util-character": "^2.0.0",
5962
+ "micromark-util-chunked": "^2.0.0",
5963
+ "micromark-util-classify-character": "^2.0.0",
5964
+ "micromark-util-html-tag-name": "^2.0.0",
5965
+ "micromark-util-normalize-identifier": "^2.0.0",
5966
+ "micromark-util-resolve-all": "^2.0.0",
5967
+ "micromark-util-subtokenize": "^2.0.0",
5968
+ "micromark-util-symbol": "^2.0.0",
5969
+ "micromark-util-types": "^2.0.0"
5970
+ }
5971
+ },
5972
+ "node_modules/micromark-extension-gfm": {
5973
+ "version": "3.0.0",
5974
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz",
5975
+ "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==",
5976
+ "license": "MIT",
5977
+ "dependencies": {
5978
+ "micromark-extension-gfm-autolink-literal": "^2.0.0",
5979
+ "micromark-extension-gfm-footnote": "^2.0.0",
5980
+ "micromark-extension-gfm-strikethrough": "^2.0.0",
5981
+ "micromark-extension-gfm-table": "^2.0.0",
5982
+ "micromark-extension-gfm-tagfilter": "^2.0.0",
5983
+ "micromark-extension-gfm-task-list-item": "^2.0.0",
5984
+ "micromark-util-combine-extensions": "^2.0.0",
5985
+ "micromark-util-types": "^2.0.0"
5986
+ },
5987
+ "funding": {
5988
+ "type": "opencollective",
5989
+ "url": "https://opencollective.com/unified"
5990
+ }
5991
+ },
5992
+ "node_modules/micromark-extension-gfm-autolink-literal": {
5993
+ "version": "2.1.0",
5994
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz",
5995
+ "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==",
5996
+ "license": "MIT",
5997
+ "dependencies": {
5998
+ "micromark-util-character": "^2.0.0",
5999
+ "micromark-util-sanitize-uri": "^2.0.0",
6000
+ "micromark-util-symbol": "^2.0.0",
6001
+ "micromark-util-types": "^2.0.0"
6002
+ },
6003
+ "funding": {
6004
+ "type": "opencollective",
6005
+ "url": "https://opencollective.com/unified"
6006
+ }
6007
+ },
6008
+ "node_modules/micromark-extension-gfm-footnote": {
6009
+ "version": "2.1.0",
6010
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz",
6011
+ "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==",
6012
+ "license": "MIT",
6013
+ "dependencies": {
6014
+ "devlop": "^1.0.0",
6015
+ "micromark-core-commonmark": "^2.0.0",
6016
+ "micromark-factory-space": "^2.0.0",
6017
+ "micromark-util-character": "^2.0.0",
6018
+ "micromark-util-normalize-identifier": "^2.0.0",
6019
+ "micromark-util-sanitize-uri": "^2.0.0",
6020
+ "micromark-util-symbol": "^2.0.0",
6021
+ "micromark-util-types": "^2.0.0"
6022
+ },
6023
+ "funding": {
6024
+ "type": "opencollective",
6025
+ "url": "https://opencollective.com/unified"
6026
+ }
6027
+ },
6028
+ "node_modules/micromark-extension-gfm-strikethrough": {
6029
+ "version": "2.1.0",
6030
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz",
6031
+ "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==",
6032
+ "license": "MIT",
6033
+ "dependencies": {
6034
+ "devlop": "^1.0.0",
6035
+ "micromark-util-chunked": "^2.0.0",
6036
+ "micromark-util-classify-character": "^2.0.0",
6037
+ "micromark-util-resolve-all": "^2.0.0",
6038
+ "micromark-util-symbol": "^2.0.0",
6039
+ "micromark-util-types": "^2.0.0"
6040
+ },
6041
+ "funding": {
6042
+ "type": "opencollective",
6043
+ "url": "https://opencollective.com/unified"
6044
+ }
6045
+ },
6046
+ "node_modules/micromark-extension-gfm-table": {
6047
+ "version": "2.1.1",
6048
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz",
6049
+ "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==",
6050
+ "license": "MIT",
6051
+ "dependencies": {
6052
+ "devlop": "^1.0.0",
6053
+ "micromark-factory-space": "^2.0.0",
6054
+ "micromark-util-character": "^2.0.0",
6055
+ "micromark-util-symbol": "^2.0.0",
6056
+ "micromark-util-types": "^2.0.0"
6057
+ },
6058
+ "funding": {
6059
+ "type": "opencollective",
6060
+ "url": "https://opencollective.com/unified"
6061
+ }
6062
+ },
6063
+ "node_modules/micromark-extension-gfm-tagfilter": {
6064
+ "version": "2.0.0",
6065
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz",
6066
+ "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==",
6067
+ "license": "MIT",
6068
+ "dependencies": {
6069
+ "micromark-util-types": "^2.0.0"
6070
+ },
6071
+ "funding": {
6072
+ "type": "opencollective",
6073
+ "url": "https://opencollective.com/unified"
6074
+ }
6075
+ },
6076
+ "node_modules/micromark-extension-gfm-task-list-item": {
6077
+ "version": "2.1.0",
6078
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz",
6079
+ "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==",
6080
+ "license": "MIT",
6081
+ "dependencies": {
6082
+ "devlop": "^1.0.0",
6083
+ "micromark-factory-space": "^2.0.0",
6084
+ "micromark-util-character": "^2.0.0",
6085
+ "micromark-util-symbol": "^2.0.0",
6086
+ "micromark-util-types": "^2.0.0"
6087
+ },
6088
+ "funding": {
6089
+ "type": "opencollective",
6090
+ "url": "https://opencollective.com/unified"
6091
+ }
6092
+ },
6093
+ "node_modules/micromark-extension-math": {
6094
+ "version": "3.1.0",
6095
+ "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz",
6096
+ "integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==",
6097
+ "license": "MIT",
6098
+ "dependencies": {
6099
+ "@types/katex": "^0.16.0",
6100
+ "devlop": "^1.0.0",
6101
+ "katex": "^0.16.0",
6102
+ "micromark-factory-space": "^2.0.0",
6103
+ "micromark-util-character": "^2.0.0",
6104
+ "micromark-util-symbol": "^2.0.0",
6105
+ "micromark-util-types": "^2.0.0"
6106
+ },
6107
+ "funding": {
6108
+ "type": "opencollective",
6109
+ "url": "https://opencollective.com/unified"
6110
+ }
6111
+ },
6112
+ "node_modules/micromark-factory-destination": {
6113
+ "version": "2.0.1",
6114
+ "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz",
6115
+ "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==",
6116
+ "funding": [
6117
+ {
6118
+ "type": "GitHub Sponsors",
6119
+ "url": "https://github.com/sponsors/unifiedjs"
6120
+ },
6121
+ {
6122
+ "type": "OpenCollective",
6123
+ "url": "https://opencollective.com/unified"
6124
+ }
6125
+ ],
6126
+ "license": "MIT",
6127
+ "dependencies": {
6128
+ "micromark-util-character": "^2.0.0",
6129
+ "micromark-util-symbol": "^2.0.0",
6130
+ "micromark-util-types": "^2.0.0"
6131
+ }
6132
+ },
6133
+ "node_modules/micromark-factory-label": {
6134
+ "version": "2.0.1",
6135
+ "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz",
6136
+ "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==",
6137
+ "funding": [
6138
+ {
6139
+ "type": "GitHub Sponsors",
6140
+ "url": "https://github.com/sponsors/unifiedjs"
6141
+ },
6142
+ {
6143
+ "type": "OpenCollective",
6144
+ "url": "https://opencollective.com/unified"
6145
+ }
6146
+ ],
6147
+ "license": "MIT",
6148
+ "dependencies": {
6149
+ "devlop": "^1.0.0",
6150
+ "micromark-util-character": "^2.0.0",
6151
+ "micromark-util-symbol": "^2.0.0",
6152
+ "micromark-util-types": "^2.0.0"
6153
+ }
6154
+ },
6155
+ "node_modules/micromark-factory-space": {
6156
+ "version": "2.0.1",
6157
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
6158
+ "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
6159
+ "funding": [
6160
+ {
6161
+ "type": "GitHub Sponsors",
6162
+ "url": "https://github.com/sponsors/unifiedjs"
6163
+ },
6164
+ {
6165
+ "type": "OpenCollective",
6166
+ "url": "https://opencollective.com/unified"
6167
+ }
6168
+ ],
6169
+ "license": "MIT",
6170
+ "dependencies": {
6171
+ "micromark-util-character": "^2.0.0",
6172
+ "micromark-util-types": "^2.0.0"
6173
+ }
6174
+ },
6175
+ "node_modules/micromark-factory-title": {
6176
+ "version": "2.0.1",
6177
+ "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz",
6178
+ "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==",
6179
+ "funding": [
6180
+ {
6181
+ "type": "GitHub Sponsors",
6182
+ "url": "https://github.com/sponsors/unifiedjs"
6183
+ },
6184
+ {
6185
+ "type": "OpenCollective",
6186
+ "url": "https://opencollective.com/unified"
6187
+ }
6188
+ ],
6189
+ "license": "MIT",
6190
+ "dependencies": {
6191
+ "micromark-factory-space": "^2.0.0",
6192
+ "micromark-util-character": "^2.0.0",
6193
+ "micromark-util-symbol": "^2.0.0",
6194
+ "micromark-util-types": "^2.0.0"
6195
+ }
6196
+ },
6197
+ "node_modules/micromark-factory-whitespace": {
6198
+ "version": "2.0.1",
6199
+ "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz",
6200
+ "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==",
6201
+ "funding": [
6202
+ {
6203
+ "type": "GitHub Sponsors",
6204
+ "url": "https://github.com/sponsors/unifiedjs"
6205
+ },
6206
+ {
6207
+ "type": "OpenCollective",
6208
+ "url": "https://opencollective.com/unified"
6209
+ }
6210
+ ],
6211
+ "license": "MIT",
6212
+ "dependencies": {
6213
+ "micromark-factory-space": "^2.0.0",
6214
+ "micromark-util-character": "^2.0.0",
6215
+ "micromark-util-symbol": "^2.0.0",
6216
+ "micromark-util-types": "^2.0.0"
6217
+ }
6218
+ },
6219
+ "node_modules/micromark-util-character": {
6220
+ "version": "2.1.1",
6221
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
6222
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
6223
+ "funding": [
6224
+ {
6225
+ "type": "GitHub Sponsors",
6226
+ "url": "https://github.com/sponsors/unifiedjs"
6227
+ },
6228
+ {
6229
+ "type": "OpenCollective",
6230
+ "url": "https://opencollective.com/unified"
6231
+ }
6232
+ ],
6233
+ "license": "MIT",
6234
+ "dependencies": {
6235
+ "micromark-util-symbol": "^2.0.0",
6236
+ "micromark-util-types": "^2.0.0"
6237
+ }
6238
+ },
6239
+ "node_modules/micromark-util-chunked": {
6240
+ "version": "2.0.1",
6241
+ "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz",
6242
+ "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==",
6243
+ "funding": [
6244
+ {
6245
+ "type": "GitHub Sponsors",
6246
+ "url": "https://github.com/sponsors/unifiedjs"
6247
+ },
6248
+ {
6249
+ "type": "OpenCollective",
6250
+ "url": "https://opencollective.com/unified"
6251
+ }
6252
+ ],
6253
+ "license": "MIT",
6254
+ "dependencies": {
6255
+ "micromark-util-symbol": "^2.0.0"
6256
+ }
6257
+ },
6258
+ "node_modules/micromark-util-classify-character": {
6259
+ "version": "2.0.1",
6260
+ "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz",
6261
+ "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==",
6262
+ "funding": [
6263
+ {
6264
+ "type": "GitHub Sponsors",
6265
+ "url": "https://github.com/sponsors/unifiedjs"
6266
+ },
6267
+ {
6268
+ "type": "OpenCollective",
6269
+ "url": "https://opencollective.com/unified"
6270
+ }
6271
+ ],
6272
+ "license": "MIT",
6273
+ "dependencies": {
6274
+ "micromark-util-character": "^2.0.0",
6275
+ "micromark-util-symbol": "^2.0.0",
6276
+ "micromark-util-types": "^2.0.0"
6277
+ }
6278
+ },
6279
+ "node_modules/micromark-util-combine-extensions": {
6280
+ "version": "2.0.1",
6281
+ "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz",
6282
+ "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==",
6283
+ "funding": [
6284
+ {
6285
+ "type": "GitHub Sponsors",
6286
+ "url": "https://github.com/sponsors/unifiedjs"
6287
+ },
6288
+ {
6289
+ "type": "OpenCollective",
6290
+ "url": "https://opencollective.com/unified"
6291
+ }
6292
+ ],
6293
+ "license": "MIT",
6294
+ "dependencies": {
6295
+ "micromark-util-chunked": "^2.0.0",
6296
+ "micromark-util-types": "^2.0.0"
6297
+ }
6298
+ },
6299
+ "node_modules/micromark-util-decode-numeric-character-reference": {
6300
+ "version": "2.0.2",
6301
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz",
6302
+ "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==",
6303
+ "funding": [
6304
+ {
6305
+ "type": "GitHub Sponsors",
6306
+ "url": "https://github.com/sponsors/unifiedjs"
6307
+ },
6308
+ {
6309
+ "type": "OpenCollective",
6310
+ "url": "https://opencollective.com/unified"
6311
+ }
6312
+ ],
6313
+ "license": "MIT",
6314
+ "dependencies": {
6315
+ "micromark-util-symbol": "^2.0.0"
6316
+ }
6317
+ },
6318
+ "node_modules/micromark-util-decode-string": {
6319
+ "version": "2.0.1",
6320
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz",
6321
+ "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==",
6322
+ "funding": [
6323
+ {
6324
+ "type": "GitHub Sponsors",
6325
+ "url": "https://github.com/sponsors/unifiedjs"
6326
+ },
6327
+ {
6328
+ "type": "OpenCollective",
6329
+ "url": "https://opencollective.com/unified"
6330
+ }
6331
+ ],
6332
+ "license": "MIT",
6333
+ "dependencies": {
6334
+ "decode-named-character-reference": "^1.0.0",
6335
+ "micromark-util-character": "^2.0.0",
6336
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
6337
+ "micromark-util-symbol": "^2.0.0"
6338
+ }
6339
+ },
6340
+ "node_modules/micromark-util-encode": {
6341
+ "version": "2.0.1",
6342
+ "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz",
6343
+ "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==",
6344
+ "funding": [
6345
+ {
6346
+ "type": "GitHub Sponsors",
6347
+ "url": "https://github.com/sponsors/unifiedjs"
6348
+ },
6349
+ {
6350
+ "type": "OpenCollective",
6351
+ "url": "https://opencollective.com/unified"
6352
+ }
6353
+ ],
6354
+ "license": "MIT"
6355
+ },
6356
+ "node_modules/micromark-util-html-tag-name": {
6357
+ "version": "2.0.1",
6358
+ "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz",
6359
+ "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==",
6360
+ "funding": [
6361
+ {
6362
+ "type": "GitHub Sponsors",
6363
+ "url": "https://github.com/sponsors/unifiedjs"
6364
+ },
6365
+ {
6366
+ "type": "OpenCollective",
6367
+ "url": "https://opencollective.com/unified"
6368
+ }
6369
+ ],
6370
+ "license": "MIT"
6371
+ },
6372
+ "node_modules/micromark-util-normalize-identifier": {
6373
+ "version": "2.0.1",
6374
+ "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz",
6375
+ "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==",
6376
+ "funding": [
6377
+ {
6378
+ "type": "GitHub Sponsors",
6379
+ "url": "https://github.com/sponsors/unifiedjs"
6380
+ },
6381
+ {
6382
+ "type": "OpenCollective",
6383
+ "url": "https://opencollective.com/unified"
6384
+ }
6385
+ ],
6386
+ "license": "MIT",
6387
+ "dependencies": {
6388
+ "micromark-util-symbol": "^2.0.0"
6389
+ }
6390
+ },
6391
+ "node_modules/micromark-util-resolve-all": {
6392
+ "version": "2.0.1",
6393
+ "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz",
6394
+ "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==",
6395
+ "funding": [
6396
+ {
6397
+ "type": "GitHub Sponsors",
6398
+ "url": "https://github.com/sponsors/unifiedjs"
6399
+ },
6400
+ {
6401
+ "type": "OpenCollective",
6402
+ "url": "https://opencollective.com/unified"
6403
+ }
6404
+ ],
6405
+ "license": "MIT",
6406
+ "dependencies": {
6407
+ "micromark-util-types": "^2.0.0"
6408
+ }
6409
+ },
6410
+ "node_modules/micromark-util-sanitize-uri": {
6411
+ "version": "2.0.1",
6412
+ "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz",
6413
+ "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==",
6414
+ "funding": [
6415
+ {
6416
+ "type": "GitHub Sponsors",
6417
+ "url": "https://github.com/sponsors/unifiedjs"
6418
+ },
6419
+ {
6420
+ "type": "OpenCollective",
6421
+ "url": "https://opencollective.com/unified"
6422
+ }
6423
+ ],
6424
+ "license": "MIT",
6425
+ "dependencies": {
6426
+ "micromark-util-character": "^2.0.0",
6427
+ "micromark-util-encode": "^2.0.0",
6428
+ "micromark-util-symbol": "^2.0.0"
6429
+ }
6430
+ },
6431
+ "node_modules/micromark-util-subtokenize": {
6432
+ "version": "2.1.0",
6433
+ "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz",
6434
+ "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==",
6435
+ "funding": [
6436
+ {
6437
+ "type": "GitHub Sponsors",
6438
+ "url": "https://github.com/sponsors/unifiedjs"
6439
+ },
6440
+ {
6441
+ "type": "OpenCollective",
6442
+ "url": "https://opencollective.com/unified"
6443
+ }
6444
+ ],
6445
+ "license": "MIT",
6446
+ "dependencies": {
6447
+ "devlop": "^1.0.0",
6448
+ "micromark-util-chunked": "^2.0.0",
6449
+ "micromark-util-symbol": "^2.0.0",
6450
+ "micromark-util-types": "^2.0.0"
6451
+ }
6452
+ },
6453
+ "node_modules/micromark-util-symbol": {
6454
+ "version": "2.0.1",
6455
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
6456
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
6457
+ "funding": [
6458
+ {
6459
+ "type": "GitHub Sponsors",
6460
+ "url": "https://github.com/sponsors/unifiedjs"
6461
+ },
6462
+ {
6463
+ "type": "OpenCollective",
6464
+ "url": "https://opencollective.com/unified"
6465
+ }
6466
+ ],
6467
+ "license": "MIT"
6468
+ },
6469
+ "node_modules/micromark-util-types": {
6470
+ "version": "2.0.2",
6471
+ "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz",
6472
+ "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==",
6473
+ "funding": [
6474
+ {
6475
+ "type": "GitHub Sponsors",
6476
+ "url": "https://github.com/sponsors/unifiedjs"
6477
+ },
6478
+ {
6479
+ "type": "OpenCollective",
6480
+ "url": "https://opencollective.com/unified"
6481
+ }
6482
+ ],
6483
+ "license": "MIT"
6484
+ },
6485
+ "node_modules/micromatch": {
6486
+ "version": "4.0.8",
6487
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
6488
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
6489
+ "dev": true,
6490
+ "license": "MIT",
6491
+ "dependencies": {
6492
+ "braces": "^3.0.3",
6493
+ "picomatch": "^2.3.1"
6494
+ },
6495
+ "engines": {
6496
+ "node": ">=8.6"
6497
+ }
6498
+ },
6499
+ "node_modules/minimatch": {
6500
+ "version": "3.1.5",
6501
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
6502
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
6503
+ "dev": true,
6504
+ "license": "ISC",
6505
+ "dependencies": {
6506
+ "brace-expansion": "^1.1.7"
6507
+ },
6508
+ "engines": {
6509
+ "node": "*"
6510
+ }
6511
+ },
6512
+ "node_modules/minimist": {
6513
+ "version": "1.2.8",
6514
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
6515
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
6516
+ "dev": true,
6517
+ "license": "MIT",
6518
+ "funding": {
6519
+ "url": "https://github.com/sponsors/ljharb"
6520
+ }
6521
+ },
6522
+ "node_modules/motion-dom": {
6523
+ "version": "12.38.0",
6524
+ "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.38.0.tgz",
6525
+ "integrity": "sha512-pdkHLD8QYRp8VfiNLb8xIBJis1byQ9gPT3Jnh2jqfFtAsWUA3dEepDlsWe/xMpO8McV+VdpKVcp+E+TGJEtOoA==",
6526
+ "license": "MIT",
6527
+ "dependencies": {
6528
+ "motion-utils": "^12.36.0"
6529
+ }
6530
+ },
6531
+ "node_modules/motion-utils": {
6532
+ "version": "12.36.0",
6533
  "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.36.0.tgz",
6534
  "integrity": "sha512-eHWisygbiwVvf6PZ1vhaHCLamvkSbPIeAYxWUuL3a2PD/TROgE7FvfHWTIH4vMl798QLfMw15nRqIaRDXTlYRg==",
6535
  "license": "MIT"
 
6538
  "version": "2.1.3",
6539
  "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
6540
  "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
 
6541
  "license": "MIT"
6542
  },
6543
  "node_modules/nanoid": {
 
6916
  "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
6917
  "license": "MIT"
6918
  },
6919
+ "node_modules/parse5": {
6920
+ "version": "7.3.0",
6921
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
6922
+ "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
6923
+ "license": "MIT",
6924
+ "dependencies": {
6925
+ "entities": "^6.0.0"
6926
+ },
6927
+ "funding": {
6928
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
6929
+ }
6930
+ },
6931
  "node_modules/path-exists": {
6932
  "version": "4.0.0",
6933
  "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
 
7124
  "react": ">=15.3.2 <20"
7125
  }
7126
  },
7127
+ "node_modules/react-markdown": {
7128
+ "version": "10.1.0",
7129
+ "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-10.1.0.tgz",
7130
+ "integrity": "sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==",
7131
+ "license": "MIT",
7132
+ "dependencies": {
7133
+ "@types/hast": "^3.0.0",
7134
+ "@types/mdast": "^4.0.0",
7135
+ "devlop": "^1.0.0",
7136
+ "hast-util-to-jsx-runtime": "^2.0.0",
7137
+ "html-url-attributes": "^3.0.0",
7138
+ "mdast-util-to-hast": "^13.0.0",
7139
+ "remark-parse": "^11.0.0",
7140
+ "remark-rehype": "^11.0.0",
7141
+ "unified": "^11.0.0",
7142
+ "unist-util-visit": "^5.0.0",
7143
+ "vfile": "^6.0.0"
7144
+ },
7145
+ "funding": {
7146
+ "type": "opencollective",
7147
+ "url": "https://opencollective.com/unified"
7148
+ },
7149
+ "peerDependencies": {
7150
+ "@types/react": ">=18",
7151
+ "react": ">=18"
7152
+ }
7153
+ },
7154
  "node_modules/react-syntax-highlighter": {
7155
  "version": "16.1.1",
7156
  "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-16.1.1.tgz",
 
7231
  "url": "https://github.com/sponsors/ljharb"
7232
  }
7233
  },
7234
+ "node_modules/rehype-katex": {
7235
+ "version": "7.0.1",
7236
+ "resolved": "https://registry.npmjs.org/rehype-katex/-/rehype-katex-7.0.1.tgz",
7237
+ "integrity": "sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==",
7238
+ "license": "MIT",
7239
+ "dependencies": {
7240
+ "@types/hast": "^3.0.0",
7241
+ "@types/katex": "^0.16.0",
7242
+ "hast-util-from-html-isomorphic": "^2.0.0",
7243
+ "hast-util-to-text": "^4.0.0",
7244
+ "katex": "^0.16.0",
7245
+ "unist-util-visit-parents": "^6.0.0",
7246
+ "vfile": "^6.0.0"
7247
+ },
7248
+ "funding": {
7249
+ "type": "opencollective",
7250
+ "url": "https://opencollective.com/unified"
7251
+ }
7252
+ },
7253
+ "node_modules/remark-gfm": {
7254
+ "version": "4.0.1",
7255
+ "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz",
7256
+ "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==",
7257
+ "license": "MIT",
7258
+ "dependencies": {
7259
+ "@types/mdast": "^4.0.0",
7260
+ "mdast-util-gfm": "^3.0.0",
7261
+ "micromark-extension-gfm": "^3.0.0",
7262
+ "remark-parse": "^11.0.0",
7263
+ "remark-stringify": "^11.0.0",
7264
+ "unified": "^11.0.0"
7265
+ },
7266
+ "funding": {
7267
+ "type": "opencollective",
7268
+ "url": "https://opencollective.com/unified"
7269
+ }
7270
+ },
7271
+ "node_modules/remark-math": {
7272
+ "version": "6.0.0",
7273
+ "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-6.0.0.tgz",
7274
+ "integrity": "sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==",
7275
+ "license": "MIT",
7276
+ "dependencies": {
7277
+ "@types/mdast": "^4.0.0",
7278
+ "mdast-util-math": "^3.0.0",
7279
+ "micromark-extension-math": "^3.0.0",
7280
+ "unified": "^11.0.0"
7281
+ },
7282
+ "funding": {
7283
+ "type": "opencollective",
7284
+ "url": "https://opencollective.com/unified"
7285
+ }
7286
+ },
7287
+ "node_modules/remark-parse": {
7288
+ "version": "11.0.0",
7289
+ "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz",
7290
+ "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==",
7291
+ "license": "MIT",
7292
+ "dependencies": {
7293
+ "@types/mdast": "^4.0.0",
7294
+ "mdast-util-from-markdown": "^2.0.0",
7295
+ "micromark-util-types": "^2.0.0",
7296
+ "unified": "^11.0.0"
7297
+ },
7298
+ "funding": {
7299
+ "type": "opencollective",
7300
+ "url": "https://opencollective.com/unified"
7301
+ }
7302
+ },
7303
+ "node_modules/remark-rehype": {
7304
+ "version": "11.1.2",
7305
+ "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz",
7306
+ "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==",
7307
+ "license": "MIT",
7308
+ "dependencies": {
7309
+ "@types/hast": "^3.0.0",
7310
+ "@types/mdast": "^4.0.0",
7311
+ "mdast-util-to-hast": "^13.0.0",
7312
+ "unified": "^11.0.0",
7313
+ "vfile": "^6.0.0"
7314
+ },
7315
+ "funding": {
7316
+ "type": "opencollective",
7317
+ "url": "https://opencollective.com/unified"
7318
+ }
7319
+ },
7320
+ "node_modules/remark-stringify": {
7321
+ "version": "11.0.0",
7322
+ "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz",
7323
+ "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==",
7324
+ "license": "MIT",
7325
+ "dependencies": {
7326
+ "@types/mdast": "^4.0.0",
7327
+ "mdast-util-to-markdown": "^2.0.0",
7328
+ "unified": "^11.0.0"
7329
+ },
7330
+ "funding": {
7331
+ "type": "opencollective",
7332
+ "url": "https://opencollective.com/unified"
7333
+ }
7334
+ },
7335
  "node_modules/resolve": {
7336
  "version": "2.0.0-next.6",
7337
  "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.6.tgz",
 
7841
  "url": "https://github.com/sponsors/ljharb"
7842
  }
7843
  },
7844
+ "node_modules/stringify-entities": {
7845
+ "version": "4.0.4",
7846
+ "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz",
7847
+ "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
7848
+ "license": "MIT",
7849
+ "dependencies": {
7850
+ "character-entities-html4": "^2.0.0",
7851
+ "character-entities-legacy": "^3.0.0"
7852
+ },
7853
+ "funding": {
7854
+ "type": "github",
7855
+ "url": "https://github.com/sponsors/wooorm"
7856
+ }
7857
+ },
7858
  "node_modules/strip-bom": {
7859
  "version": "3.0.0",
7860
  "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
 
7878
  "url": "https://github.com/sponsors/sindresorhus"
7879
  }
7880
  },
7881
+ "node_modules/style-to-js": {
7882
+ "version": "1.1.21",
7883
+ "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz",
7884
+ "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==",
7885
+ "license": "MIT",
7886
+ "dependencies": {
7887
+ "style-to-object": "1.0.14"
7888
+ }
7889
+ },
7890
+ "node_modules/style-to-object": {
7891
+ "version": "1.0.14",
7892
+ "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz",
7893
+ "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==",
7894
+ "license": "MIT",
7895
+ "dependencies": {
7896
+ "inline-style-parser": "0.2.7"
7897
+ }
7898
+ },
7899
  "node_modules/styled-jsx": {
7900
  "version": "5.1.6",
7901
  "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz",
 
8037
  "node": ">=8.0"
8038
  }
8039
  },
8040
+ "node_modules/trim-lines": {
8041
+ "version": "3.0.1",
8042
+ "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
8043
+ "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
8044
+ "license": "MIT",
8045
+ "funding": {
8046
+ "type": "github",
8047
+ "url": "https://github.com/sponsors/wooorm"
8048
+ }
8049
+ },
8050
+ "node_modules/trough": {
8051
+ "version": "2.2.0",
8052
+ "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz",
8053
+ "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==",
8054
+ "license": "MIT",
8055
+ "funding": {
8056
+ "type": "github",
8057
+ "url": "https://github.com/sponsors/wooorm"
8058
+ }
8059
+ },
8060
  "node_modules/ts-api-utils": {
8061
  "version": "2.5.0",
8062
  "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz",
 
8257
  "dev": true,
8258
  "license": "MIT"
8259
  },
8260
+ "node_modules/unified": {
8261
+ "version": "11.0.5",
8262
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz",
8263
+ "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==",
8264
+ "license": "MIT",
8265
+ "dependencies": {
8266
+ "@types/unist": "^3.0.0",
8267
+ "bail": "^2.0.0",
8268
+ "devlop": "^1.0.0",
8269
+ "extend": "^3.0.0",
8270
+ "is-plain-obj": "^4.0.0",
8271
+ "trough": "^2.0.0",
8272
+ "vfile": "^6.0.0"
8273
+ },
8274
+ "funding": {
8275
+ "type": "opencollective",
8276
+ "url": "https://opencollective.com/unified"
8277
+ }
8278
+ },
8279
+ "node_modules/unist-util-find-after": {
8280
+ "version": "5.0.0",
8281
+ "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz",
8282
+ "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==",
8283
+ "license": "MIT",
8284
+ "dependencies": {
8285
+ "@types/unist": "^3.0.0",
8286
+ "unist-util-is": "^6.0.0"
8287
+ },
8288
+ "funding": {
8289
+ "type": "opencollective",
8290
+ "url": "https://opencollective.com/unified"
8291
+ }
8292
+ },
8293
+ "node_modules/unist-util-is": {
8294
+ "version": "6.0.1",
8295
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz",
8296
+ "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==",
8297
+ "license": "MIT",
8298
+ "dependencies": {
8299
+ "@types/unist": "^3.0.0"
8300
+ },
8301
+ "funding": {
8302
+ "type": "opencollective",
8303
+ "url": "https://opencollective.com/unified"
8304
+ }
8305
+ },
8306
+ "node_modules/unist-util-position": {
8307
+ "version": "5.0.0",
8308
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
8309
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
8310
+ "license": "MIT",
8311
+ "dependencies": {
8312
+ "@types/unist": "^3.0.0"
8313
+ },
8314
+ "funding": {
8315
+ "type": "opencollective",
8316
+ "url": "https://opencollective.com/unified"
8317
+ }
8318
+ },
8319
+ "node_modules/unist-util-remove-position": {
8320
+ "version": "5.0.0",
8321
+ "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz",
8322
+ "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==",
8323
+ "license": "MIT",
8324
+ "dependencies": {
8325
+ "@types/unist": "^3.0.0",
8326
+ "unist-util-visit": "^5.0.0"
8327
+ },
8328
+ "funding": {
8329
+ "type": "opencollective",
8330
+ "url": "https://opencollective.com/unified"
8331
+ }
8332
+ },
8333
+ "node_modules/unist-util-stringify-position": {
8334
+ "version": "4.0.0",
8335
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
8336
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
8337
+ "license": "MIT",
8338
+ "dependencies": {
8339
+ "@types/unist": "^3.0.0"
8340
+ },
8341
+ "funding": {
8342
+ "type": "opencollective",
8343
+ "url": "https://opencollective.com/unified"
8344
+ }
8345
+ },
8346
+ "node_modules/unist-util-visit": {
8347
+ "version": "5.1.0",
8348
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz",
8349
+ "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==",
8350
+ "license": "MIT",
8351
+ "dependencies": {
8352
+ "@types/unist": "^3.0.0",
8353
+ "unist-util-is": "^6.0.0",
8354
+ "unist-util-visit-parents": "^6.0.0"
8355
+ },
8356
+ "funding": {
8357
+ "type": "opencollective",
8358
+ "url": "https://opencollective.com/unified"
8359
+ }
8360
+ },
8361
+ "node_modules/unist-util-visit-parents": {
8362
+ "version": "6.0.2",
8363
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz",
8364
+ "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==",
8365
+ "license": "MIT",
8366
+ "dependencies": {
8367
+ "@types/unist": "^3.0.0",
8368
+ "unist-util-is": "^6.0.0"
8369
+ },
8370
+ "funding": {
8371
+ "type": "opencollective",
8372
+ "url": "https://opencollective.com/unified"
8373
+ }
8374
+ },
8375
  "node_modules/unrs-resolver": {
8376
  "version": "1.11.1",
8377
  "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz",
 
8448
  "punycode": "^2.1.0"
8449
  }
8450
  },
8451
+ "node_modules/vfile": {
8452
+ "version": "6.0.3",
8453
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
8454
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
8455
+ "license": "MIT",
8456
+ "dependencies": {
8457
+ "@types/unist": "^3.0.0",
8458
+ "vfile-message": "^4.0.0"
8459
+ },
8460
+ "funding": {
8461
+ "type": "opencollective",
8462
+ "url": "https://opencollective.com/unified"
8463
+ }
8464
+ },
8465
+ "node_modules/vfile-location": {
8466
+ "version": "5.0.3",
8467
+ "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz",
8468
+ "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==",
8469
+ "license": "MIT",
8470
+ "dependencies": {
8471
+ "@types/unist": "^3.0.0",
8472
+ "vfile": "^6.0.0"
8473
+ },
8474
+ "funding": {
8475
+ "type": "opencollective",
8476
+ "url": "https://opencollective.com/unified"
8477
+ }
8478
+ },
8479
+ "node_modules/vfile-message": {
8480
+ "version": "4.0.3",
8481
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz",
8482
+ "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==",
8483
+ "license": "MIT",
8484
+ "dependencies": {
8485
+ "@types/unist": "^3.0.0",
8486
+ "unist-util-stringify-position": "^4.0.0"
8487
+ },
8488
+ "funding": {
8489
+ "type": "opencollective",
8490
+ "url": "https://opencollective.com/unified"
8491
+ }
8492
+ },
8493
+ "node_modules/web-namespaces": {
8494
+ "version": "2.0.1",
8495
+ "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz",
8496
+ "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==",
8497
+ "license": "MIT",
8498
+ "funding": {
8499
+ "type": "github",
8500
+ "url": "https://github.com/sponsors/wooorm"
8501
+ }
8502
+ },
8503
  "node_modules/which": {
8504
  "version": "2.0.2",
8505
  "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
 
8657
  "peerDependencies": {
8658
  "zod": "^3.25.0 || ^4.0.0"
8659
  }
8660
+ },
8661
+ "node_modules/zwitch": {
8662
+ "version": "2.0.4",
8663
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
8664
+ "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
8665
+ "license": "MIT",
8666
+ "funding": {
8667
+ "type": "github",
8668
+ "url": "https://github.com/sponsors/wooorm"
8669
+ }
8670
  }
8671
  }
8672
  }
frontend-next/package.json CHANGED
@@ -17,7 +17,11 @@
17
  "react": "19.2.4",
18
  "react-dom": "19.2.4",
19
  "react-katex": "^3.1.0",
 
20
  "react-syntax-highlighter": "^16.1.1",
 
 
 
21
  "tailwind-merge": "^3.5.0"
22
  },
23
  "devDependencies": {
 
17
  "react": "19.2.4",
18
  "react-dom": "19.2.4",
19
  "react-katex": "^3.1.0",
20
+ "react-markdown": "^10.1.0",
21
  "react-syntax-highlighter": "^16.1.1",
22
+ "rehype-katex": "^7.0.1",
23
+ "remark-gfm": "^4.0.1",
24
+ "remark-math": "^6.0.0",
25
  "tailwind-merge": "^3.5.0"
26
  },
27
  "devDependencies": {