@bothub-chat/ui 2.50.0 → 2.50.1-develop-740b1040-6d87-4d9a-b8ea-f703e821d7a2

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.
@@ -1 +1 @@
1
- import{__rest as i,__awaiter as e}from"tslib";import{jsx as o,jsxs as s,Fragment as n}from"react/jsx-runtime";import{useRef as t,useState as r,useCallback as c,useEffect as d}from"react";import{useTransition as m}from"@react-spring/web";import{useOnClickOutside as a}from"../../utils/useOnClickOutside.js";import{InputMessageStyled as p,InputMessageContent as l,InputMessageMain as j,InputMessageVoiceRecord as x,InputMessageVoiceRecordDot as u,InputMessageVoiceRecordTimeText as g,InputMessageFiles as h,InputMessageFile as b,InputMessageConcatenateWarning as y,InputMessageVoiceFiles as f,InputMessageVoiceTrack as v,InputMessageVoiceFileDelete as w,InputMessageTextArea as k,InputMessageBottom as D,InputMessageBottomGroup as C,InputMessageUploadFile as F,InputMessageUploadFileInput as $,InputMessageUploadFileButton as A,InputMessageToggleSendStyled as E,InputMessageToggleSendButton as T,InputMessageToggleSendModalStyled as S,InputMessageToggleSendModalOption as L,InputMessageVoicePlayButton as K,InputMessageVoicePauseButton as O,InputMessageVoiceButton as P,InputMessageSendButton as U,InputMessageSendIcon as q}from"./styled.js";import{ChipImage as z}from"../chip/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{PdfIcon as R}from"../../icons/pdf/index.js";import{TxtIcon as V}from"../../icons/txt/index.js";import{WordIcon as I}from"../../icons/word/index.js";import{XlsIcon as B}from"../../icons/xls/index.js";import{IconProvider as N}from"../icon/context.js";import"../icon/styled.js";import{getPreviewUrlForFile as M,isFileTypeAccepted as G,formatUploadFiles as H,formatSeconds as W,isMobileDevice as _}from"./utils.js";import{AttachFileIcon as J}from"../../icons/attach-file/index.js";import{getSupportedAudioMimeType as Q}from"../../utils/getSupportedAudioMimeType.js";import"../message/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"../message/context.js";import"styled-components";import"../message/components/code/inline/styled.js";import"../message/components/code/multiline/styled.js";import"../message/components/code/multiline/copy/styled.js";import"../../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"../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"../../icons/edit/index.js";import"../../icons/trash/index.js";import"../../icons/thumb-down/index.js";import"../../icons/close/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"../../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/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"../../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/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-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"../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 X}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{getWaveData as Y}from"../../utils/audio/getWaveData.js";import{useTheme as Z}from"../../theme/hook.js";const ii=ii=>{var{className:ei,placeholder:oi,message:si,files:ni,disabled:ti=!1,sendDisabled:ri=!1,textAreaDisabled:ci=!1,useAlternativeKeyDefaultValue:di=!1,defaultKeySendText:mi,alternativeKeySendText:ai,concatenateText:pi,uploadFileLimit:li=5,hideUploadFile:ji=!1,uploadFileDisabled:xi=!1,uploadFileAccept:ui,autoFocus:gi=!0,voice:hi=!1,onSetAlternativeKeyValue:bi,onChange:yi,onFilesChange:fi,onVoiceFilesChange:vi,onTextAreaChange:wi,onSend:ki,onFocus:Di,onBlur:Ci,emitError:Fi,rightActions:$i}=ii,Ai=i(ii,["className","placeholder","message","files","disabled","sendDisabled","textAreaDisabled","useAlternativeKeyDefaultValue","defaultKeySendText","alternativeKeySendText","concatenateText","uploadFileLimit","hideUploadFile","uploadFileDisabled","uploadFileAccept","autoFocus","voice","onSetAlternativeKeyValue","onChange","onFilesChange","onVoiceFilesChange","onTextAreaChange","onSend","onFocus","onBlur","emitError","rightActions"]);const Ei=Z(),Ti=t(null),[Si,Li]=r("calc(var(--bothub-scale, 1) * 22px)"),[Ki,Oi]="string"==typeof si?[si,yi]:r(""),[Pi,Ui]=Array.isArray(ni)?[ni,fi]:r([]),[qi,zi]=r([]),[Ri,Vi]=r(!1),[Ii,Bi]=r(!ti&&gi),[Ni,Mi]=r(!1),[Gi,Hi]=r(!1),[Wi,_i]=r(null),Ji=t(null),Qi=t(null),Xi=t([]),Yi=t(null),Zi=t(!1),ie=t(null),[ee,oe]=r(di),[se,ne]=r(!1),te=c(()=>{oe(!1),null==bi||bi(!1),ne(!1)},[]),re=c(()=>{oe(!0),null==bi||bi(!0),ne(!1)},[]),ce=c(i=>{Bi(!0),null==Di||Di(i)},[Di]),de=c(i=>{Bi(!1),null==Ci||Ci(i)},[Ci]),me=c(i=>{null==Oi||Oi(i.target.value),null==wi||wi(i)},[Oi,wi]),ae=c(i=>e(void 0,void 0,void 0,function*(){if(!i.length)return;const e=[],o=[],s=yield Promise.all(null==i?void 0:i.map(M));for(const[n,t]of i.entries()){G(t.type,ui)?e.push({previewUrl:s[n],name:t.name,native:t}):o.push(t)}o.length>0&&(null==Fi||Fi({name:"WRONG_FILES",payload:o})),(null==e?void 0:e.length)>0&&(null==Ui||Ui([...Pi,...e].slice(0,li)))}),[ui,Fi,li,Pi]),pe=c(i=>e(void 0,void 0,void 0,function*(){!xi&&i.clipboardData.files.length>0&&(i.preventDefault(),yield ae([...i.clipboardData.files]))}),[ae,xi]),le=c(i=>e(void 0,void 0,void 0,function*(){if(!Ui||!i.target.files)return;const e=yield H([...Pi.map(({native:i})=>i),...i.target.files]);Ui(e.slice(0,li))}),[Pi,Ui,li]),je=c(i=>{null==Ui||Ui(Pi.filter(({name:e})=>e!==i.name))},[Ui,Pi]),xe=c(i=>{i.stopPropagation(),null==ki||ki(Ki,Pi),null==Oi||Oi(""),null==Ui||Ui([]),null==zi||zi([]),Li("calc(var(--bothub-scale, 1) * 22px)")},[Ki,Pi,ki,Oi,Ui,zi]),ue=c(i=>{i.stopPropagation();if(_()&&"Enter"===i.key)return;const e=ee?"enter":"ctrl/shift+enter";let o="";if("Enter"===i.key&&(i.shiftKey||i.ctrlKey))o="ctrl/shift+enter";else{if("Enter"!==i.key)return;o="enter"}if(Ii&&"Enter"===i.key){if(o===e&&i.ctrlKey){i.preventDefault();const e=Ti.current;if(!e)return;const o=e.value,t=e.selectionStart,r=o.slice(0,t),c=o.slice(t);null==Oi||Oi(`${r}\n${c}`),s=e,n=t+1,setTimeout(()=>{s.selectionStart=n,s.selectionEnd=n},1)}e!==o&&""!==o&&(i.preventDefault(),null==ki||ki(Ki,Pi),Li("calc(var(--bothub-scale, 1) * 22px)"))}var s,n},[Ii,Ki,Pi,ki,Oi,Ui]),ge=c(()=>{var i;ti||null===(i=Ti.current)||void 0===i||i.focus()},[ti,gi]),he=c(i=>{i.stopPropagation()},[]),be=c(i=>e(void 0,void 0,void 0,function*(){if(Gi)return;Zi.current=!0,i.stopPropagation();const e=yield navigator.mediaDevices.getUserMedia({audio:!0}),o=new MediaRecorder(e,{mimeType:Q()});Zi.current&&(o.start(1e3),Ji.current=o,Qi.current=e,Yi.current=window.setInterval(()=>{_i(i=>(null!=i?i:0)+.1)},100),Hi(!0),_i(0),Vi(!1))}),[Zi.current,Xi.current,Gi]),ye=c(()=>{const i=Ji.current,e=Qi.current,o=Yi.current;if(Gi&&i&&e&&o){i.stop();for(const i of e.getTracks())i.stop();window.clearInterval(o)}},[Gi,Ji.current,Qi.current,Yi.current]),fe=c(()=>e(void 0,void 0,void 0,function*(){Zi.current=!1,Gi&&ye()}),[Gi,ye]),ve=c(()=>{const i=Ji.current,e=Yi.current;Gi&&i&&e&&(i.pause(),window.clearInterval(e),Vi(!0))},[Gi]),we=c(()=>{const i=Ji.current;Gi&&i&&(i.resume(),Yi.current=window.setInterval(()=>{_i(i=>(null!=i?i:0)+.1)},100),Vi(!1))},[Gi,_i]),ke=c(i=>{zi(qi.filter(e=>e.src!==i.src))},[qi,zi]),De=c(()=>{const i=Ti.current;null!==i&&(i.style.height="calc(var(--bothub-scale, 1) * 22px)",i.style.height=`${i.scrollHeight}px`,Li(`${i.scrollHeight}px`))},[Ki,gi]);d(()=>{De()},[De]),d(()=>{const i=Ti.current;if(!i||ti)return;const e=!ti&&gi;Bi(e),e?i.focus():document.activeElement===i&&i.blur()},[ti,gi]),d(()=>{const i=Ti.current;if(null!==i)return i.addEventListener("keydown",ue),()=>{i.removeEventListener("keydown",ue)}},[ue]),d(()=>{Ui&&ni&&Ui(ni)},[ni]),d(()=>{null==vi||vi(qi)},[qi]),d(()=>{const i=Ji.current,o=i=>{i.data.size>0&&Xi.current.push(i.data)},s=()=>e(void 0,void 0,void 0,function*(){const i=new Blob(Xi.current,{type:Q()}),{waveData:e,duration:o}=yield Y(i),s={src:URL.createObjectURL(i),duration:o,blob:i,waveData:e};zi([...qi,s]),Ji.current=null,Qi.current=null,Xi.current=[],Yi.current=null,Hi(!1),_i(null)});return i&&(i.addEventListener("dataavailable",o),i.addEventListener("stop",s)),()=>{i&&(i.removeEventListener("dataavailable",o),i.removeEventListener("stop",s)),ye()}},[Ji.current]),a(ie,()=>{ne(!1)});const Ce=m(se,{from:{opacity:0,y:10},enter:{opacity:1,y:0},leave:{opacity:0,y:10},config:{duration:150,ease:"easeOut"}});return o(p,{$active:Ii,$dragActive:Ni,$disabled:ti,$textAreaDisabled:ci,$voiceRecording:Gi,className:ei,onClick:ge,onDragEnter:()=>Mi(!0),onDragLeave:()=>Mi(!1),onDragOver:i=>(i.stopPropagation(),i.preventDefault(),!1),onDrop:i=>e(void 0,void 0,void 0,function*(){if(i.dataTransfer.files.length>0)return i.stopPropagation(),i.preventDefault(),yield ae([...i.dataTransfer.files]),Mi(!1),!1}),children:s(l,{children:[s(j,{children:[Gi&&null!==Wi&&s(x,{children:[o(u,{}),o(g,{children:W(Wi)})]}),Pi.length>0&&o(h,{children:Pi.map(i=>{let e;return e=i.previewUrl&&(i.name.match(/.png$/i)||i.name.match(/.jpg$/i)||i.name.match(/.jpeg$/i))?o(z,{src:i.previewUrl}):i.name.match(/.txt$/i)?o(V,{}):i.name.match(/.docx$/i)?o(I,{}):i.name.match(/.xlsx$/i)?o(B,{}):i.name.match(/.pdf$/i)?o(R,{}):o(J,{}),e=o(N,{size:18,children:e}),o(b,{start:e,onDelete:je.bind(null,i),children:i.name.length>20?`...${i.name.slice(-20)}`:i.name},i.name)})}),qi.length>1&&o(y,{children:pi}),qi.length>0&&o(f,{children:qi.map(i=>s(v,{children:[o(X,{variant:"input",height:24,src:i.src,duration:i.duration,waveData:i.waveData,disableTranscription:!0}),o(w,{onClick:ke.bind(null,i)})]},i.src))}),(!ci||ci&&oi&&Pi.length!==li||ci&&Ki)&&o(k,Object.assign({$disabled:ti},Ai,{ref:Ti,value:Ki,placeholder:oi,disabled:ti||ci,style:Object.assign(Object.assign({},Ai.style),{height:Si}),onFocus:ce,onBlur:de,onChange:me,onPaste:pe}))]}),s(D,{children:[s(C,{children:[!ji&&!Gi&&s(F,{onClick:he,children:[o($,{type:"file",accept:ui,multiple:!0,disabled:Pi.length>=li||ti||xi,onChange:le},Pi.length),o(A,{disabled:Pi.length>=li||ti||xi})]}),$i]}),s(C,{children:[!!mi&&!!ai&&s(E,{ref:ie,children:[o(T,{onClick:i=>{i.stopPropagation(),ne(!se)},disabled:ti}),Ce((i,e)=>e&&s(S,{style:i,children:[o(L,{active:!ee,onClick:te,children:mi}),o(L,{active:ee,onClick:re,children:ai})]},"alternative-key-modal"))]}),Gi&&o(n,{children:Ri?o(K,{onClick:we}):o(O,{onClick:ve})}),hi&&o(P,{$isRecording:Gi,disabled:ti||ri,onClick:Gi?fe:be,"data-test":"submit-message"}),o(U,Object.assign({disabled:ti||ri||Gi,onClick:xe},Ei.bright&&{iconFill:Ei.default.colors.base.black},{"data-test":"submit-message",children:o(q,{})}))]})]})]})})};export{ii as InputMessage};
1
+ import{__rest as i,__awaiter as e}from"tslib";import{jsx as o,jsxs as s,Fragment as n}from"react/jsx-runtime";import{useRef as t,useState as r,useCallback as c,useEffect as d}from"react";import{useTransition as m}from"@react-spring/web";import{useOnClickOutside as a}from"../../utils/useOnClickOutside.js";import{InputMessageStyled as p,InputMessageContent as l,InputMessageMain as j,InputMessageVoiceRecord as x,InputMessageVoiceRecordDot as u,InputMessageVoiceRecordTimeText as g,InputMessageFiles as h,InputMessageFile as b,InputMessageConcatenateWarning as y,InputMessageVoiceFiles as f,InputMessageVoiceTrack as v,InputMessageVoiceFileDelete as w,InputMessageTextArea as k,InputMessageBottom as D,InputMessageBottomGroup as C,InputMessageUploadFile as F,InputMessageUploadFileInput as $,InputMessageUploadFileButton as A,InputMessageToggleSendStyled as E,InputMessageToggleSendButton as T,InputMessageToggleSendModalStyled as S,InputMessageToggleSendModalOption as L,InputMessageVoicePlayButton as K,InputMessageVoicePauseButton as O,InputMessageVoiceButton as P,InputMessageSendButton as U,InputMessageSendIcon as q}from"./styled.js";import{ChipImage as z}from"../chip/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{PdfIcon as R}from"../../icons/pdf/index.js";import{TxtIcon as V}from"../../icons/txt/index.js";import{WordIcon as I}from"../../icons/word/index.js";import{XlsIcon as B}from"../../icons/xls/index.js";import{IconProvider as N}from"../icon/context.js";import"../icon/styled.js";import{getPreviewUrlForFile as M,isFileTypeAccepted as G,formatUploadFiles as H,formatSeconds as W,isMobileDevice as _}from"./utils.js";import{AttachFileIcon as J}from"../../icons/attach-file/index.js";import{getSupportedAudioMimeType as Q}from"../../utils/getSupportedAudioMimeType.js";import"marked";import"../message/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"../message/context.js";import"styled-components";import"../message/components/code/inline/styled.js";import"../message/components/code/multiline/styled.js";import"../message/components/code/multiline/copy/styled.js";import"../../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"../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"../../icons/edit/index.js";import"../../icons/trash/index.js";import"../../icons/thumb-down/index.js";import"../../icons/close/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"../../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/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"../../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/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-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"../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 X}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{getWaveData as Y}from"../../utils/audio/getWaveData.js";import{useTheme as Z}from"../../theme/hook.js";const ii=ii=>{var{className:ei,placeholder:oi,message:si,files:ni,disabled:ti=!1,sendDisabled:ri=!1,textAreaDisabled:ci=!1,useAlternativeKeyDefaultValue:di=!1,defaultKeySendText:mi,alternativeKeySendText:ai,concatenateText:pi,uploadFileLimit:li=5,hideUploadFile:ji=!1,uploadFileDisabled:xi=!1,uploadFileAccept:ui,autoFocus:gi=!0,voice:hi=!1,onSetAlternativeKeyValue:bi,onChange:yi,onFilesChange:fi,onVoiceFilesChange:vi,onTextAreaChange:wi,onSend:ki,onFocus:Di,onBlur:Ci,emitError:Fi,rightActions:$i}=ii,Ai=i(ii,["className","placeholder","message","files","disabled","sendDisabled","textAreaDisabled","useAlternativeKeyDefaultValue","defaultKeySendText","alternativeKeySendText","concatenateText","uploadFileLimit","hideUploadFile","uploadFileDisabled","uploadFileAccept","autoFocus","voice","onSetAlternativeKeyValue","onChange","onFilesChange","onVoiceFilesChange","onTextAreaChange","onSend","onFocus","onBlur","emitError","rightActions"]);const Ei=Z(),Ti=t(null),[Si,Li]=r("calc(var(--bothub-scale, 1) * 22px)"),[Ki,Oi]="string"==typeof si?[si,yi]:r(""),[Pi,Ui]=Array.isArray(ni)?[ni,fi]:r([]),[qi,zi]=r([]),[Ri,Vi]=r(!1),[Ii,Bi]=r(!ti&&gi),[Ni,Mi]=r(!1),[Gi,Hi]=r(!1),[Wi,_i]=r(null),Ji=t(null),Qi=t(null),Xi=t([]),Yi=t(null),Zi=t(!1),ie=t(null),[ee,oe]=r(di),[se,ne]=r(!1),te=c(()=>{oe(!1),null==bi||bi(!1),ne(!1)},[]),re=c(()=>{oe(!0),null==bi||bi(!0),ne(!1)},[]),ce=c(i=>{Bi(!0),null==Di||Di(i)},[Di]),de=c(i=>{Bi(!1),null==Ci||Ci(i)},[Ci]),me=c(i=>{null==Oi||Oi(i.target.value),null==wi||wi(i)},[Oi,wi]),ae=c(i=>e(void 0,void 0,void 0,function*(){if(!i.length)return;const e=[],o=[],s=yield Promise.all(null==i?void 0:i.map(M));for(const[n,t]of i.entries()){G(t.type,ui)?e.push({previewUrl:s[n],name:t.name,native:t}):o.push(t)}o.length>0&&(null==Fi||Fi({name:"WRONG_FILES",payload:o})),(null==e?void 0:e.length)>0&&(null==Ui||Ui([...Pi,...e].slice(0,li)))}),[ui,Fi,li,Pi]),pe=c(i=>e(void 0,void 0,void 0,function*(){!xi&&i.clipboardData.files.length>0&&(i.preventDefault(),yield ae([...i.clipboardData.files]))}),[ae,xi]),le=c(i=>e(void 0,void 0,void 0,function*(){if(!Ui||!i.target.files)return;const e=yield H([...Pi.map(({native:i})=>i),...i.target.files]);Ui(e.slice(0,li))}),[Pi,Ui,li]),je=c(i=>{null==Ui||Ui(Pi.filter(({name:e})=>e!==i.name))},[Ui,Pi]),xe=c(i=>{i.stopPropagation(),null==ki||ki(Ki,Pi),null==Oi||Oi(""),null==Ui||Ui([]),null==zi||zi([]),Li("calc(var(--bothub-scale, 1) * 22px)")},[Ki,Pi,ki,Oi,Ui,zi]),ue=c(i=>{i.stopPropagation();if(_()&&"Enter"===i.key)return;const e=ee?"enter":"ctrl/shift+enter";let o="";if("Enter"===i.key&&(i.shiftKey||i.ctrlKey))o="ctrl/shift+enter";else{if("Enter"!==i.key)return;o="enter"}if(Ii&&"Enter"===i.key){if(o===e&&i.ctrlKey){i.preventDefault();const e=Ti.current;if(!e)return;const o=e.value,t=e.selectionStart,r=o.slice(0,t),c=o.slice(t);null==Oi||Oi(`${r}\n${c}`),s=e,n=t+1,setTimeout(()=>{s.selectionStart=n,s.selectionEnd=n},1)}e!==o&&""!==o&&(i.preventDefault(),null==ki||ki(Ki,Pi),Li("calc(var(--bothub-scale, 1) * 22px)"))}var s,n},[Ii,Ki,Pi,ki,Oi,Ui]),ge=c(()=>{var i;ti||null===(i=Ti.current)||void 0===i||i.focus()},[ti,gi]),he=c(i=>{i.stopPropagation()},[]),be=c(i=>e(void 0,void 0,void 0,function*(){if(Gi)return;Zi.current=!0,i.stopPropagation();const e=yield navigator.mediaDevices.getUserMedia({audio:!0}),o=new MediaRecorder(e,{mimeType:Q()});Zi.current&&(o.start(1e3),Ji.current=o,Qi.current=e,Yi.current=window.setInterval(()=>{_i(i=>(null!=i?i:0)+.1)},100),Hi(!0),_i(0),Vi(!1))}),[Zi.current,Xi.current,Gi]),ye=c(()=>{const i=Ji.current,e=Qi.current,o=Yi.current;if(Gi&&i&&e&&o){i.stop();for(const i of e.getTracks())i.stop();window.clearInterval(o)}},[Gi,Ji.current,Qi.current,Yi.current]),fe=c(()=>e(void 0,void 0,void 0,function*(){Zi.current=!1,Gi&&ye()}),[Gi,ye]),ve=c(()=>{const i=Ji.current,e=Yi.current;Gi&&i&&e&&(i.pause(),window.clearInterval(e),Vi(!0))},[Gi]),we=c(()=>{const i=Ji.current;Gi&&i&&(i.resume(),Yi.current=window.setInterval(()=>{_i(i=>(null!=i?i:0)+.1)},100),Vi(!1))},[Gi,_i]),ke=c(i=>{zi(qi.filter(e=>e.src!==i.src))},[qi,zi]),De=c(()=>{const i=Ti.current;null!==i&&(i.style.height="calc(var(--bothub-scale, 1) * 22px)",i.style.height=`${i.scrollHeight}px`,Li(`${i.scrollHeight}px`))},[Ki,gi]);d(()=>{De()},[De]),d(()=>{const i=Ti.current;if(!i||ti)return;const e=!ti&&gi;Bi(e),e?i.focus():document.activeElement===i&&i.blur()},[ti,gi]),d(()=>{const i=Ti.current;if(null!==i)return i.addEventListener("keydown",ue),()=>{i.removeEventListener("keydown",ue)}},[ue]),d(()=>{Ui&&ni&&Ui(ni)},[ni]),d(()=>{null==vi||vi(qi)},[qi]),d(()=>{const i=Ji.current,o=i=>{i.data.size>0&&Xi.current.push(i.data)},s=()=>e(void 0,void 0,void 0,function*(){const i=new Blob(Xi.current,{type:Q()}),{waveData:e,duration:o}=yield Y(i),s={src:URL.createObjectURL(i),duration:o,blob:i,waveData:e};zi([...qi,s]),Ji.current=null,Qi.current=null,Xi.current=[],Yi.current=null,Hi(!1),_i(null)});return i&&(i.addEventListener("dataavailable",o),i.addEventListener("stop",s)),()=>{i&&(i.removeEventListener("dataavailable",o),i.removeEventListener("stop",s)),ye()}},[Ji.current]),a(ie,()=>{ne(!1)});const Ce=m(se,{from:{opacity:0,y:10},enter:{opacity:1,y:0},leave:{opacity:0,y:10},config:{duration:150,ease:"easeOut"}});return o(p,{$active:Ii,$dragActive:Ni,$disabled:ti,$textAreaDisabled:ci,$voiceRecording:Gi,className:ei,onClick:ge,onDragEnter:()=>Mi(!0),onDragLeave:()=>Mi(!1),onDragOver:i=>(i.stopPropagation(),i.preventDefault(),!1),onDrop:i=>e(void 0,void 0,void 0,function*(){if(i.dataTransfer.files.length>0)return i.stopPropagation(),i.preventDefault(),yield ae([...i.dataTransfer.files]),Mi(!1),!1}),children:s(l,{children:[s(j,{children:[Gi&&null!==Wi&&s(x,{children:[o(u,{}),o(g,{children:W(Wi)})]}),Pi.length>0&&o(h,{children:Pi.map(i=>{let e;return e=i.previewUrl&&(i.name.match(/.png$/i)||i.name.match(/.jpg$/i)||i.name.match(/.jpeg$/i))?o(z,{src:i.previewUrl}):i.name.match(/.txt$/i)?o(V,{}):i.name.match(/.docx$/i)?o(I,{}):i.name.match(/.xlsx$/i)?o(B,{}):i.name.match(/.pdf$/i)?o(R,{}):o(J,{}),e=o(N,{size:18,children:e}),o(b,{start:e,onDelete:je.bind(null,i),children:i.name.length>20?`...${i.name.slice(-20)}`:i.name},i.name)})}),qi.length>1&&o(y,{children:pi}),qi.length>0&&o(f,{children:qi.map(i=>s(v,{children:[o(X,{variant:"input",height:24,src:i.src,duration:i.duration,waveData:i.waveData,disableTranscription:!0}),o(w,{onClick:ke.bind(null,i)})]},i.src))}),(!ci||ci&&oi&&Pi.length!==li||ci&&Ki)&&o(k,Object.assign({$disabled:ti},Ai,{ref:Ti,value:Ki,placeholder:oi,disabled:ti||ci,style:Object.assign(Object.assign({},Ai.style),{height:Si}),onFocus:ce,onBlur:de,onChange:me,onPaste:pe}))]}),s(D,{children:[s(C,{children:[!ji&&!Gi&&s(F,{onClick:he,children:[o($,{type:"file",accept:ui,multiple:!0,disabled:Pi.length>=li||ti||xi,onChange:le},Pi.length),o(A,{disabled:Pi.length>=li||ti||xi})]}),$i]}),s(C,{children:[!!mi&&!!ai&&s(E,{ref:ie,children:[o(T,{onClick:i=>{i.stopPropagation(),ne(!se)},disabled:ti}),Ce((i,e)=>e&&s(S,{style:i,children:[o(L,{active:!ee,onClick:te,children:mi}),o(L,{active:ee,onClick:re,children:ai})]},"alternative-key-modal"))]}),Gi&&o(n,{children:Ri?o(K,{onClick:we}):o(O,{onClick:ve})}),hi&&o(P,{$isRecording:Gi,disabled:ti||ri,onClick:Gi?fe:be,"data-test":"submit-message"}),o(U,Object.assign({disabled:ti||ri||Gi,onClick:xe},Ei.bright&&{iconFill:Ei.default.colors.base.black},{"data-test":"submit-message",children:o(q,{})}))]})]})]})})};export{ii as InputMessage};
@@ -1 +1 @@
1
- import{jsx as i,jsxs as o,Fragment as e}from"react/jsx-runtime";import{useRef as s,useState as n,useCallback as t,useEffect as r}from"react";import{MessageStyledWrapper as d,MessageStyledWithBottomPanel as c,MessageStyled as p,MessageContent as m,MessageTop as a,MessageSender as l,MessageName as x,MessageAvatarWrapper as j,MessageAvatar as g,MessageBlockWrapper as u,MessageBlock as b,MessageBlockScrollbarWrapper as y,MessageBlockContent as h,MessageBlockTextArea as f,MessageBlockBottomPanel as w,MessageBlockTransaction as M,MessageButtonsStyled as T}from"./styled.js";export{MessageAction,MessageEditAction,MessageImageBottomArrowButton,MessageImageLeftArrowButton,MessageImageRightArrowButton,MessageImageTopArrowButton,MessageTag,MessageTags,MessageTransaction}from"./styled.js";import{Skeleton as k}from"../skeleton/index.js";import"../../theme/index.js";import{getTgMarkdown as v}from"../../utils/getTgMarkdown.js";import{colorToRgba as C}from"../../utils/colors/colorToRgba.js";import"../../utils/colors/calculateGrayScale.js";import"../../utils/colors/calculateAccentColors.js";import{MessageProvider as S}from"./context.js";export{MessageConsumer,MessageContext,useMessage}from"./context.js";import"tslib";import"styled-components";export{MessageInlineCodeStyled}from"./components/code/inline/styled.js";export{MessageMultilineCodeBody,MessageMultilineCodeHead,MessageMultilineCodeLanguage,MessageMultilineCodeStyled}from"./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"./components/code/multiline/copy/styled.js";import"../../icons/check-small/index.js";import"../../icons/copy/index.js";import"./components/code/multiline/content/styled.js";import{MessageParagraph as I}from"./components/paragraph/index.js";export{MessageBoldStyled}from"./components/bold/styled.js";export{MessageItalicStyled}from"./components/italic/styled.js";export{MessagePre}from"./components/pre/styled.js";export{MessageTableBody,MessageTableContent,MessageTableHead,MessageTableRow,MessageTableStyled}from"./components/table/styled.js";export{MessageTableCellStyled,MessageTableCellText,MessageTableHeadCell}from"./components/table/cell/styled.js";export{MessageListStyled}from"./components/list/styled.js";import"./components/list/context.js";export{MessageListItemStyled}from"./components/list/item/styled.js";export{MessageTitleStyled}from"./components/title/styled.js";export{MessageLinkStyled}from"./components/link/styled.js";export{MessageImageNative,MessageImageSkeleton,MessageImageStyled}from"./components/image/styled.js";export{MessageImageConsumer,MessageImageContext,MessageImageProvider,useMessageImage}from"./components/image/context.js";export{MessageImageGrid}from"./components/image/grid/styled.js";export{MessageImageButtonContent,MessageImageButtonStyled,MessageImageButtonZoneWrapper}from"./components/image/button/styled.js";export{MessageImageButtonsContent,MessageImageButtonsStyled}from"./components/image/button/list/styled.js";import{MessageMarkdown as L}from"./markdown/index.js";import"../scrollbar/styled.js";import{ScrollbarShadow as B}from"../scrollbar/shadow/index.js";import"../scrollbar/style/styled.js";import{MessageTimestamp as E}from"./timestamp/index.js";import{MessageActions as R}from"./actions/index.js";import{MessageVersions as $}from"./versions/index.js";import"./list/styled.js";import"./scroll-button/styled.js";import"./copy/styled.js";import"./badge-progress/styled.js";export{MessageButton}from"./button/styled.js";import"./button/list/styled.js";export{MessageFileInfo,MessageFileName,MessageFileSize,MessageFileStyled,MessageFiles}from"./file/styled.js";import"../icon/styled.js";import"../../icons/pdf-big/index.js";import"../../icons/txt-big/index.js";import"../../icons/word-big/index.js";import"../../icons/xls-big/index.js";import"../../icons/attach-file-big/index.js";import"./voice/styled.js";import"../../icons/loader-circular-gradient-2/index.js";import"./reasoning-block/styled.js";import"../../icons/analyze-urls/index.js";import"../typography/styled.js";import"./search-results/styled.js";import"./video/styled.js";import"../../icons/max-window/index.js";import"../../icons/min-window/index.js";import"../../icons/pause-button/index.js";import"../../icons/play-button/index.js";import"../../icons/volume/index.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/edit/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/trash/index.js";import"../../icons/update/index.js";import"../../icons/menu-dot/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/thumb-down/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/download-img/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/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/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/voice/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/resend/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/manage-chat/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/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{useTheme as P}from"../../theme/hook.js";const A=({id:A,content:D,className:N,variant:H="user",color:q="default",name:z,tags:F,avatar:V,transaction:O,disableModal:U=!1,disableResend:G=!1,disableEdit:W=!1,disableDelete:Z=!1,disableUpdate:_=!1,disableCopy:J=!1,disableDownload:K=!0,disableEncryption:Q=!0,editOutOfMenu:X=!1,copyPlainText:Y,copyTgText:ii,editText:oi,resendText:ei,deleteText:si,onReportText:ni,downloadTooltipLabel:ti,submitEditTooltipLabel:ri,discardEditTooltipLabel:di,updateTooltipLabel:ci,copyTooltipLabel:pi,encryptionTooltipLabel:mi,typing:ai=!1,timestamp:li,timestampPosition:xi="right",skeleton:ji=!1,buttons:gi,after:ui,components:bi,children:yi,version:hi,totalVersions:fi,hideActions:wi,onCopy:Mi,onCodeCopy:Ti,onEdit:ki,onResend:vi,onDelete:Ci,onUpdate:Si,onReport:Ii,onNextVersion:Li,onPrevVersion:Bi,onDownload:Ei})=>{const Ri=P(),$i=s(null),Pi=s(null),Ai=s(null),Di=s(null),[Ni,Hi]=n(!1),[qi,zi]=n(null!=D?D:""),Fi=t(i=>{var o;zi(null!==(o=i.target.textContent)&&void 0!==o?o:"")},[]),Vi=t(i=>{const o=(new DOMParser).parseFromString(i.innerHTML,"text/html"),e=o.getElementsByTagName("code");for(const i of e){const e=o.createElement("span");e.innerText=i.innerText,i.replaceWith(e)}const s=o.createElement("div");s.style.whiteSpace="pre-wrap",s.innerHTML=o.body.innerHTML;return[new ClipboardItem({"text/plain":new Blob([D],{type:"text/plain"}),"text/html":new Blob([s.outerHTML],{type:"text/html"})})]},[D]),Oi=t(i=>[new ClipboardItem({"text/plain":new Blob([i.innerText],{type:"text/plain"})})],[]),Ui=t(i=>{const o=v(i);return[new ClipboardItem({"text/plain":new Blob([o],{type:"text/plain"})})]},[]),Gi=t(()=>{if(Pi.current)return null==Mi?void 0:Mi(Oi(Pi.current))},[Pi.current,D]),Wi=t(()=>{if(Ai.current)return null==Mi?void 0:Mi(Ui(Ai.current))},[Ai.current]),Zi=t(()=>{if(Pi.current&&D)return null==Mi?void 0:Mi(Vi(Pi.current))},[Pi.current,D]);let _i;switch(q&&"object"==typeof CSS&&"function"==typeof CSS.supports&&CSS.supports("background",null!=q?q:"#000")||(q="default"),H){case"user":switch(q){case"default":if("custom"===Ri.scheme){_i=Ri.colors.custom.message.user.background;break}if("standard"===Ri.scheme){_i="dark"===Ri.mode?C(Ri.colors.accent.primaryLight,.5):C(Ri.colors.accent.primaryLight,.2);break}_i=Ri.colors.accent.primary;break;case"green":_i=Ri.colors.gpt3;break;case"purple":_i=Ri.colors.gpt4;break;default:_i=q}break;case"assistant":switch(q){case"default":_i="dark"===Ri.mode?Ri.colors.grayScale.gray2:Ri.colors.grayScale.gray3;break;case"green":_i=Ri.colors.gpt3;break;case"purple":_i=Ri.colors.gpt4;break;default:_i=q}}return r(()=>{if(Di.current){Di.current.focus();const i=document.createRange(),o=window.getSelection();i.selectNodeContents(Di.current),i.collapse(!1),null==o||o.removeAllRanges(),null==o||o.addRange(i)}},[Di,Ni]),r(()=>{D&&(Ai.current=D)},[D]),i(S,{variant:H,color:q,typing:ai,onCopy:Gi,onCodeCopy:Ti,children:i(d,{$variant:H,ref:$i,children:o(c,{children:[i(p,{$variant:H,className:N,"data-date":li,children:o(m,{$variant:H,children:[z&&o(a,{children:["string"==typeof z&&o(l,{children:[i(x,{$color:q,children:z}),F]}),"string"!=typeof z&&i("div",{})]}),"string"!=typeof z&&z,i(j,{$variant:H,children:i(g,{children:V})}),i(u,{children:i(b,{$variant:H,$hexColor:_i,$skeleton:ji,$hasTimestamp:!!li,$timestampPosition:xi,children:o(y,{scrollShadows:{color:_i,size:60,left:i(B,{side:"left"}),right:i(B,{side:"right"})},children:[i(h,{ref:Pi,$variant:H,children:Ni?i(I,{disableMargin:!0,children:i(f,{onInput:Fi,ref:Di,children:D})}):o(e,{children:[!ji&&o(e,{children:["string"==typeof yi&&i(L,{components:bi,children:yi}),"string"!=typeof yi&&yi]}),ji&&i(I,{disableMargin:!0,children:i(k,{width:260,opacity:["light"===Ri.mode?.1:.15,"light"===Ri.mode?.225:.45],colors:["user"===H?Ri.colors.base.white:"light"===Ri.mode?Ri.default.colors.base.black:Ri.colors.grayScale.gray6]})}),ui]})}),li&&"user"===H&&i(E,{time:li,position:xi,color:_i})]})})}),li&&"assistant"===H&&i(E,{time:li,position:xi,color:_i}),o(w,{$variant:H,children:[O&&i(M,{children:O}),!ji&&!wi&&i(R,{id:A,onDownload:Ei,disableDownload:K,message:D,variant:H,skeleton:ji,disableModal:U,disableResend:G,disableEdit:W,disableDelete:Z,disableUpdate:_,disableCopy:J,disableEncryption:Q,editOutOfMenu:X,copyPlainText:Y,copyTgText:ii,editText:oi,resendText:ei,deleteText:si,onReportText:ni,downloadTooltipLabel:ti,submitEditTooltipLabel:ri,discardEditTooltipLabel:di,updateTooltipLabel:ci,copyTooltipLabel:pi,encryptionTooltipLabel:mi,editing:Ni,editedText:qi,onEditing:Hi,onEditedText:zi,onEdit:ki,onResend:vi,onDelete:Ci,onUpdate:Si,onReport:Ii,onPlainTextCopy:Gi,onTgCopy:Wi,onCopy:Zi}),i($,{id:A,version:hi,totalVersions:fi,onNextVersion:Li,onPrevVersion:Bi,editing:Ni,variant:H})]})]})}),i(T,{children:gi})]})})})};export{A as Message,g as MessageAvatar,j as MessageAvatarWrapper,b as MessageBlock,w as MessageBlockBottomPanel,h as MessageBlockContent,y as MessageBlockScrollbarWrapper,f as MessageBlockTextArea,M as MessageBlockTransaction,u as MessageBlockWrapper,T as MessageButtonsStyled,m as MessageContent,L as MessageMarkdown,x as MessageName,I as MessageParagraph,S as MessageProvider,l as MessageSender,p as MessageStyled,c as MessageStyledWithBottomPanel,d as MessageStyledWrapper,a as MessageTop};
1
+ import{__awaiter as i}from"tslib";import{jsx as o,jsxs as e,Fragment as s}from"react/jsx-runtime";import{useRef as n,useState as t,useCallback as r,useEffect as d}from"react";import{marked as c}from"marked";import{MessageStyledWrapper as p,MessageStyledWithBottomPanel as m,MessageStyled as a,MessageContent as l,MessageTop as x,MessageSender as j,MessageName as g,MessageAvatarWrapper as u,MessageAvatar as b,MessageBlockWrapper as y,MessageBlock as f,MessageBlockScrollbarWrapper as h,MessageBlockContent as w,MessageBlockTextArea as M,MessageBlockBottomPanel as v,MessageBlockTransaction as k,MessageButtonsStyled as T}from"./styled.js";export{MessageAction,MessageEditAction,MessageImageBottomArrowButton,MessageImageLeftArrowButton,MessageImageRightArrowButton,MessageImageTopArrowButton,MessageTag,MessageTags,MessageTransaction}from"./styled.js";import{Skeleton as C}from"../skeleton/index.js";import"../../theme/index.js";import{getTgMarkdown as S}from"../../utils/getTgMarkdown.js";import{colorToRgba as I}from"../../utils/colors/colorToRgba.js";import"../../utils/colors/calculateGrayScale.js";import"../../utils/colors/calculateAccentColors.js";import{MessageProvider as L}from"./context.js";export{MessageConsumer,MessageContext,useMessage}from"./context.js";import"styled-components";export{MessageInlineCodeStyled}from"./components/code/inline/styled.js";export{MessageMultilineCodeBody,MessageMultilineCodeHead,MessageMultilineCodeLanguage,MessageMultilineCodeStyled}from"./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"./components/code/multiline/copy/styled.js";import"../../icons/check-small/index.js";import"../../icons/copy/index.js";import"./components/code/multiline/content/styled.js";import{MessageParagraph as B}from"./components/paragraph/index.js";export{MessageBoldStyled}from"./components/bold/styled.js";export{MessageItalicStyled}from"./components/italic/styled.js";export{MessagePre}from"./components/pre/styled.js";export{MessageTableBody,MessageTableContent,MessageTableHead,MessageTableRow,MessageTableStyled}from"./components/table/styled.js";export{MessageTableCellStyled,MessageTableCellText,MessageTableHeadCell}from"./components/table/cell/styled.js";export{MessageListStyled}from"./components/list/styled.js";import"./components/list/context.js";export{MessageListItemStyled}from"./components/list/item/styled.js";export{MessageTitleStyled}from"./components/title/styled.js";export{MessageLinkStyled}from"./components/link/styled.js";export{MessageImageNative,MessageImageSkeleton,MessageImageStyled}from"./components/image/styled.js";export{MessageImageConsumer,MessageImageContext,MessageImageProvider,useMessageImage}from"./components/image/context.js";export{MessageImageGrid}from"./components/image/grid/styled.js";export{MessageImageButtonContent,MessageImageButtonStyled,MessageImageButtonZoneWrapper}from"./components/image/button/styled.js";export{MessageImageButtonsContent,MessageImageButtonsStyled}from"./components/image/button/list/styled.js";import{MessageMarkdown as R}from"./markdown/index.js";import"../scrollbar/styled.js";import{ScrollbarShadow as $}from"../scrollbar/shadow/index.js";import"../scrollbar/style/styled.js";import{MessageTimestamp as E}from"./timestamp/index.js";import{MessageActions as A}from"./actions/index.js";import{MessageVersions as P}from"./versions/index.js";import"./list/styled.js";import"./scroll-button/styled.js";import"./copy/styled.js";import"./badge-progress/styled.js";export{MessageButton}from"./button/styled.js";import"./button/list/styled.js";export{MessageFileInfo,MessageFileName,MessageFileSize,MessageFileStyled,MessageFiles}from"./file/styled.js";import"../icon/styled.js";import"../../icons/pdf-big/index.js";import"../../icons/txt-big/index.js";import"../../icons/word-big/index.js";import"../../icons/xls-big/index.js";import"../../icons/attach-file-big/index.js";import"./voice/styled.js";import"../../icons/loader-circular-gradient-2/index.js";import"./reasoning-block/styled.js";import"../../icons/analyze-urls/index.js";import"../typography/styled.js";import"./search-results/styled.js";import"./video/styled.js";import"../../icons/max-window/index.js";import"../../icons/min-window/index.js";import"../../icons/pause-button/index.js";import"../../icons/play-button/index.js";import"../../icons/volume/index.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/edit/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/trash/index.js";import"../../icons/update/index.js";import"../../icons/menu-dot/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/thumb-down/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/download-img/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/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/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/voice/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/resend/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/manage-chat/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/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{useTheme as D}from"../../theme/hook.js";const N=({id:N,content:q,className:z,variant:V="user",color:F="default",name:O,tags:U,avatar:H,transaction:G,disableModal:W=!1,disableResend:Z=!1,disableEdit:_=!1,disableDelete:J=!1,disableUpdate:K=!1,disableCopy:Q=!1,disableDownload:X=!0,disableEncryption:Y=!0,editOutOfMenu:ii=!1,copyPlainText:oi,copyTgText:ei,editText:si,resendText:ni,deleteText:ti,onReportText:ri,downloadTooltipLabel:di,submitEditTooltipLabel:ci,discardEditTooltipLabel:pi,updateTooltipLabel:mi,copyTooltipLabel:ai,encryptionTooltipLabel:li,typing:xi=!1,timestamp:ji,timestampPosition:gi="right",skeleton:ui=!1,buttons:bi,after:yi,components:fi,children:hi,version:wi,totalVersions:Mi,hideActions:vi,onCopy:ki,onCodeCopy:Ti,onEdit:Ci,onResend:Si,onDelete:Ii,onUpdate:Li,onReport:Bi,onNextVersion:Ri,onPrevVersion:$i,onDownload:Ei})=>{const Ai=D(),Pi=n(null),Di=n(null),Ni=n(null),qi=n(null),[zi,Vi]=t(!1),[Fi,Oi]=t(null!=q?q:""),Ui=r(i=>{var o;Oi(null!==(o=i.target.textContent)&&void 0!==o?o:"")},[]),Hi=r(()=>i(void 0,void 0,void 0,function*(){var i,o,e;const s=null!==(e=null===(o=null===(i=Ni.current)||void 0===i?void 0:i.replace(/(#+.*)$/g,"$1\n"))||void 0===o?void 0:o.replace(/\n{2,}/g,"\n"))&&void 0!==e?e:"",n=yield c.parse(Ni.current);return[new ClipboardItem({"text/plain":new Blob([s],{type:"text/plain"}),"text/html":new Blob([n],{type:"text/html"})})]}),[]),Gi=r(i=>[new ClipboardItem({"text/plain":new Blob([i.innerText.replace(/\n{2,}/g,"\n")],{type:"text/plain"})})],[]),Wi=r(i=>{const o=S(i);return[new ClipboardItem({"text/plain":new Blob([o],{type:"text/plain"})})]},[]),Zi=r(()=>{if(Di.current)return null==ki?void 0:ki(Gi(Di.current))},[Di.current,q]),_i=r(()=>{if(Ni.current)return null==ki?void 0:ki(Wi(Ni.current))},[Ni.current]),Ji=r(()=>i(void 0,void 0,void 0,function*(){if(Ni.current)return null==ki?void 0:ki(yield Hi())}),[Ni.current]);let Ki;switch(F&&"object"==typeof CSS&&"function"==typeof CSS.supports&&CSS.supports("background",null!=F?F:"#000")||(F="default"),V){case"user":switch(F){case"default":if("custom"===Ai.scheme){Ki=Ai.colors.custom.message.user.background;break}if("standard"===Ai.scheme){Ki="dark"===Ai.mode?I(Ai.colors.accent.primaryLight,.5):I(Ai.colors.accent.primaryLight,.2);break}Ki=Ai.colors.accent.primary;break;case"green":Ki=Ai.colors.gpt3;break;case"purple":Ki=Ai.colors.gpt4;break;default:Ki=F}break;case"assistant":switch(F){case"default":Ki="dark"===Ai.mode?Ai.colors.grayScale.gray2:Ai.colors.grayScale.gray3;break;case"green":Ki=Ai.colors.gpt3;break;case"purple":Ki=Ai.colors.gpt4;break;default:Ki=F}}return d(()=>{if(qi.current){qi.current.focus();const i=document.createRange(),o=window.getSelection();i.selectNodeContents(qi.current),i.collapse(!1),null==o||o.removeAllRanges(),null==o||o.addRange(i)}},[qi,zi]),d(()=>{q&&(Ni.current=q)},[q]),o(L,{variant:V,color:F,typing:xi,onCopy:Zi,onCodeCopy:Ti,children:o(p,{$variant:V,ref:Pi,children:e(m,{children:[o(a,{$variant:V,className:z,"data-date":ji,children:e(l,{$variant:V,children:[O&&e(x,{children:["string"==typeof O&&e(j,{children:[o(g,{$color:F,children:O}),U]}),"string"!=typeof O&&o("div",{})]}),"string"!=typeof O&&O,o(u,{$variant:V,children:o(b,{children:H})}),o(y,{children:o(f,{$variant:V,$hexColor:Ki,$skeleton:ui,$hasTimestamp:!!ji,$timestampPosition:gi,children:e(h,{scrollShadows:{color:Ki,size:60,left:o($,{side:"left"}),right:o($,{side:"right"})},children:[o(w,{ref:Di,$variant:V,children:zi?o(B,{disableMargin:!0,children:o(M,{onInput:Ui,ref:qi,children:q})}):e(s,{children:[!ui&&e(s,{children:["string"==typeof hi&&o(R,{components:fi,children:hi}),"string"!=typeof hi&&hi]}),ui&&o(B,{disableMargin:!0,children:o(C,{width:260,opacity:["light"===Ai.mode?.1:.15,"light"===Ai.mode?.225:.45],colors:["user"===V?Ai.colors.base.white:"light"===Ai.mode?Ai.default.colors.base.black:Ai.colors.grayScale.gray6]})}),yi]})}),ji&&"user"===V&&o(E,{time:ji,position:gi,color:Ki})]})})}),ji&&"assistant"===V&&o(E,{time:ji,position:gi,color:Ki}),e(v,{$variant:V,children:[G&&o(k,{children:G}),!ui&&!vi&&o(A,{id:N,onDownload:Ei,disableDownload:X,message:q,variant:V,skeleton:ui,disableModal:W,disableResend:Z,disableEdit:_,disableDelete:J,disableUpdate:K,disableCopy:Q,disableEncryption:Y,editOutOfMenu:ii,copyPlainText:oi,copyTgText:ei,editText:si,resendText:ni,deleteText:ti,onReportText:ri,downloadTooltipLabel:di,submitEditTooltipLabel:ci,discardEditTooltipLabel:pi,updateTooltipLabel:mi,copyTooltipLabel:ai,encryptionTooltipLabel:li,editing:zi,editedText:Fi,onEditing:Vi,onEditedText:Oi,onEdit:Ci,onResend:Si,onDelete:Ii,onUpdate:Li,onReport:Bi,onPlainTextCopy:Zi,onTgCopy:_i,onCopy:Ji}),o(P,{id:N,version:wi,totalVersions:Mi,onNextVersion:Ri,onPrevVersion:$i,editing:zi,variant:V})]})]})}),o(T,{children:bi})]})})})};export{N as Message,b as MessageAvatar,u as MessageAvatarWrapper,f as MessageBlock,v as MessageBlockBottomPanel,w as MessageBlockContent,h as MessageBlockScrollbarWrapper,M as MessageBlockTextArea,k as MessageBlockTransaction,y as MessageBlockWrapper,T as MessageButtonsStyled,l as MessageContent,R as MessageMarkdown,g as MessageName,B as MessageParagraph,L as MessageProvider,j as MessageSender,a as MessageStyled,m as MessageStyledWithBottomPanel,p as MessageStyledWrapper,x as MessageTop};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bothub-chat/ui",
3
- "version": "2.50.0",
3
+ "version": "2.50.1-develop-740b1040-6d87-4d9a-b8ea-f703e821d7a2",
4
4
  "description": "Bothub UI Components",
5
5
  "keywords": [
6
6
  "bot",
@@ -59,6 +59,7 @@
59
59
  "dompurify": "^3.2.6",
60
60
  "highlight.js": "^11.11.0",
61
61
  "katex": "^0.16.10",
62
+ "marked": "^16.2.1",
62
63
  "normalize.css": "^8.0.1",
63
64
  "rc-slider": "^11.1.8",
64
65
  "react-markdown": "^10.0.0",