@bothub-chat/ui 2.51.4-develop-d03412cc-3909-4f68-830f-ca6c73c647a2 → 2.51.5-develop-3b09bda6-1b91-45b1-b3eb-cc989e39e116

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.
Files changed (37) hide show
  1. package/dist/components/accordion/styled.js +2 -2
  2. package/dist/components/checkbox/styled.js +1 -1
  3. package/dist/components/color-picker/menu/styled.js +1 -1
  4. package/dist/components/dropzone-field/styled.js +1 -1
  5. package/dist/components/image-fullscreen/index.js +1 -1
  6. package/dist/components/input-message/index.d.ts +7 -19
  7. package/dist/components/input-message/index.js +1 -1
  8. package/dist/components/input-message/input-files.d.ts +7 -0
  9. package/dist/components/input-message/input-files.js +1 -0
  10. package/dist/components/input-message/styled.d.ts +5 -5
  11. package/dist/components/input-message/styled.js +7 -7
  12. package/dist/components/input-message/use-files.d.ts +22 -0
  13. package/dist/components/input-message/use-files.js +1 -0
  14. package/dist/components/input-message/use-input.d.ts +30 -0
  15. package/dist/components/input-message/use-input.js +1 -0
  16. package/dist/components/input-message/use-voice.d.ts +16 -0
  17. package/dist/components/input-message/use-voice.js +1 -0
  18. package/dist/components/input-message/utils.js +1 -1
  19. package/dist/components/message/reasoning-block/index.js +1 -1
  20. package/dist/components/message/search-results/index.js +1 -1
  21. package/dist/components/message/timestamp/styled.js +1 -1
  22. package/dist/components/message/voice/index.js +1 -1
  23. package/dist/components/message/voice/styled.js +1 -1
  24. package/dist/components/scrollable-tabs/styled.js +1 -1
  25. package/dist/components/select-field/select-modal/filterData.js +1 -1
  26. package/dist/components/select-field/select-modal/option/select-field-option/styled.js +1 -1
  27. package/dist/components/select-field/useSelectField.js +1 -1
  28. package/dist/components/sidebar/buttons/styled.js +1 -1
  29. package/dist/components/sidebar/user-info/styled.js +1 -1
  30. package/dist/components/tariff/card/styled.js +1 -1
  31. package/dist/components/uploaded-file/styled.js +1 -1
  32. package/dist/index.js +1 -1
  33. package/dist/utils/audio/index.d.ts +1 -0
  34. package/dist/utils/index.d.ts +2 -0
  35. package/package.json +1 -1
  36. /package/dist/{components/message/voice/utils/index.d.ts → utils/formatSeconds.d.ts} +0 -0
  37. /package/dist/{components/message/voice/utils/index.js → utils/formatSeconds.js} +0 -0
@@ -1,8 +1,8 @@
1
- import{styled as o,css as t}from"styled-components";import{Typography as i}from"../typography/index.js";import{ArrowDownIcon as e}from"../../icons/arrow-down/index.js";import"react";import"unified";import"remark-parse";import"remark-gfm";import"mdast-util-to-markdown";import{colorToRgba as r}from"../../utils/colors/colorToRgba.js";import"../../utils/colors/calculateGrayScale.js";import"../../utils/colors/calculateAccentColors.js";const a=o.div.withConfig({displayName:"styled__AccordionStyled",componentId:"sc-1vnkdol-0"})(["width:100%;display:flex;flex-direction:column;flex-shrink:0;box-sizing:border-box;position:relative;"]),n=o.div.withConfig({displayName:"styled__AccordionHead",componentId:"sc-1vnkdol-1"})(["display:flex;justify-content:space-between;align-items:center;gap:10px;padding:18px;cursor:pointer;border:",";border-radius:20px;transition:border-bottom 0.3s,border-radius 0.3s;position:relative;overflow:hidden;",";&::before{content:'';display:block;width:100%;height:100%;position:absolute;top:0;left:0;background-color:",";opacity:",";}"],({theme:o,$isDefaultVariant:t})=>t&&`1px solid ${o.colors.grayScale.gray2}`,({$isOpen:o})=>o&&t`
1
+ import{styled as o,css as t}from"styled-components";import{Typography as i}from"../typography/index.js";import{ArrowDownIcon as r}from"../../icons/arrow-down/index.js";import"react";import"unified";import"remark-parse";import"remark-gfm";import"mdast-util-to-markdown";import{colorToRgba as e}from"../../utils/colors/colorToRgba.js";import"../../utils/colors/calculateGrayScale.js";import"../../utils/colors/calculateAccentColors.js";import"tslib";const a=o.div.withConfig({displayName:"styled__AccordionStyled",componentId:"sc-1vnkdol-0"})(["width:100%;display:flex;flex-direction:column;flex-shrink:0;box-sizing:border-box;position:relative;"]),n=o.div.withConfig({displayName:"styled__AccordionHead",componentId:"sc-1vnkdol-1"})(["display:flex;justify-content:space-between;align-items:center;gap:10px;padding:18px;cursor:pointer;border:",";border-radius:20px;transition:border-bottom 0.3s,border-radius 0.3s;position:relative;overflow:hidden;",";&::before{content:'';display:block;width:100%;height:100%;position:absolute;top:0;left:0;background-color:",";opacity:",";}"],({theme:o,$isDefaultVariant:t})=>t&&`1px solid ${o.colors.grayScale.gray2}`,({$isOpen:o})=>o&&t`
2
2
  border-bottom: 0;
3
3
  border-bottom-left-radius: 0;
4
4
  border-bottom-right-radius: 0;
5
- `,({theme:o})=>o.colors.grayScale.gray4,({$isDefaultVariant:o})=>o?"0.5":"0.75"),s=o(i).attrs({variant:"body-m-semibold"}).withConfig({displayName:"styled__AccordionLabel",componentId:"sc-1vnkdol-2"})(["position:relative;z-index:1;"]),d=o(e).attrs({size:24}).withConfig({displayName:"styled__AccordionArrow",componentId:"sc-1vnkdol-3"})(["transform:rotate(",");transition:transform 0.2s ease-in-out;"],({$isOpen:o})=>o?"180deg":"0deg"),l=o.div.withConfig({displayName:"styled__AccordionBody",componentId:"sc-1vnkdol-4"})(["background-color:",";border:",";border-top:0;border-radius:0 0 20px 20px;transition:max-height 0.3s,padding 0.3s,opacity 0.3s;",";"],({theme:o,$isDefaultVariant:t})=>t?o.colors.grayScale.gray3:r(o.colors.grayScale.gray4,.75),({theme:o,$isDefaultVariant:t})=>t&&`1px solid ${o.colors.grayScale.gray2}`,({$isOpen:o,$isDefaultVariant:i})=>o?t`
5
+ `,({theme:o})=>o.colors.grayScale.gray4,({$isDefaultVariant:o})=>o?"0.5":"0.75"),s=o(i).attrs({variant:"body-m-semibold"}).withConfig({displayName:"styled__AccordionLabel",componentId:"sc-1vnkdol-2"})(["position:relative;z-index:1;"]),d=o(r).attrs({size:24}).withConfig({displayName:"styled__AccordionArrow",componentId:"sc-1vnkdol-3"})(["transform:rotate(",");transition:transform 0.2s ease-in-out;"],({$isOpen:o})=>o?"180deg":"0deg"),l=o.div.withConfig({displayName:"styled__AccordionBody",componentId:"sc-1vnkdol-4"})(["background-color:",";border:",";border-top:0;border-radius:0 0 20px 20px;transition:max-height 0.3s,padding 0.3s,opacity 0.3s;",";"],({theme:o,$isDefaultVariant:t})=>t?o.colors.grayScale.gray3:e(o.colors.grayScale.gray4,.75),({theme:o,$isDefaultVariant:t})=>t&&`1px solid ${o.colors.grayScale.gray2}`,({$isOpen:o,$isDefaultVariant:i})=>o?t`
6
6
  padding: 18px;
7
7
  ${i?"":"padding-top: 0px;"}
8
8
  max-height: auto;
@@ -1,4 +1,4 @@
1
- import{styled as e,css as o}from"styled-components";import{CheckSmallIcon as r}from"../../icons/check-small/index.js";import{Typography as i}from"../typography/index.js";import{Skeleton as t}from"../skeleton/index.js";import"react";import"unified";import"remark-parse";import"remark-gfm";import"mdast-util-to-markdown";import{isBright as c}from"../../utils/colors/isBright.js";import"../../utils/colors/calculateGrayScale.js";import"../../utils/colors/calculateAccentColors.js";const l=e.label.withConfig({displayName:"styled__CheckboxStyled",componentId:"sc-im2c17-0"})(["display:",";align-items:center;gap:8px;cursor:pointer;user-select:none;"," "," ",""],({$displayFlex:e})=>e?"flex":"inline-flex",({$disabled:e})=>e?o`
1
+ import{styled as e,css as o}from"styled-components";import{CheckSmallIcon as r}from"../../icons/check-small/index.js";import{Typography as i}from"../typography/index.js";import{Skeleton as t}from"../skeleton/index.js";import"react";import"unified";import"remark-parse";import"remark-gfm";import"mdast-util-to-markdown";import{isBright as c}from"../../utils/colors/isBright.js";import"../../utils/colors/calculateGrayScale.js";import"../../utils/colors/calculateAccentColors.js";import"tslib";const l=e.label.withConfig({displayName:"styled__CheckboxStyled",componentId:"sc-im2c17-0"})(["display:",";align-items:center;gap:8px;cursor:pointer;user-select:none;"," "," ",""],({$displayFlex:e})=>e?"flex":"inline-flex",({$disabled:e})=>e?o`
2
2
  cursor: not-allowed;
3
3
  `:o`
4
4
  cursor: pointer;
@@ -1,4 +1,4 @@
1
- import{jsx as e}from"react/jsx-runtime";import{keyframes as o,styled as r,css as t}from"styled-components";import{Button as i}from"../../button/index.js";import{CloseIcon as n}from"../../../icons/close/index.js";import{SelectorIcon as a}from"../../../icons/selector/index.js";import{TextField as l}from"../../text-field/index.js";import"react";import"unified";import"remark-parse";import"remark-gfm";import"mdast-util-to-markdown";import{isBright as s}from"../../../utils/colors/isBright.js";import"../../../utils/colors/calculateGrayScale.js";import"../../../utils/colors/calculateAccentColors.js";const d=o`
1
+ import{jsx as e}from"react/jsx-runtime";import{keyframes as o,styled as r,css as t}from"styled-components";import{Button as i}from"../../button/index.js";import{CloseIcon as n}from"../../../icons/close/index.js";import{SelectorIcon as a}from"../../../icons/selector/index.js";import{TextField as l}from"../../text-field/index.js";import"react";import"unified";import"remark-parse";import"remark-gfm";import"mdast-util-to-markdown";import{isBright as s}from"../../../utils/colors/isBright.js";import"../../../utils/colors/calculateGrayScale.js";import"../../../utils/colors/calculateAccentColors.js";import"tslib";const d=o`
2
2
  from {
3
3
  opacity: 0;
4
4
  transform: translateY(4px);
@@ -1 +1 @@
1
- import{styled as e}from"styled-components";import{Typography as t}from"../typography/index.js";import"react";import"unified";import"remark-parse";import"remark-gfm";import"mdast-util-to-markdown";import{colorToRgba as o}from"../../utils/colors/colorToRgba.js";import"../../utils/colors/calculateGrayScale.js";import"../../utils/colors/calculateAccentColors.js";const i=e.div.withConfig({displayName:"styled__DropzoneFieldStyled",componentId:"sc-f0fnsu-0"})([""," display:flex;flex-direction:column;justify-content:stretch;gap:20px;background-color:",";padding:20px;border-radius:20px;background-image:",";transition:background 0.3s ease-out;position:relative;&:active,&[data-dragged='true']{background-color:rgba(28,100,242,0.2);background-image:url(\"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='20' ry='20' vector-effect='non-scaling-stroke' stroke='%231C64F2FF' stroke-width='4' stroke-dasharray='8%2c 16' stroke-dashoffset='0' stroke-linecap='square'/%3e%3c/svg%3e\");}"],({$fullWidth:e})=>e?"width: 100%;":"",({theme:e})=>o(e.colors.grayScale.gray4,.75),({theme:e})=>`url("${"light"===e.mode?"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='20' ry='20' vector-effect='non-scaling-stroke' stroke='%23CDD5DA' stroke-width='4' stroke-dasharray='8%2c 16' stroke-dashoffset='0' stroke-linecap='square'/%3e%3c/svg%3e":"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='20' ry='20' vector-effect='non-scaling-stroke' stroke='%23222B44FF' stroke-width='4' stroke-dasharray='8%2c 16' stroke-dashoffset='0' stroke-linecap='square'/%3e%3c/svg%3e"}")`),s=e.div.withConfig({displayName:"styled__DropzoneFieldLabels",componentId:"sc-f0fnsu-1"})(["display:flex;justify-content:space-between;align-items:center;"]),r=e.div.withConfig({displayName:"styled__DropzoneFieldRightLabelsContainer",componentId:"sc-f0fnsu-2"})(["display:flex;align-items:flex-end;flex-direction:column;gap:8px;"]),a=e(t).attrs({variant:"body-xs-medium"}).withConfig({displayName:"styled__DropzoneFieldRightLabel",componentId:"sc-f0fnsu-3"})(["color:",";"],({theme:e})=>e.colors.grayScale.gray1),n=e.input.withConfig({displayName:"styled__DropzoneFieldInput",componentId:"sc-f0fnsu-4"})(["cursor:pointer;position:absolute;opacity:0;inset:0;z-index:30;"]),l=e.div.withConfig({displayName:"styled__DropzoneFieldPlaceholder",componentId:"sc-f0fnsu-5"})(["display:flex;align-items:center;justify-content:center;position:relative;padding:20px;"]);e.div.withConfig({displayName:"styled__DropzoneFieldFilesStyled",componentId:"sc-f0fnsu-6"})(["width:100%;height:100%;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:20px;"]),e.div.withConfig({displayName:"styled__DropzoneFieldFile",componentId:"sc-f0fnsu-7"})(["display:flex;align-items:center;justify-content:space-between;gap:6px;position:relative;z-index:40;padding:8px 6px;border-radius:10px;border:1px solid ",";background:",";"],({theme:e})=>e.colors.grayScale.gray2,({theme:e})=>e.colors.grayScale.gray3);export{n as DropzoneFieldInput,s as DropzoneFieldLabels,l as DropzoneFieldPlaceholder,a as DropzoneFieldRightLabel,r as DropzoneFieldRightLabelsContainer,i as DropzoneFieldStyled};
1
+ import{styled as e}from"styled-components";import{Typography as t}from"../typography/index.js";import"react";import"unified";import"remark-parse";import"remark-gfm";import"mdast-util-to-markdown";import{colorToRgba as o}from"../../utils/colors/colorToRgba.js";import"../../utils/colors/calculateGrayScale.js";import"../../utils/colors/calculateAccentColors.js";import"tslib";const i=e.div.withConfig({displayName:"styled__DropzoneFieldStyled",componentId:"sc-f0fnsu-0"})([""," display:flex;flex-direction:column;justify-content:stretch;gap:20px;background-color:",";padding:20px;border-radius:20px;background-image:",";transition:background 0.3s ease-out;position:relative;&:active,&[data-dragged='true']{background-color:rgba(28,100,242,0.2);background-image:url(\"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='20' ry='20' vector-effect='non-scaling-stroke' stroke='%231C64F2FF' stroke-width='4' stroke-dasharray='8%2c 16' stroke-dashoffset='0' stroke-linecap='square'/%3e%3c/svg%3e\");}"],({$fullWidth:e})=>e?"width: 100%;":"",({theme:e})=>o(e.colors.grayScale.gray4,.75),({theme:e})=>`url("${"light"===e.mode?"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='20' ry='20' vector-effect='non-scaling-stroke' stroke='%23CDD5DA' stroke-width='4' stroke-dasharray='8%2c 16' stroke-dashoffset='0' stroke-linecap='square'/%3e%3c/svg%3e":"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='20' ry='20' vector-effect='non-scaling-stroke' stroke='%23222B44FF' stroke-width='4' stroke-dasharray='8%2c 16' stroke-dashoffset='0' stroke-linecap='square'/%3e%3c/svg%3e"}")`),s=e.div.withConfig({displayName:"styled__DropzoneFieldLabels",componentId:"sc-f0fnsu-1"})(["display:flex;justify-content:space-between;align-items:center;"]),r=e.div.withConfig({displayName:"styled__DropzoneFieldRightLabelsContainer",componentId:"sc-f0fnsu-2"})(["display:flex;align-items:flex-end;flex-direction:column;gap:8px;"]),a=e(t).attrs({variant:"body-xs-medium"}).withConfig({displayName:"styled__DropzoneFieldRightLabel",componentId:"sc-f0fnsu-3"})(["color:",";"],({theme:e})=>e.colors.grayScale.gray1),n=e.input.withConfig({displayName:"styled__DropzoneFieldInput",componentId:"sc-f0fnsu-4"})(["cursor:pointer;position:absolute;opacity:0;inset:0;z-index:30;"]),l=e.div.withConfig({displayName:"styled__DropzoneFieldPlaceholder",componentId:"sc-f0fnsu-5"})(["display:flex;align-items:center;justify-content:center;position:relative;padding:20px;"]);e.div.withConfig({displayName:"styled__DropzoneFieldFilesStyled",componentId:"sc-f0fnsu-6"})(["width:100%;height:100%;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:20px;"]),e.div.withConfig({displayName:"styled__DropzoneFieldFile",componentId:"sc-f0fnsu-7"})(["display:flex;align-items:center;justify-content:space-between;gap:6px;position:relative;z-index:40;padding:8px 6px;border-radius:10px;border:1px solid ",";background:",";"],({theme:e})=>e.colors.grayScale.gray2,({theme:e})=>e.colors.grayScale.gray3);export{n as DropzoneFieldInput,s as DropzoneFieldLabels,l as DropzoneFieldPlaceholder,a as DropzoneFieldRightLabel,r as DropzoneFieldRightLabelsContainer,i as DropzoneFieldStyled};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as l}from"react/jsx-runtime";import{useState as r,useCallback as n,useEffect as i}from"react";import{Portal as o}from"../portal/index.js";import{ImageFullScreenStyled as t,ImageFullScreenBackdrop as d,ImageFullScreenContainer as a,ImageFullScreenContent as c,ImageFullScreenTopBlock as u,ImageFullScreenTopBlockContent as h,ImageFullScreenMain as s,ImageFullScreenCarousel as m,ImageFullScreenCarouselContainer as g,ImageFullScreenSlide as v,ImageFullScreenImage as p,ImageFullScreenCarouselButtons as w,ImageFullScreenCarouselPrevButton as f,ImageFullScreenCarouselNextButton as x,ImageFullScreenPreview as S,ImageFullScreenPreviewImages as b,ImageFullScreenPreviewImage as I}from"./styled.js";export{ImageFullScreenAuthor,ImageFullScreenAuthorAvatar,ImageFullScreenAuthorName,ImageFullScreenAuthorTag,ImageFullScreenToolbar}from"./styled.js";import{ImageFullScreenProvider as C}from"./context.js";export{ImageFullScreenContext,useImageFullScreen}from"./context.js";import{useCarousel as j}from"../../utils/useCarousel.js";const A=({open:A,data:k,item:F,author:y,toolbar:P,onChange:E,onClose:L})=>{var N;const[T,U]=r(!1),W=n(e=>{null==E||E(k[e])},[E,k]),{activeSlideIndex:Z,isPrevAllowed:$,isNextAllowed:H,goPrev:O,goNext:R,goToSlide:q,carouselProps:z}=j({slidesCount:k.length,onSlideChange:W,enableSwipes:!T,defaultIndex:()=>{var e;return F&&null!==(e=k.findIndex(({id:e})=>e===("object"==typeof F?F.id:F)))&&void 0!==e?e:0}}),B=null!==(N=k[Z])&&void 0!==N?N:null;return i(()=>{if(A){const e=e=>{switch(e.code){case"ArrowLeft":O();break;case"ArrowRight":R()}};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}},[A,O,R]),e(C,{data:k,activeItem:B,children:A&&e(o,{children:l(t,{children:[e(d,{open:A,onClick:L}),e(a,{children:l(c,{children:[(y||P)&&e(u,{children:l(h,{children:[y,P]})}),l(s,{children:[l(m,{children:[e(g,Object.assign({},z,{children:k.map(l=>{var r;return e(v,{children:e(p,{imageProps:{src:l.url,alt:l.name,width:l.width,height:l.height,loading:"skeleton"},onZoomStart:U.bind(null,!0),onZoomEnd:U.bind(null,!1)})},null!==(r=l.id)&&void 0!==r?r:l.url)})})),k.length>1&&!T&&l(w,{$imageWidth:B.width,children:[e(f,{disabled:!$,onClick:O}),e(x,{disabled:!H,onClick:R})]})]}),k.length>1&&e(S,{children:e(b,{children:k.map((l,r)=>{var n,i,o,t,d;return e(I,{$active:l===B,src:null!==(n=l.previewUrl)&&void 0!==n?n:l.url,width:null!==(i=l.previewWidth)&&void 0!==i?i:l.width,height:null!==(o=l.previewHeight)&&void 0!==o?o:l.height,alt:l.name,onClick:q.bind(null,r)},null!==(d=null!==(t=l.id)&&void 0!==t?t:l.previewUrl)&&void 0!==d?d:l.url)})})})]})]})})]})})})};export{A as ImageFullScreen,d as ImageFullScreenBackdrop,m as ImageFullScreenCarousel,w as ImageFullScreenCarouselButtons,g as ImageFullScreenCarouselContainer,x as ImageFullScreenCarouselNextButton,f as ImageFullScreenCarouselPrevButton,a as ImageFullScreenContainer,c as ImageFullScreenContent,p as ImageFullScreenImage,s as ImageFullScreenMain,S as ImageFullScreenPreview,I as ImageFullScreenPreviewImage,b as ImageFullScreenPreviewImages,C as ImageFullScreenProvider,v as ImageFullScreenSlide,t as ImageFullScreenStyled,u as ImageFullScreenTopBlock,h as ImageFullScreenTopBlockContent};
1
+ import{jsx as e,jsxs as r}from"react/jsx-runtime";import{useState as l,useCallback as t,useEffect as o}from"react";import{Portal as i}from"../portal/index.js";import{ImageFullScreenStyled as n,ImageFullScreenBackdrop as d,ImageFullScreenContainer as a,ImageFullScreenContent as c,ImageFullScreenTopBlock as u,ImageFullScreenTopBlockContent as m,ImageFullScreenMain as s,ImageFullScreenCarousel as h,ImageFullScreenCarouselContainer as p,ImageFullScreenSlide as g,ImageFullScreenImage as v,ImageFullScreenCarouselButtons as w,ImageFullScreenCarouselPrevButton as f,ImageFullScreenCarouselNextButton as x,ImageFullScreenPreview as S,ImageFullScreenPreviewImages as b,ImageFullScreenPreviewImage as j}from"./styled.js";export{ImageFullScreenAuthor,ImageFullScreenAuthorAvatar,ImageFullScreenAuthorName,ImageFullScreenAuthorTag,ImageFullScreenToolbar}from"./styled.js";import{ImageFullScreenProvider as k}from"./context.js";export{ImageFullScreenContext,useImageFullScreen}from"./context.js";import{useCarousel as C}from"../../utils/useCarousel.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"tslib";const I=({open:I,data:A,item:F,author:y,toolbar:P,onChange:E,onClose:L})=>{var N;const[T,U]=l(!1),W=t(e=>{null==E||E(A[e])},[E,A]),{activeSlideIndex:Z,isPrevAllowed:$,isNextAllowed:G,goPrev:H,goNext:O,goToSlide:R,carouselProps:q}=C({slidesCount:A.length,onSlideChange:W,enableSwipes:!T,defaultIndex:()=>{var e;return F&&null!==(e=A.findIndex(({id:e})=>e===("object"==typeof F?F.id:F)))&&void 0!==e?e:0}}),z=null!==(N=A[Z])&&void 0!==N?N:null;return o(()=>{if(I){const e=e=>{switch(e.code){case"ArrowLeft":H();break;case"ArrowRight":O()}};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}},[I,H,O]),e(k,{data:A,activeItem:z,children:I&&e(i,{children:r(n,{children:[e(d,{open:I,onClick:L}),e(a,{children:r(c,{children:[(y||P)&&e(u,{children:r(m,{children:[y,P]})}),r(s,{children:[r(h,{children:[e(p,Object.assign({},q,{children:A.map(r=>{var l;return e(g,{children:e(v,{imageProps:{src:r.url,alt:r.name,width:r.width,height:r.height,loading:"skeleton"},onZoomStart:U.bind(null,!0),onZoomEnd:U.bind(null,!1)})},null!==(l=r.id)&&void 0!==l?l:r.url)})})),A.length>1&&!T&&r(w,{$imageWidth:z.width,children:[e(f,{disabled:!$,onClick:H}),e(x,{disabled:!G,onClick:O})]})]}),A.length>1&&e(S,{children:e(b,{children:A.map((r,l)=>{var t,o,i,n,d;return e(j,{$active:r===z,src:null!==(t=r.previewUrl)&&void 0!==t?t:r.url,width:null!==(o=r.previewWidth)&&void 0!==o?o:r.width,height:null!==(i=r.previewHeight)&&void 0!==i?i:r.height,alt:r.name,onClick:R.bind(null,l)},null!==(d=null!==(n=r.id)&&void 0!==n?n:r.previewUrl)&&void 0!==d?d:r.url)})})})]})]})})]})})})};export{I as ImageFullScreen,d as ImageFullScreenBackdrop,h as ImageFullScreenCarousel,w as ImageFullScreenCarouselButtons,p as ImageFullScreenCarouselContainer,x as ImageFullScreenCarouselNextButton,f as ImageFullScreenCarouselPrevButton,a as ImageFullScreenContainer,c as ImageFullScreenContent,v as ImageFullScreenImage,s as ImageFullScreenMain,S as ImageFullScreenPreview,j as ImageFullScreenPreviewImage,b as ImageFullScreenPreviewImages,k as ImageFullScreenProvider,g as ImageFullScreenSlide,n as ImageFullScreenStyled,u as ImageFullScreenTopBlock,m as ImageFullScreenTopBlockContent};
@@ -1,41 +1,29 @@
1
1
  import React from 'react';
2
2
  import { IConfigureOption, IInputMessageFile, IInputMessageVoiceFile } from './types';
3
+ import { UseVoiceProps } from './use-voice';
4
+ import { UseFilesProps } from './use-files';
5
+ import { UseInputProps } from './use-input';
3
6
  export type InputMessageChangeEventHandler = (message: string) => unknown;
4
7
  export type InputMessageFilesChangeEventHandler = (files: IInputMessageFile[]) => unknown;
5
8
  export type InputMessageVoiceFilesChangeEventHandler = (files: IInputMessageVoiceFile[]) => unknown;
6
9
  export type InputMessageSendEventHandler = (message: string, files: IInputMessageFile[]) => unknown;
7
10
  export type InputMessageVoiceEventHandler = (blob: Blob) => unknown;
8
- export type InputMessageErrorEvent = {
9
- name: 'WRONG_FILES';
10
- payload: File[];
11
- };
12
- export interface InputMessageProps extends Omit<React.ComponentProps<'textarea'>, 'value' | 'onChange'> {
11
+ export type InputMessageProps = Omit<React.ComponentProps<'textarea'>, 'value' | 'onChange'> & {
13
12
  className?: string;
14
13
  placeholder?: string;
15
14
  message?: string;
16
15
  files?: IInputMessageFile[];
17
16
  hideUploadFile?: boolean;
18
- uploadFileLimit?: number;
19
- uploadFileDisabled?: boolean;
20
- uploadFileAccept?: string;
21
17
  uploadFileText?: string;
22
18
  sendDisabled?: boolean;
23
19
  textAreaDisabled?: boolean;
24
- useAlternativeKeyDefaultValue?: boolean;
25
20
  defaultKeySendText?: React.ReactNode;
26
21
  alternativeKeySendText?: React.ReactNode;
27
22
  concatenateText?: React.ReactNode;
28
- autoFocus?: boolean;
29
23
  voice?: boolean;
30
- onSetAlternativeKeyValue?: (value: boolean) => unknown;
31
- onChange?: InputMessageChangeEventHandler;
32
- onFilesChange?: InputMessageFilesChangeEventHandler;
33
- onVoiceFilesChange?: InputMessageVoiceFilesChangeEventHandler;
34
- onTextAreaChange?: React.ChangeEventHandler<HTMLTextAreaElement>;
35
- onSend?: InputMessageSendEventHandler;
36
- emitError?(event: InputMessageErrorEvent): void;
37
- configureOptions?: IConfigureOption[];
38
24
  actions?: React.ReactNode;
39
- }
25
+ configureOptions?: IConfigureOption[];
26
+ onSend?: InputMessageSendEventHandler;
27
+ } & (UseInputProps & UseFilesProps & UseVoiceProps);
40
28
  export declare const InputMessage: React.FC<InputMessageProps>;
41
29
  export * from './types';
@@ -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,InputMessageConfigure as j,InputMessageConfigureButton as x,InputMessageConfigureMenu as u,InputMessageUploadFile as g,InputMessageUploadFileLabel as h,InputMessageUploadFileInput as b,InputMessageMenuHr as y,InputMessageMenuOption as f,InputMessageMain as v,InputMessageVoiceRecord as w,InputMessageVoiceRecordDot as k,InputMessageVoiceRecordTimeText as C,InputMessageFiles as D,InputMessageFile as F,InputMessageConcatenateWarning as $,InputMessageVoiceFiles as T,InputMessageVoiceTrack as A,InputMessageVoiceFileDelete as E,InputMessageTextArea as O,InputMessageButtons as S,InputMessageToggleSendStyled as L,InputMessageToggleSendButton as K,InputMessageToggleSendModalStyled as P,InputMessageToggleSendModalOption as U,InputMessageVoicePlayButton as z,InputMessageVoicePauseButton as q,InputMessageVoiceButton as R,InputMessageSendButton as V,InputMessageSendIcon as I}from"./styled.js";import{ChipImage as B}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 N}from"../../icons/pdf/index.js";import{TxtIcon as M}from"../../icons/txt/index.js";import{WordIcon as G}from"../../icons/word/index.js";import{XlsIcon as H}from"../../icons/xls/index.js";import{IconProvider as W}from"../icon/context.js";import"../icon/styled.js";import{Typography as _}from"../typography/index.js";import{getPreviewUrlForFile as J,isFileTypeAccepted as Q,formatUploadFiles as X,formatSeconds as Y,isMobileDevice as Z}from"./utils.js";import{AttachFileIcon as ii}from"../../icons/attach-file/index.js";import{getSupportedAudioMimeType as ei}from"../../utils/getSupportedAudioMimeType.js";import"marked";import"../message/styled.js";import"../loader/styled.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"../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{Plus2Icon as oi}from"../../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 si}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/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"../../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"../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 ni}from"../message/voice/index.js";import"../message/reasoning-block/styled.js";import"../message/search-results/styled.js";import"../message/video/styled.js";import{getWaveData as ti}from"../../utils/audio/getWaveData.js";import{useTheme as ri}from"../../theme/hook.js";const ci=ci=>{var{className:di,placeholder:mi,message:ai,files:pi,disabled:li=!1,sendDisabled:ji=!1,textAreaDisabled:xi=!1,useAlternativeKeyDefaultValue:ui=!1,defaultKeySendText:gi,alternativeKeySendText:hi,concatenateText:bi,uploadFileLimit:yi=5,hideUploadFile:fi=!1,uploadFileDisabled:vi=!1,uploadFileAccept:wi,uploadFileText:ki,autoFocus:Ci=!0,voice:Di=!1,onSetAlternativeKeyValue:Fi,onChange:$i,onFilesChange:Ti,onVoiceFilesChange:Ai,onTextAreaChange:Ei,onSend:Oi,onFocus:Si,onBlur:Li,emitError:Ki,actions:Pi,configureOptions:Ui}=ci,zi=i(ci,["className","placeholder","message","files","disabled","sendDisabled","textAreaDisabled","useAlternativeKeyDefaultValue","defaultKeySendText","alternativeKeySendText","concatenateText","uploadFileLimit","hideUploadFile","uploadFileDisabled","uploadFileAccept","uploadFileText","autoFocus","voice","onSetAlternativeKeyValue","onChange","onFilesChange","onVoiceFilesChange","onTextAreaChange","onSend","onFocus","onBlur","emitError","actions","configureOptions"]);const qi=ri(),Ri=t(null),[Vi,Ii]=r("calc(var(--bothub-scale, 1) * 22px)"),[Bi,Ni]="string"==typeof ai?[ai,$i]:r(""),[Mi,Gi]=Array.isArray(pi)?[pi,Ti]:r([]),[Hi,Wi]=r([]),[_i,Ji]=r(!1),[Qi,Xi]=r(!li&&Ci),[Yi,Zi]=r(!1),[ie,ee]=r(!1),[oe,se]=r(null),ne=t(null),te=t(null),re=t([]),ce=t(null),de=t(!1),me=t(null),[ae,pe]=r(ui),[le,je]=r(!1),xe=t(null),[ue,ge]=r(!1),he=c(()=>{pe(!1),null==Fi||Fi(!1),je(!1)},[]),be=c(()=>{pe(!0),null==Fi||Fi(!0),je(!1)},[]),ye=c(i=>{Xi(!0),null==Si||Si(i)},[Si]),fe=c(i=>{Xi(!1),null==Li||Li(i)},[Li]),ve=c(i=>{null==Ni||Ni(i.target.value),null==Ei||Ei(i)},[Ni,Ei]),we=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(J));for(const[n,t]of i.entries()){Q(t.type,wi)?e.push({previewUrl:s[n],name:t.name,native:t}):o.push(t)}o.length>0&&(null==Ki||Ki({name:"WRONG_FILES",payload:o})),(null==e?void 0:e.length)>0&&(null==Gi||Gi([...Mi,...e].slice(0,yi)))}),[wi,Ki,yi,Mi]),ke=c(i=>e(void 0,void 0,void 0,function*(){!vi&&i.clipboardData.files.length>0&&(i.preventDefault(),yield we([...i.clipboardData.files]))}),[we,vi]),Ce=c(i=>e(void 0,void 0,void 0,function*(){if(!Gi||!i.target.files)return;const e=yield X([...Mi.map(({native:i})=>i),...i.target.files]);Gi(e.slice(0,yi)),ge(!1)}),[Mi,Gi,yi]),De=c(i=>{null==Gi||Gi(Mi.filter(({name:e})=>e!==i.name))},[Gi,Mi]),Fe=c(i=>{i.stopPropagation(),null==Oi||Oi(Bi,Mi),null==Ni||Ni(""),null==Gi||Gi([]),null==Wi||Wi([]),Ii("calc(var(--bothub-scale, 1) * 22px)")},[Bi,Mi,Oi,Ni,Gi,Wi]),$e=c(i=>{i.stopPropagation();if(Z()&&"Enter"===i.key)return;const e=ae?"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(Qi&&"Enter"===i.key){if(o===e&&i.ctrlKey){i.preventDefault();const e=Ri.current;if(!e)return;const o=e.value,t=e.selectionStart,r=o.slice(0,t),c=o.slice(t);null==Ni||Ni(`${r}\n${c}`),s=e,n=t+1,setTimeout(()=>{s.selectionStart=n,s.selectionEnd=n},1)}e!==o&&""!==o&&(i.preventDefault(),null==Oi||Oi(Bi,Mi),Ii("calc(var(--bothub-scale, 1) * 22px)"))}var s,n},[Qi,Bi,Mi,Oi,Ni,Gi]),Te=c(()=>{var i;li||null===(i=Ri.current)||void 0===i||i.focus()},[li,Ci]),Ae=c(i=>{i.stopPropagation()},[]),Ee=c(i=>e(void 0,void 0,void 0,function*(){if(ie)return;de.current=!0,i.stopPropagation();const e=yield navigator.mediaDevices.getUserMedia({audio:!0}),o=new MediaRecorder(e,{mimeType:ei()});de.current&&(o.start(1e3),ne.current=o,te.current=e,ce.current=window.setInterval(()=>{se(i=>(null!=i?i:0)+.1)},100),ee(!0),se(0),Ji(!1))}),[de.current,re.current,ie]),Oe=c(()=>{const i=ne.current,e=te.current,o=ce.current;if(ie&&i&&e&&o){i.stop();for(const i of e.getTracks())i.stop();window.clearInterval(o)}},[ie,ne.current,te.current,ce.current]),Se=c(()=>e(void 0,void 0,void 0,function*(){de.current=!1,ie&&Oe()}),[ie,Oe]),Le=c(()=>{const i=ne.current,e=ce.current;ie&&i&&e&&(i.pause(),window.clearInterval(e),Ji(!0))},[ie]),Ke=c(()=>{const i=ne.current;ie&&i&&(i.resume(),ce.current=window.setInterval(()=>{se(i=>(null!=i?i:0)+.1)},100),Ji(!1))},[ie,se]),Pe=c(i=>{Wi(Hi.filter(e=>e.src!==i.src))},[Hi,Wi]),Ue=c(()=>{const i=Ri.current;null!==i&&(i.style.height="calc(var(--bothub-scale, 1) * 22px)",i.style.height=`${i.scrollHeight}px`,Ii(`${i.scrollHeight}px`))},[Bi,Ci]);d(()=>{Ue()},[Ue]),d(()=>{const i=Ri.current;if(!i||li)return;const e=!li&&Ci;Xi(e),e?i.focus():document.activeElement===i&&i.blur()},[li,Ci]),d(()=>{const i=Ri.current;if(null!==i)return i.addEventListener("keydown",$e),()=>{i.removeEventListener("keydown",$e)}},[$e]),d(()=>{Gi&&pi&&Gi(pi)},[pi]),d(()=>{null==Ai||Ai(Hi)},[Hi]),d(()=>{const i=ne.current,o=i=>{i.data.size>0&&re.current.push(i.data)},s=()=>e(void 0,void 0,void 0,function*(){const i=new Blob(re.current,{type:ei()}),{waveData:e,duration:o}=yield ti(i),s={src:URL.createObjectURL(i),duration:o,blob:i,waveData:e};Wi([...Hi,s]),ne.current=null,te.current=null,re.current=[],ce.current=null,ee(!1),se(null)});return i&&(i.addEventListener("dataavailable",o),i.addEventListener("stop",s)),()=>{i&&(i.removeEventListener("dataavailable",o),i.removeEventListener("stop",s)),Oe()}},[ne.current]),a(me,()=>{je(!1)}),a(xe,()=>{ge(!1)});const ze=m(!li&&le,{from:{opacity:0,y:10},enter:{opacity:1,y:0},leave:{opacity:0,y:10},config:{duration:100,ease:"easeOut"}}),qe=m(!li&&ue,{from:{opacity:0,y:10},enter:{opacity:1,y:0},leave:{opacity:0,y:10},config:{duration:100,ease:"easeOut"}});return o(p,{$active:Qi,$dragActive:Yi,$disabled:li,$textAreaDisabled:xi,$voiceRecording:ie,className:di,onClick:Te,onDragEnter:()=>Zi(!0),onDragLeave:()=>Zi(!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 we([...i.dataTransfer.files]),Zi(!1),!1}),children:s(l,{children:[(!fi||!!Ui)&&s(j,{ref:xe,children:[o(x,{$disabled:li,onClick:i=>{i.stopPropagation(),ge(!ue)},children:o(oi,{fill:qi.colors.base.white})}),qe((e,n)=>n&&s(u,{style:e,children:[!fi&&s(g,{children:[s(h,{$disabled:Mi.length>=yi||li||vi,onClick:Ae,children:[o(si,{size:18,fill:qi.colors.base.white}),o(_,{variant:"body-m-medium",children:ki})]}),o(b,{type:"file",accept:wi,multiple:!0,disabled:Mi.length>=yi||li||vi,onChange:Ce},Mi.length)]}),!fi&&!!Ui&&o(y,{}),null==Ui?void 0:Ui.map(e=>{var{onClick:s}=e,n=i(e,["onClick"]);return o(f,Object.assign({},n,{onClick:()=>{null==s||s(),ge(!1)}}))})]})),Pi]}),s(v,{onClick:Te,children:[ie&&null!==oe&&s(w,{children:[o(k,{}),o(C,{children:Y(oe)})]}),Mi.length>0&&o(D,{children:Mi.map(i=>{let e;return e=i.previewUrl&&(i.name.match(/.png$/i)||i.name.match(/.jpg$/i)||i.name.match(/.jpeg$/i))?o(B,{src:i.previewUrl}):i.name.match(/.txt$/i)?o(M,{}):i.name.match(/.docx$/i)?o(G,{}):i.name.match(/.xlsx$/i)?o(H,{}):i.name.match(/.pdf$/i)?o(N,{}):o(ii,{}),e=o(W,{size:18,children:e}),o(F,{start:e,onDelete:De.bind(null,i),children:i.name.length>20?`...${i.name.slice(-20)}`:i.name},i.name)})}),Hi.length>1&&o($,{children:bi}),Hi.length>0&&o(T,{children:Hi.map(i=>s(A,{children:[o(ni,{variant:"input",height:24,src:i.src,duration:i.duration,waveData:i.waveData,disableTranscription:!0}),o(E,{onClick:Pe.bind(null,i)})]},i.src))}),(!xi||xi&&mi&&Mi.length!==yi||xi&&Bi)&&o(O,Object.assign({$disabled:li},zi,{ref:Ri,value:Bi,placeholder:mi,disabled:li||xi,style:Object.assign(Object.assign({},zi.style),{height:Vi}),onFocus:ye,onBlur:fe,onChange:ve,onPaste:ke}))]}),s(S,{children:[!!gi&&!!hi&&s(L,{ref:me,children:[o(K,{onClick:i=>{i.stopPropagation(),je(!le)},disabled:li}),ze((i,e)=>e&&s(P,{style:i,children:[o(U,{active:!ae,onClick:he,children:gi}),o(U,{active:ae,onClick:be,children:hi})]},"alternative-key-modal"))]}),ie&&o(n,{children:_i?o(z,{onClick:Ke}):o(q,{onClick:Le})}),Di&&o(R,{$isRecording:ie,disabled:li||ji,onClick:ie?Se:Ee,"data-test":"submit-message"}),o(V,Object.assign({disabled:li||ji||ie,onClick:Fe},qi.bright&&{iconFill:qi.default.colors.base.black},{"data-test":"submit-message",children:o(I,{})}))]})]})})};export{ci as InputMessage};
1
+ import{__rest as i,__awaiter as o}from"tslib";import{jsx as e,jsxs as s}from"react/jsx-runtime";import{useState as n,useRef as t,useCallback as r}from"react";import{useTransition as c}from"@react-spring/web";import{InputMessageStyled as d,InputMessageContent as m,InputMessageConfigure as p,InputMessageConfigureButton as a,InputMessageConfigureMenu as l,InputMessageUploadFile as j,InputMessageUploadFileLabel as x,InputMessageUploadFileInput as g,InputMessageMenuHr as u,InputMessageMenuOption as h,InputMessageMain as b,InputMessageVoiceRecord as y,InputMessageVoiceRecordDot as f,InputMessageVoiceRecordTimeText as v,InputMessageConcatenateWarning as k,InputMessageVoiceFiles as w,InputMessageVoiceTrack as F,InputMessageVoiceFileDelete as C,InputMessageTextArea as D,InputMessageButtons as A,InputMessageAltKeyStyled as V,InputMessageAltKeyButton as K,InputMessageAltKeyModalStyled as S,InputMessageAltKeyModalOption as T,InputMessageVoicePlayButton as O,InputMessageVoicePauseButton as P,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{useOnClickOutside as B}from"../../utils/useOnClickOutside.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-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"../../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"../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"../../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{Plus2Icon as E}from"../../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 L}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/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"../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 as U}from"../typography/index.js";import"../message/search-results/styled.js";import"../message/video/styled.js";import{useVoice as N}from"./use-voice.js";import{useFiles as G}from"./use-files.js";import{useInput as H}from"./use-input.js";import{InputMessageFiles as I}from"./input-files.js";import{useTheme as _}from"../../theme/hook.js";const J=J=>{var{className:Q,placeholder:W,message:X,files:Y,disabled:Z=!1,sendDisabled:ii=!1,textAreaDisabled:oi=!1,altKeyDefaultValue:ei=!1,defaultKeySendText:si,alternativeKeySendText:ni,concatenateText:ti,uploadFileLimit:ri=5,hideUploadFile:ci=!1,uploadFileDisabled:di=!1,uploadFileAccept:mi,uploadFileText:pi,autoFocus:ai=!0,voice:li=!1,onSetAlternativeKeyValue:ji,onChange:xi,onFilesChange:gi,onVoiceFilesChange:ui,onTextAreaChange:hi,onSend:bi,onFocus:yi,onBlur:fi,emitError:vi,actions:ki,configureOptions:wi}=J,Fi=i(J,["className","placeholder","message","files","disabled","sendDisabled","textAreaDisabled","altKeyDefaultValue","defaultKeySendText","alternativeKeySendText","concatenateText","uploadFileLimit","hideUploadFile","uploadFileDisabled","uploadFileAccept","uploadFileText","autoFocus","voice","onSetAlternativeKeyValue","onChange","onFilesChange","onVoiceFilesChange","onTextAreaChange","onSend","onFocus","onBlur","emitError","actions","configureOptions"]);const Ci=_(),[Di,Ai]=n(!1),Vi=t(null),[Ki,Si]=n(!1),{files:Ti,setFiles:Oi,handleFilePaste:Pi,handleFileInputChange:Ri,handleSideUploadFiles:$i,handleDeleteFile:qi}=G({uploadFileAccept:mi,uploadFileLimit:ri,uploadFileDisabled:di,initialFiles:Y,emitError:vi,onFilesChange:gi,onUploadFileChange:()=>Si(!1)}),{textareaRef:Bi,altKeyButtonRef:zi,isFocus:Ei,isAltKey:Li,height:Mi,message:Ui,isAltKeyModalShown:Ni,setHeight:Gi,setMessage:Hi,setAltKeyModalShown:Ii,handleDefaultKey:_i,handleAlternativeKey:Ji,handleFocus:Qi,handleBlur:Wi,handleClick:Xi,handleChange:Yi}=H({initialMessage:X,disabled:Z,autoFocus:ai,altKeyDefaultValue:ei,onChange:xi,onSend:()=>null==bi?void 0:bi(Ui,Ti),onTextAreaChange:hi,onSetAlternativeKeyValue:ji,onFocus:yi,onBlur:fi}),{voiceFiles:Zi,isVoiceRecording:io,isVoicePaused:oo,voiceRecordingTime:eo,setVoiceFiles:so,handleVoiceRecordStart:no,handleVoiceRecordEnd:to,handleVoiceResume:ro,handleVoicePause:co,handleVoiceFileDelete:mo}=N({onVoiceFilesChange:ui}),po=r(i=>{i.stopPropagation(),null==bi||bi(Ui,Ti),null==Hi||Hi(""),null==Oi||Oi([]),null==so||so([]),Gi("calc(var(--bothub-scale, 1) * 22px)")},[Ui,Ti,bi,Hi,Oi,so]);B(zi,()=>{Ii(!1)}),B(Vi,()=>{Si(!1)});const ao=c(!Z&&Ni,{from:{opacity:0,y:10},enter:{opacity:1,y:0},leave:{opacity:0,y:10},config:{duration:100,ease:"easeOut"}}),lo=c(!Z&&Ki,{from:{opacity:0,y:10},enter:{opacity:1,y:0},leave:{opacity:0,y:10},config:{duration:100,ease:"easeOut"}});return e(d,{$active:Ei,$dragActive:Di,$disabled:Z,$textAreaDisabled:oi,$voiceRecording:io,className:Q,onClick:Xi,onDragEnter:()=>Ai(!0),onDragLeave:()=>Ai(!1),onDragOver:i=>(i.stopPropagation(),i.preventDefault(),!1),onDrop:i=>o(void 0,void 0,void 0,function*(){if(i.dataTransfer.files.length>0)return i.stopPropagation(),i.preventDefault(),yield $i([...i.dataTransfer.files]),Ai(!1),!1}),children:s(m,{children:[(!ci||!!wi)&&s(p,{ref:Vi,children:[e(a,{$disabled:Z,onClick:i=>{i.stopPropagation(),Si(!Ki)},children:e(E,{fill:Ci.colors.base.white})}),lo((o,n)=>n&&s(l,{style:o,children:[!ci&&s(j,{children:[s(x,{$disabled:Ti.length>=ri||Z||di,onClick:i=>i.stopPropagation(),children:[e(L,{size:18,fill:Ci.colors.base.white}),e(U,{variant:"body-m-medium",children:pi})]}),e(g,{type:"file",accept:mi,multiple:!0,disabled:Ti.length>=ri||Z||di,onChange:Ri},Ti.length)]}),!ci&&!!wi&&e(u,{}),null==wi?void 0:wi.map(o=>{var{onClick:s}=o,n=i(o,["onClick"]);return e(h,Object.assign({},n,{onClick:()=>{null==s||s(),Si(!1)}}))})]})),ki]}),s(b,{onClick:Xi,children:[io&&null!==eo&&s(y,{children:[e(f,{}),e(v,{children:z(eo)})]}),e(I,{files:Ti,handleDeleteFile:qi}),Zi.length>1&&e(k,{children:ti}),Zi.length>0&&e(w,{children:Zi.map(i=>s(F,{children:[e(M,{variant:"input",height:24,src:i.src,duration:i.duration,waveData:i.waveData,disableTranscription:!0}),e(C,{onClick:mo.bind(null,i)})]},i.src))}),(!oi||oi&&W&&Ti.length!==ri||oi&&Ui)&&e(D,Object.assign({$disabled:Z},Fi,{ref:Bi,value:Ui,placeholder:W,disabled:Z||oi,style:Object.assign(Object.assign({},Fi.style),{height:Mi}),onFocus:Qi,onBlur:Wi,onChange:Yi,onPaste:Pi}))]}),s(A,{children:[!!si&&!!ni&&s(V,{ref:zi,children:[e(K,{onClick:i=>{i.stopPropagation(),Ii(!Ni)},disabled:Z}),ao((i,o)=>o&&s(S,{style:i,children:[e(T,{active:!Li,onClick:_i,children:si}),e(T,{active:Li,onClick:Ji,children:ni})]},"alternative-key-modal"))]}),io&&(oo?e(O,{onClick:ro}):e(P,{onClick:co})),li&&e(R,{$isRecording:io,disabled:Z||ii,onClick:io?to:no,"data-test":"submit-message"}),e($,Object.assign({disabled:Z||ii||io,onClick:po},Ci.bright&&{iconFill:Ci.default.colors.base.black},{"data-test":"submit-message",children:e(q,{})}))]})]})})};export{J as InputMessage};
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { IInputMessageFile } from './types';
3
+ export interface InputMessageFilesProps {
4
+ files: IInputMessageFile[];
5
+ handleDeleteFile: (file: IInputMessageFile) => unknown;
6
+ }
7
+ export declare const InputMessageFiles: React.FC<InputMessageFilesProps>;
@@ -0,0 +1 @@
1
+ import{jsx as i}from"react/jsx-runtime";import{memo as o}from"react";import"tslib";import{IconProvider as s}from"../icon/context.js";import"../icon/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"../../theme/index.js";import"../tooltip/context.js";import{ChipImage as n}from"../chip/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/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/copy/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/check-small/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/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{PdfIcon as e}from"../../icons/pdf/index.js";import{XlsIcon as t}from"../../icons/xls/index.js";import{WordIcon as r}from"../../icons/word/index.js";import{TxtIcon as c}from"../../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{AttachFileIcon as d}from"../../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/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/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/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{InputMessageFilesStyled as m,InputMessageFile as p}from"./styled.js";const x=o(({files:o,handleDeleteFile:x})=>0===o.length?null:i(m,{children:o.map(o=>{let m;return m=o.previewUrl&&(o.name.match(/.png$/i)||o.name.match(/.jpg$/i)||o.name.match(/.jpeg$/i))?i(n,{src:o.previewUrl}):o.name.match(/.txt$/i)?i(c,{}):o.name.match(/.docx$/i)?i(r,{}):o.name.match(/.xlsx$/i)?i(t,{}):o.name.match(/.pdf$/i)?i(e,{}):i(d,{}),m=i(s,{size:18,children:m}),i(p,{start:m,onDelete:x.bind(null,o),children:o.name.length>20?`...${o.name.slice(-20)}`:o.name},o.name)})}));export{x as InputMessageFiles};
@@ -3750,7 +3750,7 @@ export declare const InputMessageButtons: import("styled-components").IStyledCom
3750
3750
  onTransitionStart?: React.TransitionEventHandler<HTMLDivElement> | undefined;
3751
3751
  onTransitionStartCapture?: React.TransitionEventHandler<HTMLDivElement> | undefined;
3752
3752
  }>;
3753
- export declare const InputMessageFiles: import("styled-components").IStyledComponent<"web", {
3753
+ export declare const InputMessageFilesStyled: import("styled-components").IStyledComponent<"web", {
3754
3754
  ref?: React.Ref<HTMLDivElement> | undefined;
3755
3755
  key?: React.Key | null | undefined;
3756
3756
  defaultChecked?: boolean | undefined | undefined;
@@ -7563,7 +7563,7 @@ export declare const InputMessageVoiceRecordTimeText: import("styled-components"
7563
7563
  onTransitionStartCapture?: React.TransitionEventHandler<HTMLSpanElement> | undefined;
7564
7564
  ref?: React.Ref<HTMLSpanElement> | undefined;
7565
7565
  }>;
7566
- export declare const InputMessageToggleSendStyled: import("styled-components").IStyledComponent<"web", {
7566
+ export declare const InputMessageAltKeyStyled: import("styled-components").IStyledComponent<"web", {
7567
7567
  ref?: React.Ref<HTMLDivElement> | undefined;
7568
7568
  key?: React.Key | null | undefined;
7569
7569
  defaultChecked?: boolean | undefined | undefined;
@@ -7847,7 +7847,7 @@ export declare const InputMessageToggleSendStyled: import("styled-components").I
7847
7847
  onTransitionStart?: React.TransitionEventHandler<HTMLDivElement> | undefined;
7848
7848
  onTransitionStartCapture?: React.TransitionEventHandler<HTMLDivElement> | undefined;
7849
7849
  }>;
7850
- export declare const InputMessageToggleSendButton: import("styled-components").IStyledComponent<"web", {
7850
+ export declare const InputMessageAltKeyButton: import("styled-components").IStyledComponent<"web", {
7851
7851
  children?: React.ReactNode;
7852
7852
  value?: string | number | readonly string[] | undefined;
7853
7853
  hidden?: boolean | undefined | undefined;
@@ -8150,7 +8150,7 @@ export declare const InputMessageToggleSendButton: import("styled-components").I
8150
8150
  disableHoverColor?: boolean | undefined;
8151
8151
  ref?: React.Ref<HTMLButtonElement | null> | undefined;
8152
8152
  }>;
8153
- export declare const InputMessageToggleSendModalStyled: import("styled-components").IStyledComponent<"web", {
8153
+ export declare const InputMessageAltKeyModalStyled: import("styled-components").IStyledComponent<"web", {
8154
8154
  ref?: React.Ref<HTMLDivElement> | undefined;
8155
8155
  key?: React.Key | null | undefined;
8156
8156
  defaultChecked?: boolean | import("@react-spring/shared").FluidValue<boolean, any> | undefined;
@@ -9283,6 +9283,6 @@ export declare const InputMessageToggleSendModalStyled: import("styled-component
9283
9283
  scrollLeft?: number | import("@react-spring/shared").FluidValue<number, any> | undefined;
9284
9284
  viewBox?: string | import("@react-spring/shared").FluidValue<string, any> | undefined;
9285
9285
  }>;
9286
- export declare const InputMessageToggleSendModalOption: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {
9286
+ export declare const InputMessageAltKeyModalOption: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {
9287
9287
  active: boolean;
9288
9288
  }>>;
@@ -1,10 +1,10 @@
1
- import{jsxs as e,Fragment as t,jsx as o}from"react/jsx-runtime";import{styled as i,css as a,keyframes as r}from"styled-components";import{animated as n}from"@react-spring/web";import{Button as s}from"../button/index.js";import{EnterIcon as l}from"../../icons/enter/index.js";import{SendIcon as d}from"../../icons/send/index.js";import{CloseIcon as c}from"../../icons/close/index.js";import{Chip as p}from"../chip/index.js";import{VoiceIcon as m}from"../../icons/voice/index.js";import{PauseIcon as g}from"../../icons/pause/index.js";import{PlayIcon as u}from"../../icons/play/index.js";import{ExclamationIcon as y}from"../../icons/exclamation/index.js";import"tslib";import{IconProvider as h}from"../icon/context.js";import"../icon/styled.js";import"react";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{Typography as f}from"../typography/index.js";import{adaptive as x}from"../../adaptive/index.js";import"unified";import"remark-parse";import"remark-gfm";import"mdast-util-to-markdown";import{isBright as b}from"../../utils/colors/isBright.js";import"../../utils/colors/calculateGrayScale.js";import"../../utils/colors/calculateAccentColors.js";const w=i.div.withConfig({displayName:"styled__InputMessageStyled",componentId:"sc-4jukeb-0"})(["display:flex;flex-direction:column;gap:14px;position:relative;border-radius:10px;border:1px solid ",";background:",";width:100%;padding:14px 20px;max-width:",";box-sizing:border-box;overflow:visible;cursor:",";outline:none;"," ",""],({theme:e,$active:t,$disabled:o})=>o?e.colors.grayScale.gray2:t?e.colors.accent.primary:e.colors.grayScale.gray2,({theme:e,$disabled:t})=>t?e.colors.grayScale.gray3:"light"===e.mode?e.default.colors.base.white:e.colors.grayScale.gray4,({theme:e})=>e.dashboard.chat.containerWidth,({$disabled:e,$textAreaDisabled:t,$voiceRecording:o})=>e?"not-allowed":t||o?"default":"text",({$disabled:e})=>!e&&a`
1
+ import{jsxs as e,Fragment as t,jsx as o}from"react/jsx-runtime";import{styled as i,css as a,keyframes as r}from"styled-components";import{animated as s}from"@react-spring/web";import{Button as n}from"../button/index.js";import{EnterIcon as l}from"../../icons/enter/index.js";import{SendIcon as d}from"../../icons/send/index.js";import{CloseIcon as c}from"../../icons/close/index.js";import{Chip as p}from"../chip/index.js";import{VoiceIcon as m}from"../../icons/voice/index.js";import{PauseIcon as g}from"../../icons/pause/index.js";import{PlayIcon as u}from"../../icons/play/index.js";import{ExclamationIcon as y}from"../../icons/exclamation/index.js";import"tslib";import{IconProvider as h}from"../icon/context.js";import"../icon/styled.js";import"react";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{Typography as f}from"../typography/index.js";import{adaptive as x}from"../../adaptive/index.js";import"unified";import"remark-parse";import"remark-gfm";import"mdast-util-to-markdown";import{isBright as b}from"../../utils/colors/isBright.js";import"../../utils/colors/calculateGrayScale.js";import"../../utils/colors/calculateAccentColors.js";const w=i.div.withConfig({displayName:"styled__InputMessageStyled",componentId:"sc-4jukeb-0"})(["display:flex;flex-direction:column;gap:14px;position:relative;border-radius:10px;border:1px solid ",";background:",";width:100%;padding:14px 20px;max-width:",";box-sizing:border-box;overflow:visible;cursor:",";outline:none;"," ",""],({theme:e,$active:t,$disabled:o})=>o?e.colors.grayScale.gray2:t?e.colors.accent.primary:e.colors.grayScale.gray2,({theme:e,$disabled:t})=>t?e.colors.grayScale.gray3:"light"===e.mode?e.default.colors.base.white:e.colors.grayScale.gray4,({theme:e})=>e.dashboard.chat.containerWidth,({$disabled:e,$textAreaDisabled:t,$voiceRecording:o})=>e?"not-allowed":t||o?"default":"text",({$disabled:e})=>!e&&a`
2
2
  &:hover {
3
3
  border-color: ${({theme:e})=>e.colors.accent.primary};
4
4
  }
5
5
  `,({$dragActive:e})=>e&&"\n opacity: 0.85;\n "),I=i.div.withConfig({displayName:"styled__InputMessageContent",componentId:"sc-4jukeb-1"})(["width:100%;gap:14px;display:grid;grid-template-areas:'input input input' 'configure . buttons';grid-auto-rows:min-content;grid-auto-columns:min-content auto min-content;align-items:center;"]),k=i.div.withConfig({displayName:"styled__InputMessageConfigure",componentId:"sc-4jukeb-2"})(["display:flex;align-items:center;gap:14px;position:relative;width:fit-content;height:100%;user-select:none;grid-area:configure;"]),_=i.button.withConfig({displayName:"styled__InputMessageConfigureButton",componentId:"sc-4jukeb-3"})(["all:unset;display:flex;align-items:center;padding:10px;border-radius:8px;background-color:",";transition:background-color 300ms ease-in-out,transform 50ms ease-in;&:hover{cursor:pointer;background-color:",";}&:active{transform:scale(0.98) translateY(1px);}",""],({theme:e})=>"dark"===e.mode?e.colors.grayScale.gray4:e.colors.base.black,({theme:e})=>e.colors.grayScale.gray3,({theme:e,$disabled:t})=>t&&a`
6
6
  background-color: ${e.colors.grayScale.gray2} !important;
7
- `),j=i(n.div).withConfig({displayName:"styled__InputMessageConfigureMenu",componentId:"sc-4jukeb-4"})(["position:absolute;bottom:calc(100% + 8px);left:0;width:max-content;display:flex;justify-content:center;flex-direction:column;padding:8px;border-radius:10px;border:1px solid ",";background-color:",";"],({theme:e})=>e.colors.grayScale.gray2,({theme:e})=>e.colors.grayScale.gray4),v=a`
7
+ `),j=i(s.div).withConfig({displayName:"styled__InputMessageConfigureMenu",componentId:"sc-4jukeb-4"})(["position:absolute;bottom:calc(100% + 8px);left:0;width:max-content;display:flex;justify-content:center;flex-direction:column;padding:8px;border-radius:10px;border:1px solid ",";background-color:",";"],({theme:e})=>e.colors.grayScale.gray2,({theme:e})=>e.colors.grayScale.gray4),v=a`
8
8
  all: unset;
9
9
  display: flex;
10
10
  flex: 1;
@@ -22,13 +22,13 @@ import{jsxs as e,Fragment as t,jsx as o}from"react/jsx-runtime";import{styled as
22
22
  &:active {
23
23
  transform: scale(0.98) translateY(1px);
24
24
  }
25
- `),$=i.hr.withConfig({displayName:"styled__InputMessageMenuHr",componentId:"sc-4jukeb-9"})(["all:unset;margin-block:8px;height:1px;width:100%;background-color:",";"],({theme:e})=>e.colors.grayScale.gray2),F=i.div.withConfig({displayName:"styled__InputMessageMain",componentId:"sc-4jukeb-10"})(["display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:14px;width:100%;grid-area:input;"]),z=i.div.withConfig({displayName:"styled__InputMessageButtons",componentId:"sc-4jukeb-11"})(["display:flex;gap:10px;align-items:center;grid-area:buttons;"]),V=i.div.withConfig({displayName:"styled__InputMessageFiles",componentId:"sc-4jukeb-12"})(["display:flex;flex-wrap:wrap;gap:10px 14px;cursor:default;max-height:200px;overflow-y:auto;"]),B=i(p).attrs({variant:"input"}).withConfig({displayName:"styled__InputMessageFile",componentId:"sc-4jukeb-13"})([""]),T=i(V).withConfig({displayName:"styled__InputMessageVoiceFiles",componentId:"sc-4jukeb-14"})(["width:100%;"]),R=i.div.withConfig({displayName:"styled__InputMessageVoiceTrack",componentId:"sc-4jukeb-15"})(["display:flex;gap:14px;align-items:center;"]),U=i(f).attrs(({theme:i,children:a})=>({variant:"body-m-regular",children:e(t,{children:[o(y,{fill:i.colors.accent.primaryLight}),a]})})).withConfig({displayName:"styled__InputMessageConcatenateWarning",componentId:"sc-4jukeb-16"})(["display:flex;align-items:center;gap:8px;color:",";"],({theme:e})=>e.colors.accent.primaryLight),A=i(s).attrs({variant:"text",children:o(c,{}),disableHoverColor:!0}).withConfig({displayName:"styled__InputMessageVoiceFileDelete",componentId:"sc-4jukeb-17"})(["&:hover{svg path{fill:",";}}"],({theme:e})=>e.colors.accent.primary),Y=i.textarea.withConfig({displayName:"styled__InputMessageTextArea",componentId:"sc-4jukeb-18"})(["display:flex;height:auto;width:100%;min-height:22px;max-height:270px;background:none;outline:none;resize:none;border:none;color:",";flex-shrink:0;overflow:auto;scrollbar-width:none;padding:0px;&::placeholder{color:",";}&::-webkit-scrollbar{display:none;}"," font-weight:400;font-size:18px;line-height:23.4px;@media (max-width:","){font-size:16px;line-height:22px;}"],({theme:e,$disabled:t})=>t?e.colors.grayScale.gray1:e.colors.base.white,({theme:e})=>e.colors.grayScale.gray1,({$disabled:e})=>e&&a`
25
+ `),$=i.hr.withConfig({displayName:"styled__InputMessageMenuHr",componentId:"sc-4jukeb-9"})(["all:unset;margin-block:8px;height:1px;width:100%;background-color:",";"],({theme:e})=>e.colors.grayScale.gray2),F=i.div.withConfig({displayName:"styled__InputMessageMain",componentId:"sc-4jukeb-10"})(["display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:14px;width:100%;grid-area:input;"]),z=i.div.withConfig({displayName:"styled__InputMessageButtons",componentId:"sc-4jukeb-11"})(["display:flex;gap:10px;align-items:center;grid-area:buttons;"]),V=i.div.withConfig({displayName:"styled__InputMessageFilesStyled",componentId:"sc-4jukeb-12"})(["display:flex;flex-wrap:wrap;gap:10px 14px;cursor:default;max-height:200px;overflow-y:auto;"]),A=i(p).attrs({variant:"input"}).withConfig({displayName:"styled__InputMessageFile",componentId:"sc-4jukeb-13"})([""]),B=i(V).withConfig({displayName:"styled__InputMessageVoiceFiles",componentId:"sc-4jukeb-14"})(["width:100%;"]),R=i.div.withConfig({displayName:"styled__InputMessageVoiceTrack",componentId:"sc-4jukeb-15"})(["display:flex;gap:14px;align-items:center;"]),U=i(f).attrs(({theme:i,children:a})=>({variant:"body-m-regular",children:e(t,{children:[o(y,{fill:i.colors.accent.primaryLight}),a]})})).withConfig({displayName:"styled__InputMessageConcatenateWarning",componentId:"sc-4jukeb-16"})(["display:flex;align-items:center;gap:8px;color:",";"],({theme:e})=>e.colors.accent.primaryLight),K=i(n).attrs({variant:"text",children:o(c,{}),disableHoverColor:!0}).withConfig({displayName:"styled__InputMessageVoiceFileDelete",componentId:"sc-4jukeb-17"})(["&:hover{svg path{fill:",";}}"],({theme:e})=>e.colors.accent.primary),T=i.textarea.withConfig({displayName:"styled__InputMessageTextArea",componentId:"sc-4jukeb-18"})(["display:flex;height:auto;width:100%;min-height:22px;max-height:270px;background:none;outline:none;resize:none;border:none;color:",";flex-shrink:0;overflow:auto;scrollbar-width:none;padding:0px;&::placeholder{color:",";}&::-webkit-scrollbar{display:none;}"," font-weight:400;font-size:18px;line-height:23.4px;@media (max-width:","){font-size:16px;line-height:22px;}"],({theme:e,$disabled:t})=>t?e.colors.grayScale.gray1:e.colors.base.white,({theme:e})=>e.colors.grayScale.gray1,({$disabled:e})=>e&&a`
26
26
  cursor: not-allowed;
27
- `,({theme:e})=>e.mobile.maxWidth),D=i(s).withConfig({displayName:"styled__InputMessageSendButton",componentId:"sc-4jukeb-19"})(["flex-shrink:0;svg{pointer-events:none;}"]),H=i(s).attrs({variant:"text",children:o(g,{})}).withConfig({displayName:"styled__InputMessageVoicePauseButton",componentId:"sc-4jukeb-20"})(["padding:10px;margin-left:10px;"]),L=i(H).attrs({children:o(u,{})}).withConfig({displayName:"styled__InputMessageVoicePlayButton",componentId:"sc-4jukeb-21"})([""]),W=i(D).attrs(({theme:e,disabled:t})=>({variant:"text",startIcon:o(m,{}),iconFill:t?e.colors.grayScale.gray1:b(e.colors.grayScale.gray4)?e.default.colors.base.black:e.default.colors.base.white,disableHoverColor:!0})).withConfig({displayName:"styled__InputMessageVoiceButton",componentId:"sc-4jukeb-22"})(["margin-inline:10px;padding:10px;border-radius:8px;background-color:",";position:relative;z-index:0;"," &:before{content:'';height:140%;width:140%;position:absolute;top:-20%;left:-20%;background-color:",";opacity:",";filter:blur(18px);z-index:-1;transition:opacity 300ms ease-out;}"],({theme:e,$isRecording:t})=>t?e.colors.critic:"transparent",({theme:e,$isRecording:t})=>t&&a`
27
+ `,({theme:e})=>e.mobile.maxWidth),Y=i(n).withConfig({displayName:"styled__InputMessageSendButton",componentId:"sc-4jukeb-19"})(["flex-shrink:0;svg{pointer-events:none;}"]),D=i(n).attrs({variant:"text",children:o(g,{})}).withConfig({displayName:"styled__InputMessageVoicePauseButton",componentId:"sc-4jukeb-20"})(["padding:10px;margin-left:10px;"]),H=i(D).attrs({children:o(u,{})}).withConfig({displayName:"styled__InputMessageVoicePlayButton",componentId:"sc-4jukeb-21"})([""]),L=i(Y).attrs(({theme:e,disabled:t})=>({variant:"text",startIcon:o(m,{}),iconFill:t?e.colors.grayScale.gray1:b(e.colors.grayScale.gray4)?e.default.colors.base.black:e.default.colors.base.white,disableHoverColor:!0})).withConfig({displayName:"styled__InputMessageVoiceButton",componentId:"sc-4jukeb-22"})(["margin-inline:10px;padding:10px;border-radius:8px;background-color:",";position:relative;z-index:0;"," &:before{content:'';height:140%;width:140%;position:absolute;top:-20%;left:-20%;background-color:",";opacity:",";filter:blur(18px);z-index:-1;transition:opacity 300ms ease-out;}"],({theme:e,$isRecording:t})=>t?e.colors.critic:"transparent",({theme:e,$isRecording:t})=>t&&a`
28
28
  svg path {
29
29
  fill: ${e.default.colors.base.white} !important;
30
30
  }
31
- `,({theme:e})=>e.colors.critic,({$isRecording:e})=>e?1:0),O=d,P=i.div.withConfig({displayName:"styled__InputMessageVoiceRecord",componentId:"sc-4jukeb-23"})(["display:flex;align-items:center;gap:8px;"]),G=i.span.withConfig({displayName:"styled__InputMessageVoiceRecordDot",componentId:"sc-4jukeb-24"})(["display:inline-flex;width:8px;height:8px;background:",";border-radius:50%;animation:"," 1s ease-in-out infinite;"],({theme:e})=>e.colors.critic,()=>r`
31
+ `,({theme:e})=>e.colors.critic,({$isRecording:e})=>e?1:0),W=d,O=i.div.withConfig({displayName:"styled__InputMessageVoiceRecord",componentId:"sc-4jukeb-23"})(["display:flex;align-items:center;gap:8px;"]),P=i.span.withConfig({displayName:"styled__InputMessageVoiceRecordDot",componentId:"sc-4jukeb-24"})(["display:inline-flex;width:8px;height:8px;background:",";border-radius:50%;animation:"," 1s ease-in-out infinite;"],({theme:e})=>e.colors.critic,()=>r`
32
32
  from {
33
33
  opacity: 1;
34
34
  }
@@ -38,8 +38,8 @@ import{jsxs as e,Fragment as t,jsx as o}from"react/jsx-runtime";import{styled as
38
38
  to {
39
39
  opacity: 1;
40
40
  }
41
- `),q=i(f).attrs({variant:"body-s-medium"}).withConfig({displayName:"styled__InputMessageVoiceRecordTimeText",componentId:"sc-4jukeb-25"})(["cursor:default;"]),E=i.div.withConfig({displayName:"styled__InputMessageToggleSendStyled",componentId:"sc-4jukeb-26"})(["position:relative;width:fit-content;height:fit-content;",""],x({tablet:a`
41
+ `),G=i(f).attrs({variant:"body-s-medium"}).withConfig({displayName:"styled__InputMessageVoiceRecordTimeText",componentId:"sc-4jukeb-25"})(["cursor:default;"]),q=i.div.withConfig({displayName:"styled__InputMessageAltKeyStyled",componentId:"sc-4jukeb-26"})(["position:relative;width:fit-content;height:fit-content;",""],x({tablet:a`
42
42
  display: none;
43
43
  `,mobile:a`
44
44
  display: none;
45
- `})),J=i(s).attrs({variant:"text",startIcon:o(l,{}),iconSize:24}).withConfig({displayName:"styled__InputMessageToggleSendButton",componentId:"sc-4jukeb-27"})(["svg{g path{fill:"," !important;}}display:flex;&:hover{svg{path{fill:"," !important;}}}"],({theme:e})=>e.colors.grayScale.gray3,({theme:e})=>"dark"===e.mode?e.colors.grayScale.gray2:e.colors.grayScale.gray1),K=i(n.div).withConfig({displayName:"styled__InputMessageToggleSendModalStyled",componentId:"sc-4jukeb-28"})(["display:flex;flex-direction:column;gap:6px;max-height:fit-content;width:max-content;max-width:60vw;padding:6px;position:absolute;bottom:calc(100% + 10px);right:0;border-radius:10px;border:1px "," solid;background-color:",";z-index:50;user-select:none;-moz-user-select:none;-webkit-user-select:none;"],({theme:e})=>e.colors.grayScale.gray2,({theme:e})=>"dark"===e.mode?e.colors.grayScale.gray4:e.default.colors.base.white),Q=i.button.withConfig({displayName:"styled__InputMessageToggleSendModalOption",componentId:"sc-4jukeb-29"})(["all:unset;margin:0;padding:12px;border-radius:8px;background-color:",";cursor:pointer;transition:opacity 0.1s ease-in-out,transform 0.1s ease-in-out,filter 0.1s ease-in-out;&:hover{filter:",";transition:filter 100ms ease-in-out;}&:active{transform:translateY(1px);}"],({theme:e,active:t})=>"dark"===e.mode?t?e.colors.grayScale.gray3:e.colors.grayScale.gray4:t?e.colors.grayScale.gray3:e.default.colors.base.white,({theme:e})=>"dark"===e.mode?"brightness(120%)":"brightness(80%)");export{z as InputMessageButtons,U as InputMessageConcatenateWarning,k as InputMessageConfigure,_ as InputMessageConfigureButton,j as InputMessageConfigureMenu,I as InputMessageContent,B as InputMessageFile,V as InputMessageFiles,F as InputMessageMain,$ as InputMessageMenuHr,C as InputMessageMenuOption,D as InputMessageSendButton,O as InputMessageSendIcon,w as InputMessageStyled,Y as InputMessageTextArea,J as InputMessageToggleSendButton,Q as InputMessageToggleSendModalOption,K as InputMessageToggleSendModalStyled,E as InputMessageToggleSendStyled,M as InputMessageUploadFile,S as InputMessageUploadFileInput,N as InputMessageUploadFileLabel,W as InputMessageVoiceButton,A as InputMessageVoiceFileDelete,T as InputMessageVoiceFiles,H as InputMessageVoicePauseButton,L as InputMessageVoicePlayButton,P as InputMessageVoiceRecord,G as InputMessageVoiceRecordDot,q as InputMessageVoiceRecordTimeText,R as InputMessageVoiceTrack};
45
+ `})),E=i(n).attrs({variant:"text",startIcon:o(l,{}),iconSize:24}).withConfig({displayName:"styled__InputMessageAltKeyButton",componentId:"sc-4jukeb-27"})(["svg{g path{fill:"," !important;}}display:flex;&:hover{svg{path{fill:"," !important;}}}"],({theme:e})=>e.colors.grayScale.gray3,({theme:e})=>"dark"===e.mode?e.colors.grayScale.gray2:e.colors.grayScale.gray1),J=i(s.div).withConfig({displayName:"styled__InputMessageAltKeyModalStyled",componentId:"sc-4jukeb-28"})(["display:flex;flex-direction:column;gap:6px;max-height:fit-content;width:max-content;max-width:60vw;padding:6px;position:absolute;bottom:calc(100% + 10px);right:0;border-radius:10px;border:1px "," solid;background-color:",";z-index:50;user-select:none;-moz-user-select:none;-webkit-user-select:none;"],({theme:e})=>e.colors.grayScale.gray2,({theme:e})=>"dark"===e.mode?e.colors.grayScale.gray4:e.default.colors.base.white),Q=i.button.withConfig({displayName:"styled__InputMessageAltKeyModalOption",componentId:"sc-4jukeb-29"})(["all:unset;margin:0;padding:12px;border-radius:8px;background-color:",";cursor:pointer;transition:opacity 0.1s ease-in-out,transform 0.1s ease-in-out,filter 0.1s ease-in-out;&:hover{filter:",";transition:filter 100ms ease-in-out;}&:active{transform:translateY(1px);}"],({theme:e,active:t})=>"dark"===e.mode?t?e.colors.grayScale.gray3:e.colors.grayScale.gray4:t?e.colors.grayScale.gray3:e.default.colors.base.white,({theme:e})=>"dark"===e.mode?"brightness(120%)":"brightness(80%)");export{E as InputMessageAltKeyButton,Q as InputMessageAltKeyModalOption,J as InputMessageAltKeyModalStyled,q as InputMessageAltKeyStyled,z as InputMessageButtons,U as InputMessageConcatenateWarning,k as InputMessageConfigure,_ as InputMessageConfigureButton,j as InputMessageConfigureMenu,I as InputMessageContent,A as InputMessageFile,V as InputMessageFilesStyled,F as InputMessageMain,$ as InputMessageMenuHr,C as InputMessageMenuOption,Y as InputMessageSendButton,W as InputMessageSendIcon,w as InputMessageStyled,T as InputMessageTextArea,M as InputMessageUploadFile,S as InputMessageUploadFileInput,N as InputMessageUploadFileLabel,L as InputMessageVoiceButton,K as InputMessageVoiceFileDelete,B as InputMessageVoiceFiles,D as InputMessageVoicePauseButton,H as InputMessageVoicePlayButton,O as InputMessageVoiceRecord,P as InputMessageVoiceRecordDot,G as InputMessageVoiceRecordTimeText,R as InputMessageVoiceTrack};
@@ -0,0 +1,22 @@
1
+ import { IInputMessageFile } from './types';
2
+ export type InputMessageErrorEvent = {
3
+ name: 'WRONG_FILES';
4
+ payload: File[];
5
+ };
6
+ export interface UseFilesProps {
7
+ initialFiles?: IInputMessageFile[];
8
+ uploadFileAccept?: string;
9
+ uploadFileLimit: number;
10
+ uploadFileDisabled?: boolean;
11
+ emitError?: (e: InputMessageErrorEvent) => unknown;
12
+ onFilesChange?: (files: IInputMessageFile[]) => unknown;
13
+ onUploadFileChange?: () => unknown;
14
+ }
15
+ export declare const useFiles: ({ initialFiles, uploadFileAccept, uploadFileLimit, uploadFileDisabled, emitError, onFilesChange, onUploadFileChange, }: UseFilesProps) => {
16
+ files: IInputMessageFile[];
17
+ setFiles: ((files: IInputMessageFile[]) => unknown) | undefined;
18
+ handleSideUploadFiles: (uploadFiles: File[]) => Promise<void>;
19
+ handleFilePaste: import("react").ClipboardEventHandler<Element>;
20
+ handleFileInputChange: import("react").ChangeEventHandler<HTMLInputElement>;
21
+ handleDeleteFile: (file: IInputMessageFile) => void;
22
+ };
@@ -0,0 +1 @@
1
+ import{__awaiter as e}from"tslib";import{useState as i,useCallback as l,useEffect as n}from"react";import{getPreviewUrlForFile as t,isFileTypeAccepted as o,formatUploadFiles as a}from"./utils.js";const r=({initialFiles:r,uploadFileAccept:d,uploadFileLimit:s,uploadFileDisabled:p,emitError:u,onFilesChange:f,onUploadFileChange:m})=>{const[c,v]=Array.isArray(r)?[r,f]:i([]),h=l(i=>e(void 0,void 0,void 0,function*(){if(!i.length)return;const e=[],l=[],n=yield Promise.all(null==i?void 0:i.map(t));for(const[t,a]of i.entries()){o(a.type,d)?e.push({previewUrl:n[t],name:a.name,native:a}):l.push(a)}l.length>0&&(null==u||u({name:"WRONG_FILES",payload:l})),(null==e?void 0:e.length)>0&&(null==v||v([...c,...e].slice(0,s)))}),[d,u,s,c]),F=l(i=>e(void 0,void 0,void 0,function*(){!p&&i.clipboardData.files.length>0&&(i.preventDefault(),yield h([...i.clipboardData.files]))}),[h,p]),g=l(i=>e(void 0,void 0,void 0,function*(){if(!v||!i.target.files)return;const e=yield a([...c.map(({native:e})=>e),...i.target.files]);v(e.slice(0,s)),null==m||m()}),[c,v,s]),y=l(e=>{null==v||v(c.filter(({name:i})=>i!==e.name))},[v,c]);return n(()=>{v&&r&&v(r)},[r]),{files:c,setFiles:v,handleSideUploadFiles:h,handleFilePaste:F,handleFileInputChange:g,handleDeleteFile:y}};export{r as useFiles};
@@ -0,0 +1,30 @@
1
+ export interface UseInputProps {
2
+ initialMessage?: string;
3
+ disabled?: boolean;
4
+ autoFocus?: boolean;
5
+ altKeyDefaultValue?: boolean;
6
+ onChange?: (value: string) => unknown;
7
+ onSend?: () => unknown;
8
+ onTextAreaChange?: React.ChangeEventHandler<HTMLTextAreaElement>;
9
+ onSetAlternativeKeyValue?: (value: boolean) => unknown;
10
+ onFocus?: (e: React.FocusEvent<HTMLTextAreaElement, Element>) => unknown;
11
+ onBlur?: (e: React.FocusEvent<HTMLTextAreaElement, Element>) => unknown;
12
+ }
13
+ export declare const useInput: ({ initialMessage, disabled, autoFocus, altKeyDefaultValue, onChange, onSend, onTextAreaChange, onSetAlternativeKeyValue, onFocus, onBlur, }: UseInputProps) => {
14
+ textareaRef: import("react").RefObject<HTMLTextAreaElement | null>;
15
+ altKeyButtonRef: import("react").RefObject<HTMLDivElement | null>;
16
+ isFocus: boolean;
17
+ isAltKey: boolean;
18
+ height: string;
19
+ message: string;
20
+ isAltKeyModalShown: boolean;
21
+ setHeight: import("react").Dispatch<import("react").SetStateAction<string>>;
22
+ setMessage: ((value: string) => unknown) | undefined;
23
+ setAltKeyModalShown: import("react").Dispatch<import("react").SetStateAction<boolean>>;
24
+ handleDefaultKey: () => void;
25
+ handleAlternativeKey: () => void;
26
+ handleFocus: import("react").FocusEventHandler<HTMLTextAreaElement>;
27
+ handleBlur: import("react").FocusEventHandler<HTMLTextAreaElement>;
28
+ handleClick: () => void;
29
+ handleChange: import("react").ChangeEventHandler<HTMLTextAreaElement>;
30
+ };
@@ -0,0 +1 @@
1
+ import{useRef as e,useState as t,useCallback as l,useEffect as n}from"react";import{isMobileDevice as r}from"./utils.js";const a=({initialMessage:a,disabled:o,autoFocus:s,altKeyDefaultValue:u,onChange:c,onSend:i,onTextAreaChange:h,onSetAlternativeKeyValue:f,onFocus:y,onBlur:d})=>{var v;const g=e(null),p=e(null),[K,m]=t(null!==(v=!o&&s)&&void 0!==v&&v),[b,x]=t("calc(var(--bothub-scale, 1) * 22px)"),[E,k]="string"==typeof a?[a,c]:t(""),[A,S]=t(null!=u&&u),[w,C]=t(!1),D=l(()=>{S(!1),null==f||f(!1),C(!1)},[]),F=l(()=>{S(!0),null==f||f(!0),C(!1)},[]),M=l(e=>{m(!0),null==y||y(e)},[y]),$=l(e=>{m(!1),null==d||d(e)},[d]),B=l(()=>{var e;o||null===(e=g.current)||void 0===e||e.focus()},[o,s]),H=l(e=>{null==k||k(e.target.value),null==h||h(e)},[k,h]);return n(()=>{const e=g.current;if(!e||o)return;const t=!o&&!!s;m(t),t?e.focus():document.activeElement===e&&e.blur()},[o,s]),n(()=>{const e=g.current;if(null===e)return;const t=e=>{e.stopPropagation();if(r()&&"Enter"===e.key)return;const t=A?"enter":"ctrl/shift+enter";let l="";if("Enter"===e.key&&(e.shiftKey||e.ctrlKey))l="ctrl/shift+enter";else{if("Enter"!==e.key)return;l="enter"}if(K&&"Enter"===e.key){if(l===t&&e.ctrlKey){e.preventDefault();const t=g.current;if(!t)return;const l=t.value,r=t.selectionStart,o=l.slice(0,r),s=l.slice(r);null==k||k(`${o}\n${s}`),n=t,a=r+1,setTimeout(()=>{n.selectionStart=a,n.selectionEnd=a},1)}t!==l&&""!==l&&(e.preventDefault(),null==i||i(),x("calc(var(--bothub-scale, 1) * 22px)"))}var n,a};return e.addEventListener("keydown",t),()=>{e.removeEventListener("keydown",t)}},[K,E,i,k]),n(()=>{const e=g.current;null!==e&&(e.style.height="calc(var(--bothub-scale, 1) * 22px)",e.style.height=`${e.scrollHeight}px`,x(`${e.scrollHeight}px`))},[E,s]),{textareaRef:g,altKeyButtonRef:p,isFocus:K,isAltKey:A,height:b,message:E,isAltKeyModalShown:w,setHeight:x,setMessage:k,setAltKeyModalShown:C,handleDefaultKey:D,handleAlternativeKey:F,handleFocus:M,handleBlur:$,handleClick:B,handleChange:H}};export{a as useInput};
@@ -0,0 +1,16 @@
1
+ import { IInputMessageVoiceFile } from './types';
2
+ export interface UseVoiceProps {
3
+ onVoiceFilesChange?: (files: IInputMessageVoiceFile[]) => unknown;
4
+ }
5
+ export declare const useVoice: ({ onVoiceFilesChange }: UseVoiceProps) => {
6
+ voiceFiles: IInputMessageVoiceFile[];
7
+ setVoiceFiles: import("react").Dispatch<import("react").SetStateAction<IInputMessageVoiceFile[]>>;
8
+ isVoiceRecording: boolean;
9
+ isVoicePaused: boolean;
10
+ voiceRecordingTime: number | null;
11
+ handleVoiceRecordStart: import("react").ReactEventHandler<Element>;
12
+ handleVoiceRecordEnd: () => Promise<void>;
13
+ handleVoicePause: () => void;
14
+ handleVoiceResume: () => void;
15
+ handleVoiceFileDelete: (file: IInputMessageVoiceFile) => void;
16
+ };
@@ -0,0 +1 @@
1
+ import{__awaiter as e}from"tslib";import{useRef as r,useState as t,useCallback as n,useEffect as o}from"react";import"unified";import"remark-parse";import"remark-gfm";import"mdast-util-to-markdown";import{getSupportedAudioMimeType as i}from"../../utils/getSupportedAudioMimeType.js";import"../../utils/colors/calculateGrayScale.js";import"../../utils/colors/calculateAccentColors.js";import{getWaveData as c}from"../../utils/audio/getWaveData.js";const a=({onVoiceFilesChange:a})=>{const u=r(null),l=r(null),s=r([]),d=r(null),m=r(!1),[v,p]=t([]),[f,w]=t(!1),[g,V]=t(!1),[R,b]=t(null),h=n(r=>e(void 0,void 0,void 0,function*(){if(f)return;m.current=!0,r.stopPropagation();const e=yield navigator.mediaDevices.getUserMedia({audio:!0}),t=new MediaRecorder(e,{mimeType:i()});m.current&&(t.start(1e3),u.current=t,l.current=e,d.current=window.setInterval(()=>{b(e=>(null!=e?e:0)+.1)},100),w(!0),b(0),V(!1))}),[m.current,s.current,f]),y=n(()=>{const e=u.current,r=l.current,t=d.current;if(f&&e&&r&&t){e.stop();for(const e of r.getTracks())e.stop();window.clearInterval(t)}},[f,u.current,l.current,d.current]),L=n(()=>e(void 0,void 0,void 0,function*(){m.current=!1,f&&y()}),[f,y]),j=n(()=>{const e=u.current,r=d.current;f&&e&&r&&(e.pause(),window.clearInterval(r),V(!0))},[f]),D=n(()=>{const e=u.current;f&&e&&(e.resume(),d.current=window.setInterval(()=>{b(e=>(null!=e?e:0)+.1)},100),V(!1))},[f,b]),E=n(e=>{p(v.filter(r=>r.src!==e.src))},[v,p]);return o(()=>{const r=u.current,t=e=>{e.data.size>0&&s.current.push(e.data)},n=()=>e(void 0,void 0,void 0,function*(){const e=new Blob(s.current,{type:i()}),{waveData:r,duration:t}=yield c(e),n={src:URL.createObjectURL(e),duration:t,blob:e,waveData:r};p([...v,n]),u.current=null,l.current=null,s.current=[],d.current=null,w(!1),b(null)});return r&&(r.addEventListener("dataavailable",t),r.addEventListener("stop",n)),()=>{r&&(r.removeEventListener("dataavailable",t),r.removeEventListener("stop",n)),y()}},[u.current]),o(()=>{null==a||a(v)},[v]),{voiceFiles:v,setVoiceFiles:p,isVoiceRecording:f,isVoicePaused:g,voiceRecordingTime:R,handleVoiceRecordStart:h,handleVoiceRecordEnd:L,handleVoicePause:j,handleVoiceResume:D,handleVoiceFileDelete:E}};export{a as useVoice};