@superinterface/react 2.0.11 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -457,7 +457,7 @@ var SuperinterfaceProvider = function(param) {
457
457
  });
458
458
  };
459
459
  // src/components/threads/Thread/Messages/index.tsx
460
- var import_themes30 = require("@radix-ui/themes");
460
+ var import_themes31 = require("@radix-ui/themes");
461
461
  // src/components/threads/Thread/Messages/Content/index.tsx
462
462
  var import_react20 = require("react");
463
463
  // src/hooks/messages/useMessages/index.tsx
@@ -758,7 +758,7 @@ var useToasts = function() {
758
758
  };
759
759
  // src/components/threads/Thread/Messages/Content/MessageGroup/index.tsx
760
760
  var import_react19 = require("react");
761
- var import_themes25 = require("@radix-ui/themes");
761
+ var import_themes26 = require("@radix-ui/themes");
762
762
  var import_react_icons4 = require("@radix-ui/react-icons");
763
763
  // src/components/messageGroups/MessageGroupBase/AssistantAvatar.tsx
764
764
  var import_react10 = require("react");
@@ -791,10 +791,10 @@ var AssistantAvatar = function() {
791
791
  var import_react11 = require("react");
792
792
  var AssistantNameContext = (0, import_react11.createContext)("Assistant");
793
793
  // src/components/threads/Thread/Messages/Content/MessageGroup/Content/index.tsx
794
- var import_themes24 = require("@radix-ui/themes");
794
+ var import_themes25 = require("@radix-ui/themes");
795
795
  // src/components/threads/Thread/Message/index.tsx
796
796
  var import_react18 = require("react");
797
- var import_themes23 = require("@radix-ui/themes");
797
+ var import_themes24 = require("@radix-ui/themes");
798
798
  // src/components/runSteps/RunSteps/index.tsx
799
799
  var import_themes14 = require("@radix-ui/themes");
800
800
  // src/components/runSteps/RunStep/ToolCalls/index.tsx
@@ -1178,6 +1178,20 @@ var Code2 = function(param) {
1178
1178
  children: children
1179
1179
  });
1180
1180
  };
1181
+ // src/contexts/markdown/MarkdownContext/lib/components/Img.tsx
1182
+ var import_themes23 = require("@radix-ui/themes");
1183
+ var import_jsx_runtime28 = require("react/jsx-runtime");
1184
+ var Img = function(props) {
1185
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_themes23.Box, {
1186
+ pb: "3",
1187
+ children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("img", _object_spread_props(_object_spread({}, props), {
1188
+ style: {
1189
+ maxWidth: "100%",
1190
+ height: "auto"
1191
+ }
1192
+ }))
1193
+ });
1194
+ };
1181
1195
  // src/contexts/markdown/MarkdownContext/lib/components/index.tsx
1182
1196
  var components = {
1183
1197
  p: Paragraph,
@@ -1187,7 +1201,8 @@ var components = {
1187
1201
  ol: OrderedList,
1188
1202
  li: ListItem,
1189
1203
  pre: Pre,
1190
- code: Code2
1204
+ code: Code2,
1205
+ img: Img
1191
1206
  };
1192
1207
  // src/contexts/markdown/MarkdownContext/index.ts
1193
1208
  var MarkdownContext = (0, import_react16.createContext)({
@@ -1207,7 +1222,7 @@ var TextContent = function(param) {
1207
1222
  return (0, import_react_remark.useRemarkSync)(content.text.value, markdownContext);
1208
1223
  };
1209
1224
  // src/components/threads/Thread/Message/index.tsx
1210
- var import_jsx_runtime28 = require("react/jsx-runtime");
1225
+ var import_jsx_runtime29 = require("react/jsx-runtime");
1211
1226
  var Message = function(param) {
1212
1227
  var message = param.message;
1213
1228
  var _ref = _sliced_to_array((0, import_react18.useMemo)(function() {
@@ -1242,23 +1257,23 @@ var Message = function(param) {
1242
1257
  }, [
1243
1258
  message
1244
1259
  ]), 2), olderRunSteps = _ref[0], laterRunSteps = _ref[1];
1245
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Provider, {
1260
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Provider, {
1246
1261
  value: {
1247
1262
  message: message
1248
1263
  },
1249
- children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_themes23.Box, {
1264
+ children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_themes24.Box, {
1250
1265
  children: [
1251
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(RunSteps, {
1266
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(RunSteps, {
1252
1267
  runSteps: olderRunSteps
1253
1268
  }),
1254
1269
  message.content.map(function(content, index) {
1255
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_themes23.Box, {
1256
- children: content.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(TextContent, {
1270
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_themes24.Box, {
1271
+ children: content.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(TextContent, {
1257
1272
  content: content
1258
1273
  })
1259
1274
  }, index);
1260
1275
  }),
1261
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(RunSteps, {
1276
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(RunSteps, {
1262
1277
  runSteps: laterRunSteps
1263
1278
  })
1264
1279
  ]
@@ -1266,36 +1281,36 @@ var Message = function(param) {
1266
1281
  });
1267
1282
  };
1268
1283
  // src/components/threads/Thread/Messages/Content/MessageGroup/Content/index.tsx
1269
- var import_jsx_runtime29 = require("react/jsx-runtime");
1284
+ var import_jsx_runtime30 = require("react/jsx-runtime");
1270
1285
  var Content2 = function(param) {
1271
1286
  var messageGroup = param.messageGroup;
1272
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_themes24.Flex, {
1287
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_themes25.Flex, {
1273
1288
  direction: "column-reverse",
1274
1289
  children: messageGroup.messages.map(function(message) {
1275
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Message, {
1290
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Message, {
1276
1291
  message: message
1277
1292
  }, message.id);
1278
1293
  })
1279
1294
  });
1280
1295
  };
1281
1296
  // src/components/threads/Thread/Messages/Content/MessageGroup/index.tsx
1282
- var import_jsx_runtime30 = require("react/jsx-runtime");
1297
+ var import_jsx_runtime31 = require("react/jsx-runtime");
1283
1298
  var MessageGroup = function(param) {
1284
1299
  var messageGroup = param.messageGroup;
1285
1300
  var assistantNameContext = (0, import_react19.useContext)(AssistantNameContext);
1286
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(MessageGroupBase, {
1301
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(MessageGroupBase, {
1287
1302
  children: [
1288
- messageGroup.role === "user" ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_themes25.Avatar, {
1289
- fallback: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_icons4.PersonIcon, {}),
1303
+ messageGroup.role === "user" ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_themes26.Avatar, {
1304
+ fallback: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_react_icons4.PersonIcon, {}),
1290
1305
  size: "1"
1291
- }) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(AssistantAvatar, {}),
1292
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_themes25.Box, {
1306
+ }) : /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(AssistantAvatar, {}),
1307
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_themes26.Box, {
1293
1308
  flexGrow: "1",
1294
1309
  children: [
1295
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Name, {
1310
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Name, {
1296
1311
  children: messageGroup.role === "user" ? "You" : assistantNameContext
1297
1312
  }),
1298
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Content2, {
1313
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Content2, {
1299
1314
  messageGroup: messageGroup
1300
1315
  })
1301
1316
  ]
@@ -1304,7 +1319,7 @@ var MessageGroup = function(param) {
1304
1319
  });
1305
1320
  };
1306
1321
  // src/components/threads/Thread/Messages/Content/index.tsx
1307
- var import_jsx_runtime31 = require("react/jsx-runtime");
1322
+ var import_jsx_runtime32 = require("react/jsx-runtime");
1308
1323
  var Content3 = function() {
1309
1324
  var _useMessages = useMessages(), messages2 = _useMessages.messages, isLoading = _useMessages.isLoading, isLoadingError = _useMessages.isLoadingError;
1310
1325
  var addToast = useToasts().addToast;
@@ -1323,23 +1338,23 @@ var Content3 = function() {
1323
1338
  addToast
1324
1339
  ]);
1325
1340
  if (isLoading || isLoadingError) {
1326
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(MessagesSkeleton, {});
1341
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(MessagesSkeleton, {});
1327
1342
  }
1328
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_jsx_runtime31.Fragment, {
1343
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_jsx_runtime32.Fragment, {
1329
1344
  children: messageGroups2.map(function(messageGroup) {
1330
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(MessageGroup, {
1345
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(MessageGroup, {
1331
1346
  messageGroup: messageGroup
1332
1347
  }, messageGroup.id);
1333
1348
  })
1334
1349
  });
1335
1350
  };
1336
1351
  // src/components/threads/Thread/Messages/Progress/index.tsx
1337
- var import_themes28 = require("@radix-ui/themes");
1352
+ var import_themes29 = require("@radix-ui/themes");
1338
1353
  // src/components/skeletons/StartingContentSkeleton/index.tsx
1339
- var import_themes26 = require("@radix-ui/themes");
1340
- var import_jsx_runtime32 = require("react/jsx-runtime");
1354
+ var import_themes27 = require("@radix-ui/themes");
1355
+ var import_jsx_runtime33 = require("react/jsx-runtime");
1341
1356
  var StartingContentSkeleton = function() {
1342
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_themes26.Skeleton, {
1357
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_themes27.Skeleton, {
1343
1358
  loading: true,
1344
1359
  mt: "1",
1345
1360
  height: "var(--space-4)",
@@ -1352,21 +1367,21 @@ var StartingContentSkeleton = function() {
1352
1367
  };
1353
1368
  // src/components/skeletons/StartingSkeleton/index.tsx
1354
1369
  var import_react21 = require("react");
1355
- var import_themes27 = require("@radix-ui/themes");
1356
- var import_jsx_runtime33 = require("react/jsx-runtime");
1370
+ var import_themes28 = require("@radix-ui/themes");
1371
+ var import_jsx_runtime34 = require("react/jsx-runtime");
1357
1372
  var StartingSkeleton = function(param) {
1358
1373
  var children = param.children;
1359
1374
  var assistantNameContext = (0, import_react21.useContext)(AssistantNameContext);
1360
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(MessageGroupBase, {
1375
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(MessageGroupBase, {
1361
1376
  children: [
1362
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(AssistantAvatar, {}),
1363
- /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_themes27.Box, {
1377
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(AssistantAvatar, {}),
1378
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_themes28.Box, {
1364
1379
  children: [
1365
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Name, {
1380
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Name, {
1366
1381
  children: assistantNameContext
1367
1382
  }),
1368
1383
  children,
1369
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(StartingContentSkeleton, {})
1384
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(StartingContentSkeleton, {})
1370
1385
  ]
1371
1386
  })
1372
1387
  ]
@@ -1445,19 +1460,6 @@ var useLatestRun = function() {
1445
1460
  props
1446
1461
  ]);
1447
1462
  };
1448
- // src/lib/runs/isRunEditingMessage/index.ts
1449
- var import_lodash4 = __toESM(require("lodash"), 1);
1450
- var isRunEditingMessage = function(param) {
1451
- var message = param.message;
1452
- if (!message) return false;
1453
- if (message.role === "user") return false;
1454
- if (!message.run_id) return false;
1455
- var hasContent = import_lodash4.default.some(message.content, function(content) {
1456
- var _content_text;
1457
- return content.type !== "text" || content.type === "text" && ((_content_text = content.text) === null || _content_text === void 0 ? void 0 : _content_text.value) !== "";
1458
- });
1459
- return !hasContent;
1460
- };
1461
1463
  // src/hooks/runs/usePollingContext/index.ts
1462
1464
  var import_react26 = require("react");
1463
1465
  // src/contexts/runs/PollingContext/index.tsx
@@ -1491,9 +1493,7 @@ var isRunActive = function(param) {
1491
1493
  if (!latestRunProps.latestRun) return false;
1492
1494
  if (progressStatuses.includes(latestRunProps.latestRun.status)) return true;
1493
1495
  if (stoppedStatuses.includes(latestRunProps.latestRun.status)) return false;
1494
- return isRunEditingMessage({
1495
- message: latestMessageProps.latestMessage
1496
- });
1496
+ return false;
1497
1497
  };
1498
1498
  var useIsRunActive = function() {
1499
1499
  var latestRunProps = useLatestRun();
@@ -1537,36 +1537,36 @@ var useIsRunActive = function() {
1537
1537
  ]);
1538
1538
  };
1539
1539
  // src/components/threads/Thread/Messages/Progress/index.tsx
1540
- var import_jsx_runtime34 = require("react/jsx-runtime");
1540
+ var import_jsx_runtime35 = require("react/jsx-runtime");
1541
1541
  var Progress = function() {
1542
1542
  var _useIsRunActive = useIsRunActive(), isRunActive2 = _useIsRunActive.isRunActive;
1543
1543
  var latestMessage = useLatestMessage().latestMessage;
1544
1544
  if (!latestMessage) return null;
1545
1545
  if (!isRunActive2) return null;
1546
1546
  if (latestMessage.role === "user") {
1547
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(StartingSkeleton, {});
1547
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(StartingSkeleton, {});
1548
1548
  }
1549
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(MessageGroupBase, {
1549
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(MessageGroupBase, {
1550
1550
  children: [
1551
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_themes28.Box, {
1551
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_themes29.Box, {
1552
1552
  pl: "5"
1553
1553
  }),
1554
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(StartingContentSkeleton, {})
1554
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(StartingContentSkeleton, {})
1555
1555
  ]
1556
1556
  });
1557
1557
  };
1558
1558
  // src/components/threads/Thread/Messages/Root/index.tsx
1559
- var import_themes29 = require("@radix-ui/themes");
1559
+ var import_themes30 = require("@radix-ui/themes");
1560
1560
  // src/hooks/misc/useInfiniteScroll/index.tsx
1561
1561
  var import_react29 = require("react");
1562
1562
  var import_react_intersection_observer = require("react-intersection-observer");
1563
1563
  // src/hooks/misc/useThrottledEffect/index.tsx
1564
- var import_lodash5 = __toESM(require("lodash"), 1);
1564
+ var import_lodash4 = __toESM(require("lodash"), 1);
1565
1565
  var import_react28 = require("react");
1566
1566
  var useThrottledEffect = function(cb, delay, additionalDeps) {
1567
1567
  var _cbRef;
1568
1568
  var cbRef = (0, import_react28.useRef)(cb);
1569
- var throttledCb = (0, import_react28.useCallback)(import_lodash5.default.throttle(function() {
1569
+ var throttledCb = (0, import_react28.useCallback)(import_lodash4.default.throttle(function() {
1570
1570
  for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1571
1571
  args[_key] = arguments[_key];
1572
1572
  }
@@ -1893,10 +1893,10 @@ var useCreateRun = function() {
1893
1893
  });
1894
1894
  };
1895
1895
  // src/lib/optimistic/isOptimistic.ts
1896
- var import_lodash6 = __toESM(require("lodash"), 1);
1896
+ var import_lodash5 = __toESM(require("lodash"), 1);
1897
1897
  var isOptimistic = function(param) {
1898
1898
  var id = param.id;
1899
- return import_lodash6.default.startsWith(id, "-");
1899
+ return import_lodash5.default.startsWith(id, "-");
1900
1900
  };
1901
1901
  // src/hooks/runs/useManageRuns/index.tsx
1902
1902
  var useManageRuns = function() {
@@ -1975,7 +1975,7 @@ var refetch = function() {
1975
1975
  queryClient = param.queryClient, threadContext = param.threadContext;
1976
1976
  return [
1977
1977
  4,
1978
- queryClient.invalidateQueries({
1978
+ queryClient.refetchQueries({
1979
1979
  queryKey: (_threadContext_defaultOptions_queries_queryKey = threadContext.defaultOptions.queries.queryKey) !== null && _threadContext_defaultOptions_queries_queryKey !== void 0 ? _threadContext_defaultOptions_queries_queryKey : [
1980
1980
  "messages",
1981
1981
  threadContext.variables
@@ -1986,7 +1986,7 @@ var refetch = function() {
1986
1986
  _state.sent();
1987
1987
  return [
1988
1988
  4,
1989
- queryClient.invalidateQueries({
1989
+ queryClient.refetchQueries({
1990
1990
  queryKey: (_threadContext_defaultOptions_queries_queryKey1 = threadContext.defaultOptions.queries.queryKey) !== null && _threadContext_defaultOptions_queries_queryKey1 !== void 0 ? _threadContext_defaultOptions_queries_queryKey1 : [
1991
1991
  "runs",
1992
1992
  threadContext.variables
@@ -2009,12 +2009,15 @@ var refetch = function() {
2009
2009
  var usePolling = function() {
2010
2010
  var threadContext = useSuperinterfaceContext();
2011
2011
  var queryClient = (0, import_react_query7.useQueryClient)();
2012
- var setIsPollRefetching = usePollingContext().setIsPollRefetching;
2012
+ var _usePollingContext = usePollingContext(), isPollRefetching = _usePollingContext.isPollRefetching, setIsPollRefetching = _usePollingContext.setIsPollRefetching;
2013
2013
  var isRunActiveProps = useIsRunActive();
2014
2014
  (0, import_react_use.useInterval)(/*#__PURE__*/ _async_to_generator(function() {
2015
2015
  return _ts_generator(this, function(_state) {
2016
2016
  switch(_state.label){
2017
2017
  case 0:
2018
+ if (isPollRefetching) return [
2019
+ 2
2020
+ ];
2018
2021
  setIsPollRefetching(true);
2019
2022
  return [
2020
2023
  4,
@@ -2050,7 +2053,6 @@ var usePolling = function() {
2050
2053
  return null;
2051
2054
  };
2052
2055
  // src/hooks/actions/useManageActions/index.tsx
2053
- var import_react_query9 = require("@tanstack/react-query");
2054
2056
  var import_react32 = require("react");
2055
2057
  // src/hooks/actions/useHandleAction/index.tsx
2056
2058
  var import_radash5 = require("radash");
@@ -2115,34 +2117,34 @@ var useHandleAction = function() {
2115
2117
  superinterfaceContext: superinterfaceContext
2116
2118
  })));
2117
2119
  return _object_spread_props(_object_spread({}, props), {
2118
- handleAction: (0, import_radash5.partob)(props.mutate, threadContext.variables)
2120
+ handleAction: (0, import_radash5.partob)(props.mutateAsync, threadContext.variables)
2119
2121
  });
2120
2122
  };
2121
2123
  // src/hooks/actions/useManageActions/index.tsx
2122
2124
  var useManageActions = function() {
2123
- var queryClient = (0, import_react_query9.useQueryClient)();
2124
- var threadContext = useSuperinterfaceContext();
2125
2125
  var latestRunProps = useLatestRun();
2126
2126
  var handleActionProps = useHandleAction();
2127
+ var _ref = _sliced_to_array((0, import_react32.useState)([]), 2), handledRunIds = _ref[0], setHandledRunIds = _ref[1];
2127
2128
  (0, import_react32.useEffect)(function() {
2128
2129
  if (handleActionProps.isPending) return;
2129
2130
  if (latestRunProps.isFetching) return;
2130
2131
  if (!latestRunProps.latestRun) return;
2131
2132
  if (latestRunProps.latestRun.status !== "requires_action") return;
2132
- var isMutating = queryClient.isMutating({
2133
- mutationKey: [
2134
- "handleAction",
2135
- threadContext.variables
2136
- ]
2133
+ if (handledRunIds.includes(latestRunProps.latestRun.id)) return;
2134
+ setHandledRunIds(function(prev) {
2135
+ return _to_consumable_array(prev).concat([
2136
+ latestRunProps.latestRun.id
2137
+ ]);
2137
2138
  });
2138
- if (isMutating) return;
2139
- console.log("requires action", {
2140
- latestRunProps: latestRunProps
2139
+ console.log("Requires action", {
2140
+ latestRunProps: latestRunProps,
2141
+ handleActionProps: handleActionProps
2141
2142
  });
2142
2143
  handleActionProps.handleAction({
2143
2144
  latestRun: latestRunProps.latestRun
2144
2145
  });
2145
2146
  }, [
2147
+ handledRunIds,
2146
2148
  handleActionProps,
2147
2149
  latestRunProps
2148
2150
  ]);
@@ -2156,7 +2158,7 @@ var useLifecycle = function() {
2156
2158
  return null;
2157
2159
  };
2158
2160
  // src/components/threads/Thread/Messages/Root/index.tsx
2159
- var import_jsx_runtime35 = require("react/jsx-runtime");
2161
+ var import_jsx_runtime36 = require("react/jsx-runtime");
2160
2162
  var Root = function(param) {
2161
2163
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2162
2164
  var _useMessages = useMessages(), isFetchingNextPage = _useMessages.isFetchingNextPage, hasNextPage = _useMessages.hasNextPage, fetchNextPage = _useMessages.fetchNextPage;
@@ -2166,7 +2168,7 @@ var Root = function(param) {
2166
2168
  hasNextPage: hasNextPage,
2167
2169
  fetchNextPage: fetchNextPage
2168
2170
  }), containerRef = _useInfiniteScroll.containerRef, loaderRef = _useInfiniteScroll.loaderRef;
2169
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_themes29.Flex, {
2171
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_themes30.Flex, {
2170
2172
  ref: containerRef,
2171
2173
  direction: "column-reverse",
2172
2174
  flexGrow: "1",
@@ -2175,10 +2177,10 @@ var Root = function(param) {
2175
2177
  }),
2176
2178
  children: [
2177
2179
  children,
2178
- hasNextPage && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_themes29.Flex, {
2180
+ hasNextPage && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_themes30.Flex, {
2179
2181
  ref: loaderRef
2180
2182
  }),
2181
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_themes29.Flex, {
2183
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_themes30.Flex, {
2182
2184
  flexShrink: "0",
2183
2185
  flexGrow: "1"
2184
2186
  })
@@ -2186,30 +2188,30 @@ var Root = function(param) {
2186
2188
  });
2187
2189
  };
2188
2190
  // src/components/threads/Thread/Messages/NextPageSkeleton.tsx
2189
- var import_jsx_runtime36 = require("react/jsx-runtime");
2191
+ var import_jsx_runtime37 = require("react/jsx-runtime");
2190
2192
  var NextPageSkeleton = function() {
2191
2193
  var hasNextPage = useMessages().hasNextPage;
2192
2194
  if (!hasNextPage) {
2193
2195
  return null;
2194
2196
  }
2195
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(MessagesSkeleton, {});
2197
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(MessagesSkeleton, {});
2196
2198
  };
2197
2199
  // src/components/threads/Thread/Messages/index.tsx
2198
- var import_jsx_runtime37 = require("react/jsx-runtime");
2200
+ var import_jsx_runtime38 = require("react/jsx-runtime");
2199
2201
  var Messages = function(param) {
2200
2202
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2201
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Root, {
2203
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Root, {
2202
2204
  style: style,
2203
2205
  children: [
2204
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_themes30.Flex, {
2206
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_themes31.Flex, {
2205
2207
  flexShrink: "0",
2206
2208
  height: "var(--space-3)"
2207
2209
  }),
2208
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Progress, {}),
2210
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Progress, {}),
2209
2211
  children,
2210
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Content3, {}),
2211
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(NextPageSkeleton, {}),
2212
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_themes30.Flex, {
2212
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Content3, {}),
2213
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(NextPageSkeleton, {}),
2214
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_themes31.Flex, {
2213
2215
  flexShrink: "0",
2214
2216
  flexGrow: "1"
2215
2217
  })
@@ -2220,10 +2222,10 @@ Messages.Root = Root;
2220
2222
  Messages.Message = Message;
2221
2223
  Messages.NextPageSkeleton = NextPageSkeleton;
2222
2224
  // src/components/threads/Thread/MessageForm/index.tsx
2223
- var import_themes33 = require("@radix-ui/themes");
2225
+ var import_themes34 = require("@radix-ui/themes");
2224
2226
  // src/components/threads/Thread/MessageForm/Submit/index.tsx
2225
2227
  var import_react_icons5 = require("@radix-ui/react-icons");
2226
- var import_themes31 = require("@radix-ui/themes");
2228
+ var import_themes32 = require("@radix-ui/themes");
2227
2229
  // src/hooks/messages/useMessageFormContext/index.ts
2228
2230
  var import_react34 = require("react");
2229
2231
  // src/contexts/messages/MessageFormContext/index.ts
@@ -2237,16 +2239,15 @@ var useMessageFormContext = function() {
2237
2239
  return (0, import_react34.useContext)(MessageFormContext);
2238
2240
  };
2239
2241
  // src/components/threads/Thread/MessageForm/Submit/index.tsx
2240
- var import_jsx_runtime38 = require("react/jsx-runtime");
2242
+ var import_jsx_runtime39 = require("react/jsx-runtime");
2241
2243
  var Submit = function() {
2242
2244
  var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading;
2243
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_themes31.Button, {
2245
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_themes32.IconButton, {
2244
2246
  type: "submit",
2245
- radius: "large",
2246
2247
  disabled: isDisabled || isLoading,
2247
- children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_themes31.Spinner, {
2248
+ children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_themes32.Spinner, {
2248
2249
  loading: isLoading,
2249
- children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react_icons5.ArrowUpIcon, {})
2250
+ children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_react_icons5.ArrowUpIcon, {})
2250
2251
  })
2251
2252
  });
2252
2253
  };
@@ -2255,7 +2256,7 @@ var import_react35 = require("react");
2255
2256
  var import_react_hook_form = require("react-hook-form");
2256
2257
  // src/hooks/messages/useCreateMessage/index.ts
2257
2258
  var import_radash8 = require("radash");
2258
- var import_react_query10 = require("@tanstack/react-query");
2259
+ var import_react_query9 = require("@tanstack/react-query");
2259
2260
  // src/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/index.ts
2260
2261
  var import_radash6 = require("radash");
2261
2262
  // src/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/data.ts
@@ -2402,10 +2403,10 @@ var useCreateMessage = function() {
2402
2403
  var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {
2403
2404
  onError: function() {}
2404
2405
  }, _ref_onError = _ref.onError, onError = _ref_onError === void 0 ? function() {} : _ref_onError;
2405
- var queryClient = (0, import_react_query10.useQueryClient)();
2406
+ var queryClient = (0, import_react_query9.useQueryClient)();
2406
2407
  var superinterfaceContext = useSuperinterfaceContext();
2407
2408
  var threadContext = useSuperinterfaceContext();
2408
- var props = (0, import_react_query10.useMutation)(_object_spread({
2409
+ var props = (0, import_react_query9.useMutation)(_object_spread({
2409
2410
  onMutate: onMutate2({
2410
2411
  queryClient: queryClient
2411
2412
  }),
@@ -2436,7 +2437,7 @@ var formOptions = {
2436
2437
  resolver: (0, import_zod2.zodResolver)(schema)
2437
2438
  };
2438
2439
  // src/components/threads/Thread/MessageForm/Root/index.tsx
2439
- var import_jsx_runtime39 = require("react/jsx-runtime");
2440
+ var import_jsx_runtime40 = require("react/jsx-runtime");
2440
2441
  var Root2 = function(param) {
2441
2442
  var children = param.children;
2442
2443
  var formProps = (0, import_react_hook_form.useForm)(formOptions);
@@ -2490,13 +2491,13 @@ var Root2 = function(param) {
2490
2491
  latestMessage,
2491
2492
  isLoading
2492
2493
  ]);
2493
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(MessageFormContext.Provider, {
2494
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(MessageFormContext.Provider, {
2494
2495
  value: {
2495
2496
  isDisabled: isDisabled,
2496
2497
  isLoading: isLoading
2497
2498
  },
2498
- children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_react_hook_form.FormProvider, _object_spread_props(_object_spread({}, formProps), {
2499
- children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("form", {
2499
+ children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_react_hook_form.FormProvider, _object_spread_props(_object_spread({}, formProps), {
2500
+ children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("form", {
2500
2501
  onSubmit: handleSubmit(onSubmit),
2501
2502
  children: children
2502
2503
  })
@@ -2509,15 +2510,15 @@ var import_react37 = require("react");
2509
2510
  // src/components/textareas/TextareaBase/index.tsx
2510
2511
  var import_react36 = require("react");
2511
2512
  var import_react_textarea_autosize = __toESM(require("react-textarea-autosize"), 1);
2512
- var import_jsx_runtime40 = require("react/jsx-runtime");
2513
+ var import_jsx_runtime41 = require("react/jsx-runtime");
2513
2514
  var UPSCALE_RATIO = 16 / 14;
2514
2515
  var TextareaBase = (0, import_react36.forwardRef)(function TextareaBase2(props, ref) {
2515
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_jsx_runtime40.Fragment, {
2516
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_jsx_runtime41.Fragment, {
2516
2517
  children: [
2517
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("style", {
2518
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("style", {
2518
2519
  children: ".superinterface-textarea { min-height: inherit; height: 30px; }\n.superinterface-textarea::placeholder { color: var(--gray-a10); }"
2519
2520
  }),
2520
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_react_textarea_autosize.default, _object_spread({
2521
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_react_textarea_autosize.default, _object_spread({
2521
2522
  ref: ref,
2522
2523
  className: "rt-reset superinterface-textarea",
2523
2524
  style: {
@@ -2541,21 +2542,21 @@ var TextareaBase = (0, import_react36.forwardRef)(function TextareaBase2(props,
2541
2542
  });
2542
2543
  // src/components/threads/Thread/MessageForm/Field/index.tsx
2543
2544
  var import_react_hook_form2 = require("react-hook-form");
2544
- var import_themes32 = require("@radix-ui/themes");
2545
- var import_jsx_runtime41 = require("react/jsx-runtime");
2545
+ var import_themes33 = require("@radix-ui/themes");
2546
+ var import_jsx_runtime42 = require("react/jsx-runtime");
2546
2547
  var Root3 = function(param) {
2547
2548
  var children = param.children;
2548
2549
  var _ref = (0, import_react_hook_form2.useFormContext)(), errors = _ref.formState.errors;
2549
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes32.Container, {
2550
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes33.Container, {
2550
2551
  size: "2",
2551
2552
  flexGrow: "0",
2552
- children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes32.Flex, {
2553
+ children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes33.Flex, {
2553
2554
  direction: "column",
2554
2555
  flexShrink: "0",
2555
- children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes32.Flex, {
2556
+ children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes33.Flex, {
2556
2557
  direction: "column",
2557
2558
  flexShrink: "0",
2558
- children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes32.Flex, {
2559
+ children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes33.Flex, {
2559
2560
  style: _object_spread({
2560
2561
  borderRadius: "var(--radius-2)",
2561
2562
  borderWidth: "1px",
@@ -2595,7 +2596,7 @@ var Control = function() {
2595
2596
  isDisabledPrevious,
2596
2597
  textareaProps
2597
2598
  ]);
2598
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TextareaBase, _object_spread_props(_object_spread({
2599
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(TextareaBase, _object_spread_props(_object_spread({
2599
2600
  minRows: 1,
2600
2601
  placeholder: "Message ".concat(assistantNameContext, "..."),
2601
2602
  disabled: isDisabled,
@@ -2619,26 +2620,26 @@ var Field = {
2619
2620
  Control: Control
2620
2621
  };
2621
2622
  // src/components/threads/Thread/MessageForm/index.tsx
2622
- var import_jsx_runtime42 = require("react/jsx-runtime");
2623
+ var import_jsx_runtime43 = require("react/jsx-runtime");
2623
2624
  var MessageForm = function() {
2624
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Root2, {
2625
- children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Field.Root, {
2625
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Root2, {
2626
+ children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Field.Root, {
2626
2627
  children: [
2627
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes33.Text, {
2628
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_themes34.Text, {
2628
2629
  size: "2",
2629
2630
  style: {
2630
2631
  flexGrow: 1
2631
2632
  },
2632
- children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes33.Flex, {
2633
+ children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_themes34.Flex, {
2633
2634
  flexGrow: "1",
2634
2635
  direction: "column",
2635
- children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Field.Control, {})
2636
+ children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Field.Control, {})
2636
2637
  })
2637
2638
  }),
2638
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes33.Flex, {
2639
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_themes34.Flex, {
2639
2640
  flexShrink: "0",
2640
2641
  align: "end",
2641
- children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Submit, {})
2642
+ children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Submit, {})
2642
2643
  })
2643
2644
  ]
2644
2645
  })
@@ -2648,14 +2649,14 @@ MessageForm.Root = Root2;
2648
2649
  MessageForm.Field = Field;
2649
2650
  MessageForm.Submit = Submit;
2650
2651
  // src/components/threads/Thread/Root/index.tsx
2651
- var import_themes34 = require("@radix-ui/themes");
2652
+ var import_themes35 = require("@radix-ui/themes");
2652
2653
  // src/components/runs/PollingProvider/index.tsx
2653
2654
  var import_react38 = require("react");
2654
- var import_jsx_runtime43 = require("react/jsx-runtime");
2655
+ var import_jsx_runtime44 = require("react/jsx-runtime");
2655
2656
  var PollingProvider = function(param) {
2656
2657
  var children = param.children;
2657
2658
  var _ref = _sliced_to_array((0, import_react38.useState)(false), 2), isPollRefetching = _ref[0], setIsPollRefetching = _ref[1];
2658
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(PollingContext.Provider, {
2659
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(PollingContext.Provider, {
2659
2660
  value: {
2660
2661
  isPollRefetching: isPollRefetching,
2661
2662
  setIsPollRefetching: setIsPollRefetching
@@ -2664,20 +2665,20 @@ var PollingProvider = function(param) {
2664
2665
  });
2665
2666
  };
2666
2667
  // src/components/threads/Thread/Provider/index.tsx
2667
- var import_jsx_runtime44 = require("react/jsx-runtime");
2668
+ var import_jsx_runtime45 = require("react/jsx-runtime");
2668
2669
  var Provider2 = function(args) {
2669
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(PollingProvider, {
2670
- children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(SuperinterfaceProvider, _object_spread({}, args))
2670
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(PollingProvider, {
2671
+ children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(SuperinterfaceProvider, _object_spread({}, args))
2671
2672
  });
2672
2673
  };
2673
2674
  // src/components/threads/Thread/Root/index.tsx
2674
- var import_jsx_runtime45 = require("react/jsx-runtime");
2675
+ var import_jsx_runtime46 = require("react/jsx-runtime");
2675
2676
  var Root4 = function(_param) {
2676
2677
  var children = _param.children, rest = _object_without_properties(_param, [
2677
2678
  "children"
2678
2679
  ]);
2679
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Provider2, _object_spread_props(_object_spread({}, rest), {
2680
- children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_themes34.Flex, {
2680
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Provider2, _object_spread_props(_object_spread({}, rest), {
2681
+ children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_themes35.Flex, {
2681
2682
  direction: "column",
2682
2683
  flexGrow: "1",
2683
2684
  children: children
@@ -2685,12 +2686,12 @@ var Root4 = function(_param) {
2685
2686
  }));
2686
2687
  };
2687
2688
  // src/components/threads/Thread/index.tsx
2688
- var import_jsx_runtime46 = require("react/jsx-runtime");
2689
+ var import_jsx_runtime47 = require("react/jsx-runtime");
2689
2690
  var Thread = function(props) {
2690
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Root4, _object_spread_props(_object_spread({}, props), {
2691
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(Root4, _object_spread_props(_object_spread({}, props), {
2691
2692
  children: [
2692
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Messages, {}),
2693
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(MessageForm, {})
2693
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Messages, {}),
2694
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(MessageForm, {})
2694
2695
  ]
2695
2696
  }));
2696
2697
  };
@@ -2702,8 +2703,6 @@ var import_react39 = require("react");
2702
2703
  var useMessageContext = function() {
2703
2704
  return (0, import_react39.useContext)(MessageContext);
2704
2705
  };
2705
- // src/components/threads/ThreadDialog/Root/index.tsx
2706
- var import_themes36 = require("@radix-ui/themes");
2707
2706
  // src/components/threads/ThreadDialog/Provider/index.tsx
2708
2707
  var import_react42 = require("react");
2709
2708
  // src/contexts/threads/ThreadDialogContext/index.ts
@@ -2718,12 +2717,12 @@ var useThreadDialogContext = function() {
2718
2717
  return (0, import_react41.useContext)(ThreadDialogContext);
2719
2718
  };
2720
2719
  // src/components/threads/ThreadDialog/Provider/index.tsx
2721
- var import_jsx_runtime47 = require("react/jsx-runtime");
2720
+ var import_jsx_runtime48 = require("react/jsx-runtime");
2722
2721
  var Provider3 = function(param) {
2723
2722
  var children = param.children;
2724
2723
  var threadDialogContext = useThreadDialogContext();
2725
2724
  var _ref = _sliced_to_array((0, import_react42.useState)(threadDialogContext.isOpen), 2), isOpen = _ref[0], setIsOpen = _ref[1];
2726
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(ThreadDialogContext.Provider, {
2725
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(ThreadDialogContext.Provider, {
2727
2726
  value: {
2728
2727
  isOpen: isOpen,
2729
2728
  setIsOpen: setIsOpen
@@ -2736,27 +2735,27 @@ var import_react43 = require("react");
2736
2735
  var Toast2 = __toESM(require("@radix-ui/react-toast"), 1);
2737
2736
  // src/components/toasts/ToastsProvider/CustomToast.tsx
2738
2737
  var Toast = __toESM(require("@radix-ui/react-toast"), 1);
2739
- var import_themes35 = require("@radix-ui/themes");
2738
+ var import_themes36 = require("@radix-ui/themes");
2740
2739
  var import_react_icons6 = require("@radix-ui/react-icons");
2741
- var import_jsx_runtime48 = require("react/jsx-runtime");
2740
+ var import_jsx_runtime49 = require("react/jsx-runtime");
2742
2741
  var CustomToast = function(param) {
2743
2742
  var toast = param.toast;
2744
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Toast.Root, {
2745
- children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_themes35.Card, {
2746
- children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Toast.Title, {
2747
- children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_themes35.Flex, {
2743
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Toast.Root, {
2744
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes36.Card, {
2745
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Toast.Title, {
2746
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_themes36.Flex, {
2748
2747
  children: [
2749
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_themes35.Flex, {
2748
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes36.Flex, {
2750
2749
  pr: "2",
2751
2750
  height: "14px",
2752
2751
  align: "center",
2753
- children: toast.type === "success" ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_react_icons6.CheckCircledIcon, {
2752
+ children: toast.type === "success" ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_react_icons6.CheckCircledIcon, {
2754
2753
  color: "var(--mint-9)"
2755
- }) : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_react_icons6.CrossCircledIcon, {
2754
+ }) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_react_icons6.CrossCircledIcon, {
2756
2755
  color: "var(--red-9)"
2757
2756
  })
2758
2757
  }),
2759
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_themes35.Text, {
2758
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes36.Text, {
2760
2759
  weight: "medium",
2761
2760
  size: "1",
2762
2761
  children: toast.message
@@ -2768,7 +2767,7 @@ var CustomToast = function(param) {
2768
2767
  });
2769
2768
  };
2770
2769
  // src/components/toasts/ToastsProvider/index.tsx
2771
- var import_jsx_runtime49 = require("react/jsx-runtime");
2770
+ var import_jsx_runtime50 = require("react/jsx-runtime");
2772
2771
  var ToastsProvider = function(param) {
2773
2772
  var children = param.children;
2774
2773
  var _ref = _sliced_to_array((0, import_react43.useState)([]), 2), toasts = _ref[0], setToasts = _ref[1];
@@ -2779,20 +2778,20 @@ var ToastsProvider = function(param) {
2779
2778
  ]);
2780
2779
  });
2781
2780
  }, []);
2782
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ToastsContext.Provider, {
2781
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ToastsContext.Provider, {
2783
2782
  value: {
2784
2783
  toasts: toasts,
2785
2784
  addToast: addToast
2786
2785
  },
2787
- children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Toast2.Provider, {
2786
+ children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Toast2.Provider, {
2788
2787
  children: [
2789
2788
  children,
2790
2789
  Array.from(toasts).map(function(toast, index) {
2791
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(CustomToast, {
2790
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(CustomToast, {
2792
2791
  toast: toast
2793
2792
  }, index);
2794
2793
  }),
2795
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Toast2.Viewport, {
2794
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Toast2.Viewport, {
2796
2795
  style: {
2797
2796
  position: "absolute",
2798
2797
  bottom: 0,
@@ -2814,34 +2813,26 @@ var ToastsProvider = function(param) {
2814
2813
  });
2815
2814
  };
2816
2815
  // src/components/threads/ThreadDialog/Root/index.tsx
2817
- var import_jsx_runtime50 = require("react/jsx-runtime");
2816
+ var import_jsx_runtime51 = require("react/jsx-runtime");
2818
2817
  var Root6 = function(param) {
2819
2818
  var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2820
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ToastsProvider, {
2821
- children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Provider3, {
2822
- children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_themes36.Flex, {
2823
- direction: "column",
2824
- justify: "end",
2825
- align: "end",
2826
- position: "fixed",
2827
- style: _object_spread({
2828
- bottom: "24px",
2829
- right: "24px",
2830
- top: "24px",
2831
- zIndex: 9999999999
2832
- }, style),
2833
- children: children
2834
- })
2819
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ToastsProvider, {
2820
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Provider3, {
2821
+ children: children
2835
2822
  })
2836
2823
  });
2837
2824
  };
2838
2825
  // src/components/threads/ThreadDialog/Trigger/index.tsx
2839
2826
  var import_themes37 = require("@radix-ui/themes");
2840
- var import_jsx_runtime51 = require("react/jsx-runtime");
2827
+ var import_jsx_runtime52 = require("react/jsx-runtime");
2841
2828
  var Trigger = function(param) {
2842
- var children = param.children;
2843
- var setIsOpen = useThreadDialogContext().setIsOpen;
2844
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes37.Flex, {
2829
+ var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2830
+ var _useThreadDialogContext = useThreadDialogContext(), setIsOpen = _useThreadDialogContext.setIsOpen, isOpen = _useThreadDialogContext.isOpen;
2831
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_themes37.Flex, {
2832
+ display: {
2833
+ initial: isOpen ? "none" : "flex",
2834
+ sm: "flex"
2835
+ },
2845
2836
  onClick: function() {
2846
2837
  return setIsOpen(function(prev) {
2847
2838
  return !prev;
@@ -2849,66 +2840,143 @@ var Trigger = function(param) {
2849
2840
  },
2850
2841
  direction: "column",
2851
2842
  flexShrink: "0",
2843
+ justify: "end",
2844
+ align: "end",
2845
+ position: "fixed",
2846
+ bottom: "24px",
2847
+ right: "24px",
2848
+ style: _object_spread({
2849
+ zIndex: 9999999999
2850
+ }, style),
2852
2851
  children: children
2853
2852
  });
2854
2853
  };
2855
2854
  // src/components/threads/ThreadDialog/Button/index.tsx
2856
2855
  var import_themes38 = require("@radix-ui/themes");
2857
2856
  var import_react_icons7 = require("@radix-ui/react-icons");
2858
- var import_jsx_runtime52 = require("react/jsx-runtime");
2859
- var Button3 = function() {
2860
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_themes38.IconButton, {
2857
+ var import_jsx_runtime53 = require("react/jsx-runtime");
2858
+ var Button2 = function() {
2859
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes38.IconButton, {
2861
2860
  size: "4",
2862
2861
  radius: "full",
2863
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_icons7.ChatBubbleIcon, {})
2862
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_icons7.ChatBubbleIcon, {})
2864
2863
  });
2865
2864
  };
2866
2865
  // src/components/threads/ThreadDialog/Content/index.tsx
2866
+ var import_themes40 = require("@radix-ui/themes");
2867
+ // src/components/threads/ThreadDialog/Close/index.tsx
2868
+ var import_react_icons8 = require("@radix-ui/react-icons");
2867
2869
  var import_themes39 = require("@radix-ui/themes");
2868
- var import_jsx_runtime53 = require("react/jsx-runtime");
2870
+ var import_jsx_runtime54 = require("react/jsx-runtime");
2871
+ var Close = function() {
2872
+ var _useThreadDialogContext = useThreadDialogContext(), setIsOpen = _useThreadDialogContext.setIsOpen, isOpen = _useThreadDialogContext.isOpen;
2873
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes39.Flex, {
2874
+ display: {
2875
+ initial: isOpen ? "flex" : "none",
2876
+ sm: "none"
2877
+ },
2878
+ onClick: function() {
2879
+ return setIsOpen(function(prev) {
2880
+ return !prev;
2881
+ });
2882
+ },
2883
+ direction: "column",
2884
+ flexShrink: "0",
2885
+ justify: "end",
2886
+ align: "end",
2887
+ position: "absolute",
2888
+ top: "24px",
2889
+ right: "24px",
2890
+ style: {
2891
+ zIndex: 9999999999
2892
+ },
2893
+ children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes39.IconButton, {
2894
+ size: "2",
2895
+ variant: "soft",
2896
+ children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_icons8.Cross1Icon, {})
2897
+ })
2898
+ });
2899
+ };
2900
+ // src/components/threads/ThreadDialog/Content/index.tsx
2901
+ var import_jsx_runtime55 = require("react/jsx-runtime");
2869
2902
  var Root7 = function(param) {
2870
- var children = param.children;
2903
+ var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2871
2904
  var isOpen = useThreadDialogContext().isOpen;
2872
2905
  if (!isOpen) return null;
2873
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes39.Card, {
2874
- mb: "3",
2875
- style: {
2876
- display: "flex",
2877
- flexGrow: 1,
2878
- width: "100vw",
2879
- maxWidth: "400px",
2880
- maxHeight: "720px"
2906
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes40.Flex, {
2907
+ direction: "column",
2908
+ justify: "end",
2909
+ position: "fixed",
2910
+ bottom: {
2911
+ initial: "0",
2912
+ sm: "72px"
2913
+ },
2914
+ right: {
2915
+ initial: "0",
2916
+ sm: "24px"
2917
+ },
2918
+ top: {
2919
+ initial: "0",
2920
+ sm: "24px"
2921
+ },
2922
+ maxHeight: {
2923
+ initial: void 0,
2924
+ sm: "720px"
2925
+ },
2926
+ maxWidth: {
2927
+ initial: void 0,
2928
+ sm: "400px"
2881
2929
  },
2882
- children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes39.Inset, {
2883
- clip: "padding-box",
2884
- side: "all",
2885
- pb: "current",
2930
+ width: "100%",
2931
+ style: _object_spread({
2932
+ zIndex: 9999999999
2933
+ }, style),
2934
+ children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_themes40.Card, {
2935
+ mb: {
2936
+ initial: void 0,
2937
+ sm: "3"
2938
+ },
2886
2939
  style: {
2940
+ position: "relative",
2887
2941
  display: "flex",
2888
2942
  flexGrow: 1
2889
2943
  },
2890
- children: children
2944
+ children: [
2945
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes40.Inset, {
2946
+ clip: "padding-box",
2947
+ side: "all",
2948
+ pb: "current",
2949
+ style: {
2950
+ display: "flex",
2951
+ flexGrow: 1
2952
+ },
2953
+ children: children
2954
+ }),
2955
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Close, {})
2956
+ ]
2891
2957
  })
2892
2958
  });
2893
2959
  };
2894
- var Content4 = function() {
2895
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Root7, {
2896
- children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Thread.Root, {
2960
+ var Content4 = function(param) {
2961
+ var _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
2962
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Root7, {
2963
+ style: style,
2964
+ children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(Thread.Root, {
2897
2965
  children: [
2898
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Thread.Messages, {
2966
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Thread.Messages, {
2899
2967
  style: {
2900
2968
  paddingTop: "var(--space-5)",
2901
2969
  paddingRight: "var(--space-5)",
2902
2970
  paddingLeft: "var(--space-5)"
2903
2971
  }
2904
2972
  }),
2905
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes39.Flex, {
2973
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes40.Flex, {
2906
2974
  direction: "column",
2907
2975
  pl: "5",
2908
2976
  pr: "5",
2909
2977
  pb: "3",
2910
2978
  flexShrink: "0",
2911
- children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Thread.MessageForm, {})
2979
+ children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Thread.MessageForm, {})
2912
2980
  })
2913
2981
  ]
2914
2982
  })
@@ -2916,24 +2984,24 @@ var Content4 = function() {
2916
2984
  };
2917
2985
  Content4.Root = Root7;
2918
2986
  // src/components/threads/ThreadDialog/index.tsx
2919
- var import_jsx_runtime54 = require("react/jsx-runtime");
2987
+ var import_jsx_runtime56 = require("react/jsx-runtime");
2920
2988
  var ThreadDialog = function() {
2921
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Root6, {
2989
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(Root6, {
2922
2990
  children: [
2923
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Content4, {}),
2924
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Trigger, {
2925
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Button3, {})
2991
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Content4, {}),
2992
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Trigger, {
2993
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Button2, {})
2926
2994
  })
2927
2995
  ]
2928
2996
  });
2929
2997
  };
2930
2998
  ThreadDialog.Root = Root6;
2931
2999
  ThreadDialog.Trigger = Trigger;
2932
- ThreadDialog.Button = Button3;
3000
+ ThreadDialog.Button = Button2;
2933
3001
  ThreadDialog.Content = Content4;
2934
3002
  // src/components/threads/AudioThread/Root/index.tsx
2935
3003
  var import_runtime = require("regenerator-runtime/runtime");
2936
- var import_themes40 = require("@radix-ui/themes");
3004
+ var import_themes41 = require("@radix-ui/themes");
2937
3005
  // src/contexts/threads/AudioThreadContext/index.ts
2938
3006
  var import_react44 = require("react");
2939
3007
  var AudioThreadContext = (0, import_react44.createContext)({
@@ -3205,7 +3273,7 @@ var isHtmlAudioSupported = !unsupportedNames.includes(((_this = (0, import_detec
3205
3273
  // src/hooks/audioThreads/useMessageAudio/index.ts
3206
3274
  var useMessageAudio = function(param) {
3207
3275
  var onEnd = param.onEnd;
3208
- var _ref = _sliced_to_array((0, import_react47.useState)([]), 2), playedMessageIds = _ref[0], setPlayedMessageIds = _ref[1];
3276
+ var _ref = _sliced_to_array((0, import_react47.useState)([]), 2), playedMessages = _ref[0], setPlayedMessages = _ref[1];
3209
3277
  var audioPlayer = (0, import_react_use_audio_player2.useAudioPlayer)();
3210
3278
  var superinterfaceContext = useSuperinterfaceContext();
3211
3279
  var latestMessageProps = useLatestMessage();
@@ -3213,14 +3281,19 @@ var useMessageAudio = function(param) {
3213
3281
  if (audioPlayer.playing) return;
3214
3282
  if (!latestMessageProps.latestMessage) return;
3215
3283
  if (latestMessageProps.latestMessage.role !== "assistant") return;
3216
- if (playedMessageIds.includes(latestMessageProps.latestMessage.id)) return;
3284
+ if (playedMessages.find(function(pm) {
3285
+ return pm.id === latestMessageProps.latestMessage.id || isOptimistic({
3286
+ id: pm.id
3287
+ }) && pm.content === latestMessageProps.latestMessage.content;
3288
+ })) return;
3289
+ if (playedMessages.includes(latestMessageProps.latestMessage)) return;
3217
3290
  var input2 = input({
3218
3291
  message: latestMessageProps.latestMessage
3219
3292
  });
3220
3293
  if (!input2) return;
3221
- setPlayedMessageIds(function(prev) {
3294
+ setPlayedMessages(function(prev) {
3222
3295
  return _to_consumable_array(prev).concat([
3223
- latestMessageProps.latestMessage.id
3296
+ latestMessageProps.latestMessage
3224
3297
  ]);
3225
3298
  });
3226
3299
  audioPlayer.load("".concat(superinterfaceContext.baseUrl, "/tts?input=").concat(input2), {
@@ -3240,7 +3313,7 @@ var useMessageAudio = function(param) {
3240
3313
  superinterfaceContext,
3241
3314
  latestMessageProps,
3242
3315
  audioPlayer,
3243
- playedMessageIds,
3316
+ playedMessages,
3244
3317
  onEnd
3245
3318
  ]);
3246
3319
  var isInited = (0, import_react47.useRef)(false);
@@ -3280,7 +3353,7 @@ var useMessageAudio = function(param) {
3280
3353
  });
3281
3354
  };
3282
3355
  // src/components/threads/AudioThread/Root/index.tsx
3283
- var import_jsx_runtime55 = require("react/jsx-runtime");
3356
+ var import_jsx_runtime57 = require("react/jsx-runtime");
3284
3357
  var Root8 = function(param) {
3285
3358
  var children = param.children;
3286
3359
  useLifecycle();
@@ -3340,62 +3413,36 @@ var Root8 = function(param) {
3340
3413
  createMessageProps: createMessageProps,
3341
3414
  messageAudioProps: messageAudioProps
3342
3415
  }).status;
3343
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(AudioThreadContext.Provider, {
3416
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(AudioThreadContext.Provider, {
3344
3417
  value: {
3345
3418
  status: status,
3346
3419
  recorderProps: recorderProps,
3347
3420
  messageAudioProps: messageAudioProps
3348
3421
  },
3349
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_themes40.Flex, {
3422
+ children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes41.Flex, {
3350
3423
  direction: "column",
3351
3424
  flexGrow: "1",
3352
- p: "5",
3425
+ p: "9",
3353
3426
  children: children
3354
3427
  })
3355
3428
  });
3356
3429
  };
3357
3430
  // src/components/threads/AudioThread/Visualization/index.tsx
3358
- var import_themes41 = require("@radix-ui/themes");
3431
+ var import_themes43 = require("@radix-ui/themes");
3359
3432
  // src/hooks/threads/useAudioThreadContext/index.ts
3360
3433
  var import_react48 = require("react");
3361
3434
  var useAudioThreadContext = function() {
3362
3435
  return (0, import_react48.useContext)(AudioThreadContext);
3363
3436
  };
3364
- // src/components/threads/AudioThread/Visualization/index.tsx
3365
- var import_jsx_runtime56 = require("react/jsx-runtime");
3366
- var Visualization = function() {
3367
- var audioThreadContext = useAudioThreadContext();
3368
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes41.Flex, {
3369
- direction: "column",
3370
- align: "center",
3371
- justify: "center",
3372
- mb: "3",
3373
- flexGrow: "1",
3374
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_themes41.Flex, {
3375
- align: "center",
3376
- justify: "center",
3377
- height: "200px",
3378
- width: "200px",
3379
- style: {
3380
- backgroundColor: "var(--".concat(audioThreadContext.status === "playing" ? "mint" : "gray", "-4)"),
3381
- borderRadius: "9999px"
3382
- }
3383
- })
3384
- });
3385
- };
3386
- // src/components/threads/AudioThread/Form/index.tsx
3387
- var import_react_icons9 = require("@radix-ui/react-icons");
3388
- var import_themes44 = require("@radix-ui/themes");
3389
- // src/components/threads/AudioThread/Form/Visualizer/index.tsx
3390
- var import_lodash7 = __toESM(require("lodash"), 1);
3437
+ // src/components/threads/AudioThread/BarsVisualizer/index.tsx
3438
+ var import_lodash6 = __toESM(require("lodash"), 1);
3391
3439
  var import_themes42 = require("@radix-ui/themes");
3392
3440
  var import_react49 = require("react");
3393
3441
  var import_radash10 = require("radash");
3394
- var import_jsx_runtime57 = require("react/jsx-runtime");
3442
+ var import_jsx_runtime58 = require("react/jsx-runtime");
3395
3443
  var barCount = 4;
3396
- var Visualizer = function() {
3397
- var audioThreadContext = useAudioThreadContext();
3398
- var visualizationAnalyser = audioThreadContext.recorderProps.visualizationAnalyser;
3444
+ var BarsVisualizer = function(param) {
3445
+ var visualizationAnalyser = param.visualizationAnalyser, color = param.color, height = param.height, barWidth = param.barWidth;
3399
3446
  var _ref = _sliced_to_array((0, import_react49.useState)(function() {
3400
3447
  return new AudioContext().createAnalyser();
3401
3448
  }), 1), emptyVisualizer = _ref[0];
@@ -3406,7 +3453,7 @@ var Visualizer = function() {
3406
3453
  visualizationAnalyser2.getByteFrequencyData(frequencyData);
3407
3454
  var clusteredFrequencyData = (0, import_radash10.cluster)(frequencyData, frequencyData.length / barCount);
3408
3455
  setBarHeights(clusteredFrequencyData.map(function(frequencyDataCluster) {
3409
- return import_lodash7.default.mean(frequencyDataCluster) / 255 * 100;
3456
+ return import_lodash6.default.mean(frequencyDataCluster) / 255 * 100;
3410
3457
  }));
3411
3458
  requestAnimationFrame(function() {
3412
3459
  return draw({
@@ -3423,7 +3470,7 @@ var Visualizer = function() {
3423
3470
  visualizationAnalyser,
3424
3471
  emptyVisualizer
3425
3472
  ]);
3426
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes42.Grid, {
3473
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes42.Grid, {
3427
3474
  columns: "".concat(barCount),
3428
3475
  gap: "1",
3429
3476
  width: "auto",
@@ -3432,18 +3479,18 @@ var Visualizer = function() {
3432
3479
  gridTemplateColumns: "repeat(4, minmax(0, 1fr))"
3433
3480
  },
3434
3481
  children: barHeights.map(function(barHeight, index) {
3435
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes42.Flex, {
3482
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes42.Flex, {
3436
3483
  direction: "column",
3437
3484
  align: "center",
3438
3485
  justify: "center",
3439
- height: "20px",
3440
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_themes42.Flex, {
3486
+ height: height,
3487
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes42.Flex, {
3441
3488
  minHeight: "50%",
3442
3489
  maxHeight: "100%",
3443
3490
  height: "".concat(barHeight + 20, "%"),
3444
- width: "12px",
3491
+ width: barWidth,
3445
3492
  style: {
3446
- backgroundColor: "var(--".concat(audioThreadContext.status === "recording" ? "mint" : "gray", "-11)"),
3493
+ backgroundColor: "var(--".concat(color, "-11)"),
3447
3494
  borderRadius: "var(--radius-6)"
3448
3495
  }
3449
3496
  })
@@ -3451,32 +3498,63 @@ var Visualizer = function() {
3451
3498
  })
3452
3499
  });
3453
3500
  };
3501
+ // src/components/threads/AudioThread/Visualization/index.tsx
3502
+ var import_jsx_runtime59 = require("react/jsx-runtime");
3503
+ var Visualization = function() {
3504
+ var audioThreadContext = useAudioThreadContext();
3505
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_themes43.Flex, {
3506
+ direction: "column",
3507
+ align: "center",
3508
+ justify: "center",
3509
+ mb: "3",
3510
+ flexGrow: "1",
3511
+ children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_themes43.Flex, {
3512
+ align: "center",
3513
+ justify: "center",
3514
+ height: "200px",
3515
+ width: "200px",
3516
+ style: {
3517
+ backgroundColor: "var(--".concat(audioThreadContext.status === "playing" ? "mint" : "gray", "-4)"),
3518
+ borderRadius: "9999px"
3519
+ },
3520
+ children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(BarsVisualizer, {
3521
+ visualizationAnalyser: audioThreadContext.messageAudioProps.visualizationAnalyser,
3522
+ color: audioThreadContext.status === "playing" ? "mint" : "gray",
3523
+ height: "40px",
3524
+ barWidth: "24px"
3525
+ })
3526
+ })
3527
+ });
3528
+ };
3529
+ // src/components/threads/AudioThread/Form/index.tsx
3530
+ var import_react_icons10 = require("@radix-ui/react-icons");
3531
+ var import_themes45 = require("@radix-ui/themes");
3454
3532
  // src/components/threads/AudioThread/Form/ActionButton/index.tsx
3455
- var import_themes43 = require("@radix-ui/themes");
3456
- var import_react_icons8 = require("@radix-ui/react-icons");
3457
- var import_jsx_runtime58 = require("react/jsx-runtime");
3533
+ var import_themes44 = require("@radix-ui/themes");
3534
+ var import_react_icons9 = require("@radix-ui/react-icons");
3535
+ var import_jsx_runtime60 = require("react/jsx-runtime");
3458
3536
  var ActionButton = function() {
3459
3537
  var audioThreadContext = useAudioThreadContext();
3460
3538
  if (audioThreadContext.status === "recording") {
3461
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_themes43.Flex, {
3539
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_themes44.Flex, {
3462
3540
  align: "center",
3463
3541
  children: [
3464
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.Flex, {
3542
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_themes44.Flex, {
3465
3543
  mr: "3",
3466
3544
  ml: "-7",
3467
- children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3545
+ children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_themes44.IconButton, {
3468
3546
  onClick: audioThreadContext.recorderProps.pause,
3469
3547
  color: "gray",
3470
3548
  radius: "full",
3471
3549
  size: "1",
3472
- children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_icons8.PauseIcon, {})
3550
+ children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_icons9.PauseIcon, {})
3473
3551
  })
3474
3552
  }),
3475
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.Tooltip, {
3553
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_themes44.Tooltip, {
3476
3554
  open: true,
3477
3555
  content: "Send your message",
3478
3556
  side: "bottom",
3479
- children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3557
+ children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_themes44.IconButton, {
3480
3558
  onClick: audioThreadContext.recorderProps.stop,
3481
3559
  color: "gray",
3482
3560
  highContrast: true,
@@ -3485,14 +3563,14 @@ var ActionButton = function() {
3485
3563
  style: {
3486
3564
  border: "2px solid var(--gray-8)"
3487
3565
  },
3488
- children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_icons8.ArrowUpIcon, {})
3566
+ children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_icons9.ArrowUpIcon, {})
3489
3567
  })
3490
3568
  })
3491
3569
  ]
3492
3570
  });
3493
3571
  }
3494
3572
  if (audioThreadContext.status === "recorderPaused") {
3495
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3573
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_themes44.IconButton, {
3496
3574
  onClick: audioThreadContext.recorderProps.resume,
3497
3575
  color: "red",
3498
3576
  radius: "full",
@@ -3500,11 +3578,11 @@ var ActionButton = function() {
3500
3578
  style: {
3501
3579
  border: "2px solid var(--gray-8)"
3502
3580
  },
3503
- children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_icons8.ResumeIcon, {})
3581
+ children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_icons9.ResumeIcon, {})
3504
3582
  });
3505
3583
  }
3506
3584
  if (audioThreadContext.status === "idle") {
3507
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3585
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_themes44.IconButton, {
3508
3586
  onClick: function() {
3509
3587
  return audioThreadContext.recorderProps.start();
3510
3588
  },
@@ -3517,7 +3595,7 @@ var ActionButton = function() {
3517
3595
  });
3518
3596
  }
3519
3597
  if (audioThreadContext.status === "playing") {
3520
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3598
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_themes44.IconButton, {
3521
3599
  onClick: function() {
3522
3600
  return audioThreadContext.messageAudioProps.pause();
3523
3601
  },
@@ -3527,11 +3605,11 @@ var ActionButton = function() {
3527
3605
  style: {
3528
3606
  border: "2px solid var(--gray-8)"
3529
3607
  },
3530
- children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_icons8.PauseIcon, {})
3608
+ children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_icons9.PauseIcon, {})
3531
3609
  });
3532
3610
  }
3533
3611
  if (audioThreadContext.status === "playerPaused") {
3534
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3612
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_themes44.IconButton, {
3535
3613
  onClick: function() {
3536
3614
  return audioThreadContext.messageAudioProps.play();
3537
3615
  },
@@ -3541,10 +3619,10 @@ var ActionButton = function() {
3541
3619
  style: {
3542
3620
  border: "2px solid var(--gray-8)"
3543
3621
  },
3544
- children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_icons8.ResumeIcon, {})
3622
+ children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_icons9.ResumeIcon, {})
3545
3623
  });
3546
3624
  }
3547
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_themes43.IconButton, {
3625
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_themes44.IconButton, {
3548
3626
  size: "4",
3549
3627
  color: "red",
3550
3628
  radius: "full",
@@ -3555,49 +3633,54 @@ var ActionButton = function() {
3555
3633
  });
3556
3634
  };
3557
3635
  // src/components/threads/AudioThread/Form/index.tsx
3558
- var import_jsx_runtime59 = require("react/jsx-runtime");
3636
+ var import_jsx_runtime61 = require("react/jsx-runtime");
3559
3637
  var Form = function() {
3560
3638
  var audioThreadContext = useAudioThreadContext();
3561
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_themes44.Flex, {
3639
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_themes45.Flex, {
3562
3640
  direction: "column",
3563
3641
  align: "center",
3564
3642
  children: [
3565
- /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_themes44.Flex, {
3643
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_themes45.Flex, {
3566
3644
  pb: "3",
3567
3645
  align: "center",
3568
3646
  children: [
3569
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_themes44.Flex, {
3647
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_themes45.Flex, {
3570
3648
  ml: "-5",
3571
3649
  mr: "2",
3572
3650
  align: "center",
3573
- children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react_icons9.SpeakerModerateIcon, {
3651
+ children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_icons10.SpeakerModerateIcon, {
3574
3652
  style: {
3575
3653
  color: "var(--".concat(audioThreadContext.status === "recording" ? "mint" : "gray", "-12)")
3576
3654
  }
3577
3655
  })
3578
3656
  }),
3579
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_themes44.Flex, {
3657
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_themes45.Flex, {
3580
3658
  px: "2",
3581
3659
  py: "1",
3582
3660
  style: {
3583
3661
  backgroundColor: "var(--".concat(audioThreadContext.status === "recording" ? "mint" : "gray", "-4)"),
3584
3662
  borderRadius: "var(--radius-6)"
3585
3663
  },
3586
- children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Visualizer, {})
3664
+ children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(BarsVisualizer, {
3665
+ visualizationAnalyser: audioThreadContext.recorderProps.visualizationAnalyser,
3666
+ color: audioThreadContext.status === "recording" ? "mint" : "gray",
3667
+ height: "20px",
3668
+ barWidth: "12px"
3669
+ })
3587
3670
  })
3588
3671
  ]
3589
3672
  }),
3590
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(ActionButton, {})
3673
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ActionButton, {})
3591
3674
  ]
3592
3675
  });
3593
3676
  };
3594
3677
  // src/components/threads/AudioThread/index.tsx
3595
- var import_jsx_runtime60 = require("react/jsx-runtime");
3678
+ var import_jsx_runtime62 = require("react/jsx-runtime");
3596
3679
  var AudioThread = function(props) {
3597
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(Root8, _object_spread_props(_object_spread({}, props), {
3680
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(Root8, _object_spread_props(_object_spread({}, props), {
3598
3681
  children: [
3599
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Visualization, {}),
3600
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Form, {})
3682
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Visualization, {}),
3683
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Form, {})
3601
3684
  ]
3602
3685
  }));
3603
3686
  };
@@ -3605,22 +3688,22 @@ AudioThread.Root = Root8;
3605
3688
  AudioThread.Visualization = Visualization;
3606
3689
  AudioThread.Form = Form;
3607
3690
  // src/components/threads/AudioThreadDialog/index.tsx
3608
- var import_jsx_runtime61 = require("react/jsx-runtime");
3691
+ var import_jsx_runtime63 = require("react/jsx-runtime");
3609
3692
  var AudioThreadDialog = function() {
3610
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(Root6, {
3693
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(Root6, {
3611
3694
  children: [
3612
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Content4.Root, {
3613
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(AudioThread, {})
3695
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Content4.Root, {
3696
+ children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(AudioThread, {})
3614
3697
  }),
3615
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Trigger, {
3616
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Button3, {})
3698
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Trigger, {
3699
+ children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Button2, {})
3617
3700
  })
3618
3701
  ]
3619
3702
  });
3620
3703
  };
3621
3704
  AudioThreadDialog.Root = Root6;
3622
3705
  AudioThreadDialog.Trigger = Trigger;
3623
- AudioThreadDialog.Button = Button3;
3706
+ AudioThreadDialog.Button = Button2;
3624
3707
  AudioThreadDialog.Content = Content4;
3625
3708
  // src/components/suggestions/Suggestions/index.tsx
3626
3709
  var import_react51 = require("react");
@@ -3628,15 +3711,15 @@ var import_react51 = require("react");
3628
3711
  var import_react50 = require("react");
3629
3712
  var import_radash11 = require("radash");
3630
3713
  var import_react_children_utilities = require("react-children-utilities");
3631
- var import_themes46 = require("@radix-ui/themes");
3714
+ var import_themes47 = require("@radix-ui/themes");
3632
3715
  // src/components/suggestions/Suggestions/Item.tsx
3633
- var import_react_icons10 = require("@radix-ui/react-icons");
3634
- var import_themes45 = require("@radix-ui/themes");
3635
- var import_jsx_runtime62 = require("react/jsx-runtime");
3716
+ var import_react_icons11 = require("@radix-ui/react-icons");
3717
+ var import_themes46 = require("@radix-ui/themes");
3718
+ var import_jsx_runtime64 = require("react/jsx-runtime");
3636
3719
  var Item = function(param) {
3637
3720
  var suggestion = param.suggestion, isDisabled = param.isDisabled;
3638
3721
  var _useCreateMessage = useCreateMessage(), createMessage = _useCreateMessage.createMessage, isPending = _useCreateMessage.isPending;
3639
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Content5, {
3722
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Content5, {
3640
3723
  onClick: function() {
3641
3724
  createMessage({
3642
3725
  // @ts-ignore-next-line
@@ -3650,26 +3733,35 @@ var Item = function(param) {
3650
3733
  };
3651
3734
  var Content5 = function(param) {
3652
3735
  var onClick = param.onClick, isDisabled = param.isDisabled, isPending = param.isPending, children = param.children;
3653
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_themes45.Button, {
3736
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_themes46.Button, {
3654
3737
  variant: "soft",
3655
3738
  onClick: onClick,
3656
3739
  disabled: isDisabled,
3740
+ style: {
3741
+ minHeight: "var(--base-button-height)",
3742
+ height: "inherit",
3743
+ flexShrink: 1
3744
+ },
3657
3745
  children: [
3658
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes45.Text, {
3746
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_themes46.Text, {
3659
3747
  size: "1",
3660
3748
  weight: "regular",
3661
3749
  children: children
3662
3750
  }),
3663
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes45.Spinner, {
3751
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_themes46.Spinner, {
3664
3752
  loading: isPending,
3665
- children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_icons10.ArrowUpIcon, {})
3753
+ children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_react_icons11.ArrowUpIcon, {
3754
+ style: {
3755
+ flexShrink: 0
3756
+ }
3757
+ })
3666
3758
  })
3667
3759
  ]
3668
3760
  });
3669
3761
  };
3670
3762
  Item.Content = Content5;
3671
3763
  // src/components/suggestions/Suggestions/Content.tsx
3672
- var import_jsx_runtime63 = require("react/jsx-runtime");
3764
+ var import_jsx_runtime65 = require("react/jsx-runtime");
3673
3765
  var Content6 = function(param) {
3674
3766
  var children = param.children;
3675
3767
  var isRunActiveProps = useIsRunActive();
@@ -3688,12 +3780,12 @@ var Content6 = function(param) {
3688
3780
  isRunActiveProps
3689
3781
  ]);
3690
3782
  if ((0, import_radash11.isEmpty)(suggestions)) return null;
3691
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_themes46.Flex, {
3783
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_themes47.Flex, {
3692
3784
  gap: "2",
3693
3785
  py: "2",
3694
3786
  wrap: "wrap",
3695
3787
  children: suggestions.map(function(suggestion) {
3696
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Item, {
3788
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Item, {
3697
3789
  suggestion: suggestion,
3698
3790
  isDisabled: isDisabled
3699
3791
  }, suggestion);
@@ -3701,7 +3793,7 @@ var Content6 = function(param) {
3701
3793
  });
3702
3794
  };
3703
3795
  // src/components/suggestions/Suggestions/index.tsx
3704
- var import_jsx_runtime64 = require("react/jsx-runtime");
3796
+ var import_jsx_runtime66 = require("react/jsx-runtime");
3705
3797
  var Suggestions = function(param) {
3706
3798
  var children = param.children;
3707
3799
  var latestMessageProps = useLatestMessage();
@@ -3714,14 +3806,14 @@ var Suggestions = function(param) {
3714
3806
  ]);
3715
3807
  if (latestMessageProps.isLoading) return null;
3716
3808
  if (isDisabled) return null;
3717
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Content6, {
3809
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Content6, {
3718
3810
  children: children
3719
3811
  });
3720
3812
  };
3721
3813
  Suggestions.Item = Item;
3722
3814
  // src/components/markdown/MarkdownProvider/index.tsx
3723
3815
  var import_react52 = require("react");
3724
- var import_jsx_runtime65 = require("react/jsx-runtime");
3816
+ var import_jsx_runtime67 = require("react/jsx-runtime");
3725
3817
  var MarkdownProvider = function(_param) {
3726
3818
  var children = _param.children, rest = _object_without_properties(_param, [
3727
3819
  "children"
@@ -3733,7 +3825,7 @@ var MarkdownProvider = function(_param) {
3733
3825
  rest,
3734
3826
  prevMarkdownContext
3735
3827
  ]);
3736
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(MarkdownContext.Provider, {
3828
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(MarkdownContext.Provider, {
3737
3829
  value: value,
3738
3830
  children: children
3739
3831
  });