@copilotkit/markdown 0.0.0-stage → 2.0.0-rc.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,190 @@
1
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+ import { CitationDefinition, StreamingMarkdownAstNode, StreamingMarkdownNodeType, StreamingMarkdownParserOptions, StreamingMarkdownParserState } from "@copilotkit/markdown";
3
+ import { MouseEvent, ReactNode } from "react";
4
+
5
+ //#region src/react/streaming-markdown-renderer.d.ts
6
+ /**
7
+ * Metadata available when a citation node is rendered.
8
+ *
9
+ * @public
10
+ */
11
+ interface StreamingMarkdownCitationRenderData {
12
+ id: string;
13
+ number: number | string;
14
+ definition?: CitationDefinition;
15
+ }
16
+ /**
17
+ * Props for the `StreamingMarkdownRenderer` component.
18
+ *
19
+ * @public
20
+ */
21
+ interface StreamingMarkdownRendererProps {
22
+ /**
23
+ * Full markdown source that grows over time.
24
+ */
25
+ children: string;
26
+ /**
27
+ * Optional parser option overrides.
28
+ */
29
+ options?: Partial<StreamingMarkdownParserOptions>;
30
+ /**
31
+ * When `true`, finalizes the parser state after applying the latest text.
32
+ */
33
+ isComplete?: boolean;
34
+ /**
35
+ * Caret rendering behavior for streaming output.
36
+ *
37
+ * - `false`/`undefined`: no caret
38
+ * - `true`: render the default caret
39
+ * - `ReactNode`: render a custom caret node
40
+ * - function: render a custom caret node from parser state
41
+ */
42
+ caret?: StreamingMarkdownCaret;
43
+ /**
44
+ * Optional class applied to the root element.
45
+ */
46
+ className?: string;
47
+ /**
48
+ * Called when a link or autolink is clicked.
49
+ */
50
+ onLinkClick?: (event: MouseEvent<HTMLAnchorElement>, url: string, node: StreamingMarkdownAstNode) => void;
51
+ /**
52
+ * Called when a citation reference is clicked.
53
+ */
54
+ onCitationClick?: (event: MouseEvent<HTMLAnchorElement>, citation: StreamingMarkdownCitationRenderData, node: StreamingMarkdownAstNode) => void;
55
+ /**
56
+ * Optional custom renderers keyed by streaming markdown node type.
57
+ */
58
+ nodeRenderers?: StreamingMarkdownNodeRenderers;
59
+ }
60
+ /**
61
+ * Props supplied to a custom node renderer.
62
+ *
63
+ * @public
64
+ */
65
+ interface StreamingMarkdownNodeRendererProps<TNode extends StreamingMarkdownAstNode = StreamingMarkdownAstNode> {
66
+ /**
67
+ * The immutable AST node being rendered.
68
+ */
69
+ node: TNode;
70
+ /**
71
+ * Already-rendered child content for container nodes.
72
+ */
73
+ children: ReactNode;
74
+ /**
75
+ * Default element tree produced by `StreamingMarkdownRenderer` for this node.
76
+ */
77
+ defaultNode: ReactNode;
78
+ /**
79
+ * Citation metadata when rendering a citation node.
80
+ */
81
+ citation?: StreamingMarkdownCitationRenderData;
82
+ }
83
+ /**
84
+ * Custom renderer callback for a specific streaming markdown node.
85
+ *
86
+ * @public
87
+ */
88
+ type StreamingMarkdownNodeRenderer<TNode extends StreamingMarkdownAstNode = StreamingMarkdownAstNode> = (props: StreamingMarkdownNodeRendererProps<TNode>) => ReactNode;
89
+ /**
90
+ * Render context supplied to caret renderer callbacks.
91
+ *
92
+ * @public
93
+ */
94
+ interface StreamingMarkdownCaretRenderProps {
95
+ /**
96
+ * Whether the parser state is complete for the current source text.
97
+ */
98
+ isComplete: boolean;
99
+ /**
100
+ * The deepest currently open AST node, if any.
101
+ */
102
+ openNode: StreamingMarkdownAstNode | null;
103
+ }
104
+ /**
105
+ * Callback type for custom caret renderers.
106
+ *
107
+ * @public
108
+ */
109
+ type StreamingMarkdownCaretRenderer = (props: StreamingMarkdownCaretRenderProps) => ReactNode;
110
+ /**
111
+ * Supported caret prop values.
112
+ *
113
+ * @public
114
+ */
115
+ type StreamingMarkdownCaret = boolean | ReactNode | StreamingMarkdownCaretRenderer;
116
+ type StreamingMarkdownNodeOfType<TNodeType extends StreamingMarkdownNodeType> = Extract<StreamingMarkdownAstNode, {
117
+ type: TNodeType;
118
+ }>;
119
+ /**
120
+ * Supported key names for `nodeRenderers`.
121
+ *
122
+ * @public
123
+ */
124
+ type StreamingMarkdownNodeRendererKey = "node" | "document" | "paragraph" | "heading" | "blockquote" | "list" | "listItem" | "codeBlock" | "table" | "tableRow" | "tableCell" | "thematicBreak" | "text" | "em" | "strong" | "strikethrough" | "inlineCode" | "softBreak" | "hardBreak" | "image" | "link" | "autolink" | "citation";
125
+ type StreamingMarkdownNodeByRendererKey = {
126
+ node: StreamingMarkdownAstNode;
127
+ document: StreamingMarkdownNodeOfType<"document">;
128
+ paragraph: StreamingMarkdownNodeOfType<"paragraph">;
129
+ heading: StreamingMarkdownNodeOfType<"heading">;
130
+ blockquote: StreamingMarkdownNodeOfType<"blockquote">;
131
+ list: StreamingMarkdownNodeOfType<"list">;
132
+ listItem: StreamingMarkdownNodeOfType<"list-item">;
133
+ codeBlock: StreamingMarkdownNodeOfType<"code-block">;
134
+ table: StreamingMarkdownNodeOfType<"table">;
135
+ tableRow: StreamingMarkdownNodeOfType<"table-row">;
136
+ tableCell: StreamingMarkdownNodeOfType<"table-cell">;
137
+ thematicBreak: StreamingMarkdownNodeOfType<"thematic-break">;
138
+ text: StreamingMarkdownNodeOfType<"text">;
139
+ em: StreamingMarkdownNodeOfType<"em">;
140
+ strong: StreamingMarkdownNodeOfType<"strong">;
141
+ strikethrough: StreamingMarkdownNodeOfType<"strikethrough">;
142
+ inlineCode: StreamingMarkdownNodeOfType<"inline-code">;
143
+ softBreak: StreamingMarkdownNodeOfType<"soft-break">;
144
+ hardBreak: StreamingMarkdownNodeOfType<"hard-break">;
145
+ image: StreamingMarkdownNodeOfType<"image">;
146
+ link: StreamingMarkdownNodeOfType<"link">;
147
+ autolink: StreamingMarkdownNodeOfType<"autolink">;
148
+ citation: StreamingMarkdownNodeOfType<"citation">;
149
+ };
150
+ /**
151
+ * Custom renderers keyed by camelCase node names.
152
+ *
153
+ * @public
154
+ */
155
+ type StreamingMarkdownNodeRenderers = Partial<{ [TKey in StreamingMarkdownNodeRendererKey]: StreamingMarkdownNodeRenderer<StreamingMarkdownNodeByRendererKey[TKey]> }>;
156
+ /**
157
+ * Helper for creating typed streaming markdown node renderer maps.
158
+ *
159
+ * @public
160
+ */
161
+ declare function createStreamingMarkdownNodeRenderers<T extends StreamingMarkdownNodeRenderers>(renderers: T): T;
162
+ /**
163
+ * React renderer for streaming markdown parser output.
164
+ *
165
+ * @public
166
+ */
167
+ declare function StreamingMarkdownRenderer({
168
+ children,
169
+ options,
170
+ isComplete,
171
+ caret,
172
+ className,
173
+ onLinkClick,
174
+ onCitationClick,
175
+ nodeRenderers
176
+ }: StreamingMarkdownRendererProps): react_jsx_runtime0.JSX.Element;
177
+ //#endregion
178
+ //#region src/react/use-streaming-markdown-parser.d.ts
179
+ /**
180
+ * Internal prop-driven hook for streaming markdown parsing in React.
181
+ *
182
+ * @param text - Full markdown text that typically grows over time.
183
+ * @param options - Optional parser option overrides.
184
+ * @param isCompleteInput - When true, finalizes the parse state for the current text.
185
+ * @returns The current immutable streaming markdown parser state.
186
+ */
187
+ declare function useStreamingMarkdownParser(text: string, options?: Partial<StreamingMarkdownParserOptions>, isCompleteInput?: boolean): StreamingMarkdownParserState;
188
+ //#endregion
189
+ export { type StreamingMarkdownCaret, type StreamingMarkdownCaretRenderProps, type StreamingMarkdownCaretRenderer, type StreamingMarkdownCitationRenderData, type StreamingMarkdownNodeRenderer, type StreamingMarkdownNodeRendererKey, type StreamingMarkdownNodeRendererProps, type StreamingMarkdownNodeRenderers, StreamingMarkdownRenderer, type StreamingMarkdownRendererProps, createStreamingMarkdownNodeRenderers, useStreamingMarkdownParser };
190
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/react/streaming-markdown-renderer.tsx","../../src/react/use-streaming-markdown-parser.tsx"],"mappings":";;;;;;;;AAkCA;;UAAiB,mCAAA;EACf,EAAA;EACA,MAAA;EACA,UAAA,GAAa,kBAAA;AAAA;;;;AAQf;;UAAiB,8BAAA;EASG;;;EALlB,QAAA;EA+BS;;;EA1BT,OAAA,GAAU,OAAA,CAAQ,8BAAA;EAoCN;;;EA/BZ,UAAA;EAsC8C;;;;;;;;EA5B9C,KAAA,GAAQ,sBAAA;EAUR;;;EALA,SAAA;EAOE;;;EAFF,WAAA,IACE,KAAA,EAAO,UAAA,CAAW,iBAAA,GAClB,GAAA,UACA,IAAA,EAAM,wBAAA;EAOC;;;EADT,eAAA,IACE,KAAA,EAAO,UAAA,CAAW,iBAAA,GAClB,QAAA,EAAU,mCAAA,EACV,IAAA,EAAM,wBAAA;EADN;;;EAOF,aAAA,GAAgB,8BAAA;AAAA;;;AAQlB;;;UAAiB,kCAAA,eACD,wBAAA,GAA2B,wBAAA;EAAA;;;EAKzC,IAAA,EAAM,KAAA;EAeK;;;EAVX,QAAA,EAAU,SAAA;EAVI;;;EAed,WAAA,EAAa,SAAA;EALb;;;EAUA,QAAA,GAAW,mCAAA;AAAA;;;;AAQb;;KAAY,6BAAA,eACI,wBAAA,GAA2B,wBAAA,KACtC,KAAA,EAAO,kCAAA,CAAmC,KAAA,MAAW,SAAA;;;;;;UAOzC,iCAAA;EAPkD;;;EAWjE,UAAA;EAXU;;;EAgBV,QAAA,EAAU,wBAAA;AAAA;;AATZ;;;;KAiBY,8BAAA,IACV,KAAA,EAAO,iCAAA,KACJ,SAAA;;;;;AAFL;KASY,sBAAA,aAER,SAAA,GACA,8BAAA;AAAA,KAEC,2BAAA,mBAA8C,yBAAA,IACjD,OAAA,CAAQ,wBAAA;EAA4B,IAAA,EAAM,SAAA;AAAA;;;;;AAN5C;KAaY,gCAAA;AAAA,KAyBP,kCAAA;EACH,IAAA,EAAM,wBAAA;EACN,QAAA,EAAU,2BAAA;EACV,SAAA,EAAW,2BAAA;EACX,OAAA,EAAS,2BAAA;EACT,UAAA,EAAY,2BAAA;EACZ,IAAA,EAAM,2BAAA;EACN,QAAA,EAAU,2BAAA;EACV,SAAA,EAAW,2BAAA;EACX,KAAA,EAAO,2BAAA;EACP,QAAA,EAAU,2BAAA;EACV,SAAA,EAAW,2BAAA;EACX,aAAA,EAAe,2BAAA;EACf,IAAA,EAAM,2BAAA;EACN,EAAA,EAAI,2BAAA;EACJ,MAAA,EAAQ,2BAAA;EACR,aAAA,EAAe,2BAAA;EACf,UAAA,EAAY,2BAAA;EACZ,SAAA,EAAW,2BAAA;EACX,SAAA,EAAW,2BAAA;EACX,KAAA,EAAO,2BAAA;EACP,IAAA,EAAM,2BAAA;EACN,QAAA,EAAU,2BAAA;EACV,QAAA,EAAU,2BAAA;AAAA;AAzBG;;;;;AAAA,KAiCH,8BAAA,GAAiC,OAAA,YAClC,gCAAA,GAAmC,6BAAA,CAC1C,kCAAA,CAAmC,IAAA;;;;;;iBASvB,oCAAA,WACJ,8BAAA,CAAA,CACV,SAAA,EAAW,CAAA,GAAI,CAAA;;;;;;iBA8rBD,yBAAA,CAAA;EACd,QAAA;EACA,OAAA;EACA,UAAA;EACA,KAAA;EACA,SAAA;EACA,WAAA;EACA,eAAA;EACA;AAAA,GACC,8BAAA,GAA8B,kBAAA,CAAA,GAAA,CAAA,OAAA;;;;;;;AAh6BjC;;;;iBC4GgB,0BAAA,CACd,IAAA,UACA,OAAA,GAAU,OAAA,CAAQ,8BAAA,GAClB,eAAA,aACC,4BAAA"}
@@ -0,0 +1,190 @@
1
+ import { MouseEvent, ReactNode } from "react";
2
+ import { CitationDefinition, StreamingMarkdownAstNode, StreamingMarkdownNodeType, StreamingMarkdownParserOptions, StreamingMarkdownParserState } from "@copilotkit/markdown";
3
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
4
+
5
+ //#region src/react/streaming-markdown-renderer.d.ts
6
+ /**
7
+ * Metadata available when a citation node is rendered.
8
+ *
9
+ * @public
10
+ */
11
+ interface StreamingMarkdownCitationRenderData {
12
+ id: string;
13
+ number: number | string;
14
+ definition?: CitationDefinition;
15
+ }
16
+ /**
17
+ * Props for the `StreamingMarkdownRenderer` component.
18
+ *
19
+ * @public
20
+ */
21
+ interface StreamingMarkdownRendererProps {
22
+ /**
23
+ * Full markdown source that grows over time.
24
+ */
25
+ children: string;
26
+ /**
27
+ * Optional parser option overrides.
28
+ */
29
+ options?: Partial<StreamingMarkdownParserOptions>;
30
+ /**
31
+ * When `true`, finalizes the parser state after applying the latest text.
32
+ */
33
+ isComplete?: boolean;
34
+ /**
35
+ * Caret rendering behavior for streaming output.
36
+ *
37
+ * - `false`/`undefined`: no caret
38
+ * - `true`: render the default caret
39
+ * - `ReactNode`: render a custom caret node
40
+ * - function: render a custom caret node from parser state
41
+ */
42
+ caret?: StreamingMarkdownCaret;
43
+ /**
44
+ * Optional class applied to the root element.
45
+ */
46
+ className?: string;
47
+ /**
48
+ * Called when a link or autolink is clicked.
49
+ */
50
+ onLinkClick?: (event: MouseEvent<HTMLAnchorElement>, url: string, node: StreamingMarkdownAstNode) => void;
51
+ /**
52
+ * Called when a citation reference is clicked.
53
+ */
54
+ onCitationClick?: (event: MouseEvent<HTMLAnchorElement>, citation: StreamingMarkdownCitationRenderData, node: StreamingMarkdownAstNode) => void;
55
+ /**
56
+ * Optional custom renderers keyed by streaming markdown node type.
57
+ */
58
+ nodeRenderers?: StreamingMarkdownNodeRenderers;
59
+ }
60
+ /**
61
+ * Props supplied to a custom node renderer.
62
+ *
63
+ * @public
64
+ */
65
+ interface StreamingMarkdownNodeRendererProps<TNode extends StreamingMarkdownAstNode = StreamingMarkdownAstNode> {
66
+ /**
67
+ * The immutable AST node being rendered.
68
+ */
69
+ node: TNode;
70
+ /**
71
+ * Already-rendered child content for container nodes.
72
+ */
73
+ children: ReactNode;
74
+ /**
75
+ * Default element tree produced by `StreamingMarkdownRenderer` for this node.
76
+ */
77
+ defaultNode: ReactNode;
78
+ /**
79
+ * Citation metadata when rendering a citation node.
80
+ */
81
+ citation?: StreamingMarkdownCitationRenderData;
82
+ }
83
+ /**
84
+ * Custom renderer callback for a specific streaming markdown node.
85
+ *
86
+ * @public
87
+ */
88
+ type StreamingMarkdownNodeRenderer<TNode extends StreamingMarkdownAstNode = StreamingMarkdownAstNode> = (props: StreamingMarkdownNodeRendererProps<TNode>) => ReactNode;
89
+ /**
90
+ * Render context supplied to caret renderer callbacks.
91
+ *
92
+ * @public
93
+ */
94
+ interface StreamingMarkdownCaretRenderProps {
95
+ /**
96
+ * Whether the parser state is complete for the current source text.
97
+ */
98
+ isComplete: boolean;
99
+ /**
100
+ * The deepest currently open AST node, if any.
101
+ */
102
+ openNode: StreamingMarkdownAstNode | null;
103
+ }
104
+ /**
105
+ * Callback type for custom caret renderers.
106
+ *
107
+ * @public
108
+ */
109
+ type StreamingMarkdownCaretRenderer = (props: StreamingMarkdownCaretRenderProps) => ReactNode;
110
+ /**
111
+ * Supported caret prop values.
112
+ *
113
+ * @public
114
+ */
115
+ type StreamingMarkdownCaret = boolean | ReactNode | StreamingMarkdownCaretRenderer;
116
+ type StreamingMarkdownNodeOfType<TNodeType extends StreamingMarkdownNodeType> = Extract<StreamingMarkdownAstNode, {
117
+ type: TNodeType;
118
+ }>;
119
+ /**
120
+ * Supported key names for `nodeRenderers`.
121
+ *
122
+ * @public
123
+ */
124
+ type StreamingMarkdownNodeRendererKey = "node" | "document" | "paragraph" | "heading" | "blockquote" | "list" | "listItem" | "codeBlock" | "table" | "tableRow" | "tableCell" | "thematicBreak" | "text" | "em" | "strong" | "strikethrough" | "inlineCode" | "softBreak" | "hardBreak" | "image" | "link" | "autolink" | "citation";
125
+ type StreamingMarkdownNodeByRendererKey = {
126
+ node: StreamingMarkdownAstNode;
127
+ document: StreamingMarkdownNodeOfType<"document">;
128
+ paragraph: StreamingMarkdownNodeOfType<"paragraph">;
129
+ heading: StreamingMarkdownNodeOfType<"heading">;
130
+ blockquote: StreamingMarkdownNodeOfType<"blockquote">;
131
+ list: StreamingMarkdownNodeOfType<"list">;
132
+ listItem: StreamingMarkdownNodeOfType<"list-item">;
133
+ codeBlock: StreamingMarkdownNodeOfType<"code-block">;
134
+ table: StreamingMarkdownNodeOfType<"table">;
135
+ tableRow: StreamingMarkdownNodeOfType<"table-row">;
136
+ tableCell: StreamingMarkdownNodeOfType<"table-cell">;
137
+ thematicBreak: StreamingMarkdownNodeOfType<"thematic-break">;
138
+ text: StreamingMarkdownNodeOfType<"text">;
139
+ em: StreamingMarkdownNodeOfType<"em">;
140
+ strong: StreamingMarkdownNodeOfType<"strong">;
141
+ strikethrough: StreamingMarkdownNodeOfType<"strikethrough">;
142
+ inlineCode: StreamingMarkdownNodeOfType<"inline-code">;
143
+ softBreak: StreamingMarkdownNodeOfType<"soft-break">;
144
+ hardBreak: StreamingMarkdownNodeOfType<"hard-break">;
145
+ image: StreamingMarkdownNodeOfType<"image">;
146
+ link: StreamingMarkdownNodeOfType<"link">;
147
+ autolink: StreamingMarkdownNodeOfType<"autolink">;
148
+ citation: StreamingMarkdownNodeOfType<"citation">;
149
+ };
150
+ /**
151
+ * Custom renderers keyed by camelCase node names.
152
+ *
153
+ * @public
154
+ */
155
+ type StreamingMarkdownNodeRenderers = Partial<{ [TKey in StreamingMarkdownNodeRendererKey]: StreamingMarkdownNodeRenderer<StreamingMarkdownNodeByRendererKey[TKey]> }>;
156
+ /**
157
+ * Helper for creating typed streaming markdown node renderer maps.
158
+ *
159
+ * @public
160
+ */
161
+ declare function createStreamingMarkdownNodeRenderers<T extends StreamingMarkdownNodeRenderers>(renderers: T): T;
162
+ /**
163
+ * React renderer for streaming markdown parser output.
164
+ *
165
+ * @public
166
+ */
167
+ declare function StreamingMarkdownRenderer({
168
+ children,
169
+ options,
170
+ isComplete,
171
+ caret,
172
+ className,
173
+ onLinkClick,
174
+ onCitationClick,
175
+ nodeRenderers
176
+ }: StreamingMarkdownRendererProps): react_jsx_runtime0.JSX.Element;
177
+ //#endregion
178
+ //#region src/react/use-streaming-markdown-parser.d.ts
179
+ /**
180
+ * Internal prop-driven hook for streaming markdown parsing in React.
181
+ *
182
+ * @param text - Full markdown text that typically grows over time.
183
+ * @param options - Optional parser option overrides.
184
+ * @param isCompleteInput - When true, finalizes the parse state for the current text.
185
+ * @returns The current immutable streaming markdown parser state.
186
+ */
187
+ declare function useStreamingMarkdownParser(text: string, options?: Partial<StreamingMarkdownParserOptions>, isCompleteInput?: boolean): StreamingMarkdownParserState;
188
+ //#endregion
189
+ export { type StreamingMarkdownCaret, type StreamingMarkdownCaretRenderProps, type StreamingMarkdownCaretRenderer, type StreamingMarkdownCitationRenderData, type StreamingMarkdownNodeRenderer, type StreamingMarkdownNodeRendererKey, type StreamingMarkdownNodeRendererProps, type StreamingMarkdownNodeRenderers, StreamingMarkdownRenderer, type StreamingMarkdownRendererProps, createStreamingMarkdownNodeRenderers, useStreamingMarkdownParser };
190
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/react/streaming-markdown-renderer.tsx","../../src/react/use-streaming-markdown-parser.tsx"],"mappings":";;;;;;;;AAkCA;;UAAiB,mCAAA;EACf,EAAA;EACA,MAAA;EACA,UAAA,GAAa,kBAAA;AAAA;;;;AAQf;;UAAiB,8BAAA;EASG;;;EALlB,QAAA;EA+BS;;;EA1BT,OAAA,GAAU,OAAA,CAAQ,8BAAA;EAoCN;;;EA/BZ,UAAA;EAsC8C;;;;;;;;EA5B9C,KAAA,GAAQ,sBAAA;EAUR;;;EALA,SAAA;EAOE;;;EAFF,WAAA,IACE,KAAA,EAAO,UAAA,CAAW,iBAAA,GAClB,GAAA,UACA,IAAA,EAAM,wBAAA;EAOC;;;EADT,eAAA,IACE,KAAA,EAAO,UAAA,CAAW,iBAAA,GAClB,QAAA,EAAU,mCAAA,EACV,IAAA,EAAM,wBAAA;EADN;;;EAOF,aAAA,GAAgB,8BAAA;AAAA;;;AAQlB;;;UAAiB,kCAAA,eACD,wBAAA,GAA2B,wBAAA;EAAA;;;EAKzC,IAAA,EAAM,KAAA;EAeK;;;EAVX,QAAA,EAAU,SAAA;EAVI;;;EAed,WAAA,EAAa,SAAA;EALb;;;EAUA,QAAA,GAAW,mCAAA;AAAA;;;;AAQb;;KAAY,6BAAA,eACI,wBAAA,GAA2B,wBAAA,KACtC,KAAA,EAAO,kCAAA,CAAmC,KAAA,MAAW,SAAA;;;;;;UAOzC,iCAAA;EAPkD;;;EAWjE,UAAA;EAXU;;;EAgBV,QAAA,EAAU,wBAAA;AAAA;;AATZ;;;;KAiBY,8BAAA,IACV,KAAA,EAAO,iCAAA,KACJ,SAAA;;;;;AAFL;KASY,sBAAA,aAER,SAAA,GACA,8BAAA;AAAA,KAEC,2BAAA,mBAA8C,yBAAA,IACjD,OAAA,CAAQ,wBAAA;EAA4B,IAAA,EAAM,SAAA;AAAA;;;;;AAN5C;KAaY,gCAAA;AAAA,KAyBP,kCAAA;EACH,IAAA,EAAM,wBAAA;EACN,QAAA,EAAU,2BAAA;EACV,SAAA,EAAW,2BAAA;EACX,OAAA,EAAS,2BAAA;EACT,UAAA,EAAY,2BAAA;EACZ,IAAA,EAAM,2BAAA;EACN,QAAA,EAAU,2BAAA;EACV,SAAA,EAAW,2BAAA;EACX,KAAA,EAAO,2BAAA;EACP,QAAA,EAAU,2BAAA;EACV,SAAA,EAAW,2BAAA;EACX,aAAA,EAAe,2BAAA;EACf,IAAA,EAAM,2BAAA;EACN,EAAA,EAAI,2BAAA;EACJ,MAAA,EAAQ,2BAAA;EACR,aAAA,EAAe,2BAAA;EACf,UAAA,EAAY,2BAAA;EACZ,SAAA,EAAW,2BAAA;EACX,SAAA,EAAW,2BAAA;EACX,KAAA,EAAO,2BAAA;EACP,IAAA,EAAM,2BAAA;EACN,QAAA,EAAU,2BAAA;EACV,QAAA,EAAU,2BAAA;AAAA;AAzBG;;;;;AAAA,KAiCH,8BAAA,GAAiC,OAAA,YAClC,gCAAA,GAAmC,6BAAA,CAC1C,kCAAA,CAAmC,IAAA;;;;;;iBASvB,oCAAA,WACJ,8BAAA,CAAA,CACV,SAAA,EAAW,CAAA,GAAI,CAAA;;;;;;iBA8rBD,yBAAA,CAAA;EACd,QAAA;EACA,OAAA;EACA,UAAA;EACA,KAAA;EACA,SAAA;EACA,WAAA;EACA,eAAA;EACA;AAAA,GACC,8BAAA,GAA8B,kBAAA,CAAA,GAAA,CAAA,OAAA;;;;;;;AAh6BjC;;;;iBC4GgB,0BAAA,CACd,IAAA,UACA,OAAA,GAAU,OAAA,CAAQ,8BAAA,GAClB,eAAA,aACC,4BAAA"}