@runtypelabs/persona 4.21.1 → 4.22.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/animations/glyph-cycle.d.cts +1 -1
- package/dist/animations/glyph-cycle.d.ts +1 -1
- package/dist/animations/{types-B_JdVK9o.d.cts → types-9Vxm-PPz.d.cts} +136 -6
- package/dist/animations/{types-B_JdVK9o.d.ts → types-9Vxm-PPz.d.ts} +136 -6
- package/dist/animations/wipe.d.cts +1 -1
- package/dist/animations/wipe.d.ts +1 -1
- package/dist/animations-extra.d.cts +136 -6
- package/dist/animations-extra.d.ts +136 -6
- package/dist/{approval-ui-RNNBR5R3.js → approval-ui-K7R5Q5OC.js} +1 -1
- package/dist/approval-ui.cjs +2 -2
- package/dist/approval-ui.d.cts +221 -16
- package/dist/approval-ui.d.ts +221 -16
- package/dist/approval-ui.js +2 -2
- package/dist/artifacts-ui-F4N6VMKF.js +7 -0
- package/dist/artifacts-ui.cjs +1 -1
- package/dist/artifacts-ui.d.cts +221 -16
- package/dist/artifacts-ui.d.ts +221 -16
- package/dist/artifacts-ui.js +1 -1
- package/dist/chunk-NQLDCJAP.js +4 -0
- package/dist/codegen.cjs +1 -1
- package/dist/codegen.js +1 -1
- package/dist/context-mentions.d.cts +221 -16
- package/dist/context-mentions.d.ts +221 -16
- package/dist/event-stream-view-GL3ADRY2.js +1 -0
- package/dist/event-stream-view.cjs +1 -1
- package/dist/event-stream-view.d.cts +221 -16
- package/dist/event-stream-view.d.ts +221 -16
- package/dist/event-stream-view.js +1 -1
- package/dist/forms-ui.d.cts +234 -25
- package/dist/forms-ui.d.ts +234 -25
- package/dist/history-view.d.cts +136 -6
- package/dist/history-view.d.ts +136 -6
- package/dist/index.cjs +70 -70
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +302 -32
- package/dist/index.d.ts +302 -32
- package/dist/index.global.js +54 -54
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +69 -69
- package/dist/index.js.map +1 -1
- package/dist/launcher.global.js +2 -2
- package/dist/launcher.global.js.map +1 -1
- package/dist/session-reconnect.d.cts +221 -16
- package/dist/session-reconnect.d.ts +221 -16
- package/dist/smart-dom-reader.d.cts +221 -16
- package/dist/smart-dom-reader.d.ts +221 -16
- package/dist/testing.cjs +3 -3
- package/dist/testing.d.cts +3 -4
- package/dist/testing.d.ts +3 -4
- package/dist/testing.js +3 -3
- package/dist/theme-editor-preview.cjs +73 -73
- package/dist/theme-editor-preview.d.cts +221 -16
- package/dist/theme-editor-preview.d.ts +221 -16
- package/dist/theme-editor-preview.js +51 -51
- package/dist/theme-editor.cjs +4 -4
- package/dist/theme-editor.d.cts +221 -16
- package/dist/theme-editor.d.ts +221 -16
- package/dist/theme-editor.js +2 -2
- package/dist/theme-reference.cjs +1 -1
- package/dist/theme-reference.d.cts +65 -1
- package/dist/theme-reference.d.ts +65 -1
- package/dist/theme-reference.js +1 -1
- package/dist/voice-runtime.d.cts +6 -2
- package/dist/voice-runtime.d.ts +6 -2
- package/dist/webmcp-polyfill.js +1 -4
- package/dist/webmcp-runtime-JI7T4QYF.js +6 -0
- package/dist/webmcp-runtime.cjs +2 -2
- package/dist/webmcp-runtime.d.cts +34 -2
- package/dist/webmcp-runtime.d.ts +34 -2
- package/dist/webmcp-runtime.js +2 -2
- package/package.json +2 -2
- package/src/ask-user-question-tool.ts +1 -1
- package/src/client-history-rest.test.ts +2 -1
- package/src/client-visitor-history.test.ts +20 -4
- package/src/client.composer-options.test.ts +1 -1
- package/src/client.interrupt.test.ts +2 -2
- package/src/client.test.ts +477 -915
- package/src/client.ts +134 -494
- package/src/client.unified-tools.test.ts +76 -0
- package/src/components/artifact-preview.ts +5 -0
- package/src/components/event-stream-badge-theming.test.ts +162 -0
- package/src/components/event-stream-view.test.ts +76 -76
- package/src/components/event-stream-view.ts +55 -20
- package/src/components/tool-bubble.test.ts +12 -0
- package/src/components/tool-bubble.ts +13 -2
- package/src/event-stream-view-bundle.test.ts +2 -2
- package/src/generated/runtype-openapi-contract.ts +137 -1
- package/src/index-core.ts +2 -0
- package/src/internal/runtype-history-provider.test.ts +2 -2
- package/src/runtime/init.registry.test.ts +56 -0
- package/src/runtime/init.ts +17 -0
- package/src/session-history.test.ts +1 -1
- package/src/session.quote.test.ts +1 -1
- package/src/session.resubmit-from.test.ts +1 -1
- package/src/session.test.ts +5 -5
- package/src/session.ts +95 -36
- package/src/suggest-replies-tool.ts +1 -1
- package/src/testing/mock-stream.test.ts +37 -16
- package/src/testing/mock-stream.ts +14 -9
- package/src/types/theme.ts +41 -1
- package/src/types.ts +57 -15
- package/src/ui.ask-user-question-plugin.test.ts +7 -7
- package/src/ui.composer-defer-one.test.ts +6 -34
- package/src/ui.composer-draft-persistence.test.ts +1 -1
- package/src/ui.composer-quote.test.ts +1 -1
- package/src/ui.message-history-actions.test.ts +1 -1
- package/src/ui.reasoning-display.test.ts +136 -2
- package/src/ui.streaming-coalescing.test.ts +10 -13
- package/src/ui.ts +101 -35
- package/src/ui.typing-indicator.test.ts +216 -0
- package/src/ui.voice-custom-provider.test.ts +211 -0
- package/src/utils/__snapshots__/tokens-parity.test.ts.snap +1740 -0
- package/src/utils/event-stream-buffer.test.ts +13 -13
- package/src/utils/event-stream-capture.test.ts +20 -20
- package/src/utils/formatting.ts +22 -0
- package/src/utils/theme.ts +16 -0
- package/src/utils/throughput-tracker.test.ts +100 -142
- package/src/utils/throughput-tracker.ts +18 -132
- package/src/utils/tokens.ts +59 -0
- package/src/utils/voice-support.ts +18 -1
- package/src/voice/voice-turn-tracker.ts +18 -0
- package/src/webmcp-bridge.test.ts +132 -23
- package/src/webmcp-bridge.ts +27 -3
- package/src/webmcp-runtime-entry.ts +71 -11
- package/dist/artifacts-ui-J6AKUGTS.js +0 -7
- package/dist/chunk-HBE7LFNT.js +0 -4
- package/dist/event-stream-view-73NWKWVQ.js +0 -1
- package/dist/webmcp-runtime-P3CHZRHF.js +0 -6
- package/src/utils/__fixtures__/unified-translator.oracle.ts +0 -717
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import{c as Qe,d as et,e as tt,f as nt,g as ot,h as rt,i as st,q as V,r as ge,s as Te,t as lt,v as ct,w as dt}from"./chunk-NIKYKSNZ.js";import{a as ye}from"./chunk-7NQ4ZTHF.js";import{a as m,b as at,d as it}from"./chunk-76IELU7F.js";function oe(e){let t=String(e).split(/[\\/]/);return t[t.length-1]??""}function ft(e){let t=oe(e),n=t.lastIndexOf(".");return n<=0?"":t.slice(n+1).toLowerCase()}function ke(e){if(typeof e!="string")return"";let t=e.indexOf(`
|
|
2
|
+
`);if(t===-1||!e.slice(0,t).startsWith("```"))return e;let r=e.slice(t+1),o=r.lastIndexOf(`
|
|
3
|
+
`);return(o===-1?r:r.slice(0,o)).split("`\u200B``").join("```")}function fe(e){let t=ft(e.path);if(t)return t==="html"||t==="htm"?"html":t==="svg"?"svg":t==="md"||t==="mdx"?"markdown":"other";let n=(e.mimeType||"").toLowerCase();return n.includes("html")?"html":n.includes("svg")?"svg":n.includes("markdown")?"markdown":"other"}function ce(e){switch(fe(e)){case"html":return"HTML";case"svg":return"SVG";case"markdown":return"Markdown";default:{let t=ft(e.path);return t?t.toUpperCase():"File"}}}function Se(e){let t=e.markdown??"";return e.file?{filename:oe(e.file.path)||"artifact",mime:e.file.mimeType||"application/octet-stream",content:ke(t)}:{filename:`${e.title||"artifact"}.md`,mime:"text/markdown",content:t}}function Ee(e){let t=new Blob([e.content],{type:e.mime}),n=URL.createObjectURL(t),r=document.createElement("a");r.href=n,r.download=e.filename,r.click(),URL.revokeObjectURL(n)}var Pe="persona-artifact-custom-action-btn";function be(e,t){let n=t?.documentChrome??!1,r;if(typeof e.icon=="function"){if(e.showLabel){let o="persona-label-btn persona-label-btn--sm "+Pe+(n?" persona-artifact-doc-copy-btn":"");r=m("button",o)}else{let o="persona-icon-btn "+Pe+(n?" persona-artifact-doc-icon-btn":"");r=m("button",o)}r.type="button",r.setAttribute("aria-label",e.label),r.title=e.label;try{let o=e.icon();o&&r.appendChild(o)}catch{}if(e.showLabel){let o=m("span");o.textContent=e.label,r.appendChild(o)}}else e.showLabel||!e.icon?r=ge({icon:e.icon,label:e.label,className:Pe+(n?" persona-artifact-doc-copy-btn":"")}):r=V({icon:e.icon,label:e.label,className:Pe+(n?" persona-artifact-doc-icon-btn":"")});return t?.onClick&&r.addEventListener("click",t.onClick),r}function ve(e){if(!e)return null;let t={artifactId:e.id,title:e.title??"",artifactType:e.artifactType};return e.artifactType==="markdown"?(t.markdown=e.markdown??"",e.file&&(t.file=e.file)):t.jsonPayload=JSON.stringify({component:e.component,props:e.props},null,2),t}var Ne="http://www.w3.org/2000/svg";function pt(e){let t=document.createElementNS(Ne,"svg");t.setAttribute("class",it("persona-spinner",e)),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("aria-hidden","true"),t.setAttribute("focusable","false");let n=document.createElementNS(Ne,"circle");n.setAttribute("class","persona-spinner-track"),n.setAttribute("cx","12"),n.setAttribute("cy","12"),n.setAttribute("r","9");let r=document.createElementNS(Ne,"circle");return r.setAttribute("class","persona-spinner-arc"),r.setAttribute("cx","12"),r.setAttribute("cy","12"),r.setAttribute("r","9"),t.appendChild(n),t.appendChild(r),t}function ut(e,t,n){let r=n?.loadingAnimation??"shimmer",o=n?.loadingAnimationDuration??2e3;if(r==="none"){e.textContent=t;return}if(r==="pulse"){e.setAttribute("data-preserve-animation","true"),e.classList.add("persona-tool-loading-pulse"),e.style.setProperty("--persona-tool-anim-duration",`${o}ms`),e.textContent=t;return}e.setAttribute("data-preserve-animation","true"),e.classList.add(`persona-tool-loading-${r}`),e.style.setProperty("--persona-tool-anim-duration",`${o}ms`),r==="shimmer-color"&&(n?.loadingAnimationColor&&e.style.setProperty("--persona-tool-anim-color",n.loadingAnimationColor),n?.loadingAnimationSecondaryColor&&e.style.setProperty("--persona-tool-anim-secondary-color",n.loadingAnimationSecondaryColor)),ct(e,t,0)}var Ve="persona-artifact-status-label",mt="persona-artifact-status-detail",yt="data-artifact-status-label",ze=new Map,gt=()=>typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now();function he(e){e&&ze.delete(e)}function Ot(e){let t=e.artifactType==="markdown"?e.file:void 0;return t?ce(t):e.artifactType==="component"?"Component":"Document"}function we(e,t,n){let r=Ot(e),o=`Generating ${r.toLowerCase()}...`,s=t?.statusLabel;if(typeof s=="string")return{label:s};if(typeof s!="function")return{label:o};let i=e.id,l=ze.get(i);e.status!=="complete"&&l===void 0&&(l=gt(),ze.set(i,l));let A=l===void 0?0:Math.max(0,gt()-l),h=e.artifactType==="component",f=!h&&typeof e.markdown=="string"?e.markdown:"",p=h?0:f.length,u=h||f===""?0:f.split(`
|
|
4
|
+
`).length,c=e.artifactType==="markdown"?e.file:void 0,y={artifactId:i,artifactType:e.artifactType,title:e.title,typeLabel:r,file:c,chars:p,lines:u,elapsedMs:A,content:()=>h?"":f,surface:n};try{let g=s(y);return typeof g=="string"?{label:g}:g&&typeof g=="object"&&typeof g.label=="string"?{label:g.label,detail:typeof g.detail=="string"?g.detail:void 0}:{label:o}}catch{return{label:o}}}function Ft(e){e.className=Ve,e.removeAttribute("data-preserve-animation"),e.style.removeProperty("--persona-tool-anim-duration"),e.style.removeProperty("--persona-tool-anim-color"),e.style.removeProperty("--persona-tool-anim-secondary-color"),e.replaceChildren()}function pe(e,t,n){let r=e.querySelector(`:scope > .${Ve}`);r||(r=m("span",Ve),e.appendChild(r)),r.getAttribute(yt)!==t.label&&(Ft(r),ut(r,t.label,n),r.setAttribute(yt,t.label));let o=e.querySelector(`:scope > .${mt}`),s=t.detail;s?(o||(o=m("span",mt),e.appendChild(o)),o.textContent!==s&&(o.textContent=s)):o&&o.remove()}var _t={keyword:"persona-code-token-keyword",string:"persona-code-token-string",comment:"persona-code-token-comment",number:"persona-code-token-number",tag:"persona-code-token-tag",attr:"persona-code-token-attr",property:"persona-code-token-property"},Dt=15e4,Me={html:"html",htm:"html",xhtml:"html",xml:"html",svg:"html",css:"css",js:"js",jsx:"js",mjs:"js",cjs:"js",ts:"js",tsx:"js",mts:"js",cts:"js",javascript:"js",typescript:"js",ecmascript:"js",json:"json",jsonc:"json",json5:"json"};function jt(e,t){let n=(e||"").trim().toLowerCase();if(n&&Me[n])return Me[n];if(t){let r=t.lastIndexOf(".");if(r>=0){let o=t.slice(r+1).toLowerCase();if(Me[o])return Me[o]}}return null}function Re(e,t){let n=[],r=0,o=0,s=i=>{i>o&&n.push({type:"plain",value:e.slice(o,i)})};for(;r<e.length;){let i=!1;for(let l of t){l.re.lastIndex=r;let A=l.re.exec(e);if(A&&A.index===r&&A[0].length>0){s(r);let h=l.map?l.map(A[0]):l.type;n.push({type:h,value:A[0]}),r+=A[0].length,o=r,i=!0;break}}i||(r+=1)}return s(e.length),n}var Nt=new Set(["abstract","any","as","async","await","boolean","break","case","catch","class","const","continue","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","instanceof","interface","keyof","let","namespace","never","new","null","number","object","of","private","protected","public","readonly","return","satisfies","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unknown","var","void","while","yield"]),Vt=[{type:"comment",re:/\/\/[^\n]*/y},{type:"comment",re:/\/\*[\s\S]*?\*\//y},{type:"string",re:/`(?:\\[\s\S]|[^\\`])*`/y},{type:"string",re:/"(?:\\.|[^"\\\n])*"/y},{type:"string",re:/'(?:\\.|[^'\\\n])*'/y},{type:"number",re:/0[xX][0-9a-fA-F]+|(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/y},{type:"plain",re:/[A-Za-z_$][\w$]*/y,map:e=>Nt.has(e)?"keyword":"plain"}];function bt(e){return Re(e,Vt)}var zt=[{type:"string",re:/"(?:\\.|[^"\\])*"/y},{type:"number",re:/-?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/y},{type:"plain",re:/[A-Za-z_]\w*/y,map:e=>e==="true"||e==="false"||e==="null"?"keyword":"plain"}];function Wt(e){let t=Re(e,zt);for(let n=0;n<t.length;n+=1){if(t[n].type!=="string")continue;let r=n+1;for(;r<t.length&&t[r].value.trim()==="";)r+=1;let o=t[r];o&&o.value.replace(/^\s*/,"").startsWith(":")&&(t[n].type="property")}return t}var Ut=[{type:"comment",re:/\/\*[\s\S]*?\*\//y},{type:"string",re:/"(?:\\.|[^"\\\n])*"/y},{type:"string",re:/'(?:\\.|[^'\\\n])*'/y},{type:"keyword",re:/@[A-Za-z-]+/y},{type:"number",re:/#[0-9a-fA-F]{3,8}\b/y},{type:"number",re:/-?(?:\d+\.?\d*|\.\d+)(?:[a-z%]+)?/y},{type:"plain",re:/[A-Za-z_-][\w-]*/y}];function ht(e){let t=Re(e,Ut),n="";for(let r=0;r<t.length;r+=1){let o=t[r];if(o.type==="plain"&&/^[A-Za-z_-][\w-]*$/.test(o.value)){let i=r+1;for(;i<t.length&&t[i].value.trim()==="";)i+=1;let l=t[i];l&&l.value.replace(/^\s*/,"").startsWith(":")&&(n===""||n==="{"||n==="}"||n===";"||n===",")&&(o.type="property")}let s=o.value.replace(/\s+$/,"");s&&(n=s[s.length-1])}return t}var $t=[{type:"tag",re:/<\/?\s*[A-Za-z][\w:-]*/y},{type:"string",re:/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'/y},{type:"attr",re:/[A-Za-z_:@][\w:.-]*(?=\s*=)/y},{type:"attr",re:/[A-Za-z_:@][\w:.-]*/y},{type:"tag",re:/\/?>/y}];function qt(e){let t=[],n=(s,i)=>{i&&t.push({type:s,value:i})},r=e.length,o=0;for(;o<r;){if(e.startsWith("<!--",o)){let i=e.indexOf("-->",o+4),l=i===-1?r:i+3;n("comment",e.slice(o,l)),o=l;continue}if(e[o]==="<"&&e[o+1]==="!"){let i=e.indexOf(">",o),l=i===-1?r:i+1;n("tag",e.slice(o,l)),o=l;continue}if(e[o]==="<"&&/[A-Za-z/]/.test(e[o+1]||"")){let i=e.indexOf(">",o),l=i===-1?r:i+1,A=e.slice(o,l);for(let f of Re(A,$t))t.push(f);o=l;let h=/^<\s*(script|style)\b/i.exec(A);if(h&&!/\/>\s*$/.test(A)){let f=h[1].toLowerCase(),u=new RegExp("</\\s*"+f+"\\s*>","i").exec(e.slice(o)),c=u?o+u.index:r,y=e.slice(o,c),g=f==="script"?bt(y):ht(y);for(let S of g)t.push(S);o=c}continue}let s=e.indexOf("<",o);if(s===o)n("plain",e[o]),o+=1;else{let i=s===-1?r:s;n("plain",e.slice(o,i)),o=i}}return t}function Gt(e,t){switch(t){case"html":return qt(e);case"css":return ht(e);case"js":return bt(e);case"json":return Wt(e)}}function Kt(e){let t=at(),n=m("span","persona-code-line"),r=(o,s)=>{if(!s)return;let i=_t[o];if(i){let l=m("span",i);l.textContent=s,n.appendChild(l)}else n.appendChild(document.createTextNode(s))};for(let o of e){let s=o.value.split(`
|
|
5
|
+
`);for(let i=0;i<s.length;i+=1)i>0&&(t.appendChild(n),t.appendChild(document.createTextNode(`
|
|
6
|
+
`)),n=m("span","persona-code-line")),r(o.type,s[i])}return n.childNodes.length>0?t.appendChild(n):t.lastChild||t.appendChild(n),t}function wt(e,t,n){let r=e.length<=Dt?jt(t,n):null,o=r?Gt(e,r):[{type:"plain",value:e}];return Kt(o)}var At=null,vt=e=>{At=e.componentRegistry},Ct=()=>At;function He(e){if(!e)return"";if(e.artifactType==="markdown"){let t=e.markdown??"";return e.file?ke(t):t}return JSON.stringify({component:e.component,props:e.props},null,2)}var We=!1;function Zt(e){return"persona-artifact-vt-"+((e||"artifact").replace(/[^A-Za-z0-9_-]/g,"-").replace(/^-+/,"")||"artifact")}function xt(e,t,n,r){let o=typeof document<"u"?document.startViewTransition:void 0,s=!1;try{s=typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{s=!1}if(t!=="auto"||!e||typeof o!="function"||We||s){r();return}We=!0;let i=Zt(n);e.style.setProperty("view-transition-name",i);let l=()=>{We=!1,e.style.removeProperty("view-transition-name")};try{o.call(document,()=>{r()}).finished.then(l,l)}catch{l(),r()}}var Jt="persona-font-mono persona-text-xs persona-whitespace-pre-wrap persona-break-words persona-text-persona-primary",Xt="persona-text-sm persona-leading-relaxed persona-markdown-bubble";function Yt(e){let t=m("div","persona-rounded-lg persona-border persona-border-persona-border persona-p-3 persona-text-persona-primary"),n=m("div","persona-font-semibold persona-text-sm persona-mb-2");n.textContent=e.component?`Component: ${e.component}`:"Component";let r=m("pre","persona-font-mono persona-text-xs persona-whitespace-pre-wrap persona-overflow-x-auto");return r.textContent=JSON.stringify(e.props??{},null,2),t.appendChild(n),t.appendChild(r),t}function Qt(e){if(e===!1)return{enabled:!1,delayMs:0,minVisibleMs:0,timeoutMs:0,injectReadySignal:!1,label:"Starting preview...",labelDelayMs:2e3};let t=e&&typeof e=="object"?e:void 0;return{enabled:!0,delayMs:t?.delayMs??200,minVisibleMs:t?.minVisibleMs??300,timeoutMs:t?.timeoutMs??8e3,injectReadySignal:t?.injectReadySignal!==!1,label:t?.label===!1?!1:t?.label??"Starting preview...",labelDelayMs:t?.labelDelayMs??2e3,renderIndicator:t?.renderIndicator}}var en=220;function tn(){try{if(typeof crypto<"u"&&crypto.getRandomValues){let e=new Uint32Array(2);return crypto.getRandomValues(e),e[0].toString(36)+e[1].toString(36)}}catch{}return Math.random().toString(36).slice(2)+Math.random().toString(36).slice(2)}function nn(e){return`
|
|
7
|
+
<script>(function(){var d=false;var t=`+JSON.stringify(e)+";function r(){if(d)return;d=true;try{parent.postMessage({persona:'artifact-preview-ready',token:t},'*');}catch(e){}}function s(){if(typeof requestAnimationFrame==='function'){requestAnimationFrame(function(){requestAnimationFrame(r);});}setTimeout(r,150);}if(document.readyState==='complete'){s();}else{window.addEventListener('load',s);}})();</script>"}function on(e,t,n){let r=m("div","persona-artifact-frame-loading");if(n.renderIndicator)try{let i=n.renderIndicator({artifactId:e,config:t});if(i)return r.appendChild(i),{el:r,revealLabel:()=>{}}}catch{}let o=m("div","persona-artifact-frame-loading-indicator");o.appendChild(pt());let s=null;return n.label!==!1&&(s=m("div","persona-artifact-frame-loading-text"),s.textContent=n.label,o.appendChild(s)),r.appendChild(o),{el:r,revealLabel:()=>{s&&s.classList.add("persona-artifact-frame-loading-text--visible")}}}function rn(e,t,n,r,o,s){let i=null,l=0,A=!1,h=new Set,f=()=>{h.forEach(x=>clearTimeout(x)),h.clear()},p=(x,P)=>{let $=setTimeout(()=>{h.delete($),!(typeof document>"u")&&x()},P);h.add($)},u=()=>{i&&i.parentElement&&i.remove(),i=null},c=()=>{if(i||A)return;let x=on(o,s,r);i=x.el,e.appendChild(i),l=Date.now(),r.label!==!1&&p(x.revealLabel,r.labelDelayMs)},y=()=>{i&&(i.classList.add("persona-artifact-frame-loading--out"),p(u,en))},g=()=>{n!==null?typeof window<"u"&&window.removeEventListener("message",I):t.removeEventListener("load",L)},S=()=>{if(A||(A=!0,g(),f(),!i))return;let x=Math.max(0,r.minVisibleMs-(Date.now()-l));x>0?p(y,x):y()};function I(x){if(n===null)return;let P=x.data;!P||P.persona!=="artifact-preview-ready"||P.token!==n||x.source===t.contentWindow&&S()}function L(){let x=P=>{typeof requestAnimationFrame=="function"?requestAnimationFrame(()=>P()):setTimeout(P,0)};x(()=>x(()=>S()))}return p(c,r.delayMs),p(S,r.timeoutMs),n!==null?typeof window<"u"&&window.addEventListener("message",I):t.addEventListener("load",L),()=>{A=!0,f(),g(),u()}}function Ie(e,t){let{config:n}=t,r=t.registry??Ct()??dt,o=t.bodyLayout,s=n.markdown?nt(n.markdown):null,i=rt(n.sanitize),l=e,A=!1,h=d=>{let M=tt()!==null;s&&!M&&!A&&(A=!0,Qe(()=>Z(l)));let O=s?s(d):ot(d);return s&&M&&i?i(O):O},f=m("div","persona-artifact-preview-body"),p=null,u=null,c=null,y=()=>{c&&(c(),c=null),p=null,u=null},g=null,S=null,I=null,L=!1,x=()=>{g=null,S=null,I=null,L=!1},P=null,$=null,J=()=>{P=null,$=null},re=40,Y=0,ie=d=>typeof requestAnimationFrame=="function"?requestAnimationFrame(()=>d()):setTimeout(d,0),_=d=>d.scrollHeight-d.clientHeight-d.scrollTop<=re,K=d=>{if(!o)return;let M=d.scrollHeight-d.clientHeight>1,O=d.scrollHeight-d.clientHeight-d.scrollTop;d.classList.toggle("persona-artifact-fade-top",o.fadeTop&&M&&d.scrollTop>1),d.classList.toggle("persona-artifact-fade-bottom",o.fadeBottom&&M&&O>1)},D=d=>{Y||(Y=ie(()=>{Y=0,d.scrollTop=d.scrollHeight,K(d)}))},z=(d,M,O,b)=>{let T=!!o,F=O.id+"|"+(T?"w":"p");if(!g||I!==F||g.parentElement!==f){y(),J(),f.replaceChildren();let w=m("pre",Jt+" persona-code-pre"),H=m("code","persona-code");if(w.appendChild(H),T){let j=m("div","persona-artifact-source-window");if(j.appendChild(w),f.appendChild(j),!(o?.overflow==="clip")&&typeof j.addEventListener=="function"){let X=()=>j.scrollHeight-j.clientHeight>1;j.addEventListener("scroll",()=>{_(j)&&(L=!1),K(j)},{passive:!0}),j.addEventListener("wheel",ee=>{X()&&ee.deltaY<0&&(L=!0)},{passive:!0}),j.addEventListener("touchmove",()=>{X()&&(L=!0)},{passive:!0})}g=j}else f.appendChild(w),g=w;S=H,I=F}let k=T?g:null;k&&(k.classList.toggle("persona-artifact-source-window--fixed",b),k.classList.toggle("persona-artifact-source-window--clip",b&&o?.overflow==="clip"));let R=k?_(k):!0;if(S.replaceChildren(wt(d,M?.language,M?.path)),k){let w=O.status!=="complete";b&&w&&o?.followOutput&&!L&&R?D(k):w||(L=!1),K(k)}},W=d=>{y(),x(),J(),f.replaceChildren();let M=m("div",Xt);M.innerHTML=h(d),f.appendChild(M)},Q=d=>{let M=d.id,O=n.features?.artifacts,b=we(d,O,"status-body");if(P&&$===M&&P.parentElement===f){let k=P.querySelector(".persona-artifact-status-view-text");k&&pe(k,b,O);return}y(),x(),f.replaceChildren();let T=m("div","persona-artifact-status-view"),F=m("div","persona-artifact-status-view-text");pe(F,b,O),T.appendChild(F),f.appendChild(T),P=T,$=M},Z=d=>{l=d;let M=t.resolveViewMode?.(d)??o?.viewMode??"rendered",O=d.artifactType==="markdown"?d.file:void 0,b=d.status!=="complete";b||he(d.id);let T=b?o?.streamingHeight:o?.completeHeight,F=!!o&&typeof T=="number";if(o?.streamingView==="status"&&b){Q(d);return}if(O){let R=ke(d.markdown??""),w=fe(O),H=n.features?.artifacts?.filePreview?.enabled!==!1;if(!b&&M==="rendered"&&H&&(w==="html"||w==="svg")){let ue=d.id+"\0"+R;if(p&&u===ue&&p.parentElement===f)return;x(),J(),y(),f.replaceChildren();let X=n.features?.artifacts?.filePreview,ee=X?.iframeSandbox??"allow-scripts";!X?.dangerouslyAllowSameOrigin&&ee.includes("allow-same-origin")&&(console.warn("[AgentWidget] Stripped allow-same-origin from filePreview.iframeSandbox: it lets artifact content run with the page origin. Set filePreview.dangerouslyAllowSameOrigin to keep it."),ee=ee.split(/\s+/).filter(B=>B&&B!=="allow-same-origin").join(" "));let me=Qt(X?.loading),U=m("div","persona-artifact-frame"),te=m("iframe","persona-artifact-iframe");te.setAttribute("sandbox",ee),te.setAttribute("data-artifact-id",d.id);let Ae=null;me.enabled&&me.injectReadySignal?(Ae=tn(),te.srcdoc=R+nn(Ae)):te.srcdoc=R,U.appendChild(te),f.appendChild(U),me.enabled&&(c=rn(U,te,Ae,me,d.id,n)),p=U,u=ue;return}if(y(),!b&&w==="markdown"&&M==="rendered"){W(R);return}z(R,{language:O.language,path:O.path},d,F);return}if(d.artifactType==="markdown"){if(M==="source"){y(),z(d.markdown??"",void 0,d,F);return}W(d.markdown??"");return}y(),x(),J(),f.replaceChildren();let k=d.component?r.get(d.component):void 0;if(k){let w={message:{id:d.id,role:"assistant",content:"",createdAt:new Date().toISOString()},config:n,updateProps:()=>{}};try{let H=k(d.props??{},w);if(H){f.appendChild(H);return}}catch{}}f.appendChild(Yt(d))};return Z(e),{el:f,update(d){Z(d)},destroy(){y()}}}import{Check as an,ChevronDown as sn,Maximize as ln,Minimize as cn}from"lucide";function Lt(e,t){let n=t.orientation??"horizontal",r=n==="vertical"?"ArrowUp":"ArrowLeft",o=n==="vertical"?"ArrowDown":"ArrowRight";e.setAttribute("role","tablist");let s=[],i=!1,l=p=>{typeof p.scrollIntoView=="function"&&p.scrollIntoView({block:"nearest",inline:"nearest"})},A=p=>{let u=p;return s.findIndex(c=>c===u||c.contains(u))},h=p=>{let u=A(p.target);if(u<0)return;let c=u;if(p.key===o)c=Math.min(u+1,s.length-1);else if(p.key===r)c=Math.max(u-1,0);else if(p.key==="Home")c=0;else if(p.key==="End")c=s.length-1;else return;p.preventDefault(),c!==u&&t.onSelect(c)},f=p=>{let u=A(p.target);u>=0&&l(s[u])};return e.addEventListener("keydown",h),e.addEventListener("focusin",f),{beforeRender(){i=typeof document<"u"&&e.contains(document.activeElement)},render(p,u){if(s=p,p.forEach((c,y)=>{c.setAttribute("role","tab");let g=y===u;c.setAttribute("aria-selected",g?"true":"false"),c.tabIndex=g||u<0&&y===0?0:-1}),i){let c=(u>=0?p[u]:void 0)??p[0];c&&typeof c.focus=="function"&&(l(c),c.focus())}},destroy(){e.removeEventListener("keydown",h),e.removeEventListener("focusin",f)}}}function Tt(e,t){let n=e.features?.artifacts?.layout,o=(n?.toolbarPreset??"default")==="document",s=n?.toolbarTitle??"Artifacts",i=n?.closeButtonLabel??"Close",l=n?.panePadding?.trim(),A=n?.tabFadeSize?.trim(),h=a=>({start:a===!1?!1:typeof a=="object"&&a?a.start!==!1:!0,end:a===!1?!1:typeof a=="object"&&a?a.end!==!1:!0}),{start:f,end:p}=h(n?.tabFade),u=typeof document<"u"?m("div","persona-artifact-backdrop persona-fixed persona-inset-0 persona-z-[55] persona-bg-black/30 persona-hidden md:persona-hidden"):null,c=()=>{u?.classList.add("persona-hidden"),y.classList.remove("persona-artifact-drawer-open"),K?.closeMenu()};u&&u.addEventListener("click",()=>{c(),t.onDismiss?.()});let y=m("aside","persona-artifact-pane persona-flex persona-flex-col persona-min-h-0 persona-min-w-0 persona-bg-persona-surface persona-text-persona-primary persona-border-l persona-border-persona-border");y.setAttribute("data-persona-theme-zone","artifact-pane"),o&&y.classList.add("persona-artifact-pane-document");let g=m("div","persona-artifact-toolbar persona-flex persona-items-center persona-justify-between persona-gap-2 persona-px-2 persona-py-2 persona-border-b persona-border-persona-border persona-shrink-0");g.setAttribute("data-persona-theme-zone","artifact-toolbar"),o&&g.classList.add("persona-artifact-toolbar-document");let S=m("span","persona-text-xs persona-font-medium persona-truncate");S.textContent=s;let I=V({icon:"x",label:i});I.addEventListener("click",()=>{c(),t.onDismiss?.()});let L="rendered",x=Te({items:[{id:"rendered",icon:"eye",label:"Rendered view",className:o?"persona-artifact-doc-icon-btn persona-artifact-view-btn":void 0},{id:"source",icon:"code-xml",label:"Source",className:o?"persona-artifact-doc-icon-btn persona-artifact-code-btn":void 0}],selectedId:"rendered",className:"persona-artifact-toggle-group persona-shrink-0",onSelect:a=>{L=a==="source"?"source":"rendered",Le()}}),P=m("div","persona-flex persona-items-center persona-gap-1 persona-shrink-0"),$=n?.documentToolbarShowCopyLabel===!0,J=n?.documentToolbarShowCopyChevron===!0,re=n?.documentToolbarCopyMenuItems,Y=!!(J&&re&&re.length>0),ie=null,_,K=null;if(o&&($||J)&&!Y){if(_=$?ge({icon:"copy",label:"Copy",iconSize:14,className:"persona-artifact-doc-copy-btn"}):V({icon:"copy",label:"Copy",className:"persona-artifact-doc-copy-btn"}),J){let a=ye(sn,14,"currentColor",2);a&&_.appendChild(a)}}else o&&Y?(K=lt({label:"Copy",icon:"copy",iconSize:14,iconOnly:!$,primaryClassName:"persona-artifact-doc-copy-btn",chevronLabel:"More copy options",chevronClassName:"persona-artifact-doc-copy-menu-chevron persona-artifact-doc-icon-btn",menuItems:(re??[]).map(a=>({id:a.id,label:a.label})),position:"bottom-right",portal:()=>y.closest("[data-persona-root]")??document.body,onSelect:a=>{k(a)}}),ie=K.element,_=K.primaryButton):o?_=V({icon:"copy",label:"Copy",className:"persona-artifact-doc-icon-btn"}):(_=V({icon:"copy",label:"Copy"}),n?.showCopyButton!==!0&&_.classList.add("persona-hidden"));let D=o?V({icon:"refresh-cw",label:"Refresh",className:"persona-artifact-doc-icon-btn"}):V({icon:"refresh-cw",label:"Refresh"});n?.onDocumentToolbarRefresh||D.classList.add("persona-hidden");let z=o?V({icon:"x",label:i,className:"persona-artifact-doc-icon-btn"}):V({icon:"x",label:i}),W=V({icon:"maximize",label:"Expand artifacts panel",className:"persona-artifact-expand-btn"+(o?" persona-artifact-doc-icon-btn":""),onClick:()=>t.onToggleExpand?.()});n?.showExpandToggle!==!0&&W.classList.add("persona-hidden");let Q=m("div","persona-flex persona-items-center persona-gap-1 persona-shrink-0 persona-artifact-toolbar-custom-actions"),Z=e.features?.artifacts?.toolbarActions??[],d=()=>{let a=B.find(ae=>ae.id===q)??B[B.length-1],C=a?.id??null,v=a?.artifactType==="markdown"?a.markdown??"":"",E=a?JSON.stringify({component:a.component,props:a.props},null,2):"",{filename:N,mime:G,content:se}=Se({title:a?.title,markdown:a?.markdown??"",file:a?.file});return{markdown:v,jsonPayload:E,id:C,file:a?.file,suggestedFilename:N,mime:G,content:se}},M=()=>{let{suggestedFilename:a,mime:C,content:v}=d();v&&Ee({filename:a,mime:C,content:v})},O=a=>{let{id:C,...v}=d();return{actionId:a,artifactId:C,...v}},b=async()=>{let a=B.find(C=>C.id===q)??B[B.length-1];try{return await navigator.clipboard.writeText(He(a)),!0}catch{return!1}},T=null,F=()=>{T?.();let a=_.querySelector("svg"),C=Number(a?.getAttribute("width"))||16,v=ye(an,C,"currentColor",2);if(!a||!v)return;a.replaceWith(v);let E=_.querySelector("span");E&&(E.textContent="Copied");let N=setTimeout(()=>T?.(),2e3);T=()=>{clearTimeout(N),v.replaceWith(a),E&&(E.textContent="Copy"),T=null}};_.addEventListener("click",async()=>{let a=n?.onDocumentToolbarCopyMenuSelect;if(a&&Y){try{if(await a(O("primary"))===!1){await b()&&F();return}F()}catch{}return}await b()&&F()});async function k(a){let C=n?.onDocumentToolbarCopyMenuSelect;try{if(C&&await C(O(a))!==!1)return;if(a==="download"){M();return}let{markdown:v,jsonPayload:E}=d();a==="markdown"||a==="md"?await navigator.clipboard.writeText(v):a==="json"||a==="source"?await navigator.clipboard.writeText(E):await navigator.clipboard.writeText(v||E),F()}catch{}}D.addEventListener("click",async()=>{try{await n?.onDocumentToolbarRefresh?.()}catch{}Le()}),z.addEventListener("click",()=>{c(),t.onDismiss?.()});let R=m("span","persona-min-w-0 persona-flex-1 persona-text-xs persona-font-medium persona-text-persona-primary persona-truncate persona-text-center md:persona-text-left");if(o)g.replaceChildren(),ie?P.append(ie,D,z):P.append(_,D,z),P.insertBefore(Q,z),P.insertBefore(W,z),g.append(x.element,R,P);else{let a=m("div","persona-flex persona-items-center persona-gap-1 persona-shrink-0");a.append(_,Q,W,I),g.appendChild(S),g.appendChild(a)}l&&(g.style.paddingLeft=l,g.style.paddingRight=l);let w=m("div","persona-artifact-list persona-shrink-0 persona-flex persona-gap-1 persona-overflow-x-auto persona-p-2 persona-border-b persona-border-persona-border");A&&w.style.setProperty("--persona-artifact-tab-fade-size",A);let H=e.features?.artifacts?.renderTabBar,j=m("div","persona-artifact-tab-custom persona-shrink-0 persona-border-b persona-border-persona-border persona-hidden"),ue=Lt(w,{onSelect:a=>t.onSelect(B[a].id)}),X=a=>{let C=a.scrollWidth-a.clientWidth,v=C>1,E=Math.abs(a.scrollLeft);a.classList.toggle("persona-artifact-tab-fade-start",f&&v&&E>1),a.classList.toggle("persona-artifact-tab-fade-end",p&&v&&E<C-1)},ee=0,me=()=>{if(ee)return;let a=()=>{ee=0,X(w)};ee=typeof requestAnimationFrame=="function"?requestAnimationFrame(a):setTimeout(a,0)};w.addEventListener("scroll",()=>me(),{passive:!0}),typeof ResizeObserver<"u"&&new ResizeObserver(()=>X(w)).observe(w);let U=m("div","persona-artifact-content persona-flex-1 persona-min-h-0 persona-overflow-y-auto persona-p-3"),te=()=>{U.scrollLeft=0},Ae=()=>{typeof requestAnimationFrame=="function"?requestAnimationFrame(te):setTimeout(te,0)};if(l){for(let a of[w,j])a.style.paddingLeft=l,a.style.paddingRight=l;U.style.padding=l}y.appendChild(g),y.appendChild(w),y.appendChild(j),y.appendChild(U);let B=[],q=null,Oe=!1,Ue=!1,Fe=!0,_e=!1,$e=null,De="",ne=null,xe=!1,Bt=a=>a.artifactType==="markdown"&&!!a.file||o?L:"rendered",qe=a=>{o||(a&&!xe?(g.insertBefore(x.element,S),xe=!0):!a&&xe&&(x.element.remove(),xe=!1))},Ge=()=>q&&B.find(a=>a.id===q)||B[B.length-1],Ke=()=>{let a=ve(Ge());if(!a){Q.replaceChildren();return}let C=Z.filter(v=>v.visible===void 0||v.visible(a)).map(v=>be(v,{documentChrome:o,onClick:()=>{let E=ve(Ge());if(E)try{Promise.resolve(v.onClick(E)).catch(()=>{})}catch{}}}));Q.replaceChildren(...C)},Le=()=>{Ke();let a=o&&B.length<=1,C=!!H;if(w.classList.toggle("persona-hidden",a||C),j.classList.toggle("persona-hidden",a||!C),C&&H){let N=B.map(G=>G.id).join("|")+" "+(q??"");if(N!==De){De=N;let G=H({records:B,selectedId:q,onSelect:t.onSelect});j.firstElementChild!==G&&j.replaceChildren(G)}}else{ue.beforeRender(),w.replaceChildren();let N=[],G=-1;for(let[se,ae]of B.entries()){let le=m("button","persona-artifact-tab persona-shrink-0 persona-rounded-lg persona-px-2 persona-py-1 persona-text-xs persona-border persona-border-transparent persona-text-persona-primary");le.type="button";let je=ae.artifactType==="markdown"?ae.file:void 0,Xe=je?oe(je.path):ae.title||ae.id.slice(0,8),Ye=je?.path||ae.title||Xe;le.textContent=Xe,le.title=Ye,le.setAttribute("aria-label",Ye),ae.id===q&&(le.classList.add("persona-bg-persona-container","persona-border-persona-border"),G=se),le.addEventListener("click",()=>t.onSelect(ae.id)),w.appendChild(le),N.push(le)}if(ue.render(N,G),G>=0&&q!==$e){$e=q;let se=N[G];typeof se.scrollIntoView=="function"&&se.scrollIntoView({block:"nearest",inline:"nearest"})}X(w)}let v=q&&B.find(N=>N.id===q)||B[B.length-1];if(!v){U.replaceChildren(),ne?.destroy(),ne=null,qe(!1);return}let E=v.artifactType==="markdown"?v.file:void 0;if(qe(!!E&&fe(E)!=="other"),o){let N=E?ce(E):v.artifactType==="markdown"?"MD":v.component??"Component",G=(v.title||"Document").trim(),se=E?oe(E.path):G.replace(/\s*·\s*MD\s*$/i,"").trim()||"Document";R.textContent=`${se} \xB7 ${N}`}else S.textContent=E?oe(E.path):s;ne?(ne.el.parentElement!==U&&U.replaceChildren(ne.el),ne.update(v)):(ne=Ie(v,{config:e,resolveViewMode:Bt}),U.replaceChildren(ne.el)),U.classList.toggle("persona-artifact-content-flush",!!U.querySelector(".persona-code-pre"))},Ze=()=>{let a=B.length>0;if(y.classList.toggle("persona-hidden",!a),u){let E=((typeof y.closest=="function"?y.closest("[data-persona-root]"):null)?.classList.contains("persona-artifact-narrow-host")??!1)||typeof window<"u"&&window.matchMedia("(max-width: 640px)").matches;a&&E&&Oe?(u.classList.remove("persona-hidden"),y.classList.add("persona-artifact-drawer-open")):(u.classList.add("persona-hidden"),y.classList.remove("persona-artifact-drawer-open"))}},Je=()=>{_e=!1,Le(),Ze()};return{element:y,backdrop:u,update(a){let C=a.selectedId??a.artifacts[a.artifacts.length-1]?.id??null,v=C!==q;B=a.artifacts,q=C,B.length>0&&(Oe=!0),_e=!0,Fe&&Je(),v&&te()},setMobileOpen(a){Oe=a,!a&&u?(u.classList.add("persona-hidden"),y.classList.remove("persona-artifact-drawer-open")):Ze()},setExpanded(a){a!==Ue&&(Ue=a,Ae());let C=ye(a?cn:ln,16,"currentColor",2);C&&W.replaceChildren(C);let v=a?"Collapse artifacts panel":"Expand artifacts panel";W.setAttribute("aria-label",v),W.title=v},setExpandToggleVisible(a){W.classList.toggle("persona-hidden",!a)},setCopyButtonVisible(a){o||_.classList.toggle("persona-hidden",!a)},setRefreshButtonVisible(a){D.classList.toggle("persona-hidden",!a)},setCustomActions(a){Z=a,Ke()},setTabFade(a){let C=h(a);C.start===f&&C.end===p||(f=C.start,p=C.end,X(w))},setRenderTabBar(a){a!==H&&(H=a,De="",Le())},setVisible(a){a!==Fe&&(Fe=a,a&&_e&&Je())},destroy(){ne?.destroy(),ne=null}}}import{FileText as dn}from"lucide";function kt(e,t){let n=e.file&&typeof e.file=="object"&&!Array.isArray(e.file)?e.file:void 0,r=typeof e.title=="string"&&e.title?e.title:"Untitled artifact",o=n?oe(n.path):r,s=typeof e.artifactId=="string"?e.artifactId:"",i=e.status==="streaming"?"streaming":"complete",l=typeof e.artifactType=="string"?e.artifactType:"markdown",A=e.presentation&&typeof e.presentation=="object"&&!Array.isArray(e.presentation)?e.presentation:void 0,h=n?ce(n):l==="component"?"Component":"Document",f=document.createElement("div");f.className="persona-artifact-card persona-flex persona-w-full persona-max-w-full persona-items-center persona-gap-3 persona-px-4 persona-py-3",f.tabIndex=0,f.setAttribute("role","button"),f.setAttribute("aria-label",`Open ${o} in artifact panel`),s&&f.setAttribute("data-open-artifact",s);let p=document.createElement("div");p.className="persona-flex persona-h-10 persona-w-10 persona-flex-shrink-0 persona-items-center persona-justify-center persona-rounded-lg",p.style.border="1px solid var(--persona-border, #e5e7eb)",p.style.color="var(--persona-muted, #9ca3af)",p.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"/><polyline points="14 2 14 8 20 8"/></svg>';let u=document.createElement("div");u.className="persona-min-w-0 persona-flex-1 persona-flex persona-flex-col persona-gap-0.5";let c=document.createElement("div");c.className="persona-truncate persona-text-sm persona-font-medium",c.style.color="var(--persona-text, #1f2937)",c.textContent=o;let y=document.createElement("div");if(y.className="persona-text-xs persona-flex persona-items-center persona-gap-1.5",y.style.color="var(--persona-muted, #9ca3af)",i==="streaming"){let g=t?.config?.features?.artifacts,S={id:s,artifactType:l==="component"?"component":"markdown",title:r,status:"streaming",...typeof e.markdown=="string"?{markdown:e.markdown}:{},...n?{file:n}:{},...A?{presentation:A}:{}},I=we(S,g,"card");pe(y,I,g)}else s&&he(s),y.textContent=h;if(u.append(c,y),f.append(p,u),i==="complete"){let g=t?.config?.features?.artifacts?.cardActions;if(g&&g.length>0){let I={artifactId:s||null,title:o,artifactType:l,markdown:typeof e.markdown=="string"?e.markdown:void 0,file:n};for(let L of g)try{if(L.visible===void 0||L.visible(I)){let x=be(L);x.setAttribute("data-artifact-custom-action",L.id),x.className=`${x.className} persona-flex-shrink-0`,f.append(x)}}catch{}}let S=ge({label:"Download",className:"persona-flex-shrink-0"});S.title=`Download ${o}`,S.setAttribute("data-download-artifact",s),f.append(S)}return f}var Be=(e,t)=>{let n=t?.config?.features?.artifacts?.renderCard;if(n){let r=typeof e.title=="string"&&e.title?e.title:"Untitled artifact",o=typeof e.artifactId=="string"?e.artifactId:"",s=e.status==="streaming"?"streaming":"complete",i=typeof e.artifactType=="string"?e.artifactType:"markdown",l=n({artifact:{artifactId:o,title:r,artifactType:i,status:s},config:t.config,defaultRenderer:()=>kt(e,t)});if(l)return l}return kt(e,t)};var de=new WeakMap;function Rt(e,t,n){if(t.length===0)return;let r=new Map(t.map(o=>[o.id,o]));e.querySelectorAll("[data-artifact-inline]").forEach(o=>{let s=de.get(o);if(!s)return;let i=r.get(o.getAttribute("data-artifact-inline")??"");i&&s(i,n)})}function Ht(e){return de.has(e)}function fn(e){let t=typeof e.artifactId=="string"?e.artifactId:"",n=typeof e.title=="string"&&e.title?e.title:void 0,r=e.status==="streaming"?"streaming":"complete",o=e.presentation&&typeof e.presentation=="object"&&!Array.isArray(e.presentation)?e.presentation:void 0;if(e.artifactType==="component"){let i=e.componentProps,l=i&&typeof i=="object"&&!Array.isArray(i)?i:{};return{id:t,artifactType:"component",title:n,status:r,component:typeof e.component=="string"?e.component:"",props:l,...o?{presentation:o}:{}}}let s=e.file&&typeof e.file=="object"&&!Array.isArray(e.file)?e.file:void 0;return{id:t,artifactType:"markdown",title:n,status:r,markdown:typeof e.markdown=="string"?e.markdown:"",...s?{file:s}:{},...o?{presentation:o}:{}}}function St(e){let t=e.artifactType==="markdown"?e.file:void 0,n=t?oe(t.path):e.title&&e.title.trim()?e.title:"Untitled artifact",r=t?ce(t):e.artifactType==="component"?"Component":"Document";return{title:n,typeLabel:r}}function pn(e){let t={artifactId:e.id,title:e.title??"",status:e.status,artifactType:e.artifactType};return e.artifactType==="markdown"&&(typeof e.markdown=="string"&&(t.markdown=e.markdown),e.file&&(t.file=e.file)),t}var Et=180,un=240,mn=.8,yn=300,gn=500,bn="cubic-bezier(0.2, 0, 0, 1)",Pt=240,hn=.35;function wn(e,t,n){let{swap:r,onSettled:o}=n,s=!1;try{s=typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{s=!1}if(!t||!e.isConnected||s||typeof e.animate!="function"){r(),o();return}e.style.height=`${t}px`,e.style.overflow="hidden";let i=[];for(let l of Array.from(e.children))l instanceof HTMLElement&&i.push(l.animate([{opacity:1},{opacity:0}],{duration:Et,easing:"ease-out",fill:"forwards"}));window.setTimeout(()=>{for(let I of i)I.cancel();r();let l=()=>{e.style.removeProperty("height"),e.style.removeProperty("overflow")};if(!e.isConnected){l(),o();return}e.style.height="auto";let A=e.getBoundingClientRect().height;if(e.style.height=`${t}px`,!A||Math.abs(A-t)<1){l(),o();return}let h=Math.abs(t-A),f=Math.round(Math.min(gn,Math.max(yn,un+h*mn))),p=Math.round(f*hn),u=e.firstElementChild instanceof HTMLElement?e.firstElementChild:null,c=u?u.animate([{opacity:0},{opacity:1}],{duration:Pt,delay:p,easing:"ease-out",fill:"backwards"}):null,y=e.animate([{height:`${t}px`},{height:`${A}px`}],{duration:f,easing:bn});e.style.height=`${A}px`;let g=!1,S=()=>{g||(g=!0,l(),o())};Promise.allSettled([y.finished,c?.finished].filter(Boolean)).then(S),window.setTimeout(S,Math.max(f,p+Pt)+120)},Et)}function An(e){let t=e?.inlineChrome;if(t===!1)return{chromeEnabled:!1,showCopy:!1,showExpand:!1,showViewToggle:!1};let n=typeof t=="object"?t:void 0;return{chromeEnabled:!0,showCopy:n?.showCopy!==!1,showExpand:n?.showExpand!==!1,showViewToggle:n?.showViewToggle!==!1}}var Ce="--persona-artifact-inline-body-height";function vn(e){let t=e?.inlineBody,n=t?.streamingView==="status"?"status":"source",r=t?.viewMode==="source"?"source":"rendered",o=320,s=320,i=t?.height;typeof i=="number"||i==="auto"?(o=i,s=i):i&&typeof i=="object"&&(o=i.streaming??320,s=i.complete??320);let l=t?.overflow==="clip"?"clip":"scroll",A=l==="clip"?!1:t?.followOutput!==!1,h,f,p=t?.fadeMask;p===!0?(h=!0,f=!0):p===!1?(h=!1,f=!1):p&&typeof p=="object"?(h=p.top===!0,f=p.bottom===!0):l==="clip"?(h=!1,f=!0):(h=!0,f=!0);let u=t?.transition==="none"?"none":"auto",c=t?.completeDisplay==="card"?"card":"inline";return{streamingView:n,viewMode:r,streamingHeight:o,completeHeight:s,followOutput:A,overflow:l,fadeTop:h,fadeBottom:f,transition:u,completeDisplay:c}}function Mt(e,t){let n=fn(e),r=t.config?.features?.artifacts,{chromeEnabled:o,showCopy:s,showExpand:i,showViewToggle:l}=An(r),A=r?.inlineActions??[],h=vn(r),f=h.completeDisplay==="card",p=null,u=n,c=m("div","persona-artifact-inline persona-w-full persona-max-w-full");c.setAttribute("data-persona-theme-zone","artifact-inline"),n.id&&c.setAttribute("data-artifact-inline",n.id);let y=b=>Be(pn(b),t),g=null,S=b=>{g?.destroy(),g=null,c.classList.add("persona-artifact-inline--card"),c.style.removeProperty(Ce),c.replaceChildren(y(b)),de.set(c,T=>{c.replaceChildren(y(T))})};if(f&&n.status==="complete")return S(n),c;let I=Ie(n,{config:t.config,bodyLayout:h,resolveViewMode:()=>p??h.viewMode});g=I;let L=m("div","persona-artifact-inline-body");L.appendChild(I.el);let x=b=>{let T=b.status!=="complete",F=T?h.streamingHeight:h.completeHeight,k=typeof F=="number";k?c.style.setProperty(Ce,`${F}px`):c.style.removeProperty(Ce);let R=!!I.el.querySelector(".persona-code-pre"),w=!!I.el.querySelector("iframe, .persona-artifact-source-window--fixed, .persona-artifact-status-view");L.classList.toggle("persona-artifact-content-flush",R),L.classList.toggle("persona-artifact-inline-body--sized",k&&w),L.classList.toggle("persona-artifact-inline-body--cap",!T&&!w&&typeof h.completeHeight=="number")},P=n.status,$=(b,T)=>{P!=="complete"&&b.status==="complete"?(typeof h.completeHeight=="number"?c.style.setProperty(Ce,`${h.completeHeight}px`):c.style.removeProperty(Ce),xt(L,T?.suppressTransition?"none":h.transition,b.id,()=>{I.update(b),x(b)})):I.update(b),x(b),P=b.status};x(n);let J=h.overflow==="clip"&&i&&!!n.id;if(J&&(L.setAttribute("data-expand-artifact-inline",n.id),L.setAttribute("role","button"),L.setAttribute("tabindex","0"),L.classList.add("persona-cursor-pointer"),L.setAttribute("aria-label",`Open ${St(n).title} in panel`)),!o)return c.appendChild(L),de.set(c,$),c;let re=m("div","persona-artifact-inline-chrome");re.setAttribute("data-persona-theme-zone","artifact-inline-chrome");let Y=m("div","persona-artifact-inline-chrome-lead"),ie=m("span","persona-flex persona-items-center persona-flex-shrink-0"),_=ye(dn,16,"currentColor",2);_&&ie.appendChild(_);let K=m("span","persona-artifact-inline-title persona-truncate persona-min-w-0"),D=m("span","persona-artifact-inline-type");Y.append(ie,K,D);let z=m("div","persona-artifact-inline-chrome-actions"),W=m("span","persona-flex persona-items-center persona-gap-1"),Q=()=>p??h.viewMode,Z=l?Te({items:[{id:"rendered",icon:"eye",label:"Rendered view",className:"persona-artifact-doc-icon-btn persona-artifact-view-btn"},{id:"source",icon:"code-xml",label:"Source",className:"persona-artifact-doc-icon-btn persona-artifact-code-btn"}],selectedId:Q(),className:"persona-artifact-toggle-group persona-flex-shrink-0",onSelect:b=>{let T=b==="source"?"source":"rendered";T!==Q()&&(p=T,I.update(u),x(u))}}):null,d=s?V({icon:"copy",label:"Copy",className:"persona-artifact-doc-icon-btn persona-flex-shrink-0"}):null;d&&n.id&&d.setAttribute("data-copy-artifact",n.id);let M=i?V({icon:"maximize",label:"Open in panel",className:"persona-artifact-doc-icon-btn persona-flex-shrink-0"}):null;M&&n.id&&M.setAttribute("data-expand-artifact-inline",n.id),z.appendChild(W),Z&&z.appendChild(Z.element),d&&z.appendChild(d),M&&z.appendChild(M),re.append(Y,z),c.append(re,L);let O=b=>{let{title:T,typeLabel:F}=St(b);K.textContent=T,K.title=T,J&&L.setAttribute("aria-label",`Open ${T} in panel`);let k=b.status!=="complete";if(k){D.classList.contains("persona-artifact-inline-status")||(D.className="persona-artifact-inline-status",D.removeAttribute("data-preserve-animation"),D.replaceChildren());let R=we(b,r,"inline-chrome");pe(D,R,r)}else he(b.id),D.className="persona-artifact-inline-type",D.removeAttribute("data-preserve-animation"),D.replaceChildren(),D.textContent=F;if(d&&d.classList.toggle("persona-hidden",k),Z){let R=b.artifactType==="markdown"?b.file:void 0,w=!1;if(!k&&R&&h.viewMode!=="source"){let H=fe(R);H==="markdown"?w=!0:(H==="html"||H==="svg")&&(w=r?.filePreview?.enabled!==!1)}Z.element.classList.toggle("persona-hidden",!w),Z.setSelected(Q())}if(W.replaceChildren(),!k&&A.length>0){let R=ve(b);if(R)for(let w of A)try{if(w.visible===void 0||w.visible(R)){let H=be(w,{documentChrome:!0});H.setAttribute("data-artifact-custom-action",w.id),H.classList.add("persona-flex-shrink-0"),W.appendChild(H)}}catch{}}};return O(n),de.set(c,(b,T)=>{if(f&&P!=="complete"&&b.status==="complete"){let F=c.isConnected?c.getBoundingClientRect().height:0;P="complete";let k=b,R=!1,w=H=>{k=H,R=!0};de.set(c,w),wn(c,F,{swap:()=>{S(k),R=!1,de.set(c,w)},onSettled:()=>{R?S(k):de.set(c,H=>{c.replaceChildren(y(H))})}});return}(b.status!=="complete"||b.id!==u.id)&&(p=null),u=b,$(b,T),O(b)}),c}var It=(e,t)=>{let n=t?.config?.features?.artifacts?.renderInline;if(n){let r=typeof e.title=="string"&&e.title?e.title:"Untitled artifact",o=typeof e.artifactId=="string"?e.artifactId:"",s=e.status==="streaming"?"streaming":"complete",i=typeof e.artifactType=="string"?e.artifactType:"markdown",l=n({artifact:{artifactId:o,title:r,artifactType:i,status:s},config:t.config,defaultRenderer:()=>Mt(e,t)});if(l)return l}return Mt(e,t)};export{Be as PersonaArtifactCard,It as PersonaArtifactInline,et as __provideMarkdownParsers,st as __setIconsExtraLoader,He as artifactCopyText,Tt as createArtifactPane,Se as downloadInfoFor,Ht as hasLiveInlineArtifactBlock,vt as initArtifactsUi,Ee as triggerArtifactDownload,Rt as updateInlineArtifactBlocks};
|
package/dist/artifacts-ui.cjs
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
`).length,p=e.artifactType==="markdown"?e.file:void 0,m={artifactId:n,artifactType:e.artifactType,title:e.title,typeLabel:o,file:p,chars:d,lines:x,elapsedMs:h,content:()=>u?"":i,surface:a};try{let c=s(m);return typeof c=="string"?{label:c}:c&&typeof c=="object"&&typeof c.label=="string"?{label:c.label,detail:typeof c.detail=="string"?c.detail:void 0}:{label:r}}catch{return{label:r}}}function hr(e){e.className=ea,e.removeAttribute("data-preserve-animation"),e.style.removeProperty("--persona-tool-anim-duration"),e.style.removeProperty("--persona-tool-anim-color"),e.style.removeProperty("--persona-tool-anim-secondary-color"),e.replaceChildren()}function ce(e,t,a){let o=e.querySelector(`:scope > .${ea}`);o||(o=C("span",ea),e.appendChild(o)),o.getAttribute(Fa)!==t.label&&(hr(o),Ea(o,t.label,a),o.setAttribute(Fa,t.label));let r=e.querySelector(`:scope > .${Da}`),s=t.detail;s?(r||(r=C("span",Da),e.appendChild(r)),r.textContent!==s&&(r.textContent=s)):r&&r.remove()}var Cr={keyword:"persona-code-token-keyword",string:"persona-code-token-string",comment:"persona-code-token-comment",number:"persona-code-token-number",tag:"persona-code-token-tag",attr:"persona-code-token-attr",property:"persona-code-token-property"},yr=15e4,Je={html:"html",htm:"html",xhtml:"html",xml:"html",svg:"html",css:"css",js:"js",jsx:"js",mjs:"js",cjs:"js",ts:"js",tsx:"js",mts:"js",cts:"js",javascript:"js",typescript:"js",ecmascript:"js",json:"json",jsonc:"json",json5:"json"};function br(e,t){let a=(e||"").trim().toLowerCase();if(a&&Je[a])return Je[a];if(t){let o=t.lastIndexOf(".");if(o>=0){let r=t.slice(o+1).toLowerCase();if(Je[r])return Je[r]}}return null}function Qe(e,t){let a=[],o=0,r=0,s=n=>{n>r&&a.push({type:"plain",value:e.slice(r,n)})};for(;o<e.length;){let n=!1;for(let f of t){f.re.lastIndex=o;let h=f.re.exec(e);if(h&&h.index===o&&h[0].length>0){s(o);let u=f.map?f.map(h[0]):f.type;a.push({type:u,value:h[0]}),o+=h[0].length,r=o,n=!0;break}}n||(o+=1)}return s(e.length),a}var wr=new Set(["abstract","any","as","async","await","boolean","break","case","catch","class","const","continue","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","instanceof","interface","keyof","let","namespace","never","new","null","number","object","of","private","protected","public","readonly","return","satisfies","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unknown","var","void","while","yield"]),Sr=[{type:"comment",re:/\/\/[^\n]*/y},{type:"comment",re:/\/\*[\s\S]*?\*\//y},{type:"string",re:/`(?:\\[\s\S]|[^\\`])*`/y},{type:"string",re:/"(?:\\.|[^"\\\n])*"/y},{type:"string",re:/'(?:\\.|[^'\\\n])*'/y},{type:"number",re:/0[xX][0-9a-fA-F]+|(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/y},{type:"plain",re:/[A-Za-z_$][\w$]*/y,map:e=>wr.has(e)?"keyword":"plain"}];function Oa(e){return Qe(e,Sr)}var Ar=[{type:"string",re:/"(?:\\.|[^"\\])*"/y},{type:"number",re:/-?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/y},{type:"plain",re:/[A-Za-z_]\w*/y,map:e=>e==="true"||e==="false"||e==="null"?"keyword":"plain"}];function vr(e){let t=Qe(e,Ar);for(let a=0;a<t.length;a+=1){if(t[a].type!=="string")continue;let o=a+1;for(;o<t.length&&t[o].value.trim()==="";)o+=1;let r=t[o];r&&r.value.replace(/^\s*/,"").startsWith(":")&&(t[a].type="property")}return t}var kr=[{type:"comment",re:/\/\*[\s\S]*?\*\//y},{type:"string",re:/"(?:\\.|[^"\\\n])*"/y},{type:"string",re:/'(?:\\.|[^'\\\n])*'/y},{type:"keyword",re:/@[A-Za-z-]+/y},{type:"number",re:/#[0-9a-fA-F]{3,8}\b/y},{type:"number",re:/-?(?:\d+\.?\d*|\.\d+)(?:[a-z%]+)?/y},{type:"plain",re:/[A-Za-z_-][\w-]*/y}];function Ia(e){let t=Qe(e,kr),a="";for(let o=0;o<t.length;o+=1){let r=t[o];if(r.type==="plain"&&/^[A-Za-z_-][\w-]*$/.test(r.value)){let n=o+1;for(;n<t.length&&t[n].value.trim()==="";)n+=1;let f=t[n];f&&f.value.replace(/^\s*/,"").startsWith(":")&&(a===""||a==="{"||a==="}"||a===";"||a===",")&&(r.type="property")}let s=r.value.replace(/\s+$/,"");s&&(a=s[s.length-1])}return t}var Mr=[{type:"tag",re:/<\/?\s*[A-Za-z][\w:-]*/y},{type:"string",re:/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'/y},{type:"attr",re:/[A-Za-z_:@][\w:.-]*(?=\s*=)/y},{type:"attr",re:/[A-Za-z_:@][\w:.-]*/y},{type:"tag",re:/\/?>/y}];function Lr(e){let t=[],a=(s,n)=>{n&&t.push({type:s,value:n})},o=e.length,r=0;for(;r<o;){if(e.startsWith("<!--",r)){let n=e.indexOf("-->",r+4),f=n===-1?o:n+3;a("comment",e.slice(r,f)),r=f;continue}if(e[r]==="<"&&e[r+1]==="!"){let n=e.indexOf(">",r),f=n===-1?o:n+1;a("tag",e.slice(r,f)),r=f;continue}if(e[r]==="<"&&/[A-Za-z/]/.test(e[r+1]||"")){let n=e.indexOf(">",r),f=n===-1?o:n+1,h=e.slice(r,f);for(let i of Qe(h,Mr))t.push(i);r=f;let u=/^<\s*(script|style)\b/i.exec(h);if(u&&!/\/>\s*$/.test(h)){let i=u[1].toLowerCase(),x=new RegExp("</\\s*"+i+"\\s*>","i").exec(e.slice(r)),p=x?r+x.index:o,m=e.slice(r,p),c=i==="script"?Oa(m):Ia(m);for(let v of c)t.push(v);r=p}continue}let s=e.indexOf("<",r);if(s===r)a("plain",e[r]),r+=1;else{let n=s===-1?o:s;a("plain",e.slice(r,n)),r=n}}return t}function Pr(e,t){switch(t){case"html":return Lr(e);case"css":return Ia(e);case"js":return Oa(e);case"json":return vr(e)}}function Tr(e){let t=Sa(),a=C("span","persona-code-line"),o=(r,s)=>{if(!s)return;let n=Cr[r];if(n){let f=C("span",n);f.textContent=s,a.appendChild(f)}else a.appendChild(document.createTextNode(s))};for(let r of e){let s=r.value.split(`
|
|
5
5
|
`);for(let n=0;n<s.length;n+=1)n>0&&(t.appendChild(a),t.appendChild(document.createTextNode(`
|
|
6
6
|
`)),a=C("span","persona-code-line")),o(r.type,s[n])}return a.childNodes.length>0?t.appendChild(a):t.lastChild||t.appendChild(a),t}function qa(e,t,a){let o=e.length<=yr?br(t,a):null,r=o?Pr(e,o):[{type:"plain",value:e}];return Tr(r)}var{setLoader:Xn,load:Kn,provide:Rr,getSync:Ua}=Ve({fallbackImport:()=>import("./markdown-parsers-entry")}),Ye=new Set,Br=()=>{let e=[...Ye];Ye.clear();for(let t of e)try{t()}catch{}};var Na=e=>Ua()?()=>{}:(Ye.add(e),()=>{Ye.delete(e)}),aa=e=>{Rr(e),Br()},we=Ua;var Er=e=>{if(!e)return;let t={},a=e;if(a.heading){let o=a.heading;t.heading=(r,s,n)=>o({type:"heading",raw:n,depth:s,text:r,tokens:[]})}if(a.code){let o=a.code;t.code=(r,s,n)=>o({type:"code",raw:"",text:r,lang:s,escaped:n})}if(a.blockquote){let o=a.blockquote;t.blockquote=r=>o({type:"blockquote",raw:"",text:r,tokens:[]})}if(a.table){let o=a.table;t.table=(r,s)=>o({type:"table",raw:"",header:[],rows:[],align:[],headerHtml:r,bodyHtml:s})}if(a.link){let o=a.link;t.link=(r,s,n)=>o({type:"link",raw:"",href:r,title:s??null,text:n,tokens:[]})}if(a.image){let o=a.image;t.image=(r,s,n)=>o({type:"image",raw:"",href:r,title:s??null,text:n})}if(a.list){let o=a.list;t.list=(r,s,n)=>o({type:"list",raw:"",ordered:s,start:n,loose:!1,items:[],itemsHtml:r})}if(a.listitem){let o=a.listitem;t.listitem=(r,s,n)=>o({type:"list_item",raw:"",task:s,checked:n,loose:!1,text:r,tokens:[]})}if(a.paragraph){let o=a.paragraph;t.paragraph=r=>o({type:"paragraph",raw:"",text:r,tokens:[]})}if(a.codespan){let o=a.codespan;t.codespan=r=>o({type:"codespan",raw:"",text:r})}if(a.strong){let o=a.strong;t.strong=r=>o({type:"strong",raw:"",text:r,tokens:[]})}if(a.em){let o=a.em;t.em=r=>o({type:"em",raw:"",text:r,tokens:[]})}if(a.del){let o=a.del;t.del=r=>o({type:"del",raw:"",text:r,tokens:[]})}if(a.html){let o=a.html;t.html=r=>o({type:"html",raw:r,text:r})}if(a.text){let o=a.text;t.text=r=>o({type:"text",raw:r,text:r})}if(a.checkbox){let o=a.checkbox;t.checkbox=r=>o({checked:r})}return a.hr&&(t.hr=a.hr),a.br&&(t.br=a.br),t},ra=e=>{let t=null;return a=>{let o=we();if(!o)return Ee(a);if(!t){let{Marked:r}=o,s=e?.markedOptions;t=new r({gfm:s?.gfm??!0,breaks:s?.breaks??!0,pedantic:s?.pedantic,silent:s?.silent});let n=Er(e?.renderer);n&&t.use({renderer:n})}return t.parse(a)}},Va=e=>e?ra({markedOptions:e.options,renderer:e.renderer}):ra(),Jn=ra();var Ee=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'");var Dr={ALLOWED_TAGS:["h1","h2","h3","h4","h5","h6","p","br","hr","div","span","ul","ol","li","dl","dt","dd","strong","em","b","i","u","s","del","ins","mark","small","sub","sup","abbr","kbd","var","samp","code","a","img","blockquote","pre","details","summary","table","thead","tbody","tfoot","tr","th","td","caption","colgroup","col","input","label","select","option","textarea","button"],ALLOWED_ATTR:["href","src","alt","title","target","rel","loading","width","height","colspan","rowspan","scope","class","id","type","name","value","placeholder","disabled","checked","for","aria-label","aria-hidden","aria-expanded","role","tabindex","data-tv-form","data-message-id","data-persona-component-directive","data-preserve-animation","data-persona-instance"]},Fr=/^data:image\/(?:png|jpe?g|gif|webp|bmp|x-icon|avif)/i,Hr=()=>{let e=null;return t=>{let a=we();if(!a)return Ee(t);if(!e){let{DOMPurify:o}=a;e=o(typeof window<"u"?window:void 0),e.addHook("uponSanitizeAttribute",(r,s)=>{if(s.attrName==="src"||s.attrName==="href"){let n=s.attrValue;n.toLowerCase().startsWith("data:")&&!Fr.test(n)&&(s.attrValue="",s.keepAttr=!1)}})}return e.sanitize(t,Dr)}},za=e=>e===!1?null:typeof e=="function"?e:Hr();var oa=class{constructor(){this.components=new Map;this.options=new Map}register(t,a,o){this.components.has(t)&&console.warn(`[ComponentRegistry] Component "${t}" is already registered. Overwriting.`),this.components.set(t,a),o?this.options.set(t,o):this.options.delete(t)}unregister(t){this.components.delete(t),this.options.delete(t)}get(t){return this.components.get(t)}has(t){return this.components.has(t)}getOptions(t){return this.options.get(t)}getAllNames(){return Array.from(this.components.keys())}clear(){this.components.clear(),this.options.clear()}registerAll(t){Object.entries(t).forEach(([a,o])=>{this.register(a,o)})}},Wa=new oa;var Ga=null,sa=e=>{Ga=e.componentRegistry},_a=()=>Ga;function De(e){if(!e)return"";if(e.artifactType==="markdown"){let t=e.markdown??"";return e.file?Ne(t):t}return JSON.stringify({component:e.component,props:e.props},null,2)}var na=!1;function Or(e){return"persona-artifact-vt-"+((e||"artifact").replace(/[^A-Za-z0-9_-]/g,"-").replace(/^-+/,"")||"artifact")}function ja(e,t,a,o){let r=typeof document<"u"?document.startViewTransition:void 0,s=!1;try{s=typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{s=!1}if(t!=="auto"||!e||typeof r!="function"||na||s){o();return}na=!0;let n=Or(a);e.style.setProperty("view-transition-name",n);let f=()=>{na=!1,e.style.removeProperty("view-transition-name")};try{r.call(document,()=>{o()}).finished.then(f,f)}catch{f(),o()}}var Ir="persona-font-mono persona-text-xs persona-whitespace-pre-wrap persona-break-words persona-text-persona-primary",qr="persona-text-sm persona-leading-relaxed persona-markdown-bubble";function Ur(e){let t=C("div","persona-rounded-lg persona-border persona-border-persona-border persona-p-3 persona-text-persona-primary"),a=C("div","persona-font-semibold persona-text-sm persona-mb-2");a.textContent=e.component?`Component: ${e.component}`:"Component";let o=C("pre","persona-font-mono persona-text-xs persona-whitespace-pre-wrap persona-overflow-x-auto");return o.textContent=JSON.stringify(e.props??{},null,2),t.appendChild(a),t.appendChild(o),t}function Nr(e){if(e===!1)return{enabled:!1,delayMs:0,minVisibleMs:0,timeoutMs:0,injectReadySignal:!1,label:"Starting preview...",labelDelayMs:2e3};let t=e&&typeof e=="object"?e:void 0;return{enabled:!0,delayMs:t?.delayMs??200,minVisibleMs:t?.minVisibleMs??300,timeoutMs:t?.timeoutMs??8e3,injectReadySignal:t?.injectReadySignal!==!1,label:t?.label===!1?!1:t?.label??"Starting preview...",labelDelayMs:t?.labelDelayMs??2e3,renderIndicator:t?.renderIndicator}}var Vr=220;function zr(){try{if(typeof crypto<"u"&&crypto.getRandomValues){let e=new Uint32Array(2);return crypto.getRandomValues(e),e[0].toString(36)+e[1].toString(36)}}catch{}return Math.random().toString(36).slice(2)+Math.random().toString(36).slice(2)}function Wr(e){return`
|
|
7
|
-
<script>(function(){var d=false;var t=`+JSON.stringify(e)+";function r(){if(d)return;d=true;try{parent.postMessage({persona:'artifact-preview-ready',token:t},'*');}catch(e){}}function s(){if(typeof requestAnimationFrame==='function'){requestAnimationFrame(function(){requestAnimationFrame(r);});}setTimeout(r,150);}if(document.readyState==='complete'){s();}else{window.addEventListener('load',s);}})();</script>"}function Gr(e,t,a){let o=C("div","persona-artifact-frame-loading");if(a.renderIndicator)try{let n=a.renderIndicator({artifactId:e,config:t});if(n)return o.appendChild(n),{el:o,revealLabel:()=>{}}}catch{}let r=C("div","persona-artifact-frame-loading-indicator");r.appendChild(Ra());let s=null;return a.label!==!1&&(s=C("div","persona-artifact-frame-loading-text"),s.textContent=a.label,r.appendChild(s)),o.appendChild(r),{el:o,revealLabel:()=>{s&&s.classList.add("persona-artifact-frame-loading-text--visible")}}}function _r(e,t,a,o,r,s){let n=null,f=0,h=!1,u=new Set,i=()=>{u.forEach(b=>clearTimeout(b)),u.clear()},d=(b,L)=>{let I=setTimeout(()=>{u.delete(I),b()},L);u.add(I)},x=()=>{n&&n.parentElement&&n.remove(),n=null},p=()=>{if(n||h)return;let b=Gr(r,s,o);n=b.el,e.appendChild(n),f=Date.now(),o.label!==!1&&d(b.revealLabel,o.labelDelayMs)},m=()=>{n&&(n.classList.add("persona-artifact-frame-loading--out"),d(x,Vr))},c=()=>{a!==null?typeof window<"u"&&window.removeEventListener("message",M):t.removeEventListener("load",S)},v=()=>{if(h||(h=!0,c(),i(),!n))return;let b=Math.max(0,o.minVisibleMs-(Date.now()-f));b>0?d(m,b):m()};function M(b){if(a===null)return;let L=b.data;!L||L.persona!=="artifact-preview-ready"||L.token!==a||b.source===t.contentWindow&&v()}function S(){let b=L=>{typeof requestAnimationFrame=="function"?requestAnimationFrame(()=>L()):setTimeout(L,0)};b(()=>b(()=>v()))}return d(p,o.delayMs),d(v,o.timeoutMs),a!==null?typeof window<"u"&&window.addEventListener("message",M):t.addEventListener("load",S),()=>{h=!0,i(),c(),x()}}function et(e,t){let{config:a}=t,o=t.registry??_a()??Wa,r=t.bodyLayout,s=a.markdown?Va(a.markdown):null,n=za(a.sanitize),f=e,h=!1,u=g=>{let B=we()!==null;s&&!B&&!h&&(h=!0,Na(()=>$(f)));let H=s?s(g):Ee(g);return s&&B&&n?n(H):H},i=C("div","persona-artifact-preview-body"),d=null,x=null,p=null,m=()=>{p&&(p(),p=null),d=null,x=null},c=null,v=null,M=null,S=!1,b=()=>{c=null,v=null,M=null,S=!1},L=null,I=null,j=()=>{L=null,I=null},oe=40,Q=0,le=g=>typeof requestAnimationFrame=="function"?requestAnimationFrame(()=>g()):setTimeout(g,0),q=g=>g.scrollHeight-g.clientHeight-g.scrollTop<=oe,Z=g=>{if(!r)return;let B=g.scrollHeight-g.clientHeight>1,H=g.scrollHeight-g.clientHeight-g.scrollTop;g.classList.toggle("persona-artifact-fade-top",r.fadeTop&&B&&g.scrollTop>1),g.classList.toggle("persona-artifact-fade-bottom",r.fadeBottom&&B&&H>1)},U=g=>{Q||(Q=le(()=>{Q=0,g.scrollTop=g.scrollHeight,Z(g)}))},W=(g,B,H,y)=>{let P=!!r,O=H.id+"|"+(P?"w":"p");if(!c||M!==O||c.parentElement!==i){m(),j(),i.replaceChildren();let w=C("pre",Ir+" persona-code-pre"),D=C("code","persona-code");if(w.appendChild(D),P){let N=C("div","persona-artifact-source-window");if(N.appendChild(w),i.appendChild(N),!(r?.overflow==="clip")&&typeof N.addEventListener=="function"){let J=()=>N.scrollHeight-N.clientHeight>1;N.addEventListener("scroll",()=>{q(N)&&(S=!1),Z(N)},{passive:!0}),N.addEventListener("wheel",ee=>{J()&&ee.deltaY<0&&(S=!0)},{passive:!0}),N.addEventListener("touchmove",()=>{J()&&(S=!0)},{passive:!0})}c=N}else i.appendChild(w),c=w;v=D,M=O}let T=P?c:null;T&&(T.classList.toggle("persona-artifact-source-window--fixed",y),T.classList.toggle("persona-artifact-source-window--clip",y&&r?.overflow==="clip"));let E=T?q(T):!0;if(v.replaceChildren(qa(g,B?.language,B?.path)),T){let w=H.status!=="complete";y&&w&&r?.followOutput&&!S&&E?U(T):w||(S=!1),Z(T)}},G=g=>{m(),b(),j(),i.replaceChildren();let B=C("div",qr);B.innerHTML=u(g),i.appendChild(B)},Y=g=>{let B=g.id,H=a.features?.artifacts,y=be(g,H,"status-body");if(L&&I===B&&L.parentElement===i){let T=L.querySelector(".persona-artifact-status-view-text");T&&ce(T,y,H);return}m(),b(),i.replaceChildren();let P=C("div","persona-artifact-status-view"),O=C("div","persona-artifact-status-view-text");ce(O,y,H),P.appendChild(O),i.appendChild(P),L=P,I=B},$=g=>{f=g;let B=t.resolveViewMode?.(g)??r?.viewMode??"rendered",H=g.artifactType==="markdown"?g.file:void 0,y=g.status!=="complete";y||ye(g.id);let P=y?r?.streamingHeight:r?.completeHeight,O=!!r&&typeof P=="number";if(r?.streamingView==="status"&&y){Y(g);return}if(H){let E=Ne(g.markdown??""),w=ue(H),D=a.features?.artifacts?.filePreview?.enabled!==!1;if(!y&&B==="rendered"&&D&&(w==="html"||w==="svg")){let xe=g.id+"\0"+E;if(d&&x===xe&&d.parentElement===i)return;b(),j(),m(),i.replaceChildren();let J=a.features?.artifacts?.filePreview,ee=J?.iframeSandbox??"allow-scripts";!J?.dangerouslyAllowSameOrigin&&ee.includes("allow-same-origin")&&(console.warn("[AgentWidget] Stripped allow-same-origin from filePreview.iframeSandbox: it lets artifact content run with the page origin. Set filePreview.dangerouslyAllowSameOrigin to keep it."),ee=ee.split(/\s+/).filter(F=>F&&F!=="allow-same-origin").join(" "));let ge=Nr(J?.loading),_=C("div","persona-artifact-frame"),te=C("iframe","persona-artifact-iframe");te.setAttribute("sandbox",ee),te.setAttribute("data-artifact-id",g.id);let Se=null;ge.enabled&&ge.injectReadySignal?(Se=zr(),te.srcdoc=E+Wr(Se)):te.srcdoc=E,_.appendChild(te),i.appendChild(_),ge.enabled&&(p=_r(_,te,Se,ge,g.id,a)),d=_,x=xe;return}if(m(),!y&&w==="markdown"&&B==="rendered"){G(E);return}W(E,{language:H.language,path:H.path},g,O);return}if(g.artifactType==="markdown"){if(B==="source"){m(),W(g.markdown??"",void 0,g,O);return}G(g.markdown??"");return}m(),b(),j(),i.replaceChildren();let T=g.component?o.get(g.component):void 0;if(T){let w={message:{id:g.id,role:"assistant",content:"",createdAt:new Date().toISOString()},config:a,updateProps:()=>{}};try{let D=T(g.props??{},w);if(D){i.appendChild(D);return}}catch{}}i.appendChild(Ur(g))};return $(e),{el:i,update(g){$(g)},destroy(){m()}}}function Xa(e,t){let a=t.orientation??"horizontal",o=a==="vertical"?"ArrowUp":"ArrowLeft",r=a==="vertical"?"ArrowDown":"ArrowRight";e.setAttribute("role","tablist");let s=[],n=!1,f=d=>{typeof d.scrollIntoView=="function"&&d.scrollIntoView({block:"nearest",inline:"nearest"})},h=d=>{let x=d;return s.findIndex(p=>p===x||p.contains(x))},u=d=>{let x=h(d.target);if(x<0)return;let p=x;if(d.key===r)p=Math.min(x+1,s.length-1);else if(d.key===o)p=Math.max(x-1,0);else if(d.key==="Home")p=0;else if(d.key==="End")p=s.length-1;else return;d.preventDefault(),p!==x&&t.onSelect(p)},i=d=>{let x=h(d.target);x>=0&&f(s[x])};return e.addEventListener("keydown",u),e.addEventListener("focusin",i),{beforeRender(){n=typeof document<"u"&&e.contains(document.activeElement)},render(d,x){if(s=d,d.forEach((p,m)=>{p.setAttribute("role","tab");let c=m===x;p.setAttribute("aria-selected",c?"true":"false"),p.tabIndex=c||x<0&&m===0?0:-1}),n){let p=(x>=0?d[x]:void 0)??d[0];p&&typeof p.focus=="function"&&(f(p),p.focus())}},destroy(){e.removeEventListener("keydown",u),e.removeEventListener("focusin",i)}}}function la(e,t){let a=e.features?.artifacts?.layout,r=(a?.toolbarPreset??"default")==="document",s=a?.toolbarTitle??"Artifacts",n=a?.closeButtonLabel??"Close",f=a?.panePadding?.trim(),h=a?.tabFadeSize?.trim(),u=l=>({start:l===!1?!1:typeof l=="object"&&l?l.start!==!1:!0,end:l===!1?!1:typeof l=="object"&&l?l.end!==!1:!0}),{start:i,end:d}=u(a?.tabFade),x=typeof document<"u"?C("div","persona-artifact-backdrop persona-fixed persona-inset-0 persona-z-[55] persona-bg-black/30 persona-hidden md:persona-hidden"):null,p=()=>{x?.classList.add("persona-hidden"),m.classList.remove("persona-artifact-drawer-open"),Z?.closeMenu()};x&&x.addEventListener("click",()=>{p(),t.onDismiss?.()});let m=C("aside","persona-artifact-pane persona-flex persona-flex-col persona-min-h-0 persona-min-w-0 persona-bg-persona-surface persona-text-persona-primary persona-border-l persona-border-persona-border");m.setAttribute("data-persona-theme-zone","artifact-pane"),r&&m.classList.add("persona-artifact-pane-document");let c=C("div","persona-artifact-toolbar persona-flex persona-items-center persona-justify-between persona-gap-2 persona-px-2 persona-py-2 persona-border-b persona-border-persona-border persona-shrink-0");c.setAttribute("data-persona-theme-zone","artifact-toolbar"),r&&c.classList.add("persona-artifact-toolbar-document");let v=C("span","persona-text-xs persona-font-medium persona-truncate");v.textContent=s;let M=V({icon:"x",label:n});M.addEventListener("click",()=>{p(),t.onDismiss?.()});let S="rendered",b=Ze({items:[{id:"rendered",icon:"eye",label:"Rendered view",className:r?"persona-artifact-doc-icon-btn persona-artifact-view-btn":void 0},{id:"source",icon:"code-xml",label:"Source",className:r?"persona-artifact-doc-icon-btn persona-artifact-code-btn":void 0}],selectedId:"rendered",className:"persona-artifact-toggle-group persona-shrink-0",onSelect:l=>{S=l==="source"?"source":"rendered",Ie()}}),L=C("div","persona-flex persona-items-center persona-gap-1 persona-shrink-0"),I=a?.documentToolbarShowCopyLabel===!0,j=a?.documentToolbarShowCopyChevron===!0,oe=a?.documentToolbarCopyMenuItems,Q=!!(j&&oe&&oe.length>0),le=null,q,Z=null;if(r&&(I||j)&&!Q){if(q=I?me({icon:"copy",label:"Copy",iconSize:14,className:"persona-artifact-doc-copy-btn"}):V({icon:"copy",label:"Copy",className:"persona-artifact-doc-copy-btn"}),j){let l=ne(Me,14,"currentColor",2);l&&q.appendChild(l)}}else r&&Q?(Z=Ta({label:"Copy",icon:"copy",iconSize:14,iconOnly:!I,primaryClassName:"persona-artifact-doc-copy-btn",chevronLabel:"More copy options",chevronClassName:"persona-artifact-doc-copy-menu-chevron persona-artifact-doc-icon-btn",menuItems:(oe??[]).map(l=>({id:l.id,label:l.label})),position:"bottom-right",portal:()=>m.closest("[data-persona-root]")??document.body,onSelect:l=>{T(l)}}),le=Z.element,q=Z.primaryButton):r?q=V({icon:"copy",label:"Copy",className:"persona-artifact-doc-icon-btn"}):(q=V({icon:"copy",label:"Copy"}),a?.showCopyButton!==!0&&q.classList.add("persona-hidden"));let U=r?V({icon:"refresh-cw",label:"Refresh",className:"persona-artifact-doc-icon-btn"}):V({icon:"refresh-cw",label:"Refresh"});a?.onDocumentToolbarRefresh||U.classList.add("persona-hidden");let W=r?V({icon:"x",label:n,className:"persona-artifact-doc-icon-btn"}):V({icon:"x",label:n}),G=V({icon:"maximize",label:"Expand artifacts panel",className:"persona-artifact-expand-btn"+(r?" persona-artifact-doc-icon-btn":""),onClick:()=>t.onToggleExpand?.()});a?.showExpandToggle!==!0&&G.classList.add("persona-hidden");let Y=C("div","persona-flex persona-items-center persona-gap-1 persona-shrink-0 persona-artifact-toolbar-custom-actions"),$=e.features?.artifacts?.toolbarActions??[],g=()=>{let l=F.find(se=>se.id===X)??F[F.length-1],k=l?.id??null,A=l?.artifactType==="markdown"?l.markdown??"":"",R=l?JSON.stringify({component:l.component,props:l.props},null,2):"",{filename:z,mime:K,content:fe}=Ae({title:l?.title,markdown:l?.markdown??"",file:l?.file});return{markdown:A,jsonPayload:R,id:k,file:l?.file,suggestedFilename:z,mime:K,content:fe}},B=()=>{let{suggestedFilename:l,mime:k,content:A}=g();A&&ve({filename:l,mime:k,content:A})},H=l=>{let{id:k,...A}=g();return{actionId:l,artifactId:k,...A}},y=async()=>{let l=F.find(k=>k.id===X)??F[F.length-1];try{return await navigator.clipboard.writeText(De(l)),!0}catch{return!1}},P=null,O=()=>{P?.();let l=q.querySelector("svg"),k=Number(l?.getAttribute("width"))||16,A=ne(ke,k,"currentColor",2);if(!l||!A)return;l.replaceWith(A);let R=q.querySelector("span");R&&(R.textContent="Copied");let z=setTimeout(()=>P?.(),2e3);P=()=>{clearTimeout(z),A.replaceWith(l),R&&(R.textContent="Copy"),P=null}};q.addEventListener("click",async()=>{let l=a?.onDocumentToolbarCopyMenuSelect;if(l&&Q){try{if(await l(H("primary"))===!1){await y()&&O();return}O()}catch{}return}await y()&&O()});async function T(l){let k=a?.onDocumentToolbarCopyMenuSelect;try{if(k&&await k(H(l))!==!1)return;if(l==="download"){B();return}let{markdown:A,jsonPayload:R}=g();l==="markdown"||l==="md"?await navigator.clipboard.writeText(A):l==="json"||l==="source"?await navigator.clipboard.writeText(R):await navigator.clipboard.writeText(A||R),O()}catch{}}U.addEventListener("click",async()=>{try{await a?.onDocumentToolbarRefresh?.()}catch{}Ie()}),W.addEventListener("click",()=>{p(),t.onDismiss?.()});let E=C("span","persona-min-w-0 persona-flex-1 persona-text-xs persona-font-medium persona-text-persona-primary persona-truncate persona-text-center md:persona-text-left");if(r)c.replaceChildren(),le?L.append(le,U,W):L.append(q,U,W),L.insertBefore(Y,W),L.insertBefore(G,W),c.append(b.element,E,L);else{let l=C("div","persona-flex persona-items-center persona-gap-1 persona-shrink-0");l.append(q,Y,G,M),c.appendChild(v),c.appendChild(l)}f&&(c.style.paddingLeft=f,c.style.paddingRight=f);let w=C("div","persona-artifact-list persona-shrink-0 persona-flex persona-gap-1 persona-overflow-x-auto persona-p-2 persona-border-b persona-border-persona-border");h&&w.style.setProperty("--persona-artifact-tab-fade-size",h);let D=e.features?.artifacts?.renderTabBar,N=C("div","persona-artifact-tab-custom persona-shrink-0 persona-border-b persona-border-persona-border persona-hidden"),xe=Xa(w,{onSelect:l=>t.onSelect(F[l].id)}),J=l=>{let k=l.scrollWidth-l.clientWidth,A=k>1,R=Math.abs(l.scrollLeft);l.classList.toggle("persona-artifact-tab-fade-start",i&&A&&R>1),l.classList.toggle("persona-artifact-tab-fade-end",d&&A&&R<k-1)},ee=0,ge=()=>{if(ee)return;let l=()=>{ee=0,J(w)};ee=typeof requestAnimationFrame=="function"?requestAnimationFrame(l):setTimeout(l,0)};w.addEventListener("scroll",()=>ge(),{passive:!0}),typeof ResizeObserver<"u"&&new ResizeObserver(()=>J(w)).observe(w);let _=C("div","persona-artifact-content persona-flex-1 persona-min-h-0 persona-overflow-y-auto persona-p-3"),te=()=>{_.scrollLeft=0},Se=()=>{typeof requestAnimationFrame=="function"?requestAnimationFrame(te):setTimeout(te,0)};if(f){for(let l of[w,N])l.style.paddingLeft=f,l.style.paddingRight=f;_.style.padding=f}m.appendChild(c),m.appendChild(w),m.appendChild(N),m.appendChild(_);let F=[],X=null,tt=!1,pa=!1,at=!0,rt=!1,ua=null,ot="",ae=null,Oe=!1,Ya=l=>l.artifactType==="markdown"&&!!l.file||r?S:"rendered",ma=l=>{r||(l&&!Oe?(c.insertBefore(b.element,v),Oe=!0):!l&&Oe&&(b.element.remove(),Oe=!1))},ca=()=>X&&F.find(l=>l.id===X)||F[F.length-1],xa=()=>{let l=Be(ca());if(!l){Y.replaceChildren();return}let k=$.filter(A=>A.visible===void 0||A.visible(l)).map(A=>Ce(A,{documentChrome:r,onClick:()=>{let R=Be(ca());if(R)try{Promise.resolve(A.onClick(R)).catch(()=>{})}catch{}}}));Y.replaceChildren(...k)},Ie=()=>{xa();let l=r&&F.length<=1,k=!!D;if(w.classList.toggle("persona-hidden",l||k),N.classList.toggle("persona-hidden",l||!k),k&&D){let z=F.map(K=>K.id).join("|")+" "+(X??"");if(z!==ot){ot=z;let K=D({records:F,selectedId:X,onSelect:t.onSelect});N.firstElementChild!==K&&N.replaceChildren(K)}}else{xe.beforeRender(),w.replaceChildren();let z=[],K=-1;for(let[fe,se]of F.entries()){let ie=C("button","persona-artifact-tab persona-shrink-0 persona-rounded-lg persona-px-2 persona-py-1 persona-text-xs persona-border persona-border-transparent persona-text-persona-primary");ie.type="button";let st=se.artifactType==="markdown"?se.file:void 0,Ca=st?re(st.path):se.title||se.id.slice(0,8),ya=st?.path||se.title||Ca;ie.textContent=Ca,ie.title=ya,ie.setAttribute("aria-label",ya),se.id===X&&(ie.classList.add("persona-bg-persona-container","persona-border-persona-border"),K=fe),ie.addEventListener("click",()=>t.onSelect(se.id)),w.appendChild(ie),z.push(ie)}if(xe.render(z,K),K>=0&&X!==ua){ua=X;let fe=z[K];typeof fe.scrollIntoView=="function"&&fe.scrollIntoView({block:"nearest",inline:"nearest"})}J(w)}let A=X&&F.find(z=>z.id===X)||F[F.length-1];if(!A){_.replaceChildren(),ae?.destroy(),ae=null,ma(!1);return}let R=A.artifactType==="markdown"?A.file:void 0;if(ma(!!R&&ue(R)!=="other"),r){let z=R?de(R):A.artifactType==="markdown"?"MD":A.component??"Component",K=(A.title||"Document").trim(),fe=R?re(R.path):K.replace(/\s*·\s*MD\s*$/i,"").trim()||"Document";E.textContent=`${fe} \xB7 ${z}`}else v.textContent=R?re(R.path):s;ae?(ae.el.parentElement!==_&&_.replaceChildren(ae.el),ae.update(A)):(ae=et(A,{config:e,resolveViewMode:Ya}),_.replaceChildren(ae.el)),_.classList.toggle("persona-artifact-content-flush",!!_.querySelector(".persona-code-pre"))},ga=()=>{let l=F.length>0;if(m.classList.toggle("persona-hidden",!l),x){let R=((typeof m.closest=="function"?m.closest("[data-persona-root]"):null)?.classList.contains("persona-artifact-narrow-host")??!1)||typeof window<"u"&&window.matchMedia("(max-width: 640px)").matches;l&&R&&tt?(x.classList.remove("persona-hidden"),m.classList.add("persona-artifact-drawer-open")):(x.classList.add("persona-hidden"),m.classList.remove("persona-artifact-drawer-open"))}},ha=()=>{rt=!1,Ie(),ga()};return{element:m,backdrop:x,update(l){let k=l.selectedId??l.artifacts[l.artifacts.length-1]?.id??null,A=k!==X;F=l.artifacts,X=k,F.length>0&&(tt=!0),rt=!0,at&&ha(),A&&te()},setMobileOpen(l){tt=l,!l&&x?(x.classList.add("persona-hidden"),m.classList.remove("persona-artifact-drawer-open")):ga()},setExpanded(l){l!==pa&&(pa=l,Se());let k=ne(l?Te:Pe,16,"currentColor",2);k&&G.replaceChildren(k);let A=l?"Collapse artifacts panel":"Expand artifacts panel";G.setAttribute("aria-label",A),G.title=A},setExpandToggleVisible(l){G.classList.toggle("persona-hidden",!l)},setCopyButtonVisible(l){r||q.classList.toggle("persona-hidden",!l)},setRefreshButtonVisible(l){U.classList.toggle("persona-hidden",!l)},setCustomActions(l){$=l,xa()},setTabFade(l){let k=u(l);k.start===i&&k.end===d||(i=k.start,d=k.end,J(w))},setRenderTabBar(l){l!==D&&(D=l,ot="",Ie())},setVisible(l){l!==at&&(at=l,l&&rt&&ha())},destroy(){ae?.destroy(),ae=null}}}function Ka(e,t){let a=e.file&&typeof e.file=="object"&&!Array.isArray(e.file)?e.file:void 0,o=typeof e.title=="string"&&e.title?e.title:"Untitled artifact",r=a?re(a.path):o,s=typeof e.artifactId=="string"?e.artifactId:"",n=e.status==="streaming"?"streaming":"complete",f=typeof e.artifactType=="string"?e.artifactType:"markdown",h=e.presentation&&typeof e.presentation=="object"&&!Array.isArray(e.presentation)?e.presentation:void 0,u=a?de(a):f==="component"?"Component":"Document",i=document.createElement("div");i.className="persona-artifact-card persona-flex persona-w-full persona-max-w-full persona-items-center persona-gap-3 persona-px-4 persona-py-3",i.tabIndex=0,i.setAttribute("role","button"),i.setAttribute("aria-label",`Open ${r} in artifact panel`),s&&i.setAttribute("data-open-artifact",s);let d=document.createElement("div");d.className="persona-flex persona-h-10 persona-w-10 persona-flex-shrink-0 persona-items-center persona-justify-center persona-rounded-lg",d.style.border="1px solid var(--persona-border, #e5e7eb)",d.style.color="var(--persona-muted, #9ca3af)",d.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"/><polyline points="14 2 14 8 20 8"/></svg>';let x=document.createElement("div");x.className="persona-min-w-0 persona-flex-1 persona-flex persona-flex-col persona-gap-0.5";let p=document.createElement("div");p.className="persona-truncate persona-text-sm persona-font-medium",p.style.color="var(--persona-text, #1f2937)",p.textContent=r;let m=document.createElement("div");if(m.className="persona-text-xs persona-flex persona-items-center persona-gap-1.5",m.style.color="var(--persona-muted, #9ca3af)",n==="streaming"){let c=t?.config?.features?.artifacts,v={id:s,artifactType:f==="component"?"component":"markdown",title:o,status:"streaming",...typeof e.markdown=="string"?{markdown:e.markdown}:{},...a?{file:a}:{},...h?{presentation:h}:{}},M=be(v,c,"card");ce(m,M,c)}else s&&ye(s),m.textContent=u;if(x.append(p,m),i.append(d,x),n==="complete"){let c=t?.config?.features?.artifacts?.cardActions;if(c&&c.length>0){let M={artifactId:s||null,title:r,artifactType:f,markdown:typeof e.markdown=="string"?e.markdown:void 0,file:a};for(let S of c)try{if(S.visible===void 0||S.visible(M)){let b=Ce(S);b.setAttribute("data-artifact-custom-action",S.id),b.className=`${b.className} persona-flex-shrink-0`,i.append(b)}}catch{}}let v=me({label:"Download",className:"persona-flex-shrink-0"});v.title=`Download ${r}`,v.setAttribute("data-download-artifact",s),i.append(v)}return i}var Fe=(e,t)=>{let a=t?.config?.features?.artifacts?.renderCard;if(a){let o=typeof e.title=="string"&&e.title?e.title:"Untitled artifact",r=typeof e.artifactId=="string"?e.artifactId:"",s=e.status==="streaming"?"streaming":"complete",n=typeof e.artifactType=="string"?e.artifactType:"markdown",f=a({artifact:{artifactId:r,title:o,artifactType:n,status:s},config:t.config,defaultRenderer:()=>Ka(e,t)});if(f)return f}return Ka(e,t)};var pe=new WeakMap;function fa(e,t,a){if(t.length===0)return;let o=new Map(t.map(r=>[r.id,r]));e.querySelectorAll("[data-artifact-inline]").forEach(r=>{let s=pe.get(r);if(!s)return;let n=o.get(r.getAttribute("data-artifact-inline")??"");n&&s(n,a)})}function ia(e){return pe.has(e)}function jr(e){let t=typeof e.artifactId=="string"?e.artifactId:"",a=typeof e.title=="string"&&e.title?e.title:void 0,o=e.status==="streaming"?"streaming":"complete",r=e.presentation&&typeof e.presentation=="object"&&!Array.isArray(e.presentation)?e.presentation:void 0;if(e.artifactType==="component"){let n=e.componentProps,f=n&&typeof n=="object"&&!Array.isArray(n)?n:{};return{id:t,artifactType:"component",title:a,status:o,component:typeof e.component=="string"?e.component:"",props:f,...r?{presentation:r}:{}}}let s=e.file&&typeof e.file=="object"&&!Array.isArray(e.file)?e.file:void 0;return{id:t,artifactType:"markdown",title:a,status:o,markdown:typeof e.markdown=="string"?e.markdown:"",...s?{file:s}:{},...r?{presentation:r}:{}}}function Za(e){let t=e.artifactType==="markdown"?e.file:void 0,a=t?re(t.path):e.title&&e.title.trim()?e.title:"Untitled artifact",o=t?de(t):e.artifactType==="component"?"Component":"Document";return{title:a,typeLabel:o}}function Xr(e){let t={artifactId:e.id,title:e.title??"",status:e.status,artifactType:e.artifactType};return e.artifactType==="markdown"&&(typeof e.markdown=="string"&&(t.markdown=e.markdown),e.file&&(t.file=e.file)),t}var $a=180,Kr=240,Zr=.8,$r=300,Jr=500,Qr="cubic-bezier(0.2, 0, 0, 1)",Ja=240,Yr=.35;function eo(e,t,a){let{swap:o,onSettled:r}=a,s=!1;try{s=typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{s=!1}if(!t||!e.isConnected||s||typeof e.animate!="function"){o(),r();return}e.style.height=`${t}px`,e.style.overflow="hidden";let n=[];for(let f of Array.from(e.children))f instanceof HTMLElement&&n.push(f.animate([{opacity:1},{opacity:0}],{duration:$a,easing:"ease-out",fill:"forwards"}));window.setTimeout(()=>{for(let M of n)M.cancel();o();let f=()=>{e.style.removeProperty("height"),e.style.removeProperty("overflow")};if(!e.isConnected){f(),r();return}e.style.height="auto";let h=e.getBoundingClientRect().height;if(e.style.height=`${t}px`,!h||Math.abs(h-t)<1){f(),r();return}let u=Math.abs(t-h),i=Math.round(Math.min(Jr,Math.max($r,Kr+u*Zr))),d=Math.round(i*Yr),x=e.firstElementChild instanceof HTMLElement?e.firstElementChild:null,p=x?x.animate([{opacity:0},{opacity:1}],{duration:Ja,delay:d,easing:"ease-out",fill:"backwards"}):null,m=e.animate([{height:`${t}px`},{height:`${h}px`}],{duration:i,easing:Qr});e.style.height=`${h}px`;let c=!1,v=()=>{c||(c=!0,f(),r())};Promise.allSettled([m.finished,p?.finished].filter(Boolean)).then(v),window.setTimeout(v,Math.max(i,d+Ja)+120)},$a)}function to(e){let t=e?.inlineChrome;if(t===!1)return{chromeEnabled:!1,showCopy:!1,showExpand:!1,showViewToggle:!1};let a=typeof t=="object"?t:void 0;return{chromeEnabled:!0,showCopy:a?.showCopy!==!1,showExpand:a?.showExpand!==!1,showViewToggle:a?.showViewToggle!==!1}}var He="--persona-artifact-inline-body-height";function ao(e){let t=e?.inlineBody,a=t?.streamingView==="status"?"status":"source",o=t?.viewMode==="source"?"source":"rendered",r=320,s=320,n=t?.height;typeof n=="number"||n==="auto"?(r=n,s=n):n&&typeof n=="object"&&(r=n.streaming??320,s=n.complete??320);let f=t?.overflow==="clip"?"clip":"scroll",h=f==="clip"?!1:t?.followOutput!==!1,u,i,d=t?.fadeMask;d===!0?(u=!0,i=!0):d===!1?(u=!1,i=!1):d&&typeof d=="object"?(u=d.top===!0,i=d.bottom===!0):f==="clip"?(u=!1,i=!0):(u=!0,i=!0);let x=t?.transition==="none"?"none":"auto",p=t?.completeDisplay==="card"?"card":"inline";return{streamingView:a,viewMode:o,streamingHeight:r,completeHeight:s,followOutput:h,overflow:f,fadeTop:u,fadeBottom:i,transition:x,completeDisplay:p}}function Qa(e,t){let a=jr(e),o=t.config?.features?.artifacts,{chromeEnabled:r,showCopy:s,showExpand:n,showViewToggle:f}=to(o),h=o?.inlineActions??[],u=ao(o),i=u.completeDisplay==="card",d=null,x=a,p=C("div","persona-artifact-inline persona-w-full persona-max-w-full");p.setAttribute("data-persona-theme-zone","artifact-inline"),a.id&&p.setAttribute("data-artifact-inline",a.id);let m=y=>Fe(Xr(y),t),c=null,v=y=>{c?.destroy(),c=null,p.classList.add("persona-artifact-inline--card"),p.style.removeProperty(He),p.replaceChildren(m(y)),pe.set(p,P=>{p.replaceChildren(m(P))})};if(i&&a.status==="complete")return v(a),p;let M=et(a,{config:t.config,bodyLayout:u,resolveViewMode:()=>d??u.viewMode});c=M;let S=C("div","persona-artifact-inline-body");S.appendChild(M.el);let b=y=>{let P=y.status!=="complete",O=P?u.streamingHeight:u.completeHeight,T=typeof O=="number";T?p.style.setProperty(He,`${O}px`):p.style.removeProperty(He);let E=!!M.el.querySelector(".persona-code-pre"),w=!!M.el.querySelector("iframe, .persona-artifact-source-window--fixed, .persona-artifact-status-view");S.classList.toggle("persona-artifact-content-flush",E),S.classList.toggle("persona-artifact-inline-body--sized",T&&w),S.classList.toggle("persona-artifact-inline-body--cap",!P&&!w&&typeof u.completeHeight=="number")},L=a.status,I=(y,P)=>{L!=="complete"&&y.status==="complete"?(typeof u.completeHeight=="number"?p.style.setProperty(He,`${u.completeHeight}px`):p.style.removeProperty(He),ja(S,P?.suppressTransition?"none":u.transition,y.id,()=>{M.update(y),b(y)})):M.update(y),b(y),L=y.status};b(a);let j=u.overflow==="clip"&&n&&!!a.id;if(j&&(S.setAttribute("data-expand-artifact-inline",a.id),S.setAttribute("role","button"),S.setAttribute("tabindex","0"),S.classList.add("persona-cursor-pointer"),S.setAttribute("aria-label",`Open ${Za(a).title} in panel`)),!r)return p.appendChild(S),pe.set(p,I),p;let oe=C("div","persona-artifact-inline-chrome");oe.setAttribute("data-persona-theme-zone","artifact-inline-chrome");let Q=C("div","persona-artifact-inline-chrome-lead"),le=C("span","persona-flex persona-items-center persona-flex-shrink-0"),q=ne(Le,16,"currentColor",2);q&&le.appendChild(q);let Z=C("span","persona-artifact-inline-title persona-truncate persona-min-w-0"),U=C("span","persona-artifact-inline-type");Q.append(le,Z,U);let W=C("div","persona-artifact-inline-chrome-actions"),G=C("span","persona-flex persona-items-center persona-gap-1"),Y=()=>d??u.viewMode,$=f?Ze({items:[{id:"rendered",icon:"eye",label:"Rendered view",className:"persona-artifact-doc-icon-btn persona-artifact-view-btn"},{id:"source",icon:"code-xml",label:"Source",className:"persona-artifact-doc-icon-btn persona-artifact-code-btn"}],selectedId:Y(),className:"persona-artifact-toggle-group persona-flex-shrink-0",onSelect:y=>{let P=y==="source"?"source":"rendered";P!==Y()&&(d=P,M.update(x),b(x))}}):null,g=s?V({icon:"copy",label:"Copy",className:"persona-artifact-doc-icon-btn persona-flex-shrink-0"}):null;g&&a.id&&g.setAttribute("data-copy-artifact",a.id);let B=n?V({icon:"maximize",label:"Open in panel",className:"persona-artifact-doc-icon-btn persona-flex-shrink-0"}):null;B&&a.id&&B.setAttribute("data-expand-artifact-inline",a.id),W.appendChild(G),$&&W.appendChild($.element),g&&W.appendChild(g),B&&W.appendChild(B),oe.append(Q,W),p.append(oe,S);let H=y=>{let{title:P,typeLabel:O}=Za(y);Z.textContent=P,Z.title=P,j&&S.setAttribute("aria-label",`Open ${P} in panel`);let T=y.status!=="complete";if(T){U.classList.contains("persona-artifact-inline-status")||(U.className="persona-artifact-inline-status",U.removeAttribute("data-preserve-animation"),U.replaceChildren());let E=be(y,o,"inline-chrome");ce(U,E,o)}else ye(y.id),U.className="persona-artifact-inline-type",U.removeAttribute("data-preserve-animation"),U.replaceChildren(),U.textContent=O;if(g&&g.classList.toggle("persona-hidden",T),$){let E=y.artifactType==="markdown"?y.file:void 0,w=!1;if(!T&&E&&u.viewMode!=="source"){let D=ue(E);D==="markdown"?w=!0:(D==="html"||D==="svg")&&(w=o?.filePreview?.enabled!==!1)}$.element.classList.toggle("persona-hidden",!w),$.setSelected(Y())}if(G.replaceChildren(),!T&&h.length>0){let E=Be(y);if(E)for(let w of h)try{if(w.visible===void 0||w.visible(E)){let D=Ce(w,{documentChrome:!0});D.setAttribute("data-artifact-custom-action",w.id),D.classList.add("persona-flex-shrink-0"),G.appendChild(D)}}catch{}}};return H(a),pe.set(p,(y,P)=>{if(i&&L!=="complete"&&y.status==="complete"){let O=p.isConnected?p.getBoundingClientRect().height:0;L="complete";let T=y,E=!1,w=D=>{T=D,E=!0};pe.set(p,w),eo(p,O,{swap:()=>{v(T),E=!1,pe.set(p,w)},onSettled:()=>{E?v(T):pe.set(p,D=>{p.replaceChildren(m(D))})}});return}(y.status!=="complete"||y.id!==x.id)&&(d=null),x=y,I(y,P),H(y)}),p}var da=(e,t)=>{let a=t?.config?.features?.artifacts?.renderInline;if(a){let o=typeof e.title=="string"&&e.title?e.title:"Untitled artifact",r=typeof e.artifactId=="string"?e.artifactId:"",s=e.status==="streaming"?"streaming":"complete",n=typeof e.artifactType=="string"?e.artifactType:"markdown",f=a({artifact:{artifactId:r,title:o,artifactType:n,status:s},config:t.config,defaultRenderer:()=>Qa(e,t)});if(f)return f}return Qa(e,t)};0&&(module.exports={PersonaArtifactCard,PersonaArtifactInline,__provideMarkdownParsers,__setIconsExtraLoader,artifactCopyText,createArtifactPane,downloadInfoFor,hasLiveInlineArtifactBlock,initArtifactsUi,triggerArtifactDownload,updateInlineArtifactBlocks});
|
|
7
|
+
<script>(function(){var d=false;var t=`+JSON.stringify(e)+";function r(){if(d)return;d=true;try{parent.postMessage({persona:'artifact-preview-ready',token:t},'*');}catch(e){}}function s(){if(typeof requestAnimationFrame==='function'){requestAnimationFrame(function(){requestAnimationFrame(r);});}setTimeout(r,150);}if(document.readyState==='complete'){s();}else{window.addEventListener('load',s);}})();</script>"}function Gr(e,t,a){let o=C("div","persona-artifact-frame-loading");if(a.renderIndicator)try{let n=a.renderIndicator({artifactId:e,config:t});if(n)return o.appendChild(n),{el:o,revealLabel:()=>{}}}catch{}let r=C("div","persona-artifact-frame-loading-indicator");r.appendChild(Ra());let s=null;return a.label!==!1&&(s=C("div","persona-artifact-frame-loading-text"),s.textContent=a.label,r.appendChild(s)),o.appendChild(r),{el:o,revealLabel:()=>{s&&s.classList.add("persona-artifact-frame-loading-text--visible")}}}function _r(e,t,a,o,r,s){let n=null,f=0,h=!1,u=new Set,i=()=>{u.forEach(b=>clearTimeout(b)),u.clear()},d=(b,L)=>{let I=setTimeout(()=>{u.delete(I),!(typeof document>"u")&&b()},L);u.add(I)},x=()=>{n&&n.parentElement&&n.remove(),n=null},p=()=>{if(n||h)return;let b=Gr(r,s,o);n=b.el,e.appendChild(n),f=Date.now(),o.label!==!1&&d(b.revealLabel,o.labelDelayMs)},m=()=>{n&&(n.classList.add("persona-artifact-frame-loading--out"),d(x,Vr))},c=()=>{a!==null?typeof window<"u"&&window.removeEventListener("message",M):t.removeEventListener("load",S)},v=()=>{if(h||(h=!0,c(),i(),!n))return;let b=Math.max(0,o.minVisibleMs-(Date.now()-f));b>0?d(m,b):m()};function M(b){if(a===null)return;let L=b.data;!L||L.persona!=="artifact-preview-ready"||L.token!==a||b.source===t.contentWindow&&v()}function S(){let b=L=>{typeof requestAnimationFrame=="function"?requestAnimationFrame(()=>L()):setTimeout(L,0)};b(()=>b(()=>v()))}return d(p,o.delayMs),d(v,o.timeoutMs),a!==null?typeof window<"u"&&window.addEventListener("message",M):t.addEventListener("load",S),()=>{h=!0,i(),c(),x()}}function et(e,t){let{config:a}=t,o=t.registry??_a()??Wa,r=t.bodyLayout,s=a.markdown?Va(a.markdown):null,n=za(a.sanitize),f=e,h=!1,u=g=>{let B=we()!==null;s&&!B&&!h&&(h=!0,Na(()=>$(f)));let H=s?s(g):Ee(g);return s&&B&&n?n(H):H},i=C("div","persona-artifact-preview-body"),d=null,x=null,p=null,m=()=>{p&&(p(),p=null),d=null,x=null},c=null,v=null,M=null,S=!1,b=()=>{c=null,v=null,M=null,S=!1},L=null,I=null,j=()=>{L=null,I=null},oe=40,Q=0,le=g=>typeof requestAnimationFrame=="function"?requestAnimationFrame(()=>g()):setTimeout(g,0),q=g=>g.scrollHeight-g.clientHeight-g.scrollTop<=oe,Z=g=>{if(!r)return;let B=g.scrollHeight-g.clientHeight>1,H=g.scrollHeight-g.clientHeight-g.scrollTop;g.classList.toggle("persona-artifact-fade-top",r.fadeTop&&B&&g.scrollTop>1),g.classList.toggle("persona-artifact-fade-bottom",r.fadeBottom&&B&&H>1)},U=g=>{Q||(Q=le(()=>{Q=0,g.scrollTop=g.scrollHeight,Z(g)}))},W=(g,B,H,y)=>{let P=!!r,O=H.id+"|"+(P?"w":"p");if(!c||M!==O||c.parentElement!==i){m(),j(),i.replaceChildren();let w=C("pre",Ir+" persona-code-pre"),D=C("code","persona-code");if(w.appendChild(D),P){let N=C("div","persona-artifact-source-window");if(N.appendChild(w),i.appendChild(N),!(r?.overflow==="clip")&&typeof N.addEventListener=="function"){let J=()=>N.scrollHeight-N.clientHeight>1;N.addEventListener("scroll",()=>{q(N)&&(S=!1),Z(N)},{passive:!0}),N.addEventListener("wheel",ee=>{J()&&ee.deltaY<0&&(S=!0)},{passive:!0}),N.addEventListener("touchmove",()=>{J()&&(S=!0)},{passive:!0})}c=N}else i.appendChild(w),c=w;v=D,M=O}let T=P?c:null;T&&(T.classList.toggle("persona-artifact-source-window--fixed",y),T.classList.toggle("persona-artifact-source-window--clip",y&&r?.overflow==="clip"));let E=T?q(T):!0;if(v.replaceChildren(qa(g,B?.language,B?.path)),T){let w=H.status!=="complete";y&&w&&r?.followOutput&&!S&&E?U(T):w||(S=!1),Z(T)}},G=g=>{m(),b(),j(),i.replaceChildren();let B=C("div",qr);B.innerHTML=u(g),i.appendChild(B)},Y=g=>{let B=g.id,H=a.features?.artifacts,y=be(g,H,"status-body");if(L&&I===B&&L.parentElement===i){let T=L.querySelector(".persona-artifact-status-view-text");T&&ce(T,y,H);return}m(),b(),i.replaceChildren();let P=C("div","persona-artifact-status-view"),O=C("div","persona-artifact-status-view-text");ce(O,y,H),P.appendChild(O),i.appendChild(P),L=P,I=B},$=g=>{f=g;let B=t.resolveViewMode?.(g)??r?.viewMode??"rendered",H=g.artifactType==="markdown"?g.file:void 0,y=g.status!=="complete";y||ye(g.id);let P=y?r?.streamingHeight:r?.completeHeight,O=!!r&&typeof P=="number";if(r?.streamingView==="status"&&y){Y(g);return}if(H){let E=Ne(g.markdown??""),w=ue(H),D=a.features?.artifacts?.filePreview?.enabled!==!1;if(!y&&B==="rendered"&&D&&(w==="html"||w==="svg")){let xe=g.id+"\0"+E;if(d&&x===xe&&d.parentElement===i)return;b(),j(),m(),i.replaceChildren();let J=a.features?.artifacts?.filePreview,ee=J?.iframeSandbox??"allow-scripts";!J?.dangerouslyAllowSameOrigin&&ee.includes("allow-same-origin")&&(console.warn("[AgentWidget] Stripped allow-same-origin from filePreview.iframeSandbox: it lets artifact content run with the page origin. Set filePreview.dangerouslyAllowSameOrigin to keep it."),ee=ee.split(/\s+/).filter(F=>F&&F!=="allow-same-origin").join(" "));let ge=Nr(J?.loading),_=C("div","persona-artifact-frame"),te=C("iframe","persona-artifact-iframe");te.setAttribute("sandbox",ee),te.setAttribute("data-artifact-id",g.id);let Se=null;ge.enabled&&ge.injectReadySignal?(Se=zr(),te.srcdoc=E+Wr(Se)):te.srcdoc=E,_.appendChild(te),i.appendChild(_),ge.enabled&&(p=_r(_,te,Se,ge,g.id,a)),d=_,x=xe;return}if(m(),!y&&w==="markdown"&&B==="rendered"){G(E);return}W(E,{language:H.language,path:H.path},g,O);return}if(g.artifactType==="markdown"){if(B==="source"){m(),W(g.markdown??"",void 0,g,O);return}G(g.markdown??"");return}m(),b(),j(),i.replaceChildren();let T=g.component?o.get(g.component):void 0;if(T){let w={message:{id:g.id,role:"assistant",content:"",createdAt:new Date().toISOString()},config:a,updateProps:()=>{}};try{let D=T(g.props??{},w);if(D){i.appendChild(D);return}}catch{}}i.appendChild(Ur(g))};return $(e),{el:i,update(g){$(g)},destroy(){m()}}}function Xa(e,t){let a=t.orientation??"horizontal",o=a==="vertical"?"ArrowUp":"ArrowLeft",r=a==="vertical"?"ArrowDown":"ArrowRight";e.setAttribute("role","tablist");let s=[],n=!1,f=d=>{typeof d.scrollIntoView=="function"&&d.scrollIntoView({block:"nearest",inline:"nearest"})},h=d=>{let x=d;return s.findIndex(p=>p===x||p.contains(x))},u=d=>{let x=h(d.target);if(x<0)return;let p=x;if(d.key===r)p=Math.min(x+1,s.length-1);else if(d.key===o)p=Math.max(x-1,0);else if(d.key==="Home")p=0;else if(d.key==="End")p=s.length-1;else return;d.preventDefault(),p!==x&&t.onSelect(p)},i=d=>{let x=h(d.target);x>=0&&f(s[x])};return e.addEventListener("keydown",u),e.addEventListener("focusin",i),{beforeRender(){n=typeof document<"u"&&e.contains(document.activeElement)},render(d,x){if(s=d,d.forEach((p,m)=>{p.setAttribute("role","tab");let c=m===x;p.setAttribute("aria-selected",c?"true":"false"),p.tabIndex=c||x<0&&m===0?0:-1}),n){let p=(x>=0?d[x]:void 0)??d[0];p&&typeof p.focus=="function"&&(f(p),p.focus())}},destroy(){e.removeEventListener("keydown",u),e.removeEventListener("focusin",i)}}}function la(e,t){let a=e.features?.artifacts?.layout,r=(a?.toolbarPreset??"default")==="document",s=a?.toolbarTitle??"Artifacts",n=a?.closeButtonLabel??"Close",f=a?.panePadding?.trim(),h=a?.tabFadeSize?.trim(),u=l=>({start:l===!1?!1:typeof l=="object"&&l?l.start!==!1:!0,end:l===!1?!1:typeof l=="object"&&l?l.end!==!1:!0}),{start:i,end:d}=u(a?.tabFade),x=typeof document<"u"?C("div","persona-artifact-backdrop persona-fixed persona-inset-0 persona-z-[55] persona-bg-black/30 persona-hidden md:persona-hidden"):null,p=()=>{x?.classList.add("persona-hidden"),m.classList.remove("persona-artifact-drawer-open"),Z?.closeMenu()};x&&x.addEventListener("click",()=>{p(),t.onDismiss?.()});let m=C("aside","persona-artifact-pane persona-flex persona-flex-col persona-min-h-0 persona-min-w-0 persona-bg-persona-surface persona-text-persona-primary persona-border-l persona-border-persona-border");m.setAttribute("data-persona-theme-zone","artifact-pane"),r&&m.classList.add("persona-artifact-pane-document");let c=C("div","persona-artifact-toolbar persona-flex persona-items-center persona-justify-between persona-gap-2 persona-px-2 persona-py-2 persona-border-b persona-border-persona-border persona-shrink-0");c.setAttribute("data-persona-theme-zone","artifact-toolbar"),r&&c.classList.add("persona-artifact-toolbar-document");let v=C("span","persona-text-xs persona-font-medium persona-truncate");v.textContent=s;let M=V({icon:"x",label:n});M.addEventListener("click",()=>{p(),t.onDismiss?.()});let S="rendered",b=Ze({items:[{id:"rendered",icon:"eye",label:"Rendered view",className:r?"persona-artifact-doc-icon-btn persona-artifact-view-btn":void 0},{id:"source",icon:"code-xml",label:"Source",className:r?"persona-artifact-doc-icon-btn persona-artifact-code-btn":void 0}],selectedId:"rendered",className:"persona-artifact-toggle-group persona-shrink-0",onSelect:l=>{S=l==="source"?"source":"rendered",Ie()}}),L=C("div","persona-flex persona-items-center persona-gap-1 persona-shrink-0"),I=a?.documentToolbarShowCopyLabel===!0,j=a?.documentToolbarShowCopyChevron===!0,oe=a?.documentToolbarCopyMenuItems,Q=!!(j&&oe&&oe.length>0),le=null,q,Z=null;if(r&&(I||j)&&!Q){if(q=I?me({icon:"copy",label:"Copy",iconSize:14,className:"persona-artifact-doc-copy-btn"}):V({icon:"copy",label:"Copy",className:"persona-artifact-doc-copy-btn"}),j){let l=ne(Me,14,"currentColor",2);l&&q.appendChild(l)}}else r&&Q?(Z=Ta({label:"Copy",icon:"copy",iconSize:14,iconOnly:!I,primaryClassName:"persona-artifact-doc-copy-btn",chevronLabel:"More copy options",chevronClassName:"persona-artifact-doc-copy-menu-chevron persona-artifact-doc-icon-btn",menuItems:(oe??[]).map(l=>({id:l.id,label:l.label})),position:"bottom-right",portal:()=>m.closest("[data-persona-root]")??document.body,onSelect:l=>{T(l)}}),le=Z.element,q=Z.primaryButton):r?q=V({icon:"copy",label:"Copy",className:"persona-artifact-doc-icon-btn"}):(q=V({icon:"copy",label:"Copy"}),a?.showCopyButton!==!0&&q.classList.add("persona-hidden"));let U=r?V({icon:"refresh-cw",label:"Refresh",className:"persona-artifact-doc-icon-btn"}):V({icon:"refresh-cw",label:"Refresh"});a?.onDocumentToolbarRefresh||U.classList.add("persona-hidden");let W=r?V({icon:"x",label:n,className:"persona-artifact-doc-icon-btn"}):V({icon:"x",label:n}),G=V({icon:"maximize",label:"Expand artifacts panel",className:"persona-artifact-expand-btn"+(r?" persona-artifact-doc-icon-btn":""),onClick:()=>t.onToggleExpand?.()});a?.showExpandToggle!==!0&&G.classList.add("persona-hidden");let Y=C("div","persona-flex persona-items-center persona-gap-1 persona-shrink-0 persona-artifact-toolbar-custom-actions"),$=e.features?.artifacts?.toolbarActions??[],g=()=>{let l=F.find(se=>se.id===X)??F[F.length-1],k=l?.id??null,A=l?.artifactType==="markdown"?l.markdown??"":"",R=l?JSON.stringify({component:l.component,props:l.props},null,2):"",{filename:z,mime:K,content:fe}=Ae({title:l?.title,markdown:l?.markdown??"",file:l?.file});return{markdown:A,jsonPayload:R,id:k,file:l?.file,suggestedFilename:z,mime:K,content:fe}},B=()=>{let{suggestedFilename:l,mime:k,content:A}=g();A&&ve({filename:l,mime:k,content:A})},H=l=>{let{id:k,...A}=g();return{actionId:l,artifactId:k,...A}},y=async()=>{let l=F.find(k=>k.id===X)??F[F.length-1];try{return await navigator.clipboard.writeText(De(l)),!0}catch{return!1}},P=null,O=()=>{P?.();let l=q.querySelector("svg"),k=Number(l?.getAttribute("width"))||16,A=ne(ke,k,"currentColor",2);if(!l||!A)return;l.replaceWith(A);let R=q.querySelector("span");R&&(R.textContent="Copied");let z=setTimeout(()=>P?.(),2e3);P=()=>{clearTimeout(z),A.replaceWith(l),R&&(R.textContent="Copy"),P=null}};q.addEventListener("click",async()=>{let l=a?.onDocumentToolbarCopyMenuSelect;if(l&&Q){try{if(await l(H("primary"))===!1){await y()&&O();return}O()}catch{}return}await y()&&O()});async function T(l){let k=a?.onDocumentToolbarCopyMenuSelect;try{if(k&&await k(H(l))!==!1)return;if(l==="download"){B();return}let{markdown:A,jsonPayload:R}=g();l==="markdown"||l==="md"?await navigator.clipboard.writeText(A):l==="json"||l==="source"?await navigator.clipboard.writeText(R):await navigator.clipboard.writeText(A||R),O()}catch{}}U.addEventListener("click",async()=>{try{await a?.onDocumentToolbarRefresh?.()}catch{}Ie()}),W.addEventListener("click",()=>{p(),t.onDismiss?.()});let E=C("span","persona-min-w-0 persona-flex-1 persona-text-xs persona-font-medium persona-text-persona-primary persona-truncate persona-text-center md:persona-text-left");if(r)c.replaceChildren(),le?L.append(le,U,W):L.append(q,U,W),L.insertBefore(Y,W),L.insertBefore(G,W),c.append(b.element,E,L);else{let l=C("div","persona-flex persona-items-center persona-gap-1 persona-shrink-0");l.append(q,Y,G,M),c.appendChild(v),c.appendChild(l)}f&&(c.style.paddingLeft=f,c.style.paddingRight=f);let w=C("div","persona-artifact-list persona-shrink-0 persona-flex persona-gap-1 persona-overflow-x-auto persona-p-2 persona-border-b persona-border-persona-border");h&&w.style.setProperty("--persona-artifact-tab-fade-size",h);let D=e.features?.artifacts?.renderTabBar,N=C("div","persona-artifact-tab-custom persona-shrink-0 persona-border-b persona-border-persona-border persona-hidden"),xe=Xa(w,{onSelect:l=>t.onSelect(F[l].id)}),J=l=>{let k=l.scrollWidth-l.clientWidth,A=k>1,R=Math.abs(l.scrollLeft);l.classList.toggle("persona-artifact-tab-fade-start",i&&A&&R>1),l.classList.toggle("persona-artifact-tab-fade-end",d&&A&&R<k-1)},ee=0,ge=()=>{if(ee)return;let l=()=>{ee=0,J(w)};ee=typeof requestAnimationFrame=="function"?requestAnimationFrame(l):setTimeout(l,0)};w.addEventListener("scroll",()=>ge(),{passive:!0}),typeof ResizeObserver<"u"&&new ResizeObserver(()=>J(w)).observe(w);let _=C("div","persona-artifact-content persona-flex-1 persona-min-h-0 persona-overflow-y-auto persona-p-3"),te=()=>{_.scrollLeft=0},Se=()=>{typeof requestAnimationFrame=="function"?requestAnimationFrame(te):setTimeout(te,0)};if(f){for(let l of[w,N])l.style.paddingLeft=f,l.style.paddingRight=f;_.style.padding=f}m.appendChild(c),m.appendChild(w),m.appendChild(N),m.appendChild(_);let F=[],X=null,tt=!1,pa=!1,at=!0,rt=!1,ua=null,ot="",ae=null,Oe=!1,Ya=l=>l.artifactType==="markdown"&&!!l.file||r?S:"rendered",ma=l=>{r||(l&&!Oe?(c.insertBefore(b.element,v),Oe=!0):!l&&Oe&&(b.element.remove(),Oe=!1))},ca=()=>X&&F.find(l=>l.id===X)||F[F.length-1],xa=()=>{let l=Be(ca());if(!l){Y.replaceChildren();return}let k=$.filter(A=>A.visible===void 0||A.visible(l)).map(A=>Ce(A,{documentChrome:r,onClick:()=>{let R=Be(ca());if(R)try{Promise.resolve(A.onClick(R)).catch(()=>{})}catch{}}}));Y.replaceChildren(...k)},Ie=()=>{xa();let l=r&&F.length<=1,k=!!D;if(w.classList.toggle("persona-hidden",l||k),N.classList.toggle("persona-hidden",l||!k),k&&D){let z=F.map(K=>K.id).join("|")+" "+(X??"");if(z!==ot){ot=z;let K=D({records:F,selectedId:X,onSelect:t.onSelect});N.firstElementChild!==K&&N.replaceChildren(K)}}else{xe.beforeRender(),w.replaceChildren();let z=[],K=-1;for(let[fe,se]of F.entries()){let ie=C("button","persona-artifact-tab persona-shrink-0 persona-rounded-lg persona-px-2 persona-py-1 persona-text-xs persona-border persona-border-transparent persona-text-persona-primary");ie.type="button";let st=se.artifactType==="markdown"?se.file:void 0,Ca=st?re(st.path):se.title||se.id.slice(0,8),ya=st?.path||se.title||Ca;ie.textContent=Ca,ie.title=ya,ie.setAttribute("aria-label",ya),se.id===X&&(ie.classList.add("persona-bg-persona-container","persona-border-persona-border"),K=fe),ie.addEventListener("click",()=>t.onSelect(se.id)),w.appendChild(ie),z.push(ie)}if(xe.render(z,K),K>=0&&X!==ua){ua=X;let fe=z[K];typeof fe.scrollIntoView=="function"&&fe.scrollIntoView({block:"nearest",inline:"nearest"})}J(w)}let A=X&&F.find(z=>z.id===X)||F[F.length-1];if(!A){_.replaceChildren(),ae?.destroy(),ae=null,ma(!1);return}let R=A.artifactType==="markdown"?A.file:void 0;if(ma(!!R&&ue(R)!=="other"),r){let z=R?de(R):A.artifactType==="markdown"?"MD":A.component??"Component",K=(A.title||"Document").trim(),fe=R?re(R.path):K.replace(/\s*·\s*MD\s*$/i,"").trim()||"Document";E.textContent=`${fe} \xB7 ${z}`}else v.textContent=R?re(R.path):s;ae?(ae.el.parentElement!==_&&_.replaceChildren(ae.el),ae.update(A)):(ae=et(A,{config:e,resolveViewMode:Ya}),_.replaceChildren(ae.el)),_.classList.toggle("persona-artifact-content-flush",!!_.querySelector(".persona-code-pre"))},ga=()=>{let l=F.length>0;if(m.classList.toggle("persona-hidden",!l),x){let R=((typeof m.closest=="function"?m.closest("[data-persona-root]"):null)?.classList.contains("persona-artifact-narrow-host")??!1)||typeof window<"u"&&window.matchMedia("(max-width: 640px)").matches;l&&R&&tt?(x.classList.remove("persona-hidden"),m.classList.add("persona-artifact-drawer-open")):(x.classList.add("persona-hidden"),m.classList.remove("persona-artifact-drawer-open"))}},ha=()=>{rt=!1,Ie(),ga()};return{element:m,backdrop:x,update(l){let k=l.selectedId??l.artifacts[l.artifacts.length-1]?.id??null,A=k!==X;F=l.artifacts,X=k,F.length>0&&(tt=!0),rt=!0,at&&ha(),A&&te()},setMobileOpen(l){tt=l,!l&&x?(x.classList.add("persona-hidden"),m.classList.remove("persona-artifact-drawer-open")):ga()},setExpanded(l){l!==pa&&(pa=l,Se());let k=ne(l?Te:Pe,16,"currentColor",2);k&&G.replaceChildren(k);let A=l?"Collapse artifacts panel":"Expand artifacts panel";G.setAttribute("aria-label",A),G.title=A},setExpandToggleVisible(l){G.classList.toggle("persona-hidden",!l)},setCopyButtonVisible(l){r||q.classList.toggle("persona-hidden",!l)},setRefreshButtonVisible(l){U.classList.toggle("persona-hidden",!l)},setCustomActions(l){$=l,xa()},setTabFade(l){let k=u(l);k.start===i&&k.end===d||(i=k.start,d=k.end,J(w))},setRenderTabBar(l){l!==D&&(D=l,ot="",Ie())},setVisible(l){l!==at&&(at=l,l&&rt&&ha())},destroy(){ae?.destroy(),ae=null}}}function Ka(e,t){let a=e.file&&typeof e.file=="object"&&!Array.isArray(e.file)?e.file:void 0,o=typeof e.title=="string"&&e.title?e.title:"Untitled artifact",r=a?re(a.path):o,s=typeof e.artifactId=="string"?e.artifactId:"",n=e.status==="streaming"?"streaming":"complete",f=typeof e.artifactType=="string"?e.artifactType:"markdown",h=e.presentation&&typeof e.presentation=="object"&&!Array.isArray(e.presentation)?e.presentation:void 0,u=a?de(a):f==="component"?"Component":"Document",i=document.createElement("div");i.className="persona-artifact-card persona-flex persona-w-full persona-max-w-full persona-items-center persona-gap-3 persona-px-4 persona-py-3",i.tabIndex=0,i.setAttribute("role","button"),i.setAttribute("aria-label",`Open ${r} in artifact panel`),s&&i.setAttribute("data-open-artifact",s);let d=document.createElement("div");d.className="persona-flex persona-h-10 persona-w-10 persona-flex-shrink-0 persona-items-center persona-justify-center persona-rounded-lg",d.style.border="1px solid var(--persona-border, #e5e7eb)",d.style.color="var(--persona-muted, #9ca3af)",d.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"/><polyline points="14 2 14 8 20 8"/></svg>';let x=document.createElement("div");x.className="persona-min-w-0 persona-flex-1 persona-flex persona-flex-col persona-gap-0.5";let p=document.createElement("div");p.className="persona-truncate persona-text-sm persona-font-medium",p.style.color="var(--persona-text, #1f2937)",p.textContent=r;let m=document.createElement("div");if(m.className="persona-text-xs persona-flex persona-items-center persona-gap-1.5",m.style.color="var(--persona-muted, #9ca3af)",n==="streaming"){let c=t?.config?.features?.artifacts,v={id:s,artifactType:f==="component"?"component":"markdown",title:o,status:"streaming",...typeof e.markdown=="string"?{markdown:e.markdown}:{},...a?{file:a}:{},...h?{presentation:h}:{}},M=be(v,c,"card");ce(m,M,c)}else s&&ye(s),m.textContent=u;if(x.append(p,m),i.append(d,x),n==="complete"){let c=t?.config?.features?.artifacts?.cardActions;if(c&&c.length>0){let M={artifactId:s||null,title:r,artifactType:f,markdown:typeof e.markdown=="string"?e.markdown:void 0,file:a};for(let S of c)try{if(S.visible===void 0||S.visible(M)){let b=Ce(S);b.setAttribute("data-artifact-custom-action",S.id),b.className=`${b.className} persona-flex-shrink-0`,i.append(b)}}catch{}}let v=me({label:"Download",className:"persona-flex-shrink-0"});v.title=`Download ${r}`,v.setAttribute("data-download-artifact",s),i.append(v)}return i}var Fe=(e,t)=>{let a=t?.config?.features?.artifacts?.renderCard;if(a){let o=typeof e.title=="string"&&e.title?e.title:"Untitled artifact",r=typeof e.artifactId=="string"?e.artifactId:"",s=e.status==="streaming"?"streaming":"complete",n=typeof e.artifactType=="string"?e.artifactType:"markdown",f=a({artifact:{artifactId:r,title:o,artifactType:n,status:s},config:t.config,defaultRenderer:()=>Ka(e,t)});if(f)return f}return Ka(e,t)};var pe=new WeakMap;function fa(e,t,a){if(t.length===0)return;let o=new Map(t.map(r=>[r.id,r]));e.querySelectorAll("[data-artifact-inline]").forEach(r=>{let s=pe.get(r);if(!s)return;let n=o.get(r.getAttribute("data-artifact-inline")??"");n&&s(n,a)})}function ia(e){return pe.has(e)}function jr(e){let t=typeof e.artifactId=="string"?e.artifactId:"",a=typeof e.title=="string"&&e.title?e.title:void 0,o=e.status==="streaming"?"streaming":"complete",r=e.presentation&&typeof e.presentation=="object"&&!Array.isArray(e.presentation)?e.presentation:void 0;if(e.artifactType==="component"){let n=e.componentProps,f=n&&typeof n=="object"&&!Array.isArray(n)?n:{};return{id:t,artifactType:"component",title:a,status:o,component:typeof e.component=="string"?e.component:"",props:f,...r?{presentation:r}:{}}}let s=e.file&&typeof e.file=="object"&&!Array.isArray(e.file)?e.file:void 0;return{id:t,artifactType:"markdown",title:a,status:o,markdown:typeof e.markdown=="string"?e.markdown:"",...s?{file:s}:{},...r?{presentation:r}:{}}}function Za(e){let t=e.artifactType==="markdown"?e.file:void 0,a=t?re(t.path):e.title&&e.title.trim()?e.title:"Untitled artifact",o=t?de(t):e.artifactType==="component"?"Component":"Document";return{title:a,typeLabel:o}}function Xr(e){let t={artifactId:e.id,title:e.title??"",status:e.status,artifactType:e.artifactType};return e.artifactType==="markdown"&&(typeof e.markdown=="string"&&(t.markdown=e.markdown),e.file&&(t.file=e.file)),t}var $a=180,Kr=240,Zr=.8,$r=300,Jr=500,Qr="cubic-bezier(0.2, 0, 0, 1)",Ja=240,Yr=.35;function eo(e,t,a){let{swap:o,onSettled:r}=a,s=!1;try{s=typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{s=!1}if(!t||!e.isConnected||s||typeof e.animate!="function"){o(),r();return}e.style.height=`${t}px`,e.style.overflow="hidden";let n=[];for(let f of Array.from(e.children))f instanceof HTMLElement&&n.push(f.animate([{opacity:1},{opacity:0}],{duration:$a,easing:"ease-out",fill:"forwards"}));window.setTimeout(()=>{for(let M of n)M.cancel();o();let f=()=>{e.style.removeProperty("height"),e.style.removeProperty("overflow")};if(!e.isConnected){f(),r();return}e.style.height="auto";let h=e.getBoundingClientRect().height;if(e.style.height=`${t}px`,!h||Math.abs(h-t)<1){f(),r();return}let u=Math.abs(t-h),i=Math.round(Math.min(Jr,Math.max($r,Kr+u*Zr))),d=Math.round(i*Yr),x=e.firstElementChild instanceof HTMLElement?e.firstElementChild:null,p=x?x.animate([{opacity:0},{opacity:1}],{duration:Ja,delay:d,easing:"ease-out",fill:"backwards"}):null,m=e.animate([{height:`${t}px`},{height:`${h}px`}],{duration:i,easing:Qr});e.style.height=`${h}px`;let c=!1,v=()=>{c||(c=!0,f(),r())};Promise.allSettled([m.finished,p?.finished].filter(Boolean)).then(v),window.setTimeout(v,Math.max(i,d+Ja)+120)},$a)}function to(e){let t=e?.inlineChrome;if(t===!1)return{chromeEnabled:!1,showCopy:!1,showExpand:!1,showViewToggle:!1};let a=typeof t=="object"?t:void 0;return{chromeEnabled:!0,showCopy:a?.showCopy!==!1,showExpand:a?.showExpand!==!1,showViewToggle:a?.showViewToggle!==!1}}var He="--persona-artifact-inline-body-height";function ao(e){let t=e?.inlineBody,a=t?.streamingView==="status"?"status":"source",o=t?.viewMode==="source"?"source":"rendered",r=320,s=320,n=t?.height;typeof n=="number"||n==="auto"?(r=n,s=n):n&&typeof n=="object"&&(r=n.streaming??320,s=n.complete??320);let f=t?.overflow==="clip"?"clip":"scroll",h=f==="clip"?!1:t?.followOutput!==!1,u,i,d=t?.fadeMask;d===!0?(u=!0,i=!0):d===!1?(u=!1,i=!1):d&&typeof d=="object"?(u=d.top===!0,i=d.bottom===!0):f==="clip"?(u=!1,i=!0):(u=!0,i=!0);let x=t?.transition==="none"?"none":"auto",p=t?.completeDisplay==="card"?"card":"inline";return{streamingView:a,viewMode:o,streamingHeight:r,completeHeight:s,followOutput:h,overflow:f,fadeTop:u,fadeBottom:i,transition:x,completeDisplay:p}}function Qa(e,t){let a=jr(e),o=t.config?.features?.artifacts,{chromeEnabled:r,showCopy:s,showExpand:n,showViewToggle:f}=to(o),h=o?.inlineActions??[],u=ao(o),i=u.completeDisplay==="card",d=null,x=a,p=C("div","persona-artifact-inline persona-w-full persona-max-w-full");p.setAttribute("data-persona-theme-zone","artifact-inline"),a.id&&p.setAttribute("data-artifact-inline",a.id);let m=y=>Fe(Xr(y),t),c=null,v=y=>{c?.destroy(),c=null,p.classList.add("persona-artifact-inline--card"),p.style.removeProperty(He),p.replaceChildren(m(y)),pe.set(p,P=>{p.replaceChildren(m(P))})};if(i&&a.status==="complete")return v(a),p;let M=et(a,{config:t.config,bodyLayout:u,resolveViewMode:()=>d??u.viewMode});c=M;let S=C("div","persona-artifact-inline-body");S.appendChild(M.el);let b=y=>{let P=y.status!=="complete",O=P?u.streamingHeight:u.completeHeight,T=typeof O=="number";T?p.style.setProperty(He,`${O}px`):p.style.removeProperty(He);let E=!!M.el.querySelector(".persona-code-pre"),w=!!M.el.querySelector("iframe, .persona-artifact-source-window--fixed, .persona-artifact-status-view");S.classList.toggle("persona-artifact-content-flush",E),S.classList.toggle("persona-artifact-inline-body--sized",T&&w),S.classList.toggle("persona-artifact-inline-body--cap",!P&&!w&&typeof u.completeHeight=="number")},L=a.status,I=(y,P)=>{L!=="complete"&&y.status==="complete"?(typeof u.completeHeight=="number"?p.style.setProperty(He,`${u.completeHeight}px`):p.style.removeProperty(He),ja(S,P?.suppressTransition?"none":u.transition,y.id,()=>{M.update(y),b(y)})):M.update(y),b(y),L=y.status};b(a);let j=u.overflow==="clip"&&n&&!!a.id;if(j&&(S.setAttribute("data-expand-artifact-inline",a.id),S.setAttribute("role","button"),S.setAttribute("tabindex","0"),S.classList.add("persona-cursor-pointer"),S.setAttribute("aria-label",`Open ${Za(a).title} in panel`)),!r)return p.appendChild(S),pe.set(p,I),p;let oe=C("div","persona-artifact-inline-chrome");oe.setAttribute("data-persona-theme-zone","artifact-inline-chrome");let Q=C("div","persona-artifact-inline-chrome-lead"),le=C("span","persona-flex persona-items-center persona-flex-shrink-0"),q=ne(Le,16,"currentColor",2);q&&le.appendChild(q);let Z=C("span","persona-artifact-inline-title persona-truncate persona-min-w-0"),U=C("span","persona-artifact-inline-type");Q.append(le,Z,U);let W=C("div","persona-artifact-inline-chrome-actions"),G=C("span","persona-flex persona-items-center persona-gap-1"),Y=()=>d??u.viewMode,$=f?Ze({items:[{id:"rendered",icon:"eye",label:"Rendered view",className:"persona-artifact-doc-icon-btn persona-artifact-view-btn"},{id:"source",icon:"code-xml",label:"Source",className:"persona-artifact-doc-icon-btn persona-artifact-code-btn"}],selectedId:Y(),className:"persona-artifact-toggle-group persona-flex-shrink-0",onSelect:y=>{let P=y==="source"?"source":"rendered";P!==Y()&&(d=P,M.update(x),b(x))}}):null,g=s?V({icon:"copy",label:"Copy",className:"persona-artifact-doc-icon-btn persona-flex-shrink-0"}):null;g&&a.id&&g.setAttribute("data-copy-artifact",a.id);let B=n?V({icon:"maximize",label:"Open in panel",className:"persona-artifact-doc-icon-btn persona-flex-shrink-0"}):null;B&&a.id&&B.setAttribute("data-expand-artifact-inline",a.id),W.appendChild(G),$&&W.appendChild($.element),g&&W.appendChild(g),B&&W.appendChild(B),oe.append(Q,W),p.append(oe,S);let H=y=>{let{title:P,typeLabel:O}=Za(y);Z.textContent=P,Z.title=P,j&&S.setAttribute("aria-label",`Open ${P} in panel`);let T=y.status!=="complete";if(T){U.classList.contains("persona-artifact-inline-status")||(U.className="persona-artifact-inline-status",U.removeAttribute("data-preserve-animation"),U.replaceChildren());let E=be(y,o,"inline-chrome");ce(U,E,o)}else ye(y.id),U.className="persona-artifact-inline-type",U.removeAttribute("data-preserve-animation"),U.replaceChildren(),U.textContent=O;if(g&&g.classList.toggle("persona-hidden",T),$){let E=y.artifactType==="markdown"?y.file:void 0,w=!1;if(!T&&E&&u.viewMode!=="source"){let D=ue(E);D==="markdown"?w=!0:(D==="html"||D==="svg")&&(w=o?.filePreview?.enabled!==!1)}$.element.classList.toggle("persona-hidden",!w),$.setSelected(Y())}if(G.replaceChildren(),!T&&h.length>0){let E=Be(y);if(E)for(let w of h)try{if(w.visible===void 0||w.visible(E)){let D=Ce(w,{documentChrome:!0});D.setAttribute("data-artifact-custom-action",w.id),D.classList.add("persona-flex-shrink-0"),G.appendChild(D)}}catch{}}};return H(a),pe.set(p,(y,P)=>{if(i&&L!=="complete"&&y.status==="complete"){let O=p.isConnected?p.getBoundingClientRect().height:0;L="complete";let T=y,E=!1,w=D=>{T=D,E=!0};pe.set(p,w),eo(p,O,{swap:()=>{v(T),E=!1,pe.set(p,w)},onSettled:()=>{E?v(T):pe.set(p,D=>{p.replaceChildren(m(D))})}});return}(y.status!=="complete"||y.id!==x.id)&&(d=null),x=y,I(y,P),H(y)}),p}var da=(e,t)=>{let a=t?.config?.features?.artifacts?.renderInline;if(a){let o=typeof e.title=="string"&&e.title?e.title:"Untitled artifact",r=typeof e.artifactId=="string"?e.artifactId:"",s=e.status==="streaming"?"streaming":"complete",n=typeof e.artifactType=="string"?e.artifactType:"markdown",f=a({artifact:{artifactId:r,title:o,artifactType:n,status:s},config:t.config,defaultRenderer:()=>Qa(e,t)});if(f)return f}return Qa(e,t)};0&&(module.exports={PersonaArtifactCard,PersonaArtifactInline,__provideMarkdownParsers,__setIconsExtraLoader,artifactCopyText,createArtifactPane,downloadInfoFor,hasLiveInlineArtifactBlock,initArtifactsUi,triggerArtifactDownload,updateInlineArtifactBlocks});
|
|
8
8
|
/*! Bundled license information:
|
|
9
9
|
|
|
10
10
|
lucide/dist/esm/icons/activity.mjs:
|