@brainfish-ai/components 0.27.0 → 0.28.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/dist/esm/chunks/{ChatSearch.bblH7kYY.js → ChatSearch.BAv9fTWD.js} +10 -9
- package/dist/esm/chunks/{ChatSearch.bblH7kYY.js.map → ChatSearch.BAv9fTWD.js.map} +1 -1
- package/dist/esm/chunks/{Conversation.CuRp-tJL.js → Conversation.DRNYzOpI.js} +2 -2
- package/dist/esm/chunks/{Conversation.CuRp-tJL.js.map → Conversation.DRNYzOpI.js.map} +1 -1
- package/dist/esm/chunks/{header-nav.DdOXbPSM.js → header-nav.C9r4A44a.js} +2 -2
- package/dist/esm/chunks/{header-nav.DdOXbPSM.js.map → header-nav.C9r4A44a.js.map} +1 -1
- package/dist/esm/chunks/{header-pane.DrVjpN5S.js → header-pane.D41xPXl3.js} +2 -2
- package/dist/esm/chunks/{header-pane.DrVjpN5S.js.map → header-pane.D41xPXl3.js.map} +1 -1
- package/dist/esm/chunks/{logo.CketsPBx.js → logo.CGKfN1U6.js} +2 -2
- package/dist/esm/chunks/{logo.CketsPBx.js.map → logo.CGKfN1U6.js.map} +1 -1
- package/dist/esm/chunks/suggestion-card.C9UnMOjp.js +14 -0
- package/dist/esm/chunks/suggestion-card.C9UnMOjp.js.map +1 -0
- package/dist/esm/components/accordion.js +1 -0
- package/dist/esm/components/alert-dialog.js +1 -0
- package/dist/esm/components/alert.js +1 -0
- package/dist/esm/components/avatar.js +1 -0
- package/dist/esm/components/badge.js +1 -0
- package/dist/esm/components/breadcrumb.js +1 -0
- package/dist/esm/components/button-group.js +1 -0
- package/dist/esm/components/button.js +1 -0
- package/dist/esm/components/calendar.js +1 -0
- package/dist/esm/components/card.js +1 -0
- package/dist/esm/components/chat-search.js +1 -1
- package/dist/esm/components/collapsible.js +1 -0
- package/dist/esm/components/command.js +1 -0
- package/dist/esm/components/conversation.js +1 -1
- package/dist/esm/components/dialog.js +1 -0
- package/dist/esm/components/div-button.js +1 -0
- package/dist/esm/components/dropdown-menu.js +1 -0
- package/dist/esm/components/icon.js +1 -0
- package/dist/esm/components/input.js +1 -0
- package/dist/esm/components/item.js +1 -0
- package/dist/esm/components/label.js +1 -0
- package/dist/esm/components/logo.js +1 -1
- package/dist/esm/components/popover.js +1 -0
- package/dist/esm/components/progress.js +1 -0
- package/dist/esm/components/scroll-area.js +1 -0
- package/dist/esm/components/separator.js +1 -0
- package/dist/esm/components/sheet.js +1 -0
- package/dist/esm/components/spinner.js +1 -0
- package/dist/esm/components/switch.js +1 -0
- package/dist/esm/components/table.js +1 -0
- package/dist/esm/components/textarea.js +1 -0
- package/dist/esm/components/tooltip.js +1 -0
- package/dist/esm/global.css +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/layouts/full-layout.js +1 -1
- package/dist/esm/layouts/header-nav.js +1 -1
- package/dist/esm/scenes/knowledge-review.js +14 -14
- package/dist/esm/scenes/knowledge-review.js.map +1 -1
- package/dist/index.d.ts +89 -0
- package/dist/knowledge-review.d.ts +89 -0
- package/dist/stats.html +1 -1
- package/package.json +2 -2
- package/dist/esm/chunks/review-list.Cn5bw-lP.js +0 -6
- package/dist/esm/chunks/review-list.Cn5bw-lP.js.map +0 -1
|
@@ -73,23 +73,24 @@ return e.createElement("div",{className:"fixed top-4 left-4 right-4 z-50 flex fl
|
|
|
73
73
|
/* @__PURE__ */e.createElement("span",{className:"flex-1"},t.message),
|
|
74
74
|
/* @__PURE__ */e.createElement("button",{onClick:()=>r(t.id),className:"shrink-0 rounded-full p-0.5 hover:bg-muted transition-colors","aria-label":"Dismiss"},
|
|
75
75
|
/* @__PURE__ */e.createElement(Ie,{className:"size-3.5"}))))))}const en=()=>/* @__PURE__ */e.createElement(d.div,{key:"loading",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"w-full flex items-center justify-center py-20","data-name":"loading"},
|
|
76
|
-
/* @__PURE__ */e.createElement("div",{className:"flex flex-col items-center gap-4"},/* @__PURE__ */e.createElement("div",{className:"animate-spin rounded-full size-8 border-2 border-t-transparent border-primary"}),/* @__PURE__ */e.createElement("p",{className:"text-sm text-secondary-foreground"},"Loading conversation...")));function tn({isHandoff:t,agentAvatarUrl:r}){return t?r?/* @__PURE__ */e.createElement("img",{src:r,className:"h-8 w-8 shrink-0 rounded-full object-cover",alt:"Agent avatar"}):/* @__PURE__ */e.createElement(D,{size:32,className:"text-primary"}):/* @__PURE__ */e.createElement(Se,{className:"border border-
|
|
77
|
-
return e.createElement("button",{onClick:()=>r({conversationId:t.conversationId,isHandoff:t.isHandoff??!1,isCompleted:"completed"===t.status}),className:Z("w-full flex items-center gap-3 p-3 rounded-lg bg-card text-left","
|
|
76
|
+
/* @__PURE__ */e.createElement("div",{className:"flex flex-col items-center gap-4"},/* @__PURE__ */e.createElement("div",{className:"animate-spin rounded-full size-8 border-2 border-t-transparent border-primary"}),/* @__PURE__ */e.createElement("p",{className:"text-sm text-secondary-foreground"},"Loading conversation...")));function tn({isHandoff:t,agentAvatarUrl:r}){return t?r?/* @__PURE__ */e.createElement("img",{src:r,className:"h-8 w-8 shrink-0 rounded-full object-cover",alt:"Agent avatar"}):/* @__PURE__ */e.createElement(D,{size:32,className:"text-primary"}):/* @__PURE__ */e.createElement(Se,{className:"border border-neutral-200 rounded-full"})}function rn({item:t,onSelect:r}){/* @__PURE__ */
|
|
77
|
+
return e.createElement("button",{onClick:()=>r({conversationId:t.conversationId,isHandoff:t.isHandoff??!1,isCompleted:"completed"===t.status}),className:Z("w-full flex items-center gap-3 p-3 rounded-lg bg-card text-left","hover:bg-accent transition-colors","border-l-4 border-transparent hover:border-primary/40")},
|
|
78
78
|
/* @__PURE__ */e.createElement("div",{className:"relative shrink-0"},/* @__PURE__ */e.createElement(tn,{isHandoff:t.isHandoff,agentAvatarUrl:t.agentAvatarUrl}),t.hasUnread&&/* @__PURE__ */e.createElement("span",{className:"absolute top-0 right-0 size-2 rounded-full bg-red-500"})),
|
|
79
|
-
/* @__PURE__ */e.createElement("div",{className:"flex flex-col min-w-0"},/* @__PURE__ */e.createElement("span",{className:"text-sm font-medium truncate"},t.title),/* @__PURE__ */e.createElement("span",{className:"text-xs text-muted-foreground truncate"},t.subtitle?`${t.subtitle} replied • ${t.timestamp}`:t.timestamp)))}function nn({title:t,items:r,onSelect:n,isReadOnly:a=!1}){return 0===r.length?null:/* @__PURE__ */e.createElement("section",null,/* @__PURE__ */e.createElement("div",{className:"flex items-center gap-2 mb-2"},/* @__PURE__ */e.createElement("p",{className:"text-sm text-muted-foreground"},t),a&&/* @__PURE__ */e.createElement("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded bg-muted text-muted-foreground"},"View only")),/* @__PURE__ */e.createElement("div",{className:"flex flex-col gap-2"},r.map(t=>/* @__PURE__ */e.createElement(rn,{key:t.conversationId,item:t,onSelect:n}))))}
|
|
79
|
+
/* @__PURE__ */e.createElement("div",{className:"flex flex-col min-w-0"},/* @__PURE__ */e.createElement("span",{className:"text-sm font-medium truncate"},t.title),/* @__PURE__ */e.createElement("span",{className:"text-xs text-muted-foreground truncate"},t.subtitle?`${t.subtitle} replied • ${t.timestamp}`:t.timestamp)))}function nn({title:t,items:r,onSelect:n,isReadOnly:a=!1}){return 0===r.length?null:/* @__PURE__ */e.createElement("section",null,/* @__PURE__ */e.createElement("div",{className:"flex items-center gap-2 mb-2"},/* @__PURE__ */e.createElement("p",{className:"text-sm text-muted-foreground"},t),a&&/* @__PURE__ */e.createElement("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded bg-muted text-muted-foreground"},"View only")),/* @__PURE__ */e.createElement("div",{className:"flex flex-col gap-2"},r.map(t=>/* @__PURE__ */e.createElement(rn,{key:t.conversationId,item:t,onSelect:n}))))}function an(){/* @__PURE__ */
|
|
80
|
+
return e.createElement("div",{className:"w-full flex items-center gap-3 p-3 rounded-lg bg-card animate-pulse"},/* @__PURE__ */e.createElement("div",{className:"size-8 rounded-full bg-muted shrink-0"}),/* @__PURE__ */e.createElement("div",{className:"flex flex-col gap-2 flex-1 min-w-0"},/* @__PURE__ */e.createElement("div",{className:"h-3.5 bg-muted rounded w-3/4"}),/* @__PURE__ */e.createElement("div",{className:"h-3 bg-muted rounded w-1/2"})))}const sn=()=>{};function on({conversations:t,isLoading:r,onSelectConversation:n}){const a=n??sn,s=t.filter(e=>"active"===e.status),o=t.filter(e=>"completed"===e.status);return r?/* @__PURE__ */e.createElement("div",{className:"flex flex-col gap-2 px-3 py-4 overflow-hidden"},/* @__PURE__ */e.createElement("div",{className:"h-4 w-16 bg-muted rounded animate-pulse mb-2"}),[...Array(3)].map((t,r)=>/* @__PURE__ */e.createElement(an,{key:r}))):/* @__PURE__ */e.createElement("div",{className:"flex flex-col gap-4 px-3 py-4 min-h-full"},/* @__PURE__ */e.createElement(nn,{title:"Active",items:s,onSelect:a}),/* @__PURE__ */e.createElement(nn,{title:"Previous",items:o,onSelect:a,isReadOnly:!0}),0===t.length&&/* @__PURE__ */e.createElement("div",{className:"flex flex-col items-center justify-center gap-3 mt-16 text-center px-6"},/* @__PURE__ */e.createElement(Se,{size:40,className:"text-muted-foreground opacity-40"}),/* @__PURE__ */e.createElement("p",{className:"text-sm font-medium text-foreground"},"No Threads yet"),/* @__PURE__ */e.createElement("p",{className:"text-xs text-muted-foreground"},"Start a conversation and it will appear here.")))}function cn({onStartNewConversation:t,message:r="This conversation is closed. Messages are read-only."}){/* @__PURE__ */
|
|
80
81
|
return e.createElement(d.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5},className:"bg-card shadow-top-soft"},
|
|
81
|
-
/* @__PURE__ */e.createElement("div",{className:"container flex flex-col items-center justify-center p-3 gap-2 text-center"},/* @__PURE__ */e.createElement("span",{className:"text-xs text-muted-foreground"},r),/* @__PURE__ */e.createElement("p",{className:"m-0 text-sm font-medium text-foreground"},"Still need help?"),/* @__PURE__ */e.createElement("button",{type:"button",onClick:t,className:"h-8 rounded-md px-4 text-sm bg-primary text-primary-foreground"},"Start new conversation")))}const cn="enableHistoryTab",ln=[p],dn=[m],un={p:({children:t})=>/* @__PURE__ */e.createElement("span",null,t)},mn=c(({suggestions:n=[],collections:a=[],selectedCollectionId:s,onCollectionChange:c,selectedRegion:m,onRegionChange:p,apiKey:h,fetchRegionConfig:f,searchEndpoint:g,answerStreamEndpoint:y,uploadEndpoint:v,feedbackEndpoint:w,feedbackReasonEndpoint:b,loadConversationEndpoint:E,autocompleteEndpoint:$,disableFollowUpQuestions:x=!1,enableFileAttachment:_=!1,disableFeedback:k=!1,disclaimer:N,offset:C=0,headers:I,textConfig:S={},followUpQuestionsEndpoint:P,className:A,onToggleSizeButtonClick:T,trackEvent:R,onCloseWidget:j,isWidgetMode:O=!0,nextBestActions:D,bodyActionButtons:z,onNextBestActionClick:L,userData:U,redirectRules:Q,secretAttributes:M,allowedRegions:V,style:q,isSearchWidget:K=!1,isAgentAssist:B=!1,hideCitations:H=!1,conversationInlineSlot:G,liveHumanAgentChatSlot:W,reconnectHandoff:J,resetHandoff:Y,conversationHistoryEndpoint:ee,markConversationReadEndpoint:te,markConversationCompletedEndpoint:re,knowledgeSourceGroups:ne},se)=>{const{answers:oe,answerListDispatch:ie,query:ce,setQuery:le,followUpQuery:de,setFollowUpQuery:ue,isSearching:me,setIsSearching:pe,showResults:fe,setShowResults:ge,activeAnswerIndex:Ie,setActiveAnswerIndex:Se,conversationId:Te,setConversationId:Re,clearConversationId:je,isLoadingConversation:Oe,setShowMobileCloseWidgetButton:De}=_r(),ze={...Xr,...S},Le=he("enableFileAttachment",!1),Fe=_||Le,Ue=he(cn,!1),{toasts:Qe,showToast:Me,dismissToast:Ve}=function(e=3e3){const[n,a]=t([]),s=o(0),i=r(t=>{const r=++s.current;a(e=>[...e,{id:r,message:t}]),setTimeout(()=>{a(e=>e.filter(e=>e.id!==r))},e)},[e]),c=r(e=>{a(t=>t.filter(t=>t.id!==e))},[]);return{toasts:n,showToast:i,dismissToast:c}}(),qe=r(()=>{let e=Te;return e||(e=ye(),Re(e)),e},[Te,Re]),{attachedFiles:Ke,isUploading:Be,addFiles:He,removeFile:Ge,clearAttachedFiles:We,getUploadedAttachments:Je}=function({uploadEndpoint:e,headers:n,getConversationId:a,onError:s}){const[o,i]=t([]),c=r(e=>{i(t=>{const r=t.find(t=>t.id===e);return r&&URL.revokeObjectURL(r.preview),t.filter(t=>t.id!==e)})},[]),l=r(t=>{if(0===t.length)return;const r=t.filter(e=>Qr[e.type]?!(e.size>10485760&&(s?.(`Image "${e.name}" exceeds the 10MB size limit.`),1)):(s?.("Image type is not supported. Please use JPEG, PNG, GIF, or WebP."),!1)),c=5-o.length;if(0===c)return void s?.("Maximum 5 images reached.");const l=r.slice(0,c);if(0===l.length)return;if(l.length<r.length&&s?.("Maximum 5 images. Some images were not attached."),!e)return console.error("[useFileAttachment] uploadEndpoint is not configured — file attachment is unavailable."),void s?.("Something went wrong. Please try again later.");const d=l.map(e=>({id:"file-"+ ++Mr,file:e,preview:URL.createObjectURL(e),status:"uploading",attachmentType:Qr[e.type]}));i(e=>[...e,...d]);const u=a();d.forEach(t=>{(async()=>{try{const{publicUrl:r}=await ve({endpoint:e,conversationId:u,file:t.file,headers:n});i(e=>e.map(e=>e.id===t.id?{...e,status:"uploaded",publicUrl:r}:e))}catch(r){console.error("Upload failed:",r),s?.(`Failed to upload "${t.file.name}". Please try again.`),i(e=>{const r=e.find(e=>e.id===t.id);return r&&URL.revokeObjectURL(r.preview),e.filter(e=>e.id!==t.id)})}})()})},[o,e,n,a,s]),d=r(()=>{o.forEach(e=>URL.revokeObjectURL(e.preview)),i([])},[o]),u=r(()=>o.filter(e=>"uploaded"===e.status&&e.publicUrl).map(e=>({type:e.attachmentType,url:e.publicUrl,filename:e.file.name})),[o]),m=o.some(e=>"uploading"===e.status);return{attachedFiles:o,isUploading:m,addFiles:l,removeFile:c,clearAttachedFiles:d,getUploadedAttachments:u}}({uploadEndpoint:v,headers:I,getConversationId:qe,onError:Me}),[Ze,Xe]=t(s),[Ye,et]=t(m),[tt,rt]=t(!0),nt=o(null),at=o(null),st=o(null),ot=o([]),it=o(null),ct=o(null),lt=o(null),dt=o(null),ut=o(null),{suggestions:mt}=$e({query:ce,endpoint:$||"",allowedRegions:V,collectionId:Ze,headers:I,conversationId:Te,delay:300}),{loadConversationById:pt}=Ur({loadConversationEndpoint:E,headers:I,mergedTextConfig:ze}),{showHistory:ht,setShowHistory:ft,conversations:gt,isLoadingHistory:yt,hasUnreadConversations:vt,isViewOnly:wt,setIsViewOnly:bt,handleSelectConversation:Et,completeActiveConversations:$t}=function({enabled:e=!1,conversationHistoryEndpoint:n,markConversationReadEndpoint:a,markConversationCompletedEndpoint:s,headers:c,userData:l,currentConversationId:d,loadConversationById:u,reconnectHandoff:m,resetHandoff:p}){const[h,f]=t(!1),[g,y]=t([]),[v,w]=t(!1),[b,E]=t(!1),$=o(null),x=o(c);x.current=c;const _=g.some(e=>e.hasUnread),k=l?.userId,N=c?.["x-bf-fingerprint"],C=!(!k&&!N);i(()=>{if(!e||!n||!C)return;let t=!1;return we({endpoint:n,headers:x.current,externalUserId:k}).then(e=>{t||y(e)}).catch(()=>{t||y([])}),()=>{t=!0}},[n,C,k,N]),i(()=>{if(!(e&&h&&n&&C))return;let t=!1;return w(!0),we({endpoint:n,headers:x.current,externalUserId:k}).then(e=>{t||y(e)}).catch(()=>{t||y([])}).finally(()=>{t||w(!1)}),()=>{t=!0}},[e,h,n,C,k,N]);const I=r(({conversationId:e,isHandoff:t,isCompleted:r})=>{d&&!b&&($.current=d),u(e),E(r),t?m?.(e):p?.(),a&&be({endpoint:a,conversationId:e,headers:x.current}).catch(()=>{}),f(!1)},[e,d,b,u,m,p,a]),S=r(()=>{if(!s)return;const e=g.filter(e=>"active"===e.status).map(e=>e.conversationId),t=new Set([$.current,b?null:d,...e].filter(e=>!!e));y(e=>e.map(e=>t.has(e.conversationId)?{...e,status:"completed"}:e)),t.forEach(e=>{Ee({endpoint:s,conversationId:e,headers:x.current}).catch(()=>{})}),$.current=null},[s,d,b,g]);return{showHistory:h,setShowHistory:f,conversations:g,isLoadingHistory:v,hasUnreadConversations:_,isViewOnly:b,setIsViewOnly:E,handleSelectConversation:I,completeActiveConversations:S}}({enabled:Ue,conversationHistoryEndpoint:ee,markConversationReadEndpoint:te,markConversationCompletedEndpoint:re,headers:I,userData:U??void 0,currentConversationId:Te,loadConversationById:pt,reconnectHandoff:J,resetHandoff:Y}),{scrollToLastAnswer:xt,scrollToAnswer:_t}=((e,t,r)=>({scrollToLastAnswer:()=>{requestAnimationFrame(()=>{const r=e.current?.[e.current.length-1],n=t.current;if(r&&n){const e=r.getBoundingClientRect(),t=n.getBoundingClientRect(),a=n.scrollTop+(e.top-t.top)-80;n.scrollTo({top:a,behavior:"smooth"})}})},scrollToAnswer:r=>{requestAnimationFrame(()=>{const n=e.current?.[r],a=t.current;if(n&&a){const e=n.getBoundingClientRect(),t=a.getBoundingClientRect(),r=a.scrollTop+(e.top-t.top)-80;a.scrollTo({top:r,behavior:"smooth"})}})},scrollToBottom:()=>{setTimeout(()=>{r?.current&&t.current&&r.current.scrollIntoView({behavior:"smooth",block:"end"})},200)}}))(ot,it,dt),{subscribeToStateChanges:kt}=(()=>{const e=o([]),{showResults:t,answers:r,isLoadingConversation:n,loadError:a}=_r();return i(()=>{const s={showResults:t,answers:r,isLoading:n,error:a};e.current.forEach(e=>e(s))},[t,r,n,a]),{subscribeToStateChanges:s=>(e.current.push(s),s({showResults:t,answers:r,isLoading:n,error:a}),()=>{e.current=e.current.filter(e=>e!==s)})}})(),{includePageEnabled:Nt,includePageLoading:Ct,includePageDisabled:It,handleIncludePageToggle:St,fetchPageContext:Pt}=(({isAgentAssist:e,apiKey:n,trackEvent:a})=>{const[s,o]=t(!1),[c,l]=t(!1),[d,u]=t(!1),m=r((e,t=5e3)=>new Promise((r,a)=>{const s=ye();let o;const i=e=>{e.data.requestId===s&&(clearTimeout(o),window.removeEventListener("message",i),r(e.data))};o=setTimeout(()=>{window.removeEventListener("message",i),a(new Error("Request timeout"))},t),window.addEventListener("message",i),window.parent.postMessage({...e,requestId:s,widgetKey:n},"*")}),[n]),p=r(async e=>{l(!0);try{if(e){if(!(await m({type:"REQUEST_PAGE_PERMISSION"})).granted)throw a?.("Include Page Permission Denied",{}),new Error("Permission denied");window.parent.postMessage({type:"UPDATE_PAGE_TOGGLE_STATE",enabled:!0,widgetKey:n},"*"),a?.("Include Page Enabled",{}),o(!0)}else window.parent.postMessage({type:"UPDATE_PAGE_TOGGLE_STATE",enabled:!1,widgetKey:n},"*"),a?.("Include Page Disabled",{}),o(!1)}catch(t){console.error("Failed to toggle include page:",t),o(!1)}finally{l(!1)}},[n,m,a]),h=r(async(t,r)=>{if(s&&e&&!d)try{l(!0);const e=await m({type:"REQUEST_PAGE_CONTENT"},5e3);return e.success&&e.content?(a?.("Page Content Included",{conversationId:t,searchQuery:r,contentLength:e.content.length}),[{type:"text",text:`I am currently viewing this web page:\n\n${e.content}`}]):void 0}catch(n){return console.error("Failed to fetch page content:",n),void a?.("Page Content Fetch Failed",{conversationId:t,searchQuery:r})}finally{l(!1)}},[s,e,d,m,a]);return i(()=>{if(!e)return;const t=e=>{const t=e.data;"INCLUDE_PAGE_STATE"===t.type&&(o(t.enabled||!1),u(t.disabled||!1))};return window.addEventListener("message",t),()=>window.removeEventListener("message",t)},[e]),{includePageEnabled:s,includePageLoading:c,includePageDisabled:d,handleIncludePageToggle:p,fetchPageContext:h}})({isAgentAssist:B,apiKey:h??"unknown",trackEvent:R}),At=async({reader:e,searchQueryId:t,conversationId:r,onFirstEvent:n})=>{ut.current=e;let a="";try{let s,o,i=!1,c=!0,l=!1;for(;({done:i,value:o}=await e.read()),!i&&ut.current===e;){c&&(c=!1,n?.());const e=(new TextDecoder).decode(o).split(/\n\n/).filter(e=>e.startsWith("data: ")).map(e=>e.replace(/^data: /,"").trim());for(const n of e)try{if("[DONE]"===n)continue;const e=JSON.parse(n);if("answer-text-chunk"===e.type){a+=e.content,ie(lr({text:e.content}));const t=X(a);if(l=t.uncertain,l){const e=ze.uncertaintyFallbackText?.[t.language??"en"]??a??"I don't know.";ie(mr({uncertaintyText:e}))}}"action-buttons"===e.type&&(s=e.searchIntentId,ie(gr({searchIntentId:s,actions:e.actions}))),"get-action-inputs"===e.type&&(s=e.searchIntentId,ie(fr({searchIntentId:e.searchIntentId,inputs:e.inputs,actionId:e.actionId,schema:e.schema,initialValues:e.values,onSubmit:async n=>{if("client_execution"===e.actionType){const o=await(a=e.actionKey,s=n,new Promise(e=>{const t=crypto.randomUUID(),r=n=>{n.data.messageId===t&&"CLIENT_EXECUTION_RESULT"===n.data.type&&(window.removeEventListener("message",r),e(n.data.result))};window.addEventListener("message",r),window.parent.postMessage({type:"CLIENT_EXECUTION",messageId:t,actionKey:a,inputs:s},"*"),setTimeout(()=>{window.removeEventListener("message",r),e({success:!1,reason:`Client Action handler with key ${a} timed out`})},5e3)}));return jt({searchQueryId:t,conversationId:r,searchIntentId:e.searchIntentId,actionId:e.actionId,results:o})}var a,s;return Rt({searchQueryId:t,conversationId:r,searchIntentId:e.searchIntentId,actionId:e.actionId,parameters:n})}}))),"citations"===e.type&&ie(cr({searchQueryId:t,results:e.data,state:"completed"}))}catch{console.warn("Failed to parse answer stream block")}}return{answer:a,searchIntentId:s,isUncertain:l}}catch(s){if(ut.current!==e)return{answer:"",searchIntentId:void 0,isUncertain:!1};throw s}finally{ut.current===e&&(ut.current=null,e.releaseLock())}},Tt=async({searchQueryId:e,conversationId:t,context:r,attachments:n})=>{try{const a=(async(e,t)=>{if(P&&!x)try{return await Ce({endpoint:P,searchQueryId:e,headers:I,conversationId:t})}catch(r){return void console.error("Error fetching follow-up questions:",r)}})(e),s=await Ne({endpoint:y,headers:I,body:{type:"generate-for-query",conversationId:t,searchQueryId:e,profileId:U?.userId,...r&&{context:r},...n?.length&&{attachments:n}}}),o=s.body?.getReader();if(!o)return;const{answer:i,searchIntentId:c,isUncertain:l}=await At({reader:o,searchQueryId:e,conversationId:t,onFirstEvent:()=>{R?.("First Streamed Answer Chunk Received",{conversationId:t,searchQueryId:e})}});if(!i)return;a.then(e=>{e&&e.length>0&&!c&&ie((({questions:e,index:t})=>({type:Wt,payload:{questions:e,index:t}}))({questions:e}))}),R?.(l?"Answer Not Found":"Answer Found",{conversationId:t,searchQueryId:e})}catch(a){console.error("Error generating answer for query:",a),ie(dr({error:ze.errorText||"Sorry, we were unable to process the request right now. Please try again in a moment."}))}finally{ie(ur())}},Rt=async({searchQueryId:e,searchIntentId:t,conversationId:r,actionId:n,parameters:a})=>{ie(pr());try{const s=await Ne({endpoint:y,headers:I,body:{type:"invoke-action",conversationId:r,searchQueryId:e,searchIntentId:t,actionId:n,parameters:a,profileId:U?.userId}}),o=s.body?.getReader();if(!o)return;await At({reader:o,searchQueryId:e})}catch(s){console.error("Error generating answer for action:",s),ie(dr({error:ze.errorText||"Sorry, we were unable to process the request right now. Please try again in a moment."}))}finally{ie(ur()),pe(!1)}},jt=async({searchQueryId:e,searchIntentId:t,conversationId:r,actionId:n,results:a})=>{ie(pr());try{const s=await Ne({endpoint:y,headers:I,body:{type:"client-execution-result",conversationId:r,searchQueryId:e,searchIntentId:t,actionId:n,results:a,profileId:U?.userId}}),o=s.body?.getReader();if(!o)return;await At({reader:o,searchQueryId:e})}catch(s){console.error("Error generating answer for action:",s),ie(dr({error:ze.errorText||"Sorry, we were unable to process the request right now. Please try again in a moment."}))}finally{ie(ur()),pe(!1)}},Ot=async({searchQuery:e,conversationId:t,attributes:r,secretAttributes:n,allowedRegions:a,knowledgeGroupCollectionIds:s})=>{const o=s??Ze,i=await ke({endpoint:g,query:e,collectionId:o,headers:I,conversationId:t,attributes:r,secretAttributes:n,allowedRegions:a,source:B?"agent_assist":void 0});if(0!==i.results.length||i.isAgenticResponse)return ie(cr({searchQueryId:i.searchQueryId,results:i.results})),i.searchQueryId;R?.("No Articles Found",{conversationId:t,searchQuery:e})},Dt=async({searchQuery:e=ce.trim(),event:t})=>{if(!e)return;const r=Te||ye();Re(r);const n=Je();We(),pe(!0),ge(!0),Se(oe.length),xt(),ie((({id:e,query:t,attachments:r})=>({type:Kt,payload:{id:e,query:t,attachments:r}}))({query:e,attachments:n})),await Promise.resolve(),lt.current?.focus();const a=await Pt(r,e);if(ne&&ne.length>0&&!nt.current)return at.current={searchQuery:e,conversationId:r,attributes:{...U},secretAttributes:M,allowedRegions:V,pageContext:a??void 0,fileAttachments:n.length>0?n:void 0},ie((({index:e}={})=>({type:sr,payload:{index:e}}))()),void pe(!1);try{const s={...U},o=nt.current?.collectionIds,i=await Ot({searchQuery:e,conversationId:r,attributes:s,secretAttributes:M,allowedRegions:V,knowledgeGroupCollectionIds:o});i?(t&&R?.(t.name,{conversationId:r,searchQuery:e,searchQueryId:i,...t.metaData}),await Tt({searchQueryId:i,conversationId:r,context:a,attachments:n.length>0?n:void 0})):ie(hr())}catch(s){console.error("Error generating answer:",s),t&&R?.(`${t.name} - Search Error`,{conversationId:r,searchQuery:e,...t.metaData}),ie(dr({error:ze.errorText||"Sorry, we were unable to process the request right now. Please try again in a moment."}))}finally{pe(!1)}},zt=async e=>{nt.current=e;const t=at.current;if(t){at.current=null,ie((({index:e}={})=>({type:or,payload:{index:e}}))()),pe(!0);try{const r=await Ot({searchQuery:t.searchQuery,conversationId:t.conversationId,attributes:t.attributes,secretAttributes:t.secretAttributes,allowedRegions:t.allowedRegions,knowledgeGroupCollectionIds:e.collectionIds});r?(R?.("Knowledge Group Selected",{conversationId:t.conversationId,searchQuery:t.searchQuery,searchQueryId:r,knowledgeGroupId:e.id,knowledgeGroupName:e.name}),await Tt({searchQueryId:r,conversationId:t.conversationId,context:t.pageContext,attachments:t.fileAttachments})):ie(hr())}catch(r){console.error("Error generating answer after group selection:",r),ie(dr({error:ze.errorText||"Sorry, we were unable to process the request right now. Please try again in a moment."}))}finally{pe(!1)}}},Lt=e=>{if($t(),bt(!1),Y?.(),ut.current){const e=ut.current;ut.current=null,function(e){try{e.cancel().catch(e=>{console.warn("Error cancelling stream reader:",e)});try{e.releaseLock()}catch(t){console.warn("Error releasing stream reader lock:",t)}}catch(r){console.warn("Error cancelling stream reader:",r);try{e.releaseLock()}catch(t){console.warn("Error releasing stream reader lock:",t)}}}(e)}pe(!1),le(""),ue(""),ge(!1),ie(ir()),Se(0),We(),je(),nt.current=null,at.current=null,R?.("New Thread Created",{oldConversationId:Te}),st.current&&(st.current.style.height="auto"),e&&(le(e),Dt({searchQuery:e,event:{name:"New Thread Created with Query"}}))};l(se,()=>({createNewThread:Lt,showFollowUpThread:e=>{rt(e)},subscribeToStateChanges:kt,focusSearchField:()=>ct.current?.focus()||lt.current?.focus(),showCloseButton:(e=!0)=>{De(e)},loadConversation:pt})),i(()=>{Xe(s)},[s]),i(()=>{et(m)},[m]);const Ft=async(e,t,r)=>{if(w){ie((({feedback:e,index:t})=>({type:Xt,payload:{feedback:e,index:t}}))({feedback:e,index:r}));try{await _e({endpoint:w,searchQueryId:t,response:e,headers:I,conversationId:Te}),R?.("accept"===e?"Answer Accepted":"Answer Rejected",{conversationId:Te,searchQueryId:t})}catch(n){console.error("Error sending feedback:",n),ie((({index:e}={})=>({type:Yt,payload:{index:e}}))({index:r}))}}},Ut=async e=>{const t=void 0!==e?e:de;t.trim()&&(le(t),ue(""),await Dt({searchQuery:t,event:{name:"Follow-up Search Field Submitted"}}))};i(()=>{const e=()=>{new URLSearchParams(window.location.search).get("conversation")||(le(""),ue(""),ge(!1),ie(ir()),Se(0),We(),st.current&&(st.current.style.height="auto"))};return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[]);const Mt=e=>{R?.("Follow-up Question Clicked",{conversationId:Te,question:e}),Dt({searchQuery:e,event:{name:"Follow-up Question Clicked"}})},Vt=({action:e,searchQueryId:t,query:r,answer:n})=>{R?.("Next Best Action Clicked",{conversationId:Te,searchQueryId:t,action:e.label});const a=((e,t)=>({conversationId:t,messages:e.map(e=>({question:e.question,answer:Qt(e.blocks)}))}))(oe,Te);L?.({action:e,searchQueryId:t,query:r,answer:n,conversation:a})};return i(()=>{const e=it.current;if(!e||!K)return;let t=0,r=null;const n=()=>{const r=(()=>{const t=e.firstElementChild,r=t?.scrollHeight??e.scrollHeight,n=document.querySelector('[data-name="BrandFooter"]')?.clientHeight??0,a=document.querySelector('[data-name="Header"]')?.clientHeight??0,s=fe&&tt?70:0,o=document.querySelector('[data-name="ChatSearch"]')?.clientHeight??0,i=r+n+s+a+32;return Math.max(i,o)})();r>0&&r!==t&&(t=r,window.parent.postMessage({type:"RESIZE_IFRAME",height:r,widgetKey:h},"*"))},a=setTimeout(n,100),s=new ResizeObserver(()=>{null!==r&&cancelAnimationFrame(r),r=requestAnimationFrame(()=>{n(),r=null})}),o=e.firstElementChild;return o&&s.observe(o),s.observe(e),()=>{clearTimeout(a),null!==r&&cancelAnimationFrame(r),s.disconnect()}},[K,h,fe,tt]),/* @__PURE__ */e.createElement("div",{className:Z("w-full relative h-dvh flex flex-col justify-between @container","md:h-auto md:p-4 md:bg-dark-100",A),"data-name":"ChatSearch",style:q},
|
|
82
|
+
/* @__PURE__ */e.createElement("div",{className:"container flex flex-col items-center justify-center p-3 gap-2 text-center"},/* @__PURE__ */e.createElement("span",{className:"text-xs text-muted-foreground"},r),/* @__PURE__ */e.createElement("p",{className:"m-0 text-sm font-medium text-foreground"},"Still need help?"),/* @__PURE__ */e.createElement("button",{type:"button",onClick:t,className:"h-8 rounded-md px-4 text-sm bg-primary text-primary-foreground"},"Start new conversation")))}const ln="enableHistoryTab",dn=[p],un=[m],mn={p:({children:t})=>/* @__PURE__ */e.createElement("span",null,t)},pn=c(({suggestions:n=[],collections:a=[],selectedCollectionId:s,onCollectionChange:c,selectedRegion:m,onRegionChange:p,apiKey:h,fetchRegionConfig:f,searchEndpoint:g,answerStreamEndpoint:y,uploadEndpoint:v,feedbackEndpoint:w,feedbackReasonEndpoint:b,loadConversationEndpoint:E,autocompleteEndpoint:$,disableFollowUpQuestions:x=!1,enableFileAttachment:_=!1,disableFeedback:k=!1,disclaimer:N,offset:C=0,headers:I,textConfig:S={},followUpQuestionsEndpoint:P,className:A,onToggleSizeButtonClick:T,trackEvent:R,onCloseWidget:j,isWidgetMode:O=!0,nextBestActions:D,bodyActionButtons:z,onNextBestActionClick:L,userData:U,redirectRules:Q,secretAttributes:M,allowedRegions:V,style:q,isSearchWidget:K=!1,isAgentAssist:B=!1,hideCitations:H=!1,conversationInlineSlot:G,liveHumanAgentChatSlot:W,reconnectHandoff:J,resetHandoff:Y,conversationHistoryEndpoint:ee,markConversationReadEndpoint:te,markConversationCompletedEndpoint:re,knowledgeSourceGroups:ne},se)=>{const{answers:oe,answerListDispatch:ie,query:ce,setQuery:le,followUpQuery:de,setFollowUpQuery:ue,isSearching:me,setIsSearching:pe,showResults:fe,setShowResults:ge,activeAnswerIndex:Ie,setActiveAnswerIndex:Se,conversationId:Te,setConversationId:Re,clearConversationId:je,isLoadingConversation:Oe,setShowMobileCloseWidgetButton:De}=_r(),ze={...Xr,...S},Le=he("enableFileAttachment",!1),Fe=_||Le,Ue=he(ln,!1),{toasts:Qe,showToast:Me,dismissToast:Ve}=function(e=3e3){const[n,a]=t([]),s=o(0),i=r(t=>{const r=++s.current;a(e=>[...e,{id:r,message:t}]),setTimeout(()=>{a(e=>e.filter(e=>e.id!==r))},e)},[e]),c=r(e=>{a(t=>t.filter(t=>t.id!==e))},[]);return{toasts:n,showToast:i,dismissToast:c}}(),qe=r(()=>{let e=Te;return e||(e=ye(),Re(e)),e},[Te,Re]),{attachedFiles:Ke,isUploading:Be,addFiles:He,removeFile:Ge,clearAttachedFiles:We,getUploadedAttachments:Je}=function({uploadEndpoint:e,headers:n,getConversationId:a,onError:s}){const[o,i]=t([]),c=r(e=>{i(t=>{const r=t.find(t=>t.id===e);return r&&URL.revokeObjectURL(r.preview),t.filter(t=>t.id!==e)})},[]),l=r(t=>{if(0===t.length)return;const r=t.filter(e=>Qr[e.type]?!(e.size>10485760&&(s?.(`Image "${e.name}" exceeds the 10MB size limit.`),1)):(s?.("Image type is not supported. Please use JPEG, PNG, GIF, or WebP."),!1)),c=5-o.length;if(0===c)return void s?.("Maximum 5 images reached.");const l=r.slice(0,c);if(0===l.length)return;if(l.length<r.length&&s?.("Maximum 5 images. Some images were not attached."),!e)return console.error("[useFileAttachment] uploadEndpoint is not configured — file attachment is unavailable."),void s?.("Something went wrong. Please try again later.");const d=l.map(e=>({id:"file-"+ ++Mr,file:e,preview:URL.createObjectURL(e),status:"uploading",attachmentType:Qr[e.type]}));i(e=>[...e,...d]);const u=a();d.forEach(t=>{(async()=>{try{const{publicUrl:r}=await ve({endpoint:e,conversationId:u,file:t.file,headers:n});i(e=>e.map(e=>e.id===t.id?{...e,status:"uploaded",publicUrl:r}:e))}catch(r){console.error("Upload failed:",r),s?.(`Failed to upload "${t.file.name}". Please try again.`),i(e=>{const r=e.find(e=>e.id===t.id);return r&&URL.revokeObjectURL(r.preview),e.filter(e=>e.id!==t.id)})}})()})},[o,e,n,a,s]),d=r(()=>{o.forEach(e=>URL.revokeObjectURL(e.preview)),i([])},[o]),u=r(()=>o.filter(e=>"uploaded"===e.status&&e.publicUrl).map(e=>({type:e.attachmentType,url:e.publicUrl,filename:e.file.name})),[o]),m=o.some(e=>"uploading"===e.status);return{attachedFiles:o,isUploading:m,addFiles:l,removeFile:c,clearAttachedFiles:d,getUploadedAttachments:u}}({uploadEndpoint:v,headers:I,getConversationId:qe,onError:Me}),[Ze,Xe]=t(s),[Ye,et]=t(m),[tt,rt]=t(!0),nt=o(null),at=o(null),st=o(null),ot=o([]),it=o(null),ct=o(null),lt=o(null),dt=o(null),ut=o(null),{suggestions:mt}=$e({query:ce,endpoint:$||"",allowedRegions:V,collectionId:Ze,headers:I,conversationId:Te,delay:300}),{loadConversationById:pt}=Ur({loadConversationEndpoint:E,headers:I,mergedTextConfig:ze}),{showHistory:ht,setShowHistory:ft,conversations:gt,isLoadingHistory:yt,hasUnreadConversations:vt,isViewOnly:wt,setIsViewOnly:bt,handleSelectConversation:Et,completeActiveConversations:$t}=function({enabled:e=!1,conversationHistoryEndpoint:n,markConversationReadEndpoint:a,markConversationCompletedEndpoint:s,headers:c,userData:l,currentConversationId:d,loadConversationById:u,reconnectHandoff:m,resetHandoff:p}){const[h,f]=t(!1),[g,y]=t([]),[v,w]=t(!1),[b,E]=t(!1),$=o(null),x=o(c);x.current=c;const _=g.some(e=>e.hasUnread),k=l?.userId,N=c?.["x-bf-fingerprint"],C=!(!k&&!N);i(()=>{if(!e||!n||!C)return;let t=!1;return we({endpoint:n,headers:x.current,externalUserId:k}).then(e=>{t||y(e)}).catch(()=>{t||y([])}),()=>{t=!0}},[n,C,k,N]),i(()=>{if(!(e&&h&&n&&C))return;let t=!1;return w(!0),we({endpoint:n,headers:x.current,externalUserId:k}).then(e=>{t||y(e)}).catch(()=>{t||y([])}).finally(()=>{t||w(!1)}),()=>{t=!0}},[e,h,n,C,k,N]);const I=r(({conversationId:e,isHandoff:t,isCompleted:r})=>{d&&!b&&($.current=d),u(e),E(r),t?m?.(e):p?.(),a&&be({endpoint:a,conversationId:e,headers:x.current}).catch(()=>{}),f(!1)},[e,d,b,u,m,p,a]),S=r(()=>{if(!s)return;const e=g.filter(e=>"active"===e.status).map(e=>e.conversationId),t=new Set([$.current,b?null:d,...e].filter(e=>!!e));y(e=>e.map(e=>t.has(e.conversationId)?{...e,status:"completed"}:e)),t.forEach(e=>{Ee({endpoint:s,conversationId:e,headers:x.current}).catch(()=>{})}),$.current=null},[s,d,b,g]);return{showHistory:h,setShowHistory:f,conversations:g,isLoadingHistory:v,hasUnreadConversations:_,isViewOnly:b,setIsViewOnly:E,handleSelectConversation:I,completeActiveConversations:S}}({enabled:Ue,conversationHistoryEndpoint:ee,markConversationReadEndpoint:te,markConversationCompletedEndpoint:re,headers:I,userData:U??void 0,currentConversationId:Te,loadConversationById:pt,reconnectHandoff:J,resetHandoff:Y}),{scrollToLastAnswer:xt,scrollToAnswer:_t}=((e,t,r)=>({scrollToLastAnswer:()=>{requestAnimationFrame(()=>{const r=e.current?.[e.current.length-1],n=t.current;if(r&&n){const e=r.getBoundingClientRect(),t=n.getBoundingClientRect(),a=n.scrollTop+(e.top-t.top)-80;n.scrollTo({top:a,behavior:"smooth"})}})},scrollToAnswer:r=>{requestAnimationFrame(()=>{const n=e.current?.[r],a=t.current;if(n&&a){const e=n.getBoundingClientRect(),t=a.getBoundingClientRect(),r=a.scrollTop+(e.top-t.top)-80;a.scrollTo({top:r,behavior:"smooth"})}})},scrollToBottom:()=>{setTimeout(()=>{r?.current&&t.current&&r.current.scrollIntoView({behavior:"smooth",block:"end"})},200)}}))(ot,it,dt),{subscribeToStateChanges:kt}=(()=>{const e=o([]),{showResults:t,answers:r,isLoadingConversation:n,loadError:a}=_r();return i(()=>{const s={showResults:t,answers:r,isLoading:n,error:a};e.current.forEach(e=>e(s))},[t,r,n,a]),{subscribeToStateChanges:s=>(e.current.push(s),s({showResults:t,answers:r,isLoading:n,error:a}),()=>{e.current=e.current.filter(e=>e!==s)})}})(),{includePageEnabled:Nt,includePageLoading:Ct,includePageDisabled:It,handleIncludePageToggle:St,fetchPageContext:Pt}=(({isAgentAssist:e,apiKey:n,trackEvent:a})=>{const[s,o]=t(!1),[c,l]=t(!1),[d,u]=t(!1),m=r((e,t=5e3)=>new Promise((r,a)=>{const s=ye();let o;const i=e=>{e.data.requestId===s&&(clearTimeout(o),window.removeEventListener("message",i),r(e.data))};o=setTimeout(()=>{window.removeEventListener("message",i),a(new Error("Request timeout"))},t),window.addEventListener("message",i),window.parent.postMessage({...e,requestId:s,widgetKey:n},"*")}),[n]),p=r(async e=>{l(!0);try{if(e){if(!(await m({type:"REQUEST_PAGE_PERMISSION"})).granted)throw a?.("Include Page Permission Denied",{}),new Error("Permission denied");window.parent.postMessage({type:"UPDATE_PAGE_TOGGLE_STATE",enabled:!0,widgetKey:n},"*"),a?.("Include Page Enabled",{}),o(!0)}else window.parent.postMessage({type:"UPDATE_PAGE_TOGGLE_STATE",enabled:!1,widgetKey:n},"*"),a?.("Include Page Disabled",{}),o(!1)}catch(t){console.error("Failed to toggle include page:",t),o(!1)}finally{l(!1)}},[n,m,a]),h=r(async(t,r)=>{if(s&&e&&!d)try{l(!0);const e=await m({type:"REQUEST_PAGE_CONTENT"},5e3);return e.success&&e.content?(a?.("Page Content Included",{conversationId:t,searchQuery:r,contentLength:e.content.length}),[{type:"text",text:`I am currently viewing this web page:\n\n${e.content}`}]):void 0}catch(n){return console.error("Failed to fetch page content:",n),void a?.("Page Content Fetch Failed",{conversationId:t,searchQuery:r})}finally{l(!1)}},[s,e,d,m,a]);return i(()=>{if(!e)return;const t=e=>{const t=e.data;"INCLUDE_PAGE_STATE"===t.type&&(o(t.enabled||!1),u(t.disabled||!1))};return window.addEventListener("message",t),()=>window.removeEventListener("message",t)},[e]),{includePageEnabled:s,includePageLoading:c,includePageDisabled:d,handleIncludePageToggle:p,fetchPageContext:h}})({isAgentAssist:B,apiKey:h??"unknown",trackEvent:R}),At=async({reader:e,searchQueryId:t,conversationId:r,onFirstEvent:n})=>{ut.current=e;let a="";try{let s,o,i=!1,c=!0,l=!1;for(;({done:i,value:o}=await e.read()),!i&&ut.current===e;){c&&(c=!1,n?.());const e=(new TextDecoder).decode(o).split(/\n\n/).filter(e=>e.startsWith("data: ")).map(e=>e.replace(/^data: /,"").trim());for(const n of e)try{if("[DONE]"===n)continue;const e=JSON.parse(n);if("answer-text-chunk"===e.type){a+=e.content,ie(lr({text:e.content}));const t=X(a);if(l=t.uncertain,l){const e=ze.uncertaintyFallbackText?.[t.language??"en"]??a??"I don't know.";ie(mr({uncertaintyText:e}))}}"action-buttons"===e.type&&(s=e.searchIntentId,ie(gr({searchIntentId:s,actions:e.actions}))),"get-action-inputs"===e.type&&(s=e.searchIntentId,ie(fr({searchIntentId:e.searchIntentId,inputs:e.inputs,actionId:e.actionId,schema:e.schema,initialValues:e.values,onSubmit:async n=>{if("client_execution"===e.actionType){const o=await(a=e.actionKey,s=n,new Promise(e=>{const t=crypto.randomUUID(),r=n=>{n.data.messageId===t&&"CLIENT_EXECUTION_RESULT"===n.data.type&&(window.removeEventListener("message",r),e(n.data.result))};window.addEventListener("message",r),window.parent.postMessage({type:"CLIENT_EXECUTION",messageId:t,actionKey:a,inputs:s},"*"),setTimeout(()=>{window.removeEventListener("message",r),e({success:!1,reason:`Client Action handler with key ${a} timed out`})},5e3)}));return jt({searchQueryId:t,conversationId:r,searchIntentId:e.searchIntentId,actionId:e.actionId,results:o})}var a,s;return Rt({searchQueryId:t,conversationId:r,searchIntentId:e.searchIntentId,actionId:e.actionId,parameters:n})}}))),"citations"===e.type&&ie(cr({searchQueryId:t,results:e.data,state:"completed"}))}catch{console.warn("Failed to parse answer stream block")}}return{answer:a,searchIntentId:s,isUncertain:l}}catch(s){if(ut.current!==e)return{answer:"",searchIntentId:void 0,isUncertain:!1};throw s}finally{ut.current===e&&(ut.current=null,e.releaseLock())}},Tt=async({searchQueryId:e,conversationId:t,context:r,attachments:n})=>{try{const a=(async(e,t)=>{if(P&&!x)try{return await Ce({endpoint:P,searchQueryId:e,headers:I,conversationId:t})}catch(r){return void console.error("Error fetching follow-up questions:",r)}})(e),s=await Ne({endpoint:y,headers:I,body:{type:"generate-for-query",conversationId:t,searchQueryId:e,profileId:U?.userId,...r&&{context:r},...n?.length&&{attachments:n}}}),o=s.body?.getReader();if(!o)return;const{answer:i,searchIntentId:c,isUncertain:l}=await At({reader:o,searchQueryId:e,conversationId:t,onFirstEvent:()=>{R?.("First Streamed Answer Chunk Received",{conversationId:t,searchQueryId:e})}});if(!i)return;a.then(e=>{e&&e.length>0&&!c&&ie((({questions:e,index:t})=>({type:Wt,payload:{questions:e,index:t}}))({questions:e}))}),R?.(l?"Answer Not Found":"Answer Found",{conversationId:t,searchQueryId:e})}catch(a){console.error("Error generating answer for query:",a),ie(dr({error:ze.errorText||"Sorry, we were unable to process the request right now. Please try again in a moment."}))}finally{ie(ur())}},Rt=async({searchQueryId:e,searchIntentId:t,conversationId:r,actionId:n,parameters:a})=>{ie(pr());try{const s=await Ne({endpoint:y,headers:I,body:{type:"invoke-action",conversationId:r,searchQueryId:e,searchIntentId:t,actionId:n,parameters:a,profileId:U?.userId}}),o=s.body?.getReader();if(!o)return;await At({reader:o,searchQueryId:e})}catch(s){console.error("Error generating answer for action:",s),ie(dr({error:ze.errorText||"Sorry, we were unable to process the request right now. Please try again in a moment."}))}finally{ie(ur()),pe(!1)}},jt=async({searchQueryId:e,searchIntentId:t,conversationId:r,actionId:n,results:a})=>{ie(pr());try{const s=await Ne({endpoint:y,headers:I,body:{type:"client-execution-result",conversationId:r,searchQueryId:e,searchIntentId:t,actionId:n,results:a,profileId:U?.userId}}),o=s.body?.getReader();if(!o)return;await At({reader:o,searchQueryId:e})}catch(s){console.error("Error generating answer for action:",s),ie(dr({error:ze.errorText||"Sorry, we were unable to process the request right now. Please try again in a moment."}))}finally{ie(ur()),pe(!1)}},Ot=async({searchQuery:e,conversationId:t,attributes:r,secretAttributes:n,allowedRegions:a,knowledgeGroupCollectionIds:s})=>{const o=s??Ze,i=await ke({endpoint:g,query:e,collectionId:o,headers:I,conversationId:t,attributes:r,secretAttributes:n,allowedRegions:a,source:B?"agent_assist":void 0});if(0!==i.results.length||i.isAgenticResponse)return ie(cr({searchQueryId:i.searchQueryId,results:i.results})),i.searchQueryId;R?.("No Articles Found",{conversationId:t,searchQuery:e})},Dt=async({searchQuery:e=ce.trim(),event:t})=>{if(!e)return;const r=Te||ye();Re(r);const n=Je();We(),pe(!0),ge(!0),Se(oe.length),xt(),ie((({id:e,query:t,attachments:r})=>({type:Kt,payload:{id:e,query:t,attachments:r}}))({query:e,attachments:n})),await Promise.resolve(),lt.current?.focus();const a=await Pt(r,e);if(ne&&ne.length>0&&!nt.current)return at.current={searchQuery:e,conversationId:r,attributes:{...U},secretAttributes:M,allowedRegions:V,pageContext:a??void 0,fileAttachments:n.length>0?n:void 0},ie((({index:e}={})=>({type:sr,payload:{index:e}}))()),void pe(!1);try{const s={...U},o=nt.current?.collectionIds,i=await Ot({searchQuery:e,conversationId:r,attributes:s,secretAttributes:M,allowedRegions:V,knowledgeGroupCollectionIds:o});i?(t&&R?.(t.name,{conversationId:r,searchQuery:e,searchQueryId:i,...t.metaData}),await Tt({searchQueryId:i,conversationId:r,context:a,attachments:n.length>0?n:void 0})):ie(hr())}catch(s){console.error("Error generating answer:",s),t&&R?.(`${t.name} - Search Error`,{conversationId:r,searchQuery:e,...t.metaData}),ie(dr({error:ze.errorText||"Sorry, we were unable to process the request right now. Please try again in a moment."}))}finally{pe(!1)}},zt=async e=>{nt.current=e;const t=at.current;if(t){at.current=null,ie((({index:e}={})=>({type:or,payload:{index:e}}))()),pe(!0);try{const r=await Ot({searchQuery:t.searchQuery,conversationId:t.conversationId,attributes:t.attributes,secretAttributes:t.secretAttributes,allowedRegions:t.allowedRegions,knowledgeGroupCollectionIds:e.collectionIds});r?(R?.("Knowledge Group Selected",{conversationId:t.conversationId,searchQuery:t.searchQuery,searchQueryId:r,knowledgeGroupId:e.id,knowledgeGroupName:e.name}),await Tt({searchQueryId:r,conversationId:t.conversationId,context:t.pageContext,attachments:t.fileAttachments})):ie(hr())}catch(r){console.error("Error generating answer after group selection:",r),ie(dr({error:ze.errorText||"Sorry, we were unable to process the request right now. Please try again in a moment."}))}finally{pe(!1)}}},Lt=e=>{if($t(),bt(!1),Y?.(),ut.current){const e=ut.current;ut.current=null,function(e){try{e.cancel().catch(e=>{console.warn("Error cancelling stream reader:",e)});try{e.releaseLock()}catch(t){console.warn("Error releasing stream reader lock:",t)}}catch(r){console.warn("Error cancelling stream reader:",r);try{e.releaseLock()}catch(t){console.warn("Error releasing stream reader lock:",t)}}}(e)}pe(!1),le(""),ue(""),ge(!1),ie(ir()),Se(0),We(),je(),nt.current=null,at.current=null,R?.("New Thread Created",{oldConversationId:Te}),st.current&&(st.current.style.height="auto"),e&&(le(e),Dt({searchQuery:e,event:{name:"New Thread Created with Query"}}))};l(se,()=>({createNewThread:Lt,showFollowUpThread:e=>{rt(e)},subscribeToStateChanges:kt,focusSearchField:()=>ct.current?.focus()||lt.current?.focus(),showCloseButton:(e=!0)=>{De(e)},loadConversation:pt})),i(()=>{Xe(s)},[s]),i(()=>{et(m)},[m]);const Ft=async(e,t,r)=>{if(w){ie((({feedback:e,index:t})=>({type:Xt,payload:{feedback:e,index:t}}))({feedback:e,index:r}));try{await _e({endpoint:w,searchQueryId:t,response:e,headers:I,conversationId:Te}),R?.("accept"===e?"Answer Accepted":"Answer Rejected",{conversationId:Te,searchQueryId:t})}catch(n){console.error("Error sending feedback:",n),ie((({index:e}={})=>({type:Yt,payload:{index:e}}))({index:r}))}}},Ut=async e=>{const t=void 0!==e?e:de;t.trim()&&(le(t),ue(""),await Dt({searchQuery:t,event:{name:"Follow-up Search Field Submitted"}}))};i(()=>{const e=()=>{new URLSearchParams(window.location.search).get("conversation")||(le(""),ue(""),ge(!1),ie(ir()),Se(0),We(),st.current&&(st.current.style.height="auto"))};return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[]);const Mt=e=>{R?.("Follow-up Question Clicked",{conversationId:Te,question:e}),Dt({searchQuery:e,event:{name:"Follow-up Question Clicked"}})},Vt=({action:e,searchQueryId:t,query:r,answer:n})=>{R?.("Next Best Action Clicked",{conversationId:Te,searchQueryId:t,action:e.label});const a=((e,t)=>({conversationId:t,messages:e.map(e=>({question:e.question,answer:Qt(e.blocks)}))}))(oe,Te);L?.({action:e,searchQueryId:t,query:r,answer:n,conversation:a})};return i(()=>{const e=it.current;if(!e||!K)return;let t=0,r=null;const n=()=>{const r=(()=>{const t=e.firstElementChild,r=t?.scrollHeight??e.scrollHeight,n=document.querySelector('[data-name="BrandFooter"]')?.clientHeight??0,a=document.querySelector('[data-name="Header"]')?.clientHeight??0,s=fe&&tt?70:0,o=document.querySelector('[data-name="ChatSearch"]')?.clientHeight??0,i=r+n+s+a+32;return Math.max(i,o)})();r>0&&r!==t&&(t=r,window.parent.postMessage({type:"RESIZE_IFRAME",height:r,widgetKey:h},"*"))},a=setTimeout(n,100),s=new ResizeObserver(()=>{null!==r&&cancelAnimationFrame(r),r=requestAnimationFrame(()=>{n(),r=null})}),o=e.firstElementChild;return o&&s.observe(o),s.observe(e),()=>{clearTimeout(a),null!==r&&cancelAnimationFrame(r),s.disconnect()}},[K,h,fe,tt]),/* @__PURE__ */e.createElement("div",{className:Z("w-full relative h-dvh flex flex-col justify-between @container","md:h-auto md:p-4 md:bg-dark-100",A),"data-name":"ChatSearch",style:q},
|
|
82
83
|
/* @__PURE__ */e.createElement(Yr,{toasts:Qe,onDismiss:Ve}),(O||!fe)&&/* @__PURE__ */e.createElement(Zr,{showHistoryButton:Ue,isSearchWidget:K,"data-name":"Header",headerText:ze.headerText,onToggleSizeButtonClick:()=>{T?.()},onBackButtonClick:()=>{Lt()},onCloseWidgetClick:()=>j?.(),showHistory:ht,hasUnreadConversations:vt,onHistoryButtonClick:()=>ft(!0),onHistoryBackClick:()=>ft(!1),className:Z("@3xl:mb-4",{"!block":fe&&K})}),
|
|
83
84
|
/* @__PURE__ */e.createElement(Pe,{className:"w-full relative h-auto flex-grow [&>[data-radix-scroll-area-viewport]>div:first-child]:!block",ref:it},
|
|
84
|
-
/* @__PURE__ */e.createElement(u,null,ht?/* @__PURE__ */e.createElement(
|
|
85
|
+
/* @__PURE__ */e.createElement(u,null,ht?/* @__PURE__ */e.createElement(on,{conversations:gt,isLoading:yt,onSelectConversation:Et}):Oe?/* @__PURE__ */e.createElement(en,null):fe?/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement(d.div,{key:"results",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.5},className:"w-full max-w-[100vw] space-y-4 p-3 md:p-0"},oe.map((t,r)=>/* @__PURE__ */e.createElement(d.div,{key:r,ref:e=>ot.current[r]=e,initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,delay:.1*r},className:"space-y-4 last:!mb-8"},
|
|
85
86
|
/* @__PURE__ */e.createElement(Vr,{index:r,blocks:t.blocks,question:t.question,attachments:t.attachments,state:t.state,searchResults:t.searchResults,searchQueryId:t.searchQueryId,searchIntentId:t.searchIntentId,hideCitations:H,feedback:t.feedback,onFeedback:e=>{Ft(e,t.searchQueryId,r)},disableFeedback:k,textConfig:ze,redirectRules:Q,nextBestActions:D,actions:t.actions,handleActionClick:Vt,isLastAnswer:r===oe.length-1,onFeedbackReasonSubmit:e=>{(async(e,t)=>{if(b)try{await xe({endpoint:b,searchQueryId:t,reason:e,headers:I})}catch(r){console.error("Error sending feedback reason:",r)}})(e,t.searchQueryId)},hasError:t.hasError,knowledgeSourceGroups:ne,onKnowledgeGroupSelect:e=>{zt(e)}}),r===oe.length-1&&!x&&t.followUpQuestions&&"completed"===t.state&&!t.hasError&&/* @__PURE__ */e.createElement(Kr,{questions:t.followUpQuestions,onQuestionClick:Mt}))))):/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement(d.div,{key:"search",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5},className:"w-full md:space-y-4"},
|
|
86
87
|
/* @__PURE__ */e.createElement("div",{className:Z("pb-4",K?"bg-transparent p-3 md:p-0":"px-3 bg-primary md:p-0 md:bg-transparent")},
|
|
87
88
|
/* @__PURE__ */e.createElement(d.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,delay:.4}},
|
|
88
89
|
/* @__PURE__ */e.createElement(Gr,{ref:ct,query:ce,onQueryChange:e=>{var t;le(e),st.current&&((t=st.current).style.height="auto",t.style.height=`${t.scrollHeight}px`)},onSearch:()=>{(async(e=ce.trim())=>{await Dt({searchQuery:e,event:{name:"Primary Field Search Submitted"}})})()},textConfig:ze,collections:a,currentCollectionId:Ze,onCollectionChange:e=>{Xe(e),c?.(e)},allowedRegions:V,currentRegion:Ye,onRegionChange:e=>{et(e),p?.(e),R?.("Region Changed",{region:e,conversationId:Te})},apiKey:h,fetchRegionConfig:f,enableFileAttachment:Fe,attachedFiles:Ke,isUploading:Be,onAddFiles:He,onRemoveFile:Ge,isSearching:me,autocompleteSuggestions:mt,onAutocompleteSuggestionSelect:e=>{Dt({searchQuery:e.question,event:{name:"Autocomplete Suggestion Clicked"}})},isAgentAssist:B,includePageEnabled:Nt,includePageLoading:Ct,includePageDisabled:It,onIncludePageToggle:St}))),
|
|
89
90
|
/* @__PURE__ */e.createElement(Ae,{suggestions:n,onQuestionClick:e=>{if(e.conversationId)return R?.("Recent Conversation Clicked",{conversationId:Te,question:e.question}),void pt(e.conversationId);Dt({searchQuery:e.question,event:{name:"Suggested Question Clicked"}})},title:ze.suggestionsTitle}),O&&z&&z.length>0&&/* @__PURE__ */e.createElement("div",{className:"mt-4 mb-4 px-3 @3xl:px-0"},/* @__PURE__ */e.createElement("div",{className:"space-y-3"},/* @__PURE__ */e.createElement(zr,{nextBestActions:z||[],onActionClick:e=>Vt({action:e,searchQueryId:"",query:"",answer:""})})))))),fe&&oe.length>1&&/* @__PURE__ */e.createElement("div",{className:"hidden lg:block"},/* @__PURE__ */e.createElement(Br,{questions:oe.map(e=>e.question),activeIndex:Ie,onNavigate:e=>{Se(e),_t(e)},offset:C})),N&&O&&!(fe&&tt)&&/* @__PURE__ */e.createElement("div",{"data-name":"disclaimer",className:Z("mt-2 px-3 @3xl:px-0 text-xs text-dark-500 flex items-center gap-1 justify-center text-center w-full md:static md:mt-4 md:text-left md:flex md:gap-4 leading-5",K?"static mb-2 md:text-left [&>svg]:flex-shrink-0":"absolute bottom-12")},
|
|
90
91
|
/* @__PURE__ */e.createElement(ae,{iconName:"Info",className:"size-4"}),
|
|
91
|
-
/* @__PURE__ */e.createElement(F,{className:"[&_a]:underline [&_a:hover]:no-underline",remarkPlugins:
|
|
92
|
+
/* @__PURE__ */e.createElement(F,{className:"[&_a]:underline [&_a:hover]:no-underline",remarkPlugins:dn,rehypePlugins:un,components:mn},N)),null!=G&&!ht&&/* @__PURE__ */e.createElement("div",{className:"-mt-6 w-full max-w-[100vw] px-3 pb-0 pt-0 text-foreground md:px-0"},G),
|
|
92
93
|
/* @__PURE__ */e.createElement("div",{ref:dt})),fe&&tt&&!wt&&!W&&!ht&&(()=>{const t=oe.some(e=>"awaiting-knowledge-group"===e.state);/* @__PURE__ */
|
|
93
|
-
return e.createElement(Jr,{ref:lt,initialQuery:de,onQueryChange:ue,isSearching:me,handleFollowUpSearch:Ut,textConfig:ze,enableFileAttachment:Fe,attachedFiles:Ke,isUploading:Be,onAddFiles:He,onRemoveFile:Ge,disabled:t})})(),fe&&wt&&!W&&!ht&&/* @__PURE__ */e.createElement(
|
|
94
|
-
/* @__PURE__ */e.createElement(
|
|
95
|
-
//# sourceMappingURL=ChatSearch.
|
|
94
|
+
return e.createElement(Jr,{ref:lt,initialQuery:de,onQueryChange:ue,isSearching:me,handleFollowUpSearch:Ut,textConfig:ze,enableFileAttachment:Fe,attachedFiles:Ke,isUploading:Be,onAddFiles:He,onRemoveFile:Ge,disabled:t})})(),fe&&wt&&!W&&!ht&&/* @__PURE__ */e.createElement(cn,{onStartNewConversation:()=>Lt()}),!ht&&W)});pn.displayName="ChatSearch";const hn=c(({featureFlags:t,...r},n)=>/* @__PURE__ */e.createElement(fe,{flags:t},/* @__PURE__ */e.createElement(xr,{searchPath:r.searchPath,contentTypeEndpoint:r.contentTypeEndpoint,widgetKey:r.apiKey},
|
|
95
|
+
/* @__PURE__ */e.createElement(pn,{...r,ref:n}))));hn.displayName="ChatSearch";export{hn as C,cn as R,xr as a,Fr as b,_r as u};
|
|
96
|
+
//# sourceMappingURL=ChatSearch.BAv9fTWD.js.map
|