@superinterface/react 2.17.0 → 2.17.2

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
@@ -936,7 +936,7 @@ var UserAvatar = function() {
936
936
  var import_themes28 = require("@radix-ui/themes");
937
937
  // src/components/threads/Thread/Message/index.tsx
938
938
  var import_react24 = require("react");
939
- var import_radash3 = require("radash");
939
+ var import_radash4 = require("radash");
940
940
  var import_themes27 = require("@radix-ui/themes");
941
941
  // src/components/skeletons/StartingContentSkeleton/index.tsx
942
942
  var import_themes8 = require("@radix-ui/themes");
@@ -1499,87 +1499,114 @@ var components = {
1499
1499
  annotation: Annotation
1500
1500
  };
1501
1501
  // src/lib/remark/remarkAnnotation.ts
1502
- var import_unist_util_visit = require("unist-util-visit");
1502
+ var import_radash3 = require("radash");
1503
+ var import_unist_util_flatmap = __toESM(require("unist-util-flatmap"), 1);
1503
1504
  var remarkAnnotation = function(param) {
1504
1505
  var content = param.content;
1505
1506
  return function() {
1506
1507
  return function(tree) {
1507
- (0, import_unist_util_visit.visit)(tree, "text", function(node, index, parent) {
1508
- if (content.text.annotations.length > 0) {
1509
- content.text.annotations.forEach(function(annotation) {
1510
- var _parent_children;
1511
- var _node_position_start, _node_position, _node_position_end, _node_position1;
1512
- if (!((_node_position = node.position) === null || _node_position === void 0 ? void 0 : (_node_position_start = _node_position.start) === null || _node_position_start === void 0 ? void 0 : _node_position_start.offset)) return;
1513
- if (!((_node_position1 = node.position) === null || _node_position1 === void 0 ? void 0 : (_node_position_end = _node_position1.end) === null || _node_position_end === void 0 ? void 0 : _node_position_end.offset)) return;
1514
- if (node.position.start.offset > annotation.start_index) {
1515
- return;
1516
- }
1517
- if (node.position.end.offset < annotation.end_index) {
1518
- return;
1519
- }
1520
- var beforeStart = node.position.start.offset;
1521
- var beforeEnd = annotation.start_index;
1522
- var annotationStart = annotation.start_index;
1523
- var annotationEnd = annotation.end_index;
1524
- var afterStart = annotation.end_index;
1525
- var afterEnd = node.position.end.offset;
1526
- var before = node.value.slice(0, annotation.start_index - node.position.start.offset);
1527
- var annotatedText = node.value.slice(annotation.start_index - node.position.start.offset, annotation.end_index - node.position.start.offset);
1528
- var after = node.value.slice(annotation.end_index - node.position.start.offset);
1529
- var newNodes = [];
1530
- if (before) {
1531
- newNodes.push({
1532
- type: "text",
1533
- value: before,
1534
- position: {
1535
- start: {
1536
- offset: beforeStart
1537
- },
1538
- end: {
1539
- offset: beforeEnd
1540
- }
1541
- }
1542
- });
1543
- }
1508
+ (0, import_unist_util_flatmap.default)(tree, function(node) {
1509
+ if (node.type !== "text") {
1510
+ return [
1511
+ node
1512
+ ];
1513
+ }
1514
+ if (!content.text.annotations.length) {
1515
+ return [
1516
+ node
1517
+ ];
1518
+ }
1519
+ if (!node.position) {
1520
+ return [
1521
+ node
1522
+ ];
1523
+ }
1524
+ var nodeStart = node.position.start.offset;
1525
+ if (!(0, import_radash3.isNumber)(nodeStart)) {
1526
+ return [
1527
+ node
1528
+ ];
1529
+ }
1530
+ var nodeEnd = node.position.end.offset;
1531
+ if (!(0, import_radash3.isNumber)(nodeEnd)) {
1532
+ return [
1533
+ node
1534
+ ];
1535
+ }
1536
+ var newNodes = [];
1537
+ var sortedAnnotations = content.text.annotations.sort(function(a, b) {
1538
+ return a.start_index - b.start_index;
1539
+ });
1540
+ var lastProcessedIndex = nodeStart;
1541
+ sortedAnnotations.forEach(function(annotation) {
1542
+ var annotationStart = annotation.start_index;
1543
+ var annotationEnd = annotation.end_index;
1544
+ if (nodeEnd < annotationStart || nodeStart > annotationEnd) {
1545
+ return;
1546
+ }
1547
+ var startIndex = Math.max(nodeStart, annotationStart);
1548
+ var endIndex = Math.min(nodeEnd, annotationEnd);
1549
+ if (lastProcessedIndex < startIndex) {
1544
1550
  newNodes.push({
1545
- value: annotatedText,
1546
- data: {
1547
- hName: "annotation",
1548
- hProperties: {
1549
- annotation: annotation
1550
- }
1551
- },
1551
+ type: "text",
1552
+ value: node.value.slice(lastProcessedIndex - nodeStart, startIndex - nodeStart),
1552
1553
  position: {
1553
1554
  start: {
1554
- offset: annotationStart
1555
+ line: node.position.start.line,
1556
+ column: node.position.start.column,
1557
+ offset: lastProcessedIndex
1555
1558
  },
1556
1559
  end: {
1557
- offset: annotationEnd
1560
+ line: node.position.end.line,
1561
+ column: node.position.end.column,
1562
+ offset: startIndex
1558
1563
  }
1559
1564
  }
1560
1565
  });
1561
- if (after) {
1562
- newNodes.push({
1563
- type: "text",
1564
- value: after,
1565
- position: {
1566
- start: {
1567
- offset: afterStart
1568
- },
1569
- end: {
1570
- offset: afterEnd
1571
- }
1572
- }
1573
- });
1566
+ }
1567
+ newNodes.push({
1568
+ type: "annotation",
1569
+ value: node.value.slice(startIndex - nodeStart, endIndex - nodeStart),
1570
+ position: {
1571
+ start: {
1572
+ line: node.position.start.line,
1573
+ column: node.position.start.column,
1574
+ offset: startIndex
1575
+ },
1576
+ end: {
1577
+ line: node.position.end.line,
1578
+ column: node.position.end.column,
1579
+ offset: endIndex
1580
+ }
1581
+ },
1582
+ data: {
1583
+ hName: "annotation",
1584
+ hProperties: {
1585
+ annotation: annotation
1586
+ }
1587
+ }
1588
+ });
1589
+ lastProcessedIndex = endIndex;
1590
+ });
1591
+ if (lastProcessedIndex < nodeEnd) {
1592
+ newNodes.push({
1593
+ type: "text",
1594
+ value: node.value.slice(lastProcessedIndex - nodeStart, nodeEnd - nodeStart),
1595
+ position: {
1596
+ start: {
1597
+ line: node.position.start.line,
1598
+ column: node.position.start.column,
1599
+ offset: lastProcessedIndex
1600
+ },
1601
+ end: {
1602
+ line: node.position.end.line,
1603
+ column: node.position.end.column,
1604
+ offset: nodeEnd
1605
+ }
1574
1606
  }
1575
- (_parent_children = parent.children).splice.apply(_parent_children, [
1576
- index,
1577
- 1
1578
- ].concat(_to_consumable_array(newNodes)));
1579
1607
  });
1580
- return import_unist_util_visit.SKIP;
1581
1608
  }
1582
- return;
1609
+ return newNodes;
1583
1610
  });
1584
1611
  };
1585
1612
  };
@@ -1706,13 +1733,13 @@ var Message = function(param) {
1706
1733
  })
1707
1734
  }, index);
1708
1735
  }),
1709
- isInProgress && (0, import_radash3.isEmpty)(laterRunSteps) && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(StartingContentSkeleton, {})
1736
+ isInProgress && (0, import_radash4.isEmpty)(laterRunSteps) && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(StartingContentSkeleton, {})
1710
1737
  ]
1711
1738
  }),
1712
1739
  /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(RunSteps, {
1713
1740
  runSteps: laterRunSteps
1714
1741
  }),
1715
- isInProgress && !(0, import_radash3.isEmpty)(laterRunSteps) && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_themes27.Box, {
1742
+ isInProgress && !(0, import_radash4.isEmpty)(laterRunSteps) && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_themes27.Box, {
1716
1743
  children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(StartingContentSkeleton, {})
1717
1744
  })
1718
1745
  ]
@@ -1958,7 +1985,8 @@ var Messages = function(param) {
1958
1985
  /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(NextPageSkeleton, {}),
1959
1986
  /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_themes32.Flex, {
1960
1987
  flexShrink: "0",
1961
- flexGrow: "1"
1988
+ flexGrow: "1",
1989
+ minHeight: "var(--space-5)"
1962
1990
  })
1963
1991
  ]
1964
1992
  });
@@ -2026,16 +2054,16 @@ var import_react34 = require("react");
2026
2054
  var import_react_hook_form = require("react-hook-form");
2027
2055
  var import_themes34 = require("@radix-ui/themes");
2028
2056
  // src/hooks/messages/useCreateMessage/index.ts
2029
- var import_radash11 = require("radash");
2057
+ var import_radash12 = require("radash");
2030
2058
  var import_react_query4 = require("@tanstack/react-query");
2031
2059
  // src/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/index.ts
2032
- var import_radash5 = require("radash");
2060
+ var import_radash6 = require("radash");
2033
2061
  // src/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/data.ts
2034
2062
  var import_dayjs = __toESM(require("dayjs"), 1);
2035
2063
  // src/lib/optimistic/optimisticId.ts
2036
- var import_radash4 = require("radash");
2064
+ var import_radash5 = require("radash");
2037
2065
  var optimisticId = function() {
2038
- return "-".concat((0, import_radash4.uid)(24));
2066
+ return "-".concat((0, import_radash5.uid)(24));
2039
2067
  };
2040
2068
  // src/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/data.ts
2041
2069
  var data = function(param) {
@@ -2100,7 +2128,7 @@ var onMutate = function(param) {
2100
2128
  case 0:
2101
2129
  queryKey = [
2102
2130
  "messages",
2103
- (0, import_radash5.omit)(newMessage, [
2131
+ (0, import_radash6.omit)(newMessage, [
2104
2132
  "content",
2105
2133
  "attachments"
2106
2134
  ])
@@ -2149,7 +2177,7 @@ var threadCreated = function(param) {
2149
2177
  });
2150
2178
  };
2151
2179
  // src/hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn/handleResponse/handlers/extendMessage.ts
2152
- var import_radash6 = require("radash");
2180
+ var import_radash7 = require("radash");
2153
2181
  var extendMessage = function(param) {
2154
2182
  var message = param.message, messages2 = param.messages;
2155
2183
  var _this, _this1;
@@ -2162,7 +2190,7 @@ var extendMessage = function(param) {
2162
2190
  });
2163
2191
  });
2164
2192
  var _runSteps, _ref;
2165
- var runSteps = (_ref = (_runSteps = (_this = (0, import_radash6.last)(prevOptimitisticRunMessages)) === null || _this === void 0 ? void 0 : _this.runSteps) !== null && _runSteps !== void 0 ? _runSteps : (_this1 = (0, import_radash6.last)(prevRunMessages)) === null || _this1 === void 0 ? void 0 : _this1.runSteps) !== null && _ref !== void 0 ? _ref : [];
2193
+ var runSteps = (_ref = (_runSteps = (_this = (0, import_radash7.last)(prevOptimitisticRunMessages)) === null || _this === void 0 ? void 0 : _this.runSteps) !== null && _runSteps !== void 0 ? _runSteps : (_this1 = (0, import_radash7.last)(prevRunMessages)) === null || _this1 === void 0 ? void 0 : _this1.runSteps) !== null && _ref !== void 0 ? _ref : [];
2166
2194
  return _object_spread_props(_object_spread({}, message), {
2167
2195
  runSteps: runSteps
2168
2196
  });
@@ -2215,11 +2243,11 @@ var threadMessageCreated = function(param) {
2215
2243
  };
2216
2244
  // src/hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn/handleResponse/handlers/threadMessageDelta.ts
2217
2245
  var import_lodash6 = __toESM(require("lodash"), 1);
2218
- var import_radash7 = require("radash");
2246
+ var import_radash8 = require("radash");
2219
2247
  var updatedContentPart = function(param) {
2220
2248
  var prevContentPart = param.prevContentPart, delta = param.delta;
2221
2249
  if (!prevContentPart) {
2222
- return (0, import_radash7.omit)(delta, [
2250
+ return (0, import_radash8.omit)(delta, [
2223
2251
  "index"
2224
2252
  ]);
2225
2253
  }
@@ -2281,7 +2309,7 @@ var threadMessageDelta = function(param) {
2281
2309
  });
2282
2310
  };
2283
2311
  // src/hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn/handleResponse/handlers/threadMessageCompleted.ts
2284
- var import_radash8 = require("radash");
2312
+ var import_radash9 = require("radash");
2285
2313
  var threadMessageCompleted = function(param) {
2286
2314
  var value = param.value, queryClient = param.queryClient, messagesQueryKey = param.messagesQueryKey;
2287
2315
  return queryClient.setQueryData(messagesQueryKey, function(prevData) {
@@ -2301,7 +2329,7 @@ var threadMessageCompleted = function(param) {
2301
2329
  return _object_spread_props(_object_spread({}, prevData), {
2302
2330
  pages: [
2303
2331
  _object_spread_props(_object_spread({}, latestPage), {
2304
- data: (0, import_radash8.replace)(latestPage.data, extendMessage({
2332
+ data: (0, import_radash9.replace)(latestPage.data, extendMessage({
2305
2333
  message: value.data,
2306
2334
  messages: latestPage.data
2307
2335
  }), function(m) {
@@ -2367,11 +2395,11 @@ var threadRunStepCreated = function(param) {
2367
2395
  };
2368
2396
  // src/hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn/handleResponse/handlers/threadRunStepDelta.ts
2369
2397
  var import_lodash7 = __toESM(require("lodash"), 1);
2370
- var import_radash9 = require("radash");
2398
+ var import_radash10 = require("radash");
2371
2399
  var updatedToolCall = function(param) {
2372
2400
  var toolCall = param.toolCall, delta = param.delta;
2373
2401
  if (!toolCall) {
2374
- return (0, import_radash9.omit)(delta, [
2402
+ return (0, import_radash10.omit)(delta, [
2375
2403
  "index"
2376
2404
  ]);
2377
2405
  }
@@ -2454,7 +2482,7 @@ var threadRunStepDelta = function(param) {
2454
2482
  });
2455
2483
  };
2456
2484
  // src/hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn/handleResponse/handlers/threadRunStepCompleted.ts
2457
- var import_radash10 = require("radash");
2485
+ var import_radash11 = require("radash");
2458
2486
  var threadRunStepCompleted = function(param) {
2459
2487
  var value = param.value, queryClient = param.queryClient, messagesQueryKey = param.messagesQueryKey;
2460
2488
  return queryClient.setQueryData(messagesQueryKey, function(prevData) {
@@ -2466,7 +2494,7 @@ var threadRunStepCompleted = function(param) {
2466
2494
  data: latestPage.data.map(function(m) {
2467
2495
  if (m.run_id === value.data.run_id) {
2468
2496
  return _object_spread_props(_object_spread({}, m), {
2469
- runSteps: (0, import_radash10.replace)(m.runSteps, value.data, function(rs) {
2497
+ runSteps: (0, import_radash11.replace)(m.runSteps, value.data, function(rs) {
2470
2498
  return rs.id === value.data.id;
2471
2499
  })
2472
2500
  });
@@ -2633,7 +2661,7 @@ var useCreateMessage = function() {
2633
2661
  onError: onError
2634
2662
  }));
2635
2663
  return _object_spread_props(_object_spread({}, props), {
2636
- createMessage: (0, import_radash11.partob)(props.mutateAsync, threadContext.variables)
2664
+ createMessage: (0, import_radash12.partob)(props.mutateAsync, threadContext.variables)
2637
2665
  });
2638
2666
  };
2639
2667
  // src/components/threads/Thread/MessageForm/Root/lib/formOptions.ts
@@ -2646,7 +2674,7 @@ var formOptions = {
2646
2674
  resolver: (0, import_zod2.zodResolver)(schema)
2647
2675
  };
2648
2676
  // src/components/threads/Thread/MessageForm/Root/index.tsx
2649
- var import_radash12 = require("radash");
2677
+ var import_radash13 = require("radash");
2650
2678
  var import_jsx_runtime48 = require("react/jsx-runtime");
2651
2679
  var Root4 = function(param) {
2652
2680
  var children = param.children, onSubmitArg = param.onSubmit;
@@ -2705,7 +2733,7 @@ var Root4 = function(param) {
2705
2733
  isLoading,
2706
2734
  files
2707
2735
  ]);
2708
- var onSubmit = onSubmitArg ? (0, import_radash12.partob)(onSubmitArg, {
2736
+ var onSubmit = onSubmitArg ? (0, import_radash13.partob)(onSubmitArg, {
2709
2737
  reset: reset,
2710
2738
  createMessage: createMessage
2711
2739
  }) : function() {
@@ -2782,13 +2810,22 @@ var import_themes38 = require("@radix-ui/themes");
2782
2810
  // src/components/threads/Thread/MessageForm/Field/Control.tsx
2783
2811
  var import_themes35 = require("@radix-ui/themes");
2784
2812
  var import_react_hook_form2 = require("react-hook-form");
2785
- var import_react_use = require("react-use");
2786
- var import_react36 = require("react");
2787
- // src/components/textareas/TextareaBase/index.tsx
2813
+ // src/hooks/misc/usePrevious.ts
2788
2814
  var import_react35 = require("react");
2815
+ var usePrevious = function(state) {
2816
+ var ref = (0, import_react35.useRef)();
2817
+ (0, import_react35.useEffect)(function() {
2818
+ ref.current = state;
2819
+ });
2820
+ return ref.current;
2821
+ };
2822
+ // src/components/threads/Thread/MessageForm/Field/Control.tsx
2823
+ var import_react37 = require("react");
2824
+ // src/components/textareas/TextareaBase/index.tsx
2825
+ var import_react36 = require("react");
2789
2826
  var import_react_textarea_autosize = __toESM(require("react-textarea-autosize"), 1);
2790
2827
  var import_jsx_runtime49 = require("react/jsx-runtime");
2791
- var TextareaBase = (0, import_react35.forwardRef)(function TextareaBase2(props, ref) {
2828
+ var TextareaBase = (0, import_react36.forwardRef)(function TextareaBase2(props, ref) {
2792
2829
  return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_jsx_runtime49.Fragment, {
2793
2830
  children: [
2794
2831
  /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("style", {
@@ -2821,19 +2858,19 @@ var Root5 = function(param) {
2821
2858
  });
2822
2859
  };
2823
2860
  var Input = function() {
2824
- var assistantNameContext = (0, import_react36.useContext)(AssistantNameContext);
2861
+ var assistantNameContext = (0, import_react37.useContext)(AssistantNameContext);
2825
2862
  var register = (0, import_react_hook_form2.useFormContext)().register;
2826
2863
  var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading;
2827
- var isSubmitDisabled = (0, import_react36.useMemo)(function() {
2864
+ var isSubmitDisabled = (0, import_react37.useMemo)(function() {
2828
2865
  return isDisabled || isLoading;
2829
2866
  }, [
2830
2867
  isDisabled,
2831
2868
  isLoading
2832
2869
  ]);
2833
- var isDisabledPrevious = (0, import_react_use.usePrevious)(isDisabled);
2834
- var textareaRef = (0, import_react36.useRef)(null);
2870
+ var isDisabledPrevious = usePrevious(isDisabled);
2871
+ var textareaRef = (0, import_react37.useRef)(null);
2835
2872
  var textareaProps = register("content");
2836
- (0, import_react36.useEffect)(function() {
2873
+ (0, import_react37.useEffect)(function() {
2837
2874
  if (isDisabled) return;
2838
2875
  if (!isDisabledPrevious) return;
2839
2876
  if (!textareaRef.current) return;
@@ -2938,8 +2975,8 @@ var Preview = function() {
2938
2975
  });
2939
2976
  };
2940
2977
  // src/components/threads/Thread/MessageForm/Field/Files/Control.tsx
2941
- var import_react37 = require("react");
2942
- var import_radash13 = require("radash");
2978
+ var import_react38 = require("react");
2979
+ var import_radash14 = require("radash");
2943
2980
  var import_dayjs2 = __toESM(require("dayjs"), 1);
2944
2981
  var import_react_icons9 = require("@radix-ui/react-icons");
2945
2982
  var import_themes37 = require("@radix-ui/themes");
@@ -3059,7 +3096,7 @@ var Control2 = function() {
3059
3096
  var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading, setFiles = _useMessageFormContext.setFiles;
3060
3097
  var createFile = useCreateFile().createFile;
3061
3098
  var addToast = useToasts().addToast;
3062
- var onChange = (0, import_react37.useCallback)(function() {
3099
+ var onChange = (0, import_react38.useCallback)(function() {
3063
3100
  var _ref = _async_to_generator(function(event) {
3064
3101
  var fileObjects, newFiles, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, err;
3065
3102
  return _ts_generator(this, function(_state) {
@@ -3083,7 +3120,7 @@ var Control2 = function() {
3083
3120
  });
3084
3121
  setFiles(function(prev) {
3085
3122
  return _to_consumable_array(prev).concat(_to_consumable_array(newFiles.map(function(file) {
3086
- return (0, import_radash13.omit)(file, [
3123
+ return (0, import_radash14.omit)(file, [
3087
3124
  "fileObject"
3088
3125
  ]);
3089
3126
  })));
@@ -3350,29 +3387,29 @@ Thread.Root = Root7;
3350
3387
  Thread.Messages = Messages;
3351
3388
  Thread.MessageForm = MessageForm;
3352
3389
  // src/hooks/messages/useMessageContext/index.ts
3353
- var import_react38 = require("react");
3390
+ var import_react39 = require("react");
3354
3391
  var useMessageContext = function() {
3355
- return (0, import_react38.useContext)(MessageContext);
3392
+ return (0, import_react39.useContext)(MessageContext);
3356
3393
  };
3357
3394
  // src/components/threads/ThreadDialog/Provider/index.tsx
3358
- var import_react41 = require("react");
3395
+ var import_react42 = require("react");
3359
3396
  // src/contexts/threads/ThreadDialogContext/index.ts
3360
- var import_react39 = require("react");
3361
- var ThreadDialogContext = (0, import_react39.createContext)({
3397
+ var import_react40 = require("react");
3398
+ var ThreadDialogContext = (0, import_react40.createContext)({
3362
3399
  isOpen: false,
3363
3400
  setIsOpen: function() {}
3364
3401
  });
3365
3402
  // src/hooks/threads/useThreadDialogContext/index.ts
3366
- var import_react40 = require("react");
3403
+ var import_react41 = require("react");
3367
3404
  var useThreadDialogContext = function() {
3368
- return (0, import_react40.useContext)(ThreadDialogContext);
3405
+ return (0, import_react41.useContext)(ThreadDialogContext);
3369
3406
  };
3370
3407
  // src/components/threads/ThreadDialog/Provider/index.tsx
3371
3408
  var import_jsx_runtime57 = require("react/jsx-runtime");
3372
3409
  var Provider3 = function(param) {
3373
3410
  var children = param.children;
3374
3411
  var threadDialogContext = useThreadDialogContext();
3375
- var _ref = _sliced_to_array((0, import_react41.useState)(threadDialogContext.isOpen), 2), isOpen = _ref[0], setIsOpen = _ref[1];
3412
+ var _ref = _sliced_to_array((0, import_react42.useState)(threadDialogContext.isOpen), 2), isOpen = _ref[0], setIsOpen = _ref[1];
3376
3413
  return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ThreadDialogContext.Provider, {
3377
3414
  value: {
3378
3415
  isOpen: isOpen,
@@ -3382,7 +3419,7 @@ var Provider3 = function(param) {
3382
3419
  });
3383
3420
  };
3384
3421
  // src/components/toasts/ToastsProvider/index.tsx
3385
- var import_react42 = require("react");
3422
+ var import_react43 = require("react");
3386
3423
  var Toast2 = __toESM(require("@radix-ui/react-toast"), 1);
3387
3424
  // src/components/toasts/ToastsProvider/CustomToast.tsx
3388
3425
  var Toast = __toESM(require("@radix-ui/react-toast"), 1);
@@ -3421,8 +3458,8 @@ var CustomToast = function(param) {
3421
3458
  var import_jsx_runtime59 = require("react/jsx-runtime");
3422
3459
  var ToastsProvider = function(param) {
3423
3460
  var children = param.children;
3424
- var _ref = _sliced_to_array((0, import_react42.useState)([]), 2), toasts = _ref[0], setToasts = _ref[1];
3425
- var addToast = (0, import_react42.useCallback)(function(toast) {
3461
+ var _ref = _sliced_to_array((0, import_react43.useState)([]), 2), toasts = _ref[0], setToasts = _ref[1];
3462
+ var addToast = (0, import_react43.useCallback)(function(toast) {
3426
3463
  return setToasts(function(prevToasts) {
3427
3464
  return _to_consumable_array(prevToasts).concat([
3428
3465
  toast
@@ -3667,11 +3704,10 @@ ThreadDialog.Root = Root9;
3667
3704
  ThreadDialog.Trigger = Trigger;
3668
3705
  ThreadDialog.Content = Content4;
3669
3706
  // src/components/threads/AudioThread/Root/index.tsx
3670
- var import_runtime = require("regenerator-runtime/runtime");
3671
3707
  var import_themes45 = require("@radix-ui/themes");
3672
3708
  // src/contexts/threads/AudioThreadContext/index.ts
3673
- var import_react43 = require("react");
3674
- var AudioThreadContext = (0, import_react43.createContext)({
3709
+ var import_react44 = require("react");
3710
+ var AudioThreadContext = (0, import_react44.createContext)({
3675
3711
  status: "idle",
3676
3712
  recorderProps: {
3677
3713
  status: "idle",
@@ -3726,8 +3762,58 @@ var AudioThreadContext = (0, import_react43.createContext)({
3726
3762
  })
3727
3763
  }
3728
3764
  });
3729
- // src/components/threads/AudioThread/Root/index.tsx
3730
- var import_react_use3 = require("react-use");
3765
+ // src/hooks/misc/usePermission/index.ts
3766
+ var import_react45 = require("react");
3767
+ // src/hooks/misc/usePermission/util.ts
3768
+ var noop = function() {};
3769
+ function on(obj) {
3770
+ for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
3771
+ args[_key - 1] = arguments[_key];
3772
+ }
3773
+ if (obj && obj.addEventListener) {
3774
+ var _obj;
3775
+ (_obj = obj).addEventListener.apply(_obj, _to_consumable_array(args));
3776
+ }
3777
+ }
3778
+ function off(obj) {
3779
+ for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
3780
+ args[_key - 1] = arguments[_key];
3781
+ }
3782
+ if (obj && obj.removeEventListener) {
3783
+ var _obj;
3784
+ (_obj = obj).removeEventListener.apply(_obj, _to_consumable_array(args));
3785
+ }
3786
+ }
3787
+ // src/hooks/misc/usePermission/index.ts
3788
+ var usePermission = function(permissionDesc) {
3789
+ var _ref = _sliced_to_array((0, import_react45.useState)(""), 2), state = _ref[0], setState = _ref[1];
3790
+ (0, import_react45.useEffect)(function() {
3791
+ var mounted = true;
3792
+ var permissionStatus = null;
3793
+ var onChange = function() {
3794
+ if (!mounted) {
3795
+ return;
3796
+ }
3797
+ setState(function() {
3798
+ var _permissionStatus_state;
3799
+ return (_permissionStatus_state = permissionStatus === null || permissionStatus === void 0 ? void 0 : permissionStatus.state) !== null && _permissionStatus_state !== void 0 ? _permissionStatus_state : "";
3800
+ });
3801
+ };
3802
+ navigator.permissions.query(permissionDesc).then(function(status) {
3803
+ permissionStatus = status;
3804
+ on(permissionStatus, "change", onChange);
3805
+ onChange();
3806
+ }).catch(noop);
3807
+ return function() {
3808
+ permissionStatus && off(permissionStatus, "change", onChange);
3809
+ mounted = false;
3810
+ permissionStatus = null;
3811
+ };
3812
+ }, [
3813
+ permissionDesc
3814
+ ]);
3815
+ return state;
3816
+ };
3731
3817
  // src/components/threads/AudioThread/Root/lib/blobToData.ts
3732
3818
  var blobToData = function(blob) {
3733
3819
  return new Promise(function(resolve) {
@@ -3739,11 +3825,11 @@ var blobToData = function(blob) {
3739
3825
  });
3740
3826
  };
3741
3827
  // src/hooks/audioThreads/useStatus/index.ts
3742
- var import_react44 = require("react");
3828
+ var import_react46 = require("react");
3743
3829
  var useStatus = function(param) {
3744
3830
  var messageAudioProps = param.messageAudioProps, recorderProps = param.recorderProps, createMessageProps = param.createMessageProps;
3745
3831
  var latestMessageProps = useLatestMessage();
3746
- var status = (0, import_react44.useMemo)(function() {
3832
+ var status = (0, import_react46.useMemo)(function() {
3747
3833
  var _latestMessageProps_latestMessage;
3748
3834
  if (recorderProps.status === "recording") return "recording";
3749
3835
  if (createMessageProps.isPending) return "creatingMessage";
@@ -3767,19 +3853,40 @@ var useStatus = function(param) {
3767
3853
  // src/hooks/audioThreads/useRecorder/index.ts
3768
3854
  var import_dayjs3 = __toESM(require("dayjs"), 1);
3769
3855
  var import_use_audio_capture = require("use-audio-capture");
3770
- var import_react45 = require("react");
3856
+ var import_react48 = require("react");
3771
3857
  var import_react_use_audio_player = require("react-use-audio-player");
3772
- var import_react_use2 = require("react-use");
3858
+ // src/hooks/misc/useInterval.ts
3859
+ var import_react47 = require("react");
3860
+ var useInterval = function(callback, delay) {
3861
+ var savedCallback = (0, import_react47.useRef)(function() {});
3862
+ (0, import_react47.useEffect)(function() {
3863
+ savedCallback.current = callback;
3864
+ });
3865
+ (0, import_react47.useEffect)(function() {
3866
+ if (delay !== null) {
3867
+ var interval = setInterval(function() {
3868
+ return savedCallback.current();
3869
+ }, delay || 0);
3870
+ return function() {
3871
+ return clearInterval(interval);
3872
+ };
3873
+ }
3874
+ return void 0;
3875
+ }, [
3876
+ delay
3877
+ ]);
3878
+ };
3879
+ // src/hooks/audioThreads/useRecorder/index.ts
3773
3880
  var useRecorder = function(param) {
3774
3881
  var isStopOnSilence = param.isStopOnSilence, onStart = param.onStart, onStop = param.onStop;
3775
- var _ref = _sliced_to_array((0, import_react45.useState)(null), 2), silenceStart = _ref[0], setSilenceStart = _ref[1];
3776
- var _ref1 = _sliced_to_array((0, import_react45.useState)(null), 2), noiseStart = _ref1[0], setNoiseStart = _ref1[1];
3777
- var _ref2 = _sliced_to_array((0, import_react45.useState)(null), 2), mediaStream = _ref2[0], setMediaStream = _ref2[1];
3778
- var _ref3 = _sliced_to_array((0, import_react45.useState)("idle"), 2), status = _ref3[0], setStatus = _ref3[1];
3882
+ var _ref = _sliced_to_array((0, import_react48.useState)(null), 2), silenceStart = _ref[0], setSilenceStart = _ref[1];
3883
+ var _ref1 = _sliced_to_array((0, import_react48.useState)(null), 2), noiseStart = _ref1[0], setNoiseStart = _ref1[1];
3884
+ var _ref2 = _sliced_to_array((0, import_react48.useState)(null), 2), mediaStream = _ref2[0], setMediaStream = _ref2[1];
3885
+ var _ref3 = _sliced_to_array((0, import_react48.useState)("idle"), 2), status = _ref3[0], setStatus = _ref3[1];
3779
3886
  var startAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
3780
3887
  var endAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
3781
- var _ref4 = _sliced_to_array((0, import_react45.useState)(false), 2), isLoaded = _ref4[0], setIsLoaded = _ref4[1];
3782
- (0, import_react45.useEffect)(function() {
3888
+ var _ref4 = _sliced_to_array((0, import_react48.useState)(false), 2), isLoaded = _ref4[0], setIsLoaded = _ref4[1];
3889
+ (0, import_react48.useEffect)(function() {
3783
3890
  if (isLoaded) return;
3784
3891
  setIsLoaded(true);
3785
3892
  }, [
@@ -3837,9 +3944,9 @@ var useRecorder = function(param) {
3837
3944
  setNoiseStart(null);
3838
3945
  }
3839
3946
  });
3840
- var _ref5 = _sliced_to_array((0, import_react45.useState)(null), 2), audioEngine = _ref5[0], setAudioEngine = _ref5[1];
3841
- var isInited = (0, import_react45.useRef)(false);
3842
- (0, import_react45.useEffect)(function() {
3947
+ var _ref5 = _sliced_to_array((0, import_react48.useState)(null), 2), audioEngine = _ref5[0], setAudioEngine = _ref5[1];
3948
+ var isInited = (0, import_react48.useRef)(false);
3949
+ (0, import_react48.useEffect)(function() {
3843
3950
  if (!mediaStream) return;
3844
3951
  if (isInited.current) return;
3845
3952
  isInited.current = true;
@@ -3852,7 +3959,7 @@ var useRecorder = function(param) {
3852
3959
  isInited,
3853
3960
  mediaStream
3854
3961
  ]);
3855
- var visualizationAnalyser = (0, import_react45.useMemo)(function() {
3962
+ var visualizationAnalyser = (0, import_react48.useMemo)(function() {
3856
3963
  if (!audioEngine) return null;
3857
3964
  var result = audioEngine.audioContext.createAnalyser();
3858
3965
  audioEngine.source.connect(result);
@@ -3860,7 +3967,7 @@ var useRecorder = function(param) {
3860
3967
  }, [
3861
3968
  audioEngine
3862
3969
  ]);
3863
- var silenceAnalyser = (0, import_react45.useMemo)(function() {
3970
+ var silenceAnalyser = (0, import_react48.useMemo)(function() {
3864
3971
  if (!audioEngine) return null;
3865
3972
  var result = audioEngine.audioContext.createAnalyser();
3866
3973
  result.minDecibels = -60;
@@ -3869,7 +3976,7 @@ var useRecorder = function(param) {
3869
3976
  }, [
3870
3977
  audioEngine
3871
3978
  ]);
3872
- var handleSilence = (0, import_react45.useCallback)(function() {
3979
+ var handleSilence = (0, import_react48.useCallback)(function() {
3873
3980
  if (!silenceAnalyser) return;
3874
3981
  var frequencyData = new Uint8Array(silenceAnalyser.frequencyBinCount);
3875
3982
  silenceAnalyser.getByteFrequencyData(frequencyData);
@@ -3892,7 +3999,7 @@ var useRecorder = function(param) {
3892
3999
  setNoiseStart,
3893
4000
  setSilenceStart
3894
4001
  ]);
3895
- (0, import_react45.useEffect)(function() {
4002
+ (0, import_react48.useEffect)(function() {
3896
4003
  if (!isStopOnSilence) return;
3897
4004
  requestAnimationFrame(function() {
3898
4005
  return handleSilence();
@@ -3901,7 +4008,7 @@ var useRecorder = function(param) {
3901
4008
  handleSilence,
3902
4009
  isStopOnSilence
3903
4010
  ]);
3904
- (0, import_react_use2.useInterval)(function() {
4011
+ useInterval(function() {
3905
4012
  if (!isStopOnSilence) return;
3906
4013
  if (status !== "recording") return;
3907
4014
  if (!silenceStart) return;
@@ -3915,12 +4022,12 @@ var useRecorder = function(param) {
3915
4022
  });
3916
4023
  };
3917
4024
  // src/hooks/audioThreads/useMessageAudio/index.ts
3918
- var import_react46 = require("react");
4025
+ var import_react49 = require("react");
3919
4026
  var import_compromise = __toESM(require("compromise"), 1);
3920
4027
  var import_howler = require("howler");
3921
4028
  var import_react_use_audio_player2 = require("react-use-audio-player");
3922
4029
  // src/hooks/audioThreads/useMessageAudio/lib/input.ts
3923
- var import_radash14 = require("radash");
4030
+ var import_radash15 = require("radash");
3924
4031
  var input = function(param) {
3925
4032
  var message = param.message;
3926
4033
  var textContents = message.content.filter(function(c) {
@@ -3929,7 +4036,7 @@ var input = function(param) {
3929
4036
  var result = textContents.map(function(c) {
3930
4037
  return c.text.value;
3931
4038
  }).join(" ");
3932
- if ((0, import_radash14.isEmpty)(result)) return null;
4039
+ if ((0, import_radash15.isEmpty)(result)) return null;
3933
4040
  return result;
3934
4041
  };
3935
4042
  // src/hooks/audioThreads/useMessageAudio/lib/isHtmlAudioSupported.ts
@@ -3953,15 +4060,15 @@ var getMessageSentences = function(param) {
3953
4060
  };
3954
4061
  var useMessageAudio = function(param) {
3955
4062
  var onEnd = param.onEnd;
3956
- var _ref = _sliced_to_array((0, import_react46.useState)(false), 2), isAudioPlayed = _ref[0], setIsAudioPlayed = _ref[1];
3957
- var _ref1 = _sliced_to_array((0, import_react46.useState)([]), 2), stoppedMessageIds = _ref1[0], setStoppedMessageIds = _ref1[1];
3958
- var _ref2 = _sliced_to_array((0, import_react46.useState)([]), 2), playedMessageSentences = _ref2[0], setPlayedMessageSentences = _ref2[1];
4063
+ var _ref = _sliced_to_array((0, import_react49.useState)(false), 2), isAudioPlayed = _ref[0], setIsAudioPlayed = _ref[1];
4064
+ var _ref1 = _sliced_to_array((0, import_react49.useState)([]), 2), stoppedMessageIds = _ref1[0], setStoppedMessageIds = _ref1[1];
4065
+ var _ref2 = _sliced_to_array((0, import_react49.useState)([]), 2), playedMessageSentences = _ref2[0], setPlayedMessageSentences = _ref2[1];
3959
4066
  var audioPlayer = (0, import_react_use_audio_player2.useAudioPlayer)();
3960
4067
  var nextAudioPlayer = (0, import_react_use_audio_player2.useAudioPlayer)();
3961
4068
  var superinterfaceContext = useSuperinterfaceContext();
3962
- var _ref3 = _sliced_to_array((0, import_react46.useState)(false), 2), isPlaying = _ref3[0], setIsPlaying = _ref3[1];
4069
+ var _ref3 = _sliced_to_array((0, import_react49.useState)(false), 2), isPlaying = _ref3[0], setIsPlaying = _ref3[1];
3963
4070
  var latestMessageProps = useLatestMessage();
3964
- var unplayedMessageSentences = (0, import_react46.useMemo)(function() {
4071
+ var unplayedMessageSentences = (0, import_react49.useMemo)(function() {
3965
4072
  if (!latestMessageProps.latestMessage) return [];
3966
4073
  if (latestMessageProps.latestMessage.role !== "assistant") return [];
3967
4074
  if (stoppedMessageIds.includes(latestMessageProps.latestMessage.id)) return [];
@@ -3982,7 +4089,7 @@ var useMessageAudio = function(param) {
3982
4089
  latestMessageProps,
3983
4090
  playedMessageSentences
3984
4091
  ]);
3985
- (0, import_react46.useEffect)(function() {
4092
+ (0, import_react49.useEffect)(function() {
3986
4093
  if (isPlaying) return;
3987
4094
  if (audioPlayer.playing) return;
3988
4095
  if (!latestMessageProps.latestMessage) return;
@@ -4050,7 +4157,7 @@ var useMessageAudio = function(param) {
4050
4157
  playedMessageSentences,
4051
4158
  onEnd
4052
4159
  ]);
4053
- (0, import_react46.useEffect)(function() {
4160
+ (0, import_react49.useEffect)(function() {
4054
4161
  if (isHtmlAudioSupported) {
4055
4162
  var _import_howler_Howler__howls___sounds_, _import_howler_Howler__howls_, _import_howler_Howler;
4056
4163
  if (!((_import_howler_Howler = import_howler.Howler) === null || _import_howler_Howler === void 0 ? void 0 : (_import_howler_Howler__howls_ = _import_howler_Howler._howls[0]) === null || _import_howler_Howler__howls_ === void 0 ? void 0 : (_import_howler_Howler__howls___sounds_ = _import_howler_Howler__howls_._sounds[0]) === null || _import_howler_Howler__howls___sounds_ === void 0 ? void 0 : _import_howler_Howler__howls___sounds_._node)) return;
@@ -4059,9 +4166,9 @@ var useMessageAudio = function(param) {
4059
4166
  }, [
4060
4167
  audioPlayer
4061
4168
  ]);
4062
- var _ref4 = _sliced_to_array((0, import_react46.useState)(null), 2), audioEngine = _ref4[0], setAudioEngine = _ref4[1];
4063
- var isAudioEngineInited = (0, import_react46.useRef)(false);
4064
- (0, import_react46.useEffect)(function() {
4169
+ var _ref4 = _sliced_to_array((0, import_react49.useState)(null), 2), audioEngine = _ref4[0], setAudioEngine = _ref4[1];
4170
+ var isAudioEngineInited = (0, import_react49.useRef)(false);
4171
+ (0, import_react49.useEffect)(function() {
4065
4172
  if (!audioPlayer.playing) return;
4066
4173
  if (isAudioEngineInited.current) return;
4067
4174
  isAudioEngineInited.current = true;
@@ -4082,7 +4189,7 @@ var useMessageAudio = function(param) {
4082
4189
  audioPlayer,
4083
4190
  isAudioEngineInited
4084
4191
  ]);
4085
- var visualizationAnalyser = (0, import_react46.useMemo)(function() {
4192
+ var visualizationAnalyser = (0, import_react49.useMemo)(function() {
4086
4193
  if (!audioEngine) return null;
4087
4194
  var result = audioEngine.audioContext.createAnalyser();
4088
4195
  audioEngine.source.connect(audioEngine.audioContext.destination);
@@ -4091,7 +4198,7 @@ var useMessageAudio = function(param) {
4091
4198
  }, [
4092
4199
  audioEngine
4093
4200
  ]);
4094
- var isPending = (0, import_react46.useMemo)(function() {
4201
+ var isPending = (0, import_react49.useMemo)(function() {
4095
4202
  return isPlaying || unplayedMessageSentences.length > 0;
4096
4203
  }, [
4097
4204
  isPlaying,
@@ -4148,7 +4255,7 @@ var Root12 = function(param) {
4148
4255
  };
4149
4256
  }()
4150
4257
  });
4151
- var microphonePermission = (0, import_react_use3.usePermission)({
4258
+ var microphonePermission = usePermission({
4152
4259
  name: "microphone"
4153
4260
  });
4154
4261
  var messageAudioProps = useMessageAudio({
@@ -4178,25 +4285,25 @@ var Root12 = function(param) {
4178
4285
  });
4179
4286
  };
4180
4287
  // src/components/threads/AudioThread/Visualization/index.tsx
4181
- var import_react49 = require("react");
4288
+ var import_react52 = require("react");
4182
4289
  var import_lodash9 = __toESM(require("lodash"), 1);
4183
4290
  var import_themes47 = require("@radix-ui/themes");
4184
4291
  // src/hooks/threads/useAudioThreadContext/index.ts
4185
- var import_react47 = require("react");
4292
+ var import_react50 = require("react");
4186
4293
  var useAudioThreadContext = function() {
4187
- return (0, import_react47.useContext)(AudioThreadContext);
4294
+ return (0, import_react50.useContext)(AudioThreadContext);
4188
4295
  };
4189
4296
  // src/components/threads/AudioThread/BarsVisualizer/index.tsx
4190
4297
  var import_lodash8 = __toESM(require("lodash"), 1);
4191
4298
  var import_themes46 = require("@radix-ui/themes");
4192
- var import_react48 = require("react");
4193
- var import_radash15 = require("radash");
4299
+ var import_react51 = require("react");
4300
+ var import_radash16 = require("radash");
4194
4301
  var import_jsx_runtime67 = require("react/jsx-runtime");
4195
4302
  var barCount = 4;
4196
4303
  var BarsVisualizer = function(param) {
4197
4304
  var visualizationAnalyser = param.visualizationAnalyser, backgroundColor = param.backgroundColor, height = param.height, barWidth = param.barWidth;
4198
- var _ref = _sliced_to_array((0, import_react48.useState)([]), 2), barHeights = _ref[0], setBarHeights = _ref[1];
4199
- var draw = (0, import_react48.useCallback)(function(param) {
4305
+ var _ref = _sliced_to_array((0, import_react51.useState)([]), 2), barHeights = _ref[0], setBarHeights = _ref[1];
4306
+ var draw = (0, import_react51.useCallback)(function(param) {
4200
4307
  var visualizationAnalyser2 = param.visualizationAnalyser;
4201
4308
  if (!visualizationAnalyser2) {
4202
4309
  setBarHeights(Array(barCount).fill(0));
@@ -4204,7 +4311,7 @@ var BarsVisualizer = function(param) {
4204
4311
  }
4205
4312
  var frequencyData = new Uint8Array(visualizationAnalyser2.frequencyBinCount / 15);
4206
4313
  visualizationAnalyser2.getByteFrequencyData(frequencyData);
4207
- var clusteredFrequencyData = (0, import_radash15.cluster)(frequencyData, frequencyData.length / barCount);
4314
+ var clusteredFrequencyData = (0, import_radash16.cluster)(frequencyData, frequencyData.length / barCount);
4208
4315
  setBarHeights(clusteredFrequencyData.map(function(frequencyDataCluster) {
4209
4316
  return import_lodash8.default.mean(frequencyDataCluster) / 255 * 100;
4210
4317
  }));
@@ -4214,7 +4321,7 @@ var BarsVisualizer = function(param) {
4214
4321
  });
4215
4322
  });
4216
4323
  }, []);
4217
- (0, import_react48.useEffect)(function() {
4324
+ (0, import_react51.useEffect)(function() {
4218
4325
  draw({
4219
4326
  visualizationAnalyser: visualizationAnalyser
4220
4327
  });
@@ -4254,9 +4361,9 @@ var BarsVisualizer = function(param) {
4254
4361
  var import_jsx_runtime68 = require("react/jsx-runtime");
4255
4362
  var Visualization = function() {
4256
4363
  var audioThreadContext = useAudioThreadContext();
4257
- var assistantNameContext = (0, import_react49.useContext)(AssistantNameContext);
4258
- var _ref = _sliced_to_array((0, import_react49.useState)(0), 2), scale = _ref[0], setScale = _ref[1];
4259
- var draw = (0, import_react49.useCallback)(function(param) {
4364
+ var assistantNameContext = (0, import_react52.useContext)(AssistantNameContext);
4365
+ var _ref = _sliced_to_array((0, import_react52.useState)(0), 2), scale = _ref[0], setScale = _ref[1];
4366
+ var draw = (0, import_react52.useCallback)(function(param) {
4260
4367
  var visualizationAnalyser = param.visualizationAnalyser;
4261
4368
  if (!visualizationAnalyser) {
4262
4369
  setScale(1);
@@ -4271,7 +4378,7 @@ var Visualization = function() {
4271
4378
  });
4272
4379
  });
4273
4380
  }, []);
4274
- (0, import_react49.useEffect)(function() {
4381
+ (0, import_react52.useEffect)(function() {
4275
4382
  draw({
4276
4383
  visualizationAnalyser: audioThreadContext.recorderProps.visualizationAnalyser
4277
4384
  });
@@ -4556,10 +4663,10 @@ AudioThreadDialog.Root = Root9;
4556
4663
  AudioThreadDialog.Trigger = Trigger;
4557
4664
  AudioThreadDialog.Content = Content4;
4558
4665
  // src/components/suggestions/Suggestions/index.tsx
4559
- var import_react51 = require("react");
4666
+ var import_react54 = require("react");
4560
4667
  // src/components/suggestions/Suggestions/Content.tsx
4561
- var import_react50 = require("react");
4562
- var import_radash16 = require("radash");
4668
+ var import_react53 = require("react");
4669
+ var import_radash17 = require("radash");
4563
4670
  var import_react_children_utilities = require("react-children-utilities");
4564
4671
  var import_themes52 = require("@radix-ui/themes");
4565
4672
  // src/components/suggestions/Suggestions/Item.tsx
@@ -4615,16 +4722,16 @@ var import_jsx_runtime77 = require("react/jsx-runtime");
4615
4722
  var Content6 = function(param) {
4616
4723
  var children = param.children;
4617
4724
  var isMutatingMessage = useIsMutatingMessage();
4618
- var suggestions = (0, import_react50.useMemo)(function() {
4725
+ var suggestions = (0, import_react53.useMemo)(function() {
4619
4726
  return (0, import_react_children_utilities.onlyText)(children).split(/\r?\n/).filter(function(c) {
4620
- return !(0, import_radash16.isEmpty)(c);
4727
+ return !(0, import_radash17.isEmpty)(c);
4621
4728
  }).map(function(c) {
4622
4729
  return c.trim();
4623
4730
  });
4624
4731
  }, [
4625
4732
  children
4626
4733
  ]);
4627
- if ((0, import_radash16.isEmpty)(suggestions)) return null;
4734
+ if ((0, import_radash17.isEmpty)(suggestions)) return null;
4628
4735
  return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_themes52.Flex, {
4629
4736
  gap: "2",
4630
4737
  py: "2",
@@ -4642,7 +4749,7 @@ var import_jsx_runtime78 = require("react/jsx-runtime");
4642
4749
  var Suggestions = function(param) {
4643
4750
  var children = param.children;
4644
4751
  var latestMessageProps = useLatestMessage();
4645
- var isDisabled = (0, import_react51.useMemo)(function() {
4752
+ var isDisabled = (0, import_react54.useMemo)(function() {
4646
4753
  var // @ts-ignore-next-line
4647
4754
  _latestMessageProps_latestMessage_metadata, _latestMessageProps_latestMessage;
4648
4755
  return (_latestMessageProps_latestMessage = latestMessageProps.latestMessage) === null || _latestMessageProps_latestMessage === void 0 ? void 0 : (_latestMessageProps_latestMessage_metadata = _latestMessageProps_latestMessage.metadata) === null || _latestMessageProps_latestMessage_metadata === void 0 ? void 0 : _latestMessageProps_latestMessage_metadata.isBlocking;
@@ -4657,14 +4764,14 @@ var Suggestions = function(param) {
4657
4764
  };
4658
4765
  Suggestions.Item = Item;
4659
4766
  // src/components/markdown/MarkdownProvider/index.tsx
4660
- var import_react52 = require("react");
4767
+ var import_react55 = require("react");
4661
4768
  var import_jsx_runtime79 = require("react/jsx-runtime");
4662
4769
  var MarkdownProvider = function(_param) {
4663
4770
  var children = _param.children, rest = _object_without_properties(_param, [
4664
4771
  "children"
4665
4772
  ]);
4666
4773
  var prevMarkdownContext = useMarkdownContext();
4667
- var value = (0, import_react52.useMemo)(function() {
4774
+ var value = (0, import_react55.useMemo)(function() {
4668
4775
  return merge(prevMarkdownContext, rest);
4669
4776
  }, [
4670
4777
  rest,
@@ -4676,11 +4783,11 @@ var MarkdownProvider = function(_param) {
4676
4783
  });
4677
4784
  };
4678
4785
  // src/components/components/ComponentsProvider.tsx
4679
- var import_react54 = require("react");
4786
+ var import_react57 = require("react");
4680
4787
  // src/hooks/components/useComponents.ts
4681
- var import_react53 = require("react");
4788
+ var import_react56 = require("react");
4682
4789
  var useComponents = function() {
4683
- return (0, import_react53.useContext)(ComponentsContext);
4790
+ return (0, import_react56.useContext)(ComponentsContext);
4684
4791
  };
4685
4792
  // src/components/components/ComponentsProvider.tsx
4686
4793
  var import_jsx_runtime80 = require("react/jsx-runtime");
@@ -4689,7 +4796,7 @@ var ComponentsProvider = function(_param) {
4689
4796
  "children"
4690
4797
  ]);
4691
4798
  var prevComponents = useComponents();
4692
- var value = (0, import_react54.useMemo)(function() {
4799
+ var value = (0, import_react57.useMemo)(function() {
4693
4800
  return merge(prevComponents, rest);
4694
4801
  }, [
4695
4802
  rest,