@brainfish-ai/components 0.1.0 → 0.1.1
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/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/package.json +2 -1
- package/stats.html +1 -1
package/dist/esm/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import*as e from"react";import t,{memo as a,useState as r,useRef as n,useEffect as s,createContext as o,useMemo as i,useContext as l,useCallback as c,forwardRef as d,useImperativeHandle as m}from"react";import{AnimatePresence as u,motion as h}from"framer-motion";import*as g from"@radix-ui/react-tooltip";import{clsx as p}from"clsx";import{twMerge as f}from"tailwind-merge";import{jsx as b,Fragment as y}from"react/jsx-runtime";import{cva as v}from"class-variance-authority";import{CheckCircle as E,Clipboard as x,Download as w,ArrowsOut as N,Heart as k,ThumbsUp as C,ThumbsDown as F,Check as j,Copy as z,CaretDown as S,ArrowSquareOut as I,Question as O,CaretRight as A,ArrowsVertical as L,ArrowDown as R,MagnifyingGlass as T,X as D,Circle as U,Image as B,ArrowRight as Q,ArrowUp as P,ArrowLeft as $,ArrowsOutSimple as q}from"@phosphor-icons/react";import*as M from"@radix-ui/react-collapsible";import _ from"rehype-raw";import Z from"remark-gfm";import{Prism as W}from"react-syntax-highlighter";import{a11yDark as V}from"react-syntax-highlighter/dist/esm/styles/prism";import H from"react-markdown";import K from"mermaid";import{produce as G}from"immer";import*as Y from"@radix-ui/react-dropdown-menu";import{ChevronRightIcon as J,CheckIcon as X,DotFilledIcon as ee}from"@radix-ui/react-icons";import*as te from"@radix-ui/react-scroll-area";import*as ae from"@radix-ui/react-switch";function re(e,t){return({opacityVariable:a,opacityValue:r})=>`rgb(var(${e}, ${t}) / ${void 0!==r?r:`var(${a}, 1)`})`}const ne={50:"#FAFAFA",100:"#F5F5F5",200:"#E5E5E5",300:"#D4D4D4",400:"#A3A3A3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",DEFAULT:"#171717"},se={primary:{50:"#F7FEE8",100:"#ECFCCC",200:"#D9F99E",300:"#BEF265",400:"#A3E635",500:"#84CC17",600:"#65A30E",700:"#4E7C10",800:"#406213",900:"#375415",DEFAULT:re("--bfc-primary","#A3E635"),foreground:re("--bfc-primary-foreground",ne.DEFAULT)},dark:ne,orange:{50:"#FFF7EE",100:"#FFEDD6",200:"#FED7AB",300:"#FDBA75",400:"#FB923D",500:"#F97317",600:"#EA590D",700:"#C2420D",800:"#9A3513",900:"#7C2E13",DEFAULT:"#FB923D"},yellow:{50:"#FFFBEC",100:"#FEF3C8",200:"#FDE68B",300:"#FCD34E",400:"#FBBF25",500:"#F59E0C",600:"#D97707",700:"#B4540A",800:"#92410F",900:"#783610",DEFAULT:"#FBBF25"},green:{50:"#EDFDF5",100:"#D2FAE5",200:"#A8F3D0",300:"#6FE7B7",400:"#35D399",500:"#11B981",600:"#069669",700:"#057857",800:"#075F47",900:"#074F3C",DEFAULT:"#35D399"},blue:{50:"#F0F6FF",100:"#DCEAFE",200:"#C0DBFE",300:"#94C5FD",400:"#61A5FA",500:"#3C82F6",600:"#2663EB",700:"#1E4FD8",800:"#1F41AF",900:"#1F3B8A",DEFAULT:"#61A5FA"},purple:{50:"#F5F4FF",100:"#EDEAFE",200:"#DED7FE",300:"#C5B6FD",400:"#A78CFA",500:"#8C5DF6",600:"#7C3BED",700:"#6D29D9",800:"#5B22B6",900:"#4D1E95",DEFAULT:"#8C5DF6"},pink:{50:"#F5F4FF",100:"#FAE9FF",200:"#F5D1FE",300:"#F0ACFC",400:"#E87AF9",500:"#D947EF",600:"#C027D3",700:"#A21DAF",800:"#861A8F",900:"#701B75",DEFAULT:"#E87AF9"},red:{50:"#FFF2F3",100:"#FFE5E6",200:"#FECED4",300:"#FDA5B0",400:"#FB7286",500:"#F4405E",600:"#E11E49",700:"#BE133D",800:"#9F133A",900:"#881438",DEFAULT:"#F4405E"}};function oe(e,t){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)t.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(a[r[n]]=e[r[n]])}return a}function ie(e,t,a,r){return new(a||(a=Promise))((function(n,s){function o(e){try{l(r.next(e))}catch(e){s(e)}}function i(e){try{l(r.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?n(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(o,i)}l((r=r.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;var le="ChatSearch-module_scroll-area__DOecp";function ce(...e){return f(p(e))}function de(e){const t={en:[/i(?:\s|['\u2018\u2019])?m(?:\s+really)?\s+not\s+sure/i,/i(?:\s+am)?(?:\s+really)?\s+not\s+sure/i,/i\s+(?:really\s+)?don(?:['\u2018\u2019])?t\s+know/i,/it(?:['\u2018\u2019]s| is) unclear/i,/cannot determine/i,/hard to say/i,/difficult to determine/i,/need more information/i],es:[/no (?:lo )?sé/i,/no estoy seguro/i,/no es claro/i,/desconocido/i],fr:[/je ne sais pas/i,/je ne suis pas sûr/i,/ce n'est pas clair/i,/inconnu/i],de:[/ich weiß nicht/i,/ich bin nicht sicher/i,/es ist unklar/i,/unbekannt/i],it:[/non lo so/i,/non sono sicuro/i,/non è chiaro/i,/sconosciuto/i],pt:[/não sei/i,/não tenho certeza/i,/não está claro/i,/desconhecido/i],nl:[/ik weet het niet/i,/ik weet niet zeker/i,/het is onduidelijk/i,/onbekend/i],pl:[/nie wiem/i,/nie jestem pewien/i,/to nie jest jasne/i,/nieznany/i],ru:[/я не знаю/i,/я не уверен/i,/это не ясно/i,/неизвестно/i],ja:[/知りません/i,/よくわからない/i,/不明です/i,/未知/i],ko:[/모릅니다/i,/잘 모르겠습니다/i,/불확실합니다/i,/알 수 없음/i],zh:[/我不知道/i,/我不确定/i,/不清楚/i,/未知/i],"zh-TW":[/我不知道/i,/我不確定/i,/不清楚/i,/未知/i]};let a=null;for(const[r,n]of Object.entries(t))for(const t of n){const n=e.match(t);n&&(null===a||n.index<a.index)&&(a={index:n.index,language:r})}return a?{uncertain:!0,language:a.language}:{uncertain:!1,language:null}}const me=t=>{var{delayDuration:a=200}=t,r=oe(t,["delayDuration"]);return e.createElement(g.Provider,Object.assign({delayDuration:a},r))},ue=g.Root,he=g.Trigger,ge=e.forwardRef(((t,a)=>{var{className:r,sideOffset:n=4,background:s,textColor:o,borderColor:i,style:l}=t,c=oe(t,["className","sideOffset","background","textColor","borderColor","style"]);return e.createElement(g.Portal,null,e.createElement(g.Content,Object.assign({ref:a,sideOffset:n,className:ce("z-50 overflow-hidden rounded-lg px-4 py-3 text-sm font-medium shadow-lg animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r),style:Object.assign(Object.assign({},l),{backgroundColor:s||"#ffffff",color:o||"rgb(31 41 55)",borderColor:i||"rgb(243 244 246)",borderWidth:"1px",borderStyle:"solid"})},c)))}));function pe(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function fe(...e){return t=>{let a=!1;const r=e.map((e=>{const r=pe(e,t);return a||"function"!=typeof r||(a=!0),r}));if(a)return()=>{for(let t=0;t<r.length;t++){const a=r[t];"function"==typeof a?a():pe(e[t],null)}}}}ge.displayName=g.Content.displayName;var be=e.forwardRef(((t,a)=>{const{children:r,...n}=t,s=e.Children.toArray(r),o=s.find(Ee);if(o){const t=o.props.children,r=s.map((a=>a===o?e.Children.count(t)>1?e.Children.only(null):e.isValidElement(t)?t.props.children:null:a));return b(ye,{...n,ref:a,children:e.isValidElement(t)?e.cloneElement(t,void 0,r):null})}return b(ye,{...n,ref:a,children:r})}));be.displayName="Slot";var ye=e.forwardRef(((t,a)=>{const{children:r,...n}=t;if(e.isValidElement(r)){const t=function(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,a=t&&"isReactWarning"in t&&t.isReactWarning;if(a)return e.ref;if(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,a=t&&"isReactWarning"in t&&t.isReactWarning,a)return e.props.ref;return e.props.ref||e.ref}(r);return e.cloneElement(r,{...xe(n,r.props),ref:a?fe(a,t):t})}return e.Children.count(r)>1?e.Children.only(null):null}));ye.displayName="SlotClone";var ve=({children:e})=>b(y,{children:e});function Ee(t){return e.isValidElement(t)&&t.type===ve}function xe(e,t){const a={...t};for(const r in t){const n=e[r],s=t[r];/^on[A-Z]/.test(r)?n&&s?a[r]=(...e)=>{s(...e),n(...e)}:n&&(a[r]=n):"style"===r?a[r]={...n,...s}:"className"===r&&(a[r]=[n,s].filter(Boolean).join(" "))}return{...e,...a}}const we=v("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),Ne=e.forwardRef(((t,a)=>{var{className:r,variant:n,size:s,asChild:o=!1}=t,i=oe(t,["className","variant","size","asChild"]);const l=o?be:"button";return e.createElement(l,Object.assign({className:ce(we({variant:n,size:s,className:r})),ref:a},i))}));function ke({suggestions:e,onQuestionClick:a,title:r="Suggested questions"}){return e&&0!==e.length?t.createElement("div",{className:"w-full p-3","data-name":"Suggestions"},t.createElement("h3",{className:"text-base font-medium mb-4 text-foreground"},r),t.createElement("div",{className:"flex flex-wrap gap-2"},e.map((e=>t.createElement(Ne,{key:e.id,onClick:()=>a(e),variant:"outline",className:"border-border font-normal"},void 0!==e.messageCount&&t.createElement(me,null,t.createElement(ue,null,t.createElement(he,{asChild:!0},t.createElement("span",{className:"bg-gray-100 text-gray-600 px-2 py-0.5 rounded-full text-xs min-w-[20px] border flex items-center justify-center border-border"},e.messageCount)),t.createElement(ge,null,t.createElement("p",null,e.messageCount," messages in this conversation")))),t.createElement("span",{className:"line-clamp-1"},e.question)))))):null}Ne.displayName="Button";const Ce=M.Root,Fe=M.CollapsibleTrigger,je=e=>{var{children:a}=e,r=oe(e,["children"]);return t.createElement(M.CollapsibleContent,Object.assign({},r),t.createElement("style",null,'\n .CollapsibleContent[data-state="open"] {\n animation: slideDown 200ms ease-in-out;\n }\n .CollapsibleContent[data-state="closed"] {\n animation: slideUp 200ms ease-in-out;\n }\n\n @keyframes slideDown {\n from {\n height: 0;\n }\n to {\n height: var(--radix-collapsible-content-height);\n }\n }\n\n @keyframes slideUp {\n from {\n height: var(--radix-collapsible-content-height);\n }\n to {\n height: 0;\n }\n }\n '),a)},ze={javascript:".js",python:".py",java:".java",c:".c",cpp:".cpp","c++":".cpp","c#":".cs",ruby:".rb",php:".php",swift:".swift","objective-c":".m",kotlin:".kt",typescript:".ts",go:".go",perl:".pl",rust:".rs",scala:".scala",haskell:".hs",lua:".lua",shell:".sh",sql:".sql",html:".html",css:".css"},Se=W,Ie=a((({language:e,value:a})=>{const[n,s]=r(!1);return t.createElement("div",{className:"relative font-sans text-sm mt-1"},t.createElement("div",{className:"relative rounded-t-lg bg-zinc-800/80 font-sans text-sm backdrop-blur"},t.createElement("div",{className:"flex h-8 items-center justify-between px-3"},t.createElement("span",{className:"text-xs font-medium text-zinc-400"},e),t.createElement("div",{className:"flex gap-1"},t.createElement(Ne,{variant:"ghost",size:"icon",className:"size-5 text-zinc-400 hover:bg-zinc-700/50 hover:text-zinc-100",onClick:()=>{ie(void 0,void 0,void 0,(function*(){if(navigator.clipboard&&navigator.clipboard.writeText)try{yield navigator.clipboard.writeText(a),s(!0),setTimeout((()=>{s(!1)}),2e3)}catch(e){console.error("Failed to copy:",e)}}))}},n?t.createElement(E,{size:18}):t.createElement(x,{size:18})),t.createElement(Ne,{variant:"ghost",size:"icon",className:"size-5 text-zinc-400 hover:bg-zinc-700/50 hover:text-zinc-100",onClick:()=>{const t=ze[e]||".file",r=`file-${((e,t=!1)=>{const a="ABCDEFGHJKLMNPQRSTUVWXY3456789";let r="";for(let t=0;t<e;t+=1)r+=a.charAt(Math.floor(30*Math.random()));return t?r.toLowerCase():r})(3,!0)}${t}`,n=new Blob([a],{type:"text/plain"}),s=URL.createObjectURL(n),o=document.createElement("a");o.download=r,o.href=s,o.style.display="none",document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(s)}},t.createElement(w,{size:18}))))),t.createElement("div",{className:"rounded-b-lg"},t.createElement(Se,{language:e,style:V,PreTag:"div",wrapLongLines:!0,customStyle:{margin:0,borderTopLeftRadius:0,borderTopRightRadius:0}},a)))}));Ie.displayName="CodeBlock";const Oe=e.forwardRef((({src:t,border:a,width:r="100%",height:n="400px",title:s},o)=>{const[i,l]=e.useState(!1),[c,d]=e.useState(!1);return e.useEffect((()=>{let e=!0;return setTimeout((()=>{e&&l(!0)}),0),()=>{e=!1}}),[]),e.createElement("div",{className:"overflow-hidden rounded-lg mt-4 "+(a?"border":""),style:{width:r,height:n}},i&&e.createElement(e.Fragment,null,e.createElement("div",{className:"relative w-full h-full "+(c?"hidden":"block")},e.createElement("div",{className:"absolute inset-0 bg-muted/10 rounded-lg"},e.createElement("div",{className:"absolute inset-0"},e.createElement("div",{className:"h-full w-full shimmer"}),e.createElement("div",{className:"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 flex flex-col items-center gap-2"},e.createElement("div",{className:"modern-spinner"}),e.createElement("div",{className:"text-sm text-muted-foreground"},"Loading..."))))),e.createElement("div",{className:c?"visible":"invisible"},e.createElement("iframe",{ref:o,src:t,sandbox:"allow-same-origin allow-scripts allow-popups allow-forms allow-downloads",width:r,height:n,frameBorder:"0",title:"embed",loading:"lazy",allowFullScreen:!0,className:"block rounded-lg",onLoad:()=>d(!0)}),s&&e.createElement("span",{className:"block text-center text-sm font-medium"},s))))}));function Ae(t){const a=t.attrs.href.replace("share","embed");return e.createElement(Oe,Object.assign({},t,{src:a,title:"Loom Embed"}))}function Le(t){return e.createElement(Oe,Object.assign({},t,{src:t.attrs.href,title:"Supademo Embed"}))}function Re(t){return e.createElement(Oe,Object.assign({},t,{src:t.attrs.href,title:"Typeform Embed"}))}function Te(t){const a=t.attrs.href.match(/(http|https)?:\/\/(www\.)?vimeo\.com\/(?:channels\/(?:\w+\/)?|groups\/([^/]*)\/videos\/|)(\d+)(?:\/|\?)?([\d\w]+)?/);if(!a)return null;const r=a[4],n=a[5],s=`https://player.vimeo.com/video/${r}?byline=0${n?`&h=${n}`:""}`;return e.createElement(Oe,Object.assign({},t,{src:s,title:`Vimeo Embed (${r})`,height:"412px",border:!1}))}function De(t){const a=(e=>{const t=[/^https?:\/\/([a-zA-Z0-9-_~]+)\.wistia\.com\/medias\/([a-zA-Z0-9-_~]+)\/?$/,/^https?:\/\/fast\.wistia\.com\/embed\/iframe\/([a-zA-Z0-9-_~]+)\/?$/,/^fast\.wistia\.com\/embed\/iframe\/([a-zA-Z0-9-_~]+)\/?$/,/^([a-zA-Z0-9-_~]+)\.wistia\.com\/medias\/([a-zA-Z0-9-_~]+)\/?$/];for(const a of t){const t=e.match(a);if(t)return t}return null})(t.attrs.href);if(!a)return null;const r=a[1],n=a[2]||a[1],s=r?`https://${r}.wistia.com/embed/iframe/${n}?seo=true&videoFoam=false`:`https://fast.wistia.com/embed/iframe/${n}`;return e.createElement(Oe,Object.assign({},t,{src:s,border:!0,title:`Wistia Embed (${n})`}))}function Ue(t){const a=(e=>{const t=e.match(/(?:https?:\/\/)?(?:www\.)?youtu\.?be(?:\.com)?\/?.*(?:watch|embed)?(?:.*v=|v\/|\/)([a-zA-Z0-9_-]{11})$/i);return t?t[1]:null})(t.attrs.href);return a?e.createElement(Oe,Object.assign({},t,{src:`https://www.youtube.com/embed/${a}?modestbranding=1`,title:`YouTube Embed (${a})`})):null}Ae.isMatch=e=>/^https:\/\/(www\.)?(use)?loom\.com\/(embed|share)\/(.*)$/.test(e),Le.isMatch=e=>/^https:\/\/app\.supademo\.com\/embed\/(.*)$/.test(e),Re.isMatch=e=>/^https:\/\/([A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)\.typeform\.com\/to\/(.*)$/.test(e),Te.isMatch=e=>/^(https?):\/\/(www\.)?vimeo\.com\/(?:channels\/(?:\w+\/)?|groups\/([^/]*)\/videos\/|)?(\d+)(\/)?(?:\?.*|#.*)?$/i.test(e),De.isMatch=e=>[/^https?:\/\/([a-zA-Z0-9-_~]+)\.wistia\.com\/medias\/([a-zA-Z0-9-_~]+)(\/)?(\?.*)?$/i,/^https?:\/\/fast\.wistia\.com\/embed\/iframe\/([a-zA-Z0-9-_~]+)(\/)?(\?.*)?$/i,/^fast\.wistia\.com\/embed\/iframe\/([a-zA-Z0-9-_~]+)(\/)?(\?.*)?$/i,/^([a-zA-Z0-9-_~]+)\.wistia\.com\/medias\/([a-zA-Z0-9-_~]+)(\/)?(\?.*)?$/i].some((t=>t.test(e))),Ue.isMatch=e=>/^(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/(?:watch\?v=|embed\/|v\/|shorts\/)|youtu\.be\/)([a-zA-Z0-9_-]{11})(?:\/|[?&].*)?$/i.test(e);const Be=[Ae,Le,Re,Ue,De,Te],Qe=t=>{const{href:a}=t.attrs,r=((t,a)=>e.useMemo((()=>{try{const e=a.find((e=>e.isMatch(t)));return e?{Component:e}:null}catch(e){return console.error("Error finding embed match:",e),null}}),[t,a]))(a,Be);if(r){const{Component:a}=r;return e.createElement(a,Object.assign({},t))}return null},Pe=a(H,((e,t)=>e.children===t.children)),$e={startOnLoad:!1,theme:"default",securityLevel:"loose",fontFamily:"inherit"},qe=({content:e})=>{const[a,o]=r(""),[i,l]=r(null),c=n(null),[d,m]=r(!1);return s((()=>{(()=>{try{K.initialize($e),m(!0)}catch(e){console.error("Error initializing mermaid:",e),l("Failed to initialize diagram renderer")}})()}),[]),s((()=>{if(!d)return;ie(void 0,void 0,void 0,(function*(){try{const t=`mermaid-${Math.random().toString(36).substr(2,9)}`,a=yield K.render(t,e);o(a.svg),l(null)}catch(e){console.error("Error rendering mermaid diagram:",e),l("Failed to render diagram")}}))}),[e,d]),i?t.createElement("div",{className:"text-red-500 bg-red-50 p-4 rounded-md"},i,t.createElement("pre",{className:"mt-2 text-sm"},e)):t.createElement("div",{ref:c,className:"my-4 overflow-auto",dangerouslySetInnerHTML:{__html:a}})},Me=({src:t,alt:a})=>{const[r,n]=e.useState(!1),[s,o]=e.useState(!1),[i,l]=e.useState(!1),[c,d]=e.useState(!0),[m,g]=e.useState({width:0,height:0}),p=e.useRef(null),f=()=>{n(!r)};return!t||i?null:e.createElement("figure",{className:"relative inline-block my-4 px-4 w-full sm:w-auto"},e.createElement("div",{className:"flex items-center justify-center min-h-[100px]"},e.createElement("button",{type:"button",onClick:f,className:"border-0 p-0 bg-transparent relative group","aria-label":r?"Zoom out image":"Zoom in image"},c&&e.createElement("div",{className:"rounded-md bg-gray-200 dark:bg-gray-800 animate-pulse",style:{width:m.width||300,height:m.height||200,maxHeight:300}}),e.createElement("img",{ref:p,src:t,alt:a,onError:()=>{d(!1),l(!0)},onLoad:()=>{if(p.current){const{naturalWidth:e,naturalHeight:t}=p.current,a=300,r=e/t,n=Math.min(a,t);g({width:n*r,height:n})}d(!1)},className:"max-h-[300px] w-auto object-contain cursor-zoom-in hover:opacity-90 transition-opacity "+(c?"opacity-0 absolute":"opacity-100 relative")}),!c&&e.createElement("div",{className:"absolute bottom-2 right-2 opacity-0 group-hover:opacity-100 transition-opacity"},e.createElement("div",{className:"bg-black/50 text-white p-1.5 rounded-lg"},e.createElement(N,{size:16}))))),a&&!c&&e.createElement("div",{className:"relative mt-1"},e.createElement("figcaption",{className:"text-sm text-gray-600 dark:text-gray-400 text-center group cursor-default",onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1)},e.createElement("div",{className:"line-clamp-2 hover:text-gray-700 dark:hover:text-gray-300"},a)),s&&e.createElement("div",{className:"absolute bottom-full left-0 right-0 mb-1 p-2 bg-white dark:bg-gray-800 rounded-lg shadow-lg border border-gray-200 dark:border-gray-700 text-sm text-gray-600 dark:text-gray-400 z-10"},a)),e.createElement(u,null,r&&e.createElement(e.Fragment,null,e.createElement(h.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 bg-black/80 z-50",onClick:f}),e.createElement(h.div,{initial:{scale:.5,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.5,opacity:0},className:"fixed inset-0 z-50 flex flex-col items-center justify-center cursor-zoom-out gap-4 p-4 sm:p-8",onClick:f},e.createElement("div",{className:"max-w-[95vw] sm:max-w-[90vw] max-h-[80vh]"},e.createElement("img",{src:t,alt:a,className:"w-full h-full object-contain"})),a&&e.createElement("div",{className:"max-w-[95vw] sm:max-w-[90vw] text-white text-center text-sm"},a)))))},_e=a((({message:e,isStreaming:a})=>{const[n,o]=r(e.content);s((()=>{var t;const a=de(e.content);a.uncertain&&a.language&&(null===(t=e.uncertaintyFallbackText)||void 0===t?void 0:t[a.language])?o(e.uncertaintyFallbackText[a.language]):o(e.content)}),[e.content,e.uncertaintyFallbackText,a]);const i=n.replace(/^\n+|(\n+|\\)+$/g,"");return t.createElement(Pe,{className:"dark:prose-invert prose flex-1",remarkPlugins:[Z],rehypePlugins:[_],components:{code:e=>{var{inline:a,className:r,children:n}=e,s=oe(e,["inline","className","children"]);const o=/language-(\w+)/.exec(r||""),i=o&&o[1];return a||"mermaid"!==i&&"mermaidjs"!==i?!a&&i?t.createElement(Ie,Object.assign({key:Math.random(),language:i,value:String(n).replace(/\n$/,"")},s)):t.createElement("code",Object.assign({className:`text-red-400 bg-slate-200 border-slate-300 border rounded p-0.5 ${r}`.trim()},s),n):t.createElement(qe,{content:String(n).replace(/\n$/,"")})},marker:({children:e})=>t.createElement("div",{className:"my-2"},t.createElement("span",{className:"highlight"},e)),table:({children:e})=>t.createElement("table",{className:"border-collapse border border-black px-3 py-1 dark:border-white"},e),th:({children:e})=>t.createElement("th",{className:"break-words border border-black bg-gray-500 px-3 py-1 text-white dark:border-white"},e),td:({children:e})=>t.createElement("td",{className:"break-words border border-black px-3 py-1 dark:border-white"},e),a(e){var{children:a}=e,r=oe(e,["children"]);if(r.href){const e=Qe({attrs:{href:r.href}});if(t.isValidElement(e))return e}return t.createElement("a",Object.assign({className:"link text-link",target:"_blank",rel:"noopener noreferrer"},r),a)},pre:({children:e})=>t.createElement(t.Fragment,null,e),img({src:e,alt:a}){const r=Qe({attrs:{href:null!=e?e:""}});return t.isValidElement(r)?r:t.createElement(Me,{src:e,alt:a})},li:e=>{var{children:a}=e,r=oe(e,["children"]);return t.createElement("li",Object.assign({},r),a)},ul:({children:e})=>t.createElement("ul",{className:"ml-4 my-4 list-outside space-y-4"},e),ol:({children:e})=>t.createElement("ol",{className:"ml-4 my-4 list-outside space-y-4"},e),strong:e=>{var{children:a}=e,r=oe(e,["children"]);return t.createElement("span",Object.assign({className:"font-semibold"},r),a)},h1:e=>{var{children:a}=e,r=oe(e,["children"]);return t.createElement("h1",Object.assign({className:"text-2xl font-bold"},r),a)},h2:e=>{var{children:a}=e,r=oe(e,["children"]);return t.createElement("h2",Object.assign({className:"text-xl font-bold"},r),a)},h3:e=>{var{children:a}=e,r=oe(e,["children"]);return t.createElement("h3",Object.assign({className:"text-lg font-bold"},r),a)},h4:e=>{var{children:a}=e,r=oe(e,["children"]);return t.createElement("h4",Object.assign({className:"text-base font-bold"},r),a)},h5:e=>{var{children:a}=e,r=oe(e,["children"]);return t.createElement("h5",Object.assign({className:"text-base font-semibold"},r),a)},h6:e=>{var{children:a}=e,r=oe(e,["children"]);return t.createElement("h6",Object.assign({className:"text-sm font-semibold"},r),a)}}},i)}));function Ze({feedback:e,onFeedback:a,textConfig:n={},disabled:s=!1}){const[o,i]=r(!1),l=e=>{a&&("accept"===e&&(i(!0),setTimeout((()=>i(!1)),2e3)),a(e))};return t.createElement("div",{className:"flex justify-end gap-2","data-name":"Feedback"},t.createElement(me,null,t.createElement(ue,null,t.createElement(he,{asChild:!0},t.createElement("div",{className:"relative"},t.createElement(u,null,o&&t.createElement(t.Fragment,null,Array.from({length:8}).map(((e,a)=>t.createElement(h.div,{key:a,className:"absolute top-1/2 left-1/2 origin-center",initial:{opacity:0,scale:.3,x:0,y:0},animate:{opacity:[0,1,1,0],scale:[.3,1,1,0],x:[0,30*Math.cos(a*(Math.PI/4))],y:[0,30*Math.sin(a*(Math.PI/4))],rotate:[0,a%2?45:-45]},transition:{duration:1.2,ease:[.4,0,.2,1],times:[0,.3,.7,1],delay:.1*a}},t.createElement(k,{className:"size-4 text-rose-500",style:{filter:"drop-shadow(0 0 3px rgba(255, 75, 110, 0.8))",strokeWidth:2.5}})))),t.createElement(h.div,{className:"absolute inset-0 rounded-full bg-primary",initial:{opacity:0,scale:.8},animate:{opacity:[0,.15,.15,0],scale:[.8,1.8,1.8,2]},transition:{duration:1.2,ease:"easeOut",times:[0,.3,.7,1]}}))),t.createElement(Ne,{variant:"ghost",size:"sm",className:"rounded-md size-8 flex items-center justify-center transition-all duration-200 transform hover:scale-105 active:scale-95 "+("accept"===e?"bg-green-100 text-green-600 hover:bg-green-200":"text-dark-500"),onClick:()=>l("accept"),disabled:s},t.createElement(h.div,{initial:{scale:1},animate:{scale:"accept"===e?[1,1.2,1]:1},transition:{duration:.3}},t.createElement(C,{weight:"bold"}))))),t.createElement(ge,null,t.createElement("p",null,n.positiveAnswerText||"Helpful")))),t.createElement(me,null,t.createElement(ue,null,t.createElement(he,{asChild:!0},t.createElement(Ne,{variant:"ghost",size:"sm",className:"rounded-md size-8 flex items-center justify-center transition-all duration-200 transform hover:scale-105 active:scale-95 "+("reject"===e?"bg-red-100 text-red-600 hover:bg-red-200":"text-dark-500"),onClick:()=>l("reject"),disabled:s},t.createElement(h.div,{initial:{scale:1},animate:{scale:"reject"===e?[1,1.2,1]:1},transition:{duration:.3}},t.createElement(F,{weight:"bold"})))),t.createElement(ge,null,t.createElement("p",null,n.negativeAnswerText||"Not helpful")))))}_e.displayName="FormattedMessage";const We=o(void 0),Ve=({children:e})=>{const[a,n]=r(""),[s,o]=r(""),[l,c]=r(!1),[d,m]=r(!1),[u,h]=r([]),[g,p]=r(0),[f,b]=r(""),[y,v]=r(!1),[E,x]=r(""),w=i((()=>({query:a,setQuery:n,followUpQuery:s,setFollowUpQuery:o,isSearching:l,setIsSearching:c,showResults:d,setShowResults:m,answers:u,setAnswers:h,activeAnswerIndex:g,setActiveAnswerIndex:p,conversationId:f,setConversationId:b,isLoadingConversation:y,setIsLoadingConversation:v,loadError:E,setLoadError:x})),[a,s,l,d,u,g,f,y,E]);return t.createElement(We.Provider,{value:w},e)},He=()=>{const e=l(We);if(!e)throw new Error("useChatSearch must be used within a ChatSearchProvider");return e},Ke=()=>{const{showResults:e,answers:t}=He(),a=Boolean(e||t.length>0);return console.log({isDirty:a,answersLength:t.length,showResults:e}),a},Ge={maxRetries:3,baseDelay:1e3,shouldRetry:e=>{if(e instanceof TypeError)return!0;const t=e;return!!t.status&&t.status>=500}};let Ye=Object.assign({},Ge),Je=Object.assign({},{emptyResponse:"I apologize, but I couldn't generate an answer at this time. Please try again.",errorResponse:"I encountered an error while processing your request. Please try again."});function Xe(e){return ie(this,void 0,void 0,(function*(){return new Promise((t=>setTimeout(t,e)))}))}function et(e,t={}){return ie(this,void 0,void 0,(function*(){const{retry:a={},headers:r={},body:n,isStream:s=!1,fallback:o={}}=t,i=oe(t,["retry","headers","body","isStream","fallback"]),l=Object.assign(Object.assign({},Ye),a),c=Object.assign(Object.assign({},Je),o);let d=1;for(;;)try{const t=yield fetch(e,Object.assign(Object.assign({},i),{headers:Object.assign({"Content-Type":"application/json"},r),body:n?JSON.stringify(n):void 0}));if(t.ok){if(s){if(!t.ok)throw new Error("Failed to fetch answer");return t}const e=yield t.json();if(!e||"object"==typeof e&&0===Object.keys(e).length){const e=new Error(c.emptyResponse);throw e.name="EmptyResponseError",e}return e}const a=new Error(c.errorResponse);throw a.status=t.status,a.data=yield t.json().catch((()=>{})),a}catch(e){const t=yield Promise.resolve(l.shouldRetry(e,d));if(d>=l.maxRetries||!t){if(e instanceof Error&&"EmptyResponseError"===e.name)return{message:e.message};throw e}console.warn(`Request failed, attempt ${d} of ${l.maxRetries}. Retrying...`);const a=.3*Math.random()+.85;yield Xe(l.baseDelay*Math.pow(2,d-1)*a),d++}}))}const tt={maxRetries:3,baseDelay:300,shouldRetry:e=>{if(e instanceof TypeError)return!0;const t=e;return!!t.status&&(t.status>=500||429===t.status)}},at={maxRetries:3,baseDelay:500,shouldRetry:e=>{if(e instanceof TypeError)return!0;const t=e;return!!t.status&&t.status>=500}};function rt({endpoint:e,query:t,collectionId:a,headers:r,conversationId:n}){var s;return ie(this,void 0,void 0,(function*(){const o=yield et(e,{method:"POST",headers:r,retry:tt,body:Object.assign(Object.assign({query:t,limit:5},a&&"all"!==a&&{collectionId:a}),n&&{conversationId:n})});return{results:null==o?void 0:o.data,searchQueryId:null===(s=null==o?void 0:o.searchQuery)||void 0===s?void 0:s.id}}))}function nt({endpoint:e,searchQueryId:t,headers:a,conversationId:r}){return ie(this,void 0,void 0,(function*(){return et(e,{method:"POST",headers:a,retry:at,isStream:!0,fallback:{emptyResponse:"I apologize, but I couldn't generate an answer for your query. Please try rephrasing your question.",errorResponse:"I encountered an issue while generating the answer. Please try again in a moment."},body:Object.assign({searchQueryId:t},r&&{conversationId:r})})}))}function st(){return`bf-conversation-${Date.now()}-${"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))}`}const ot=({loadConversationEndpoint:e,headers:t,mergedTextConfig:a})=>{const{setIsLoadingConversation:r,setShowResults:n,setAnswers:o,setConversationId:i,setLoadError:l}=He(),d=c((s=>{e?(r(!0),n(!0),function({endpoint:e,conversationId:t,headers:a}){return ie(this,void 0,void 0,(function*(){return{data:(yield et(e,{method:"POST",headers:a,body:{conversationId:t}})).data.map((e=>Object.assign(Object.assign({},e),{feedback:e.feedback?"positive"===e.feedback?"accept":"reject":void 0})))}}))}({endpoint:e,conversationId:s,headers:t}).then((e=>{o(e.data),i(s),n(!0)})).catch((e=>{console.error("Error loading conversation:",e),o([]),i(st()),n(!1);const t=new URL(window.location.href);t.pathname="/",t.searchParams.delete("conversation"),window.history.replaceState({},"",t.toString()),l(a.errorText||"An error occurred")})).finally((()=>{r(!1)}))):i(st())}),[e,t,a,o,i,r,n]);return s((()=>{const e=new URLSearchParams(window.location.search).get("conversation");if(e)d(e);else{const e=st();i(e)}}),[e]),{loadConversationById:d}},it=e=>{var{loading:a,className:n}=e,o=oe(e,["loading","className"]);const[i,l]=r("rgb(var(--bfc-border))"),c=(()=>{const[e,t]=r((()=>document.documentElement.classList.contains("dark")));return s((()=>{const e=new MutationObserver((()=>{t(document.documentElement.classList.contains("dark"))}));return e.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>e.disconnect()}),[]),e})();return s((()=>{const e=getComputedStyle(document.documentElement).getPropertyValue("--bfc-primary").trim().match(/^(\d+)\s+(\d+)\s+(\d+)$/);if(e){const t=function(e){const[t,a,r]=e.split(",").map(Number),[n,s,o]=[t,a,r].map((e=>(e/=255)<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)));return.2126*n+.7152*s+.0722*o}(e.slice(1).join(","));l(t<=.5?c?"rgb(var(--bfc-ring))":"var(--star-color)":c?"var(--star-color)":"rgb(var(--bfc-border))")}}),[]),t.createElement("svg",Object.assign({width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",className:ce("min-w-5",n),style:{"--star-color":"rgb(var(--bfc-primary))"}},o),t.createElement("path",{className:a?"animate-spin":"",d:"M7.54672 16.0031L2.66234 14.2031C2.51881 14.1498 2.39502 14.0539 2.3076 13.9282C2.22019 13.8025 2.17333 13.6531 2.17333 13.5C2.17333 13.3469 2.22019 13.1975 2.3076 13.0718C2.39502 12.9461 2.51881 12.8501 2.66234 12.7969L7.54672 10.9969C7.64981 10.9589 7.74344 10.899 7.82113 10.8213C7.89882 10.7436 7.95873 10.65 7.99672 10.5469L9.79672 5.66249C9.84999 5.51896 9.94592 5.39517 10.0716 5.30775C10.1973 5.22033 10.3467 5.17348 10.4998 5.17348C10.6529 5.17348 10.8024 5.22033 10.9281 5.30775C11.0538 5.39517 11.1497 5.51896 11.203 5.66249L13.003 10.5469C13.041 10.65 13.1009 10.7436 13.1786 10.8213C13.2562 10.899 13.3499 10.9589 13.453 10.9969L18.3373 12.7969C18.4809 12.8501 18.6047 12.9461 18.6921 13.0718C18.7795 13.1975 18.8264 13.3469 18.8264 13.5C18.8264 13.6531 18.7795 13.8025 18.6921 13.9282C18.6047 14.0539 18.4809 14.1498 18.3373 14.2031L13.453 16.0031C13.3499 16.0411 13.2562 16.101 13.1786 16.1787C13.1009 16.2564 13.041 16.35 13.003 16.4531L11.203 21.3375C11.1497 21.481 11.0538 21.6048 10.9281 21.6922C10.8024 21.7796 10.6529 21.8265 10.4998 21.8265C10.3467 21.8265 10.1973 21.7796 10.0716 21.6922C9.94592 21.6048 9.84999 21.481 9.79672 21.3375L7.99672 16.4531C7.95873 16.35 7.89882 16.2564 7.82113 16.1787C7.74344 16.101 7.64981 16.0411 7.54672 16.0031Z",stroke:i,strokeWidth:"1.5",strokeLinecap:"round",fill:"var(--star-color)",strokeLinejoin:"round"}),t.createElement("path",{d:"M18.7497 3.75L14.2497 3.75",stroke:"var(--star-color)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),t.createElement("path",{d:"M16.4999 6V1.5",stroke:"var(--star-color)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),t.createElement("path",{d:"M22.4999 8.25001H19.4999",stroke:"var(--star-color)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),t.createElement("path",{d:"M20.9998 9.75002V6.75002",stroke:"var(--star-color)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}))};function lt({answer:e,question:a,searchResults:n,isStreaming:s=!1,searchQueryId:o,feedback:i,onFeedback:l,disableFeedback:c=!1,textConfig:d={},isLoading:m=!1,isSearchLoading:u=!1}){const[h,g]=r(!1),[p,f]=r(!1),b=()=>ie(this,void 0,void 0,(function*(){try{yield navigator.clipboard.writeText(e),g(!0),setTimeout((()=>g(!1)),2e3)}catch(e){console.error("Failed to copy text:",e)}}));return t.createElement("div",{className:"rounded-lg relative mx-auto overflow-hidden bg-card border border-primary mb-4","data-name":"SearchResults"},t.createElement("div",{className:"p-4"},t.createElement("div",{className:"flex items-start justify-between gap-2 mb-2 pb-0"},t.createElement("div",{className:"flex gap-1"},t.createElement(it,{loading:m||s,className:"mt-1"}),t.createElement("h2",{className:"leading-normal font-semibold m-0 text-foreground self-center"},a)),e&&t.createElement(me,null,t.createElement(ue,null,t.createElement(he,{asChild:!0},t.createElement(Ne,{variant:"ghost",size:"icon",onClick:()=>{b()},className:"-mt-1 flex-shrink-0"},h?t.createElement(j,{className:"text-feedback-positive",weight:"bold"}):t.createElement(z,{className:"text-secondary-foreground",weight:"bold"}))),t.createElement(ge,null,t.createElement("p",null,h?"Copied!":"Copy"))))),m?t.createElement("div",{className:"space-y-4"},t.createElement("div",{className:"flex items-center gap-2"},t.createElement("div",{className:"size-5 rounded-full bg-primary/30"}),t.createElement("div",{className:"flex items-center gap-2 text-sm text-foreground"},u?d.loadingSearchText:d.loadingAnswerText)),t.createElement("div",{className:"space-y-3"},t.createElement("div",{className:"h-4 rounded w-3/4 shimmer"}),t.createElement("div",{className:"h-4 rounded w-full shimmer"}),t.createElement("div",{className:"h-4 rounded w-5/6 shimmer"})),t.createElement("div",{className:"mt-6 space-y-3"},t.createElement("div",{className:"h-4 rounded w-1/4 shimmer"}),t.createElement("div",{className:"flex gap-2"},t.createElement("div",{className:"h-8 rounded w-32 shimmer"}),t.createElement("div",{className:"h-8 rounded w-40 shimmer"})))):t.createElement("div",{className:"prose prose-sm max-w-none text-foreground"},t.createElement(_e,{message:Object.assign({content:e||"Sorry, there was an error generating the answer. Please try again."},e&&{uncertaintyFallbackText:d.uncertaintyFallbackText}),isStreaming:s})),e&&!s&&!c&&t.createElement("div",{className:"mt-2"},t.createElement(Ze,{feedback:i,onFeedback:e=>{l&&o&&l(e)},textConfig:d,disabled:c}))),n&&n.length>0&&t.createElement("div",{className:"overflow-hidden bg-card border-dashed border-0 border-t-2"},t.createElement(Ce,{open:p,onOpenChange:f,className:"w-full"},t.createElement("div",null,t.createElement(Fe,{asChild:!0},t.createElement(Ne,{variant:"secondary",className:"w-full justify-between h-11","data-name":"RelatedSources"},t.createElement("div",{className:"flex items-center gap-2"},t.createElement("span",{className:"font-medium truncate text-base"},"Sources")),t.createElement(S,{className:"size-4 flex-shrink-0 transition-transform duration-200 text-secondary-foreground "+(p?"rotate-180":""),weight:"bold"}),t.createElement("span",{className:"sr-only"},"Toggle")))),t.createElement(je,{className:"divide-y divide-gray-200 dark:divide-border overflow-hidden CollapsibleContent"},n.map((e=>t.createElement("a",{key:e.id,href:e.url,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 p-3 transition-colors duration-200 hover:bg-accent bg-card text-foreground"},t.createElement("span",{className:"flex-grow truncate"},e.title),t.createElement(I,{className:"size-4 flex-shrink-0 text-secondary-foreground",weight:"bold"}))))))))}function ct({questions:e,onQuestionClick:a}){return e.length?t.createElement(h.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},className:"w-full"},t.createElement("div",{className:"rounded-lg overflow-hidden bg-card border border-border"},t.createElement("div",{className:"p-3 border-b border-b-gray-200"},t.createElement("div",{className:"flex items-center gap-2"},t.createElement(O,{className:"flex-shrink-0 text-secondary-foreground",size:20}),t.createElement("span",{className:"font-medium"},"Follow-up Questions"))),t.createElement("div",{className:"divide-y divide-gray-200"},e.map(((e,r)=>t.createElement(h.button,{key:r,initial:{opacity:0,x:-20},animate:{opacity:1,x:0},transition:{delay:.1*r},onClick:()=>a(e),className:"w-full flex items-center gap-2 p-3 transition-colors duration-200 bg-card hover:bg-gray-50 dark:hover:bg-dark-600 text-left text-foreground "},t.createElement("span",{className:"flex-grow"},e),t.createElement(A,{className:"size-4 flex-shrink-0 text-secondary-foreground",weight:"bold"}))))))):null}function dt({questions:e,activeIndex:a,onNavigate:n,offset:o}){const[i,l]=r(a);s((()=>{l(a)}),[a]);const c=e.length,d=(()=>{const e=[];let t=null;const r=a=>{null!==t&&a-t>1&&e.push("ellipsis"),e.push(a),t=a};r(0);for(let e=Math.max(1,a-2);e<=Math.min(c-2,a+2);e++)r(e);return c>1&&r(c-1),e})();return t.createElement("nav",{"aria-label":"Question timeline navigation",className:"fixed left-4 top-1/2 -translate-y-1/2 z-40 flex flex-col gap-3",style:Object.assign({},o?{left:`${o}px`}:{})},t.createElement(h.div,{className:"flex flex-col items-center space-y-3",role:"list",initial:!1,animate:{y:0},transition:{type:"spring",stiffness:300,damping:30}},t.createElement(u,null,d.map(((r,s)=>{if("ellipsis"===r)return t.createElement(h.div,{key:`ellipsis-${s}`,className:"h-8 flex items-center justify-center","aria-hidden":"true",initial:{opacity:0,y:i>a?-20:20},animate:{opacity:1,y:0},exit:{opacity:0,y:i>a?20:-20},transition:{duration:.2}},t.createElement(L,{className:"size-4 text-foreground"}));const o=r,l=e[o];return t.createElement(h.div,{key:o,className:"relative group isolate",role:"listitem",initial:{opacity:0,y:i>a?-20:20},animate:{opacity:1,y:0},exit:{opacity:0,y:i>a?20:-20},transition:{duration:.2},layout:!0},t.createElement(me,{delayDuration:100},t.createElement(ue,null,t.createElement(he,{asChild:!0},t.createElement("button",{onClick:()=>n(o),onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||n(o)},className:ce("flex items-center justify-center size-8 rounded-full transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 hover:opacity-90 cursor-pointer ring-primary ",o===a?"bg-primary text-primary-foreground":"bg-stone-300 text-zinc-800"),"aria-label":`Navigate to question ${o+1}: ${l}`,"aria-current":o===a?"step":void 0},o+1)),t.createElement(ge,{side:"right",sideOffset:8,className:"max-w-[300px] bg-card text-card-foreground border-foreground/35"},t.createElement("p",{className:"break-words leading-relaxed"},l)))))})))))}function mt({onClick:e}){return t.createElement(Ne,{size:"icon",variant:"secondary",className:"fixed bottom-20 right-4 rounded-full transition-opacity duration-300 border-border shadow-md",onClick:e},t.createElement(R,{className:"size-5"}))}const ut=Y.Root,ht=Y.Trigger,gt=Y.Group,pt=Y.Portal,ft=Y.Sub,bt=Y.RadioGroup,yt=e.forwardRef(((t,a)=>{var{className:r,inset:n,children:s}=t,o=oe(t,["className","inset","children"]);return e.createElement(Y.SubTrigger,Object.assign({ref:a,className:ce("flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm !outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",n&&"pl-8",r)},o),s,e.createElement(J,{className:"ml-auto"}))}));yt.displayName=Y.SubTrigger.displayName;const vt=e.forwardRef(((t,a)=>{var{className:r}=t,n=oe(t,["className"]);return e.createElement(Y.SubContent,Object.assign({ref:a,className:ce("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r)},n))}));vt.displayName=Y.SubContent.displayName;const Et=e.forwardRef(((t,a)=>{var{className:r,sideOffset:n=4}=t,s=oe(t,["className","sideOffset"]);return e.createElement(Y.Portal,null,e.createElement(Y.Content,Object.assign({ref:a,sideOffset:n,className:ce("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r)},s)))}));Et.displayName=Y.Content.displayName;const xt=e.forwardRef(((t,a)=>{var{className:r,inset:n}=t,s=oe(t,["className","inset"]);return e.createElement(Y.Item,Object.assign({ref:a,className:ce("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm !outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-5 [&>svg]:shrink-0",n&&"pl-8",r)},s))}));xt.displayName=Y.Item.displayName;const wt=e.forwardRef(((t,a)=>{var{className:r,children:n,checked:s}=t,o=oe(t,["className","children","checked"]);return e.createElement(Y.CheckboxItem,Object.assign({ref:a,className:ce("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm !outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",r),checked:s},o),e.createElement("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center"},e.createElement(Y.ItemIndicator,null,e.createElement(X,{className:"h-4 w-4"}))),n)}));wt.displayName=Y.CheckboxItem.displayName;const Nt=e.forwardRef(((t,a)=>{var{className:r,children:n}=t,s=oe(t,["className","children"]);return e.createElement(Y.RadioItem,Object.assign({ref:a,className:ce("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm !outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",r)},s),e.createElement("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center"},e.createElement(Y.ItemIndicator,null,e.createElement(ee,{className:"h-2 w-2 fill-current"}))),n)}));Nt.displayName=Y.RadioItem.displayName;const kt=e.forwardRef(((t,a)=>{var{className:r,inset:n}=t,s=oe(t,["className","inset"]);return e.createElement(Y.Label,Object.assign({ref:a,className:ce("px-2 py-1.5 text-sm font-semibold",n&&"pl-8",r)},s))}));kt.displayName=Y.Label.displayName;const Ct=e.forwardRef(((t,a)=>{var{className:r}=t,n=oe(t,["className"]);return e.createElement(Y.Separator,Object.assign({ref:a,className:ce("-mx-1 my-1 h-px bg-muted",r)},n))}));Ct.displayName=Y.Separator.displayName;const Ft=t=>{var{className:a}=t,r=oe(t,["className"]);return e.createElement("span",Object.assign({className:ce("ml-auto text-xs tracking-widest opacity-60",a)},r))};Ft.displayName="DropdownMenuShortcut";const jt=t.forwardRef((({query:e,onQueryChange:a,onSearch:o,textConfig:i,collections:l=[],currentCollectionId:c,onCollectionChange:d,disableImageAttachment:m=!1,attachedImages:g=[],onImageUpload:p,onRemoveImage:f,isSearching:b=!1,autocompleteSuggestions:y=[],onAutocompleteSuggestionSelect:v},x)=>{var w;const N=n(null),[k,C]=r(!1);s((()=>{const e=e=>{e.target.closest(".suggestions-dropdown")||C(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)}),[]),s((()=>{e.trim()&&C(!0)}),[e]);const F=k&&e.trim()&&y.length>0,j={hidden:{opacity:0,x:-4},visible:{opacity:1,x:0,transition:{duration:.2}}};return t.createElement("div",{className:"relative w-full","data-name":"PrimarySearch"},t.createElement("div",{className:ce("w-full overflow-hidden bg-background border border-border transition-all",F?"rounded-t-md":"rounded-md")},t.createElement("div",{className:"p-3 flex items-center bg-card"},t.createElement(T,{className:"h-5 w-5 mr-2 text-muted-foreground"}),t.createElement("textarea",{ref:x,value:e,onChange:e=>{var t;a(e.target.value),(t=e.target).style.height="auto",t.style.height=`${t.scrollHeight}px`},onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),o())},onFocus:()=>C(!0),placeholder:i.searchPlaceholder,className:"\n w-full\n resize-none\n !outline-none\n text-base\n py-1\n font-light\n min-h-9\n overflow-hidden\n border-none\n bg-transparent\n shadow-none\n placeholder:text-gray-400\n text-dark-900\n dark:text-neutral-200\n !ring-0\n ",rows:1}),b&&t.createElement("div",{className:"flex items-center justify-center ml-2"},t.createElement("div",{className:"animate-spin rounded-full size-4 border-2 border-t-transparent border-primary"}))),!m&&g.length>0&&t.createElement("div",{className:"flex gap-2 mt-3 overflow-x-auto pb-1 px-3"},g.map(((e,a)=>t.createElement("div",{key:a,className:"relative group rounded-lg overflow-hidden flex-shrink-0 size-20"},t.createElement("img",{src:e.preview,alt:`Attached ${a+1}`,className:"w-full h-full object-cover"}),t.createElement("button",{onClick:()=>null==f?void 0:f(a),className:"\n absolute\n top-1\n right-1\n rounded-full\n p-1\n opacity-0\n group-hover:opacity-100\n transition-opacity\n duration-200\n hover:bg-black/70\n bg-black/50\n "},t.createElement(D,{className:"size-3 text-white"})))))),!F&&t.createElement("div",{className:"flex items-center justify-between px-3 py-2 border-t border-border"},t.createElement("div",{className:"flex gap-2"},l.length>0&&t.createElement(ut,null,t.createElement(ht,{asChild:!0},t.createElement(Ne,{variant:"ghost",size:"sm",className:"\n transition-all\n duration-200\n rounded-md\n h-8\n flex\n items-center\n gap-1\n hover:bg-opacity-80\n text-foreground\n "},(null===(w=l.find((e=>e.id===c)))||void 0===w?void 0:w.name)||i.allDocumentsText||"All documents",t.createElement(S,{className:"size-4 text-secondary-foreground"}))),t.createElement(Et,{className:"max-w-48"},l.map((e=>t.createElement(xt,{key:e.id,onClick:()=>null==d?void 0:d(e.id)},e.id===c?t.createElement(E,{className:"rounded-full text-primary-500 !size-5",weight:"fill"}):t.createElement(U,{className:"rounded-full !size-5 text-gray-300"}),t.createElement("span",{className:"text-sm truncate"},e.name)))))),!m&&t.createElement(t.Fragment,null,t.createElement("input",{type:"file",ref:N,accept:"image/*",multiple:!0,className:"hidden",onChange:p}),t.createElement(Ne,{variant:"ghost",size:"sm",className:"rounded-md h-8 hover:bg-opacity-80 dark:text-neutral-200",onClick:()=>{var e;return null===(e=N.current)||void 0===e?void 0:e.click()}},t.createElement(B,{className:"size-4 text-secondary-foreground"}),i.attachImageText))),t.createElement("div",{className:"flex items-center"},t.createElement(Ne,{size:"sm",disabled:!e||b,className:"rounded-md size-8 disabled:opacity-50 bg-primary",onClick:o},b?t.createElement("div",{className:"animate-spin rounded-full size-4 border-2 border-t-transparent border-white"}):t.createElement(Q,{className:"text-dark-900",size:16,weight:"bold"}))))),t.createElement(u,{mode:"wait"},F&&t.createElement(h.div,{variants:{hidden:{opacity:0,scale:.95,transformOrigin:"top"},visible:{opacity:1,scale:1,transition:{type:"spring",stiffness:500,damping:30,mass:.5}},exit:{opacity:0,scale:.95,transition:{duration:.15,ease:"easeOut"}}},initial:"hidden",animate:"visible",exit:"exit",className:"\n suggestions-dropdown\n absolute\n left-0\n right-0\n z-50\n overflow-hidden\n bg-card\n border-border\n border-b border-l border-r border-solid rounded-b-md shadow-md -mt-px\n "},t.createElement(h.div,{className:"md:hidden",variants:j},e.trim()&&t.createElement("div",{role:"option","aria-selected":!1,tabIndex:0,className:"\n px-4 py-3\n cursor-pointer\n flex\n items-center\n gap-3\n transition-colors\n duration-200\n hover:bg-gray-50/50\n text-foreground\n bg-gray-100\n border-b border border-border\n dark:bg-slate-500\n dark:border-dark-800/20\n ",onClick:()=>{o(),C(!1)},onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),o(),C(!1))}},t.createElement(T,{className:"size-4 flex-shrink-0 text-secondary-foreground"}),t.createElement("span",{className:"text-[15px]"},e),t.createElement("div",{className:"ml-auto flex items-center"},t.createElement(A,{className:"size-4 text-secondary-foreground"})))),t.createElement(h.div,{variants:{visible:{transition:{staggerChildren:.03,delayChildren:.05}}},initial:"hidden",animate:"visible"},y.map((e=>t.createElement(h.div,{key:e.id,variants:j,role:"option","aria-selected":!1,tabIndex:0,className:"px-4 py-3 cursor-pointer flex items-center gap-3 transition-colors duration-200 hover:bg-gray-200/50 text-foreground",onClick:()=>{null==v||v(e),C(!1)},onKeyDown:t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),null==v||v(e),C(!1))}},t.createElement(T,{className:"size-4 flex-shrink-0 text-secondary-foreground"}),t.createElement("span",{className:"text-[15px]"},e.question),t.createElement("div",{className:"ml-auto flex items-center"},t.createElement(A,{className:"size-4 text-secondary-foreground"})))))))))}));jt.displayName="PrimarySearch";var zt="FollowUpSearchBar-module_followUpSearchBar__DiKdH";const St=e.forwardRef(((t,a)=>{var{className:r}=t,n=oe(t,["className"]);return e.createElement("textarea",Object.assign({className:ce("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",r),ref:a},n))}));function It({followUpQuery:e,setFollowUpQuery:a,isSearching:r,handleFollowUpSearch:s,textConfig:o,offset:i=0}){const l=n(null);t.useEffect((()=>{l.current&&(l.current.style.height="inherit",l.current.style.height=`${l.current.scrollHeight}px`)}),[e]);return t.createElement(h.footer,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5},className:zt,style:{left:`${i}px`}},t.createElement("div",{className:"container flex items-center justify-center p-3"},t.createElement("div",{className:"relative flex w-full items-center gap-2 rounded bg-card px-2 border border-dark-400"},t.createElement("div",{className:"size-6 flex flex-shrink-0 justify-center items-center"},t.createElement(T,{className:"size-5 text-secondary-foreground"})),t.createElement(St,{ref:l,value:e,onChange:e=>a(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),s())},placeholder:o.followUpPlaceholder,className:"min-h-[44px] w-full resize-none border-0 shadow-none bg-transparent px-0 py-2.5 focus:outline-none focus:ring-0 focus-visible:ring-0",rows:1,disabled:r}),t.createElement(Ne,{type:"button",size:"icon",disabled:r||!e.trim(),onClick:s,className:ce("h-8 w-8 shrink-0 rounded",e?"bg-primary text-primary-foreground":"bg-dark-400 dark:bg-muted text-white")},r?t.createElement("div",{className:"animate-spin rounded-full size-4 sm:size-5 border-2 border-dark/40 !border-t-foreground dark:border-dark-500 "}):t.createElement(P,{className:"size-6"})))))}function Ot(e){var{headerText:a,onExpandButtonClick:r,onBackButtonClick:n,className:s}=e,o=oe(e,["headerText","onExpandButtonClick","onBackButtonClick","className"]);const i=Ke();return t.createElement("div",Object.assign({className:ce("w-full max-lg:bg-primary max-lg:text-primary-foreground max-lg:h-14 max-lg:leading-6 px-3 py-4 flex items-center justify-between","lg:justify-center lg:space-y-4 lg:p-0",s)},o),t.createElement(h.h1,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,delay:.3},className:"lg:text-5xl m-0 text-primary-foreground lg:text-foreground flex gap-1 items-center"},i&&t.createElement(Ne,{size:"icon",variant:"ghost",onClick:n,"aria-label":"Go back",className:"lg:hidden"},t.createElement($,null)),t.createElement("span",null,a)),t.createElement("div",{className:"lg:hidden"},t.createElement(Ne,{size:"icon",variant:"ghost",onClick:r,"aria-label":"Expand widget"},t.createElement(q,null))))}St.displayName="Textarea";const At=e.forwardRef(((t,a)=>{var{className:r,children:n}=t,s=oe(t,["className","children"]);return e.createElement(te.Root,Object.assign({className:ce("relative overflow-hidden",r)},s),e.createElement(te.Viewport,{ref:a,className:"h-full w-full rounded-[inherit]"},n),e.createElement(Lt,null),e.createElement(te.Corner,null))}));At.displayName=te.Root.displayName;const Lt=e.forwardRef(((t,a)=>{var{className:r,orientation:n="vertical"}=t,s=oe(t,["className","orientation"]);return e.createElement(te.ScrollAreaScrollbar,Object.assign({ref:a,orientation:n,className:ce("flex touch-none select-none transition-colors","vertical"===n&&"h-full w-2.5 border-l border-l-transparent p-[1px]","horizontal"===n&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",r)},s),e.createElement(te.ScrollAreaThumb,{className:"relative flex-1 rounded-full bg-dark-400"}))}));function Rt({query:e,endpoint:t,collectionId:a,headers:n,conversationId:o,delay:i=300}){const[l,d]=r([]),[m,u]=r(!1),[h,g]=r(),p=function(e,t){const[a,n]=r(e);return s((()=>{const a=setTimeout((()=>{n(e)}),t);return()=>{clearTimeout(a)}}),[e,t]),a}(e,i),f=c((()=>ie(this,void 0,void 0,(function*(){var e;if(p.trim()){u(!0),g(void 0);try{const r=yield function({endpoint:e,query:t,collectionId:a,headers:r,conversationId:n}){return ie(this,void 0,void 0,(function*(){return yield et(e,{method:"POST",headers:r,retry:tt,body:Object.assign(Object.assign({query:t},a&&"all"!==a&&{collectionId:a}),n&&{conversationId:n})})}))}({endpoint:t,query:p,collectionId:a,headers:n,conversationId:o});d(null===(e=null==r?void 0:r.response)||void 0===e?void 0:e.results)}catch(e){console.error("Error fetching autocomplete suggestions:",e),g(e instanceof Error?e.message:"Failed to fetch suggestions"),d([])}finally{u(!1)}}else d([])}))),[p,t,a,n,o]);return s((()=>{f()}),[f]),{suggestions:l,isLoading:m,error:h}}Lt.displayName=te.ScrollAreaScrollbar.displayName;const Tt={headerText:"How can we help you today?",searchPlaceholder:"Ask a question or type a search term here ...",attachImageText:"Attach image",allDocumentsText:"All documents",loadingSearchText:"Searching for relevant content...",loadingAnswerText:"Crafting a response...",errorText:"Sorry, there was an error generating the answer.",followUpPlaceholder:"Ask follow-up",positiveAnswerText:"Helpful",negativeAnswerText:"Not helpful",uncertaintyFallbackText:{en:"Sorry, I can't find a clear answer to your question. Please try rephrasing or check the related sources below.",es:"Lo siento, no puedo encontrar una respuesta clara. Intente reformular la pregunta o consulte las fuentes relacionadas.",fr:"Désolé, je ne trouve pas de réponse claire. Essayez de reformuler ou consultez les sources connexes.",de:"Entschuldigung, ich finde keine klare Antwort. Versuchen Sie es anders zu formulieren oder sehen Sie sich die verwandten Quellen an.",it:"Mi dispiace, non trovo una risposta chiara. Prova a riformulare o consulta le fonti correlate.",pt:"Desculpe, não encontro uma resposta clara. Tente reformular ou consulte as fontes relacionadas.",nl:"Sorry, ik kan geen duidelijk antwoord vinden. Probeer het anders te formuleren of bekijk de gerelateerde bronnen.",pl:"Przepraszam, nie znajduję jasnej odpowiedzi. Spróbuj przeformułować pytanie lub sprawdź powiązane źródła.",ru:"Извините, я не могу найти четкого ответа. Попробуйте переформулировать или ознакомьтесь со связанными источниками.",ja:"申し訳ありませんが、明確な回答が見つかりません。質問の言い換えや、関連ソースをご確認ください。",ko:"죄송합니다. 명확한 답변을 찾을 수 없습니다. 질문을 다시 작성하거나 관련 소스를 확인해 주세요.",zh:"抱歉,找不到明确的答案。请尝试重新表述或查看相关来源。","zh-TW":"抱歉,找不到明確的答案。請嘗試重新表述或查看相關來源。"}},Dt=d((({suggestions:e=[],collections:a=[],selectedCollectionId:o,onCollectionChange:i,searchEndpoint:l,answerEndpoint:d,feedbackEndpoint:g,loadConversationEndpoint:p,autocompleteEndpoint:f,disableFollowUpQuestions:b=!1,disableImageAttachment:y=!1,disableFeedback:v=!1,siblingNode:E,offset:x=0,headers:w,textConfig:N={},followUpQuestionsEndpoint:k,searchPath:C,className:F,onExpandButtonClick:j},z)=>{const{query:S,setQuery:I,followUpQuery:O,setFollowUpQuery:A,isSearching:L,setIsSearching:R,showResults:T,setShowResults:D,answers:U,setAnswers:B,activeAnswerIndex:Q,setActiveAnswerIndex:P,conversationId:$,setConversationId:q,isLoadingConversation:M}=He(),_=Object.assign(Object.assign({},Tt),N),[Z,W]=r(!1),[V,H]=r([]),[K,Y]=r(o),[J,X]=r(!0),ee=n(null),te=n([]),ae=n(null),re=n(null),ne=n(null),{suggestions:se}=Rt({query:S,endpoint:f||"",collectionId:K,headers:w,conversationId:$,delay:300}),{loadConversationById:oe}=ot({loadConversationEndpoint:p,headers:w,mergedTextConfig:_}),{updateUrlWithConversationId:me,removeConversationIdFromUrl:ue}=(e=>{const{conversationId:t,answers:a}=He(),r=c((t=>{const a=new URL(window.location.href);e&&(a.pathname=e),a.searchParams.set("conversation",t),window.history.replaceState({},"",a.toString())}),[]),n=c((()=>{const e=new URL(window.location.href);e.searchParams.delete("conversation"),window.history.replaceState({},"",e.toString())}),[]);return s((()=>{t&&a.length>0&&r(t)}),[t,a.length]),{updateUrlWithConversationId:r,removeConversationIdFromUrl:n}})(C),{addNewAnswer:he,updateLastAnswer:ge}=(()=>{const{setAnswers:e}=He();return{addNewAnswer:c((t=>{e(G((e=>{e.push({question:t,answer:"",isLoading:!0,isSearchLoading:!0,searchResults:[],searchQueryId:void 0,isStreaming:!1})})))}),[e]),updateLastAnswer:c((t=>{e(G((e=>{var a;const r=e[e.length-1];if(r){const e=r.searchResults||[];Object.assign(r,t,{searchResults:null!==(a=t.searchResults)&&void 0!==a?a:e})}})))}),[e])}})(),{scrollToLastAnswer:pe,scrollToAnswer:fe}=((e,t)=>({scrollToLastAnswer:()=>{requestAnimationFrame((()=>{var a;const r=null===(a=e.current)||void 0===a?void 0:a[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:a=>{requestAnimationFrame((()=>{var r;const n=null===(r=e.current)||void 0===r?void 0:r[a],s=t.current;if(n&&s){const e=n.getBoundingClientRect(),t=s.getBoundingClientRect(),a=s.scrollTop+(e.top-t.top)-80;s.scrollTo({top:a,behavior:"smooth"})}}))}}))(te,ae),{subscribeToStateChanges:be}=(()=>{const e=n([]),{showResults:t,answers:a,isLoadingConversation:r,loadError:o}=He();return s((()=>{const n={showResults:t,answers:a,isLoading:r,error:o};e.current.forEach((e=>e(n)))}),[t,a,r,o]),{subscribeToStateChanges:n=>(e.current.push(n),n({showResults:t,answers:a,isLoading:r,error:o}),()=>{e.current=e.current.filter((e=>e!==n))})}})(),ye=()=>ie(void 0,void 0,void 0,(function*(){ge({isStreaming:!1,isLoading:!1});const e=U[U.length-1];if(k&&!b&&(null==e?void 0:e.searchQueryId))try{const t=yield function({endpoint:e,searchQueryId:t,headers:a,conversationId:r}){return ie(this,void 0,void 0,(function*(){return(yield et(e,{method:"POST",headers:a,body:Object.assign({searchQueryId:t},r&&{conversationId:r})})).questions}))}({endpoint:k,searchQueryId:e.searchQueryId,headers:w,conversationId:$});ge({followUpQuestions:t})}catch(e){console.error("Error fetching follow-up questions:",e)}})),ve=e=>ie(void 0,void 0,void 0,(function*(){var t,a;const r=null===(t=e.body)||void 0===t?void 0:t.getReader();if(!r)return;ge({isLoading:!1,isStreaming:!0});let n="";try{let e,t;for(;({done:e,value:t}=yield r.read()),!e;){n+=(new TextDecoder).decode(t);const{uncertain:e,language:r}=de(n);ge({answer:n,isLoading:!1,isStreaming:!0,isUncertain:e,uncertaintyLanguage:r,uncertaintyFallbackText:e&&r&&(null===(a=_.uncertaintyFallbackText)||void 0===a?void 0:a[r])?_.uncertaintyFallbackText[r]:void 0})}}catch(e){console.error("Error streaming answer:",e)}finally{yield ye(),r.releaseLock()}})),Ee=(e=S.trim())=>ie(void 0,void 0,void 0,(function*(){if(e){R(!0),D(!0);const t=$||st();$||q(t);const a=new URL(window.location.href);(C&&a.pathname!==C||a.searchParams.get("conversation")!==t)&&me(t);const r={question:e,answer:"",isLoading:!0,isSearchLoading:!0,searchResults:[],searchQueryId:void 0,isStreaming:!1};B((e=>[...e,r]));const n=U.length;P(n),pe(),yield Promise.resolve();try{const a=yield rt({endpoint:l,query:e,collectionId:K,headers:w,conversationId:t});B((e=>{const t=[...e];return t[t.length-1]&&(t[t.length-1]=Object.assign(Object.assign({},t[t.length-1]),{searchResults:a.results,searchQueryId:a.searchQueryId,isSearchLoading:!1})),t}));const r=yield nt({endpoint:d,searchQueryId:a.searchQueryId,headers:w,conversationId:t});yield ve(r)}catch(e){console.error("Error generating answer:",e),B((e=>{const t=[...e];return t[t.length-1]&&(t[t.length-1]=Object.assign(Object.assign({},t[t.length-1]),{answer:_.errorText||"An error occurred",isLoading:!1,isSearchLoading:!1,isStreaming:!1})),t}))}finally{R(!1)}}})),xe=e=>{I(""),A(""),D(!1),B([]),P(0),H([]);const t=st();q(t),ue(),ee.current&&(ee.current.style.height="auto"),e&&(I(e),Ee(e))};m(z,(()=>({createNewThread:xe,showFollowUpThread:e=>{X(e)},subscribeToStateChanges:be}))),s((()=>{Y(o)}),[o]);const we=(e,t,a)=>ie(void 0,void 0,void 0,(function*(){if(g){B((t=>{const r=[...t];return r[a]&&(r[a]=Object.assign(Object.assign({},r[a]),{feedback:e})),r}));try{yield function({endpoint:e,searchQueryId:t,response:a,headers:r,conversationId:n}){return ie(this,void 0,void 0,(function*(){yield et(e,{method:"POST",headers:r,body:Object.assign({searchQueryId:t,response:a},n&&{conversationId:n})})}))}({endpoint:g,searchQueryId:t,response:e,headers:w,conversationId:$})}catch(e){console.error("Error sending feedback:",e),B((e=>{const t=[...e];return t[a]&&(t[a]=Object.assign(Object.assign({},t[a]),{feedback:void 0})),t}))}}})),Ne=e=>{if(e.conversationId)oe(e.conversationId);else{if(D(!0),R(!0),!$){const e=st();q(e)}he(e.question),ie(void 0,void 0,void 0,(function*(){try{const t=yield rt({endpoint:l,query:e.question,collectionId:K,headers:w,conversationId:$}),a=t.results;ge({searchResults:a,searchQueryId:t.searchQueryId,isSearchLoading:!1});const r=yield nt({endpoint:d,searchQueryId:t.searchQueryId,headers:w,conversationId:$});yield ve(r)}catch(e){console.error("Error generating answer:",e),ge({answer:_.errorText||"An error occurred",isLoading:!1,isSearchLoading:!1})}finally{R(!1),pe()}}))}};s((()=>{const e=()=>{const e=window.innerHeight+window.pageYOffset>=document.documentElement.scrollHeight-100;W(!e)};return window.addEventListener("scroll",e),()=>window.removeEventListener("scroll",e)}),[]),s((()=>()=>{V.forEach((e=>URL.revokeObjectURL(e.preview)))}),[V]);s((()=>{const e=()=>{new URLSearchParams(window.location.search).get("conversation")||(I(""),A(""),D(!1),B([]),P(0),H([]),ee.current&&(ee.current.style.height="auto"))};return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)}),[]);const Ce=e=>{Ee(e)};return t.createElement("div",{className:ce("w-full relative h-dvh",F),"data-name":"ChatSearch"},t.createElement(Ot,{"data-name":"Header",headerText:_.headerText,onExpandButtonClick:()=>j,onBackButtonClick:()=>{xe()},className:"lg:mb-4"}),t.createElement(At,{className:le,ref:ae},t.createElement(u,null,M?t.createElement(h.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"},t.createElement("div",{className:"flex flex-col items-center gap-4"},t.createElement("div",{className:"animate-spin rounded-full size-8 border-2 border-t-transparent border-primary"}),t.createElement("p",{className:"text-sm text-secondary-foreground"},"Loading conversation..."))):T?t.createElement(h.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-4"},U.map(((e,a)=>t.createElement(h.div,{key:a,ref:e=>te.current[a]=e,initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,delay:.1*a}},t.createElement(lt,{answer:e.answer,question:e.question,searchResults:e.searchResults,isStreaming:e.isStreaming,searchQueryId:e.searchQueryId,feedback:e.feedback,onFeedback:t=>{we(t,e.searchQueryId,a)},disableFeedback:v,textConfig:_,isLoading:e.isLoading,isSearchLoading:e.isSearchLoading}),a===U.length-1&&!b&&e.followUpQuestions&&!e.isStreaming&&t.createElement("div",{className:"mt-4"},t.createElement(ct,{questions:e.followUpQuestions,onQuestionClick:Ce})))))):t.createElement(h.div,{key:"search",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5},className:"w-full"},t.createElement("div",{className:"max-lg:px-3 pb-4 max-lg:bg-primary"},t.createElement(h.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,delay:.4}},t.createElement(jt,{ref:ne,query:S,onQueryChange:e=>{var t;I(e),ee.current&&((t=ee.current).style.height="auto",t.style.height=`${t.scrollHeight}px`)},onSearch:()=>{Ee()},textConfig:_,collections:a,currentCollectionId:K,onCollectionChange:e=>{Y(e),null==i||i(e)},disableImageAttachment:y,attachedImages:V,onImageUpload:e=>{const t=e.target.files;if(t){const e=Array.from(t).map((e=>({file:e,preview:URL.createObjectURL(e)})));H((t=>[...t,...e]))}re.current&&(re.current.value="")},onRemoveImage:e=>{H((t=>(URL.revokeObjectURL(t[e].preview),t.filter(((t,a)=>a!==e)))))},isSearching:L,autocompleteSuggestions:se,onAutocompleteSuggestionSelect:Ne}))),t.createElement(ke,{suggestions:e,onQuestionClick:Ne,title:_.suggestionsTitle}),E)),T&&U.length>1&&t.createElement("div",{className:"hidden lg:block"},t.createElement(dt,{questions:U.map((e=>e.question)),activeIndex:Q,onNavigate:e=>{P(e),fe(e)},offset:x}))),T&&J&&t.createElement(It,{followUpQuery:O,setFollowUpQuery:A,isSearching:L,handleFollowUpSearch:()=>{ie(void 0,void 0,void 0,(function*(){if(O.trim()){const e=O;I(e),A(""),yield Ee(e)}}))},textConfig:_,offset:x}),Z&&T&&t.createElement(mt,{onClick:pe}))}));Dt.displayName="ChatSearch";const Ut=d(((e,a)=>t.createElement(Ve,null,t.createElement(Dt,Object.assign({},e,{ref:a}))))),Bt=e.forwardRef(((t,a)=>{var{className:r}=t,n=oe(t,["className"]);return e.createElement(ae.Root,Object.assign({className:ce("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:!outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",r)},n,{ref:a}),e.createElement(ae.Thumb,{className:ce("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")}))}));Bt.displayName=ae.Root.displayName;export{se as BrainfishColors,Ne as Button,Ut as ChatSearch,Ve as ChatSearchProvider,Ce as Collapsible,je as CollapsibleContent,Fe as CollapsibleTrigger,ut as DropdownMenu,wt as DropdownMenuCheckboxItem,Et as DropdownMenuContent,gt as DropdownMenuGroup,xt as DropdownMenuItem,kt as DropdownMenuLabel,pt as DropdownMenuPortal,bt as DropdownMenuRadioGroup,Nt as DropdownMenuRadioItem,Ct as DropdownMenuSeparator,Ft as DropdownMenuShortcut,ft as DropdownMenuSub,vt as DropdownMenuSubContent,yt as DropdownMenuSubTrigger,ht as DropdownMenuTrigger,At as ScrollArea,Lt as ScrollBar,Bt as Switch,St as Textarea,ue as Tooltip,ge as TooltipContent,me as TooltipProvider,he as TooltipTrigger,we as buttonVariants,re as customColor,He as useChatSearch,Ke as useIsChatSearchDirty};
|
|
1
|
+
import*as e from"react";import t,{memo as a,useState as r,useRef as n,useEffect as s,createContext as o,useMemo as i,useContext as l,useCallback as c,forwardRef as d,useImperativeHandle as m}from"react";import{AnimatePresence as u,motion as h}from"framer-motion";import*as g from"@radix-ui/react-tooltip";import{clsx as p}from"clsx";import{twMerge as f}from"tailwind-merge";import{jsx as b,Fragment as y}from"react/jsx-runtime";import{cva as v}from"class-variance-authority";import{CheckCircle as E,Clipboard as x,Download as w,ArrowsOut as N,Heart as k,ThumbsUp as C,ThumbsDown as F,Check as j,Copy as z,CaretDown as S,ArrowSquareOut as I,Question as O,CaretRight as A,ArrowsVertical as L,ArrowDown as R,MagnifyingGlass as T,X as D,Circle as U,Image as B,ArrowRight as Q,ArrowUp as P,ArrowLeft as $,ArrowsOutSimple as q}from"@phosphor-icons/react";import*as M from"@radix-ui/react-collapsible";import _ from"rehype-raw";import Z from"remark-gfm";import{Prism as W}from"react-syntax-highlighter";import{a11yDark as V}from"react-syntax-highlighter/dist/esm/styles/prism";import H from"react-markdown";import K from"mermaid";import{produce as G}from"immer";import*as Y from"@radix-ui/react-dropdown-menu";import{ChevronRightIcon as J,CheckIcon as X,DotFilledIcon as ee}from"@radix-ui/react-icons";import*as te from"@radix-ui/react-scroll-area";import*as ae from"@radix-ui/react-switch";function re(e,t){return({opacityVariable:a,opacityValue:r})=>`rgb(var(${e}, ${t}) / ${void 0!==r?r:`var(${a}, 1)`})`}const ne={50:"#FAFAFA",100:"#F5F5F5",200:"#E5E5E5",300:"#D4D4D4",400:"#A3A3A3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",DEFAULT:"#171717"},se={primary:{50:"#F7FEE8",100:"#ECFCCC",200:"#D9F99E",300:"#BEF265",400:"#A3E635",500:"#84CC17",600:"#65A30E",700:"#4E7C10",800:"#406213",900:"#375415",DEFAULT:re("--bfc-primary","#A3E635"),foreground:re("--bfc-primary-foreground",ne.DEFAULT)},dark:ne,orange:{50:"#FFF7EE",100:"#FFEDD6",200:"#FED7AB",300:"#FDBA75",400:"#FB923D",500:"#F97317",600:"#EA590D",700:"#C2420D",800:"#9A3513",900:"#7C2E13",DEFAULT:"#FB923D"},yellow:{50:"#FFFBEC",100:"#FEF3C8",200:"#FDE68B",300:"#FCD34E",400:"#FBBF25",500:"#F59E0C",600:"#D97707",700:"#B4540A",800:"#92410F",900:"#783610",DEFAULT:"#FBBF25"},green:{50:"#EDFDF5",100:"#D2FAE5",200:"#A8F3D0",300:"#6FE7B7",400:"#35D399",500:"#11B981",600:"#069669",700:"#057857",800:"#075F47",900:"#074F3C",DEFAULT:"#35D399"},blue:{50:"#F0F6FF",100:"#DCEAFE",200:"#C0DBFE",300:"#94C5FD",400:"#61A5FA",500:"#3C82F6",600:"#2663EB",700:"#1E4FD8",800:"#1F41AF",900:"#1F3B8A",DEFAULT:"#61A5FA"},purple:{50:"#F5F4FF",100:"#EDEAFE",200:"#DED7FE",300:"#C5B6FD",400:"#A78CFA",500:"#8C5DF6",600:"#7C3BED",700:"#6D29D9",800:"#5B22B6",900:"#4D1E95",DEFAULT:"#8C5DF6"},pink:{50:"#F5F4FF",100:"#FAE9FF",200:"#F5D1FE",300:"#F0ACFC",400:"#E87AF9",500:"#D947EF",600:"#C027D3",700:"#A21DAF",800:"#861A8F",900:"#701B75",DEFAULT:"#E87AF9"},red:{50:"#FFF2F3",100:"#FFE5E6",200:"#FECED4",300:"#FDA5B0",400:"#FB7286",500:"#F4405E",600:"#E11E49",700:"#BE133D",800:"#9F133A",900:"#881438",DEFAULT:"#F4405E"}};function oe(e,t){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)t.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(a[r[n]]=e[r[n]])}return a}function ie(e,t,a,r){return new(a||(a=Promise))((function(n,s){function o(e){try{l(r.next(e))}catch(e){s(e)}}function i(e){try{l(r.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?n(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(o,i)}l((r=r.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;var le="ChatSearch-module_scroll-area__DOecp";function ce(...e){return f(p(e))}function de(e){const t={en:[/i(?:\s|['\u2018\u2019])?m(?:\s+really)?\s+not\s+sure/i,/i(?:\s+am)?(?:\s+really)?\s+not\s+sure/i,/i\s+(?:really\s+)?don(?:['\u2018\u2019])?t\s+know/i,/it(?:['\u2018\u2019]s| is) unclear/i,/cannot determine/i,/hard to say/i,/difficult to determine/i,/need more information/i],es:[/no (?:lo )?sé/i,/no estoy seguro/i,/no es claro/i,/desconocido/i],fr:[/je ne sais pas/i,/je ne suis pas sûr/i,/ce n'est pas clair/i,/inconnu/i],de:[/ich weiß nicht/i,/ich bin nicht sicher/i,/es ist unklar/i,/unbekannt/i],it:[/non lo so/i,/non sono sicuro/i,/non è chiaro/i,/sconosciuto/i],pt:[/não sei/i,/não tenho certeza/i,/não está claro/i,/desconhecido/i],nl:[/ik weet het niet/i,/ik weet niet zeker/i,/het is onduidelijk/i,/onbekend/i],pl:[/nie wiem/i,/nie jestem pewien/i,/to nie jest jasne/i,/nieznany/i],ru:[/я не знаю/i,/я не уверен/i,/это не ясно/i,/неизвестно/i],ja:[/知りません/i,/よくわからない/i,/不明です/i,/未知/i],ko:[/모릅니다/i,/잘 모르겠습니다/i,/불확실합니다/i,/알 수 없음/i],zh:[/我不知道/i,/我不确定/i,/不清楚/i,/未知/i],"zh-TW":[/我不知道/i,/我不確定/i,/不清楚/i,/未知/i]};let a=null;for(const[r,n]of Object.entries(t))for(const t of n){const n=e.match(t);n&&(null===a||n.index<a.index)&&(a={index:n.index,language:r})}return a?{uncertain:!0,language:a.language}:{uncertain:!1,language:null}}const me=t=>{var{delayDuration:a=200}=t,r=oe(t,["delayDuration"]);return e.createElement(g.Provider,Object.assign({delayDuration:a},r))},ue=g.Root,he=g.Trigger,ge=e.forwardRef(((t,a)=>{var{className:r,sideOffset:n=4,background:s,textColor:o,borderColor:i,style:l}=t,c=oe(t,["className","sideOffset","background","textColor","borderColor","style"]);return e.createElement(g.Portal,null,e.createElement(g.Content,Object.assign({ref:a,sideOffset:n,className:ce("z-50 overflow-hidden rounded-lg px-4 py-3 text-sm font-medium shadow-lg animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r),style:Object.assign(Object.assign({},l),{backgroundColor:s||"#ffffff",color:o||"rgb(31 41 55)",borderColor:i||"rgb(243 244 246)",borderWidth:"1px",borderStyle:"solid"})},c)))}));function pe(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function fe(...e){return t=>{let a=!1;const r=e.map((e=>{const r=pe(e,t);return a||"function"!=typeof r||(a=!0),r}));if(a)return()=>{for(let t=0;t<r.length;t++){const a=r[t];"function"==typeof a?a():pe(e[t],null)}}}}ge.displayName=g.Content.displayName;var be=e.forwardRef(((t,a)=>{const{children:r,...n}=t,s=e.Children.toArray(r),o=s.find(Ee);if(o){const t=o.props.children,r=s.map((a=>a===o?e.Children.count(t)>1?e.Children.only(null):e.isValidElement(t)?t.props.children:null:a));return b(ye,{...n,ref:a,children:e.isValidElement(t)?e.cloneElement(t,void 0,r):null})}return b(ye,{...n,ref:a,children:r})}));be.displayName="Slot";var ye=e.forwardRef(((t,a)=>{const{children:r,...n}=t;if(e.isValidElement(r)){const t=function(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,a=t&&"isReactWarning"in t&&t.isReactWarning;if(a)return e.ref;if(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,a=t&&"isReactWarning"in t&&t.isReactWarning,a)return e.props.ref;return e.props.ref||e.ref}(r);return e.cloneElement(r,{...xe(n,r.props),ref:a?fe(a,t):t})}return e.Children.count(r)>1?e.Children.only(null):null}));ye.displayName="SlotClone";var ve=({children:e})=>b(y,{children:e});function Ee(t){return e.isValidElement(t)&&t.type===ve}function xe(e,t){const a={...t};for(const r in t){const n=e[r],s=t[r];/^on[A-Z]/.test(r)?n&&s?a[r]=(...e)=>{s(...e),n(...e)}:n&&(a[r]=n):"style"===r?a[r]={...n,...s}:"className"===r&&(a[r]=[n,s].filter(Boolean).join(" "))}return{...e,...a}}const we=v("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),Ne=e.forwardRef(((t,a)=>{var{className:r,variant:n,size:s,asChild:o=!1}=t,i=oe(t,["className","variant","size","asChild"]);const l=o?be:"button";return e.createElement(l,Object.assign({className:ce(we({variant:n,size:s,className:r})),ref:a},i))}));function ke({suggestions:e,onQuestionClick:a,title:r="Suggested questions"}){return e&&0!==e.length?t.createElement("div",{className:"w-full p-3","data-name":"Suggestions"},t.createElement("h3",{className:"text-base font-medium mb-4 text-foreground"},r),t.createElement("div",{className:"flex flex-wrap gap-2"},e.map((e=>t.createElement(Ne,{key:e.id,onClick:()=>a(e),variant:"outline",className:"border-border font-normal"},void 0!==e.messageCount&&t.createElement(me,null,t.createElement(ue,null,t.createElement(he,{asChild:!0},t.createElement("span",{className:"bg-gray-100 text-gray-600 px-2 py-0.5 rounded-full text-xs min-w-[20px] border flex items-center justify-center border-border"},e.messageCount)),t.createElement(ge,null,t.createElement("p",null,e.messageCount," messages in this conversation")))),t.createElement("span",{className:"line-clamp-1"},e.question)))))):null}Ne.displayName="Button";const Ce=M.Root,Fe=M.CollapsibleTrigger,je=e=>{var{children:a}=e,r=oe(e,["children"]);return t.createElement(M.CollapsibleContent,Object.assign({},r),t.createElement("style",null,'\n .CollapsibleContent[data-state="open"] {\n animation: slideDown 200ms ease-in-out;\n }\n .CollapsibleContent[data-state="closed"] {\n animation: slideUp 200ms ease-in-out;\n }\n\n @keyframes slideDown {\n from {\n height: 0;\n }\n to {\n height: var(--radix-collapsible-content-height);\n }\n }\n\n @keyframes slideUp {\n from {\n height: var(--radix-collapsible-content-height);\n }\n to {\n height: 0;\n }\n }\n '),a)},ze={javascript:".js",python:".py",java:".java",c:".c",cpp:".cpp","c++":".cpp","c#":".cs",ruby:".rb",php:".php",swift:".swift","objective-c":".m",kotlin:".kt",typescript:".ts",go:".go",perl:".pl",rust:".rs",scala:".scala",haskell:".hs",lua:".lua",shell:".sh",sql:".sql",html:".html",css:".css"},Se=W,Ie=a((({language:e,value:a})=>{const[n,s]=r(!1);return t.createElement("div",{className:"relative font-sans text-sm mt-1"},t.createElement("div",{className:"relative rounded-t-lg bg-zinc-800/80 font-sans text-sm backdrop-blur"},t.createElement("div",{className:"flex h-8 items-center justify-between px-3"},t.createElement("span",{className:"text-xs font-medium text-zinc-400"},e),t.createElement("div",{className:"flex gap-1"},t.createElement(Ne,{variant:"ghost",size:"icon",className:"size-5 text-zinc-400 hover:bg-zinc-700/50 hover:text-zinc-100",onClick:()=>{ie(void 0,void 0,void 0,(function*(){if(navigator.clipboard&&navigator.clipboard.writeText)try{yield navigator.clipboard.writeText(a),s(!0),setTimeout((()=>{s(!1)}),2e3)}catch(e){console.error("Failed to copy:",e)}}))}},n?t.createElement(E,{size:18}):t.createElement(x,{size:18})),t.createElement(Ne,{variant:"ghost",size:"icon",className:"size-5 text-zinc-400 hover:bg-zinc-700/50 hover:text-zinc-100",onClick:()=>{const t=ze[e]||".file",r=`file-${((e,t=!1)=>{const a="ABCDEFGHJKLMNPQRSTUVWXY3456789";let r="";for(let t=0;t<e;t+=1)r+=a.charAt(Math.floor(30*Math.random()));return t?r.toLowerCase():r})(3,!0)}${t}`,n=new Blob([a],{type:"text/plain"}),s=URL.createObjectURL(n),o=document.createElement("a");o.download=r,o.href=s,o.style.display="none",document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(s)}},t.createElement(w,{size:18}))))),t.createElement("div",{className:"rounded-b-lg"},t.createElement(Se,{language:e,style:V,PreTag:"div",wrapLongLines:!0,customStyle:{margin:0,borderTopLeftRadius:0,borderTopRightRadius:0}},a)))}));Ie.displayName="CodeBlock";const Oe=e.forwardRef((({src:t,border:a,width:r="100%",height:n="400px",title:s},o)=>{const[i,l]=e.useState(!1),[c,d]=e.useState(!1);return e.useEffect((()=>{let e=!0;return setTimeout((()=>{e&&l(!0)}),0),()=>{e=!1}}),[]),e.createElement("div",{className:"overflow-hidden rounded-lg mt-4 "+(a?"border":""),style:{width:r,height:n}},i&&e.createElement(e.Fragment,null,e.createElement("div",{className:"relative w-full h-full "+(c?"hidden":"block")},e.createElement("div",{className:"absolute inset-0 bg-muted/10 rounded-lg"},e.createElement("div",{className:"absolute inset-0"},e.createElement("div",{className:"h-full w-full shimmer"}),e.createElement("div",{className:"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 flex flex-col items-center gap-2"},e.createElement("div",{className:"modern-spinner"}),e.createElement("div",{className:"text-sm text-muted-foreground"},"Loading..."))))),e.createElement("div",{className:c?"visible":"invisible"},e.createElement("iframe",{ref:o,src:t,sandbox:"allow-same-origin allow-scripts allow-popups allow-forms allow-downloads",width:r,height:n,frameBorder:"0",title:"embed",loading:"lazy",allowFullScreen:!0,className:"block rounded-lg",onLoad:()=>d(!0)}),s&&e.createElement("span",{className:"block text-center text-sm font-medium"},s))))}));function Ae(t){const a=t.attrs.href.replace("share","embed");return e.createElement(Oe,Object.assign({},t,{src:a,title:"Loom Embed"}))}function Le(t){return e.createElement(Oe,Object.assign({},t,{src:t.attrs.href,title:"Supademo Embed"}))}function Re(t){return e.createElement(Oe,Object.assign({},t,{src:t.attrs.href,title:"Typeform Embed"}))}function Te(t){const a=t.attrs.href.match(/(http|https)?:\/\/(www\.)?vimeo\.com\/(?:channels\/(?:\w+\/)?|groups\/([^/]*)\/videos\/|)(\d+)(?:\/|\?)?([\d\w]+)?/);if(!a)return null;const r=a[4],n=a[5],s=`https://player.vimeo.com/video/${r}?byline=0${n?`&h=${n}`:""}`;return e.createElement(Oe,Object.assign({},t,{src:s,title:`Vimeo Embed (${r})`,height:"412px",border:!1}))}function De(t){const a=(e=>{const t=[/^https?:\/\/([a-zA-Z0-9-_~]+)\.wistia\.com\/medias\/([a-zA-Z0-9-_~]+)\/?$/,/^https?:\/\/fast\.wistia\.com\/embed\/iframe\/([a-zA-Z0-9-_~]+)\/?$/,/^fast\.wistia\.com\/embed\/iframe\/([a-zA-Z0-9-_~]+)\/?$/,/^([a-zA-Z0-9-_~]+)\.wistia\.com\/medias\/([a-zA-Z0-9-_~]+)\/?$/];for(const a of t){const t=e.match(a);if(t)return t}return null})(t.attrs.href);if(!a)return null;const r=a[1],n=a[2]||a[1],s=r?`https://${r}.wistia.com/embed/iframe/${n}?seo=true&videoFoam=false`:`https://fast.wistia.com/embed/iframe/${n}`;return e.createElement(Oe,Object.assign({},t,{src:s,border:!0,title:`Wistia Embed (${n})`}))}function Ue(t){const a=(e=>{const t=e.match(/(?:https?:\/\/)?(?:www\.)?youtu\.?be(?:\.com)?\/?.*(?:watch|embed)?(?:.*v=|v\/|\/)([a-zA-Z0-9_-]{11})$/i);return t?t[1]:null})(t.attrs.href);return a?e.createElement(Oe,Object.assign({},t,{src:`https://www.youtube.com/embed/${a}?modestbranding=1`,title:`YouTube Embed (${a})`})):null}Ae.isMatch=e=>/^https:\/\/(www\.)?(use)?loom\.com\/(embed|share)\/(.*)$/.test(e),Le.isMatch=e=>/^https:\/\/app\.supademo\.com\/embed\/(.*)$/.test(e),Re.isMatch=e=>/^https:\/\/([A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)\.typeform\.com\/to\/(.*)$/.test(e),Te.isMatch=e=>/^(https?):\/\/(www\.)?vimeo\.com\/(?:channels\/(?:\w+\/)?|groups\/([^/]*)\/videos\/|)?(\d+)(\/)?(?:\?.*|#.*)?$/i.test(e),De.isMatch=e=>[/^https?:\/\/([a-zA-Z0-9-_~]+)\.wistia\.com\/medias\/([a-zA-Z0-9-_~]+)(\/)?(\?.*)?$/i,/^https?:\/\/fast\.wistia\.com\/embed\/iframe\/([a-zA-Z0-9-_~]+)(\/)?(\?.*)?$/i,/^fast\.wistia\.com\/embed\/iframe\/([a-zA-Z0-9-_~]+)(\/)?(\?.*)?$/i,/^([a-zA-Z0-9-_~]+)\.wistia\.com\/medias\/([a-zA-Z0-9-_~]+)(\/)?(\?.*)?$/i].some((t=>t.test(e))),Ue.isMatch=e=>/^(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/(?:watch\?v=|embed\/|v\/|shorts\/)|youtu\.be\/)([a-zA-Z0-9_-]{11})(?:\/|[?&].*)?$/i.test(e);const Be=[Ae,Le,Re,Ue,De,Te],Qe=t=>{const{href:a}=t.attrs,r=((t,a)=>e.useMemo((()=>{try{const e=a.find((e=>e.isMatch(t)));return e?{Component:e}:null}catch(e){return console.error("Error finding embed match:",e),null}}),[t,a]))(a,Be);if(r){const{Component:a}=r;return e.createElement(a,Object.assign({},t))}return null},Pe=a(H,((e,t)=>e.children===t.children)),$e={startOnLoad:!1,theme:"default",securityLevel:"loose",fontFamily:"inherit"},qe=({content:e})=>{const[a,o]=r(""),[i,l]=r(null),c=n(null),[d,m]=r(!1);return s((()=>{(()=>{try{K.initialize($e),m(!0)}catch(e){console.error("Error initializing mermaid:",e),l("Failed to initialize diagram renderer")}})()}),[]),s((()=>{if(!d)return;ie(void 0,void 0,void 0,(function*(){try{const t=`mermaid-${Math.random().toString(36).substr(2,9)}`,a=yield K.render(t,e);o(a.svg),l(null)}catch(e){console.error("Error rendering mermaid diagram:",e),l("Failed to render diagram")}}))}),[e,d]),i?t.createElement("div",{className:"text-red-500 bg-red-50 p-4 rounded-md"},i,t.createElement("pre",{className:"mt-2 text-sm"},e)):t.createElement("div",{ref:c,className:"my-4 overflow-auto",dangerouslySetInnerHTML:{__html:a}})},Me=({src:t,alt:a})=>{const[r,n]=e.useState(!1),[s,o]=e.useState(!1),[i,l]=e.useState(!1),[c,d]=e.useState(!0),[m,g]=e.useState({width:0,height:0}),p=e.useRef(null),f=()=>{n(!r)};return!t||i?null:e.createElement("figure",{className:"relative inline-block my-4 px-4 w-full sm:w-auto"},e.createElement("div",{className:"flex items-center justify-center min-h-[100px]"},e.createElement("button",{type:"button",onClick:f,className:"border-0 p-0 bg-transparent relative group","aria-label":r?"Zoom out image":"Zoom in image"},c&&e.createElement("div",{className:"rounded-md bg-gray-200 dark:bg-gray-800 animate-pulse",style:{width:m.width||300,height:m.height||200,maxHeight:300}}),e.createElement("img",{ref:p,src:t,alt:a,onError:()=>{d(!1),l(!0)},onLoad:()=>{if(p.current){const{naturalWidth:e,naturalHeight:t}=p.current,a=300,r=e/t,n=Math.min(a,t);g({width:n*r,height:n})}d(!1)},className:"max-h-[300px] w-auto object-contain cursor-zoom-in hover:opacity-90 transition-opacity "+(c?"opacity-0 absolute":"opacity-100 relative")}),!c&&e.createElement("div",{className:"absolute bottom-2 right-2 opacity-0 group-hover:opacity-100 transition-opacity"},e.createElement("div",{className:"bg-black/50 text-white p-1.5 rounded-lg"},e.createElement(N,{size:16}))))),a&&!c&&e.createElement("div",{className:"relative mt-1"},e.createElement("figcaption",{className:"text-sm text-gray-600 dark:text-gray-400 text-center group cursor-default",onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1)},e.createElement("div",{className:"line-clamp-2 hover:text-gray-700 dark:hover:text-gray-300"},a)),s&&e.createElement("div",{className:"absolute bottom-full left-0 right-0 mb-1 p-2 bg-white dark:bg-gray-800 rounded-lg shadow-lg border border-gray-200 dark:border-gray-700 text-sm text-gray-600 dark:text-gray-400 z-10"},a)),e.createElement(u,null,r&&e.createElement(e.Fragment,null,e.createElement(h.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 bg-black/80 z-50",onClick:f}),e.createElement(h.div,{initial:{scale:.5,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.5,opacity:0},className:"fixed inset-0 z-50 flex flex-col items-center justify-center cursor-zoom-out gap-4 p-4 sm:p-8",onClick:f},e.createElement("div",{className:"max-w-[95vw] sm:max-w-[90vw] max-h-[80vh]"},e.createElement("img",{src:t,alt:a,className:"w-full h-full object-contain"})),a&&e.createElement("div",{className:"max-w-[95vw] sm:max-w-[90vw] text-white text-center text-sm"},a)))))},_e=a((({message:e,isStreaming:a})=>{const[n,o]=r(e.content);s((()=>{var t;const a=de(e.content);a.uncertain&&a.language&&(null===(t=e.uncertaintyFallbackText)||void 0===t?void 0:t[a.language])?o(e.uncertaintyFallbackText[a.language]):o(e.content)}),[e.content,e.uncertaintyFallbackText,a]);const i=n.replace(/^\n+|(\n+|\\)+$/g,"");return t.createElement(Pe,{className:"dark:prose-invert prose flex-1",remarkPlugins:[Z],rehypePlugins:[_],components:{code:e=>{var{inline:a,className:r,children:n}=e,s=oe(e,["inline","className","children"]);const o=/language-(\w+)/.exec(r||""),i=o&&o[1];return a||"mermaid"!==i&&"mermaidjs"!==i?!a&&i?t.createElement(Ie,Object.assign({key:Math.random(),language:i,value:String(n).replace(/\n$/,"")},s)):t.createElement("code",Object.assign({className:`text-red-400 bg-slate-200 border-slate-300 border rounded p-0.5 ${r}`.trim()},s),n):t.createElement(qe,{content:String(n).replace(/\n$/,"")})},marker:({children:e})=>t.createElement("div",{className:"my-2"},t.createElement("span",{className:"highlight"},e)),table:({children:e})=>t.createElement("table",{className:"border-collapse border border-black px-3 py-1 dark:border-white"},e),th:({children:e})=>t.createElement("th",{className:"break-words border border-black bg-gray-500 px-3 py-1 text-white dark:border-white"},e),td:({children:e})=>t.createElement("td",{className:"break-words border border-black px-3 py-1 dark:border-white"},e),a(e){var{children:a}=e,r=oe(e,["children"]);if(r.href){const e=Qe({attrs:{href:r.href}});if(t.isValidElement(e))return e}return t.createElement("a",Object.assign({className:"link text-link",target:"_blank",rel:"noopener noreferrer"},r),a)},pre:({children:e})=>t.createElement(t.Fragment,null,e),img({src:e,alt:a}){const r=Qe({attrs:{href:null!=e?e:""}});return t.isValidElement(r)?r:t.createElement(Me,{src:e,alt:a})},li:e=>{var{children:a}=e,r=oe(e,["children"]);return t.createElement("li",Object.assign({},r),a)},ul:({children:e})=>t.createElement("ul",{className:"ml-4 my-4 list-outside space-y-4"},e),ol:({children:e})=>t.createElement("ol",{className:"ml-4 my-4 list-outside space-y-4"},e),strong:e=>{var{children:a}=e,r=oe(e,["children"]);return t.createElement("span",Object.assign({className:"font-semibold"},r),a)},h1:e=>{var{children:a}=e,r=oe(e,["children"]);return t.createElement("h1",Object.assign({className:"text-2xl font-bold"},r),a)},h2:e=>{var{children:a}=e,r=oe(e,["children"]);return t.createElement("h2",Object.assign({className:"text-xl font-bold"},r),a)},h3:e=>{var{children:a}=e,r=oe(e,["children"]);return t.createElement("h3",Object.assign({className:"text-lg font-bold"},r),a)},h4:e=>{var{children:a}=e,r=oe(e,["children"]);return t.createElement("h4",Object.assign({className:"text-base font-bold"},r),a)},h5:e=>{var{children:a}=e,r=oe(e,["children"]);return t.createElement("h5",Object.assign({className:"text-base font-semibold"},r),a)},h6:e=>{var{children:a}=e,r=oe(e,["children"]);return t.createElement("h6",Object.assign({className:"text-sm font-semibold"},r),a)}}},i)}));function Ze({feedback:e,onFeedback:a,textConfig:n={},disabled:s=!1}){const[o,i]=r(!1),l=e=>{a&&("accept"===e&&(i(!0),setTimeout((()=>i(!1)),2e3)),a(e))};return t.createElement("div",{className:"flex justify-end gap-2","data-name":"Feedback"},t.createElement(me,null,t.createElement(ue,null,t.createElement(he,{asChild:!0},t.createElement("div",{className:"relative"},t.createElement(u,null,o&&t.createElement(t.Fragment,null,Array.from({length:8}).map(((e,a)=>t.createElement(h.div,{key:a,className:"absolute top-1/2 left-1/2 origin-center",initial:{opacity:0,scale:.3,x:0,y:0},animate:{opacity:[0,1,1,0],scale:[.3,1,1,0],x:[0,30*Math.cos(a*(Math.PI/4))],y:[0,30*Math.sin(a*(Math.PI/4))],rotate:[0,a%2?45:-45]},transition:{duration:1.2,ease:[.4,0,.2,1],times:[0,.3,.7,1],delay:.1*a}},t.createElement(k,{className:"size-4 text-rose-500",style:{filter:"drop-shadow(0 0 3px rgba(255, 75, 110, 0.8))",strokeWidth:2.5}})))),t.createElement(h.div,{className:"absolute inset-0 rounded-full bg-primary",initial:{opacity:0,scale:.8},animate:{opacity:[0,.15,.15,0],scale:[.8,1.8,1.8,2]},transition:{duration:1.2,ease:"easeOut",times:[0,.3,.7,1]}}))),t.createElement(Ne,{variant:"ghost",size:"sm",className:"rounded-md size-8 flex items-center justify-center transition-all duration-200 transform hover:scale-105 active:scale-95 "+("accept"===e?"bg-green-100 text-green-600 hover:bg-green-200":"text-dark-500"),onClick:()=>l("accept"),disabled:s},t.createElement(h.div,{initial:{scale:1},animate:{scale:"accept"===e?[1,1.2,1]:1},transition:{duration:.3}},t.createElement(C,{weight:"bold"}))))),t.createElement(ge,null,t.createElement("p",null,n.positiveAnswerText||"Helpful")))),t.createElement(me,null,t.createElement(ue,null,t.createElement(he,{asChild:!0},t.createElement(Ne,{variant:"ghost",size:"sm",className:"rounded-md size-8 flex items-center justify-center transition-all duration-200 transform hover:scale-105 active:scale-95 "+("reject"===e?"bg-red-100 text-red-600 hover:bg-red-200":"text-dark-500"),onClick:()=>l("reject"),disabled:s},t.createElement(h.div,{initial:{scale:1},animate:{scale:"reject"===e?[1,1.2,1]:1},transition:{duration:.3}},t.createElement(F,{weight:"bold"})))),t.createElement(ge,null,t.createElement("p",null,n.negativeAnswerText||"Not helpful")))))}_e.displayName="FormattedMessage";const We=o(void 0),Ve=({children:e})=>{const[a,n]=r(""),[s,o]=r(""),[l,c]=r(!1),[d,m]=r(!1),[u,h]=r([]),[g,p]=r(0),[f,b]=r(""),[y,v]=r(!1),[E,x]=r(""),w=i((()=>({query:a,setQuery:n,followUpQuery:s,setFollowUpQuery:o,isSearching:l,setIsSearching:c,showResults:d,setShowResults:m,answers:u,setAnswers:h,activeAnswerIndex:g,setActiveAnswerIndex:p,conversationId:f,setConversationId:b,isLoadingConversation:y,setIsLoadingConversation:v,loadError:E,setLoadError:x})),[a,s,l,d,u,g,f,y,E]);return t.createElement(We.Provider,{value:w},e)},He=()=>{const e=l(We);if(!e)throw new Error("useChatSearch must be used within a ChatSearchProvider");return e},Ke=()=>{const{showResults:e,answers:t}=He();return Boolean(e||t.length>0)},Ge={maxRetries:3,baseDelay:1e3,shouldRetry:e=>{if(e instanceof TypeError)return!0;const t=e;return!!t.status&&t.status>=500}};let Ye=Object.assign({},Ge),Je=Object.assign({},{emptyResponse:"I apologize, but I couldn't generate an answer at this time. Please try again.",errorResponse:"I encountered an error while processing your request. Please try again."});function Xe(e){return ie(this,void 0,void 0,(function*(){return new Promise((t=>setTimeout(t,e)))}))}function et(e,t={}){return ie(this,void 0,void 0,(function*(){const{retry:a={},headers:r={},body:n,isStream:s=!1,fallback:o={}}=t,i=oe(t,["retry","headers","body","isStream","fallback"]),l=Object.assign(Object.assign({},Ye),a),c=Object.assign(Object.assign({},Je),o);let d=1;for(;;)try{const t=yield fetch(e,Object.assign(Object.assign({},i),{headers:Object.assign({"Content-Type":"application/json"},r),body:n?JSON.stringify(n):void 0}));if(t.ok){if(s){if(!t.ok)throw new Error("Failed to fetch answer");return t}const e=yield t.json();if(!e||"object"==typeof e&&0===Object.keys(e).length){const e=new Error(c.emptyResponse);throw e.name="EmptyResponseError",e}return e}const a=new Error(c.errorResponse);throw a.status=t.status,a.data=yield t.json().catch((()=>{})),a}catch(e){const t=yield Promise.resolve(l.shouldRetry(e,d));if(d>=l.maxRetries||!t){if(e instanceof Error&&"EmptyResponseError"===e.name)return{message:e.message};throw e}console.warn(`Request failed, attempt ${d} of ${l.maxRetries}. Retrying...`);const a=.3*Math.random()+.85;yield Xe(l.baseDelay*Math.pow(2,d-1)*a),d++}}))}const tt={maxRetries:3,baseDelay:300,shouldRetry:e=>{if(e instanceof TypeError)return!0;const t=e;return!!t.status&&(t.status>=500||429===t.status)}},at={maxRetries:3,baseDelay:500,shouldRetry:e=>{if(e instanceof TypeError)return!0;const t=e;return!!t.status&&t.status>=500}};function rt({endpoint:e,query:t,collectionId:a,headers:r,conversationId:n}){var s;return ie(this,void 0,void 0,(function*(){const o=yield et(e,{method:"POST",headers:r,retry:tt,body:Object.assign(Object.assign({query:t,limit:5},a&&"all"!==a&&{collectionId:a}),n&&{conversationId:n})});return{results:null==o?void 0:o.data,searchQueryId:null===(s=null==o?void 0:o.searchQuery)||void 0===s?void 0:s.id}}))}function nt({endpoint:e,searchQueryId:t,headers:a,conversationId:r}){return ie(this,void 0,void 0,(function*(){return et(e,{method:"POST",headers:a,retry:at,isStream:!0,fallback:{emptyResponse:"I apologize, but I couldn't generate an answer for your query. Please try rephrasing your question.",errorResponse:"I encountered an issue while generating the answer. Please try again in a moment."},body:Object.assign({searchQueryId:t},r&&{conversationId:r})})}))}function st(){return`bf-conversation-${Date.now()}-${"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))}`}const ot=({loadConversationEndpoint:e,headers:t,mergedTextConfig:a})=>{const{setIsLoadingConversation:r,setShowResults:n,setAnswers:o,setConversationId:i,setLoadError:l}=He(),d=c((s=>{e?(r(!0),n(!0),function({endpoint:e,conversationId:t,headers:a}){return ie(this,void 0,void 0,(function*(){return{data:(yield et(e,{method:"POST",headers:a,body:{conversationId:t}})).data.map((e=>Object.assign(Object.assign({},e),{feedback:e.feedback?"positive"===e.feedback?"accept":"reject":void 0})))}}))}({endpoint:e,conversationId:s,headers:t}).then((e=>{o(e.data),i(s),n(!0)})).catch((e=>{console.error("Error loading conversation:",e),o([]),i(st()),n(!1);const t=new URL(window.location.href);t.pathname="/",t.searchParams.delete("conversation"),window.history.replaceState({},"",t.toString()),l(a.errorText||"An error occurred")})).finally((()=>{r(!1)}))):i(st())}),[e,t,a,o,i,r,n]);return s((()=>{const e=new URLSearchParams(window.location.search).get("conversation");if(e)d(e);else{const e=st();i(e)}}),[e]),{loadConversationById:d}},it=e=>{var{loading:a,className:n}=e,o=oe(e,["loading","className"]);const[i,l]=r("rgb(var(--bfc-border))"),c=(()=>{const[e,t]=r((()=>document.documentElement.classList.contains("dark")));return s((()=>{const e=new MutationObserver((()=>{t(document.documentElement.classList.contains("dark"))}));return e.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>e.disconnect()}),[]),e})();return s((()=>{const e=getComputedStyle(document.documentElement).getPropertyValue("--bfc-primary").trim().match(/^(\d+)\s+(\d+)\s+(\d+)$/);if(e){const t=function(e){const[t,a,r]=e.split(",").map(Number),[n,s,o]=[t,a,r].map((e=>(e/=255)<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)));return.2126*n+.7152*s+.0722*o}(e.slice(1).join(","));l(t<=.5?c?"rgb(var(--bfc-ring))":"var(--star-color)":c?"var(--star-color)":"rgb(var(--bfc-border))")}}),[]),t.createElement("svg",Object.assign({width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",className:ce("min-w-5",n),style:{"--star-color":"rgb(var(--bfc-primary))"}},o),t.createElement("path",{className:a?"animate-spin":"",d:"M7.54672 16.0031L2.66234 14.2031C2.51881 14.1498 2.39502 14.0539 2.3076 13.9282C2.22019 13.8025 2.17333 13.6531 2.17333 13.5C2.17333 13.3469 2.22019 13.1975 2.3076 13.0718C2.39502 12.9461 2.51881 12.8501 2.66234 12.7969L7.54672 10.9969C7.64981 10.9589 7.74344 10.899 7.82113 10.8213C7.89882 10.7436 7.95873 10.65 7.99672 10.5469L9.79672 5.66249C9.84999 5.51896 9.94592 5.39517 10.0716 5.30775C10.1973 5.22033 10.3467 5.17348 10.4998 5.17348C10.6529 5.17348 10.8024 5.22033 10.9281 5.30775C11.0538 5.39517 11.1497 5.51896 11.203 5.66249L13.003 10.5469C13.041 10.65 13.1009 10.7436 13.1786 10.8213C13.2562 10.899 13.3499 10.9589 13.453 10.9969L18.3373 12.7969C18.4809 12.8501 18.6047 12.9461 18.6921 13.0718C18.7795 13.1975 18.8264 13.3469 18.8264 13.5C18.8264 13.6531 18.7795 13.8025 18.6921 13.9282C18.6047 14.0539 18.4809 14.1498 18.3373 14.2031L13.453 16.0031C13.3499 16.0411 13.2562 16.101 13.1786 16.1787C13.1009 16.2564 13.041 16.35 13.003 16.4531L11.203 21.3375C11.1497 21.481 11.0538 21.6048 10.9281 21.6922C10.8024 21.7796 10.6529 21.8265 10.4998 21.8265C10.3467 21.8265 10.1973 21.7796 10.0716 21.6922C9.94592 21.6048 9.84999 21.481 9.79672 21.3375L7.99672 16.4531C7.95873 16.35 7.89882 16.2564 7.82113 16.1787C7.74344 16.101 7.64981 16.0411 7.54672 16.0031Z",stroke:i,strokeWidth:"1.5",strokeLinecap:"round",fill:"var(--star-color)",strokeLinejoin:"round"}),t.createElement("path",{d:"M18.7497 3.75L14.2497 3.75",stroke:"var(--star-color)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),t.createElement("path",{d:"M16.4999 6V1.5",stroke:"var(--star-color)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),t.createElement("path",{d:"M22.4999 8.25001H19.4999",stroke:"var(--star-color)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),t.createElement("path",{d:"M20.9998 9.75002V6.75002",stroke:"var(--star-color)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}))};function lt({answer:e,question:a,searchResults:n,isStreaming:s=!1,searchQueryId:o,feedback:i,onFeedback:l,disableFeedback:c=!1,textConfig:d={},isLoading:m=!1,isSearchLoading:u=!1}){const[h,g]=r(!1),[p,f]=r(!1),b=()=>ie(this,void 0,void 0,(function*(){try{yield navigator.clipboard.writeText(e),g(!0),setTimeout((()=>g(!1)),2e3)}catch(e){console.error("Failed to copy text:",e)}}));return t.createElement("div",{className:"rounded-lg relative mx-auto overflow-hidden bg-card border border-primary mb-4","data-name":"SearchResults"},t.createElement("div",{className:"p-4"},t.createElement("div",{className:"flex items-start justify-between gap-2 mb-2 pb-0"},t.createElement("div",{className:"flex gap-1"},t.createElement(it,{loading:m||s,className:"mt-1"}),t.createElement("h2",{className:"leading-normal font-semibold m-0 text-foreground self-center"},a)),e&&t.createElement(me,null,t.createElement(ue,null,t.createElement(he,{asChild:!0},t.createElement(Ne,{variant:"ghost",size:"icon",onClick:()=>{b()},className:"-mt-1 flex-shrink-0"},h?t.createElement(j,{className:"text-feedback-positive",weight:"bold"}):t.createElement(z,{className:"text-secondary-foreground",weight:"bold"}))),t.createElement(ge,null,t.createElement("p",null,h?"Copied!":"Copy"))))),m?t.createElement("div",{className:"space-y-4"},t.createElement("div",{className:"flex items-center gap-2"},t.createElement("div",{className:"size-5 rounded-full bg-primary/30"}),t.createElement("div",{className:"flex items-center gap-2 text-sm text-foreground"},u?d.loadingSearchText:d.loadingAnswerText)),t.createElement("div",{className:"space-y-3"},t.createElement("div",{className:"h-4 rounded w-3/4 shimmer"}),t.createElement("div",{className:"h-4 rounded w-full shimmer"}),t.createElement("div",{className:"h-4 rounded w-5/6 shimmer"})),t.createElement("div",{className:"mt-6 space-y-3"},t.createElement("div",{className:"h-4 rounded w-1/4 shimmer"}),t.createElement("div",{className:"flex gap-2"},t.createElement("div",{className:"h-8 rounded w-32 shimmer"}),t.createElement("div",{className:"h-8 rounded w-40 shimmer"})))):t.createElement("div",{className:"prose prose-sm max-w-none text-foreground"},t.createElement(_e,{message:Object.assign({content:e||"Sorry, there was an error generating the answer. Please try again."},e&&{uncertaintyFallbackText:d.uncertaintyFallbackText}),isStreaming:s})),e&&!s&&!c&&t.createElement("div",{className:"mt-2"},t.createElement(Ze,{feedback:i,onFeedback:e=>{l&&o&&l(e)},textConfig:d,disabled:c}))),n&&n.length>0&&t.createElement("div",{className:"overflow-hidden bg-card border-dashed border-0 border-t-2"},t.createElement(Ce,{open:p,onOpenChange:f,className:"w-full"},t.createElement("div",null,t.createElement(Fe,{asChild:!0},t.createElement(Ne,{variant:"secondary",className:"w-full justify-between h-11","data-name":"RelatedSources"},t.createElement("div",{className:"flex items-center gap-2"},t.createElement("span",{className:"font-medium truncate text-base"},"Sources")),t.createElement(S,{className:"size-4 flex-shrink-0 transition-transform duration-200 text-secondary-foreground "+(p?"rotate-180":""),weight:"bold"}),t.createElement("span",{className:"sr-only"},"Toggle")))),t.createElement(je,{className:"divide-y divide-gray-200 dark:divide-border overflow-hidden CollapsibleContent"},n.map((e=>t.createElement("a",{key:e.id,href:e.url,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 p-3 transition-colors duration-200 hover:bg-accent bg-card text-foreground"},t.createElement("span",{className:"flex-grow truncate"},e.title),t.createElement(I,{className:"size-4 flex-shrink-0 text-secondary-foreground",weight:"bold"}))))))))}function ct({questions:e,onQuestionClick:a}){return e.length?t.createElement(h.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},className:"w-full"},t.createElement("div",{className:"rounded-lg overflow-hidden bg-card border border-border"},t.createElement("div",{className:"p-3 border-b border-b-gray-200"},t.createElement("div",{className:"flex items-center gap-2"},t.createElement(O,{className:"flex-shrink-0 text-secondary-foreground",size:20}),t.createElement("span",{className:"font-medium"},"Follow-up Questions"))),t.createElement("div",{className:"divide-y divide-gray-200"},e.map(((e,r)=>t.createElement(h.button,{key:r,initial:{opacity:0,x:-20},animate:{opacity:1,x:0},transition:{delay:.1*r},onClick:()=>a(e),className:"w-full flex items-center gap-2 p-3 transition-colors duration-200 bg-card hover:bg-gray-50 dark:hover:bg-dark-600 text-left text-foreground "},t.createElement("span",{className:"flex-grow"},e),t.createElement(A,{className:"size-4 flex-shrink-0 text-secondary-foreground",weight:"bold"}))))))):null}function dt({questions:e,activeIndex:a,onNavigate:n,offset:o}){const[i,l]=r(a);s((()=>{l(a)}),[a]);const c=e.length,d=(()=>{const e=[];let t=null;const r=a=>{null!==t&&a-t>1&&e.push("ellipsis"),e.push(a),t=a};r(0);for(let e=Math.max(1,a-2);e<=Math.min(c-2,a+2);e++)r(e);return c>1&&r(c-1),e})();return t.createElement("nav",{"aria-label":"Question timeline navigation",className:"fixed left-4 top-1/2 -translate-y-1/2 z-40 flex flex-col gap-3",style:Object.assign({},o?{left:`${o}px`}:{})},t.createElement(h.div,{className:"flex flex-col items-center space-y-3",role:"list",initial:!1,animate:{y:0},transition:{type:"spring",stiffness:300,damping:30}},t.createElement(u,null,d.map(((r,s)=>{if("ellipsis"===r)return t.createElement(h.div,{key:`ellipsis-${s}`,className:"h-8 flex items-center justify-center","aria-hidden":"true",initial:{opacity:0,y:i>a?-20:20},animate:{opacity:1,y:0},exit:{opacity:0,y:i>a?20:-20},transition:{duration:.2}},t.createElement(L,{className:"size-4 text-foreground"}));const o=r,l=e[o];return t.createElement(h.div,{key:o,className:"relative group isolate",role:"listitem",initial:{opacity:0,y:i>a?-20:20},animate:{opacity:1,y:0},exit:{opacity:0,y:i>a?20:-20},transition:{duration:.2},layout:!0},t.createElement(me,{delayDuration:100},t.createElement(ue,null,t.createElement(he,{asChild:!0},t.createElement("button",{onClick:()=>n(o),onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||n(o)},className:ce("flex items-center justify-center size-8 rounded-full transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 hover:opacity-90 cursor-pointer ring-primary ",o===a?"bg-primary text-primary-foreground":"bg-stone-300 text-zinc-800"),"aria-label":`Navigate to question ${o+1}: ${l}`,"aria-current":o===a?"step":void 0},o+1)),t.createElement(ge,{side:"right",sideOffset:8,className:"max-w-[300px] bg-card text-card-foreground border-foreground/35"},t.createElement("p",{className:"break-words leading-relaxed"},l)))))})))))}function mt({onClick:e}){return t.createElement(Ne,{size:"icon",variant:"secondary",className:"fixed bottom-20 right-4 rounded-full transition-opacity duration-300 border-border shadow-md",onClick:e},t.createElement(R,{className:"size-5"}))}const ut=Y.Root,ht=Y.Trigger,gt=Y.Group,pt=Y.Portal,ft=Y.Sub,bt=Y.RadioGroup,yt=e.forwardRef(((t,a)=>{var{className:r,inset:n,children:s}=t,o=oe(t,["className","inset","children"]);return e.createElement(Y.SubTrigger,Object.assign({ref:a,className:ce("flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm !outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",n&&"pl-8",r)},o),s,e.createElement(J,{className:"ml-auto"}))}));yt.displayName=Y.SubTrigger.displayName;const vt=e.forwardRef(((t,a)=>{var{className:r}=t,n=oe(t,["className"]);return e.createElement(Y.SubContent,Object.assign({ref:a,className:ce("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r)},n))}));vt.displayName=Y.SubContent.displayName;const Et=e.forwardRef(((t,a)=>{var{className:r,sideOffset:n=4}=t,s=oe(t,["className","sideOffset"]);return e.createElement(Y.Portal,null,e.createElement(Y.Content,Object.assign({ref:a,sideOffset:n,className:ce("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r)},s)))}));Et.displayName=Y.Content.displayName;const xt=e.forwardRef(((t,a)=>{var{className:r,inset:n}=t,s=oe(t,["className","inset"]);return e.createElement(Y.Item,Object.assign({ref:a,className:ce("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm !outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-5 [&>svg]:shrink-0",n&&"pl-8",r)},s))}));xt.displayName=Y.Item.displayName;const wt=e.forwardRef(((t,a)=>{var{className:r,children:n,checked:s}=t,o=oe(t,["className","children","checked"]);return e.createElement(Y.CheckboxItem,Object.assign({ref:a,className:ce("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm !outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",r),checked:s},o),e.createElement("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center"},e.createElement(Y.ItemIndicator,null,e.createElement(X,{className:"h-4 w-4"}))),n)}));wt.displayName=Y.CheckboxItem.displayName;const Nt=e.forwardRef(((t,a)=>{var{className:r,children:n}=t,s=oe(t,["className","children"]);return e.createElement(Y.RadioItem,Object.assign({ref:a,className:ce("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm !outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",r)},s),e.createElement("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center"},e.createElement(Y.ItemIndicator,null,e.createElement(ee,{className:"h-2 w-2 fill-current"}))),n)}));Nt.displayName=Y.RadioItem.displayName;const kt=e.forwardRef(((t,a)=>{var{className:r,inset:n}=t,s=oe(t,["className","inset"]);return e.createElement(Y.Label,Object.assign({ref:a,className:ce("px-2 py-1.5 text-sm font-semibold",n&&"pl-8",r)},s))}));kt.displayName=Y.Label.displayName;const Ct=e.forwardRef(((t,a)=>{var{className:r}=t,n=oe(t,["className"]);return e.createElement(Y.Separator,Object.assign({ref:a,className:ce("-mx-1 my-1 h-px bg-muted",r)},n))}));Ct.displayName=Y.Separator.displayName;const Ft=t=>{var{className:a}=t,r=oe(t,["className"]);return e.createElement("span",Object.assign({className:ce("ml-auto text-xs tracking-widest opacity-60",a)},r))};Ft.displayName="DropdownMenuShortcut";const jt=t.forwardRef((({query:e,onQueryChange:a,onSearch:o,textConfig:i,collections:l=[],currentCollectionId:c,onCollectionChange:d,disableImageAttachment:m=!1,attachedImages:g=[],onImageUpload:p,onRemoveImage:f,isSearching:b=!1,autocompleteSuggestions:y=[],onAutocompleteSuggestionSelect:v},x)=>{var w;const N=n(null),[k,C]=r(!1);s((()=>{const e=e=>{e.target.closest(".suggestions-dropdown")||C(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)}),[]),s((()=>{e.trim()&&C(!0)}),[e]);const F=k&&e.trim()&&y.length>0,j={hidden:{opacity:0,x:-4},visible:{opacity:1,x:0,transition:{duration:.2}}};return t.createElement("div",{className:"relative w-full","data-name":"PrimarySearch"},t.createElement("div",{className:ce("w-full overflow-hidden bg-background border border-border transition-all",F?"rounded-t-md":"rounded-md")},t.createElement("div",{className:"p-3 flex items-center bg-card"},t.createElement(T,{className:"h-5 w-5 mr-2 text-muted-foreground"}),t.createElement("textarea",{ref:x,value:e,onChange:e=>{var t;a(e.target.value),(t=e.target).style.height="auto",t.style.height=`${t.scrollHeight}px`},onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),o())},onFocus:()=>C(!0),placeholder:i.searchPlaceholder,className:"\n w-full\n resize-none\n !outline-none\n text-base\n py-1\n font-light\n min-h-9\n overflow-hidden\n border-none\n bg-transparent\n shadow-none\n placeholder:text-gray-400\n text-dark-900\n dark:text-neutral-200\n !ring-0\n ",rows:1}),b&&t.createElement("div",{className:"flex items-center justify-center ml-2"},t.createElement("div",{className:"animate-spin rounded-full size-4 border-2 border-t-transparent border-primary"}))),!m&&g.length>0&&t.createElement("div",{className:"flex gap-2 mt-3 overflow-x-auto pb-1 px-3"},g.map(((e,a)=>t.createElement("div",{key:a,className:"relative group rounded-lg overflow-hidden flex-shrink-0 size-20"},t.createElement("img",{src:e.preview,alt:`Attached ${a+1}`,className:"w-full h-full object-cover"}),t.createElement("button",{onClick:()=>null==f?void 0:f(a),className:"\n absolute\n top-1\n right-1\n rounded-full\n p-1\n opacity-0\n group-hover:opacity-100\n transition-opacity\n duration-200\n hover:bg-black/70\n bg-black/50\n "},t.createElement(D,{className:"size-3 text-white"})))))),!F&&t.createElement("div",{className:"flex items-center justify-between px-3 py-2 border-t border-border"},t.createElement("div",{className:"flex gap-2"},l.length>0&&t.createElement(ut,null,t.createElement(ht,{asChild:!0},t.createElement(Ne,{variant:"ghost",size:"sm",className:"\n transition-all\n duration-200\n rounded-md\n h-8\n flex\n items-center\n gap-1\n hover:bg-opacity-80\n text-foreground\n "},(null===(w=l.find((e=>e.id===c)))||void 0===w?void 0:w.name)||i.allDocumentsText||"All documents",t.createElement(S,{className:"size-4 text-secondary-foreground"}))),t.createElement(Et,{className:"max-w-48"},l.map((e=>t.createElement(xt,{key:e.id,onClick:()=>null==d?void 0:d(e.id)},e.id===c?t.createElement(E,{className:"rounded-full text-primary-500 !size-5",weight:"fill"}):t.createElement(U,{className:"rounded-full !size-5 text-gray-300"}),t.createElement("span",{className:"text-sm truncate"},e.name)))))),!m&&t.createElement(t.Fragment,null,t.createElement("input",{type:"file",ref:N,accept:"image/*",multiple:!0,className:"hidden",onChange:p}),t.createElement(Ne,{variant:"ghost",size:"sm",className:"rounded-md h-8 hover:bg-opacity-80 dark:text-neutral-200",onClick:()=>{var e;return null===(e=N.current)||void 0===e?void 0:e.click()}},t.createElement(B,{className:"size-4 text-secondary-foreground"}),i.attachImageText))),t.createElement("div",{className:"flex items-center"},t.createElement(Ne,{size:"sm",disabled:!e||b,className:"rounded-md size-8 disabled:opacity-50 bg-primary",onClick:o},b?t.createElement("div",{className:"animate-spin rounded-full size-4 border-2 border-t-transparent border-white"}):t.createElement(Q,{className:"text-dark-900",size:16,weight:"bold"}))))),t.createElement(u,{mode:"wait"},F&&t.createElement(h.div,{variants:{hidden:{opacity:0,scale:.95,transformOrigin:"top"},visible:{opacity:1,scale:1,transition:{type:"spring",stiffness:500,damping:30,mass:.5}},exit:{opacity:0,scale:.95,transition:{duration:.15,ease:"easeOut"}}},initial:"hidden",animate:"visible",exit:"exit",className:"\n suggestions-dropdown\n absolute\n left-0\n right-0\n z-50\n overflow-hidden\n bg-card\n border-border\n border-b border-l border-r border-solid rounded-b-md shadow-md -mt-px\n "},t.createElement(h.div,{className:"md:hidden",variants:j},e.trim()&&t.createElement("div",{role:"option","aria-selected":!1,tabIndex:0,className:"\n px-4 py-3\n cursor-pointer\n flex\n items-center\n gap-3\n transition-colors\n duration-200\n hover:bg-gray-50/50\n text-foreground\n bg-gray-100\n border-b border border-border\n dark:bg-slate-500\n dark:border-dark-800/20\n ",onClick:()=>{o(),C(!1)},onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),o(),C(!1))}},t.createElement(T,{className:"size-4 flex-shrink-0 text-secondary-foreground"}),t.createElement("span",{className:"text-[15px]"},e),t.createElement("div",{className:"ml-auto flex items-center"},t.createElement(A,{className:"size-4 text-secondary-foreground"})))),t.createElement(h.div,{variants:{visible:{transition:{staggerChildren:.03,delayChildren:.05}}},initial:"hidden",animate:"visible"},y.map((e=>t.createElement(h.div,{key:e.id,variants:j,role:"option","aria-selected":!1,tabIndex:0,className:"px-4 py-3 cursor-pointer flex items-center gap-3 transition-colors duration-200 hover:bg-gray-200/50 text-foreground",onClick:()=>{null==v||v(e),C(!1)},onKeyDown:t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),null==v||v(e),C(!1))}},t.createElement(T,{className:"size-4 flex-shrink-0 text-secondary-foreground"}),t.createElement("span",{className:"text-[15px]"},e.question),t.createElement("div",{className:"ml-auto flex items-center"},t.createElement(A,{className:"size-4 text-secondary-foreground"})))))))))}));jt.displayName="PrimarySearch";var zt="FollowUpSearchBar-module_followUpSearchBar__DiKdH";const St=e.forwardRef(((t,a)=>{var{className:r}=t,n=oe(t,["className"]);return e.createElement("textarea",Object.assign({className:ce("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",r),ref:a},n))}));function It({followUpQuery:e,setFollowUpQuery:a,isSearching:r,handleFollowUpSearch:s,textConfig:o,offset:i=0}){const l=n(null);t.useEffect((()=>{l.current&&(l.current.style.height="inherit",l.current.style.height=`${l.current.scrollHeight}px`)}),[e]);return t.createElement(h.footer,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5},className:zt,style:{left:`${i}px`}},t.createElement("div",{className:"container flex items-center justify-center p-3"},t.createElement("div",{className:"relative flex w-full items-center gap-2 rounded bg-card px-2 border border-dark-400"},t.createElement("div",{className:"size-6 flex flex-shrink-0 justify-center items-center"},t.createElement(T,{className:"size-5 text-secondary-foreground"})),t.createElement(St,{ref:l,value:e,onChange:e=>a(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),s())},placeholder:o.followUpPlaceholder,className:"min-h-[44px] w-full resize-none border-0 shadow-none bg-transparent px-0 py-2.5 focus:outline-none focus:ring-0 focus-visible:ring-0",rows:1,disabled:r}),t.createElement(Ne,{type:"button",size:"icon",disabled:r||!e.trim(),onClick:s,className:ce("h-8 w-8 shrink-0 rounded",e?"bg-primary text-primary-foreground":"bg-dark-400 dark:bg-muted text-white")},r?t.createElement("div",{className:"animate-spin rounded-full size-4 sm:size-5 border-2 border-dark/40 !border-t-foreground dark:border-dark-500 "}):t.createElement(P,{className:"size-6"})))))}function Ot(e){var{headerText:a,onExpandButtonClick:r,onBackButtonClick:n,className:s}=e,o=oe(e,["headerText","onExpandButtonClick","onBackButtonClick","className"]);const i=Ke();return t.createElement("div",Object.assign({className:ce("w-full max-lg:bg-primary max-lg:text-primary-foreground max-lg:h-14 max-lg:leading-6 px-3 py-4 flex items-center justify-between","lg:justify-center lg:space-y-4 lg:p-0",s)},o),t.createElement(h.h1,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,delay:.3},className:"lg:text-5xl m-0 text-primary-foreground lg:text-foreground flex gap-1 items-center"},i&&t.createElement(Ne,{size:"icon",variant:"ghost",onClick:n,"aria-label":"Go back",className:"lg:hidden"},t.createElement($,null)),t.createElement("span",null,a)),t.createElement("div",{className:"lg:hidden"},t.createElement(Ne,{size:"icon",variant:"ghost",onClick:r,"aria-label":"Expand widget"},t.createElement(q,null))))}St.displayName="Textarea";const At=e.forwardRef(((t,a)=>{var{className:r,children:n}=t,s=oe(t,["className","children"]);return e.createElement(te.Root,Object.assign({className:ce("relative overflow-hidden",r)},s),e.createElement(te.Viewport,{ref:a,className:"h-full w-full rounded-[inherit]"},n),e.createElement(Lt,null),e.createElement(te.Corner,null))}));At.displayName=te.Root.displayName;const Lt=e.forwardRef(((t,a)=>{var{className:r,orientation:n="vertical"}=t,s=oe(t,["className","orientation"]);return e.createElement(te.ScrollAreaScrollbar,Object.assign({ref:a,orientation:n,className:ce("flex touch-none select-none transition-colors","vertical"===n&&"h-full w-2.5 border-l border-l-transparent p-[1px]","horizontal"===n&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",r)},s),e.createElement(te.ScrollAreaThumb,{className:"relative flex-1 rounded-full bg-dark-400"}))}));function Rt({query:e,endpoint:t,collectionId:a,headers:n,conversationId:o,delay:i=300}){const[l,d]=r([]),[m,u]=r(!1),[h,g]=r(),p=function(e,t){const[a,n]=r(e);return s((()=>{const a=setTimeout((()=>{n(e)}),t);return()=>{clearTimeout(a)}}),[e,t]),a}(e,i),f=c((()=>ie(this,void 0,void 0,(function*(){var e;if(p.trim()){u(!0),g(void 0);try{const r=yield function({endpoint:e,query:t,collectionId:a,headers:r,conversationId:n}){return ie(this,void 0,void 0,(function*(){return yield et(e,{method:"POST",headers:r,retry:tt,body:Object.assign(Object.assign({query:t},a&&"all"!==a&&{collectionId:a}),n&&{conversationId:n})})}))}({endpoint:t,query:p,collectionId:a,headers:n,conversationId:o});d(null===(e=null==r?void 0:r.response)||void 0===e?void 0:e.results)}catch(e){console.error("Error fetching autocomplete suggestions:",e),g(e instanceof Error?e.message:"Failed to fetch suggestions"),d([])}finally{u(!1)}}else d([])}))),[p,t,a,n,o]);return s((()=>{f()}),[f]),{suggestions:l,isLoading:m,error:h}}Lt.displayName=te.ScrollAreaScrollbar.displayName;const Tt={headerText:"How can we help you today?",searchPlaceholder:"Ask a question or type a search term here ...",attachImageText:"Attach image",allDocumentsText:"All documents",loadingSearchText:"Searching for relevant content...",loadingAnswerText:"Crafting a response...",errorText:"Sorry, there was an error generating the answer.",followUpPlaceholder:"Ask follow-up",positiveAnswerText:"Helpful",negativeAnswerText:"Not helpful",uncertaintyFallbackText:{en:"Sorry, I can't find a clear answer to your question. Please try rephrasing or check the related sources below.",es:"Lo siento, no puedo encontrar una respuesta clara. Intente reformular la pregunta o consulte las fuentes relacionadas.",fr:"Désolé, je ne trouve pas de réponse claire. Essayez de reformuler ou consultez les sources connexes.",de:"Entschuldigung, ich finde keine klare Antwort. Versuchen Sie es anders zu formulieren oder sehen Sie sich die verwandten Quellen an.",it:"Mi dispiace, non trovo una risposta chiara. Prova a riformulare o consulta le fonti correlate.",pt:"Desculpe, não encontro uma resposta clara. Tente reformular ou consulte as fontes relacionadas.",nl:"Sorry, ik kan geen duidelijk antwoord vinden. Probeer het anders te formuleren of bekijk de gerelateerde bronnen.",pl:"Przepraszam, nie znajduję jasnej odpowiedzi. Spróbuj przeformułować pytanie lub sprawdź powiązane źródła.",ru:"Извините, я не могу найти четкого ответа. Попробуйте переформулировать или ознакомьтесь со связанными источниками.",ja:"申し訳ありませんが、明確な回答が見つかりません。質問の言い換えや、関連ソースをご確認ください。",ko:"죄송합니다. 명확한 답변을 찾을 수 없습니다. 질문을 다시 작성하거나 관련 소스를 확인해 주세요.",zh:"抱歉,找不到明确的答案。请尝试重新表述或查看相关来源。","zh-TW":"抱歉,找不到明確的答案。請嘗試重新表述或查看相關來源。"}},Dt=d((({suggestions:e=[],collections:a=[],selectedCollectionId:o,onCollectionChange:i,searchEndpoint:l,answerEndpoint:d,feedbackEndpoint:g,loadConversationEndpoint:p,autocompleteEndpoint:f,disableFollowUpQuestions:b=!1,disableImageAttachment:y=!1,disableFeedback:v=!1,siblingNode:E,offset:x=0,headers:w,textConfig:N={},followUpQuestionsEndpoint:k,searchPath:C,className:F,onExpandButtonClick:j},z)=>{const{query:S,setQuery:I,followUpQuery:O,setFollowUpQuery:A,isSearching:L,setIsSearching:R,showResults:T,setShowResults:D,answers:U,setAnswers:B,activeAnswerIndex:Q,setActiveAnswerIndex:P,conversationId:$,setConversationId:q,isLoadingConversation:M}=He(),_=Object.assign(Object.assign({},Tt),N),[Z,W]=r(!1),[V,H]=r([]),[K,Y]=r(o),[J,X]=r(!0),ee=n(null),te=n([]),ae=n(null),re=n(null),ne=n(null),{suggestions:se}=Rt({query:S,endpoint:f||"",collectionId:K,headers:w,conversationId:$,delay:300}),{loadConversationById:oe}=ot({loadConversationEndpoint:p,headers:w,mergedTextConfig:_}),{updateUrlWithConversationId:me,removeConversationIdFromUrl:ue}=(e=>{const{conversationId:t,answers:a}=He(),r=c((t=>{const a=new URL(window.location.href);e&&(a.pathname=e),a.searchParams.set("conversation",t),window.history.replaceState({},"",a.toString())}),[]),n=c((()=>{const e=new URL(window.location.href);e.searchParams.delete("conversation"),window.history.replaceState({},"",e.toString())}),[]);return s((()=>{t&&a.length>0&&r(t)}),[t,a.length]),{updateUrlWithConversationId:r,removeConversationIdFromUrl:n}})(C),{addNewAnswer:he,updateLastAnswer:ge}=(()=>{const{setAnswers:e}=He();return{addNewAnswer:c((t=>{e(G((e=>{e.push({question:t,answer:"",isLoading:!0,isSearchLoading:!0,searchResults:[],searchQueryId:void 0,isStreaming:!1})})))}),[e]),updateLastAnswer:c((t=>{e(G((e=>{var a;const r=e[e.length-1];if(r){const e=r.searchResults||[];Object.assign(r,t,{searchResults:null!==(a=t.searchResults)&&void 0!==a?a:e})}})))}),[e])}})(),{scrollToLastAnswer:pe,scrollToAnswer:fe}=((e,t)=>({scrollToLastAnswer:()=>{requestAnimationFrame((()=>{var a;const r=null===(a=e.current)||void 0===a?void 0:a[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:a=>{requestAnimationFrame((()=>{var r;const n=null===(r=e.current)||void 0===r?void 0:r[a],s=t.current;if(n&&s){const e=n.getBoundingClientRect(),t=s.getBoundingClientRect(),a=s.scrollTop+(e.top-t.top)-80;s.scrollTo({top:a,behavior:"smooth"})}}))}}))(te,ae),{subscribeToStateChanges:be}=(()=>{const e=n([]),{showResults:t,answers:a,isLoadingConversation:r,loadError:o}=He();return s((()=>{const n={showResults:t,answers:a,isLoading:r,error:o};e.current.forEach((e=>e(n)))}),[t,a,r,o]),{subscribeToStateChanges:n=>(e.current.push(n),n({showResults:t,answers:a,isLoading:r,error:o}),()=>{e.current=e.current.filter((e=>e!==n))})}})(),ye=()=>ie(void 0,void 0,void 0,(function*(){ge({isStreaming:!1,isLoading:!1});const e=U[U.length-1];if(k&&!b&&(null==e?void 0:e.searchQueryId))try{const t=yield function({endpoint:e,searchQueryId:t,headers:a,conversationId:r}){return ie(this,void 0,void 0,(function*(){return(yield et(e,{method:"POST",headers:a,body:Object.assign({searchQueryId:t},r&&{conversationId:r})})).questions}))}({endpoint:k,searchQueryId:e.searchQueryId,headers:w,conversationId:$});ge({followUpQuestions:t})}catch(e){console.error("Error fetching follow-up questions:",e)}})),ve=e=>ie(void 0,void 0,void 0,(function*(){var t,a;const r=null===(t=e.body)||void 0===t?void 0:t.getReader();if(!r)return;ge({isLoading:!1,isStreaming:!0});let n="";try{let e,t;for(;({done:e,value:t}=yield r.read()),!e;){n+=(new TextDecoder).decode(t);const{uncertain:e,language:r}=de(n);ge({answer:n,isLoading:!1,isStreaming:!0,isUncertain:e,uncertaintyLanguage:r,uncertaintyFallbackText:e&&r&&(null===(a=_.uncertaintyFallbackText)||void 0===a?void 0:a[r])?_.uncertaintyFallbackText[r]:void 0})}}catch(e){console.error("Error streaming answer:",e)}finally{yield ye(),r.releaseLock()}})),Ee=(e=S.trim())=>ie(void 0,void 0,void 0,(function*(){if(e){R(!0),D(!0);const t=$||st();$||q(t);const a=new URL(window.location.href);(C&&a.pathname!==C||a.searchParams.get("conversation")!==t)&&me(t);const r={question:e,answer:"",isLoading:!0,isSearchLoading:!0,searchResults:[],searchQueryId:void 0,isStreaming:!1};B((e=>[...e,r]));const n=U.length;P(n),pe(),yield Promise.resolve();try{const a=yield rt({endpoint:l,query:e,collectionId:K,headers:w,conversationId:t});B((e=>{const t=[...e];return t[t.length-1]&&(t[t.length-1]=Object.assign(Object.assign({},t[t.length-1]),{searchResults:a.results,searchQueryId:a.searchQueryId,isSearchLoading:!1})),t}));const r=yield nt({endpoint:d,searchQueryId:a.searchQueryId,headers:w,conversationId:t});yield ve(r)}catch(e){console.error("Error generating answer:",e),B((e=>{const t=[...e];return t[t.length-1]&&(t[t.length-1]=Object.assign(Object.assign({},t[t.length-1]),{answer:_.errorText||"An error occurred",isLoading:!1,isSearchLoading:!1,isStreaming:!1})),t}))}finally{R(!1)}}})),xe=e=>{I(""),A(""),D(!1),B([]),P(0),H([]);const t=st();q(t),ue(),ee.current&&(ee.current.style.height="auto"),e&&(I(e),Ee(e))};m(z,(()=>({createNewThread:xe,showFollowUpThread:e=>{X(e)},subscribeToStateChanges:be}))),s((()=>{Y(o)}),[o]);const we=(e,t,a)=>ie(void 0,void 0,void 0,(function*(){if(g){B((t=>{const r=[...t];return r[a]&&(r[a]=Object.assign(Object.assign({},r[a]),{feedback:e})),r}));try{yield function({endpoint:e,searchQueryId:t,response:a,headers:r,conversationId:n}){return ie(this,void 0,void 0,(function*(){yield et(e,{method:"POST",headers:r,body:Object.assign({searchQueryId:t,response:a},n&&{conversationId:n})})}))}({endpoint:g,searchQueryId:t,response:e,headers:w,conversationId:$})}catch(e){console.error("Error sending feedback:",e),B((e=>{const t=[...e];return t[a]&&(t[a]=Object.assign(Object.assign({},t[a]),{feedback:void 0})),t}))}}})),Ne=e=>{if(e.conversationId)oe(e.conversationId);else{if(D(!0),R(!0),!$){const e=st();q(e)}he(e.question),ie(void 0,void 0,void 0,(function*(){try{const t=yield rt({endpoint:l,query:e.question,collectionId:K,headers:w,conversationId:$}),a=t.results;ge({searchResults:a,searchQueryId:t.searchQueryId,isSearchLoading:!1});const r=yield nt({endpoint:d,searchQueryId:t.searchQueryId,headers:w,conversationId:$});yield ve(r)}catch(e){console.error("Error generating answer:",e),ge({answer:_.errorText||"An error occurred",isLoading:!1,isSearchLoading:!1})}finally{R(!1),pe()}}))}};s((()=>{const e=()=>{const e=window.innerHeight+window.pageYOffset>=document.documentElement.scrollHeight-100;W(!e)};return window.addEventListener("scroll",e),()=>window.removeEventListener("scroll",e)}),[]),s((()=>()=>{V.forEach((e=>URL.revokeObjectURL(e.preview)))}),[V]);s((()=>{const e=()=>{new URLSearchParams(window.location.search).get("conversation")||(I(""),A(""),D(!1),B([]),P(0),H([]),ee.current&&(ee.current.style.height="auto"))};return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)}),[]);const Ce=e=>{Ee(e)};return t.createElement("div",{className:ce("w-full relative h-dvh",F),"data-name":"ChatSearch"},t.createElement(Ot,{"data-name":"Header",headerText:_.headerText,onExpandButtonClick:()=>j,onBackButtonClick:()=>{xe()},className:"lg:mb-4"}),t.createElement(At,{className:le,ref:ae},t.createElement(u,null,M?t.createElement(h.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"},t.createElement("div",{className:"flex flex-col items-center gap-4"},t.createElement("div",{className:"animate-spin rounded-full size-8 border-2 border-t-transparent border-primary"}),t.createElement("p",{className:"text-sm text-secondary-foreground"},"Loading conversation..."))):T?t.createElement(h.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-4"},U.map(((e,a)=>t.createElement(h.div,{key:a,ref:e=>te.current[a]=e,initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,delay:.1*a}},t.createElement(lt,{answer:e.answer,question:e.question,searchResults:e.searchResults,isStreaming:e.isStreaming,searchQueryId:e.searchQueryId,feedback:e.feedback,onFeedback:t=>{we(t,e.searchQueryId,a)},disableFeedback:v,textConfig:_,isLoading:e.isLoading,isSearchLoading:e.isSearchLoading}),a===U.length-1&&!b&&e.followUpQuestions&&!e.isStreaming&&t.createElement("div",{className:"mt-4"},t.createElement(ct,{questions:e.followUpQuestions,onQuestionClick:Ce})))))):t.createElement(h.div,{key:"search",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5},className:"w-full"},t.createElement("div",{className:"max-lg:px-3 pb-4 max-lg:bg-primary"},t.createElement(h.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,delay:.4}},t.createElement(jt,{ref:ne,query:S,onQueryChange:e=>{var t;I(e),ee.current&&((t=ee.current).style.height="auto",t.style.height=`${t.scrollHeight}px`)},onSearch:()=>{Ee()},textConfig:_,collections:a,currentCollectionId:K,onCollectionChange:e=>{Y(e),null==i||i(e)},disableImageAttachment:y,attachedImages:V,onImageUpload:e=>{const t=e.target.files;if(t){const e=Array.from(t).map((e=>({file:e,preview:URL.createObjectURL(e)})));H((t=>[...t,...e]))}re.current&&(re.current.value="")},onRemoveImage:e=>{H((t=>(URL.revokeObjectURL(t[e].preview),t.filter(((t,a)=>a!==e)))))},isSearching:L,autocompleteSuggestions:se,onAutocompleteSuggestionSelect:Ne}))),t.createElement(ke,{suggestions:e,onQuestionClick:Ne,title:_.suggestionsTitle}),E)),T&&U.length>1&&t.createElement("div",{className:"hidden lg:block"},t.createElement(dt,{questions:U.map((e=>e.question)),activeIndex:Q,onNavigate:e=>{P(e),fe(e)},offset:x}))),T&&J&&t.createElement(It,{followUpQuery:O,setFollowUpQuery:A,isSearching:L,handleFollowUpSearch:()=>{ie(void 0,void 0,void 0,(function*(){if(O.trim()){const e=O;I(e),A(""),yield Ee(e)}}))},textConfig:_,offset:x}),Z&&T&&t.createElement(mt,{onClick:pe}))}));Dt.displayName="ChatSearch";const Ut=d(((e,a)=>t.createElement(Ve,null,t.createElement(Dt,Object.assign({},e,{ref:a}))))),Bt=e.forwardRef(((t,a)=>{var{className:r}=t,n=oe(t,["className"]);return e.createElement(ae.Root,Object.assign({className:ce("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:!outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",r)},n,{ref:a}),e.createElement(ae.Thumb,{className:ce("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")}))}));Bt.displayName=ae.Root.displayName;export{se as BrainfishColors,Ne as Button,Ut as ChatSearch,Ve as ChatSearchProvider,Ce as Collapsible,je as CollapsibleContent,Fe as CollapsibleTrigger,ut as DropdownMenu,wt as DropdownMenuCheckboxItem,Et as DropdownMenuContent,gt as DropdownMenuGroup,xt as DropdownMenuItem,kt as DropdownMenuLabel,pt as DropdownMenuPortal,bt as DropdownMenuRadioGroup,Nt as DropdownMenuRadioItem,Ct as DropdownMenuSeparator,Ft as DropdownMenuShortcut,ft as DropdownMenuSub,vt as DropdownMenuSubContent,yt as DropdownMenuSubTrigger,ht as DropdownMenuTrigger,At as ScrollArea,Lt as ScrollBar,Bt as Switch,St as Textarea,ue as Tooltip,ge as TooltipContent,me as TooltipProvider,he as TooltipTrigger,we as buttonVariants,re as customColor,He as useChatSearch,Ke as useIsChatSearchDirty};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|