@object-ui/plugin-chatbot 3.1.4 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +40 -9
- package/CHANGELOG.md +27 -0
- package/README.md +86 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.js +11875 -2897
- package/dist/index.umd.cjs +71 -28
- package/dist/{src → packages/plugin-chatbot/src}/ChatbotEnhanced.d.ts +8 -0
- package/dist/packages/plugin-chatbot/src/ChatbotEnhanced.d.ts.map +1 -0
- package/dist/packages/plugin-chatbot/src/FloatingChatbot.d.ts +15 -0
- package/dist/packages/plugin-chatbot/src/FloatingChatbot.d.ts.map +1 -0
- package/dist/packages/plugin-chatbot/src/FloatingChatbotPanel.d.ts +29 -0
- package/dist/packages/plugin-chatbot/src/FloatingChatbotPanel.d.ts.map +1 -0
- package/dist/packages/plugin-chatbot/src/FloatingChatbotProvider.d.ts +37 -0
- package/dist/packages/plugin-chatbot/src/FloatingChatbotProvider.d.ts.map +1 -0
- package/dist/packages/plugin-chatbot/src/FloatingChatbotTrigger.d.ts +21 -0
- package/dist/packages/plugin-chatbot/src/FloatingChatbotTrigger.d.ts.map +1 -0
- package/dist/{src → packages/plugin-chatbot/src}/index.d.ts +10 -0
- package/dist/packages/plugin-chatbot/src/index.d.ts.map +1 -0
- package/dist/packages/plugin-chatbot/src/renderer.d.ts.map +1 -0
- package/dist/packages/plugin-chatbot/src/useObjectChat.d.ts +112 -0
- package/dist/packages/plugin-chatbot/src/useObjectChat.d.ts.map +1 -0
- package/dist/packages/plugin-chatbot/src/utils.d.ts.map +1 -0
- package/package.json +10 -8
- package/src/ChatbotEnhanced.tsx +55 -4
- package/src/FloatingChatbot.tsx +89 -0
- package/src/FloatingChatbotPanel.tsx +102 -0
- package/src/FloatingChatbotProvider.tsx +80 -0
- package/src/FloatingChatbotTrigger.tsx +55 -0
- package/src/__tests__/ChatbotEnhancedStreaming.test.tsx +159 -0
- package/src/__tests__/FloatingChatbotProvider.test.tsx +134 -0
- package/src/__tests__/FloatingChatbotWidgets.test.tsx +165 -0
- package/src/__tests__/useObjectChat.test.tsx +347 -0
- package/src/index.tsx +19 -0
- package/src/renderer.tsx +261 -92
- package/src/useObjectChat.ts +344 -0
- package/vite.config.ts +2 -1
- package/dist/src/ChatbotEnhanced.d.ts.map +0 -1
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/renderer.d.ts.map +0 -1
- package/dist/src/utils.d.ts.map +0 -1
- /package/dist/{src → packages/plugin-chatbot/src}/renderer.d.ts +0 -0
- /package/dist/{src → packages/plugin-chatbot/src}/utils.d.ts +0 -0
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { useState, useCallback, useRef, useEffect } from 'react';
|
|
10
|
+
import type { ChatMessage as OuiChatMessage } from '@object-ui/types';
|
|
11
|
+
import { useChat } from '@ai-sdk/react';
|
|
12
|
+
import { generateUniqueId } from './utils';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Configuration options for useObjectChat hook.
|
|
16
|
+
*/
|
|
17
|
+
export interface UseObjectChatOptions {
|
|
18
|
+
/**
|
|
19
|
+
* Backend API endpoint for streaming chat.
|
|
20
|
+
* When provided, uses @ai-sdk/react useChat for SSE streaming.
|
|
21
|
+
* When absent, operates in local/legacy mode.
|
|
22
|
+
*/
|
|
23
|
+
api?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Initial messages to populate the chat.
|
|
26
|
+
*/
|
|
27
|
+
initialMessages?: OuiChatMessage[];
|
|
28
|
+
/**
|
|
29
|
+
* Conversation ID for multi-turn context.
|
|
30
|
+
*/
|
|
31
|
+
conversationId?: string;
|
|
32
|
+
/**
|
|
33
|
+
* System prompt for the assistant.
|
|
34
|
+
*/
|
|
35
|
+
systemPrompt?: string;
|
|
36
|
+
/**
|
|
37
|
+
* AI model identifier.
|
|
38
|
+
*/
|
|
39
|
+
model?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Whether streaming is enabled.
|
|
42
|
+
* @default true
|
|
43
|
+
*/
|
|
44
|
+
streamingEnabled?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Additional headers to send with API requests.
|
|
47
|
+
*/
|
|
48
|
+
headers?: Record<string, string>;
|
|
49
|
+
/**
|
|
50
|
+
* Additional body parameters for each API request.
|
|
51
|
+
*/
|
|
52
|
+
body?: Record<string, unknown>;
|
|
53
|
+
/**
|
|
54
|
+
* Maximum tool-calling round-trips per message.
|
|
55
|
+
* @default 5
|
|
56
|
+
*/
|
|
57
|
+
maxToolRoundtrips?: number;
|
|
58
|
+
/**
|
|
59
|
+
* Error callback.
|
|
60
|
+
*/
|
|
61
|
+
onError?: (error: Error) => void;
|
|
62
|
+
/**
|
|
63
|
+
* Show timestamps on messages.
|
|
64
|
+
*/
|
|
65
|
+
showTimestamp?: boolean;
|
|
66
|
+
|
|
67
|
+
// --- Legacy/demo mode options ---
|
|
68
|
+
/**
|
|
69
|
+
* Enable local auto-response (legacy/demo mode). Ignored when `api` is set.
|
|
70
|
+
*/
|
|
71
|
+
autoResponse?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Auto-response text for legacy/demo mode.
|
|
74
|
+
*/
|
|
75
|
+
autoResponseText?: string;
|
|
76
|
+
/**
|
|
77
|
+
* Auto-response delay in ms for legacy/demo mode.
|
|
78
|
+
* @default 1000
|
|
79
|
+
*/
|
|
80
|
+
autoResponseDelay?: number;
|
|
81
|
+
/**
|
|
82
|
+
* External send callback (fires for both modes).
|
|
83
|
+
*/
|
|
84
|
+
onSend?: (content: string, messages: OuiChatMessage[]) => void;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Return type of useObjectChat.
|
|
89
|
+
*/
|
|
90
|
+
export interface UseObjectChatReturn {
|
|
91
|
+
/** Current chat messages */
|
|
92
|
+
messages: OuiChatMessage[];
|
|
93
|
+
/** Whether the assistant is currently generating a response */
|
|
94
|
+
isLoading: boolean;
|
|
95
|
+
/** Current error, if any */
|
|
96
|
+
error: Error | undefined;
|
|
97
|
+
/** Send a new user message */
|
|
98
|
+
sendMessage: (content: string, files?: File[]) => void;
|
|
99
|
+
/** Stop the current streaming response */
|
|
100
|
+
stop: () => void;
|
|
101
|
+
/** Reload / retry the last assistant message */
|
|
102
|
+
reload: () => void;
|
|
103
|
+
/** Clear all messages */
|
|
104
|
+
clear: () => void;
|
|
105
|
+
/** Whether the hook is operating in API (streaming) mode */
|
|
106
|
+
isApiMode: boolean;
|
|
107
|
+
/** Input value (controlled by the hook for API mode) */
|
|
108
|
+
input: string;
|
|
109
|
+
/** Set input value */
|
|
110
|
+
setInput: (value: string) => void;
|
|
111
|
+
/** Handle input change event */
|
|
112
|
+
handleInputChange: (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Normalize an OUI ChatMessage[] from schema into internal format.
|
|
117
|
+
*/
|
|
118
|
+
function normalizeMessages(msgs?: OuiChatMessage[]): OuiChatMessage[] {
|
|
119
|
+
return (msgs ?? []).map((msg, idx) => ({
|
|
120
|
+
id: msg.id || `msg-${idx}`,
|
|
121
|
+
role: msg.role || 'user',
|
|
122
|
+
content: msg.content || '',
|
|
123
|
+
timestamp: typeof msg.timestamp === 'string'
|
|
124
|
+
? msg.timestamp
|
|
125
|
+
: (msg.timestamp instanceof Date ? msg.timestamp.toISOString() : undefined),
|
|
126
|
+
metadata: msg.metadata,
|
|
127
|
+
streaming: msg.streaming,
|
|
128
|
+
toolInvocations: msg.toolInvocations,
|
|
129
|
+
}));
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* useObjectChat – Composable hook for ObjectUI Chatbot.
|
|
134
|
+
*
|
|
135
|
+
* When `api` is provided, delegates to @ai-sdk/react's useChat for
|
|
136
|
+
* SSE streaming, tool-calling, and production-grade chat.
|
|
137
|
+
*
|
|
138
|
+
* When `api` is absent, operates in local/legacy mode with optional
|
|
139
|
+
* auto-response for demos and playground use.
|
|
140
|
+
*
|
|
141
|
+
* The mode is locked on first render to satisfy the Rules of Hooks.
|
|
142
|
+
* If `api` changes after mount, the mode will NOT switch dynamically.
|
|
143
|
+
*/
|
|
144
|
+
export function useObjectChat(options: UseObjectChatOptions = {}): UseObjectChatReturn {
|
|
145
|
+
const {
|
|
146
|
+
api,
|
|
147
|
+
initialMessages,
|
|
148
|
+
conversationId,
|
|
149
|
+
systemPrompt,
|
|
150
|
+
model,
|
|
151
|
+
streamingEnabled = true,
|
|
152
|
+
headers,
|
|
153
|
+
body,
|
|
154
|
+
maxToolRoundtrips = 5,
|
|
155
|
+
onError,
|
|
156
|
+
showTimestamp,
|
|
157
|
+
autoResponse,
|
|
158
|
+
autoResponseText,
|
|
159
|
+
autoResponseDelay = 1000,
|
|
160
|
+
onSend,
|
|
161
|
+
} = options;
|
|
162
|
+
|
|
163
|
+
// Lock the mode on first render to satisfy the Rules of Hooks.
|
|
164
|
+
// Conditional hook calls would crash if `api` toggled between renders.
|
|
165
|
+
const modeRef = useRef<'api' | 'local'>(api ? 'api' : 'local');
|
|
166
|
+
const isApiMode = modeRef.current === 'api';
|
|
167
|
+
|
|
168
|
+
// Convert OUI messages to vercel/ai format for initialMessages
|
|
169
|
+
const aiInitialMessages = normalizeMessages(initialMessages).map(msg => ({
|
|
170
|
+
id: msg.id,
|
|
171
|
+
role: msg.role as 'user' | 'assistant' | 'system' | 'tool',
|
|
172
|
+
content: msg.content,
|
|
173
|
+
}));
|
|
174
|
+
|
|
175
|
+
// --- @ai-sdk/react useChat (always called to satisfy Rules of Hooks, but only active in API mode) ---
|
|
176
|
+
// When in local mode, useChat is initialized with minimal config and its results are ignored.
|
|
177
|
+
const chatResult = useChat({
|
|
178
|
+
api: isApiMode ? api! : '/api/noop',
|
|
179
|
+
initialMessages: isApiMode && aiInitialMessages.length > 0 ? aiInitialMessages : undefined,
|
|
180
|
+
headers: isApiMode ? {
|
|
181
|
+
...headers,
|
|
182
|
+
...(conversationId ? { 'x-conversation-id': conversationId } : {}),
|
|
183
|
+
} : undefined,
|
|
184
|
+
body: isApiMode ? {
|
|
185
|
+
...body,
|
|
186
|
+
...(model ? { model } : {}),
|
|
187
|
+
...(systemPrompt ? { systemPrompt } : {}),
|
|
188
|
+
...(streamingEnabled !== undefined ? { stream: streamingEnabled } : {}),
|
|
189
|
+
} : undefined,
|
|
190
|
+
maxToolRoundtrips: isApiMode ? maxToolRoundtrips : undefined,
|
|
191
|
+
onError: isApiMode ? (err: Error) => { onError?.(err); } : undefined,
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
// --- Local/legacy mode state ---
|
|
195
|
+
const [localMessages, setLocalMessages] = useState<OuiChatMessage[]>(
|
|
196
|
+
() => normalizeMessages(initialMessages)
|
|
197
|
+
);
|
|
198
|
+
const [localIsLoading, setLocalIsLoading] = useState(false);
|
|
199
|
+
const [localInput, setLocalInput] = useState('');
|
|
200
|
+
const autoResponseTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);
|
|
201
|
+
|
|
202
|
+
// Cleanup auto-response timer on unmount
|
|
203
|
+
useEffect(() => {
|
|
204
|
+
return () => {
|
|
205
|
+
if (autoResponseTimerRef.current) {
|
|
206
|
+
clearTimeout(autoResponseTimerRef.current);
|
|
207
|
+
autoResponseTimerRef.current = null;
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
}, []);
|
|
211
|
+
|
|
212
|
+
// ---- API mode return ----
|
|
213
|
+
if (isApiMode) {
|
|
214
|
+
const {
|
|
215
|
+
messages: aiMessages,
|
|
216
|
+
isLoading,
|
|
217
|
+
error,
|
|
218
|
+
input,
|
|
219
|
+
setInput,
|
|
220
|
+
handleInputChange,
|
|
221
|
+
append,
|
|
222
|
+
stop,
|
|
223
|
+
reload,
|
|
224
|
+
setMessages,
|
|
225
|
+
} = chatResult;
|
|
226
|
+
|
|
227
|
+
// Convert vercel/ai messages back to OUI ChatMessage format
|
|
228
|
+
const messages: OuiChatMessage[] = aiMessages.map((msg: any) => ({
|
|
229
|
+
id: msg.id,
|
|
230
|
+
role: msg.role,
|
|
231
|
+
content: msg.content,
|
|
232
|
+
toolInvocations: msg.toolInvocations,
|
|
233
|
+
streaming: isLoading && msg.id === aiMessages[aiMessages.length - 1]?.id && msg.role === 'assistant',
|
|
234
|
+
}));
|
|
235
|
+
|
|
236
|
+
const sendMessage = useCallback((content: string) => {
|
|
237
|
+
const trimmed = content.trim();
|
|
238
|
+
if (!trimmed) return;
|
|
239
|
+
|
|
240
|
+
const newMsg = { role: 'user' as const, content: trimmed };
|
|
241
|
+
|
|
242
|
+
// Construct the next messages list for the onSend callback,
|
|
243
|
+
// ensuring it includes the newly sent user message.
|
|
244
|
+
const nextMessages: OuiChatMessage[] = [
|
|
245
|
+
...messages,
|
|
246
|
+
{
|
|
247
|
+
id: generateUniqueId('msg'),
|
|
248
|
+
role: 'user',
|
|
249
|
+
content: trimmed,
|
|
250
|
+
},
|
|
251
|
+
];
|
|
252
|
+
|
|
253
|
+
append(newMsg);
|
|
254
|
+
onSend?.(trimmed, nextMessages);
|
|
255
|
+
}, [append, onSend, messages]);
|
|
256
|
+
|
|
257
|
+
const clear = useCallback(() => {
|
|
258
|
+
setMessages([]);
|
|
259
|
+
}, [setMessages]);
|
|
260
|
+
|
|
261
|
+
return {
|
|
262
|
+
messages,
|
|
263
|
+
isLoading,
|
|
264
|
+
error,
|
|
265
|
+
sendMessage,
|
|
266
|
+
stop,
|
|
267
|
+
reload,
|
|
268
|
+
clear,
|
|
269
|
+
isApiMode: true,
|
|
270
|
+
input,
|
|
271
|
+
setInput,
|
|
272
|
+
handleInputChange,
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
// ---- Local/legacy mode return ----
|
|
277
|
+
const localStop = useCallback(() => {
|
|
278
|
+
if (autoResponseTimerRef.current) {
|
|
279
|
+
clearTimeout(autoResponseTimerRef.current);
|
|
280
|
+
autoResponseTimerRef.current = null;
|
|
281
|
+
}
|
|
282
|
+
setLocalIsLoading(false);
|
|
283
|
+
}, []);
|
|
284
|
+
|
|
285
|
+
const localSendMessage = useCallback((content: string) => {
|
|
286
|
+
if (!content.trim()) return;
|
|
287
|
+
|
|
288
|
+
const userMessage: OuiChatMessage = {
|
|
289
|
+
id: generateUniqueId('msg'),
|
|
290
|
+
role: 'user',
|
|
291
|
+
content: content.trim(),
|
|
292
|
+
timestamp: showTimestamp ? new Date().toLocaleTimeString() : undefined,
|
|
293
|
+
};
|
|
294
|
+
|
|
295
|
+
setLocalMessages(prev => {
|
|
296
|
+
const updated = [...prev, userMessage];
|
|
297
|
+
onSend?.(content.trim(), updated);
|
|
298
|
+
return updated;
|
|
299
|
+
});
|
|
300
|
+
setLocalInput('');
|
|
301
|
+
|
|
302
|
+
// Auto-response for demo/playground
|
|
303
|
+
if (autoResponse) {
|
|
304
|
+
setLocalIsLoading(true);
|
|
305
|
+
autoResponseTimerRef.current = setTimeout(() => {
|
|
306
|
+
const assistantMessage: OuiChatMessage = {
|
|
307
|
+
id: generateUniqueId('msg'),
|
|
308
|
+
role: 'assistant',
|
|
309
|
+
content: autoResponseText || 'Thank you for your message!',
|
|
310
|
+
timestamp: showTimestamp ? new Date().toLocaleTimeString() : undefined,
|
|
311
|
+
};
|
|
312
|
+
setLocalMessages(prev => [...prev, assistantMessage]);
|
|
313
|
+
setLocalIsLoading(false);
|
|
314
|
+
}, autoResponseDelay);
|
|
315
|
+
}
|
|
316
|
+
}, [showTimestamp, autoResponse, autoResponseText, autoResponseDelay, onSend]);
|
|
317
|
+
|
|
318
|
+
const localReload = useCallback(() => {
|
|
319
|
+
// In local mode, there's no server to retry — no-op
|
|
320
|
+
}, []);
|
|
321
|
+
|
|
322
|
+
const localClear = useCallback(() => {
|
|
323
|
+
localStop();
|
|
324
|
+
setLocalMessages([]);
|
|
325
|
+
}, [localStop]);
|
|
326
|
+
|
|
327
|
+
const localHandleInputChange = useCallback((e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {
|
|
328
|
+
setLocalInput(e.target.value);
|
|
329
|
+
}, []);
|
|
330
|
+
|
|
331
|
+
return {
|
|
332
|
+
messages: localMessages,
|
|
333
|
+
isLoading: localIsLoading,
|
|
334
|
+
error: undefined,
|
|
335
|
+
sendMessage: localSendMessage,
|
|
336
|
+
stop: localStop,
|
|
337
|
+
reload: localReload,
|
|
338
|
+
clear: localClear,
|
|
339
|
+
isApiMode: false,
|
|
340
|
+
input: localInput,
|
|
341
|
+
setInput: setLocalInput,
|
|
342
|
+
handleInputChange: localHandleInputChange,
|
|
343
|
+
};
|
|
344
|
+
}
|
package/vite.config.ts
CHANGED
|
@@ -16,6 +16,7 @@ export default defineConfig({
|
|
|
16
16
|
react(),
|
|
17
17
|
dts({
|
|
18
18
|
insertTypesEntry: true,
|
|
19
|
+
compilerOptions: { rootDir: resolve(__dirname, '../..') },
|
|
19
20
|
include: ['src'],
|
|
20
21
|
exclude: ['**/*.test.ts', '**/*.test.tsx', 'node_modules'],
|
|
21
22
|
skipDiagnostics: true,
|
|
@@ -33,7 +34,7 @@ export default defineConfig({
|
|
|
33
34
|
fileName: 'index',
|
|
34
35
|
},
|
|
35
36
|
rollupOptions: {
|
|
36
|
-
external: ['react', 'react-dom', '@object-ui/components', '@object-ui/core', '@object-ui/react', 'lucide-react'],
|
|
37
|
+
external: ['react', 'react/jsx-runtime', 'react-dom', '@object-ui/components', '@object-ui/core', '@object-ui/react', 'lucide-react'],
|
|
37
38
|
output: {
|
|
38
39
|
globals: {
|
|
39
40
|
react: 'React',
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChatbotEnhanced.d.ts","sourceRoot":"","sources":["../../src/ChatbotEnhanced.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAS9B,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAA;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAChF,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAA;IACzD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACjE;AAiED,QAAA,MAAM,eAAe,6FAqQpB,CAAA;AAID,OAAO,EAAE,eAAe,EAAE,CAAA"}
|
package/dist/src/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAA;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAGD,MAAM,WAAW,YAAa,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACxE,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAGD,QAAA,MAAM,OAAO,qFAwGZ,CAAA;AAID,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,WAAW,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAA;CACjC;AAiED,MAAM,WAAW,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAChF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,QAAA,MAAM,eAAe,6FAkBpB,CAAA;AAGD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,CAAA;AAGnC,cAAc,YAAY,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/renderer.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
package/dist/src/utils.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,SAAQ,GAAG,MAAM,CAKvD"}
|
|
File without changes
|
|
File without changes
|