@webority/mobile-chat 0.133.0 → 0.135.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/AgentByline.js +1 -1
- package/lib/commonjs/ChatAppearanceScope.js +1 -0
- package/lib/commonjs/ChatComposer.js +1 -1
- package/lib/commonjs/ChatConversationActions.js +1 -1
- package/lib/commonjs/ChatDictationButton.js +1 -1
- package/lib/commonjs/ChatEmbed.js +1 -1
- package/lib/commonjs/ChatFooter.js +1 -1
- package/lib/commonjs/ChatFrame.js +1 -1
- package/lib/commonjs/ChatHistory.js +1 -1
- package/lib/commonjs/ChatLauncher.js +1 -0
- package/lib/commonjs/ChatLiveBar.js +1 -1
- package/lib/commonjs/ChatMessageActions.js +1 -1
- package/lib/commonjs/ChatNudge.js +1 -1
- package/lib/commonjs/ChatOpenTickets.js +1 -1
- package/lib/commonjs/ChatPanel.js +1 -0
- package/lib/commonjs/ChatPastChats.js +1 -0
- package/lib/commonjs/ChatScreen.js +1 -1
- package/lib/commonjs/ChatSheet.js +1 -1
- package/lib/commonjs/ChatStarters.js +1 -1
- package/lib/commonjs/ChatThread.js +1 -1
- package/lib/commonjs/ReadAloudButton.js +1 -1
- package/lib/commonjs/chatShared.js +1 -1
- package/lib/commonjs/features.map.json +3 -3
- package/lib/commonjs/index.js +1 -1
- package/lib/commonjs/loaders/ChatLoader.js +1 -1
- package/lib/commonjs/renderers/ActionPart.js +1 -1
- package/lib/commonjs/renderers/ChartPart.js +1 -1
- package/lib/commonjs/renderers/FigureText.js +1 -1
- package/lib/commonjs/renderers/FiguresPart.js +1 -1
- package/lib/commonjs/renderers/FilePart.js +1 -1
- package/lib/commonjs/renderers/HandoffPart.js +1 -1
- package/lib/commonjs/renderers/ImagePart.js +1 -1
- package/lib/commonjs/renderers/InputRequestPart.js +1 -1
- package/lib/commonjs/renderers/NoticePart.js +1 -1
- package/lib/commonjs/renderers/QuickRepliesPart.js +1 -1
- package/lib/commonjs/renderers/RecordCardPart.js +1 -1
- package/lib/commonjs/renderers/SourcesPart.js +1 -1
- package/lib/commonjs/renderers/TablePart.js +1 -1
- package/lib/commonjs/renderers/TicketPart.js +1 -1
- package/lib/commonjs/renderers/VoiceClipPart.js +1 -1
- package/lib/commonjs/speech/phoneSpeech.js +1 -1
- package/lib/commonjs/speech/speechText.js +1 -1
- package/lib/commonjs/useChat.js +1 -1
- package/lib/commonjs/useChatHaptics.js +1 -1
- package/lib/commonjs/useChatSound.js +1 -0
- package/lib/module/AgentByline.js +1 -1
- package/lib/module/ChatAppearanceScope.js +1 -0
- package/lib/module/ChatComposer.js +1 -1
- package/lib/module/ChatConversationActions.js +1 -1
- package/lib/module/ChatDictationButton.js +1 -1
- package/lib/module/ChatEmbed.js +1 -1
- package/lib/module/ChatFooter.js +1 -1
- package/lib/module/ChatFrame.js +1 -1
- package/lib/module/ChatHistory.js +1 -1
- package/lib/module/ChatLauncher.js +1 -0
- package/lib/module/ChatLiveBar.js +1 -1
- package/lib/module/ChatMessageActions.js +1 -1
- package/lib/module/ChatNudge.js +1 -1
- package/lib/module/ChatOpenTickets.js +1 -1
- package/lib/module/ChatPanel.js +1 -0
- package/lib/module/ChatPastChats.js +1 -0
- package/lib/module/ChatScreen.js +1 -1
- package/lib/module/ChatSheet.js +1 -1
- package/lib/module/ChatStarters.js +1 -1
- package/lib/module/ChatThread.js +1 -1
- package/lib/module/ReadAloudButton.js +1 -1
- package/lib/module/chatShared.js +1 -1
- package/lib/module/features.map.json +3 -3
- package/lib/module/index.js +1 -1
- package/lib/module/loaders/ChatLoader.js +1 -1
- package/lib/module/renderers/ActionPart.js +1 -1
- package/lib/module/renderers/ChartPart.js +1 -1
- package/lib/module/renderers/FigureText.js +1 -1
- package/lib/module/renderers/FiguresPart.js +1 -1
- package/lib/module/renderers/FilePart.js +1 -1
- package/lib/module/renderers/HandoffPart.js +1 -1
- package/lib/module/renderers/ImagePart.js +1 -1
- package/lib/module/renderers/InputRequestPart.js +1 -1
- package/lib/module/renderers/NoticePart.js +1 -1
- package/lib/module/renderers/QuickRepliesPart.js +1 -1
- package/lib/module/renderers/RecordCardPart.js +1 -1
- package/lib/module/renderers/SourcesPart.js +1 -1
- package/lib/module/renderers/TablePart.js +1 -1
- package/lib/module/renderers/TicketPart.js +1 -1
- package/lib/module/renderers/VoiceClipPart.js +1 -1
- package/lib/module/speech/phoneSpeech.js +1 -1
- package/lib/module/speech/speechText.js +1 -1
- package/lib/module/useChat.js +1 -1
- package/lib/module/useChatHaptics.js +1 -1
- package/lib/module/useChatSound.js +1 -0
- package/lib/typescript/commonjs/ChatAppearanceScope.d.ts +11 -0
- package/lib/typescript/commonjs/ChatComposer.d.ts +5 -2
- package/lib/typescript/commonjs/ChatConversationActions.d.ts +1 -1
- package/lib/typescript/commonjs/ChatDictationButton.d.ts +3 -1
- package/lib/typescript/commonjs/ChatEmbed.d.ts +1 -1
- package/lib/typescript/commonjs/ChatFrame.d.ts +15 -4
- package/lib/typescript/commonjs/ChatLauncher.d.ts +22 -0
- package/lib/typescript/commonjs/ChatPanel.d.ts +39 -0
- package/lib/typescript/commonjs/ChatPastChats.d.ts +21 -0
- package/lib/typescript/commonjs/ChatScreen.d.ts +1 -1
- package/lib/typescript/commonjs/ChatSheet.d.ts +1 -6
- package/lib/typescript/commonjs/ChatThread.d.ts +3 -1
- package/lib/typescript/commonjs/chatShared.d.ts +2 -0
- package/lib/typescript/commonjs/index.d.ts +2 -1
- package/lib/typescript/commonjs/renderers/ChartPart.d.ts +1 -1
- package/lib/typescript/commonjs/renderers/FigureText.d.ts +4 -2
- package/lib/typescript/commonjs/renderers/HandoffPart.d.ts +1 -1
- package/lib/typescript/commonjs/renderers/ImagePart.d.ts +2 -1
- package/lib/typescript/commonjs/renderers/VoiceClipPart.d.ts +1 -1
- package/lib/typescript/commonjs/speech/speechText.d.ts +3 -3
- package/lib/typescript/commonjs/types.d.ts +28 -2
- package/lib/typescript/commonjs/useChat.d.ts +2 -0
- package/lib/typescript/commonjs/useChatSound.d.ts +35 -0
- package/lib/typescript/module/ChatAppearanceScope.d.ts +11 -0
- package/lib/typescript/module/ChatComposer.d.ts +5 -2
- package/lib/typescript/module/ChatConversationActions.d.ts +1 -1
- package/lib/typescript/module/ChatDictationButton.d.ts +3 -1
- package/lib/typescript/module/ChatEmbed.d.ts +1 -1
- package/lib/typescript/module/ChatFrame.d.ts +15 -4
- package/lib/typescript/module/ChatLauncher.d.ts +22 -0
- package/lib/typescript/module/ChatPanel.d.ts +39 -0
- package/lib/typescript/module/ChatPastChats.d.ts +21 -0
- package/lib/typescript/module/ChatScreen.d.ts +1 -1
- package/lib/typescript/module/ChatSheet.d.ts +1 -6
- package/lib/typescript/module/ChatThread.d.ts +3 -1
- package/lib/typescript/module/chatShared.d.ts +2 -0
- package/lib/typescript/module/index.d.ts +2 -1
- package/lib/typescript/module/renderers/ChartPart.d.ts +1 -1
- package/lib/typescript/module/renderers/FigureText.d.ts +4 -2
- package/lib/typescript/module/renderers/HandoffPart.d.ts +1 -1
- package/lib/typescript/module/renderers/ImagePart.d.ts +2 -1
- package/lib/typescript/module/renderers/VoiceClipPart.d.ts +1 -1
- package/lib/typescript/module/speech/speechText.d.ts +3 -3
- package/lib/typescript/module/types.d.ts +28 -2
- package/lib/typescript/module/useChat.d.ts +2 -0
- package/lib/typescript/module/useChatSound.d.ts +35 -0
- package/package.json +10 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.AgentByline=AgentByline;var _mobileUi=require("@webority/mobile-ui"),_reactNative=require("react-native"),_jsxRuntime=require("react/jsx-runtime");function AgentByline({author:e,labels:i}){const t=(0,_mobileUi.useTheme)(),r=e.displayName||i.agent,a=e.avatarUrl?{uri:e.avatarUrl}:void 0;return(0,_jsxRuntime.jsxs)(_reactNative.View,{accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",style:{flexDirection:"row",alignItems:"center",gap:t.space.xs},children:[(0,_jsxRuntime.jsx)(_mobileUi.Avatar,{size:"xs",name:r,source:a}),(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"secondary",children:r})]})}
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.AgentByline=AgentByline;var _mobileUi=require("@webority/mobile-ui"),_reactNative=require("react-native"),_jsxRuntime=require("react/jsx-runtime");function AgentByline({author:e,labels:i}){const t=(0,_mobileUi.useTheme)(),r=e.displayName||i.agent,a=e.avatarUrl?{uri:e.avatarUrl}:void 0;return(0,_jsxRuntime.jsxs)(_reactNative.View,{accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",style:{flexDirection:"row",alignItems:"center",gap:t.space.xs},children:[(0,_jsxRuntime.jsx)(_mobileUi.Avatar,{size:"xs",name:r,source:a}),(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"secondary",children:r}),(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"tertiary",children:i.agent})]})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatAppearanceScope=ChatAppearanceScope;var _mobileUi=require("@webority/mobile-ui"),_react=require("react"),_jsxRuntime=require("react/jsx-runtime");const DISPLAY_FONT="var(--wui-font-display)",radiusPx=e=>{if(null==e)return null;const r=Number.parseFloat(e);return Number.isFinite(r)?r:null},brandFor=(e,r,i)=>{if(null===e&&null===r&&null===i)return;const n={};return null!==e&&(n.colors={light:{primary:e},dark:{primary:e}}),null!==r&&(n.radius={md:r,lg:r,xl:r}),null!==i&&(n.font={ui:i}),n};function ChatAppearanceScope({appearance:e,children:r}){const i=(0,_mobileUi.useTheme)(),{preference:n}=(0,_mobileUi.useThemeMode)(),t=e?.["--wui-chat-accent"]??null,u=radiusPx(e?.["--wui-chat-radius"]),l=e?.["--wui-chat-font"]===DISPLAY_FONT?i.font.display:null,a=(0,_react.useMemo)(()=>brandFor(t,u,l),[t,u,l]);return void 0===a?(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:r}):(0,_jsxRuntime.jsx)(_mobileUi.ThemeProvider,{initialPreference:n,brand:a,settings:i.settings,children:r},n)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatComposer=ChatComposer;var _permissions=require("@webority/mobile-core/permissions"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_ChatDictationButton=require("./ChatDictationButton.js"),_ChatFooter=require("./ChatFooter.js"),_speechText=require("./speech/speechText.js"),_jsxRuntime=require("react/jsx-runtime");const ALLOWANCE_SHOWN_AT=10,DEFAULT_MAX_LENGTH=4e3;function ChatComposer({chat:e,labels:t,pickAttachments:s,keyboardOffset:a,keyboardAware:i,safeArea:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatComposer=ChatComposer;var _chatCore=require("@webority/chat-core"),_permissions=require("@webority/mobile-core/permissions"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_ChatDictationButton=require("./ChatDictationButton.js"),_ChatFooter=require("./ChatFooter.js"),_speechText=require("./speech/speechText.js"),_jsxRuntime=require("react/jsx-runtime");const ALLOWANCE_SHOWN_AT=10,COUNTER_AT=.9,DEFAULT_MAX_LENGTH=4e3,openQuestion=e=>{for(let t=e.length-1;t>=0;t-=1){const s=e[t];for(const e of[...s?.parts??[]].reverse())if("InputRequest"===e.kind&&"Open"===e.state)return e.fields[0]?.label||e.title||null}return null};function ChatComposer({chat:e,labels:t,pickAttachments:s,keyboardOffset:a,keyboardAware:i,safeArea:n,testID:o="chat-composer",focusRef:r,look:l=_chatCore.defaultChatLook}){const c=(0,_mobileUi.useTheme)(),u=(0,_react.useMemo)(()=>buildStyles(c),[c]),[m,h]=(0,_react.useState)(""),[p,d]=(0,_react.useState)(null),_=e.editing,x=(0,_react.useRef)(null),f=(0,_react.useRef)(null);(0,_react.useEffect)(()=>{if(r)return r.current=()=>f.current?.focus(),()=>{r.current=null}},[r]),(0,_react.useEffect)(()=>{_&&x.current?.(),h(_?_.text:"")},[_]);const g=e.attachments,b=g.some(e=>"Uploading"===e.status),j=g.some(e=>"Ready"===e.status),v=e.messagesLeftToday,y=e.profile?.limits.maxMessageLength??DEFAULT_MAX_LENGTH,R=void 0!==s&&e.features.Attachments&&(e.profile?.limits.maxAttachments??0)>0,C=e.features.HumanHandoff&&("WaitingForAgent"===e.conversationState||"WithAgent"===e.conversationState),A=R&&!e.handoffPause?(0,_jsxRuntime.jsx)(_mobileUi.IconButton,{icon:"paperclip",accessibilityLabel:t.attach,variant:"ghost",tone:"neutral",onPress:()=>{s&&s().then(t=>e.attach(t))},testID:`${o}-attach`}):void 0,T=_?(0,_jsxRuntime.jsx)(_mobileUi.Banner,{message:t.editing,accessibilityRole:"summary",actions:[{label:t.cancel,onPress:()=>e.cancelEdit()}],testID:`${o}-editing`}):null,S=g.length>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:u.tray,testID:`${o}-attachments`,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:u.row,children:g.map(s=>(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.item,children:[(0,_jsxRuntime.jsx)(_mobileUi.Chip,{label:s.fileName,variant:"soft",onRemove:()=>{e.removeAttachment(s.key)},labels:{remove:t.removeAttachment},removeTestID:`${o}-remove-${s.key}`,testID:`${o}-chip-${s.key}`}),"Uploading"===s.status?(0,_jsxRuntime.jsx)(_mobileUi.ProgressBar,{progress:s.progress??void 0,label:t.attachmentUploading,height:4,containerStyle:u.progress}):null,"Failed"===s.status?(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"danger",accessibilityLiveRegion:"polite",children:s.error??t.attachmentFailed}):null]},s.key))})}):null,D=null!==v&&v<=ALLOWANCE_SHOWN_AT?(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:0===v?"danger":"secondary",accessibilityLiveRegion:"polite",testID:`${o}-allowance`,children:t.allowance(v)}):null,U=p?(0,_jsxRuntime.jsx)(_mobileUi.Banner,{message:p.message,tone:p.tone,dismissible:!0,onClose:()=>d(null),actions:p.openSettings?[{label:t.dictateOpenSettings,onPress:()=>{_permissions.Permissions.openSettings()}}]:void 0,testID:`${o}-voice-notice`}):null,w=m.length>0,L=m.length>y*COUNTER_AT?(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"secondary",testID:`${o}-counter`,children:t.counter(m.length,y)}):null,N=T||S||D||L||U?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[T,S,D,L,U]}):void 0,k=!b&&(!!j||void 0);return(0,_jsxRuntime.jsx)(_mobileUi.Composer,{ref:f,onSend:t=>{x.current?.(),e.submit(t)},value:m,onChangeText:t=>{x.current?.(),h(t),C&&t.length>0&&e.notifyTyping()},loading:e.streaming&&e.features.Stop,ring:l.input.ring&&(w||e.streaming),sendReveal:"Always"===l.input.sendReveal?"always":"onText",onStop:e.features.Stop?()=>e.stop():void 0,stopLabel:t.stop,disabled:0===v||e.handoffPause,maxLength:y,canSend:k,placeholder:e.handoffPause?t.handoffMoment:openQuestion(e.messages)??t.placeholder,accessibilityLabel:t.composer,labels:{send:t.send},leading:A,trailing:(0,_jsxRuntime.jsx)(_ChatDictationButton.ChatDictationButton,{chat:e,labels:t,disabled:0===v||e.handoffPause,onText:e=>h(t=>(0,_speechText.joinDictation)(t,e,y)),onNotice:d,stopRef:x}),above:N,below:(0,_jsxRuntime.jsx)(_ChatFooter.ChatFooter,{chat:e,labels:t}),keyboardAware:i,keyboardOffset:a,safeArea:n,testID:o})}const buildStyles=e=>_reactNative.StyleSheet.create({tray:{gap:e.space.xs},row:{flexDirection:"row",flexWrap:"wrap",gap:e.space.xs},item:{gap:e.space.xxs,maxWidth:"100%"},progress:{minWidth:120}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatConversationActions=ChatConversationActions;var _mobileUi=require("@webority/mobile-ui"),_useTranscriptActions=_interopRequireDefault(require("./useTranscriptActions.js")),_jsxRuntime=require("react/jsx-runtime");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function ChatConversationActions({chat:e,labels:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatConversationActions=ChatConversationActions;var _chatCore=require("@webority/chat-core"),_mobileUi=require("@webority/mobile-ui"),_useTranscriptActions=_interopRequireDefault(require("./useTranscriptActions.js")),_jsxRuntime=require("react/jsx-runtime");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const REPLY_AUTHORS=new Set(["Assistant","Agent","Script"]);function ChatConversationActions({chat:e,labels:t,testID:i}){const n=(0,_useTranscriptActions.default)(e,t),s=e.messages.some(e=>e.stored&&REPLY_AUTHORS.has(e.author.kind)&&""!==(0,_chatCore.messagePlainText)(e.parts));return e.streaming||e.thinking||e.loading||null===e.conversationId||!s||!n.canShare?null:(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_mobileUi.IconButton,{icon:"share",variant:"ghost",size:"sm",accessibilityLabel:t.shareConversation,onPress:()=>{n.shareConversation()},testID:i}),null!==n.notice?(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"danger",accessibilityLiveRegion:"polite",children:n.notice}):null]})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatDictationButton=ChatDictationButton;var _mobileCore=require("@webority/mobile-core"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_phoneSpeech=require("./speech/phoneSpeech.js"),_useChatSpeech=require("./useChatSpeech.js"),_jsxRuntime=require("react/jsx-runtime");function ChatDictationButton({chat:e,labels:t,disabled:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatDictationButton=ChatDictationButton;var _mobileCore=require("@webority/mobile-core"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_phoneSpeech=require("./speech/phoneSpeech.js"),_useChatSpeech=require("./useChatSpeech.js"),_jsxRuntime=require("react/jsx-runtime");function ChatDictationButton({chat:e,labels:t,disabled:n=!1,onText:i,onNotice:r,testID:a="chat-dictation",stopRef:o}){const c=(0,_useChatSpeech.useChatSpeech)(e),[s,u]=(0,_react.useState)("idle"),l=(0,_react.useRef)(null),d=(0,_react.useRef)(!0),g=(0,_react.useRef)(!1);if((0,_react.useEffect)(()=>{if(o)return o.current=()=>{null!==l.current&&(u("transcribing"),l.current.abort())},()=>{o.current=null}},[o]),(0,_react.useEffect)(()=>(d.current=!0,()=>{d.current=!1,g.current=!0,l.current?.abort()}),[]),!e.features.Dictation||null===c)return null;const h="transcribing"===s,p="listening"===s,b=p?t.dictateStop:h?t.dictateTranscribing:t.dictate;return(0,_jsxRuntime.jsx)(_mobileUi.IconButton,{icon:p?"stop":"microphone",accessibilityLabel:b,variant:"ghost",tone:"neutral",active:p,loading:h,disabled:n||h,onPress:()=>{if("listening"===s)return u("transcribing"),void l.current?.abort();if("idle"!==s)return;r(null),g.current=!1;const e=new AbortController;l.current=e,u("listening"),(0,_mobileUi.announce)(t.dictateListening);let n=!1;(async()=>{try{await c.startDictation({signal:e.signal,onText:e=>{d.current&&(n=!0,i(e))},onEnd:()=>{d.current&&u("transcribing")},shouldDiscard:()=>g.current}),d.current&&!n&&r({message:t.dictationNotHeard,openSettings:!1,tone:"info"})}catch(e){if(!d.current)return;e instanceof _phoneSpeech.PhoneSpeechError?r(dictationFailure(e,t)):(_mobileCore.Logger.error("[chat] dictation failed",e),r({message:t.dictationFailed,openSettings:!1,tone:"info"}))}finally{d.current&&(l.current=null,u("idle"))}})()},testID:a})}const dictationFailure=(e,t)=>{switch(e.phoneCode){case"MicBlocked":return{message:t.dictationBlocked,openSettings:!0,tone:"danger"};case"MicDenied":return{message:t.dictationBlocked,openSettings:!1,tone:"danger"};case"MicUnavailable":return{message:t.dictationNoMicrophone,openSettings:!1,tone:"danger"};case"Unavailable":return{message:t.dictationUnavailable,openSettings:!1,tone:"info"};default:return{message:t.dictationFailed,openSettings:!1,tone:"info"}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatEmbed=ChatEmbed;var _chatCore=require("@webority/chat-core"),_mobileUi=require("@webority/mobile-ui"),_reactNative=require("react-native"),_ChatFrame=require("./ChatFrame.js"),_jsxRuntime=require("react/jsx-runtime");function ChatEmbed({chat:e,labels:t,renderers:r,layoutParts:a,loader:o="Steps",
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatEmbed=ChatEmbed;var _chatCore=require("@webority/chat-core"),_mobileUi=require("@webority/mobile-ui"),_reactNative=require("react-native"),_ChatAppearanceScope=require("./ChatAppearanceScope.js"),_ChatFrame=require("./ChatFrame.js"),_jsxRuntime=require("react/jsx-runtime");const EmbedBox=({height:e,testID:t,children:r})=>{const a=(0,_mobileUi.useTheme)();return(0,_jsxRuntime.jsx)(_reactNative.View,{style:{height:e,overflow:"hidden",borderRadius:(0,_mobileUi.radiusOf)(a,"lg"),borderWidth:1,borderColor:a.colors["border-subtle"],backgroundColor:a.colors.bg},testID:t,children:r})};function ChatEmbed({chat:e,labels:t,renderers:r,layoutParts:a,loader:o="Steps",look:i,appearance:s,pickAttachments:n,onOpenAttachment:c,onOpenTarget:h,onNavigate:l,openTicket:d,handoffHosts:u,resolveLink:p,keyboardOffset:m,title:b,headerActions:C,onClose:_,height:f=520,testID:x="chat-embed"}){return null===e.profile||e.features.VisitorChat?(0,_jsxRuntime.jsx)(_ChatAppearanceScope.ChatAppearanceScope,{appearance:s,children:(0,_jsxRuntime.jsx)(EmbedBox,{height:f,testID:x,children:(0,_jsxRuntime.jsx)(_ChatFrame.ChatFrame,{chat:e,labels:(0,_chatCore.mergeLabels)(t),renderers:r,layoutParts:a,loader:o,look:i,pickAttachments:n,onOpenAttachment:c,onOpenTarget:h,onNavigate:l,openTicket:d,handoffHosts:u,resolveLink:p,keyboardOffset:m,layout:"embedded",title:b,headerActions:C,onClose:_,testID:`${x}-frame`})})}):null}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatFooter=ChatFooter;var _chatCore=require("@webority/chat-core"),_mobileUi=require("@webority/mobile-ui"),_reactNative=require("react-native"),_jsxRuntime=require("react/jsx-runtime");const GOOGLE_PRIVACY="https://policies.google.com/privacy",GOOGLE_TERMS="https://policies.google.com/terms",openLink=e=>{_reactNative.Linking.openURL(e).catch(()=>{})};function ChatFooter({chat:e,labels:i}){const t=(0,_mobileUi.useTheme)(),o=e.profile;if(!o)return null;const r=o.footer.disclaimer
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatFooter=ChatFooter;var _chatCore=require("@webority/chat-core"),_mobileUi=require("@webority/mobile-ui"),_reactNative=require("react-native"),_jsxRuntime=require("react/jsx-runtime");const GOOGLE_PRIVACY="https://policies.google.com/privacy",GOOGLE_TERMS="https://policies.google.com/terms",openLink=e=>{_reactNative.Linking.openURL(e).catch(()=>{})};function ChatFooter({chat:e,labels:i}){const t=(0,_mobileUi.useTheme)(),o=e.profile;if(!o)return null;const r=o.footer.disclaimer||i.disclaimer,n=o.footer.privacyUrl,a=o.footer.assuranceText,l=o.footer.privacyText,c=(0,_chatCore.showsCaptchaNote)(o);return Boolean(r)||Boolean(l)||Boolean(n)||Boolean(a)||c?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{gap:t.space.xxs,alignItems:"center"},children:[r?(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"tertiary",align:"center",children:r}):null,l?(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"tertiary",align:"center",children:l}):null,n?(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"link",accessibilityRole:"link",onPress:()=>openLink(n),children:i.footerPrivacy}):null,a?(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"tertiary",align:"center",children:a}):null,c?(0,_jsxRuntime.jsxs)(_mobileUi.Text,{variant:"caption",color:"tertiary",align:"center",children:[i.captchaNote," ",(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"link",accessibilityRole:"link",onPress:()=>openLink(GOOGLE_PRIVACY),children:i.captchaPrivacy})," ",(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"link",accessibilityRole:"link",onPress:()=>openLink(GOOGLE_TERMS),children:i.captchaTerms})]}):null]}):null}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatFrame=ChatFrame;var _mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_ChatComposer=require("./ChatComposer.js"),_ChatConversationActions=require("./ChatConversationActions.js"),_ChatHistory=require("./ChatHistory.js"),_ChatLiveBar=require("./ChatLiveBar.js"),_ChatStarters=require("./ChatStarters.js"),_ChatThread=require("./ChatThread.js"),_useChatHaptics=require("./useChatHaptics.js"),_jsxRuntime=require("react/jsx-runtime");function ChatFrame({chat:e,labels:t,renderers:s,layoutParts:a,loader:r="Steps",
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatFrame=ChatFrame;var _chatCore=require("@webority/chat-core"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_ChatComposer=require("./ChatComposer.js"),_ChatConversationActions=require("./ChatConversationActions.js"),_ChatHistory=require("./ChatHistory.js"),_ChatLiveBar=require("./ChatLiveBar.js"),_ChatPanel=require("./ChatPanel.js"),_ChatStarters=require("./ChatStarters.js"),_ChatThread=require("./ChatThread.js"),_useChatHaptics=require("./useChatHaptics.js"),_useChatSound=require("./useChatSound.js"),_jsxRuntime=require("react/jsx-runtime");function ChatFrame({chat:e,labels:t,renderers:s,layoutParts:a,loader:r="Steps",look:i,pickAttachments:o,onOpenAttachment:n,onOpenTarget:l,onNavigate:u,openTicket:c,handoffHosts:h,resolveLink:m,keyboardOffset:d,layout:_,title:C,headerActions:x,onClose:j,enterKey:b=0,testID:p="chat-frame"}){const v=(0,_mobileUi.useTheme)(),f=(0,_react.useMemo)(()=>(0,_chatCore.mergeLook)(i),[i]),y=(0,_mobileUi.useReducedMotion)(),R="Reduced"===f.motion||y,g="embedded"===_?"None":f.panel.motion,I="sheet"===_?"sheet":"screen",k=(0,_react.useMemo)(()=>(0,_ChatPanel.panelRun)({motion:g,reduced:R,mode:I,run:b}),[g,R,I,b]),[w,D]=(0,_react.useState)(!1),P=w&&!0===e.features.History;(0,_useChatHaptics.useChatHaptics)(e),(0,_useChatSound.useChatSound)(e);const S="sheet"!==_,q=null!==e.profile,T=(0,_react.useRef)(null);if(q&&!e.features.VisitorChat)return null;const H=e.messages.length>0,$=e.messages.some(e=>"Visitor"===e.author.kind||"Customer"===e.author.kind),A="screen"===_||$,B=!0===e.profile?.experience.sound.muteControl&&e.features.Sounds,L=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{flexDirection:"row",alignItems:"center",gap:v.space.sm,paddingHorizontal:v.space.md,paddingVertical:v.space.sm,borderBottomWidth:1,borderBottomColor:v.colors["border-subtle"]},children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{flex:1,minWidth:0},children:[(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"title",accessibilityRole:"header",numberOfLines:1,children:C??e.profile?.assistant.name??t.panelTitle}),(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"secondary",children:t.headerStatus})]}),x,P?null:(0,_jsxRuntime.jsx)(_ChatConversationActions.ChatConversationActions,{chat:e,labels:t,testID:`${p}-conversation-actions`}),e.features.History?(0,_jsxRuntime.jsx)(_mobileUi.IconButton,{icon:P?"arrow-left":"history",variant:"ghost",tone:"neutral",accessibilityLabel:P?t.backToChat:t.history,onPress:()=>D(e=>!e),testID:`${p}-history`}):null,B?(0,_jsxRuntime.jsx)(_mobileUi.IconButton,{icon:e.muted?"volume-mute":"volume-high",variant:"ghost",tone:"neutral",accessibilityLabel:e.muted?t.unmuteSounds:t.muteSounds,onPress:()=>e.session.setMuted(!e.muted),testID:`${p}-mute`}):null,P||!A?null:(0,_jsxRuntime.jsx)(_mobileUi.IconButton,{icon:"plus",variant:"ghost",tone:"neutral",accessibilityLabel:t.newChat,disabled:e.streaming||e.thinking,onPress:()=>e.newConversation(),testID:`${p}-new`}),j?(0,_jsxRuntime.jsx)(_mobileUi.IconButton,{icon:"x",variant:"ghost",tone:"neutral",accessibilityLabel:t.close,onPress:j,testID:`${p}-close`}):null]});let U;return U=P?(0,_jsxRuntime.jsx)(_ChatHistory.ChatHistory,{chat:e,labels:t,onOpen:()=>D(!1),testID:`${p}-history-list`}):e.profileError?(0,_jsxRuntime.jsx)(_mobileUi.Banner,{tone:"danger",message:e.profileError.message,accessibilityRole:"alert",testID:`${p}-profile-error`}):!q||e.loading?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{flex:1,alignItems:"center",justifyContent:"center"},children:(0,_jsxRuntime.jsx)(_mobileUi.Spinner,{message:t.loadingConversation,testID:`${p}-loading`})}):e.loadError?(0,_jsxRuntime.jsx)(_mobileUi.Banner,{tone:"danger",message:e.loadError.message,accessibilityRole:"alert",testID:`${p}-load-error`}):H?(0,_jsxRuntime.jsx)(_ChatThread.ChatThread,{chat:e,labels:t,renderers:s,layoutParts:a,loader:r,motion:f.motion,pickAttachments:o,onOpenAttachment:n,onOpenTarget:l,onNavigate:u,openTicket:c,handoffHosts:h,resolveLink:m,focusComposer:()=>T.current?.(),keyboardAware:S,keyboardOffset:d,style:{flex:1},testID:`${p}-thread`}):(0,_jsxRuntime.jsx)(_ChatStarters.ChatStarters,{chat:e,labels:t,openTicket:c,testID:`${p}-starters`}),(0,_jsxRuntime.jsx)(_ChatPanel.ChatPanelGrow,{grow:k.grow,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{flex:1},testID:p,children:[(0,_jsxRuntime.jsx)(_ChatPanel.ChatReveal,{plan:k.reveal.header,children:L}),P?null:(0,_jsxRuntime.jsx)(_ChatLiveBar.ChatLiveBar,{chat:e,labels:t,testID:`${p}-live`}),(0,_jsxRuntime.jsx)(_ChatPanel.ChatReveal,{plan:k.reveal.body,flex:!0,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:{flex:1},children:U})}),P?null:(0,_jsxRuntime.jsx)(_ChatPanel.ChatReveal,{plan:k.reveal.composer,children:(0,_jsxRuntime.jsx)(_ChatComposer.ChatComposer,{chat:e,labels:t,look:f,pickAttachments:o,keyboardOffset:d,keyboardAware:S,focusRef:T,testID:`${p}-composer`})})]})})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatHistory=ChatHistory;var _chatCore=require("@webority/chat-core"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatHistory=ChatHistory;var _chatCore=require("@webority/chat-core"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_ChatPastChats=require("./ChatPastChats.js"),_jsxRuntime=require("react/jsx-runtime");const EMPTY_LIST_STATE=Object.freeze({items:[],totalCount:null,loading:!1,error:null,hasMore:!1}),NO_SUBSCRIPTION=()=>()=>{};function ChatHistory({chat:e,labels:t,onOpen:i,testID:s="chat-history"}){const l=(0,_mobileUi.useTheme)(),[r,n]=(0,_react.useState)(null),a=null!==r&&r.client===e.client?r.list:null,o=(0,_react.useCallback)(e=>a?a.subscribe(e):NO_SUBSCRIPTION(),[a]),c=(0,_react.useCallback)(()=>a?a.getState():EMPTY_LIST_STATE,[a]),u=(0,_react.useSyncExternalStore)(o,c);(0,_react.useEffect)(()=>{const t=(0,_chatCore.createConversationList)({client:e.client});return n({client:e.client,list:t}),t.load(),()=>t.dispose()},[e.client]);const open=t=>{e.openConversation(t.publicId),i()},_=!u.loading&&null===u.error&&0===u.items.length;return(0,_jsxRuntime.jsxs)(_reactNative.ScrollView,{contentContainerStyle:{padding:l.space.md,gap:l.space.sm,flexGrow:1},accessibilityLabel:t.history,testID:s,children:[u.error?(0,_jsxRuntime.jsx)(_mobileUi.Banner,{tone:"danger",message:t.loadFailed,actions:[{label:t.retry,onPress:()=>{a?.load()}}],testID:`${s}-error`}):null,_?(0,_jsxRuntime.jsx)(_mobileUi.EmptyState,{size:"sm",title:t.historyEmptyTitle,description:t.historyEmptyText,testID:`${s}-empty`}):null,u.items.map(i=>(0,_jsxRuntime.jsx)(_ChatPastChats.ConversationRow,{conversation:i,list:a,chat:e,labels:t,testID:s,onOpen:open,untitledTitle:t.untitled},i.publicId)),u.loading&&0===u.items.length?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{gap:l.space.sm},accessibilityElementsHidden:!0,children:[(0,_jsxRuntime.jsx)(_mobileUi.Skeleton,{height:56}),(0,_jsxRuntime.jsx)(_mobileUi.Skeleton,{height:56}),(0,_jsxRuntime.jsx)(_mobileUi.Skeleton,{height:56})]}):null,!u.loading&&u.hasMore?(0,_jsxRuntime.jsx)(_mobileUi.Button,{label:t.loadMore,variant:"outline",onPress:()=>{a?.loadMore()},testID:`${s}-more`}):null]})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatLauncher=ChatLauncher;var _mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_jsxRuntime=require("react/jsx-runtime");const RISE_MS=900,RISE_DELAY_MS=400,ENTRANCE_MS=800,ENTRANCE_DELAY_MS=1e3,FLOAT_HALF_MS=1600,FLOAT_PX=4,RISE_FROM_PX=116;function entranceStyle(e,t){const range=(e,a)=>t.interpolate({inputRange:e,outputRange:a,extrapolate:"clamp"});switch(e){case"Rise":return{opacity:range([0,.4,1],[0,1,1]),transform:[{translateY:t.interpolate({inputRange:[0,1],outputRange:[116,0]})}]};case"SlideUp":return{opacity:range([0,1],[0,1]),transform:[{translateY:t.interpolate({inputRange:[0,1],outputRange:[100,0]})},{scale:t.interpolate({inputRange:[0,1],outputRange:[.8,1]})}]};case"BounceIn":return{transform:[{scale:range([0,.5,.7,1],[.3,1.05,.9,1])}]};case"FadeInPulse":return{opacity:range([0,.5,1],[0,1,1]),transform:[{scale:range([0,.5,1],[1,1.1,1])}]};case"SpinScale":return{transform:[{rotate:t.interpolate({inputRange:[0,1],outputRange:["-180deg","0deg"]})},{scale:t.interpolate({inputRange:[0,1],outputRange:[0,1]})}]};case"WiggleIn":return{transform:[{translateY:range([0,.4,1],[100,0,0])},{rotate:range([0,.4,.6,.8,1],["-10deg","5deg","-3deg","1deg","0deg"])}]};case"ElasticIn":return{transform:[{scale:range([0,.55,.75,1],[0,1.1,.95,1])}]};default:return{transform:[]}}}const OVERSHOOT=new Set(["Rise","SlideUp","SpinScale"]);function ChatLauncher({look:e,label:t,side:a,offsetX:n,offsetY:r,enter:i,reduced:s,buttonRef:o,onPress:c,testID:u}){const l=(0,_mobileUi.useTheme)(),_=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),p=e.launcher.entrance,[g]=(0,_react.useState)(()=>i&&!s&&"None"!==p),d=!s&&"FloatAndPulse"===e.launcher.idle,[m]=(0,_react.useState)(()=>new _reactNative.Animated.Value(g?0:1)),[S]=(0,_react.useState)(()=>new _reactNative.Animated.Value(0));(0,_react.useEffect)(()=>{if(!g)return void m.setValue(1);const e="Rise"===p,t=_reactNative.Animated.timing(m,{toValue:1,duration:e?RISE_MS:ENTRANCE_MS,delay:e?RISE_DELAY_MS:ENTRANCE_DELAY_MS,easing:OVERSHOOT.has(p)?_reactNative.Easing.bezier(.34,e?1.4:1.56,.64,1):_reactNative.Easing.linear,useNativeDriver:!0});return t.start(),()=>t.stop()},[g,p,m]),(0,_react.useEffect)(()=>{if(!d)return void S.setValue(0);const e=_reactNative.Animated.loop(_reactNative.Animated.sequence([_reactNative.Animated.timing(S,{toValue:1,duration:FLOAT_HALF_MS,easing:_reactNative.Easing.inOut(_reactNative.Easing.ease),useNativeDriver:!0}),_reactNative.Animated.timing(S,{toValue:0,duration:FLOAT_HALF_MS,easing:_reactNative.Easing.inOut(_reactNative.Easing.ease),useNativeDriver:!0})]));return e.start(),()=>e.stop()},[d,S]);const f="Pill"===e.launcher.style&&!e.launcher.compact,R=l.space[l.components["floating-action-button"]["edge-offset"]]+n,v={position:"absolute",bottom:r+_.bottom,..."start"===a?{left:R}:{right:R}},N=entranceStyle(p,m);return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"box-none",style:_reactNative.StyleSheet.absoluteFill,children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[v,{opacity:N.opacity??1,transform:[...N.transform,{translateY:S.interpolate({inputRange:[0,1],outputRange:[0,-FLOAT_PX]})}]}],children:(0,_jsxRuntime.jsx)(_mobileUi.FloatingActionButton,{ref:o,icon:"messages",label:f?t:void 0,collapsed:!f,accessibilityLabel:t,onPress:c,testID:u})})})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatLiveBar=ChatLiveBar;var _mobileUi=require("@webority/mobile-ui"),_reactNative=require("react-native"),_jsxRuntime=require("react/jsx-runtime");const newestAgentName=(e,t)=>{for(let i=e.messages.length-1;i>=0;i-=1){const n=e.messages[i];if("Agent"===n?.author.kind)return n.author.displayName||t}return t};function ChatLiveBar({chat:e,labels:t,testID:i="chat-live-bar"}){const n=(0,_mobileUi.useTheme)();if(!e.features.HumanHandoff||null===e.conversationId)return null;const s=e.conversationState;if("Closed"===s)return null;if("Open"===s)return(0,_jsxRuntime.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatLiveBar=ChatLiveBar;var _mobileUi=require("@webority/mobile-ui"),_reactNative=require("react-native"),_jsxRuntime=require("react/jsx-runtime");const newestAgentName=(e,t)=>{for(let i=e.messages.length-1;i>=0;i-=1){const n=e.messages[i];if("Agent"===n?.author.kind)return n.author.displayName||t}return t};function ChatLiveBar({chat:e,labels:t,testID:i="chat-live-bar"}){const n=(0,_mobileUi.useTheme)();if(!e.features.HumanHandoff||null===e.conversationId)return null;const s=e.conversationState;if("Closed"===s)return null;if("Open"===s){return e.features.HumanHandoff&&e.messages.some(e=>"Visitor"===e.author.kind||"Customer"===e.author.kind)&&!e.streaming&&!e.thinking?(0,_jsxRuntime.jsxs)(_reactNative.View,{accessibilityLiveRegion:"polite",style:{paddingHorizontal:n.space.md,paddingVertical:n.space.xs},testID:i,children:[(0,_jsxRuntime.jsx)(_mobileUi.Button,{label:t.talkToPerson,variant:"soft",size:"sm",leftIcon:"user",loading:e.handoffPending,onPress:()=>{e.requestHandoff()},testID:`${i}-talk`}),null!==e.handoffError?(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"danger",accessibilityLiveRegion:"polite",children:t.errorGeneric}):null]}):null}const a="Lost"===e.live,r="WaitingForAgent"===s?t.statusWaitingForAgent:t.statusWithAgent(newestAgentName(e,t.agent));return(0,_jsxRuntime.jsxs)(_reactNative.View,{accessibilityLiveRegion:"polite",style:{gap:n.space.xs,paddingHorizontal:n.space.md,paddingVertical:n.space.xs},testID:i,children:[(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"secondary",children:r}),a?(0,_jsxRuntime.jsx)(_mobileUi.Banner,{tone:"warning",message:t.liveLost,actions:[{label:t.retry,onPress:()=>e.resumeLive()}],testID:`${i}-lost`}):null]})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatMessageActions=ChatMessageActions;var _chatCore=require("@webority/chat-core"),_clipboard=require("@webority/mobile-core/clipboard"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_ReadAloudButton=require("./ReadAloudButton.js"),_useTranscriptActions=_interopRequireDefault(require("./useTranscriptActions.js")),_jsxRuntime=require("react/jsx-runtime");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const TEXT_AUTHORS=new Set(["Assistant","Agent","Script"]),RATED_AUTHORS=new Set(["Assistant","Agent"]);function ChatMessageActions({chat:e,message:t,labels:i,isLast:s,isLastVisitor:a,testID:r}){const n=(0,_mobileUi.useTheme)(),[l,o]=(0,_react.useState)(!1),[u
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatMessageActions=ChatMessageActions;var _chatCore=require("@webority/chat-core"),_clipboard=require("@webority/mobile-core/clipboard"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_ReadAloudButton=require("./ReadAloudButton.js"),_useTranscriptActions=_interopRequireDefault(require("./useTranscriptActions.js")),_jsxRuntime=require("react/jsx-runtime");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const TEXT_AUTHORS=new Set(["Assistant","Agent","Script"]),RATED_AUTHORS=new Set(["Assistant","Agent"]);function ChatMessageActions({chat:e,message:t,labels:i,isLast:s,isLastVisitor:a,testID:r}){const n=(0,_mobileUi.useTheme)(),[l,o]=(0,_react.useState)(!1),[c,u]=(0,_react.useState)("idle"),d=(0,_react.useRef)(null),m=(0,_useTranscriptActions.default)(e,i),_=(0,_react.useMemo)(()=>TEXT_AUTHORS.has(t.author.kind)&&(0,_chatCore.buildTranscript)([t],{labels:i,title:null,figureText:!1}).entries.length>0,[t,i]);if((0,_react.useEffect)(()=>()=>{null!==d.current&&clearTimeout(d.current)},[]),t.streaming)return null;const h=(0,_chatCore.messagePlainText)(t.parts),g=TEXT_AUTHORS.has(t.author.kind)&&""!==h,x=t.stored&&RATED_AUTHORS.has(t.author.kind),b=("Assistant"===t.author.kind||"Agent"===t.author.kind||"Script"===t.author.kind)&&""!==(0,_chatCore.messagePlainText)(t.parts).trim(),p=s&&"Assistant"===t.author.kind&&!e.streaming&&!e.thinking&&e.features.Regenerate&&e.messages.some(e=>e.stored&&"Visitor"===e.author.kind),R=a&&t.stored&&e.features.Edit&&!e.streaming&&!e.thinking,save=async i=>{try{await e.rate(t.id,i),u("saved")}catch{u("failed")}};return g&&e.features.Copy||_&&e.features.Share&&m.canShare||b||p||R||x&&e.features.Rating?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{flexDirection:"row",flexWrap:"wrap",alignItems:"center",gap:n.space.xs},testID:r,children:[g&&e.features.Copy?(0,_jsxRuntime.jsx)(_mobileUi.Button,{label:l?i.copied:i.copy,variant:"link",size:"sm",onPress:()=>{(async()=>{await(0,_clipboard.copyText)(h)&&(o(!0),null!==d.current&&clearTimeout(d.current),d.current=setTimeout(()=>o(!1),2e3))})()},testID:`${r}-copy`}):null,_&&e.features.Share&&m.canShare?(0,_jsxRuntime.jsx)(_mobileUi.Button,{label:i.share,variant:"link",size:"sm",leftIcon:"share",disabled:e.streaming||e.thinking,onPress:()=>{m.shareReply(t)},testID:`${r}-share`}):null,b?(0,_jsxRuntime.jsx)(_ReadAloudButton.ReadAloudButton,{chat:e,message:t,labels:i}):null,p?(0,_jsxRuntime.jsx)(_mobileUi.Button,{label:i.regenerate,variant:"link",size:"sm",onPress:()=>{e.regenerate()},testID:`${r}-regenerate`}):null,R?(0,_jsxRuntime.jsx)(_mobileUi.Button,{label:i.edit,variant:"link",size:"sm",onPress:()=>e.startEdit(t.id),testID:`${r}-edit`}):null,x&&e.features.Rating?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{accessibilityRole:"summary",accessibilityLabel:i.rating,style:{flexDirection:"row",alignItems:"center",gap:n.space.xs},children:[(0,_jsxRuntime.jsx)(_mobileUi.IconButton,{icon:"like",accessibilityLabel:i.rateUp,tone:"neutral",size:"sm",variant:"Up"===t.rating?"soft":"ghost",accessibilityState:{checked:"Up"===t.rating},onPress:()=>{save("Up")},testID:`${r}-rate-up`}),(0,_jsxRuntime.jsx)(_mobileUi.IconButton,{icon:"dislike",accessibilityLabel:i.rateDown,tone:"neutral",size:"sm",variant:"Down"===t.rating?"soft":"ghost",accessibilityState:{checked:"Down"===t.rating},onPress:()=>{save("Down")},testID:`${r}-rate-down`})]}),"failed"===c?(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"danger",accessibilityLiveRegion:"polite",children:i.ratingFailed}):null,"saved"===c?(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"secondary",accessibilityLiveRegion:"polite",children:i.rated}):null]}):null,null!==m.notice?(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"danger",accessibilityLiveRegion:"polite",children:m.notice}):null]}):null}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatNudge=ChatNudge;var _chatCore=require("@webority/chat-core"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_jsxRuntime=require("react/jsx-runtime");const LAUNCHER_CLEARANCE=72,EDGE_INSET=16;function ChatNudge({chat:e,labels:t,enabled:r,onActivate:i,bottomOffset:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatNudge=ChatNudge;var _chatCore=require("@webority/chat-core"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_jsxRuntime=require("react/jsx-runtime");const LAUNCHER_CLEARANCE=72,EDGE_INSET=16;function ChatNudge({chat:e,labels:t,enabled:r,onActivate:i,bottomOffset:s,position:o,testID:a="chat-nudge"}){const n=e.profile,u=e.features,c=n?(0,_chatCore.resolveNudge)(n,u):null,[l,_]=(0,_react.useState)(!1),[E,d]=(0,_react.useState)(!1),[m,b]=(0,_react.useState)(!1);if((0,_react.useEffect)(()=>{if(!r||!c||l)return void d(!1);if(m)return;const e=setTimeout(()=>{d(!0),b(!0)},1e3*c.delaySeconds);return()=>clearTimeout(e)},[r,c,l,m]),!c||!E||l)return null;const f="start"===o?{left:EDGE_INSET}:{right:EDGE_INSET};return(0,_jsxRuntime.jsx)(_reactNative.View,{style:{position:"absolute",bottom:s+LAUNCHER_CLEARANCE,...f,maxWidth:320},pointerEvents:"box-none",children:(0,_jsxRuntime.jsx)(_mobileUi.Banner,{tone:"info",message:c.text,dismissible:!0,onClose:()=>_(!0),labels:{dismiss:t.nudgeDismiss},actions:[{label:t.launcher,onPress:i}],testID:a})})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatOpenTickets=ChatOpenTickets;var _mobileUi=require("@webority/mobile-ui"),_reactNative=require("react-native"),_jsxRuntime=require("react/jsx-runtime");const SHOWN_AT_MOST=3;function ChatOpenTickets({chat:e,labels:t,onOpenTicket:i,testID:s="chat-open-tickets"}){const n=(0,_mobileUi.useTheme)();return e.features.OpenTickets&&0!==e.openTickets.length?(0,_jsxRuntime.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatOpenTickets=ChatOpenTickets;var _mobileUi=require("@webority/mobile-ui"),_reactNative=require("react-native"),_jsxRuntime=require("react/jsx-runtime");const SHOWN_AT_MOST=3;function ChatOpenTickets({chat:e,labels:t,onOpenTicket:i,testID:s="chat-open-tickets"}){const n=(0,_mobileUi.useTheme)();return e.features.OpenTickets&&0!==e.openTickets.length?(0,_jsxRuntime.jsx)(_reactNative.View,{accessibilityLabel:t.openTickets,style:{gap:n.space.xs},testID:s,children:e.openTickets.slice(0,SHOWN_AT_MOST).map(e=>{const n=i?()=>i({ticketId:e.ticketId,number:e.number}):void 0;return(0,_jsxRuntime.jsxs)(_mobileUi.Card,{variant:"outline",padding:"sm",interactive:void 0!==n,onPress:n,testID:`${s}-${e.ticketId}`,children:[(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"label",children:t.ticketAria(e.number)}),(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"bodySmall",numberOfLines:1,children:e.subject}),(0,_jsxRuntime.jsx)(_mobileUi.Chip,{size:"sm",variant:"soft",label:t.ticketStatus(e.status)||e.status})]},e.ticketId)})}):null}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatPanelGrow=ChatPanelGrow,exports.ChatReveal=ChatReveal,exports.panelRun=void 0;var _react=require("react"),_reactNative=require("react-native"),_jsxRuntime=require("react/jsx-runtime");const SPRING_DELAY={header:110,body:160,composer:240},revealFor=(e,t,a,r)=>a?null:"Spring"===e?{run:r,delay:SPRING_DELAY[t],duration:260,distance:10}:"Gentle"===e?{run:r,delay:0,duration:250,distance:12}:null,panelRun=e=>{const{motion:t,reduced:a,mode:r,run:n}=e;return{grow:"Spring"!==t||a||"screen"!==r?null:{run:n},reveal:{header:revealFor(t,"header",a,n),body:revealFor(t,"body",a,n),composer:revealFor(t,"composer",a,n)}}};exports.panelRun=panelRun;const SPRING={stiffness:200,damping:22.4,mass:1,useNativeDriver:!0};function ChatReveal({plan:e,flex:t=!1,children:a}){const[r]=(0,_react.useState)(()=>new _reactNative.Animated.Value(null===e?1:0));(0,_react.useEffect)(()=>{if(null===e)return void r.setValue(1);r.setValue(0);const t=_reactNative.Animated.timing(r,{toValue:1,duration:e.duration,delay:e.delay,useNativeDriver:!0});return t.start(),()=>t.stop()},[e,r]);const n=e?.distance??0;return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{flex:t?1:void 0,opacity:r,transform:[{translateY:r.interpolate({inputRange:[0,1],outputRange:[n,0]})}]},children:a})}function ChatPanelGrow({grow:e,children:t}){const[a]=(0,_react.useState)(()=>new _reactNative.Animated.Value(null===e?1:0)),[r,n]=(0,_react.useState)({width:0,height:0});(0,_react.useEffect)(()=>{if(null===e)return void a.setValue(1);a.setValue(0);const t=_reactNative.Animated.spring(a,{toValue:1,...SPRING});return t.start(),()=>t.stop()},[e,a]);const i=[{translateY:a.interpolate({inputRange:[0,1],outputRange:[r.height,0]})}];return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{onLayout:e=>{const{width:t,height:a}=e.nativeEvent.layout;n(e=>e.width===t&&e.height===a?e:{width:t,height:a})},style:{flex:1,transform:i},children:t})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatPastChats=ChatPastChats,exports.ConversationRow=ConversationRow;var _chatCore=require("@webority/chat-core"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_jsxRuntime=require("react/jsx-runtime");const PAGE_SIZE=20,EMPTY_LIST_STATE=Object.freeze({items:[],totalCount:null,loading:!1,error:null,hasMore:!1}),NO_SUBSCRIPTION=()=>()=>{};function ChatPastChats({chat:e,labels:t,testID:i="chat-past-chats"}){const n=(0,_mobileUi.useTheme)(),s=!0===e.features.History,[a,l]=(0,_react.useState)(null),r=s&&null!==a&&a.client===e.client?a.list:null,o=(0,_react.useCallback)(e=>r?r.subscribe(e):NO_SUBSCRIPTION(),[r]),c=(0,_react.useCallback)(()=>r?r.getState():EMPTY_LIST_STATE,[r]),u=(0,_react.useSyncExternalStore)(o,c);if((0,_react.useEffect)(()=>{if(!s)return;const t=(0,_chatCore.createConversationList)({client:e.client});return l({client:e.client,list:t}),t.load(),()=>t.dispose()},[e.client,s]),!s||0===u.items.length)return null;const open=t=>{e.openConversation(t.publicId)};return(0,_jsxRuntime.jsx)(_reactNative.View,{style:{gap:n.space.sm},testID:i,children:u.items.slice(0,PAGE_SIZE).map(n=>(0,_jsxRuntime.jsx)(ConversationRow,{conversation:n,list:r,chat:e,labels:t,testID:i,onOpen:open},n.publicId))})}function ConversationRow({conversation:e,list:t,chat:i,labels:n,testID:s,onOpen:a,untitledTitle:l}){const r=(0,_mobileUi.useTheme)(),[o,c]=(0,_react.useState)("idle"),[u,m]=(0,_react.useState)(""),[_,d]=(0,_react.useState)(""),[x,b]=(0,_react.useState)(!1),j=e.publicId,h=e.title||l||n.earlierChat,v=(0,_chatCore.formatChatDate)(e.lastActivityDateTimeUtc),cancel=()=>{d(""),c("idle")},saveRename=async()=>{const e=u.trim();if(!x&&t&&""!==e){b(!0),d("");try{await t.rename(j,e),c("idle")}catch{d(n.renameFailed)}finally{b(!1)}}};return(0,_jsxRuntime.jsxs)(_mobileUi.Card,{variant:"outline",padding:"sm",onPress:"idle"===o?()=>a(e):void 0,accessibilityLabel:`${h}, ${v}`,testID:`${s}-item-${j}`,children:["idle"===o?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{flexDirection:"row",alignItems:"center",gap:r.space.sm},children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{flex:1,minWidth:0},children:[(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"label",numberOfLines:1,children:h}),(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"secondary",children:v})]}),i.features.Rename?(0,_jsxRuntime.jsx)(_mobileUi.IconButton,{icon:"edit",variant:"ghost",accessibilityLabel:n.rename,onPress:()=>{d(""),m(e.title??""),c("renaming")},testID:`${s}-rename-${j}`}):null,i.features.Delete?(0,_jsxRuntime.jsx)(_mobileUi.IconButton,{icon:"trash",tone:"danger",variant:"ghost",accessibilityLabel:n.deleteChat,onPress:()=>{d(""),c("deleting")},testID:`${s}-delete-${j}`}):null]}):null,"renaming"===o?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{gap:r.space.sm},children:[(0,_jsxRuntime.jsx)(_mobileUi.Input,{label:n.conversationTitle,value:u,onChangeText:m,maxLength:120,returnKeyType:"done",onSubmitEditing:()=>{saveRename()},testID:`${s}-rename-input-${j}`}),""!==_?(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"danger",accessibilityLiveRegion:"polite",testID:`${s}-rename-error-${j}`,children:_}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{flexDirection:"row",justifyContent:"flex-end",gap:r.space.sm},children:[(0,_jsxRuntime.jsx)(_mobileUi.Button,{label:n.cancel,variant:"ghost",disabled:x,onPress:cancel,testID:`${s}-rename-cancel-${j}`}),(0,_jsxRuntime.jsx)(_mobileUi.Button,{label:n.renameSave,disabled:""===u.trim()||x,loading:x,onPress:()=>{saveRename()},testID:`${s}-rename-save-${j}`})]})]}):null,"deleting"===o?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{gap:r.space.sm},children:[(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"bodySmall",color:""!==_?"danger":"secondary",accessibilityLiveRegion:""!==_?"polite":void 0,testID:`${s}-delete-message-${j}`,children:""!==_?_:n.deleteConfirmMessage}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{flexDirection:"row",justifyContent:"flex-end",gap:r.space.sm},children:[(0,_jsxRuntime.jsx)(_mobileUi.Button,{label:n.cancel,variant:"ghost",disabled:x,onPress:cancel,testID:`${s}-delete-cancel-${j}`}),(0,_jsxRuntime.jsx)(_mobileUi.Button,{label:n.deleteConfirm,tone:"danger",loading:x,onPress:()=>{(async()=>{if(!x&&t){b(!0),d("");try{await t.remove(j),j===i.conversationId&&i.newConversation(),c("idle")}catch{d(n.deleteFailed)}finally{b(!1)}}})()},testID:`${s}-delete-confirm-${j}`})]})]}):null]})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatScreen=ChatScreen;var _chatCore=require("@webority/chat-core"),_mobileUi=require("@webority/mobile-ui"),_reactNative=require("react-native"),_ChatFrame=require("./ChatFrame.js"),_jsxRuntime=require("react/jsx-runtime");function ChatScreen({chat:e,labels:t,renderers:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatScreen=ChatScreen;var _chatCore=require("@webority/chat-core"),_mobileUi=require("@webority/mobile-ui"),_reactNative=require("react-native"),_ChatAppearanceScope=require("./ChatAppearanceScope.js"),_ChatFrame=require("./ChatFrame.js"),_jsxRuntime=require("react/jsx-runtime");function ChatScreen({chat:e,labels:t,renderers:a,layoutParts:r,loader:o="Steps",look:n,appearance:s,pickAttachments:c,onOpenAttachment:i,onOpenTarget:l,onNavigate:h,openTicket:p,handoffHosts:u,resolveLink:m,keyboardOffset:C,title:_,headerActions:d,onClose:f,testID:b="chat-screen"}){const j=(0,_mobileUi.useTheme)();return null===e.profile||e.features.VisitorChat?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{flex:1,backgroundColor:j.colors.bg},testID:b,children:(0,_jsxRuntime.jsx)(_ChatAppearanceScope.ChatAppearanceScope,{appearance:s,children:(0,_jsxRuntime.jsx)(_ChatFrame.ChatFrame,{chat:e,labels:(0,_chatCore.mergeLabels)(t),renderers:a,layoutParts:r,loader:o,look:n,pickAttachments:c,onOpenAttachment:i,onOpenTarget:l,onNavigate:h,openTicket:p,handoffHosts:u,resolveLink:m,keyboardOffset:C,layout:"screen",title:_,headerActions:d,onClose:f,testID:`${b}-frame`})})}):null}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatSheet=ChatSheet;var _chatCore=require("@webority/chat-core"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_ChatFrame=require("./ChatFrame.js"),_ChatNudge=require("./ChatNudge.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_SNAP_POINTS=["92%"];function ChatSheet({chat:e,labels:t,renderers:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatSheet=ChatSheet;var _chatCore=require("@webority/chat-core"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_ChatAppearanceScope=require("./ChatAppearanceScope.js"),_ChatFrame=require("./ChatFrame.js"),_ChatLauncher=require("./ChatLauncher.js"),_ChatNudge=require("./ChatNudge.js"),_chatShared=require("./chatShared.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_SNAP_POINTS=["92%"],DEFAULT_BOTTOM_OFFSET=16;function ChatSheet({chat:e,labels:t,renderers:r,layoutParts:a,loader:s="Steps",look:n,appearance:o,pickAttachments:c,onOpenAttachment:i,onOpenTarget:u,onNavigate:l,keyboardOffset:h,open:p,defaultOpen:_=!1,onOpenChange:f,snapPoints:d=DEFAULT_SNAP_POINTS,openTicket:m,handoffHosts:b,resolveLink:C,conversationId:g,onClose:j,testID:S="chat-sheet"}){const x=(0,_mobileUi.useTheme)(),T=(0,_chatCore.mergeLabels)(t),O=(0,_react.useMemo)(()=>(0,_chatCore.mergeLook)(n),[n]),R=(0,_mobileUi.useReducedMotion)(),v="Reduced"===O.motion||R,y=o?.position??"end",A=void 0!==p,k=A?p:e.open,N=(0,_react.useRef)(null),E=(0,_react.useRef)(!1),F=(0,_react.useRef)(g??null),L=e.setChatVisible,P=(0,_react.useRef)(!1),q=!P.current,[D,I]=(0,_react.useState)(0),U=(0,_react.useRef)(k);(0,_react.useEffect)(()=>{k&&(P.current=!0)},[k]),(0,_react.useEffect)(()=>{k&&!U.current&&I(e=>e+1),U.current=k},[k]),(0,_react.useEffect)(()=>{E.current||(E.current=!0,A||!_||null===e.profile||e.open||e.session.open({trigger:"manual"}))},[A,_,e.profile,e.open,e.session]),(0,_react.useEffect)(()=>{A&&(p&&!e.open&&e.session.open({trigger:"manual"}),!p&&e.open&&e.session.close("button"))},[A,p,e.open,e.session]);const w=(0,_react.useRef)(k);if((0,_react.useEffect)(()=>{w.current&&!k&&(0,_chatShared.focusForAccessibility)(N.current),w.current=k},[k]),(0,_react.useEffect)(()=>{L(k)},[L,k]),(0,_react.useEffect)(()=>{!A&&g&&g!==F.current&&null!==e.profile&&(F.current=g,e.open||(e.session.open({trigger:"manual"}),f?.(!0)))},[A,g,e.profile,e.open,e.session,f]),null===e.profile||!e.features.VisitorChat)return null;const setOpen=t=>{t?e.session.open({trigger:"manual"}):e.session.close("button"),f?.(t)},closeSheet=()=>{setOpen(!1),j?.()},M=o?.offsetY??DEFAULT_BOTTOM_OFFSET;return(0,_jsxRuntime.jsx)(_reactNative.View,{testID:S,style:_reactNative.StyleSheet.absoluteFill,pointerEvents:"box-none",children:(0,_jsxRuntime.jsxs)(_ChatAppearanceScope.ChatAppearanceScope,{appearance:o,children:[k?null:(0,_jsxRuntime.jsx)(_ChatLauncher.ChatLauncher,{look:O,label:T.launcher,side:y,offsetX:o?.offsetX??0,offsetY:M,enter:q,reduced:v,buttonRef:N,onPress:()=>setOpen(!0),testID:`${S}-launcher`}),(0,_jsxRuntime.jsx)(_ChatNudge.ChatNudge,{chat:e,labels:T,enabled:!k&&e.features.Nudges,onActivate:()=>setOpen(!0),bottomOffset:M,position:y,testID:`${S}-nudge`}),(0,_jsxRuntime.jsx)(_mobileUi.BottomSheet,{open:k,onClose:closeSheet,snapPoints:d,keyboardBehavior:"shift",scrollable:!1,enablePanDownToClose:!0,enableBackdropPress:!0,accessibilityViewIsModal:!0,accessibilityLabel:T.panelTitle,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:{flex:1,backgroundColor:x.colors.bg},children:(0,_jsxRuntime.jsx)(_ChatFrame.ChatFrame,{chat:e,labels:T,renderers:r,layoutParts:a,loader:s,look:n,pickAttachments:c,onOpenAttachment:i,onOpenTarget:u,onNavigate:l,openTicket:m,handoffHosts:b,resolveLink:C,keyboardOffset:h,onClose:closeSheet,layout:"sheet",enterKey:D,testID:`${S}-frame`})})})]})})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatStarters=ChatStarters;var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatStarters=ChatStarters;var _mobileCore=require("@webority/mobile-core"),_mobileUi=require("@webority/mobile-ui"),_reactNative=require("react-native"),_ChatEntrance=require("./ChatEntrance.js"),_ChatOpenTickets=require("./ChatOpenTickets.js"),_ChatPastChats=require("./ChatPastChats.js"),_jsxRuntime=require("react/jsx-runtime");function ChatStarters({chat:e,labels:t,openTicket:s,testID:i="chat-starters"}){const a=(0,_mobileUi.useTheme)(),r=e.profile,n=e.greeting??"";if(!r)return null;const l=e.features.Starters&&e.starters.length>0,c=e.lastConversation,o=e.features.ResumeLast&&!e.features.History&&null!==c;return(0,_jsxRuntime.jsxs)(_reactNative.View,{accessibilityLabel:t.emptyTitle,style:{flex:1,justifyContent:"center",alignItems:"center",gap:a.space.md,padding:a.space.md},testID:i,children:[(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"h2",align:"center",children:n}),l?(0,_jsxRuntime.jsx)(_reactNative.View,{accessibilityRole:"none",accessibilityLabel:t.starters,style:{flexDirection:"row",flexWrap:"wrap",justifyContent:"center",gap:a.space.xs},children:e.starters.map((t,s)=>(0,_jsxRuntime.jsx)(_ChatEntrance.ChatEntrance,{index:s,children:(0,_jsxRuntime.jsx)(_mobileUi.Chip,{label:t.label,leftIcon:t.icon?t.icon:void 0,onPress:()=>{e.submit(t.message)},testID:`${i}-${t.id}`})},t.id))}):null,o&&c?(0,_jsxRuntime.jsxs)(_mobileUi.Card,{variant:"outline",padding:"sm",onPress:()=>{e.resumeLast()},testID:`${i}-resume`,children:[(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"secondary",children:t.resumeLast}),(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"label",numberOfLines:1,children:c.title||t.untitled}),(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"secondary",children:(0,_mobileCore.formatDate)(c.lastActivityDateTimeUtc)})]}):null,e.features.History?(0,_jsxRuntime.jsx)(_ChatPastChats.ChatPastChats,{chat:e,labels:t,testID:`${i}-past-chats`}):null,(0,_jsxRuntime.jsx)(_ChatOpenTickets.ChatOpenTickets,{chat:e,labels:t,onOpenTicket:s})]})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatThread=ChatThread;var _chatCore=require("@webority/chat-core"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_AgentByline=require("./AgentByline.js"),_ChatEntrance=require("./ChatEntrance.js"),_ChatMessageActions=require("./ChatMessageActions.js"),_chatShared=require("./chatShared.js"),_ChatLoader=require("./loaders/ChatLoader.js"),_TypingPill=require("./loaders/TypingPill.js"),_index=require("./renderers/index.js"),_NoticePart=require("./renderers/NoticePart.js"),_jsxRuntime=require("react/jsx-runtime");const MINE=new Set(["Visitor","Customer"]),joinedText=e=>e.filter(e=>"Text"===e.kind).map(e=>e.text).join("\n\n"),renderPart=(e,t,s,a,i,r)=>{const n=e[t.kind];if(n)return(0,_react.createElement)(n,{key:r,part:t,message:s,turn:a,pickAttachments:i});const o={kind:"Notice",code:"NeedsNewerApp",text:a.labels.needsNewerApp};return(0,_react.createElement)(_NoticePart.NoticePart,{key:r,part:o,message:s,turn:a})},sameMessage=(e,t)=>e.signature===t.signature&&e.message.id===t.message.id&&e.message.rating===t.message.rating&&e.message.stored===t.message.stored&&e.groupPosition===t.groupPosition&&e.isLast===t.isLast&&e.isLastVisitor===t.isLastVisitor&&e.thinking===t.thinking&&e.streaming===t.streaming&&e.pickAttachments===t.pickAttachments&&e.labels===t.labels&&e.all===t.all&&e.layoutParts===t.layoutParts&&e.chat.session===t.chat.session&&e.chat.features===t.chat.features&&e.chat.onNavigate===t.chat.onNavigate&&e.onNavigate===t.onNavigate&&e.onOpenAttachment===t.onOpenAttachment&&e.onOpenTarget===t.onOpenTarget&&e.openTicket===t.openTicket&&e.handoffHosts===t.handoffHosts;function ThreadMessageView({chat:e,message:t,labels:s,all:a,layoutParts:i,groupPosition:r,isLast:n,isLastVisitor:o,pickAttachments:l,onOpenAttachment:c,onOpenTarget:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatThread=ChatThread;var _chatCore=require("@webority/chat-core"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_AgentByline=require("./AgentByline.js"),_ChatEntrance=require("./ChatEntrance.js"),_ChatMessageActions=require("./ChatMessageActions.js"),_chatShared=require("./chatShared.js"),_ChatLoader=require("./loaders/ChatLoader.js"),_TypingPill=require("./loaders/TypingPill.js"),_index=require("./renderers/index.js"),_NoticePart=require("./renderers/NoticePart.js"),_jsxRuntime=require("react/jsx-runtime");const MINE=new Set(["Visitor","Customer"]),joinedText=e=>e.filter(e=>"Text"===e.kind).map(e=>e.text).join("\n\n"),renderPart=(e,t,s,a,i,r)=>{const n=e[t.kind];if(n)return(0,_react.createElement)(n,{key:r,part:t,message:s,turn:a,pickAttachments:i});const o={kind:"Notice",code:"NeedsNewerApp",text:a.labels.needsNewerApp};return(0,_react.createElement)(_NoticePart.NoticePart,{key:r,part:o,message:s,turn:a})},sameMessage=(e,t)=>e.signature===t.signature&&e.message.id===t.message.id&&e.message.rating===t.message.rating&&e.message.stored===t.message.stored&&e.groupPosition===t.groupPosition&&e.isLast===t.isLast&&e.handoffSettled===t.handoffSettled&&e.isLastVisitor===t.isLastVisitor&&e.thinking===t.thinking&&e.streaming===t.streaming&&e.pickAttachments===t.pickAttachments&&e.labels===t.labels&&e.all===t.all&&e.layoutParts===t.layoutParts&&e.chat.session===t.chat.session&&e.chat.features===t.chat.features&&e.chat.onNavigate===t.chat.onNavigate&&e.onNavigate===t.onNavigate&&e.onOpenAttachment===t.onOpenAttachment&&e.onOpenTarget===t.onOpenTarget&&e.openTicket===t.openTicket&&e.resolveLink===t.resolveLink&&e.focusComposer===t.focusComposer&&e.byline===t.byline&&e.handoffHosts===t.handoffHosts;function ThreadMessageView({chat:e,message:t,labels:s,all:a,layoutParts:i,groupPosition:r,isLast:n,isLastVisitor:o,pickAttachments:l,onOpenAttachment:c,onOpenTarget:u,onNavigate:g,openTicket:m,handoffHosts:d,resolveLink:h,focusComposer:p,byline:_,sourceRows:x,testID:y}){const f=(0,_mobileUi.useTheme)(),j=Object.assign((0,_chatCore.createTurnApi)(e.session,{messageId:t.id,labels:s,openAttachment:c,openTarget:u??_chatShared.defaultOpenTarget,onNavigate:g??e.onNavigate,openTicket:m,handoffHosts:d,openCitation:e=>{return t=String(e),void(0,_chatShared.focusForAccessibility)(x.current.get(t));var t}}),{resolveLink:h,focusComposer:p,registerSourceRow:(e,t)=>{t?x.current.set(e,t):x.current.delete(e)}});let T=0;const nextSlot=()=>(T+=1,T),b=(0,_jsxRuntime.jsx)(_ChatMessageActions.ChatMessageActions,{chat:e,message:t,labels:s,isLast:n,isLastVisitor:o,testID:`${y}-actions`});if(MINE.has(t.author.kind)){const e=t.parts.filter(e=>"File"===e.kind),i=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{gap:f.space.xs},children:[e.map(e=>renderPart(a,e,t,j,l,`${t.id}-file-${nextSlot()}`)),b]});return(0,_jsxRuntime.jsx)(_mobileUi.MessageBubble,{side:"mine",text:joinedText(t.parts),labels:{you:s.you},groupPosition:r,footer:i,testID:y})}const k="Agent"===t.author.kind,N=t.author.displayName||s.agent,v=(i?i(t):t.parts).map(e=>Array.isArray(e)?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{flexDirection:"row",flexWrap:"wrap",gap:f.space.xs},children:e.map(e=>renderPart(a,e,t,j,l,`${t.id}-part-${nextSlot()}`))},`${t.id}-group-${nextSlot()}`):renderPart(a,e,t,j,l,`${t.id}-item-${nextSlot()}`)),A=k&&_?[(0,_jsxRuntime.jsx)(_AgentByline.AgentByline,{author:t.author,labels:s},`${t.id}-byline`),...v]:v,R=(0,_chatCore.messagePlainText)(t.parts);return(0,_jsxRuntime.jsx)(_mobileUi.MessageBubble,{side:"theirs",author:k?void 0:t.author.displayName||s.assistant,text:k?`${s.agentSays(N)} ${R}`:R,streaming:t.streaming,groupPosition:r,footer:b,testID:y,children:A})}const ThreadMessage=(0,_react.memo)(ThreadMessageView,sameMessage),TYPING_ORB_MARK=14,TYPING_ASSISTANT_MARK=8,TypingMark=({size:e})=>{const t=(0,_mobileUi.useTheme)();return(0,_jsxRuntime.jsx)(_reactNative.View,{style:{width:e,height:e,borderRadius:t.radius.pill,backgroundColor:t.colors.primary}})},TYPING_DOT=6,TypingDots=()=>{const e=(0,_mobileUi.useTheme)();return(0,_jsxRuntime.jsx)(_reactNative.View,{style:{flexDirection:"row",alignItems:"center",gap:e.space.xxs},children:[0,1,2].map(t=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:{width:6,height:6,borderRadius:3,backgroundColor:e.colors["text-muted"]}},t))})},TurnGap=()=>{const e=(0,_mobileUi.useTheme)();return(0,_jsxRuntime.jsx)(_reactNative.View,{style:{height:e.space.lg}})},followNew=()=>!0;function ChatThread({chat:e,labels:t,renderers:s,layoutParts:a,loader:i="Steps",motion:r="On",pickAttachments:n,onOpenAttachment:o,onOpenTarget:l,onNavigate:c,openTicket:u,handoffHosts:g,resolveLink:m,focusComposer:d,keyboardAware:h,keyboardOffset:p,empty:_,style:x,testID:y="chat-thread"}){const f=(0,_mobileUi.useTheme)(),j=(0,_react.useMemo)(()=>({..._index.defaultRenderers,...s}),[s]),T=e.messages[0],b=e.greeting??"",k=(0,_react.useMemo)(()=>""!==b&&void 0!==T&&MINE.has(T.author.kind)?{...T,id:"greeting",author:{...T.author,kind:"Assistant",displayName:null,avatarUrl:null},parts:[{kind:"Text",text:b}],stored:!1,streaming:!1,restored:!1,rating:null}:null,[b,T]),N=(0,_react.useMemo)(()=>{const t=e.messages.filter(e=>!(e.streaming&&0===e.parts.length)).reverse();return k?[...t,k]:t},[e.messages,k]),v=e.messages[e.messages.length-1]?.id,A=(0,_react.useRef)(new Map),R=(0,_react.useRef)(null);(0,_react.useEffect)(()=>{if(null!==R.current)for(const s of e.messages){if(MINE.has(s.author.kind)||s.streaming||s.restored||R.current.has(s.id))continue;if("Agent"===s.author.kind&&!s.stored)continue;R.current.add(s.id);const e=(0,_chatCore.messagePlainText)(s.parts);""!==e&&_reactNative.AccessibilityInfo.announceForAccessibility("Agent"===s.author.kind?`${t.agentSays(s.author.displayName||t.agent)} ${e}`:e)}else R.current=new Set(e.messages.map(e=>e.id))},[e.messages,t]);const w=(0,_react.useMemo)(()=>{for(let t=e.messages.length-1;t>=0;t-=1){const s=e.messages[t];if(s?.stored&&"Visitor"===s.author.kind)return s.id}},[e.messages]),P=(0,_react.useMemo)(()=>{const t=new Set;return e.messages.forEach((s,a)=>{if("Agent"!==s.author.kind)return;const i=e.messages[a-1];"Agent"===i?.author.kind&&(i.author.displayName||"")===(s.author.displayName||"")||t.add(s.id)}),t},[e.messages]),M=(0,_react.useMemo)(()=>(0,_chatCore.handoffSettledIds)(e.messages),[e.messages]),C=e.turnError,S="daily_limit"===C?.code,I=null!==C&&/feature_off$/.test(C.code),L=S&&C?.resetsDateTimeUtc?` ${t.dailyLimitRefresh((0,_chatCore.formatChatDateTime)(C.resetsDateTimeUtc))}`:"",$=e.streaming||null===C&&!e.stopped?null:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{gap:f.space.xs},testID:`${y}-error`,children:[null!==C?(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"bodySmall",color:"danger",accessibilityRole:S?void 0:"alert",accessibilityLiveRegion:S?"polite":void 0,children:`${C.message}${L}`}):(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"bodySmall",color:"danger",accessibilityLiveRegion:"polite",children:t.stopped}),!e.features.Retry||S||I?null:(0,_jsxRuntime.jsx)(_reactNative.View,{style:{flexDirection:"row"},children:(0,_jsxRuntime.jsx)(_mobileUi.Button,{label:t.retry,variant:"link",size:"sm",onPress:()=>{e.retry()},testID:`${y}-retry`})})]}),D=e.thinking&&null!==e.profile?(0,_jsxRuntime.jsx)(_ChatLoader.ChatLoader,{style:i,steps:e.steps,phrases:e.profile.experience.pacing.thinkingPhrases,intervalMs:e.profile.experience.pacing.phraseIntervalMs,announce:t.preparingAnswer(e.profile.assistant.name),motion:r}):null,O=!0===e.pending?.typing?(0,_jsxRuntime.jsx)(_TypingPill.TypingPill,{motion:r,mark:(0,_jsxRuntime.jsx)(TypingMark,{size:"Orb"===i?TYPING_ORB_MARK:TYPING_ASSISTANT_MARK})}):null,V=null!==e.agentTyping&&"WithAgent"===e.conversationState?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{gap:f.space.xs,alignSelf:"flex-start"},children:[(0,_jsxRuntime.jsx)(_TypingPill.TypingPill,{motion:r,mark:(0,_jsxRuntime.jsx)(TypingDots,{})}),(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"secondary",accessibilityLiveRegion:"polite",children:t.agentTyping(e.agentTyping.displayName||t.agent)})]}):null,U=O||D||$||V?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{gap:f.space.sm},children:[O,D,V,$]}):void 0;return(0,_jsxRuntime.jsx)(_mobileUi.MessageList,{messages:N,keyExtractor:e=>e.id,renderMessage:({item:s,groupPosition:i})=>(0,_jsxRuntime.jsx)(_ChatEntrance.ChatEntrance,{animate:!s.restored,children:(0,_jsxRuntime.jsx)(ThreadMessage,{chat:e,message:s,signature:(0,_chatShared.messageSignature)(s),labels:t,all:j,layoutParts:a,groupPosition:i,isLast:s.id===v,isLastVisitor:s.id===w,handoffSettled:M.has(s.id),thinking:e.thinking,streaming:e.streaming,pickAttachments:n,onOpenAttachment:o,onOpenTarget:l,onNavigate:c,openTicket:u,handoffHosts:g,resolveLink:m,focusComposer:d,byline:P.has(s.id),sourceRows:A,testID:`${y}-${s.id}`})}),getAuthorKey:e=>e.author.kind,getDate:e=>e.createdDateTimeUtc,followNew:followNew,typing:U,empty:_,ItemSeparatorComponent:TurnGap,keyboardAware:h,keyboardOffset:p,accessibilityLabel:t.thread,style:x,testID:y})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ReadAloudButton=ReadAloudButton;var _chatCore=require("@webority/chat-core"),_mobileCore=require("@webority/mobile-core"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_phoneSpeech=require("./speech/phoneSpeech.js"),_useChatSpeech=require("./useChatSpeech.js"),_jsxRuntime=require("react/jsx-runtime");function ReadAloudButton({chat:e,message:r,labels:t,testID:a="chat-read-aloud"}){const o=(0,_useChatSpeech.useChatSpeech)(e),[i,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ReadAloudButton=ReadAloudButton;var _chatCore=require("@webority/chat-core"),_mobileCore=require("@webority/mobile-core"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_phoneSpeech=require("./speech/phoneSpeech.js"),_useChatSpeech=require("./useChatSpeech.js"),_jsxRuntime=require("react/jsx-runtime");function spokenText(e){return(0,_chatCore.messagePlainText)(e.filter(e=>"Text"===e.kind)).replace(/ ?\[\d+\]/g,"").replace(/\s+/g," ").trim()}function ReadAloudButton({chat:e,message:r,labels:t,testID:a="chat-read-aloud"}){const o=(0,_useChatSpeech.useChatSpeech)(e),[i,n]=(0,_react.useState)(!1),[u,s]=(0,_react.useState)(!1),c=(0,_react.useRef)(null),l=(0,_react.useRef)(!0),d=(0,_react.useMemo)(()=>spokenText(r.parts),[r.parts]);if((0,_react.useEffect)(()=>(l.current=!0,()=>{l.current=!1,c.current?.abort()}),[]),!e.features.ReadAloud||null===o||r.streaming||""===d.trim())return null;return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_mobileUi.IconButton,{icon:i?"stop":"volume-high",accessibilityLabel:i?t.readAloudStop:t.readAloud,variant:"ghost",tone:"neutral",size:"sm",onPress:()=>{if(i)return void c.current?.abort();s(!1);const e=new AbortController;c.current=e,n(!0);(async()=>{try{await o.speak(d,{signal:e.signal})}catch(r){if(!l.current||e.signal.aborted)return;s(!0),r instanceof _phoneSpeech.PhoneSpeechError||_mobileCore.Logger.error("[chat] read aloud failed",r)}finally{l.current&&(c.current=null,n(!1))}})()},testID:a}),u?(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"danger",accessibilityLiveRegion:"polite",children:t.readAloudFailed}):null]})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.defaultOpenTarget=defaultOpenTarget,exports.messageSignature=messageSignature;var _reactNative=require("react-native");function messageSignature(e){let t=0;for(const
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.defaultOpenTarget=defaultOpenTarget,exports.focusForAccessibility=focusForAccessibility,exports.messageSignature=messageSignature;var _reactNative=require("react-native");function focusForAccessibility(e){if(null==e)return;if("web"===_reactNative.Platform.OS)return void e.focus?.();const t=(0,_reactNative.findNodeHandle)(e);null!==t&&_reactNative.AccessibilityInfo.setAccessibilityFocus(t)}function messageSignature(e){let t=0;for(const i of e.parts)"Text"===i.kind&&(t+=i.text.length);return`${e.id}|${e.parts.length}|${t}`}const ABSOLUTE_WEB_URL=/^https?:\/\//i;function defaultOpenTarget(e){ABSOLUTE_WEB_URL.test(e)&&_reactNative.Linking.openURL(e).catch(()=>{})}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
"ResumeLast": "src/ChatStarters.tsx",
|
|
6
6
|
"OpenTickets": "src/ChatOpenTickets.tsx",
|
|
7
7
|
"History": "src/ChatFrame.tsx",
|
|
8
|
-
"Rename": "src/
|
|
9
|
-
"Delete": "src/
|
|
8
|
+
"Rename": "src/ChatPastChats.tsx",
|
|
9
|
+
"Delete": "src/ChatPastChats.tsx",
|
|
10
10
|
"SuggestedReplies": "src/renderers/QuickRepliesPart.tsx",
|
|
11
11
|
"Stop": "src/ChatComposer.tsx",
|
|
12
12
|
"Retry": "src/ChatThread.tsx",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"VoiceClips": "src/renderers/VoiceClipPart.tsx",
|
|
31
31
|
"Sounds": "src/useChatHaptics.ts",
|
|
32
32
|
"AutoOpen": null,
|
|
33
|
-
"BehaviourStarters": "src/
|
|
33
|
+
"BehaviourStarters": "../chat-core/src/session.ts",
|
|
34
34
|
"LeadShortcuts": "src/renderers/InputRequestPart.tsx",
|
|
35
35
|
"LeadRecap": "src/renderers/ActionPart.tsx",
|
|
36
36
|
"FigureText": "src/renderers/TextPart.tsx",
|
package/lib/commonjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"AgentByline",{enumerable:!0,get:function(){return _AgentByline.AgentByline}}),Object.defineProperty(exports,"CHAT_PUSH_TYPE",{enumerable:!0,get:function(){return _pushOpen.CHAT_PUSH_TYPE}}),Object.defineProperty(exports,"ChatComposer",{enumerable:!0,get:function(){return _ChatComposer.ChatComposer}}),Object.defineProperty(exports,"ChatConversationActions",{enumerable:!0,get:function(){return _ChatConversationActions.ChatConversationActions}}),Object.defineProperty(exports,"ChatDictationButton",{enumerable:!0,get:function(){return _ChatDictationButton.ChatDictationButton}}),Object.defineProperty(exports,"ChatEmbed",{enumerable:!0,get:function(){return _ChatEmbed.ChatEmbed}}),Object.defineProperty(exports,"ChatFooter",{enumerable:!0,get:function(){return _ChatFooter.ChatFooter}}),Object.defineProperty(exports,"ChatHistory",{enumerable:!0,get:function(){return _ChatHistory.ChatHistory}}),Object.defineProperty(exports,"ChatLiveBar",{enumerable:!0,get:function(){return _ChatLiveBar.ChatLiveBar}}),Object.defineProperty(exports,"ChatLoader",{enumerable:!0,get:function(){return _ChatLoader.ChatLoader}}),Object.defineProperty(exports,"ChatMessageActions",{enumerable:!0,get:function(){return _ChatMessageActions.ChatMessageActions}}),Object.defineProperty(exports,"ChatNudge",{enumerable:!0,get:function(){return _ChatNudge.ChatNudge}}),Object.defineProperty(exports,"ChatOpenTickets",{enumerable:!0,get:function(){return _ChatOpenTickets.ChatOpenTickets}}),Object.defineProperty(exports,"ChatScreen",{enumerable:!0,get:function(){return _ChatScreen.ChatScreen}}),Object.defineProperty(exports,"ChatSheet",{enumerable:!0,get:function(){return _ChatSheet.ChatSheet}}),Object.defineProperty(exports,"ChatStarters",{enumerable:!0,get:function(){return _ChatStarters.ChatStarters}}),Object.defineProperty(exports,"ChatThread",{enumerable:!0,get:function(){return _ChatThread.ChatThread}}),Object.defineProperty(exports,"ReadAloudButton",{enumerable:!0,get:function(){return _ReadAloudButton.ReadAloudButton}}),Object.defineProperty(exports,"TypingPill",{enumerable:!0,get:function(){return _TypingPill.TypingPill}}),Object.defineProperty(exports,"chatConversationIdFromPush",{enumerable:!0,get:function(){return _pushOpen.chatConversationIdFromPush}}),Object.defineProperty(exports,"defaultOpenTarget",{enumerable:!0,get:function(){return _chatShared.defaultOpenTarget}}),Object.defineProperty(exports,"defaultRenderers",{enumerable:!0,get:function(){return _index.defaultRenderers}}),Object.defineProperty(exports,"messageSignature",{enumerable:!0,get:function(){return _chatShared.messageSignature}}),Object.defineProperty(exports,"useChat",{enumerable:!0,get:function(){return _useChat.useChat}}),Object.defineProperty(exports,"useChatSpeech",{enumerable:!0,get:function(){return _useChatSpeech.useChatSpeech}});var _AgentByline=require("./AgentByline.js"),_ChatComposer=require("./ChatComposer.js"),_ChatConversationActions=require("./ChatConversationActions.js"),_ChatDictationButton=require("./ChatDictationButton.js"),_ChatEmbed=require("./ChatEmbed.js"),_ChatFooter=require("./ChatFooter.js"),_ChatHistory=require("./ChatHistory.js"),_ChatLiveBar=require("./ChatLiveBar.js"),_ChatMessageActions=require("./ChatMessageActions.js"),_ChatNudge=require("./ChatNudge.js"),_ChatOpenTickets=require("./ChatOpenTickets.js"),_ChatScreen=require("./ChatScreen.js"),_ChatSheet=require("./ChatSheet.js"),_ChatStarters=require("./ChatStarters.js"),_ChatThread=require("./ChatThread.js"),_chatShared=require("./chatShared.js"),_ChatLoader=require("./loaders/ChatLoader.js"),_TypingPill=require("./loaders/TypingPill.js"),_pushOpen=require("./pushOpen.js"),_ReadAloudButton=require("./ReadAloudButton.js"),_index=require("./renderers/index.js"),_useChat=require("./useChat.js"),_useChatSpeech=require("./useChatSpeech.js");
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"AgentByline",{enumerable:!0,get:function(){return _AgentByline.AgentByline}}),Object.defineProperty(exports,"CHAT_PUSH_TYPE",{enumerable:!0,get:function(){return _pushOpen.CHAT_PUSH_TYPE}}),Object.defineProperty(exports,"ChatComposer",{enumerable:!0,get:function(){return _ChatComposer.ChatComposer}}),Object.defineProperty(exports,"ChatConversationActions",{enumerable:!0,get:function(){return _ChatConversationActions.ChatConversationActions}}),Object.defineProperty(exports,"ChatDictationButton",{enumerable:!0,get:function(){return _ChatDictationButton.ChatDictationButton}}),Object.defineProperty(exports,"ChatEmbed",{enumerable:!0,get:function(){return _ChatEmbed.ChatEmbed}}),Object.defineProperty(exports,"ChatFooter",{enumerable:!0,get:function(){return _ChatFooter.ChatFooter}}),Object.defineProperty(exports,"ChatHistory",{enumerable:!0,get:function(){return _ChatHistory.ChatHistory}}),Object.defineProperty(exports,"ChatLiveBar",{enumerable:!0,get:function(){return _ChatLiveBar.ChatLiveBar}}),Object.defineProperty(exports,"ChatLoader",{enumerable:!0,get:function(){return _ChatLoader.ChatLoader}}),Object.defineProperty(exports,"ChatMessageActions",{enumerable:!0,get:function(){return _ChatMessageActions.ChatMessageActions}}),Object.defineProperty(exports,"ChatNudge",{enumerable:!0,get:function(){return _ChatNudge.ChatNudge}}),Object.defineProperty(exports,"ChatOpenTickets",{enumerable:!0,get:function(){return _ChatOpenTickets.ChatOpenTickets}}),Object.defineProperty(exports,"ChatPastChats",{enumerable:!0,get:function(){return _ChatPastChats.ChatPastChats}}),Object.defineProperty(exports,"ChatScreen",{enumerable:!0,get:function(){return _ChatScreen.ChatScreen}}),Object.defineProperty(exports,"ChatSheet",{enumerable:!0,get:function(){return _ChatSheet.ChatSheet}}),Object.defineProperty(exports,"ChatStarters",{enumerable:!0,get:function(){return _ChatStarters.ChatStarters}}),Object.defineProperty(exports,"ChatThread",{enumerable:!0,get:function(){return _ChatThread.ChatThread}}),Object.defineProperty(exports,"ReadAloudButton",{enumerable:!0,get:function(){return _ReadAloudButton.ReadAloudButton}}),Object.defineProperty(exports,"TypingPill",{enumerable:!0,get:function(){return _TypingPill.TypingPill}}),Object.defineProperty(exports,"chatConversationIdFromPush",{enumerable:!0,get:function(){return _pushOpen.chatConversationIdFromPush}}),Object.defineProperty(exports,"defaultOpenTarget",{enumerable:!0,get:function(){return _chatShared.defaultOpenTarget}}),Object.defineProperty(exports,"defaultRenderers",{enumerable:!0,get:function(){return _index.defaultRenderers}}),Object.defineProperty(exports,"messageSignature",{enumerable:!0,get:function(){return _chatShared.messageSignature}}),Object.defineProperty(exports,"useChat",{enumerable:!0,get:function(){return _useChat.useChat}}),Object.defineProperty(exports,"useChatSpeech",{enumerable:!0,get:function(){return _useChatSpeech.useChatSpeech}});var _AgentByline=require("./AgentByline.js"),_ChatComposer=require("./ChatComposer.js"),_ChatConversationActions=require("./ChatConversationActions.js"),_ChatDictationButton=require("./ChatDictationButton.js"),_ChatEmbed=require("./ChatEmbed.js"),_ChatFooter=require("./ChatFooter.js"),_ChatHistory=require("./ChatHistory.js"),_ChatLiveBar=require("./ChatLiveBar.js"),_ChatMessageActions=require("./ChatMessageActions.js"),_ChatNudge=require("./ChatNudge.js"),_ChatOpenTickets=require("./ChatOpenTickets.js"),_ChatPastChats=require("./ChatPastChats.js"),_ChatScreen=require("./ChatScreen.js"),_ChatSheet=require("./ChatSheet.js"),_ChatStarters=require("./ChatStarters.js"),_ChatThread=require("./ChatThread.js"),_chatShared=require("./chatShared.js"),_ChatLoader=require("./loaders/ChatLoader.js"),_TypingPill=require("./loaders/TypingPill.js"),_pushOpen=require("./pushOpen.js"),_ReadAloudButton=require("./ReadAloudButton.js"),_index=require("./renderers/index.js"),_useChat=require("./useChat.js"),_useChatSpeech=require("./useChatSpeech.js");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatLoader=ChatLoader;var _chatCore=require("@webority/chat-core"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_OrbLoader=require("./OrbLoader.js"),_PhrasesLoader=require("./PhrasesLoader.js"),_SkeletonLoader=require("./SkeletonLoader.js"),_StepsLoader=require("./StepsLoader.js"),_jsxRuntime=require("react/jsx-runtime");const ANNOUNCE_DELAY_MS=500;function ChatLoader({style:e="Steps",steps:t=[],phrases:r,intervalMs:s,motion:o="On",announce:a,testID:i="chat-loader"}){if(!_chatCore.LOADER_STYLES.includes(e))throw new Error(`ChatLoader style must be one of ${_chatCore.LOADER_STYLES.join(", ")}; got "${e}".`);const c=(0,_mobileUi.useReducedMotion)(),n="Reduced"===o||c,[u,d]=(0,_react.useState)({style:e,count:0});(0,_react.useEffect)(()=>{d({style:e,count:0})},[e]),(0,_react.useEffect)(()=>{if(n)return;const t=setInterval(()=>{d(t=>({style:e,count:(t.style===e?t.count:0)+1}))},s);return()=>clearInterval(t)},[e,s,n]);const l=(0,_react.useRef)(a),[_,L]=(0,_react.useState)("");(0,_react.useEffect)(()=>{const e=setTimeout(()=>L(l.current),ANNOUNCE_DELAY_MS);return()=>clearTimeout(e)},[]);const h=n||u.style!==e?0:u.count,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChatLoader=ChatLoader;var _chatCore=require("@webority/chat-core"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_OrbLoader=require("./OrbLoader.js"),_PhrasesLoader=require("./PhrasesLoader.js"),_SkeletonLoader=require("./SkeletonLoader.js"),_StepsLoader=require("./StepsLoader.js"),_jsxRuntime=require("react/jsx-runtime");const ANNOUNCE_DELAY_MS=500;function ChatLoader({style:e="Steps",steps:t=[],phrases:r,intervalMs:s,motion:o="On",announce:a,testID:i="chat-loader"}){if(!_chatCore.LOADER_STYLES.includes(e))throw new Error(`ChatLoader style must be one of ${_chatCore.LOADER_STYLES.join(", ")}; got "${e}".`);const c=(0,_mobileUi.useReducedMotion)(),n="Reduced"===o||c,[u,d]=(0,_react.useState)({style:e,count:0});(0,_react.useEffect)(()=>{d({style:e,count:0})},[e]),(0,_react.useEffect)(()=>{if(n)return;const t=setInterval(()=>{d(t=>({style:e,count:(t.style===e?t.count:0)+1}))},s);return()=>clearInterval(t)},[e,s,n]);const l=(0,_react.useRef)(a),[_,L]=(0,_react.useState)("");(0,_react.useEffect)(()=>{const e=setTimeout(()=>L(l.current),ANNOUNCE_DELAY_MS);return()=>clearTimeout(e)},[]);const h=n||u.style!==e?0:u.count,S=(0,_chatCore.loaderView)(e,t,r,h);return(0,_jsxRuntime.jsxs)(_reactNative.View,{role:"status",accessibilityLabel:S.label,accessibilityLiveRegion:"polite",testID:i,children:[loaderBody(e,S,n),(0,_jsxRuntime.jsx)(_mobileUi.Text,{accessibilityLiveRegion:"polite",style:styles.announce,children:_})]})}const loaderBody=(e,t,r)=>{switch(e){case"Steps":return(0,_jsxRuntime.jsx)(_StepsLoader.StepsLoader,{view:t,reduced:r});case"Phrases":return(0,_jsxRuntime.jsx)(_PhrasesLoader.PhrasesLoader,{view:t,reduced:r});case"Orb":return(0,_jsxRuntime.jsx)(_OrbLoader.OrbLoader,{view:t,reduced:r});case"Skeleton":return(0,_jsxRuntime.jsx)(_SkeletonLoader.SkeletonLoader,{view:t,reduced:r})}},styles=_reactNative.StyleSheet.create({announce:{position:"absolute",width:1,height:1,opacity:0,overflow:"hidden"}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ActionPart=ActionPart;var _chatCore=require("@webority/chat-core"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_NoticePart=require("./NoticePart.js"),_jsxRuntime=require("react/jsx-runtime");const statusLine=(e,t)=>{switch(e.state){case"Confirmed":return t.actionConfirmed;case"Done":return t.actionDone;case"Rejected":return t.actionRejected;case"Expired":return t.actionExpired;case"Failed":return t.actionFailed;case"Repeat":return e.decidedDateTimeUtc?t.actionRepeat((0,_chatCore.formatChatDate)(e.decidedDateTimeUtc)):t.actionDone;case"Pending":return""}};function ActionBody({part:e,turn:t}){const i=(0,_mobileUi.useTheme)(),{labels:n,features:a}=t,[r,o]=(0,_react.useState)(null),[s,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ActionPart=ActionPart;var _chatCore=require("@webority/chat-core"),_markdownCore=require("@webority/markdown-core"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_NoticePart=require("./NoticePart.js"),_jsxRuntime=require("react/jsx-runtime");const LEAD_CAPTURE="ChatLeadCapture",SAFE_LINK=/^https?:/,inlineNodes=(e,t)=>e.map(e=>{if("text"===e.type||"code"===e.type||"citation"===e.type)return e.text;if("link"===e.type){const i=inlineNodes(e.children,t);return SAFE_LINK.test(e.href)?(0,_jsxRuntime.jsx)(_reactNative.Text,{accessibilityRole:"link",style:{color:t.colors.link,textDecorationLine:"underline"},onPress:()=>{_reactNative.Linking.openURL(e.href).catch(()=>{})},children:i},e.key):(0,_jsxRuntime.jsx)(_reactNative.Text,{children:i},e.key)}if("image"===e.type)return null;const i="strong"===e.type?{fontWeight:t.weight.bold}:"em"===e.type?{fontStyle:"italic"}:{textDecorationLine:"line-through"};return(0,_jsxRuntime.jsx)(_reactNative.Text,{style:i,children:inlineNodes(e.children,t)},e.key)}),splitLine=e=>{const t=e.indexOf(": ");return t<0?{term:e,detail:null}:{term:e.slice(0,t),detail:e.slice(t+2)}},statusLine=(e,t)=>{switch(e.state){case"Confirmed":return t.actionConfirmed;case"Done":return e.decidedDateTimeUtc?`${t.actionDone} ${(0,_chatCore.formatChatDate)(e.decidedDateTimeUtc)}`:t.actionDone;case"Rejected":return t.actionRejected;case"Expired":return t.actionExpired;case"Failed":return t.actionFailed;case"Repeat":return e.decidedDateTimeUtc?t.actionRepeat((0,_chatCore.formatChatDate)(e.decidedDateTimeUtc)):t.actionDone;case"Pending":return""}};function ActionBody({part:e,turn:t}){const i=(0,_mobileUi.useTheme)(),{labels:n,features:a}=t,[r,o]=(0,_react.useState)(null),[s,l]=(0,_react.useState)(""),[c,d]=(0,_react.useState)(!1),run=async(e,t)=>{o(e),l("");try{await t()}catch(e){const t=e?.message;l("string"==typeof t&&""!==t?t:n.actionFailed),o(null)}},u=(e.editFields??[]).map(e=>({label:e.label,value:e.id})),m=a.LeadRecap&&e.actionKind===LEAD_CAPTURE,x=m&&u.length>0,_=m&&e.confirmLabel||n.actionConfirm,j=m&&e.rejectLabel||n.actionDismiss,p=null!==r;return(0,_jsxRuntime.jsxs)(_mobileUi.Card,{variant:"outline",padding:"sm",children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{gap:i.space.sm},children:[(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"label",children:e.title}),e.lines.map(e=>{if(!m)return(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"bodySmall",children:e},e);const{term:t,detail:n}=splitLine(e);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{flexDirection:"row",flexWrap:"wrap",gap:i.space.xs},children:[(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"label",children:t}),null!==n?(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"bodySmall",children:n}):null]},e)}),m&&e.consentText?(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"secondary",children:inlineNodes((0,_markdownCore.parseInline)(e.consentText),i)}):null,"Pending"===e.state?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[""!==s?(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"bodySmall",color:"danger",accessibilityLiveRegion:"polite",children:s}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{flexDirection:"row",flexWrap:"wrap",gap:i.space.sm},children:[(0,_jsxRuntime.jsx)(_mobileUi.Button,{label:"confirm"===r?n.actionWorking:_,loading:"confirm"===r,disabled:p,onPress:()=>{run("confirm",()=>t.confirmAction(e.actionId))}}),(0,_jsxRuntime.jsx)(_mobileUi.Button,{label:j,variant:"ghost",disabled:p,onPress:()=>{run("reject",()=>t.rejectAction(e.actionId))}})]})]}):(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"bodySmall",color:"Done"===e.state||"Confirmed"===e.state||"Repeat"===e.state?"success":"secondary",children:statusLine(e,n)}),x?(0,_jsxRuntime.jsx)(_mobileUi.Button,{label:n.editSomething,variant:"ghost",disabled:p||"Pending"!==e.state,onPress:()=>d(!0)}):null,e.note?(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"secondary",children:e.note}):null]}),x?(0,_jsxRuntime.jsx)(_mobileUi.OptionSheet,{open:c,onClose:()=>d(!1),title:n.editSomething,options:u,onChange:(e,i)=>{d(!1),t.chooseQuickReply({id:`lead.edit:${String(i.value)}`,label:i.label,action:"Send",target:null,navigateAfterMs:null,icon:null,variant:null})}}):null]})}function ActionPart(e){const{part:t,message:i,turn:n}=e;if("Action"!==t.kind){const e={kind:"Notice",code:"NeedsNewerApp",text:n.labels.needsNewerApp};return(0,_jsxRuntime.jsx)(_NoticePart.NoticePart,{part:e,message:i,turn:n})}return(0,_jsxRuntime.jsx)(ActionBody,{part:t,turn:n},t.actionId)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChartPart=ChartPart;var _chatCore=require("@webority/chat-core"),_mobileCore=require("@webority/mobile-core"),_mobileUi=require("@webority/mobile-ui"),_reactNative=require("react-native"),_FigureText=require("./FigureText.js"),_jsxRuntime=require("react/jsx-runtime");const TONES=["primary","info","success","warning","danger","neutral"],toneAt=e=>TONES[e%TONES.length]??"primary",withPositions=e=>e.reduce((e,t)=>(e.push({key:e.length,item:t}),e),[]),writeValue=(e,t)=>{const i=0!==e&&Math.abs(e)<.001?(0,_FigureText.runsToText)((0,_chatCore.formatFigure)(e)):(0,_mobileCore.formatNumber)(e,{maximumFractionDigits:2});return t?`${i} ${t}`:i};function ChartPart({part:e,turn:t}){const i=(0,_mobileUi.useTheme)()
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChartPart=ChartPart;var _chatCore=require("@webority/chat-core"),_mobileCore=require("@webority/mobile-core"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_FigureText=require("./FigureText.js"),_jsxRuntime=require("react/jsx-runtime");const TONES=["primary","info","success","warning","danger","neutral"],toneAt=e=>TONES[e%TONES.length]??"primary",MAX_SERIES=8,withPositions=e=>e.reduce((e,t)=>(e.push({key:e.length,item:t}),e),[]),writeValue=(e,t)=>{const i=0!==e&&Math.abs(e)<.001?(0,_FigureText.runsToText)((0,_chatCore.formatFigure)(e)):(0,_mobileCore.formatNumber)(e,{maximumFractionDigits:2});return t?`${i} ${t}`:i};function ChartPart({part:e,turn:t}){const i=(0,_mobileUi.useTheme)(),[r,a]=(0,_react.useState)(!1),l="Donut"===e.chartType?e.series.slice(0,1):e.series.slice(0,MAX_SERIES);if(l.every(e=>0===e.points.length))return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{gap:i.space.sm},children:[e.title?(0,_jsxRuntime.jsx)(_FigureText.FigureText,{text:e.title,variant:"label",color:"primary",strong:!0}):null,(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"bodySmall",color:"secondary",children:t.labels.chartEmpty})]});const{unit:s}=e,o=e.title?(0,_chatCore.toFigureText)(e.title):t.labels.chart,n=l.length>1;return(0,_jsxRuntime.jsxs)(_reactNative.View,{accessibilityLabel:o,style:{gap:i.space.sm},children:[e.title?(0,_jsxRuntime.jsx)(_FigureText.FigureText,{text:e.title,variant:"label",color:"primary",strong:!0}):null,(0,_jsxRuntime.jsx)(_mobileUi.Button,{label:r?t.labels.chartShowChart:t.labels.chartShowTable,variant:"link",size:"sm",onPress:()=>a(e=>!e)}),withPositions(l).map(({key:a,item:l})=>{const c=toneAt(a),u=(0,_chatCore.toFigureText)(l.name)||o,m=l.points;if(0===m.length)return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{gap:i.space.xs},children:[n?(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"secondary",children:(0,_chatCore.toFigureText)(l.name)}):null,(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"bodySmall",color:"secondary",children:t.labels.chartEmpty})]},a);const x=m.map(e=>e.value),_=x.reduce((e,t)=>Math.min(e,t)),h=x.reduce((e,t)=>Math.max(e,t)),b=m[0],j=m[m.length-1];let p;if(r)p=(0,_jsxRuntime.jsx)(_reactNative.View,{accessibilityRole:"summary",style:{gap:i.space.xs},children:withPositions(m).map(({key:e,item:t})=>(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{flexDirection:"row",justifyContent:"space-between",gap:i.space.sm},children:[(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"bodySmall",color:"primary",children:(0,_chatCore.toFigureText)(t.label)}),(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"bodySmall",color:"primary",children:writeValue(t.value,s)})]},e))});else if("Bar"===e.chartType)p=(0,_jsxRuntime.jsx)(_mobileUi.BarChart,{data:m.map(e=>({label:(0,_chatCore.toFigureText)(e.label),value:e.value})),height:m.length>4?300:240,label:u,formatValue:e=>writeValue(e,s),formatTick:e=>s?`${(0,_mobileCore.formatCompactNumber)(e)} ${s}`:(0,_mobileCore.formatCompactNumber)(e),tone:c});else if("Line"===e.chartType)p=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{gap:i.space.xs},children:[(0,_jsxRuntime.jsx)(_mobileUi.Sparkline,{data:x,height:160,fill:!0,tone:c,label:u,formatLabel:e=>writeValue(e,s)}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{flexDirection:"row",justifyContent:"space-between"},children:[(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"tertiary",children:(0,_chatCore.toFigureText)(b.label)}),m.length>1?(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"tertiary",children:(0,_chatCore.toFigureText)(j.label)}):null]}),(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"secondary",children:`${t.labels.chartLow(writeValue(_,s))} ${t.labels.chartHigh(writeValue(h,s))}`})]});else{const e=x.reduce((e,t)=>e+(Number.isFinite(t)&&t>0?t:0),0);p=(0,_jsxRuntime.jsx)(_reactNative.View,{accessibilityRole:"list",style:{gap:i.space.sm},children:withPositions(m).map(({key:t,item:i})=>{const r=e>0&&Number.isFinite(i.value)&&i.value>0?i.value/e:0;return(0,_jsxRuntime.jsx)(_mobileUi.ProgressBar,{progress:r,height:8,tone:toneAt(t),label:(0,_jsxRuntime.jsx)(_FigureText.FigureText,{text:i.label,variant:"bodySmall"}),valueLabel:`${writeValue(i.value,s)} (${(0,_mobileCore.formatPercent)(r,{maximumFractionDigits:0})})`},t)})})}return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{gap:i.space.xs},children:[n?(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"secondary",children:(0,_chatCore.toFigureText)(l.name)}):null,p]},a)})]})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FigureRuns=FigureRuns,exports.FigureText=FigureText,exports.runsToText=runsToText;var _chatCore=require("@webority/chat-core"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_jsxRuntime=require("react/jsx-runtime");const sizeStepOf=e=>"caption"===e?"xs":"bodySmall"===e||"label"===e?"sm":"title"===e?"lg":"base",inkFor=(e,t)=>"secondary"===t?e.colors["text-muted"]:"tertiary"===t?e.colors["text-subtle"]:"success"===t||"warning"===t||"danger"===t||"info"===t?e.colors[`${t}-text`]:e.colors["text-body"];function runsToText(e){return e.map(e=>e.text).join("")}const withOffsets=e=>e.reduce((e,t)=>{const r=e[e.length-1],
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FigureRuns=FigureRuns,exports.FigureText=FigureText,exports.runsToText=runsToText;var _chatCore=require("@webority/chat-core"),_mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_jsxRuntime=require("react/jsx-runtime");const sizeStepOf=e=>"caption"===e?"xs":"bodySmall"===e||"label"===e?"sm":"title"===e?"lg":"base",inkFor=(e,t)=>"secondary"===t?e.colors["text-muted"]:"tertiary"===t?e.colors["text-subtle"]:"success"===t||"warning"===t||"danger"===t||"info"===t?e.colors[`${t}-text`]:e.colors["text-body"];function runsToText(e){return e.map(e=>e.text).join("")}const withOffsets=e=>e.reduce((e,t)=>{const r=e[e.length-1],i=r?r.offset+r.run.text.length:0;return e.push({offset:i,run:t}),e},[]);function runNode(e,t,r){if("text"===e.kind)return e.text;const i="sub"===e.kind?Math.round(.4*t):-Math.round(.45*t),n=Math.round(.75*t);return(0,_jsxRuntime.jsx)(_reactNative.View,{style:{transform:[{translateY:i}]},children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{fontSize:n,lineHeight:n,includeFontPadding:!1,color:r},children:e.text})})}function FigureRuns({runs:e,variant:t="bodySmall",color:r,strong:i=!1,numberOfLines:n,accessibilityLabel:s,testID:o,heading:u}){const a=(0,_mobileUi.useTheme)(),c=a.text[sizeStepOf(t)].size,l=inkFor(a,r);return(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:t,color:r,weight:i?"semibold":void 0,numberOfLines:n,testID:o,accessibilityRole:u?"header":void 0,accessibilityLabel:s??runsToText(e),children:withOffsets(e).map(({offset:e,run:t})=>(0,_jsxRuntime.jsx)(_react.Fragment,{children:runNode(t,c,l)},e))})}function FigureText({text:e,variant:t="bodySmall",enabled:r=!0,...i}){const n=(0,_react.useMemo)(()=>r?(0,_chatCore.toFigureRuns)(e):[{kind:"text",text:e}],[e,r]);return(0,_jsxRuntime.jsx)(FigureRuns,{runs:n,variant:t,...i})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FiguresPart=FiguresPart;var _chatCore=require("@webority/chat-core"),_mobileCore=require("@webority/mobile-core"),_mobileUi=require("@webority/mobile-ui"),_reactNative=require("react-native"),_FigureText=require("./FigureText.js"),_jsxRuntime=require("react/jsx-runtime");const TONE={Neutral:"neutral",Positive:"success",Caution:"warning",Negative:"danger"},withPositions=e=>e.reduce((e,t)=>(e.push({key:e.length,item:t}),e),[]),valueRunsOf=e=>{
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FiguresPart=FiguresPart;var _chatCore=require("@webority/chat-core"),_mobileCore=require("@webority/mobile-core"),_mobileUi=require("@webority/mobile-ui"),_reactNative=require("react-native"),_FigureText=require("./FigureText.js"),_jsxRuntime=require("react/jsx-runtime");const TONE={Neutral:"neutral",Positive:"success",Caution:"warning",Negative:"danger"},withPositions=e=>e.reduce((e,t)=>(e.push({key:e.length,item:t}),e),[]),valueRunsOf=e=>{if(0!==e.value&&Math.abs(e.value)<.001)return(0,_chatCore.formatFigure)(e.value);const t=(0,_mobileCore.formatNumber)(e.value,{maximumFractionDigits:2});return[{kind:"text",text:e.value<0?t.replace("-","−"):t}]};function FiguresPart({part:e,turn:t}){const i=(0,_mobileUi.useTheme)();return 0===e.figures.length?null:(0,_jsxRuntime.jsx)(_reactNative.View,{accessibilityRole:"summary",accessibilityLabel:t.labels.figures,style:{flexDirection:"row",flexWrap:"wrap",gap:i.space.sm},children:withPositions(e.figures).map(({key:e,item:i})=>{const r=valueRunsOf(i),u=t.labels.figureStatus(i.status),a=(0,_chatCore.toFigureText)(i.label);return(0,_jsxRuntime.jsx)(_reactNative.View,{style:{flexGrow:1,minWidth:110},children:(0,_jsxRuntime.jsx)(_mobileUi.StatTile,{label:a,value:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{flexDirection:"row",alignItems:"flex-end",flexWrap:"wrap"},children:[(0,_jsxRuntime.jsx)(_FigureText.FigureRuns,{runs:r,variant:"title",color:"primary",strong:!0}),i.unit?(0,_jsxRuntime.jsx)(_FigureText.FigureRuns,{runs:[{kind:"text",text:" "},...(0,_chatCore.toFigureRuns)(i.unit)],variant:"bodySmall",color:"secondary"}):null]}),tone:TONE[i.status],caption:u||void 0,accessibilityLabel:`${a}: ${(0,_FigureText.runsToText)(r)}${i.unit?` ${i.unit}`:""}${u?`, ${u}`:""}`})},e)})})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FilePart=FilePart;var _chatCore=require("@webority/chat-core"),_mobileUi=require("@webority/mobile-ui"),_NoticePart=require("./NoticePart.js"),_jsxRuntime=require("react/jsx-runtime");function FilePart(e){const{part:t,message:i,turn:r}=e;if("File"!==t.kind){const e={kind:"Notice",code:"NeedsNewerApp",text:r.labels.needsNewerApp};return(0,_jsxRuntime.jsx)(_NoticePart.NoticePart,{part:e,message:i,turn:r})}const{openAttachment:s}=r;return(0,_jsxRuntime.jsx)(_mobileUi.Chip,{label:`${t.fileName} (${(0,_chatCore.formatFileSize)(t.length)})`,leftIcon:"
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FilePart=FilePart;var _chatCore=require("@webority/chat-core"),_mobileUi=require("@webority/mobile-ui"),_NoticePart=require("./NoticePart.js"),_jsxRuntime=require("react/jsx-runtime");function FilePart(e){const{part:t,message:i,turn:r}=e;if("File"!==t.kind){const e={kind:"Notice",code:"NeedsNewerApp",text:r.labels.needsNewerApp};return(0,_jsxRuntime.jsx)(_NoticePart.NoticePart,{part:e,message:i,turn:r})}const{openAttachment:s}=r;return(0,_jsxRuntime.jsx)(_mobileUi.Chip,{label:`${t.fileName} (${(0,_chatCore.formatFileSize)(t.length)})`,leftIcon:"document-text",variant:"soft",size:"sm",accessibilityLabel:r.labels.fileOpen(t.fileName),onPress:s?()=>s(t):void 0})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.HandoffPart=HandoffPart;var _mobileUi=require("@webority/mobile-ui"),_reactNative=require("react-native"),_jsxRuntime=require("react/jsx-runtime");function HandoffPart({part:e,turn:i}){const t=(0,_mobileUi.useTheme)(),{labels:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.HandoffPart=HandoffPart;var _mobileUi=require("@webority/mobile-ui"),_reactNative=require("react-native"),_jsxRuntime=require("react/jsx-runtime");function HandoffPart({part:e,turn:i}){const t=(0,_mobileUi.useTheme)(),{labels:s}=i;if(!0===i.handoffSettled&&("Requested"===e.state||"Waiting"===e.state))return null;const a=i.isLast&&("Requested"===e.state||"Waiting"===e.state||"Joined"===e.state),n=e.agent?.displayName||s.handoffAgentFallback,r=e.agent?.avatarUrl;let o;switch(e.state){case"Requested":o=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{flexDirection:"row",alignItems:"center",gap:t.space.sm},children:[(0,_jsxRuntime.jsx)(_mobileUi.Spinner,{size:"sm"}),(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"bodySmall",children:s.handoffRequested})]});break;case"Waiting":o=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{gap:t.space.xs},children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{flexDirection:"row",alignItems:"center",gap:t.space.sm},children:[(0,_jsxRuntime.jsx)(_mobileUi.Spinner,{size:"sm"}),"number"==typeof e.queuePosition?null:(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"label",children:s.handoffWaiting})]}),"number"==typeof e.queuePosition?(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"secondary",children:s.handoffQueued(e.queuePosition)}):null,(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"secondary",children:s.handoffQueuedText})]});break;case"Joined":o=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{gap:t.space.xs},children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{flexDirection:"row",alignItems:"center",gap:t.space.sm},children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{position:"relative"},children:[(0,_jsxRuntime.jsx)(_mobileUi.Avatar,{size:"sm",name:n,source:r?{uri:r}:void 0}),(0,_jsxRuntime.jsx)(_reactNative.View,{accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",style:{position:"absolute",right:0,bottom:0,width:8,height:8,borderRadius:t.radius.pill,backgroundColor:t.colors["success-text"]}})]}),(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"label",children:s.handoffJoined(n)})]}),(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"secondary",children:s.handoffJoinedText(n)})]});break;case"Left":o=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{gap:t.space.xs},children:[(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"bodySmall",children:s.handoffLeft(n)}),(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"secondary",children:s.handoffLeftText})]});break;case"Ended":o=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{gap:t.space.xs},children:[(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"bodySmall",children:s.handoffEnded}),(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"caption",color:"secondary",children:s.handoffEndedText})]})}return void 0===o?null:(0,_jsxRuntime.jsx)(_mobileUi.Card,{variant:"outline",padding:"sm",accessibilityLiveRegion:a?"polite":void 0,children:o})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ImagePart=ImagePart;var _mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_jsxRuntime=require("react/jsx-runtime");
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ImagePart=ImagePart;var _mobileUi=require("@webority/mobile-ui"),_react=require("react"),_reactNative=require("react-native"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_jsxRuntime=require("react/jsx-runtime");function ImagePart({part:e,turn:t}){const a=(0,_mobileUi.useTheme)(),i=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),[s,l]=(0,_react.useState)(!1),[r,n]=(0,_react.useState)(0),c=(0,_react.useRef)(t.readAttachment);c.current=t.readAttachment;const o=(0,_react.useMemo)(()=>({get:async()=>({data:await c.current(e.attachmentId)})}),[e.attachmentId]),m=`chat-attachment:${e.attachmentId}`,u=`${m}#${r}`,b=null!==e.width&&null!==e.height&&e.width>0&&e.height>0?e.width/e.height:null,x=(0,_jsxRuntime.jsx)(_mobileUi.Text,{variant:"bodySmall",color:"secondary",children:e.alt}),_=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{gap:a.space.xs},children:[x,(0,_jsxRuntime.jsx)(_mobileUi.Button,{variant:"soft",size:"sm",label:t.labels.retry,onPress:()=>n(e=>e+1),testID:`image-retry-${e.attachmentId}`})]});return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"imagebutton",accessibilityLabel:t.labels.imageOpen(e.alt),onPress:()=>l(!0),children:(0,_jsxRuntime.jsx)(_mobileUi.AuthedImage,{uri:m,cacheKey:u,client:o,contentFit:"contain",accessible:!0,accessibilityLabel:e.alt,labels:{loading:t.labels.imageLoading},style:{width:"100%",...null===b?{minHeight:160}:{aspectRatio:b},maxHeight:320,borderRadius:a.radius.md},placeholder:x,fallback:_})}),(0,_jsxRuntime.jsx)(_mobileUi.Modal,{open:s,onClose:()=>l(!1),backdropPressClose:!1,presentation:"fullScreen",accessibilityLabel:e.alt,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{flex:1,backgroundColor:a.colors.bg},children:[(0,_jsxRuntime.jsx)(_mobileUi.ZoomableImage,{style:{flex:1},accessibilityLabel:e.alt,children:(0,_jsxRuntime.jsx)(_mobileUi.AuthedImage,{uri:m,cacheKey:u,client:o,contentFit:"contain",style:{flex:1},accessibilityLabel:e.alt})}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:{position:"absolute",top:i.top+a.space.sm,right:a.space.sm},children:(0,_jsxRuntime.jsx)(_mobileUi.Button,{variant:"soft",size:"sm",label:t.labels.close,onPress:()=>l(!1)})})]})})]})}
|