@melony/react 0.1.10 → 0.1.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.
- package/dist/index.cjs +33 -17
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +13 -10
- package/dist/index.d.ts +13 -10
- package/dist/index.js +33 -17
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React$1 from 'react';
|
|
2
2
|
import React__default, { ReactNode } from 'react';
|
|
3
|
-
import { ClientState,
|
|
4
|
-
import { Role, Event, UINode } from 'melony';
|
|
3
|
+
import { ClientState, MelonyClient } from '@melony/core/client';
|
|
4
|
+
import { Role, Event, UINode } from '@melony/core';
|
|
5
5
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
6
6
|
|
|
7
7
|
interface User {
|
|
@@ -45,15 +45,16 @@ interface MelonyContextValue extends ClientState {
|
|
|
45
45
|
runId?: string;
|
|
46
46
|
state?: Record<string, any>;
|
|
47
47
|
}) => Promise<void>;
|
|
48
|
-
|
|
49
|
-
client:
|
|
48
|
+
reset: (events?: Event[]) => void;
|
|
49
|
+
client: MelonyClient;
|
|
50
50
|
}
|
|
51
51
|
declare const MelonyContext: React__default.Context<MelonyContextValue | undefined>;
|
|
52
|
-
interface
|
|
52
|
+
interface MelonyClientProviderProps {
|
|
53
53
|
children: ReactNode;
|
|
54
|
-
client:
|
|
54
|
+
client: MelonyClient;
|
|
55
|
+
initialEvents?: Event[];
|
|
55
56
|
}
|
|
56
|
-
declare const
|
|
57
|
+
declare const MelonyClientProvider: React__default.FC<MelonyClientProviderProps>;
|
|
57
58
|
|
|
58
59
|
interface AuthContextValue {
|
|
59
60
|
user: User | null;
|
|
@@ -80,7 +81,6 @@ interface ThreadContextValue {
|
|
|
80
81
|
deleteThread: (threadId: string) => Promise<void>;
|
|
81
82
|
refreshThreads: () => Promise<void>;
|
|
82
83
|
threadEvents: Event[];
|
|
83
|
-
threadMessages: Message[];
|
|
84
84
|
isLoadingEvents: boolean;
|
|
85
85
|
}
|
|
86
86
|
declare const ThreadContext: React__default.Context<ThreadContextValue | undefined>;
|
|
@@ -91,7 +91,10 @@ interface ThreadProviderProps {
|
|
|
91
91
|
}
|
|
92
92
|
declare const ThreadProvider: React__default.FC<ThreadProviderProps>;
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
interface UseMelonyOptions {
|
|
95
|
+
initialEvents?: Event[];
|
|
96
|
+
}
|
|
97
|
+
declare const useMelony: (options?: UseMelonyOptions) => MelonyContextValue;
|
|
95
98
|
|
|
96
99
|
declare const useAuth: () => AuthContextValue;
|
|
97
100
|
|
|
@@ -162,4 +165,4 @@ interface UIRendererProps {
|
|
|
162
165
|
*/
|
|
163
166
|
declare function UIRenderer({ node }: UIRendererProps): react_jsx_runtime.JSX.Element;
|
|
164
167
|
|
|
165
|
-
export { AccountDialog, type AccountDialogProps, AuthContext, type AuthContextValue, AuthProvider, type AuthProviderProps, type AuthService, ChatFull, type ChatFullProps, ChatPopup, type ChatPopupProps, ChatSidebar, type ChatSidebarProps, Composer,
|
|
168
|
+
export { AccountDialog, type AccountDialogProps, AuthContext, type AuthContextValue, AuthProvider, type AuthProviderProps, type AuthService, ChatFull, type ChatFullProps, ChatPopup, type ChatPopupProps, ChatSidebar, type ChatSidebarProps, Composer, MelonyClientProvider, type MelonyClientProviderProps, MelonyContext, type MelonyContextValue, type Message, type StarterPrompt, Thread, ThreadContext, type ThreadContextValue, type ThreadData, ThreadList, type ThreadListProps, ThreadProvider, type ThreadProviderProps, type ThreadService, UIRenderer, type UIRendererProps, type UseMelonyOptions, type User, useAuth, useMelony, useThreads };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React$1 from 'react';
|
|
2
2
|
import React__default, { ReactNode } from 'react';
|
|
3
|
-
import { ClientState,
|
|
4
|
-
import { Role, Event, UINode } from 'melony';
|
|
3
|
+
import { ClientState, MelonyClient } from '@melony/core/client';
|
|
4
|
+
import { Role, Event, UINode } from '@melony/core';
|
|
5
5
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
6
6
|
|
|
7
7
|
interface User {
|
|
@@ -45,15 +45,16 @@ interface MelonyContextValue extends ClientState {
|
|
|
45
45
|
runId?: string;
|
|
46
46
|
state?: Record<string, any>;
|
|
47
47
|
}) => Promise<void>;
|
|
48
|
-
|
|
49
|
-
client:
|
|
48
|
+
reset: (events?: Event[]) => void;
|
|
49
|
+
client: MelonyClient;
|
|
50
50
|
}
|
|
51
51
|
declare const MelonyContext: React__default.Context<MelonyContextValue | undefined>;
|
|
52
|
-
interface
|
|
52
|
+
interface MelonyClientProviderProps {
|
|
53
53
|
children: ReactNode;
|
|
54
|
-
client:
|
|
54
|
+
client: MelonyClient;
|
|
55
|
+
initialEvents?: Event[];
|
|
55
56
|
}
|
|
56
|
-
declare const
|
|
57
|
+
declare const MelonyClientProvider: React__default.FC<MelonyClientProviderProps>;
|
|
57
58
|
|
|
58
59
|
interface AuthContextValue {
|
|
59
60
|
user: User | null;
|
|
@@ -80,7 +81,6 @@ interface ThreadContextValue {
|
|
|
80
81
|
deleteThread: (threadId: string) => Promise<void>;
|
|
81
82
|
refreshThreads: () => Promise<void>;
|
|
82
83
|
threadEvents: Event[];
|
|
83
|
-
threadMessages: Message[];
|
|
84
84
|
isLoadingEvents: boolean;
|
|
85
85
|
}
|
|
86
86
|
declare const ThreadContext: React__default.Context<ThreadContextValue | undefined>;
|
|
@@ -91,7 +91,10 @@ interface ThreadProviderProps {
|
|
|
91
91
|
}
|
|
92
92
|
declare const ThreadProvider: React__default.FC<ThreadProviderProps>;
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
interface UseMelonyOptions {
|
|
95
|
+
initialEvents?: Event[];
|
|
96
|
+
}
|
|
97
|
+
declare const useMelony: (options?: UseMelonyOptions) => MelonyContextValue;
|
|
95
98
|
|
|
96
99
|
declare const useAuth: () => AuthContextValue;
|
|
97
100
|
|
|
@@ -162,4 +165,4 @@ interface UIRendererProps {
|
|
|
162
165
|
*/
|
|
163
166
|
declare function UIRenderer({ node }: UIRendererProps): react_jsx_runtime.JSX.Element;
|
|
164
167
|
|
|
165
|
-
export { AccountDialog, type AccountDialogProps, AuthContext, type AuthContextValue, AuthProvider, type AuthProviderProps, type AuthService, ChatFull, type ChatFullProps, ChatPopup, type ChatPopupProps, ChatSidebar, type ChatSidebarProps, Composer,
|
|
168
|
+
export { AccountDialog, type AccountDialogProps, AuthContext, type AuthContextValue, AuthProvider, type AuthProviderProps, type AuthService, ChatFull, type ChatFullProps, ChatPopup, type ChatPopupProps, ChatSidebar, type ChatSidebarProps, Composer, MelonyClientProvider, type MelonyClientProviderProps, MelonyContext, type MelonyContextValue, type Message, type StarterPrompt, Thread, ThreadContext, type ThreadContextValue, type ThreadData, ThreadList, type ThreadListProps, ThreadProvider, type ThreadProviderProps, type ThreadService, UIRenderer, type UIRendererProps, type UseMelonyOptions, type User, useAuth, useMelony, useThreads };
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import { createContext, useState, useEffect, useCallback, useMemo, useContext, u
|
|
|
3
3
|
import { clsx } from 'clsx';
|
|
4
4
|
import { twMerge } from 'tailwind-merge';
|
|
5
5
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
6
|
-
import { generateId } from 'melony/client';
|
|
6
|
+
import { generateId } from '@melony/core/client';
|
|
7
7
|
import { Separator as Separator$1 } from '@base-ui/react/separator';
|
|
8
8
|
import * as ICONS from '@tabler/icons-react';
|
|
9
9
|
import { IconArrowUp, IconPlus, IconMessage, IconTrash, IconArrowLeft, IconHistory, IconX, IconUser, IconLogout, IconBrandGoogle, IconSelector, IconCheck, IconChevronUp, IconChevronDown } from '@tabler/icons-react';
|
|
@@ -43,16 +43,25 @@ function groupEventsToMessages(events) {
|
|
|
43
43
|
}
|
|
44
44
|
return messages;
|
|
45
45
|
}
|
|
46
|
-
var MelonyContext = createContext(
|
|
47
|
-
|
|
46
|
+
var MelonyContext = createContext(
|
|
47
|
+
void 0
|
|
48
|
+
);
|
|
49
|
+
var MelonyClientProvider = ({
|
|
48
50
|
children,
|
|
49
|
-
client
|
|
51
|
+
client,
|
|
52
|
+
initialEvents
|
|
50
53
|
}) => {
|
|
51
54
|
const [state, setState] = useState(client.getState());
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
if (initialEvents && initialEvents.length > 0 && client.getState().events.length === 0) {
|
|
57
|
+
client.reset(initialEvents);
|
|
58
|
+
}
|
|
59
|
+
}, [client, initialEvents]);
|
|
52
60
|
useEffect(() => {
|
|
53
61
|
setState(client.getState());
|
|
62
|
+
const unsubscribe = client.subscribe(setState);
|
|
54
63
|
return () => {
|
|
55
|
-
|
|
64
|
+
unsubscribe();
|
|
56
65
|
};
|
|
57
66
|
}, [client]);
|
|
58
67
|
const sendEvent = useCallback(
|
|
@@ -63,16 +72,19 @@ var MelonyProvider = ({
|
|
|
63
72
|
},
|
|
64
73
|
[client]
|
|
65
74
|
);
|
|
66
|
-
const
|
|
75
|
+
const reset = useCallback(
|
|
76
|
+
(events) => client.reset(events),
|
|
77
|
+
[client]
|
|
78
|
+
);
|
|
67
79
|
const value = useMemo(
|
|
68
80
|
() => ({
|
|
69
81
|
...state,
|
|
70
82
|
messages: groupEventsToMessages(state.events),
|
|
71
83
|
sendEvent,
|
|
72
|
-
|
|
84
|
+
reset,
|
|
73
85
|
client
|
|
74
86
|
}),
|
|
75
|
-
[state, sendEvent,
|
|
87
|
+
[state, sendEvent, reset, client]
|
|
76
88
|
);
|
|
77
89
|
return /* @__PURE__ */ jsx(MelonyContext.Provider, { value, children });
|
|
78
90
|
};
|
|
@@ -139,7 +151,9 @@ var AuthProvider = ({
|
|
|
139
151
|
}
|
|
140
152
|
return /* @__PURE__ */ jsx(AuthContext.Provider, { value, children });
|
|
141
153
|
};
|
|
142
|
-
var ThreadContext = createContext(
|
|
154
|
+
var ThreadContext = createContext(
|
|
155
|
+
void 0
|
|
156
|
+
);
|
|
143
157
|
var ThreadProvider = ({
|
|
144
158
|
children,
|
|
145
159
|
service,
|
|
@@ -210,9 +224,6 @@ var ThreadProvider = ({
|
|
|
210
224
|
const refreshThreads = useCallback(async () => {
|
|
211
225
|
await fetchThreads();
|
|
212
226
|
}, [fetchThreads]);
|
|
213
|
-
const threadMessages = useMemo(() => {
|
|
214
|
-
return groupEventsToMessages(threadEvents);
|
|
215
|
-
}, [threadEvents]);
|
|
216
227
|
useEffect(() => {
|
|
217
228
|
if (!activeThreadId) {
|
|
218
229
|
setThreadEvents([]);
|
|
@@ -254,7 +265,6 @@ var ThreadProvider = ({
|
|
|
254
265
|
deleteThread,
|
|
255
266
|
refreshThreads,
|
|
256
267
|
threadEvents,
|
|
257
|
-
threadMessages,
|
|
258
268
|
isLoadingEvents
|
|
259
269
|
}),
|
|
260
270
|
[
|
|
@@ -267,17 +277,23 @@ var ThreadProvider = ({
|
|
|
267
277
|
deleteThread,
|
|
268
278
|
refreshThreads,
|
|
269
279
|
threadEvents,
|
|
270
|
-
threadMessages,
|
|
271
280
|
isLoadingEvents
|
|
272
281
|
]
|
|
273
282
|
);
|
|
274
283
|
return /* @__PURE__ */ jsx(ThreadContext.Provider, { value, children });
|
|
275
284
|
};
|
|
276
|
-
var useMelony = () => {
|
|
285
|
+
var useMelony = (options) => {
|
|
277
286
|
const context = useContext(MelonyContext);
|
|
278
287
|
if (context === void 0) {
|
|
279
|
-
throw new Error("useMelony must be used within a
|
|
288
|
+
throw new Error("useMelony must be used within a MelonyClientProvider");
|
|
280
289
|
}
|
|
290
|
+
const { client, reset } = context;
|
|
291
|
+
const { initialEvents } = options || {};
|
|
292
|
+
useEffect(() => {
|
|
293
|
+
if (initialEvents && initialEvents.length > 0 && client.getState().events.length === 0) {
|
|
294
|
+
reset(initialEvents);
|
|
295
|
+
}
|
|
296
|
+
}, [client, initialEvents, reset]);
|
|
281
297
|
return context;
|
|
282
298
|
};
|
|
283
299
|
var useAuth = () => {
|
|
@@ -2329,6 +2345,6 @@ var AccountDialog = ({
|
|
|
2329
2345
|
] });
|
|
2330
2346
|
};
|
|
2331
2347
|
|
|
2332
|
-
export { AccountDialog, AuthContext, AuthProvider, ChatFull, ChatPopup, ChatSidebar, Composer,
|
|
2348
|
+
export { AccountDialog, AuthContext, AuthProvider, ChatFull, ChatPopup, ChatSidebar, Composer, MelonyClientProvider, MelonyContext, Thread, ThreadContext, ThreadList, ThreadProvider, UIRenderer, useAuth, useMelony, useThreads };
|
|
2333
2349
|
//# sourceMappingURL=index.js.map
|
|
2334
2350
|
//# sourceMappingURL=index.js.map
|