@brainfish-ai/components 0.0.49-beta.7 → 0.0.50

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 CHANGED
@@ -1,2 +1,2 @@
1
- import*as e from"react";import t,{memo as a,useState as r,useEffect as n,useRef as s,useCallback as o,forwardRef as i,useImperativeHandle as l}from"react";import{AnimatePresence as c,motion as d}from"framer-motion";import*as m from"@radix-ui/react-tooltip";import{clsx as u}from"clsx";import{twMerge as h}from"tailwind-merge";import{jsx as g,Fragment as f}from"react/jsx-runtime";import{cva as p}from"class-variance-authority";import{CheckCircle as y,Clipboard as b,Download as v,ArrowsOut as E,Heart as x,ThumbsUp as w,ThumbsDown as N,Check as k,Copy as C,FileText as F,CaretDown as j,ArrowSquareOut as z,Question as O,CaretRight as S,ArrowsVertical as I,ArrowDown as L,MagnifyingGlass as A,X as R,Circle as T,Image as D,ArrowRight as P,ArrowUp as $}from"@phosphor-icons/react";import*as U from"@radix-ui/react-collapsible";import Q from"rehype-raw";import q from"remark-gfm";import{Prism as B}from"react-syntax-highlighter";import{a11yDark as M}from"react-syntax-highlighter/dist/esm/styles/prism";import _ from"react-markdown";import Z from"mermaid";import*as W from"@radix-ui/react-dropdown-menu";import{ChevronRightIcon as H,CheckIcon as V,DotFilledIcon as K}from"@radix-ui/react-icons";import*as Y from"@radix-ui/react-switch";function G(e,t){return({opacityVariable:a,opacityValue:r})=>`rgb(var(${e}, ${t}) / ${void 0!==r?r:`var(${a}, 1)`})`}const J={50:"#FAFAFA",100:"#F5F5F5",200:"#E5E5E5",300:"#D4D4D4",400:"#A3A3A3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",DEFAULT:"#171717"},X={primary:{50:"#F7FEE8",100:"#ECFCCC",200:"#D9F99E",300:"#BEF265",400:"#A3E635",500:"#84CC17",600:"#65A30E",700:"#4E7C10",800:"#406213",900:"#375415",DEFAULT:"#A3E635",foreground:G("--bfc-primary-foreground",J.DEFAULT)},dark:J,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 ee(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 te(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 ae(...e){return h(u(e))}function re(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+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}}"function"==typeof SuppressedError&&SuppressedError;const ne=t=>{var{delayDuration:a=200}=t,r=ee(t,["delayDuration"]);return e.createElement(m.Provider,Object.assign({delayDuration:a},r))},se=m.Root,oe=m.Trigger,ie=e.forwardRef(((t,a)=>{var{className:r,sideOffset:n=4,background:s,textColor:o,borderColor:i,style:l}=t,c=ee(t,["className","sideOffset","background","textColor","borderColor","style"]);return e.createElement(m.Portal,null,e.createElement(m.Content,Object.assign({ref:a,sideOffset:n,className:ae("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 le(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function ce(...e){return t=>{let a=!1;const r=e.map((e=>{const r=le(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():le(e[t],null)}}}}ie.displayName=m.Content.displayName;var de=e.forwardRef(((t,a)=>{const{children:r,...n}=t,s=e.Children.toArray(r),o=s.find(he);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 g(me,{...n,ref:a,children:e.isValidElement(t)?e.cloneElement(t,void 0,r):null})}return g(me,{...n,ref:a,children:r})}));de.displayName="Slot";var me=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,{...ge(n,r.props),ref:a?ce(a,t):t})}return e.Children.count(r)>1?e.Children.only(null):null}));me.displayName="SlotClone";var ue=({children:e})=>g(f,{children:e});function he(t){return e.isValidElement(t)&&t.type===ue}function ge(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 fe=p("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"}}),pe=e.forwardRef(((t,a)=>{var{className:r,variant:n,size:s,asChild:o=!1}=t,i=ee(t,["className","variant","size","asChild"]);const l=o?de:"button";return e.createElement(l,Object.assign({className:ae(fe({variant:n,size:s,className:r})),ref:a},i))}));function ye({suggestions:e,onQuestionClick:a,title:r="Suggested questions"}){return e&&0!==e.length?t.createElement("div",{className:"w-full"},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(pe,{key:e.id,onClick:()=>a(e),variant:"outline",className:"border-border font-normal"},void 0!==e.messageCount&&t.createElement(ne,null,t.createElement(se,null,t.createElement(oe,{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(ie,null,t.createElement("p",null,e.messageCount," messages in this conversation")))),t.createElement("span",{className:"line-clamp-1"},e.question)))))):null}pe.displayName="Button";const be=U.Root,ve=U.CollapsibleTrigger,Ee=e=>{var{children:a}=e,r=ee(e,["children"]);return t.createElement(U.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)},xe={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"},we=B,Ne=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(pe,{variant:"ghost",size:"icon",className:"size-5 text-zinc-400 hover:bg-zinc-700/50 hover:text-zinc-100",onClick:()=>{te(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(y,{size:18}):t.createElement(b,{size:18})),t.createElement(pe,{variant:"ghost",size:"icon",className:"size-5 text-zinc-400 hover:bg-zinc-700/50 hover:text-zinc-100",onClick:()=>{const t=xe[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(v,{size:18}))))),t.createElement("div",{className:"rounded-b-lg"},t.createElement(we,{language:e,style:M,PreTag:"div",wrapLongLines:!0,customStyle:{margin:0,borderTopLeftRadius:0,borderTopRightRadius:0}},a)))}));Ne.displayName="CodeBlock";const ke=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 Ce(t){const a=t.attrs.href.replace("share","embed");return e.createElement(ke,Object.assign({},t,{src:a,title:"Loom Embed"}))}function Fe(t){return e.createElement(ke,Object.assign({},t,{src:t.attrs.href,title:"Supademo Embed"}))}function je(t){return e.createElement(ke,Object.assign({},t,{src:t.attrs.href,title:"Typeform Embed"}))}function ze(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(ke,Object.assign({},t,{src:s,title:`Vimeo Embed (${r})`,height:"412px",border:!1}))}function Oe(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(ke,Object.assign({},t,{src:s,border:!0,title:`Wistia Embed (${n})`}))}function Se(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(ke,Object.assign({},t,{src:`https://www.youtube.com/embed/${a}?modestbranding=1`,title:`YouTube Embed (${a})`})):null}Ce.isMatch=e=>/^https:\/\/(www\.)?(use)?loom\.com\/(embed|share)\/(.*)$/.test(e),Fe.isMatch=e=>/^https:\/\/app\.supademo\.com\/embed\/(.*)$/.test(e),je.isMatch=e=>/^https:\/\/([A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)\.typeform\.com\/to\/(.*)$/.test(e),ze.isMatch=e=>/^(https?):\/\/(www\.)?vimeo\.com\/(?:channels\/(?:\w+\/)?|groups\/([^/]*)\/videos\/|)?(\d+)(\/)?(?:\?.*|#.*)?$/i.test(e),Oe.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))),Se.isMatch=e=>/^(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/(?:watch\?v=|embed\/|v\/|shorts\/)|youtu\.be\/)([a-zA-Z0-9_-]{11})(?:\/|[?&].*)?$/i.test(e);const Ie=[Ce,Fe,je,Se,Oe,ze],Le=t=>{const{href:a}=t.attrs,[s,o]=r(null);if(n((()=>{let e=!0;return(()=>{try{const r=Ie.find((e=>e.isMatch(a)));r&&e&&o({Component:r,props:t})}catch(e){console.error("Error finding embed match:",e)}})(),()=>{e=!1}}),[a,t]),s){const{Component:t,props:a}=s;return e.createElement(t,Object.assign({},a))}return null},Ae=a(_,((e,t)=>e.children===t.children)),Re={startOnLoad:!1,theme:"default",securityLevel:"loose",fontFamily:"inherit"},Te=({content:e})=>{const[a,o]=r(""),[i,l]=r(null),c=s(null),[d,m]=r(!1);return n((()=>{(()=>{try{Z.initialize(Re),m(!0)}catch(e){console.error("Error initializing mermaid:",e),l("Failed to initialize diagram renderer")}})()}),[]),n((()=>{if(!d)return;te(void 0,void 0,void 0,(function*(){try{const t=`mermaid-${Math.random().toString(36).substr(2,9)}`,a=yield Z.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}})},De=({src:t,alt:a})=>{const[r,n]=e.useState(!1),[s,o]=e.useState(!1),[i,l]=e.useState(!1),[m,u]=e.useState(!0),[h,g]=e.useState({width:0,height:0}),f=e.useRef(null),p=()=>{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:p,className:"border-0 p-0 bg-transparent relative group","aria-label":r?"Zoom out image":"Zoom in image"},m&&e.createElement("div",{className:"rounded-md bg-gray-200 dark:bg-gray-800 animate-pulse",style:{width:h.width||300,height:h.height||200,maxHeight:300}}),e.createElement("img",{ref:f,src:t,alt:a,onError:()=>{u(!1),l(!0)},onLoad:()=>{if(f.current){const{naturalWidth:e,naturalHeight:t}=f.current,a=300,r=e/t,n=Math.min(a,t);g({width:n*r,height:n})}u(!1)},className:"max-h-[300px] w-auto object-contain cursor-zoom-in hover:opacity-90 transition-opacity "+(m?"opacity-0 absolute":"opacity-100 relative")}),!m&&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(E,{size:16}))))),a&&!m&&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(c,null,r&&e.createElement(e.Fragment,null,e.createElement(d.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 bg-black/80 z-50",onClick:p}),e.createElement(d.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:p},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)))))},Pe=a((({message:e,isStreaming:a})=>{const[s,o]=r(e.content);n((()=>{var t;const a=re(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=s.replace(/^\n+|(\n+|\\)+$/g,"");return t.createElement(Ae,{className:"dark:prose-invert prose flex-1",remarkPlugins:[q],rehypePlugins:[Q],components:{code:e=>{var{inline:a,className:r,children:n}=e,s=ee(e,["inline","className","children"]);const o=/language-(\w+)/.exec(r||""),i=o&&o[1];return a||"mermaid"!==i&&"mermaidjs"!==i?!a&&i?t.createElement(Ne,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(Te,{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=ee(e,["children"]);if(r.href){const e=Le({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=Le({attrs:{href:null!=e?e:""}});return t.isValidElement(r)?r:t.createElement(De,{src:e,alt:a})},li:e=>{var{children:a}=e,r=ee(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=ee(e,["children"]);return t.createElement("span",Object.assign({className:"font-semibold"},r),a)},h1:e=>{var{children:a}=e,r=ee(e,["children"]);return t.createElement("h1",Object.assign({className:"text-2xl font-bold"},r),a)},h2:e=>{var{children:a}=e,r=ee(e,["children"]);return t.createElement("h2",Object.assign({className:"text-xl font-bold"},r),a)},h3:e=>{var{children:a}=e,r=ee(e,["children"]);return t.createElement("h3",Object.assign({className:"text-lg font-bold"},r),a)},h4:e=>{var{children:a}=e,r=ee(e,["children"]);return t.createElement("h4",Object.assign({className:"text-base font-bold"},r),a)},h5:e=>{var{children:a}=e,r=ee(e,["children"]);return t.createElement("h5",Object.assign({className:"text-base font-semibold"},r),a)},h6:e=>{var{children:a}=e,r=ee(e,["children"]);return t.createElement("h6",Object.assign({className:"text-sm font-semibold"},r),a)}}},i)}));function $e({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"},t.createElement(ne,null,t.createElement(se,null,t.createElement(oe,{asChild:!0},t.createElement("div",{className:"relative"},t.createElement(c,null,o&&t.createElement(t.Fragment,null,Array.from({length:8}).map(((e,a)=>t.createElement(d.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(x,{className:"size-4 text-rose-500",style:{filter:"drop-shadow(0 0 3px rgba(255, 75, 110, 0.8))",strokeWidth:2.5}})))),t.createElement(d.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(pe,{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":""),onClick:()=>l("accept"),disabled:s},t.createElement(d.div,{initial:{scale:1},animate:{scale:"accept"===e?[1,1.2,1]:1},transition:{duration:.3}},t.createElement(w,{weight:"bold"}))))),t.createElement(ie,null,t.createElement("p",null,n.positiveAnswerText||"Helpful")))),t.createElement(ne,null,t.createElement(se,null,t.createElement(oe,{asChild:!0},t.createElement(pe,{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":""),onClick:()=>l("reject"),disabled:s},t.createElement(d.div,{initial:{scale:1},animate:{scale:"reject"===e?[1,1.2,1]:1},transition:{duration:.3}},t.createElement(N,{weight:"bold"})))),t.createElement(ie,null,t.createElement("p",null,n.negativeAnswerText||"Not helpful")))))}Pe.displayName="FormattedMessage";const Ue=e=>{var{loading:a,className:r}=e,n=ee(e,["loading","className"]);return t.createElement("svg",Object.assign({width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",className:ae("min-h-6 min-w-6",r),style:{"--star-color":"rgb(var(--bfc-primary))"}},n),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:"rgb(var(--bfc-border))",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 Qe({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),[f,p]=r(!1),y=()=>te(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 p-6 relative mx-auto max-w-3xl bg-card border border-border"},t.createElement("div",{className:"flex items-start justify-between gap-2 mb-2"},t.createElement("div",{className:"flex gap-2"},t.createElement(Ue,{loading:m||s,className:"mt-1"}),t.createElement("h2",{className:"text-xl leading-normal font-semibold m-0 text-foreground"},a)),e&&t.createElement(ne,null,t.createElement(se,null,t.createElement(oe,{asChild:!0},t.createElement(pe,{variant:"ghost",size:"icon",onClick:()=>{y()},className:"-mt-1"},h?t.createElement(k,{className:"text-feedback-positive",weight:"bold"}):t.createElement(C,{className:"text-secondary-foreground",weight:"bold"}))),t.createElement(ie,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"})))):e?t.createElement("div",{className:"prose prose-sm max-w-none text-foreground"},t.createElement(Pe,{message:{content:e,uncertaintyFallbackText:d.uncertaintyFallbackText},isStreaming:s})):t.createElement("div",{className:"prose prose-sm max-w-none text-foreground"},t.createElement(Pe,{message:{content:"Sorry, there was an error generating the answer. Please try again."},isStreaming:s})),e&&!s&&!c&&t.createElement("div",{className:"mt-2"},t.createElement($e,{feedback:i,onFeedback:e=>{l&&o&&l(e)},textConfig:d,disabled:c})),n&&n.length>0&&t.createElement("div",{className:"mt-6 rounded-lg overflow-hidden bg-card border border-border"},t.createElement(be,{open:f,onOpenChange:p,className:"w-full"},t.createElement("div",null,t.createElement(ve,{asChild:!0},t.createElement(pe,{variant:"ghost",className:"w-full justify-between h-11"},t.createElement("div",{className:"flex items-center gap-2"},t.createElement(F,{className:"size-4 flex-shrink-0 text-secondary-foreground",weight:"bold"}),t.createElement("span",{className:"font-medium truncate text-base"},`Related Sources (${n.length})`)),t.createElement(j,{className:"size-4 flex-shrink-0 transition-transform duration-200 text-secondary-foreground "+(f?"rotate-180":""),weight:"bold"}),t.createElement("span",{className:"sr-only"},"Toggle")))),t.createElement(Ee,{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(z,{className:"size-4 flex-shrink-0 text-secondary-foreground",weight:"bold"}))))))))}function qe({questions:e,onQuestionClick:a}){return e.length?t.createElement(d.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(d.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(S,{className:"size-4 flex-shrink-0 text-secondary-foreground",weight:"bold"}))))))):null}function Be({questions:e,activeIndex:a,onNavigate:s,offset:o}){const[i,l]=r(a);n((()=>{l(a)}),[a]);const m=e.length,u=(()=>{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(m-2,a+2);e++)r(e);return m>1&&r(m-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(d.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(c,null,u.map(((r,n)=>{if("ellipsis"===r)return t.createElement(d.div,{key:`ellipsis-${n}`,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(I,{className:"size-4 text-foreground"}));const o=r,l=e[o];return t.createElement(d.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(ne,{delayDuration:100},t.createElement(se,null,t.createElement(oe,{asChild:!0},t.createElement("button",{onClick:()=>s(o),onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||s(o)},className:ae("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-dark-900":"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(ie,{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 Me({onClick:e}){return t.createElement(pe,{size:"icon",variant:"secondary",className:"fixed bottom-20 right-4 rounded-full transition-opacity duration-300 border-border shadow-md",onClick:e},t.createElement(L,{className:"size-5"}))}const _e=W.Root,Ze=W.Trigger,We=W.Group,He=W.Portal,Ve=W.Sub,Ke=W.RadioGroup,Ye=e.forwardRef(((t,a)=>{var{className:r,inset:n,children:s}=t,o=ee(t,["className","inset","children"]);return e.createElement(W.SubTrigger,Object.assign({ref:a,className:ae("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(H,{className:"ml-auto"}))}));Ye.displayName=W.SubTrigger.displayName;const Ge=e.forwardRef(((t,a)=>{var{className:r}=t,n=ee(t,["className"]);return e.createElement(W.SubContent,Object.assign({ref:a,className:ae("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))}));Ge.displayName=W.SubContent.displayName;const Je=e.forwardRef(((t,a)=>{var{className:r,sideOffset:n=4}=t,s=ee(t,["className","sideOffset"]);return e.createElement(W.Portal,null,e.createElement(W.Content,Object.assign({ref:a,sideOffset:n,className:ae("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)))}));Je.displayName=W.Content.displayName;const Xe=e.forwardRef(((t,a)=>{var{className:r,inset:n}=t,s=ee(t,["className","inset"]);return e.createElement(W.Item,Object.assign({ref:a,className:ae("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))}));Xe.displayName=W.Item.displayName;const et=e.forwardRef(((t,a)=>{var{className:r,children:n,checked:s}=t,o=ee(t,["className","children","checked"]);return e.createElement(W.CheckboxItem,Object.assign({ref:a,className:ae("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(W.ItemIndicator,null,e.createElement(V,{className:"h-4 w-4"}))),n)}));et.displayName=W.CheckboxItem.displayName;const tt=e.forwardRef(((t,a)=>{var{className:r,children:n}=t,s=ee(t,["className","children"]);return e.createElement(W.RadioItem,Object.assign({ref:a,className:ae("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(W.ItemIndicator,null,e.createElement(K,{className:"h-2 w-2 fill-current"}))),n)}));tt.displayName=W.RadioItem.displayName;const at=e.forwardRef(((t,a)=>{var{className:r,inset:n}=t,s=ee(t,["className","inset"]);return e.createElement(W.Label,Object.assign({ref:a,className:ae("px-2 py-1.5 text-sm font-semibold",n&&"pl-8",r)},s))}));at.displayName=W.Label.displayName;const rt=e.forwardRef(((t,a)=>{var{className:r}=t,n=ee(t,["className"]);return e.createElement(W.Separator,Object.assign({ref:a,className:ae("-mx-1 my-1 h-px bg-muted",r)},n))}));rt.displayName=W.Separator.displayName;const nt=t=>{var{className:a}=t,r=ee(t,["className"]);return e.createElement("span",Object.assign({className:ae("ml-auto text-xs tracking-widest opacity-60",a)},r))};nt.displayName="DropdownMenuShortcut";const st=t.forwardRef((({query:e,onQueryChange:a,onSearch:o,textConfig:i,collections:l=[],currentCollectionId:m,onCollectionChange:u,disableImageAttachment:h=!1,attachedImages:g=[],onImageUpload:f,onRemoveImage:p,isSearching:b=!1,autocompleteSuggestions:v=[],onAutocompleteSuggestionSelect:E},x)=>{var w;const N=s(null),[k,C]=r(!1);n((()=>{const e=e=>{e.target.closest(".suggestions-dropdown")||C(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)}),[]),n((()=>{e.trim()&&C(!0)}),[e]);const F=k&&e.trim()&&v.length>0,z={hidden:{opacity:0,x:-4},visible:{opacity:1,x:0,transition:{duration:.2}}};return t.createElement("div",{className:"relative w-full"},t.createElement("div",{className:ae("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(A,{className:"h-5 w-5 mr-2 text-secondary-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"}))),!h&&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==p?void 0:p(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(R,{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(_e,null,t.createElement(Ze,{asChild:!0},t.createElement(pe,{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===m)))||void 0===w?void 0:w.name)||i.allDocumentsText||"All documents",t.createElement(j,{className:"size-4 text-secondary-foreground"}))),t.createElement(Je,{className:"max-w-48"},l.map((e=>t.createElement(Xe,{key:e.id,onClick:()=>null==u?void 0:u(e.id)},e.id===m?t.createElement(y,{className:"rounded-full text-primary-500 !size-5",weight:"fill"}):t.createElement(T,{className:"rounded-full !size-5 text-gray-300"}),t.createElement("span",{className:"text-sm truncate"},e.name)))))),!h&&t.createElement(t.Fragment,null,t.createElement("input",{type:"file",ref:N,accept:"image/*",multiple:!0,className:"hidden",onChange:f}),t.createElement(pe,{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(D,{className:"size-4 text-secondary-foreground"}),i.attachImageText))),t.createElement("div",{className:"flex items-center"},t.createElement(pe,{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(P,{className:"text-dark-900",size:16,weight:"bold"}))))),t.createElement(c,{mode:"wait"},F&&t.createElement(d.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(d.div,{className:"md:hidden",variants:z},e.trim()&&t.createElement("div",{role:"option","aria-selected":!1,tabIndex:0,className:"\n px-4\n 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(A,{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(S,{className:"size-4 text-secondary-foreground"})))),t.createElement(d.div,{variants:{visible:{transition:{staggerChildren:.03,delayChildren:.05}}},initial:"hidden",animate:"visible"},v.map((e=>t.createElement(d.div,{key:e.id,variants:z,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==E||E(e),C(!1)},onKeyDown:t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),null==E||E(e),C(!1))}},t.createElement(A,{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(S,{className:"size-4 text-secondary-foreground"})))))))))}));function ot({followUpQuery:e,setFollowUpQuery:a,isSearching:r,handleFollowUpSearch:n,textConfig:o,offset:i=0}){const l=s(null);return t.createElement(d.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5},className:"fixed bottom-4 left-4 right-4 max-w-3xl mx-auto z-10",style:{left:`${i}px`}},t.createElement("div",{className:"py-0 px-4 rounded-full h-11 sm:h-14 flex items-center justify-between bg-card border border-border shadow-md"},t.createElement("div",{className:"flex items-center gap-2 sm:gap-3 flex-grow overflow-hidden h-full"},t.createElement(A,{className:"size-4 sm:size-5 flex-shrink-0 text-secondary-foreground"}),t.createElement("div",{className:"flex-grow pt-4 pb-3"},t.createElement("textarea",{ref:l,placeholder:o.followUpPlaceholder,value:e,onChange:e=>{a(e.target.value);e.target.style.height="auto",e.target.style.height=`${Math.min(e.target.scrollHeight,100)}px`,e.target.scrollHeight>100?e.target.style.overflowY="auto":e.target.style.overflowY="hidden"},onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),n())},disabled:r,className:"w-full bg-transparent !outline-none !ring-0 text-base resize-none overflow-hidden disabled:opacity-50 border-none min-h-6 max-h-24 placeholder:text-gray-400text-foreground shadow-none",rows:1}))),t.createElement("div",{className:"flex items-center gap-2 sm:gap-3 ml-2 sm:ml-3 flex-shrink-0"},t.createElement(pe,{size:"icon",variant:"ghost",disabled:r||!e.trim(),className:"rounded-full transition-colors duration-200 disabled:opacity-50 size-8 sm:size-9 flex items-center justify-center hover:bg-opacity-80",onClick:n},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($,{className:"size-4 sm:size-5 text-secondary-foreground"})))))}st.displayName="PrimarySearch";const it={maxRetries:3,baseDelay:1e3,shouldRetry:e=>{if(e instanceof TypeError)return!0;const t=e;return!!t.status&&t.status>=500}};let lt=Object.assign({},it),ct=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 dt(e){return te(this,void 0,void 0,(function*(){return new Promise((t=>setTimeout(t,e)))}))}function mt(e,t={}){return te(this,void 0,void 0,(function*(){const{retry:a={},headers:r={},body:n,isStream:s=!1,fallback:o={}}=t,i=ee(t,["retry","headers","body","isStream","fallback"]),l=Object.assign(Object.assign({},lt),a),c=Object.assign(Object.assign({},ct),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 dt(l.baseDelay*Math.pow(2,d-1)*a),d++}}))}const ut={maxRetries:3,baseDelay:300,shouldRetry:e=>{if(e instanceof TypeError)return!0;const t=e;return!!t.status&&(t.status>=500||429===t.status)}},ht={maxRetries:3,baseDelay:500,shouldRetry:e=>{if(e instanceof TypeError)return!0;const t=e;return!!t.status&&t.status>=500}};function gt({endpoint:e,query:t,collectionId:a,headers:r,conversationId:n}){var s;return te(this,void 0,void 0,(function*(){const o=yield mt(e,{method:"POST",headers:r,retry:ut,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 ft({endpoint:e,searchQueryId:t,headers:a,conversationId:r}){return te(this,void 0,void 0,(function*(){return mt(e,{method:"POST",headers:a,retry:ht,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 pt(){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)}))}`}function yt({endpoint:e,conversationId:t,headers:a}){return te(this,void 0,void 0,(function*(){return{data:(yield mt(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})))}}))}function bt({query:e,endpoint:t,collectionId:a,headers:s,conversationId:i,delay:l=300}){const[c,d]=r([]),[m,u]=r(!1),[h,g]=r(),f=function(e,t){const[a,s]=r(e);return n((()=>{const a=setTimeout((()=>{s(e)}),t);return()=>{clearTimeout(a)}}),[e,t]),a}(e,l),p=o((()=>te(this,void 0,void 0,(function*(){var e;if(f.trim()){u(!0),g(void 0);try{const r=yield function({endpoint:e,query:t,collectionId:a,headers:r,conversationId:n}){return te(this,void 0,void 0,(function*(){return yield mt(e,{method:"POST",headers:r,retry:ut,body:Object.assign(Object.assign({query:t},a&&"all"!==a&&{collectionId:a}),n&&{conversationId:n})})}))}({endpoint:t,query:f,collectionId:a,headers:s,conversationId:i});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([])}))),[f,t,a,s,i]);return n((()=>{p()}),[p]),{suggestions:c,isLoading:m,error:h}}const vt={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":"抱歉,找不到明確的答案。請嘗試重新表述或查看相關來源。"}},Et=i((({suggestions:e=[],collections:a=[],selectedCollectionId:o,onCollectionChange:i,searchEndpoint:m,answerEndpoint:u,feedbackEndpoint:h,loadConversationEndpoint:g,autocompleteEndpoint:f,disableFollowUpQuestions:p=!1,disableImageAttachment:y=!1,disableFeedback:b=!1,siblingNode:v,offset:E=0,headers:x,textConfig:w={},followUpQuestionsEndpoint:N,searchPath:k},C)=>{const F=Object.assign(Object.assign({},vt),w),[j,z]=r(""),[O,S]=r(""),[I,L]=r(!1),[A,R]=r(!1),[T,D]=r([]),[P,$]=r(!1),[U,Q]=r(0),[q,B]=r([]),[M,_]=r(o),[Z,W]=r(!0),[H,V]=r(""),[K,Y]=r(!1),[G,J]=r(),X=s(null),ee=s([]),ae=s(null),ne=s(null),se=s([]),oe=s(null),{suggestions:ie}=bt({query:j,endpoint:f||"",collectionId:M,headers:x,conversationId:H,delay:300});n((()=>{const e=new URLSearchParams(window.location.search).get("conversation");if(e&&g)Y(!0),R(!0),yt({endpoint:g,conversationId:e,headers:x}).then((t=>{D(t.data),V(e),R(!0)})).catch((e=>{console.error("Error loading conversation:",e),J(F.errorText||"An error occurred"),R(!1),D([]);const t=pt();V(t);const a=new URL(window.location.href);a.pathname="/",a.searchParams.delete("conversation"),window.history.replaceState({},"",a.toString())})).finally((()=>{Y(!1)}));else{const e=pt();V(e)}}),[g]),n((()=>{if(H&&T.length>0){const e=new URL(window.location.href);k?(e.pathname=k,e.searchParams.set("conversation",H)):e.searchParams.set("conversation",H),window.history.replaceState({},"",e.toString())}}),[H,T.length,k]),n((()=>{const e={showResults:A,answers:T,isLoading:K,error:G};se.current.forEach((t=>t(e)))}),[A,T,K,G]);const le=()=>{requestAnimationFrame((()=>{const e=ee.current[ee.current.length-1];if(e){const t=e.getBoundingClientRect(),a=window.pageYOffset||document.documentElement.scrollTop,r=t.top+a-80;window.scrollTo({top:r,behavior:"smooth"})}}))},ce=e=>te(void 0,void 0,void 0,(function*(){var t;const a=null===(t=e.body)||void 0===t?void 0:t.getReader();if(!a)return;D((e=>{const t=[...e],a=t[t.length-1];return a&&(a.isLoading=!1,a.isStreaming=!0,a.searchResults=a.searchResults||[]),t}));let r="";try{let e,t;for(;({done:e,value:t}=yield a.read()),!e;){const e=(new TextDecoder).decode(t);r+=e;const{uncertain:a,language:n}=re(r);D((e=>{var t;const s=[...e],o=s[s.length-1];return o&&(o.answer=r,o.isLoading=!1,o.isStreaming=!0,o.searchResults=o.searchResults||[],o.isUncertain=a,o.uncertaintyLanguage=n,a&&n&&(null===(t=F.uncertaintyFallbackText)||void 0===t?void 0:t[n])&&(o.uncertaintyFallbackText=F.uncertaintyFallbackText[n])),s}))}}catch(e){console.error("Error streaming answer:",e)}finally{D((e=>{const t=[...e],a=t[t.length-1];return a&&(a.isStreaming=!1,a.isLoading=!1,N&&!p&&a.searchQueryId&&te(void 0,void 0,void 0,(function*(){try{const e=yield function({endpoint:e,searchQueryId:t,headers:a,conversationId:r}){return te(this,void 0,void 0,(function*(){return(yield mt(e,{method:"POST",headers:a,body:Object.assign({searchQueryId:t},r&&{conversationId:r})})).questions}))}({endpoint:N,searchQueryId:a.searchQueryId,headers:x,conversationId:H});D((t=>{const a=[...t],r=a[a.length-1];return r&&(r.followUpQuestions=e),a}))}catch(e){console.error("Error fetching follow-up questions:",e)}}))),t})),a.releaseLock()}})),de=(e=j.trim())=>te(void 0,void 0,void 0,(function*(){if(e){L(!0),R(!0);const t=H||pt();H||V(t);const a=new URL(window.location.href);(k&&a.pathname!==k||a.searchParams.get("conversation")!==t)&&(k?(a.pathname=k,a.searchParams.set("conversation",t)):a.searchParams.set("conversation",t),window.history.replaceState({},"",a.toString()));const r={question:e,answer:"",isLoading:!0,isSearchLoading:!0,searchResults:[],searchQueryId:void 0,isStreaming:!1};D((e=>[...e,r]));const n=T.length;Q(n),le(),yield Promise.resolve();try{const a=yield gt({endpoint:m,query:e,collectionId:M,headers:x,conversationId:t});D((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 ft({endpoint:u,searchQueryId:a.searchQueryId,headers:x,conversationId:t});yield ce(r)}catch(e){console.error("Error generating answer:",e),D((e=>{const t=[...e];return t[t.length-1]&&(t[t.length-1]=Object.assign(Object.assign({},t[t.length-1]),{answer:F.errorText||"An error occurred",isLoading:!1,isSearchLoading:!1,isStreaming:!1})),t}))}finally{L(!1)}}}));l(C,(()=>({createNewThread:e=>{z(""),S(""),R(!1),D([]),Q(0),B([]);const t=pt();V(t);const a=new URL(window.location.href);a.searchParams.delete("conversation"),window.history.replaceState({},"",a.toString()),X.current&&(X.current.style.height="auto"),e&&(z(e),de(e))},showFollowUpThread:e=>{W(e)},subscribeToStateChanges:e=>(se.current.push(e),e({showResults:A,answers:T,isLoading:!1,error:void 0}),()=>{se.current=se.current.filter((t=>t!==e))})}))),n((()=>{_(o)}),[o]);const me=(e,t,a)=>te(void 0,void 0,void 0,(function*(){if(h){D((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 te(this,void 0,void 0,(function*(){yield mt(e,{method:"POST",headers:r,body:Object.assign({searchQueryId:t,response:a},n&&{conversationId:n})})}))}({endpoint:h,searchQueryId:t,response:e,headers:x,conversationId:H})}catch(e){console.error("Error sending feedback:",e),D((e=>{const t=[...e];return t[a]&&(t[a]=Object.assign(Object.assign({},t[a]),{feedback:void 0})),t}))}}})),ue=e=>{if(e.conversationId&&g)return Y(!0),R(!0),void yt({endpoint:g,conversationId:e.conversationId,headers:x}).then((t=>{D(t.data),V(e.conversationId),R(!0)})).catch((e=>{console.error("Error loading conversation:",e),J(F.errorText||"An error occurred"),R(!1),D([]);const t=pt();V(t);const a=new URL(window.location.href);a.pathname="/",a.searchParams.delete("conversation"),window.history.replaceState({},"",a.toString())})).finally((()=>{Y(!1)}));if(R(!0),L(!0),!H){const e=pt();V(e)}D((t=>[...t,{question:e.question,answer:"",isLoading:!0,isSearchLoading:!0}])),te(void 0,void 0,void 0,(function*(){try{const t=yield gt({endpoint:m,query:e.question,collectionId:M,headers:x,conversationId:H}),a=t.results;D((e=>{const r=[...e];return r[r.length-1]=Object.assign(Object.assign({},r[r.length-1]),{searchResults:a,searchQueryId:t.searchQueryId,isSearchLoading:!1}),r}));const r=yield ft({endpoint:u,searchQueryId:t.searchQueryId,headers:x,conversationId:H});yield ce(r)}catch(e){console.error("Error generating answer:",e),D((e=>{const t=[...e];return t[t.length-1]=Object.assign(Object.assign({},t[t.length-1]),{answer:F.errorText||"An error occurred",isLoading:!1,isSearchLoading:!1}),t}))}finally{L(!1),le()}}))};n((()=>{const e=()=>{const e=window.innerHeight+window.pageYOffset>=document.documentElement.scrollHeight-100;$(!e)};return window.addEventListener("scroll",e),()=>window.removeEventListener("scroll",e)}),[]),n((()=>()=>{q.forEach((e=>URL.revokeObjectURL(e.preview)))}),[q]);n((()=>{const e=()=>{new URLSearchParams(window.location.search).get("conversation")||(z(""),S(""),R(!1),D([]),Q(0),B([]),X.current&&(X.current.style.height="auto"))};return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)}),[]);const he=e=>{de(e)};return t.createElement("div",{ref:ae,className:"w-full max-w-3xl mx-auto relative"},t.createElement("div",{className:"w-full space-y-4"},t.createElement(c,null,K?t.createElement(d.div,{key:"loading",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"w-full flex items-center justify-center py-20"},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..."))):A?t.createElement(d.div,{key:"results",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.5},className:"w-full space-y-4 py-4 mb-20"},T.map(((e,a)=>t.createElement(d.div,{key:a,ref:e=>ee.current[a]=e,initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,delay:.1*a}},t.createElement(Qe,{answer:e.answer,question:e.question,searchResults:e.searchResults,isStreaming:e.isStreaming,searchQueryId:e.searchQueryId,feedback:e.feedback,onFeedback:t=>{me(t,e.searchQueryId,a)},disableFeedback:b,textConfig:F,isLoading:e.isLoading,isSearchLoading:e.isSearchLoading}),a===T.length-1&&!p&&e.followUpQuestions&&!e.isStreaming&&t.createElement("div",{className:"mt-4"},t.createElement(qe,{questions:e.followUpQuestions,onQuestionClick:he})))))):t.createElement(d.div,{key:"search",initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},transition:{duration:.5},className:"w-full space-y-8"},t.createElement("div",{className:"w-full text-center space-y-4"},t.createElement(d.h1,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,delay:.3},className:"text-5xl font-bold m-0 text-foreground"},F.headerText)),t.createElement(d.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,delay:.4}},t.createElement(st,{ref:oe,query:j,onQueryChange:e=>{var t;z(e),X.current&&((t=X.current).style.height="auto",t.style.height=`${t.scrollHeight}px`)},onSearch:()=>{de()},textConfig:F,collections:a,currentCollectionId:M,onCollectionChange:e=>{_(e),null==i||i(e)},disableImageAttachment:y,attachedImages:q,onImageUpload:e=>{const t=e.target.files;if(t){const e=Array.from(t).map((e=>({file:e,preview:URL.createObjectURL(e)})));B((t=>[...t,...e]))}ne.current&&(ne.current.value="")},onRemoveImage:e=>{B((t=>(URL.revokeObjectURL(t[e].preview),t.filter(((t,a)=>a!==e)))))},isSearching:I,autocompleteSuggestions:ie,onAutocompleteSuggestionSelect:ue})),t.createElement(ye,{suggestions:e,onQuestionClick:ue,title:F.suggestionsTitle}),v)),A&&T.length>1&&t.createElement("div",{className:"hidden sm:block"},t.createElement(Be,{questions:T.map((e=>e.question)),activeIndex:U,onNavigate:e=>{Q(e),(e=>{requestAnimationFrame((()=>{const t=ee.current[e];if(t){const e=t.getBoundingClientRect(),a=window.pageYOffset||document.documentElement.scrollTop,r=e.top+a-80;window.scrollTo({top:r,behavior:"smooth"})}}))})(e)},offset:E})),A&&Z&&t.createElement(ot,{followUpQuery:O,setFollowUpQuery:S,isSearching:I,handleFollowUpSearch:()=>{te(void 0,void 0,void 0,(function*(){if(O.trim()){const e=O;z(e),S(""),yield de(e)}}))},textConfig:F,offset:E}),P&&A&&t.createElement(Me,{onClick:le})))}));Et.displayName="ChatSearch";const xt=e.forwardRef(((t,a)=>{var{className:r}=t,n=ee(t,["className"]);return e.createElement(Y.Root,Object.assign({className:ae("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(Y.Thumb,{className:ae("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")}))}));xt.displayName=Y.Root.displayName;export{X as BrainfishColors,pe as Button,Et as ChatSearch,be as Collapsible,Ee as CollapsibleContent,ve as CollapsibleTrigger,_e as DropdownMenu,et as DropdownMenuCheckboxItem,Je as DropdownMenuContent,We as DropdownMenuGroup,Xe as DropdownMenuItem,at as DropdownMenuLabel,He as DropdownMenuPortal,Ke as DropdownMenuRadioGroup,tt as DropdownMenuRadioItem,rt as DropdownMenuSeparator,nt as DropdownMenuShortcut,Ve as DropdownMenuSub,Ge as DropdownMenuSubContent,Ye as DropdownMenuSubTrigger,Ze as DropdownMenuTrigger,xt as Switch,se as Tooltip,ie as TooltipContent,ne as TooltipProvider,oe as TooltipTrigger,fe as buttonVariants,G as customColor};
1
+ import*as e from"react";import t,{memo as a,useState as r,useRef as n,useEffect as s,useCallback as o,forwardRef as i,useImperativeHandle as l}from"react";import{AnimatePresence as c,motion as d}from"framer-motion";import*as m from"@radix-ui/react-tooltip";import{clsx as u}from"clsx";import{twMerge as h}from"tailwind-merge";import{jsx as g,Fragment as f}from"react/jsx-runtime";import{cva as p}from"class-variance-authority";import{CheckCircle as y,Clipboard as b,Download as v,ArrowsOut as E,Heart as x,ThumbsUp as w,ThumbsDown as N,Check as k,Copy as C,FileText as F,CaretDown as j,ArrowSquareOut as z,Question as O,CaretRight as S,ArrowsVertical as I,ArrowDown as L,MagnifyingGlass as A,X as R,Circle as T,Image as D,ArrowRight as P,ArrowUp as $}from"@phosphor-icons/react";import*as U from"@radix-ui/react-collapsible";import Q from"rehype-raw";import q from"remark-gfm";import{Prism as M}from"react-syntax-highlighter";import{a11yDark as B}from"react-syntax-highlighter/dist/esm/styles/prism";import _ from"react-markdown";import Z from"mermaid";import*as W from"@radix-ui/react-dropdown-menu";import{ChevronRightIcon as H,CheckIcon as V,DotFilledIcon as K}from"@radix-ui/react-icons";import*as Y from"@radix-ui/react-switch";function G(e,t){return({opacityVariable:a,opacityValue:r})=>`rgb(var(${e}, ${t}) / ${void 0!==r?r:`var(${a}, 1)`})`}const J={50:"#FAFAFA",100:"#F5F5F5",200:"#E5E5E5",300:"#D4D4D4",400:"#A3A3A3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",DEFAULT:"#171717"},X={primary:{50:"#F7FEE8",100:"#ECFCCC",200:"#D9F99E",300:"#BEF265",400:"#A3E635",500:"#84CC17",600:"#65A30E",700:"#4E7C10",800:"#406213",900:"#375415",DEFAULT:"#A3E635",foreground:G("--bfc-primary-foreground",J.DEFAULT)},dark:J,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 ee(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 te(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 ae(...e){return h(u(e))}function re(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}}"function"==typeof SuppressedError&&SuppressedError;const ne=t=>{var{delayDuration:a=200}=t,r=ee(t,["delayDuration"]);return e.createElement(m.Provider,Object.assign({delayDuration:a},r))},se=m.Root,oe=m.Trigger,ie=e.forwardRef(((t,a)=>{var{className:r,sideOffset:n=4,background:s,textColor:o,borderColor:i,style:l}=t,c=ee(t,["className","sideOffset","background","textColor","borderColor","style"]);return e.createElement(m.Portal,null,e.createElement(m.Content,Object.assign({ref:a,sideOffset:n,className:ae("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 le(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function ce(...e){return t=>{let a=!1;const r=e.map((e=>{const r=le(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():le(e[t],null)}}}}ie.displayName=m.Content.displayName;var de=e.forwardRef(((t,a)=>{const{children:r,...n}=t,s=e.Children.toArray(r),o=s.find(he);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 g(me,{...n,ref:a,children:e.isValidElement(t)?e.cloneElement(t,void 0,r):null})}return g(me,{...n,ref:a,children:r})}));de.displayName="Slot";var me=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,{...ge(n,r.props),ref:a?ce(a,t):t})}return e.Children.count(r)>1?e.Children.only(null):null}));me.displayName="SlotClone";var ue=({children:e})=>g(f,{children:e});function he(t){return e.isValidElement(t)&&t.type===ue}function ge(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 fe=p("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"}}),pe=e.forwardRef(((t,a)=>{var{className:r,variant:n,size:s,asChild:o=!1}=t,i=ee(t,["className","variant","size","asChild"]);const l=o?de:"button";return e.createElement(l,Object.assign({className:ae(fe({variant:n,size:s,className:r})),ref:a},i))}));function ye({suggestions:e,onQuestionClick:a,title:r="Suggested questions"}){return e&&0!==e.length?t.createElement("div",{className:"w-full"},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(pe,{key:e.id,onClick:()=>a(e),variant:"outline",className:"border-border font-normal"},void 0!==e.messageCount&&t.createElement(ne,null,t.createElement(se,null,t.createElement(oe,{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(ie,null,t.createElement("p",null,e.messageCount," messages in this conversation")))),t.createElement("span",{className:"line-clamp-1"},e.question)))))):null}pe.displayName="Button";const be=U.Root,ve=U.CollapsibleTrigger,Ee=e=>{var{children:a}=e,r=ee(e,["children"]);return t.createElement(U.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)},xe={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"},we=M,Ne=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(pe,{variant:"ghost",size:"icon",className:"size-5 text-zinc-400 hover:bg-zinc-700/50 hover:text-zinc-100",onClick:()=>{te(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(y,{size:18}):t.createElement(b,{size:18})),t.createElement(pe,{variant:"ghost",size:"icon",className:"size-5 text-zinc-400 hover:bg-zinc-700/50 hover:text-zinc-100",onClick:()=>{const t=xe[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(v,{size:18}))))),t.createElement("div",{className:"rounded-b-lg"},t.createElement(we,{language:e,style:B,PreTag:"div",wrapLongLines:!0,customStyle:{margin:0,borderTopLeftRadius:0,borderTopRightRadius:0}},a)))}));Ne.displayName="CodeBlock";const ke=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 Ce(t){const a=t.attrs.href.replace("share","embed");return e.createElement(ke,Object.assign({},t,{src:a,title:"Loom Embed"}))}function Fe(t){return e.createElement(ke,Object.assign({},t,{src:t.attrs.href,title:"Supademo Embed"}))}function je(t){return e.createElement(ke,Object.assign({},t,{src:t.attrs.href,title:"Typeform Embed"}))}function ze(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(ke,Object.assign({},t,{src:s,title:`Vimeo Embed (${r})`,height:"412px",border:!1}))}function Oe(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(ke,Object.assign({},t,{src:s,border:!0,title:`Wistia Embed (${n})`}))}function Se(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(ke,Object.assign({},t,{src:`https://www.youtube.com/embed/${a}?modestbranding=1`,title:`YouTube Embed (${a})`})):null}Ce.isMatch=e=>/^https:\/\/(www\.)?(use)?loom\.com\/(embed|share)\/(.*)$/.test(e),Fe.isMatch=e=>/^https:\/\/app\.supademo\.com\/embed\/(.*)$/.test(e),je.isMatch=e=>/^https:\/\/([A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)\.typeform\.com\/to\/(.*)$/.test(e),ze.isMatch=e=>/^(https?):\/\/(www\.)?vimeo\.com\/(?:channels\/(?:\w+\/)?|groups\/([^/]*)\/videos\/|)?(\d+)(\/)?(?:\?.*|#.*)?$/i.test(e),Oe.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))),Se.isMatch=e=>/^(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/(?:watch\?v=|embed\/|v\/|shorts\/)|youtu\.be\/)([a-zA-Z0-9_-]{11})(?:\/|[?&].*)?$/i.test(e);const Ie=[Ce,Fe,je,Se,Oe,ze],Le=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,Ie);if(r){const{Component:a}=r;return e.createElement(a,Object.assign({},t))}return null},Ae=a(_,((e,t)=>e.children===t.children)),Re={startOnLoad:!1,theme:"default",securityLevel:"loose",fontFamily:"inherit"},Te=({content:e})=>{const[a,o]=r(""),[i,l]=r(null),c=n(null),[d,m]=r(!1);return s((()=>{(()=>{try{Z.initialize(Re),m(!0)}catch(e){console.error("Error initializing mermaid:",e),l("Failed to initialize diagram renderer")}})()}),[]),s((()=>{if(!d)return;te(void 0,void 0,void 0,(function*(){try{const t=`mermaid-${Math.random().toString(36).substr(2,9)}`,a=yield Z.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}})},De=({src:t,alt:a})=>{const[r,n]=e.useState(!1),[s,o]=e.useState(!1),[i,l]=e.useState(!1),[m,u]=e.useState(!0),[h,g]=e.useState({width:0,height:0}),f=e.useRef(null),p=()=>{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:p,className:"border-0 p-0 bg-transparent relative group","aria-label":r?"Zoom out image":"Zoom in image"},m&&e.createElement("div",{className:"rounded-md bg-gray-200 dark:bg-gray-800 animate-pulse",style:{width:h.width||300,height:h.height||200,maxHeight:300}}),e.createElement("img",{ref:f,src:t,alt:a,onError:()=>{u(!1),l(!0)},onLoad:()=>{if(f.current){const{naturalWidth:e,naturalHeight:t}=f.current,a=300,r=e/t,n=Math.min(a,t);g({width:n*r,height:n})}u(!1)},className:"max-h-[300px] w-auto object-contain cursor-zoom-in hover:opacity-90 transition-opacity "+(m?"opacity-0 absolute":"opacity-100 relative")}),!m&&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(E,{size:16}))))),a&&!m&&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(c,null,r&&e.createElement(e.Fragment,null,e.createElement(d.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 bg-black/80 z-50",onClick:p}),e.createElement(d.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:p},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)))))},Pe=a((({message:e,isStreaming:a})=>{const[n,o]=r(e.content);s((()=>{var t;const a=re(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(Ae,{className:"dark:prose-invert prose flex-1",remarkPlugins:[q],rehypePlugins:[Q],components:{code:e=>{var{inline:a,className:r,children:n}=e,s=ee(e,["inline","className","children"]);const o=/language-(\w+)/.exec(r||""),i=o&&o[1];return a||"mermaid"!==i&&"mermaidjs"!==i?!a&&i?t.createElement(Ne,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(Te,{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=ee(e,["children"]);if(r.href){const e=Le({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=Le({attrs:{href:null!=e?e:""}});return t.isValidElement(r)?r:t.createElement(De,{src:e,alt:a})},li:e=>{var{children:a}=e,r=ee(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=ee(e,["children"]);return t.createElement("span",Object.assign({className:"font-semibold"},r),a)},h1:e=>{var{children:a}=e,r=ee(e,["children"]);return t.createElement("h1",Object.assign({className:"text-2xl font-bold"},r),a)},h2:e=>{var{children:a}=e,r=ee(e,["children"]);return t.createElement("h2",Object.assign({className:"text-xl font-bold"},r),a)},h3:e=>{var{children:a}=e,r=ee(e,["children"]);return t.createElement("h3",Object.assign({className:"text-lg font-bold"},r),a)},h4:e=>{var{children:a}=e,r=ee(e,["children"]);return t.createElement("h4",Object.assign({className:"text-base font-bold"},r),a)},h5:e=>{var{children:a}=e,r=ee(e,["children"]);return t.createElement("h5",Object.assign({className:"text-base font-semibold"},r),a)},h6:e=>{var{children:a}=e,r=ee(e,["children"]);return t.createElement("h6",Object.assign({className:"text-sm font-semibold"},r),a)}}},i)}));function $e({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"},t.createElement(ne,null,t.createElement(se,null,t.createElement(oe,{asChild:!0},t.createElement("div",{className:"relative"},t.createElement(c,null,o&&t.createElement(t.Fragment,null,Array.from({length:8}).map(((e,a)=>t.createElement(d.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(x,{className:"size-4 text-rose-500",style:{filter:"drop-shadow(0 0 3px rgba(255, 75, 110, 0.8))",strokeWidth:2.5}})))),t.createElement(d.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(pe,{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":""),onClick:()=>l("accept"),disabled:s},t.createElement(d.div,{initial:{scale:1},animate:{scale:"accept"===e?[1,1.2,1]:1},transition:{duration:.3}},t.createElement(w,{weight:"bold"}))))),t.createElement(ie,null,t.createElement("p",null,n.positiveAnswerText||"Helpful")))),t.createElement(ne,null,t.createElement(se,null,t.createElement(oe,{asChild:!0},t.createElement(pe,{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":""),onClick:()=>l("reject"),disabled:s},t.createElement(d.div,{initial:{scale:1},animate:{scale:"reject"===e?[1,1.2,1]:1},transition:{duration:.3}},t.createElement(N,{weight:"bold"})))),t.createElement(ie,null,t.createElement("p",null,n.negativeAnswerText||"Not helpful")))))}Pe.displayName="FormattedMessage";const Ue=e=>{var{loading:a,className:r}=e,n=ee(e,["loading","className"]);return t.createElement("svg",Object.assign({width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",className:ae("min-h-6 min-w-6",r),style:{"--star-color":"rgb(var(--bfc-primary))"}},n),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:"rgb(var(--bfc-border))",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 Qe({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),[f,p]=r(!1),y=()=>te(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 p-6 relative mx-auto max-w-3xl bg-card border border-border"},t.createElement("div",{className:"flex items-start justify-between gap-2 mb-2"},t.createElement("div",{className:"flex gap-2"},t.createElement(Ue,{loading:m||s,className:"mt-1"}),t.createElement("h2",{className:"text-xl leading-normal font-semibold m-0 text-foreground"},a)),e&&t.createElement(ne,null,t.createElement(se,null,t.createElement(oe,{asChild:!0},t.createElement(pe,{variant:"ghost",size:"icon",onClick:()=>{y()},className:"-mt-1"},h?t.createElement(k,{className:"text-feedback-positive",weight:"bold"}):t.createElement(C,{className:"text-secondary-foreground",weight:"bold"}))),t.createElement(ie,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"})))):e?t.createElement("div",{className:"prose prose-sm max-w-none text-foreground"},t.createElement(Pe,{message:{content:e,uncertaintyFallbackText:d.uncertaintyFallbackText},isStreaming:s})):t.createElement("div",{className:"prose prose-sm max-w-none text-foreground"},t.createElement(Pe,{message:{content:"Sorry, there was an error generating the answer. Please try again."},isStreaming:s})),e&&!s&&!c&&t.createElement("div",{className:"mt-2"},t.createElement($e,{feedback:i,onFeedback:e=>{l&&o&&l(e)},textConfig:d,disabled:c})),n&&n.length>0&&t.createElement("div",{className:"mt-6 rounded-lg overflow-hidden bg-card border border-border"},t.createElement(be,{open:f,onOpenChange:p,className:"w-full"},t.createElement("div",null,t.createElement(ve,{asChild:!0},t.createElement(pe,{variant:"ghost",className:"w-full justify-between h-11"},t.createElement("div",{className:"flex items-center gap-2"},t.createElement(F,{className:"size-4 flex-shrink-0 text-secondary-foreground",weight:"bold"}),t.createElement("span",{className:"font-medium truncate text-base"},`Related Sources (${n.length})`)),t.createElement(j,{className:"size-4 flex-shrink-0 transition-transform duration-200 text-secondary-foreground "+(f?"rotate-180":""),weight:"bold"}),t.createElement("span",{className:"sr-only"},"Toggle")))),t.createElement(Ee,{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(z,{className:"size-4 flex-shrink-0 text-secondary-foreground",weight:"bold"}))))))))}function qe({questions:e,onQuestionClick:a}){return e.length?t.createElement(d.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(d.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(S,{className:"size-4 flex-shrink-0 text-secondary-foreground",weight:"bold"}))))))):null}function Me({questions:e,activeIndex:a,onNavigate:n,offset:o}){const[i,l]=r(a);s((()=>{l(a)}),[a]);const m=e.length,u=(()=>{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(m-2,a+2);e++)r(e);return m>1&&r(m-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(d.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(c,null,u.map(((r,s)=>{if("ellipsis"===r)return t.createElement(d.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(I,{className:"size-4 text-foreground"}));const o=r,l=e[o];return t.createElement(d.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(ne,{delayDuration:100},t.createElement(se,null,t.createElement(oe,{asChild:!0},t.createElement("button",{onClick:()=>n(o),onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||n(o)},className:ae("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-dark-900":"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(ie,{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 Be({onClick:e}){return t.createElement(pe,{size:"icon",variant:"secondary",className:"fixed bottom-20 right-4 rounded-full transition-opacity duration-300 border-border shadow-md",onClick:e},t.createElement(L,{className:"size-5"}))}const _e=W.Root,Ze=W.Trigger,We=W.Group,He=W.Portal,Ve=W.Sub,Ke=W.RadioGroup,Ye=e.forwardRef(((t,a)=>{var{className:r,inset:n,children:s}=t,o=ee(t,["className","inset","children"]);return e.createElement(W.SubTrigger,Object.assign({ref:a,className:ae("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(H,{className:"ml-auto"}))}));Ye.displayName=W.SubTrigger.displayName;const Ge=e.forwardRef(((t,a)=>{var{className:r}=t,n=ee(t,["className"]);return e.createElement(W.SubContent,Object.assign({ref:a,className:ae("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))}));Ge.displayName=W.SubContent.displayName;const Je=e.forwardRef(((t,a)=>{var{className:r,sideOffset:n=4}=t,s=ee(t,["className","sideOffset"]);return e.createElement(W.Portal,null,e.createElement(W.Content,Object.assign({ref:a,sideOffset:n,className:ae("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)))}));Je.displayName=W.Content.displayName;const Xe=e.forwardRef(((t,a)=>{var{className:r,inset:n}=t,s=ee(t,["className","inset"]);return e.createElement(W.Item,Object.assign({ref:a,className:ae("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))}));Xe.displayName=W.Item.displayName;const et=e.forwardRef(((t,a)=>{var{className:r,children:n,checked:s}=t,o=ee(t,["className","children","checked"]);return e.createElement(W.CheckboxItem,Object.assign({ref:a,className:ae("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(W.ItemIndicator,null,e.createElement(V,{className:"h-4 w-4"}))),n)}));et.displayName=W.CheckboxItem.displayName;const tt=e.forwardRef(((t,a)=>{var{className:r,children:n}=t,s=ee(t,["className","children"]);return e.createElement(W.RadioItem,Object.assign({ref:a,className:ae("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(W.ItemIndicator,null,e.createElement(K,{className:"h-2 w-2 fill-current"}))),n)}));tt.displayName=W.RadioItem.displayName;const at=e.forwardRef(((t,a)=>{var{className:r,inset:n}=t,s=ee(t,["className","inset"]);return e.createElement(W.Label,Object.assign({ref:a,className:ae("px-2 py-1.5 text-sm font-semibold",n&&"pl-8",r)},s))}));at.displayName=W.Label.displayName;const rt=e.forwardRef(((t,a)=>{var{className:r}=t,n=ee(t,["className"]);return e.createElement(W.Separator,Object.assign({ref:a,className:ae("-mx-1 my-1 h-px bg-muted",r)},n))}));rt.displayName=W.Separator.displayName;const nt=t=>{var{className:a}=t,r=ee(t,["className"]);return e.createElement("span",Object.assign({className:ae("ml-auto text-xs tracking-widest opacity-60",a)},r))};nt.displayName="DropdownMenuShortcut";const st=t.forwardRef((({query:e,onQueryChange:a,onSearch:o,textConfig:i,collections:l=[],currentCollectionId:m,onCollectionChange:u,disableImageAttachment:h=!1,attachedImages:g=[],onImageUpload:f,onRemoveImage:p,isSearching:b=!1,autocompleteSuggestions:v=[],onAutocompleteSuggestionSelect:E},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()&&v.length>0,z={hidden:{opacity:0,x:-4},visible:{opacity:1,x:0,transition:{duration:.2}}};return t.createElement("div",{className:"relative w-full"},t.createElement("div",{className:ae("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(A,{className:"h-5 w-5 mr-2 text-secondary-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"}))),!h&&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==p?void 0:p(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(R,{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(_e,null,t.createElement(Ze,{asChild:!0},t.createElement(pe,{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===m)))||void 0===w?void 0:w.name)||i.allDocumentsText||"All documents",t.createElement(j,{className:"size-4 text-secondary-foreground"}))),t.createElement(Je,{className:"max-w-48"},l.map((e=>t.createElement(Xe,{key:e.id,onClick:()=>null==u?void 0:u(e.id)},e.id===m?t.createElement(y,{className:"rounded-full text-primary-500 !size-5",weight:"fill"}):t.createElement(T,{className:"rounded-full !size-5 text-gray-300"}),t.createElement("span",{className:"text-sm truncate"},e.name)))))),!h&&t.createElement(t.Fragment,null,t.createElement("input",{type:"file",ref:N,accept:"image/*",multiple:!0,className:"hidden",onChange:f}),t.createElement(pe,{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(D,{className:"size-4 text-secondary-foreground"}),i.attachImageText))),t.createElement("div",{className:"flex items-center"},t.createElement(pe,{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(P,{className:"text-dark-900",size:16,weight:"bold"}))))),t.createElement(c,{mode:"wait"},F&&t.createElement(d.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(d.div,{className:"md:hidden",variants:z},e.trim()&&t.createElement("div",{role:"option","aria-selected":!1,tabIndex:0,className:"\n px-4\n 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(A,{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(S,{className:"size-4 text-secondary-foreground"})))),t.createElement(d.div,{variants:{visible:{transition:{staggerChildren:.03,delayChildren:.05}}},initial:"hidden",animate:"visible"},v.map((e=>t.createElement(d.div,{key:e.id,variants:z,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==E||E(e),C(!1)},onKeyDown:t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),null==E||E(e),C(!1))}},t.createElement(A,{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(S,{className:"size-4 text-secondary-foreground"})))))))))}));function ot({followUpQuery:e,setFollowUpQuery:a,isSearching:r,handleFollowUpSearch:s,textConfig:o,offset:i=0}){const l=n(null);return t.createElement(d.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5},className:"fixed bottom-4 left-4 right-4 max-w-3xl mx-auto z-10",style:{left:`${i}px`}},t.createElement("div",{className:"py-0 px-4 rounded-full h-11 sm:h-14 flex items-center justify-between bg-card border border-border shadow-md"},t.createElement("div",{className:"flex items-center gap-2 sm:gap-3 flex-grow overflow-hidden h-full"},t.createElement(A,{className:"size-4 sm:size-5 flex-shrink-0 text-secondary-foreground"}),t.createElement("div",{className:"flex-grow pt-4 pb-3"},t.createElement("textarea",{ref:l,placeholder:o.followUpPlaceholder,value:e,onChange:e=>{a(e.target.value);e.target.style.height="auto",e.target.style.height=`${Math.min(e.target.scrollHeight,100)}px`,e.target.scrollHeight>100?e.target.style.overflowY="auto":e.target.style.overflowY="hidden"},onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),s())},disabled:r,className:"w-full bg-transparent !outline-none !ring-0 text-base resize-none overflow-hidden disabled:opacity-50 border-none min-h-6 max-h-24 placeholder:text-gray-400text-foreground shadow-none",rows:1}))),t.createElement("div",{className:"flex items-center gap-2 sm:gap-3 ml-2 sm:ml-3 flex-shrink-0"},t.createElement(pe,{size:"icon",variant:"ghost",disabled:r||!e.trim(),className:"rounded-full transition-colors duration-200 disabled:opacity-50 size-8 sm:size-9 flex items-center justify-center hover:bg-opacity-80",onClick:s},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($,{className:"size-4 sm:size-5 text-secondary-foreground"})))))}st.displayName="PrimarySearch";const it={maxRetries:3,baseDelay:1e3,shouldRetry:e=>{if(e instanceof TypeError)return!0;const t=e;return!!t.status&&t.status>=500}};let lt=Object.assign({},it),ct=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 dt(e){return te(this,void 0,void 0,(function*(){return new Promise((t=>setTimeout(t,e)))}))}function mt(e,t={}){return te(this,void 0,void 0,(function*(){const{retry:a={},headers:r={},body:n,isStream:s=!1,fallback:o={}}=t,i=ee(t,["retry","headers","body","isStream","fallback"]),l=Object.assign(Object.assign({},lt),a),c=Object.assign(Object.assign({},ct),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 dt(l.baseDelay*Math.pow(2,d-1)*a),d++}}))}const ut={maxRetries:3,baseDelay:300,shouldRetry:e=>{if(e instanceof TypeError)return!0;const t=e;return!!t.status&&(t.status>=500||429===t.status)}},ht={maxRetries:3,baseDelay:500,shouldRetry:e=>{if(e instanceof TypeError)return!0;const t=e;return!!t.status&&t.status>=500}};function gt({endpoint:e,query:t,collectionId:a,headers:r,conversationId:n}){var s;return te(this,void 0,void 0,(function*(){const o=yield mt(e,{method:"POST",headers:r,retry:ut,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 ft({endpoint:e,searchQueryId:t,headers:a,conversationId:r}){return te(this,void 0,void 0,(function*(){return mt(e,{method:"POST",headers:a,retry:ht,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 pt(){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)}))}`}function yt({endpoint:e,conversationId:t,headers:a}){return te(this,void 0,void 0,(function*(){return{data:(yield mt(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})))}}))}function bt({query:e,endpoint:t,collectionId:a,headers:n,conversationId:i,delay:l=300}){const[c,d]=r([]),[m,u]=r(!1),[h,g]=r(),f=function(e,t){const[a,n]=r(e);return s((()=>{const a=setTimeout((()=>{n(e)}),t);return()=>{clearTimeout(a)}}),[e,t]),a}(e,l),p=o((()=>te(this,void 0,void 0,(function*(){var e;if(f.trim()){u(!0),g(void 0);try{const r=yield function({endpoint:e,query:t,collectionId:a,headers:r,conversationId:n}){return te(this,void 0,void 0,(function*(){return yield mt(e,{method:"POST",headers:r,retry:ut,body:Object.assign(Object.assign({query:t},a&&"all"!==a&&{collectionId:a}),n&&{conversationId:n})})}))}({endpoint:t,query:f,collectionId:a,headers:n,conversationId:i});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([])}))),[f,t,a,n,i]);return s((()=>{p()}),[p]),{suggestions:c,isLoading:m,error:h}}const vt={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":"抱歉,找不到明確的答案。請嘗試重新表述或查看相關來源。"}},Et=i((({suggestions:e=[],collections:a=[],selectedCollectionId:o,onCollectionChange:i,searchEndpoint:m,answerEndpoint:u,feedbackEndpoint:h,loadConversationEndpoint:g,autocompleteEndpoint:f,disableFollowUpQuestions:p=!1,disableImageAttachment:y=!1,disableFeedback:b=!1,siblingNode:v,offset:E=0,headers:x,textConfig:w={},followUpQuestionsEndpoint:N,searchPath:k},C)=>{const F=Object.assign(Object.assign({},vt),w),[j,z]=r(""),[O,S]=r(""),[I,L]=r(!1),[A,R]=r(!1),[T,D]=r([]),[P,$]=r(!1),[U,Q]=r(0),[q,M]=r([]),[B,_]=r(o),[Z,W]=r(!0),[H,V]=r(""),[K,Y]=r(!1),[G,J]=r(),X=n(null),ee=n([]),ae=n(null),ne=n(null),se=n([]),oe=n(null),{suggestions:ie}=bt({query:j,endpoint:f||"",collectionId:B,headers:x,conversationId:H,delay:300});s((()=>{const e=new URLSearchParams(window.location.search).get("conversation");if(e&&g)Y(!0),R(!0),yt({endpoint:g,conversationId:e,headers:x}).then((t=>{D(t.data),V(e),R(!0)})).catch((e=>{console.error("Error loading conversation:",e),J(F.errorText||"An error occurred"),R(!1),D([]);const t=pt();V(t);const a=new URL(window.location.href);a.pathname="/",a.searchParams.delete("conversation"),window.history.replaceState({},"",a.toString())})).finally((()=>{Y(!1)}));else{const e=pt();V(e)}}),[g]),s((()=>{if(H&&T.length>0){const e=new URL(window.location.href);k?(e.pathname=k,e.searchParams.set("conversation",H)):e.searchParams.set("conversation",H),window.history.replaceState({},"",e.toString())}}),[H,T.length,k]),s((()=>{const e={showResults:A,answers:T,isLoading:K,error:G};se.current.forEach((t=>t(e)))}),[A,T,K,G]);const le=()=>{requestAnimationFrame((()=>{const e=ee.current[ee.current.length-1];if(e){const t=e.getBoundingClientRect(),a=window.pageYOffset||document.documentElement.scrollTop,r=t.top+a-80;window.scrollTo({top:r,behavior:"smooth"})}}))},ce=e=>te(void 0,void 0,void 0,(function*(){var t;const a=null===(t=e.body)||void 0===t?void 0:t.getReader();if(!a)return;D((e=>{const t=[...e],a=t[t.length-1];return a&&(a.isLoading=!1,a.isStreaming=!0,a.searchResults=a.searchResults||[]),t}));let r="";try{let e,t;for(;({done:e,value:t}=yield a.read()),!e;){const e=(new TextDecoder).decode(t);r+=e;const{uncertain:a,language:n}=re(r);D((e=>{var t;const s=[...e],o=s[s.length-1];return o&&(o.answer=r,o.isLoading=!1,o.isStreaming=!0,o.searchResults=o.searchResults||[],o.isUncertain=a,o.uncertaintyLanguage=n,a&&n&&(null===(t=F.uncertaintyFallbackText)||void 0===t?void 0:t[n])&&(o.uncertaintyFallbackText=F.uncertaintyFallbackText[n])),s}))}}catch(e){console.error("Error streaming answer:",e)}finally{D((e=>{const t=[...e],a=t[t.length-1];return a&&(a.isStreaming=!1,a.isLoading=!1,N&&!p&&a.searchQueryId&&te(void 0,void 0,void 0,(function*(){try{const e=yield function({endpoint:e,searchQueryId:t,headers:a,conversationId:r}){return te(this,void 0,void 0,(function*(){return(yield mt(e,{method:"POST",headers:a,body:Object.assign({searchQueryId:t},r&&{conversationId:r})})).questions}))}({endpoint:N,searchQueryId:a.searchQueryId,headers:x,conversationId:H});D((t=>{const a=[...t],r=a[a.length-1];return r&&(r.followUpQuestions=e),a}))}catch(e){console.error("Error fetching follow-up questions:",e)}}))),t})),a.releaseLock()}})),de=(e=j.trim())=>te(void 0,void 0,void 0,(function*(){if(e){L(!0),R(!0);const t=H||pt();H||V(t);const a=new URL(window.location.href);(k&&a.pathname!==k||a.searchParams.get("conversation")!==t)&&(k?(a.pathname=k,a.searchParams.set("conversation",t)):a.searchParams.set("conversation",t),window.history.replaceState({},"",a.toString()));const r={question:e,answer:"",isLoading:!0,isSearchLoading:!0,searchResults:[],searchQueryId:void 0,isStreaming:!1};D((e=>[...e,r]));const n=T.length;Q(n),le(),yield Promise.resolve();try{const a=yield gt({endpoint:m,query:e,collectionId:B,headers:x,conversationId:t});D((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 ft({endpoint:u,searchQueryId:a.searchQueryId,headers:x,conversationId:t});yield ce(r)}catch(e){console.error("Error generating answer:",e),D((e=>{const t=[...e];return t[t.length-1]&&(t[t.length-1]=Object.assign(Object.assign({},t[t.length-1]),{answer:F.errorText||"An error occurred",isLoading:!1,isSearchLoading:!1,isStreaming:!1})),t}))}finally{L(!1)}}}));l(C,(()=>({createNewThread:e=>{z(""),S(""),R(!1),D([]),Q(0),M([]);const t=pt();V(t);const a=new URL(window.location.href);a.searchParams.delete("conversation"),window.history.replaceState({},"",a.toString()),X.current&&(X.current.style.height="auto"),e&&(z(e),de(e))},showFollowUpThread:e=>{W(e)},subscribeToStateChanges:e=>(se.current.push(e),e({showResults:A,answers:T,isLoading:!1,error:void 0}),()=>{se.current=se.current.filter((t=>t!==e))})}))),s((()=>{_(o)}),[o]);const me=(e,t,a)=>te(void 0,void 0,void 0,(function*(){if(h){D((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 te(this,void 0,void 0,(function*(){yield mt(e,{method:"POST",headers:r,body:Object.assign({searchQueryId:t,response:a},n&&{conversationId:n})})}))}({endpoint:h,searchQueryId:t,response:e,headers:x,conversationId:H})}catch(e){console.error("Error sending feedback:",e),D((e=>{const t=[...e];return t[a]&&(t[a]=Object.assign(Object.assign({},t[a]),{feedback:void 0})),t}))}}})),ue=e=>{if(e.conversationId&&g)return Y(!0),R(!0),void yt({endpoint:g,conversationId:e.conversationId,headers:x}).then((t=>{D(t.data),V(e.conversationId),R(!0)})).catch((e=>{console.error("Error loading conversation:",e),J(F.errorText||"An error occurred"),R(!1),D([]);const t=pt();V(t);const a=new URL(window.location.href);a.pathname="/",a.searchParams.delete("conversation"),window.history.replaceState({},"",a.toString())})).finally((()=>{Y(!1)}));if(R(!0),L(!0),!H){const e=pt();V(e)}D((t=>[...t,{question:e.question,answer:"",isLoading:!0,isSearchLoading:!0}])),te(void 0,void 0,void 0,(function*(){try{const t=yield gt({endpoint:m,query:e.question,collectionId:B,headers:x,conversationId:H}),a=t.results;D((e=>{const r=[...e];return r[r.length-1]=Object.assign(Object.assign({},r[r.length-1]),{searchResults:a,searchQueryId:t.searchQueryId,isSearchLoading:!1}),r}));const r=yield ft({endpoint:u,searchQueryId:t.searchQueryId,headers:x,conversationId:H});yield ce(r)}catch(e){console.error("Error generating answer:",e),D((e=>{const t=[...e];return t[t.length-1]=Object.assign(Object.assign({},t[t.length-1]),{answer:F.errorText||"An error occurred",isLoading:!1,isSearchLoading:!1}),t}))}finally{L(!1),le()}}))};s((()=>{const e=()=>{const e=window.innerHeight+window.pageYOffset>=document.documentElement.scrollHeight-100;$(!e)};return window.addEventListener("scroll",e),()=>window.removeEventListener("scroll",e)}),[]),s((()=>()=>{q.forEach((e=>URL.revokeObjectURL(e.preview)))}),[q]);s((()=>{const e=()=>{new URLSearchParams(window.location.search).get("conversation")||(z(""),S(""),R(!1),D([]),Q(0),M([]),X.current&&(X.current.style.height="auto"))};return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)}),[]);const he=e=>{de(e)};return t.createElement("div",{ref:ae,className:"w-full max-w-3xl mx-auto relative"},t.createElement("div",{className:"w-full space-y-4"},t.createElement(c,null,K?t.createElement(d.div,{key:"loading",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"w-full flex items-center justify-center py-20"},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..."))):A?t.createElement(d.div,{key:"results",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.5},className:"w-full space-y-4 py-4 mb-20"},T.map(((e,a)=>t.createElement(d.div,{key:a,ref:e=>ee.current[a]=e,initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,delay:.1*a}},t.createElement(Qe,{answer:e.answer,question:e.question,searchResults:e.searchResults,isStreaming:e.isStreaming,searchQueryId:e.searchQueryId,feedback:e.feedback,onFeedback:t=>{me(t,e.searchQueryId,a)},disableFeedback:b,textConfig:F,isLoading:e.isLoading,isSearchLoading:e.isSearchLoading}),a===T.length-1&&!p&&e.followUpQuestions&&!e.isStreaming&&t.createElement("div",{className:"mt-4"},t.createElement(qe,{questions:e.followUpQuestions,onQuestionClick:he})))))):t.createElement(d.div,{key:"search",initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},transition:{duration:.5},className:"w-full space-y-8"},t.createElement("div",{className:"w-full text-center space-y-4"},t.createElement(d.h1,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,delay:.3},className:"text-5xl font-bold m-0 text-foreground"},F.headerText)),t.createElement(d.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,delay:.4}},t.createElement(st,{ref:oe,query:j,onQueryChange:e=>{var t;z(e),X.current&&((t=X.current).style.height="auto",t.style.height=`${t.scrollHeight}px`)},onSearch:()=>{de()},textConfig:F,collections:a,currentCollectionId:B,onCollectionChange:e=>{_(e),null==i||i(e)},disableImageAttachment:y,attachedImages:q,onImageUpload:e=>{const t=e.target.files;if(t){const e=Array.from(t).map((e=>({file:e,preview:URL.createObjectURL(e)})));M((t=>[...t,...e]))}ne.current&&(ne.current.value="")},onRemoveImage:e=>{M((t=>(URL.revokeObjectURL(t[e].preview),t.filter(((t,a)=>a!==e)))))},isSearching:I,autocompleteSuggestions:ie,onAutocompleteSuggestionSelect:ue})),t.createElement(ye,{suggestions:e,onQuestionClick:ue,title:F.suggestionsTitle}),v)),A&&T.length>1&&t.createElement("div",{className:"hidden sm:block"},t.createElement(Me,{questions:T.map((e=>e.question)),activeIndex:U,onNavigate:e=>{Q(e),(e=>{requestAnimationFrame((()=>{const t=ee.current[e];if(t){const e=t.getBoundingClientRect(),a=window.pageYOffset||document.documentElement.scrollTop,r=e.top+a-80;window.scrollTo({top:r,behavior:"smooth"})}}))})(e)},offset:E})),A&&Z&&t.createElement(ot,{followUpQuery:O,setFollowUpQuery:S,isSearching:I,handleFollowUpSearch:()=>{te(void 0,void 0,void 0,(function*(){if(O.trim()){const e=O;z(e),S(""),yield de(e)}}))},textConfig:F,offset:E}),P&&A&&t.createElement(Be,{onClick:le})))}));Et.displayName="ChatSearch";const xt=e.forwardRef(((t,a)=>{var{className:r}=t,n=ee(t,["className"]);return e.createElement(Y.Root,Object.assign({className:ae("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(Y.Thumb,{className:ae("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")}))}));xt.displayName=Y.Root.displayName;export{X as BrainfishColors,pe as Button,Et as ChatSearch,be as Collapsible,Ee as CollapsibleContent,ve as CollapsibleTrigger,_e as DropdownMenu,et as DropdownMenuCheckboxItem,Je as DropdownMenuContent,We as DropdownMenuGroup,Xe as DropdownMenuItem,at as DropdownMenuLabel,He as DropdownMenuPortal,Ke as DropdownMenuRadioGroup,tt as DropdownMenuRadioItem,rt as DropdownMenuSeparator,nt as DropdownMenuShortcut,Ve as DropdownMenuSub,Ge as DropdownMenuSubContent,Ye as DropdownMenuSubTrigger,Ze as DropdownMenuTrigger,xt as Switch,se as Tooltip,ie as TooltipContent,ne as TooltipProvider,oe as TooltipTrigger,fe as buttonVariants,G as customColor};
2
2
  //# sourceMappingURL=index.js.map