@assistant-ui/react 0.5.73 → 0.5.74

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.mjs CHANGED
@@ -673,12 +673,7 @@ var useBranchPickerCount = () => {
673
673
  import { useCallback as useCallback10 } from "react";
674
674
  var useBranchPickerNext = () => {
675
675
  const messageRuntime = useMessageRuntime();
676
- const messageStore = useMessageStore();
677
- const editComposerStore = useEditComposerStore();
678
- const disabled = useCombinedStore(
679
- [messageStore, editComposerStore],
680
- (m, c) => c.isEditing || m.branchNumber >= m.branchCount
681
- );
676
+ const disabled = useMessage((m) => m.branchNumber >= m.branchCount);
682
677
  const callback = useCallback10(() => {
683
678
  messageRuntime.switchToBranch({ position: "next" });
684
679
  }, [messageRuntime]);
@@ -696,12 +691,7 @@ var useBranchPickerNumber = () => {
696
691
  import { useCallback as useCallback11 } from "react";
697
692
  var useBranchPickerPrevious = () => {
698
693
  const messageRuntime = useMessageRuntime();
699
- const messageStore = useMessageStore();
700
- const editComposerStore = useEditComposerStore();
701
- const disabled = useCombinedStore(
702
- [messageStore, editComposerStore],
703
- (m, c) => c.isEditing || m.branchNumber <= 1
704
- );
694
+ const disabled = useMessage((m) => m.branchNumber <= 1);
705
695
  const callback = useCallback11(() => {
706
696
  messageRuntime.switchToBranch({ position: "previous" });
707
697
  }, [messageRuntime]);
@@ -1239,6 +1229,119 @@ var AssistantModalPrimitiveAnchor = forwardRef9(
1239
1229
  );
1240
1230
  AssistantModalPrimitiveAnchor.displayName = "AssistantModalPrimitive.Anchor";
1241
1231
 
1232
+ // src/primitives/attachment/index.ts
1233
+ var attachment_exports = {};
1234
+ __export(attachment_exports, {
1235
+ Name: () => AttachmentPrimitiveName,
1236
+ Remove: () => AttachmentPrimitiveRemove,
1237
+ Root: () => AttachmentPrimitiveRoot,
1238
+ unstable_Thumb: () => AttachmentPrimitiveThumb
1239
+ });
1240
+
1241
+ // src/primitives/attachment/AttachmentRoot.tsx
1242
+ import { Primitive as Primitive7 } from "@radix-ui/react-primitive";
1243
+ import { forwardRef as forwardRef10 } from "react";
1244
+ import { jsx as jsx14 } from "react/jsx-runtime";
1245
+ var AttachmentPrimitiveRoot = forwardRef10((props, ref) => {
1246
+ return /* @__PURE__ */ jsx14(Primitive7.div, { ...props, ref });
1247
+ });
1248
+ AttachmentPrimitiveRoot.displayName = "AttachmentPrimitive.Root";
1249
+
1250
+ // src/primitives/attachment/AttachmentThumb.tsx
1251
+ import { forwardRef as forwardRef11 } from "react";
1252
+
1253
+ // src/context/react/AttachmentContext.ts
1254
+ import { createContext as createContext5, useContext as useContext2 } from "react";
1255
+ var AttachmentContext = createContext5(
1256
+ null
1257
+ );
1258
+ function useAttachmentContext(options) {
1259
+ const context = useContext2(AttachmentContext);
1260
+ if (!options?.optional && !context)
1261
+ throw new Error(
1262
+ "This component must be used within a ComposerPrimitive.Attachments or MessagePrimitive.Attachments component."
1263
+ );
1264
+ return context;
1265
+ }
1266
+ function useThreadComposerAttachmentContext(options) {
1267
+ const context = useAttachmentContext(options);
1268
+ if (!context) return null;
1269
+ if (context.source !== "thread-composer")
1270
+ throw new Error(
1271
+ "This component must be used within a thread's ComposerPrimitive.Attachments component."
1272
+ );
1273
+ return context;
1274
+ }
1275
+ function useEditComposerAttachmentContext(options) {
1276
+ const context = useAttachmentContext(options);
1277
+ if (!context) return null;
1278
+ if (context.source !== "edit-composer")
1279
+ throw new Error(
1280
+ "This component must be used within a messages's ComposerPrimitive.Attachments component."
1281
+ );
1282
+ return context;
1283
+ }
1284
+ function useMessageAttachmentContext(options) {
1285
+ const context = useAttachmentContext(options);
1286
+ if (!context) return null;
1287
+ if (context.source !== "message")
1288
+ throw new Error(
1289
+ "This component must be used within a MessagePrimitive.Attachments component."
1290
+ );
1291
+ return context;
1292
+ }
1293
+ function useAttachmentRuntime(options) {
1294
+ const attachmentRuntime = useAttachmentContext(options);
1295
+ if (!attachmentRuntime) return null;
1296
+ return attachmentRuntime.useAttachmentRuntime();
1297
+ }
1298
+ var { useAttachment } = createContextStoreHook(
1299
+ useAttachmentContext,
1300
+ "useAttachment"
1301
+ );
1302
+ var { useAttachment: useThreadComposerAttachment } = createContextStoreHook(useThreadComposerAttachmentContext, "useAttachment");
1303
+ var { useAttachment: useEditComposerAttachment } = createContextStoreHook(useEditComposerAttachmentContext, "useAttachment");
1304
+ var { useAttachment: useMessageAttachment } = createContextStoreHook(
1305
+ useMessageAttachmentContext,
1306
+ "useAttachment"
1307
+ );
1308
+
1309
+ // src/primitives/attachment/AttachmentThumb.tsx
1310
+ import { Primitive as Primitive8 } from "@radix-ui/react-primitive";
1311
+ import { jsxs } from "react/jsx-runtime";
1312
+ var AttachmentPrimitiveThumb = forwardRef11(() => {
1313
+ const ext = useAttachment((a) => a.name.split(".").pop());
1314
+ return /* @__PURE__ */ jsxs(Primitive8.div, { children: [
1315
+ ".",
1316
+ ext
1317
+ ] });
1318
+ });
1319
+ AttachmentPrimitiveThumb.displayName = "AttachmentPrimitive.Thumb";
1320
+
1321
+ // src/primitives/attachment/AttachmentName.tsx
1322
+ import { Fragment, jsx as jsx15 } from "react/jsx-runtime";
1323
+ var AttachmentPrimitiveName = () => {
1324
+ const name = useAttachment((a) => a.name);
1325
+ return /* @__PURE__ */ jsx15(Fragment, { children: name });
1326
+ };
1327
+ AttachmentPrimitiveName.displayName = "AttachmentPrimitive.Name";
1328
+
1329
+ // src/primitive-hooks/attachment/useAttachmentRemove.ts
1330
+ import { useCallback as useCallback17 } from "react";
1331
+ var useAttachmentRemove = () => {
1332
+ const attachmentRuntime = useAttachmentRuntime();
1333
+ const handleRemoveAttachment = useCallback17(() => {
1334
+ attachmentRuntime.remove();
1335
+ }, [attachmentRuntime]);
1336
+ return handleRemoveAttachment;
1337
+ };
1338
+
1339
+ // src/primitives/attachment/AttachmentRemove.tsx
1340
+ var AttachmentPrimitiveRemove = createActionButton(
1341
+ "AttachmentPrimitive.Remove",
1342
+ useAttachmentRemove
1343
+ );
1344
+
1242
1345
  // src/primitives/branchPicker/index.ts
1243
1346
  var branchPicker_exports = {};
1244
1347
  __export(branchPicker_exports, {
@@ -1262,24 +1365,24 @@ var BranchPickerPrevious = createActionButton(
1262
1365
  );
1263
1366
 
1264
1367
  // src/primitives/branchPicker/BranchPickerCount.tsx
1265
- import { Fragment, jsx as jsx14 } from "react/jsx-runtime";
1368
+ import { Fragment as Fragment2, jsx as jsx16 } from "react/jsx-runtime";
1266
1369
  var BranchPickerPrimitiveCount = () => {
1267
1370
  const branchCount = useBranchPickerCount();
1268
- return /* @__PURE__ */ jsx14(Fragment, { children: branchCount });
1371
+ return /* @__PURE__ */ jsx16(Fragment2, { children: branchCount });
1269
1372
  };
1270
1373
  BranchPickerPrimitiveCount.displayName = "BranchPickerPrimitive.Count";
1271
1374
 
1272
1375
  // src/primitives/branchPicker/BranchPickerNumber.tsx
1273
- import { Fragment as Fragment2, jsx as jsx15 } from "react/jsx-runtime";
1376
+ import { Fragment as Fragment3, jsx as jsx17 } from "react/jsx-runtime";
1274
1377
  var BranchPickerPrimitiveNumber = () => {
1275
1378
  const branchNumber = useBranchPickerNumber();
1276
- return /* @__PURE__ */ jsx15(Fragment2, { children: branchNumber });
1379
+ return /* @__PURE__ */ jsx17(Fragment3, { children: branchNumber });
1277
1380
  };
1278
1381
  BranchPickerPrimitiveNumber.displayName = "BranchPickerPrimitive.Number";
1279
1382
 
1280
1383
  // src/primitives/branchPicker/BranchPickerRoot.tsx
1281
- import { Primitive as Primitive9 } from "@radix-ui/react-primitive";
1282
- import { forwardRef as forwardRef14 } from "react";
1384
+ import { Primitive as Primitive11 } from "@radix-ui/react-primitive";
1385
+ import { forwardRef as forwardRef16 } from "react";
1283
1386
 
1284
1387
  // src/primitives/message/index.ts
1285
1388
  var message_exports = {};
@@ -1292,17 +1395,17 @@ __export(message_exports, {
1292
1395
  });
1293
1396
 
1294
1397
  // src/primitives/message/MessageRoot.tsx
1295
- import { Primitive as Primitive7 } from "@radix-ui/react-primitive";
1398
+ import { Primitive as Primitive9 } from "@radix-ui/react-primitive";
1296
1399
  import {
1297
- forwardRef as forwardRef10,
1298
- useCallback as useCallback18
1400
+ forwardRef as forwardRef12,
1401
+ useCallback as useCallback19
1299
1402
  } from "react";
1300
1403
 
1301
1404
  // src/utils/hooks/useManagedRef.ts
1302
- import { useCallback as useCallback17, useRef } from "react";
1405
+ import { useCallback as useCallback18, useRef } from "react";
1303
1406
  var useManagedRef = (callback) => {
1304
1407
  const cleanupRef = useRef();
1305
- const ref = useCallback17(
1408
+ const ref = useCallback18(
1306
1409
  (el) => {
1307
1410
  if (cleanupRef.current) {
1308
1411
  cleanupRef.current();
@@ -1318,10 +1421,10 @@ var useManagedRef = (callback) => {
1318
1421
 
1319
1422
  // src/primitives/message/MessageRoot.tsx
1320
1423
  import { useComposedRefs } from "@radix-ui/react-compose-refs";
1321
- import { jsx as jsx16 } from "react/jsx-runtime";
1424
+ import { jsx as jsx18 } from "react/jsx-runtime";
1322
1425
  var useIsHoveringRef = () => {
1323
1426
  const messageUtilsStore = useMessageUtilsStore();
1324
- const callbackRef = useCallback18(
1427
+ const callbackRef = useCallback19(
1325
1428
  (el) => {
1326
1429
  const setIsHovering = messageUtilsStore.getState().setIsHovering;
1327
1430
  const handleMouseEnter = () => {
@@ -1342,10 +1445,10 @@ var useIsHoveringRef = () => {
1342
1445
  );
1343
1446
  return useManagedRef(callbackRef);
1344
1447
  };
1345
- var MessagePrimitiveRoot = forwardRef10((props, forwardRef33) => {
1448
+ var MessagePrimitiveRoot = forwardRef12((props, forwardRef35) => {
1346
1449
  const isHoveringRef = useIsHoveringRef();
1347
- const ref = useComposedRefs(forwardRef33, isHoveringRef);
1348
- return /* @__PURE__ */ jsx16(Primitive7.div, { ...props, ref });
1450
+ const ref = useComposedRefs(forwardRef35, isHoveringRef);
1451
+ return /* @__PURE__ */ jsx18(Primitive9.div, { ...props, ref });
1349
1452
  });
1350
1453
  MessagePrimitiveRoot.displayName = "MessagePrimitive.Root";
1351
1454
 
@@ -1365,7 +1468,7 @@ import { memo as memo2, useMemo as useMemo6 } from "react";
1365
1468
  // src/context/providers/ContentPartRuntimeProvider.tsx
1366
1469
  import { useEffect as useEffect8, useState as useState5 } from "react";
1367
1470
  import { create as create6 } from "zustand";
1368
- import { jsx as jsx17 } from "react/jsx-runtime";
1471
+ import { jsx as jsx19 } from "react/jsx-runtime";
1369
1472
  var useContentPartRuntimeStore = (runtime) => {
1370
1473
  const [store] = useState5(() => create6(() => runtime));
1371
1474
  useEffect8(() => {
@@ -1391,12 +1494,12 @@ var ContentPartRuntimeProvider = ({
1391
1494
  const [context] = useState5(() => {
1392
1495
  return { useContentPartRuntime: useContentPartRuntime2, useContentPart: useContentPart2 };
1393
1496
  });
1394
- return /* @__PURE__ */ jsx17(ContentPartContext.Provider, { value: context, children });
1497
+ return /* @__PURE__ */ jsx19(ContentPartContext.Provider, { value: context, children });
1395
1498
  };
1396
1499
 
1397
1500
  // src/primitives/contentPart/ContentPartText.tsx
1398
1501
  import {
1399
- forwardRef as forwardRef12
1502
+ forwardRef as forwardRef14
1400
1503
  } from "react";
1401
1504
 
1402
1505
  // src/utils/smooth/useSmooth.tsx
@@ -1405,14 +1508,14 @@ import { useCallbackRef as useCallbackRef2 } from "@radix-ui/react-use-callback-
1405
1508
 
1406
1509
  // src/utils/smooth/SmoothContext.tsx
1407
1510
  import {
1408
- createContext as createContext5,
1409
- forwardRef as forwardRef11,
1410
- useContext as useContext2,
1511
+ createContext as createContext6,
1512
+ forwardRef as forwardRef13,
1513
+ useContext as useContext3,
1411
1514
  useState as useState6
1412
1515
  } from "react";
1413
1516
  import { create as create7 } from "zustand";
1414
- import { jsx as jsx18 } from "react/jsx-runtime";
1415
- var SmoothContext = createContext5(null);
1517
+ import { jsx as jsx20 } from "react/jsx-runtime";
1518
+ var SmoothContext = createContext6(null);
1416
1519
  var makeSmoothContext = (initialState) => {
1417
1520
  const useSmoothStatus2 = create7(() => initialState);
1418
1521
  return { useSmoothStatus: useSmoothStatus2 };
@@ -1424,17 +1527,17 @@ var SmoothContextProvider = ({ children }) => {
1424
1527
  () => makeSmoothContext(contentPartStore.getState().status)
1425
1528
  );
1426
1529
  if (outer) return children;
1427
- return /* @__PURE__ */ jsx18(SmoothContext.Provider, { value: context, children });
1530
+ return /* @__PURE__ */ jsx20(SmoothContext.Provider, { value: context, children });
1428
1531
  };
1429
1532
  var withSmoothContextProvider = (Component) => {
1430
- const Wrapped = forwardRef11((props, ref) => {
1431
- return /* @__PURE__ */ jsx18(SmoothContextProvider, { children: /* @__PURE__ */ jsx18(Component, { ...props, ref }) });
1533
+ const Wrapped = forwardRef13((props, ref) => {
1534
+ return /* @__PURE__ */ jsx20(SmoothContextProvider, { children: /* @__PURE__ */ jsx20(Component, { ...props, ref }) });
1432
1535
  });
1433
1536
  Wrapped.displayName = Component.displayName;
1434
1537
  return Wrapped;
1435
1538
  };
1436
1539
  function useSmoothContext(options) {
1437
- const context = useContext2(SmoothContext);
1540
+ const context = useContext3(SmoothContext);
1438
1541
  if (!options?.optional && !context)
1439
1542
  throw new Error(
1440
1543
  "This component must be used within a SmoothContextProvider."
@@ -1554,20 +1657,20 @@ var useSmooth = (state, smooth = false) => {
1554
1657
  };
1555
1658
 
1556
1659
  // src/primitives/contentPart/ContentPartText.tsx
1557
- import { jsx as jsx19 } from "react/jsx-runtime";
1558
- var ContentPartPrimitiveText = forwardRef12(({ smooth = true, component: Component = "span", ...rest }, forwardedRef) => {
1660
+ import { jsx as jsx21 } from "react/jsx-runtime";
1661
+ var ContentPartPrimitiveText = forwardRef14(({ smooth = true, component: Component = "span", ...rest }, forwardedRef) => {
1559
1662
  const { text, status } = useSmooth(useContentPartText(), smooth);
1560
- return /* @__PURE__ */ jsx19(Component, { "data-status": status.type, ...rest, ref: forwardedRef, children: text });
1663
+ return /* @__PURE__ */ jsx21(Component, { "data-status": status.type, ...rest, ref: forwardedRef, children: text });
1561
1664
  });
1562
1665
  ContentPartPrimitiveText.displayName = "ContentPartPrimitive.Text";
1563
1666
 
1564
1667
  // src/primitives/contentPart/ContentPartImage.tsx
1565
- import { Primitive as Primitive8 } from "@radix-ui/react-primitive";
1566
- import { forwardRef as forwardRef13 } from "react";
1567
- import { jsx as jsx20 } from "react/jsx-runtime";
1568
- var ContentPartPrimitiveImage = forwardRef13((props, forwardedRef) => {
1668
+ import { Primitive as Primitive10 } from "@radix-ui/react-primitive";
1669
+ import { forwardRef as forwardRef15 } from "react";
1670
+ import { jsx as jsx22 } from "react/jsx-runtime";
1671
+ var ContentPartPrimitiveImage = forwardRef15((props, forwardedRef) => {
1569
1672
  const { image } = useContentPartImage();
1570
- return /* @__PURE__ */ jsx20(Primitive8.img, { src: image, ...props, ref: forwardedRef });
1673
+ return /* @__PURE__ */ jsx22(Primitive10.img, { src: image, ...props, ref: forwardedRef });
1571
1674
  });
1572
1675
  ContentPartPrimitiveImage.displayName = "ContentPartPrimitive.Image";
1573
1676
 
@@ -2136,22 +2239,22 @@ var MessageRuntimeImpl = class {
2136
2239
  };
2137
2240
 
2138
2241
  // src/primitives/message/MessageContent.tsx
2139
- import { jsx as jsx21, jsxs } from "react/jsx-runtime";
2242
+ import { jsx as jsx23, jsxs as jsxs2 } from "react/jsx-runtime";
2140
2243
  var ToolUIDisplay = ({
2141
2244
  UI,
2142
2245
  ...props
2143
2246
  }) => {
2144
2247
  const Render = useToolUIs((s) => s.getToolUI(props.toolName)) ?? UI;
2145
2248
  if (!Render) return null;
2146
- return /* @__PURE__ */ jsx21(Render, { ...props });
2249
+ return /* @__PURE__ */ jsx23(Render, { ...props });
2147
2250
  };
2148
2251
  var defaultComponents = {
2149
- Text: () => /* @__PURE__ */ jsxs("p", { style: { whiteSpace: "pre-line" }, children: [
2150
- /* @__PURE__ */ jsx21(ContentPartPrimitiveText, {}),
2151
- /* @__PURE__ */ jsx21(ContentPartPrimitiveInProgress, { children: /* @__PURE__ */ jsx21("span", { style: { fontFamily: "revert" }, children: " \u25CF" }) })
2252
+ Text: () => /* @__PURE__ */ jsxs2("p", { style: { whiteSpace: "pre-line" }, children: [
2253
+ /* @__PURE__ */ jsx23(ContentPartPrimitiveText, {}),
2254
+ /* @__PURE__ */ jsx23(ContentPartPrimitiveInProgress, { children: /* @__PURE__ */ jsx23("span", { style: { fontFamily: "revert" }, children: " \u25CF" }) })
2152
2255
  ] }),
2153
- Image: () => /* @__PURE__ */ jsx21(ContentPartPrimitiveImage, {}),
2154
- UI: () => /* @__PURE__ */ jsx21(ContentPartPrimitiveDisplay, {})
2256
+ Image: () => /* @__PURE__ */ jsx23(ContentPartPrimitiveImage, {}),
2257
+ UI: () => /* @__PURE__ */ jsx23(ContentPartPrimitiveDisplay, {})
2155
2258
  };
2156
2259
  var MessageContentPartComponent = ({
2157
2260
  components: {
@@ -2171,17 +2274,17 @@ var MessageContentPartComponent = ({
2171
2274
  if (part.status.type === "requires-action")
2172
2275
  throw new Error("Encountered unexpected requires-action status");
2173
2276
  if (part.part === EMPTY_CONTENT && !!Empty) {
2174
- return /* @__PURE__ */ jsx21(Empty, { status: part.status });
2277
+ return /* @__PURE__ */ jsx23(Empty, { status: part.status });
2175
2278
  }
2176
- return /* @__PURE__ */ jsx21(Text2, { ...part, part });
2279
+ return /* @__PURE__ */ jsx23(Text2, { ...part, part });
2177
2280
  case "image":
2178
2281
  if (part.status.type === "requires-action")
2179
2282
  throw new Error("Encountered unexpected requires-action status");
2180
- return /* @__PURE__ */ jsx21(Image2, { ...part, part });
2283
+ return /* @__PURE__ */ jsx23(Image2, { ...part, part });
2181
2284
  case "ui":
2182
2285
  if (part.status.type === "requires-action")
2183
2286
  throw new Error("Encountered unexpected requires-action status");
2184
- return /* @__PURE__ */ jsx21(UI, { ...part, part });
2287
+ return /* @__PURE__ */ jsx23(UI, { ...part, part });
2185
2288
  case "tool-call": {
2186
2289
  const Tool = by_name[part.toolName] || Fallback2;
2187
2290
  const addResult = (result) => threadRuntime.addToolResult({
@@ -2190,7 +2293,7 @@ var MessageContentPartComponent = ({
2190
2293
  toolCallId: part.toolCallId,
2191
2294
  result
2192
2295
  });
2193
- return /* @__PURE__ */ jsx21(ToolUIDisplay, { ...part, part, UI: Tool, addResult });
2296
+ return /* @__PURE__ */ jsx23(ToolUIDisplay, { ...part, part, UI: Tool, addResult });
2194
2297
  }
2195
2298
  default:
2196
2299
  const unhandledType = type;
@@ -2206,7 +2309,7 @@ var MessageContentPartImpl = ({
2206
2309
  () => messageRuntime.getContentPartByIndex(partIndex),
2207
2310
  [messageRuntime, partIndex]
2208
2311
  );
2209
- return /* @__PURE__ */ jsx21(ContentPartRuntimeProvider, { runtime, children: /* @__PURE__ */ jsx21(MessageContentPartComponent, { components }) });
2312
+ return /* @__PURE__ */ jsx23(ContentPartRuntimeProvider, { runtime, children: /* @__PURE__ */ jsx23(MessageContentPartComponent, { components }) });
2210
2313
  };
2211
2314
  var MessageContentPart = memo2(
2212
2315
  MessageContentPartImpl,
@@ -2216,7 +2319,7 @@ var MessagePrimitiveContent = ({
2216
2319
  components
2217
2320
  }) => {
2218
2321
  const contentLength = useMessage((s) => s.content.length) || 1;
2219
- return Array.from({ length: contentLength }, (_, index) => /* @__PURE__ */ jsx21(MessageContentPart, { partIndex: index, components }, index));
2322
+ return Array.from({ length: contentLength }, (_, index) => /* @__PURE__ */ jsx23(MessageContentPart, { partIndex: index, components }, index));
2220
2323
  };
2221
2324
  MessagePrimitiveContent.displayName = "MessagePrimitive.Content";
2222
2325
 
@@ -2229,62 +2332,6 @@ MessagePrimitiveInProgress.displayName = "MessagePrimitive.InProgress";
2229
2332
  // src/primitives/message/MessageAttachments.tsx
2230
2333
  import { memo as memo3, useMemo as useMemo8 } from "react";
2231
2334
 
2232
- // src/context/react/AttachmentContext.ts
2233
- import { createContext as createContext6, useContext as useContext3 } from "react";
2234
- var AttachmentContext = createContext6(
2235
- null
2236
- );
2237
- function useAttachmentContext(options) {
2238
- const context = useContext3(AttachmentContext);
2239
- if (!options?.optional && !context)
2240
- throw new Error(
2241
- "This component must be used within a ComposerPrimitive.Attachments or MessagePrimitive.Attachments component."
2242
- );
2243
- return context;
2244
- }
2245
- function useThreadComposerAttachmentContext(options) {
2246
- const context = useAttachmentContext(options);
2247
- if (!context) return null;
2248
- if (context.source !== "thread-composer")
2249
- throw new Error(
2250
- "This component must be used within a thread's ComposerPrimitive.Attachments component."
2251
- );
2252
- return context;
2253
- }
2254
- function useEditComposerAttachmentContext(options) {
2255
- const context = useAttachmentContext(options);
2256
- if (!context) return null;
2257
- if (context.source !== "edit-composer")
2258
- throw new Error(
2259
- "This component must be used within a messages's ComposerPrimitive.Attachments component."
2260
- );
2261
- return context;
2262
- }
2263
- function useMessageAttachmentContext(options) {
2264
- const context = useAttachmentContext(options);
2265
- if (!context) return null;
2266
- if (context.source !== "message")
2267
- throw new Error(
2268
- "This component must be used within a MessagePrimitive.Attachments component."
2269
- );
2270
- return context;
2271
- }
2272
- function useAttachmentRuntime(options) {
2273
- const attachmentRuntime = useAttachmentContext(options);
2274
- if (!attachmentRuntime) return null;
2275
- return attachmentRuntime.useAttachmentRuntime();
2276
- }
2277
- var { useAttachment } = createContextStoreHook(
2278
- useAttachmentContext,
2279
- "useAttachment"
2280
- );
2281
- var { useAttachment: useThreadComposerAttachment } = createContextStoreHook(useThreadComposerAttachmentContext, "useAttachment");
2282
- var { useAttachment: useEditComposerAttachment } = createContextStoreHook(useEditComposerAttachmentContext, "useAttachment");
2283
- var { useAttachment: useMessageAttachment } = createContextStoreHook(
2284
- useMessageAttachmentContext,
2285
- "useAttachment"
2286
- );
2287
-
2288
2335
  // src/context/providers/AttachmentRuntimeProvider.tsx
2289
2336
  import {
2290
2337
  useEffect as useEffect10,
@@ -2292,7 +2339,7 @@ import {
2292
2339
  useState as useState8
2293
2340
  } from "react";
2294
2341
  import { create as create8 } from "zustand";
2295
- import { jsx as jsx22 } from "react/jsx-runtime";
2342
+ import { jsx as jsx24 } from "react/jsx-runtime";
2296
2343
  var useAttachmentRuntimeStore = (runtime) => {
2297
2344
  const [store] = useState8(() => create8(() => runtime));
2298
2345
  useEffect10(() => {
@@ -2323,11 +2370,11 @@ var AttachmentRuntimeProvider = ({
2323
2370
  useAttachment: useAttachment2
2324
2371
  };
2325
2372
  }, [useAttachmentRuntime2, useAttachment2]);
2326
- return /* @__PURE__ */ jsx22(AttachmentContext.Provider, { value: context, children });
2373
+ return /* @__PURE__ */ jsx24(AttachmentContext.Provider, { value: context, children });
2327
2374
  };
2328
2375
 
2329
2376
  // src/primitives/message/MessageAttachments.tsx
2330
- import { jsx as jsx23 } from "react/jsx-runtime";
2377
+ import { jsx as jsx25 } from "react/jsx-runtime";
2331
2378
  var getComponent = (components, attachment) => {
2332
2379
  const type = attachment.type;
2333
2380
  switch (type) {
@@ -2347,7 +2394,7 @@ var AttachmentComponent = ({ components }) => {
2347
2394
  (a) => getComponent(components, a.attachment)
2348
2395
  );
2349
2396
  if (!Component) return null;
2350
- return /* @__PURE__ */ jsx23(Component, {});
2397
+ return /* @__PURE__ */ jsx25(Component, {});
2351
2398
  };
2352
2399
  var MessageAttachmentImpl = ({ components, attachmentIndex }) => {
2353
2400
  const messageRuntime = useMessageRuntime();
@@ -2355,7 +2402,7 @@ var MessageAttachmentImpl = ({ components, attachmentIndex }) => {
2355
2402
  () => messageRuntime.getAttachmentByIndex(attachmentIndex),
2356
2403
  [messageRuntime, attachmentIndex]
2357
2404
  );
2358
- return /* @__PURE__ */ jsx23(AttachmentRuntimeProvider, { runtime, children: /* @__PURE__ */ jsx23(AttachmentComponent, { components }) });
2405
+ return /* @__PURE__ */ jsx25(AttachmentRuntimeProvider, { runtime, children: /* @__PURE__ */ jsx25(AttachmentComponent, { components }) });
2359
2406
  };
2360
2407
  var MessageAttachment = memo3(
2361
2408
  MessageAttachmentImpl,
@@ -2366,7 +2413,7 @@ var MessagePrimitiveAttachments = ({ components }) => {
2366
2413
  if (message.role !== "user") return 0;
2367
2414
  return message.attachments.length;
2368
2415
  });
2369
- return Array.from({ length: attachmentsCount }, (_, index) => /* @__PURE__ */ jsx23(
2416
+ return Array.from({ length: attachmentsCount }, (_, index) => /* @__PURE__ */ jsx25(
2370
2417
  MessageAttachment,
2371
2418
  {
2372
2419
  attachmentIndex: index,
@@ -2378,9 +2425,9 @@ var MessagePrimitiveAttachments = ({ components }) => {
2378
2425
  MessagePrimitiveAttachments.displayName = "MessagePrimitive.Attachments";
2379
2426
 
2380
2427
  // src/primitives/branchPicker/BranchPickerRoot.tsx
2381
- import { jsx as jsx24 } from "react/jsx-runtime";
2382
- var BranchPickerPrimitiveRoot = forwardRef14(({ hideWhenSingleBranch, ...rest }, ref) => {
2383
- return /* @__PURE__ */ jsx24(MessagePrimitiveIf, { hasBranches: hideWhenSingleBranch ? true : void 0, children: /* @__PURE__ */ jsx24(Primitive9.div, { ...rest, ref }) });
2428
+ import { jsx as jsx26 } from "react/jsx-runtime";
2429
+ var BranchPickerPrimitiveRoot = forwardRef16(({ hideWhenSingleBranch, ...rest }, ref) => {
2430
+ return /* @__PURE__ */ jsx26(MessagePrimitiveIf, { hasBranches: hideWhenSingleBranch ? true : void 0, children: /* @__PURE__ */ jsx26(Primitive11.div, { ...rest, ref }) });
2384
2431
  });
2385
2432
  BranchPickerPrimitiveRoot.displayName = "BranchPickerPrimitive.Root";
2386
2433
 
@@ -2398,20 +2445,20 @@ __export(composer_exports, {
2398
2445
 
2399
2446
  // src/primitives/composer/ComposerRoot.tsx
2400
2447
  import { composeEventHandlers as composeEventHandlers8 } from "@radix-ui/primitive";
2401
- import { Primitive as Primitive10 } from "@radix-ui/react-primitive";
2448
+ import { Primitive as Primitive12 } from "@radix-ui/react-primitive";
2402
2449
  import {
2403
- forwardRef as forwardRef15
2450
+ forwardRef as forwardRef17
2404
2451
  } from "react";
2405
- import { jsx as jsx25 } from "react/jsx-runtime";
2406
- var ComposerPrimitiveRoot = forwardRef15(({ onSubmit, ...rest }, forwardedRef) => {
2452
+ import { jsx as jsx27 } from "react/jsx-runtime";
2453
+ var ComposerPrimitiveRoot = forwardRef17(({ onSubmit, ...rest }, forwardedRef) => {
2407
2454
  const send = useComposerSend();
2408
2455
  const handleSubmit = (e) => {
2409
2456
  e.preventDefault();
2410
2457
  if (!send) return;
2411
2458
  send();
2412
2459
  };
2413
- return /* @__PURE__ */ jsx25(
2414
- Primitive10.form,
2460
+ return /* @__PURE__ */ jsx27(
2461
+ Primitive12.form,
2415
2462
  {
2416
2463
  ...rest,
2417
2464
  ref: forwardedRef,
@@ -2426,15 +2473,15 @@ import { composeEventHandlers as composeEventHandlers9 } from "@radix-ui/primiti
2426
2473
  import { useComposedRefs as useComposedRefs2 } from "@radix-ui/react-compose-refs";
2427
2474
  import { Slot } from "@radix-ui/react-slot";
2428
2475
  import {
2429
- forwardRef as forwardRef16,
2430
- useCallback as useCallback19,
2476
+ forwardRef as forwardRef18,
2477
+ useCallback as useCallback20,
2431
2478
  useEffect as useEffect11,
2432
2479
  useRef as useRef3
2433
2480
  } from "react";
2434
2481
  import TextareaAutosize from "react-textarea-autosize";
2435
2482
  import { useEscapeKeydown as useEscapeKeydown2 } from "@radix-ui/react-use-escape-keydown";
2436
- import { jsx as jsx26 } from "react/jsx-runtime";
2437
- var ComposerPrimitiveInput = forwardRef16(
2483
+ import { jsx as jsx28 } from "react/jsx-runtime";
2484
+ var ComposerPrimitiveInput = forwardRef18(
2438
2485
  ({
2439
2486
  autoFocus = false,
2440
2487
  asChild,
@@ -2475,7 +2522,7 @@ var ComposerPrimitiveInput = forwardRef16(
2475
2522
  }
2476
2523
  };
2477
2524
  const autoFocusEnabled = autoFocus && !isDisabled;
2478
- const focus = useCallback19(() => {
2525
+ const focus = useCallback20(() => {
2479
2526
  const textarea = textareaRef.current;
2480
2527
  if (!textarea || !autoFocusEnabled) return;
2481
2528
  textarea.focus({ preventScroll: true });
@@ -2490,7 +2537,7 @@ var ComposerPrimitiveInput = forwardRef16(
2490
2537
  focus();
2491
2538
  }
2492
2539
  });
2493
- return /* @__PURE__ */ jsx26(
2540
+ return /* @__PURE__ */ jsx28(
2494
2541
  Component,
2495
2542
  {
2496
2543
  name: "input",
@@ -2530,7 +2577,7 @@ var ComposerPrimitiveAddAttachment = createActionButton(
2530
2577
 
2531
2578
  // src/primitives/composer/ComposerAttachments.tsx
2532
2579
  import { memo as memo4, useMemo as useMemo9 } from "react";
2533
- import { jsx as jsx27 } from "react/jsx-runtime";
2580
+ import { jsx as jsx29 } from "react/jsx-runtime";
2534
2581
  var getComponent2 = (components, attachment) => {
2535
2582
  const type = attachment.type;
2536
2583
  switch (type) {
@@ -2550,7 +2597,7 @@ var AttachmentComponent2 = ({ components }) => {
2550
2597
  (a) => getComponent2(components, a)
2551
2598
  );
2552
2599
  if (!Component) return null;
2553
- return /* @__PURE__ */ jsx27(Component, {});
2600
+ return /* @__PURE__ */ jsx29(Component, {});
2554
2601
  };
2555
2602
  var ComposerAttachmentImpl = ({ components, attachmentIndex }) => {
2556
2603
  const composerRuntime = useComposerRuntime();
@@ -2558,7 +2605,7 @@ var ComposerAttachmentImpl = ({ components, attachmentIndex }) => {
2558
2605
  () => composerRuntime.getAttachmentByIndex(attachmentIndex),
2559
2606
  [composerRuntime, attachmentIndex]
2560
2607
  );
2561
- return /* @__PURE__ */ jsx27(AttachmentRuntimeProvider, { runtime, children: /* @__PURE__ */ jsx27(AttachmentComponent2, { components }) });
2608
+ return /* @__PURE__ */ jsx29(AttachmentRuntimeProvider, { runtime, children: /* @__PURE__ */ jsx29(AttachmentComponent2, { components }) });
2562
2609
  };
2563
2610
  var ComposerAttachment = memo4(
2564
2611
  ComposerAttachmentImpl,
@@ -2566,7 +2613,7 @@ var ComposerAttachment = memo4(
2566
2613
  );
2567
2614
  var ComposerPrimitiveAttachments = ({ components }) => {
2568
2615
  const attachmentsCount = useComposer((s) => s.attachments.length);
2569
- return Array.from({ length: attachmentsCount }, (_, index) => /* @__PURE__ */ jsx27(
2616
+ return Array.from({ length: attachmentsCount }, (_, index) => /* @__PURE__ */ jsx29(
2570
2617
  ComposerAttachment,
2571
2618
  {
2572
2619
  attachmentIndex: index,
@@ -2609,11 +2656,11 @@ __export(thread_exports, {
2609
2656
  });
2610
2657
 
2611
2658
  // src/primitives/thread/ThreadRoot.tsx
2612
- import { Primitive as Primitive11 } from "@radix-ui/react-primitive";
2613
- import { forwardRef as forwardRef17 } from "react";
2614
- import { jsx as jsx28 } from "react/jsx-runtime";
2615
- var ThreadPrimitiveRoot = forwardRef17((props, ref) => {
2616
- return /* @__PURE__ */ jsx28(Primitive11.div, { ...props, ref });
2659
+ import { Primitive as Primitive13 } from "@radix-ui/react-primitive";
2660
+ import { forwardRef as forwardRef19 } from "react";
2661
+ import { jsx as jsx30 } from "react/jsx-runtime";
2662
+ var ThreadPrimitiveRoot = forwardRef19((props, ref) => {
2663
+ return /* @__PURE__ */ jsx30(Primitive13.div, { ...props, ref });
2617
2664
  });
2618
2665
  ThreadPrimitiveRoot.displayName = "ThreadPrimitive.Root";
2619
2666
 
@@ -2638,8 +2685,8 @@ ThreadPrimitiveIf.displayName = "ThreadPrimitive.If";
2638
2685
 
2639
2686
  // src/primitives/thread/ThreadViewport.tsx
2640
2687
  import { useComposedRefs as useComposedRefs4 } from "@radix-ui/react-compose-refs";
2641
- import { Primitive as Primitive12 } from "@radix-ui/react-primitive";
2642
- import { forwardRef as forwardRef18 } from "react";
2688
+ import { Primitive as Primitive14 } from "@radix-ui/react-primitive";
2689
+ import { forwardRef as forwardRef20 } from "react";
2643
2690
 
2644
2691
  // src/primitive-hooks/thread/useThreadViewportAutoScroll.tsx
2645
2692
  import { useComposedRefs as useComposedRefs3 } from "@radix-ui/react-compose-refs";
@@ -2647,10 +2694,10 @@ import { useRef as useRef4 } from "react";
2647
2694
 
2648
2695
  // src/utils/hooks/useOnResizeContent.tsx
2649
2696
  import { useCallbackRef as useCallbackRef3 } from "@radix-ui/react-use-callback-ref";
2650
- import { useCallback as useCallback20 } from "react";
2697
+ import { useCallback as useCallback21 } from "react";
2651
2698
  var useOnResizeContent = (callback) => {
2652
2699
  const callbackRef = useCallbackRef3(callback);
2653
- const refCallback = useCallback20(
2700
+ const refCallback = useCallback21(
2654
2701
  (el) => {
2655
2702
  const resizeObserver = new ResizeObserver(() => {
2656
2703
  callbackRef();
@@ -2750,13 +2797,13 @@ var useThreadViewportAutoScroll = ({
2750
2797
  };
2751
2798
 
2752
2799
  // src/primitives/thread/ThreadViewport.tsx
2753
- import { jsx as jsx29 } from "react/jsx-runtime";
2754
- var ThreadPrimitiveViewport = forwardRef18(({ autoScroll, children, ...rest }, forwardedRef) => {
2800
+ import { jsx as jsx31 } from "react/jsx-runtime";
2801
+ var ThreadPrimitiveViewport = forwardRef20(({ autoScroll, children, ...rest }, forwardedRef) => {
2755
2802
  const autoScrollRef = useThreadViewportAutoScroll({
2756
2803
  autoScroll
2757
2804
  });
2758
2805
  const ref = useComposedRefs4(forwardedRef, autoScrollRef);
2759
- return /* @__PURE__ */ jsx29(Primitive12.div, { ...rest, ref, children });
2806
+ return /* @__PURE__ */ jsx31(Primitive14.div, { ...rest, ref, children });
2760
2807
  });
2761
2808
  ThreadPrimitiveViewport.displayName = "ThreadPrimitive.Viewport";
2762
2809
 
@@ -2799,7 +2846,7 @@ var makeMessageUtilsStore = () => create9((set) => {
2799
2846
  });
2800
2847
 
2801
2848
  // src/context/providers/MessageRuntimeProvider.tsx
2802
- import { jsx as jsx30 } from "react/jsx-runtime";
2849
+ import { jsx as jsx32 } from "react/jsx-runtime";
2803
2850
  var useMessageRuntimeStore = (runtime) => {
2804
2851
  const [store] = useState9(() => create10(() => runtime));
2805
2852
  useEffect13(() => {
@@ -2841,11 +2888,11 @@ var MessageRuntimeProvider = ({
2841
2888
  const [context] = useState9(() => {
2842
2889
  return { useMessageRuntime: useMessageRuntime2, useMessage: useMessage2, useMessageUtils: useMessageUtils2, useEditComposer: useEditComposer2 };
2843
2890
  });
2844
- return /* @__PURE__ */ jsx30(MessageContext.Provider, { value: context, children });
2891
+ return /* @__PURE__ */ jsx32(MessageContext.Provider, { value: context, children });
2845
2892
  };
2846
2893
 
2847
2894
  // src/primitives/thread/ThreadMessages.tsx
2848
- import { jsx as jsx31 } from "react/jsx-runtime";
2895
+ import { jsx as jsx33 } from "react/jsx-runtime";
2849
2896
  var isComponentsSame = (prev, next) => {
2850
2897
  return prev.Message === next.Message && prev.EditComposer === next.EditComposer && prev.UserEditComposer === next.UserEditComposer && prev.AssistantEditComposer === next.AssistantEditComposer && prev.SystemEditComposer === next.SystemEditComposer && prev.UserMessage === next.UserMessage && prev.AssistantMessage === next.AssistantMessage && prev.SystemMessage === next.SystemMessage;
2851
2898
  };
@@ -2881,7 +2928,7 @@ var ThreadMessageComponent = ({
2881
2928
  const role = useMessage((m) => m.role);
2882
2929
  const isEditing = useEditComposer((c) => c.isEditing);
2883
2930
  const Component = getComponent3(components, role, isEditing);
2884
- return /* @__PURE__ */ jsx31(Component, {});
2931
+ return /* @__PURE__ */ jsx33(Component, {});
2885
2932
  };
2886
2933
  var ThreadMessageImpl = ({
2887
2934
  messageIndex,
@@ -2892,7 +2939,7 @@ var ThreadMessageImpl = ({
2892
2939
  () => threadRuntime.getMesssageByIndex(messageIndex),
2893
2940
  [threadRuntime, messageIndex]
2894
2941
  );
2895
- return /* @__PURE__ */ jsx31(MessageRuntimeProvider, { runtime, children: /* @__PURE__ */ jsx31(ThreadMessageComponent, { components }) });
2942
+ return /* @__PURE__ */ jsx33(MessageRuntimeProvider, { runtime, children: /* @__PURE__ */ jsx33(ThreadMessageComponent, { components }) });
2896
2943
  };
2897
2944
  var ThreadMessage = memo5(
2898
2945
  ThreadMessageImpl,
@@ -2903,7 +2950,7 @@ var ThreadPrimitiveMessagesImpl = ({
2903
2950
  }) => {
2904
2951
  const messagesLength = useThread((t) => t.messages.length);
2905
2952
  if (messagesLength === 0) return null;
2906
- return Array.from({ length: messagesLength }, (_, index) => /* @__PURE__ */ jsx31(ThreadMessage, { messageIndex: index, components }, index));
2953
+ return Array.from({ length: messagesLength }, (_, index) => /* @__PURE__ */ jsx33(ThreadMessage, { messageIndex: index, components }, index));
2907
2954
  };
2908
2955
  ThreadPrimitiveMessagesImpl.displayName = "ThreadPrimitive.Messages";
2909
2956
  var ThreadPrimitiveMessages = memo5(
@@ -3370,17 +3417,17 @@ var MessageRepository = class {
3370
3417
  };
3371
3418
 
3372
3419
  // src/ui/base/tooltip-icon-button.tsx
3373
- import { forwardRef as forwardRef21 } from "react";
3420
+ import { forwardRef as forwardRef23 } from "react";
3374
3421
 
3375
3422
  // src/ui/base/tooltip.tsx
3376
3423
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
3377
3424
 
3378
3425
  // src/ui/utils/withDefaults.tsx
3379
3426
  import {
3380
- forwardRef as forwardRef19
3427
+ forwardRef as forwardRef21
3381
3428
  } from "react";
3382
3429
  import classNames from "classnames";
3383
- import { jsx as jsx32 } from "react/jsx-runtime";
3430
+ import { jsx as jsx34 } from "react/jsx-runtime";
3384
3431
  var withDefaultProps = ({
3385
3432
  className,
3386
3433
  ...defaultProps
@@ -3393,10 +3440,10 @@ var withDefaultProps = ({
3393
3440
  };
3394
3441
  var withDefaults = (Component, defaultProps) => {
3395
3442
  const getProps = withDefaultProps(defaultProps);
3396
- const WithDefaults = forwardRef19(
3443
+ const WithDefaults = forwardRef21(
3397
3444
  (props, ref) => {
3398
3445
  const ComponentAsAny = Component;
3399
- return /* @__PURE__ */ jsx32(ComponentAsAny, { ...getProps(props), ref });
3446
+ return /* @__PURE__ */ jsx34(ComponentAsAny, { ...getProps(props), ref });
3400
3447
  }
3401
3448
  );
3402
3449
  WithDefaults.displayName = "withDefaults(" + (typeof Component === "string" ? Component : Component.displayName) + ")";
@@ -3404,9 +3451,9 @@ var withDefaults = (Component, defaultProps) => {
3404
3451
  };
3405
3452
 
3406
3453
  // src/ui/base/tooltip.tsx
3407
- import { jsx as jsx33 } from "react/jsx-runtime";
3454
+ import { jsx as jsx35 } from "react/jsx-runtime";
3408
3455
  var Tooltip = (props) => {
3409
- return /* @__PURE__ */ jsx33(TooltipPrimitive.Provider, { children: /* @__PURE__ */ jsx33(TooltipPrimitive.Root, { ...props }) });
3456
+ return /* @__PURE__ */ jsx35(TooltipPrimitive.Provider, { children: /* @__PURE__ */ jsx35(TooltipPrimitive.Root, { ...props }) });
3410
3457
  };
3411
3458
  Tooltip.displayName = "Tooltip";
3412
3459
  var TooltipTrigger = TooltipPrimitive.Trigger;
@@ -3418,9 +3465,9 @@ TooltipContent.displayName = "TooltipContent";
3418
3465
 
3419
3466
  // src/ui/base/button.tsx
3420
3467
  import { cva } from "class-variance-authority";
3421
- import { Primitive as Primitive13 } from "@radix-ui/react-primitive";
3422
- import { forwardRef as forwardRef20 } from "react";
3423
- import { jsx as jsx34 } from "react/jsx-runtime";
3468
+ import { Primitive as Primitive15 } from "@radix-ui/react-primitive";
3469
+ import { forwardRef as forwardRef22 } from "react";
3470
+ import { jsx as jsx36 } from "react/jsx-runtime";
3424
3471
  var buttonVariants = cva("aui-button", {
3425
3472
  variants: {
3426
3473
  variant: {
@@ -3438,10 +3485,10 @@ var buttonVariants = cva("aui-button", {
3438
3485
  size: "default"
3439
3486
  }
3440
3487
  });
3441
- var Button = forwardRef20(
3488
+ var Button = forwardRef22(
3442
3489
  ({ className, variant, size, ...props }, ref) => {
3443
- return /* @__PURE__ */ jsx34(
3444
- Primitive13.button,
3490
+ return /* @__PURE__ */ jsx36(
3491
+ Primitive15.button,
3445
3492
  {
3446
3493
  className: buttonVariants({ variant, size, className }),
3447
3494
  ...props,
@@ -3453,14 +3500,14 @@ var Button = forwardRef20(
3453
3500
  Button.displayName = "Button";
3454
3501
 
3455
3502
  // src/ui/base/tooltip-icon-button.tsx
3456
- import { jsx as jsx35, jsxs as jsxs2 } from "react/jsx-runtime";
3457
- var TooltipIconButton = forwardRef21(({ children, tooltip, side = "bottom", ...rest }, ref) => {
3458
- return /* @__PURE__ */ jsxs2(Tooltip, { children: [
3459
- /* @__PURE__ */ jsx35(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxs2(Button, { variant: "ghost", size: "icon", ...rest, ref, children: [
3503
+ import { jsx as jsx37, jsxs as jsxs3 } from "react/jsx-runtime";
3504
+ var TooltipIconButton = forwardRef23(({ children, tooltip, side = "bottom", ...rest }, ref) => {
3505
+ return /* @__PURE__ */ jsxs3(Tooltip, { children: [
3506
+ /* @__PURE__ */ jsx37(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxs3(Button, { variant: "ghost", size: "icon", ...rest, ref, children: [
3460
3507
  children,
3461
- /* @__PURE__ */ jsx35("span", { className: "aui-sr-only", children: tooltip })
3508
+ /* @__PURE__ */ jsx37("span", { className: "aui-sr-only", children: tooltip })
3462
3509
  ] }) }),
3463
- /* @__PURE__ */ jsx35(TooltipContent, { side, children: tooltip })
3510
+ /* @__PURE__ */ jsx37(TooltipContent, { side, children: tooltip })
3464
3511
  ] });
3465
3512
  });
3466
3513
  TooltipIconButton.displayName = "TooltipIconButton";
@@ -5154,7 +5201,7 @@ import {
5154
5201
  createContext as createContext7,
5155
5202
  useContext as useContext4
5156
5203
  } from "react";
5157
- import { Fragment as Fragment3, jsx as jsx36 } from "react/jsx-runtime";
5204
+ import { Fragment as Fragment4, jsx as jsx38 } from "react/jsx-runtime";
5158
5205
  var ThreadConfigContext = createContext7({});
5159
5206
  var useThreadConfig = () => {
5160
5207
  return useContext4(ThreadConfigContext);
@@ -5164,19 +5211,19 @@ var ThreadConfigProvider = ({
5164
5211
  config
5165
5212
  }) => {
5166
5213
  const hasAssistant = !!useAssistantRuntime({ optional: true });
5167
- const configProvider = config && Object.keys(config ?? {}).length > 0 ? /* @__PURE__ */ jsx36(ThreadConfigContext.Provider, { value: config, children }) : /* @__PURE__ */ jsx36(Fragment3, { children });
5214
+ const configProvider = config && Object.keys(config ?? {}).length > 0 ? /* @__PURE__ */ jsx38(ThreadConfigContext.Provider, { value: config, children }) : /* @__PURE__ */ jsx38(Fragment4, { children });
5168
5215
  if (!config?.runtime) return configProvider;
5169
5216
  if (hasAssistant) {
5170
5217
  throw new Error(
5171
5218
  "You provided a runtime to <Thread> while simulataneously using <AssistantRuntimeProvider>. This is not allowed."
5172
5219
  );
5173
5220
  }
5174
- return /* @__PURE__ */ jsx36(AssistantRuntimeProvider, { runtime: config.runtime, children: configProvider });
5221
+ return /* @__PURE__ */ jsx38(AssistantRuntimeProvider, { runtime: config.runtime, children: configProvider });
5175
5222
  };
5176
5223
  ThreadConfigProvider.displayName = "ThreadConfigProvider";
5177
5224
 
5178
5225
  // src/ui/assistant-action-bar.tsx
5179
- import { forwardRef as forwardRef22 } from "react";
5226
+ import { forwardRef as forwardRef24 } from "react";
5180
5227
  import {
5181
5228
  AudioLinesIcon,
5182
5229
  CheckIcon,
@@ -5186,7 +5233,7 @@ import {
5186
5233
  ThumbsDownIcon,
5187
5234
  ThumbsUpIcon
5188
5235
  } from "lucide-react";
5189
- import { Fragment as Fragment4, jsx as jsx37, jsxs as jsxs3 } from "react/jsx-runtime";
5236
+ import { Fragment as Fragment5, jsx as jsx39, jsxs as jsxs4 } from "react/jsx-runtime";
5190
5237
  var useAllowCopy = (ensureCapability = false) => {
5191
5238
  const { assistantMessage: { allowCopy = true } = {} } = useThreadConfig();
5192
5239
  const copySupported = useThread((t) => t.capabilities.unstable_copy);
@@ -5220,18 +5267,18 @@ var AssistantActionBar = () => {
5220
5267
  const allowFeedbackNegative = useAllowFeedbackNegative(true);
5221
5268
  if (!allowCopy && !allowReload && !allowSpeak && !allowFeedbackPositive && !allowFeedbackNegative)
5222
5269
  return null;
5223
- return /* @__PURE__ */ jsxs3(
5270
+ return /* @__PURE__ */ jsxs4(
5224
5271
  AssistantActionBarRoot,
5225
5272
  {
5226
5273
  hideWhenRunning: true,
5227
5274
  autohide: "not-last",
5228
5275
  autohideFloat: "single-branch",
5229
5276
  children: [
5230
- allowSpeak && /* @__PURE__ */ jsx37(AssistantActionBarSpeechControl, {}),
5231
- allowCopy && /* @__PURE__ */ jsx37(AssistantActionBarCopy, {}),
5232
- allowReload && /* @__PURE__ */ jsx37(AssistantActionBarReload, {}),
5233
- allowFeedbackPositive && /* @__PURE__ */ jsx37(AssistantActionBarFeedbackPositive, {}),
5234
- allowFeedbackNegative && /* @__PURE__ */ jsx37(AssistantActionBarFeedbackNegative, {})
5277
+ allowSpeak && /* @__PURE__ */ jsx39(AssistantActionBarSpeechControl, {}),
5278
+ allowCopy && /* @__PURE__ */ jsx39(AssistantActionBarCopy, {}),
5279
+ allowReload && /* @__PURE__ */ jsx39(AssistantActionBarReload, {}),
5280
+ allowFeedbackPositive && /* @__PURE__ */ jsx39(AssistantActionBarFeedbackPositive, {}),
5281
+ allowFeedbackNegative && /* @__PURE__ */ jsx39(AssistantActionBarFeedbackNegative, {})
5235
5282
  ]
5236
5283
  }
5237
5284
  );
@@ -5241,35 +5288,35 @@ var AssistantActionBarRoot = withDefaults(actionBar_exports.Root, {
5241
5288
  className: "aui-assistant-action-bar-root"
5242
5289
  });
5243
5290
  AssistantActionBarRoot.displayName = "AssistantActionBarRoot";
5244
- var AssistantActionBarCopy = forwardRef22((props, ref) => {
5291
+ var AssistantActionBarCopy = forwardRef24((props, ref) => {
5245
5292
  const {
5246
5293
  strings: {
5247
5294
  assistantMessage: { copy: { tooltip = "Copy" } = {} } = {}
5248
5295
  } = {}
5249
5296
  } = useThreadConfig();
5250
- return /* @__PURE__ */ jsx37(actionBar_exports.Copy, { asChild: true, children: /* @__PURE__ */ jsx37(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsxs3(Fragment4, { children: [
5251
- /* @__PURE__ */ jsx37(message_exports.If, { copied: true, children: /* @__PURE__ */ jsx37(CheckIcon, {}) }),
5252
- /* @__PURE__ */ jsx37(message_exports.If, { copied: false, children: /* @__PURE__ */ jsx37(CopyIcon, {}) })
5297
+ return /* @__PURE__ */ jsx39(actionBar_exports.Copy, { asChild: true, children: /* @__PURE__ */ jsx39(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsxs4(Fragment5, { children: [
5298
+ /* @__PURE__ */ jsx39(message_exports.If, { copied: true, children: /* @__PURE__ */ jsx39(CheckIcon, {}) }),
5299
+ /* @__PURE__ */ jsx39(message_exports.If, { copied: false, children: /* @__PURE__ */ jsx39(CopyIcon, {}) })
5253
5300
  ] }) }) });
5254
5301
  });
5255
5302
  AssistantActionBarCopy.displayName = "AssistantActionBarCopy";
5256
5303
  var AssistantActionBarSpeechControl = () => {
5257
- return /* @__PURE__ */ jsxs3(Fragment4, { children: [
5258
- /* @__PURE__ */ jsx37(message_exports.If, { speaking: false, children: /* @__PURE__ */ jsx37(AssistantActionBarSpeak, {}) }),
5259
- /* @__PURE__ */ jsx37(message_exports.If, { speaking: true, children: /* @__PURE__ */ jsx37(AssistantActionBarStopSpeaking, {}) })
5304
+ return /* @__PURE__ */ jsxs4(Fragment5, { children: [
5305
+ /* @__PURE__ */ jsx39(message_exports.If, { speaking: false, children: /* @__PURE__ */ jsx39(AssistantActionBarSpeak, {}) }),
5306
+ /* @__PURE__ */ jsx39(message_exports.If, { speaking: true, children: /* @__PURE__ */ jsx39(AssistantActionBarStopSpeaking, {}) })
5260
5307
  ] });
5261
5308
  };
5262
- var AssistantActionBarSpeak = forwardRef22((props, ref) => {
5309
+ var AssistantActionBarSpeak = forwardRef24((props, ref) => {
5263
5310
  const {
5264
5311
  strings: {
5265
5312
  assistantMessage: { speak: { tooltip = "Read aloud" } = {} } = {}
5266
5313
  } = {}
5267
5314
  } = useThreadConfig();
5268
5315
  const allowSpeak = useAllowSpeak();
5269
- return /* @__PURE__ */ jsx37(actionBar_exports.Speak, { disabled: !allowSpeak, asChild: true, children: /* @__PURE__ */ jsx37(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx37(AudioLinesIcon, {}) }) });
5316
+ return /* @__PURE__ */ jsx39(actionBar_exports.Speak, { disabled: !allowSpeak, asChild: true, children: /* @__PURE__ */ jsx39(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx39(AudioLinesIcon, {}) }) });
5270
5317
  });
5271
5318
  AssistantActionBarSpeak.displayName = "AssistantActionBarSpeak";
5272
- var AssistantActionBarStopSpeaking = forwardRef22((props, ref) => {
5319
+ var AssistantActionBarStopSpeaking = forwardRef24((props, ref) => {
5273
5320
  const {
5274
5321
  strings: {
5275
5322
  assistantMessage: {
@@ -5278,20 +5325,20 @@ var AssistantActionBarStopSpeaking = forwardRef22((props, ref) => {
5278
5325
  } = {}
5279
5326
  } = useThreadConfig();
5280
5327
  const allowSpeak = useAllowSpeak();
5281
- return /* @__PURE__ */ jsx37(actionBar_exports.StopSpeaking, { disabled: !allowSpeak, asChild: true, children: /* @__PURE__ */ jsx37(TooltipIconButton, { tooltip: stopTooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx37(StopCircleIcon, {}) }) });
5328
+ return /* @__PURE__ */ jsx39(actionBar_exports.StopSpeaking, { disabled: !allowSpeak, asChild: true, children: /* @__PURE__ */ jsx39(TooltipIconButton, { tooltip: stopTooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx39(StopCircleIcon, {}) }) });
5282
5329
  });
5283
5330
  AssistantActionBarStopSpeaking.displayName = "AssistantActionBarStopSpeaking";
5284
- var AssistantActionBarReload = forwardRef22((props, ref) => {
5331
+ var AssistantActionBarReload = forwardRef24((props, ref) => {
5285
5332
  const {
5286
5333
  strings: {
5287
5334
  assistantMessage: { reload: { tooltip = "Refresh" } = {} } = {}
5288
5335
  } = {}
5289
5336
  } = useThreadConfig();
5290
5337
  const allowReload = useAllowReload();
5291
- return /* @__PURE__ */ jsx37(actionBar_exports.Reload, { disabled: !allowReload, asChild: true, children: /* @__PURE__ */ jsx37(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx37(RefreshCwIcon, {}) }) });
5338
+ return /* @__PURE__ */ jsx39(actionBar_exports.Reload, { disabled: !allowReload, asChild: true, children: /* @__PURE__ */ jsx39(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx39(RefreshCwIcon, {}) }) });
5292
5339
  });
5293
5340
  AssistantActionBarReload.displayName = "AssistantActionBarReload";
5294
- var AssistantActionBarFeedbackPositive = forwardRef22((props, ref) => {
5341
+ var AssistantActionBarFeedbackPositive = forwardRef24((props, ref) => {
5295
5342
  const {
5296
5343
  strings: {
5297
5344
  assistantMessage: {
@@ -5300,18 +5347,18 @@ var AssistantActionBarFeedbackPositive = forwardRef22((props, ref) => {
5300
5347
  } = {}
5301
5348
  } = useThreadConfig();
5302
5349
  const allowFeedbackPositive = useAllowFeedbackPositive();
5303
- return /* @__PURE__ */ jsx37(
5350
+ return /* @__PURE__ */ jsx39(
5304
5351
  actionBar_exports.FeedbackPositive,
5305
5352
  {
5306
5353
  disabled: !allowFeedbackPositive,
5307
5354
  className: "aui-assistant-action-bar-feedback-positive",
5308
5355
  asChild: true,
5309
- children: /* @__PURE__ */ jsx37(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx37(ThumbsUpIcon, {}) })
5356
+ children: /* @__PURE__ */ jsx39(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx39(ThumbsUpIcon, {}) })
5310
5357
  }
5311
5358
  );
5312
5359
  });
5313
5360
  AssistantActionBarFeedbackPositive.displayName = "AssistantActionBarFeedbackPositive";
5314
- var AssistantActionBarFeedbackNegative = forwardRef22((props, ref) => {
5361
+ var AssistantActionBarFeedbackNegative = forwardRef24((props, ref) => {
5315
5362
  const {
5316
5363
  strings: {
5317
5364
  assistantMessage: {
@@ -5320,13 +5367,13 @@ var AssistantActionBarFeedbackNegative = forwardRef22((props, ref) => {
5320
5367
  } = {}
5321
5368
  } = useThreadConfig();
5322
5369
  const allowFeedbackNegative = useAllowFeedbackNegative();
5323
- return /* @__PURE__ */ jsx37(
5370
+ return /* @__PURE__ */ jsx39(
5324
5371
  actionBar_exports.FeedbackNegative,
5325
5372
  {
5326
5373
  disabled: !allowFeedbackNegative,
5327
5374
  className: "aui-assistant-action-bar-feedback-negative",
5328
5375
  asChild: true,
5329
- children: /* @__PURE__ */ jsx37(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx37(ThumbsDownIcon, {}) })
5376
+ children: /* @__PURE__ */ jsx39(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx39(ThumbsDownIcon, {}) })
5330
5377
  }
5331
5378
  );
5332
5379
  });
@@ -5347,12 +5394,12 @@ var assistant_action_bar_default = Object.assign(
5347
5394
  );
5348
5395
 
5349
5396
  // src/ui/assistant-message.tsx
5350
- import { forwardRef as forwardRef24, useMemo as useMemo14 } from "react";
5397
+ import { forwardRef as forwardRef26, useMemo as useMemo14 } from "react";
5351
5398
 
5352
5399
  // src/ui/branch-picker.tsx
5353
- import { forwardRef as forwardRef23 } from "react";
5400
+ import { forwardRef as forwardRef25 } from "react";
5354
5401
  import { ChevronLeftIcon, ChevronRightIcon } from "lucide-react";
5355
- import { jsx as jsx38, jsxs as jsxs4 } from "react/jsx-runtime";
5402
+ import { jsx as jsx40, jsxs as jsxs5 } from "react/jsx-runtime";
5356
5403
  var useAllowBranchPicker = (ensureCapability = false) => {
5357
5404
  const { branchPicker: { allowBranchPicker = true } = {} } = useThreadConfig();
5358
5405
  const branchPickerSupported = useThread((t) => t.capabilities.edit);
@@ -5361,10 +5408,10 @@ var useAllowBranchPicker = (ensureCapability = false) => {
5361
5408
  var BranchPicker = () => {
5362
5409
  const allowBranchPicker = useAllowBranchPicker(true);
5363
5410
  if (!allowBranchPicker) return null;
5364
- return /* @__PURE__ */ jsxs4(BranchPickerRoot, { hideWhenSingleBranch: true, children: [
5365
- /* @__PURE__ */ jsx38(BranchPickerPrevious2, {}),
5366
- /* @__PURE__ */ jsx38(BranchPickerState, {}),
5367
- /* @__PURE__ */ jsx38(BranchPickerNext, {})
5411
+ return /* @__PURE__ */ jsxs5(BranchPickerRoot, { hideWhenSingleBranch: true, children: [
5412
+ /* @__PURE__ */ jsx40(BranchPickerPrevious2, {}),
5413
+ /* @__PURE__ */ jsx40(BranchPickerState, {}),
5414
+ /* @__PURE__ */ jsx40(BranchPickerNext, {})
5368
5415
  ] });
5369
5416
  };
5370
5417
  BranchPicker.displayName = "BranchPicker";
@@ -5372,33 +5419,33 @@ var BranchPickerRoot = withDefaults(branchPicker_exports.Root, {
5372
5419
  className: "aui-branch-picker-root"
5373
5420
  });
5374
5421
  BranchPickerRoot.displayName = "BranchPickerRoot";
5375
- var BranchPickerPrevious2 = forwardRef23((props, ref) => {
5422
+ var BranchPickerPrevious2 = forwardRef25((props, ref) => {
5376
5423
  const {
5377
5424
  strings: {
5378
5425
  branchPicker: { previous: { tooltip = "Previous" } = {} } = {}
5379
5426
  } = {}
5380
5427
  } = useThreadConfig();
5381
5428
  const allowBranchPicker = useAllowBranchPicker();
5382
- return /* @__PURE__ */ jsx38(branchPicker_exports.Previous, { disabled: !allowBranchPicker, asChild: true, children: /* @__PURE__ */ jsx38(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx38(ChevronLeftIcon, {}) }) });
5429
+ return /* @__PURE__ */ jsx40(branchPicker_exports.Previous, { disabled: !allowBranchPicker, asChild: true, children: /* @__PURE__ */ jsx40(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx40(ChevronLeftIcon, {}) }) });
5383
5430
  });
5384
5431
  BranchPickerPrevious2.displayName = "BranchPickerPrevious";
5385
5432
  var BranchPickerStateWrapper = withDefaults("span", {
5386
5433
  className: "aui-branch-picker-state"
5387
5434
  });
5388
- var BranchPickerState = forwardRef23((props, ref) => {
5389
- return /* @__PURE__ */ jsxs4(BranchPickerStateWrapper, { ...props, ref, children: [
5390
- /* @__PURE__ */ jsx38(branchPicker_exports.Number, {}),
5435
+ var BranchPickerState = forwardRef25((props, ref) => {
5436
+ return /* @__PURE__ */ jsxs5(BranchPickerStateWrapper, { ...props, ref, children: [
5437
+ /* @__PURE__ */ jsx40(branchPicker_exports.Number, {}),
5391
5438
  " / ",
5392
- /* @__PURE__ */ jsx38(branchPicker_exports.Count, {})
5439
+ /* @__PURE__ */ jsx40(branchPicker_exports.Count, {})
5393
5440
  ] });
5394
5441
  });
5395
5442
  BranchPickerState.displayName = "BranchPickerState";
5396
- var BranchPickerNext = forwardRef23((props, ref) => {
5443
+ var BranchPickerNext = forwardRef25((props, ref) => {
5397
5444
  const {
5398
5445
  strings: { branchPicker: { next: { tooltip = "Next" } = {} } = {} } = {}
5399
5446
  } = useThreadConfig();
5400
5447
  const allowBranchPicker = useAllowBranchPicker();
5401
- return /* @__PURE__ */ jsx38(branchPicker_exports.Next, { disabled: !allowBranchPicker, asChild: true, children: /* @__PURE__ */ jsx38(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx38(ChevronRightIcon, {}) }) });
5448
+ return /* @__PURE__ */ jsx40(branchPicker_exports.Next, { disabled: !allowBranchPicker, asChild: true, children: /* @__PURE__ */ jsx40(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx40(ChevronRightIcon, {}) }) });
5402
5449
  });
5403
5450
  BranchPickerNext.displayName = "BranchPickerNext";
5404
5451
  var exports2 = {
@@ -5410,12 +5457,12 @@ var branch_picker_default = Object.assign(BranchPicker, exports2);
5410
5457
 
5411
5458
  // src/ui/base/avatar.tsx
5412
5459
  import * as AvatarPrimitive from "@radix-ui/react-avatar";
5413
- import { jsx as jsx39, jsxs as jsxs5 } from "react/jsx-runtime";
5460
+ import { jsx as jsx41, jsxs as jsxs6 } from "react/jsx-runtime";
5414
5461
  var Avatar = ({ src, alt, fallback }) => {
5415
5462
  if (src == null && fallback == null) return null;
5416
- return /* @__PURE__ */ jsxs5(AvatarRoot, { children: [
5417
- src != null && /* @__PURE__ */ jsx39(AvatarImage, { src, alt }),
5418
- fallback != null && /* @__PURE__ */ jsx39(AvatarFallback, { children: fallback })
5463
+ return /* @__PURE__ */ jsxs6(AvatarRoot, { children: [
5464
+ src != null && /* @__PURE__ */ jsx41(AvatarImage, { src, alt }),
5465
+ fallback != null && /* @__PURE__ */ jsx41(AvatarFallback, { children: fallback })
5419
5466
  ] });
5420
5467
  };
5421
5468
  Avatar.displayName = "Avatar";
@@ -5434,10 +5481,10 @@ AvatarFallback.displayName = "AvatarFallback";
5434
5481
 
5435
5482
  // src/ui/content-part.tsx
5436
5483
  import classNames2 from "classnames";
5437
- import { jsx as jsx40 } from "react/jsx-runtime";
5484
+ import { jsx as jsx42 } from "react/jsx-runtime";
5438
5485
  var Text = () => {
5439
5486
  const status = useSmoothStatus();
5440
- return /* @__PURE__ */ jsx40(
5487
+ return /* @__PURE__ */ jsx42(
5441
5488
  contentPart_exports.Text,
5442
5489
  {
5443
5490
  className: classNames2(
@@ -5452,19 +5499,19 @@ var exports3 = { Text: withSmoothContextProvider(Text) };
5452
5499
  var content_part_default = exports3;
5453
5500
 
5454
5501
  // src/ui/assistant-message.tsx
5455
- import { jsx as jsx41, jsxs as jsxs6 } from "react/jsx-runtime";
5502
+ import { jsx as jsx43, jsxs as jsxs7 } from "react/jsx-runtime";
5456
5503
  var AssistantMessage = () => {
5457
- return /* @__PURE__ */ jsxs6(AssistantMessageRoot, { children: [
5458
- /* @__PURE__ */ jsx41(AssistantMessageAvatar, {}),
5459
- /* @__PURE__ */ jsx41(AssistantMessageContent, {}),
5460
- /* @__PURE__ */ jsx41(branch_picker_default, {}),
5461
- /* @__PURE__ */ jsx41(assistant_action_bar_default, {})
5504
+ return /* @__PURE__ */ jsxs7(AssistantMessageRoot, { children: [
5505
+ /* @__PURE__ */ jsx43(AssistantMessageAvatar, {}),
5506
+ /* @__PURE__ */ jsx43(AssistantMessageContent, {}),
5507
+ /* @__PURE__ */ jsx43(branch_picker_default, {}),
5508
+ /* @__PURE__ */ jsx43(assistant_action_bar_default, {})
5462
5509
  ] });
5463
5510
  };
5464
5511
  AssistantMessage.displayName = "AssistantMessage";
5465
5512
  var AssistantMessageAvatar = () => {
5466
5513
  const { assistantAvatar: avatar = { fallback: "A" } } = useThreadConfig();
5467
- return /* @__PURE__ */ jsx41(Avatar, { ...avatar });
5514
+ return /* @__PURE__ */ jsx43(Avatar, { ...avatar });
5468
5515
  };
5469
5516
  var AssistantMessageRoot = withDefaults(message_exports.Root, {
5470
5517
  className: "aui-assistant-message-root"
@@ -5473,7 +5520,7 @@ AssistantMessageRoot.displayName = "AssistantMessageRoot";
5473
5520
  var AssistantMessageContentWrapper = withDefaults("div", {
5474
5521
  className: "aui-assistant-message-content"
5475
5522
  });
5476
- var AssistantMessageContent = forwardRef24(({ components: componentsProp, ...rest }, ref) => {
5523
+ var AssistantMessageContent = forwardRef26(({ components: componentsProp, ...rest }, ref) => {
5477
5524
  const { tools, assistantMessage: { components = {} } = {} } = useThreadConfig();
5478
5525
  const toolsComponents = useMemo14(
5479
5526
  () => ({
@@ -5488,7 +5535,7 @@ var AssistantMessageContent = forwardRef24(({ components: componentsProp, ...res
5488
5535
  // eslint-disable-next-line react-hooks/exhaustive-deps
5489
5536
  [...tools ?? [], components.ToolFallback]
5490
5537
  );
5491
- return /* @__PURE__ */ jsx41(AssistantMessageContentWrapper, { ...rest, ref, children: /* @__PURE__ */ jsx41(
5538
+ return /* @__PURE__ */ jsx43(AssistantMessageContentWrapper, { ...rest, ref, children: /* @__PURE__ */ jsx43(
5492
5539
  message_exports.Content,
5493
5540
  {
5494
5541
  components: {
@@ -5511,21 +5558,21 @@ var assistant_message_default = Object.assign(
5511
5558
  );
5512
5559
 
5513
5560
  // src/ui/assistant-modal.tsx
5514
- import { forwardRef as forwardRef32 } from "react";
5561
+ import { forwardRef as forwardRef34 } from "react";
5515
5562
  import { BotIcon, ChevronDownIcon } from "lucide-react";
5516
5563
 
5517
5564
  // src/ui/thread.tsx
5518
- import { forwardRef as forwardRef31 } from "react";
5565
+ import { forwardRef as forwardRef33 } from "react";
5519
5566
  import { ArrowDownIcon } from "lucide-react";
5520
5567
 
5521
5568
  // src/ui/composer.tsx
5522
- import { forwardRef as forwardRef26 } from "react";
5569
+ import { forwardRef as forwardRef28 } from "react";
5523
5570
  import { PaperclipIcon, SendHorizontalIcon } from "lucide-react";
5524
5571
 
5525
5572
  // src/ui/base/CircleStopIcon.tsx
5526
- import { jsx as jsx42 } from "react/jsx-runtime";
5573
+ import { jsx as jsx44 } from "react/jsx-runtime";
5527
5574
  var CircleStopIcon = () => {
5528
- return /* @__PURE__ */ jsx42(
5575
+ return /* @__PURE__ */ jsx44(
5529
5576
  "svg",
5530
5577
  {
5531
5578
  xmlns: "http://www.w3.org/2000/svg",
@@ -5533,51 +5580,44 @@ var CircleStopIcon = () => {
5533
5580
  fill: "currentColor",
5534
5581
  width: "16",
5535
5582
  height: "16",
5536
- children: /* @__PURE__ */ jsx42("rect", { width: "10", height: "10", x: "3", y: "3", rx: "2" })
5583
+ children: /* @__PURE__ */ jsx44("rect", { width: "10", height: "10", x: "3", y: "3", rx: "2" })
5537
5584
  }
5538
5585
  );
5539
5586
  };
5540
5587
  CircleStopIcon.displayName = "CircleStopIcon";
5541
5588
 
5542
5589
  // src/ui/composer-attachment.tsx
5543
- import { forwardRef as forwardRef25 } from "react";
5590
+ import { forwardRef as forwardRef27 } from "react";
5544
5591
  import { CircleXIcon } from "lucide-react";
5545
- import { jsx as jsx43, jsxs as jsxs7 } from "react/jsx-runtime";
5546
- var ComposerAttachmentRoot = withDefaults("div", {
5592
+ import { jsx as jsx45, jsxs as jsxs8 } from "react/jsx-runtime";
5593
+ var ComposerAttachmentRoot = withDefaults(attachment_exports.Root, {
5547
5594
  className: "aui-composer-attachment-root"
5548
5595
  });
5549
5596
  ComposerAttachmentRoot.displayName = "ComposerAttachmentRoot";
5550
5597
  var ComposerAttachment2 = () => {
5551
- const attachment = useThreadComposerAttachment((a) => a.attachment);
5552
- return /* @__PURE__ */ jsxs7(ComposerAttachmentRoot, { children: [
5553
- ".",
5554
- attachment.name.split(".").pop(),
5555
- /* @__PURE__ */ jsx43(ComposerAttachmentRemove, {})
5598
+ return /* @__PURE__ */ jsxs8(ComposerAttachmentRoot, { children: [
5599
+ /* @__PURE__ */ jsx45(attachment_exports.unstable_Thumb, {}),
5600
+ /* @__PURE__ */ jsx45(ComposerAttachmentRemove, {})
5556
5601
  ] });
5557
5602
  };
5558
5603
  ComposerAttachment2.displayName = "ComposerAttachment";
5559
- var ComposerAttachmentRemove = forwardRef25((props, ref) => {
5604
+ var ComposerAttachmentRemove = forwardRef27((props, ref) => {
5560
5605
  const {
5561
5606
  strings: {
5562
5607
  composer: { removeAttachment: { tooltip = "Remove file" } = {} } = {}
5563
5608
  } = {}
5564
5609
  } = useThreadConfig();
5565
- const attachmentRuntime = useAttachmentRuntime();
5566
- const handleRemoveAttachment = () => {
5567
- attachmentRuntime.remove();
5568
- };
5569
- return /* @__PURE__ */ jsx43(
5610
+ return /* @__PURE__ */ jsx45(attachment_exports.Remove, { asChild: true, children: /* @__PURE__ */ jsx45(
5570
5611
  TooltipIconButton,
5571
5612
  {
5572
5613
  tooltip,
5573
5614
  className: "aui-composer-attachment-remove",
5574
5615
  side: "top",
5575
5616
  ...props,
5576
- onClick: handleRemoveAttachment,
5577
5617
  ref,
5578
- children: props.children ?? /* @__PURE__ */ jsx43(CircleXIcon, {})
5618
+ children: props.children ?? /* @__PURE__ */ jsx45(CircleXIcon, {})
5579
5619
  }
5580
- );
5620
+ ) });
5581
5621
  });
5582
5622
  ComposerAttachmentRemove.displayName = "ComposerAttachmentRemove";
5583
5623
  var exports5 = {
@@ -5590,7 +5630,7 @@ var composer_attachment_default = Object.assign(
5590
5630
  );
5591
5631
 
5592
5632
  // src/ui/composer.tsx
5593
- import { Fragment as Fragment5, jsx as jsx44, jsxs as jsxs8 } from "react/jsx-runtime";
5633
+ import { Fragment as Fragment6, jsx as jsx46, jsxs as jsxs9 } from "react/jsx-runtime";
5594
5634
  var useAllowAttachments = (ensureCapability = false) => {
5595
5635
  const { composer: { allowAttachments = true } = {} } = useThreadConfig();
5596
5636
  const attachmentsSupported = useThread((t) => t.capabilities.attachments);
@@ -5598,11 +5638,11 @@ var useAllowAttachments = (ensureCapability = false) => {
5598
5638
  };
5599
5639
  var Composer = () => {
5600
5640
  const allowAttachments = useAllowAttachments(true);
5601
- return /* @__PURE__ */ jsxs8(ComposerRoot, { children: [
5602
- allowAttachments && /* @__PURE__ */ jsx44(ComposerAttachments, {}),
5603
- allowAttachments && /* @__PURE__ */ jsx44(ComposerAddAttachment, {}),
5604
- /* @__PURE__ */ jsx44(ComposerInput, { autoFocus: true }),
5605
- /* @__PURE__ */ jsx44(ComposerAction, {})
5641
+ return /* @__PURE__ */ jsxs9(ComposerRoot, { children: [
5642
+ allowAttachments && /* @__PURE__ */ jsx46(ComposerAttachments, {}),
5643
+ allowAttachments && /* @__PURE__ */ jsx46(ComposerAddAttachment, {}),
5644
+ /* @__PURE__ */ jsx46(ComposerInput, { autoFocus: true }),
5645
+ /* @__PURE__ */ jsx46(ComposerAction, {})
5606
5646
  ] });
5607
5647
  };
5608
5648
  Composer.displayName = "Composer";
@@ -5615,14 +5655,14 @@ var ComposerInputStyled = withDefaults(composer_exports.Input, {
5615
5655
  autoFocus: true,
5616
5656
  className: "aui-composer-input"
5617
5657
  });
5618
- var ComposerInput = forwardRef26(
5658
+ var ComposerInput = forwardRef28(
5619
5659
  (props, ref) => {
5620
5660
  const {
5621
5661
  strings: {
5622
5662
  composer: { input: { placeholder = "Write a message..." } = {} } = {}
5623
5663
  } = {}
5624
5664
  } = useThreadConfig();
5625
- return /* @__PURE__ */ jsx44(ComposerInputStyled, { placeholder, ...props, ref });
5665
+ return /* @__PURE__ */ jsx46(ComposerInputStyled, { placeholder, ...props, ref });
5626
5666
  }
5627
5667
  );
5628
5668
  ComposerInput.displayName = "ComposerInput";
@@ -5630,7 +5670,7 @@ var ComposerAttachmentsContainer = withDefaults("div", {
5630
5670
  className: "aui-composer-attachments"
5631
5671
  });
5632
5672
  var ComposerAttachments = ({ components }) => {
5633
- return /* @__PURE__ */ jsx44(ComposerAttachmentsContainer, { children: /* @__PURE__ */ jsx44(
5673
+ return /* @__PURE__ */ jsx46(ComposerAttachmentsContainer, { children: /* @__PURE__ */ jsx46(
5634
5674
  composer_exports.Attachments,
5635
5675
  {
5636
5676
  components: {
@@ -5644,21 +5684,21 @@ var ComposerAttachButton = withDefaults(TooltipIconButton, {
5644
5684
  variant: "default",
5645
5685
  className: "aui-composer-attach"
5646
5686
  });
5647
- var ComposerAddAttachment = forwardRef26((props, ref) => {
5687
+ var ComposerAddAttachment = forwardRef28((props, ref) => {
5648
5688
  const {
5649
5689
  strings: {
5650
5690
  composer: { addAttachment: { tooltip = "Attach file" } = {} } = {}
5651
5691
  } = {}
5652
5692
  } = useThreadConfig();
5653
5693
  const allowAttachments = useAllowAttachments();
5654
- return /* @__PURE__ */ jsx44(composer_exports.AddAttachment, { disabled: !allowAttachments, asChild: true, children: /* @__PURE__ */ jsx44(
5694
+ return /* @__PURE__ */ jsx46(composer_exports.AddAttachment, { disabled: !allowAttachments, asChild: true, children: /* @__PURE__ */ jsx46(
5655
5695
  ComposerAttachButton,
5656
5696
  {
5657
5697
  tooltip,
5658
5698
  variant: "ghost",
5659
5699
  ...props,
5660
5700
  ref,
5661
- children: props.children ?? /* @__PURE__ */ jsx44(PaperclipIcon, {})
5701
+ children: props.children ?? /* @__PURE__ */ jsx46(PaperclipIcon, {})
5662
5702
  }
5663
5703
  ) });
5664
5704
  });
@@ -5669,10 +5709,10 @@ var useAllowCancel = () => {
5669
5709
  };
5670
5710
  var ComposerAction = () => {
5671
5711
  const allowCancel = useAllowCancel();
5672
- if (!allowCancel) return /* @__PURE__ */ jsx44(ComposerSend, {});
5673
- return /* @__PURE__ */ jsxs8(Fragment5, { children: [
5674
- /* @__PURE__ */ jsx44(thread_exports.If, { running: false, children: /* @__PURE__ */ jsx44(ComposerSend, {}) }),
5675
- /* @__PURE__ */ jsx44(thread_exports.If, { running: true, children: /* @__PURE__ */ jsx44(ComposerCancel, {}) })
5712
+ if (!allowCancel) return /* @__PURE__ */ jsx46(ComposerSend, {});
5713
+ return /* @__PURE__ */ jsxs9(Fragment6, { children: [
5714
+ /* @__PURE__ */ jsx46(thread_exports.If, { running: false, children: /* @__PURE__ */ jsx46(ComposerSend, {}) }),
5715
+ /* @__PURE__ */ jsx46(thread_exports.If, { running: true, children: /* @__PURE__ */ jsx46(ComposerCancel, {}) })
5676
5716
  ] });
5677
5717
  };
5678
5718
  ComposerAction.displayName = "ComposerAction";
@@ -5680,22 +5720,22 @@ var ComposerSendButton = withDefaults(TooltipIconButton, {
5680
5720
  variant: "default",
5681
5721
  className: "aui-composer-send"
5682
5722
  });
5683
- var ComposerSend = forwardRef26((props, ref) => {
5723
+ var ComposerSend = forwardRef28((props, ref) => {
5684
5724
  const {
5685
5725
  strings: { composer: { send: { tooltip = "Send" } = {} } = {} } = {}
5686
5726
  } = useThreadConfig();
5687
- return /* @__PURE__ */ jsx44(composer_exports.Send, { asChild: true, children: /* @__PURE__ */ jsx44(ComposerSendButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx44(SendHorizontalIcon, {}) }) });
5727
+ return /* @__PURE__ */ jsx46(composer_exports.Send, { asChild: true, children: /* @__PURE__ */ jsx46(ComposerSendButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx46(SendHorizontalIcon, {}) }) });
5688
5728
  });
5689
5729
  ComposerSend.displayName = "ComposerSend";
5690
5730
  var ComposerCancelButton = withDefaults(TooltipIconButton, {
5691
5731
  variant: "default",
5692
5732
  className: "aui-composer-cancel"
5693
5733
  });
5694
- var ComposerCancel = forwardRef26((props, ref) => {
5734
+ var ComposerCancel = forwardRef28((props, ref) => {
5695
5735
  const {
5696
5736
  strings: { composer: { cancel: { tooltip = "Cancel" } = {} } = {} } = {}
5697
5737
  } = useThreadConfig();
5698
- return /* @__PURE__ */ jsx44(composer_exports.Cancel, { asChild: true, children: /* @__PURE__ */ jsx44(ComposerCancelButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx44(CircleStopIcon, {}) }) });
5738
+ return /* @__PURE__ */ jsx46(composer_exports.Cancel, { asChild: true, children: /* @__PURE__ */ jsx46(ComposerCancelButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx46(CircleStopIcon, {}) }) });
5699
5739
  });
5700
5740
  ComposerCancel.displayName = "ComposerCancel";
5701
5741
  var exports6 = {
@@ -5710,15 +5750,15 @@ var exports6 = {
5710
5750
  var composer_default = Object.assign(Composer, exports6);
5711
5751
 
5712
5752
  // src/ui/thread-welcome.tsx
5713
- import { forwardRef as forwardRef27 } from "react";
5714
- import { jsx as jsx45, jsxs as jsxs9 } from "react/jsx-runtime";
5753
+ import { forwardRef as forwardRef29 } from "react";
5754
+ import { jsx as jsx47, jsxs as jsxs10 } from "react/jsx-runtime";
5715
5755
  var ThreadWelcome = () => {
5716
- return /* @__PURE__ */ jsxs9(ThreadWelcomeRoot, { children: [
5717
- /* @__PURE__ */ jsxs9(ThreadWelcomeCenter, { children: [
5718
- /* @__PURE__ */ jsx45(ThreadWelcomeAvatar, {}),
5719
- /* @__PURE__ */ jsx45(ThreadWelcomeMessage, {})
5756
+ return /* @__PURE__ */ jsxs10(ThreadWelcomeRoot, { children: [
5757
+ /* @__PURE__ */ jsxs10(ThreadWelcomeCenter, { children: [
5758
+ /* @__PURE__ */ jsx47(ThreadWelcomeAvatar, {}),
5759
+ /* @__PURE__ */ jsx47(ThreadWelcomeMessage, {})
5720
5760
  ] }),
5721
- /* @__PURE__ */ jsx45(ThreadWelcomeSuggestions, {})
5761
+ /* @__PURE__ */ jsx47(ThreadWelcomeSuggestions, {})
5722
5762
  ] });
5723
5763
  };
5724
5764
  ThreadWelcome.displayName = "ThreadWelcome";
@@ -5728,22 +5768,22 @@ var ThreadWelcomeRootStyled = withDefaults("div", {
5728
5768
  var ThreadWelcomeCenter = withDefaults("div", {
5729
5769
  className: "aui-thread-welcome-center"
5730
5770
  });
5731
- var ThreadWelcomeRoot = forwardRef27(
5771
+ var ThreadWelcomeRoot = forwardRef29(
5732
5772
  (props, ref) => {
5733
- return /* @__PURE__ */ jsx45(thread_exports.Empty, { children: /* @__PURE__ */ jsx45(ThreadWelcomeRootStyled, { ...props, ref }) });
5773
+ return /* @__PURE__ */ jsx47(thread_exports.Empty, { children: /* @__PURE__ */ jsx47(ThreadWelcomeRootStyled, { ...props, ref }) });
5734
5774
  }
5735
5775
  );
5736
5776
  ThreadWelcomeRoot.displayName = "ThreadWelcomeRoot";
5737
5777
  var ThreadWelcomeAvatar = () => {
5738
5778
  const { assistantAvatar: avatar = { fallback: "A" } } = useThreadConfig();
5739
- return /* @__PURE__ */ jsx45(Avatar, { ...avatar });
5779
+ return /* @__PURE__ */ jsx47(Avatar, { ...avatar });
5740
5780
  };
5741
5781
  var ThreadWelcomeMessageStyled = withDefaults("p", {
5742
5782
  className: "aui-thread-welcome-message"
5743
5783
  });
5744
- var ThreadWelcomeMessage = forwardRef27(({ message: messageProp, ...rest }, ref) => {
5784
+ var ThreadWelcomeMessage = forwardRef29(({ message: messageProp, ...rest }, ref) => {
5745
5785
  const { welcome: { message = "How can I help you today?" } = {} } = useThreadConfig();
5746
- return /* @__PURE__ */ jsx45(ThreadWelcomeMessageStyled, { ...rest, ref, children: messageProp ?? message });
5786
+ return /* @__PURE__ */ jsx47(ThreadWelcomeMessageStyled, { ...rest, ref, children: messageProp ?? message });
5747
5787
  });
5748
5788
  ThreadWelcomeMessage.displayName = "ThreadWelcomeMessage";
5749
5789
  var ThreadWelcomeSuggestionContainer = withDefaults("div", {
@@ -5755,15 +5795,15 @@ var ThreadWelcomeSuggestionStyled = withDefaults(thread_exports.Suggestion, {
5755
5795
  var ThreadWelcomeSuggestion = ({
5756
5796
  suggestion: { text, prompt }
5757
5797
  }) => {
5758
- return /* @__PURE__ */ jsx45(ThreadWelcomeSuggestionStyled, { prompt, method: "replace", autoSend: true, children: /* @__PURE__ */ jsx45("span", { className: "aui-thread-welcome-suggestion-text", children: text ?? prompt }) });
5798
+ return /* @__PURE__ */ jsx47(ThreadWelcomeSuggestionStyled, { prompt, method: "replace", autoSend: true, children: /* @__PURE__ */ jsx47("span", { className: "aui-thread-welcome-suggestion-text", children: text ?? prompt }) });
5759
5799
  };
5760
5800
  var ThreadWelcomeSuggestions = () => {
5761
5801
  const suggestions2 = useThread((t) => t.suggestions);
5762
5802
  const { welcome: { suggestions } = {} } = useThreadConfig();
5763
5803
  const finalSuggestions = suggestions2.length ? suggestions2 : suggestions;
5764
- return /* @__PURE__ */ jsx45(ThreadWelcomeSuggestionContainer, { children: finalSuggestions?.map((suggestion, idx) => {
5804
+ return /* @__PURE__ */ jsx47(ThreadWelcomeSuggestionContainer, { children: finalSuggestions?.map((suggestion, idx) => {
5765
5805
  const key = `${suggestion.prompt}-${idx}`;
5766
- return /* @__PURE__ */ jsx45(ThreadWelcomeSuggestion, { suggestion }, key);
5806
+ return /* @__PURE__ */ jsx47(ThreadWelcomeSuggestion, { suggestion }, key);
5767
5807
  }) });
5768
5808
  };
5769
5809
  ThreadWelcomeSuggestions.displayName = "ThreadWelcomeSuggestions";
@@ -5778,12 +5818,12 @@ var exports7 = {
5778
5818
  var thread_welcome_default = Object.assign(ThreadWelcome, exports7);
5779
5819
 
5780
5820
  // src/ui/user-message.tsx
5781
- import { forwardRef as forwardRef29 } from "react";
5821
+ import { forwardRef as forwardRef31 } from "react";
5782
5822
 
5783
5823
  // src/ui/user-action-bar.tsx
5784
- import { forwardRef as forwardRef28 } from "react";
5824
+ import { forwardRef as forwardRef30 } from "react";
5785
5825
  import { PencilIcon } from "lucide-react";
5786
- import { jsx as jsx46 } from "react/jsx-runtime";
5826
+ import { jsx as jsx48 } from "react/jsx-runtime";
5787
5827
  var useAllowEdit = (ensureCapability = false) => {
5788
5828
  const { userMessage: { allowEdit = true } = {} } = useThreadConfig();
5789
5829
  const editSupported = useThread((t) => t.capabilities.edit);
@@ -5792,19 +5832,19 @@ var useAllowEdit = (ensureCapability = false) => {
5792
5832
  var UserActionBar = () => {
5793
5833
  const allowEdit = useAllowEdit(true);
5794
5834
  if (!allowEdit) return null;
5795
- return /* @__PURE__ */ jsx46(UserActionBarRoot, { hideWhenRunning: true, autohide: "not-last", children: /* @__PURE__ */ jsx46(UserActionBarEdit, {}) });
5835
+ return /* @__PURE__ */ jsx48(UserActionBarRoot, { hideWhenRunning: true, autohide: "not-last", children: /* @__PURE__ */ jsx48(UserActionBarEdit, {}) });
5796
5836
  };
5797
5837
  UserActionBar.displayName = "UserActionBar";
5798
5838
  var UserActionBarRoot = withDefaults(actionBar_exports.Root, {
5799
5839
  className: "aui-user-action-bar-root"
5800
5840
  });
5801
5841
  UserActionBarRoot.displayName = "UserActionBarRoot";
5802
- var UserActionBarEdit = forwardRef28((props, ref) => {
5842
+ var UserActionBarEdit = forwardRef30((props, ref) => {
5803
5843
  const {
5804
5844
  strings: { userMessage: { edit: { tooltip = "Edit" } = {} } = {} } = {}
5805
5845
  } = useThreadConfig();
5806
5846
  const allowEdit = useAllowEdit();
5807
- return /* @__PURE__ */ jsx46(actionBar_exports.Edit, { disabled: !allowEdit, asChild: true, children: /* @__PURE__ */ jsx46(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx46(PencilIcon, {}) }) });
5847
+ return /* @__PURE__ */ jsx48(actionBar_exports.Edit, { disabled: !allowEdit, asChild: true, children: /* @__PURE__ */ jsx48(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx48(PencilIcon, {}) }) });
5808
5848
  });
5809
5849
  UserActionBarEdit.displayName = "UserActionBarEdit";
5810
5850
  var exports8 = {
@@ -5814,17 +5854,13 @@ var exports8 = {
5814
5854
  var user_action_bar_default = Object.assign(UserActionBar, exports8);
5815
5855
 
5816
5856
  // src/ui/user-message-attachment.tsx
5817
- import { jsxs as jsxs10 } from "react/jsx-runtime";
5818
- var UserMessageAttachmentRoot = withDefaults("div", {
5857
+ import { jsx as jsx49 } from "react/jsx-runtime";
5858
+ var UserMessageAttachmentRoot = withDefaults(attachment_exports.Root, {
5819
5859
  className: "aui-user-message-attachment-root"
5820
5860
  });
5821
5861
  UserMessageAttachmentRoot.displayName = "UserMessageAttachmentRoot";
5822
5862
  var UserMessageAttachment = () => {
5823
- const attachment = useAttachment((a) => a.attachment);
5824
- return /* @__PURE__ */ jsxs10(UserMessageAttachmentRoot, { children: [
5825
- ".",
5826
- attachment.name.split(".").pop()
5827
- ] });
5863
+ return /* @__PURE__ */ jsx49(UserMessageAttachmentRoot, { children: /* @__PURE__ */ jsx49(attachment_exports.unstable_Thumb, {}) });
5828
5864
  };
5829
5865
  UserMessageAttachment.displayName = "UserMessageAttachment";
5830
5866
  var exports9 = {
@@ -5836,13 +5872,13 @@ var user_message_attachment_default = Object.assign(
5836
5872
  );
5837
5873
 
5838
5874
  // src/ui/user-message.tsx
5839
- import { jsx as jsx47, jsxs as jsxs11 } from "react/jsx-runtime";
5875
+ import { jsx as jsx50, jsxs as jsxs11 } from "react/jsx-runtime";
5840
5876
  var UserMessage = () => {
5841
5877
  return /* @__PURE__ */ jsxs11(UserMessageRoot, { children: [
5842
- /* @__PURE__ */ jsx47(UserMessageAttachments, {}),
5843
- /* @__PURE__ */ jsx47(user_action_bar_default, {}),
5844
- /* @__PURE__ */ jsx47(UserMessageContent, {}),
5845
- /* @__PURE__ */ jsx47(branch_picker_default, {})
5878
+ /* @__PURE__ */ jsx50(UserMessageAttachments, {}),
5879
+ /* @__PURE__ */ jsx50(user_action_bar_default, {}),
5880
+ /* @__PURE__ */ jsx50(UserMessageContent, {}),
5881
+ /* @__PURE__ */ jsx50(branch_picker_default, {})
5846
5882
  ] });
5847
5883
  };
5848
5884
  UserMessage.displayName = "UserMessage";
@@ -5853,9 +5889,9 @@ UserMessageRoot.displayName = "UserMessageRoot";
5853
5889
  var UserMessageContentWrapper = withDefaults("div", {
5854
5890
  className: "aui-user-message-content"
5855
5891
  });
5856
- var UserMessageContent = forwardRef29(
5892
+ var UserMessageContent = forwardRef31(
5857
5893
  ({ components, ...props }, ref) => {
5858
- return /* @__PURE__ */ jsx47(UserMessageContentWrapper, { ...props, ref, children: /* @__PURE__ */ jsx47(
5894
+ return /* @__PURE__ */ jsx50(UserMessageContentWrapper, { ...props, ref, children: /* @__PURE__ */ jsx50(
5859
5895
  message_exports.Content,
5860
5896
  {
5861
5897
  components: {
@@ -5873,7 +5909,7 @@ var UserMessageAttachmentsContainer = withDefaults("div", {
5873
5909
  var UserMessageAttachments = ({
5874
5910
  components
5875
5911
  }) => {
5876
- return /* @__PURE__ */ jsx47(message_exports.If, { hasAttachments: true, children: /* @__PURE__ */ jsx47(UserMessageAttachmentsContainer, { children: /* @__PURE__ */ jsx47(
5912
+ return /* @__PURE__ */ jsx50(message_exports.If, { hasAttachments: true, children: /* @__PURE__ */ jsx50(UserMessageAttachmentsContainer, { children: /* @__PURE__ */ jsx50(
5877
5913
  message_exports.Attachments,
5878
5914
  {
5879
5915
  components: {
@@ -5891,14 +5927,14 @@ var exports10 = {
5891
5927
  var user_message_default = Object.assign(UserMessage, exports10);
5892
5928
 
5893
5929
  // src/ui/edit-composer.tsx
5894
- import { forwardRef as forwardRef30 } from "react";
5895
- import { jsx as jsx48, jsxs as jsxs12 } from "react/jsx-runtime";
5930
+ import { forwardRef as forwardRef32 } from "react";
5931
+ import { jsx as jsx51, jsxs as jsxs12 } from "react/jsx-runtime";
5896
5932
  var EditComposer = () => {
5897
5933
  return /* @__PURE__ */ jsxs12(EditComposerRoot, { children: [
5898
- /* @__PURE__ */ jsx48(EditComposerInput, {}),
5934
+ /* @__PURE__ */ jsx51(EditComposerInput, {}),
5899
5935
  /* @__PURE__ */ jsxs12(EditComposerFooter, { children: [
5900
- /* @__PURE__ */ jsx48(EditComposerCancel, {}),
5901
- /* @__PURE__ */ jsx48(EditComposerSend, {})
5936
+ /* @__PURE__ */ jsx51(EditComposerCancel, {}),
5937
+ /* @__PURE__ */ jsx51(EditComposerSend, {})
5902
5938
  ] })
5903
5939
  ] });
5904
5940
  };
@@ -5915,23 +5951,23 @@ var EditComposerFooter = withDefaults("div", {
5915
5951
  className: "aui-edit-composer-footer"
5916
5952
  });
5917
5953
  EditComposerFooter.displayName = "EditComposerFooter";
5918
- var EditComposerCancel = forwardRef30(
5954
+ var EditComposerCancel = forwardRef32(
5919
5955
  (props, ref) => {
5920
5956
  const {
5921
5957
  strings: {
5922
5958
  editComposer: { cancel: { label = "Cancel" } = {} } = {}
5923
5959
  } = {}
5924
5960
  } = useThreadConfig();
5925
- return /* @__PURE__ */ jsx48(composer_exports.Cancel, { asChild: true, children: /* @__PURE__ */ jsx48(Button, { variant: "ghost", ...props, ref, children: props.children ?? label }) });
5961
+ return /* @__PURE__ */ jsx51(composer_exports.Cancel, { asChild: true, children: /* @__PURE__ */ jsx51(Button, { variant: "ghost", ...props, ref, children: props.children ?? label }) });
5926
5962
  }
5927
5963
  );
5928
5964
  EditComposerCancel.displayName = "EditComposerCancel";
5929
- var EditComposerSend = forwardRef30(
5965
+ var EditComposerSend = forwardRef32(
5930
5966
  (props, ref) => {
5931
5967
  const {
5932
5968
  strings: { editComposer: { send: { label = "Send" } = {} } = {} } = {}
5933
5969
  } = useThreadConfig();
5934
- return /* @__PURE__ */ jsx48(composer_exports.Send, { asChild: true, children: /* @__PURE__ */ jsx48(Button, { ...props, ref, children: props.children ?? label }) });
5970
+ return /* @__PURE__ */ jsx51(composer_exports.Send, { asChild: true, children: /* @__PURE__ */ jsx51(Button, { ...props, ref, children: props.children ?? label }) });
5935
5971
  }
5936
5972
  );
5937
5973
  EditComposerSend.displayName = "EditComposerSend";
@@ -5945,7 +5981,7 @@ var exports11 = {
5945
5981
  var edit_composer_default = Object.assign(EditComposer, exports11);
5946
5982
 
5947
5983
  // src/ui/thread.tsx
5948
- import { Fragment as Fragment6, jsx as jsx49, jsxs as jsxs13 } from "react/jsx-runtime";
5984
+ import { Fragment as Fragment7, jsx as jsx52, jsxs as jsxs13 } from "react/jsx-runtime";
5949
5985
  var Thread = (config) => {
5950
5986
  const {
5951
5987
  components: {
@@ -5953,22 +5989,22 @@ var Thread = (config) => {
5953
5989
  ThreadWelcome: ThreadWelcomeComponent = thread_welcome_default
5954
5990
  } = {}
5955
5991
  } = config;
5956
- return /* @__PURE__ */ jsx49(ThreadRoot, { config, children: /* @__PURE__ */ jsxs13(ThreadViewport, { children: [
5957
- /* @__PURE__ */ jsx49(ThreadWelcomeComponent, {}),
5958
- /* @__PURE__ */ jsx49(ThreadMessages, {}),
5959
- /* @__PURE__ */ jsx49(ThreadFollowupSuggestions, {}),
5992
+ return /* @__PURE__ */ jsx52(ThreadRoot, { config, children: /* @__PURE__ */ jsxs13(ThreadViewport, { children: [
5993
+ /* @__PURE__ */ jsx52(ThreadWelcomeComponent, {}),
5994
+ /* @__PURE__ */ jsx52(ThreadMessages, {}),
5995
+ /* @__PURE__ */ jsx52(ThreadFollowupSuggestions, {}),
5960
5996
  /* @__PURE__ */ jsxs13(ThreadViewportFooter, { children: [
5961
- /* @__PURE__ */ jsx49(ThreadScrollToBottom, {}),
5962
- /* @__PURE__ */ jsx49(ComposerComponent, {})
5997
+ /* @__PURE__ */ jsx52(ThreadScrollToBottom, {}),
5998
+ /* @__PURE__ */ jsx52(ComposerComponent, {})
5963
5999
  ] })
5964
6000
  ] }) });
5965
6001
  };
5966
6002
  var ThreadRootStyled = withDefaults(thread_exports.Root, {
5967
6003
  className: "aui-root aui-thread-root"
5968
6004
  });
5969
- var ThreadRoot = forwardRef31(
6005
+ var ThreadRoot = forwardRef33(
5970
6006
  ({ config, ...props }, ref) => {
5971
- return /* @__PURE__ */ jsx49(ThreadConfigProvider, { config, children: /* @__PURE__ */ jsx49(ThreadRootStyled, { ...props, ref }) });
6007
+ return /* @__PURE__ */ jsx52(ThreadConfigProvider, { config, children: /* @__PURE__ */ jsx52(ThreadRootStyled, { ...props, ref }) });
5972
6008
  }
5973
6009
  );
5974
6010
  ThreadRoot.displayName = "ThreadRoot";
@@ -5982,8 +6018,8 @@ var ThreadViewportFooter = withDefaults("div", {
5982
6018
  ThreadViewportFooter.displayName = "ThreadViewportFooter";
5983
6019
  var SystemMessage = () => null;
5984
6020
  var ThreadMessages = ({ components, unstable_flexGrowDiv: flexGrowDiv = true, ...rest }) => {
5985
- return /* @__PURE__ */ jsxs13(Fragment6, { children: [
5986
- /* @__PURE__ */ jsx49(
6021
+ return /* @__PURE__ */ jsxs13(Fragment7, { children: [
6022
+ /* @__PURE__ */ jsx52(
5987
6023
  thread_exports.Messages,
5988
6024
  {
5989
6025
  components: {
@@ -5995,13 +6031,13 @@ var ThreadMessages = ({ components, unstable_flexGrowDiv: flexGrowDiv = true, ..
5995
6031
  ...rest
5996
6032
  }
5997
6033
  ),
5998
- flexGrowDiv && /* @__PURE__ */ jsx49(thread_exports.If, { empty: false, children: /* @__PURE__ */ jsx49("div", { style: { flexGrow: 1 } }) })
6034
+ flexGrowDiv && /* @__PURE__ */ jsx52(thread_exports.If, { empty: false, children: /* @__PURE__ */ jsx52("div", { style: { flexGrow: 1 } }) })
5999
6035
  ] });
6000
6036
  };
6001
6037
  ThreadMessages.displayName = "ThreadMessages";
6002
6038
  var ThreadFollowupSuggestions = () => {
6003
6039
  const suggestions = useThread((t) => t.suggestions);
6004
- return /* @__PURE__ */ jsx49(thread_exports.If, { empty: false, running: false, children: /* @__PURE__ */ jsx49("div", { className: "aui-thread-followup-suggestions", children: suggestions?.map((suggestion, idx) => /* @__PURE__ */ jsx49(
6040
+ return /* @__PURE__ */ jsx52(thread_exports.If, { empty: false, running: false, children: /* @__PURE__ */ jsx52("div", { className: "aui-thread-followup-suggestions", children: suggestions?.map((suggestion, idx) => /* @__PURE__ */ jsx52(
6005
6041
  thread_exports.Suggestion,
6006
6042
  {
6007
6043
  className: "aui-thread-followup-suggestion",
@@ -6017,13 +6053,13 @@ var ThreadScrollToBottomIconButton = withDefaults(TooltipIconButton, {
6017
6053
  variant: "outline",
6018
6054
  className: "aui-thread-scroll-to-bottom"
6019
6055
  });
6020
- var ThreadScrollToBottom = forwardRef31((props, ref) => {
6056
+ var ThreadScrollToBottom = forwardRef33((props, ref) => {
6021
6057
  const {
6022
6058
  strings: {
6023
6059
  thread: { scrollToBottom: { tooltip = "Scroll to bottom" } = {} } = {}
6024
6060
  } = {}
6025
6061
  } = useThreadConfig();
6026
- return /* @__PURE__ */ jsx49(thread_exports.ScrollToBottom, { asChild: true, children: /* @__PURE__ */ jsx49(ThreadScrollToBottomIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx49(ArrowDownIcon, {}) }) });
6062
+ return /* @__PURE__ */ jsx52(thread_exports.ScrollToBottom, { asChild: true, children: /* @__PURE__ */ jsx52(ThreadScrollToBottomIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx52(ArrowDownIcon, {}) }) });
6027
6063
  });
6028
6064
  ThreadScrollToBottom.displayName = "ThreadScrollToBottom";
6029
6065
  var exports12 = {
@@ -6037,20 +6073,20 @@ var exports12 = {
6037
6073
  var thread_default = Object.assign(Thread, exports12);
6038
6074
 
6039
6075
  // src/ui/assistant-modal.tsx
6040
- import { Fragment as Fragment7, jsx as jsx50, jsxs as jsxs14 } from "react/jsx-runtime";
6076
+ import { Fragment as Fragment8, jsx as jsx53, jsxs as jsxs14 } from "react/jsx-runtime";
6041
6077
  var AssistantModal = (config) => {
6042
6078
  return /* @__PURE__ */ jsxs14(AssistantModalRoot, { config, children: [
6043
- /* @__PURE__ */ jsx50(AssistantModalTrigger, {}),
6044
- /* @__PURE__ */ jsx50(AssistantModalContent, { children: /* @__PURE__ */ jsx50(thread_default, {}) })
6079
+ /* @__PURE__ */ jsx53(AssistantModalTrigger, {}),
6080
+ /* @__PURE__ */ jsx53(AssistantModalContent, { children: /* @__PURE__ */ jsx53(thread_default, {}) })
6045
6081
  ] });
6046
6082
  };
6047
6083
  AssistantModal.displayName = "AssistantModal";
6048
6084
  var AssistantModalRoot = ({ config, ...props }) => {
6049
- return /* @__PURE__ */ jsx50(ThreadConfigProvider, { config, children: /* @__PURE__ */ jsx50(assistantModal_exports.Root, { ...props }) });
6085
+ return /* @__PURE__ */ jsx53(ThreadConfigProvider, { config, children: /* @__PURE__ */ jsx53(assistantModal_exports.Root, { ...props }) });
6050
6086
  };
6051
6087
  AssistantModalRoot.displayName = "AssistantModalRoot";
6052
- var AssistantModalTrigger = forwardRef32((props, ref) => {
6053
- return /* @__PURE__ */ jsx50(AssistantModalAnchor, { children: /* @__PURE__ */ jsx50(assistantModal_exports.Trigger, { asChild: true, children: /* @__PURE__ */ jsx50(AssistantModalButton, { ...props, ref }) }) });
6088
+ var AssistantModalTrigger = forwardRef34((props, ref) => {
6089
+ return /* @__PURE__ */ jsx53(AssistantModalAnchor, { children: /* @__PURE__ */ jsx53(assistantModal_exports.Trigger, { asChild: true, children: /* @__PURE__ */ jsx53(AssistantModalButton, { ...props, ref }) }) });
6054
6090
  });
6055
6091
  AssistantModalTrigger.displayName = "AssistantModalTrigger";
6056
6092
  var AssistantModalAnchor = withDefaults(assistantModal_exports.Anchor, {
@@ -6061,7 +6097,7 @@ var ModalButtonStyled = withDefaults(TooltipIconButton, {
6061
6097
  variant: "default",
6062
6098
  className: "aui-modal-button"
6063
6099
  });
6064
- var AssistantModalButton = forwardRef32(({ "data-state": state, ...rest }, ref) => {
6100
+ var AssistantModalButton = forwardRef34(({ "data-state": state, ...rest }, ref) => {
6065
6101
  const {
6066
6102
  strings: {
6067
6103
  assistantModal: {
@@ -6075,7 +6111,7 @@ var AssistantModalButton = forwardRef32(({ "data-state": state, ...rest }, ref)
6075
6111
  } = {}
6076
6112
  } = useThreadConfig();
6077
6113
  const tooltip = state === "open" ? openTooltip : closedTooltip;
6078
- return /* @__PURE__ */ jsx50(
6114
+ return /* @__PURE__ */ jsx53(
6079
6115
  ModalButtonStyled,
6080
6116
  {
6081
6117
  side: "left",
@@ -6083,15 +6119,15 @@ var AssistantModalButton = forwardRef32(({ "data-state": state, ...rest }, ref)
6083
6119
  "data-state": state,
6084
6120
  ...rest,
6085
6121
  ref,
6086
- children: rest.children ?? /* @__PURE__ */ jsxs14(Fragment7, { children: [
6087
- /* @__PURE__ */ jsx50(
6122
+ children: rest.children ?? /* @__PURE__ */ jsxs14(Fragment8, { children: [
6123
+ /* @__PURE__ */ jsx53(
6088
6124
  BotIcon,
6089
6125
  {
6090
6126
  "data-state": state,
6091
6127
  className: "aui-modal-button-closed-icon"
6092
6128
  }
6093
6129
  ),
6094
- /* @__PURE__ */ jsx50(
6130
+ /* @__PURE__ */ jsx53(
6095
6131
  ChevronDownIcon,
6096
6132
  {
6097
6133
  "data-state": state,
@@ -6123,6 +6159,7 @@ export {
6123
6159
  assistant_modal_default as AssistantModal,
6124
6160
  assistantModal_exports as AssistantModalPrimitive,
6125
6161
  AssistantRuntimeProvider,
6162
+ attachment_exports as AttachmentPrimitive,
6126
6163
  branch_picker_default as BranchPicker,
6127
6164
  branchPicker_exports as BranchPickerPrimitive,
6128
6165
  composer_default as Composer,