PageSourceSearch

https://magica.com/_next/static/chunks/1087-fe36bacc144f3fef.js?dpl=dpl_EpbZZwebesUNZKMWxZopFaX728EX

js magica.com collected 2026-10-02 05:23:40 UTC 72,573 bytes, 1 lines download raw bytes

1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8b969a39-867b-4aac-a996-0170802755a8",e._sentryDebugIdIdentifier="sentry-dbid-8b969a39-867b-4aac-a996-0170802755a8")}catch(e){}}();"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1087],{73568:(e,t,r)=>{r.d(t,{$:()=>o});var a=r(681122),l=r(77745),n=r(596106),s=r(678391);let i=(0,l.default)(()=>Promise.all([r.e(3051),r.e(2966),r.e(5730),r.e(656),r.e(8691)]).then(r.bind(r,556439)).then(e=>({default:e.MediaPreviewModal})),{loadableGenerated:{webpack:()=>[556439]},ssr:!1});function o(){var e;let{open:t,items:r,index:l,options:o,closePreview:c,setIndex:d}=(0,s.Ub)();return((0,n.useEffect)(()=>{if(!t)return;let e=o.loadMore;e&&(!o.hasMore||o.hasMore())&&l>=r.length-5&&e()},[t,l,r.length,o]),t&&0!==r.length)?(0,a.jsx)(i,{open:t,onClose:c,size:null!=(e=o.size)?e:"large",source:o.source,items:r,index:l,onIndexChange:d,hasMore:!!o.hasMore&&o.hasMore()}):null}},242435:(e,t,r)=>{r.d(t,{s:()=>s});var a=r(681122),l=r(501774),n=r(905393);function s(e){let{label:t="Loading..."}=e;return(0,a.jsxs)("div",{className:"flex flex-1 items-center justify-center gap-2 text-text-secondary",children:[(0,a.jsx)(n.A,{className:l.PL}),(0,a.jsx)("span",{className:"text-sm",children:t})]})}},279595:(e,t,r)=>{r.d(t,{M:()=>a});let a={ssr:!1}},364110:(e,t,r)=>{r.d(t,{h:()=>i});var a=r(682844),l=r(3642),n=r(596106),s=r(632254);function i(e,t){let r=t&&(0,s.vR)(e),i=(0,n.useRef)(null),[o,c]=(0,n.useState)(null),d=(0,l.I)({queryKey:["proxied-pdf-preview",e],queryFn:async t=>{var r;let{signal:a}=t,l=await (0,s.H1)(e,{signal:a});if(!l.ok)throw Error("PDF fetch failed: ".concat(l.status));let n=await l.blob();if((null==(r=n.type.split(";",1)[0])?void 0:r.toLowerCase())!=="application/pdf"||await n.slice(0,5).text()!=="%PDF-")throw Error("Preview response is not a valid PDF");return n},enabled:r,staleTime:1/0,gcTime:3e5,retry:!1,refetchOnWindowFocus:!1});(0,n.useEffect)(()=>{if(!r||!d.data)return;let e=URL.createObjectURL(d.data);return c({blob:d.data,url:e}),()=>URL.revokeObjectURL(e)},[d.data,r]),(0,n.useEffect)(()=>{if(!d.isError||i.current===d.error)return;i.current=d.error;let t="invalid-url";try{t=new URL(e).hostname}catch(e){}(0,a.logClientWarn)("[PDFPreview] Verified proxy preview failed",{operation:"fetch-proxied-pdf-preview",sourceHost:t,error:d.error instanceof Error?d.error.message:String(d.error),__sf:"app/lib/media/use-proxied-pdf-preview.ts",__sl:67,__sfn:"useProxiedPdfPreview"})},[d.error,d.isError,e]);let u=d.refetch,f=(0,n.useCallback)(()=>{u()},[u]),m=r&&o&&o.blob===d.data?o.url:void 0;return{previewUrl:m,isLoading:r&&(d.isLoading||void 0!==d.data&&!m),isError:r&&d.isError,retry:f,shouldProxy:r}}},406637:(e,t,r)=>{r.d(t,{$:()=>i});var a=r(444624),l=r(970019),n=r(682844),s=r(596106);function i(e){var t,r;let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,[o,c]=(0,s.useState)(null),d=(0,s.useRef)(null),u=(0,s.useRef)(!1),f=(0,s.useRef)(0),m=(0,s.useCallback)(async()=>{if(!e)return;let t=++f.current,r=()=>u.current||t!==f.current;try{let t=(0,l.oX)(await a.y.requestVncOtp(e),{source:"ArtifactPanel",action:"desktopStreamOtp",fallbackMessage:"Failed to refresh the desktop stream. Please try again."});if(r())return;let n=t.data,s=n.streamUrl,i=n.expiresAt;if(c({chatId:e,streamUrl:s,error:null}),i){let e=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now(),r=e-t;return r<=3e4?0:Math.min(r-3e4,6e5)}(i);d.current&&clearTimeout(d.current),d.current=setTimeout(()=>m(),e)}}catch(a){if(r())return;let t=(0,l.UM)(a,{source:"ArtifactPanel",action:"desktopStreamOtp",fallbackMessage:"Failed to refresh the desktop stream. Please try again."});c({chatId:e,streamUrl:null,error:t.userMessage}),(0,n.logClientError)("[useDesktopStreamOtp] fetch failed",a,{chatId:e,...t.logContext,__sf:"app/chat/components/artifacts/browser/useDesktopStreamOtp.ts",__sl:90,__sfn:"useDesktopStreamOtp"})}},[e]);(0,s.useEffect)(()=>(u.current=!1,e&&m(),()=>{u.current=!0,d.current&&clearTimeout(d.current)}),[e,m,i]);let x=(null==o?void 0:o.chatId)===e?o:null;return{streamUrl:null!=(t=null==x?void 0:x.streamUrl)?t:null,error:null!=(r=null==x?void 0:x.error)?r:null,refetch:m}}},427048:(e,t,r)=>{r.d(t,{I7:()=>s,O5:()=>n,Wk:()=>i,yu:()=>l});let a=[{extensions:[".txt"],mimeSubstrings:["text/plain"],strategy:"text"},{extensions:[".pdf"],mimeSubstrings:["application/pdf"],strategy:"native"},{extensions:[".pptx",".ppt"],mimeSubstrings:["presentation","powerpoint"],strategy:"office"},{extensions:[".docx",".doc"],mimeSubstrings:["wordprocessingml","msword"],strategy:"office"}
1,{extensions:[".xlsx",".xls"],mimeSubstrings:["spreadsheetml","ms-excel"],strategy:"office"},{extensions:[".csv"],mimeSubstrings:["text/csv","application/csv"],strategy:"csv"}],l=function(e,t){var r;let l="."+(null==(r=(null!=e?e:"").split(".").pop())?void 0:r.toLowerCase()),n=(null!=t?t:"").toLowerCase();for(let e of a)if(e.extensions.includes(l))return e.strategy;for(let e of a)if(e.mimeSubstrings.some(e=>n.includes(e)))return e.strategy;return"none"},n=function(e){return"https://view.officeapps.live.com/op/embed.aspx?src=".concat(encodeURIComponent(e))};function s(e,t){var r;let a="."+(null==(r=(null!=e?e:"").split(".").pop())?void 0:r.toLowerCase()),l=(null!=t?t:"").toLowerCase();return".docx"===a||l.includes("wordprocessingml")}function i(e){let t=[],r=[],a="",l=0,n=!1;for(;l<e.length;){let s=e[l],i=e[l+1];if('"'===s){if(n&&'"'===i){a+='"',l+=2;continue}n=!n,l+=1;continue}if(","===s&&!n){r.push(a),a="",l+=1;continue}if(("\n"===s||"\r"===s)&&!n){r.push(a),t.push(r),r=[],a="","\r"===s&&"\n"===i?l+=2:l+=1;continue}a+=s,l+=1}return(a.length>0||r.length>0)&&(r.push(a),t.push(r)),t}},524395:(e,t,r)=>{r.d(t,{Xi:()=>c,av:()=>d,j7:()=>o,tU:()=>i});var a=r(681122),l=r(85781),n=r(596106),s=r(564467);let i=l.bL,o=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)(l.B8,{ref:t,className:(0,s.cn)("inline-flex h-8 items-center justify-center gap-space-01 rounded-radius-max border-0 bg-magica-foundation-surface-soft p-space-01 font-magica text-magica-foundation-foreground-muted ring-1 ring-inset ring-magica-foundation-line-strong",r),...n})});o.displayName=l.B8.displayName;let c=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)(l.l9,{ref:t,className:(0,s.cn)("inline-flex h-7 items-center justify-center whitespace-nowrap rounded-radius-max border border-transparent px-space-04 text-small font-regular leading-5 transition-colors data-[state=active]:border-magica-foundation-ring data-[state=active]:bg-magica-foundation-surface data-[state=active]:text-magica-foundation-foreground data-[state=active]:shadow-magica-control-selected hover:bg-magica-foundation-surface-hover hover:text-magica-foundation-foreground data-[state=active]:hover:bg-magica-foundation-surface focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-magica-foundation-ring focus-visible:ring-offset-1 focus-visible:ring-offset-magica-foundation-surface-soft active:bg-magica-foundation-surface-pressed data-[state=active]:active:bg-magica-foundation-surface-pressed disabled:pointer-events-none disabled:opacity-45",r),...n})});c.displayName=l.l9.displayName;let d=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)(l.UC,{ref:t,className:(0,s.cn)("mt-space-02 rounded-radius-pageSection focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-magica-foundation-ring",r),...n})});d.displayName=l.UC.displayName},657458:(e,t,r)=>{r.d(t,{f:()=>eI});var a=r(681122),l=r(128300),n=r(222567),s=r(501774),i=r(970019),o=r(682844),c=r(463271),d=r(245087),u=r(6763),f=r(642916),m=r(348104),x=r(959656),p=r(905393),h=r(421057),g=r(130765),v=r(328597),b=r(352434),w=r(237296),j=r(668327),y=r(596106),N=r(839051),k=r(279595),C=r(524395),P=r(253774),_=r(33570),A=r(343588),E=r(77745);function S(e,t){let[r,a]=(0,y.useState)(e?"loading":"idle"),l=(0,y.useRef)(null),n=(0,y.useCallback)(async e=>{var t;null==(t=l.current)||t.abort();let r=new AbortController;l.current=r,a("loading");let n=function(e){try{let t=new URL(e);return t.username="",t.password="",t.search="",t.hash="",t.toString()}catch(e){return"[invalid preview URL]"}}(e),s=!1,i=new AbortController,c=()=>i.abort();r.signal.addEventListener("abort",c,{once:!0});let d=setTimeout(()=>{s=!0,i.abort()},8e3);try{await fetch(e,{method:"HEAD",mode:"no-cors",signal:i.signal,cache:"no-store"})}catch(e){if(r.signal.aborted)return;if(s)(0,o.logClientInfo)("[PreviewHealth] Sandbox HEAD probe timeout",{url:n,__sf:"app/chat/hooks/usePreviewHealth.ts",__sl:80,__sfn:"usePreviewHealth"});else{(0,o.logClientInfo)("[PreviewHealth] Sandbox probe hard failure",{url:n,errorName:e instanceof Error?e.name:"UnknownError",__sf:"app/chat/hooks/usePreviewHealth.ts",__sl:84,__sfn:"usePreviewHealth"}),a("expired");return}}finally{clearTimeout(d),r.signal.removeEventListener("abort",c)}if(r.signal.aborted)return;let u=!1,f=new AbortController,m=()=>f.abort();r.signal.addEventListener("abort",m,{once:!0});let x=setTimeout(()=>{u=!0,f.abort()},8e3);
1try{let t=await fetch(e,{method:"GET",mode:"cors",signal:f.signal,cache:"no-store"});if(r.signal.aborted)return;if(!t.ok)return void a("expired");try{let e=(await t.text()).toLowerCase();if(e.includes("closed port error")||e.includes("no service running on port")||e.includes("connection refused on port")){(0,o.logClientInfo)("[PreviewHealth] E2B closed-port error detected",{url:n,__sf:"app/chat/hooks/usePreviewHealth.ts",__sl:133,__sfn:"usePreviewHealth"}),a("expired");return}}catch(e){}a("alive")}catch(e){if(r.signal.aborted)return;if(u){(0,o.logClientInfo)("[PreviewHealth] Sandbox probe timeout",{url:n,__sf:"app/chat/hooks/usePreviewHealth.ts",__sl:146,__sfn:"usePreviewHealth"}),a("expired");return}a("alive")}finally{clearTimeout(x),r.signal.removeEventListener("abort",m)}},[]);return(0,y.useEffect)(()=>e?(n(e),()=>{var e;return null==(e=l.current)?void 0:e.abort()}):void a("idle"),[e,n,t]),{status:r,recheck:(0,y.useCallback)(()=>{e&&n(e)},[e,n])}}var R=r(623110);let D="flex min-h-0 flex-1 flex-col items-center justify-center gap-4 p-6",U="mt-1 max-w-xs text-xs text-text-secondary",T="max-w-xs text-center text-xs text-text-error",L="min-w-0 flex-1 truncate text-xs text-text-secondary",M="flex h-8 w-8 items-center justify-center rounded-md text-text-secondary transition-colors hover:bg-surface-secondary hover:text-text-primary disabled:cursor-not-allowed disabled:opacity-30";function F(e){return!!(e&&"streaming-assistant"!==e&&!e.startsWith("assistant-")&&!e.startsWith("optimistic-")&&!e.startsWith("error-"))}function I(e,t){var r;if(!e)return null;let a=null!=(r=t.template)?r:"nextjs";return F(t.messageId)?{chatId:e,messageId:t.messageId,...t.toolCallId?{toolCallId:t.toolCallId}:{},...t.previewUrl?{previewUrl:t.previewUrl}:{},template:a}:t.files&&Object.keys(t.files).length>0?{chatId:e,files:t.files,template:a}:null}function z(e){var t,r,l;let{artifact:n,artifactKey:s,errorMessage:i,rebuild:o}=e,c=null!=(t=null==o?void 0:o.status)?t:"idle",d=null!=(r=null==o?void 0:o.errorMsg)?r:null,f=null!=(l=null==o?void 0:o.isBuilding)&&l,m=(0,y.useCallback)(()=>{n&&o&&o.trigger(n,null!=s?s:void 0)},[n,s,o]),x=!!((null==n?void 0:n.files)&&Object.keys(n.files).length>0)||F(null==n?void 0:n.messageId),h="error"===c&&d?d:i;return(0,a.jsxs)("div",{className:D,children:[(0,a.jsx)("div",{className:"bg-surface-secondary/60 flex h-16 w-16 items-center justify-center rounded-full",children:f?(0,a.jsx)(p.A,{className:"h-8 w-8 animate-spin text-text-action"}):(0,a.jsx)(R.A,{className:"h-8 w-8 text-text-warning"})}),(0,a.jsxs)("div",{className:"text-center",children:[(0,a.jsx)("h3",{className:"text-sm font-semibold text-text-primary",children:f?"Rebuilding Preview...":"Preview Expired"}),(0,a.jsx)("p",{className:U,children:f?"Setting up sandbox, installing dependencies, and starting the dev server. This may take a minute.":"The sandbox has timed out and the preview is no longer accessible."})]}),h&&(0,a.jsx)("p",{className:T,children:h}),!f&&"done"!==c&&x&&o&&(0,a.jsxs)(u.$n,{variant:"outline",size:"sm",onClick:m,className:"gap-1.5",children:[(0,a.jsx)(v.A,{className:"h-3.5 w-3.5"}),"Rebuild Preview"]}),!x&&!f&&(0,a.jsx)("p",{className:"text-text-secondary/60 text-xs",children:"No stored files available to rebuild from."})]})}var O=r(703117);let H=(0,E.default)(()=>Promise.all([r.e(8356),r.e(9516),r.e(2012)]).then(r.bind(r,662012)).then(e=>({default:e.AppFileExplorer})),{loadableGenerated:{webpack:()=>[662012]},...k.M,loading:()=>(0,a.jsx)("div",{className:"flex flex-1 items-center justify-center text-xs text-text-secondary",children:"Loading file explorer..."})}),W=(0,y.memo)(function(e){var t,r,l,s;let{data:i,fileExplorerKey:o,refreshToken:c,rebuildState:d}=e,u=Object.entries(i.files),f=u.length>0,m=!!i.previewUrl,x=!!i.previewUrlNeedsRebuild,{status:h}=S(m&&!x?i.previewUrl:null,"".concat(null!=(t=i.rebuildToken)?t:0,":").concat(c)),[g,v]=(0,y.useState)(!1),[b,w]=(0,y.useState)(!1),j=(0,y.useRef)(null);(0,y.useEffect)(()=>(v(!1),w(!1),j.current&&clearTimeout(j.current),i.previewUrl&&!x&&"alive"===h&&(j.current=setTimeout(()=>{w(!0)},45e3)),()=>{j.current&&clearTimeout(j.current)}
1),[i.previewUrl,i.rebuildToken,h,x]);let N=(0,y.useCallback)(()=>{v(!0),w(!1),j.current&&clearTimeout(j.current)},[]);if(!f&&!m)return(0,a.jsxs)("div",{className:O.Gg,children:[(0,a.jsx)(P.A,{className:"h-10 w-10 opacity-40"}),(0,a.jsx)("p",{className:"text-sm font-medium",children:null!=(r=i.title)?r:"Web App"}),(0,a.jsx)("p",{className:"text-xs",children:"App files are being scaffolded..."})]});let k=x&&(null==d?void 0:d.status)==="error",E=!m||x&&(!f||k)||"expired"===h||b,R=m&&!x&&"loading"===h||x&&f&&!k,D=E?(0,a.jsx)(z,{artifact:i,artifactKey:o,errorMessage:k?null==d?void 0:d.errorMsg:null,rebuild:d}):R?(0,a.jsx)("div",{className:n.d2,children:(0,a.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,a.jsx)(p.A,{className:"h-6 w-6 animate-spin text-text-action"}),(0,a.jsx)("p",{className:"text-xs text-text-secondary",children:x?"Preparing saved preview...":"Checking sandbox..."})]})}):(0,a.jsxs)("div",{className:"relative flex min-h-0 flex-1 flex-col",children:[!g&&(0,a.jsx)("div",{className:"bg-surface-main-background/80 absolute inset-0 z-10 flex items-center justify-center",children:(0,a.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,a.jsx)(p.A,{className:"h-6 w-6 animate-spin text-text-action"}),(0,a.jsx)("p",{className:"text-xs text-text-secondary",children:"Loading preview..."})]})}),(0,a.jsx)("iframe",{src:i.previewUrl,title:null!=(l=i.title)?l:"App preview",className:"min-h-0 flex-1 border-none",sandbox:"allow-scripts allow-same-origin allow-forms allow-popups",onLoad:N},"".concat(i.previewUrl,"-").concat(null!=(s=i.rebuildToken)?s:0,"-").concat(c))]});return(0,a.jsx)("div",{className:"flex min-h-0 flex-1 flex-col",children:(0,a.jsxs)(C.tU,{defaultValue:m?"preview":f?"code":"preview",className:"flex min-h-0 flex-1 flex-col",children:[(0,a.jsxs)(C.j7,{className:O.Eg,children:[(0,a.jsxs)(C.Xi,{value:"preview",className:O.ET,children:[(0,a.jsx)(_.A,{className:"mr-1.5 h-3 w-3"}),"Preview",E&&f&&(0,a.jsx)("span",{className:"ml-1.5 inline-flex h-1.5 w-1.5 rounded-full bg-surface-warning-active"})]}),f&&(0,a.jsxs)(C.Xi,{value:"code",className:O.ET,children:[(0,a.jsx)(A.A,{className:"mr-1.5 h-3 w-3"}),"Code (",u.length,")"]})]}),(0,a.jsx)(C.av,{value:"preview",className:O.ts,children:D}),f&&(0,a.jsx)(C.av,{value:"code",className:O.ts,children:(0,a.jsx)(H,{files:i.files},o)})]})})});var V=r(444624),B=r(657847),X=r(955005),G=r(111622),$=r(964431),q=r(606204),Z=r(74071),K=r(961886);function Y(){let{onRetry:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,d.CC)(e=>
1e.activeChatId),r=(0,d.CC)(e=>e.updateArtifactPreviewUrl),[l,n]=(0,y.useState)("idle"),[s,c]=(0,y.useState)(null),f=(0,y.useCallback)(async()=>{if(t){n("reconnecting"),c(null);try{let a=(0,i.oX)(await V.y.reconnectDesktop(t),{source:"DesktopReconnect",action:"sandboxReconnect",fallbackMessage:"Failed to reconnect desktop sandbox. Please try again."});"reconnected"===a.status?(r(a.streamUrl),n("done"),null==e||e()):(a.status,n("error"),c(a.reason))}catch(r){let e=(0,i.UM)(r,{source:"DesktopReconnect",action:"sandboxReconnect",fallbackMessage:"Failed to reconnect desktop sandbox. Please try again."});(0,o.logClientError)("[DesktopReconnect] Failed",r,{chatId:t,...e.logContext,__sf:"app/chat/components/artifacts/browser/DesktopReconnectOverlay.tsx",__sl:62,__sfn:"DesktopReconnectOverlay"}),n("error"),c(e.userMessage)}}},[t,r,e]);return(0,a.jsxs)("div",{className:D,children:[(0,a.jsx)("div",{className:"flex h-16 w-16 items-center justify-center rounded-full bg-surface-secondary",children:"reconnecting"===l?(0,a.jsx)(p.A,{className:"h-8 w-8 animate-spin text-text-action"}):(0,a.jsx)(_.A,{className:"h-8 w-8 text-text-warning"})}),(0,a.jsxs)("div",{className:"text-center",children:[(0,a.jsx)("h3",{className:"text-sm font-semibold text-text-primary",children:"reconnecting"===l?"Reconnecting Desktop...":"Desktop Session Expired"}),(0,a.jsx)("p",{className:U,children:"reconnecting"===l?"Resuming your sandbox and restarting the VNC stream. This may take a moment.":"The desktop sandbox has timed out. You can try to reconnect if the session is still available."})]}),"error"===l&&s&&(0,a.jsx)("p",{className:T,children:s}),"reconnecting"!==l&&"done"!==l&&(0,a.jsxs)(u.$n,{variant:"outline",size:"sm",onClick:f,className:"gap-1.5",children:[(0,a.jsx)(v.A,{className:"h-3.5 w-3.5"}),"Reconnect Desktop"]})]})}var J=r(406637);function Q(){return(0,a.jsx)("div",{className:n.d2,children:(0,a.jsx)(p.A,{className:s.$s})})}let ee=(0,y.memo)(function(e){var t,r,l;let{data:n,refreshToken:s,interactive:i=!1,onConnectionStateChange:o}=e,c=(0,d.CC)(e=>e.activeChatId),u=(0,d.CC)(e=>e.activeDesktopStreamUrl),f="string"==typeof n.url&&(n.url.includes("/vnc.html")||n.url.includes("/kiosk.html")),m=!0===n.isDesktop||"desktop"===n.source||f,[x,p]=(0,y.useState)(0),h=(0,y.useRef)(!1);(0,y.useEffect)(()=>{if(!m)return;h.current=document.hidden;let e=()=>{if(document.hidden){h.current=!0;return}h.current&&(h.current=!1,p(e=>e+1))};return document.addEventListener("visibilitychange",e),()=>document.removeEventListener("visibilitychange",e)},[m]);let{streamUrl:g,error:v,refetch:b}=(0,J.$)(m&&null!=c?c:null,s);(0,K.Z)(c,!m||v||u?null:g);let w=m?function(e,t){if(!e)return null;try{let r=new URL(e);return r.searchParams.set("reconnect","true"),r.searchParams.set("reconnect_delay",String(2e3)),t?r.searchParams.delete("view_only"):r.searchParams.set("view_only","true"),r.toString()}catch(t){return e}}(g,i):n.url,{status:j}=S(null!=w?w:void 0,"".concat(null!=(t=n.rebuildToken)?t:0,":").concat(s,":").concat(x)),N=v||"expired"===j?"reconnect-required":w&&"loading"!==j&&"idle"!==j?"live":"connecting";return((0,y.useEffect)(()=>{m&&(null==o||o(N))},[N,m,o]),m&&v)?(0,a.jsx)(Y,{onRetry:b}):m&&!w?(0,a.jsx)(Q,{}):"expired"===j?m?(0,a.jsx)(Y,{onRetry:b}):(0,a.jsx)(z,{}):"loading"!==j||m?(0,a.jsx)("div",{className:m&&!i?"relative flex aspect-[8/5] max-h-full w-full shrink-0 flex-col":"relative flex h-full min-h-0 w-full flex-1 flex-col",children:(0,a.jsx)("iframe",{src:null!=w?w:void 0,title:null!=(r=n.title)?r:"Browser preview",className:"h-full min-h-0 w-full flex-1 border-none ".concat(m&&!i?"pointer-events-none":""),tabIndex:m&&!i?-1:void 0,sandbox:"allow-scripts allow-same-origin allow-forms"},"".concat(s,"-").concat(x,"-").concat(null!=(l=n.rebuildToken)?l:0,"-").concat(null!=w?w:""))}):(0,a.jsx)(Q,{})}),et="group absolute bottom-3 right-3 flex h-10 items-center overflow-hidden rounded-full bg-surface-primary-active pl-2.5 pr-2.5 text-text-on-action shadow-lg backdrop-blur-sm transition-[padding] duration-200 hover:bg-surface-primary-hover hover:pr-4",er=(0,y.memo)(function(e){var t,r,l,n,s,o;let{data:c,refreshToken:u}=e,f=(0,d.CC)(e=>{var t;return null==(t=e.artifactPanel)?void 0:t.toolCallId}),m=(0,d.CC)(e=>e.activeChatId),x=(0,d.CC)(e=>e.updateArtifactPreviewUrl),h=(0,d.CC)(e=>e.messages),b=(0,y.useMemo)(()=>
1{if(!f)return null;for(let r of h){var e,t;if((null!=(t=null!=(e=r.streamingToolInvocations)?e:r.toolInvocations)?t:[]).some(e=>e.id===f))return r}return null},[h,f]),w=(0,y.useMemo)(()=>b?function(e){let t=[],r=(0,q.P)("browserScreenshotFrameUrls");for(let E of e){var a,l,n,s,i,o,c,d,u,f,m,x,p,h,g,v,b,w,j,y,N,k,C,P,_,A;let e=null!=(l=null!=(a=E.streamingToolInvocations)?a:E.toolInvocations)?l:[];for(let a of e){if(!a.toolName||"completed"!==a.state)continue;let e=(0,Z.N$)(a.toolName);if("browser_screenshot"!==e&&"browser_delegate"!==e&&"desktop_screenshot"!==e)continue;let l=null==(n=a.result)?void 0:n.data,y=null!=(u=null!=(d=null!=(c=null==l?void 0:l.imageUrl)?c:null==l?void 0:l.screenshotUrl)?d:null==l?void 0:l.url)?u:"";!y||r.has(y)||(r.add(y),t.push({url:y,capturedAt:((null==l?void 0:l.capturedAt)?Date.parse(l.capturedAt):NaN)||(null!=(m=null!=(f=a.completedAt)?f:a.startedAt)?m:E.createdAt?Date.parse(E.createdAt):Date.now()),pageUrl:null!=(g=null!=(h=null!=(p=null!=(x=null==l?void 0:l.siteUrl)?x:null==l?void 0:l.pageUrl)?p:null==l?void 0:l.currentUrl)?h:null==(s=a.args)?void 0:s.url)?g:void 0,stepLabel:null!=(j=null!=(w=null!=(b=null!=(v=null==l?void 0:l.pageTitle)?v:null==l?void 0:l.title)?b:null==(i=a.args)?void 0:i.label)?w:null==(o=a.args)?void 0:o.description)?j:void 0}))}if(!e.some(e=>{if(!e.toolName)return!1;let t=(0,Z.N$)(e.toolName);return t.startsWith("browser_")||t.startsWith("desktop_")}))continue;let S=E.createdAt?Date.parse(E.createdAt):Date.now();for(let e of[null!=(y=E.intermediateOutputs)?y:[],null!=(N=E.assets)?N:[]])for(let a of e){if("browser_capture"!==a.type||!(a.imageUrl||a.screenshotUrl||a.url))continue;let e=null!=(C=null!=(k=a.imageUrl)?k:a.screenshotUrl)?C:a.url;!e||r.has(e)||(r.add(e),t.push({url:e,capturedAt:(a.capturedAt?Date.parse(a.capturedAt):NaN)||S,pageUrl:null!=(P=a.siteUrl)?P:void 0,stepLabel:null!=(A=null!=(_=a.pageTitle)?_:a.prompt)?A:void 0}))}}return t.sort((e,t)=>e.capturedAt-t.capturedAt),t}([b]):[],[b]),j=(0,y.useMemo)(()=>{var e,t;return w.length>0||!c.screenshotUrl?w:[{url:c.screenshotUrl,capturedAt:(c.capturedAt?Date.parse(c.capturedAt):NaN)||Date.now(),pageUrl:null!=(e=c.pageUrl)?e:c.url,stepLabel:null!=(t=c.pageTitle)?t:c.title}]},[c.capturedAt,c.pageTitle,c.pageUrl,c.screenshotUrl,c.title,c.url,w]),N=j.length,k="desktop"===c.source||!0===c.isDesktop,[C,P]=(0,y.useState)(()=>k&&0===N?"live":"replay"),[A,E]=(0,y.useState)(!1),[S,R]=(0,y.useState)(0),[D,U]=(0,y.useState)(!1),[T,F]=(0,y.useState)("connecting"),[I,z]=(0,y.useState)(0),O=(0,y.useId)(),H=(0,y.useRef)(null),W=(0,y.useRef)(null),K=(0,y.useRef)(null),Y=(0,y.useRef)(null),J="".concat(O,"-replay-tab"),Q="".concat(O,"-live-tab"),er="".concat(O,"-replay-panel"),ea="".concat(O,"-live-panel"),el=(0,y.useRef)(!0),en=u+S,es=async()=>{if(m&&!D){U(!0);try{let t=(0,i.oX)(await V.y.reconnectDesktop(m),{source:"BrowserSessionPlayer",action:"sandboxReconnect",fallbackMessage:"Failed to reconnect the live browser. Please try again."});if("reconnected"!==t.status){var e;throw Error(null!=(e=t.reason)?e:"The live browser could not be reconnected.")}if(!t.streamUrl)throw Error("The live browser could not be reconnected.");x(t.streamUrl)}catch(e){(0,i.TN)(e,{source:"BrowserSessionPlayer",action:"sandboxReconnect",fallbackMessage:"Failed to reconnect the live browser. Please try again.",logMessage:"[BrowserSessionPlayer] Live browser reconnect failed",toastTitle:"Reconnect failed",logContext:{chatId:m}})}finally{R(e=>e+1),U(!1)}}};(0,y.useEffect)(()=>{if(0===N)return void z(0);el.current?z(N-1):z(e=>e>=N?N-1:e)},[N]),(0,y.useEffect)(()=>{k&&0===N&&"live"!==C&&P("live")},[N,k,C]);let ei=k&&"desktop"!==c.source?{...c,source:"desktop",isDesktop:!0}:c,eo=()=>{E(!1)},ec=e=>{var t;if(!["ArrowLeft","ArrowRight","Home","End"].includes(e.key))return;e.preventDefault();let r="Home"===e.key?"replay":"End"===e.key?"live":"ArrowRight"===e.key?"live"===C?"replay":"live":"replay"===C?"live":"replay";P(r),null==(t=("live"===r?W:H).current)||t.focus()},ed=N>0?j[I]:null,eu=I===N-1,ef=eu&&el.current,em="navigate"===c.source?c.url:null!=(t=null==ed?void 0:ed.pageUrl)?t:c.url,ex="live"===C&&k?"Current browser session":null!=(n=null!=(l=null!=(r=null==ed?void 0:ed.pageUrl)?r:null==ed?void 0:ed.stepLabel)?l:c.title)?n:"Browser";return(0,a.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,a.jsx)(B.lG,{open:A&&k,onOpenChange:e=>!e&&eo(),children:(0,a.jsxs)(B.Cf,{"aria-modal":"true",showCloseButton:!1,className:"fixed inset-0 left-0 top-0 z-[100] flex h-dvh max-h-none w-screen max-w-none translate-x-0 translate-y-0 flex-col gap-0 overflow-hidden rounded-none border-0 bg-surface-main-background p-0 sm:rounded-none",onOpenAutoFocus:e=>{var t;
1e.preventDefault(),null==(t=Y.current)||t.focus()},onCloseAutoFocus:e=>{var t;e.preventDefault(),null==(t=K.current)||t.focus()},children:[(0,a.jsx)(B.L3,{className:"sr-only",children:"Live browser takeover"}),(0,a.jsx)(B.rr,{className:"sr-only",children:"Interactive control of the current browser session. Press Escape or use Exit takeover to return."}),(0,a.jsx)(ee,{data:ei,refreshToken:en,interactive:!0,onConnectionStateChange:F}),(0,a.jsx)("button",{ref:Y,type:"button",onClick:eo,className:"absolute bottom-4 left-1/2 z-10 flex h-9 -translate-x-1/2 items-center whitespace-nowrap rounded-full bg-surface-primary-active px-4 text-small font-medium text-magica-foundation-action-foreground shadow-lg transition-colors hover:bg-surface-primary-hover focus-visible:magica-action-shadow-focus",children:"Exit takeover"})]})}),(0,a.jsxs)("div",{className:"border-boarder-tertiary/40 bg-surface-main-background/95 flex shrink-0 items-center gap-3 border-b px-4 py-2",children:[(0,a.jsx)("div",{className:L,children:ex}),k?(0,a.jsxs)("div",{className:"ml-auto flex shrink-0 items-center gap-2",children:["live"===C?(0,a.jsxs)("button",{type:"button",onClick:es,disabled:D,className:"flex h-7 items-center gap-1.5 rounded-md border border-border/60 px-2 text-xs font-medium text-muted-foreground transition-colors hover:bg-muted/60 hover:text-foreground",children:[D?(0,a.jsx)(p.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,a.jsx)(v.A,{className:"h-3.5 w-3.5"}),D?"Reconnecting…":"Reconnect"]}):null,N>0?(0,a.jsxs)("div",{role:"tablist","aria-label":"Browser view mode",className:"flex rounded-lg border border-border/60 bg-muted/40 p-0.5",children:[(0,a.jsx)("button",{ref:H,id:J,type:"button",role:"tab","aria-selected":"replay"===C,"aria-controls":er,tabIndex:"replay"===C?0:-1,onClick:()=>P("replay"),onKeyDown:ec,className:"rounded-md px-2.5 py-1 text-xs font-medium transition-colors ".concat("replay"===C?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:"Replay"}),(0,a.jsx)("button",{ref:W,id:Q,type:"button",role:"tab","aria-selected":"live"===C,"aria-controls":ea,tabIndex:"live"===C?0:-1,onClick:()=>P("live"),onKeyDown:ec,className:"rounded-md px-2.5 py-1 text-xs font-medium transition-colors ".concat("live"===C?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:"Live view"})]}):null]}):null]}),(0,a.jsxs)("div",{id:"live"===C?ea:er,role:"tabpanel","aria-labelledby":N>0?"live"===C?Q:J:void 0,"aria-label":0===N?"Live browser":void 0,className:"relative flex min-h-0 flex-1 justify-center overflow-hidden bg-surface-main-background ".concat("live"===C?"items-start":"items-center"),children:["live"===C&&k?A?null:(0,a.jsx)(ee,{data:ei,refreshToken:en,interactive:!1,onConnectionStateChange:F}):ed?(0,a.jsx)("img",{src:ed.url,alt:null!=(s=ed.stepLabel)?s:"Browser screenshot",className:"h-full w-full object-contain"}):"desktop"===c.source||c.isDesktop?(0,a.jsx)(ee,{data:ei,refreshToken:en,interactive:!1,onConnectionStateChange:F}):(0,a.jsxs)("div",{className:"flex flex-col items-center gap-2 text-text-secondary",children:[(0,a.jsx)(_.A,{className:"h-10 w-10 opacity-40"}),(0,a.jsx)("p",{className:"text-xs",children:"Waiting for the first captured screenshot…"})]}),k?(0,a.jsxs)("button",{ref:K,type:"button",onClick:"live"===C?()=>{P("live"),E(!0)}:()=>P("live"),"aria-label":"live"===C?"Take control":"View live browser",className:et,children:[(0,a.jsx)(X.A,{className:"h-4 w-4 shrink-0"}),(0,a.jsx)("span",{className:"ml-0 max-w-0 whitespace-nowrap text-sm font-medium opacity-0 transition-[max-width,margin-left,opacity] duration-200 group-hover:ml-2 group-hover:max-w-[140px] group-hover:opacity-100",children:"live"===C?"Take control":"View live browser"})]}):(0,a.jsxs)("a",{href:em,target:"_blank",rel:"noopener noreferrer","aria-label":"Open in new tab",className:et,children:[(0,a.jsx)(g.A,{className:"h-4 w-4 shrink-0"}),(0,a.jsx)("span",{className:"ml-0 max-w-0 whitespace-nowrap text-sm font-medium opacity-0 transition-[max-width,margin-left,opacity] duration-200 group-hover:ml-2 group-hover:max-w-[160px] group-hover:opacity-100",children:"Open in new tab"})]})]}),"replay"===C?(0,a.jsxs)("div",{className:"border-boarder-tertiary/40 bg-surface-main-background/95 flex shrink-0 items-center gap-2 border-t px-4 py-2",children:[(0,a.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[(0,a.jsx)("button",{type:"button","aria-label":"Previous screenshot",disabled:0===I||0===N,onClick:()=>{el.current=!1,z(e=>e>0?e-1:e)},className:M,children:(0,a.jsx)(G.A,{className:"h-4 w-4"})}),(0,a.jsx)("button",{type:"button","aria-label":"Next screenshot",disabled:eu||0===N,onClick:()=>{z(e=>{let t=e<N-1?e+1:e;return el.current=t===N-1,t})},className:M,children:(0,a.jsx)($.A,{className:"h-4 w-4"})})]}),(0,a.jsxs)("button",{type:"button",onClick:()=>{el.current=!0,N>0&&z(N-1)},disabled:0===N,className:"flex shrink-0 items-center gap-1.5 rounded-full px-2.5 py-0.5 text-[11px] font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50 ".concat(ef?"bg-green-500/15 text-green-600 dark:text-green-400":"bg-muted/60 text-muted-foreground hover:bg-muted"),children:[(0,a.jsx)("span",{className:"h-1.5 w-1.5 rounded-full ".concat(ef?"bg-green-500":"bg-muted-foreground
1/60")}),"Latest capture"]}),(0,a.jsx)("div",{className:L,children:null!=(o=null==ed?void 0:ed.stepLabel)?o:""}),(0,a.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-muted-foreground",children:0===N?"0 / 0":"".concat(I+1," / ").concat(N)})]}):(0,a.jsxs)("div",{className:"border-boarder-tertiary/40 bg-surface-main-background/95 flex shrink-0 items-center gap-2 border-t px-4 py-2",children:[(0,a.jsxs)("span",{"data-testid":"browser-connection-status","aria-live":"polite",className:"flex shrink-0 items-center gap-1.5 rounded-full px-2.5 py-0.5 text-[11px] font-medium ".concat(D||"live"!==T?"bg-muted/60 text-muted-foreground":"bg-green-500/15 text-green-600 dark:text-green-400"),children:[(0,a.jsx)("span",{className:"h-1.5 w-1.5 rounded-full ".concat(D||"live"!==T?"bg-muted-foreground/60":"bg-green-500")}),D?"Reconnecting…":"live"===T?"Live browser":"reconnect-required"===T?"Reconnect required":"Connecting…"]}),(0,a.jsx)("span",{className:"truncate text-xs text-muted-foreground",children:"Current browser session"})]})]})}),ea=(0,y.memo)(function(e){let{data:t,refreshToken:r}=e;return"desktop"===t.source||"capture"===t.source||!0===t.isDesktop?(0,a.jsx)(er,{data:t,refreshToken:r}):(0,a.jsx)(ee,{data:t,refreshToken:r})});var el=r(198139);let en="Rebuild failed. Please try again.",es=new Set(["invalid_package_json","no_preview_listener","startup_timeout","rebuild_failed"]);function ei(e,t,r){var a,l;return t?JSON.stringify([e,t,null!=(a=r.previewUrl)?a:null,null!=(l=r.rebuildToken)?l:0]):null}var eo=r(242435),ec=r(497868),ed=r(866334),eu=r(154268);let ef=(0,E.default)(()=>Promise.all([r.e(8356),r.e(7081)]).then(r.bind(r,177081)).then(eu.B),{loadableGenerated:{webpack:()=>[177081]},...k.M,loading:()=>(0,a.jsx)(eo.s,{})}),em=(0,E.default)(()=>r.e(2067).then(r.bind(r,572067)).then(e=>({default:e.MermaidPreview})),{loadableGenerated:{webpack:()=>[572067]},...k.M,loading:()=>(0,a.jsx)(eo.s,{label:"Loading renderer..."})}),ex=(0,E.default)(()=>r.e(7281).then(r.bind(r,847281)).then(e=>({default:e.PlantUmlPreview})),{loadableGenerated:{webpack:()=>[847281]},...k.M,loading:()=>(0,a.jsx)(eo.s,{label:"Loading renderer..."})}),ep=(0,y.memo)(function(e){let{data:t}=e,{text:r,loading:l,error:n}=(0,ec.e)(t.code||!t.url?null:t.url);(0,y.useEffect)(()=>{n&&(0,o.logClientError)("[ArtifactPanel] Code fetch failed",Error(n),{url:t.url,__sf:"app/chat/components/artifacts/code/CodeArtifactContent.tsx",__sl:66,__sfn:"CodeArtifactContent"})},[n,t.url]);let s=t.code||r||"",i="html"===t.language,c="svg"===t.language,d="mermaid"===t.language,u="plantuml"===t.language,f=i||c||d||u,[m,x]=(0,y.useState)(i?"code":"preview"),p=(0,y.useMemo)(()=>i?function(e){let t='<meta http-equiv="Content-Security-Policy" content="'.concat("default-src 'none'; base-uri 'none'; connect-src 'none'; font-src data:; form-action 'none'; frame-src 'none'; img-src data: blob:; media-src data: blob:; object-src 'none'; script-src 'unsafe-inline'; style-src 'unsafe-inline'",'">'),r=/^\s*<!doctype[^>]*>/i.exec(e);return r?"".concat(r[0]).concat(t).concat(e.slice(r[0].length)):"".concat(t).concat(e)}(s):"",[s,i]);if(l)return(0,a.jsx)(eo.s,{label:"Loading file..."});if(n)return(0,a.jsxs)("div",{className:O.N5,children:[(0,a.jsx)(R.A,{className:"h-5 w-5 text-text-warning"}),(0,a.jsxs)("p",{className:"text-sm",children:["Failed to load: ",n]}),t.url&&(0,a.jsx)("a",{href:t.url,target:"_blank",rel:"noopener noreferrer",className:"rounded-lg bg-surface-primary-active px-3 py-1 text-xs font-medium text-text-on-action",children:"Download Instead"})]});if(f){var h,g;let e="preview"!==m?null:i?(0,a.jsx)("iframe",{srcDoc:p,title:null!=(h=t.filename)?h:"HTML preview",className:"min-h-0 flex-1 border-none",sandbox:"allow-scripts"}):c?(0,a.jsx)("iframe",{srcDoc:s,title:null!=(g=t.filename)?g:"SVG preview",className:"min-h-0 flex-1 border-none",sandbox:"allow-same-origin"}):d?(0,a.jsx)(em,{code:s}):(0,a.jsx)(ex,{code:s});return(0,a.jsxs)(C.tU,{value:m,onValueChange:e=>x(e),className:"flex min-h-0 flex-1 flex-col",children:[(0,a.jsxs)(C.j7,{className:O.Eg,children:[(0,a.jsxs)(C.Xi,{value:"preview",className:O.ET,children:[(0,a.jsx)(ed.A,{className:"mr-1.5 h-3 w-3"}),"Preview"]}),(0,a.jsxs)(C.Xi,{value:"code",className:O.ET,children:[(0,a.jsx)(A.A,{className:"mr-1.5 h-3 w-3"}),"Code"]})]}),(0,a.jsx)(C.av,{value:"preview",className:O.ts,children:e}),(0,a.jsx)(C.av,{value:"code",className:"artifact-code-wrap mt-0 min-h-0 flex-1 flex-col overflow-hidden p-3 data-[state=active]:flex data-[state=inactive]:hidden",children:(0,a.jsx)(ef,{scrollable:!0,wrapLongLines:!0,code:s,language:t.language})})]})}return(0,a.jsx)("div",{className:"flex min-h-0 flex-1 flex-col",children:(0,a.jsx)("div",{className:"artifact-code-wrap flex min-h-0 flex-1 flex-col overflow-hidden p-3",children:(0,a.jsx)(ef,{scrollable:!0,wrapLongLines:!0,code:s,language:t.language})})})});var eh=r(817237),eg=r(364110),ev=r(632027),eb=r(758116),ew=r(632254),ej=r(3642);let ey=(0,y.memo)(function(e){let{data:t,fallbackUrl:l}=e,n=(0,y.useRef)(null),[s,i]=(0,y.useState)("loading"),c=(0,y.useCallback)(()=>{let e=n.current;if(!e)return;let t=e.clientWidth;t<=0||Array.from(e.querySelectorAll(".galaxy-docx-page")).forEac
1h(e=>{let r=Number(e.dataset.originalWidth)||Math.max(e.scrollWidth,e.offsetWidth),a=Number(e.dataset.originalHeight)||Math.max(e.scrollHeight,e.offsetHeight);if(!r||!a)return;e.dataset.originalWidth=String(r),e.dataset.originalHeight=String(a);let l=Math.min(1,t/r);e.style.width="".concat(r,"px"),e.style.height="".concat(a,"px"),e.style.maxWidth="none",e.style.overflow="visible",e.style.transform="scale(".concat(l,")"),e.style.transformOrigin="top left";let n=e.parentElement;(null==n?void 0:n.dataset.docxPageWrapper)==="true"&&(n.style.width="".concat(r*l,"px"),n.style.height="".concat(a*l,"px"))})},[]),d=(0,y.useCallback)(()=>{let e=n.current;e&&(Array.from(e.querySelectorAll(".galaxy-docx-page")).forEach(e=>{var t,r;if((null==(t=e.parentElement)?void 0:t.dataset.docxPageWrapper)==="true")return;let a=document.createElement("div");a.dataset.docxPageWrapper="true",a.className="relative max-w-full overflow-hidden",null==(r=e.parentNode)||r.insertBefore(a,e),a.appendChild(e)}),c())},[c]),{data:u,error:f,isError:m}=(0,ej.I)({queryKey:["docx-blob",t.url],queryFn:async e=>{let{signal:r}=e,a=await (0,ew.H1)(t.url,{signal:r});if(!a.ok)throw Error("DOCX fetch failed with ".concat(a.status));return a.blob()},enabled:!!t.url,staleTime:1/0,gcTime:3e5,retry:!1,refetchOnWindowFocus:!1});return((0,y.useEffect)(()=>{if(m){(0,o.logClientWarn)("[ArtifactPanel] DOCX preview failed — falling back to Office viewer",{filename:t.filename,error:f instanceof Error?f.message:String(f),__sf:"app/chat/components/artifacts/document/DocxPagePreview.tsx",__sl:106,__sfn:"DocxPagePreview"}),i("fallback");return}if(!u)return void i("loading");let e=!1,a=n.current;if(a)return a.replaceChildren(),i("loading"),async function(){try{let{renderAsync:t}=await Promise.all([r.e(9965),r.e(5226),r.e(4471)]).then(r.bind(r,956852));if(e||(await t(u,a,void 0,{breakPages:!0,className:"galaxy-docx-page",experimental:!0,inWrapper:!1,renderFooters:!0,renderHeaders:!0}),e))return;d(),i("ready")}catch(r){if(e)return;(0,o.logClientWarn)("[ArtifactPanel] DOCX preview failed — falling back to Office viewer",{filename:t.filename,error:r instanceof Error?r.message:String(r),__sf:"app/chat/components/artifacts/document/DocxPagePreview.tsx",__sl:150,__sfn:"renderDocx"}),i("fallback")}}(),()=>{e=!0,a.replaceChildren()}},[u,m,f,t.filename,d]),(0,y.useEffect)(()=>{if("ready"!==s)return;let e=n.current;if(!e)return;let t=new ResizeObserver(()=>c());return t.observe(e),c(),()=>t.disconnect()},[c,s]),"fallback"===s)?(0,a.jsx)("iframe",{src:l,title:t.filename,className:"min-h-0 flex-1 border-none",allowFullScreen:!0}):(0,a.jsxs)("div",{className:"bg-surface-secondary/60 min-h-0 flex-1 overflow-y-auto overflow-x-hidden p-4",children:["loading"===s&&(0,a.jsxs)("div",{className:"flex h-full items-center justify-center gap-2 text-text-secondary",children:[(0,a.jsx)(p.A,{className:"h-4 w-4 animate-spin"}),(0,a.jsx)("span",{className:"text-sm",children:"Loading document..."})]}),(0,a.jsx)("div",{ref:n,className:"mx-auto flex w-full flex-col items-center gap-4 [&_.galaxy-docx-page]:!mx-0 [&_.galaxy-docx-page]:!mb-0 [&_.galaxy-docx-page]:shrink-0 [&_.galaxy-docx-page]:!bg-white [&_.galaxy-docx-page]:!text-black [&_.galaxy-docx-page]:shadow-lg"})]})});var eN=r(945721);let ek=(0,y.memo)(function(e){var t;let{data:r}=e,{text:l,loading:n,error:s}=(0,ec.e)(null!=(t=r.url)?t:null);return((0,y.useEffect)(()=>{if(!s)return;let e="unknown";try{e=new URL(r.url).host||e}catch(e){}(0,o.logClientWarn)("[TextPreview] preview failed",{operation:"fetch-text-preview",filename:r.filename,sourceHost:e,error:s,__sf:"app/chat/components/artifacts/document/TextPreview.tsx",__sl:30,__sfn:"TextPreview"})},[r.filename,r.url,s]),(n||null===l)&&!s)?(0,a.jsx)(eo.s,{label:"Loading text..."}):s||null===l?(0,a.jsxs)("div",{className:O.Gg,children:[(0,a.jsx)(eN.A,{className:"h-10 w-10 opacity-40"}),(0,a.jsx)("p",{className:"text-sm font-medium",children:r.filename}),(0,a.jsx)("p",{className:"text-xs",children:"We could not preview this text file inline."}),(0,a.jsx)("button",{onClick:()=>(0,c.ek)(r.url,r.filename),className:O.mj,children:"Download File"})]}):(0,a.jsx)("div",{className:"min-h-0 flex-1 overflow-auto px-6 py-4",children:(0,a.jsx)("div",{className:"border-boarder-tertiary/60 mx-auto w-full max-w-4xl whitespace-pre-wrap break-words rounded-lg border bg-surface-main-background p-4 text-sm leading-relaxed text-text-primary",children:l})})});var eC=r(427048);let eP=(0,y.memo)(function(e){let{data:t}
1=e,r=(0,eC.yu)(t.filename,t.mimeType),l=(0,eC.O5)(t.url),n=(0,c.Ke)(t.url),{previewUrl:s,isLoading:i,isError:o,retry:d}=(0,eg.h)(t.url,"native"===r&&!n),u="native"===r?n?t.url:s||null:"office"===r?l:null;return"csv"===r?(0,a.jsx)(eb.D,{data:t}):"text"===r?(0,a.jsx)(ek,{data:t}):u?"office"===r&&(0,eC.I7)(t.filename,t.mimeType)?(0,a.jsx)(ey,{data:t,fallbackUrl:l}):"native"===r?(0,a.jsx)(eh.H,{sourceUrl:u,filename:t.filename}):(0,a.jsx)("iframe",{src:u,title:t.filename,className:"min-h-0 flex-1 border-none",allowFullScreen:!0}):(0,a.jsxs)("div",{className:O.Gg,children:[(0,a.jsx)(ev.A,{className:"h-10 w-10 opacity-40"}),(0,a.jsx)("p",{className:"text-sm font-medium",children:t.filename}),(0,a.jsx)("p",{className:"text-xs",children:i?"Loading document...":o?"Preview failed. Retry or download the file.":"This file type cannot be previewed inline."}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[o&&(0,a.jsx)("button",{onClick:d,className:O.mj,children:"Retry Preview"}),(0,a.jsx)("button",{onClick:()=>(0,c.ek)(t.url,t.filename),className:O.mj,children:"Download File"})]})]})});var e_=r(880223),eA=r(761657),eE=r(982830);let eS="mt-0 flex-1 overflow-y-auto px-4 py-3 data-[state=inactive]:hidden",eR=(0,y.memo)(function(e){var t,r,l;let{data:s}=e,i=null!=(r=null!=(t=s.rawContent)?t:s.markdown)?r:"",o=!!s.content&&!!i,c=null!=(l=(0,eE.HS)(s.url))?l:s.url,d=(0,eE.Sd)(s.favicon,s.url),u=(0,a.jsxs)("div",{className:"border-boarder-tertiary/50 border-b",children:[s.image&&(0,a.jsx)("div",{className:"bg-surface-secondary/30 h-[140px] w-full overflow-hidden",children:(0,a.jsx)("img",{src:s.image,alt:"",className:n.lG,onError:e=>{e.currentTarget.parentElement.style.display="none"}})}),(0,a.jsxs)("div",{className:"flex items-start gap-2.5 px-4 py-3",children:[(0,a.jsx)(e_.e,{src:d,alt:"",className:"mt-0.5 h-4 w-4 shrink-0 rounded-sm"}),(0,a.jsxs)("div",{className:n.F2,children:[(0,a.jsx)("p",{className:"text-metadata font-semibold leading-snug",children:s.title}),(0,a.jsx)("p",{className:"text-text-secondary/60 mt-0.5 truncate text-caption",children:c}),s.description&&(0,a.jsx)("p",{className:"text-text-secondary/70 mt-1 line-clamp-2 text-caption leading-relaxed",children:s.description}),(s.author||s.publishedDate)&&(0,a.jsx)("p",{className:"text-text-secondary/50 mt-0.5 text-caption",children:[s.author,s.publishedDate].filter(Boolean).join(" \xb7 ")})]})]})]});return o?(0,a.jsxs)("div",{className:"flex flex-1 flex-col overflow-hidden",children:[u,(0,a.jsxs)(C.tU,{defaultValue:"summary",className:"flex flex-1 flex-col overflow-hidden",children:[(0,a.jsxs)(C.j7,{className:"bg-surface-secondary/50 mx-4 mt-2 h-8 w-fit rounded-md p-0.5",children:[(0,a.jsx)(C.Xi,{value:"summary",className:"h-7 rounded px-3 text-caption",children:"Summary"}),(0,a.jsx)(C.Xi,{value:"full",className:"h-7 rounded px-3 text-caption",children:"Full Page"})]}),(0,a.jsx)(C.av,{value:"summary",className:eS,children:(0,a.jsx)(eA.T,{content:s.content})}),(0,a.jsx)(C.av,{value:"full",className:eS,children:(0,a.jsx)(eA.T,{content:i})})]})]}):(0,a.jsxs)("div",{className:"flex flex-1 flex-col overflow-hidden",children:[u,(0,a.jsx)("div",{className:"flex-1 overflow-y-auto px-4 py-3",children:(0,a.jsx)(eA.T,{content:s.content||i})})]})});var eD=r(655727),eU=r(750383);let eT=(0,y.memo)(function(e){let{data:t}=e,r=t.width/t.height;return(0,a.jsxs)(C.tU,{defaultValue:"preview",className:"flex min-h-0 flex-1 flex-col",children:[(0,a.jsxs)(C.j7,{className:"bg-surface-secondary/50 mx-4 mt-2 grid w-auto grid-cols-2",children:[(0,a.jsxs)(C.Xi,{value:"preview",className:"gap-1.5 text-xs",children:[(0,a.jsx)(eU.A,{className:"h-3 w-3"}),"Preview"]}),(0,a.jsxs)(C.Xi,{value:"code",className:"gap-1.5 text-xs",children:[(0,a.jsx)(A.A,{className:"h-3 w-3"}),"Code"]})]}),(0,a.jsx)(C.av,{value:"preview",className:"flex min-h-0 flex-1 flex-col data-[state=inactive]:hidden",children:t.videoUrl?(0,a.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden p-3",children:[(0,a.jsx)("div",{className:"relative min-h-0 flex-1",children:(0,a.jsx)("div",{className:n.z2,children:(0,a.jsx)("div",{className:"border-boarder-tertiary/40 overflow-hidden rounded-lg border",style:{aspectRatio:r,maxWidth:"100%",maxHeight:"100%"},children:(0,a.jsx)("video",{src:t.videoUrl,controls:!0,className:"h-full w-full object-contain"})})})}),(0,a.jsxs)("div",{className:"mt-2 flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3 text-xs text-text-secondary",children:[(0,a.jsxs)("span",{children:[t.width,"x",t.height]}),(0,a.jsxs)("span",{children:[t.fps," fps"]}),(0,a.jsxs)("span",{children:[(t.durationInFrames/t.fps).toFixed(1),"s"]})]}),(0,a.jsxs)("button",{onClick:()=>(0,c.ek)(t.videoUrl,"".concat(eD.Z,"_Video.mp4")),className:"bg-surface-primary-active/10 hover:bg-surface-primary-active/20 flex items-center gap-1.5 rounded-md px-2.5 py-1 text-xs font-medium text-text-action transition-colors",children:[(0,a.jsx)(h.A,{className:"h-3 w-3"}),"Download MP4"]})]})]}):(0,a.jsxs)("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 p-6 text-center text-text-secondary",children:[(0,a.jsx)(p.A,{className:"h-6 w-6 animate-spin"}),(0,a.jsx)("p",{className:"text-sm",children:"Rendering video…"}),(0,a.jsx)("p",{className:"text-xs",children:"The preview will appear once the render completes."})]})}),(0,a.jsx)(C.av,{value:"code",className:"artifact-code-wrap flex min-h-0 flex-1 flex-col overflow-hidden p-3 data-[state=inactive]:hidden",children:(0,a.jsx)(ef,{scrollable:!0,wrapLongLines:!0,code:t.code,language:"tsx"})})]})}),eL=(0,y.memo)(function(e){let{data:t}=e;return(0,a.jsx)("div",{className:"flex flex-1 flex-col overflow-y-auto",children:(0,a.jsx)("div",{className:"divide-y divide-border/50",children:t.results.map((e,t)=>{var r;let l=null!=(r=(0,eE.HS)(e.url))?r:e.url,s=(0,eE.Sd)(e.favicon,e.url);return(0,a.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"hover:bg-surface-secondary/40 flex flex-col gap-1.5 px-4 py-3.5 transition-colors",children:[(0,a.jsxs)("div",{className:n.Tl,children:[(0,a.jsx)(e_.e,{src:s,alt:"",className:"h-4 w-4 shrink-0 rounded-sm"}),(0,a.jsx)("span",{className:"text-text-secondary/70 text-caption",children:l}),e.publishedDate&&(0,a.jsx)("span",{className:"text-text-secondary/50 ml-auto shrink-0 text-caption",children:e.publishedDate})]}),(0,a.jsx)("p",{className:"text-metadata font-semibold leading-snug text-text-primary",children:e.title}),e.content&&(0,a.jsx)("p",{className:"text-text-secondary/80 line-clamp-2 text-caption leading-relaxed",children:e.content})]},t)})})})}),eM=(0,y.memo)(function(e){var t;let{data:r}=e;return(0,a.jsx)("div",{className:"flex-1 overflow-y-auto px-4 py-3",children:(0,a.jsx)(eA.T,{content:r.content,mediaSize:null!=(t=r.mediaSize)?t:"default",dedupeMediaLinks:r.dedupeMediaLinks})})}),eF=(0,y.memo)(function(e){let{artifactKey:t,data:r,refreshToken:l,rebuildState:n}=e;switch(r.type){case"remotion":return(0,a.jsx)(eT,{data:r});case"code":var s,i;return(0,a.jsx)(ep,{data:r},null!=t?t:"".concat(r.language,":").concat(null!=(i=null!=(s=r.filename)?s:r.url)?i:"code"));case"browser":return(0,a.jsx)(ea,{data:r,refreshToken:l});case"document":return(0,a.jsx)(eP,{data:r});case"text":return(0,a.jsx)(eM,{data:r});case"app":return(0,a.jsx)(W,{data:r,fileExplorerKey:t,refreshToken:l,rebuildState:n});case"search":return(0,a.jsx)(eL,{data:r});case"fetch":return(0,a.jsx)(eR,{data:r});default:return null}}),eI=(0,y.memo)(function(){var e,t,k,C;let P=(0,f.a)(),_=(0,d.CC)(e=>e.artifactPanel),A=(0,d.CC)(e=>e.closeArtifact),[E,S]=(0,y.useState)(O.a0),[R,D]=(0,y.useState)(0),[U,T]=(0,y.useState)(!1),[L,M]=(0,y.useState)(!1),[z,H]=(0,y.useState)(!1),W=(0,y.useRef)(!1),V=(0,y.useRef)(null),B=(0,y.useRef)(null),X=function(){let e=(0,d.CC)(e=>e.activeChatId),t=(0,d.CC)(e=>e.artifactPanel),r=(0,d.CC)(e=>e.updateArtifactPreviewUrl),a=(0,el.d6)(),[l,n]=(0,y.useState)(null),[s,c]=(0,y.useState)("idle"),[u,f]=(0,y.useState)(null),[m,x]=(0,y.useState)(null),[p,h]=(0,y.useState)(null),[g,v]=(0,y.useState)(null),b=(0,y.useRef)(0),w=(0,y.useRef)(!1),j=(0,y.useRef)(null),N=(0,y.useRef)(e),k=(null==t?void 0:t.open)&&"app"===t.data.type?"".concat(t.toolCallId,":app"):null,C=(0,y.useMemo)(()=>k&&(null==t?void 0:t.open)&&"app"===t.data.type?ei(k,I(e,t.data),t.data):null,[t,e,k]),P=(0,y.useCallback)(async(t,r)=>{var l;if(w.current)return;let s=I(e,t);if(!s)return;let d=ei(null!=(l=null!=r?r:k)?l:"app-artifact",s,t);if(!d)return;let u=b.current+1;b.current=u,w.current=!0,j.current=d,h(d),c("triggering"),f(null),x(null),v(null),n(null);try{let e=await a.mutateAsync(s);if(b.current!==u)return;if(e.runId){n(e.runId),c("building");return}throw Error("Rebuild response did not include runId or previewUrl")}catch(r){if(b.current!==u)return;let t=(0,i.UM)(r,{source:"ArtifactPanel",action:"rebuildPreview",fallbackMessage:"Failed to start rebuild. Please try again."});(0,o.logClientError)("[ArtifactPanel] Rebuild failed",r,{chatId:e,...t.logContext,__sf:"app/chat/components/
1artifacts/browser/useRebuildPreview.ts",__sl:179,__sfn:"useRebuildPreview"}),c("error"),f(t.userMessage),x(null),w.current=!1,j.current=null}},[e,k,a]),_=(0,y.useCallback)(()=>{b.current+=1,w.current=!1,j.current=null,h(null),c("idle"),f(null),x(null),n(null),v(null)},[]);(0,y.useEffect)(()=>{N.current!==e&&(N.current=e,_())},[e,_]);let A=(0,el.Ww)(l,{enabled:!!l&&"building"===s,refetchInterval:3e3});(0,y.useEffect)(()=>{if("building"!==s)return;let e=setTimeout(()=>{c("error"),f("Rebuild timed out. Please try again."),x(null),n(null),w.current=!1,j.current=null},27e5);return()=>clearTimeout(e)},[s]),(0,y.useEffect)(()=>{if(A.data&&"building"===s&&w.current){if("completed"===A.data.status&&A.data.previewUrl){let e=j.current;e&&v({targetKey:e,url:A.data.previewUrl}),c("done"),w.current=!1,j.current=null}else if("failed"===A.data.status){let e=function(e){if(!e||"object"!=typeof e)return{failureCode:null,message:en};let{failureCode:t,message:r}=e;if("string"!=typeof t||!es.has(t))return{failureCode:null,message:en};let a="string"==typeof r?r.trim():"";return{failureCode:t,message:a.length>0&&a.length<=240?a:en}}(A.data);c("error"),f(e.message),x(e.failureCode),w.current=!1,j.current=null}}},[A.data,s]),(0,y.useEffect)(()=>{if(g&&C){if(g.targetKey!==C)return void v(null);r(g.url),v(null)}},[g,C,r]);let E="triggering"===s||"building"===s,S=E&&p===C,R="idle"===s||p===C?s:"idle";return{trigger:P,reset:_,status:R,errorMsg:"error"===R?u:null,failureCode:"error"===R?m:null,isRebuildActive:E,isBuilding:S}}(),G=(0,y.useRef)(X.trigger),$=(null==_?void 0:_.open)?"".concat(_.toolCallId,":").concat(_.data.type):null,q=(null==_?void 0:_.open)?"".concat(_.toolCallId,":").concat("app"===_.data.type?"".concat(null!=(k=_.data.previewUrl)?k:"",":").concat(null!=(C=_.data.rebuildToken)?C:0):""):null,Z=(0,y.useCallback)(e=>{var t;return Object.keys(null!=(t=e.files)?t:{}).length>0||F(e.messageId)},[]);(0,y.useLayoutEffect)(()=>{G.current=X.trigger},[X.trigger]),(0,y.useEffect)(()=>{(null==_?void 0:_.open)&&H(!1)},[null==_?void 0:_.open,$]),(0,y.useEffect)(()=>{if(!(null==_?void 0:_.open)||"app"!==_.data.type)return;let e=_.data;e.previewUrlNeedsRebuild&&Z(e)&&q&&B.current!==q&&(X.isRebuildActive||(B.current=q,G.current(e,null!=$?$:void 0)))},[Z,X.isRebuildActive,q,_,$]);let K=(0,y.useCallback)(()=>{A()},[A]),Y=(0,y.useCallback)(()=>{var e;if((null==_||null==(e=_.data)?void 0:e.type)==="app"){if(X.isRebuildActive)return;let e=_.data;X.trigger(e,null!=$?$:void 0);return}D(e=>e+1)},[null==_?void 0:_.data,$,X]),J=(0,y.useCallback)(()=>{H(e=>!e)},[]);(0,y.useLayoutEffect)(()=>{var e;if(!(null==_?void 0:_.open)||P||z)return;let t=null==(e=V.current)?void 0:e.parentElement;if(!t)return;let r=()=>{let e=t.clientWidth;if(!(0,O.dk)(e))return void H(!0);S(t=>(0,O.kj)(t,e))};if(r(),"undefined"==typeof ResizeObserver)return window.addEventListener("resize",r),()=>window.removeEventListener("resize",r);let a=new ResizeObserver(r);return a.observe(t),window.addEventListener("resize",r),()=>{a.disconnect(),window.removeEventListener("resize",r)}},[null==_?void 0:_.open,P,z]);let Q=(0,y.useCallback)(async()=>{if((null==_?void 0:_.data)&&"app"===_.data.type&&!U){T(!0);try{var e;let{downloadProjectAsZip:t}=await r.e(5904).then(r.bind(r,925904));await t(_.data.files,"".concat(null!=(e=_.data.title)?e:"project",".zip"))}catch(t){let e=(0,i.UM)(t,{source:"ArtifactPanel",action:"downloadZip",fallbackMessage:"Failed to download the project files."});(0,o.logClientError)("[ArtifactPanel] ZIP download failed",t,{...e.logContext,__sf:"app/chat/components/artifacts/ArtifactPanel.tsx",__sl:250,__sfn:"ArtifactPanel"})}finally{T(!1)}}},[null==_?void 0:_.data,U]),ee=(0,y.useCallback)(e=>{e.preventDefault(),W.current=!0;let t=e.clientX,r=!1,a=e=>{var a,l,n;if(!W.current)return;let s=t-e.clientX;if(!r){if(4>Math.abs(s))return;r=!0,M(!0),document.body.style.cursor="col-resize",document.body.style.userSelect="none"}let i=null!=(n=null==(l=V.current)||null==(a=l.parentElement)?void 0:a.clientWidth)?n:window.innerWidth;S((0,O.kj)(E+s,i))},l=()=>{W.current=!1,M(!1),document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",l),document.body.style.cursor="",document.body.style.userSelect=""};document.addEventListener("mousemove",a),document.addEventListener("mouseup",l)},[E]),et=(null==_?void 0:_.data)?N.l8[_.data.type]:null,er=(null==_?void 0:_.data)?function(e){var t,r,a,l,n,s,i,o,c,d,u;switch(e.type){case"document":return{title:e.filename,badge:null!=(r=null==(t=e.filename.split(".").pop())?void 0:t.toUpperCase())?r:null,downloadHref:e.url,downloadName:e.filename,showRefresh:!1};case"browser":return{title:"desktop"===e.source||!0===e.isDesktop?"Browser":null!=(a=e.title)?a:e.url,badge:null,downloadHref:null,downloadName:null,showRefresh:!0};case"app":return{title:null!=(l=e.title)?l:"Web App",badge:null!=(n=e.template)?n:null,downloadHref:null,downloadName:null,showRefresh:!!e.previewUrl};case"code":return{title:null!=(i=e.filename)?i:"Code",badge:null!=(o=null==(s=e.language)?void 0:s.toUpperCase())?o:null,downloadHref:null!=(c=e.url)?c:null,downloadName:null!=(d=e.filename)?d:null,showRefresh:!1};case"remotion":return{title:"Video Composition",badge:"VIDEO",downloadHref:null,downloadName:null,showRefresh:!1};case"text":return{title:null!=(u=e.title)?u:"Text",badge:null,downloadHref:null,downloadName:null,showRefresh:!1};case"search":return{title:'"'.concat(e.query,'"'),badge:"".concat(e.results.length," result").concat(1!==e.results.length?"s":""),downloadHref:null,downloadName:null,showRefresh:!1};case"fetch":return{title:e.title||e.url,badge:null,downloadHref:null,downloadName:null,showRefresh:!1};default:return{title:"Artifact",badge:null,downloadHref:null,downloadName:null,showRefresh:!1}}}(_.data):null,ea=(null==_||null==(e=_.data)?void 0:e.type)==="app"&&Object.keys(_.data.files).length>0,eo=(null==_||null==(t=_.data)?void 0:t.type)==="app"&&!!_.data.previewUrl&&!_.data.previewUrlNeedsRebuild;return(0,a.jsx)(m.N,{mode:"wait",children:(null==_?void 0:_.open)&&et&&er&&(0,a.jsxs)(x.P.div,{ref:V,initial:P?{y:"100%"}:{width:0},animate:P?{y:0,width:"100vw",height:"100vh"}:{width:z?"100vw":E,height:z?"100vh":"100%"},exit:P?{y:"100%"}:{width:0},transition:{duration:.3,ease:[.4,0,.2,1]},className:P?"fixed inset-0 z-50 flex flex-col bg-surface-main-background":z?"fixed right-0 top-0 z-50 flex flex-col bg-surface-main-background shadow-2xl":"border-boarder-tertiary/50 relative flex h-full flex-shrink-0 flex-col border-l bg-surface-main-background",style:{overflow:"hidden",...!P&&!z?{minWidth:0}:{},...!P&&!z?{maxWidth:"calc(100% - ".concat(O.Yb,"px)")}:{}},children:[!z&&!P&&(0,a.jsx)("div",{onMouseDown:ee,className:"group absolute left-0 top-0 z-20 flex h-full w-3 cursor-col-resize items-center justify-center",children:(0,a.jsx)("div",{className:"h-8 w-1 rounded-full transition-colors duration-150 ".concat(L?"bg-surface-primary-active":"group-hover:bg-surface-tertiary/40 bg-boarder-tertiary")})}),L&&!z&&(0,a.jsx)("div",{className:"absolute inset-0 z-10"}),(0,a.jsxs)("div",{className:n.Ap,children:[(0,a.jsxs)("div",{className:"border-boarder-tertiary/40 flex flex-shrink-0 items-center justify-between border-b py-1.5 ".concat(z?"px-6 md:px-8":"px-4"),children:[(0,a.jsxs)("div",{className:"flex min-w-0 items-center gap-2 overflow-hidden",children:[(0,a.jsx)(et.icon,{className:"h-3.5 w-3.5 flex-shrink-0 ".concat(et.iconColor)}),(0,a.jsx)("span",{className:"truncate text-sm font-medium",children:er.title}),er.badge&&(0,a.jsxs)("span",{className:"text-text-secondary/60 flex-shrink-0 text-sm",children:["\xb7 ",er.badge]})]}),(0,a.jsxs)("div",{className:"ml-2 flex flex-shrink-0 items-center",children:[ea&&(0,a.jsx)(l.t,{label:"Download as ZIP",children:(0,a.jsx)(u.$
1n,{variant:"ghost",size:"icon",onClick:Q,disabled:U,className:"h-8 w-8 text-text-secondary",children:U?(0,a.jsx)(p.A,{className:s.PL}):(0,a.jsx)(h.A,{className:"h-4 w-4"})})}),er.downloadHref&&(0,a.jsx)(l.t,{label:"Download",children:(0,a.jsx)(u.$n,{variant:"ghost",size:"icon",className:"h-8 w-8 text-text-secondary",onClick:()=>{var e;return(0,c.ek)(er.downloadHref,null!=(e=er.downloadName)?e:void 0)},children:(0,a.jsx)(h.A,{className:"h-4 w-4"})})}),!er.downloadHref&&"code"===_.data.type&&_.data.code&&(0,a.jsx)(l.t,{label:"Download",children:(0,a.jsx)(u.$n,{variant:"ghost",size:"icon",className:"h-8 w-8 text-text-secondary",onClick:()=>{var e,t,r,a;let l=_.data,n=null!=(t=({svg:"image/svg+xml",html:"text/html"})[null!=(e=l.language)?e:""])?t:"text/plain",s=new Blob([l.code],{type:n}),i=URL.createObjectURL(s),o=document.createElement("a");o.href=i,o.download=null!=(a=l.filename)?a:"file.".concat(null!=(r=l.language)?r:"txt"),o.click(),URL.revokeObjectURL(i)},children:(0,a.jsx)(h.A,{className:"h-4 w-4"})})}),eo&&(0,a.jsx)(l.t,{label:"Open in new tab",children:(0,a.jsx)(u.$n,{variant:"ghost",size:"icon",className:"h-8 w-8 text-text-secondary",asChild:!0,children:(0,a.jsx)("a",{href:_.data.previewUrl,target:"_blank",rel:"noopener noreferrer",children:(0,a.jsx)(g.A,{className:"h-4 w-4"})})})}),er.showRefresh&&(0,a.jsx)(u.$n,{variant:"ghost",size:"icon",onClick:Y,disabled:X.isBuilding,className:"h-8 w-8 text-text-secondary",title:X.isBuilding?"Rebuilding...":"Reload",children:X.isBuilding?(0,a.jsx)(p.A,{className:s.PL}):(0,a.jsx)(v.A,{className:"h-4 w-4"})}),!P&&(0,a.jsx)(u.$n,{variant:"ghost",size:"icon",onClick:J,className:"h-8 w-8 text-text-secondary",title:z?"Restore":"Maximize",children:z?(0,a.jsx)(b.A,{className:"h-4 w-4"}):(0,a.jsx)(w.A,{className:"h-4 w-4"})}),(0,a.jsx)(u.$n,{variant:"ghost",size:"icon",onClick:K,className:"h-8 w-8 text-text-secondary","aria-label":"Close artifact panel",children:(0,a.jsx)(j.A,{className:"h-4 w-4"})})]})]}),(0,a.jsx)(eF,{artifactKey:$,data:_.data,refreshToken:R,rebuildState:X})]}),(0,a.jsx)("style",{children:"\n            .artifact-code-wrap pre,\n            .artifact-code-wrap code {\n              white-space: pre-wrap !important;\n              word-break: break-word !important;\n              overflow-wrap: break-word !important;\n            }\n          "})]},"artifact-panel")})})},703117:(e,t,r)=>{r.d(t,{ET:()=>c,Eg:()=>o,Gg:()=>u,N5:()=>f,Yb:()=>l,a0:()=>a,dk:()=>s,kj:()=>i,mj:()=>m,ts:()=>d});let a=560,l=440;function n(e){return Math.min(1200,Math.max(0,e-l))}function s(e){return n(e)>=320}function i(e,t){let r=n(t);return r<320?r:Math.min(r,Math.max(320,e))}let o="w-full justify-start rounded-none border-b border-boarder-tertiary/40 bg-transparent px-2",c="rounded-none border-b-2 border-transparent px-3 py-1.5 text-xs data-[state=active]:border-boarder-action data-[state=active]:bg-transparent data-[state=active]:text-text-action",d="mt-0 min-h-0 flex-1 data-[state=inactive]:hidden data-[state=active]:flex",u="flex flex-1 flex-col items-center justify-center gap-3 p-6 text-text-secondary",f="flex flex-1 flex-col items-center justify-center gap-2 p-4 text-text-secondary",m="rounded-lg bg-surface-primary-active px-4 py-1.5 text-xs font-medium text-text-on-action transition-colors hover:bg-surface-primary-hover/90"},758116:(e,t,r)=>{r.d(t,{D:()=>x});var a=r(681122),l=r(242435),n=r(497868),s=r(682844),i=r(463271),o=r(524395),c=r(632027),d=r(596106),u=r(703117),f=r(427048);let m="mt-0 min-h-0 flex-1 overflow-auto px-6 pb-4 pt-3 data-[state=inactive]:hidden",x=(0,d.memo)(function(e){var t,r;let{data:x}=e,{text:p,error:h}=(0,n.e)(null!=(t=x.url)?t:null),{rows:g,rawText:v,parseFailed:b}=(0,d.useMemo)(()=>{if(null===p)return{rows:[],rawText:"",parseFailed:!1};try{return{rows:(0,f.Wk)(p),rawText:p,parseFailed:!1}}catch(e){return{rows:[],rawText:p,parseFailed:!0}}},[p]),w=!!h||b,j=w?"error":null===p?"loading":"ready";if((0,d.useEffect)(()=>{w&&(0,s.logClientError)("[ArtifactPanel] CSV preview failed",Error(null!=h?h:"CSV parse failed"),{filename:x.filename,__sf:"app/chat/components/artifacts/document/CsvPreview.tsx",__sl:56,__sfn:"CsvPreview"})},[w,h,x.filename]),"loading"===j)return(0,a.jsx)(l.s,{label:"Loading spreadsheet..."});if("error"===j)return(0,a.jsxs)("div",{className:u.Gg,children:[(0,a.jsx)(c.A,{className:"h-10 w-10 opacity-40"}),(0,a.jsx)("p",{className:"text-sm font-medium",children:x.filename}),(0,a.jsx)("p",{className:"text-xs",children:"We could not preview this CSV inline."}),(0,a.jsx)("button",{onClick:()=>(0,i.ek)(x.url,x.filename),className:u.mj,children:"Download File"})]});let y=null!=(r=g[0])?r:[],N=g.slice(1),k=g.length?Math.max(...g.map(e=>e.length)):0,C=N.slice(0,1e3),P=N.length>C.length;return(0,a.jsxs)(o.tU,{defaultValue:"preview",className:"flex min-h-0 flex-1 flex-col",children:[(0,a.jsx)("div",{className:"px-6 pt-4",children:(0,a.jsx)("div",{className:"mx-auto w-full max-w-7xl",children:(0,a.jsxs)(o.j7,{className:"bg-surface-secondary/70 h-8 w-fit roun
1ded-md p-0.5",children:[(0,a.jsx)(o.Xi,{value:"preview",className:"h-7 rounded px-3 text-caption",children:"Preview"}),(0,a.jsx)(o.Xi,{value:"raw",className:"h-7 rounded px-3 text-caption",children:"Raw"})]})})}),(0,a.jsx)(o.av,{value:"preview",className:m,children:(0,a.jsxs)("div",{className:"mx-auto w-full max-w-7xl",children:[(0,a.jsx)("div",{className:"border-boarder-tertiary/60 overflow-auto rounded-lg border bg-surface-main-background shadow-sm",children:(0,a.jsxs)("table",{className:"min-w-full border-collapse text-left text-xs",children:[y.length>0&&(0,a.jsx)("thead",{className:"sticky top-0 z-10 bg-surface-secondary",children:(0,a.jsx)("tr",{children:Array.from({length:k}).map((e,t)=>(0,a.jsx)("th",{className:"border-boarder-tertiary/60 min-w-[140px] max-w-[280px] border-b border-r px-3 py-2 font-medium text-text-primary last:border-r-0",children:(0,a.jsx)("span",{className:"line-clamp-2 break-words",children:y[t]||"Column ".concat(t+1)})},t))})}),(0,a.jsx)("tbody",{children:C.map((e,t)=>(0,a.jsx)("tr",{className:"even:bg-surface-secondary/30 odd:bg-surface-main-background",children:Array.from({length:k}).map((t,r)=>{var l;return(0,a.jsx)("td",{className:"border-boarder-tertiary/40 min-w-[140px] max-w-[280px] border-b border-r px-3 py-2 align-top text-text-secondary last:border-r-0",children:(0,a.jsx)("span",{className:"line-clamp-4 break-words",children:null!=(l=e[r])?l:""})},r)})},t))})]})}),P&&(0,a.jsxs)("p",{className:"mt-2 text-xs text-text-secondary",children:["Showing first ",C.length.toLocaleString()," rows of"," ",N.length.toLocaleString(),"."]})]})}),(0,a.jsx)(o.av,{value:"raw",className:m,children:(0,a.jsx)("div",{className:"mx-auto w-full max-w-7xl",children:(0,a.jsx)("pre",{className:"border-boarder-tertiary/60 bg-surface-secondary/30 min-h-full overflow-auto whitespace-pre rounded-lg border p-3 font-mono text-xs leading-relaxed text-text-secondary",children:v})})})]})})},817237:(e,t,r)=>{r.d(t,{H:()=>w});var a=r(681122),l=r(682844),n=r(653381),s=r(564467),i=r(905393);r(764486);var o=r(596106),c=r(921751),d=r(65593),u=r(237296),f=r(426951),m=r(421057),x=r(130765);let p="flex h-9 w-9 shrink-0 items-center justify-center rounded-md text-zinc-100 transition-colors hover:bg-white/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white disabled:cursor-not-allowed disabled:text-zinc-500 disabled:hover:bg-transparent";function h(e){let{currentPage:t,totalPages:r,scale:l,sourceUrl:n,filename:s,onPageChange:i,onZoomIn:h,onZoomOut:g,onFitWidth:v,onRotate:b}=e,[w,j]=(0,o.useState)(String(t)),y=(0,o.useRef)(!1);(0,o.useEffect)(()=>{y.current||j(String(t))},[t]);let N=Math.max(String(Math.max(r,1)).length,String(Math.max(t,1)).length);return(0,a.jsx)("div",{"aria-label":"PDF toolbar",role:"toolbar",className:"w-full shrink-0 overflow-x-auto bg-zinc-800 text-zinc-100","data-pdf-toolbar":!0,children:(0,a.jsxs)("div",{className:"flex min-h-12 min-w-max items-center gap-2 px-3 py-1.5",children:[(0,a.jsxs)("div",{className:"flex shrink-0 items-center gap-2 rounded-md","aria-label":"PDF page position",children:[(0,a.jsx)("input",{"aria-label":"Current PDF page",inputMode:"numeric",pattern:"[0-9]*",value:w,disabled:r<1,onChange:e=>{y.current=!0,j(e.target.value.replace(/[^0-9]/g,""))},onFocus:e=>{y.current=!0,e.currentTarget.select()},onBlur:()=>{y.current=!1;let e=Number.parseInt(w,10);if(!Number.isFinite(e))return void j(String(t));let a=Math.min(Math.max(e,1),Math.max(r,1));j(String(a)),i(a)},onKeyDown:e=>{"Enter"===e.key?(e.preventDefault(),e.currentTarget.blur()):"Escape"===e.key&&(e.preventDefault(),y.current=!1,j(String(t)),e.currentTarget.blur())},style:{width:"".concat(Math.max(3,N+1),"ch")},className:"h-8 min-w-12 rounded-md border border-zinc-500 bg-zinc-950 px-2 text-center text-sm font-semibold tabular-nums text-white shadow-sm outline-none transition-colors hover:border-zinc-300 focus:border-white focus:ring-2 focus:ring-white/70 disabled:opacity-60"}),(0,a.jsxs)("span",{"aria-label":"".concat(r," total PDF pages"),className:"whitespace-nowrap text-sm font-semibold tabular-nums text-zinc-100",children:["/ ",r>0?r:"—"]})]}),(0,a.jsx)("div",{className:"mx-1 h-6 w-px shrink-0 bg-zinc-600"}),(0,a.jsx)("button",{type:"button","aria-label":"Zoom out",title:"Zoom out",className:p,onClick:g,disabled:l<=.5,children:(0,a.jsx)(c.A,{className:"h-4 w-4"})}),(0,a.jsxs)("span",{"aria-label":"PDF zoom ".concat(Math.round(100*l)," percent"),className:"min-w-14 text-center text-sm font-semibold tabular-nums text-zinc-100",children:[Math.round(100*l),"%"]}),(0,a.jsx)("button",{type:"button","aria-label":"Zoom in",title:"Zoom in",className:p,onClick:h,disabled:l>=2,children:(0,a.jsx)(d.A,{className:"h-4 w-4"})}),(0,a.jsx)("button",{type:"button","aria-label":"Fit PDF to width",title:"Fit to width",className:p,onClick:v,children:(0,a.jsx)(u.A,{className:"h-4 w-4"})}),(0,a.jsx)("button",{type:"button","aria-label":"Rotate PDF clockwise",title:"Rotate clockwise",className:p,onClick:b,children:(0,a.jsx)(f.A,{className:"h-4 w-4"})}),(0,a.jsx)("div",{className:"mx-1 h-6 w-px shrink-0 bg-zinc-600"}),(0,a.jsx)("a",{href:n,download:s,"aria-label":"Download PDF",title:"Download PDF",className:p,children:(0,a.jsx)(m.A,{className:"h-4 w-4"})}),(0,a.jsx)("a",{href:n,target:"_blank",rel:"noopener noreferrer","aria-label":"Open PDF in a new tab",title:"Open in a new tab",className:p,children:(0,a.jsx)(x.A,{className:"h-4 w-4"})})]})})}let g=null;function v(e){return Math.min(Math.max(e,.5),2)}let b=new Set(["AbortError","InvalidPDFException","MissingPDFException","PasswordException","TimeoutError","UnexpectedResponseException","UnknownErrorException"]);function w(e){let{sourceUrl:t,filename:c,className:d}=e,u=(0,o.useRef)(null),f=(0,o.useRef)(null),m=(0,o.useRef)(null),[x,p]=(0,o.useState)(0),[w,j]=(0,o.useState)(1),[y,N]=(0,o.useState)(1),[k,C]=(0,o.useState)(0),[P,_]=(0,o.useState)(!1),[A,E]=(0,o.useState)(!1),[S,R]=(0,o.useState)(0);return((0,o.useEffect)(()=>{let e=u.current,a=f.current;if(!e||!a)return;let s=!1,i=null,o=null,c=null,d=()=>{null!==c&&(clearTimeout(c),c=null)},x=e=>{s||(d(),null==o||o(),o=null,null==i||i.destroy(),i=null,E(!0),(0,l.logClientWarn)("[PDFViewer] Document load failed",{operation:"load-pdf-document",sourceHost:function(e){try{return new URL(e).hostname||"browser-owned-url"}catch(e){return"browser-owned-url"}}(t),sourceUrl:(0,n.C)(t),...function(e){let t=e instanceof Error?e.name:"",r=b.has(t)?t:"unknown",a="object"==typeof e&&null!==e&&"status"in e&&"number"==typeof e.status&&Number.isInteger(e.status)&&e.status>=100&&e.status<=599?e.status:void 0;return{errorCategory:r,...void 0===a?{}:{status:a}}}(e),__sf:"app/components/media/pdf/PdfViewer.tsx",__sl:156,__sfn:"failPreview"}))};return p(0),j(1),N(1),C(0),_(!1),E(!1),(async()=>{let{core:l,viewer:n}=await function(){if(!g){let e=Promise.all([r.e(8662),r.e(9965)]).then(r.bind(r,265238)).then(async e=>{globalThis.pdfjsLib=e;let t=await r.e(9140).then(r.bind(r,58283));return e.GlobalWorkerOptions.workerSrc=new r.U(r(377272)).toString(),{core:e,viewer:t}});g=e,e.catch(()=>{g===e&&(g=null)})}return g}();if(s)return;let u=new n.EventBus,f=new n.PDFLinkService({eventBus:u}),h=new n.PDFViewer({container:e,viewer:a,eventBus:u,linkService:f,enablePermissions:!0,enablePrintAutoRotate:!0,supportsPinchToZoom:!0});f.setViewer(h),m.current=h;let v=()=>{h.currentScaleValue="page-width";let e=function(e){try{var t;let r=null==(t=new URL(e).hash.slice(1).split("&").map(e=>e.split("=",2)).find(e=>{let[t]=e;return"page"===t}))?void 0:t[1],a=Number.parseInt(null!=r?r:"",10);return Number.isInteger(a)&&a>0?a:null}catch(e){return null}}(t);e&&e<=h.pagesCount&&(h.currentPageNumber=e),j(h.currentPageNumber),N(h.currentScale)}
1,b=()=>{d(),_(!0)},w=e=>{let{pageNumber:t}=e;j(t)},y=e=>{let{scale:t}=e;N(t)},k=e=>{let{pagesRotation:t}=e;C(t)};u.on("pagesinit",v),u.on("pagerendered",b),u.on("pagechanging",w),u.on("scalechanging",y),u.on("rotationchanging",k),o=()=>{u.off("pagesinit",v),u.off("pagerendered",b),u.off("pagechanging",w),u.off("scalechanging",y),u.off("rotationchanging",k),h.setDocument(null),f.setDocument(null),m.current===h&&(m.current=null)},i=l.getDocument({url:t,disableAutoFetch:!0});let P=await i.promise;if(s)return void await P.destroy();p(P.numPages),f.setDocument(P),c=setTimeout(()=>{let e=Error("PDF loaded but no page was rendered before the preview deadline");e.name="TimeoutError",x(e)},15e3),h.setDocument(P)})().catch(x),()=>{s=!0,d(),null==o||o(),null==i||i.destroy()}},[S,t]),A)?(0,a.jsxs)("div",{className:(0,s.cn)("flex h-full min-h-48 flex-1 flex-col items-center justify-center gap-3 bg-zinc-900 p-8 text-center text-zinc-100",d),children:[(0,a.jsxs)("div",{className:"space-y-1",role:"alert",children:[(0,a.jsx)("p",{className:"text-sm font-semibold",children:"PDF preview unavailable"}),(0,a.jsx)("p",{className:"max-w-sm text-xs text-zinc-300",children:"Retry the preview or open the original PDF in a new tab."})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("button",{type:"button",onClick:()=>{E(!1),R(e=>e+1)},className:"rounded-md bg-white px-3 py-2 text-sm font-medium text-zinc-950 hover:bg-zinc-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white",children:"Retry preview"}),(0,a.jsx)("a",{href:t,target:"_blank",rel:"noopener noreferrer",className:"rounded-md border border-zinc-500 px-3 py-2 text-sm font-medium text-white hover:bg-white/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white",children:"Open PDF"})]})]}):(0,a.jsxs)("section",{"aria-label":"".concat(c," PDF preview"),className:(0,s.cn)("flex h-full min-h-48 flex-1 flex-col overflow-hidden",d),"data-pdf-viewer":!0,children:[(0,a.jsx)(h,{currentPage:w,totalPages:x,scale:y,sourceUrl:t,filename:c,onPageChange:e=>{m.current&&(m.current.currentPageNumber=e)},onZoomOut:()=>{let e=m.current;e&&(e.currentScale=v(y-.1))},onZoomIn:()=>{let e=m.current;e&&(e.currentScale=v(y+.1))},onFitWidth:()=>{m.current&&(m.current.currentScaleValue="page-width")},onRotate:()=>{m.current&&(m.current.pagesRotation=(k+90)%360)}}),(0,a.jsxs)("div",{className:"relative min-h-0 flex-1 bg-zinc-950","data-pdf-document-region":!0,children:[!P&&(0,a.jsxs)("div",{className:"absolute inset-0 z-10 flex items-center justify-center gap-2 bg-zinc-950 text-sm font-medium text-zinc-200",children:[(0,a.jsx)(i.A,{className:"h-5 w-5 animate-spin","aria-hidden":"true"}),"Loading PDF…"]}),(0,a.jsx)("div",{ref:u,role:"document","aria-label":"".concat(c," pages"),tabIndex:0,className:"absolute inset-0 overflow-auto outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-white",children:(0,a.jsx)("div",{ref:f,className:"pdfViewer"})})]})]})}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.