@runtypelabs/persona 4.21.1 → 4.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/{approval-ui-RNNBR5R3.js → approval-ui-K7R5Q5OC.js} +1 -1
  2. package/dist/approval-ui.cjs +2 -2
  3. package/dist/approval-ui.d.cts +73 -2
  4. package/dist/approval-ui.d.ts +73 -2
  5. package/dist/approval-ui.js +2 -2
  6. package/dist/artifacts-ui-F4N6VMKF.js +7 -0
  7. package/dist/artifacts-ui.cjs +1 -1
  8. package/dist/artifacts-ui.d.cts +73 -2
  9. package/dist/artifacts-ui.d.ts +73 -2
  10. package/dist/artifacts-ui.js +1 -1
  11. package/dist/chunk-NQLDCJAP.js +4 -0
  12. package/dist/codegen.cjs +1 -1
  13. package/dist/codegen.js +1 -1
  14. package/dist/context-mentions.d.cts +73 -2
  15. package/dist/context-mentions.d.ts +73 -2
  16. package/dist/event-stream-view-FKWDY3UB.js +1 -0
  17. package/dist/event-stream-view.cjs +1 -1
  18. package/dist/event-stream-view.d.cts +73 -2
  19. package/dist/event-stream-view.d.ts +73 -2
  20. package/dist/event-stream-view.js +1 -1
  21. package/dist/forms-ui.d.cts +73 -2
  22. package/dist/forms-ui.d.ts +73 -2
  23. package/dist/index.cjs +63 -63
  24. package/dist/index.cjs.map +1 -1
  25. package/dist/index.d.cts +136 -5
  26. package/dist/index.d.ts +136 -5
  27. package/dist/index.global.js +48 -48
  28. package/dist/index.global.js.map +1 -1
  29. package/dist/index.js +64 -64
  30. package/dist/index.js.map +1 -1
  31. package/dist/launcher.global.js +2 -2
  32. package/dist/launcher.global.js.map +1 -1
  33. package/dist/session-reconnect.d.cts +73 -2
  34. package/dist/session-reconnect.d.ts +73 -2
  35. package/dist/smart-dom-reader.d.cts +73 -2
  36. package/dist/smart-dom-reader.d.ts +73 -2
  37. package/dist/theme-editor-preview.cjs +64 -64
  38. package/dist/theme-editor-preview.d.cts +73 -2
  39. package/dist/theme-editor-preview.d.ts +73 -2
  40. package/dist/theme-editor-preview.js +45 -45
  41. package/dist/theme-editor.cjs +4 -4
  42. package/dist/theme-editor.d.cts +73 -2
  43. package/dist/theme-editor.d.ts +73 -2
  44. package/dist/theme-editor.js +2 -2
  45. package/dist/theme-reference.cjs +1 -1
  46. package/dist/theme-reference.d.cts +65 -1
  47. package/dist/theme-reference.d.ts +65 -1
  48. package/dist/theme-reference.js +1 -1
  49. package/dist/webmcp-polyfill.js +1 -4
  50. package/dist/webmcp-runtime-JI7T4QYF.js +6 -0
  51. package/dist/webmcp-runtime.cjs +2 -2
  52. package/dist/webmcp-runtime.d.cts +34 -2
  53. package/dist/webmcp-runtime.d.ts +34 -2
  54. package/dist/webmcp-runtime.js +2 -2
  55. package/package.json +2 -2
  56. package/src/components/artifact-preview.ts +5 -0
  57. package/src/components/event-stream-badge-theming.test.ts +159 -0
  58. package/src/components/event-stream-view.ts +50 -20
  59. package/src/generated/runtype-openapi-contract.ts +8 -0
  60. package/src/index-core.ts +2 -0
  61. package/src/runtime/init.registry.test.ts +56 -0
  62. package/src/runtime/init.ts +17 -0
  63. package/src/types/theme.ts +41 -1
  64. package/src/types.ts +38 -1
  65. package/src/ui.reasoning-display.test.ts +136 -2
  66. package/src/ui.ts +41 -10
  67. package/src/utils/__snapshots__/tokens-parity.test.ts.snap +1740 -0
  68. package/src/utils/formatting.ts +22 -0
  69. package/src/utils/theme.ts +16 -0
  70. package/src/utils/tokens.ts +59 -0
  71. package/src/webmcp-bridge.test.ts +132 -23
  72. package/src/webmcp-bridge.ts +26 -2
  73. package/src/webmcp-runtime-entry.ts +71 -11
  74. package/dist/artifacts-ui-J6AKUGTS.js +0 -7
  75. package/dist/chunk-HBE7LFNT.js +0 -4
  76. package/dist/event-stream-view-73NWKWVQ.js +0 -1
  77. package/dist/webmcp-runtime-P3CHZRHF.js +0 -6
@@ -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};
@@ -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,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;");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:
@@ -621,7 +621,11 @@ interface ColorPalette {
621
621
  warning: ColorShade;
622
622
  error: ColorShade;
623
623
  info: ColorShade;
624
- [key: string]: ColorShade;
624
+ /** Event-stream tool badge family. */
625
+ purple?: ColorShade;
626
+ /** Event-stream agent badge family. */
627
+ teal?: ColorShade;
628
+ [key: string]: ColorShade | undefined;
625
629
  }
626
630
  interface SpacingScale {
627
631
  0: string;
@@ -1193,6 +1197,38 @@ interface ToolBubbleTokens {
1193
1197
  interface ReasoningBubbleTokens {
1194
1198
  shadow: string;
1195
1199
  }
1200
+ /** One event-stream badge chip: fill + text pair. The chip border derives
1201
+ * from `foreground` at ~31% alpha. */
1202
+ interface EventStreamBadgePairTokens {
1203
+ background: TokenReference<'color'>;
1204
+ foreground: TokenReference<'color'>;
1205
+ }
1206
+ /**
1207
+ * Event-stream inspector badge chips (`features.eventStream`), one pair per
1208
+ * unified event family. Materialized into every theme and emitted as
1209
+ * `--persona-event-badge-<family>-{bg,fg}`, with scheme-appropriate defaults:
1210
+ * light themes pair a 100-tone fill with a 700-tone text, the built-in dark
1211
+ * layer flips to a 900-tone fill with a 300-tone text. `badge.default` colors
1212
+ * event types no family matches.
1213
+ */
1214
+ interface EventStreamTokens {
1215
+ badge: {
1216
+ /** `flow_*` events. */
1217
+ flow: EventStreamBadgePairTokens;
1218
+ /** `step_*` events. */
1219
+ step: EventStreamBadgePairTokens;
1220
+ /** `reasoning_*` events. */
1221
+ reasoning: EventStreamBadgePairTokens;
1222
+ /** `tool_*` events. */
1223
+ tool: EventStreamBadgePairTokens;
1224
+ /** `agent_*` events. */
1225
+ agent: EventStreamBadgePairTokens;
1226
+ /** `error` / `execution_error` events. */
1227
+ error: EventStreamBadgePairTokens;
1228
+ /** Any event type no other family matches. */
1229
+ default: EventStreamBadgePairTokens;
1230
+ };
1231
+ }
1196
1232
  /** Scrollbar appearance shared by every scroller in the widget. */
1197
1233
  interface ScrollbarTokens {
1198
1234
  /** Thumb color. @default semantic.colors.border */
@@ -1541,6 +1577,8 @@ interface ComponentTokens {
1541
1577
  attachment: AttachmentTokens;
1542
1578
  toolBubble: ToolBubbleTokens;
1543
1579
  reasoningBubble: ReasoningBubbleTokens;
1580
+ /** Event-stream inspector badge chips. */
1581
+ eventStream?: EventStreamTokens;
1544
1582
  composer: ComposerChromeTokens;
1545
1583
  /** Shared motion timing for composer chrome animation. */
1546
1584
  motion?: MotionTokens;
@@ -2921,6 +2959,14 @@ type ClientToolDefinition = {
2921
2959
  readOnlyHint?: boolean;
2922
2960
  untrustedContentHint?: boolean;
2923
2961
  };
2962
+ /**
2963
+ * Hoisted copy of `annotations.untrustedContentHint`. This is the field the
2964
+ * server actually acts on (`InlineClientToolSchema`): it spotlights the
2965
+ * tool's output before the model reads it, so instructions embedded in
2966
+ * page-provided content (reviews, comments, emails) are not treated as
2967
+ * instructions. `annotations` itself is trace/dashboard metadata only.
2968
+ */
2969
+ untrustedContentHint?: boolean;
2924
2970
  };
2925
2971
  /**
2926
2972
  * Information passed to the confirm-bubble handler before a `webmcp:*` tool
@@ -4112,6 +4158,16 @@ type AgentWidgetToolCallDisplayFeature = {
4112
4158
  * @default "stack"
4113
4159
  */
4114
4160
  groupedMode?: "stack" | "summary";
4161
+ /**
4162
+ * What happens to a tool call row once it completes.
4163
+ *
4164
+ * - `"kept"` (default): the finished row stays in the transcript.
4165
+ * - `"removed"`: no row is rendered at all, so the transcript gap closes with
4166
+ * it. The tool call stays on the message and in `getMessages()`.
4167
+ *
4168
+ * @default "kept"
4169
+ */
4170
+ completedVisibility?: AgentWidgetToolCallCompletedVisibility;
4115
4171
  /**
4116
4172
  * When false, tool call bubbles show only the collapsed summary with no
4117
4173
  * expand/collapse toggle. Users see tool awareness without full details.
@@ -4129,6 +4185,8 @@ type AgentWidgetToolCallDisplayFeature = {
4129
4185
  */
4130
4186
  loadingAnimation?: AgentWidgetToolCallLoadingAnimation;
4131
4187
  };
4188
+ /** See `features.toolCallDisplay.completedVisibility`. */
4189
+ type AgentWidgetToolCallCompletedVisibility = "kept" | "removed";
4132
4190
  type AgentWidgetReasoningDisplayFeature = {
4133
4191
  /**
4134
4192
  * When true, active collapsed reasoning rows can render a lightweight preview block.
@@ -4174,13 +4232,26 @@ type AgentWidgetReasoningDisplayFeature = {
4174
4232
  * - `"kept"` (default): the finished row stays in the transcript.
4175
4233
  * - `"removed"`: no row is rendered at all, so the transcript gap closes with
4176
4234
  * it. The reasoning text stays on the message and in `getMessages()`.
4235
+ * - `"removed-when-short"`: behaves as `"removed"` when the completed trace
4236
+ * is short (see `shortThinkThreshold`), and as `"kept"` otherwise.
4177
4237
  *
4178
4238
  * @default "kept"
4179
4239
  */
4180
4240
  completedVisibility?: AgentWidgetReasoningCompletedVisibility;
4241
+ /**
4242
+ * Thresholds used by `completedVisibility: "removed-when-short"` to decide
4243
+ * whether a completed trace counts as short. Duration is checked first when
4244
+ * the reasoning reports one; the character count is a fallback for traces
4245
+ * with no reported duration.
4246
+ * @default { durationMs: 15000, chars: 1200 }
4247
+ */
4248
+ shortThinkThreshold?: {
4249
+ durationMs?: number;
4250
+ chars?: number;
4251
+ };
4181
4252
  };
4182
4253
  /** See `features.reasoningDisplay.completedVisibility`. */
4183
- type AgentWidgetReasoningCompletedVisibility = "kept" | "removed";
4254
+ type AgentWidgetReasoningCompletedVisibility = "kept" | "removed" | "removed-when-short";
4184
4255
  /**
4185
4256
  * Reveal animation applied to assistant message text while it is streaming.
4186
4257
  *
@@ -621,7 +621,11 @@ interface ColorPalette {
621
621
  warning: ColorShade;
622
622
  error: ColorShade;
623
623
  info: ColorShade;
624
- [key: string]: ColorShade;
624
+ /** Event-stream tool badge family. */
625
+ purple?: ColorShade;
626
+ /** Event-stream agent badge family. */
627
+ teal?: ColorShade;
628
+ [key: string]: ColorShade | undefined;
625
629
  }
626
630
  interface SpacingScale {
627
631
  0: string;
@@ -1193,6 +1197,38 @@ interface ToolBubbleTokens {
1193
1197
  interface ReasoningBubbleTokens {
1194
1198
  shadow: string;
1195
1199
  }
1200
+ /** One event-stream badge chip: fill + text pair. The chip border derives
1201
+ * from `foreground` at ~31% alpha. */
1202
+ interface EventStreamBadgePairTokens {
1203
+ background: TokenReference<'color'>;
1204
+ foreground: TokenReference<'color'>;
1205
+ }
1206
+ /**
1207
+ * Event-stream inspector badge chips (`features.eventStream`), one pair per
1208
+ * unified event family. Materialized into every theme and emitted as
1209
+ * `--persona-event-badge-<family>-{bg,fg}`, with scheme-appropriate defaults:
1210
+ * light themes pair a 100-tone fill with a 700-tone text, the built-in dark
1211
+ * layer flips to a 900-tone fill with a 300-tone text. `badge.default` colors
1212
+ * event types no family matches.
1213
+ */
1214
+ interface EventStreamTokens {
1215
+ badge: {
1216
+ /** `flow_*` events. */
1217
+ flow: EventStreamBadgePairTokens;
1218
+ /** `step_*` events. */
1219
+ step: EventStreamBadgePairTokens;
1220
+ /** `reasoning_*` events. */
1221
+ reasoning: EventStreamBadgePairTokens;
1222
+ /** `tool_*` events. */
1223
+ tool: EventStreamBadgePairTokens;
1224
+ /** `agent_*` events. */
1225
+ agent: EventStreamBadgePairTokens;
1226
+ /** `error` / `execution_error` events. */
1227
+ error: EventStreamBadgePairTokens;
1228
+ /** Any event type no other family matches. */
1229
+ default: EventStreamBadgePairTokens;
1230
+ };
1231
+ }
1196
1232
  /** Scrollbar appearance shared by every scroller in the widget. */
1197
1233
  interface ScrollbarTokens {
1198
1234
  /** Thumb color. @default semantic.colors.border */
@@ -1541,6 +1577,8 @@ interface ComponentTokens {
1541
1577
  attachment: AttachmentTokens;
1542
1578
  toolBubble: ToolBubbleTokens;
1543
1579
  reasoningBubble: ReasoningBubbleTokens;
1580
+ /** Event-stream inspector badge chips. */
1581
+ eventStream?: EventStreamTokens;
1544
1582
  composer: ComposerChromeTokens;
1545
1583
  /** Shared motion timing for composer chrome animation. */
1546
1584
  motion?: MotionTokens;
@@ -2921,6 +2959,14 @@ type ClientToolDefinition = {
2921
2959
  readOnlyHint?: boolean;
2922
2960
  untrustedContentHint?: boolean;
2923
2961
  };
2962
+ /**
2963
+ * Hoisted copy of `annotations.untrustedContentHint`. This is the field the
2964
+ * server actually acts on (`InlineClientToolSchema`): it spotlights the
2965
+ * tool's output before the model reads it, so instructions embedded in
2966
+ * page-provided content (reviews, comments, emails) are not treated as
2967
+ * instructions. `annotations` itself is trace/dashboard metadata only.
2968
+ */
2969
+ untrustedContentHint?: boolean;
2924
2970
  };
2925
2971
  /**
2926
2972
  * Information passed to the confirm-bubble handler before a `webmcp:*` tool
@@ -4112,6 +4158,16 @@ type AgentWidgetToolCallDisplayFeature = {
4112
4158
  * @default "stack"
4113
4159
  */
4114
4160
  groupedMode?: "stack" | "summary";
4161
+ /**
4162
+ * What happens to a tool call row once it completes.
4163
+ *
4164
+ * - `"kept"` (default): the finished row stays in the transcript.
4165
+ * - `"removed"`: no row is rendered at all, so the transcript gap closes with
4166
+ * it. The tool call stays on the message and in `getMessages()`.
4167
+ *
4168
+ * @default "kept"
4169
+ */
4170
+ completedVisibility?: AgentWidgetToolCallCompletedVisibility;
4115
4171
  /**
4116
4172
  * When false, tool call bubbles show only the collapsed summary with no
4117
4173
  * expand/collapse toggle. Users see tool awareness without full details.
@@ -4129,6 +4185,8 @@ type AgentWidgetToolCallDisplayFeature = {
4129
4185
  */
4130
4186
  loadingAnimation?: AgentWidgetToolCallLoadingAnimation;
4131
4187
  };
4188
+ /** See `features.toolCallDisplay.completedVisibility`. */
4189
+ type AgentWidgetToolCallCompletedVisibility = "kept" | "removed";
4132
4190
  type AgentWidgetReasoningDisplayFeature = {
4133
4191
  /**
4134
4192
  * When true, active collapsed reasoning rows can render a lightweight preview block.
@@ -4174,13 +4232,26 @@ type AgentWidgetReasoningDisplayFeature = {
4174
4232
  * - `"kept"` (default): the finished row stays in the transcript.
4175
4233
  * - `"removed"`: no row is rendered at all, so the transcript gap closes with
4176
4234
  * it. The reasoning text stays on the message and in `getMessages()`.
4235
+ * - `"removed-when-short"`: behaves as `"removed"` when the completed trace
4236
+ * is short (see `shortThinkThreshold`), and as `"kept"` otherwise.
4177
4237
  *
4178
4238
  * @default "kept"
4179
4239
  */
4180
4240
  completedVisibility?: AgentWidgetReasoningCompletedVisibility;
4241
+ /**
4242
+ * Thresholds used by `completedVisibility: "removed-when-short"` to decide
4243
+ * whether a completed trace counts as short. Duration is checked first when
4244
+ * the reasoning reports one; the character count is a fallback for traces
4245
+ * with no reported duration.
4246
+ * @default { durationMs: 15000, chars: 1200 }
4247
+ */
4248
+ shortThinkThreshold?: {
4249
+ durationMs?: number;
4250
+ chars?: number;
4251
+ };
4181
4252
  };
4182
4253
  /** See `features.reasoningDisplay.completedVisibility`. */
4183
- type AgentWidgetReasoningCompletedVisibility = "kept" | "removed";
4254
+ type AgentWidgetReasoningCompletedVisibility = "kept" | "removed" | "removed-when-short";
4184
4255
  /**
4185
4256
  * Reveal animation applied to assistant message text while it is streaming.
4186
4257
  *