@assistant-ui/react 0.2.3 → 0.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/dist/index.d.mts +46 -49
- package/dist/index.d.ts +46 -49
- package/dist/index.js +177 -175
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +161 -156
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -1
package/dist/index.mjs
CHANGED
@@ -522,7 +522,7 @@ var useActionBarCopy = ({
|
|
522
522
|
const hasCopyableContent = useCombinedStore(
|
523
523
|
[useMessage, useEditComposer],
|
524
524
|
(m, c) => {
|
525
|
-
return !c.isEditing && m.message.content.some((c2) => c2.type === "text");
|
525
|
+
return !c.isEditing && m.message.content.some((c2) => c2.type === "text" && c2.text.length > 0);
|
526
526
|
}
|
527
527
|
);
|
528
528
|
const callback = useCallback4(() => {
|
@@ -695,7 +695,7 @@ var useContentPartText = () => {
|
|
695
695
|
throw new Error(
|
696
696
|
"ContentPartText can only be used inside text content parts."
|
697
697
|
);
|
698
|
-
return c
|
698
|
+
return c;
|
699
699
|
});
|
700
700
|
return text;
|
701
701
|
};
|
@@ -871,6 +871,7 @@ var ActionBarPrimitiveEdit = createActionButton(
|
|
871
871
|
// src/primitives/assistantModal/index.ts
|
872
872
|
var assistantModal_exports = {};
|
873
873
|
__export(assistantModal_exports, {
|
874
|
+
Anchor: () => AssistantModalPrimitiveAnchor,
|
874
875
|
Content: () => AssistantModalPrimitiveContent,
|
875
876
|
Root: () => AssistantModalPrimitiveRoot,
|
876
877
|
Trigger: () => AssistantModalPrimitiveTrigger
|
@@ -977,6 +978,21 @@ var AssistantModalPrimitiveContent = forwardRef4(
|
|
977
978
|
);
|
978
979
|
AssistantModalPrimitiveContent.displayName = "AssistantModalPrimitive.Content";
|
979
980
|
|
981
|
+
// src/primitives/assistantModal/AssistantModalAnchor.tsx
|
982
|
+
import { forwardRef as forwardRef5 } from "react";
|
983
|
+
import * as PopoverPrimitive5 from "@radix-ui/react-popover";
|
984
|
+
import { jsx as jsx9 } from "react/jsx-runtime";
|
985
|
+
var AssistantModalPrimitiveAnchor = forwardRef5(
|
986
|
+
({
|
987
|
+
__scopeAssistantModal,
|
988
|
+
...rest
|
989
|
+
}, ref) => {
|
990
|
+
const scope = usePopoverScope(__scopeAssistantModal);
|
991
|
+
return /* @__PURE__ */ jsx9(PopoverPrimitive5.Anchor, { ...scope, ...rest, ref });
|
992
|
+
}
|
993
|
+
);
|
994
|
+
AssistantModalPrimitiveAnchor.displayName = "AssistantModalPrimitive.Anchor";
|
995
|
+
|
980
996
|
// src/primitives/branchPicker/index.ts
|
981
997
|
var branchPicker_exports = {};
|
982
998
|
__export(branchPicker_exports, {
|
@@ -1000,24 +1016,24 @@ var BranchPickerPrevious = createActionButton(
|
|
1000
1016
|
);
|
1001
1017
|
|
1002
1018
|
// src/primitives/branchPicker/BranchPickerCount.tsx
|
1003
|
-
import { Fragment, jsx as
|
1019
|
+
import { Fragment, jsx as jsx10 } from "react/jsx-runtime";
|
1004
1020
|
var BranchPickerPrimitiveCount = () => {
|
1005
1021
|
const branchCount = useBranchPickerCount();
|
1006
|
-
return /* @__PURE__ */
|
1022
|
+
return /* @__PURE__ */ jsx10(Fragment, { children: branchCount });
|
1007
1023
|
};
|
1008
1024
|
BranchPickerPrimitiveCount.displayName = "BranchPickerPrimitive.Count";
|
1009
1025
|
|
1010
1026
|
// src/primitives/branchPicker/BranchPickerNumber.tsx
|
1011
|
-
import { Fragment as Fragment2, jsx as
|
1027
|
+
import { Fragment as Fragment2, jsx as jsx11 } from "react/jsx-runtime";
|
1012
1028
|
var BranchPickerPrimitiveNumber = () => {
|
1013
1029
|
const branchNumber = useBranchPickerNumber();
|
1014
|
-
return /* @__PURE__ */
|
1030
|
+
return /* @__PURE__ */ jsx11(Fragment2, { children: branchNumber });
|
1015
1031
|
};
|
1016
1032
|
BranchPickerPrimitiveNumber.displayName = "BranchPickerPrimitive.Number";
|
1017
1033
|
|
1018
1034
|
// src/primitives/branchPicker/BranchPickerRoot.tsx
|
1019
1035
|
import { Primitive as Primitive6 } from "@radix-ui/react-primitive";
|
1020
|
-
import { forwardRef as
|
1036
|
+
import { forwardRef as forwardRef9 } from "react";
|
1021
1037
|
|
1022
1038
|
// src/primitives/message/index.ts
|
1023
1039
|
var message_exports = {};
|
@@ -1029,28 +1045,60 @@ __export(message_exports, {
|
|
1029
1045
|
});
|
1030
1046
|
|
1031
1047
|
// src/primitives/message/MessageRoot.tsx
|
1032
|
-
import { composeEventHandlers as composeEventHandlers4 } from "@radix-ui/primitive";
|
1033
1048
|
import { Primitive as Primitive3 } from "@radix-ui/react-primitive";
|
1034
|
-
import {
|
1035
|
-
|
1036
|
-
|
1049
|
+
import {
|
1050
|
+
forwardRef as forwardRef6,
|
1051
|
+
useCallback as useCallback14
|
1052
|
+
} from "react";
|
1053
|
+
|
1054
|
+
// src/utils/hooks/useManagedRef.ts
|
1055
|
+
import { useCallback as useCallback13, useRef as useRef3 } from "react";
|
1056
|
+
var useManagedRef = (callback) => {
|
1057
|
+
const cleanupRef = useRef3();
|
1058
|
+
const ref = useCallback13(
|
1059
|
+
(el) => {
|
1060
|
+
if (cleanupRef.current) {
|
1061
|
+
cleanupRef.current();
|
1062
|
+
}
|
1063
|
+
if (el) {
|
1064
|
+
cleanupRef.current = callback(el);
|
1065
|
+
}
|
1066
|
+
},
|
1067
|
+
[callback]
|
1068
|
+
);
|
1069
|
+
return ref;
|
1070
|
+
};
|
1071
|
+
|
1072
|
+
// src/primitives/message/MessageRoot.tsx
|
1073
|
+
import { useComposedRefs } from "@radix-ui/react-compose-refs";
|
1074
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
1075
|
+
var useIsHoveringRef = () => {
|
1037
1076
|
const { useMessageUtils } = useMessageContext();
|
1038
|
-
const
|
1039
|
-
|
1040
|
-
|
1041
|
-
|
1042
|
-
|
1043
|
-
|
1044
|
-
|
1045
|
-
|
1046
|
-
|
1047
|
-
|
1048
|
-
|
1049
|
-
|
1050
|
-
|
1051
|
-
|
1052
|
-
|
1077
|
+
const callbackRef = useCallback14(
|
1078
|
+
(el) => {
|
1079
|
+
const setIsHovering = useMessageUtils.getState().setIsHovering;
|
1080
|
+
const handleMouseEnter = () => {
|
1081
|
+
setIsHovering(true);
|
1082
|
+
};
|
1083
|
+
const handleMouseLeave = () => {
|
1084
|
+
setIsHovering(false);
|
1085
|
+
};
|
1086
|
+
el.addEventListener("mouseenter", handleMouseEnter);
|
1087
|
+
el.addEventListener("mouseleave", handleMouseLeave);
|
1088
|
+
return () => {
|
1089
|
+
el.removeEventListener("mouseenter", handleMouseEnter);
|
1090
|
+
el.removeEventListener("mouseleave", handleMouseLeave);
|
1091
|
+
setIsHovering(false);
|
1092
|
+
};
|
1093
|
+
},
|
1094
|
+
[useMessageUtils]
|
1053
1095
|
);
|
1096
|
+
return useManagedRef(callbackRef);
|
1097
|
+
};
|
1098
|
+
var MessagePrimitiveRoot = forwardRef6(({ onMouseEnter, onMouseLeave, ...rest }, forwardRef15) => {
|
1099
|
+
const isHoveringRef = useIsHoveringRef();
|
1100
|
+
const ref = useComposedRefs(forwardRef15, isHoveringRef);
|
1101
|
+
return /* @__PURE__ */ jsx12(Primitive3.div, { ...rest, ref });
|
1054
1102
|
});
|
1055
1103
|
MessagePrimitiveRoot.displayName = "MessagePrimitive.Root";
|
1056
1104
|
|
@@ -1070,7 +1118,7 @@ import { memo as memo2 } from "react";
|
|
1070
1118
|
// src/context/providers/ContentPartProvider.tsx
|
1071
1119
|
import { useEffect as useEffect7, useState as useState4 } from "react";
|
1072
1120
|
import { create as create9 } from "zustand";
|
1073
|
-
import { jsx as
|
1121
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
1074
1122
|
var syncContentPart = ({ message }, useContentPart, partIndex) => {
|
1075
1123
|
const part = message.content[partIndex];
|
1076
1124
|
if (!part) return;
|
@@ -1107,9 +1155,32 @@ var ContentPartProvider = ({
|
|
1107
1155
|
children
|
1108
1156
|
}) => {
|
1109
1157
|
const context = useContentPartContext2(partIndex);
|
1110
|
-
return /* @__PURE__ */
|
1158
|
+
return /* @__PURE__ */ jsx13(ContentPartContext.Provider, { value: context, children });
|
1111
1159
|
};
|
1112
1160
|
|
1161
|
+
// src/primitives/contentPart/ContentPartText.tsx
|
1162
|
+
import { Primitive as Primitive4 } from "@radix-ui/react-primitive";
|
1163
|
+
import { forwardRef as forwardRef7 } from "react";
|
1164
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
1165
|
+
var ContentPartPrimitiveText = forwardRef7((props, forwardedRef) => {
|
1166
|
+
const {
|
1167
|
+
part: { text },
|
1168
|
+
status
|
1169
|
+
} = useContentPartText();
|
1170
|
+
return /* @__PURE__ */ jsx14(Primitive4.span, { "data-status": status, ...props, ref: forwardedRef, children: text });
|
1171
|
+
});
|
1172
|
+
ContentPartPrimitiveText.displayName = "ContentPartPrimitive.Text";
|
1173
|
+
|
1174
|
+
// src/primitives/contentPart/ContentPartImage.tsx
|
1175
|
+
import { Primitive as Primitive5 } from "@radix-ui/react-primitive";
|
1176
|
+
import { forwardRef as forwardRef8 } from "react";
|
1177
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
1178
|
+
var ContentPartPrimitiveImage = forwardRef8((props, forwardedRef) => {
|
1179
|
+
const image = useContentPartImage();
|
1180
|
+
return /* @__PURE__ */ jsx15(Primitive5.img, { src: image, ...props, ref: forwardedRef });
|
1181
|
+
});
|
1182
|
+
ContentPartPrimitiveImage.displayName = "ContentPartPrimitive.Image";
|
1183
|
+
|
1113
1184
|
// src/primitives/contentPart/ContentPartDisplay.tsx
|
1114
1185
|
var ContentPartPrimitiveDisplay = () => {
|
1115
1186
|
const display = useContentPartDisplay();
|
@@ -1117,54 +1188,24 @@ var ContentPartPrimitiveDisplay = () => {
|
|
1117
1188
|
};
|
1118
1189
|
ContentPartPrimitiveDisplay.displayName = "ContentPartPrimitive.Display";
|
1119
1190
|
|
1120
|
-
// src/
|
1121
|
-
|
1122
|
-
|
1123
|
-
|
1124
|
-
const parentRef = useRef3(null);
|
1125
|
-
useLayoutEffect(() => {
|
1126
|
-
const parent = parentRef.current;
|
1127
|
-
if (!parent || !node) return;
|
1128
|
-
parent.appendChild(node);
|
1129
|
-
return () => {
|
1130
|
-
parent.removeChild(node);
|
1131
|
-
};
|
1132
|
-
}, [node]);
|
1133
|
-
if (!node) return null;
|
1134
|
-
return /* @__PURE__ */ jsx13("span", { ref: parentRef });
|
1135
|
-
};
|
1136
|
-
|
1137
|
-
// src/primitives/contentPart/ContentPartInProgressIndicator.tsx
|
1138
|
-
import { jsx as jsx14 } from "react/jsx-runtime";
|
1139
|
-
var ContentPartPrimitiveInProgressIndicator = () => {
|
1140
|
-
const { useMessageUtils } = useMessageContext();
|
1191
|
+
// src/primitives/contentPart/ContentPartInProgress.tsx
|
1192
|
+
var ContentPartPrimitiveInProgress = ({
|
1193
|
+
children
|
1194
|
+
}) => {
|
1141
1195
|
const { useContentPart } = useContentPartContext();
|
1142
|
-
const
|
1143
|
-
|
1144
|
-
(m, c) => c.status === "in_progress" ? m.inProgressIndicator : null
|
1145
|
-
);
|
1146
|
-
return /* @__PURE__ */ jsx14(OutPortal, { node: indicator });
|
1196
|
+
const isInProgress = useContentPart((c) => c.status === "in_progress");
|
1197
|
+
return isInProgress ? children : null;
|
1147
1198
|
};
|
1148
|
-
|
1149
|
-
|
1150
|
-
// src/primitives/contentPart/ContentPartText.tsx
|
1151
|
-
import { Primitive as Primitive4 } from "@radix-ui/react-primitive";
|
1152
|
-
import { forwardRef as forwardRef6 } from "react";
|
1153
|
-
import { jsx as jsx15 } from "react/jsx-runtime";
|
1154
|
-
var ContentPartPrimitiveText = forwardRef6((props, forwardedRef) => {
|
1155
|
-
const text = useContentPartText();
|
1156
|
-
return /* @__PURE__ */ jsx15(Primitive4.span, { ...props, ref: forwardedRef, children: text });
|
1157
|
-
});
|
1158
|
-
ContentPartPrimitiveText.displayName = "ContentPartPrimitive.Text";
|
1199
|
+
ContentPartPrimitiveInProgress.displayName = "ContentPartPrimitive.InProgress";
|
1159
1200
|
|
1160
1201
|
// src/primitives/message/MessageContent.tsx
|
1161
1202
|
import { jsx as jsx16, jsxs as jsxs2 } from "react/jsx-runtime";
|
1162
1203
|
var defaultComponents = {
|
1163
1204
|
Text: () => /* @__PURE__ */ jsxs2("p", { style: { whiteSpace: "pre-line" }, children: [
|
1164
1205
|
/* @__PURE__ */ jsx16(ContentPartPrimitiveText, {}),
|
1165
|
-
/* @__PURE__ */ jsx16(
|
1206
|
+
/* @__PURE__ */ jsx16(ContentPartPrimitiveInProgress, { children: " \u25CF" })
|
1166
1207
|
] }),
|
1167
|
-
Image: () =>
|
1208
|
+
Image: () => /* @__PURE__ */ jsx16(ContentPartPrimitiveImage, {}),
|
1168
1209
|
UI: () => /* @__PURE__ */ jsx16(ContentPartPrimitiveDisplay, {}),
|
1169
1210
|
tools: {
|
1170
1211
|
Fallback: (props) => {
|
@@ -1234,21 +1275,15 @@ var MessagePrimitiveContent = ({
|
|
1234
1275
|
MessagePrimitiveContent.displayName = "MessagePrimitive.Content";
|
1235
1276
|
|
1236
1277
|
// src/primitives/message/MessageInProgress.tsx
|
1237
|
-
|
1238
|
-
|
1239
|
-
|
1240
|
-
import { jsx as jsx17 } from "react/jsx-runtime";
|
1241
|
-
var MessagePrimitiveInProgress = forwardRef7((props, ref) => {
|
1242
|
-
const { useMessageUtils } = useMessageContext();
|
1243
|
-
const portalNode = useMessageUtils((s) => s.inProgressIndicator);
|
1244
|
-
return createPortal(/* @__PURE__ */ jsx17(Primitive5.span, { ...props, ref }), portalNode);
|
1245
|
-
});
|
1278
|
+
var MessagePrimitiveInProgress = () => {
|
1279
|
+
return null;
|
1280
|
+
};
|
1246
1281
|
MessagePrimitiveInProgress.displayName = "MessagePrimitive.InProgress";
|
1247
1282
|
|
1248
1283
|
// src/primitives/branchPicker/BranchPickerRoot.tsx
|
1249
|
-
import { jsx as
|
1250
|
-
var BranchPickerPrimitiveRoot =
|
1251
|
-
return /* @__PURE__ */
|
1284
|
+
import { jsx as jsx17 } from "react/jsx-runtime";
|
1285
|
+
var BranchPickerPrimitiveRoot = forwardRef9(({ hideWhenSingleBranch, ...rest }, ref) => {
|
1286
|
+
return /* @__PURE__ */ jsx17(MessagePrimitiveIf, { hasBranches: hideWhenSingleBranch ? true : void 0, children: /* @__PURE__ */ jsx17(Primitive6.div, { ...rest, ref }) });
|
1252
1287
|
});
|
1253
1288
|
BranchPickerPrimitiveRoot.displayName = "BranchPickerPrimitive.Root";
|
1254
1289
|
|
@@ -1263,44 +1298,44 @@ __export(composer_exports, {
|
|
1263
1298
|
});
|
1264
1299
|
|
1265
1300
|
// src/primitives/composer/ComposerRoot.tsx
|
1266
|
-
import { composeEventHandlers as
|
1301
|
+
import { composeEventHandlers as composeEventHandlers4 } from "@radix-ui/primitive";
|
1267
1302
|
import { Primitive as Primitive7 } from "@radix-ui/react-primitive";
|
1268
1303
|
import {
|
1269
|
-
forwardRef as
|
1304
|
+
forwardRef as forwardRef10
|
1270
1305
|
} from "react";
|
1271
|
-
import { jsx as
|
1272
|
-
var ComposerPrimitiveRoot =
|
1306
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
1307
|
+
var ComposerPrimitiveRoot = forwardRef10(({ onSubmit, ...rest }, forwardedRef) => {
|
1273
1308
|
const send = useComposerSend();
|
1274
1309
|
const handleSubmit = (e) => {
|
1275
1310
|
e.preventDefault();
|
1276
1311
|
if (!send) return;
|
1277
1312
|
send();
|
1278
1313
|
};
|
1279
|
-
return /* @__PURE__ */
|
1314
|
+
return /* @__PURE__ */ jsx18(
|
1280
1315
|
Primitive7.form,
|
1281
1316
|
{
|
1282
1317
|
...rest,
|
1283
1318
|
ref: forwardedRef,
|
1284
|
-
onSubmit:
|
1319
|
+
onSubmit: composeEventHandlers4(onSubmit, handleSubmit)
|
1285
1320
|
}
|
1286
1321
|
);
|
1287
1322
|
});
|
1288
1323
|
ComposerPrimitiveRoot.displayName = "ComposerPrimitive.Root";
|
1289
1324
|
|
1290
1325
|
// src/primitives/composer/ComposerInput.tsx
|
1291
|
-
import { composeEventHandlers as
|
1292
|
-
import { useComposedRefs } from "@radix-ui/react-compose-refs";
|
1326
|
+
import { composeEventHandlers as composeEventHandlers5 } from "@radix-ui/primitive";
|
1327
|
+
import { useComposedRefs as useComposedRefs2 } from "@radix-ui/react-compose-refs";
|
1293
1328
|
import { Slot } from "@radix-ui/react-slot";
|
1294
1329
|
import {
|
1295
|
-
forwardRef as
|
1296
|
-
useCallback as
|
1330
|
+
forwardRef as forwardRef11,
|
1331
|
+
useCallback as useCallback15,
|
1297
1332
|
useEffect as useEffect8,
|
1298
1333
|
useRef as useRef4
|
1299
1334
|
} from "react";
|
1300
1335
|
import TextareaAutosize from "react-textarea-autosize";
|
1301
1336
|
import { useEscapeKeydown } from "@radix-ui/react-use-escape-keydown";
|
1302
|
-
import { jsx as
|
1303
|
-
var ComposerPrimitiveInput =
|
1337
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
1338
|
+
var ComposerPrimitiveInput = forwardRef11(
|
1304
1339
|
({ autoFocus = false, asChild, disabled, onChange, onKeyDown, ...rest }, forwardedRef) => {
|
1305
1340
|
const { useThread } = useThreadContext();
|
1306
1341
|
const { useComposer, type } = useComposerContext();
|
@@ -1310,7 +1345,7 @@ var ComposerPrimitiveInput = forwardRef10(
|
|
1310
1345
|
});
|
1311
1346
|
const Component = asChild ? Slot : TextareaAutosize;
|
1312
1347
|
const textareaRef = useRef4(null);
|
1313
|
-
const ref =
|
1348
|
+
const ref = useComposedRefs2(forwardedRef, textareaRef);
|
1314
1349
|
useEscapeKeydown((e) => {
|
1315
1350
|
const composer = useComposer.getState();
|
1316
1351
|
if (composer.cancel()) {
|
@@ -1328,7 +1363,7 @@ var ComposerPrimitiveInput = forwardRef10(
|
|
1328
1363
|
}
|
1329
1364
|
};
|
1330
1365
|
const autoFocusEnabled = autoFocus && !disabled;
|
1331
|
-
const focus =
|
1366
|
+
const focus = useCallback15(() => {
|
1332
1367
|
const textarea = textareaRef.current;
|
1333
1368
|
if (!textarea || !autoFocusEnabled) return;
|
1334
1369
|
textarea.focus({ preventScroll: true });
|
@@ -1343,19 +1378,20 @@ var ComposerPrimitiveInput = forwardRef10(
|
|
1343
1378
|
focus();
|
1344
1379
|
}
|
1345
1380
|
});
|
1346
|
-
return /* @__PURE__ */
|
1381
|
+
return /* @__PURE__ */ jsx19(
|
1347
1382
|
Component,
|
1348
1383
|
{
|
1384
|
+
name: "input",
|
1349
1385
|
value,
|
1350
1386
|
...rest,
|
1351
1387
|
ref,
|
1352
1388
|
disabled,
|
1353
|
-
onChange:
|
1389
|
+
onChange: composeEventHandlers5(onChange, (e) => {
|
1354
1390
|
const composerState = useComposer.getState();
|
1355
1391
|
if (!composerState.isEditing) return;
|
1356
1392
|
return composerState.setValue(e.target.value);
|
1357
1393
|
}),
|
1358
|
-
onKeyDown:
|
1394
|
+
onKeyDown: composeEventHandlers5(onKeyDown, handleKeyPress)
|
1359
1395
|
}
|
1360
1396
|
);
|
1361
1397
|
}
|
@@ -1363,13 +1399,13 @@ var ComposerPrimitiveInput = forwardRef10(
|
|
1363
1399
|
ComposerPrimitiveInput.displayName = "ComposerPrimitive.Input";
|
1364
1400
|
|
1365
1401
|
// src/primitives/composer/ComposerSend.tsx
|
1366
|
-
import { forwardRef as
|
1402
|
+
import { forwardRef as forwardRef12 } from "react";
|
1367
1403
|
import { Primitive as Primitive8 } from "@radix-ui/react-primitive";
|
1368
|
-
import { jsx as
|
1369
|
-
var ComposerPrimitiveSend =
|
1404
|
+
import { jsx as jsx20 } from "react/jsx-runtime";
|
1405
|
+
var ComposerPrimitiveSend = forwardRef12(({ disabled, ...rest }, ref) => {
|
1370
1406
|
const { useComposer } = useComposerContext();
|
1371
1407
|
const hasValue = useComposer((c) => c.isEditing && c.value.length > 0);
|
1372
|
-
return /* @__PURE__ */
|
1408
|
+
return /* @__PURE__ */ jsx20(
|
1373
1409
|
Primitive8.button,
|
1374
1410
|
{
|
1375
1411
|
type: "submit",
|
@@ -1402,20 +1438,10 @@ var contentPart_exports = {};
|
|
1402
1438
|
__export(contentPart_exports, {
|
1403
1439
|
Display: () => ContentPartPrimitiveDisplay,
|
1404
1440
|
Image: () => ContentPartPrimitiveImage,
|
1405
|
-
|
1441
|
+
InProgress: () => ContentPartPrimitiveInProgress,
|
1406
1442
|
Text: () => ContentPartPrimitiveText
|
1407
1443
|
});
|
1408
1444
|
|
1409
|
-
// src/primitives/contentPart/ContentPartImage.tsx
|
1410
|
-
import { Primitive as Primitive9 } from "@radix-ui/react-primitive";
|
1411
|
-
import { forwardRef as forwardRef12 } from "react";
|
1412
|
-
import { jsx as jsx22 } from "react/jsx-runtime";
|
1413
|
-
var ContentPartPrimitiveImage = forwardRef12((props, forwardedRef) => {
|
1414
|
-
const image = useContentPartImage();
|
1415
|
-
return /* @__PURE__ */ jsx22(Primitive9.img, { src: image, ...props, ref: forwardedRef });
|
1416
|
-
});
|
1417
|
-
ContentPartPrimitiveImage.displayName = "ContentPartPrimitive.Image";
|
1418
|
-
|
1419
1445
|
// src/primitives/thread/index.ts
|
1420
1446
|
var thread_exports = {};
|
1421
1447
|
__export(thread_exports, {
|
@@ -1429,11 +1455,11 @@ __export(thread_exports, {
|
|
1429
1455
|
});
|
1430
1456
|
|
1431
1457
|
// src/primitives/thread/ThreadRoot.tsx
|
1432
|
-
import { Primitive as
|
1458
|
+
import { Primitive as Primitive9 } from "@radix-ui/react-primitive";
|
1433
1459
|
import { forwardRef as forwardRef13 } from "react";
|
1434
|
-
import { jsx as
|
1460
|
+
import { jsx as jsx21 } from "react/jsx-runtime";
|
1435
1461
|
var ThreadPrimitiveRoot = forwardRef13((props, ref) => {
|
1436
|
-
return /* @__PURE__ */
|
1462
|
+
return /* @__PURE__ */ jsx21(Primitive9.div, { ...props, ref });
|
1437
1463
|
});
|
1438
1464
|
ThreadPrimitiveRoot.displayName = "ThreadPrimitive.Root";
|
1439
1465
|
|
@@ -1457,40 +1483,20 @@ var ThreadPrimitiveIf = ({
|
|
1457
1483
|
ThreadPrimitiveIf.displayName = "ThreadPrimitive.If";
|
1458
1484
|
|
1459
1485
|
// src/primitives/thread/ThreadViewport.tsx
|
1460
|
-
import { useComposedRefs as
|
1461
|
-
import { Primitive as
|
1486
|
+
import { useComposedRefs as useComposedRefs4 } from "@radix-ui/react-compose-refs";
|
1487
|
+
import { Primitive as Primitive10 } from "@radix-ui/react-primitive";
|
1462
1488
|
import { forwardRef as forwardRef14 } from "react";
|
1463
1489
|
|
1464
1490
|
// src/primitive-hooks/thread/useThreadViewportAutoScroll.tsx
|
1465
|
-
import { useComposedRefs as
|
1466
|
-
import { useRef as
|
1491
|
+
import { useComposedRefs as useComposedRefs3 } from "@radix-ui/react-compose-refs";
|
1492
|
+
import { useRef as useRef5 } from "react";
|
1467
1493
|
|
1468
1494
|
// src/utils/hooks/useOnResizeContent.tsx
|
1469
1495
|
import { useCallbackRef as useCallbackRef2 } from "@radix-ui/react-use-callback-ref";
|
1470
|
-
import { useCallback as
|
1471
|
-
|
1472
|
-
// src/utils/hooks/useManagedRef.ts
|
1473
|
-
import { useCallback as useCallback14, useRef as useRef5 } from "react";
|
1474
|
-
var useManagedRef = (callback) => {
|
1475
|
-
const cleanupRef = useRef5();
|
1476
|
-
const ref = useCallback14(
|
1477
|
-
(el) => {
|
1478
|
-
if (cleanupRef.current) {
|
1479
|
-
cleanupRef.current();
|
1480
|
-
}
|
1481
|
-
if (el) {
|
1482
|
-
cleanupRef.current = callback(el);
|
1483
|
-
}
|
1484
|
-
},
|
1485
|
-
[callback]
|
1486
|
-
);
|
1487
|
-
return ref;
|
1488
|
-
};
|
1489
|
-
|
1490
|
-
// src/utils/hooks/useOnResizeContent.tsx
|
1496
|
+
import { useCallback as useCallback16 } from "react";
|
1491
1497
|
var useOnResizeContent = (callback) => {
|
1492
1498
|
const callbackRef = useCallbackRef2(callback);
|
1493
|
-
const refCallback =
|
1499
|
+
const refCallback = useCallback16(
|
1494
1500
|
(el) => {
|
1495
1501
|
const resizeObserver = new ResizeObserver(() => {
|
1496
1502
|
callbackRef();
|
@@ -1542,11 +1548,11 @@ var useOnScrollToBottom = (callback) => {
|
|
1542
1548
|
var useThreadViewportAutoScroll = ({
|
1543
1549
|
autoScroll = true
|
1544
1550
|
}) => {
|
1545
|
-
const divRef =
|
1551
|
+
const divRef = useRef5(null);
|
1546
1552
|
const { useViewport } = useThreadContext();
|
1547
|
-
const firstRenderRef =
|
1548
|
-
const lastScrollTop =
|
1549
|
-
const isScrollingToBottomRef =
|
1553
|
+
const firstRenderRef = useRef5(true);
|
1554
|
+
const lastScrollTop = useRef5(0);
|
1555
|
+
const isScrollingToBottomRef = useRef5(false);
|
1550
1556
|
const scrollToBottom = () => {
|
1551
1557
|
const div = divRef.current;
|
1552
1558
|
if (!div || !autoScroll) return;
|
@@ -1584,7 +1590,7 @@ var useThreadViewportAutoScroll = ({
|
|
1584
1590
|
el.removeEventListener("scroll", handleScroll);
|
1585
1591
|
};
|
1586
1592
|
});
|
1587
|
-
const autoScrollRef =
|
1593
|
+
const autoScrollRef = useComposedRefs3(resizeRef, scrollRef, divRef);
|
1588
1594
|
useOnScrollToBottom(() => {
|
1589
1595
|
scrollToBottom();
|
1590
1596
|
});
|
@@ -1592,13 +1598,13 @@ var useThreadViewportAutoScroll = ({
|
|
1592
1598
|
};
|
1593
1599
|
|
1594
1600
|
// src/primitives/thread/ThreadViewport.tsx
|
1595
|
-
import { jsx as
|
1601
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
1596
1602
|
var ThreadPrimitiveViewport = forwardRef14(({ autoScroll, onScroll, children, ...rest }, forwardedRef) => {
|
1597
1603
|
const autoScrollRef = useThreadViewportAutoScroll({
|
1598
1604
|
autoScroll
|
1599
1605
|
});
|
1600
|
-
const ref =
|
1601
|
-
return /* @__PURE__ */
|
1606
|
+
const ref = useComposedRefs4(forwardedRef, autoScrollRef);
|
1607
|
+
return /* @__PURE__ */ jsx22(Primitive10.div, { ...rest, ref, children });
|
1602
1608
|
});
|
1603
1609
|
ThreadPrimitiveViewport.displayName = "ThreadPrimitive.Viewport";
|
1604
1610
|
|
@@ -1636,7 +1642,6 @@ var makeEditComposerStore = ({
|
|
1636
1642
|
// src/context/stores/MessageUtils.ts
|
1637
1643
|
import { create as create11 } from "zustand";
|
1638
1644
|
var makeMessageUtilsStore = () => create11((set) => ({
|
1639
|
-
inProgressIndicator: document.createElement("span"),
|
1640
1645
|
isCopied: false,
|
1641
1646
|
setIsCopied: (value) => {
|
1642
1647
|
set({ isCopied: value });
|
@@ -1648,7 +1653,7 @@ var makeMessageUtilsStore = () => create11((set) => ({
|
|
1648
1653
|
}));
|
1649
1654
|
|
1650
1655
|
// src/context/providers/MessageProvider.tsx
|
1651
|
-
import { jsx as
|
1656
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
1652
1657
|
var getIsLast = (messages, message) => {
|
1653
1658
|
return messages[messages.length - 1]?.id === message.id;
|
1654
1659
|
};
|
@@ -1724,11 +1729,11 @@ var MessageProvider = ({
|
|
1724
1729
|
children
|
1725
1730
|
}) => {
|
1726
1731
|
const context = useMessageContext2(messageIndex);
|
1727
|
-
return /* @__PURE__ */
|
1732
|
+
return /* @__PURE__ */ jsx23(MessageContext.Provider, { value: context, children });
|
1728
1733
|
};
|
1729
1734
|
|
1730
1735
|
// src/primitives/thread/ThreadMessages.tsx
|
1731
|
-
import { jsx as
|
1736
|
+
import { jsx as jsx24, jsxs as jsxs3 } from "react/jsx-runtime";
|
1732
1737
|
var getComponents = (components) => {
|
1733
1738
|
return {
|
1734
1739
|
EditComposer: components.EditComposer ?? components.UserMessage ?? components.Message,
|
@@ -1743,10 +1748,10 @@ var ThreadMessageImpl = ({
|
|
1743
1748
|
const { UserMessage, EditComposer, AssistantMessage } = getComponents(components);
|
1744
1749
|
return /* @__PURE__ */ jsxs3(MessageProvider, { messageIndex, children: [
|
1745
1750
|
/* @__PURE__ */ jsxs3(MessagePrimitiveIf, { user: true, children: [
|
1746
|
-
/* @__PURE__ */
|
1747
|
-
/* @__PURE__ */
|
1751
|
+
/* @__PURE__ */ jsx24(ComposerPrimitiveIf, { editing: false, children: /* @__PURE__ */ jsx24(UserMessage, {}) }),
|
1752
|
+
/* @__PURE__ */ jsx24(ComposerPrimitiveIf, { editing: true, children: /* @__PURE__ */ jsx24(EditComposer, {}) })
|
1748
1753
|
] }),
|
1749
|
-
/* @__PURE__ */
|
1754
|
+
/* @__PURE__ */ jsx24(MessagePrimitiveIf, { assistant: true, children: /* @__PURE__ */ jsx24(AssistantMessage, {}) })
|
1750
1755
|
] });
|
1751
1756
|
};
|
1752
1757
|
var ThreadMessage = memo3(
|
@@ -1761,7 +1766,7 @@ var ThreadPrimitiveMessages = ({
|
|
1761
1766
|
if (messagesLength === 0) return null;
|
1762
1767
|
return new Array(messagesLength).fill(null).map((_, idx) => {
|
1763
1768
|
const messageIndex = idx;
|
1764
|
-
return /* @__PURE__ */
|
1769
|
+
return /* @__PURE__ */ jsx24(
|
1765
1770
|
ThreadMessage,
|
1766
1771
|
{
|
1767
1772
|
messageIndex,
|