@assistant-ui/react 0.5.18 → 0.5.20

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
@@ -1118,8 +1118,8 @@ var BranchPickerPrimitiveNumber = () => {
1118
1118
  BranchPickerPrimitiveNumber.displayName = "BranchPickerPrimitive.Number";
1119
1119
 
1120
1120
  // src/primitives/branchPicker/BranchPickerRoot.tsx
1121
- import { Primitive as Primitive6 } from "@radix-ui/react-primitive";
1122
- import { forwardRef as forwardRef9 } from "react";
1121
+ import { Primitive as Primitive5 } from "@radix-ui/react-primitive";
1122
+ import { forwardRef as forwardRef10 } from "react";
1123
1123
 
1124
1124
  // src/primitives/message/index.ts
1125
1125
  var message_exports = {};
@@ -1161,9 +1161,9 @@ var useIsHoveringRef = () => {
1161
1161
  );
1162
1162
  return useManagedRef(callbackRef);
1163
1163
  };
1164
- var MessagePrimitiveRoot = forwardRef6(({ onMouseEnter, onMouseLeave, ...rest }, forwardRef28) => {
1164
+ var MessagePrimitiveRoot = forwardRef6(({ onMouseEnter, onMouseLeave, ...rest }, forwardRef29) => {
1165
1165
  const isHoveringRef = useIsHoveringRef();
1166
- const ref = useComposedRefs(forwardRef28, isHoveringRef);
1166
+ const ref = useComposedRefs(forwardRef29, isHoveringRef);
1167
1167
  return /* @__PURE__ */ jsx12(Primitive3.div, { ...rest, ref });
1168
1168
  });
1169
1169
  MessagePrimitiveRoot.displayName = "MessagePrimitive.Root";
@@ -1225,7 +1225,6 @@ var useContentPartContext2 = (partIndex) => {
1225
1225
  const useContentPart = create10(
1226
1226
  () => getContentPartState(useMessage.getState(), void 0, partIndex)
1227
1227
  );
1228
- getContentPartState(useMessage.getState(), useContentPart, partIndex);
1229
1228
  return { useContentPart };
1230
1229
  });
1231
1230
  useEffect6(() => {
@@ -1252,11 +1251,58 @@ var ContentPartProvider = ({
1252
1251
  };
1253
1252
 
1254
1253
  // src/primitives/contentPart/ContentPartText.tsx
1255
- import { Primitive as Primitive4 } from "@radix-ui/react-primitive";
1256
- import { forwardRef as forwardRef7 } from "react";
1254
+ import {
1255
+ forwardRef as forwardRef8
1256
+ } from "react";
1257
+
1258
+ // src/utils/smooth/useSmooth.tsx
1259
+ import { useEffect as useEffect7, useMemo as useMemo3, useRef as useRef3, useState as useState6 } from "react";
1260
+
1261
+ // src/utils/smooth/SmoothContext.tsx
1262
+ import {
1263
+ createContext as createContext5,
1264
+ forwardRef as forwardRef7,
1265
+ useContext as useContext5,
1266
+ useState as useState5
1267
+ } from "react";
1268
+ import { create as create11 } from "zustand";
1269
+ import { jsx as jsx14 } from "react/jsx-runtime";
1270
+ var SmoothContext = createContext5(null);
1271
+ var makeSmoothContext = (initialState) => {
1272
+ const useSmoothStatus2 = create11(() => initialState);
1273
+ return { useSmoothStatus: useSmoothStatus2 };
1274
+ };
1275
+ var SmoothContextProvider = ({ children }) => {
1276
+ const outer = useSmoothContext({ optional: true });
1277
+ const { useContentPart } = useContentPartContext();
1278
+ const [context] = useState5(
1279
+ () => makeSmoothContext(useContentPart.getState().status)
1280
+ );
1281
+ if (outer) return children;
1282
+ return /* @__PURE__ */ jsx14(SmoothContext.Provider, { value: context, children });
1283
+ };
1284
+ var withSmoothContextProvider = (Component) => {
1285
+ const Wrapped = forwardRef7((props, ref) => {
1286
+ return /* @__PURE__ */ jsx14(SmoothContextProvider, { children: /* @__PURE__ */ jsx14(Component, { ...props, ref }) });
1287
+ });
1288
+ Wrapped.displayName = Component.displayName;
1289
+ return Wrapped;
1290
+ };
1291
+ function useSmoothContext(options) {
1292
+ const context = useContext5(SmoothContext);
1293
+ if (!options?.optional && !context)
1294
+ throw new Error(
1295
+ "This component must be used within a SmoothContextProvider."
1296
+ );
1297
+ return context;
1298
+ }
1299
+ var useSmoothStatus = () => {
1300
+ const { useSmoothStatus: useSmoothStatus2 } = useSmoothContext();
1301
+ return useSmoothStatus2();
1302
+ };
1257
1303
 
1258
- // src/utils/hooks/useSmooth.tsx
1259
- import { useEffect as useEffect7, useRef as useRef3, useState as useState5 } from "react";
1304
+ // src/utils/smooth/useSmooth.tsx
1305
+ import { useCallbackRef as useCallbackRef2 } from "@radix-ui/react-use-callback-ref";
1260
1306
  var TextStreamAnimator = class {
1261
1307
  constructor(currentText, setText) {
1262
1308
  this.currentText = currentText;
@@ -1301,13 +1347,24 @@ var TextStreamAnimator = class {
1301
1347
  this.setText(this.currentText);
1302
1348
  };
1303
1349
  };
1304
- var useSmooth = (text, smooth = false) => {
1350
+ var SMOOTH_STATUS = Object.freeze({
1351
+ type: "running"
1352
+ });
1353
+ var useSmooth = (state, smooth = false) => {
1354
+ const { useSmoothStatus: useSmoothStatus2 } = useSmoothContext({ optional: true }) ?? {};
1355
+ const {
1356
+ part: { text }
1357
+ } = state;
1305
1358
  const { useMessage } = useMessageContext();
1306
1359
  const id = useMessage((m) => m.message.id);
1307
1360
  const idRef = useRef3(id);
1308
- const [displayedText, setDisplayedText] = useState5(text);
1309
- const [animatorRef] = useState5(
1310
- new TextStreamAnimator(text, setDisplayedText)
1361
+ const [displayedText, setDisplayedText] = useState6(text);
1362
+ const setText = useCallbackRef2((text2) => {
1363
+ setDisplayedText(text2);
1364
+ useSmoothStatus2?.setState(text2 !== state.part.text ? SMOOTH_STATUS : state.status);
1365
+ });
1366
+ const [animatorRef] = useState6(
1367
+ new TextStreamAnimator(text, setText)
1311
1368
  );
1312
1369
  useEffect7(() => {
1313
1370
  if (!smooth) {
@@ -1316,7 +1373,7 @@ var useSmooth = (text, smooth = false) => {
1316
1373
  }
1317
1374
  if (idRef.current !== id || !text.startsWith(animatorRef.targetText)) {
1318
1375
  idRef.current = id;
1319
- setDisplayedText(text);
1376
+ setText(text);
1320
1377
  animatorRef.currentText = text;
1321
1378
  animatorRef.targetText = text;
1322
1379
  animatorRef.stop();
@@ -1324,36 +1381,41 @@ var useSmooth = (text, smooth = false) => {
1324
1381
  }
1325
1382
  animatorRef.targetText = text;
1326
1383
  animatorRef.start();
1327
- }, [animatorRef, id, smooth, text]);
1384
+ }, [setText, animatorRef, id, smooth, text]);
1328
1385
  useEffect7(() => {
1329
1386
  return () => {
1330
1387
  animatorRef.stop();
1331
1388
  };
1332
1389
  }, [animatorRef]);
1333
- return smooth ? displayedText : text;
1390
+ return useMemo3(
1391
+ () => smooth ? {
1392
+ part: { type: "text", text: displayedText },
1393
+ status: text === displayedText ? state.status : SMOOTH_STATUS
1394
+ } : state,
1395
+ [smooth, displayedText, state, text]
1396
+ );
1334
1397
  };
1335
1398
 
1336
1399
  // src/primitives/contentPart/ContentPartText.tsx
1337
- import { jsx as jsx14 } from "react/jsx-runtime";
1338
- var ContentPartPrimitiveText = forwardRef7(({ smooth = true, ...rest }, forwardedRef) => {
1400
+ import { jsx as jsx15 } from "react/jsx-runtime";
1401
+ var ContentPartPrimitiveText = forwardRef8(({ smooth = true, component: Component = "span", ...rest }, forwardedRef) => {
1339
1402
  const {
1340
- status,
1341
- part: { text }
1342
- } = useContentPartText();
1343
- const smoothText = useSmooth(text, smooth);
1344
- return /* @__PURE__ */ jsx14(Primitive4.span, { "data-status": status.type, ...rest, ref: forwardedRef, children: smoothText });
1403
+ part: { text },
1404
+ status
1405
+ } = useSmooth(useContentPartText(), smooth);
1406
+ return /* @__PURE__ */ jsx15(Component, { "data-status": status.type, ...rest, ref: forwardedRef, children: text });
1345
1407
  });
1346
1408
  ContentPartPrimitiveText.displayName = "ContentPartPrimitive.Text";
1347
1409
 
1348
1410
  // src/primitives/contentPart/ContentPartImage.tsx
1349
- import { Primitive as Primitive5 } from "@radix-ui/react-primitive";
1350
- import { forwardRef as forwardRef8 } from "react";
1351
- import { jsx as jsx15 } from "react/jsx-runtime";
1352
- var ContentPartPrimitiveImage = forwardRef8((props, forwardedRef) => {
1411
+ import { Primitive as Primitive4 } from "@radix-ui/react-primitive";
1412
+ import { forwardRef as forwardRef9 } from "react";
1413
+ import { jsx as jsx16 } from "react/jsx-runtime";
1414
+ var ContentPartPrimitiveImage = forwardRef9((props, forwardedRef) => {
1353
1415
  const {
1354
1416
  part: { image }
1355
1417
  } = useContentPartImage();
1356
- return /* @__PURE__ */ jsx15(Primitive5.img, { src: image, ...props, ref: forwardedRef });
1418
+ return /* @__PURE__ */ jsx16(Primitive4.img, { src: image, ...props, ref: forwardedRef });
1357
1419
  });
1358
1420
  ContentPartPrimitiveImage.displayName = "ContentPartPrimitive.Image";
1359
1421
 
@@ -1375,25 +1437,26 @@ var ContentPartPrimitiveInProgress = ({ children }) => {
1375
1437
  ContentPartPrimitiveInProgress.displayName = "ContentPartPrimitive.InProgress";
1376
1438
 
1377
1439
  // src/primitives/message/MessageContent.tsx
1378
- import { jsx as jsx16, jsxs as jsxs2 } from "react/jsx-runtime";
1440
+ import { jsx as jsx17, jsxs as jsxs2 } from "react/jsx-runtime";
1379
1441
  var defaultComponents = {
1380
1442
  Text: () => /* @__PURE__ */ jsxs2("p", { style: { whiteSpace: "pre-line" }, children: [
1381
- /* @__PURE__ */ jsx16(ContentPartPrimitiveText, {}),
1382
- /* @__PURE__ */ jsx16(ContentPartPrimitiveInProgress, { children: /* @__PURE__ */ jsx16("span", { style: { fontFamily: "revert" }, children: " \u25CF" }) })
1443
+ /* @__PURE__ */ jsx17(ContentPartPrimitiveText, {}),
1444
+ /* @__PURE__ */ jsx17(ContentPartPrimitiveInProgress, { children: /* @__PURE__ */ jsx17("span", { style: { fontFamily: "revert" }, children: " \u25CF" }) })
1383
1445
  ] }),
1384
- Image: () => /* @__PURE__ */ jsx16(ContentPartPrimitiveImage, {}),
1385
- UI: () => /* @__PURE__ */ jsx16(ContentPartPrimitiveDisplay, {}),
1446
+ Image: () => /* @__PURE__ */ jsx17(ContentPartPrimitiveImage, {}),
1447
+ UI: () => /* @__PURE__ */ jsx17(ContentPartPrimitiveDisplay, {}),
1386
1448
  tools: {
1387
1449
  Fallback: (props) => {
1388
1450
  const { useToolUIs } = useAssistantContext();
1389
1451
  const Render = useToolUIs((s) => s.getToolUI(props.part.toolName));
1390
1452
  if (!Render) return null;
1391
- return /* @__PURE__ */ jsx16(Render, { ...props });
1453
+ return /* @__PURE__ */ jsx17(Render, { ...props });
1392
1454
  }
1393
1455
  }
1394
1456
  };
1395
1457
  var MessageContentPartComponent = ({
1396
1458
  components: {
1459
+ Empty = defaultComponents.Text,
1397
1460
  Text: Text2 = defaultComponents.Text,
1398
1461
  Image: Image2 = defaultComponents.Image,
1399
1462
  UI = defaultComponents.UI,
@@ -1410,15 +1473,16 @@ var MessageContentPartComponent = ({
1410
1473
  case "text":
1411
1474
  if (status.type === "requires-action")
1412
1475
  throw new Error("Encountered unexpected requires-action status");
1413
- return /* @__PURE__ */ jsx16(Text2, { part, status });
1476
+ if (part === EMPTY_CONTENT) return /* @__PURE__ */ jsx17(Empty, { part, status });
1477
+ return /* @__PURE__ */ jsx17(Text2, { part, status });
1414
1478
  case "image":
1415
1479
  if (status.type === "requires-action")
1416
1480
  throw new Error("Encountered unexpected requires-action status");
1417
- return /* @__PURE__ */ jsx16(Image2, { part, status });
1481
+ return /* @__PURE__ */ jsx17(Image2, { part, status });
1418
1482
  case "ui":
1419
1483
  if (status.type === "requires-action")
1420
1484
  throw new Error("Encountered unexpected requires-action status");
1421
- return /* @__PURE__ */ jsx16(UI, { part, status });
1485
+ return /* @__PURE__ */ jsx17(UI, { part, status });
1422
1486
  case "tool-call": {
1423
1487
  const Tool = by_name[part.toolName] || Fallback2;
1424
1488
  const addResult = (result) => addToolResult({
@@ -1426,7 +1490,7 @@ var MessageContentPartComponent = ({
1426
1490
  toolCallId: part.toolCallId,
1427
1491
  result
1428
1492
  });
1429
- return /* @__PURE__ */ jsx16(Tool, { part, status, addResult });
1493
+ return /* @__PURE__ */ jsx17(Tool, { part, status, addResult });
1430
1494
  }
1431
1495
  default:
1432
1496
  const unhandledType = type;
@@ -1437,7 +1501,7 @@ var MessageContentPartImpl = ({
1437
1501
  partIndex,
1438
1502
  components
1439
1503
  }) => {
1440
- return /* @__PURE__ */ jsx16(ContentPartProvider, { partIndex, children: /* @__PURE__ */ jsx16(MessageContentPartComponent, { components }) });
1504
+ return /* @__PURE__ */ jsx17(ContentPartProvider, { partIndex, children: /* @__PURE__ */ jsx17(MessageContentPartComponent, { components }) });
1441
1505
  };
1442
1506
  var MessageContentPart = memo2(
1443
1507
  MessageContentPartImpl,
@@ -1450,7 +1514,7 @@ var MessagePrimitiveContent = ({
1450
1514
  const contentLength = useMessage((s) => s.message.content.length) || 1;
1451
1515
  return new Array(contentLength).fill(null).map((_, idx) => {
1452
1516
  const partIndex = idx;
1453
- return /* @__PURE__ */ jsx16(
1517
+ return /* @__PURE__ */ jsx17(
1454
1518
  MessageContentPart,
1455
1519
  {
1456
1520
  partIndex,
@@ -1469,9 +1533,9 @@ var MessagePrimitiveInProgress = () => {
1469
1533
  MessagePrimitiveInProgress.displayName = "MessagePrimitive.InProgress";
1470
1534
 
1471
1535
  // src/primitives/branchPicker/BranchPickerRoot.tsx
1472
- import { jsx as jsx17 } from "react/jsx-runtime";
1473
- var BranchPickerPrimitiveRoot = forwardRef9(({ hideWhenSingleBranch, ...rest }, ref) => {
1474
- return /* @__PURE__ */ jsx17(MessagePrimitiveIf, { hasBranches: hideWhenSingleBranch ? true : void 0, children: /* @__PURE__ */ jsx17(Primitive6.div, { ...rest, ref }) });
1536
+ import { jsx as jsx18 } from "react/jsx-runtime";
1537
+ var BranchPickerPrimitiveRoot = forwardRef10(({ hideWhenSingleBranch, ...rest }, ref) => {
1538
+ return /* @__PURE__ */ jsx18(MessagePrimitiveIf, { hasBranches: hideWhenSingleBranch ? true : void 0, children: /* @__PURE__ */ jsx18(Primitive5.div, { ...rest, ref }) });
1475
1539
  });
1476
1540
  BranchPickerPrimitiveRoot.displayName = "BranchPickerPrimitive.Root";
1477
1541
 
@@ -1487,20 +1551,20 @@ __export(composer_exports, {
1487
1551
 
1488
1552
  // src/primitives/composer/ComposerRoot.tsx
1489
1553
  import { composeEventHandlers as composeEventHandlers4 } from "@radix-ui/primitive";
1490
- import { Primitive as Primitive7 } from "@radix-ui/react-primitive";
1554
+ import { Primitive as Primitive6 } from "@radix-ui/react-primitive";
1491
1555
  import {
1492
- forwardRef as forwardRef10
1556
+ forwardRef as forwardRef11
1493
1557
  } from "react";
1494
- import { jsx as jsx18 } from "react/jsx-runtime";
1495
- var ComposerPrimitiveRoot = forwardRef10(({ onSubmit, ...rest }, forwardedRef) => {
1558
+ import { jsx as jsx19 } from "react/jsx-runtime";
1559
+ var ComposerPrimitiveRoot = forwardRef11(({ onSubmit, ...rest }, forwardedRef) => {
1496
1560
  const send = useComposerSend();
1497
1561
  const handleSubmit = (e) => {
1498
1562
  e.preventDefault();
1499
1563
  if (!send) return;
1500
1564
  send();
1501
1565
  };
1502
- return /* @__PURE__ */ jsx18(
1503
- Primitive7.form,
1566
+ return /* @__PURE__ */ jsx19(
1567
+ Primitive6.form,
1504
1568
  {
1505
1569
  ...rest,
1506
1570
  ref: forwardedRef,
@@ -1515,15 +1579,15 @@ import { composeEventHandlers as composeEventHandlers5 } from "@radix-ui/primiti
1515
1579
  import { useComposedRefs as useComposedRefs2 } from "@radix-ui/react-compose-refs";
1516
1580
  import { Slot } from "@radix-ui/react-slot";
1517
1581
  import {
1518
- forwardRef as forwardRef11,
1582
+ forwardRef as forwardRef12,
1519
1583
  useCallback as useCallback15,
1520
1584
  useEffect as useEffect8,
1521
1585
  useRef as useRef4
1522
1586
  } from "react";
1523
1587
  import TextareaAutosize from "react-textarea-autosize";
1524
1588
  import { useEscapeKeydown } from "@radix-ui/react-use-escape-keydown";
1525
- import { jsx as jsx19 } from "react/jsx-runtime";
1526
- var ComposerPrimitiveInput = forwardRef11(
1589
+ import { jsx as jsx20 } from "react/jsx-runtime";
1590
+ var ComposerPrimitiveInput = forwardRef12(
1527
1591
  ({
1528
1592
  autoFocus = false,
1529
1593
  asChild,
@@ -1575,7 +1639,7 @@ var ComposerPrimitiveInput = forwardRef11(
1575
1639
  focus();
1576
1640
  }
1577
1641
  });
1578
- return /* @__PURE__ */ jsx19(
1642
+ return /* @__PURE__ */ jsx20(
1579
1643
  Component,
1580
1644
  {
1581
1645
  name: "input",
@@ -1596,14 +1660,14 @@ var ComposerPrimitiveInput = forwardRef11(
1596
1660
  ComposerPrimitiveInput.displayName = "ComposerPrimitive.Input";
1597
1661
 
1598
1662
  // src/primitives/composer/ComposerSend.tsx
1599
- import { forwardRef as forwardRef12 } from "react";
1600
- import { Primitive as Primitive8 } from "@radix-ui/react-primitive";
1601
- import { jsx as jsx20 } from "react/jsx-runtime";
1602
- var ComposerPrimitiveSend = forwardRef12(({ disabled, ...rest }, ref) => {
1663
+ import { forwardRef as forwardRef13 } from "react";
1664
+ import { Primitive as Primitive7 } from "@radix-ui/react-primitive";
1665
+ import { jsx as jsx21 } from "react/jsx-runtime";
1666
+ var ComposerPrimitiveSend = forwardRef13(({ disabled, ...rest }, ref) => {
1603
1667
  const { useComposer } = useComposerContext();
1604
1668
  const hasValue = useComposer((c) => c.isEditing && c.value.length > 0);
1605
- return /* @__PURE__ */ jsx20(
1606
- Primitive8.button,
1669
+ return /* @__PURE__ */ jsx21(
1670
+ Primitive7.button,
1607
1671
  {
1608
1672
  type: "submit",
1609
1673
  ...rest,
@@ -1652,11 +1716,11 @@ __export(thread_exports, {
1652
1716
  });
1653
1717
 
1654
1718
  // src/primitives/thread/ThreadRoot.tsx
1655
- import { Primitive as Primitive9 } from "@radix-ui/react-primitive";
1656
- import { forwardRef as forwardRef13 } from "react";
1657
- import { jsx as jsx21 } from "react/jsx-runtime";
1658
- var ThreadPrimitiveRoot = forwardRef13((props, ref) => {
1659
- return /* @__PURE__ */ jsx21(Primitive9.div, { ...props, ref });
1719
+ import { Primitive as Primitive8 } from "@radix-ui/react-primitive";
1720
+ import { forwardRef as forwardRef14 } from "react";
1721
+ import { jsx as jsx22 } from "react/jsx-runtime";
1722
+ var ThreadPrimitiveRoot = forwardRef14((props, ref) => {
1723
+ return /* @__PURE__ */ jsx22(Primitive8.div, { ...props, ref });
1660
1724
  });
1661
1725
  ThreadPrimitiveRoot.displayName = "ThreadPrimitive.Root";
1662
1726
 
@@ -1681,18 +1745,18 @@ ThreadPrimitiveIf.displayName = "ThreadPrimitive.If";
1681
1745
 
1682
1746
  // src/primitives/thread/ThreadViewport.tsx
1683
1747
  import { useComposedRefs as useComposedRefs4 } from "@radix-ui/react-compose-refs";
1684
- import { Primitive as Primitive10 } from "@radix-ui/react-primitive";
1685
- import { forwardRef as forwardRef14 } from "react";
1748
+ import { Primitive as Primitive9 } from "@radix-ui/react-primitive";
1749
+ import { forwardRef as forwardRef15 } from "react";
1686
1750
 
1687
1751
  // src/primitive-hooks/thread/useThreadViewportAutoScroll.tsx
1688
1752
  import { useComposedRefs as useComposedRefs3 } from "@radix-ui/react-compose-refs";
1689
1753
  import { useRef as useRef5 } from "react";
1690
1754
 
1691
1755
  // src/utils/hooks/useOnResizeContent.tsx
1692
- import { useCallbackRef as useCallbackRef2 } from "@radix-ui/react-use-callback-ref";
1756
+ import { useCallbackRef as useCallbackRef3 } from "@radix-ui/react-use-callback-ref";
1693
1757
  import { useCallback as useCallback16 } from "react";
1694
1758
  var useOnResizeContent = (callback) => {
1695
- const callbackRef = useCallbackRef2(callback);
1759
+ const callbackRef = useCallbackRef3(callback);
1696
1760
  const refCallback = useCallback16(
1697
1761
  (el) => {
1698
1762
  const resizeObserver = new ResizeObserver(() => {
@@ -1729,10 +1793,10 @@ var useOnResizeContent = (callback) => {
1729
1793
  };
1730
1794
 
1731
1795
  // src/utils/hooks/useOnScrollToBottom.tsx
1732
- import { useCallbackRef as useCallbackRef3 } from "@radix-ui/react-use-callback-ref";
1796
+ import { useCallbackRef as useCallbackRef4 } from "@radix-ui/react-use-callback-ref";
1733
1797
  import { useEffect as useEffect9 } from "react";
1734
1798
  var useOnScrollToBottom = (callback) => {
1735
- const callbackRef = useCallbackRef3(callback);
1799
+ const callbackRef = useCallbackRef4(callback);
1736
1800
  const { useViewport } = useThreadContext();
1737
1801
  useEffect9(() => {
1738
1802
  return useViewport.getState().onScrollToBottom(() => {
@@ -1793,13 +1857,13 @@ var useThreadViewportAutoScroll = ({
1793
1857
  };
1794
1858
 
1795
1859
  // src/primitives/thread/ThreadViewport.tsx
1796
- import { jsx as jsx22 } from "react/jsx-runtime";
1797
- var ThreadPrimitiveViewport = forwardRef14(({ autoScroll, onScroll, children, ...rest }, forwardedRef) => {
1860
+ import { jsx as jsx23 } from "react/jsx-runtime";
1861
+ var ThreadPrimitiveViewport = forwardRef15(({ autoScroll, onScroll, children, ...rest }, forwardedRef) => {
1798
1862
  const autoScrollRef = useThreadViewportAutoScroll({
1799
1863
  autoScroll
1800
1864
  });
1801
1865
  const ref = useComposedRefs4(forwardedRef, autoScrollRef);
1802
- return /* @__PURE__ */ jsx22(Primitive10.div, { ...rest, ref, children });
1866
+ return /* @__PURE__ */ jsx23(Primitive9.div, { ...rest, ref, children });
1803
1867
  });
1804
1868
  ThreadPrimitiveViewport.displayName = "ThreadPrimitive.Viewport";
1805
1869
 
@@ -1807,15 +1871,15 @@ ThreadPrimitiveViewport.displayName = "ThreadPrimitive.Viewport";
1807
1871
  import { memo as memo3 } from "react";
1808
1872
 
1809
1873
  // src/context/providers/MessageProvider.tsx
1810
- import { useEffect as useEffect10, useState as useState6 } from "react";
1811
- import { create as create13 } from "zustand";
1874
+ import { useEffect as useEffect10, useState as useState7 } from "react";
1875
+ import { create as create14 } from "zustand";
1812
1876
 
1813
1877
  // src/context/stores/EditComposer.ts
1814
- import { create as create11 } from "zustand";
1878
+ import { create as create12 } from "zustand";
1815
1879
  var makeEditComposerStore = ({
1816
1880
  onEdit,
1817
1881
  onSend
1818
- }) => create11()((set, get, store) => ({
1882
+ }) => create12()((set, get, store) => ({
1819
1883
  ...makeBaseComposer(set, get, store),
1820
1884
  canCancel: false,
1821
1885
  isEditing: false,
@@ -1834,8 +1898,8 @@ var makeEditComposerStore = ({
1834
1898
  }));
1835
1899
 
1836
1900
  // src/context/stores/MessageUtils.ts
1837
- import { create as create12 } from "zustand";
1838
- var makeMessageUtilsStore = () => create12((set) => ({
1901
+ import { create as create13 } from "zustand";
1902
+ var makeMessageUtilsStore = () => create13((set) => ({
1839
1903
  isCopied: false,
1840
1904
  setIsCopied: (value) => {
1841
1905
  set({ isCopied: value });
@@ -1847,7 +1911,7 @@ var makeMessageUtilsStore = () => create12((set) => ({
1847
1911
  }));
1848
1912
 
1849
1913
  // src/context/providers/MessageProvider.tsx
1850
- import { jsx as jsx23 } from "react/jsx-runtime";
1914
+ import { jsx as jsx24 } from "react/jsx-runtime";
1851
1915
  var getIsLast = (messages, message) => {
1852
1916
  return messages[messages.length - 1]?.id === message.id;
1853
1917
  };
@@ -1869,8 +1933,8 @@ var getMessageState = (messages, getBranches, useMessage, messageIndex) => {
1869
1933
  };
1870
1934
  var useMessageContext2 = (messageIndex) => {
1871
1935
  const { useThreadMessages, useThreadActions } = useThreadContext();
1872
- const [context] = useState6(() => {
1873
- const useMessage = create13(
1936
+ const [context] = useState7(() => {
1937
+ const useMessage = create14(
1874
1938
  () => getMessageState(
1875
1939
  useThreadMessages.getState(),
1876
1940
  useThreadActions.getState().getBranches,
@@ -1931,11 +1995,11 @@ var MessageProvider = ({
1931
1995
  children
1932
1996
  }) => {
1933
1997
  const context = useMessageContext2(messageIndex);
1934
- return /* @__PURE__ */ jsx23(MessageContext.Provider, { value: context, children });
1998
+ return /* @__PURE__ */ jsx24(MessageContext.Provider, { value: context, children });
1935
1999
  };
1936
2000
 
1937
2001
  // src/primitives/thread/ThreadMessages.tsx
1938
- import { jsx as jsx24, jsxs as jsxs3 } from "react/jsx-runtime";
2002
+ import { jsx as jsx25, jsxs as jsxs3 } from "react/jsx-runtime";
1939
2003
  var DEFAULT_SYSTEM_MESSAGE = () => null;
1940
2004
  var getComponents = (components) => {
1941
2005
  return {
@@ -1952,11 +2016,11 @@ var ThreadMessageImpl = ({
1952
2016
  const { UserMessage: UserMessage2, EditComposer: EditComposer2, AssistantMessage: AssistantMessage2, SystemMessage: SystemMessage2 } = getComponents(components);
1953
2017
  return /* @__PURE__ */ jsxs3(MessageProvider, { messageIndex, children: [
1954
2018
  /* @__PURE__ */ jsxs3(MessagePrimitiveIf, { user: true, children: [
1955
- /* @__PURE__ */ jsx24(ComposerPrimitiveIf, { editing: false, children: /* @__PURE__ */ jsx24(UserMessage2, {}) }),
1956
- /* @__PURE__ */ jsx24(ComposerPrimitiveIf, { editing: true, children: /* @__PURE__ */ jsx24(EditComposer2, {}) })
2019
+ /* @__PURE__ */ jsx25(ComposerPrimitiveIf, { editing: false, children: /* @__PURE__ */ jsx25(UserMessage2, {}) }),
2020
+ /* @__PURE__ */ jsx25(ComposerPrimitiveIf, { editing: true, children: /* @__PURE__ */ jsx25(EditComposer2, {}) })
1957
2021
  ] }),
1958
- /* @__PURE__ */ jsx24(MessagePrimitiveIf, { assistant: true, children: /* @__PURE__ */ jsx24(AssistantMessage2, {}) }),
1959
- /* @__PURE__ */ jsx24(MessagePrimitiveIf, { system: true, children: /* @__PURE__ */ jsx24(SystemMessage2, {}) })
2022
+ /* @__PURE__ */ jsx25(MessagePrimitiveIf, { assistant: true, children: /* @__PURE__ */ jsx25(AssistantMessage2, {}) }),
2023
+ /* @__PURE__ */ jsx25(MessagePrimitiveIf, { system: true, children: /* @__PURE__ */ jsx25(SystemMessage2, {}) })
1960
2024
  ] });
1961
2025
  };
1962
2026
  var ThreadMessage = memo3(
@@ -1971,7 +2035,7 @@ var ThreadPrimitiveMessagesImpl = ({
1971
2035
  if (messagesLength === 0) return null;
1972
2036
  return new Array(messagesLength).fill(null).map((_, idx) => {
1973
2037
  const messageIndex = idx;
1974
- return /* @__PURE__ */ jsx24(
2038
+ return /* @__PURE__ */ jsx25(
1975
2039
  ThreadMessage,
1976
2040
  {
1977
2041
  messageIndex,
@@ -2001,7 +2065,7 @@ var ThreadPrimitiveSuggestion = createActionButton(
2001
2065
  );
2002
2066
 
2003
2067
  // src/runtimes/local/useLocalRuntime.tsx
2004
- import { useInsertionEffect as useInsertionEffect3, useState as useState8 } from "react";
2068
+ import { useInsertionEffect as useInsertionEffect3, useState as useState9 } from "react";
2005
2069
 
2006
2070
  // src/runtimes/core/BaseAssistantRuntime.tsx
2007
2071
  var BaseAssistantRuntime = class {
@@ -2034,7 +2098,9 @@ __export(internal_exports, {
2034
2098
  ProxyConfigProvider: () => ProxyConfigProvider,
2035
2099
  TooltipIconButton: () => TooltipIconButton,
2036
2100
  generateId: () => generateId,
2037
- useSmooth: () => useSmooth
2101
+ useSmooth: () => useSmooth,
2102
+ useSmoothStatus: () => useSmoothStatus,
2103
+ withSmoothContextProvider: () => withSmoothContextProvider
2038
2104
  });
2039
2105
 
2040
2106
  // src/utils/idUtils.tsx
@@ -2258,17 +2324,17 @@ var MessageRepository = class {
2258
2324
  };
2259
2325
 
2260
2326
  // src/ui/base/tooltip-icon-button.tsx
2261
- import { forwardRef as forwardRef17 } from "react";
2327
+ import { forwardRef as forwardRef18 } from "react";
2262
2328
 
2263
2329
  // src/ui/base/tooltip.tsx
2264
2330
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
2265
2331
 
2266
2332
  // src/ui/utils/withDefaults.tsx
2267
2333
  import {
2268
- forwardRef as forwardRef15
2334
+ forwardRef as forwardRef16
2269
2335
  } from "react";
2270
2336
  import classNames from "classnames";
2271
- import { jsx as jsx25 } from "react/jsx-runtime";
2337
+ import { jsx as jsx26 } from "react/jsx-runtime";
2272
2338
  var withDefaultProps = ({
2273
2339
  className,
2274
2340
  ...defaultProps
@@ -2281,10 +2347,10 @@ var withDefaultProps = ({
2281
2347
  };
2282
2348
  var withDefaults = (Component, defaultProps) => {
2283
2349
  const getProps = withDefaultProps(defaultProps);
2284
- const WithDefaults = forwardRef15(
2350
+ const WithDefaults = forwardRef16(
2285
2351
  (props, ref) => {
2286
2352
  const ComponentAsAny = Component;
2287
- return /* @__PURE__ */ jsx25(ComponentAsAny, { ...getProps(props), ref });
2353
+ return /* @__PURE__ */ jsx26(ComponentAsAny, { ...getProps(props), ref });
2288
2354
  }
2289
2355
  );
2290
2356
  WithDefaults.displayName = "withDefaults(" + (typeof Component === "string" ? Component : Component.displayName) + ")";
@@ -2292,9 +2358,9 @@ var withDefaults = (Component, defaultProps) => {
2292
2358
  };
2293
2359
 
2294
2360
  // src/ui/base/tooltip.tsx
2295
- import { jsx as jsx26 } from "react/jsx-runtime";
2361
+ import { jsx as jsx27 } from "react/jsx-runtime";
2296
2362
  var Tooltip = (props) => {
2297
- return /* @__PURE__ */ jsx26(TooltipPrimitive.Provider, { children: /* @__PURE__ */ jsx26(TooltipPrimitive.Root, { ...props }) });
2363
+ return /* @__PURE__ */ jsx27(TooltipPrimitive.Provider, { children: /* @__PURE__ */ jsx27(TooltipPrimitive.Root, { ...props }) });
2298
2364
  };
2299
2365
  Tooltip.displayName = "Tooltip";
2300
2366
  var TooltipTrigger = TooltipPrimitive.Trigger;
@@ -2306,9 +2372,9 @@ TooltipContent.displayName = "TooltipContent";
2306
2372
 
2307
2373
  // src/ui/base/button.tsx
2308
2374
  import { cva } from "class-variance-authority";
2309
- import { Primitive as Primitive11 } from "@radix-ui/react-primitive";
2310
- import { forwardRef as forwardRef16 } from "react";
2311
- import { jsx as jsx27 } from "react/jsx-runtime";
2375
+ import { Primitive as Primitive10 } from "@radix-ui/react-primitive";
2376
+ import { forwardRef as forwardRef17 } from "react";
2377
+ import { jsx as jsx28 } from "react/jsx-runtime";
2312
2378
  var buttonVariants = cva("aui-button", {
2313
2379
  variants: {
2314
2380
  variant: {
@@ -2326,10 +2392,10 @@ var buttonVariants = cva("aui-button", {
2326
2392
  size: "default"
2327
2393
  }
2328
2394
  });
2329
- var Button = forwardRef16(
2395
+ var Button = forwardRef17(
2330
2396
  ({ className, variant, size, ...props }, ref) => {
2331
- return /* @__PURE__ */ jsx27(
2332
- Primitive11.button,
2397
+ return /* @__PURE__ */ jsx28(
2398
+ Primitive10.button,
2333
2399
  {
2334
2400
  className: buttonVariants({ variant, size, className }),
2335
2401
  ...props,
@@ -2341,14 +2407,14 @@ var Button = forwardRef16(
2341
2407
  Button.displayName = "Button";
2342
2408
 
2343
2409
  // src/ui/base/tooltip-icon-button.tsx
2344
- import { jsx as jsx28, jsxs as jsxs4 } from "react/jsx-runtime";
2345
- var TooltipIconButton = forwardRef17(({ children, tooltip, side = "bottom", ...rest }, ref) => {
2410
+ import { jsx as jsx29, jsxs as jsxs4 } from "react/jsx-runtime";
2411
+ var TooltipIconButton = forwardRef18(({ children, tooltip, side = "bottom", ...rest }, ref) => {
2346
2412
  return /* @__PURE__ */ jsxs4(Tooltip, { children: [
2347
- /* @__PURE__ */ jsx28(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxs4(Button, { variant: "ghost", size: "icon", ...rest, ref, children: [
2413
+ /* @__PURE__ */ jsx29(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxs4(Button, { variant: "ghost", size: "icon", ...rest, ref, children: [
2348
2414
  children,
2349
- /* @__PURE__ */ jsx28("span", { className: "aui-sr-only", children: tooltip })
2415
+ /* @__PURE__ */ jsx29("span", { className: "aui-sr-only", children: tooltip })
2350
2416
  ] }) }),
2351
- /* @__PURE__ */ jsx28(TooltipContent, { side, children: tooltip })
2417
+ /* @__PURE__ */ jsx29(TooltipContent, { side, children: tooltip })
2352
2418
  ] });
2353
2419
  });
2354
2420
  TooltipIconButton.displayName = "TooltipIconButton";
@@ -2638,7 +2704,7 @@ var toLanguageModelTools = (tools) => {
2638
2704
  };
2639
2705
 
2640
2706
  // src/runtimes/edge/useEdgeRuntime.ts
2641
- import { useState as useState7 } from "react";
2707
+ import { useState as useState8 } from "react";
2642
2708
 
2643
2709
  // src/runtimes/edge/streams/assistantDecoderStream.ts
2644
2710
  function assistantDecoderStream() {
@@ -3378,7 +3444,7 @@ var useEdgeRuntime = ({
3378
3444
  initialMessages,
3379
3445
  ...options
3380
3446
  }) => {
3381
- const [adapter] = useState7(() => new EdgeChatAdapter(options));
3447
+ const [adapter] = useState8(() => new EdgeChatAdapter(options));
3382
3448
  return useLocalRuntime(adapter, { initialMessages });
3383
3449
  };
3384
3450
 
@@ -3592,7 +3658,7 @@ var LocalRuntime = class extends BaseAssistantRuntime {
3592
3658
 
3593
3659
  // src/runtimes/local/useLocalRuntime.tsx
3594
3660
  var useLocalRuntime = (adapter, options) => {
3595
- const [runtime] = useState8(() => new LocalRuntime(adapter, options));
3661
+ const [runtime] = useState9(() => new LocalRuntime(adapter, options));
3596
3662
  useInsertionEffect3(() => {
3597
3663
  runtime.adapter = adapter;
3598
3664
  });
@@ -3600,7 +3666,7 @@ var useLocalRuntime = (adapter, options) => {
3600
3666
  };
3601
3667
 
3602
3668
  // src/runtimes/external-store/ExternalStoreThreadRuntime.tsx
3603
- import { create as create14 } from "zustand";
3669
+ import { create as create15 } from "zustand";
3604
3670
 
3605
3671
  // src/runtimes/external-store/getExternalStoreMessage.tsx
3606
3672
  var symbolInnerMessage = Symbol("innerMessage");
@@ -3609,7 +3675,7 @@ var getExternalStoreMessage = (message) => {
3609
3675
  };
3610
3676
 
3611
3677
  // src/runtimes/external-store/useExternalStoreSync.tsx
3612
- import { useEffect as useEffect11, useInsertionEffect as useInsertionEffect4, useMemo as useMemo3, useRef as useRef6 } from "react";
3678
+ import { useEffect as useEffect11, useInsertionEffect as useInsertionEffect4, useMemo as useMemo4, useRef as useRef6 } from "react";
3613
3679
 
3614
3680
  // src/runtimes/external-store/ThreadMessageConverter.ts
3615
3681
  var ThreadMessageConverter = class {
@@ -3707,7 +3773,7 @@ var useExternalStoreSync = (adapter, updateData) => {
3707
3773
  useInsertionEffect4(() => {
3708
3774
  adapterRef.current = adapter;
3709
3775
  });
3710
- const [converter, convertCallback] = useMemo3(() => {
3776
+ const [converter, convertCallback] = useMemo4(() => {
3711
3777
  const converter2 = adapter.convertMessage ?? ((m) => m);
3712
3778
  const convertCallback2 = (cache, m, idx) => {
3713
3779
  const autoStatus = getAutoStatus(
@@ -3754,7 +3820,7 @@ var ExternalStoreThreadRuntime = class {
3754
3820
  store.isRunning ?? false,
3755
3821
  store.messages
3756
3822
  );
3757
- this.useStore = create14(() => ({
3823
+ this.useStore = create15(() => ({
3758
3824
  store
3759
3825
  }));
3760
3826
  }
@@ -3895,9 +3961,9 @@ var ExternalStoreRuntime = class extends BaseAssistantRuntime {
3895
3961
  };
3896
3962
 
3897
3963
  // src/runtimes/external-store/useExternalStoreRuntime.tsx
3898
- import { useEffect as useEffect12, useInsertionEffect as useInsertionEffect5, useState as useState9 } from "react";
3964
+ import { useEffect as useEffect12, useInsertionEffect as useInsertionEffect5, useState as useState10 } from "react";
3899
3965
  var useExternalStoreRuntime = (store) => {
3900
- const [runtime] = useState9(() => new ExternalStoreRuntime(store));
3966
+ const [runtime] = useState10(() => new ExternalStoreRuntime(store));
3901
3967
  useInsertionEffect5(() => {
3902
3968
  runtime.store = store;
3903
3969
  });
@@ -3909,34 +3975,34 @@ var useExternalStoreRuntime = (store) => {
3909
3975
 
3910
3976
  // src/ui/thread-config.tsx
3911
3977
  import {
3912
- createContext as createContext5,
3913
- useContext as useContext5
3978
+ createContext as createContext6,
3979
+ useContext as useContext6
3914
3980
  } from "react";
3915
- import { Fragment as Fragment3, jsx as jsx29 } from "react/jsx-runtime";
3916
- var ThreadConfigContext = createContext5({});
3981
+ import { Fragment as Fragment3, jsx as jsx30 } from "react/jsx-runtime";
3982
+ var ThreadConfigContext = createContext6({});
3917
3983
  var useThreadConfig = () => {
3918
- return useContext5(ThreadConfigContext);
3984
+ return useContext6(ThreadConfigContext);
3919
3985
  };
3920
3986
  var ThreadConfigProvider = ({
3921
3987
  children,
3922
3988
  config
3923
3989
  }) => {
3924
3990
  const assistant = useAssistantContext({ optional: true });
3925
- const configProvider = config && Object.keys(config ?? {}).length > 0 ? /* @__PURE__ */ jsx29(ThreadConfigContext.Provider, { value: config, children }) : /* @__PURE__ */ jsx29(Fragment3, { children });
3991
+ const configProvider = config && Object.keys(config ?? {}).length > 0 ? /* @__PURE__ */ jsx30(ThreadConfigContext.Provider, { value: config, children }) : /* @__PURE__ */ jsx30(Fragment3, { children });
3926
3992
  if (!config?.runtime) return configProvider;
3927
3993
  if (assistant) {
3928
3994
  throw new Error(
3929
3995
  "You provided a runtime to <Thread> while simulataneously using <AssistantRuntimeProvider>. This is not allowed."
3930
3996
  );
3931
3997
  }
3932
- return /* @__PURE__ */ jsx29(AssistantRuntimeProvider, { runtime: config.runtime, children: configProvider });
3998
+ return /* @__PURE__ */ jsx30(AssistantRuntimeProvider, { runtime: config.runtime, children: configProvider });
3933
3999
  };
3934
4000
  ThreadConfigProvider.displayName = "ThreadConfigProvider";
3935
4001
 
3936
4002
  // src/ui/assistant-action-bar.tsx
3937
- import { forwardRef as forwardRef18 } from "react";
4003
+ import { forwardRef as forwardRef19 } from "react";
3938
4004
  import { CheckIcon, CopyIcon, RefreshCwIcon } from "lucide-react";
3939
- import { Fragment as Fragment4, jsx as jsx30, jsxs as jsxs5 } from "react/jsx-runtime";
4005
+ import { Fragment as Fragment4, jsx as jsx31, jsxs as jsxs5 } from "react/jsx-runtime";
3940
4006
  var useAllowCopy = () => {
3941
4007
  const { assistantMessage: { allowCopy = true } = {} } = useThreadConfig();
3942
4008
  const { useThreadActions } = useThreadContext();
@@ -3960,8 +4026,8 @@ var AssistantActionBar = () => {
3960
4026
  autohide: "not-last",
3961
4027
  autohideFloat: "single-branch",
3962
4028
  children: [
3963
- /* @__PURE__ */ jsx30(AssistantActionBarCopy, {}),
3964
- /* @__PURE__ */ jsx30(AssistantActionBarReload, {})
4029
+ /* @__PURE__ */ jsx31(AssistantActionBarCopy, {}),
4030
+ /* @__PURE__ */ jsx31(AssistantActionBarReload, {})
3965
4031
  ]
3966
4032
  }
3967
4033
  );
@@ -3971,7 +4037,7 @@ var AssistantActionBarRoot = withDefaults(actionBar_exports.Root, {
3971
4037
  className: "aui-assistant-action-bar-root"
3972
4038
  });
3973
4039
  AssistantActionBarRoot.displayName = "AssistantActionBarRoot";
3974
- var AssistantActionBarCopy = forwardRef18((props, ref) => {
4040
+ var AssistantActionBarCopy = forwardRef19((props, ref) => {
3975
4041
  const {
3976
4042
  strings: {
3977
4043
  assistantMessage: { reload: { tooltip = "Copy" } = {} } = {}
@@ -3979,13 +4045,13 @@ var AssistantActionBarCopy = forwardRef18((props, ref) => {
3979
4045
  } = useThreadConfig();
3980
4046
  const allowCopy = useAllowCopy();
3981
4047
  if (!allowCopy) return null;
3982
- return /* @__PURE__ */ jsx30(actionBar_exports.Copy, { asChild: true, children: /* @__PURE__ */ jsx30(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsxs5(Fragment4, { children: [
3983
- /* @__PURE__ */ jsx30(message_exports.If, { copied: true, children: /* @__PURE__ */ jsx30(CheckIcon, {}) }),
3984
- /* @__PURE__ */ jsx30(message_exports.If, { copied: false, children: /* @__PURE__ */ jsx30(CopyIcon, {}) })
4048
+ return /* @__PURE__ */ jsx31(actionBar_exports.Copy, { asChild: true, children: /* @__PURE__ */ jsx31(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsxs5(Fragment4, { children: [
4049
+ /* @__PURE__ */ jsx31(message_exports.If, { copied: true, children: /* @__PURE__ */ jsx31(CheckIcon, {}) }),
4050
+ /* @__PURE__ */ jsx31(message_exports.If, { copied: false, children: /* @__PURE__ */ jsx31(CopyIcon, {}) })
3985
4051
  ] }) }) });
3986
4052
  });
3987
4053
  AssistantActionBarCopy.displayName = "AssistantActionBarCopy";
3988
- var AssistantActionBarReload = forwardRef18((props, ref) => {
4054
+ var AssistantActionBarReload = forwardRef19((props, ref) => {
3989
4055
  const {
3990
4056
  strings: {
3991
4057
  assistantMessage: { reload: { tooltip = "Refresh" } = {} } = {}
@@ -3993,7 +4059,7 @@ var AssistantActionBarReload = forwardRef18((props, ref) => {
3993
4059
  } = useThreadConfig();
3994
4060
  const allowReload = useAllowReload();
3995
4061
  if (!allowReload) return null;
3996
- return /* @__PURE__ */ jsx30(actionBar_exports.Reload, { asChild: true, children: /* @__PURE__ */ jsx30(TooltipIconButton, { tooltip, ...props, ref, children: /* @__PURE__ */ jsx30(RefreshCwIcon, {}) }) });
4062
+ return /* @__PURE__ */ jsx31(actionBar_exports.Reload, { asChild: true, children: /* @__PURE__ */ jsx31(TooltipIconButton, { tooltip, ...props, ref, children: /* @__PURE__ */ jsx31(RefreshCwIcon, {}) }) });
3997
4063
  });
3998
4064
  AssistantActionBarReload.displayName = "AssistantActionBarReload";
3999
4065
  var exports = {
@@ -4007,12 +4073,12 @@ var assistant_action_bar_default = Object.assign(
4007
4073
  );
4008
4074
 
4009
4075
  // src/ui/assistant-message.tsx
4010
- import { forwardRef as forwardRef20 } from "react";
4076
+ import { forwardRef as forwardRef21 } from "react";
4011
4077
 
4012
4078
  // src/ui/branch-picker.tsx
4013
- import { forwardRef as forwardRef19 } from "react";
4079
+ import { forwardRef as forwardRef20 } from "react";
4014
4080
  import { ChevronLeftIcon, ChevronRightIcon } from "lucide-react";
4015
- import { jsx as jsx31, jsxs as jsxs6 } from "react/jsx-runtime";
4081
+ import { jsx as jsx32, jsxs as jsxs6 } from "react/jsx-runtime";
4016
4082
  var useAllowBranchPicker = () => {
4017
4083
  const { branchPicker: { allowBranchPicker = true } = {} } = useThreadConfig();
4018
4084
  const { useThreadActions } = useThreadContext();
@@ -4023,9 +4089,9 @@ var BranchPicker = () => {
4023
4089
  const allowBranchPicker = useAllowBranchPicker();
4024
4090
  if (!allowBranchPicker) return null;
4025
4091
  return /* @__PURE__ */ jsxs6(BranchPickerRoot, { hideWhenSingleBranch: true, children: [
4026
- /* @__PURE__ */ jsx31(BranchPickerPrevious2, {}),
4027
- /* @__PURE__ */ jsx31(BranchPickerState, {}),
4028
- /* @__PURE__ */ jsx31(BranchPickerNext, {})
4092
+ /* @__PURE__ */ jsx32(BranchPickerPrevious2, {}),
4093
+ /* @__PURE__ */ jsx32(BranchPickerState, {}),
4094
+ /* @__PURE__ */ jsx32(BranchPickerNext, {})
4029
4095
  ] });
4030
4096
  };
4031
4097
  BranchPicker.displayName = "BranchPicker";
@@ -4033,31 +4099,31 @@ var BranchPickerRoot = withDefaults(branchPicker_exports.Root, {
4033
4099
  className: "aui-branch-picker-root"
4034
4100
  });
4035
4101
  BranchPickerRoot.displayName = "BranchPickerRoot";
4036
- var BranchPickerPrevious2 = forwardRef19((props, ref) => {
4102
+ var BranchPickerPrevious2 = forwardRef20((props, ref) => {
4037
4103
  const {
4038
4104
  strings: {
4039
4105
  branchPicker: { previous: { tooltip = "Previous" } = {} } = {}
4040
4106
  } = {}
4041
4107
  } = useThreadConfig();
4042
- return /* @__PURE__ */ jsx31(branchPicker_exports.Previous, { asChild: true, children: /* @__PURE__ */ jsx31(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx31(ChevronLeftIcon, {}) }) });
4108
+ return /* @__PURE__ */ jsx32(branchPicker_exports.Previous, { asChild: true, children: /* @__PURE__ */ jsx32(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx32(ChevronLeftIcon, {}) }) });
4043
4109
  });
4044
4110
  BranchPickerPrevious2.displayName = "BranchPickerPrevious";
4045
4111
  var BranchPickerStateWrapper = withDefaults("span", {
4046
4112
  className: "aui-branch-picker-state"
4047
4113
  });
4048
- var BranchPickerState = forwardRef19((props, ref) => {
4114
+ var BranchPickerState = forwardRef20((props, ref) => {
4049
4115
  return /* @__PURE__ */ jsxs6(BranchPickerStateWrapper, { ...props, ref, children: [
4050
- /* @__PURE__ */ jsx31(branchPicker_exports.Number, {}),
4116
+ /* @__PURE__ */ jsx32(branchPicker_exports.Number, {}),
4051
4117
  " / ",
4052
- /* @__PURE__ */ jsx31(branchPicker_exports.Count, {})
4118
+ /* @__PURE__ */ jsx32(branchPicker_exports.Count, {})
4053
4119
  ] });
4054
4120
  });
4055
4121
  BranchPickerState.displayName = "BranchPickerState";
4056
- var BranchPickerNext = forwardRef19((props, ref) => {
4122
+ var BranchPickerNext = forwardRef20((props, ref) => {
4057
4123
  const {
4058
4124
  strings: { branchPicker: { next: { tooltip = "Next" } = {} } = {} } = {}
4059
4125
  } = useThreadConfig();
4060
- return /* @__PURE__ */ jsx31(branchPicker_exports.Next, { asChild: true, children: /* @__PURE__ */ jsx31(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx31(ChevronRightIcon, {}) }) });
4126
+ return /* @__PURE__ */ jsx32(branchPicker_exports.Next, { asChild: true, children: /* @__PURE__ */ jsx32(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx32(ChevronRightIcon, {}) }) });
4061
4127
  });
4062
4128
  BranchPickerNext.displayName = "BranchPickerNext";
4063
4129
  var exports2 = {
@@ -4069,12 +4135,12 @@ var branch_picker_default = Object.assign(BranchPicker, exports2);
4069
4135
 
4070
4136
  // src/ui/base/avatar.tsx
4071
4137
  import * as AvatarPrimitive from "@radix-ui/react-avatar";
4072
- import { jsx as jsx32, jsxs as jsxs7 } from "react/jsx-runtime";
4138
+ import { jsx as jsx33, jsxs as jsxs7 } from "react/jsx-runtime";
4073
4139
  var Avatar = ({ src, alt, fallback }) => {
4074
4140
  if (src == null && fallback == null) return null;
4075
4141
  return /* @__PURE__ */ jsxs7(AvatarRoot, { children: [
4076
- src != null && /* @__PURE__ */ jsx32(AvatarImage, { src, alt }),
4077
- fallback != null && /* @__PURE__ */ jsx32(AvatarFallback, { children: fallback })
4142
+ src != null && /* @__PURE__ */ jsx33(AvatarImage, { src, alt }),
4143
+ fallback != null && /* @__PURE__ */ jsx33(AvatarFallback, { children: fallback })
4078
4144
  ] });
4079
4145
  };
4080
4146
  Avatar.displayName = "Avatar";
@@ -4093,36 +4159,37 @@ AvatarFallback.displayName = "AvatarFallback";
4093
4159
 
4094
4160
  // src/ui/content-part.tsx
4095
4161
  import classNames2 from "classnames";
4096
- import { jsx as jsx33 } from "react/jsx-runtime";
4097
- var Text = ({ status }) => {
4098
- return /* @__PURE__ */ jsx33(
4099
- "p",
4162
+ import { jsx as jsx34 } from "react/jsx-runtime";
4163
+ var Text = () => {
4164
+ const status = useSmoothStatus();
4165
+ return /* @__PURE__ */ jsx34(
4166
+ contentPart_exports.Text,
4100
4167
  {
4101
4168
  className: classNames2(
4102
4169
  "aui-text",
4103
- status.type === "running" && "aui-text-in-progress"
4170
+ status.type === "running" && "aui-text-running"
4104
4171
  ),
4105
- children: /* @__PURE__ */ jsx33(contentPart_exports.Text, {})
4172
+ component: "p"
4106
4173
  }
4107
4174
  );
4108
4175
  };
4109
- var exports3 = { Text };
4176
+ var exports3 = { Text: withSmoothContextProvider(Text) };
4110
4177
  var content_part_default = exports3;
4111
4178
 
4112
4179
  // src/ui/assistant-message.tsx
4113
- import { jsx as jsx34, jsxs as jsxs8 } from "react/jsx-runtime";
4180
+ import { jsx as jsx35, jsxs as jsxs8 } from "react/jsx-runtime";
4114
4181
  var AssistantMessage = () => {
4115
4182
  return /* @__PURE__ */ jsxs8(AssistantMessageRoot, { children: [
4116
- /* @__PURE__ */ jsx34(AssistantMessageAvatar, {}),
4117
- /* @__PURE__ */ jsx34(AssistantMessageContent, {}),
4118
- /* @__PURE__ */ jsx34(branch_picker_default, {}),
4119
- /* @__PURE__ */ jsx34(assistant_action_bar_default, {})
4183
+ /* @__PURE__ */ jsx35(AssistantMessageAvatar, {}),
4184
+ /* @__PURE__ */ jsx35(AssistantMessageContent, {}),
4185
+ /* @__PURE__ */ jsx35(branch_picker_default, {}),
4186
+ /* @__PURE__ */ jsx35(assistant_action_bar_default, {})
4120
4187
  ] });
4121
4188
  };
4122
4189
  AssistantMessage.displayName = "AssistantMessage";
4123
4190
  var AssistantMessageAvatar = () => {
4124
4191
  const { assistantAvatar: avatar = { fallback: "A" } } = useThreadConfig();
4125
- return /* @__PURE__ */ jsx34(Avatar, { ...avatar });
4192
+ return /* @__PURE__ */ jsx35(Avatar, { ...avatar });
4126
4193
  };
4127
4194
  var AssistantMessageRoot = withDefaults(message_exports.Root, {
4128
4195
  className: "aui-assistant-message-root"
@@ -4131,9 +4198,9 @@ AssistantMessageRoot.displayName = "AssistantMessageRoot";
4131
4198
  var AssistantMessageContentWrapper = withDefaults("div", {
4132
4199
  className: "aui-assistant-message-content"
4133
4200
  });
4134
- var AssistantMessageContent = forwardRef20(({ components: componentsProp, ...rest }, ref) => {
4201
+ var AssistantMessageContent = forwardRef21(({ components: componentsProp, ...rest }, ref) => {
4135
4202
  const { assistantMessage: { components = {} } = {} } = useThreadConfig();
4136
- return /* @__PURE__ */ jsx34(AssistantMessageContentWrapper, { ...rest, ref, children: /* @__PURE__ */ jsx34(
4203
+ return /* @__PURE__ */ jsx35(AssistantMessageContentWrapper, { ...rest, ref, children: /* @__PURE__ */ jsx35(
4137
4204
  message_exports.Content,
4138
4205
  {
4139
4206
  components: {
@@ -4155,38 +4222,38 @@ var assistant_message_default = Object.assign(
4155
4222
  );
4156
4223
 
4157
4224
  // src/ui/assistant-modal.tsx
4158
- import { forwardRef as forwardRef27 } from "react";
4225
+ import { forwardRef as forwardRef28 } from "react";
4159
4226
  import { BotIcon, ChevronDownIcon } from "lucide-react";
4160
4227
 
4161
4228
  // src/ui/thread.tsx
4162
- import { forwardRef as forwardRef26 } from "react";
4229
+ import { forwardRef as forwardRef27 } from "react";
4163
4230
  import { ArrowDownIcon } from "lucide-react";
4164
4231
 
4165
4232
  // src/ui/composer.tsx
4166
- import { forwardRef as forwardRef21 } from "react";
4233
+ import { forwardRef as forwardRef22 } from "react";
4167
4234
  import { SendHorizontalIcon } from "lucide-react";
4168
4235
 
4169
4236
  // src/ui/base/CircleStopIcon.tsx
4170
- import { jsx as jsx35 } from "react/jsx-runtime";
4237
+ import { jsx as jsx36 } from "react/jsx-runtime";
4171
4238
  var CircleStopIcon = () => {
4172
- return /* @__PURE__ */ jsx35(
4239
+ return /* @__PURE__ */ jsx36(
4173
4240
  "svg",
4174
4241
  {
4175
4242
  xmlns: "http://www.w3.org/2000/svg",
4176
4243
  viewBox: "0 0 16 16",
4177
4244
  fill: "currentColor",
4178
- children: /* @__PURE__ */ jsx35("rect", { width: "10", height: "10", x: "3", y: "3", rx: "2" })
4245
+ children: /* @__PURE__ */ jsx36("rect", { width: "10", height: "10", x: "3", y: "3", rx: "2" })
4179
4246
  }
4180
4247
  );
4181
4248
  };
4182
4249
  CircleStopIcon.displayName = "CircleStopIcon";
4183
4250
 
4184
4251
  // src/ui/composer.tsx
4185
- import { Fragment as Fragment5, jsx as jsx36, jsxs as jsxs9 } from "react/jsx-runtime";
4252
+ import { Fragment as Fragment5, jsx as jsx37, jsxs as jsxs9 } from "react/jsx-runtime";
4186
4253
  var Composer = () => {
4187
4254
  return /* @__PURE__ */ jsxs9(ComposerRoot, { children: [
4188
- /* @__PURE__ */ jsx36(ComposerInput, { autoFocus: true }),
4189
- /* @__PURE__ */ jsx36(ComposerAction, {})
4255
+ /* @__PURE__ */ jsx37(ComposerInput, { autoFocus: true }),
4256
+ /* @__PURE__ */ jsx37(ComposerAction, {})
4190
4257
  ] });
4191
4258
  };
4192
4259
  Composer.displayName = "Composer";
@@ -4199,14 +4266,14 @@ var ComposerInputStyled = withDefaults(composer_exports.Input, {
4199
4266
  autoFocus: true,
4200
4267
  className: "aui-composer-input"
4201
4268
  });
4202
- var ComposerInput = forwardRef21(
4269
+ var ComposerInput = forwardRef22(
4203
4270
  (props, ref) => {
4204
4271
  const {
4205
4272
  strings: {
4206
4273
  composer: { input: { placeholder = "Write a message..." } = {} } = {}
4207
4274
  } = {}
4208
4275
  } = useThreadConfig();
4209
- return /* @__PURE__ */ jsx36(ComposerInputStyled, { placeholder, ...props, ref });
4276
+ return /* @__PURE__ */ jsx37(ComposerInputStyled, { placeholder, ...props, ref });
4210
4277
  }
4211
4278
  );
4212
4279
  ComposerInput.displayName = "ComposerInput";
@@ -4217,10 +4284,10 @@ var useAllowCancel = () => {
4217
4284
  };
4218
4285
  var ComposerAction = () => {
4219
4286
  const allowCancel = useAllowCancel();
4220
- if (!allowCancel) return /* @__PURE__ */ jsx36(ComposerSend, {});
4287
+ if (!allowCancel) return /* @__PURE__ */ jsx37(ComposerSend, {});
4221
4288
  return /* @__PURE__ */ jsxs9(Fragment5, { children: [
4222
- /* @__PURE__ */ jsx36(thread_exports.If, { running: false, children: /* @__PURE__ */ jsx36(ComposerSend, {}) }),
4223
- /* @__PURE__ */ jsx36(thread_exports.If, { running: true, children: /* @__PURE__ */ jsx36(ComposerCancel, {}) })
4289
+ /* @__PURE__ */ jsx37(thread_exports.If, { running: false, children: /* @__PURE__ */ jsx37(ComposerSend, {}) }),
4290
+ /* @__PURE__ */ jsx37(thread_exports.If, { running: true, children: /* @__PURE__ */ jsx37(ComposerCancel, {}) })
4224
4291
  ] });
4225
4292
  };
4226
4293
  ComposerAction.displayName = "ComposerAction";
@@ -4228,22 +4295,22 @@ var ComposerSendButton = withDefaults(TooltipIconButton, {
4228
4295
  variant: "default",
4229
4296
  className: "aui-composer-send"
4230
4297
  });
4231
- var ComposerSend = forwardRef21((props, ref) => {
4298
+ var ComposerSend = forwardRef22((props, ref) => {
4232
4299
  const {
4233
4300
  strings: { composer: { send: { tooltip = "Send" } = {} } = {} } = {}
4234
4301
  } = useThreadConfig();
4235
- return /* @__PURE__ */ jsx36(composer_exports.Send, { asChild: true, children: /* @__PURE__ */ jsx36(ComposerSendButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx36(SendHorizontalIcon, {}) }) });
4302
+ return /* @__PURE__ */ jsx37(composer_exports.Send, { asChild: true, children: /* @__PURE__ */ jsx37(ComposerSendButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx37(SendHorizontalIcon, {}) }) });
4236
4303
  });
4237
4304
  ComposerSend.displayName = "ComposerSend";
4238
4305
  var ComposerCancelButton = withDefaults(TooltipIconButton, {
4239
4306
  variant: "default",
4240
4307
  className: "aui-composer-cancel"
4241
4308
  });
4242
- var ComposerCancel = forwardRef21((props, ref) => {
4309
+ var ComposerCancel = forwardRef22((props, ref) => {
4243
4310
  const {
4244
4311
  strings: { composer: { cancel: { tooltip = "Cancel" } = {} } = {} } = {}
4245
4312
  } = useThreadConfig();
4246
- return /* @__PURE__ */ jsx36(composer_exports.Cancel, { asChild: true, children: /* @__PURE__ */ jsx36(ComposerCancelButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx36(CircleStopIcon, {}) }) });
4313
+ return /* @__PURE__ */ jsx37(composer_exports.Cancel, { asChild: true, children: /* @__PURE__ */ jsx37(ComposerCancelButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx37(CircleStopIcon, {}) }) });
4247
4314
  });
4248
4315
  ComposerCancel.displayName = "ComposerCancel";
4249
4316
  var exports5 = {
@@ -4256,15 +4323,15 @@ var exports5 = {
4256
4323
  var composer_default = Object.assign(Composer, exports5);
4257
4324
 
4258
4325
  // src/ui/thread-welcome.tsx
4259
- import { forwardRef as forwardRef22 } from "react";
4260
- import { jsx as jsx37, jsxs as jsxs10 } from "react/jsx-runtime";
4326
+ import { forwardRef as forwardRef23 } from "react";
4327
+ import { jsx as jsx38, jsxs as jsxs10 } from "react/jsx-runtime";
4261
4328
  var ThreadWelcome = () => {
4262
4329
  return /* @__PURE__ */ jsxs10(ThreadWelcomeRoot, { children: [
4263
4330
  /* @__PURE__ */ jsxs10(ThreadWelcomeCenter, { children: [
4264
- /* @__PURE__ */ jsx37(ThreadWelcomeAvatar, {}),
4265
- /* @__PURE__ */ jsx37(ThreadWelcomeMessage, {})
4331
+ /* @__PURE__ */ jsx38(ThreadWelcomeAvatar, {}),
4332
+ /* @__PURE__ */ jsx38(ThreadWelcomeMessage, {})
4266
4333
  ] }),
4267
- /* @__PURE__ */ jsx37(ThreadWelcomeSuggestions, {})
4334
+ /* @__PURE__ */ jsx38(ThreadWelcomeSuggestions, {})
4268
4335
  ] });
4269
4336
  };
4270
4337
  ThreadWelcome.displayName = "ThreadWelcome";
@@ -4274,22 +4341,22 @@ var ThreadWelcomeRootStyled = withDefaults("div", {
4274
4341
  var ThreadWelcomeCenter = withDefaults("div", {
4275
4342
  className: "aui-thread-welcome-center"
4276
4343
  });
4277
- var ThreadWelcomeRoot = forwardRef22(
4344
+ var ThreadWelcomeRoot = forwardRef23(
4278
4345
  (props, ref) => {
4279
- return /* @__PURE__ */ jsx37(thread_exports.Empty, { children: /* @__PURE__ */ jsx37(ThreadWelcomeRootStyled, { ...props, ref }) });
4346
+ return /* @__PURE__ */ jsx38(thread_exports.Empty, { children: /* @__PURE__ */ jsx38(ThreadWelcomeRootStyled, { ...props, ref }) });
4280
4347
  }
4281
4348
  );
4282
4349
  ThreadWelcomeRoot.displayName = "ThreadWelcomeRoot";
4283
4350
  var ThreadWelcomeAvatar = () => {
4284
4351
  const { assistantAvatar: avatar = { fallback: "A" } } = useThreadConfig();
4285
- return /* @__PURE__ */ jsx37(Avatar, { ...avatar });
4352
+ return /* @__PURE__ */ jsx38(Avatar, { ...avatar });
4286
4353
  };
4287
4354
  var ThreadWelcomeMessageStyled = withDefaults("p", {
4288
4355
  className: "aui-thread-welcome-message"
4289
4356
  });
4290
- var ThreadWelcomeMessage = forwardRef22(({ message: messageProp, ...rest }, ref) => {
4357
+ var ThreadWelcomeMessage = forwardRef23(({ message: messageProp, ...rest }, ref) => {
4291
4358
  const { welcome: { message = "How can I help you today?" } = {} } = useThreadConfig();
4292
- return /* @__PURE__ */ jsx37(ThreadWelcomeMessageStyled, { ...rest, ref, children: messageProp ?? message });
4359
+ return /* @__PURE__ */ jsx38(ThreadWelcomeMessageStyled, { ...rest, ref, children: messageProp ?? message });
4293
4360
  });
4294
4361
  ThreadWelcomeMessage.displayName = "ThreadWelcomeMessage";
4295
4362
  var ThreadWelcomeSuggestionContainer = withDefaults("div", {
@@ -4301,21 +4368,21 @@ var ThreadWelcomeSuggestionStyled = withDefaults(thread_exports.Suggestion, {
4301
4368
  var ThreadWelcomeSuggestion = ({
4302
4369
  suggestion: { text, prompt }
4303
4370
  }) => {
4304
- return /* @__PURE__ */ jsx37(
4371
+ return /* @__PURE__ */ jsx38(
4305
4372
  ThreadWelcomeSuggestionStyled,
4306
4373
  {
4307
4374
  prompt,
4308
4375
  method: "replace",
4309
4376
  autoSend: true,
4310
- children: /* @__PURE__ */ jsx37("span", { className: "aui-thread-welcome-suggestion-text", children: text ?? prompt })
4377
+ children: /* @__PURE__ */ jsx38("span", { className: "aui-thread-welcome-suggestion-text", children: text ?? prompt })
4311
4378
  }
4312
4379
  );
4313
4380
  };
4314
4381
  var ThreadWelcomeSuggestions = () => {
4315
4382
  const { welcome: { suggestions } = {} } = useThreadConfig();
4316
- return /* @__PURE__ */ jsx37(ThreadWelcomeSuggestionContainer, { children: suggestions?.map((suggestion, idx) => {
4383
+ return /* @__PURE__ */ jsx38(ThreadWelcomeSuggestionContainer, { children: suggestions?.map((suggestion, idx) => {
4317
4384
  const key = `${suggestion.prompt}-${idx}`;
4318
- return /* @__PURE__ */ jsx37(ThreadWelcomeSuggestion, { suggestion }, key);
4385
+ return /* @__PURE__ */ jsx38(ThreadWelcomeSuggestion, { suggestion }, key);
4319
4386
  }) });
4320
4387
  };
4321
4388
  ThreadWelcomeSuggestions.displayName = "ThreadWelcomeSuggestions";
@@ -4330,12 +4397,12 @@ var exports6 = {
4330
4397
  var thread_welcome_default = Object.assign(ThreadWelcome, exports6);
4331
4398
 
4332
4399
  // src/ui/user-message.tsx
4333
- import { forwardRef as forwardRef24 } from "react";
4400
+ import { forwardRef as forwardRef25 } from "react";
4334
4401
 
4335
4402
  // src/ui/user-action-bar.tsx
4336
- import { forwardRef as forwardRef23 } from "react";
4403
+ import { forwardRef as forwardRef24 } from "react";
4337
4404
  import { PencilIcon } from "lucide-react";
4338
- import { jsx as jsx38 } from "react/jsx-runtime";
4405
+ import { jsx as jsx39 } from "react/jsx-runtime";
4339
4406
  var useAllowEdit = () => {
4340
4407
  const { userMessage: { allowEdit = true } = {} } = useThreadConfig();
4341
4408
  const { useThreadActions } = useThreadContext();
@@ -4345,20 +4412,20 @@ var useAllowEdit = () => {
4345
4412
  var UserActionBar = () => {
4346
4413
  const allowEdit = useAllowEdit();
4347
4414
  if (!allowEdit) return null;
4348
- return /* @__PURE__ */ jsx38(UserActionBarRoot, { hideWhenRunning: true, autohide: "not-last", children: /* @__PURE__ */ jsx38(UserActionBarEdit, {}) });
4415
+ return /* @__PURE__ */ jsx39(UserActionBarRoot, { hideWhenRunning: true, autohide: "not-last", children: /* @__PURE__ */ jsx39(UserActionBarEdit, {}) });
4349
4416
  };
4350
4417
  UserActionBar.displayName = "UserActionBar";
4351
4418
  var UserActionBarRoot = withDefaults(actionBar_exports.Root, {
4352
4419
  className: "aui-user-action-bar-root"
4353
4420
  });
4354
4421
  UserActionBarRoot.displayName = "UserActionBarRoot";
4355
- var UserActionBarEdit = forwardRef23((props, ref) => {
4422
+ var UserActionBarEdit = forwardRef24((props, ref) => {
4356
4423
  const {
4357
4424
  strings: { userMessage: { edit: { tooltip = "Edit" } = {} } = {} } = {}
4358
4425
  } = useThreadConfig();
4359
4426
  const allowEdit = useAllowEdit();
4360
4427
  if (!allowEdit) return null;
4361
- return /* @__PURE__ */ jsx38(actionBar_exports.Edit, { asChild: true, children: /* @__PURE__ */ jsx38(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx38(PencilIcon, {}) }) });
4428
+ return /* @__PURE__ */ jsx39(actionBar_exports.Edit, { asChild: true, children: /* @__PURE__ */ jsx39(TooltipIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx39(PencilIcon, {}) }) });
4362
4429
  });
4363
4430
  UserActionBarEdit.displayName = "UserActionBarEdit";
4364
4431
  var exports7 = {
@@ -4368,12 +4435,12 @@ var exports7 = {
4368
4435
  var user_action_bar_default = Object.assign(UserActionBar, exports7);
4369
4436
 
4370
4437
  // src/ui/user-message.tsx
4371
- import { jsx as jsx39, jsxs as jsxs11 } from "react/jsx-runtime";
4438
+ import { jsx as jsx40, jsxs as jsxs11 } from "react/jsx-runtime";
4372
4439
  var UserMessage = () => {
4373
4440
  return /* @__PURE__ */ jsxs11(UserMessageRoot, { children: [
4374
- /* @__PURE__ */ jsx39(user_action_bar_default, {}),
4375
- /* @__PURE__ */ jsx39(UserMessageContent, {}),
4376
- /* @__PURE__ */ jsx39(branch_picker_default, {})
4441
+ /* @__PURE__ */ jsx40(user_action_bar_default, {}),
4442
+ /* @__PURE__ */ jsx40(UserMessageContent, {}),
4443
+ /* @__PURE__ */ jsx40(branch_picker_default, {})
4377
4444
  ] });
4378
4445
  };
4379
4446
  UserMessage.displayName = "UserMessage";
@@ -4384,9 +4451,9 @@ UserMessageRoot.displayName = "UserMessageRoot";
4384
4451
  var UserMessageContentWrapper = withDefaults("div", {
4385
4452
  className: "aui-user-message-content"
4386
4453
  });
4387
- var UserMessageContent = forwardRef24(
4454
+ var UserMessageContent = forwardRef25(
4388
4455
  ({ components, ...props }, ref) => {
4389
- return /* @__PURE__ */ jsx39(UserMessageContentWrapper, { ...props, ref, children: /* @__PURE__ */ jsx39(
4456
+ return /* @__PURE__ */ jsx40(UserMessageContentWrapper, { ...props, ref, children: /* @__PURE__ */ jsx40(
4390
4457
  message_exports.Content,
4391
4458
  {
4392
4459
  components: {
@@ -4405,14 +4472,14 @@ var exports8 = {
4405
4472
  var user_message_default = Object.assign(UserMessage, exports8);
4406
4473
 
4407
4474
  // src/ui/edit-composer.tsx
4408
- import { forwardRef as forwardRef25 } from "react";
4409
- import { jsx as jsx40, jsxs as jsxs12 } from "react/jsx-runtime";
4475
+ import { forwardRef as forwardRef26 } from "react";
4476
+ import { jsx as jsx41, jsxs as jsxs12 } from "react/jsx-runtime";
4410
4477
  var EditComposer = () => {
4411
4478
  return /* @__PURE__ */ jsxs12(EditComposerRoot, { children: [
4412
- /* @__PURE__ */ jsx40(EditComposerInput, {}),
4479
+ /* @__PURE__ */ jsx41(EditComposerInput, {}),
4413
4480
  /* @__PURE__ */ jsxs12(EditComposerFooter, { children: [
4414
- /* @__PURE__ */ jsx40(EditComposerCancel, {}),
4415
- /* @__PURE__ */ jsx40(EditComposerSend, {})
4481
+ /* @__PURE__ */ jsx41(EditComposerCancel, {}),
4482
+ /* @__PURE__ */ jsx41(EditComposerSend, {})
4416
4483
  ] })
4417
4484
  ] });
4418
4485
  };
@@ -4429,23 +4496,23 @@ var EditComposerFooter = withDefaults("div", {
4429
4496
  className: "aui-edit-composer-footer"
4430
4497
  });
4431
4498
  EditComposerFooter.displayName = "EditComposerFooter";
4432
- var EditComposerCancel = forwardRef25(
4499
+ var EditComposerCancel = forwardRef26(
4433
4500
  (props, ref) => {
4434
4501
  const {
4435
4502
  strings: {
4436
4503
  editComposer: { cancel: { label = "Cancel" } = {} } = {}
4437
4504
  } = {}
4438
4505
  } = useThreadConfig();
4439
- return /* @__PURE__ */ jsx40(composer_exports.Cancel, { asChild: true, children: /* @__PURE__ */ jsx40(Button, { variant: "ghost", ...props, ref, children: props.children ?? label }) });
4506
+ return /* @__PURE__ */ jsx41(composer_exports.Cancel, { asChild: true, children: /* @__PURE__ */ jsx41(Button, { variant: "ghost", ...props, ref, children: props.children ?? label }) });
4440
4507
  }
4441
4508
  );
4442
4509
  EditComposerCancel.displayName = "EditComposerCancel";
4443
- var EditComposerSend = forwardRef25(
4510
+ var EditComposerSend = forwardRef26(
4444
4511
  (props, ref) => {
4445
4512
  const {
4446
4513
  strings: { editComposer: { send: { label = "Send" } = {} } = {} } = {}
4447
4514
  } = useThreadConfig();
4448
- return /* @__PURE__ */ jsx40(composer_exports.Send, { asChild: true, children: /* @__PURE__ */ jsx40(Button, { ...props, ref, children: props.children ?? label }) });
4515
+ return /* @__PURE__ */ jsx41(composer_exports.Send, { asChild: true, children: /* @__PURE__ */ jsx41(Button, { ...props, ref, children: props.children ?? label }) });
4449
4516
  }
4450
4517
  );
4451
4518
  EditComposerSend.displayName = "EditComposerSend";
@@ -4459,23 +4526,23 @@ var exports9 = {
4459
4526
  var edit_composer_default = Object.assign(EditComposer, exports9);
4460
4527
 
4461
4528
  // src/ui/thread.tsx
4462
- import { jsx as jsx41, jsxs as jsxs13 } from "react/jsx-runtime";
4529
+ import { jsx as jsx42, jsxs as jsxs13 } from "react/jsx-runtime";
4463
4530
  var Thread = (config) => {
4464
- return /* @__PURE__ */ jsx41(ThreadRoot, { config, children: /* @__PURE__ */ jsxs13(ThreadViewport, { children: [
4465
- /* @__PURE__ */ jsx41(thread_welcome_default, {}),
4466
- /* @__PURE__ */ jsx41(ThreadMessages, {}),
4531
+ return /* @__PURE__ */ jsx42(ThreadRoot, { config, children: /* @__PURE__ */ jsxs13(ThreadViewport, { children: [
4532
+ /* @__PURE__ */ jsx42(thread_welcome_default, {}),
4533
+ /* @__PURE__ */ jsx42(ThreadMessages, {}),
4467
4534
  /* @__PURE__ */ jsxs13(ThreadViewportFooter, { children: [
4468
- /* @__PURE__ */ jsx41(ThreadScrollToBottom, {}),
4469
- /* @__PURE__ */ jsx41(composer_default, {})
4535
+ /* @__PURE__ */ jsx42(ThreadScrollToBottom, {}),
4536
+ /* @__PURE__ */ jsx42(composer_default, {})
4470
4537
  ] })
4471
4538
  ] }) });
4472
4539
  };
4473
4540
  var ThreadRootStyled = withDefaults(thread_exports.Root, {
4474
4541
  className: "aui-root aui-thread-root"
4475
4542
  });
4476
- var ThreadRoot = forwardRef26(
4543
+ var ThreadRoot = forwardRef27(
4477
4544
  ({ config, ...props }, ref) => {
4478
- return /* @__PURE__ */ jsx41(ThreadConfigProvider, { config, children: /* @__PURE__ */ jsx41(ThreadRootStyled, { ...props, ref }) });
4545
+ return /* @__PURE__ */ jsx42(ThreadConfigProvider, { config, children: /* @__PURE__ */ jsx42(ThreadRootStyled, { ...props, ref }) });
4479
4546
  }
4480
4547
  );
4481
4548
  ThreadRoot.displayName = "ThreadRoot";
@@ -4489,7 +4556,7 @@ var ThreadViewportFooter = withDefaults("div", {
4489
4556
  ThreadViewportFooter.displayName = "ThreadViewportFooter";
4490
4557
  var SystemMessage = () => null;
4491
4558
  var ThreadMessages = ({ components, ...rest }) => {
4492
- return /* @__PURE__ */ jsx41(
4559
+ return /* @__PURE__ */ jsx42(
4493
4560
  thread_exports.Messages,
4494
4561
  {
4495
4562
  components: {
@@ -4507,13 +4574,13 @@ var ThreadScrollToBottomIconButton = withDefaults(TooltipIconButton, {
4507
4574
  variant: "outline",
4508
4575
  className: "aui-thread-scroll-to-bottom"
4509
4576
  });
4510
- var ThreadScrollToBottom = forwardRef26((props, ref) => {
4577
+ var ThreadScrollToBottom = forwardRef27((props, ref) => {
4511
4578
  const {
4512
4579
  strings: {
4513
4580
  thread: { scrollToBottom: { tooltip = "Scroll to bottom" } = {} } = {}
4514
4581
  } = {}
4515
4582
  } = useThreadConfig();
4516
- return /* @__PURE__ */ jsx41(thread_exports.ScrollToBottom, { asChild: true, children: /* @__PURE__ */ jsx41(ThreadScrollToBottomIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx41(ArrowDownIcon, {}) }) });
4583
+ return /* @__PURE__ */ jsx42(thread_exports.ScrollToBottom, { asChild: true, children: /* @__PURE__ */ jsx42(ThreadScrollToBottomIconButton, { tooltip, ...props, ref, children: props.children ?? /* @__PURE__ */ jsx42(ArrowDownIcon, {}) }) });
4517
4584
  });
4518
4585
  ThreadScrollToBottom.displayName = "ThreadScrollToBottom";
4519
4586
  var exports10 = {
@@ -4526,20 +4593,20 @@ var exports10 = {
4526
4593
  var thread_default = Object.assign(Thread, exports10);
4527
4594
 
4528
4595
  // src/ui/assistant-modal.tsx
4529
- import { Fragment as Fragment6, jsx as jsx42, jsxs as jsxs14 } from "react/jsx-runtime";
4596
+ import { Fragment as Fragment6, jsx as jsx43, jsxs as jsxs14 } from "react/jsx-runtime";
4530
4597
  var AssistantModal = (config) => {
4531
4598
  return /* @__PURE__ */ jsxs14(AssistantModalRoot, { config, children: [
4532
- /* @__PURE__ */ jsx42(AssistantModalTrigger, {}),
4533
- /* @__PURE__ */ jsx42(AssistantModalContent, { children: /* @__PURE__ */ jsx42(thread_default, {}) })
4599
+ /* @__PURE__ */ jsx43(AssistantModalTrigger, {}),
4600
+ /* @__PURE__ */ jsx43(AssistantModalContent, { children: /* @__PURE__ */ jsx43(thread_default, {}) })
4534
4601
  ] });
4535
4602
  };
4536
4603
  AssistantModal.displayName = "AssistantModal";
4537
4604
  var AssistantModalRoot = ({ config, ...props }) => {
4538
- return /* @__PURE__ */ jsx42(ThreadConfigProvider, { config, children: /* @__PURE__ */ jsx42(assistantModal_exports.Root, { ...props }) });
4605
+ return /* @__PURE__ */ jsx43(ThreadConfigProvider, { config, children: /* @__PURE__ */ jsx43(assistantModal_exports.Root, { ...props }) });
4539
4606
  };
4540
4607
  AssistantModalRoot.displayName = "AssistantModalRoot";
4541
- var AssistantModalTrigger = forwardRef27((props, ref) => {
4542
- return /* @__PURE__ */ jsx42(AssistantModalAnchor, { children: /* @__PURE__ */ jsx42(assistantModal_exports.Trigger, { asChild: true, children: /* @__PURE__ */ jsx42(AssistantModalButton, { ...props, ref }) }) });
4608
+ var AssistantModalTrigger = forwardRef28((props, ref) => {
4609
+ return /* @__PURE__ */ jsx43(AssistantModalAnchor, { children: /* @__PURE__ */ jsx43(assistantModal_exports.Trigger, { asChild: true, children: /* @__PURE__ */ jsx43(AssistantModalButton, { ...props, ref }) }) });
4543
4610
  });
4544
4611
  AssistantModalTrigger.displayName = "AssistantModalTrigger";
4545
4612
  var AssistantModalAnchor = withDefaults(assistantModal_exports.Anchor, {
@@ -4550,7 +4617,7 @@ var ModalButtonStyled = withDefaults(TooltipIconButton, {
4550
4617
  variant: "default",
4551
4618
  className: "aui-modal-button"
4552
4619
  });
4553
- var AssistantModalButton = forwardRef27(({ "data-state": state, ...rest }, ref) => {
4620
+ var AssistantModalButton = forwardRef28(({ "data-state": state, ...rest }, ref) => {
4554
4621
  const {
4555
4622
  strings: {
4556
4623
  assistantModal: {
@@ -4564,7 +4631,7 @@ var AssistantModalButton = forwardRef27(({ "data-state": state, ...rest }, ref)
4564
4631
  } = {}
4565
4632
  } = useThreadConfig();
4566
4633
  const tooltip = state === "open" ? openTooltip : closedTooltip;
4567
- return /* @__PURE__ */ jsx42(
4634
+ return /* @__PURE__ */ jsx43(
4568
4635
  ModalButtonStyled,
4569
4636
  {
4570
4637
  side: "left",
@@ -4573,14 +4640,14 @@ var AssistantModalButton = forwardRef27(({ "data-state": state, ...rest }, ref)
4573
4640
  ...rest,
4574
4641
  ref,
4575
4642
  children: rest.children ?? /* @__PURE__ */ jsxs14(Fragment6, { children: [
4576
- /* @__PURE__ */ jsx42(
4643
+ /* @__PURE__ */ jsx43(
4577
4644
  BotIcon,
4578
4645
  {
4579
4646
  "data-state": state,
4580
4647
  className: "aui-modal-button-closed-icon"
4581
4648
  }
4582
4649
  ),
4583
- /* @__PURE__ */ jsx42(
4650
+ /* @__PURE__ */ jsx43(
4584
4651
  ChevronDownIcon,
4585
4652
  {
4586
4653
  "data-state": state,