@melony/react 0.1.38 → 0.1.39
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 +15 -51
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +18 -26
- package/dist/index.d.ts +18 -26
- package/dist/index.js +16 -51
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var React11 = require('react');
|
|
4
|
+
var melony = require('melony');
|
|
4
5
|
var react = require('nuqs/adapters/react');
|
|
5
6
|
var reactQuery = require('@tanstack/react-query');
|
|
6
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -42,31 +43,6 @@ var React11__namespace = /*#__PURE__*/_interopNamespace(React11);
|
|
|
42
43
|
var ICONS__namespace = /*#__PURE__*/_interopNamespace(ICONS);
|
|
43
44
|
|
|
44
45
|
// src/providers/melony-provider.tsx
|
|
45
|
-
|
|
46
|
-
// src/lib/group-events-to-messages.ts
|
|
47
|
-
function groupEventsToMessages(events) {
|
|
48
|
-
if (events.length === 0) return [];
|
|
49
|
-
const messages = [];
|
|
50
|
-
let currentMessage = null;
|
|
51
|
-
for (const event of events) {
|
|
52
|
-
const role = event.role || "assistant";
|
|
53
|
-
const runId = event.runId;
|
|
54
|
-
if (!currentMessage || currentMessage.role !== role || runId && currentMessage.runId && runId !== currentMessage.runId) {
|
|
55
|
-
currentMessage = {
|
|
56
|
-
role,
|
|
57
|
-
content: [event],
|
|
58
|
-
runId
|
|
59
|
-
};
|
|
60
|
-
messages.push(currentMessage);
|
|
61
|
-
} else {
|
|
62
|
-
currentMessage.content.push(event);
|
|
63
|
-
if (!currentMessage.runId && runId) {
|
|
64
|
-
currentMessage.runId = runId;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return messages;
|
|
69
|
-
}
|
|
70
46
|
var MelonyContext = React11.createContext(
|
|
71
47
|
void 0
|
|
72
48
|
);
|
|
@@ -164,7 +140,7 @@ var MelonyContextProviderInner = ({
|
|
|
164
140
|
const value = React11.useMemo(
|
|
165
141
|
() => ({
|
|
166
142
|
...state,
|
|
167
|
-
messages:
|
|
143
|
+
messages: melony.convertEventsToMessages(state.events),
|
|
168
144
|
sendEvent,
|
|
169
145
|
reset,
|
|
170
146
|
client,
|
|
@@ -2833,25 +2809,16 @@ function MessageContent({ events }) {
|
|
|
2833
2809
|
}
|
|
2834
2810
|
function MessageBubble({ message }) {
|
|
2835
2811
|
const isUser = message.role === "user";
|
|
2836
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2812
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col", isUser ? "items-end" : "items-start"), children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2837
2813
|
"div",
|
|
2838
2814
|
{
|
|
2839
2815
|
className: cn(
|
|
2840
|
-
"flex flex-col",
|
|
2841
|
-
isUser ? "
|
|
2816
|
+
"flex flex-col items-start max-w-[85%] rounded-2xl px-4 py-2 space-y-4 whitespace-pre-wrap",
|
|
2817
|
+
isUser ? "bg-primary text-primary-foreground" : "px-0 py-0 text-foreground"
|
|
2842
2818
|
),
|
|
2843
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2844
|
-
"div",
|
|
2845
|
-
{
|
|
2846
|
-
className: cn(
|
|
2847
|
-
"flex flex-col items-start max-w-[85%] rounded-2xl px-4 py-2 space-y-4 whitespace-pre-wrap",
|
|
2848
|
-
isUser ? "bg-primary text-primary-foreground" : "px-0 py-0 text-foreground"
|
|
2849
|
-
),
|
|
2850
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(MessageContent, { events: message.content })
|
|
2851
|
-
}
|
|
2852
|
-
)
|
|
2819
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(MessageContent, { events: message.content })
|
|
2853
2820
|
}
|
|
2854
|
-
);
|
|
2821
|
+
) });
|
|
2855
2822
|
}
|
|
2856
2823
|
function LoadingIndicator({ status }) {
|
|
2857
2824
|
const [isExpanded, setIsExpanded] = React11.useState(false);
|
|
@@ -2934,17 +2901,15 @@ function Thread({
|
|
|
2934
2901
|
const hasOptions = state && Object.keys(state).filter((k) => k !== "threadId").length > 0;
|
|
2935
2902
|
if (!text && !hasFiles && !hasOptions || isLoading) return;
|
|
2936
2903
|
if (!overrideInput) setInput("");
|
|
2937
|
-
await sendEvent(
|
|
2938
|
-
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
state
|
|
2943
|
-
|
|
2944
|
-
threadId: activeThreadId ?? void 0
|
|
2945
|
-
}
|
|
2904
|
+
await sendEvent({
|
|
2905
|
+
type: "text",
|
|
2906
|
+
role: "user",
|
|
2907
|
+
data: { content: text || "" },
|
|
2908
|
+
state: {
|
|
2909
|
+
...state,
|
|
2910
|
+
threadId: activeThreadId ?? void 0
|
|
2946
2911
|
}
|
|
2947
|
-
);
|
|
2912
|
+
});
|
|
2948
2913
|
};
|
|
2949
2914
|
const handleStarterPromptClick = (prompt) => {
|
|
2950
2915
|
if (onStarterPromptClick) {
|
|
@@ -3722,7 +3687,6 @@ exports.ThreadPopover = ThreadPopover;
|
|
|
3722
3687
|
exports.ThreadProvider = ThreadProvider;
|
|
3723
3688
|
exports.UIRenderer = UIRenderer;
|
|
3724
3689
|
exports.WelcomeScreen = WelcomeScreen;
|
|
3725
|
-
exports.groupEventsToMessages = groupEventsToMessages;
|
|
3726
3690
|
exports.useAuth = useAuth;
|
|
3727
3691
|
exports.useMelony = useMelony;
|
|
3728
3692
|
exports.useScreenSize = useScreenSize;
|