@bothub-chat/ui 2.80.7 → 2.80.9-develop-d21e9bb9-6867-4716-8052-d1575aa325ea
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/components/input-message/index.js +1 -1
- package/dist/components/message/actions/index.d.ts +3 -1
- package/dist/components/message/actions/index.js +1 -1
- package/dist/components/message/components/document-copy/index.d.ts +11 -0
- package/dist/components/message/components/document-copy/index.js +1 -0
- package/dist/components/message/components/document-copy/styled.d.ts +862 -0
- package/dist/components/message/components/document-copy/styled.js +1 -0
- package/dist/components/message/components/index.d.ts +1 -0
- package/dist/components/message/components/types.d.ts +3 -0
- package/dist/components/message/index.d.ts +2 -0
- package/dist/components/message/index.js +1 -1
- package/dist/components/message/markdown/index.js +1 -1
- package/dist/components/message/markdown/markdown-components.d.ts +2 -1
- package/dist/components/message/markdown/markdown-components.js +1 -1
- package/dist/components/message/markdown/styled.js +9 -9
- package/dist/components/message/reasoning-block/markdown-components.js +1 -1
- package/dist/components/modal/modal-window/index.js +1 -1
- package/dist/index.js +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/processSelection.d.ts +4 -0
- package/dist/utils/processSelection.js +1 -0
- package/dist/utils/useMessageCopyHandler.d.ts +2 -2
- package/dist/utils/useMessageCopyHandler.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__rest as i,__awaiter as s}from"tslib";import{jsx as o,jsxs as e}from"react/jsx-runtime";import{useRef as n,useState as t,useCallback as r}from"react";import{InputMessageStyled as d,InputMessageContent as c,InputMessageActions as m,InputMessageUploadFile as p,InputMessageUploadFileLabel as a,InputMessageUploadFileInput as l,InputMessageMain as j,InputMessageEditWrapper as x,InputMessageContentWrapper as g,InputMessageContentInfo as u,InputMessageContentActionText as h,InputMessageContentTextWrapper as b,InputMessageContentTextFiles as y,InputMessageContentTextMessage as f,InputMessageCloseEditButton as k,InputMessageVoiceRecord as w,InputMessageVoiceRecordDot as v,InputMessageVoiceRecordTimeText as F,InputMessageConcatenateWarning as C,InputMessageVoiceFiles as D,InputMessageVoiceTrack as S,InputMessageVoiceFileDelete as V,InputMessageTextArea as A,InputMessageButtons as P,InputMessageVoicePlayButton as T,InputMessageVoicePauseButton as E,InputMessageVoiceButton as R,InputMessageSendButton as $,InputMessageSendIcon as q}from"./styled.js";import"marked";import"../message/styled.js";import"../loader/styled.js";import"../../theme/index.js";import"../loader/three-dots-loader/styled.js";import"../skeleton/index.js";import"unified";import"remark-parse";import"remark-gfm";import"mdast-util-to-markdown";import"../../utils/colors/calculateGrayScale.js";import"../../utils/colors/calculateAccentColors.js";import{formatSeconds as z}from"../../utils/formatSeconds.js";import"../message/context.js";import"styled-components";import"../message/components/code/inline/styled.js";import"../message/components/code/multiline/styled.js";import"@react-spring/web";import"react-markdown";import"react-dom";import"../portal/styled.js";import"../tooltip/styled.js";import"../tooltip/arrow/styled.js";import"../tooltip/context.js";import"../message/components/code/multiline/copy/styled.js";import{CheckSmallIcon as B}from"../../icons/check-small/index.js";import"../../icons/copy/index.js";import"../message/components/code/multiline/content/styled.js";import"../message/components/paragraph/styled.js";import"../message/components/bold/styled.js";import"../message/components/italic/styled.js";import"../message/components/pre/styled.js";import"../message/components/table/styled.js";import"../message/components/table/cell/styled.js";import"../message/components/list/styled.js";import"../message/components/list/context.js";import"../message/components/list/item/styled.js";import"../message/components/title/styled.js";import"../message/components/link/styled.js";import"../message/components/image/styled.js";import"../message/components/image/context.js";import"../message/components/image/grid/styled.js";import"../message/components/image/button/styled.js";import"../message/components/image/button/list/styled.js";import"../message/markdown/styled.js";import"remark-math";import"rehype-katex";import"katex/dist/katex.min.css";import"../scrollbar/styled.js";import"../scrollbar/shadow/styled.js";import"../scrollbar/style/styled.js";import"../message/timestamp/styled.js";import"../../icons/menu-dot/index.js";import"../../icons/update/index.js";import"../../icons/resend/index.js";import{EditIcon as O}from"../../icons/edit/index.js";import"../../icons/trash/index.js";import"../../icons/thumb-down/index.js";import"../../icons/download-img/index.js";import"../message/actions/styled.js";import"../message/actions/copy-button/styled.js";import"../message/list/styled.js";import"../message/scroll-button/styled.js";import{IconProvider as I}from"../icon/context.js";import"../icon/styled.js";import"../../icons/arrow-down/index.js";import"../../icons/arrow-narrow-left/index.js";import"../../icons/arrow-narrow-right/index.js";import"../../icons/arrow-up/index.js";import"../../icons/bitcoin/index.js";import"../../icons/bot-circle/index.js";import"../../icons/bothub-agg/index.js";import"../../icons/business-colored/index.js";import"../../icons/check-circle/index.js";import{CloseIcon as L}from"../../icons/close/index.js";import"../../icons/email-circle/index.js";import"../../icons/language/index.js";import"../../icons/lock-circle/index.js";import"../../icons/menu/index.js";import"../../icons/medium-circle/index.js";import"../../icons/tg-circle/index.js";import"../../icons/tg-colored/index.js";import"../../icons/youcassa/index.js";import"../../icons/dashboard/index.js";import"../../icons/user-profile/index.js";import"../../icons/logout/index.js";import"../../icons/habr-2/index.js";import"../../icons/arrow-2-down/index.js";import"../../icons/links/index.js";import"../../icons/free/index.js";import"../../icons/hotness/index.js";import"../../icons/checked/index.js";import"../../icons/ai/index.js";import"../../icons/bookmarks/index.js";import"../../icons/bookmarks-big/index.js";import"../../icons/chat/index.js";import"../../icons/chats/index.js";import"../../icons/coder/index.js";import"../../icons/presets-big/index.js";import"../../icons/referal/index.js";import"../../icons/restore/index.js";import"../../icons/tariff/index.js";import"../../icons/plus-2/index.js";import"../../icons/plus-1/index.js";import"../../icons/send/index.js";import"../../icons/settings/index.js";import"../../icons/habr/index.js";import"../../icons/stop/index.js";import"../../icons/thumb-up/index.js";import"../../icons/star/index.js";import"../../icons/info-big/index.js";import"../../icons/warning-big/index.js";import"../../icons/error-big/index.js";import"../../icons/success-big/index.js";import"../../icons/mj/index.js";import"../../icons/card/index.js";import"../../icons/arrow-narrow-up/index.js";import"../../icons/arrow-narrow-down/index.js";import"../../icons/filters/index.js";import"../../icons/info/index.js";import"../../icons/search-circle/index.js";import"../../icons/save/index.js";import"../../icons/light/index.js";import"../../icons/dark/index.js";import"../../icons/email-colored/index.js";import"../../icons/action-chat/index.js";import{AttachIcon as K}from"../../icons/attach/index.js";import"../../icons/avatar-add/index.js";import"../../icons/brush/index.js";import"../../icons/calendar/index.js";import"../../icons/claude/index.js";import"../../icons/cookie/index.js";import"../../icons/dalle/index.js";import"../../icons/error/index.js";import"../../icons/expand/index.js";import"../../icons/eye/index.js";import"../../icons/face/index.js";import"../../icons/gear/index.js";import"../../icons/gear-min/index.js";import"../../icons/generation/index.js";import"../../icons/gpt-3_5/index.js";import"../../icons/gpt-4/index.js";import"../../icons/imagine/index.js";import"../../icons/imagine-2/index.js";import"../../icons/loader/index.js";import"../../icons/loader-circular/index.js";import"../../icons/loader-circular-gradient/index.js";import"../../icons/loader-circular-gradient-2/index.js";import"../../icons/minus/index.js";import"../../icons/mj-white/index.js";import"../../icons/prompt/index.js";import"../../icons/rabbit/index.js";import"../../icons/ratio-1x1/index.js";import"../../icons/ratio-2x3/index.js";import"../../icons/ratio-3x2/index.js";import"../../icons/ratio-4x5/index.js";import"../../icons/ratio-4x7/index.js";import"../../icons/ratio-5x4/index.js";import"../../icons/ratio-7x4/index.js";import"../../icons/ratio-16x9/index.js";import"../../icons/ratio-9x16/index.js";import"../../icons/ratio-21x9/index.js";import"../../icons/ratio-9x21/index.js";import"../../icons/refferal-min/index.js";import"../../icons/search-data/index.js";import"../../icons/square/index.js";import"../../icons/turtle/index.js";import"../../icons/upscale/index.js";import"../../icons/withdraw/index.js";import"../../icons/search-plus/index.js";import"../../icons/lightning/index.js";import"../../icons/blog-circle/index.js";import"../../icons/stripe/index.js";import"../../icons/corporate/index.js";import"../../icons/public/index.js";import"../../icons/private/index.js";import"../../icons/mistral/index.js";import"../../icons/gemini/index.js";import"../../icons/search-simple/index.js";import"../../icons/sad-robot/index.js";import"../../icons/model/index.js";import"../../icons/phone-colored/index.js";import"../../icons/questions/index.js";import"../../icons/pdf-big/index.js";import"../../icons/xls-big/index.js";import"../../icons/word-big/index.js";import"../../icons/txt-big/index.js";import"../../icons/pdf/index.js";import"../../icons/xls/index.js";import"../../icons/word/index.js";import"../../icons/txt/index.js";import"../../icons/bothub-logo-gradient/index.js";import"../../icons/telegram-logo-gradient/index.js";import"../../icons/decline-circle/index.js";import"../../icons/simple-gear-bg/index.js";import"../../icons/advanced-filter/index.js";import"../../icons/big-corporate/index.js";import"../../icons/big-mj/index.js";import"../../icons/big-models/index.js";import"../../icons/big-stats/index.js";import"../../icons/big-success/index.js";import"../../icons/big-users/index.js";import"../../icons/optional-presets/index.js";import"../../icons/wallet-withdraw/index.js";import"../../icons/big-presets/index.js";import"../../icons/big-favorite/index.js";import"../../icons/big-referal/index.js";import"../../icons/attach-file/index.js";import"../../icons/attach-file-big/index.js";import"../../icons/voice/index.js";import"../../icons/play-button/index.js";import"../../icons/pause-button/index.js";import"../../icons/text-read/index.js";import"../../icons/text-hide/index.js";import"../../icons/best-chat-bots/index.js";import"../../icons/upload/index.js";import"../../icons/enter/index.js";import"../../icons/discord/index.js";import"../../icons/discord-circle/index.js";import"../../icons/black-forest-labs/index.js";import"../../icons/flux/index.js";import"../../icons/stable-diffusion/index.js";import"../../icons/stability-ai/index.js";import"../../icons/article-generator/index.js";import"../../icons/success/index.js";import"../../icons/google/index.js";import"../../icons/yandex/index.js";import"../../icons/vk/index.js";import"../../icons/big-article/index.js";import"../../icons/add-chat/index.js";import"../../icons/add-group/index.js";import"../../icons/drag-dot/index.js";import"../../icons/add-folder/index.js";import"../../icons/temp-chat/index.js";import"../../icons/delete-chat/index.js";import"../../icons/sidebar-chat/index.js";import"../../icons/organization/index.js";import"../../icons/simple-gear/index.js";import"../../icons/text-bold/index.js";import"../../icons/text-italic/index.js";import"../../icons/text-underline/index.js";import"../../icons/text-strikethrough/index.js";import"../../icons/refresh/index.js";import"../../icons/copy-variants/index.js";import"../../icons/sort-ascending/index.js";import"../../icons/sort-descending/index.js";import"../../icons/quote/index.js";import"../../icons/url-circle/index.js";import"../../icons/show-ui/index.js";import"../../icons/hide-ui/index.js";import"../../icons/sort-user/index.js";import"../../icons/happy-robot/index.js";import"../../icons/happy-robot-gradient/index.js";import"../../icons/min-window/index.js";import"../../icons/max-window/index.js";import"../../icons/manage-chat/index.js";import"../../icons/analyze-urls/index.js";import"../../icons/web-search/index.js";import"../../icons/include-context/index.js";import"../../icons/queue/index.js";import"../../icons/sort-alphabet-ascending/index.js";import"../../icons/sort-alphabet-descending/index.js";import"../../icons/sort-date-ascending/index.js";import"../../icons/sort-date-descending/index.js";import"../../icons/cot-r1/index.js";import"../../icons/news/index.js";import"../../icons/volume/index.js";import"../../icons/flag-ru/index.js";import"../../icons/flag-kz/index.js";import"../../icons/print/index.js";import"../../icons/pc-icon-1/index.js";import"../../icons/pc-icon-2/index.js";import"../../icons/pc-icon-3/index.js";import"../../icons/star-unfilled/index.js";import"../../icons/image-generation/index.js";import"../../icons/speech-synthesys/index.js";import"../../icons/transcription/index.js";import"../../icons/text-rewrite/index.js";import"../../icons/code-generation/index.js";import"../../icons/essay-generation/index.js";import"../../icons/spelling/index.js";import"../../icons/text-generation/index.js";import"../../icons/traffic-analisys/index.js";import"../../icons/fav-profile/index.js";import"../../icons/exclamation/index.js";import"../../icons/article/index.js";import"../../icons/setchel/index.js";import"../../icons/assembly/index.js";import"../../icons/data-visualisation/index.js";import"../../icons/document-analisys/index.js";import"../../icons/problem-solvment/index.js";import"../../icons/setting-analisys/index.js";import"../../icons/translation/index.js";import"../../icons/stars/index.js";import"../../icons/academy/index.js";import"../../icons/articles/index.js";import"../../icons/blog-post/index.js";import"../../icons/book/index.js";import"../../icons/bow-tie/index.js";import"../../icons/case-study/index.js";import"../../icons/comments/index.js";import"../../icons/guide/index.js";import"../../icons/marketing/index.js";import"../../icons/post/index.js";import"../../icons/report/index.js";import"../../icons/review/index.js";import"../../icons/scientific-article/index.js";import"../../icons/selling-text/index.js";import"../../icons/textbook/index.js";import"../../icons/wind/index.js";import"../../icons/grok/index.js";import"../../icons/deepseek/index.js";import"../../icons/grid-horizontal/index.js";import"../../icons/grid-vertical/index.js";import"../../icons/star-gradient/index.js";import"../../icons/qwen/index.js";import"../../icons/sidebar-toggle-left/index.js";import"../../icons/sidebar-toggle-right/index.js";import"../../icons/system/index.js";import"../../icons/selector/index.js";import"../../icons/video-camera/index.js";import"../../icons/music-note/index.js";import"../../icons/add-profile/index.js";import"../../icons/token-counter/index.js";import"../../icons/customer-support/index.js";import"../../icons/sort-alphabet-top-bottom/index.js";import"../../icons/sort-alphabet-bottom-top/index.js";import"../../icons/pause/index.js";import"../../icons/play/index.js";import"../../icons/restore-2/index.js";import"../../icons/video-generation/index.js";import"../../icons/veo-model/index.js";import"../../icons/runway/index.js";import"../../icons/queue-select/index.js";import"../../icons/apple/index.js";import"../../icons/mail-colored/index.js";import"../../icons/shield/index.js";import"../../icons/stars-gradient/index.js";import"../../icons/fire/index.js";import"../../icons/brain/index.js";import"../../icons/mj-purple/index.js";import"../../icons/claude-black/index.js";import"../../icons/vk-filled/index.js";import"../../icons/tg/index.js";import"../../icons/gift/index.js";import"../../icons/exchange/index.js";import"../../icons/time/index.js";import"../../icons/folder/index.js";import"../../icons/history/index.js";import"../../icons/money-plus/index.js";import"../../icons/money-stack/index.js";import"../../icons/sort-numeric-bottom/index.js";import"../../icons/sort-numeric-top/index.js";import"../../icons/bulb/index.js";import"../../icons/prompt-queue/index.js";import"../../icons/image/index.js";import"../../icons/text/index.js";import"../../icons/code/index.js";import"../../icons/blue-grok/index.js";import"../../icons/double-image/index.js";import"../../icons/pdf-black/index.js";import"../../icons/csv/index.js";import"../../icons/xls-black/index.js";import"../../icons/word-black/index.js";import"../../icons/brain-black/index.js";import"../../icons/txt-black/index.js";import"../../icons/workspace/index.js";import"../../icons/chat-doc/index.js";import"../../icons/money-spend/index.js";import"../../icons/money-minus/index.js";import"../../icons/max-logo-gradient/index.js";import"../../icons/empty-word/index.js";import"../../icons/music-file/index.js";import"../../icons/sad-file/index.js";import"../../icons/happy-file/index.js";import"../../icons/volume-off/index.js";import"../../icons/github/index.js";import"../../icons/erase/index.js";import"../../icons/arrow-narrow-stars-right/index.js";import"../../icons/literature-list/index.js";import"../message/versions/styled.js";import"../message/copy/styled.js";import"../message/badge-progress/styled.js";import"../message/button/styled.js";import"../message/button/list/styled.js";import"../message/file/styled.js";import{MessageVoice as M}from"../message/voice/index.js";import"../message/reasoning-block/styled.js";import"../typography/styled.js";import"../message/search-results/styled.js";import"../message/video/styled.js";import{useVoice as N}from"./use-voice.js";import{useFiles as U}from"./use-files.js";import{useInput as G}from"./use-input.js";import{InputMessageFiles as H}from"./input-files.js";import{useTheme as W}from"../../theme/hook.js";const _=_=>{var{className:J,placeholder:Q,editingProps:X,hiddenSend:Y=!1,message:Z,files:ii,disabled:si=!1,sendDisabled:oi=!1,textAreaDisabled:ei=!1,messageSubmitKey:ni="enter",concatenateText:ti,uploadFileLimit:ri=20,concatenateVideo:di,hideUploadFile:ci=!1,uploadFileDisabled:mi=!1,uploadFileAccept:pi,autoFocus:ai=!0,voice:li=!1,onChange:ji,handleImageClick:xi,onFilesChange:gi,onVoiceFilesChange:ui,onTextAreaChange:hi,onSend:bi,onFocus:yi,onBlur:fi,emitError:ki,actions:wi}=_,vi=i(_,["className","placeholder","editingProps","hiddenSend","message","files","disabled","sendDisabled","textAreaDisabled","messageSubmitKey","concatenateText","uploadFileLimit","concatenateVideo","hideUploadFile","uploadFileDisabled","uploadFileAccept","autoFocus","voice","onChange","handleImageClick","onFilesChange","onVoiceFilesChange","onTextAreaChange","onSend","onFocus","onBlur","emitError","actions"]);const Fi=W(),Ci=n(null),[Di,Si]=t(!1),{files:Vi,setFiles:Ai,handleFilePaste:Pi,handleFileInputChange:Ti,handleSideUploadFiles:Ei,handleDeleteFile:Ri}=U({uploadFileAccept:pi,uploadFileLimit:ri,uploadFileDisabled:mi,initialFiles:ii,emitError:ki,onFilesChange:gi}),{voiceFiles:$i,isVoiceRecording:qi,isVoicePaused:zi,voiceRecordingTime:Bi,setVoiceFiles:Oi,handleVoiceRecordStart:Ii,handleVoiceRecordEnd:Li,handleVoiceResume:Ki,handleVoicePause:Mi,handleVoiceFileDelete:Ni}=N({onVoiceFilesChange:ui}),{textareaRef:Ui,isFocus:Gi,height:Hi,message:Wi,setHeight:_i,setMessage:Ji,handleFocus:Qi,handleBlur:Xi,handleClick:Yi,handleChange:Zi}=G({initialMessage:Z,disabled:si,autoFocus:ai,messageSubmitKey:ni,onChange:ji,onSendMessage:()=>{null==bi||bi(Wi,Vi),null==Ai||Ai([]),null==Oi||Oi([])},onTextAreaChange:hi,onFocus:yi,onBlur:fi}),is=r(i=>{i.stopPropagation(),null==bi||bi(Wi,Vi),null==Ji||Ji(""),null==Ai||Ai([]),null==Oi||Oi([]),_i("calc(var(--bothub-scale, 1) * 22px)")},[Wi,Vi,bi,Ji,Ai,Oi]),ss=r(i=>{var s;i.stopPropagation(),null===(s=Ci.current)||void 0===s||s.click()},[Ci]),os=null==Vi?void 0:Vi.filter(i=>i.native.type.startsWith("video/"));return o(d,{$active:Gi,$dragActive:Di,$disabled:si,$textAreaDisabled:ei,$voiceRecording:qi,className:J,onClick:Yi,onDragEnter:()=>Si(!0),onDragLeave:()=>Si(!1),onDragOver:i=>(i.stopPropagation(),i.preventDefault(),!1),onDrop:i=>s(void 0,void 0,void 0,function*(){if(i.dataTransfer.files.length>0)return i.stopPropagation(),i.preventDefault(),yield Ei([...i.dataTransfer.files]),Si(!1),!1}),children:e(c,{children:[e(m,{children:[!ci&&e(p,{children:[o(a,{$disabled:Vi.length>=ri||si||mi,onClick:ss,children:o(K,{size:18,fill:Fi.colors.base.white})}),o(l,{ref:Ci,type:"file",accept:pi,multiple:!0,disabled:Vi.length>=ri||si||mi,onChange:Ti},Vi.length)]}),wi]}),e(j,{onClick:Yi,children:[(null==X?void 0:X.isEditing)&&e(x,{children:[o(I,{size:24,children:o(O,{})}),e(g,{children:[e(u,{children:[o(h,{children:X.editingTitle}),e(b,{children:[o(y,{children:X.editFiles}),o(f,{children:X.editString})]})]}),o(k,{onClick:X.resetEdit,children:o(I,{size:18,children:o(L,{})})})]})]}),qi&&null!==Bi&&e(w,{children:[o(v,{}),o(F,{children:z(Bi)})]}),o(H,{files:Vi,handleImageClick:xi,handleDeleteFile:Ri}),$i.length>1&&o(C,{children:ti}),os.length>1&&o(C,{children:di}),$i.length>0&&o(D,{children:$i.map(i=>e(S,{children:[o(M,{variant:"input",height:18,src:i.src,duration:i.duration,waveData:i.waveData,disableTranscription:!0}),o(V,{onClick:Ni.bind(null,i)})]},i.src))}),(!ei||ei&&Q&&Vi.length!==ri||ei&&Wi)&&o(A,Object.assign({$disabled:si},vi,{ref:Ui,value:Wi,placeholder:Q,disabled:si||ei,style:Object.assign(Object.assign({},vi.style),{height:Hi}),onFocus:Qi,onBlur:Xi,onChange:Zi,onPaste:Pi}))]}),e(P,{children:[qi&&(zi?o(T,{onClick:Ki}):o(E,{onClick:Mi})),li&&o(R,{$isRecording:qi,disabled:si||oi,onClick:qi?Li:Ii,"data-test":"submit-message"}),!Y&&!qi&&o($,Object.assign({disabled:si||oi||qi,onClick:is},Fi.bright&&{iconFill:Fi.default.colors.base.black},{"data-test":"submit-message",children:(null==X?void 0:X.isEditing)?o(B,{}):o(q,{})}))]})]})})};export{_ as InputMessage,H as InputMessageFiles};
|
|
1
|
+
import{__rest as i,__awaiter as s}from"tslib";import{jsx as o,jsxs as e}from"react/jsx-runtime";import{useRef as n,useState as t,useCallback as r}from"react";import{InputMessageStyled as d,InputMessageContent as c,InputMessageActions as m,InputMessageUploadFile as p,InputMessageUploadFileLabel as a,InputMessageUploadFileInput as l,InputMessageMain as j,InputMessageEditWrapper as x,InputMessageContentWrapper as g,InputMessageContentInfo as u,InputMessageContentActionText as h,InputMessageContentTextWrapper as b,InputMessageContentTextFiles as y,InputMessageContentTextMessage as f,InputMessageCloseEditButton as k,InputMessageVoiceRecord as w,InputMessageVoiceRecordDot as v,InputMessageVoiceRecordTimeText as F,InputMessageConcatenateWarning as C,InputMessageVoiceFiles as D,InputMessageVoiceTrack as S,InputMessageVoiceFileDelete as V,InputMessageTextArea as A,InputMessageButtons as P,InputMessageVoicePlayButton as T,InputMessageVoicePauseButton as E,InputMessageVoiceButton as R,InputMessageSendButton as $,InputMessageSendIcon as q}from"./styled.js";import"marked";import"../message/styled.js";import"../loader/styled.js";import"../../theme/index.js";import"../loader/three-dots-loader/styled.js";import"../skeleton/index.js";import"unified";import"remark-parse";import"remark-gfm";import"mdast-util-to-markdown";import"../../utils/colors/calculateGrayScale.js";import"../../utils/colors/calculateAccentColors.js";import{formatSeconds as z}from"../../utils/formatSeconds.js";import"../message/context.js";import"styled-components";import"../message/components/code/inline/styled.js";import"../message/components/code/multiline/styled.js";import"@react-spring/web";import"react-markdown";import"react-dom";import"../portal/styled.js";import"../tooltip/styled.js";import"../tooltip/arrow/styled.js";import"../tooltip/context.js";import"../message/components/code/multiline/copy/styled.js";import{CheckSmallIcon as B}from"../../icons/check-small/index.js";import"../../icons/copy/index.js";import"../message/components/code/multiline/content/styled.js";import"../message/components/paragraph/styled.js";import"../message/components/bold/styled.js";import"../message/components/italic/styled.js";import"../message/components/pre/styled.js";import"../message/components/table/styled.js";import"../message/components/table/cell/styled.js";import"../message/components/list/styled.js";import"../message/components/list/context.js";import"../message/components/list/item/styled.js";import"../message/components/title/styled.js";import"../message/components/link/styled.js";import"../message/components/image/styled.js";import"../message/components/image/context.js";import"../message/components/image/grid/styled.js";import"../message/components/image/button/styled.js";import"../message/components/image/button/list/styled.js";import"../message/components/document-copy/styled.js";import"../message/markdown/styled.js";import"remark-math";import"rehype-katex";import"katex/dist/katex.min.css";import"../scrollbar/styled.js";import"../scrollbar/shadow/styled.js";import"../scrollbar/style/styled.js";import"../message/timestamp/styled.js";import"../../icons/menu-dot/index.js";import"../../icons/update/index.js";import"../../icons/resend/index.js";import{EditIcon as O}from"../../icons/edit/index.js";import"../../icons/trash/index.js";import"../../icons/thumb-down/index.js";import"../../icons/download-img/index.js";import"../message/actions/styled.js";import"../message/actions/copy-button/styled.js";import"../message/list/styled.js";import"../message/scroll-button/styled.js";import{IconProvider as I}from"../icon/context.js";import"../icon/styled.js";import"../../icons/arrow-down/index.js";import"../../icons/arrow-narrow-left/index.js";import"../../icons/arrow-narrow-right/index.js";import"../../icons/arrow-up/index.js";import"../../icons/bitcoin/index.js";import"../../icons/bot-circle/index.js";import"../../icons/bothub-agg/index.js";import"../../icons/business-colored/index.js";import"../../icons/check-circle/index.js";import{CloseIcon as L}from"../../icons/close/index.js";import"../../icons/email-circle/index.js";import"../../icons/language/index.js";import"../../icons/lock-circle/index.js";import"../../icons/menu/index.js";import"../../icons/medium-circle/index.js";import"../../icons/tg-circle/index.js";import"../../icons/tg-colored/index.js";import"../../icons/youcassa/index.js";import"../../icons/dashboard/index.js";import"../../icons/user-profile/index.js";import"../../icons/logout/index.js";import"../../icons/habr-2/index.js";import"../../icons/arrow-2-down/index.js";import"../../icons/links/index.js";import"../../icons/free/index.js";import"../../icons/hotness/index.js";import"../../icons/checked/index.js";import"../../icons/ai/index.js";import"../../icons/bookmarks/index.js";import"../../icons/bookmarks-big/index.js";import"../../icons/chat/index.js";import"../../icons/chats/index.js";import"../../icons/coder/index.js";import"../../icons/presets-big/index.js";import"../../icons/referal/index.js";import"../../icons/restore/index.js";import"../../icons/tariff/index.js";import"../../icons/plus-2/index.js";import"../../icons/plus-1/index.js";import"../../icons/send/index.js";import"../../icons/settings/index.js";import"../../icons/habr/index.js";import"../../icons/stop/index.js";import"../../icons/thumb-up/index.js";import"../../icons/star/index.js";import"../../icons/info-big/index.js";import"../../icons/warning-big/index.js";import"../../icons/error-big/index.js";import"../../icons/success-big/index.js";import"../../icons/mj/index.js";import"../../icons/card/index.js";import"../../icons/arrow-narrow-up/index.js";import"../../icons/arrow-narrow-down/index.js";import"../../icons/filters/index.js";import"../../icons/info/index.js";import"../../icons/search-circle/index.js";import"../../icons/save/index.js";import"../../icons/light/index.js";import"../../icons/dark/index.js";import"../../icons/email-colored/index.js";import"../../icons/action-chat/index.js";import{AttachIcon as K}from"../../icons/attach/index.js";import"../../icons/avatar-add/index.js";import"../../icons/brush/index.js";import"../../icons/calendar/index.js";import"../../icons/claude/index.js";import"../../icons/cookie/index.js";import"../../icons/dalle/index.js";import"../../icons/error/index.js";import"../../icons/expand/index.js";import"../../icons/eye/index.js";import"../../icons/face/index.js";import"../../icons/gear/index.js";import"../../icons/gear-min/index.js";import"../../icons/generation/index.js";import"../../icons/gpt-3_5/index.js";import"../../icons/gpt-4/index.js";import"../../icons/imagine/index.js";import"../../icons/imagine-2/index.js";import"../../icons/loader/index.js";import"../../icons/loader-circular/index.js";import"../../icons/loader-circular-gradient/index.js";import"../../icons/loader-circular-gradient-2/index.js";import"../../icons/minus/index.js";import"../../icons/mj-white/index.js";import"../../icons/prompt/index.js";import"../../icons/rabbit/index.js";import"../../icons/ratio-1x1/index.js";import"../../icons/ratio-2x3/index.js";import"../../icons/ratio-3x2/index.js";import"../../icons/ratio-4x5/index.js";import"../../icons/ratio-4x7/index.js";import"../../icons/ratio-5x4/index.js";import"../../icons/ratio-7x4/index.js";import"../../icons/ratio-16x9/index.js";import"../../icons/ratio-9x16/index.js";import"../../icons/ratio-21x9/index.js";import"../../icons/ratio-9x21/index.js";import"../../icons/refferal-min/index.js";import"../../icons/search-data/index.js";import"../../icons/square/index.js";import"../../icons/turtle/index.js";import"../../icons/upscale/index.js";import"../../icons/withdraw/index.js";import"../../icons/search-plus/index.js";import"../../icons/lightning/index.js";import"../../icons/blog-circle/index.js";import"../../icons/stripe/index.js";import"../../icons/corporate/index.js";import"../../icons/public/index.js";import"../../icons/private/index.js";import"../../icons/mistral/index.js";import"../../icons/gemini/index.js";import"../../icons/search-simple/index.js";import"../../icons/sad-robot/index.js";import"../../icons/model/index.js";import"../../icons/phone-colored/index.js";import"../../icons/questions/index.js";import"../../icons/pdf-big/index.js";import"../../icons/xls-big/index.js";import"../../icons/word-big/index.js";import"../../icons/txt-big/index.js";import"../../icons/pdf/index.js";import"../../icons/xls/index.js";import"../../icons/word/index.js";import"../../icons/txt/index.js";import"../../icons/bothub-logo-gradient/index.js";import"../../icons/telegram-logo-gradient/index.js";import"../../icons/decline-circle/index.js";import"../../icons/simple-gear-bg/index.js";import"../../icons/advanced-filter/index.js";import"../../icons/big-corporate/index.js";import"../../icons/big-mj/index.js";import"../../icons/big-models/index.js";import"../../icons/big-stats/index.js";import"../../icons/big-success/index.js";import"../../icons/big-users/index.js";import"../../icons/optional-presets/index.js";import"../../icons/wallet-withdraw/index.js";import"../../icons/big-presets/index.js";import"../../icons/big-favorite/index.js";import"../../icons/big-referal/index.js";import"../../icons/attach-file/index.js";import"../../icons/attach-file-big/index.js";import"../../icons/voice/index.js";import"../../icons/play-button/index.js";import"../../icons/pause-button/index.js";import"../../icons/text-read/index.js";import"../../icons/text-hide/index.js";import"../../icons/best-chat-bots/index.js";import"../../icons/upload/index.js";import"../../icons/enter/index.js";import"../../icons/discord/index.js";import"../../icons/discord-circle/index.js";import"../../icons/black-forest-labs/index.js";import"../../icons/flux/index.js";import"../../icons/stable-diffusion/index.js";import"../../icons/stability-ai/index.js";import"../../icons/article-generator/index.js";import"../../icons/success/index.js";import"../../icons/google/index.js";import"../../icons/yandex/index.js";import"../../icons/vk/index.js";import"../../icons/big-article/index.js";import"../../icons/add-chat/index.js";import"../../icons/add-group/index.js";import"../../icons/drag-dot/index.js";import"../../icons/add-folder/index.js";import"../../icons/temp-chat/index.js";import"../../icons/delete-chat/index.js";import"../../icons/sidebar-chat/index.js";import"../../icons/organization/index.js";import"../../icons/simple-gear/index.js";import"../../icons/text-bold/index.js";import"../../icons/text-italic/index.js";import"../../icons/text-underline/index.js";import"../../icons/text-strikethrough/index.js";import"../../icons/refresh/index.js";import"../../icons/copy-variants/index.js";import"../../icons/sort-ascending/index.js";import"../../icons/sort-descending/index.js";import"../../icons/quote/index.js";import"../../icons/url-circle/index.js";import"../../icons/show-ui/index.js";import"../../icons/hide-ui/index.js";import"../../icons/sort-user/index.js";import"../../icons/happy-robot/index.js";import"../../icons/happy-robot-gradient/index.js";import"../../icons/min-window/index.js";import"../../icons/max-window/index.js";import"../../icons/manage-chat/index.js";import"../../icons/analyze-urls/index.js";import"../../icons/web-search/index.js";import"../../icons/include-context/index.js";import"../../icons/queue/index.js";import"../../icons/sort-alphabet-ascending/index.js";import"../../icons/sort-alphabet-descending/index.js";import"../../icons/sort-date-ascending/index.js";import"../../icons/sort-date-descending/index.js";import"../../icons/cot-r1/index.js";import"../../icons/news/index.js";import"../../icons/volume/index.js";import"../../icons/flag-ru/index.js";import"../../icons/flag-kz/index.js";import"../../icons/print/index.js";import"../../icons/pc-icon-1/index.js";import"../../icons/pc-icon-2/index.js";import"../../icons/pc-icon-3/index.js";import"../../icons/star-unfilled/index.js";import"../../icons/image-generation/index.js";import"../../icons/speech-synthesys/index.js";import"../../icons/transcription/index.js";import"../../icons/text-rewrite/index.js";import"../../icons/code-generation/index.js";import"../../icons/essay-generation/index.js";import"../../icons/spelling/index.js";import"../../icons/text-generation/index.js";import"../../icons/traffic-analisys/index.js";import"../../icons/fav-profile/index.js";import"../../icons/exclamation/index.js";import"../../icons/article/index.js";import"../../icons/setchel/index.js";import"../../icons/assembly/index.js";import"../../icons/data-visualisation/index.js";import"../../icons/document-analisys/index.js";import"../../icons/problem-solvment/index.js";import"../../icons/setting-analisys/index.js";import"../../icons/translation/index.js";import"../../icons/stars/index.js";import"../../icons/academy/index.js";import"../../icons/articles/index.js";import"../../icons/blog-post/index.js";import"../../icons/book/index.js";import"../../icons/bow-tie/index.js";import"../../icons/case-study/index.js";import"../../icons/comments/index.js";import"../../icons/guide/index.js";import"../../icons/marketing/index.js";import"../../icons/post/index.js";import"../../icons/report/index.js";import"../../icons/review/index.js";import"../../icons/scientific-article/index.js";import"../../icons/selling-text/index.js";import"../../icons/textbook/index.js";import"../../icons/wind/index.js";import"../../icons/grok/index.js";import"../../icons/deepseek/index.js";import"../../icons/grid-horizontal/index.js";import"../../icons/grid-vertical/index.js";import"../../icons/star-gradient/index.js";import"../../icons/qwen/index.js";import"../../icons/sidebar-toggle-left/index.js";import"../../icons/sidebar-toggle-right/index.js";import"../../icons/system/index.js";import"../../icons/selector/index.js";import"../../icons/video-camera/index.js";import"../../icons/music-note/index.js";import"../../icons/add-profile/index.js";import"../../icons/token-counter/index.js";import"../../icons/customer-support/index.js";import"../../icons/sort-alphabet-top-bottom/index.js";import"../../icons/sort-alphabet-bottom-top/index.js";import"../../icons/pause/index.js";import"../../icons/play/index.js";import"../../icons/restore-2/index.js";import"../../icons/video-generation/index.js";import"../../icons/veo-model/index.js";import"../../icons/runway/index.js";import"../../icons/queue-select/index.js";import"../../icons/apple/index.js";import"../../icons/mail-colored/index.js";import"../../icons/shield/index.js";import"../../icons/stars-gradient/index.js";import"../../icons/fire/index.js";import"../../icons/brain/index.js";import"../../icons/mj-purple/index.js";import"../../icons/claude-black/index.js";import"../../icons/vk-filled/index.js";import"../../icons/tg/index.js";import"../../icons/gift/index.js";import"../../icons/exchange/index.js";import"../../icons/time/index.js";import"../../icons/folder/index.js";import"../../icons/history/index.js";import"../../icons/money-plus/index.js";import"../../icons/money-stack/index.js";import"../../icons/sort-numeric-bottom/index.js";import"../../icons/sort-numeric-top/index.js";import"../../icons/bulb/index.js";import"../../icons/prompt-queue/index.js";import"../../icons/image/index.js";import"../../icons/text/index.js";import"../../icons/code/index.js";import"../../icons/blue-grok/index.js";import"../../icons/double-image/index.js";import"../../icons/pdf-black/index.js";import"../../icons/csv/index.js";import"../../icons/xls-black/index.js";import"../../icons/word-black/index.js";import"../../icons/brain-black/index.js";import"../../icons/txt-black/index.js";import"../../icons/workspace/index.js";import"../../icons/chat-doc/index.js";import"../../icons/money-spend/index.js";import"../../icons/money-minus/index.js";import"../../icons/max-logo-gradient/index.js";import"../../icons/empty-word/index.js";import"../../icons/music-file/index.js";import"../../icons/sad-file/index.js";import"../../icons/happy-file/index.js";import"../../icons/volume-off/index.js";import"../../icons/github/index.js";import"../../icons/erase/index.js";import"../../icons/arrow-narrow-stars-right/index.js";import"../../icons/literature-list/index.js";import"../message/versions/styled.js";import"../message/copy/styled.js";import"../message/badge-progress/styled.js";import"../message/button/styled.js";import"../message/button/list/styled.js";import"../message/file/styled.js";import{MessageVoice as M}from"../message/voice/index.js";import"../message/reasoning-block/styled.js";import"../typography/styled.js";import"../message/search-results/styled.js";import"../message/video/styled.js";import{useVoice as N}from"./use-voice.js";import{useFiles as U}from"./use-files.js";import{useInput as G}from"./use-input.js";import{InputMessageFiles as H}from"./input-files.js";import{useTheme as W}from"../../theme/hook.js";const _=_=>{var{className:J,placeholder:Q,editingProps:X,hiddenSend:Y=!1,message:Z,files:ii,disabled:si=!1,sendDisabled:oi=!1,textAreaDisabled:ei=!1,messageSubmitKey:ni="enter",concatenateText:ti,uploadFileLimit:ri=20,concatenateVideo:di,hideUploadFile:ci=!1,uploadFileDisabled:mi=!1,uploadFileAccept:pi,autoFocus:ai=!0,voice:li=!1,onChange:ji,handleImageClick:xi,onFilesChange:gi,onVoiceFilesChange:ui,onTextAreaChange:hi,onSend:bi,onFocus:yi,onBlur:fi,emitError:ki,actions:wi}=_,vi=i(_,["className","placeholder","editingProps","hiddenSend","message","files","disabled","sendDisabled","textAreaDisabled","messageSubmitKey","concatenateText","uploadFileLimit","concatenateVideo","hideUploadFile","uploadFileDisabled","uploadFileAccept","autoFocus","voice","onChange","handleImageClick","onFilesChange","onVoiceFilesChange","onTextAreaChange","onSend","onFocus","onBlur","emitError","actions"]);const Fi=W(),Ci=n(null),[Di,Si]=t(!1),{files:Vi,setFiles:Ai,handleFilePaste:Pi,handleFileInputChange:Ti,handleSideUploadFiles:Ei,handleDeleteFile:Ri}=U({uploadFileAccept:pi,uploadFileLimit:ri,uploadFileDisabled:mi,initialFiles:ii,emitError:ki,onFilesChange:gi}),{voiceFiles:$i,isVoiceRecording:qi,isVoicePaused:zi,voiceRecordingTime:Bi,setVoiceFiles:Oi,handleVoiceRecordStart:Ii,handleVoiceRecordEnd:Li,handleVoiceResume:Ki,handleVoicePause:Mi,handleVoiceFileDelete:Ni}=N({onVoiceFilesChange:ui}),{textareaRef:Ui,isFocus:Gi,height:Hi,message:Wi,setHeight:_i,setMessage:Ji,handleFocus:Qi,handleBlur:Xi,handleClick:Yi,handleChange:Zi}=G({initialMessage:Z,disabled:si,autoFocus:ai,messageSubmitKey:ni,onChange:ji,onSendMessage:()=>{null==bi||bi(Wi,Vi),null==Ai||Ai([]),null==Oi||Oi([])},onTextAreaChange:hi,onFocus:yi,onBlur:fi}),is=r(i=>{i.stopPropagation(),null==bi||bi(Wi,Vi),null==Ji||Ji(""),null==Ai||Ai([]),null==Oi||Oi([]),_i("calc(var(--bothub-scale, 1) * 22px)")},[Wi,Vi,bi,Ji,Ai,Oi]),ss=r(i=>{var s;i.stopPropagation(),null===(s=Ci.current)||void 0===s||s.click()},[Ci]),os=null==Vi?void 0:Vi.filter(i=>i.native.type.startsWith("video/"));return o(d,{$active:Gi,$dragActive:Di,$disabled:si,$textAreaDisabled:ei,$voiceRecording:qi,className:J,onClick:Yi,onDragEnter:()=>Si(!0),onDragLeave:()=>Si(!1),onDragOver:i=>(i.stopPropagation(),i.preventDefault(),!1),onDrop:i=>s(void 0,void 0,void 0,function*(){if(i.dataTransfer.files.length>0)return i.stopPropagation(),i.preventDefault(),yield Ei([...i.dataTransfer.files]),Si(!1),!1}),children:e(c,{children:[e(m,{children:[!ci&&e(p,{children:[o(a,{$disabled:Vi.length>=ri||si||mi,onClick:ss,children:o(K,{size:18,fill:Fi.colors.base.white})}),o(l,{ref:Ci,type:"file",accept:pi,multiple:!0,disabled:Vi.length>=ri||si||mi,onChange:Ti},Vi.length)]}),wi]}),e(j,{onClick:Yi,children:[(null==X?void 0:X.isEditing)&&e(x,{children:[o(I,{size:24,children:o(O,{})}),e(g,{children:[e(u,{children:[o(h,{children:X.editingTitle}),e(b,{children:[o(y,{children:X.editFiles}),o(f,{children:X.editString})]})]}),o(k,{onClick:X.resetEdit,children:o(I,{size:18,children:o(L,{})})})]})]}),qi&&null!==Bi&&e(w,{children:[o(v,{}),o(F,{children:z(Bi)})]}),o(H,{files:Vi,handleImageClick:xi,handleDeleteFile:Ri}),$i.length>1&&o(C,{children:ti}),os.length>1&&o(C,{children:di}),$i.length>0&&o(D,{children:$i.map(i=>e(S,{children:[o(M,{variant:"input",height:18,src:i.src,duration:i.duration,waveData:i.waveData,disableTranscription:!0}),o(V,{onClick:Ni.bind(null,i)})]},i.src))}),(!ei||ei&&Q&&Vi.length!==ri||ei&&Wi)&&o(A,Object.assign({$disabled:si},vi,{ref:Ui,value:Wi,placeholder:Q,disabled:si||ei,style:Object.assign(Object.assign({},vi.style),{height:Hi}),onFocus:Qi,onBlur:Xi,onChange:Zi,onPaste:Pi}))]}),e(P,{children:[qi&&(zi?o(T,{onClick:Ki}):o(E,{onClick:Mi})),li&&o(R,{$isRecording:qi,disabled:si||oi,onClick:qi?Li:Ii,"data-test":"submit-message"}),!Y&&!qi&&o($,Object.assign({disabled:si||oi||qi,onClick:is},Fi.bright&&{iconFill:Fi.default.colors.base.black},{"data-test":"submit-message",children:(null==X?void 0:X.isEditing)?o(B,{}):o(q,{})}))]})]})})};export{_ as InputMessage,H as InputMessageFiles};
|
|
@@ -12,6 +12,7 @@ type MessageActionsProps = {
|
|
|
12
12
|
disableCopy?: boolean;
|
|
13
13
|
disableDownload?: boolean;
|
|
14
14
|
disableEncryption?: boolean;
|
|
15
|
+
hasCacheTokens?: boolean;
|
|
15
16
|
editOutOfMenu?: boolean;
|
|
16
17
|
editText?: string | null;
|
|
17
18
|
copyTgText?: string | null;
|
|
@@ -23,6 +24,7 @@ type MessageActionsProps = {
|
|
|
23
24
|
updateTooltipLabel?: string | null;
|
|
24
25
|
copyTooltipLabel?: string | null;
|
|
25
26
|
encryptionTooltipLabel?: string | null;
|
|
27
|
+
cacheTokenTooltipLabel?: string | null;
|
|
26
28
|
onEdit?: MessageActionEditEventHandler;
|
|
27
29
|
onResend?: MessageActionEventHandler;
|
|
28
30
|
onDelete?: MessageActionEventHandler;
|
|
@@ -33,5 +35,5 @@ type MessageActionsProps = {
|
|
|
33
35
|
onCopy?: MessageActionEventHandler;
|
|
34
36
|
onDownload?: () => void;
|
|
35
37
|
};
|
|
36
|
-
export declare const MessageActions: ({ id, disableModal, message, variant, skeleton, disableResend, disableEdit, disableDelete, disableUpdate, disableCopy, disableDownload, disableEncryption, editOutOfMenu, editText, copyTgText, copyPlainText, resendText, deleteText, onReportText, downloadTooltipLabel, encryptionTooltipLabel, updateTooltipLabel, copyTooltipLabel, onEdit, onResend, onDelete, onUpdate, onReport, onPlainTextCopy, onTgCopy, onCopy, onDownload, }: MessageActionsProps) => import("react/jsx-runtime").JSX.Element;
|
|
38
|
+
export declare const MessageActions: ({ id, disableModal, message, variant, skeleton, disableResend, disableEdit, disableDelete, disableUpdate, disableCopy, disableDownload, disableEncryption, hasCacheTokens, editOutOfMenu, editText, copyTgText, copyPlainText, resendText, deleteText, onReportText, downloadTooltipLabel, encryptionTooltipLabel, cacheTokenTooltipLabel, updateTooltipLabel, copyTooltipLabel, onEdit, onResend, onDelete, onUpdate, onReport, onPlainTextCopy, onTgCopy, onCopy, onDownload, }: MessageActionsProps) => import("react/jsx-runtime").JSX.Element;
|
|
37
39
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as i,jsx as o,Fragment as n}from"react/jsx-runtime";import{useState as s,useRef as e,useMemo as t,useCallback as r,useLayoutEffect as c,useEffect as d}from"react";import{useTransition as m,easings as p}from"@react-spring/web";import{MenuDotIcon as x}from"../../../icons/menu-dot/index.js";import{UpdateIcon as j}from"../../../icons/update/index.js";import{ResendIcon as a}from"../../../icons/resend/index.js";import{EditIcon as l}from"../../../icons/edit/index.js";import{TrashIcon as u}from"../../../icons/trash/index.js";import{ThumbDownIcon as g}from"../../../icons/thumb-down/index.js";import{CopyIcon as b}from"../../../icons/copy/index.js";import{DownloadImgIcon as h}from"../../../icons/download-img/index.js";import{MessageActionsStyled as f,MessageActionsMenuStyled as w,MessageActionsMenuModal as y,MessageActionsMenuModalOptionContent as k,MessageActionsButtonText as v}from"./styled.js";import{MenuOption as C}from"./menu-option/index.js";import{CopyButton as L}from"./copy-button/index.js";import{ActionButton as T}from"./action-button/index.js";import"../list/styled.js";import{useScrollbarRef as z}from"../list/context.js";import"../scroll-button/styled.js";import"tslib";import{IconProvider as E}from"../../icon/context.js";import"../../icon/styled.js";import"react-markdown";import"react-dom";import"../../portal/styled.js";import"../../tooltip/styled.js";import"../../tooltip/arrow/styled.js";import"../../../theme/index.js";import"../../tooltip/context.js";import"unified";import"remark-parse";import"remark-gfm";import"mdast-util-to-markdown";import{colorToRgba as q}from"../../../utils/colors/colorToRgba.js";import"../../../utils/colors/calculateGrayScale.js";import"../../../utils/colors/calculateAccentColors.js";import"../../../icons/arrow-down/index.js";import"../../../icons/arrow-narrow-left/index.js";import"../../../icons/arrow-narrow-right/index.js";import"../../../icons/arrow-up/index.js";import"../../../icons/bitcoin/index.js";import"../../../icons/bot-circle/index.js";import"../../../icons/bothub-agg/index.js";import"../../../icons/business-colored/index.js";import"../../../icons/check-circle/index.js";import"../../../icons/close/index.js";import"../../../icons/email-circle/index.js";import"../../../icons/language/index.js";import"../../../icons/lock-circle/index.js";import"../../../icons/menu/index.js";import"../../../icons/medium-circle/index.js";import"../../../icons/tg-circle/index.js";import"../../../icons/tg-colored/index.js";import"../../../icons/youcassa/index.js";import"../../../icons/dashboard/index.js";import"../../../icons/user-profile/index.js";import"../../../icons/logout/index.js";import"../../../icons/habr-2/index.js";import"../../../icons/arrow-2-down/index.js";import"../../../icons/links/index.js";import"../../../icons/free/index.js";import"../../../icons/hotness/index.js";import"../../../icons/checked/index.js";import"../../../icons/ai/index.js";import"../../../icons/bookmarks/index.js";import"../../../icons/bookmarks-big/index.js";import"../../../icons/chat/index.js";import"../../../icons/chats/index.js";import"../../../icons/coder/index.js";import"../../../icons/presets-big/index.js";import"../../../icons/referal/index.js";import"../../../icons/restore/index.js";import"../../../icons/tariff/index.js";import"../../../icons/plus-2/index.js";import"../../../icons/plus-1/index.js";import"../../../icons/send/index.js";import"../../../icons/settings/index.js";import"../../../icons/habr/index.js";import"../../../icons/check-small/index.js";import"../../../icons/stop/index.js";import"../../../icons/thumb-up/index.js";import"../../../icons/star/index.js";import"../../../icons/info-big/index.js";import"../../../icons/warning-big/index.js";import"../../../icons/error-big/index.js";import"../../../icons/success-big/index.js";import"../../../icons/mj/index.js";import"../../../icons/card/index.js";import"../../../icons/arrow-narrow-up/index.js";import"../../../icons/arrow-narrow-down/index.js";import"../../../icons/filters/index.js";import"../../../icons/info/index.js";import"../../../icons/search-circle/index.js";import"../../../icons/save/index.js";import"../../../icons/light/index.js";import"../../../icons/dark/index.js";import"../../../icons/email-colored/index.js";import"../../../icons/action-chat/index.js";import"../../../icons/attach/index.js";import"../../../icons/avatar-add/index.js";import"../../../icons/brush/index.js";import"../../../icons/calendar/index.js";import"../../../icons/claude/index.js";import"../../../icons/cookie/index.js";import"../../../icons/dalle/index.js";import"../../../icons/error/index.js";import"../../../icons/expand/index.js";import"../../../icons/eye/index.js";import"../../../icons/face/index.js";import"../../../icons/gear/index.js";import"../../../icons/gear-min/index.js";import"../../../icons/generation/index.js";import"../../../icons/gpt-3_5/index.js";import"../../../icons/gpt-4/index.js";import"../../../icons/imagine/index.js";import"../../../icons/imagine-2/index.js";import"../../../icons/loader/index.js";import"../../../icons/loader-circular/index.js";import"../../../icons/loader-circular-gradient/index.js";import"../../../icons/loader-circular-gradient-2/index.js";import"../../../icons/minus/index.js";import"../../../icons/mj-white/index.js";import"../../../icons/prompt/index.js";import"../../../icons/rabbit/index.js";import"../../../icons/ratio-1x1/index.js";import"../../../icons/ratio-2x3/index.js";import"../../../icons/ratio-3x2/index.js";import"../../../icons/ratio-4x5/index.js";import"../../../icons/ratio-4x7/index.js";import"../../../icons/ratio-5x4/index.js";import"../../../icons/ratio-7x4/index.js";import"../../../icons/ratio-16x9/index.js";import"../../../icons/ratio-9x16/index.js";import"../../../icons/ratio-21x9/index.js";import"../../../icons/ratio-9x21/index.js";import"../../../icons/refferal-min/index.js";import"../../../icons/search-data/index.js";import"../../../icons/square/index.js";import"../../../icons/turtle/index.js";import"../../../icons/upscale/index.js";import"../../../icons/withdraw/index.js";import"../../../icons/search-plus/index.js";import"../../../icons/lightning/index.js";import"../../../icons/blog-circle/index.js";import"../../../icons/stripe/index.js";import"../../../icons/corporate/index.js";import"../../../icons/public/index.js";import"../../../icons/private/index.js";import"../../../icons/mistral/index.js";import"../../../icons/gemini/index.js";import"../../../icons/search-simple/index.js";import"../../../icons/sad-robot/index.js";import"../../../icons/model/index.js";import"../../../icons/phone-colored/index.js";import"../../../icons/questions/index.js";import"../../../icons/pdf-big/index.js";import"../../../icons/xls-big/index.js";import"../../../icons/word-big/index.js";import"../../../icons/txt-big/index.js";import"../../../icons/pdf/index.js";import"../../../icons/xls/index.js";import"../../../icons/word/index.js";import"../../../icons/txt/index.js";import"../../../icons/bothub-logo-gradient/index.js";import"../../../icons/telegram-logo-gradient/index.js";import"../../../icons/decline-circle/index.js";import"../../../icons/simple-gear-bg/index.js";import"../../../icons/advanced-filter/index.js";import"../../../icons/big-corporate/index.js";import"../../../icons/big-mj/index.js";import"../../../icons/big-models/index.js";import"../../../icons/big-stats/index.js";import"../../../icons/big-success/index.js";import"../../../icons/big-users/index.js";import"../../../icons/optional-presets/index.js";import"../../../icons/wallet-withdraw/index.js";import"../../../icons/big-presets/index.js";import"../../../icons/big-favorite/index.js";import"../../../icons/big-referal/index.js";import"../../../icons/attach-file/index.js";import"../../../icons/attach-file-big/index.js";import"../../../icons/voice/index.js";import"../../../icons/play-button/index.js";import"../../../icons/pause-button/index.js";import"../../../icons/text-read/index.js";import"../../../icons/text-hide/index.js";import"../../../icons/best-chat-bots/index.js";import"../../../icons/upload/index.js";import"../../../icons/enter/index.js";import"../../../icons/discord/index.js";import"../../../icons/discord-circle/index.js";import"../../../icons/black-forest-labs/index.js";import"../../../icons/flux/index.js";import"../../../icons/stable-diffusion/index.js";import"../../../icons/stability-ai/index.js";import"../../../icons/article-generator/index.js";import"../../../icons/success/index.js";import"../../../icons/google/index.js";import"../../../icons/yandex/index.js";import"../../../icons/vk/index.js";import"../../../icons/big-article/index.js";import"../../../icons/add-chat/index.js";import"../../../icons/add-group/index.js";import"../../../icons/drag-dot/index.js";import"../../../icons/add-folder/index.js";import"../../../icons/temp-chat/index.js";import"../../../icons/delete-chat/index.js";import"../../../icons/sidebar-chat/index.js";import"../../../icons/organization/index.js";import"../../../icons/simple-gear/index.js";import"../../../icons/text-bold/index.js";import"../../../icons/text-italic/index.js";import"../../../icons/text-underline/index.js";import"../../../icons/text-strikethrough/index.js";import"../../../icons/refresh/index.js";import"../../../icons/copy-variants/index.js";import"../../../icons/sort-ascending/index.js";import"../../../icons/sort-descending/index.js";import"../../../icons/quote/index.js";import"../../../icons/url-circle/index.js";import"../../../icons/show-ui/index.js";import"../../../icons/hide-ui/index.js";import"../../../icons/sort-user/index.js";import"../../../icons/happy-robot/index.js";import"../../../icons/happy-robot-gradient/index.js";import"../../../icons/min-window/index.js";import"../../../icons/max-window/index.js";import"../../../icons/manage-chat/index.js";import"../../../icons/analyze-urls/index.js";import"../../../icons/web-search/index.js";import"../../../icons/include-context/index.js";import"../../../icons/queue/index.js";import"../../../icons/sort-alphabet-ascending/index.js";import"../../../icons/sort-alphabet-descending/index.js";import"../../../icons/sort-date-ascending/index.js";import"../../../icons/sort-date-descending/index.js";import"../../../icons/cot-r1/index.js";import"../../../icons/news/index.js";import"../../../icons/volume/index.js";import"../../../icons/flag-ru/index.js";import"../../../icons/flag-kz/index.js";import"../../../icons/print/index.js";import"../../../icons/pc-icon-1/index.js";import"../../../icons/pc-icon-2/index.js";import"../../../icons/pc-icon-3/index.js";import"../../../icons/star-unfilled/index.js";import"../../../icons/image-generation/index.js";import"../../../icons/speech-synthesys/index.js";import"../../../icons/transcription/index.js";import"../../../icons/text-rewrite/index.js";import"../../../icons/code-generation/index.js";import"../../../icons/essay-generation/index.js";import"../../../icons/spelling/index.js";import"../../../icons/text-generation/index.js";import"../../../icons/traffic-analisys/index.js";import"../../../icons/fav-profile/index.js";import"../../../icons/exclamation/index.js";import"../../../icons/article/index.js";import"../../../icons/setchel/index.js";import"../../../icons/assembly/index.js";import"../../../icons/data-visualisation/index.js";import"../../../icons/document-analisys/index.js";import"../../../icons/problem-solvment/index.js";import"../../../icons/setting-analisys/index.js";import"../../../icons/translation/index.js";import"../../../icons/stars/index.js";import"../../../icons/academy/index.js";import"../../../icons/articles/index.js";import"../../../icons/blog-post/index.js";import"../../../icons/book/index.js";import"../../../icons/bow-tie/index.js";import"../../../icons/case-study/index.js";import"../../../icons/comments/index.js";import"../../../icons/guide/index.js";import"../../../icons/marketing/index.js";import"../../../icons/post/index.js";import"../../../icons/report/index.js";import"../../../icons/review/index.js";import"../../../icons/scientific-article/index.js";import"../../../icons/selling-text/index.js";import"../../../icons/textbook/index.js";import"../../../icons/wind/index.js";import"../../../icons/grok/index.js";import"../../../icons/deepseek/index.js";import"../../../icons/grid-horizontal/index.js";import"../../../icons/grid-vertical/index.js";import"../../../icons/star-gradient/index.js";import"../../../icons/qwen/index.js";import"../../../icons/sidebar-toggle-left/index.js";import"../../../icons/sidebar-toggle-right/index.js";import"../../../icons/system/index.js";import"../../../icons/selector/index.js";import"../../../icons/video-camera/index.js";import"../../../icons/music-note/index.js";import"../../../icons/add-profile/index.js";import"../../../icons/token-counter/index.js";import"../../../icons/customer-support/index.js";import"../../../icons/sort-alphabet-top-bottom/index.js";import"../../../icons/sort-alphabet-bottom-top/index.js";import"../../../icons/pause/index.js";import"../../../icons/play/index.js";import"../../../icons/restore-2/index.js";import"../../../icons/video-generation/index.js";import"../../../icons/veo-model/index.js";import"../../../icons/runway/index.js";import"../../../icons/queue-select/index.js";import"../../../icons/apple/index.js";import"../../../icons/mail-colored/index.js";import{ShieldIcon as R}from"../../../icons/shield/index.js";import"../../../icons/stars-gradient/index.js";import"../../../icons/fire/index.js";import"../../../icons/brain/index.js";import"../../../icons/mj-purple/index.js";import"../../../icons/claude-black/index.js";import"../../../icons/vk-filled/index.js";import"../../../icons/tg/index.js";import"../../../icons/gift/index.js";import"../../../icons/exchange/index.js";import"../../../icons/time/index.js";import"../../../icons/folder/index.js";import"../../../icons/history/index.js";import"../../../icons/money-plus/index.js";import"../../../icons/money-stack/index.js";import"../../../icons/sort-numeric-bottom/index.js";import"../../../icons/sort-numeric-top/index.js";import"../../../icons/bulb/index.js";import"../../../icons/prompt-queue/index.js";import"../../../icons/image/index.js";import"../../../icons/text/index.js";import"../../../icons/code/index.js";import"../../../icons/blue-grok/index.js";import"../../../icons/double-image/index.js";import"../../../icons/pdf-black/index.js";import"../../../icons/csv/index.js";import"../../../icons/xls-black/index.js";import"../../../icons/word-black/index.js";import"../../../icons/brain-black/index.js";import"../../../icons/txt-black/index.js";import"../../../icons/workspace/index.js";import"../../../icons/chat-doc/index.js";import"../../../icons/money-spend/index.js";import"../../../icons/money-minus/index.js";import"../../../icons/max-logo-gradient/index.js";import"../../../icons/empty-word/index.js";import"../../../icons/music-file/index.js";import"../../../icons/sad-file/index.js";import"../../../icons/happy-file/index.js";import"../../../icons/volume-off/index.js";import"../../../icons/github/index.js";import"../../../icons/erase/index.js";import"../../../icons/arrow-narrow-stars-right/index.js";import"../../../icons/literature-list/index.js";import{useTheme as M}from"../../../theme/hook.js";const D=({id:D,disableModal:$,message:B,variant:O="user",skeleton:S,disableResend:P,disableEdit:U,disableDelete:A,disableUpdate:G,disableCopy:H,disableDownload:W,disableEncryption:X,editOutOfMenu:Y,editText:_,copyTgText:F,copyPlainText:I,resendText:J,deleteText:K,onReportText:N,downloadTooltipLabel:Q,encryptionTooltipLabel:V,updateTooltipLabel:Z,copyTooltipLabel:ii,onEdit:oi,onResend:ni,onDelete:si,onUpdate:ei,onReport:ti,onPlainTextCopy:ri,onTgCopy:ci,onCopy:di,onDownload:mi})=>{const pi=M(),[xi,ji]=s(!1),[ai,li]=s(!1),[ui,gi]=s(!1),bi=e(null),hi=e(null),fi=e(null),wi=e(null),yi=z(),ki=t(()=>"custom"===pi.scheme?q(pi.colors.custom.icon,.75):"standard"===pi.scheme||"light"===pi.mode?pi.colors.grayScale.gray1:pi.colors.accent.primary,[pi]),vi=t(()=>{if(S)return!1;switch(O){case"assistant":return!$;case"user":return!$&&(!U||!A||!P)}},[S,O,$,U,A,P]),Ci=t(()=>{let i=0;return!H&&I&&ri&&(i+=1),!H&&F&&ci&&(i+=1),!P&&"user"===O&&J&&ni&&(i+=1),!Y&&!U&&_&&oi&&(i+=1),!A&&K&&si&&(i+=1),!A&&N&&ti&&"user"!==O&&(i+=1),i},[I,F,K,H,A,U,P,Y,_,si,oi,ri,ti,N,ni,ci,J,O]),Li=r(()=>{var i,o,n,s;const e=null===(i=null==yi?void 0:yi.current)||void 0===i?void 0:i.element,t=null!==(o=fi.current)&&void 0!==o?o:hi.current,r=null==wi?void 0:wi.current;if(!e||!t)return;const c=e.getBoundingClientRect(),d=t.getBoundingClientRect(),m=null!==(n=null==r?void 0:r.offsetHeight)&&void 0!==n?n:48*Ci+16,p=null!==(s=null==r?void 0:r.offsetWidth)&&void 0!==s?s:160,x=c.bottom-d.bottom,j=d.top-c.top,a=x<m+36+8&&j>8,l=d.left-c.left,u=c.right-d.right;let g=!1;g="assistant"===O?l<p+8:u<p+8,gi(a),li(g)},[Ci,yi,O]);c(()=>{xi&&Li()},[xi,Li]);const Ti=r(()=>{bi.current&&(window.clearTimeout(bi.current),bi.current=null),Li(),ji(!0)},[Li]),zi=r(()=>{Ti()},[Ti]),Ei=r(()=>{bi.current=window.setTimeout(()=>{ji(!1),bi.current=null},300)},[]),qi=r(()=>{xi?ji(!1):Ti()},[Ti,xi]),Ri=r(i=>{const o={id:D,message:B};switch(i){case"edit":null==oi||oi({id:D,message:B,variant:O});break;case"delete":null==si||si(o);break;case"update":null==ei||ei({id:D});break;case"resend":null==ni||ni(o)}ji(!1)},[D,B,si,ni,oi,ei]),Mi=r(()=>{null==ci||ci(),ji(!1)},[ci]),Di=r(()=>{null==ri||ri(),ji(!1)},[ri]),$i=r(()=>{null==ti||ti({id:D,message:B}),ji(!1)},[D,B,ti]),Bi=m(xi,{from:{opacity:0,y:5},enter:{opacity:1,y:0},leave:{opacity:0,y:0},config:{duration:250,easing:p.easeOutSine}});return d(()=>{if(!xi)return;const i=()=>{ji(!1)};return window.addEventListener("scroll",i,!0),()=>{window.removeEventListener("scroll",i,!0)}},[xi]),d(()=>{if(!xi)return;const i=()=>{Li()};return window.addEventListener("resize",i),()=>{window.removeEventListener("resize",i)}},[xi,Li]),d(()=>()=>{bi.current&&window.clearTimeout(bi.current)},[]),i(f,{$variant:O,ref:hi,children:[o(n,{children:i(E,{fill:ki,children:[vi&&i(w,{ref:fi,onBlur:()=>{ji(!1)},children:[o(T,{onMouseEnter:"ontouchstart"in window?void 0:zi,onMouseLeave:"ontouchstart"in window?void 0:Ei,onClick:qi,children:o(x,{size:18})}),Bi((n,s)=>s&&i(y,{style:n,ref:wi,onMouseEnter:Ti,onMouseLeave:Ei,$variant:O,$invertedX:ai,$invertedY:ui,children:[!H&&I&&ri&&o(C,{onClick:Di,children:i(k,{children:[o(b,{}),o(v,{children:I})]})}),!H&&F&&ci&&o(C,{onClick:Mi,children:i(k,{children:[o(b,{}),o(v,{children:F})]})}),!P&&"user"===O&&J&&ni&&o(C,{onClick:()=>{Ri("resend")},children:i(k,{children:[o(a,{}),o(v,{children:J})]})}),!Y&&!U&&_&&oi&&o(C,{onClick:()=>{Ri("edit")},children:i(k,{children:[o(l,{}),o(v,{children:_})]})}),!A&&K&&si&&o(C,{onClick:()=>{Ri("delete")},children:i(k,{children:[o(u,{}),o(v,{children:K})]})}),!A&&N&&ti&&"user"!==O&&o(C,{onClick:$i,children:i(k,{children:[o(g,{size:18}),o(v,{children:N})]})})]},"message-actions-modal"))]}),!vi&&!A&&o(T,{id:D,message:B,onClick:si,tooltipLabel:K,children:o(u,{size:20})}),!G&&"user"!==O&&o(T,{id:D,message:B,onClick:ei,tooltipLabel:Z,children:o(j,{size:18})}),Y&&o(T,{id:D,message:B,onClick:()=>{Ri("edit")},tooltipLabel:_,children:o(l,{size:18})}),!H&&o(L,{onCopy:di,tooltipLabel:ii}),!vi&&!A&&N&&ti&&"user"!==O&&o(T,{tooltipLabel:N,onClick:$i,children:o(g,{size:18})})]})}),!W&&o(T,{tooltipLabel:Q,onClick:mi,children:o(h,{size:18})}),!X&&o(T,{tooltipLabel:V,children:o(R,{size:18})})]})};export{D as MessageActions};
|
|
1
|
+
import{jsxs as i,jsx as o,Fragment as n}from"react/jsx-runtime";import{useState as s,useRef as e,useMemo as t,useCallback as r,useLayoutEffect as c,useEffect as d}from"react";import{useTransition as m,easings as p}from"@react-spring/web";import{MenuDotIcon as x}from"../../../icons/menu-dot/index.js";import{UpdateIcon as a}from"../../../icons/update/index.js";import{ResendIcon as j}from"../../../icons/resend/index.js";import{EditIcon as l}from"../../../icons/edit/index.js";import{TrashIcon as u}from"../../../icons/trash/index.js";import{ThumbDownIcon as g}from"../../../icons/thumb-down/index.js";import{CopyIcon as b}from"../../../icons/copy/index.js";import{DownloadImgIcon as h}from"../../../icons/download-img/index.js";import{MessageActionsStyled as f,MessageActionsMenuStyled as w,MessageActionsMenuModal as y,MessageActionsMenuModalOptionContent as k,MessageActionsButtonText as v}from"./styled.js";import{MenuOption as C}from"./menu-option/index.js";import{CopyButton as T}from"./copy-button/index.js";import{ActionButton as L}from"./action-button/index.js";import"../list/styled.js";import{useScrollbarRef as z}from"../list/context.js";import"../scroll-button/styled.js";import"tslib";import{IconProvider as E}from"../../icon/context.js";import"../../icon/styled.js";import"react-markdown";import"react-dom";import"../../portal/styled.js";import"../../tooltip/styled.js";import"../../tooltip/arrow/styled.js";import"../../../theme/index.js";import"../../tooltip/context.js";import"unified";import"remark-parse";import"remark-gfm";import"mdast-util-to-markdown";import{colorToRgba as q}from"../../../utils/colors/colorToRgba.js";import"../../../utils/colors/calculateGrayScale.js";import"../../../utils/colors/calculateAccentColors.js";import"../../../icons/arrow-down/index.js";import"../../../icons/arrow-narrow-left/index.js";import"../../../icons/arrow-narrow-right/index.js";import"../../../icons/arrow-up/index.js";import"../../../icons/bitcoin/index.js";import"../../../icons/bot-circle/index.js";import"../../../icons/bothub-agg/index.js";import"../../../icons/business-colored/index.js";import"../../../icons/check-circle/index.js";import"../../../icons/close/index.js";import"../../../icons/email-circle/index.js";import"../../../icons/language/index.js";import"../../../icons/lock-circle/index.js";import"../../../icons/menu/index.js";import"../../../icons/medium-circle/index.js";import"../../../icons/tg-circle/index.js";import"../../../icons/tg-colored/index.js";import"../../../icons/youcassa/index.js";import"../../../icons/dashboard/index.js";import"../../../icons/user-profile/index.js";import"../../../icons/logout/index.js";import"../../../icons/habr-2/index.js";import"../../../icons/arrow-2-down/index.js";import"../../../icons/links/index.js";import"../../../icons/free/index.js";import"../../../icons/hotness/index.js";import"../../../icons/checked/index.js";import"../../../icons/ai/index.js";import"../../../icons/bookmarks/index.js";import"../../../icons/bookmarks-big/index.js";import"../../../icons/chat/index.js";import"../../../icons/chats/index.js";import"../../../icons/coder/index.js";import"../../../icons/presets-big/index.js";import"../../../icons/referal/index.js";import"../../../icons/restore/index.js";import"../../../icons/tariff/index.js";import"../../../icons/plus-2/index.js";import"../../../icons/plus-1/index.js";import"../../../icons/send/index.js";import"../../../icons/settings/index.js";import"../../../icons/habr/index.js";import"../../../icons/check-small/index.js";import"../../../icons/stop/index.js";import"../../../icons/thumb-up/index.js";import"../../../icons/star/index.js";import"../../../icons/info-big/index.js";import"../../../icons/warning-big/index.js";import"../../../icons/error-big/index.js";import"../../../icons/success-big/index.js";import"../../../icons/mj/index.js";import"../../../icons/card/index.js";import"../../../icons/arrow-narrow-up/index.js";import"../../../icons/arrow-narrow-down/index.js";import"../../../icons/filters/index.js";import"../../../icons/info/index.js";import"../../../icons/search-circle/index.js";import"../../../icons/save/index.js";import"../../../icons/light/index.js";import"../../../icons/dark/index.js";import"../../../icons/email-colored/index.js";import"../../../icons/action-chat/index.js";import"../../../icons/attach/index.js";import"../../../icons/avatar-add/index.js";import"../../../icons/brush/index.js";import"../../../icons/calendar/index.js";import"../../../icons/claude/index.js";import"../../../icons/cookie/index.js";import"../../../icons/dalle/index.js";import"../../../icons/error/index.js";import"../../../icons/expand/index.js";import"../../../icons/eye/index.js";import"../../../icons/face/index.js";import"../../../icons/gear/index.js";import"../../../icons/gear-min/index.js";import"../../../icons/generation/index.js";import"../../../icons/gpt-3_5/index.js";import"../../../icons/gpt-4/index.js";import"../../../icons/imagine/index.js";import"../../../icons/imagine-2/index.js";import"../../../icons/loader/index.js";import"../../../icons/loader-circular/index.js";import"../../../icons/loader-circular-gradient/index.js";import"../../../icons/loader-circular-gradient-2/index.js";import"../../../icons/minus/index.js";import"../../../icons/mj-white/index.js";import"../../../icons/prompt/index.js";import"../../../icons/rabbit/index.js";import"../../../icons/ratio-1x1/index.js";import"../../../icons/ratio-2x3/index.js";import"../../../icons/ratio-3x2/index.js";import"../../../icons/ratio-4x5/index.js";import"../../../icons/ratio-4x7/index.js";import"../../../icons/ratio-5x4/index.js";import"../../../icons/ratio-7x4/index.js";import"../../../icons/ratio-16x9/index.js";import"../../../icons/ratio-9x16/index.js";import"../../../icons/ratio-21x9/index.js";import"../../../icons/ratio-9x21/index.js";import"../../../icons/refferal-min/index.js";import"../../../icons/search-data/index.js";import"../../../icons/square/index.js";import"../../../icons/turtle/index.js";import"../../../icons/upscale/index.js";import"../../../icons/withdraw/index.js";import"../../../icons/search-plus/index.js";import"../../../icons/lightning/index.js";import"../../../icons/blog-circle/index.js";import"../../../icons/stripe/index.js";import"../../../icons/corporate/index.js";import"../../../icons/public/index.js";import"../../../icons/private/index.js";import"../../../icons/mistral/index.js";import"../../../icons/gemini/index.js";import"../../../icons/search-simple/index.js";import"../../../icons/sad-robot/index.js";import"../../../icons/model/index.js";import"../../../icons/phone-colored/index.js";import"../../../icons/questions/index.js";import"../../../icons/pdf-big/index.js";import"../../../icons/xls-big/index.js";import"../../../icons/word-big/index.js";import"../../../icons/txt-big/index.js";import"../../../icons/pdf/index.js";import"../../../icons/xls/index.js";import"../../../icons/word/index.js";import"../../../icons/txt/index.js";import"../../../icons/bothub-logo-gradient/index.js";import"../../../icons/telegram-logo-gradient/index.js";import"../../../icons/decline-circle/index.js";import"../../../icons/simple-gear-bg/index.js";import"../../../icons/advanced-filter/index.js";import"../../../icons/big-corporate/index.js";import"../../../icons/big-mj/index.js";import"../../../icons/big-models/index.js";import"../../../icons/big-stats/index.js";import"../../../icons/big-success/index.js";import"../../../icons/big-users/index.js";import"../../../icons/optional-presets/index.js";import"../../../icons/wallet-withdraw/index.js";import"../../../icons/big-presets/index.js";import"../../../icons/big-favorite/index.js";import"../../../icons/big-referal/index.js";import"../../../icons/attach-file/index.js";import"../../../icons/attach-file-big/index.js";import"../../../icons/voice/index.js";import"../../../icons/play-button/index.js";import"../../../icons/pause-button/index.js";import"../../../icons/text-read/index.js";import"../../../icons/text-hide/index.js";import"../../../icons/best-chat-bots/index.js";import"../../../icons/upload/index.js";import"../../../icons/enter/index.js";import"../../../icons/discord/index.js";import"../../../icons/discord-circle/index.js";import"../../../icons/black-forest-labs/index.js";import"../../../icons/flux/index.js";import"../../../icons/stable-diffusion/index.js";import"../../../icons/stability-ai/index.js";import"../../../icons/article-generator/index.js";import"../../../icons/success/index.js";import"../../../icons/google/index.js";import"../../../icons/yandex/index.js";import"../../../icons/vk/index.js";import"../../../icons/big-article/index.js";import"../../../icons/add-chat/index.js";import"../../../icons/add-group/index.js";import"../../../icons/drag-dot/index.js";import"../../../icons/add-folder/index.js";import"../../../icons/temp-chat/index.js";import"../../../icons/delete-chat/index.js";import"../../../icons/sidebar-chat/index.js";import"../../../icons/organization/index.js";import"../../../icons/simple-gear/index.js";import"../../../icons/text-bold/index.js";import"../../../icons/text-italic/index.js";import"../../../icons/text-underline/index.js";import"../../../icons/text-strikethrough/index.js";import"../../../icons/refresh/index.js";import"../../../icons/copy-variants/index.js";import"../../../icons/sort-ascending/index.js";import"../../../icons/sort-descending/index.js";import"../../../icons/quote/index.js";import"../../../icons/url-circle/index.js";import"../../../icons/show-ui/index.js";import"../../../icons/hide-ui/index.js";import"../../../icons/sort-user/index.js";import"../../../icons/happy-robot/index.js";import"../../../icons/happy-robot-gradient/index.js";import"../../../icons/min-window/index.js";import"../../../icons/max-window/index.js";import"../../../icons/manage-chat/index.js";import"../../../icons/analyze-urls/index.js";import"../../../icons/web-search/index.js";import"../../../icons/include-context/index.js";import"../../../icons/queue/index.js";import"../../../icons/sort-alphabet-ascending/index.js";import"../../../icons/sort-alphabet-descending/index.js";import"../../../icons/sort-date-ascending/index.js";import"../../../icons/sort-date-descending/index.js";import"../../../icons/cot-r1/index.js";import"../../../icons/news/index.js";import"../../../icons/volume/index.js";import"../../../icons/flag-ru/index.js";import"../../../icons/flag-kz/index.js";import"../../../icons/print/index.js";import"../../../icons/pc-icon-1/index.js";import"../../../icons/pc-icon-2/index.js";import"../../../icons/pc-icon-3/index.js";import"../../../icons/star-unfilled/index.js";import"../../../icons/image-generation/index.js";import"../../../icons/speech-synthesys/index.js";import"../../../icons/transcription/index.js";import"../../../icons/text-rewrite/index.js";import"../../../icons/code-generation/index.js";import"../../../icons/essay-generation/index.js";import"../../../icons/spelling/index.js";import"../../../icons/text-generation/index.js";import"../../../icons/traffic-analisys/index.js";import"../../../icons/fav-profile/index.js";import"../../../icons/exclamation/index.js";import"../../../icons/article/index.js";import"../../../icons/setchel/index.js";import"../../../icons/assembly/index.js";import"../../../icons/data-visualisation/index.js";import"../../../icons/document-analisys/index.js";import"../../../icons/problem-solvment/index.js";import"../../../icons/setting-analisys/index.js";import"../../../icons/translation/index.js";import"../../../icons/stars/index.js";import"../../../icons/academy/index.js";import"../../../icons/articles/index.js";import"../../../icons/blog-post/index.js";import"../../../icons/book/index.js";import"../../../icons/bow-tie/index.js";import"../../../icons/case-study/index.js";import"../../../icons/comments/index.js";import"../../../icons/guide/index.js";import"../../../icons/marketing/index.js";import"../../../icons/post/index.js";import"../../../icons/report/index.js";import"../../../icons/review/index.js";import"../../../icons/scientific-article/index.js";import"../../../icons/selling-text/index.js";import"../../../icons/textbook/index.js";import"../../../icons/wind/index.js";import"../../../icons/grok/index.js";import"../../../icons/deepseek/index.js";import"../../../icons/grid-horizontal/index.js";import"../../../icons/grid-vertical/index.js";import"../../../icons/star-gradient/index.js";import"../../../icons/qwen/index.js";import"../../../icons/sidebar-toggle-left/index.js";import"../../../icons/sidebar-toggle-right/index.js";import"../../../icons/system/index.js";import"../../../icons/selector/index.js";import"../../../icons/video-camera/index.js";import"../../../icons/music-note/index.js";import"../../../icons/add-profile/index.js";import"../../../icons/token-counter/index.js";import"../../../icons/customer-support/index.js";import"../../../icons/sort-alphabet-top-bottom/index.js";import"../../../icons/sort-alphabet-bottom-top/index.js";import"../../../icons/pause/index.js";import"../../../icons/play/index.js";import"../../../icons/restore-2/index.js";import"../../../icons/video-generation/index.js";import"../../../icons/veo-model/index.js";import"../../../icons/runway/index.js";import"../../../icons/queue-select/index.js";import"../../../icons/apple/index.js";import"../../../icons/mail-colored/index.js";import{ShieldIcon as R}from"../../../icons/shield/index.js";import"../../../icons/stars-gradient/index.js";import"../../../icons/fire/index.js";import"../../../icons/brain/index.js";import"../../../icons/mj-purple/index.js";import"../../../icons/claude-black/index.js";import"../../../icons/vk-filled/index.js";import"../../../icons/tg/index.js";import"../../../icons/gift/index.js";import"../../../icons/exchange/index.js";import"../../../icons/time/index.js";import"../../../icons/folder/index.js";import"../../../icons/history/index.js";import{MoneyPlusIcon as M}from"../../../icons/money-plus/index.js";import"../../../icons/money-stack/index.js";import"../../../icons/sort-numeric-bottom/index.js";import"../../../icons/sort-numeric-top/index.js";import"../../../icons/bulb/index.js";import"../../../icons/prompt-queue/index.js";import"../../../icons/image/index.js";import"../../../icons/text/index.js";import"../../../icons/code/index.js";import"../../../icons/blue-grok/index.js";import"../../../icons/double-image/index.js";import"../../../icons/pdf-black/index.js";import"../../../icons/csv/index.js";import"../../../icons/xls-black/index.js";import"../../../icons/word-black/index.js";import"../../../icons/brain-black/index.js";import"../../../icons/txt-black/index.js";import"../../../icons/workspace/index.js";import"../../../icons/chat-doc/index.js";import"../../../icons/money-spend/index.js";import"../../../icons/money-minus/index.js";import"../../../icons/max-logo-gradient/index.js";import"../../../icons/empty-word/index.js";import"../../../icons/music-file/index.js";import"../../../icons/sad-file/index.js";import"../../../icons/happy-file/index.js";import"../../../icons/volume-off/index.js";import"../../../icons/github/index.js";import"../../../icons/erase/index.js";import"../../../icons/arrow-narrow-stars-right/index.js";import"../../../icons/literature-list/index.js";import{useTheme as D}from"../../../theme/hook.js";const S=({id:S,disableModal:$,message:B,variant:O="user",skeleton:P,disableResend:U,disableEdit:A,disableDelete:G,disableUpdate:H,disableCopy:W,disableDownload:X,disableEncryption:Y,hasCacheTokens:_,editOutOfMenu:F,editText:I,copyTgText:J,copyPlainText:K,resendText:N,deleteText:Q,onReportText:V,downloadTooltipLabel:Z,encryptionTooltipLabel:ii,cacheTokenTooltipLabel:oi,updateTooltipLabel:ni,copyTooltipLabel:si,onEdit:ei,onResend:ti,onDelete:ri,onUpdate:ci,onReport:di,onPlainTextCopy:mi,onTgCopy:pi,onCopy:xi,onDownload:ai})=>{const ji=D(),[li,ui]=s(!1),[gi,bi]=s(!1),[hi,fi]=s(!1),wi=e(null),yi=e(null),ki=e(null),vi=e(null),Ci=z(),Ti=t(()=>"custom"===ji.scheme?q(ji.colors.custom.icon,.75):"standard"===ji.scheme||"light"===ji.mode?ji.colors.grayScale.gray1:ji.colors.accent.primary,[ji]),Li=t(()=>{if(P)return!1;switch(O){case"assistant":return!$;case"user":return!$&&(!A||!G||!U)}},[P,O,$,A,G,U]),zi=t(()=>{let i=0;return!W&&K&&mi&&(i+=1),!W&&J&&pi&&(i+=1),!U&&"user"===O&&N&&ti&&(i+=1),!F&&!A&&I&&ei&&(i+=1),!G&&Q&&ri&&(i+=1),!G&&V&&di&&"user"!==O&&(i+=1),i},[K,J,Q,W,G,A,U,F,I,ri,ei,mi,di,V,ti,pi,N,O]),Ei=r(()=>{var i,o,n,s;const e=null===(i=null==Ci?void 0:Ci.current)||void 0===i?void 0:i.element,t=null!==(o=ki.current)&&void 0!==o?o:yi.current,r=null==vi?void 0:vi.current;if(!e||!t)return;const c=e.getBoundingClientRect(),d=t.getBoundingClientRect(),m=null!==(n=null==r?void 0:r.offsetHeight)&&void 0!==n?n:48*zi+16,p=null!==(s=null==r?void 0:r.offsetWidth)&&void 0!==s?s:160,x=c.bottom-d.bottom,a=d.top-c.top,j=x<m+36+8&&a>8,l=d.left-c.left,u=c.right-d.right;let g=!1;g="assistant"===O?l<p+8:u<p+8,fi(j),bi(g)},[zi,Ci,O]);c(()=>{li&&Ei()},[li,Ei]);const qi=r(()=>{wi.current&&(window.clearTimeout(wi.current),wi.current=null),Ei(),ui(!0)},[Ei]),Ri=r(()=>{qi()},[qi]),Mi=r(()=>{wi.current=window.setTimeout(()=>{ui(!1),wi.current=null},300)},[]),Di=r(()=>{li?ui(!1):qi()},[qi,li]),Si=r(i=>{const o={id:S,message:B};switch(i){case"edit":null==ei||ei({id:S,message:B,variant:O});break;case"delete":null==ri||ri(o);break;case"update":null==ci||ci({id:S});break;case"resend":null==ti||ti(o)}ui(!1)},[S,B,ri,ti,ei,ci]),$i=r(()=>{null==pi||pi(),ui(!1)},[pi]),Bi=r(()=>{null==mi||mi(),ui(!1)},[mi]),Oi=r(()=>{null==di||di({id:S,message:B}),ui(!1)},[S,B,di]),Pi=m(li,{from:{opacity:0,y:5},enter:{opacity:1,y:0},leave:{opacity:0,y:0},config:{duration:250,easing:p.easeOutSine}});return d(()=>{if(!li)return;const i=()=>{ui(!1)};return window.addEventListener("scroll",i,!0),()=>{window.removeEventListener("scroll",i,!0)}},[li]),d(()=>{if(!li)return;const i=()=>{Ei()};return window.addEventListener("resize",i),()=>{window.removeEventListener("resize",i)}},[li,Ei]),d(()=>()=>{wi.current&&window.clearTimeout(wi.current)},[]),i(f,{$variant:O,ref:yi,children:[o(n,{children:i(E,{fill:Ti,children:[Li&&i(w,{ref:ki,onBlur:()=>{ui(!1)},children:[o(L,{onMouseEnter:"ontouchstart"in window?void 0:Ri,onMouseLeave:"ontouchstart"in window?void 0:Mi,onClick:Di,children:o(x,{size:18})}),Pi((n,s)=>s&&i(y,{style:n,ref:vi,onMouseEnter:qi,onMouseLeave:Mi,$variant:O,$invertedX:gi,$invertedY:hi,children:[!W&&K&&mi&&o(C,{onClick:Bi,children:i(k,{children:[o(b,{}),o(v,{children:K})]})}),!W&&J&&pi&&o(C,{onClick:$i,children:i(k,{children:[o(b,{}),o(v,{children:J})]})}),!U&&"user"===O&&N&&ti&&o(C,{onClick:()=>{Si("resend")},children:i(k,{children:[o(j,{}),o(v,{children:N})]})}),!F&&!A&&I&&ei&&o(C,{onClick:()=>{Si("edit")},children:i(k,{children:[o(l,{}),o(v,{children:I})]})}),!G&&Q&&ri&&o(C,{onClick:()=>{Si("delete")},children:i(k,{children:[o(u,{}),o(v,{children:Q})]})}),!G&&V&&di&&"user"!==O&&o(C,{onClick:Oi,children:i(k,{children:[o(g,{size:18}),o(v,{children:V})]})})]},"message-actions-modal"))]}),!Li&&!G&&o(L,{id:S,message:B,onClick:ri,tooltipLabel:Q,children:o(u,{size:20})}),!H&&"user"!==O&&o(L,{id:S,message:B,onClick:ci,tooltipLabel:ni,children:o(a,{size:18})}),F&&o(L,{id:S,message:B,onClick:()=>{Si("edit")},tooltipLabel:I,children:o(l,{size:18})}),!W&&o(T,{onCopy:xi,tooltipLabel:si}),!Li&&!G&&V&&di&&"user"!==O&&o(L,{tooltipLabel:V,onClick:Oi,children:o(g,{size:18})})]})}),!X&&o(L,{tooltipLabel:Z,onClick:ai,children:o(h,{size:18})}),!Y&&o(L,{tooltipLabel:ii,children:o(R,{size:18})}),_&&o(L,{tooltipLabel:oi,children:o(E,{size:18,stroke:ji.colors.grayScale.gray1,children:o(M,{})})})]})};export{S as MessageActions};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import ReactMarkdown from 'react-markdown';
|
|
2
|
+
interface GeneratedDocumentBlockProps {
|
|
3
|
+
code: string;
|
|
4
|
+
copyLabel?: string;
|
|
5
|
+
remarkPlugins?: React.ComponentProps<typeof ReactMarkdown>['remarkPlugins'];
|
|
6
|
+
rehypePlugins?: React.ComponentProps<typeof ReactMarkdown>['rehypePlugins'];
|
|
7
|
+
baseComponents?: React.ComponentProps<typeof ReactMarkdown>['components'];
|
|
8
|
+
isTg?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const GeneratedDocumentBlock: ({ code, copyLabel, remarkPlugins, rehypePlugins, baseComponents, isTg, }: GeneratedDocumentBlockProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{__awaiter as t}from"tslib";import{jsxs as e,jsx as r}from"react/jsx-runtime";import{useRef as o,useState as i}from"react";import n from"react-markdown";import{MessageDocumentContentBlock as c,MessageDocumentContentBlockTop as l,MessageDocumentCopyButton as a}from"./styled.js";import"unified";import"remark-parse";import"remark-gfm";import"mdast-util-to-markdown";import{processSelection as m}from"../../../../utils/processSelection.js";import"../../../../utils/colors/calculateGrayScale.js";import"../../../../utils/colors/calculateAccentColors.js";const s=({code:s,copyLabel:p,remarkPlugins:d,rehypePlugins:u,baseComponents:h,isTg:f})=>{const g=o(null),[y,b]=i(!1);return e(c,{children:[r(l,{children:r(a,{onClick:()=>t(void 0,void 0,void 0,function*(){if(!g.current)return;const t=document.createRange();t.selectNodeContents(g.current);const{html:e,plain:r}=m(t,!!f,!f);try{const t={};r&&(t["text/plain"]=new Blob([r],{type:"text/plain"})),e&&(t["text/html"]=new Blob([e],{type:"text/html"})),yield navigator.clipboard.write([new ClipboardItem(t)]),b(!0),setTimeout(()=>b(!1),2e3)}catch(t){navigator.clipboard.writeText(g.current.innerText).catch(()=>{})}}),children:y?"✓":p||"Copy"})}),r("div",{className:"ai-generated-document-content",ref:g,"data-codeblock":f?void 0:"true",children:r(n,{remarkPlugins:d,rehypePlugins:u,components:h,children:s})})]})};export{s as GeneratedDocumentBlock};
|