@linktr.ee/messaging-react 3.3.11-rc-1781608642 → 3.3.11-rc-1781936335

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 (170) hide show
  1. package/dist/{Card-DiSXLhzw.cjs → Card-BxHcN_uK.cjs} +2 -2
  2. package/dist/Card-BxHcN_uK.cjs.map +1 -0
  3. package/dist/{Card-DezN34Sz.cjs → Card-Dx9vU_aU.cjs} +2 -2
  4. package/dist/Card-Dx9vU_aU.cjs.map +1 -0
  5. package/dist/{Card-qFB_y7k3.js → Card-Likc_mEq.js} +3 -3
  6. package/dist/Card-Likc_mEq.js.map +1 -0
  7. package/dist/{Card-Ch3cTL6G.cjs → Card-Som2Laov.cjs} +2 -2
  8. package/dist/Card-Som2Laov.cjs.map +1 -0
  9. package/dist/{Card-giUAe8IB.js → Card-VgnjOBSF.js} +2 -2
  10. package/dist/Card-VgnjOBSF.js.map +1 -0
  11. package/dist/{Card-DndbBigk.js → Card-datOr9-K.js} +2 -2
  12. package/dist/Card-datOr9-K.js.map +1 -0
  13. package/dist/{LockedThumbnail-C9Y0oCjv.js → LockedThumbnail-MW14CvSv.js} +2 -2
  14. package/dist/LockedThumbnail-MW14CvSv.js.map +1 -0
  15. package/dist/{LockedThumbnail-DkdVuMZM.cjs → LockedThumbnail-QWGt7mcF.cjs} +2 -2
  16. package/dist/LockedThumbnail-QWGt7mcF.cjs.map +1 -0
  17. package/dist/index-CRVJo6HP.cjs +2 -0
  18. package/dist/index-CRVJo6HP.cjs.map +1 -0
  19. package/dist/{index-DGVCJzwy.js → index-cIErdakH.js} +731 -742
  20. package/dist/index-cIErdakH.js.map +1 -0
  21. package/dist/index.cjs +1 -1
  22. package/dist/index.js +1 -1
  23. package/package.json +2 -2
  24. package/src/{stream → components}/ChannelActionsMenu/ChannelActionsMenu.test.tsx +1 -1
  25. package/src/{stream → components}/ChannelActionsMenu/index.tsx +1 -1
  26. package/src/{stream → components}/MessagingShell/LoadingState.tsx +1 -1
  27. package/src/index.ts +26 -26
  28. package/src/providers/MessagingProvider.test.tsx +131 -0
  29. package/src/providers/MessagingProvider.tsx +70 -53
  30. package/src/types.ts +1 -1
  31. package/dist/Card-Ch3cTL6G.cjs.map +0 -1
  32. package/dist/Card-DezN34Sz.cjs.map +0 -1
  33. package/dist/Card-DiSXLhzw.cjs.map +0 -1
  34. package/dist/Card-DndbBigk.js.map +0 -1
  35. package/dist/Card-giUAe8IB.js.map +0 -1
  36. package/dist/Card-qFB_y7k3.js.map +0 -1
  37. package/dist/LockedThumbnail-C9Y0oCjv.js.map +0 -1
  38. package/dist/LockedThumbnail-DkdVuMZM.cjs.map +0 -1
  39. package/dist/index-B_8de68T.cjs +0 -2
  40. package/dist/index-B_8de68T.cjs.map +0 -1
  41. package/dist/index-DGVCJzwy.js.map +0 -1
  42. /package/src/{primitives → components}/ActionButton/ActionButton.stories.tsx +0 -0
  43. /package/src/{primitives → components}/ActionButton/ActionButton.test.tsx +0 -0
  44. /package/src/{primitives → components}/ActionButton/index.tsx +0 -0
  45. /package/src/{stream → components}/AttachmentCard/AttachmentCard.stories.tsx +0 -0
  46. /package/src/{stream → components}/AttachmentCard/MediaPlayer.tsx +0 -0
  47. /package/src/{stream → components}/AttachmentCard/Thumbnail.tsx +0 -0
  48. /package/src/{stream → components}/AttachmentCard/index.tsx +0 -0
  49. /package/src/{stream → components}/AttachmentCard/utils/icons.ts +0 -0
  50. /package/src/{stream → components}/AttachmentCard/utils/mimeType.test.ts +0 -0
  51. /package/src/{stream → components}/AttachmentCard/utils/mimeType.ts +0 -0
  52. /package/src/{stream → components}/Avatar/Avatar.stories.tsx +0 -0
  53. /package/src/{stream → components}/Avatar/getAvatarEmoji.ts +0 -0
  54. /package/src/{stream → components}/Avatar/index.tsx +0 -0
  55. /package/src/{stream → components}/ChannelList/ChannelList.stories.tsx +0 -0
  56. /package/src/{stream → components}/ChannelList/ChannelListContext.tsx +0 -0
  57. /package/src/{stream → components}/ChannelList/CustomChannelPreview.stories.tsx +0 -0
  58. /package/src/{stream → components}/ChannelList/CustomChannelPreview.test.tsx +0 -0
  59. /package/src/{stream → components}/ChannelList/CustomChannelPreview.tsx +0 -0
  60. /package/src/{stream → components}/ChannelList/index.test.tsx +0 -0
  61. /package/src/{stream → components}/ChannelList/index.tsx +0 -0
  62. /package/src/{stream → components}/ChannelView.stories.tsx +0 -0
  63. /package/src/{stream → components}/ChannelView.test.tsx +0 -0
  64. /package/src/{stream → components}/ChannelView.tsx +0 -0
  65. /package/src/{primitives → components}/CloseButton/CloseButton.stories.tsx +0 -0
  66. /package/src/{primitives → components}/CloseButton/index.tsx +0 -0
  67. /package/src/{stream → components}/CustomDateSeparator/CustomDateSeparator.stories.tsx +0 -0
  68. /package/src/{stream → components}/CustomDateSeparator/index.tsx +0 -0
  69. /package/src/{stream → components}/CustomLinkPreviewList/CustomLinkPreviewCard.stories.tsx +0 -0
  70. /package/src/{stream → components}/CustomLinkPreviewList/CustomLinkPreviewCard.tsx +0 -0
  71. /package/src/{stream → components}/CustomLinkPreviewList/index.tsx +0 -0
  72. /package/src/{stream → components}/CustomMessage/CustomMessage.stories.tsx +0 -0
  73. /package/src/{stream → components}/CustomMessage/CustomMessageActions.tsx +0 -0
  74. /package/src/{stream → components}/CustomMessage/MessageAttachmentConversations.stories.tsx +0 -0
  75. /package/src/{stream → components}/CustomMessage/MessageTag.stories.tsx +0 -0
  76. /package/src/{stream → components}/CustomMessage/MessageTag.test.tsx +0 -0
  77. /package/src/{stream → components}/CustomMessage/MessageTag.tsx +0 -0
  78. /package/src/{stream → components}/CustomMessage/MessageVoteButtons.stories.tsx +0 -0
  79. /package/src/{stream → components}/CustomMessage/MessageVoteButtons.tsx +0 -0
  80. /package/src/{stream → components}/CustomMessage/context.tsx +0 -0
  81. /package/src/{stream → components}/CustomMessage/index.tsx +0 -0
  82. /package/src/{stream → components}/CustomMessageInput/CustomMessageInput.stories.tsx +0 -0
  83. /package/src/{stream → components}/CustomMessageInput/CustomMessageInput.test.tsx +0 -0
  84. /package/src/{stream → components}/CustomMessageInput/index.tsx +0 -0
  85. /package/src/{stream → components}/CustomSystemMessage/CustomSystemMessage.stories.tsx +0 -0
  86. /package/src/{stream → components}/CustomSystemMessage/CustomSystemMessage.test.tsx +0 -0
  87. /package/src/{stream → components}/CustomSystemMessage/index.tsx +0 -0
  88. /package/src/{stream → components}/CustomTypingIndicator/CustomTypingIndicator.stories.tsx +0 -0
  89. /package/src/{stream → components}/CustomTypingIndicator/CustomTypingIndicator.test.tsx +0 -0
  90. /package/src/{stream → components}/CustomTypingIndicator/DmAgentContext.ts +0 -0
  91. /package/src/{stream → components}/CustomTypingIndicator/index.tsx +0 -0
  92. /package/src/{stream → components}/FaqList/FaqList.stories.tsx +0 -0
  93. /package/src/{stream → components}/FaqList/FaqListItem.stories.tsx +0 -0
  94. /package/src/{stream → components}/FaqList/FaqListItem.tsx +0 -0
  95. /package/src/{stream → components}/FaqList/index.tsx +0 -0
  96. /package/src/{primitives → components}/IconButton/IconButton.stories.tsx +0 -0
  97. /package/src/{primitives → components}/IconButton/index.tsx +0 -0
  98. /package/src/{stream → components}/LinkAttachment/LinkAttachment.stories.tsx +0 -0
  99. /package/src/{stream → components}/LinkAttachment/LinkAttachment.test.tsx +0 -0
  100. /package/src/{stream → components}/LinkAttachment/components/Composer/Card.tsx +0 -0
  101. /package/src/{stream → components}/LinkAttachment/components/Composer/index.ts +0 -0
  102. /package/src/{stream → components}/LinkAttachment/components/Received/Card.tsx +0 -0
  103. /package/src/{stream → components}/LinkAttachment/components/Received/index.ts +0 -0
  104. /package/src/{stream → components}/LinkAttachment/components/Sent/Card.tsx +0 -0
  105. /package/src/{stream → components}/LinkAttachment/components/Sent/index.ts +0 -0
  106. /package/src/{stream → components}/LinkAttachment/components/_shared/CardBody.tsx +0 -0
  107. /package/src/{stream → components}/LinkAttachment/components/_shared/CardCta.tsx +0 -0
  108. /package/src/{stream → components}/LinkAttachment/components/_shared/CardShell.tsx +0 -0
  109. /package/src/{stream → components}/LinkAttachment/components/_shared/CardThumbnail.tsx +0 -0
  110. /package/src/{stream → components}/LinkAttachment/components/_shared/normalizeExternalHref.ts +0 -0
  111. /package/src/{stream → components}/LinkAttachment/index.tsx +0 -0
  112. /package/src/{stream → components}/LinkAttachment/types.ts +0 -0
  113. /package/src/{primitives → components}/Loading/Loading.stories.tsx +0 -0
  114. /package/src/{primitives → components}/Loading/index.tsx +0 -0
  115. /package/src/{stream → components}/LockedAttachment/LockedAttachment.stories.tsx +0 -0
  116. /package/src/{stream → components}/LockedAttachment/components/Composer/Card.tsx +0 -0
  117. /package/src/{stream → components}/LockedAttachment/components/Composer/index.ts +0 -0
  118. /package/src/{stream → components}/LockedAttachment/components/Received/Card.tsx +0 -0
  119. /package/src/{stream → components}/LockedAttachment/components/Received/CardActions.tsx +0 -0
  120. /package/src/{stream → components}/LockedAttachment/components/Received/index.ts +0 -0
  121. /package/src/{stream → components}/LockedAttachment/components/Sent/Card.tsx +0 -0
  122. /package/src/{stream → components}/LockedAttachment/components/Sent/index.ts +0 -0
  123. /package/src/{stream → components}/LockedAttachment/components/_shared/CardBody.tsx +0 -0
  124. /package/src/{stream → components}/LockedAttachment/components/_shared/GalleryThumbnail.tsx +0 -0
  125. /package/src/{stream → components}/LockedAttachment/components/_shared/LockBadge.tsx +0 -0
  126. /package/src/{stream → components}/LockedAttachment/components/_shared/LockedCardShell.tsx +0 -0
  127. /package/src/{stream → components}/LockedAttachment/components/_shared/LockedThumbnail.tsx +0 -0
  128. /package/src/{stream → components}/LockedAttachment/index.tsx +0 -0
  129. /package/src/{stream → components}/LockedAttachment/types.ts +0 -0
  130. /package/src/{stream → components}/MediaMessage/MediaMessage.stories.tsx +0 -0
  131. /package/src/{stream → components}/MediaMessage/MediaMessage.test.tsx +0 -0
  132. /package/src/{stream → components}/MediaMessage/index.tsx +0 -0
  133. /package/src/{stream → components}/MessageAttachment/Audio/AudioAttachment.stories.tsx +0 -0
  134. /package/src/{stream → components}/MessageAttachment/Audio/index.tsx +0 -0
  135. /package/src/{stream → components}/MessageAttachment/File/FileAttachment.stories.tsx +0 -0
  136. /package/src/{stream → components}/MessageAttachment/File/index.tsx +0 -0
  137. /package/src/{stream → components}/MessageAttachment/Image/ImageAttachment.stories.tsx +0 -0
  138. /package/src/{stream → components}/MessageAttachment/Image/index.tsx +0 -0
  139. /package/src/{stream → components}/MessageAttachment/MessageAttachment.test.tsx +0 -0
  140. /package/src/{stream → components}/MessageAttachment/Pdf/PdfAttachment.stories.tsx +0 -0
  141. /package/src/{stream → components}/MessageAttachment/Pdf/index.tsx +0 -0
  142. /package/src/{stream → components}/MessageAttachment/Video/VideoAttachment.stories.tsx +0 -0
  143. /package/src/{stream → components}/MessageAttachment/Video/index.tsx +0 -0
  144. /package/src/{stream → components}/MessageAttachment/_shared/Bubble.tsx +0 -0
  145. /package/src/{stream → components}/MessageAttachment/_shared/CarouselNav.tsx +0 -0
  146. /package/src/{stream → components}/MessageAttachment/_shared/CompactDocumentRow.tsx +0 -0
  147. /package/src/{stream → components}/MessageAttachment/_shared/DismissButton.tsx +0 -0
  148. /package/src/{stream → components}/MessageAttachment/_shared/DownloadAction.tsx +0 -0
  149. /package/src/{stream → components}/MessageAttachment/_shared/ImageViewer.tsx +0 -0
  150. /package/src/{stream → components}/MessageAttachment/_shared/MediaStackGrid.tsx +0 -0
  151. /package/src/{stream → components}/MessageAttachment/_shared/PdfViewer.tsx +0 -0
  152. /package/src/{stream → components}/MessageAttachment/_shared/VideoViewer.tsx +0 -0
  153. /package/src/{stream → components}/MessageAttachment/_shared/ViewerShell.tsx +0 -0
  154. /package/src/{stream → components}/MessageAttachment/_shared/fileMeta.test.ts +0 -0
  155. /package/src/{stream → components}/MessageAttachment/_shared/fileMeta.ts +0 -0
  156. /package/src/{stream → components}/MessageAttachment/_shared/triggerDownload.ts +0 -0
  157. /package/src/{stream → components}/MessageAttachment/_shared/useCarousel.ts +0 -0
  158. /package/src/{stream → components}/MessageAttachment/_shared/useViewer.ts +0 -0
  159. /package/src/{stream → components}/MessageAttachment/index.tsx +0 -0
  160. /package/src/{stream → components}/MessageAttachment/stories/StoryTable.tsx +0 -0
  161. /package/src/{stream → components}/MessageAttachment/types.ts +0 -0
  162. /package/src/{stream → components}/MessagingShell/ChannelEmptyState.tsx +0 -0
  163. /package/src/{stream → components}/MessagingShell/ErrorState.stories.tsx +0 -0
  164. /package/src/{stream → components}/MessagingShell/ErrorState.tsx +0 -0
  165. /package/src/{stream → components}/MessagingShell/LoadingState.stories.tsx +0 -0
  166. /package/src/{stream → components}/MessagingShell/MessagingShell.test.tsx +0 -0
  167. /package/src/{stream → components}/MessagingShell/index.tsx +0 -0
  168. /package/src/{primitives → components}/SearchInput/SearchInput.stories.tsx +0 -0
  169. /package/src/{primitives → components}/SearchInput/SearchInput.test.tsx +0 -0
  170. /package/src/{primitives → components}/SearchInput/index.tsx +0 -0
@@ -0,0 +1,2 @@
1
+ "use strict";const t=require("react/jsx-runtime"),m=require("react"),us=require("@linktr.ee/messaging-core"),Se=require("stream-chat"),_=require("stream-chat-react"),N=require("@phosphor-icons/react"),C=require("classnames"),Me=require("stream-chat-react/experimental"),yt=m.createContext({service:null,client:null,isConnected:!1,isLoading:!1,error:null,capabilities:{},refreshConnection:async()=>{},debug:!1}),Ae=()=>m.useContext(yt),ms=({children:e,user:s,serviceConfig:n,apiKey:a,capabilities:r={},debug:i=!1})=>{var B,E;const o=m.useCallback((S,...A)=>{i&&console.log(`🔥 [MessagingProvider] ${S}`,...A)},[i]);o("🔄 RENDER START",{userId:s==null?void 0:s.id,apiKey:(a==null?void 0:a.substring(0,8))+"...",serviceConfig:!!n,capabilities:Object.keys(r)});const[l,d]=m.useState(null),[h,g]=m.useState(null),[u,x]=m.useState(!1),[c,f]=m.useState(!1),[b,p]=m.useState(null),w=m.useRef(!1),j=m.useRef(null),T=m.useRef(n);T.current=n;const I=m.useRef(i);I.current=i;const R=m.useRef({userId:s==null?void 0:s.id,apiKey:a,serviceConfig:n,capabilities:r}),O=m.useRef(0);O.current++,o("📊 RENDER INFO",{renderCount:O.current,currentProps:{userId:s==null?void 0:s.id,apiKey:(a==null?void 0:a.substring(0,8))+"..."},propChanges:{userChanged:R.current.userId!==(s==null?void 0:s.id),apiKeyChanged:R.current.apiKey!==a,serviceConfigChanged:R.current.serviceConfig!==n,capabilitiesChanged:R.current.capabilities!==r}}),R.current={userId:s==null?void 0:s.id,apiKey:a,serviceConfig:n,capabilities:r};const L=m.useRef(null);a&&((B=L.current)==null?void 0:B.apiKey)!==a&&(L.current={apiKey:a,client:new Se.StreamChat(a)});const D=a?((E=L.current)==null?void 0:E.client)??null:null;m.useEffect(()=>{const S=O.current,A=T.current;if(!a||!D||!A){o("⚠️ SERVICE INIT SKIPPED",{renderCount:S,reason:"Missing apiKey, client, or serviceConfig"});return}o("🚀 CREATING SERVICE",{renderCount:S,apiKey:(a==null?void 0:a.substring(0,8))+"..."});const F=new us.StreamChatService({...A,apiKey:a,debug:I.current,client:D});j.current=F,d(F),o("✅ SERVICE SET",{renderCount:S,serviceInstance:!!F})},[a,D]);const y=m.useRef(null);m.useEffect(()=>{var A,F;if(o("🔗 USER CONNECTION EFFECT TRIGGERED",{hasService:!!l,hasUser:!!s,userId:s==null?void 0:s.id,isConnecting:w.current,isConnected:u,dependencies:{service:!!l,userId:s==null?void 0:s.id}}),!l||!s){o("⚠️ USER CONNECTION SKIPPED","Missing service or user");return}if(w.current){o("⚠️ USER CONNECTION SKIPPED","Already connecting");return}if(((A=y.current)==null?void 0:A.serviceId)===l&&((F=y.current)==null?void 0:F.userId)===s.id){o("⚠️ USER CONNECTION SKIPPED","Already connected this user with this service");return}(async()=>{o("🚀 STARTING USER CONNECTION",{userId:s.id}),w.current=!0,f(!0),p(null);try{o("📞 CALLING SERVICE.CONNECTUSER",{userId:s.id});const z=await l.connectUser(s);g(z),x(!0),y.current={serviceId:l,userId:s.id},o("✅ USER CONNECTION SUCCESS",{userId:s.id,clientId:z.userID})}catch(z){const U=z instanceof Error?z.message:"Connection failed";p(U),o("❌ USER CONNECTION ERROR",{userId:s.id,error:U})}finally{f(!1),w.current=!1,o("🔄 USER CONNECTION FINISHED",{userId:s.id,isConnected:u})}})()},[l,s,o,u]),m.useEffect(()=>{const S=D;return()=>{var A;S&&(y.current=null,(A=j.current)==null||A.disconnectUser().catch(console.error))}},[D]);const M=m.useCallback(async()=>{if(o("🔄 REFRESH CONNECTION CALLED",{hasService:!!l,hasUser:!!s}),!l||!s){o("⚠️ REFRESH CONNECTION SKIPPED","Missing service or user");return}o("🚀 STARTING CONNECTION REFRESH",{userId:s.id}),f(!0);try{o("🔌 DISCONNECTING FOR REFRESH"),await l.disconnectUser(),o("📞 RECONNECTING FOR REFRESH");const S=await l.connectUser(s);g(S),x(!0),p(null),o("✅ CONNECTION REFRESH SUCCESS",{userId:s.id})}catch(S){const A=S instanceof Error?S.message:"Refresh failed";p(A),o("❌ CONNECTION REFRESH ERROR",{userId:s.id,error:A})}finally{f(!1),o("🔄 CONNECTION REFRESH FINISHED",{userId:s.id})}},[l,s,o]),P=m.useMemo(()=>(o("💫 CONTEXT VALUE MEMOIZATION",{hasService:!!l,hasClient:!!h,isConnected:u,isLoading:c,hasError:!!b,capabilitiesKeys:Object.keys(r)}),{service:l,client:h,isConnected:u,isLoading:c,error:b,capabilities:r,refreshConnection:M,debug:i}),[l,h,u,c,b,r,M,i,o]);return o("🔄 RENDER END",{renderCount:O.current,willRenderChat:!!D,contextValueReady:!!P}),t.jsx(yt.Provider,{value:P,children:D?t.jsx(_.Chat,{client:D,customClasses:{channelList:"str-chat__channel-list str-chat__channel-list-react bg-transparent lg:border-r-2 border-r-0 border-[#0000000A]"},children:e}):e})},Ct=()=>Ae(),kt=e=>{var a,r;const[s,n]=m.useState(!!((r=(a=e==null?void 0:e.state)==null?void 0:a.membership)!=null&&r.pinned_at));return m.useEffect(()=>{var o;if(!e){n(!1);return}n(!!((o=e.state.membership)!=null&&o.pinned_at));const i=l=>{var d;n(l!=null&&l.member?!!l.member.pinned_at:!!((d=e.state.membership)!=null&&d.pinned_at))};return e.on("member.updated",i),()=>{e.off("member.updated",i)}},[e]),s},hs=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function St(e){return hs.test(e.trim())}function bt(e,s){const n=e==null?void 0:e.trim();return!n||s&&n===s?!1:!St(n)}function Re(e){return bt(e==null?void 0:e.name,e==null?void 0:e.id)?e.name.trim():bt(e==null?void 0:e.username,e==null?void 0:e.id)?e.username.trim():"Unknown member"}const pt=["🍎","🍌","🍇","🍊","🍓","🥥","🍒","🥭","🍉","🍋","🥝","🫒","🍈"];function xs(e){let s=0;for(let n=0;n<e.length;n++){const a=e.charCodeAt(n);s=(s<<5)-s+a,s=s&s}return Math.abs(s)}function fs(e){const n=xs(e)%pt.length;return pt[n]}const Z=({id:e,image:s,size:n=40,className:a,starred:r=!1,shape:i="squircle",dmAgentEnabled:o=!1})=>{const l=fs(e),h=n<32?"text-xs":n<56?"text-sm":n<120?"text-lg":"text-4xl",g=n>=40?2:1,u=i==="circle"?{borderRadius:"50%"}:{borderRadius:"1rem"},x=t.jsx("div",{className:"h-full w-full overflow-hidden",style:u,children:s?t.jsx("img",{src:s,alt:"",className:"h-full w-full object-cover"}):t.jsx("div",{"aria-hidden":"true",className:C("avatar-fallback flex h-full w-full items-center justify-center bg-[#E6E5E3] font-semibold select-none transition-colors",h),children:l})});return t.jsxs("div",{className:C("relative flex-shrink-0 !bg-transparent",a),style:{"--str-chat__avatar-size":`${n}px`,width:`${n}px`,height:`${n}px`},children:[r&&t.jsx("div",{"aria-hidden":"true",className:"absolute -left-1.5 -top-1.5 z-10 flex size-5 items-center justify-center rounded-full bg-white shadow-[0_0_0_1px_rgba(0,0,0,0.04),0_4px_8px_rgba(0,0,0,0.06)]",children:t.jsx(N.StarIcon,{className:"size-3 text-yellow-600",weight:"duotone"})}),t.jsx("div",{"data-testid":"avatar-ring",className:C("h-full w-full","bg-transparent"),style:{...u,...o&&{borderWidth:`${g}px`,borderStyle:"solid",borderColor:"var(--AI-Gradient, #7F22FE)",boxShadow:"inset 0 1px 2px 0 rgba(255, 255, 255, 0.5)"}},children:x})]})},gs="https://linktr.ee/s/about/trust-center/report",bs=({channel:e,participant:s,showBlockParticipant:n=!0,enabled:a=!0,onLeaveConversation:r,onBlockParticipant:i,onDeleteConversationClick:o,onBlockParticipantClick:l,onReportParticipantClick:d,onActionComplete:h,logLabel:g="useChannelModerationActions"})=>{var B;const{service:u,debug:x}=Ae(),c=(B=s==null?void 0:s.user)==null?void 0:B.id,f=!!(a&&n&&u&&c),[b,p]=m.useState(!1),[w,j]=m.useState(null),[T,I]=m.useState(!1),[R,O]=m.useState(!1),L=f&&((w==null?void 0:w.participantId)!==c||(w==null?void 0:w.service)!==u);return m.useEffect(()=>{if(!f||!u||!c){p(!1),j(null);return}let E=!1;return(async()=>{try{const S=await u.getBlockedUsers();if(E)return;p(S.some(A=>A.blocked_user_id===c))}catch(S){E||console.error(`[${g}] Failed to check blocked status:`,S)}finally{E||j({participantId:c,service:u})}})(),()=>{E=!0}},[f,u,c,g]),{isParticipantBlocked:b,isCheckingBlockedStatus:L,isLeaving:T,isUpdatingBlockStatus:R,handleLeaveConversation:async()=>{var E;if(!T){o==null||o(),x&&console.log(`[${g}] Leave conversation`,e.cid),I(!0);try{const S=((E=e._client)==null?void 0:E.userID)??null;await e.hide(S,!1),r&&await r(e),h==null||h()}catch(S){console.error(`[${g}] Failed to leave conversation`,S)}finally{I(!1)}}},handleBlockUser:async()=>{var E,S,A;if(!(R||!u)){l==null||l(),x&&console.log(`[${g}] Block member`,(E=s==null?void 0:s.user)==null?void 0:E.id),O(!0);try{await u.blockUser((S=s==null?void 0:s.user)==null?void 0:S.id),i&&await i((A=s==null?void 0:s.user)==null?void 0:A.id),h==null||h()}catch(F){console.error(`[${g}] Failed to block member`,F)}finally{O(!1)}}},handleUnblockUser:async()=>{var E,S,A;if(!(R||!u)){l==null||l(),x&&console.log(`[${g}] Unblock member`,(E=s==null?void 0:s.user)==null?void 0:E.id),O(!0);try{await u.unBlockUser((S=s==null?void 0:s.user)==null?void 0:S.id),i&&await i((A=s==null?void 0:s.user)==null?void 0:A.id),h==null||h()}catch(F){console.error(`[${g}] Failed to unblock member`,F)}finally{O(!1)}}},handleReportUser:()=>{d==null||d(),h==null||h(),window.open(gs,"_blank","noopener,noreferrer")}}},ae=({variant:e="default",className:s,children:n,...a})=>{const r=e==="danger";return t.jsx("button",{type:"button",className:C("flex w-full items-center gap-3 rounded-lg px-4 py-3 text-left text-sm transition-colors focus-ring disabled:cursor-not-allowed disabled:opacity-60",r?"text-danger hover:bg-danger/50":"text-charcoal hover:bg-sand",s),...a,children:n})},vt=({channel:e,participant:s,showDeleteConversation:n=!0,showBlockParticipant:a=!0,showReportParticipant:r=!0,onLeaveConversation:i,onBlockParticipant:o,onDeleteConversationClick:l,onBlockParticipantClick:d,onReportParticipantClick:h,customChannelActions:g,triggerClassName:u})=>{const[x,c]=m.useState(!1),f=m.useRef(null),b=m.useId(),p=m.useCallback(()=>c(!1),[]),{isParticipantBlocked:w,isCheckingBlockedStatus:j,isLeaving:T,isUpdatingBlockStatus:I,handleLeaveConversation:R,handleBlockUser:O,handleUnblockUser:L,handleReportUser:D}=bs({channel:e,participant:s,showBlockParticipant:a,enabled:x,onLeaveConversation:i,onBlockParticipant:o,onDeleteConversationClick:l,onBlockParticipantClick:d,onReportParticipantClick:h,onActionComplete:p,logLabel:"ChannelActionsMenu"});return m.useEffect(()=>{if(!x)return;const M=B=>{f.current&&!f.current.contains(B.target)&&c(!1)},P=B=>{B.key==="Escape"&&c(!1)};return document.addEventListener("mousedown",M),document.addEventListener("keydown",P),()=>{document.removeEventListener("mousedown",M),document.removeEventListener("keydown",P)}},[x]),!s||!(n||a||r||!!g)?null:t.jsxs("div",{ref:f,className:"relative",children:[t.jsxs("button",{className:u,type:"button","aria-haspopup":"true","aria-expanded":x,"aria-controls":x?b:void 0,onClick:()=>c(M=>!M),children:[t.jsx(N.DotsThreeIcon,{className:"size-5 text-black/90"}),t.jsx("span",{className:"sr-only",children:"More options"})]}),x&&t.jsx("div",{id:b,"aria-label":"Conversation options",className:C("absolute right-0 top-full z-50 mt-2 w-56 overflow-hidden","rounded-lg border border-sand bg-white p-1 shadow-max-elevation-light"),children:t.jsxs("ul",{className:"flex flex-col gap-1",children:[n&&t.jsx("li",{children:t.jsxs(ae,{onClick:R,disabled:T,"aria-busy":T,children:[T?t.jsx(N.SpinnerGapIcon,{className:"h-5 w-5 animate-spin"}):t.jsx(N.SignOutIcon,{className:"h-5 w-5"}),t.jsx("span",{children:"Delete Conversation"})]})}),a&&t.jsx("li",{children:j?t.jsxs(ae,{disabled:!0,"aria-busy":!0,children:[t.jsx(N.SpinnerGapIcon,{className:"h-5 w-5 animate-spin"}),t.jsx("span",{children:"Block"})]}):w?t.jsxs(ae,{onClick:L,disabled:I,"aria-busy":I,children:[I?t.jsx(N.SpinnerGapIcon,{className:"h-5 w-5 animate-spin"}):t.jsx(N.ProhibitInsetIcon,{className:"h-5 w-5"}),t.jsx("span",{children:"Unblock"})]}):t.jsxs(ae,{onClick:O,disabled:I,"aria-busy":I,children:[I?t.jsx(N.SpinnerGapIcon,{className:"h-5 w-5 animate-spin"}):t.jsx(N.ProhibitInsetIcon,{className:"h-5 w-5"}),t.jsx("span",{children:"Block"})]})}),r&&t.jsx("li",{children:t.jsxs(ae,{variant:"danger",onClick:D,children:[t.jsx(N.FlagIcon,{className:"h-5 w-5"}),t.jsx("span",{children:"Report"})]})}),g]})})]})},ps=e=>t.jsx(_.DateSeparator,{...e,position:"center"}),Ee="vote_up",Ie="vote_down";function vs(e){return e!=null&&e.length?e.some(s=>s.type===Ie)?"down":e.some(s=>s.type===Ee)?"up":null:null}function Et(e){const{channel:s}=_.useChannelStateContext(),{client:n}=_.useChatContext("useMessageVote"),a=m.useMemo(()=>vs(e.own_reactions),[e.own_reactions]),r=m.useCallback(async()=>{if(n!=null&&n.userID)try{a==="up"?await s.deleteReaction(e.id,Ee):await s.sendReaction(e.id,{type:Ee},{enforce_unique:!0,skip_push:!0})}catch{}},[s,n==null?void 0:n.userID,e.id,a]),i=m.useCallback(async()=>{if(n!=null&&n.userID)try{a==="down"?await s.deleteReaction(e.id,Ie):await s.sendReaction(e.id,{type:Ie},{enforce_unique:!0,skip_push:!0})}catch{}},[s,n==null?void 0:n.userID,e.id,a]);return{selected:a,voteUp:r,voteDown:i}}function It(e){return(e==null?void 0:e.trim().toLowerCase().split(/[-_]/)[0])||void 0}function Le({message:e,viewerLanguage:s}){var r;const n=e==null?void 0:e.text,a=It(s);return a?((r=e==null?void 0:e.i18n)==null?void 0:r[`${a}_text`])??n:n}const js=m.lazy(()=>Promise.resolve().then(()=>require("./Card-Som2Laov.cjs"))),ws=m.lazy(()=>Promise.resolve().then(()=>require("./Card-Dx9vU_aU.cjs"))),_s=m.lazy(()=>Promise.resolve().then(()=>require("./Card-BxHcN_uK.cjs"))),De=()=>t.jsx("div",{className:"w-[280px] min-h-[200px] animate-pulse rounded-md bg-black/[0.06] shadow-[0_0_0_1px_rgba(0,0,0,0.04),0_1px_2px_rgba(0,0,0,0.04),0_8px_32px_rgba(0,0,0,0.1)]","aria-hidden":!0}),Ns=e=>t.jsx(m.Suspense,{fallback:t.jsx(De,{}),children:t.jsx(js,{...e})}),Tt=e=>t.jsx(m.Suspense,{fallback:t.jsx(De,{}),children:t.jsx(ws,{...e})}),Mt=e=>t.jsx(m.Suspense,{fallback:t.jsx(De,{}),children:t.jsx(_s,{...e})}),ys=Tt,Cs=Mt,Te={Composer:Ns,Sent:Tt,Received:Mt,Creator:ys,Visitor:Cs},ks=[[/pdf/,"pdf"],[/wordprocessingml|msword|\.doc/,"doc"],[/spreadsheetml|ms-excel|\.xls/,"xls"],[/csv/,"csv"],[/presentationml|ms-powerpoint|\.ppt/,"ppt"],[/zip|x-rar|x-7z|x-tar|x-gzip/,"zip"],[/plain|rtf/,"text"],[/markdown/,"markdown"]];function K(e){return e.startsWith("video/")?"video":e.startsWith("audio/")?"audio":e.startsWith("image/")?"image":"document"}function At(e){const s=ks.find(([n])=>n.test(e));return s?s[1]:"generic"}const Ss={video:N.VideoCameraIcon,audio:N.SpeakerHighIcon,image:N.ImageIcon,document:N.FileIcon},Es={pdf:N.FilePdfIcon,doc:N.FileDocIcon,xls:N.FileXlsIcon,csv:N.FileCsvIcon,ppt:N.FilePptIcon,zip:N.FileZipIcon,text:N.FileTextIcon,markdown:N.FileMdIcon,generic:N.FileIcon};function Is(e){const s=K(e);return s!=="document"?Ss[s]:Es[At(e)]}function ee(e,s){return m.createElement(Is(e),s)}const Ts=e=>{var s,n;return"touches"in e?((s=e.touches[0])==null?void 0:s.clientX)??((n=e.changedTouches[0])==null?void 0:n.clientX)??0:e.clientX},Ms=({source:e,mimeType:s,poster:n,autoPlay:a=!1,playing:r,loop:i=!1,controls:o=!0,showProgress:l=!1,muted:d=!1,onContainerClick:h})=>{const g=K(s),u=m.useRef(null),x=m.useRef(null),c=m.useRef(null),f=m.useRef(r),[b,p]=m.useState(a),[w,j]=m.useState(0),[T,I]=m.useState(!1),[R,O]=m.useState(!1),[L,D]=m.useState(!1),[y,M]=m.useState(!1),[P,B]=m.useState(!0),[E,S]=m.useState(null),A=m.useCallback(()=>{D(!1),p(!0)},[]),F=m.useCallback(v=>{const k=x.current;if(!k)return 0;const V=k.getBoundingClientRect();return Math.max(0,Math.min(1,(Ts(v)-V.left)/V.width))},[]),z=m.useCallback(v=>{const k=u.current;k&&k.duration&&(k.currentTime=v*k.duration)},[]),U=v=>{v.stopPropagation(),I(!0);const k=F(v);j(k),z(k)};m.useEffect(()=>{r!==void 0&&r!==f.current&&(f.current=r,p(r))},[r]),m.useEffect(()=>{if(!b){c.current!==null&&(cancelAnimationFrame(c.current),c.current=null);return}const v=()=>{const k=u.current;k&&k.duration&&!T&&j(k.currentTime/k.duration),c.current=requestAnimationFrame(v)};return c.current=requestAnimationFrame(v),()=>{c.current!==null&&cancelAnimationFrame(c.current)}},[b,T]),m.useEffect(()=>{const v=u.current;v&&(b?v.play().catch(k=>{p(!1),D(!0)}):v.pause())},[b]),m.useEffect(()=>{if(!T)return;const v=V=>j(F(V)),k=V=>{I(!1),z(F(V))};return window.addEventListener("mousemove",v),window.addEventListener("mouseup",k),window.addEventListener("touchmove",v,{passive:!0}),window.addEventListener("touchend",k),()=>{window.removeEventListener("mousemove",v),window.removeEventListener("mouseup",k),window.removeEventListener("touchmove",v),window.removeEventListener("touchend",k)}},[T,F,z]);const Y=E?{aspectRatio:String(E)}:void 0,G=E?"":" aspect-video",$=Math.round(w*100);return t.jsxs("div",{role:"button",tabIndex:0,className:`relative cursor-pointer overflow-hidden bg-black ${G}`,style:Y,onClick:v=>{if(h){h(v);return}L||o&&p(k=>!k)},onKeyDown:v=>{if(!(v.key!=="Enter"&&v.key!==" ")){if(v.preventDefault(),h){h(v);return}L||o&&p(k=>!k)}},children:[n&&(g==="audio"||P)&&t.jsx("img",{src:n,alt:"",className:"absolute inset-0 h-full w-full object-cover"}),!n&&(g==="audio"||P)&&t.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:ee(s,{className:"size-12 text-black/20",weight:"regular"})}),t.jsx("div",{className:"absolute inset-0",children:g==="audio"?t.jsx("audio",{ref:u,src:e,loop:i,muted:d,style:{width:"100%",height:"100%"},onLoadStart:()=>M(!0),onCanPlay:()=>{M(!1),B(!1)},onWaiting:()=>M(!0),onPlay:()=>D(!1),onEnded:()=>{i||(p(!1),j(0))},children:t.jsx("track",{kind:"captions"})}):t.jsx("video",{ref:u,src:e,loop:i,muted:d,playsInline:!0,style:{width:"100%",height:"100%"},onLoadStart:()=>M(!0),onCanPlay:()=>{M(!1),B(!1)},onWaiting:()=>M(!0),onPlay:()=>D(!1),onLoadedMetadata:()=>{const v=u.current;v instanceof HTMLVideoElement&&v.videoWidth&&v.videoHeight&&S(v.videoWidth/v.videoHeight)},onEnded:()=>{i||(p(!1),j(0))},children:t.jsx("track",{kind:"captions"})})}),y&&!L&&t.jsx("div",{className:"absolute inset-0 z-10 flex items-center justify-center",children:t.jsx(N.CircleNotchIcon,{className:"size-8 animate-spin text-white/80",weight:"bold"})}),L&&!o&&t.jsx("div",{className:"absolute inset-0 z-30 flex cursor-pointer items-center justify-center bg-black/35",role:"button",tabIndex:0,"aria-label":"Play preview",onClick:v=>{v.stopPropagation(),A()},onKeyDown:v=>{v.key!=="Enter"&&v.key!==" "||(v.preventDefault(),v.stopPropagation(),A())},children:t.jsx("span",{className:"flex size-16 items-center justify-center rounded-full bg-white/20 text-white backdrop-blur-sm",children:t.jsx(N.PlayIcon,{className:"size-9 translate-x-0.5",weight:"fill"})})}),l&&!o&&t.jsx("div",{className:"absolute inset-x-0 bottom-0 px-3 pb-2.5 pt-6 bg-gradient-to-t from-black/40 to-transparent",children:t.jsx("div",{role:"slider","aria-label":"Playback position","aria-valuenow":$,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0,ref:x,className:"relative flex h-4 w-full cursor-pointer items-center",onMouseDown:U,onTouchStart:U,onClick:v=>v.stopPropagation(),onKeyDown:v=>{v.key==="ArrowRight"&&z(Math.min(1,w+.05)),v.key==="ArrowLeft"&&z(Math.max(0,w-.05))},children:t.jsx("div",{className:"w-full overflow-hidden rounded-full bg-white/30 h-1",children:t.jsx("div",{className:"h-full rounded-full bg-white",style:{width:`${$}%`}})})})}),o&&t.jsxs("div",{className:"absolute inset-x-0 bottom-0 flex items-center gap-2 bg-gradient-to-t from-black/60 to-transparent px-3 pb-2.5 pt-6 transition-all duration-200",children:[t.jsx("button",{type:"button",onClick:v=>{v.stopPropagation(),p(k=>!k)},className:"shrink-0 text-white","aria-label":b?"Pause":"Play",children:b?t.jsx(N.PauseIcon,{className:"size-5",weight:"fill"}):t.jsx(N.PlayIcon,{className:"size-5 translate-x-px",weight:"fill"})}),t.jsxs("div",{role:"slider","aria-label":"Playback position","aria-valuenow":$,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0,ref:x,className:"relative flex h-4 w-full cursor-pointer items-center",onMouseDown:U,onTouchStart:U,onClick:v=>v.stopPropagation(),onMouseEnter:()=>O(!0),onMouseLeave:()=>O(!1),onKeyDown:v=>{v.key==="ArrowRight"&&z(Math.min(1,w+.05)),v.key==="ArrowLeft"&&z(Math.max(0,w-.05))},children:[t.jsx("div",{className:`w-full overflow-hidden rounded-full bg-white/30 transition-all duration-200 ${R||T?"h-1.5":"h-1"}`,children:t.jsx("div",{className:"h-full rounded-full bg-white",style:{width:`${$}%`}})}),t.jsx("div",{className:`absolute size-3 -translate-x-1/2 rounded-full bg-white shadow transition-[opacity,transform] duration-200 ${R||T?"scale-100 opacity-100":"scale-0 opacity-0"}`,style:{left:`${$}%`}})]})]})]})},jt=e=>e==="dark"?"size-12 text-white/20":"size-12 text-black/20",As=e=>e==="dark"?"aspect-video overflow-hidden bg-white/10":"aspect-video overflow-hidden bg-black/5",Pe=({mimeType:e,sourceUrl:s,thumbnailUrl:n,title:a,variant:r,mediaPlayerProps:i,containedImage:o=!1})=>{const l=K(e),[d,h]=m.useState(!1);return s&&(l==="video"||l==="audio")?t.jsx(Ms,{source:s,mimeType:e,poster:n,controls:!0,...i}):s&&l==="image"?o?t.jsx("div",{className:"relative aspect-video overflow-hidden bg-black/5",children:t.jsx("img",{src:s,alt:a??"",className:`absolute inset-0 h-full w-full object-contain transition-opacity duration-300 ${d?"opacity-100":"opacity-0"}`,draggable:!1,onLoad:()=>h(!0)})}):t.jsx("img",{src:s,alt:a??"",className:"block w-full",draggable:!1}):s&&l==="document"?n?o?t.jsx("div",{className:"relative aspect-video overflow-hidden bg-black/5",children:t.jsx("img",{src:n,alt:a??"",className:`absolute inset-0 h-full w-full object-contain transition-opacity duration-300 ${d?"opacity-100":"opacity-0"}`,draggable:!1,onLoad:()=>h(!0)})}):t.jsx("img",{src:n,alt:"",className:"block w-full",draggable:!1}):t.jsx("div",{className:`flex aspect-video w-full items-center justify-center ${r==="dark"?"bg-white/10":"bg-black/5"}`,children:ee(e,{className:jt(r),weight:"regular"})}):n?t.jsx("div",{className:`relative ${As(r)}`,children:t.jsx("img",{src:n,alt:a??"",draggable:!1,className:"absolute inset-0 h-full w-full object-cover"})}):t.jsx("div",{className:`flex aspect-video w-full items-center justify-center ${r==="dark"?"bg-white/10":"bg-black/5"}`,children:ee(e,{className:jt(r),weight:"regular"})})},Rt=({variant:e,thumbnail:s,title:n,placeholderTitle:a="Attachment title",mimeType:r,detail:i,statusBadge:o,action:l,topLeft:d,topRight:h,rootRef:g,"data-testid":u})=>{const x=e==="dark",c=x?n??a:n??"",f=x&&!n;return t.jsxs("div",{ref:g,"data-testid":u,className:C("relative w-[280px] select-none overflow-hidden rounded-[24px] shadow-[0_0_0_1px_rgba(0,0,0,0.04),0_4px_8px_rgba(0,0,0,0.06)]",x?"bg-[#121110]":"bg-white"),children:[d?t.jsx("div",{className:"pointer-events-auto absolute left-3 top-3 z-50",children:d}):null,h?t.jsx("div",{className:"pointer-events-auto absolute right-3 top-3 z-50",children:h}):null,s,t.jsxs("div",{className:"px-4 pb-3 pt-3",children:[c.trim()!==""&&t.jsx("p",{className:C("mb-0.5 truncate text-base font-medium",{"text-black":!x,"text-white/30":x&&f,"text-white":x&&!f}),children:c}),t.jsxs("div",{className:"flex flex-wrap items-center gap-1",children:[ee(r,{className:C("size-5 shrink-0",x?"text-white/55":"text-black/55"),weight:"regular"}),i!=null&&i!==""&&t.jsx("span",{className:C("text-xs font-medium",x?"text-white/55":"text-black/55"),children:i}),o]}),l]})]})};function Lt(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function Oe(e){return`w-[280px] select-none overflow-hidden rounded-[24px] ${e?"bg-[#121110]":"bg-[#F3F3F1]"} shadow-[0_0_0_1px_rgba(0,0,0,0.04),0_4px_8px_rgba(0,0,0,0.06)]`}function Rs(e){return e?"bg-white/10":"bg-black/5"}function Ls(e){return e?"text-white":"text-black"}function Ds(e){return e?"text-white/55":"text-black/55"}function Ps(e){return e?"text-white/40":"text-black/40"}function Os(e){return e?"text-white/20":"text-black/20"}const ze=({attachment:e,isMyMessage:s})=>{const{title:n,text:a,image_url:r,og_scrape_url:i,title_link:o}=e,l=i??o,d=typeof l=="string"&&l.trim()!==""?l:void 0,h=t.jsxs(m.Fragment,{children:[t.jsx("div",{className:"p-2",children:r?t.jsx("img",{src:r,alt:n??"",className:"aspect-video w-full rounded-[20px] object-cover"}):t.jsx("div",{className:`aspect-video w-full rounded-[20px] ${Rs(s)} flex items-center justify-center`,children:t.jsx(N.LinkIcon,{className:`size-12 ${Os(s)}`})})}),t.jsxs("div",{className:"px-3 pb-3",children:[n&&t.jsx("p",{className:`truncate text-[14px] font-medium leading-5 ${Ls(s)}`,children:n}),a&&t.jsx("p",{className:`truncate text-[12px] leading-4 ${Ds(s)}`,children:a}),d&&t.jsx("p",{className:`mt-1 truncate text-[12px] leading-4 ${Ps(s)}`,children:d})]})]});return d?t.jsx("a",{href:d,target:"_blank",rel:"noopener noreferrer",className:"block no-underline",children:h}):t.jsx("div",{className:"block",children:h})};function Fe(e){return e.type==="link"||!!e.og_scrape_url&&!e.asset_url}function ve(e){var s;return(s=e.attachments)==null?void 0:s.find(Fe)}async function zs(e,s){let n;try{n=s??new URL(e).pathname.split("/").pop()??"download"}catch{n=s??"download"}const a=await fetch(e,{mode:"cors"});if(!a.ok)throw new Error(`HTTP ${a.status}`);const r=await a.blob(),i=URL.createObjectURL(r),o=document.createElement("a");o.href=i,o.download=n,o.style.display="none",document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(i)}const Fs=({url:e,filename:s})=>{const[n,a]=m.useState(!1),r=i=>{i.stopPropagation();const o=window.open("","_blank","noopener,noreferrer");a(!0),zs(e,s).then(()=>{o==null||o.close()}).catch(()=>{o&&(o.location.href=e)}).finally(()=>a(!1))};return t.jsx("button",{type:"button",onClick:r,disabled:n,className:"mt-3 inline-flex h-10 w-full items-center justify-center gap-2 rounded-full bg-[#121110] px-4 text-sm font-medium leading-none text-white hover:bg-[#2a2928] disabled:opacity-70",children:n?t.jsx(N.CircleNotchIcon,{className:"size-4 animate-spin text-white",weight:"bold"}):t.jsxs(m.Fragment,{children:[t.jsx(N.DownloadSimpleIcon,{className:"size-4 text-white",weight:"bold"}),"Download"]})})};function je(e){var u,x,c,f;const s=(u=e.attachments)==null?void 0:u.find(b=>b.type==="video"&&b.asset_url),n=(x=e.attachments)==null?void 0:x.find(b=>b.type==="image"&&b.image_url),a=(c=e.attachments)==null?void 0:c.find(b=>b.type==="audio"&&b.asset_url),r=(f=e.attachments)==null?void 0:f.find(b=>b.type==="file"&&b.asset_url),i=s??n??a??r,o=(s==null?void 0:s.asset_url)??(n==null?void 0:n.image_url)??(a==null?void 0:a.asset_url)??(r==null?void 0:r.asset_url);if(!o)return null;const l=(i==null?void 0:i.mime_type)??((i==null?void 0:i.type)==="image"?"image/jpeg":(i==null?void 0:i.type)==="video"?"video/mp4":(i==null?void 0:i.type)==="audio"?"audio/mpeg":"application/octet-stream"),d=i==null?void 0:i.title,h=i==null?void 0:i.file_size,g=s==null?void 0:s.thumb_url;return{resolvedUrl:o,resolvedType:l,title:d,fileSize:h,thumbnailUrl:g}}const Dt=({resolvedUrl:e,resolvedType:s,title:n,fileSize:a,thumbnailUrl:r})=>{const i=a!==void 0?Lt(a):void 0;return t.jsx(Rt,{variant:"dark",title:n,placeholderTitle:"",mimeType:s,detail:i,thumbnail:t.jsx(Pe,{mimeType:s,sourceUrl:e,thumbnailUrl:r,title:n,variant:"dark"})})},Pt=({resolvedUrl:e,resolvedType:s,title:n,fileSize:a,thumbnailUrl:r})=>{const i=K(s),o=a!==void 0?Lt(a):void 0;return t.jsx(Rt,{variant:"light",title:n,mimeType:s,detail:o,thumbnail:t.jsx(Pe,{mimeType:s,sourceUrl:e,thumbnailUrl:r,title:n,variant:"light",containedImage:i==="image"||i==="document"}),action:t.jsx(Fs,{url:e,filename:n})})},$s=({message:e,isMyMessage:s=!1})=>{const n=ve(e),a=je(e);if(!n&&!a)return null;const r=s?"str-chat__message str-chat__message-simple str-chat__message--me str-chat__message-simple--me":"str-chat__message str-chat__message-simple str-chat__message--other";return t.jsxs("div",{className:r,children:[!s&&e.user&&t.jsx(Z,{className:"str-chat__avatar str-chat__message-sender-avatar",id:e.user.id,image:e.user.image,name:e.user.name??e.user.id}),t.jsx("div",{className:"str-chat__message-inner",style:{marginInlineEnd:0,marginInlineStart:0},children:t.jsx("div",{className:"str-chat__message-bubble-wrapper",children:t.jsx("div",{className:"str-chat__message-bubble",style:{padding:0,borderRadius:0,overflow:"visible",background:"transparent"},children:n?t.jsx("div",{className:Oe(s),children:t.jsx(ze,{attachment:n,isMyMessage:s})}):s?t.jsx(Dt,{...a}):t.jsx(Pt,{...a})})})})]})},Bs=({message:e})=>{const s=ve(e);if(s)return t.jsx("div",{className:Oe(!0),children:t.jsx(ze,{attachment:s,isMyMessage:!0})});const n=je(e);return n?t.jsx(Dt,{...n}):null},Us=({message:e})=>{const s=ve(e);if(s)return t.jsx("div",{className:Oe(!1),children:t.jsx(ze,{attachment:s,isMyMessage:!1})});const n=je(e);return n?t.jsx(Pt,{...n}):null},Vs=Object.assign($s,{Creator:Bs,Visitor:Us}),Gs={isUnlocking:()=>!1},Hs={LockedAttachment:Gs},Ot=m.createContext({}),Ys=Ot.Provider;function zt(e){return m.useContext(Ot)[e]??Hs[e]}const qs=({size:e=15})=>t.jsx("svg",{width:e,height:e,viewBox:"0 0 15 15",fill:"none","aria-hidden":"true",children:t.jsx("path",{d:"M12.003 9a.985.985 0 0 1-.652.934l-3.223 1.191-1.188 3.226a.995.995 0 0 1-1.867 0l-1.195-3.226L.65 9.937a.995.995 0 0 1 0-1.867l3.227-1.195 1.187-3.226a.995.995 0 0 1 1.868 0l1.195 3.226 3.226 1.187a.99.99 0 0 1 .649.938m3-5.83a.52.52 0 0 1-.344.492l-1.702.63-.627 1.703a.525.525 0 0 1-.986 0l-.63-1.704-1.704-.627a.525.525 0 0 1 0-.986l1.703-.63.627-1.704a.526.526 0 0 1 .986 0l.631 1.703 1.704.627a.52.52 0 0 1 .342.495",fill:"currentColor",fillOpacity:.55})}),Xs=e=>{var s;return((s=e.metadata)==null?void 0:s.custom_type)==="MESSAGE_TIP"},Ws=e=>{var s;return((s=e.metadata)==null?void 0:s.custom_type)==="MESSAGE_PAID"},fe=e=>{var s;return((s=e.metadata)==null?void 0:s.custom_type)==="MESSAGE_CHATBOT"},Ks=e=>{var s;return((s=e.metadata)==null?void 0:s.custom_type)==="MESSAGE_ATTACHMENT"},Ft=e=>Xs(e)||Ws(e),Js=e=>{var s;return Ft(e)&&!((s=e.text)!=null&&s.trim())},Ne=({message:e,standalone:s=!1,isMyMessage:n=!1,hasAttachment:a=!1})=>{var u;const r=Ft(e),i=fe(e);if(!r&&!i)return null;if(r){const x=(u=e.metadata)==null?void 0:u.amount_text;if(!x)return null;const c=s?"message-tip-standalone":"message-tag message-tag--tip",f=s?`${x} tip`:`Delivered with ${x} tip`;return t.jsxs("div",{className:c,children:[t.jsx(N.GiftIcon,{size:s?14:12}),t.jsx("span",{children:f})]})}const o=n&&a,l=o?"Sent with AI":"Sent with DM Agent",d=["message-chatbot-indicator",n?"message-chatbot-indicator--sender":"message-chatbot-indicator--receiver",o?"message-chatbot-indicator--attachment":"message-chatbot-indicator--text"].join(" "),h=t.jsx("span",{className:"message-chatbot-indicator__label",children:l}),g=t.jsx("span",{className:"message-chatbot-indicator__icon",children:t.jsx(qs,{size:o?12:15})});return t.jsx("div",{className:d,"data-testid":"message-chatbot-indicator",children:n&&!o?t.jsxs(t.Fragment,{children:[h,g]}):t.jsxs(t.Fragment,{children:[g,h]})})},$t=({selected:e,onVoteUp:s,onVoteDown:n})=>t.jsxs("div",{className:"message-vote-buttons",children:[t.jsx("button",{type:"button",className:C("message-vote-button focus-ring",{"message-vote-button--selected":e==="up"}),onClick:s,"aria-label":"Good response","aria-pressed":e==="up","data-tooltip":"Good response",children:t.jsx(N.ThumbsUpIcon,{size:16,weight:e==="up"?"fill":"regular"})}),t.jsx("button",{type:"button",className:C("message-vote-button focus-ring",{"message-vote-button--selected":e==="down"}),onClick:n,"aria-label":"Bad response","aria-pressed":e==="down","data-tooltip":"Bad response",children:t.jsx(N.ThumbsDownIcon,{size:16,weight:e==="down"?"fill":"regular"})})]}),Zs=e=>{var tt,st,nt,at,rt,it,ot,lt,ct,dt,ut,mt,ht,xt;const{additionalMessageInputProps:s,chatbotVotingEnabled:n,editing:a,endOfGroup:r,firstOfGroup:i,groupedByUser:o,handleAction:l,handleOpenThread:d,handleRetry:h,highlighted:g,isMessageAIGenerated:u,isMyMessage:x,message:c,renderText:f,threadList:b,viewerLanguage:p}=e,{client:w}=_.useChatContext("CustomMessage"),{channel:j}=_.useChannelStateContext("CustomMessage"),{isUnlocking:T,onUnlockClick:I,onFetchSource:R,onDownloadClick:O}=zt("LockedAttachment"),[L,D]=m.useState(!1),y=_.useMessageReminder(c.id),{selected:M,voteUp:P,voteDown:B}=Et(c),{Attachment:E=_.Attachment,EditMessageModal:S=_.EditMessageModal,MessageActions:A,MessageBlocked:F=_.MessageBlocked,MessageBouncePrompt:z=_.MessageBouncePrompt,MessageDeleted:U=_.MessageDeleted,MessageIsThreadReplyInChannelButtonIndicator:Y=_.MessageIsThreadReplyInChannelButtonIndicator,MessageRepliesCountButton:G=_.MessageRepliesCountButton,ReminderNotification:$=_.ReminderNotification,StreamedMessageText:v=_.StreamedMessageText,PinIndicator:k}=_.useComponentContext("CustomMessage"),V=_.messageHasAttachments(c),H=_.messageHasReactions(c),he=m.useMemo(()=>u==null?void 0:u(c),[u,c]),q=m.useMemo(()=>{const oe=c.attachments??[],xe=c.shared_location?[c.shared_location,...oe]:oe;if(!fe(c))return xe;const ft=xe.filter(gt=>!("type"in gt)||!Fe(gt));return ft.length===xe.length?xe:ft},[c]),te=m.useMemo(()=>{const oe=Le({message:c,viewerLanguage:p});return oe===c.text?c:{...c,text:oe}},[c,p]);if(_.isDateSeparatorMessage(c))return null;if(c.deleted_at||c.type==="deleted")return t.jsx(U,{message:c});if(_.isMessageBlocked(c))return t.jsx(F,{});const X=!b&&!!c.reply_count,Q=!b&&c.show_in_channel&&c.parent_id,J=c.status==="failed"&&((tt=c.error)==null?void 0:tt.status)!==403,Ke=_.isMessageBounced(c);let se;J?se=()=>h(c):Ke&&(se=()=>D(!0));const re=x(),ds=C("str-chat__message str-chat__message-simple",`str-chat__message--${c.type}`,`str-chat__message--${c.status}`,re?"str-chat__message--me str-chat__message-simple--me":"str-chat__message--other",c.text?"str-chat__message--has-text":"has-no-text",{"str-chat__message--has-attachment":V,"str-chat__message--highlighted":g,"str-chat__message--pinned pinned-message":c.pinned,"str-chat__message--with-reactions":H,"str-chat__message-send-can-be-retried":(c==null?void 0:c.status)==="failed"&&((st=c==null?void 0:c.error)==null?void 0:st.status)!==403,"str-chat__message-with-thread-link":X||Q,"str-chat__virtual-message__wrapper--end":r,"str-chat__virtual-message__wrapper--first":i,"str-chat__virtual-message__wrapper--group":o}),Je=c.poll_id&&w.polls.fromState(c.poll_id),Ze=Js(c),ie=fe(c),Qe=Ks(c),_e=!!(q!=null&&q.length&&!c.quoted_message),et=ie&&re&&_e;return t.jsxs(t.Fragment,{children:[a&&t.jsx(S,{additionalMessageInputProps:s}),L&&t.jsx(_.MessageBounceModal,{MessageBouncePrompt:z,onClose:()=>D(!1),open:L}),t.jsxs("div",{className:ds,"data-message-id":c.id,children:[k&&t.jsx(k,{}),!!y&&t.jsx($,{reminder:y}),c.user&&t.jsx(Z,{className:"str-chat__avatar str-chat__message-sender-avatar",id:c.user.id,image:c.user.image,name:c.user.name||c.user.id,size:24,shape:"circle",dmAgentEnabled:ie}),t.jsx("div",{className:C("str-chat__message-inner",{"str-chat__simple-message--error-failed":J||Ke}),"data-testid":"message-inner",onClick:se,onKeyDown:se,role:se?"button":void 0,tabIndex:se?0:void 0,style:{marginInlineEnd:0,marginInlineStart:0},children:Qe?t.jsxs("div",{className:"str-chat__message-bubble-wrapper",children:[re?t.jsxs("div",{className:"flex items-center gap-2",children:[A&&t.jsx(A,{}),t.jsx(Te.Sent,{title:(nt=c.metadata)==null?void 0:nt.attachment_title,mimeType:(at=c.metadata)==null?void 0:at.attachment_mime_type,thumbnailUrl:(rt=c.metadata)==null?void 0:rt.attachment_thumbnail,amountText:(it=c.metadata)==null?void 0:it.amount_text,detail:(ot=c.metadata)==null?void 0:ot.attachment_detail,paymentStatus:(lt=c.metadata)==null?void 0:lt.payment_status,onPreviewClick:()=>I==null?void 0:I(c,j),onFetchSource:async()=>await(R==null?void 0:R(c,j))})]}):t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(Te.Received,{title:(ct=c.metadata)==null?void 0:ct.attachment_title,mimeType:(dt=c.metadata)==null?void 0:dt.attachment_mime_type,thumbnailUrl:(ut=c.metadata)==null?void 0:ut.attachment_thumbnail,amountText:(mt=c.metadata)==null?void 0:mt.amount_text,detail:(ht=c.metadata)==null?void 0:ht.attachment_detail,paymentStatus:(xt=c.metadata)==null?void 0:xt.payment_status,isUnlocking:T(c.id),onUnlockClick:()=>I==null?void 0:I(c,j),onFetchSource:async()=>await(R==null?void 0:R(c,j)),onDownloadClick:()=>O==null?void 0:O(c,j)}),A&&t.jsx(A,{})]}),c.text&&t.jsx("div",{className:"str-chat__message-bubble",children:t.jsx(_.MessageText,{message:te,renderText:f})})]}):Ze?t.jsx(Ne,{message:c,standalone:!0}):t.jsx("div",{className:"str-chat__message-bubble-wrapper",children:t.jsxs("div",{className:"str-chat__message-bubble",children:[ie&&!et&&t.jsx(Ne,{message:c,hasAttachment:_e,isMyMessage:re}),Je&&t.jsx(_.Poll,{poll:Je}),q!=null&&q.length&&!c.quoted_message?t.jsx(E,{actionHandler:l,attachments:q}):null,he?t.jsx(v,{message:te,renderText:f}):t.jsx(_.MessageText,{message:te,renderText:f}),t.jsx(_.MessageErrorIcon,{})]})})}),!Qe&&!Ze&&t.jsxs("div",{className:"str-chat__message-footer",children:[(!ie||et)&&t.jsx(Ne,{message:c,hasAttachment:_e,isMyMessage:re}),n&&ie&&t.jsx($t,{selected:M,onVoteUp:P,onVoteDown:B})]}),X&&t.jsx(G,{onClick:d,reply_count:c.reply_count}),Q&&t.jsx(Y,{})]},c.id)]})},Qs=m.memo(Zs,(e,s)=>e.chatbotVotingEnabled!==s.chatbotVotingEnabled||e.viewerLanguage!==s.viewerLanguage?!1:_.areMessageUIPropsEqual(e,s)),en=e=>{const s=_.useMessageContext("CustomMessage");return t.jsx(Qs,{...s,...e})},tn=()=>{var n;const{handleDelete:e,message:s}=_.useMessageContext("CustomMessageActions");return((n=s.metadata)==null?void 0:n.payment_status)==="paid"?null:t.jsx(Me.DefaultDropdownActionButton,{onClick:e,"aria-label":"Delete",title:"Delete",className:"bg-marble rounded-full p-2 hover:bg-sand transition-all",children:t.jsx(N.TrashSimpleIcon,{size:16,weight:"light","aria-hidden":!0})})},sn=()=>{const{handleFlag:e}=_.useMessageContext("CustomMessageActions");return t.jsx(Me.DefaultDropdownActionButton,{onClick:e,"aria-label":"Report",title:"Report",className:"bg-marble rounded-full p-2 hover:bg-sand transition-all",children:t.jsx(N.FlagIcon,{size:16,weight:"light","aria-hidden":!0})})},nn=()=>{var s;const{message:e}=_.useMessageContext("CustomMessageActions");return((s=e.metadata)==null?void 0:s.custom_type)!=="MESSAGE_ATTACHMENT"?null:t.jsx(Me.MessageActions,{messageActionSet:[{Component:tn,placement:"quick",type:"delete"},{Component:sn,placement:"quick",type:"flag"}]})},an=({link:e,onDismiss:s})=>{const{og_scrape_url:n,title:a,image_url:r}=e,i=o=>{o.preventDefault(),s(n)};return t.jsxs("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"relative block w-full rounded-[24px] bg-[#121110] p-2 no-underline transition-opacity hover:opacity-90",children:[r&&t.jsx("img",{src:r,alt:a||"",className:"h-[180px] w-full rounded-[20px] object-cover"}),t.jsx("button",{type:"button",onClick:i,className:"absolute right-4 top-4 flex size-6 items-center justify-center rounded-full border border-white/40 bg-white/70 backdrop-blur-2xl focus-ring","aria-label":"Close link preview",children:t.jsx(N.XIcon,{className:"size-4 text-black/90"})}),t.jsxs("div",{className:"p-2",children:[a&&t.jsx("div",{className:"truncate text-[14px] font-medium leading-5 text-white",children:a}),t.jsx("div",{className:"truncate text-[12px] leading-4 text-white/55",children:n})]})]})},rn=e=>({linkPreviews:Array.from(e.previews.values()).filter(s=>Se.LinkPreviewsManager.previewIsLoaded(s)||Se.LinkPreviewsManager.previewIsLoading(s))}),on=()=>{const{linkPreviewsManager:e}=_.useMessageComposer(),{linkPreviews:s}=_.useStateStore(e.state,rn),n=r=>{e.dismissPreview(r)};return s.length>0?t.jsx("div",{className:"flex flex-col items-stretch w-full gap-2 mb-4",children:s.map(r=>t.jsx(an,{link:r,onDismiss:n},r.og_scrape_url))}):null},Bt=m.createContext(!1),ln=({sendMessage:e,disabled:s,...n})=>t.jsx("button",{...n,type:"button","aria-label":"Send",disabled:s,onClick:e,children:t.jsx(N.ArrowUpIcon,{weight:"bold",className:"size-4"})}),cn=()=>{const e=m.useContext(Bt),{handleSubmit:s}=_.useMessageInputContext(),n=_.useMessageComposerHasSendableData(),a=e||!n,{SendButton:r=ln,AttachmentPreviewList:i=_.AttachmentPreviewList}=_.useComponentContext("CustomMessageInput");return t.jsxs("div",{className:"central-container flex flex-col gap-2 min-w-0 w-full p-2 bg-white rounded-[1.5rem] shadow-[0_4px_16px_0_rgba(0,0,0,0.08),0_1px_2px_0_rgba(0,0,0,0.04),0_0_0_1px_rgba(0,0,0,0.04)]",children:[t.jsx(_.QuotedMessagePreview,{}),t.jsx(on,{}),t.jsx(i,{}),t.jsxs("div",{className:"flex",children:[t.jsx("div",{className:"w-full ml-2 mr-4 self-center leading-[0]",children:t.jsx(_.TextareaComposer,{"aria-disabled":e||void 0,className:"w-full resize-none outline-none leading-5 placeholder:text-black/30 text-sm",autoFocus:!e,maxRows:4,readOnly:e,tabIndex:e?-1:void 0})}),t.jsx(r,{sendMessage:s,"aria-label":"Send",className:"str-chat__send-button mt-auto flex justify-center items-center flex-shrink-0 rounded-full size-8 bg-[#121110] disabled:bg-[#F1F0EE] disabled:text-black/20 text-white focus-ring","data-testid":"send-button",disabled:a,type:"button"})]})]})},dn=({renderActions:e,renderFooter:s,disabled:n=!1,disabledReason:a})=>{var o;const{channel:r}=_.useChannelStateContext(),i=((o=r==null?void 0:r.data)==null?void 0:o.frozen)===!0;return n?t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"messaging-composer-locked-panel flex w-full flex-col items-center justify-center gap-3 px-6 py-4",children:a?t.jsx("p",{className:"max-w-[345px] text-center text-xs font-normal leading-[1.3] tracking-[0.12px] text-black/40",children:a}):null}),s==null?void 0:s()]}):t.jsxs("div",{className:"flex flex-col gap-4 p-4",children:[t.jsxs("div",{inert:i?"":void 0,"aria-disabled":i||void 0,className:"message-input flex items-end gap-4 aria-disabled:opacity-40",children:[e&&t.jsx("div",{className:"flex h-12 shrink-0 items-center justify-center",children:e()}),t.jsx(Bt.Provider,{value:i,children:t.jsx(_.MessageInput,{Input:cn})})]}),s==null?void 0:s()]})},un=["SYSTEM_DM_AGENT_PAUSED","SYSTEM_DM_AGENT_RESUMED"],mn={SYSTEM_DM_AGENT_PAUSED:"DM Agent has left the conversation",SYSTEM_DM_AGENT_RESUMED:"DM Agent has rejoined the conversation"},hn=["SYSTEM_AGE_SAFETY_BLOCKED"],xn={SYSTEM_AGE_SAFETY_BLOCKED:"This user isn’t able to reply because they don’t meet our age safety guidelines."},ye="age safety guidelines.",fn="https://linktr.ee/s/about/contact",wt=e=>un.includes(e),gn=e=>hn.includes(e),bn=e=>{var a;const s=(a=e.metadata)==null?void 0:a.custom_type;if(wt(s))return{kind:"dm-agent",type:s};if(gn(s))return{kind:"age-safety",type:s};const n=e.dm_agent_system_type;if(wt(n))return{kind:"dm-agent",type:n}},pn=e=>{const s=e.indexOf(ye);if(s===-1)return e;const n=s+ye.length;return t.jsxs(t.Fragment,{children:[e.slice(0,s),t.jsx("a",{href:fn,target:"_blank",rel:"noopener noreferrer",className:"mes-age-safety-system-message__emphasis font-medium text-inherit underline",children:ye}),e.slice(n)]})},vn=e=>{var a,r;const s=e.message.hide_date===!0,n=bn(e.message);if((n==null?void 0:n.kind)==="dm-agent"){const i=((a=e.message.text)==null?void 0:a.trim())||mn[n.type];return t.jsxs("div",{className:"str-chat__message--system","data-testid":"message-system",children:[t.jsxs("div",{className:"mes-dm-agent-system-message mx-auto mb-2 inline-flex w-fit max-w-[min(100%,480px)] items-center justify-center gap-[10px] rounded-[12px] border border-[rgba(0,0,0,0.08)] p-3 text-[rgba(0,0,0,0.55)]","data-testid":"dm-agent-system-message","data-dm-agent-system-type":n.type,children:[t.jsx(N.SparkleIcon,{size:16,weight:"regular","aria-hidden":!0,className:"mes-dm-agent-system-message__sparkle shrink-0"}),t.jsx("p",{className:"mes-dm-agent-system-message__text m-0 text-center text-[14px] font-normal leading-5 tracking-[0.21px]",children:i})]}),!s&&t.jsx(_.MessageTimestamp,{message:e.message})]})}if((n==null?void 0:n.kind)==="age-safety"){const i=((r=e.message.text)==null?void 0:r.trim())||xn[n.type];return t.jsxs("div",{className:"str-chat__message--system","data-testid":"message-system",children:[t.jsxs("div",{className:"mes-age-safety-system-message box-border mx-auto mb-2 flex w-full max-w-[329px] items-start justify-center gap-3 rounded-[12px] border border-[var(--border-secondary,rgba(0,0,0,0.08))] bg-[var(--bg-warning-subtle,#fef3c6)] px-2 py-4 pl-5 text-[color:var(--text-warning-on-warning,#894b00)]","data-testid":"age-safety-system-message","data-age-safety-system-type":n.type,children:[t.jsx(N.ProhibitIcon,{size:24,weight:"duotone","aria-hidden":!0,className:"mes-age-safety-system-message__icon shrink-0 text-[color:var(--text-warning-on-warning,#894b00)]","data-testid":"age-safety-system-message-icon"}),t.jsx("div",{className:"mes-age-safety-system-message__content min-w-0 flex-[1_0_0]",children:t.jsx("p",{className:"m-0 text-balance text-left text-[12px] font-normal leading-4 tracking-[0.21px] text-[color:var(--text-warning-on-warning,#894b00)]",children:pn(i)})})]}),!s&&t.jsx(_.MessageTimestamp,{message:e.message})]})}return t.jsxs("div",{className:"str-chat__message--system","data-testid":"message-system",children:[t.jsxs("div",{className:"str-chat__message--system__text",children:[t.jsx("div",{className:"str-chat__message--system__line"}),t.jsx("p",{children:e.message.text}),t.jsx("div",{className:"str-chat__message--system__line"})]}),!s&&t.jsx(_.MessageTimestamp,{message:e.message})]})},Ut=m.createContext(!1),Ce=({cx:e,index:s})=>t.jsx("circle",{cx:e,cy:"6.15",r:"3.9",fill:"#A0A0A0",children:t.jsx("animateTransform",{attributeName:"transform",type:"translate",values:"0 0; 0 -2.25; 0 0;",dur:"900ms",begin:`${120*s}ms`,repeatCount:"indefinite"})}),jn=new Set([_.AIStates.Thinking,_.AIStates.Generating,_.AIStates.ExternalSources]),wn=({threadList:e})=>{var f,b;const{channel:s,channelConfig:n,thread:a}=_.useChannelStateContext(),{client:r}=_.useChatContext(),{typing:i={}}=_.useTypingContext(),{aiState:o}=_.useAIState(s),l=m.useContext(Ut);if(!e&&l&&jn.has(o)){const p=_n(s,(f=r.user)==null?void 0:f.id);return t.jsx(_t,{avatarId:(p==null?void 0:p.id)??"ai-agent",avatarName:(p==null?void 0:p.name)??(p==null?void 0:p.id)??"Agent",avatarImage:p==null?void 0:p.image,testId:"typing-indicator-ai"})}if((n==null?void 0:n.typing_events)===!1)return null;const h=e?[]:Object.values(i).filter(({parent_id:p,user:w})=>{var j;return(w==null?void 0:w.id)!==((j=r.user)==null?void 0:j.id)&&!p}),g=e?Object.values(i).filter(({parent_id:p,user:w})=>{var j;return(w==null?void 0:w.id)!==((j=r.user)==null?void 0:j.id)&&p===(a==null?void 0:a.id)}):[],u=e?g:h;if(!u.length)return null;const x=(b=u[0])==null?void 0:b.user,c=x!=null&&x.id&&s.state.members[x.id]?s.state.members[x.id].user:void 0;return t.jsx(_t,{avatarId:(x==null?void 0:x.id)??(c==null?void 0:c.id)??"typing-user",avatarName:(x==null?void 0:x.name)??(c==null?void 0:c.name)??(x==null?void 0:x.id)??"Typing user",avatarImage:(x==null?void 0:x.image)??(c==null?void 0:c.image),testId:"typing-indicator"})},_t=({avatarId:e,avatarName:s,avatarImage:n,testId:a})=>t.jsx("div",{className:"str-chat__li str-chat__li--single str-chat__typing-indicator !static","data-testid":a,style:{marginBottom:"var(--messaging-channel-input-spacer-height, 80px)"},children:t.jsxs("div",{className:"str-chat__message str-chat__message-simple str-chat__message--regular str-chat__message--received str-chat__message--other str-chat__message--has-text",children:[t.jsx(Z,{className:"str-chat__avatar str-chat__message-sender-avatar",id:e,name:s,image:n??void 0,size:24,shape:"circle"}),t.jsx("div",{className:"str-chat__message-inner mx-0",children:t.jsx("div",{className:"str-chat__message-bubble-wrapper",children:t.jsx("div",{className:"str-chat__message-bubble",children:t.jsx("div",{className:"str-chat__message-text min-h-11 flex items-center",children:t.jsx("div",{className:"str-chat__message-text-inner str-chat__message-simple-text-inner",children:t.jsxs("svg",{"aria-hidden":"true",className:"block overflow-visible",viewBox:"0 0 32 12.3",width:"32",height:"13",overflow:"visible",children:[t.jsx(Ce,{cx:"4",index:0}),t.jsx(Ce,{cx:"16",index:1}),t.jsx(Ce,{cx:"28",index:2})]})})})})})})]})});function _n(e,s){var a;const n=((a=e==null?void 0:e.state)==null?void 0:a.members)??{};for(const r of Object.values(n)){const i=r==null?void 0:r.user;if(i&&i.id!==s)return i}}const Vt=()=>null,Nn=({className:e,message:s})=>t.jsxs("div",{className:C("flex items-center justify-center h-full",e),children:[t.jsxs("svg",{viewBox:"0 0 100 100",className:"size-8 fill-pebble",stroke:"none",children:[t.jsx("circle",{cx:"6",cy:"50",r:"6",children:t.jsx("animateTransform",{attributeName:"transform",dur:"1s",type:"translate",values:"0 15 ; 0 -15; 0 15",repeatCount:"indefinite",begin:"0.1"})}),t.jsx("circle",{cx:"30",cy:"50",r:"6",children:t.jsx("animateTransform",{attributeName:"transform",dur:"1s",type:"translate",values:"0 10 ; 0 -10; 0 10",repeatCount:"indefinite",begin:"0.2"})}),t.jsx("circle",{cx:"54",cy:"50",r:"6",children:t.jsx("animateTransform",{attributeName:"transform",dur:"1s",type:"translate",values:"0 5 ; 0 -5; 0 5",repeatCount:"indefinite",begin:"0.3"})})]}),s&&t.jsx("span",{className:"text-stone",children:s})]}),ge=m.memo(()=>t.jsx("div",{className:"messaging-loading-state flex items-center justify-center h-full",children:t.jsxs("div",{className:"flex items-center",children:[t.jsx(Nn,{className:"w-6 h-6"}),t.jsx("span",{className:"text-sm text-stone",children:"Loading messages"})]})}));ge.displayName="LoadingState";const ne="size-10 rounded-full hover:bg-[#E5E4E1] flex items-center justify-center transition-colors duration-150 focus-ring",Nt="Replies instantly with AI assistant",yn=({onBack:e,showBackButton:s,showStarButton:n=!1,dmAgentEnabled:a=!1,onLeaveConversation:r,onBlockParticipant:i,showDeleteConversation:o=!0,showBlockParticipant:l=!0,showReportParticipant:d=!0,onDeleteConversationClick:h,onBlockParticipantClick:g,onReportParticipantClick:u,customChannelActions:x,showActionsMenu:c=!0})=>{var I,R,O,L,D;const{channel:f}=_.useChannelStateContext(),b=m.useMemo(()=>{var P,B;const y=(P=f._client)==null?void 0:P.userID;return y?Object.values(((B=f.state)==null?void 0:B.members)||{}).find(E=>{var S;return((S=E.user)==null?void 0:S.id)&&E.user.id!==y}):void 0},[(I=f._client)==null?void 0:I.userID,(R=f.state)==null?void 0:R.members]),p=Re(b==null?void 0:b.user),w=(O=b==null?void 0:b.user)==null?void 0:O.image,j=kt(f),T=async()=>{try{j?await f.unpin():await f.pin()}catch(y){console.error("[CustomChannelHeader] Failed to update pinned status:",y)}};return t.jsxs("div",{className:"@container",children:[t.jsxs("div",{className:"grid grid-cols-[1fr_auto_1fr] w-full items-center @lg:hidden px-6 py-3",children:[t.jsx("div",{className:"flex items-center gap-2",children:s&&t.jsx("button",{className:C(ne,"messaging-channel-view-back-button-mobile bg-[#F1F0EE]"),onClick:e||(()=>{}),type:"button","aria-label":"Back to conversations",children:t.jsx(N.ArrowLeftIcon,{className:"size-5 text-black/90"})})}),t.jsxs("div",{className:"flex flex-col gap-1 items-center",children:[t.jsx(Z,{id:((L=b==null?void 0:b.user)==null?void 0:L.id)||f.id||"unknown",name:p,image:w,starred:n&&j,dmAgentEnabled:a,size:48}),t.jsx("p",{className:"text-center text-xs font-medium text-black/90",children:p}),a&&t.jsxs("div",{className:"flex items-center gap-1 text-[10px] leading-3 text-black/55",children:[t.jsx(N.SparkleIcon,{className:"size-3 shrink-0 text-black/55"}),t.jsx("span",{children:Nt})]})]}),t.jsxs("div",{className:"flex justify-end items-center gap-2",children:[n&&t.jsx("button",{className:ne,onClick:T,type:"button","aria-label":j?"Unstar conversation":"Star conversation",children:t.jsx(N.StarIcon,{className:C("size-5",{"text-yellow-600":j,"text-black/90":!j}),weight:j?"duotone":"regular"})}),c&&t.jsx(vt,{channel:f,participant:b,showDeleteConversation:o,showBlockParticipant:l,showReportParticipant:d,onLeaveConversation:r,onBlockParticipant:i,onDeleteConversationClick:h,onBlockParticipantClick:g,onReportParticipantClick:u,customChannelActions:x,triggerClassName:C(ne,"bg-[#F1F0EE]")})]})]}),t.jsxs("div",{className:"px-6 py-3 hidden @lg:flex items-center justify-between gap-3 min-h-12 border-b border-b-black/[0.08]",children:[t.jsxs("div",{className:"flex items-center gap-4 min-w-0",children:[s&&e&&t.jsx("button",{className:C(ne,"messaging-channel-view-back-button-desktop"),type:"button",onClick:e,"aria-label":"Back to conversations",children:t.jsx(N.ArrowLeftIcon,{className:"size-5 text-black/90"})}),t.jsx(Z,{id:((D=b==null?void 0:b.user)==null?void 0:D.id)||f.id||"unknown",name:p,image:w,starred:n&&j,dmAgentEnabled:a,size:48}),t.jsxs("div",{className:"min-w-0",children:[t.jsx("h1",{className:"font-medium text-black/90 truncate",children:p}),a&&t.jsxs("div",{className:"mt-0.5 flex items-center gap-1 text-[10px] leading-3 text-black/55",children:[t.jsx(N.SparkleIcon,{className:"size-3 shrink-0 text-black/55"}),t.jsx("span",{className:"truncate",children:Nt})]})]})]}),t.jsxs("div",{className:"flex items-center gap-2",children:[n&&t.jsx("button",{className:ne,onClick:T,type:"button","aria-label":j?"Unstar conversation":"Star conversation",children:t.jsx(N.StarIcon,{className:C("size-6",{"text-yellow-600":j,"text-black/90":!j}),weight:j?"duotone":"regular"})}),c&&t.jsx(vt,{channel:f,participant:b,showDeleteConversation:o,showBlockParticipant:l,showReportParticipant:d,onLeaveConversation:r,onBlockParticipant:i,onDeleteConversationClick:h,onBlockParticipantClick:g,onReportParticipantClick:u,customChannelActions:x,triggerClassName:ne})]})]})]})},Cn=({onBack:e,showBackButton:s,renderMessageInputActions:n,renderMessageInputFooter:a,renderConversationFooter:r,onLeaveConversation:i,onBlockParticipant:o,showDeleteConversation:l=!0,onDeleteConversationClick:d,onBlockParticipantClick:h,onReportParticipantClick:g,showBlockParticipant:u=!0,showReportParticipant:x=!0,composerDisabled:c=!1,composerDisabledReason:f,showStarButton:b=!1,chatbotVotingEnabled:p=!1,renderChannelBanner:w,customChannelActions:j,renderMessage:T,dmAgentEnabled:I=!1,viewerLanguage:R,showChannelInfo:O=!0})=>{var S,A,F,z,U,Y;const{channel:L}=_.useChannelStateContext(),D=m.useMemo(()=>{var v,k;const G=(v=L._client)==null?void 0:v.userID;return G?Object.values(((k=L.state)==null?void 0:k.members)||{}).find(V=>{var H;return((H=V.user)==null?void 0:H.id)&&V.user.id!==G}):void 0},[(S=L._client)==null?void 0:S.userID,(A=L.state)==null?void 0:A.members]),y=m.useMemo(()=>{var v,k;const G=(v=L._client)==null?void 0:v.userID;return G?Object.values(((k=L.state)==null?void 0:k.members)||{}).find(V=>{var H;return((H=V.user)==null?void 0:H.id)===G}):void 0},[(F=L._client)==null?void 0:F.userID,(z=L.state)==null?void 0:z.members]),M=((U=y==null?void 0:y.user)==null?void 0:U.is_account)??(y==null?void 0:y.is_account),P=((Y=D==null?void 0:D.user)==null?void 0:Y.is_account)??(D==null?void 0:D.is_account),B=I&&M===!1&&P===!0,E=m.useCallback(G=>{const{message:$}=_.useMessageContext("ChannelView"),v=t.jsx(en,{...G,chatbotVotingEnabled:p,viewerLanguage:R});return!T||!$?v:T(v,$)},[p,T,R]);return t.jsx(t.Fragment,{children:t.jsx(_.WithComponents,{overrides:{Message:E,MessageActions:nn},children:t.jsxs(_.Window,{children:[t.jsx("div",{children:t.jsx(yn,{onBack:e,showBackButton:s,showActionsMenu:O,showStarButton:b,dmAgentEnabled:B,onLeaveConversation:i,onBlockParticipant:o,showDeleteConversation:l,showBlockParticipant:u,showReportParticipant:x,onDeleteConversationClick:d,onBlockParticipantClick:h,onReportParticipantClick:g,customChannelActions:j})},"lt-channel-header"),w?t.jsx(m.Fragment,{children:w()},"lt-channel-banner"):null,t.jsx("div",{className:"flex-1 overflow-hidden relative",children:t.jsx(_.MessageList,{hideDeletedMessages:!0,hideNewMessageSeparator:!1})},"lt-channel-message-list"),r?t.jsx(m.Fragment,{children:r(L)},"lt-channel-conversation-footer"):null,t.jsx(dn,{...n&&{renderActions:()=>n==null?void 0:n(L)},renderFooter:()=>a==null?void 0:a(L),disabled:c,disabledReason:f},"lt-channel-message-input")]})})})},$e=m.memo(({channel:e,onBack:s,showBackButton:n=!1,renderMessageInputActions:a,renderMessageInputFooter:r,renderConversationFooter:i,onLeaveConversation:o,onBlockParticipant:l,className:d,CustomChannelEmptyState:h=Vt,showDeleteConversation:g=!0,onDeleteConversationClick:u,onBlockParticipantClick:x,onReportParticipantClick:c,showBlockParticipant:f=!0,showReportParticipant:b=!0,composerDisabled:p=!1,composerDisabledReason:w,dmAgentEnabled:j,messageMetadata:T,onMessageSent:I,showStarButton:R=!1,chatbotVotingEnabled:O=!1,renderChannelBanner:L,customChannelActions:D,renderMessage:y,onMessageLinkClick:M,sendButton:P,attachmentPreviewList:B,viewerLanguage:E,showChannelInfo:S=!0})=>{const A=m.useCallback(async(z,U,Y)=>{var H;const G=((H=e.data)==null?void 0:H.chatbot_paused)===!0,$=j&&!G,v={...U,...$&&{silent:!0},...T&&{metadata:{...U.metadata??{},...T}}},k={...Y,...$&&{skip_push:!0}},V=await e.sendMessage(v,k);return I==null||I(V),V},[e,j,T,I]),F=m.useRef(null);return m.useEffect(()=>{if(!M)return;const z=F.current;if(!z)return;const U=Y=>{const G=Y.target,$=G==null?void 0:G.closest("a[href]"),v=$==null?void 0:$.getAttribute("href");if(!v)return;const k=$==null?void 0:$.closest("[data-message-id]"),V=k==null?void 0:k.getAttribute("data-message-id"),H=V?e.state.messages.find(he=>he.id===V):void 0;M(v,H)};return z.addEventListener("click",U),()=>z.removeEventListener("click",U)},[M,e]),t.jsx("div",{ref:F,className:C("messaging-channel-view h-full flex flex-col",d),children:t.jsx(Ut.Provider,{value:j??!1,children:t.jsx(_.Channel,{channel:e,MessageSystem:vn,EmptyStateIndicator:h,LoadingIndicator:ge,DateSeparator:ps,TypingIndicator:wn,doSendMessageRequest:A,...P?{SendButton:P}:{},...B?{AttachmentPreviewList:B}:{},children:t.jsx(Cn,{onBack:s,showBackButton:n,renderMessageInputActions:a,renderMessageInputFooter:r,renderConversationFooter:i,onLeaveConversation:o,onBlockParticipant:l,CustomChannelEmptyState:h,showDeleteConversation:g,onDeleteConversationClick:u,onBlockParticipantClick:x,onReportParticipantClick:c,showBlockParticipant:f,showReportParticipant:b,composerDisabled:p,composerDisabledReason:w,showStarButton:R,dmAgentEnabled:j,chatbotVotingEnabled:O,renderChannelBanner:L,customChannelActions:D,renderMessage:y,viewerLanguage:E,showChannelInfo:S})})})})});$e.displayName="ChannelView";const le=m.memo(({message:e,onBack:s})=>t.jsx("div",{className:"messaging-error-state flex items-center justify-center h-full p-8",children:t.jsxs("div",{className:"text-center max-w-sm",children:[t.jsx("div",{className:"w-24 h-24 bg-danger-alt/20 rounded-full flex items-center justify-center mx-auto mb-6",children:t.jsx("span",{className:"text-4xl",children:"⚠️"})}),t.jsx("h2",{className:"font-semibold text-charcoal mb-2",children:"Oops!"}),t.jsx("p",{className:"text-stone text-sm mb-6",children:e}),s&&t.jsx("button",{type:"button",onClick:s,className:"inline-flex items-center gap-2 px-4 py-2 text-sm font-medium text-white bg-[#7f22fe] hover:bg-primary-alt rounded-lg transition-colors focus-ring",children:"Go Back"})]})}));le.displayName="ErrorState";const kn=({capabilities:e={},renderMessageInputActions:s,renderConversationFooter:n,onChannelSelect:a,onExitConversation:r,initialParticipantFilter:i,initialParticipantData:o,CustomChannelEmptyState:l,onBlockParticipantClick:d,onReportParticipantClick:h,dmAgentEnabled:g,onMessageSent:u,chatbotVotingEnabled:x=!1,viewerLanguage:c,renderChannelBanner:f,customChannelActions:b,renderMessage:p,onMessageLinkClick:w,showChannelInfo:j})=>{const{client:T,isConnected:I,isLoading:R,error:O,refreshConnection:L,service:D,debug:y}=Ct(),[M,P]=m.useState(null),[B,E]=m.useState(null),[S,A]=m.useState(!1),{showDeleteConversation:F=!0}=e,z=m.useRef(o);z.current=o;const U=m.useRef(a);U.current=a;const Y=m.useRef(null),G=m.useRef(null);m.useEffect(()=>{G.current=M},[M]),m.useEffect(()=>{if(!T||!I)return;const k=T.userID;if(!k)return;const V=`${k}::${i}`;if(Y.current===V)return;Y.current=V;const H=()=>{Y.current===V&&(Y.current=null)};(async()=>{var q,te;try{y&&console.log("[MessagingShell] Loading initial conversation with:",i);const X=await T.queryChannels({type:"messaging",members:{$eq:[k,i]}},{},{limit:1});if(X.length>0){P(X[0]),E(null),(q=U.current)==null||q.call(U,X[0]),y&&console.log("[MessagingShell] Initial conversation loaded:",X[0].id);return}const Q=z.current;if(!Q||!D){H(),E("No conversation found with this account"),y&&console.log("[MessagingShell] No conversation found for:",i);return}try{const J=await D.startChannelWithParticipant({id:Q.id,name:Q.name,phone:Q.phone});P(J),E(null),(te=U.current)==null||te.call(U,J),y&&console.log("[MessagingShell] Channel created and loaded:",J.id)}catch(J){console.error("[MessagingShell] Failed to create conversation:",J),H(),E("Failed to create conversation")}}catch(X){console.error("[MessagingShell] Failed to load initial conversation:",X),H(),G.current||E("Failed to load conversation")}})()},[i,T,I,D,y]);const $=m.useRef(r);$.current=r;const v=m.useCallback(()=>{var k;P(null),A(!0),(k=$.current)==null||k.call($)},[]);return R?t.jsx(ge,{}):O?t.jsx(le,{message:O,onBack:L}):!I||!T?t.jsx(le,{message:"Not connected to messaging service",onBack:L}):B?t.jsx(le,{message:B}):S&&!M?t.jsx(le,{message:"Conversation ended"}):M?t.jsx("div",{className:"messaging-shell h-full bg-background-primary overflow-hidden",children:t.jsx("div",{className:"flex h-full min-h-0 flex-col",children:t.jsx($e,{channel:M,renderMessageInputActions:s,renderConversationFooter:n,renderChannelBanner:f,onLeaveConversation:v,onBlockParticipant:v,CustomChannelEmptyState:l,showDeleteConversation:F,onBlockParticipantClick:d,onReportParticipantClick:h,dmAgentEnabled:g,onMessageSent:u,chatbotVotingEnabled:x,viewerLanguage:c,customChannelActions:b,renderMessage:p,onMessageLinkClick:w,showChannelInfo:j},M.id)})}):t.jsx(ge,{})};function Sn(e){const s=e.state.pending_messages;if(s!=null&&s.length)for(const n of s)e.state.addMessageSorted(n.message)}const Gt=m.createContext({selectedChannel:void 0,onChannelSelect:()=>{},debug:!1,renderMessagePreview:void 0,viewerLanguage:void 0}),En=Gt.Provider,In=()=>m.useContext(Gt),Tn=(e,s)=>{const n=new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate())),r=new Date(Date.UTC(s.getUTCFullYear(),s.getUTCMonth(),s.getUTCDate())).getTime()-n.getTime();return Math.floor(r/(1e3*60*60*24))},Ht=e=>{const s=new Date;if(Math.floor((s.getTime()-e.getTime())/1e3)<60)return"Just now";const a=Tn(e,s);return a===0?e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit",hour12:!0}):a===1?"Yesterday":a<7?`${a}d`:a<28?`${Math.floor(a/7)}w`:e.toLocaleDateString("en-US",{month:"numeric",day:"numeric",year:"2-digit"})},Yt=m.memo(({channel:e,unread:s})=>{var O,L,D;const{selectedChannel:n,onChannelSelect:a,debug:r,renderMessagePreview:i,viewerLanguage:o}=In(),l=(n==null?void 0:n.id)===(e==null?void 0:e.id),d=()=>{e&&a(e)},h=y=>{const M=y.key==="Enter"||y.key===" ",P=y.repeat;!M||P||(y.preventDefault(),d())},u=Object.values(((O=e==null?void 0:e.state)==null?void 0:O.members)||{}).find(y=>{var M,P;return((M=y.user)==null?void 0:M.id)&&y.user.id!==((P=e==null?void 0:e._client)==null?void 0:P.userID)}),x=Re(u==null?void 0:u.user),c=(L=u==null?void 0:u.user)==null?void 0:L.image,f=(()=>{var M;const y=(M=e==null?void 0:e.state)==null?void 0:M.messages;if(y!=null&&y.length){for(let P=y.length-1;P>=0;P--)if(y[P].type!=="system")return y[P]}})(),p=(()=>{var S,A,F,z;const y=Le({message:f,viewerLanguage:o});if(((S=f==null?void 0:f.metadata)==null?void 0:S.custom_type)==="MESSAGE_TIP")return y?`💵 ${y}`:"💵 Sent a tip";if(((A=f==null?void 0:f.metadata)==null?void 0:A.custom_type)==="MESSAGE_PAID")return y?`💰 ${y}`:"💰 Sent a message";if(((F=f==null?void 0:f.metadata)==null?void 0:F.custom_type)==="MESSAGE_ATTACHMENT")return y?`📎 ${y}`:"📎 Sent an attachment";if(y)return y;const E=(z=f==null?void 0:f.attachments)==null?void 0:z[0];return E?E.og_scrape_url?E.og_scrape_url:E.type==="image"?"📷 Sent an image":E.type==="video"?"🎥 Sent a video":E.type==="audio"?"🎵 Sent audio":E.type==="file"?"📎 Sent a file":"📎 Sent an attachment":"No messages yet"})(),w=f!=null&&f.created_at?Ht(new Date(f.created_at)):"",j=f?fe(f):!1,T=i?i(f,p):`${j?"✨ ":""}${p}`,I=kt(e),R=s??0;return r&&console.log("📺 [ChannelList] 📋 CHANNEL PREVIEW RENDER",{channelId:e==null?void 0:e.id,isSelected:l,participantName:x,unreadCount:R,hasTimestamp:!!w}),t.jsx("div",{role:"button",tabIndex:0,onClick:d,onKeyDown:h,className:C("group w-full px-4 py-3 transition-colors text-left max-w-full overflow-hidden focus-ring rounded-[12px] [&+&]:mt-2",{"bg-black/[0.04]":l,"hover:bg-black/[0.02]":!l}),children:t.jsxs("div",{className:"flex items-start gap-4",children:[t.jsx(Z,{id:((D=u==null?void 0:u.user)==null?void 0:D.id)||e.id||"unknown",name:x,image:c,size:48,starred:I}),t.jsxs("div",{className:"flex-1 min-w-0 flex flex-col gap-1",children:[t.jsxs("div",{className:"flex items-center justify-between gap-2",children:[t.jsxs("h3",{className:C("text-sm font-medium truncate text-[#191918]"),children:[I&&t.jsx("span",{className:"sr-only",children:"Starred conversation. "}),x]}),w&&t.jsx("span",{className:"text-xs text-[#717070] flex-shrink-0",children:w})]}),t.jsxs("div",{className:"flex items-center justify-between gap-2 min-w-0",children:[t.jsx("p",{className:"text-sm text-[#717070] flex-1 line-clamp-1",children:T}),R>0&&t.jsx("span",{className:"bg-[#7f22fe] text-white text-[10px] rounded-full h-4 flex items-center justify-center p-1 min-w-4 text-center flex-shrink-0",children:R>99?"99+":R})]})]})]})})});Yt.displayName="CustomChannelPreview";const Mn={last_message_at:-1},qt=m.memo(({onChannelSelect:e,selectedChannel:s,filters:n,allowNewMessagesFromUnfilteredChannels:a=!1,channelRenderFilterFn:r,sort:i=Mn,className:o,customEmptyStateIndicator:l,renderMessagePreview:d,viewerLanguage:h})=>{const g=m.useRef(0);g.current++;const{debug:u=!1}=Ae(),x=m.useCallback(f=>{for(const b of f)Sn(b);return r?r(f):f},[r]);u&&console.log("📺 [ChannelList] 🔄 RENDER START",{renderCount:g.current,selectedChannelId:s==null?void 0:s.id,filters:n});const c=m.useMemo(()=>({selectedChannel:s,onChannelSelect:e,debug:u,renderMessagePreview:d,viewerLanguage:h}),[s,e,u,d,h]);return t.jsx("div",{className:C("messaging-channel-list h-full flex flex-col min-w-0 overflow-hidden",o),children:t.jsx("div",{className:"flex-1 overflow-hidden min-w-0",children:t.jsx(En,{value:c,children:t.jsx(_.ChannelList,{filters:n,sort:i,options:{limit:30},allowNewMessagesFromUnfilteredChannels:a,channelRenderFilterFn:x,Paginator:_.InfiniteScroll,Preview:Yt,EmptyStateIndicator:l},`${JSON.stringify(n)}:${JSON.stringify(i)}`)})})})});qt.displayName="ChannelList";const An=/^([a-z][a-z0-9+.-]*):/i,Rn=new Set(["http","https","mailto","tel","sms"]);function Be(e){if(typeof e!="string")return;const s=e.trim();if(s==="")return;const n=An.exec(s);if(n){const a=n[1].toLowerCase();return Rn.has(a)?s:void 0}return s.startsWith("//")||s.startsWith("/")?s:`https://${s}`}const Ln={dark:"bg-white text-[#121110] hover:bg-white/90",light:"bg-[#121110] text-white hover:bg-[#2a2928]"},Dn=({variant:e,cta:s})=>{const n=C("mt-2 inline-flex h-10 w-full items-center justify-center rounded-full px-4 text-sm font-medium leading-none transition-colors",Ln[e]),a=Be(s.href);return a?t.jsx("a",{href:a,target:"_blank",rel:"noopener noreferrer",onClick:r=>{var i;r.stopPropagation(),(i=s.onClick)==null||i.call(s)},className:`${n} no-underline`,children:s.label}):t.jsx("button",{type:"button",onClick:r=>{var i;r.stopPropagation(),(i=s.onClick)==null||i.call(s)},className:n,children:s.label})},Pn={dark:"text-white",light:"text-black/90"},On="text-white/30",zn={dark:"text-white/55",light:"text-black/55"},Ue=({variant:e,title:s,placeholderTitle:n,description:a,url:r,appIcon:i,cta:o,trailingAction:l})=>{const d=e==="dark",h=s??(d?n:void 0)??"",g=h.trim()!=="",u=a!=null&&a.trim()!=="",x=typeof r=="string"?r.trim():"",c=x!=="",f=o!=null;if(!g&&!u&&!c&&!f)return null;const p=C("truncate text-base font-medium leading-6",d&&!s?On:Pn[e]),w=C("truncate text-xs leading-4",zn[e]);return t.jsxs("div",{className:"px-4 py-3",children:[t.jsxs("div",{className:"flex items-end gap-3",children:[t.jsxs("div",{className:"flex min-w-0 flex-1 flex-col gap-2",children:[t.jsxs("div",{className:"flex min-w-0 flex-col gap-1",children:[g&&t.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i?t.jsx("span",{className:"shrink-0",children:i}):null,t.jsx("p",{className:C("min-w-0",p),children:h})]}),u&&t.jsx("p",{className:w,children:a})]}),!f&&c&&t.jsx("p",{className:w,children:x})]}),l&&t.jsx("div",{className:"shrink-0",children:l})]}),o&&t.jsx(Dn,{variant:e,cta:o})]})},Fn=C("relative block w-[280px] select-none overflow-hidden rounded-md","border border-black/[0.08]","shadow-[0_1px_2px_rgba(0,0,0,0.04),0_8px_32px_rgba(0,0,0,0.1)]"),be=({variant:e,children:s,href:n,onClick:a,ariaLabel:r,rootRef:i,topRight:o,bgClassName:l,"data-testid":d})=>{const h=n!=null||a!=null,g=C(Fn,l??(e==="dark"?"bg-[#121110]":"bg-white"),h?"cursor-pointer no-underline focus-ring":null),u=o?t.jsx("div",{className:"pointer-events-auto absolute right-3 top-3 z-10",children:o}):null;return n?t.jsxs("a",{ref:i,href:n,target:"_blank",rel:"noopener noreferrer",onClick:a,"data-testid":d,className:g,children:[s,u]}):a?t.jsxs("button",{ref:i,type:"button",onClick:a,"aria-label":r,"data-testid":d,className:C(g,"text-left"),children:[s,u]}):t.jsxs("div",{ref:i,"data-testid":d,className:g,children:[s,u]})},$n={dark:"bg-white/10",light:"bg-black/5"},Bn={dark:"size-16 text-white/25",light:"size-16 text-black/25"},we=(e,s)=>!!s&&!!e&&K(e)==="audio",Xt=(e,s)=>{if(!s||!e)return!1;const n=K(e);return n==="video"||n==="audio"},Ve="bg-[#F2F3F4]",pe=({variant:e,thumbnailUrl:s,sourceUrl:n,title:a,mimeType:r="image/*",topLeft:i,topRight:o})=>{const l=K(r),d=!!n&&l==="video";return we(r,n)?t.jsx("div",{className:"p-3",children:t.jsx("audio",{src:n,controls:!0,preload:"metadata",className:"block w-full",children:t.jsx("track",{kind:"captions"})})}):t.jsxs("div",{className:C("relative h-[180px] w-full overflow-hidden",d&&"bg-black"),children:[d?t.jsx("video",{src:n,poster:s,controls:!0,playsInline:!0,preload:"metadata",className:"absolute inset-0 h-full w-full object-contain",children:t.jsx("track",{kind:"captions"})}):s?t.jsx("img",{src:s,alt:a??"",draggable:!1,className:"absolute inset-0 h-full w-full object-cover"}):t.jsx("div",{className:C("flex h-full w-full items-center justify-center",$n[e]),children:ee(r,{className:Bn[e],weight:"regular"})}),i?t.jsx("div",{className:"pointer-events-auto absolute left-3 top-3 z-10",children:i}):null,o?t.jsx("div",{className:"pointer-events-auto absolute right-3 top-3 z-10",children:o}):null]})},Un=({title:e,placeholderTitle:s,description:n,url:a,mimeType:r,thumbnailUrl:i,sourceUrl:o,layout:l="featured",appIcon:d,cta:h,onDismiss:g,onEditClick:u})=>{const x=l==="classic",c=we(r,o),f=g?t.jsx("button",{type:"button",onClick:g,"aria-label":"Dismiss attachment",className:"flex size-6 items-center justify-center rounded-full bg-[#121110] text-white",children:t.jsx(N.XIcon,{className:"size-3",weight:"bold"})}):void 0,b=u?t.jsx("button",{type:"button",onClick:u,"aria-label":"Edit attachment",className:"flex size-10 items-center justify-center rounded-full bg-white/10 text-white hover:bg-white/15",children:t.jsx(N.PencilSimpleIcon,{className:"size-5",weight:"regular"})}):void 0;return c?t.jsx(be,{variant:"dark",bgClassName:Ve,children:t.jsxs("div",{className:"flex items-center gap-2 pr-3",children:[t.jsx("div",{className:"min-w-0 flex-1",children:t.jsx(pe,{variant:"dark",sourceUrl:o,title:e,mimeType:r})}),f&&t.jsx("div",{className:"shrink-0",children:f})]})}):t.jsxs(be,{variant:"dark",topRight:x?f:void 0,children:[!x&&t.jsx(pe,{variant:"dark",thumbnailUrl:i,sourceUrl:o,title:e,mimeType:r,topRight:f}),t.jsx(Ue,{variant:"dark",title:e,placeholderTitle:s,description:n,url:a,appIcon:d,cta:h,trailingAction:b})]})},Vn=({title:e,description:s,url:n,mimeType:a,thumbnailUrl:r,sourceUrl:i,layout:o="featured",appIcon:l,cta:d,onClick:h})=>{const g=Xt(a,i),u=Be(n),x=d==null&&u!=null&&!g?u:void 0,c=d==null&&!g?h:void 0,f=we(a,i)?Ve:void 0,b=d&&h?{...d,onClick:()=>{var p;h(),(p=d.onClick)==null||p.call(d)}}:d;return t.jsxs(be,{variant:"light",href:x,onClick:c,ariaLabel:e??"Open attachment preview",bgClassName:f,"data-testid":"link-attachment",children:[o==="featured"&&t.jsx(pe,{variant:"light",thumbnailUrl:r,sourceUrl:i,title:e,mimeType:a}),t.jsx(Ue,{variant:"light",title:e,description:s,url:n,appIcon:l,cta:b})]})},Gn=({title:e,placeholderTitle:s,description:n,url:a,mimeType:r,thumbnailUrl:i,sourceUrl:o,layout:l="featured",appIcon:d,cta:h,onClick:g})=>{const u=Xt(r,o),x=Be(a),c=h==null&&x!=null&&!u?x:void 0,f=h==null&&!u&&c!=null?g:void 0;return t.jsxs(be,{variant:"dark",href:c,onClick:f,bgClassName:we(r,o)?Ve:void 0,children:[l==="featured"&&t.jsx(pe,{variant:"dark",thumbnailUrl:i,sourceUrl:o,title:e,mimeType:r}),t.jsx(Ue,{variant:"dark",title:e,placeholderTitle:s,description:n,url:a,appIcon:d,cta:h})]})},Hn={Composer:Un,Sent:Gn,Received:Vn},Yn={dark:"bg-[#121110]",light:"bg-[#e9eaed]"},qn={dark:"text-white",light:"text-[#080707]"},Xn={dark:"border-white/[0.08]",light:"border-black/[0.08]"},Wn=e=>e==="dark"?"sender":"receiver",Kn={sender:{single:"rounded-tl-[18px] rounded-tr-[18px] rounded-bl-[18px] rounded-br-[18px]",first:"rounded-tl-[18px] rounded-tr-[18px] rounded-bl-[18px] rounded-br-[4px]",middle:"rounded-tl-[18px] rounded-tr-[4px] rounded-bl-[18px] rounded-br-[4px]",end:"rounded-tl-[18px] rounded-tr-[4px] rounded-bl-[18px] rounded-br-[18px]"},receiver:{single:"rounded-tl-[18px] rounded-tr-[18px] rounded-bl-[18px] rounded-br-[18px]",first:"rounded-tl-[18px] rounded-tr-[18px] rounded-bl-[4px] rounded-br-[18px]",middle:"rounded-tl-[4px] rounded-tr-[18px] rounded-bl-[4px] rounded-br-[18px]",end:"rounded-tl-[4px] rounded-tr-[18px] rounded-bl-[18px] rounded-br-[18px]"}},ce=({variant:e,text:s,bordered:n=!0,groupPosition:a="single",className:r,children:i,"data-testid":o})=>{const l=s!=null&&s!=="",d=Kn[Wn(e)][a];return t.jsxs("div",{"data-testid":o,"data-group-position":a,className:C("relative w-[280px] overflow-hidden px-2 py-2",d,Yn[e],qn[e],n&&"border",n&&Xn[e],r),children:[i,l?t.jsx("p",{className:C("whitespace-pre-wrap break-words leading-snug","pt-2","px-2"),children:s}):null]})},de=({onClick:e,variant:s="overlay",ariaLabel:n="Dismiss attachment"})=>t.jsx("button",{type:"button",onClick:a=>{a.stopPropagation(),e()},"aria-label":n,className:C("flex size-6 items-center justify-center rounded-full text-white",s==="overlay"?"bg-[#121110]/85 backdrop-blur":"bg-white/15 hover:bg-white/25"),children:t.jsx(N.XIcon,{className:"size-3",weight:"bold"})}),ue=e=>e==="received"?"light":"dark",Jn=({firstOfGroup:e,endOfGroup:s,groupedByUser:n})=>!n||e&&s?"single":e?"first":s?"end":"middle",Zn=({src:e,mimeType:s,filename:n,items:a})=>a&&a.length>0?a:e?[{src:e,mimeType:s,filename:n}]:[],Qn=({item:e,preload:s,trailingAction:n})=>t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx("audio",{src:e.src,controls:!0,preload:e.preload??s,className:"block min-w-0 flex-1",children:e.mimeType?t.jsx("source",{src:e.src,type:e.mimeType}):null}),n??null]}),Ge=({state:e,src:s,mimeType:n,filename:a,items:r,text:i,groupPosition:o,preload:l,onDismiss:d})=>{const h=ue(e),g=e==="composer"&&!!d,u=Zn({src:s,mimeType:n,filename:a,items:r});if(u.length===0)return null;const x=l??(u.length>1?"none":"metadata");return t.jsx(ce,{variant:h,text:i,groupPosition:o,"data-testid":"audio-attachment",children:t.jsx("div",{className:"flex flex-col gap-2",children:u.map((c,f)=>t.jsx(Qn,{item:c,preload:x,trailingAction:g&&f===0?t.jsx(de,{onClick:d,variant:"inline"}):void 0},`${c.src}-${f}`))})})},ea=e=>t.jsx(Ge,{...e,state:"composer"}),ta=e=>t.jsx(Ge,{...e,state:"sent"}),sa=e=>t.jsx(Ge,{...e,state:"received"}),na={Composer:ea,Sent:ta,Received:sa};function Wt(e){return!Number.isFinite(e)||e<0?"":e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(2)} MB`:`${(e/(1024*1024*1024)).toFixed(2)} GB`}const aa={pdf:"PDF",doc:"DOC",xls:"XLS",csv:"CSV",ppt:"PPT",zip:"ZIP",text:"TXT",markdown:"MD"};function Kt(e,s){if(s){const r=s.lastIndexOf(".");if(r>0&&r<s.length-1){const i=s.slice(r+1);if(i&&i.length<=5)return i.toUpperCase()}}if(!e)return;if(K(e)==="document"){const r=At(e),i=aa[r];if(i)return i;if(e==="application/octet-stream")return}const a=e.split("/")[1];if(!(!a||a==="*"))return a.toUpperCase()}function Jt(e,s,n){const a=Kt(e,s),r=typeof n=="number"&&n>0?Wt(n):void 0;return[a,r].filter(Boolean).join(" · ")||void 0}function W(e){try{const n=new URL(e).pathname.split("/").pop();return n&&n.length>0?decodeURIComponent(n):"download"}catch{return"download"}}const ra={dark:"text-white/55",light:"text-black/65"},ia={dark:"bg-white/10",light:"bg-black/5"},oa={dark:"text-white/85",light:"text-black/85"},Zt=({variant:e,filename:s,title:n,mimeType:a="application/octet-stream",fileSize:r,onActivate:i,activateLabel:o,trailingAction:l})=>{const d=n??s??"File",h=Jt(a,s,r),g=t.jsx("div",{className:C("flex size-10 shrink-0 items-center justify-center rounded-sm",ia[e]),"aria-hidden":!0,children:ee(a,{className:C("size-6",oa[e]),weight:"regular"})}),u=t.jsxs("div",{className:"flex min-w-0 flex-1 flex-col text-left",children:[t.jsx("p",{className:"truncate font-medium leading-snug",children:d}),h?t.jsx("p",{className:C("truncate text-xs leading-4",ra[e]),children:h}):null]}),x=i?t.jsxs("button",{type:"button",onClick:i,"aria-label":o,className:C("flex min-w-0 flex-1 items-center gap-3 rounded-sm text-left transition-colors",e==="dark"?"hover:bg-white/[0.04]":"hover:bg-black/[0.04]"),children:[g,u]}):t.jsxs(t.Fragment,{children:[g,u]});return t.jsxs("div",{className:"flex items-center gap-3 px-3 py-2",children:[x,l?t.jsx("div",{className:"shrink-0",children:l}):null]})};async function Qt(e,s){const n=s??W(e);try{const a=await fetch(e,{mode:"cors"});if(!a.ok)throw new Error(`HTTP ${a.status}`);const r=await a.blob(),i=URL.createObjectURL(r),o=document.createElement("a");o.href=i,o.download=n,o.style.display="none",document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(i)}catch{if(!window.open(e,"_blank","noopener,noreferrer")){const r=document.createElement("a");r.href=e,r.download=n,r.target="_blank",r.rel="noopener noreferrer",r.style.display="none",document.body.appendChild(r),r.click(),document.body.removeChild(r)}}}const la=({src:e,filename:s,fileSize:n,mimeType:a,title:r,items:i})=>i&&i.length>0?i:e?[{src:e,filename:s,fileSize:n,mimeType:a,title:r}]:[],ca=({variant:e,item:s,index:n,onActivate:a,trailingAction:r})=>{const i=s.filename??W(s.src);return t.jsx(Zt,{variant:e,filename:i,title:s.title,mimeType:s.mimeType??"application/octet-stream",fileSize:s.fileSize,onActivate:()=>a(n),activateLabel:`Download ${i}`,trailingAction:r})},He=({state:e,src:s,filename:n,fileSize:a,mimeType:r,title:i,items:o,text:l,groupPosition:d,onClick:h,onDismiss:g})=>{const u=ue(e),x=e==="composer"&&!!g,c=la({src:s,filename:n,fileSize:a,mimeType:r,title:i,items:o}),f=p=>{if((h==null?void 0:h(p))===!1)return;const w=c[p];if(!w)return;const j=w.filename??W(w.src);Qt(w.src,j)};if(c.length===0)return null;const b=t.jsx("span",{className:C("flex size-8 items-center justify-center rounded-full",u==="dark"?"text-white/70":"text-black/70"),"aria-hidden":!0,children:t.jsx(N.DownloadSimpleIcon,{className:"size-5",weight:"bold"})});return t.jsx(ce,{variant:u,text:l,groupPosition:d,"data-testid":"file-attachment",children:t.jsx("div",{className:"flex flex-col gap-2",children:c.map((p,w)=>{const j=x&&w===0?t.jsx(de,{onClick:g,variant:"inline"}):b;return t.jsx(ca,{variant:u,item:p,index:w,onActivate:f,trailingAction:j},`${p.src}-${w}`)})})})},da=e=>t.jsx(He,{...e,state:"composer"}),ua=e=>t.jsx(He,{...e,state:"sent"}),ma=e=>t.jsx(He,{...e,state:"received"}),ha={Composer:da,Sent:ua,Received:ma},Ye=({onPrev:e,onNext:s,prevLabel:n="Previous",nextLabel:a="Next"})=>t.jsxs(t.Fragment,{children:[t.jsx("button",{type:"button",onClick:e,"aria-label":n,className:"mes-media-viewer__nav mes-media-viewer__nav--prev",children:t.jsx(N.CaretLeftIcon,{size:20,weight:"bold","aria-hidden":!0})}),t.jsx("button",{type:"button",onClick:s,"aria-label":a,className:"mes-media-viewer__nav mes-media-viewer__nav--next",children:t.jsx(N.CaretRightIcon,{size:20,weight:"bold","aria-hidden":!0})})]}),es=({url:e,filename:s,variant:n="pill",label:a="Download",iconOnly:r,tone:i="dark",onTriggered:o})=>{const[l,d]=m.useState(!1),h=m.useCallback(c=>{c.stopPropagation(),!l&&(d(!0),Qt(e,s).catch(()=>{}).finally(()=>{d(!1),o==null||o()}))},[l,e,s,o]),g=r??n!=="pill",x={className:C(n==="pill"?"size-4":"size-5","shrink-0"),weight:"bold"};if(n==="inline"){const c={dark:"text-white/70 hover:bg-white/[0.08] hover:text-white",light:"text-black/70 hover:bg-black/[0.08] hover:text-black"};return t.jsx("button",{type:"button",onClick:h,disabled:l,"aria-label":a,className:C("flex size-8 shrink-0 items-center justify-center rounded-full transition-colors disabled:opacity-70",c[i]),children:l?t.jsx(N.CircleNotchIcon,{className:"size-4 animate-spin",weight:"bold","aria-hidden":!0}):t.jsx(N.DownloadSimpleIcon,{className:"size-5 shrink-0",weight:"bold","aria-hidden":!0})})}return n==="viewer"?t.jsx("button",{type:"button",onClick:h,disabled:l,"aria-label":a,className:"mes-media-viewer__action",children:l?t.jsx(N.CircleNotchIcon,{size:20,weight:"bold","aria-hidden":!0}):t.jsx(N.DownloadSimpleIcon,{size:20,weight:"bold","aria-hidden":!0})}):t.jsxs("button",{type:"button",onClick:h,disabled:l,"aria-label":g?a:void 0,className:C("mt-3 inline-flex h-10 w-full items-center justify-center gap-2 rounded-full px-4 text-sm font-medium leading-none transition-colors disabled:opacity-70",i==="dark"?"bg-[#121110] text-white hover:bg-[#2a2928]":"bg-white text-[#121110] hover:bg-white/90"),children:[l?t.jsx(N.CircleNotchIcon,{className:"size-4 animate-spin",weight:"bold","aria-hidden":!0}):t.jsx(N.DownloadSimpleIcon,{...x,"aria-hidden":!0}),g?null:a]})},ke=(e,s,n)=>Math.min(Math.max(e,s),n),qe=({length:e,initialIndex:s,open:n})=>{const a=ke(s,0,Math.max(e-1,0)),[r,i]=m.useState(a);m.useEffect(()=>{n&&i(ke(s,0,Math.max(e-1,0)))},[n,s,e]),m.useEffect(()=>{i(d=>ke(d,0,Math.max(e-1,0)))},[e]);const o=m.useCallback(()=>{e<=1||i(d=>d<=0?e-1:d-1)},[e]),l=m.useCallback(()=>{e<=1||i(d=>d>=e-1?0:d+1)},[e]);return m.useEffect(()=>{if(!n||e<=1)return;const d=h=>{if(h.key!=="ArrowLeft"&&h.key!=="ArrowRight")return;const g=document.activeElement;g&&(g.tagName==="VIDEO"||g.tagName==="AUDIO")||(h.preventDefault(),h.key==="ArrowLeft"?o():l())};return window.addEventListener("keydown",d),()=>window.removeEventListener("keydown",d)},[n,e,o,l]),{index:r,prev:o,next:l}},Xe=({open:e,onClose:s,ariaLabel:n,counter:a,actions:r,children:i,"data-testid":o})=>{const l=m.useRef(null),d=m.useRef(null);m.useEffect(()=>{var x;const u=l.current;if(u){if(e){if(!u.open)if(typeof u.showModal=="function")try{u.showModal()}catch{u.setAttribute("open","")}else u.setAttribute("open","");const c=typeof document<"u"?document.activeElement:null;return(x=d.current)==null||x.focus(),()=>{if(u.open)if(typeof u.close=="function")try{u.close()}catch{u.removeAttribute("open")}else u.removeAttribute("open");c&&document.body.contains(c)&&c.focus()}}if(u.open)if(typeof u.close=="function")try{u.close()}catch{u.removeAttribute("open")}else u.removeAttribute("open")}},[e]);const h=()=>{s()},g=u=>{u.target===l.current&&s()};return t.jsxs("dialog",{ref:l,className:"mes-media-viewer","aria-label":n??"Attachment viewer","data-testid":o,onClose:h,onClick:g,children:[t.jsxs("div",{className:"mes-media-viewer__chrome",children:[a?t.jsx("span",{className:"mes-media-viewer__counter",children:a}):null,t.jsxs("div",{className:"mes-media-viewer__actions",children:[r,t.jsx("button",{ref:d,type:"button",onClick:s,"aria-label":"Close viewer",className:"mes-media-viewer__action",children:t.jsx(N.XIcon,{size:20,weight:"bold","aria-hidden":!0})})]})]}),t.jsx("div",{className:"mes-media-viewer__body",children:i})]})},ts=({open:e,items:s,initialIndex:n=0,onClose:a})=>{const{index:r,prev:i,next:o}=qe({length:s.length,initialIndex:n,open:e}),l=s[r],d=m.useMemo(()=>(l==null?void 0:l.filename)??(l?W(l.src):"image"),[l]);return l?t.jsxs(Xe,{open:e,onClose:a,ariaLabel:d,counter:s.length>1?`${r+1} / ${s.length}`:void 0,actions:t.jsx(es,{url:l.src,filename:d,variant:"viewer",label:`Download ${d}`}),"data-testid":"image-viewer",children:[t.jsx("img",{src:l.src,alt:l.alt??d,draggable:!1,loading:"eager",decoding:"async",className:"mes-media-viewer__image"},`${r}:${l.src}`),s.length>1?t.jsx(Ye,{onPrev:i,onNext:o,prevLabel:"Previous image",nextLabel:"Next image"}):null]}):null},xa="relative block size-full overflow-hidden bg-black/5 outline-none focus-visible:ring-2 focus-visible:ring-white/80 focus-visible:ring-offset-2 focus-visible:ring-offset-black",ss=({tiles:e,onTileActivate:s,maxVisible:n=4,className:a})=>{const r=e.length;if(r===0)return null;const i=e.slice(0,Math.min(r,n)),o=r-i.length,l=(d,h,g)=>{const u=C(xa,"h-full w-full");return s?t.jsxs("button",{type:"button",onClick:()=>s(h),"aria-label":d.ariaLabel??`Open media ${h+1}`,className:C(u,"cursor-zoom-in"),children:[d.content,g]},h):t.jsxs("div",{className:u,children:[d.content,g]},h)};return i.length===1?t.jsx("div",{className:C("aspect-square w-full",a),children:l(i[0],0)}):i.length===2?t.jsx("div",{className:C("grid aspect-[16/9] w-full grid-cols-2 gap-0.5",a),children:i.map((d,h)=>l(d,h))}):i.length===3?t.jsxs("div",{className:C("grid aspect-[4/3] w-full grid-cols-2 grid-rows-2 gap-0.5",a),children:[t.jsx("div",{className:"row-span-2",children:l(i[0],0)}),l(i[1],1),l(i[2],2)]}):t.jsx("div",{className:C("grid aspect-[4/3] w-full grid-cols-2 grid-rows-2 gap-0.5",a),children:i.map((d,h)=>{const g=o>0&&h===i.length-1;return l(d,h,g?t.jsxs("div",{className:"absolute inset-0 flex items-center justify-center bg-black/55 text-2xl font-semibold text-white",children:["+",o]}):null)})})},me=e=>{const[s,n]=m.useState(!1),[a,r]=m.useState(0),i=m.useCallback(l=>{(e==null?void 0:e(l))!==!1&&(r(l),n(!0))},[e]),o=m.useCallback(()=>n(!1),[]);return{viewerOpen:s,viewerIndex:a,handleActivate:i,closeViewer:o}},fa=(e,s,n,a)=>({ariaLabel:`Open image ${s+1} of ${n}`,content:t.jsx("img",{src:e.src,alt:e.alt??"",width:e.width,height:e.height,draggable:!1,loading:e.loading??a,decoding:"async",className:"absolute inset-0 size-full rounded-md object-cover"})}),ga=({src:e,alt:s,items:n})=>n&&n.length>0?n:e?[{src:e,alt:s}]:[],ns=(e,s)=>e.map((n,a)=>({src:n.src,alt:n.alt,filename:s&&e.length===1?s:s?`${s} (${a+1})`:void 0})),ba=({src:e,alt:s,filename:n,loading:a="lazy",onClick:r,onDismiss:i})=>{const{viewerOpen:o,viewerIndex:l,handleActivate:d,closeViewer:h}=me(r);return t.jsxs("div",{className:"relative w-fit",children:[t.jsx("button",{type:"button",onClick:()=>d(0),"aria-label":"Open image",className:"block size-[280px] cursor-zoom-in overflow-hidden rounded-md outline-none focus-visible:ring-2 focus-visible:ring-black/40",children:t.jsx("img",{src:e,alt:s??"",draggable:!1,loading:a,decoding:"async",className:"size-full object-cover"})}),i?t.jsx("div",{className:"absolute right-2 top-2 z-10",children:t.jsx(de,{onClick:i})}):null,t.jsx(ts,{open:o,items:ns([{src:e,alt:s}],n),initialIndex:l,onClose:h})]})},as=({state:e,src:s,alt:n,filename:a,items:r,text:i,groupPosition:o,loading:l="lazy",onClick:d})=>{const h=ga({src:s,alt:n,items:r}),g=ue(e),{viewerOpen:u,viewerIndex:x,handleActivate:c,closeViewer:f}=me(d);if(h.length===0)return null;const b=h.map((p,w)=>fa(p,w,h.length,l));return t.jsxs(ce,{variant:g,text:i,groupPosition:o,"data-testid":"image-attachment",children:[t.jsx("div",{className:"relative",children:t.jsx(ss,{tiles:b,onTileActivate:c})}),t.jsx(ts,{open:u,items:ns(h,a),initialIndex:x,onClose:f})]})},pa=e=>t.jsx(ba,{...e}),va=e=>t.jsx(as,{...e,state:"sent"}),ja=e=>t.jsx(as,{...e,state:"received"}),wa={Composer:pa,Sent:va,Received:ja},_a=({open:e,items:s,initialIndex:n=0,onClose:a})=>{const{index:r,prev:i,next:o}=qe({length:s.length,initialIndex:n,open:e}),l=s[r],d=m.useMemo(()=>(l==null?void 0:l.filename)??(l?W(l.src):"document"),[l]),h=m.useMemo(()=>l?Na(l.src):void 0,[l]);return!l||!h?null:t.jsxs(Xe,{open:e,onClose:a,ariaLabel:d,counter:s.length>1?`${r+1} / ${s.length}`:void 0,"data-testid":"pdf-viewer",children:[t.jsx("iframe",{src:h,title:d,className:"mes-media-viewer__iframe",sandbox:"allow-scripts allow-forms allow-popups allow-downloads"},`${r}:${l.src}`),s.length>1?t.jsx(Ye,{onPrev:i,onNext:o,prevLabel:"Previous document",nextLabel:"Next document"}):null]})},Na=e=>{const s=e.indexOf("#"),n=s===-1?e:e.slice(0,s),a=s===-1?"":e.slice(s+1),r=new URLSearchParams(a);return r.has("toolbar")||r.set("toolbar","0"),r.has("navpanes")||r.set("navpanes","0"),`${n}#${r.toString()}`},ya=({src:e,filename:s,fileSize:n,title:a,items:r})=>r&&r.length>0?r:e?[{src:e,filename:s,fileSize:n,title:a}]:[],Ca=({variant:e,item:s,index:n,onActivate:a,trailingAction:r})=>{const i=s.filename??W(s.src);return t.jsx(Zt,{variant:e,filename:i,title:s.title,mimeType:"application/pdf",fileSize:s.fileSize,onActivate:()=>a(n),activateLabel:`Open ${i}`,trailingAction:r})},We=({state:e,src:s,filename:n,fileSize:a,title:r,items:i,text:o,groupPosition:l,onClick:d,onDismiss:h})=>{const g=ue(e),u=ya({src:s,filename:n,fileSize:a,title:r,items:i}),{viewerOpen:x,viewerIndex:c,handleActivate:f,closeViewer:b}=me(d),p=e==="composer"&&!!h;if(u.length===0)return null;const w=u.map(j=>({src:j.src,filename:j.filename??W(j.src)}));return t.jsxs(ce,{variant:g,text:o,groupPosition:l,"data-testid":"pdf-attachment",children:[t.jsx("div",{className:"flex flex-col gap-2",children:u.map((j,T)=>{const I=j.filename??W(j.src),R=p&&T===0?t.jsx(de,{onClick:h,variant:"inline"}):e==="composer"?void 0:t.jsx(es,{url:j.src,filename:I,variant:"inline",label:`Download ${I}`,tone:g});return t.jsx(Ca,{variant:g,item:j,index:T,onActivate:f,trailingAction:R},`${j.src}-${T}`)})}),t.jsx(_a,{open:x,items:w,initialIndex:c,onClose:b})]})},ka=e=>t.jsx(We,{...e,state:"composer"}),Sa=e=>t.jsx(We,{...e,state:"sent"}),Ea=e=>t.jsx(We,{...e,state:"received"}),Ia={Composer:ka,Sent:Sa,Received:Ea},rs=({open:e,items:s,initialIndex:n=0,onClose:a})=>{const{index:r,prev:i,next:o}=qe({length:s.length,initialIndex:n,open:e}),l=s[r],d=m.useMemo(()=>(l==null?void 0:l.filename)??(l?W(l.src):"video"),[l]);return l?t.jsxs(Xe,{open:e,onClose:a,ariaLabel:d,counter:s.length>1?`${r+1} / ${s.length}`:void 0,"data-testid":"video-viewer",children:[t.jsx("video",{src:l.src,poster:l.poster,controls:!0,autoPlay:!0,muted:!0,playsInline:!0,preload:l.preload??"metadata",className:"mes-media-viewer__video",children:l.mimeType?t.jsx("source",{src:l.src,type:l.mimeType}):null},`${r}:${l.src}`),s.length>1?t.jsx(Ye,{onPrev:i,onNext:o,prevLabel:"Previous video",nextLabel:"Next video"}):null]}):null},Ta=()=>t.jsx("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:t.jsx("span",{className:"flex size-12 items-center justify-center rounded-full bg-black/55 text-white backdrop-blur",children:t.jsx(N.PlayIcon,{className:"size-6",weight:"fill","aria-hidden":!0})})}),is=({item:e,index:s})=>t.jsxs("div",{className:"absolute inset-0 size-full bg-[#0d0d0d]",children:[e.poster?t.jsx("img",{src:e.poster,alt:`Video ${s+1} thumbnail`,draggable:!1,loading:"lazy",decoding:"async",className:"absolute inset-0 size-full rounded-md object-cover"}):t.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:t.jsx(N.VideoCameraIcon,{className:"size-16 rounded-md text-white/30",weight:"regular","aria-hidden":!0})}),t.jsx(Ta,{})]}),Ma=(e,s,n)=>({ariaLabel:`Play video ${s+1} of ${n}`,content:t.jsx(is,{item:e,index:s})}),Aa=({src:e,poster:s,mimeType:n,preload:a,items:r})=>r&&r.length>0?a?r.map(i=>({...i,preload:i.preload??a})):r:e?[{src:e,poster:s,mimeType:n,preload:a}]:[],os=(e,s)=>e.map((n,a)=>({src:n.src,poster:n.poster,mimeType:n.mimeType,preload:n.preload,filename:s&&e.length===1?s:s?`${s} (${a+1})`:void 0})),Ra=({src:e,poster:s,mimeType:n,filename:a,preload:r,onClick:i,onDismiss:o})=>{const{viewerOpen:l,viewerIndex:d,handleActivate:h,closeViewer:g}=me(i);return t.jsxs("div",{className:"relative w-fit",children:[t.jsx("button",{type:"button",onClick:()=>h(0),"aria-label":"Play video",className:"relative block size-[280px] cursor-pointer overflow-hidden rounded-md outline-none focus-visible:ring-2 focus-visible:ring-black/40",children:t.jsx(is,{item:{src:e,poster:s,mimeType:n},index:0})}),o?t.jsx("div",{className:"absolute right-2 top-2 z-10",children:t.jsx(de,{onClick:o})}):null,t.jsx(rs,{open:l,items:os([{src:e,poster:s,mimeType:n,preload:r}],a),initialIndex:d,onClose:g})]})},ls=({state:e,src:s,poster:n,mimeType:a,filename:r,items:i,text:o,groupPosition:l,preload:d,onClick:h})=>{const g=Aa({src:s,poster:n,mimeType:a,preload:d,items:i}),u=ue(e),{viewerOpen:x,viewerIndex:c,handleActivate:f,closeViewer:b}=me(h);if(g.length===0)return null;const p=g.map((w,j)=>Ma(w,j,g.length));return t.jsxs(ce,{variant:u,text:o,groupPosition:l,"data-testid":"video-attachment",children:[t.jsx("div",{className:"relative",children:t.jsx(ss,{tiles:p,onTileActivate:f,className:"overflow-hidden rounded-md"})}),t.jsx(rs,{open:x,items:os(g,r),initialIndex:c,onClose:b})]})},La=e=>t.jsx(Ra,{...e}),Da=e=>t.jsx(ls,{...e,state:"sent"}),Pa=e=>t.jsx(ls,{...e,state:"received"}),Oa={Composer:La,Sent:Da,Received:Pa},za={Image:wa,Video:Oa,Audio:na,Pdf:Ia,File:ha},cs=({question:e,onClick:s,loading:n=!1,className:a})=>t.jsx("button",{type:"button",onClick:s,disabled:n,style:{backgroundColor:"#E6E5E3"},className:C("w-full text-center p-4 rounded-xl text-charcoal font-medium transition-colors focus-ring",{"hover:brightness-95 active:brightness-90":!n,"opacity-50 cursor-not-allowed":n},a),children:e}),Fa=({faqs:e,onFaqClick:s,loadingFaqId:n,headerText:a,className:r,avatarImage:i,avatarName:o})=>{const l=e.filter(d=>d.enabled).sort((d,h)=>(d.order??0)-(h.order??0));return l.length===0?null:t.jsx("div",{className:r,children:t.jsxs("div",{className:"flex gap-3 items-end",children:[(i||o)&&t.jsx("div",{className:"flex-none",children:t.jsx(Z,{id:o||"account",name:o||"Account",image:i,size:24,shape:"circle"})}),t.jsxs("div",{className:"flex-1 flex flex-col gap-3 rounded-lg p-4",style:{backgroundColor:"#F1F0EE"},children:[a&&t.jsx("p",{className:"text-md text-charcoal mb-4",children:a}),l.map(d=>t.jsx(cs,{question:d.question,onClick:()=>s(d.id),loading:n===d.id},d.id))]})]})})};exports.ActionButton=ae;exports.AttachmentThumbnail=Pe;exports.Avatar=Z;exports.ChannelEmptyState=Vt;exports.ChannelList=qt;exports.ChannelView=$e;exports.CustomMessageProvider=Ys;exports.FaqList=Fa;exports.FaqListItem=cs;exports.LinkAttachment=Hn;exports.LockedAttachment=Te;exports.MediaMessage=Vs;exports.MessageAttachment=za;exports.MessageVoteButtons=$t;exports.MessagingProvider=ms;exports.MessagingShell=kn;exports.bubbleGroupPositionFromStream=Jn;exports.buildCompactMetaLabel=Jt;exports.formatFileSize=Wt;exports.formatRelativeTime=Ht;exports.getFileExtensionLabel=Kt;exports.getMessageDisplayText=Le;exports.getSourceType=K;exports.isLinkAttachment=Fe;exports.isUuidLike=St;exports.normalizeLanguageCode=It;exports.renderTypeIcon=ee;exports.resolveLinkAttachment=ve;exports.resolveMediaFromMessage=je;exports.resolveParticipantDisplayName=Re;exports.useCustomMessage=zt;exports.useMessageVote=Et;exports.useMessaging=Ct;
2
+ //# sourceMappingURL=index-CRVJo6HP.cjs.map