@superinterface/react 2.17.1 → 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
@@ -2810,13 +2810,22 @@ var import_themes38 = require("@radix-ui/themes");
2810
2810
  // src/components/threads/Thread/MessageForm/Field/Control.tsx
2811
2811
  var import_themes35 = require("@radix-ui/themes");
2812
2812
  var import_react_hook_form2 = require("react-hook-form");
2813
- var import_react_use = require("react-use");
2814
- var import_react36 = require("react");
2815
- // src/components/textareas/TextareaBase/index.tsx
2813
+ // src/hooks/misc/usePrevious.ts
2816
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");
2817
2826
  var import_react_textarea_autosize = __toESM(require("react-textarea-autosize"), 1);
2818
2827
  var import_jsx_runtime49 = require("react/jsx-runtime");
2819
- var TextareaBase = (0, import_react35.forwardRef)(function TextareaBase2(props, ref) {
2828
+ var TextareaBase = (0, import_react36.forwardRef)(function TextareaBase2(props, ref) {
2820
2829
  return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_jsx_runtime49.Fragment, {
2821
2830
  children: [
2822
2831
  /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("style", {
@@ -2849,19 +2858,19 @@ var Root5 = function(param) {
2849
2858
  });
2850
2859
  };
2851
2860
  var Input = function() {
2852
- var assistantNameContext = (0, import_react36.useContext)(AssistantNameContext);
2861
+ var assistantNameContext = (0, import_react37.useContext)(AssistantNameContext);
2853
2862
  var register = (0, import_react_hook_form2.useFormContext)().register;
2854
2863
  var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading;
2855
- var isSubmitDisabled = (0, import_react36.useMemo)(function() {
2864
+ var isSubmitDisabled = (0, import_react37.useMemo)(function() {
2856
2865
  return isDisabled || isLoading;
2857
2866
  }, [
2858
2867
  isDisabled,
2859
2868
  isLoading
2860
2869
  ]);
2861
- var isDisabledPrevious = (0, import_react_use.usePrevious)(isDisabled);
2862
- var textareaRef = (0, import_react36.useRef)(null);
2870
+ var isDisabledPrevious = usePrevious(isDisabled);
2871
+ var textareaRef = (0, import_react37.useRef)(null);
2863
2872
  var textareaProps = register("content");
2864
- (0, import_react36.useEffect)(function() {
2873
+ (0, import_react37.useEffect)(function() {
2865
2874
  if (isDisabled) return;
2866
2875
  if (!isDisabledPrevious) return;
2867
2876
  if (!textareaRef.current) return;
@@ -2966,7 +2975,7 @@ var Preview = function() {
2966
2975
  });
2967
2976
  };
2968
2977
  // src/components/threads/Thread/MessageForm/Field/Files/Control.tsx
2969
- var import_react37 = require("react");
2978
+ var import_react38 = require("react");
2970
2979
  var import_radash14 = require("radash");
2971
2980
  var import_dayjs2 = __toESM(require("dayjs"), 1);
2972
2981
  var import_react_icons9 = require("@radix-ui/react-icons");
@@ -3087,7 +3096,7 @@ var Control2 = function() {
3087
3096
  var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading, setFiles = _useMessageFormContext.setFiles;
3088
3097
  var createFile = useCreateFile().createFile;
3089
3098
  var addToast = useToasts().addToast;
3090
- var onChange = (0, import_react37.useCallback)(function() {
3099
+ var onChange = (0, import_react38.useCallback)(function() {
3091
3100
  var _ref = _async_to_generator(function(event) {
3092
3101
  var fileObjects, newFiles, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, err;
3093
3102
  return _ts_generator(this, function(_state) {
@@ -3378,29 +3387,29 @@ Thread.Root = Root7;
3378
3387
  Thread.Messages = Messages;
3379
3388
  Thread.MessageForm = MessageForm;
3380
3389
  // src/hooks/messages/useMessageContext/index.ts
3381
- var import_react38 = require("react");
3390
+ var import_react39 = require("react");
3382
3391
  var useMessageContext = function() {
3383
- return (0, import_react38.useContext)(MessageContext);
3392
+ return (0, import_react39.useContext)(MessageContext);
3384
3393
  };
3385
3394
  // src/components/threads/ThreadDialog/Provider/index.tsx
3386
- var import_react41 = require("react");
3395
+ var import_react42 = require("react");
3387
3396
  // src/contexts/threads/ThreadDialogContext/index.ts
3388
- var import_react39 = require("react");
3389
- var ThreadDialogContext = (0, import_react39.createContext)({
3397
+ var import_react40 = require("react");
3398
+ var ThreadDialogContext = (0, import_react40.createContext)({
3390
3399
  isOpen: false,
3391
3400
  setIsOpen: function() {}
3392
3401
  });
3393
3402
  // src/hooks/threads/useThreadDialogContext/index.ts
3394
- var import_react40 = require("react");
3403
+ var import_react41 = require("react");
3395
3404
  var useThreadDialogContext = function() {
3396
- return (0, import_react40.useContext)(ThreadDialogContext);
3405
+ return (0, import_react41.useContext)(ThreadDialogContext);
3397
3406
  };
3398
3407
  // src/components/threads/ThreadDialog/Provider/index.tsx
3399
3408
  var import_jsx_runtime57 = require("react/jsx-runtime");
3400
3409
  var Provider3 = function(param) {
3401
3410
  var children = param.children;
3402
3411
  var threadDialogContext = useThreadDialogContext();
3403
- 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];
3404
3413
  return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ThreadDialogContext.Provider, {
3405
3414
  value: {
3406
3415
  isOpen: isOpen,
@@ -3410,7 +3419,7 @@ var Provider3 = function(param) {
3410
3419
  });
3411
3420
  };
3412
3421
  // src/components/toasts/ToastsProvider/index.tsx
3413
- var import_react42 = require("react");
3422
+ var import_react43 = require("react");
3414
3423
  var Toast2 = __toESM(require("@radix-ui/react-toast"), 1);
3415
3424
  // src/components/toasts/ToastsProvider/CustomToast.tsx
3416
3425
  var Toast = __toESM(require("@radix-ui/react-toast"), 1);
@@ -3449,8 +3458,8 @@ var CustomToast = function(param) {
3449
3458
  var import_jsx_runtime59 = require("react/jsx-runtime");
3450
3459
  var ToastsProvider = function(param) {
3451
3460
  var children = param.children;
3452
- var _ref = _sliced_to_array((0, import_react42.useState)([]), 2), toasts = _ref[0], setToasts = _ref[1];
3453
- 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) {
3454
3463
  return setToasts(function(prevToasts) {
3455
3464
  return _to_consumable_array(prevToasts).concat([
3456
3465
  toast
@@ -3695,11 +3704,10 @@ ThreadDialog.Root = Root9;
3695
3704
  ThreadDialog.Trigger = Trigger;
3696
3705
  ThreadDialog.Content = Content4;
3697
3706
  // src/components/threads/AudioThread/Root/index.tsx
3698
- var import_runtime = require("regenerator-runtime/runtime");
3699
3707
  var import_themes45 = require("@radix-ui/themes");
3700
3708
  // src/contexts/threads/AudioThreadContext/index.ts
3701
- var import_react43 = require("react");
3702
- var AudioThreadContext = (0, import_react43.createContext)({
3709
+ var import_react44 = require("react");
3710
+ var AudioThreadContext = (0, import_react44.createContext)({
3703
3711
  status: "idle",
3704
3712
  recorderProps: {
3705
3713
  status: "idle",
@@ -3754,8 +3762,58 @@ var AudioThreadContext = (0, import_react43.createContext)({
3754
3762
  })
3755
3763
  }
3756
3764
  });
3757
- // src/components/threads/AudioThread/Root/index.tsx
3758
- 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
+ };
3759
3817
  // src/components/threads/AudioThread/Root/lib/blobToData.ts
3760
3818
  var blobToData = function(blob) {
3761
3819
  return new Promise(function(resolve) {
@@ -3767,11 +3825,11 @@ var blobToData = function(blob) {
3767
3825
  });
3768
3826
  };
3769
3827
  // src/hooks/audioThreads/useStatus/index.ts
3770
- var import_react44 = require("react");
3828
+ var import_react46 = require("react");
3771
3829
  var useStatus = function(param) {
3772
3830
  var messageAudioProps = param.messageAudioProps, recorderProps = param.recorderProps, createMessageProps = param.createMessageProps;
3773
3831
  var latestMessageProps = useLatestMessage();
3774
- var status = (0, import_react44.useMemo)(function() {
3832
+ var status = (0, import_react46.useMemo)(function() {
3775
3833
  var _latestMessageProps_latestMessage;
3776
3834
  if (recorderProps.status === "recording") return "recording";
3777
3835
  if (createMessageProps.isPending) return "creatingMessage";
@@ -3795,19 +3853,40 @@ var useStatus = function(param) {
3795
3853
  // src/hooks/audioThreads/useRecorder/index.ts
3796
3854
  var import_dayjs3 = __toESM(require("dayjs"), 1);
3797
3855
  var import_use_audio_capture = require("use-audio-capture");
3798
- var import_react45 = require("react");
3856
+ var import_react48 = require("react");
3799
3857
  var import_react_use_audio_player = require("react-use-audio-player");
3800
- 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
3801
3880
  var useRecorder = function(param) {
3802
3881
  var isStopOnSilence = param.isStopOnSilence, onStart = param.onStart, onStop = param.onStop;
3803
- var _ref = _sliced_to_array((0, import_react45.useState)(null), 2), silenceStart = _ref[0], setSilenceStart = _ref[1];
3804
- var _ref1 = _sliced_to_array((0, import_react45.useState)(null), 2), noiseStart = _ref1[0], setNoiseStart = _ref1[1];
3805
- var _ref2 = _sliced_to_array((0, import_react45.useState)(null), 2), mediaStream = _ref2[0], setMediaStream = _ref2[1];
3806
- 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];
3807
3886
  var startAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
3808
3887
  var endAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
3809
- var _ref4 = _sliced_to_array((0, import_react45.useState)(false), 2), isLoaded = _ref4[0], setIsLoaded = _ref4[1];
3810
- (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() {
3811
3890
  if (isLoaded) return;
3812
3891
  setIsLoaded(true);
3813
3892
  }, [
@@ -3865,9 +3944,9 @@ var useRecorder = function(param) {
3865
3944
  setNoiseStart(null);
3866
3945
  }
3867
3946
  });
3868
- var _ref5 = _sliced_to_array((0, import_react45.useState)(null), 2), audioEngine = _ref5[0], setAudioEngine = _ref5[1];
3869
- var isInited = (0, import_react45.useRef)(false);
3870
- (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() {
3871
3950
  if (!mediaStream) return;
3872
3951
  if (isInited.current) return;
3873
3952
  isInited.current = true;
@@ -3880,7 +3959,7 @@ var useRecorder = function(param) {
3880
3959
  isInited,
3881
3960
  mediaStream
3882
3961
  ]);
3883
- var visualizationAnalyser = (0, import_react45.useMemo)(function() {
3962
+ var visualizationAnalyser = (0, import_react48.useMemo)(function() {
3884
3963
  if (!audioEngine) return null;
3885
3964
  var result = audioEngine.audioContext.createAnalyser();
3886
3965
  audioEngine.source.connect(result);
@@ -3888,7 +3967,7 @@ var useRecorder = function(param) {
3888
3967
  }, [
3889
3968
  audioEngine
3890
3969
  ]);
3891
- var silenceAnalyser = (0, import_react45.useMemo)(function() {
3970
+ var silenceAnalyser = (0, import_react48.useMemo)(function() {
3892
3971
  if (!audioEngine) return null;
3893
3972
  var result = audioEngine.audioContext.createAnalyser();
3894
3973
  result.minDecibels = -60;
@@ -3897,7 +3976,7 @@ var useRecorder = function(param) {
3897
3976
  }, [
3898
3977
  audioEngine
3899
3978
  ]);
3900
- var handleSilence = (0, import_react45.useCallback)(function() {
3979
+ var handleSilence = (0, import_react48.useCallback)(function() {
3901
3980
  if (!silenceAnalyser) return;
3902
3981
  var frequencyData = new Uint8Array(silenceAnalyser.frequencyBinCount);
3903
3982
  silenceAnalyser.getByteFrequencyData(frequencyData);
@@ -3920,7 +3999,7 @@ var useRecorder = function(param) {
3920
3999
  setNoiseStart,
3921
4000
  setSilenceStart
3922
4001
  ]);
3923
- (0, import_react45.useEffect)(function() {
4002
+ (0, import_react48.useEffect)(function() {
3924
4003
  if (!isStopOnSilence) return;
3925
4004
  requestAnimationFrame(function() {
3926
4005
  return handleSilence();
@@ -3929,7 +4008,7 @@ var useRecorder = function(param) {
3929
4008
  handleSilence,
3930
4009
  isStopOnSilence
3931
4010
  ]);
3932
- (0, import_react_use2.useInterval)(function() {
4011
+ useInterval(function() {
3933
4012
  if (!isStopOnSilence) return;
3934
4013
  if (status !== "recording") return;
3935
4014
  if (!silenceStart) return;
@@ -3943,7 +4022,7 @@ var useRecorder = function(param) {
3943
4022
  });
3944
4023
  };
3945
4024
  // src/hooks/audioThreads/useMessageAudio/index.ts
3946
- var import_react46 = require("react");
4025
+ var import_react49 = require("react");
3947
4026
  var import_compromise = __toESM(require("compromise"), 1);
3948
4027
  var import_howler = require("howler");
3949
4028
  var import_react_use_audio_player2 = require("react-use-audio-player");
@@ -3981,15 +4060,15 @@ var getMessageSentences = function(param) {
3981
4060
  };
3982
4061
  var useMessageAudio = function(param) {
3983
4062
  var onEnd = param.onEnd;
3984
- var _ref = _sliced_to_array((0, import_react46.useState)(false), 2), isAudioPlayed = _ref[0], setIsAudioPlayed = _ref[1];
3985
- var _ref1 = _sliced_to_array((0, import_react46.useState)([]), 2), stoppedMessageIds = _ref1[0], setStoppedMessageIds = _ref1[1];
3986
- 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];
3987
4066
  var audioPlayer = (0, import_react_use_audio_player2.useAudioPlayer)();
3988
4067
  var nextAudioPlayer = (0, import_react_use_audio_player2.useAudioPlayer)();
3989
4068
  var superinterfaceContext = useSuperinterfaceContext();
3990
- 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];
3991
4070
  var latestMessageProps = useLatestMessage();
3992
- var unplayedMessageSentences = (0, import_react46.useMemo)(function() {
4071
+ var unplayedMessageSentences = (0, import_react49.useMemo)(function() {
3993
4072
  if (!latestMessageProps.latestMessage) return [];
3994
4073
  if (latestMessageProps.latestMessage.role !== "assistant") return [];
3995
4074
  if (stoppedMessageIds.includes(latestMessageProps.latestMessage.id)) return [];
@@ -4010,7 +4089,7 @@ var useMessageAudio = function(param) {
4010
4089
  latestMessageProps,
4011
4090
  playedMessageSentences
4012
4091
  ]);
4013
- (0, import_react46.useEffect)(function() {
4092
+ (0, import_react49.useEffect)(function() {
4014
4093
  if (isPlaying) return;
4015
4094
  if (audioPlayer.playing) return;
4016
4095
  if (!latestMessageProps.latestMessage) return;
@@ -4078,7 +4157,7 @@ var useMessageAudio = function(param) {
4078
4157
  playedMessageSentences,
4079
4158
  onEnd
4080
4159
  ]);
4081
- (0, import_react46.useEffect)(function() {
4160
+ (0, import_react49.useEffect)(function() {
4082
4161
  if (isHtmlAudioSupported) {
4083
4162
  var _import_howler_Howler__howls___sounds_, _import_howler_Howler__howls_, _import_howler_Howler;
4084
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;
@@ -4087,9 +4166,9 @@ var useMessageAudio = function(param) {
4087
4166
  }, [
4088
4167
  audioPlayer
4089
4168
  ]);
4090
- var _ref4 = _sliced_to_array((0, import_react46.useState)(null), 2), audioEngine = _ref4[0], setAudioEngine = _ref4[1];
4091
- var isAudioEngineInited = (0, import_react46.useRef)(false);
4092
- (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() {
4093
4172
  if (!audioPlayer.playing) return;
4094
4173
  if (isAudioEngineInited.current) return;
4095
4174
  isAudioEngineInited.current = true;
@@ -4110,7 +4189,7 @@ var useMessageAudio = function(param) {
4110
4189
  audioPlayer,
4111
4190
  isAudioEngineInited
4112
4191
  ]);
4113
- var visualizationAnalyser = (0, import_react46.useMemo)(function() {
4192
+ var visualizationAnalyser = (0, import_react49.useMemo)(function() {
4114
4193
  if (!audioEngine) return null;
4115
4194
  var result = audioEngine.audioContext.createAnalyser();
4116
4195
  audioEngine.source.connect(audioEngine.audioContext.destination);
@@ -4119,7 +4198,7 @@ var useMessageAudio = function(param) {
4119
4198
  }, [
4120
4199
  audioEngine
4121
4200
  ]);
4122
- var isPending = (0, import_react46.useMemo)(function() {
4201
+ var isPending = (0, import_react49.useMemo)(function() {
4123
4202
  return isPlaying || unplayedMessageSentences.length > 0;
4124
4203
  }, [
4125
4204
  isPlaying,
@@ -4176,7 +4255,7 @@ var Root12 = function(param) {
4176
4255
  };
4177
4256
  }()
4178
4257
  });
4179
- var microphonePermission = (0, import_react_use3.usePermission)({
4258
+ var microphonePermission = usePermission({
4180
4259
  name: "microphone"
4181
4260
  });
4182
4261
  var messageAudioProps = useMessageAudio({
@@ -4206,25 +4285,25 @@ var Root12 = function(param) {
4206
4285
  });
4207
4286
  };
4208
4287
  // src/components/threads/AudioThread/Visualization/index.tsx
4209
- var import_react49 = require("react");
4288
+ var import_react52 = require("react");
4210
4289
  var import_lodash9 = __toESM(require("lodash"), 1);
4211
4290
  var import_themes47 = require("@radix-ui/themes");
4212
4291
  // src/hooks/threads/useAudioThreadContext/index.ts
4213
- var import_react47 = require("react");
4292
+ var import_react50 = require("react");
4214
4293
  var useAudioThreadContext = function() {
4215
- return (0, import_react47.useContext)(AudioThreadContext);
4294
+ return (0, import_react50.useContext)(AudioThreadContext);
4216
4295
  };
4217
4296
  // src/components/threads/AudioThread/BarsVisualizer/index.tsx
4218
4297
  var import_lodash8 = __toESM(require("lodash"), 1);
4219
4298
  var import_themes46 = require("@radix-ui/themes");
4220
- var import_react48 = require("react");
4299
+ var import_react51 = require("react");
4221
4300
  var import_radash16 = require("radash");
4222
4301
  var import_jsx_runtime67 = require("react/jsx-runtime");
4223
4302
  var barCount = 4;
4224
4303
  var BarsVisualizer = function(param) {
4225
4304
  var visualizationAnalyser = param.visualizationAnalyser, backgroundColor = param.backgroundColor, height = param.height, barWidth = param.barWidth;
4226
- var _ref = _sliced_to_array((0, import_react48.useState)([]), 2), barHeights = _ref[0], setBarHeights = _ref[1];
4227
- 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) {
4228
4307
  var visualizationAnalyser2 = param.visualizationAnalyser;
4229
4308
  if (!visualizationAnalyser2) {
4230
4309
  setBarHeights(Array(barCount).fill(0));
@@ -4242,7 +4321,7 @@ var BarsVisualizer = function(param) {
4242
4321
  });
4243
4322
  });
4244
4323
  }, []);
4245
- (0, import_react48.useEffect)(function() {
4324
+ (0, import_react51.useEffect)(function() {
4246
4325
  draw({
4247
4326
  visualizationAnalyser: visualizationAnalyser
4248
4327
  });
@@ -4282,9 +4361,9 @@ var BarsVisualizer = function(param) {
4282
4361
  var import_jsx_runtime68 = require("react/jsx-runtime");
4283
4362
  var Visualization = function() {
4284
4363
  var audioThreadContext = useAudioThreadContext();
4285
- var assistantNameContext = (0, import_react49.useContext)(AssistantNameContext);
4286
- var _ref = _sliced_to_array((0, import_react49.useState)(0), 2), scale = _ref[0], setScale = _ref[1];
4287
- 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) {
4288
4367
  var visualizationAnalyser = param.visualizationAnalyser;
4289
4368
  if (!visualizationAnalyser) {
4290
4369
  setScale(1);
@@ -4299,7 +4378,7 @@ var Visualization = function() {
4299
4378
  });
4300
4379
  });
4301
4380
  }, []);
4302
- (0, import_react49.useEffect)(function() {
4381
+ (0, import_react52.useEffect)(function() {
4303
4382
  draw({
4304
4383
  visualizationAnalyser: audioThreadContext.recorderProps.visualizationAnalyser
4305
4384
  });
@@ -4584,9 +4663,9 @@ AudioThreadDialog.Root = Root9;
4584
4663
  AudioThreadDialog.Trigger = Trigger;
4585
4664
  AudioThreadDialog.Content = Content4;
4586
4665
  // src/components/suggestions/Suggestions/index.tsx
4587
- var import_react51 = require("react");
4666
+ var import_react54 = require("react");
4588
4667
  // src/components/suggestions/Suggestions/Content.tsx
4589
- var import_react50 = require("react");
4668
+ var import_react53 = require("react");
4590
4669
  var import_radash17 = require("radash");
4591
4670
  var import_react_children_utilities = require("react-children-utilities");
4592
4671
  var import_themes52 = require("@radix-ui/themes");
@@ -4643,7 +4722,7 @@ var import_jsx_runtime77 = require("react/jsx-runtime");
4643
4722
  var Content6 = function(param) {
4644
4723
  var children = param.children;
4645
4724
  var isMutatingMessage = useIsMutatingMessage();
4646
- var suggestions = (0, import_react50.useMemo)(function() {
4725
+ var suggestions = (0, import_react53.useMemo)(function() {
4647
4726
  return (0, import_react_children_utilities.onlyText)(children).split(/\r?\n/).filter(function(c) {
4648
4727
  return !(0, import_radash17.isEmpty)(c);
4649
4728
  }).map(function(c) {
@@ -4670,7 +4749,7 @@ var import_jsx_runtime78 = require("react/jsx-runtime");
4670
4749
  var Suggestions = function(param) {
4671
4750
  var children = param.children;
4672
4751
  var latestMessageProps = useLatestMessage();
4673
- var isDisabled = (0, import_react51.useMemo)(function() {
4752
+ var isDisabled = (0, import_react54.useMemo)(function() {
4674
4753
  var // @ts-ignore-next-line
4675
4754
  _latestMessageProps_latestMessage_metadata, _latestMessageProps_latestMessage;
4676
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;
@@ -4685,14 +4764,14 @@ var Suggestions = function(param) {
4685
4764
  };
4686
4765
  Suggestions.Item = Item;
4687
4766
  // src/components/markdown/MarkdownProvider/index.tsx
4688
- var import_react52 = require("react");
4767
+ var import_react55 = require("react");
4689
4768
  var import_jsx_runtime79 = require("react/jsx-runtime");
4690
4769
  var MarkdownProvider = function(_param) {
4691
4770
  var children = _param.children, rest = _object_without_properties(_param, [
4692
4771
  "children"
4693
4772
  ]);
4694
4773
  var prevMarkdownContext = useMarkdownContext();
4695
- var value = (0, import_react52.useMemo)(function() {
4774
+ var value = (0, import_react55.useMemo)(function() {
4696
4775
  return merge(prevMarkdownContext, rest);
4697
4776
  }, [
4698
4777
  rest,
@@ -4704,11 +4783,11 @@ var MarkdownProvider = function(_param) {
4704
4783
  });
4705
4784
  };
4706
4785
  // src/components/components/ComponentsProvider.tsx
4707
- var import_react54 = require("react");
4786
+ var import_react57 = require("react");
4708
4787
  // src/hooks/components/useComponents.ts
4709
- var import_react53 = require("react");
4788
+ var import_react56 = require("react");
4710
4789
  var useComponents = function() {
4711
- return (0, import_react53.useContext)(ComponentsContext);
4790
+ return (0, import_react56.useContext)(ComponentsContext);
4712
4791
  };
4713
4792
  // src/components/components/ComponentsProvider.tsx
4714
4793
  var import_jsx_runtime80 = require("react/jsx-runtime");
@@ -4717,7 +4796,7 @@ var ComponentsProvider = function(_param) {
4717
4796
  "children"
4718
4797
  ]);
4719
4798
  var prevComponents = useComponents();
4720
- var value = (0, import_react54.useMemo)(function() {
4799
+ var value = (0, import_react57.useMemo)(function() {
4721
4800
  return merge(prevComponents, rest);
4722
4801
  }, [
4723
4802
  rest,