@superinterface/react 2.17.1 → 2.17.3

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
@@ -2002,6 +2002,7 @@ var import_react33 = require("react");
2002
2002
  // src/contexts/messages/MessageFormContext/index.ts
2003
2003
  var import_react32 = require("react");
2004
2004
  var MessageFormContext = (0, import_react32.createContext)({
2005
+ content: "",
2005
2006
  isDisabled: false,
2006
2007
  isLoading: false,
2007
2008
  files: [],
@@ -2680,7 +2681,7 @@ var Root4 = function(param) {
2680
2681
  var children = param.children, onSubmitArg = param.onSubmit;
2681
2682
  var _ref = _sliced_to_array((0, import_react34.useState)([]), 2), files = _ref[0], setFiles = _ref[1];
2682
2683
  var formProps = (0, import_react_hook_form.useForm)(formOptions);
2683
- var handleSubmit = formProps.handleSubmit, isSubmitting = formProps.formState.isSubmitting, reset = formProps.reset;
2684
+ var handleSubmit = formProps.handleSubmit, isSubmitting = formProps.formState.isSubmitting, reset = formProps.reset, watch = formProps.watch;
2684
2685
  var addToast = useToasts().addToast;
2685
2686
  var queryClient = (0, import_react_query5.useQueryClient)();
2686
2687
  var threadContext = useSuperinterfaceContext();
@@ -2784,13 +2785,15 @@ var Root4 = function(param) {
2784
2785
  return _ref.apply(this, arguments);
2785
2786
  };
2786
2787
  }();
2788
+ var content = watch("content");
2787
2789
  return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(MessageFormContext.Provider, {
2788
2790
  value: {
2789
2791
  isDisabled: isDisabled,
2790
2792
  isLoading: isLoading,
2791
2793
  files: files,
2792
2794
  setFiles: setFiles,
2793
- isFileLoading: isFileLoading
2795
+ isFileLoading: isFileLoading,
2796
+ content: content
2794
2797
  },
2795
2798
  children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_react_hook_form.FormProvider, _object_spread_props(_object_spread({}, formProps), {
2796
2799
  children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_themes34.Box, {
@@ -2810,13 +2813,22 @@ var import_themes38 = require("@radix-ui/themes");
2810
2813
  // src/components/threads/Thread/MessageForm/Field/Control.tsx
2811
2814
  var import_themes35 = require("@radix-ui/themes");
2812
2815
  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
2816
+ // src/hooks/misc/usePrevious.ts
2816
2817
  var import_react35 = require("react");
2818
+ var usePrevious = function(state) {
2819
+ var ref = (0, import_react35.useRef)();
2820
+ (0, import_react35.useEffect)(function() {
2821
+ ref.current = state;
2822
+ });
2823
+ return ref.current;
2824
+ };
2825
+ // src/components/threads/Thread/MessageForm/Field/Control.tsx
2826
+ var import_react37 = require("react");
2827
+ // src/components/textareas/TextareaBase/index.tsx
2828
+ var import_react36 = require("react");
2817
2829
  var import_react_textarea_autosize = __toESM(require("react-textarea-autosize"), 1);
2818
2830
  var import_jsx_runtime49 = require("react/jsx-runtime");
2819
- var TextareaBase = (0, import_react35.forwardRef)(function TextareaBase2(props, ref) {
2831
+ var TextareaBase = (0, import_react36.forwardRef)(function TextareaBase2(props, ref) {
2820
2832
  return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_jsx_runtime49.Fragment, {
2821
2833
  children: [
2822
2834
  /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("style", {
@@ -2849,19 +2861,19 @@ var Root5 = function(param) {
2849
2861
  });
2850
2862
  };
2851
2863
  var Input = function() {
2852
- var assistantNameContext = (0, import_react36.useContext)(AssistantNameContext);
2864
+ var assistantNameContext = (0, import_react37.useContext)(AssistantNameContext);
2853
2865
  var register = (0, import_react_hook_form2.useFormContext)().register;
2854
2866
  var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading;
2855
- var isSubmitDisabled = (0, import_react36.useMemo)(function() {
2867
+ var isSubmitDisabled = (0, import_react37.useMemo)(function() {
2856
2868
  return isDisabled || isLoading;
2857
2869
  }, [
2858
2870
  isDisabled,
2859
2871
  isLoading
2860
2872
  ]);
2861
- var isDisabledPrevious = (0, import_react_use.usePrevious)(isDisabled);
2862
- var textareaRef = (0, import_react36.useRef)(null);
2873
+ var isDisabledPrevious = usePrevious(isDisabled);
2874
+ var textareaRef = (0, import_react37.useRef)(null);
2863
2875
  var textareaProps = register("content");
2864
- (0, import_react36.useEffect)(function() {
2876
+ (0, import_react37.useEffect)(function() {
2865
2877
  if (isDisabled) return;
2866
2878
  if (!isDisabledPrevious) return;
2867
2879
  if (!textareaRef.current) return;
@@ -2966,7 +2978,7 @@ var Preview = function() {
2966
2978
  });
2967
2979
  };
2968
2980
  // src/components/threads/Thread/MessageForm/Field/Files/Control.tsx
2969
- var import_react37 = require("react");
2981
+ var import_react38 = require("react");
2970
2982
  var import_radash14 = require("radash");
2971
2983
  var import_dayjs2 = __toESM(require("dayjs"), 1);
2972
2984
  var import_react_icons9 = require("@radix-ui/react-icons");
@@ -3087,7 +3099,7 @@ var Control2 = function() {
3087
3099
  var _useMessageFormContext = useMessageFormContext(), isDisabled = _useMessageFormContext.isDisabled, isLoading = _useMessageFormContext.isLoading, setFiles = _useMessageFormContext.setFiles;
3088
3100
  var createFile = useCreateFile().createFile;
3089
3101
  var addToast = useToasts().addToast;
3090
- var onChange = (0, import_react37.useCallback)(function() {
3102
+ var onChange = (0, import_react38.useCallback)(function() {
3091
3103
  var _ref = _async_to_generator(function(event) {
3092
3104
  var fileObjects, newFiles, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, err;
3093
3105
  return _ts_generator(this, function(_state) {
@@ -3378,29 +3390,29 @@ Thread.Root = Root7;
3378
3390
  Thread.Messages = Messages;
3379
3391
  Thread.MessageForm = MessageForm;
3380
3392
  // src/hooks/messages/useMessageContext/index.ts
3381
- var import_react38 = require("react");
3393
+ var import_react39 = require("react");
3382
3394
  var useMessageContext = function() {
3383
- return (0, import_react38.useContext)(MessageContext);
3395
+ return (0, import_react39.useContext)(MessageContext);
3384
3396
  };
3385
3397
  // src/components/threads/ThreadDialog/Provider/index.tsx
3386
- var import_react41 = require("react");
3398
+ var import_react42 = require("react");
3387
3399
  // src/contexts/threads/ThreadDialogContext/index.ts
3388
- var import_react39 = require("react");
3389
- var ThreadDialogContext = (0, import_react39.createContext)({
3400
+ var import_react40 = require("react");
3401
+ var ThreadDialogContext = (0, import_react40.createContext)({
3390
3402
  isOpen: false,
3391
3403
  setIsOpen: function() {}
3392
3404
  });
3393
3405
  // src/hooks/threads/useThreadDialogContext/index.ts
3394
- var import_react40 = require("react");
3406
+ var import_react41 = require("react");
3395
3407
  var useThreadDialogContext = function() {
3396
- return (0, import_react40.useContext)(ThreadDialogContext);
3408
+ return (0, import_react41.useContext)(ThreadDialogContext);
3397
3409
  };
3398
3410
  // src/components/threads/ThreadDialog/Provider/index.tsx
3399
3411
  var import_jsx_runtime57 = require("react/jsx-runtime");
3400
3412
  var Provider3 = function(param) {
3401
3413
  var children = param.children;
3402
3414
  var threadDialogContext = useThreadDialogContext();
3403
- var _ref = _sliced_to_array((0, import_react41.useState)(threadDialogContext.isOpen), 2), isOpen = _ref[0], setIsOpen = _ref[1];
3415
+ var _ref = _sliced_to_array((0, import_react42.useState)(threadDialogContext.isOpen), 2), isOpen = _ref[0], setIsOpen = _ref[1];
3404
3416
  return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ThreadDialogContext.Provider, {
3405
3417
  value: {
3406
3418
  isOpen: isOpen,
@@ -3410,7 +3422,7 @@ var Provider3 = function(param) {
3410
3422
  });
3411
3423
  };
3412
3424
  // src/components/toasts/ToastsProvider/index.tsx
3413
- var import_react42 = require("react");
3425
+ var import_react43 = require("react");
3414
3426
  var Toast2 = __toESM(require("@radix-ui/react-toast"), 1);
3415
3427
  // src/components/toasts/ToastsProvider/CustomToast.tsx
3416
3428
  var Toast = __toESM(require("@radix-ui/react-toast"), 1);
@@ -3449,8 +3461,8 @@ var CustomToast = function(param) {
3449
3461
  var import_jsx_runtime59 = require("react/jsx-runtime");
3450
3462
  var ToastsProvider = function(param) {
3451
3463
  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) {
3464
+ var _ref = _sliced_to_array((0, import_react43.useState)([]), 2), toasts = _ref[0], setToasts = _ref[1];
3465
+ var addToast = (0, import_react43.useCallback)(function(toast) {
3454
3466
  return setToasts(function(prevToasts) {
3455
3467
  return _to_consumable_array(prevToasts).concat([
3456
3468
  toast
@@ -3695,11 +3707,10 @@ ThreadDialog.Root = Root9;
3695
3707
  ThreadDialog.Trigger = Trigger;
3696
3708
  ThreadDialog.Content = Content4;
3697
3709
  // src/components/threads/AudioThread/Root/index.tsx
3698
- var import_runtime = require("regenerator-runtime/runtime");
3699
3710
  var import_themes45 = require("@radix-ui/themes");
3700
3711
  // src/contexts/threads/AudioThreadContext/index.ts
3701
- var import_react43 = require("react");
3702
- var AudioThreadContext = (0, import_react43.createContext)({
3712
+ var import_react44 = require("react");
3713
+ var AudioThreadContext = (0, import_react44.createContext)({
3703
3714
  status: "idle",
3704
3715
  recorderProps: {
3705
3716
  status: "idle",
@@ -3754,8 +3765,58 @@ var AudioThreadContext = (0, import_react43.createContext)({
3754
3765
  })
3755
3766
  }
3756
3767
  });
3757
- // src/components/threads/AudioThread/Root/index.tsx
3758
- var import_react_use3 = require("react-use");
3768
+ // src/hooks/misc/usePermission/index.ts
3769
+ var import_react45 = require("react");
3770
+ // src/hooks/misc/usePermission/util.ts
3771
+ var noop = function() {};
3772
+ function on(obj) {
3773
+ for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
3774
+ args[_key - 1] = arguments[_key];
3775
+ }
3776
+ if (obj && obj.addEventListener) {
3777
+ var _obj;
3778
+ (_obj = obj).addEventListener.apply(_obj, _to_consumable_array(args));
3779
+ }
3780
+ }
3781
+ function off(obj) {
3782
+ for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
3783
+ args[_key - 1] = arguments[_key];
3784
+ }
3785
+ if (obj && obj.removeEventListener) {
3786
+ var _obj;
3787
+ (_obj = obj).removeEventListener.apply(_obj, _to_consumable_array(args));
3788
+ }
3789
+ }
3790
+ // src/hooks/misc/usePermission/index.ts
3791
+ var usePermission = function(permissionDesc) {
3792
+ var _ref = _sliced_to_array((0, import_react45.useState)(""), 2), state = _ref[0], setState = _ref[1];
3793
+ (0, import_react45.useEffect)(function() {
3794
+ var mounted = true;
3795
+ var permissionStatus = null;
3796
+ var onChange = function() {
3797
+ if (!mounted) {
3798
+ return;
3799
+ }
3800
+ setState(function() {
3801
+ var _permissionStatus_state;
3802
+ return (_permissionStatus_state = permissionStatus === null || permissionStatus === void 0 ? void 0 : permissionStatus.state) !== null && _permissionStatus_state !== void 0 ? _permissionStatus_state : "";
3803
+ });
3804
+ };
3805
+ navigator.permissions.query(permissionDesc).then(function(status) {
3806
+ permissionStatus = status;
3807
+ on(permissionStatus, "change", onChange);
3808
+ onChange();
3809
+ }).catch(noop);
3810
+ return function() {
3811
+ permissionStatus && off(permissionStatus, "change", onChange);
3812
+ mounted = false;
3813
+ permissionStatus = null;
3814
+ };
3815
+ }, [
3816
+ permissionDesc
3817
+ ]);
3818
+ return state;
3819
+ };
3759
3820
  // src/components/threads/AudioThread/Root/lib/blobToData.ts
3760
3821
  var blobToData = function(blob) {
3761
3822
  return new Promise(function(resolve) {
@@ -3767,11 +3828,11 @@ var blobToData = function(blob) {
3767
3828
  });
3768
3829
  };
3769
3830
  // src/hooks/audioThreads/useStatus/index.ts
3770
- var import_react44 = require("react");
3831
+ var import_react46 = require("react");
3771
3832
  var useStatus = function(param) {
3772
3833
  var messageAudioProps = param.messageAudioProps, recorderProps = param.recorderProps, createMessageProps = param.createMessageProps;
3773
3834
  var latestMessageProps = useLatestMessage();
3774
- var status = (0, import_react44.useMemo)(function() {
3835
+ var status = (0, import_react46.useMemo)(function() {
3775
3836
  var _latestMessageProps_latestMessage;
3776
3837
  if (recorderProps.status === "recording") return "recording";
3777
3838
  if (createMessageProps.isPending) return "creatingMessage";
@@ -3795,19 +3856,40 @@ var useStatus = function(param) {
3795
3856
  // src/hooks/audioThreads/useRecorder/index.ts
3796
3857
  var import_dayjs3 = __toESM(require("dayjs"), 1);
3797
3858
  var import_use_audio_capture = require("use-audio-capture");
3798
- var import_react45 = require("react");
3859
+ var import_react48 = require("react");
3799
3860
  var import_react_use_audio_player = require("react-use-audio-player");
3800
- var import_react_use2 = require("react-use");
3861
+ // src/hooks/misc/useInterval.ts
3862
+ var import_react47 = require("react");
3863
+ var useInterval = function(callback, delay) {
3864
+ var savedCallback = (0, import_react47.useRef)(function() {});
3865
+ (0, import_react47.useEffect)(function() {
3866
+ savedCallback.current = callback;
3867
+ });
3868
+ (0, import_react47.useEffect)(function() {
3869
+ if (delay !== null) {
3870
+ var interval = setInterval(function() {
3871
+ return savedCallback.current();
3872
+ }, delay || 0);
3873
+ return function() {
3874
+ return clearInterval(interval);
3875
+ };
3876
+ }
3877
+ return void 0;
3878
+ }, [
3879
+ delay
3880
+ ]);
3881
+ };
3882
+ // src/hooks/audioThreads/useRecorder/index.ts
3801
3883
  var useRecorder = function(param) {
3802
3884
  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];
3885
+ var _ref = _sliced_to_array((0, import_react48.useState)(null), 2), silenceStart = _ref[0], setSilenceStart = _ref[1];
3886
+ var _ref1 = _sliced_to_array((0, import_react48.useState)(null), 2), noiseStart = _ref1[0], setNoiseStart = _ref1[1];
3887
+ var _ref2 = _sliced_to_array((0, import_react48.useState)(null), 2), mediaStream = _ref2[0], setMediaStream = _ref2[1];
3888
+ var _ref3 = _sliced_to_array((0, import_react48.useState)("idle"), 2), status = _ref3[0], setStatus = _ref3[1];
3807
3889
  var startAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
3808
3890
  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() {
3891
+ var _ref4 = _sliced_to_array((0, import_react48.useState)(false), 2), isLoaded = _ref4[0], setIsLoaded = _ref4[1];
3892
+ (0, import_react48.useEffect)(function() {
3811
3893
  if (isLoaded) return;
3812
3894
  setIsLoaded(true);
3813
3895
  }, [
@@ -3865,9 +3947,9 @@ var useRecorder = function(param) {
3865
3947
  setNoiseStart(null);
3866
3948
  }
3867
3949
  });
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() {
3950
+ var _ref5 = _sliced_to_array((0, import_react48.useState)(null), 2), audioEngine = _ref5[0], setAudioEngine = _ref5[1];
3951
+ var isInited = (0, import_react48.useRef)(false);
3952
+ (0, import_react48.useEffect)(function() {
3871
3953
  if (!mediaStream) return;
3872
3954
  if (isInited.current) return;
3873
3955
  isInited.current = true;
@@ -3880,7 +3962,7 @@ var useRecorder = function(param) {
3880
3962
  isInited,
3881
3963
  mediaStream
3882
3964
  ]);
3883
- var visualizationAnalyser = (0, import_react45.useMemo)(function() {
3965
+ var visualizationAnalyser = (0, import_react48.useMemo)(function() {
3884
3966
  if (!audioEngine) return null;
3885
3967
  var result = audioEngine.audioContext.createAnalyser();
3886
3968
  audioEngine.source.connect(result);
@@ -3888,7 +3970,7 @@ var useRecorder = function(param) {
3888
3970
  }, [
3889
3971
  audioEngine
3890
3972
  ]);
3891
- var silenceAnalyser = (0, import_react45.useMemo)(function() {
3973
+ var silenceAnalyser = (0, import_react48.useMemo)(function() {
3892
3974
  if (!audioEngine) return null;
3893
3975
  var result = audioEngine.audioContext.createAnalyser();
3894
3976
  result.minDecibels = -60;
@@ -3897,7 +3979,7 @@ var useRecorder = function(param) {
3897
3979
  }, [
3898
3980
  audioEngine
3899
3981
  ]);
3900
- var handleSilence = (0, import_react45.useCallback)(function() {
3982
+ var handleSilence = (0, import_react48.useCallback)(function() {
3901
3983
  if (!silenceAnalyser) return;
3902
3984
  var frequencyData = new Uint8Array(silenceAnalyser.frequencyBinCount);
3903
3985
  silenceAnalyser.getByteFrequencyData(frequencyData);
@@ -3920,7 +4002,7 @@ var useRecorder = function(param) {
3920
4002
  setNoiseStart,
3921
4003
  setSilenceStart
3922
4004
  ]);
3923
- (0, import_react45.useEffect)(function() {
4005
+ (0, import_react48.useEffect)(function() {
3924
4006
  if (!isStopOnSilence) return;
3925
4007
  requestAnimationFrame(function() {
3926
4008
  return handleSilence();
@@ -3929,7 +4011,7 @@ var useRecorder = function(param) {
3929
4011
  handleSilence,
3930
4012
  isStopOnSilence
3931
4013
  ]);
3932
- (0, import_react_use2.useInterval)(function() {
4014
+ useInterval(function() {
3933
4015
  if (!isStopOnSilence) return;
3934
4016
  if (status !== "recording") return;
3935
4017
  if (!silenceStart) return;
@@ -3943,7 +4025,7 @@ var useRecorder = function(param) {
3943
4025
  });
3944
4026
  };
3945
4027
  // src/hooks/audioThreads/useMessageAudio/index.ts
3946
- var import_react46 = require("react");
4028
+ var import_react49 = require("react");
3947
4029
  var import_compromise = __toESM(require("compromise"), 1);
3948
4030
  var import_howler = require("howler");
3949
4031
  var import_react_use_audio_player2 = require("react-use-audio-player");
@@ -3981,15 +4063,15 @@ var getMessageSentences = function(param) {
3981
4063
  };
3982
4064
  var useMessageAudio = function(param) {
3983
4065
  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];
4066
+ var _ref = _sliced_to_array((0, import_react49.useState)(false), 2), isAudioPlayed = _ref[0], setIsAudioPlayed = _ref[1];
4067
+ var _ref1 = _sliced_to_array((0, import_react49.useState)([]), 2), stoppedMessageIds = _ref1[0], setStoppedMessageIds = _ref1[1];
4068
+ var _ref2 = _sliced_to_array((0, import_react49.useState)([]), 2), playedMessageSentences = _ref2[0], setPlayedMessageSentences = _ref2[1];
3987
4069
  var audioPlayer = (0, import_react_use_audio_player2.useAudioPlayer)();
3988
4070
  var nextAudioPlayer = (0, import_react_use_audio_player2.useAudioPlayer)();
3989
4071
  var superinterfaceContext = useSuperinterfaceContext();
3990
- var _ref3 = _sliced_to_array((0, import_react46.useState)(false), 2), isPlaying = _ref3[0], setIsPlaying = _ref3[1];
4072
+ var _ref3 = _sliced_to_array((0, import_react49.useState)(false), 2), isPlaying = _ref3[0], setIsPlaying = _ref3[1];
3991
4073
  var latestMessageProps = useLatestMessage();
3992
- var unplayedMessageSentences = (0, import_react46.useMemo)(function() {
4074
+ var unplayedMessageSentences = (0, import_react49.useMemo)(function() {
3993
4075
  if (!latestMessageProps.latestMessage) return [];
3994
4076
  if (latestMessageProps.latestMessage.role !== "assistant") return [];
3995
4077
  if (stoppedMessageIds.includes(latestMessageProps.latestMessage.id)) return [];
@@ -4010,7 +4092,7 @@ var useMessageAudio = function(param) {
4010
4092
  latestMessageProps,
4011
4093
  playedMessageSentences
4012
4094
  ]);
4013
- (0, import_react46.useEffect)(function() {
4095
+ (0, import_react49.useEffect)(function() {
4014
4096
  if (isPlaying) return;
4015
4097
  if (audioPlayer.playing) return;
4016
4098
  if (!latestMessageProps.latestMessage) return;
@@ -4078,7 +4160,7 @@ var useMessageAudio = function(param) {
4078
4160
  playedMessageSentences,
4079
4161
  onEnd
4080
4162
  ]);
4081
- (0, import_react46.useEffect)(function() {
4163
+ (0, import_react49.useEffect)(function() {
4082
4164
  if (isHtmlAudioSupported) {
4083
4165
  var _import_howler_Howler__howls___sounds_, _import_howler_Howler__howls_, _import_howler_Howler;
4084
4166
  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 +4169,9 @@ var useMessageAudio = function(param) {
4087
4169
  }, [
4088
4170
  audioPlayer
4089
4171
  ]);
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() {
4172
+ var _ref4 = _sliced_to_array((0, import_react49.useState)(null), 2), audioEngine = _ref4[0], setAudioEngine = _ref4[1];
4173
+ var isAudioEngineInited = (0, import_react49.useRef)(false);
4174
+ (0, import_react49.useEffect)(function() {
4093
4175
  if (!audioPlayer.playing) return;
4094
4176
  if (isAudioEngineInited.current) return;
4095
4177
  isAudioEngineInited.current = true;
@@ -4110,7 +4192,7 @@ var useMessageAudio = function(param) {
4110
4192
  audioPlayer,
4111
4193
  isAudioEngineInited
4112
4194
  ]);
4113
- var visualizationAnalyser = (0, import_react46.useMemo)(function() {
4195
+ var visualizationAnalyser = (0, import_react49.useMemo)(function() {
4114
4196
  if (!audioEngine) return null;
4115
4197
  var result = audioEngine.audioContext.createAnalyser();
4116
4198
  audioEngine.source.connect(audioEngine.audioContext.destination);
@@ -4119,7 +4201,7 @@ var useMessageAudio = function(param) {
4119
4201
  }, [
4120
4202
  audioEngine
4121
4203
  ]);
4122
- var isPending = (0, import_react46.useMemo)(function() {
4204
+ var isPending = (0, import_react49.useMemo)(function() {
4123
4205
  return isPlaying || unplayedMessageSentences.length > 0;
4124
4206
  }, [
4125
4207
  isPlaying,
@@ -4176,7 +4258,7 @@ var Root12 = function(param) {
4176
4258
  };
4177
4259
  }()
4178
4260
  });
4179
- var microphonePermission = (0, import_react_use3.usePermission)({
4261
+ var microphonePermission = usePermission({
4180
4262
  name: "microphone"
4181
4263
  });
4182
4264
  var messageAudioProps = useMessageAudio({
@@ -4206,25 +4288,25 @@ var Root12 = function(param) {
4206
4288
  });
4207
4289
  };
4208
4290
  // src/components/threads/AudioThread/Visualization/index.tsx
4209
- var import_react49 = require("react");
4291
+ var import_react52 = require("react");
4210
4292
  var import_lodash9 = __toESM(require("lodash"), 1);
4211
4293
  var import_themes47 = require("@radix-ui/themes");
4212
4294
  // src/hooks/threads/useAudioThreadContext/index.ts
4213
- var import_react47 = require("react");
4295
+ var import_react50 = require("react");
4214
4296
  var useAudioThreadContext = function() {
4215
- return (0, import_react47.useContext)(AudioThreadContext);
4297
+ return (0, import_react50.useContext)(AudioThreadContext);
4216
4298
  };
4217
4299
  // src/components/threads/AudioThread/BarsVisualizer/index.tsx
4218
4300
  var import_lodash8 = __toESM(require("lodash"), 1);
4219
4301
  var import_themes46 = require("@radix-ui/themes");
4220
- var import_react48 = require("react");
4302
+ var import_react51 = require("react");
4221
4303
  var import_radash16 = require("radash");
4222
4304
  var import_jsx_runtime67 = require("react/jsx-runtime");
4223
4305
  var barCount = 4;
4224
4306
  var BarsVisualizer = function(param) {
4225
4307
  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) {
4308
+ var _ref = _sliced_to_array((0, import_react51.useState)([]), 2), barHeights = _ref[0], setBarHeights = _ref[1];
4309
+ var draw = (0, import_react51.useCallback)(function(param) {
4228
4310
  var visualizationAnalyser2 = param.visualizationAnalyser;
4229
4311
  if (!visualizationAnalyser2) {
4230
4312
  setBarHeights(Array(barCount).fill(0));
@@ -4242,7 +4324,7 @@ var BarsVisualizer = function(param) {
4242
4324
  });
4243
4325
  });
4244
4326
  }, []);
4245
- (0, import_react48.useEffect)(function() {
4327
+ (0, import_react51.useEffect)(function() {
4246
4328
  draw({
4247
4329
  visualizationAnalyser: visualizationAnalyser
4248
4330
  });
@@ -4282,9 +4364,9 @@ var BarsVisualizer = function(param) {
4282
4364
  var import_jsx_runtime68 = require("react/jsx-runtime");
4283
4365
  var Visualization = function() {
4284
4366
  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) {
4367
+ var assistantNameContext = (0, import_react52.useContext)(AssistantNameContext);
4368
+ var _ref = _sliced_to_array((0, import_react52.useState)(0), 2), scale = _ref[0], setScale = _ref[1];
4369
+ var draw = (0, import_react52.useCallback)(function(param) {
4288
4370
  var visualizationAnalyser = param.visualizationAnalyser;
4289
4371
  if (!visualizationAnalyser) {
4290
4372
  setScale(1);
@@ -4299,7 +4381,7 @@ var Visualization = function() {
4299
4381
  });
4300
4382
  });
4301
4383
  }, []);
4302
- (0, import_react49.useEffect)(function() {
4384
+ (0, import_react52.useEffect)(function() {
4303
4385
  draw({
4304
4386
  visualizationAnalyser: audioThreadContext.recorderProps.visualizationAnalyser
4305
4387
  });
@@ -4584,9 +4666,9 @@ AudioThreadDialog.Root = Root9;
4584
4666
  AudioThreadDialog.Trigger = Trigger;
4585
4667
  AudioThreadDialog.Content = Content4;
4586
4668
  // src/components/suggestions/Suggestions/index.tsx
4587
- var import_react51 = require("react");
4669
+ var import_react54 = require("react");
4588
4670
  // src/components/suggestions/Suggestions/Content.tsx
4589
- var import_react50 = require("react");
4671
+ var import_react53 = require("react");
4590
4672
  var import_radash17 = require("radash");
4591
4673
  var import_react_children_utilities = require("react-children-utilities");
4592
4674
  var import_themes52 = require("@radix-ui/themes");
@@ -4643,7 +4725,7 @@ var import_jsx_runtime77 = require("react/jsx-runtime");
4643
4725
  var Content6 = function(param) {
4644
4726
  var children = param.children;
4645
4727
  var isMutatingMessage = useIsMutatingMessage();
4646
- var suggestions = (0, import_react50.useMemo)(function() {
4728
+ var suggestions = (0, import_react53.useMemo)(function() {
4647
4729
  return (0, import_react_children_utilities.onlyText)(children).split(/\r?\n/).filter(function(c) {
4648
4730
  return !(0, import_radash17.isEmpty)(c);
4649
4731
  }).map(function(c) {
@@ -4670,7 +4752,7 @@ var import_jsx_runtime78 = require("react/jsx-runtime");
4670
4752
  var Suggestions = function(param) {
4671
4753
  var children = param.children;
4672
4754
  var latestMessageProps = useLatestMessage();
4673
- var isDisabled = (0, import_react51.useMemo)(function() {
4755
+ var isDisabled = (0, import_react54.useMemo)(function() {
4674
4756
  var // @ts-ignore-next-line
4675
4757
  _latestMessageProps_latestMessage_metadata, _latestMessageProps_latestMessage;
4676
4758
  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 +4767,14 @@ var Suggestions = function(param) {
4685
4767
  };
4686
4768
  Suggestions.Item = Item;
4687
4769
  // src/components/markdown/MarkdownProvider/index.tsx
4688
- var import_react52 = require("react");
4770
+ var import_react55 = require("react");
4689
4771
  var import_jsx_runtime79 = require("react/jsx-runtime");
4690
4772
  var MarkdownProvider = function(_param) {
4691
4773
  var children = _param.children, rest = _object_without_properties(_param, [
4692
4774
  "children"
4693
4775
  ]);
4694
4776
  var prevMarkdownContext = useMarkdownContext();
4695
- var value = (0, import_react52.useMemo)(function() {
4777
+ var value = (0, import_react55.useMemo)(function() {
4696
4778
  return merge(prevMarkdownContext, rest);
4697
4779
  }, [
4698
4780
  rest,
@@ -4704,11 +4786,11 @@ var MarkdownProvider = function(_param) {
4704
4786
  });
4705
4787
  };
4706
4788
  // src/components/components/ComponentsProvider.tsx
4707
- var import_react54 = require("react");
4789
+ var import_react57 = require("react");
4708
4790
  // src/hooks/components/useComponents.ts
4709
- var import_react53 = require("react");
4791
+ var import_react56 = require("react");
4710
4792
  var useComponents = function() {
4711
- return (0, import_react53.useContext)(ComponentsContext);
4793
+ return (0, import_react56.useContext)(ComponentsContext);
4712
4794
  };
4713
4795
  // src/components/components/ComponentsProvider.tsx
4714
4796
  var import_jsx_runtime80 = require("react/jsx-runtime");
@@ -4717,7 +4799,7 @@ var ComponentsProvider = function(_param) {
4717
4799
  "children"
4718
4800
  ]);
4719
4801
  var prevComponents = useComponents();
4720
- var value = (0, import_react54.useMemo)(function() {
4802
+ var value = (0, import_react57.useMemo)(function() {
4721
4803
  return merge(prevComponents, rest);
4722
4804
  }, [
4723
4805
  rest,