@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,
         |