@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 +164 -82
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +119 -37
- package/dist/index.js.map +1 -1
- package/package.json +1 -2
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
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
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 =
|
|
2862
|
-
var textareaRef = (0,
|
|
2873
|
+
var isDisabledPrevious = usePrevious(isDisabled);
|
|
2874
|
+
var textareaRef = (0, import_react37.useRef)(null);
|
|
2863
2875
|
var textareaProps = register("content");
|
|
2864
|
-
(0,
|
|
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
|
|
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,
|
|
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
|
|
3393
|
+
var import_react39 = require("react");
|
|
3382
3394
|
var useMessageContext = function() {
|
|
3383
|
-
return (0,
|
|
3395
|
+
return (0, import_react39.useContext)(MessageContext);
|
|
3384
3396
|
};
|
|
3385
3397
|
// src/components/threads/ThreadDialog/Provider/index.tsx
|
|
3386
|
-
var
|
|
3398
|
+
var import_react42 = require("react");
|
|
3387
3399
|
// src/contexts/threads/ThreadDialogContext/index.ts
|
|
3388
|
-
var
|
|
3389
|
-
var ThreadDialogContext = (0,
|
|
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
|
|
3406
|
+
var import_react41 = require("react");
|
|
3395
3407
|
var useThreadDialogContext = function() {
|
|
3396
|
-
return (0,
|
|
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,
|
|
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
|
|
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,
|
|
3453
|
-
var addToast = (0,
|
|
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
|
|
3702
|
-
var AudioThreadContext = (0,
|
|
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/
|
|
3758
|
-
var
|
|
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
|
|
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,
|
|
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
|
|
3859
|
+
var import_react48 = require("react");
|
|
3799
3860
|
var import_react_use_audio_player = require("react-use-audio-player");
|
|
3800
|
-
|
|
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,
|
|
3804
|
-
var _ref1 = _sliced_to_array((0,
|
|
3805
|
-
var _ref2 = _sliced_to_array((0,
|
|
3806
|
-
var _ref3 = _sliced_to_array((0,
|
|
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,
|
|
3810
|
-
(0,
|
|
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,
|
|
3869
|
-
var isInited = (0,
|
|
3870
|
-
(0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
-
|
|
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
|
|
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,
|
|
3985
|
-
var _ref1 = _sliced_to_array((0,
|
|
3986
|
-
var _ref2 = _sliced_to_array((0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
4091
|
-
var isAudioEngineInited = (0,
|
|
4092
|
-
(0,
|
|
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,
|
|
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,
|
|
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 =
|
|
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
|
|
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
|
|
4295
|
+
var import_react50 = require("react");
|
|
4214
4296
|
var useAudioThreadContext = function() {
|
|
4215
|
-
return (0,
|
|
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
|
|
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,
|
|
4227
|
-
var draw = (0,
|
|
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,
|
|
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,
|
|
4286
|
-
var _ref = _sliced_to_array((0,
|
|
4287
|
-
var draw = (0,
|
|
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,
|
|
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
|
|
4669
|
+
var import_react54 = require("react");
|
|
4588
4670
|
// src/components/suggestions/Suggestions/Content.tsx
|
|
4589
|
-
var
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
4789
|
+
var import_react57 = require("react");
|
|
4708
4790
|
// src/hooks/components/useComponents.ts
|
|
4709
|
-
var
|
|
4791
|
+
var import_react56 = require("react");
|
|
4710
4792
|
var useComponents = function() {
|
|
4711
|
-
return (0,
|
|
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,
|
|
4802
|
+
var value = (0, import_react57.useMemo)(function() {
|
|
4721
4803
|
return merge(prevComponents, rest);
|
|
4722
4804
|
}, [
|
|
4723
4805
|
rest,
|