markstream-vue 1.0.6-beta.2 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index8.js CHANGED
@@ -1 +1 @@
1
- var e=Object.defineProperty,n=Object.getOwnPropertySymbols,t=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable,o=(n,t,l)=>t in n?e(n,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):n[t]=l,a=(e,a)=>{for(var r in a||(a={}))t.call(a,r)&&o(e,r,a[r]);if(n)for(var r of n(a))l.call(a,r)&&o(e,r,a[r]);return e},r=(e,n,t)=>new Promise((l,o)=>{var a=e=>{try{i(t.next(e))}catch(n){o(n)}},r=e=>{try{i(t.throw(e))}catch(n){o(n)}},i=e=>e.done?l(e.value):Promise.resolve(e.value).then(a,r);i((t=t.apply(e,n)).next())});import{defineComponent as i,inject as u,ref as s,shallowRef as d,watch as c,computed as v,onMounted as f,onBeforeUnmount as h,nextTick as p,openBlock as g,createElementBlock as m,normalizeClass as y,normalizeStyle as w,createVNode as k,createSlots as b,withCtx as x,createElementVNode as B,createCommentVNode as C,renderSlot as S,toDisplayString as T}from"vue";import{getHighlightRegistrationKey as M,getRuntimeShikiRegistrationConfig as H,normalizeShikiLanguage as O,registerHighlightOnce as _}from"markstream-core";import{al as F,M as L,an as P,ao as $,b as z,a6 as N,ai as D,a8 as j,G as E}from"./exports.js";import{d as I,l as W,n as R}from"./index2.js";import{r as U,_ as V}from"./CodeBlockShell.vue_vue_type_style_index_0_lang.js";const q=["data-markstream-enhanced","data-markstream-enhancement-state","data-markstream-pending"],G={class:"code-header-main"},A=["innerHTML"],J={class:"code-header-copy"},K={class:"code-header-title"},Q=["innerHTML"],X=/* @__PURE__ */E(/* @__PURE__ */i({__name:"MarkdownCodeBlockNode",props:{node:{},loading:{type:Boolean,default:!0},stream:{type:Boolean,default:!0},darkTheme:{default:"vitesse-dark"},lightTheme:{default:"vitesse-light"},isDark:{type:Boolean,default:!1},isShowPreview:{type:Boolean,default:!0},enableFontSizeControl:{type:Boolean,default:!0},minWidth:{default:void 0},maxWidth:{default:void 0},showPreviewButton:{type:Boolean,default:!0},showCollapseButton:{type:Boolean,default:!0},showFontSizeButtons:{type:Boolean,default:!0},showTooltips:{type:Boolean},autoScrollOnUpdate:{type:Boolean,default:!0},autoScrollInitial:{type:Boolean,default:!0},estimatedHeightPx:{},estimatedContentHeightPx:{},themes:{},langs:{},showHeader:{type:Boolean,default:!0},showCopyButton:{type:Boolean,default:!0},showExpandButton:{type:Boolean,default:!0}},emits:["previewCode","copy"],setup(e,{emit:n}){const t=e,l=n,{t:o}=F(),i=u(L,void 0),E=s(mn(t.node.language,t.node.code,yn())),X=s(!1),Y=s(!1),Z=s(!1),ee=s(null),ne=s(null),te=s(null),le=s(""),oe=s(!1),ae=s(!1);let re,ie="",ue=0,se=null;const de=P(),ce=$(),ve=d(null),fe=s("undefined"==typeof window);"undefined"!=typeof window&&c([()=>ee.value,()=>null==ce?void 0:ce.value.heavyBlockMargin,()=>null==ce?void 0:ce.value.rootMargin],([e],n,t)=>{var l,o,a;if(null==(l=ve.value)||l.destroy(),ve.value=null,!e)return void(fe.value=!1);let r=!0;const i=null!=(a=null!=(o=null==ce?void 0:ce.value.heavyBlockMargin)?o:null==ce?void 0:ce.value.rootMargin)?a:z,u=de(e,{rootMargin:i});ve.value=u,fe.value=fe.value||u.isVisible.value,u.whenVisible.then(()=>{r&&ve.value===u&&(fe.value=!0)}).catch(()=>{}),t(()=>{r=!1,u.destroy(),ve.value===u&&(ve.value=null)})},{immediate:!0});const he=s(!1!==t.autoScrollInitial),pe=s(0),ge=v(()=>!1!==t.autoScrollOnUpdate),me=s(14),ye=s(me.value),we=v(()=>{const e=me.value,n=ye.value;return"number"==typeof e&&Number.isFinite(e)&&e>0&&"number"==typeof n&&Number.isFinite(n)&&n>0}),ke=v(()=>{const e=E.value.trim().toLowerCase();return I[e]||e.charAt(0).toUpperCase()+e.slice(1)}),be=v(()=>{W.value;const e=E.value.trim().toLowerCase();return U(e.split(":")[0],i)}),xe=v(()=>{const e=E.value.trim().toLowerCase();return t.isShowPreview&&("html"===e||"svg"===e)}),Be=v(()=>{const e={},n=e=>{if(null!=e)return"number"==typeof e?`${e}px`:String(e)},l=n(t.minWidth),o=n(t.maxWidth);return l&&(e.minWidth=l),o&&(e.maxWidth=o),e}),Ce=v(()=>{const e=t.estimatedContentHeightPx;return"number"==typeof e&&Number.isFinite(e)&&e>0?Math.round(e):null}),Se=v(()=>null!=Ce.value&&!oe.value),Te=v(()=>a({fontSize:`${ye.value}px`},Se.value?{minHeight:`${Ce.value}px`}:{})),Me=v(()=>!1!==t.showTooltips);function He(e,n){const t=String(null!=e?e:"");return n?t:t.replace(/\r\n$|\n$|\r$/,"")}const Oe=v(()=>He(t.node.code,!0===t.node.loading));function _e(){return t.isDark?t.darkTheme:t.lightTheme}function Fe(e,n={}){if(se=null,De(),ae.value=!0===n.terminal,!e)return Pe(),ie="",le.value="",oe.value=!1,void(ae.value=!1);var t;le.value=`<pre class="shiki shiki-fallback"><code>${t=e,t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}</code></pre>`,oe.value=!1}function Le(){le.value="",oe.value=!0,ae.value=!1}function Pe(){te.value&&(te.value.innerHTML="")}function $e(){var e;const n=te.value;return!!n&&(n.childNodes.length>0||Boolean(null==(e=n.textContent)?void 0:e.trim().length))}function ze(e,n,t){return`${null!=e?e:""}\0${n}\0${t}`}function Ne(e){ie=e,Le()}function De(e){null==e||e.disconnect(),e&&re!==e||(re=void 0)}function je(e,n){De();const t=te.value;if(!t||"undefined"==typeof MutationObserver)return;se=null;const l=new MutationObserver(()=>{ue+=1;const t=se;if(t)return cn(e)?void(ue!==n&&$e()&&(se=null,De(l),Ne(t))):(se=null,void De(l))});re=l,l.observe(t,{childList:!0,subtree:!0,characterData:!0,attributes:!0})}function Ee(e,n,t,l){return r(this,null,function*(){var o;if(se=t,yield p(),!cn(e))return;const a=$e(),r=ue!==n,i=void 0!==l&&(null==(o=te.value)?void 0:o.innerHTML)!==l;a&&(!ie||r||i||ie===t)&&(se=null,De(),Ne(t))})}let Ie,We,Re,Ue=null,Ve=null,qe="",Ge=0,Ae=0,Je=!1;const Ke=/* @__PURE__ */new Set,Qe=/* @__PURE__ */new Set,Xe=/* @__PURE__ */new Set,Ye=j();let Ze=!1,en=null,nn=!1,tn=!1;function ln(e,n,t){const l=gn(wn(e,n,t));return"plaintext"!==l&&Qe.has(l)?"plaintext":l}function on(e,n){return ie===function(e,n){return ze(e,ln(t.node.language,n,yn()),n)}(e,n)}function an(e){const n=ie.indexOf("\0"),l=n>=0?ie.indexOf("\0",n+1):-1;return!(l<0)&&ie.slice(n+1,l)===ln(t.node.language,e,yn())&&ie.slice(l+1)===e}function rn(e){var n,t;return Boolean(null==(t=null==(n=te.value)?void 0:n.textContent)?void 0:t.includes(e))}const un=v(()=>{if(!Oe.value)return"ready";const e=pn(t.themes,t.langs);return oe.value&&!le.value&&(on(e.key,Oe.value)||an(Oe.value)||rn(Oe.value))?"ready":ae.value||nn?"fallback":"pending"}),sn=v(()=>"pending"===un.value);function dn(){return Ae+=1,Ae}function cn(e=Ae){return!Je&&e===Ae}function vn(){const e=Ie;Ie=void 0,Ue=null,ie="",se=null,Qe.clear();try{null==e||e.dispose()}catch(n){Ye&&console.warn("[MarkdownCodeBlockNode] Failed to dispose Shiki renderer.",n)}finally{Pe(),oe.value=!1,ae.value=!1}}const fn=v(()=>M(t.themes,t.langs));function hn(){return{hasRegisterHighlight:Boolean(Re),hasCreateRenderer:Boolean(We)}}function pn(e,n){var t;const l=hn(),o=H(e,n,l);return(null==(t=o.rendererOptions.langs)?void 0:t.length)&&Xe.has(o.key)?H(e,void 0,l):o}function gn(e){return O(e)||"plaintext"}function mn(e,n,t){return t&&!String(null!=n?n:"")?"plain":R(String(null!=e?e:""))}function yn(){return"boolean"==typeof t.node.loading?t.node.loading:!0===t.loading}function wn(e,n,t){return t&&!String(null!=n?n:"")?"plaintext":String(null!=e?e:"")}function kn(e,n){return r(this,arguments,function*(e,n,t=Ae){if(!Ie||!cn(t))return;const l=gn(wn(n,e,yn())),o=n=>r(null,null,function*(){if(Ie&&cn(t)){"plaintext"!==l&&(n&&Qe.add(l),n&&Ye&&!Ke.has(l)&&(Ke.add(l),console.warn(`[MarkdownCodeBlockNode] Failed to render language "${l}", retrying as plaintext.`,n)));try{return yield Ie.updateCode(e,"plaintext"),cn(t)?"plaintext":void 0}catch(o){if(!cn(t))return;return void(Ye&&console.warn("[MarkdownCodeBlockNode] Failed to render code block even as plaintext.",o))}}});if("plaintext"!==l&&Qe.has(l))return o();try{return yield Ie.updateCode(e,l),cn(t)?l:void 0}catch(a){if(!cn(t))return;return"plaintext"!==l?o(a):void(Ye&&console.warn("[MarkdownCodeBlockNode] Failed to render code block even as plaintext.",a))}})}function bn(e,n){return r(this,null,function*(){if(!Re)return"ready";if(qe!==n)return"stale";if(Ve===n)return"ready";const t=++Ge;try{yield _(Re,e,n)}catch(l){return t!==Ge||qe!==n?"stale":"failed"}return t!==Ge||qe!==n?"stale":(Ve=n,"ready")})}function xn(e,n){return r(this,null,function*(){const t=yield bn(e,n);return"failed"!==t?t:qe!==n?"stale":bn(e,n)})}function Bn(){return r(this,arguments,function*(e=dn()){try{yield function(e){return r(this,null,function*(){var n,l;if(!cn(e))return;const o=Oe.value;if(!fe.value)return void Fe(o);if(yield function(){return r(this,null,function*(){if(!We&&!nn)return en||(en=r(null,null,function*(){try{const e=yield import("stream-markdown"),n=e.createShikiStreamRenderer;if("function"!=typeof n)throw new TypeError("stream-markdown.createShikiStreamRenderer is not available");We=n;const t=e.registerHighlight;Re="function"==typeof t?t:void 0,nn=!1,tn=!1}catch(e){nn=!0,Ye&&!tn&&(tn=!0,console.warn("[MarkdownCodeBlockNode] stream-markdown not available:",e))}finally{en=null}}),en)})}(),!cn(e))return;if(nn)return void Fe(o,{terminal:!0});if(!ne.value||!te.value)return void Fe(o);let i=pn(t.themes,t.langs);i.ignoredLangs&&Ye&&!Ze&&(Ze=!0,console.warn("[MarkdownCodeBlockNode] `langs` requires stream-markdown >=0.0.15 with registerHighlight(); ignoring `langs` and using stream-markdown default language preload."));let u=i.rendererOptions,s=i.key;qe=s;let d=Boolean(Ie&&Ue!==s);d&&Fe(o);let c=yield xn(i.registerOptions,s);if("failed"===c&&(null==(n=u.langs)?void 0:n.length)&&(Xe.add(s),Ye&&console.warn("[MarkdownCodeBlockNode] Failed to register configured Shiki languages; retrying without `langs`.",{langs:u.langs}),i=H(t.themes,void 0,hn()),u=i.rendererOptions,s=i.key,qe=s,c=yield xn(i.registerOptions,s)),!cn(e)||"stale"===c)return;if(d=Boolean(Ie&&Ue!==s),"failed"===c)return void(d&&Ie&&$e()&&(on(s,o)||an(o)||rn(o))?Le():Fe(o,{terminal:!0}));if(d&&vn(),!Ie&&We&&(Ie=We(te.value,a({theme:_e()},u)),Ue=s,oe.value=!0),!Ie)return void Fe(o,{terminal:!0});if(!1===t.stream&&t.loading)return void Fe(o);Fe(o);const v=ue,f=null==(l=te.value)?void 0:l.innerHTML;je(e,v);const h=yield kn(o,t.node.language,e);cn(e)&&(h?yield Ee(e,v,ze(s,h,o),f):(se=null,De(),Fe(o,{terminal:!0})))})}(e)}catch(n){if(!cn(e))return;Ye&&console.warn("[MarkdownCodeBlockNode] Failed to initialize Shiki renderer.",n),Fe(Oe.value,{terminal:!0})}})}function Cn(){const e=ne.value;if(!e||Y.value||!ge.value)return;const n=e.scrollTop;n<pe.value?he.value=!1:function(e,n=50){return e.scrollHeight-e.scrollTop-e.clientHeight<=n}(e)&&(he.value=!0),pe.value=n}function Sn(){return r(this,null,function*(){try{"undefined"!=typeof navigator&&navigator.clipboard&&"function"==typeof navigator.clipboard.writeText&&(yield navigator.clipboard.writeText(t.node.code)),X.value=!0,l("copy",t.node.code),setTimeout(()=>{X.value=!1},1e3)}catch(e){console.error("Copy failed:",e)}})}function Tn(e){if(Y.value=!Y.value,e&&Me.value){const n=function(e){const n=e.currentTarget||e.target;return!n||n.disabled?null:n}(e);if(n){const e=Y.value?o("common.collapse")||"Collapse":o("common.expand")||"Expand";D(n,e,"top",!1,void 0,t.isDark)}}const n=ne.value;n&&(Y.value?(n.style.maxHeight="none",n.style["overflow-y"]="visible",n.style["overflow-x"]="auto"):(n.style.maxHeight="",n.style.overflow="auto",ge.value&&(he.value=!0,p(()=>{n.scrollHeight>n.clientHeight&&(n.scrollTop=n.scrollHeight)}))))}function Mn(){Z.value=!Z.value}function Hn(){const e=Math.min(36,ye.value+1);ye.value=e}function On(){const e=Math.max(10,ye.value-1);ye.value=e}function _n(){ye.value=me.value}function Fn(){if(!xe.value)return;const e=R(E.value||t.node.language).toLowerCase(),n="html"===e?"HTML Preview":"SVG Preview";l("previewCode",{type:"html"===e?"text/html":"image/svg+xml",content:t.node.code,title:n})}return Fe(Oe.value),f(()=>{fe.value?Bn():Fe(Oe.value)}),h(()=>{var e;Je=!0,Ae+=1,null==(e=ve.value)||e.destroy(),ve.value=null,null==re||re.disconnect(),re=void 0,se=null,vn()}),c(fn,()=>r(null,null,function*(){fe.value&&(yield Bn())})),c(()=>t.loading,e=>{e||(fe.value?Bn():Fe(Oe.value))}),c(()=>fe.value,e=>{e&&Bn()}),c(Me,e=>{e||N()}),c(()=>t.autoScrollInitial,e=>{he.value=!1!==e}),c(()=>[t.node.code,t.node.language,t.node.loading,t.loading],e=>r(null,[e],function*([e,n,l,o]){var a;const r=dn(),i="boolean"==typeof l?l:!0===o,u=He(e,i),s=mn(n,e,i);if(s!==E.value&&(E.value=s),!fe.value)return void Fe(u);if(!ne.value||!te.value)return void Fe(u);if(!e)return void Fe("");if(!Ie||function(){const e=pn(t.themes,t.langs);return Boolean(Ie&&Ue!==e.key)}())return Fe(u),void(yield Bn(r));if(!cn(r))return;if(!Ie)return;if(!1===t.stream&&t.loading)return;Fe(u);const d=ue,c=null==(a=te.value)?void 0:a.innerHTML;je(r,d);const v=yield kn(u,n,r);cn(r)&&(v?yield Ee(r,d,ze(null!=Ue?Ue:fn.value,v,u),c):(se=null,De(),Fe(u,{terminal:!0})))})),c(()=>[t.darkTheme,t.lightTheme,t.isDark],()=>r(null,null,function*(){fe.value&&ne.value&&te.value&&(Ie||(yield Bn()),null==Ie||Ie.setTheme(_e()))})),c(()=>t.node.code,()=>r(null,null,function*(){if(Y.value||!ge.value||!he.value)return;yield p();const e=ne.value;e&&e.scrollHeight>e.clientHeight&&(e.scrollTop=e.scrollHeight)})),(n,l)=>(g(),m("div",{ref_key:"container",ref:ee,style:w(Be.value),class:y(["code-block-container rounded-lg border overflow-hidden",{dark:t.isDark}]),"data-markstream-code-block":"1","data-markstream-enhanced":"ready"===un.value?"true":"false","data-markstream-enhancement-state":un.value,"data-markstream-pending":sn.value?"true":void 0},[k(V,{"show-header":t.showHeader,"show-collapse-button":t.showCollapseButton,"show-font-size-buttons":t.showFontSizeButtons,"enable-font-size-control":t.enableFontSizeControl,"show-copy-button":t.showCopyButton,"show-expand-button":t.showExpandButton,"show-preview-button":t.showPreviewButton,"show-tooltips":t.showTooltips,"is-dark":t.isDark,loading:t.loading,stream:t.stream,"is-collapsed":Z.value,"is-expanded":Y.value,"copy-text":X.value,"is-previewable":xe.value,"code-font-size":ye.value,"code-font-min":10,"code-font-max":36,"default-code-font-size":me.value,"font-baseline-ready":we.value,onToggleCollapse:Mn,onDecreaseFont:On,onResetFont:_n,onIncreaseFont:Hn,onCopy:Sn,onToggleExpand:Tn,onPreview:Fn},b({"header-left":x(()=>[S(n.$slots,"header-left",{},()=>[B("div",G,[B("span",{class:"icon-slot h-4 w-4 flex-shrink-0",innerHTML:be.value},null,8,A),B("div",J,[B("div",K,T(ke.value),1)])])],!0)]),loading:x(()=>[S(n.$slots,"loading",{loading:e.loading,stream:e.stream},()=>[l[0]||(l[0]=B("div",{class:"loading-skeleton"},[B("div",{class:"skeleton-line"}),B("div",{class:"skeleton-line"}),B("div",{class:"skeleton-line short"})],-1))],!0)]),default:x(()=>[B("div",{ref_key:"codeBlockContent",ref:ne,class:"code-block-content",style:w(Te.value),onScroll:Cn},[B("div",{ref_key:"rendererTarget",ref:te,class:"code-block-render"},null,512),!oe.value&&le.value?(g(),m("div",{key:0,class:"code-fallback-plain",innerHTML:le.value},null,8,Q)):C("",!0)],36)]),_:2},[n.$slots["header-right"]?{name:"header-right",fn:x(()=>[S(n.$slots,"header-right",{},void 0,!0)]),key:"0"}:void 0]),1032,["show-header","show-collapse-button","show-font-size-buttons","enable-font-size-control","show-copy-button","show-expand-button","show-preview-button","show-tooltips","is-dark","loading","stream","is-collapsed","is-expanded","copy-text","is-previewable","code-font-size","default-code-font-size","font-baseline-ready"])],14,q))}}),[["__scopeId","data-v-bc8cd75d"]]);X.install=e=>{e.component(X.__name,X)};export{X as default};
1
+ var e=Object.defineProperty,t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,l=(t,n,o)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[n]=o,r=(e,r)=>{for(var a in r||(r={}))n.call(r,a)&&l(e,a,r[a]);if(t)for(var a of t(r))o.call(r,a)&&l(e,a,r[a]);return e},a=(e,t,n)=>new Promise((o,l)=>{var r=e=>{try{i(n.next(e))}catch(t){l(t)}},a=e=>{try{i(n.throw(e))}catch(t){l(t)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(r,a);i((n=n.apply(e,t)).next())});import{defineComponent as i,useAttrs as u,inject as s,ref as d,computed as c,watch as v,nextTick as m,onMounted as p,onBeforeUnmount as f,openBlock as g,createElementBlock as h,normalizeClass as y,createElementVNode as w,unref as b,toDisplayString as k,createCommentVNode as x,normalizeStyle as B,withDirectives as D,vShow as M}from"vue";import{ak as C,am as E,an as T,aj as A,ab as j,ag as O,a5 as I,Y as H,z as F}from"./exports.js";import{M as S}from"./index2.js";const L=["data-markstream-mode","data-markstream-pending"],N={key:0,class:"d2-block-header flex justify-between items-center border-b"},P={class:"d2-header-actions flex items-center"},R={key:0,class:"d2-mode-toggle flex items-center gap-0.5"},_=["aria-label"],Y={key:0,xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",role:"img",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},U={key:1,xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",role:"img",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},V=["aria-label"],X=["aria-pressed"],q={key:0,class:"d2-source"},z={class:"d2-code"},$={key:0,class:"d2-error mt-2 text-xs"},G={key:1},J={key:0,class:"d2-source"},K={class:"d2-code"},Q={key:0,class:"d2-error mt-2 text-xs"},W=["innerHTML"],Z={key:0,class:"d2-error px-4 pb-3 text-xs"},ee=/* @__PURE__ */F(/* @__PURE__ */i({__name:"D2BlockNode",props:{node:{},maxHeight:{default:void 0},loading:{type:Boolean,default:!0},isDark:{type:Boolean},progressiveRender:{type:Boolean,default:!0},progressiveIntervalMs:{default:700},themeId:{},darkThemeId:{},showHeader:{type:Boolean,default:!0},showModeToggle:{type:Boolean,default:!0},showCopyButton:{type:Boolean,default:!0},showExportButton:{type:Boolean,default:!0},showCollapseButton:{type:Boolean,default:!0}},setup(e){const t=e,n=u(),o=s(S,null),{t:l}=C(),i=d(!1),F=d(!1),ee=d(!1),te=d(!1),ne=d(null),oe=d(!1),le=d(""),re=d(""),ae=d(0),ie=d(""),ue=d(""),se=d(null),de=d(null),ce=d(null),ve=E(),me=T(),pe=A(),fe=d(null),ge="undefined"!=typeof window,he=d(!1),ye=d("undefined"==typeof window||!pe.value),we=c(()=>{var e;return null!=(e=t.node.code)?e:""}),be=c(()=>j(t,n)),ke=c(()=>{var e,n;return[t.isDark?"dark":"light",null!=(e=t.themeId)?e:"auto",null!=(n=t.darkThemeId)?n:"auto",we.value].join(":")}),xe=c(()=>!!le.value&&re.value===ke.value),Be=c(()=>{if(!he.value||!we.value||ee.value)return!1;const e=ke.value;return!!oe.value||ie.value!==e&&(!ne.value||ue.value!==e)}),De=c(()=>xe.value||!!le.value&&Be.value),Me=c(()=>ee.value||!te.value||!De.value),Ce=c(()=>{if(Me.value&&de.value)return{minHeight:`${de.value}px`}}),Ee=c(()=>"none"===t.maxHeight?{maxHeight:"none"}:null!=t.maxHeight?{maxHeight:"number"==typeof t.maxHeight?`${t.maxHeight}px`:String(t.maxHeight)}:void 0);let Te=null,Ae=!1,je=!1,Oe=0,Ie=null,He=!1,Fe=null,Se="";"undefined"!=typeof window&&v([()=>ce.value,pe],([e,t])=>{var n,o,l;if(null==(n=fe.value)||n.destroy(),fe.value=null,!t||ye.value)return void(ye.value=!0);if(!e)return void(ye.value=!1);const r=null!=(l=null!=(o=null==me?void 0:me.value.heavyBlockMargin)?o:null==me?void 0:me.value.rootMargin)?l:"160px",a=ve(e,{rootMargin:r,allowIdle:!1});fe.value=a,ye.value=a.isVisible.value,a.whenVisible.then(()=>{ye.value=!0})},{immediate:!0});const Le={N1:"#E5E7EB",N2:"#CBD5E1",N3:"#94A3B8",N4:"#64748B",N5:"#475569",N6:"#334155",N7:"#0B1220",B1:"#60A5FA",B2:"#3B82F6",B3:"#2563EB",B4:"#1D4ED8",B5:"#1E40AF",B6:"#111827",AA2:"#22D3EE",AA4:"#0EA5E9",AA5:"#0284C7",AB4:"#FBBF24",AB5:"#F59E0B"};function Ne(e){return!e||e.disabled}function Pe(e,n,o="top"){if(Ne(e.currentTarget))return;const l=e,r=null!=(null==l?void 0:l.clientX)&&null!=(null==l?void 0:l.clientY)?{x:l.clientX,y:l.clientY}:void 0;O(e.currentTarget,n,o,!1,r,t.isDark)}function Re(){I()}function _e(e){if(Ne(e.currentTarget))return;const n=i.value?l("common.copied")||"Copied":l("common.copy")||"Copy",o=e,r=null!=(null==o?void 0:o.clientX)&&null!=(null==o?void 0:o.clientY)?{x:o.clientX,y:o.clientY}:void 0;O(e.currentTarget,n,"top",!1,r,t.isDark)}function Ye(){return a(this,null,function*(){try{const e=we.value;"undefined"!=typeof navigator&&navigator.clipboard&&"function"==typeof navigator.clipboard.writeText&&(yield navigator.clipboard.writeText(e)),i.value=!0,setTimeout(()=>{i.value=!1},1e3)}catch(e){console.error("Copy failed:",e)}})}function Ue(){F.value=!F.value}function Ve(e){ee.value="source"===e}const Xe=[/javascript:/i,/expression\s*\(/i,/url\s*\(\s*javascript:/i,/@import/i],qe=/^(?:https?:|mailto:|tel:|#|\/|data:image\/(?:png|gif|jpe?g|webp);)/i;function ze(e){if(!e)return"";const t=e.trim();return qe.test(t)?t:""}function $e(){le.value="",re.value=""}function Ge(e){return je||e!==ae.value}function Je(){return a(this,null,function*(){var e,n,l,i,u;if(!ge||je)return;if(!ye.value)return;if(t.loading&&!t.progressiveRender)return;const s=ke.value;if(s===ie.value&&!ne.value&&xe.value)return te.value=!0,void(t.loading&&(ee.value=!1));const d=we.value;if(!d)return $e(),ne.value=null,ie.value="",void(ue.value="");const c=++ae.value;oe.value=!0,ne.value=null,ue.value="",function(){const e=be.value;o&&e&&Se!==e&&(Se&&o.markSettled(Se),Se=e,o.markPending(e))}();try{const o=yield function(){return a(this,null,function*(){if(Te)return Te;const e=yield H();if(je||!e)return null;if("function"==typeof e){const t=new e;return t&&"function"==typeof t.compile?Te=t:"function"==typeof e.compile&&(Te=e),Te}return(null==e?void 0:e.D2)&&"function"==typeof e.D2?(Te=new e.D2,Te):("function"==typeof e.compile&&(Te=e),Te)})}();if(Ge(c))return;if(!o)return te.value=!1,ee.value=!0,$e(),ne.value="D2 is not available.",void(ue.value=s);if("function"!=typeof o.compile||"function"!=typeof o.render)throw new TypeError("D2 instance is missing compile/render methods.");te.value=!0;const v=yield o.compile(d);if(Ge(c))return;const m=null!=(e=null==v?void 0:v.diagram)?e:v,p=null!=(l=null!=(n=null==v?void 0:v.renderOptions)?n:null==v?void 0:v.options)?l:{},f=null!=(i=t.themeId)?i:p.themeID,g=null!=(u=t.darkThemeId)?u:p.darkThemeID,h=r({},p);if(h.themeID=t.isDark&&null!=g?g:f,h.darkThemeID=null,h.darkThemeOverrides=null,t.isDark){const e=p.themeOverrides&&"object"==typeof p.themeOverrides?p.themeOverrides:null;h.themeOverrides=r(r({},Le),e||{})}const y=yield o.render(m,h);if(Ge(c))return;const w=function(e){return e?"string"==typeof e?e:"string"==typeof e.svg?e.svg:"string"==typeof e.data?e.data:"":""}(y);if(!w)throw new Error("D2 render returned empty output.");!function(e,t){const n=function(e){if("undefined"==typeof window||"undefined"==typeof DOMParser)return"";if(!e)return"";const t=e.replace(/["']\s*javascript:/gi,"#").replace(/\bjavascript:/gi,"#").replace(/["']\s*vbscript:/gi,"#").replace(/\bvbscript:/gi,"#").replace(/\bdata:text\/html/gi,"#"),n=(new DOMParser).parseFromString(t,"image/svg+xml").documentElement;if(!n||"svg"!==n.nodeName.toLowerCase())return"";const o=n;return function(e){const t=/* @__PURE__ */new Set(["script"]),n=[e,...Array.from(e.querySelectorAll("*"))];for(const o of n){if(t.has(o.tagName.toLowerCase())){o.remove();continue}const e=Array.from(o.attributes);for(const t of e){const e=t.name;if(/^on/i.test(e))o.removeAttribute(e);else{if("style"===e&&t.value){const n=t.value;if(Xe.some(e=>e.test(n))){o.removeAttribute(e);continue}}if(("href"===e||"xlink:href"===e)&&t.value){const n=ze(t.value);if(!n){o.removeAttribute(e);continue}n!==t.value&&o.setAttribute(e,n)}}}}}(o),o.classList.add("markstream-d2-root-svg"),o.outerHTML}(e);le.value=n||"",re.value=n?t:""}(w,s),ie.value=s,ue.value="",t.loading&&(ee.value=!1),ne.value=null}catch(v){if(Ge(c))return;const e=(null==v?void 0:v.message)?String(v.message):"D2 render failed.";t.loading||(ne.value=e,ue.value=s),ie.value="",e.includes("@terrastruct/d2")&&(te.value=!1,ee.value=!0)}finally{Ge(c)||(oe.value=!1,He?(He=!1,Ke()):function(){const e=Se;o&&e&&(Se="",m(()=>{var t,n;if(!je){const l=null!=(n=null==(t=ce.value)?void 0:t.offsetHeight)?n:0;l>0&&o.reportHeight(e,l)}o.markSettled(e)}))}())}})}function Ke(e=!1){if(Ae)return;if(!ge)return;if(je)return;if(oe.value)return void(He=!0);const n=Math.max(120,Number(t.progressiveIntervalMs)||0),o=Date.now()-Oe;if(!e&&o<n)return He=!0,void(null==Ie&&(Ie=window.setTimeout(()=>{Ie=null,He&&(He=!1,Ke(!0))},Math.max(0,n-o))));Ae=!0;const l=()=>{Ae=!1,Oe=Date.now(),Je()};"undefined"!=typeof window&&"function"==typeof window.requestAnimationFrame?window.requestAnimationFrame(l):setTimeout(l,0)}function Qe(){if(xe.value)try{const e=new Blob([le.value],{type:"image/svg+xml;charset=utf-8"}),t=URL.createObjectURL(e);if("undefined"!=typeof document){const e=document.createElement("a");e.href=t,e.download=`d2-diagram-${Date.now()}.svg`,document.body.appendChild(e),e.click(),document.body.removeChild(e)}URL.revokeObjectURL(t)}catch(e){console.error("Failed to export SVG:",e)}}function We(){const e=se.value;if(!e)return;const t=e.getBoundingClientRect().height;t>0&&(de.value=t)}return v(()=>[t.node.code,t.loading,t.isDark,t.themeId,t.darkThemeId],()=>{Ke()},{immediate:!0}),v(()=>t.loading,(e,t)=>{t&&!e&&Ke(!0)}),v(()=>ye.value,e=>{e&&Ke(!0)}),v(()=>[Me.value,le.value,we.value],()=>{m(()=>{We()})}),p(()=>{he.value=!0,m(()=>{We()}),"undefined"!=typeof ResizeObserver&&(Fe=new ResizeObserver(()=>{We()}),se.value&&Fe.observe(se.value))}),f(()=>{var e;je=!0,ae.value+=1,He=!1,function(){const e=Se;o&&e&&(Se="",o.markSettled(e))}(),ie.value="",null==(e=fe.value)||e.destroy(),fe.value=null,null!=Ie&&(clearTimeout(Ie),Ie=null),null==Fe||Fe.disconnect(),Fe=null}),(e,n)=>(g(),h("div",{ref_key:"viewportTarget",ref:ce,class:y(["d2-block-container rounded-lg border overflow-hidden",{dark:t.isDark}]),"data-markstream-d2":"1","data-markstream-mode":Me.value?"fallback":"preview","data-markstream-pending":Be.value?"true":void 0},[t.showHeader?(g(),h("div",N,[n[16]||(n[16]=w("div",{class:"flex items-center gap-x-2"},[w("span",{class:"d2-label font-medium font-mono"},"D2")],-1)),w("div",P,[t.showModeToggle?(g(),h("div",R,[w("button",{type:"button",class:y(["mode-btn px-2 py-0.5 rounded",ee.value?"":"is-active"]),onClick:n[0]||(n[0]=e=>Ve("preview")),onMouseenter:n[1]||(n[1]=e=>Pe(e,b(l)("common.preview")||"Preview")),onFocus:n[2]||(n[2]=e=>Pe(e,b(l)("common.preview")||"Preview")),onMouseleave:Re,onBlur:Re},k(b(l)("common.preview")||"Preview"),35),w("button",{type:"button",class:y(["mode-btn px-2 py-0.5 rounded",ee.value?"is-active":""]),onClick:n[3]||(n[3]=e=>Ve("source")),onMouseenter:n[4]||(n[4]=e=>Pe(e,b(l)("common.source")||"Source")),onFocus:n[5]||(n[5]=e=>Pe(e,b(l)("common.source")||"Source")),onMouseleave:Re,onBlur:Re},k(b(l)("common.source")||"Source"),35)])):x("",!0),t.showCopyButton?(g(),h("button",{key:1,type:"button",class:"d2-action-btn p-[var(--ms-action-btn-padding)] rounded-md","aria-label":i.value?b(l)("common.copied")||"Copied":b(l)("common.copy")||"Copy",onClick:Ye,onMouseenter:n[6]||(n[6]=e=>_e(e)),onFocus:n[7]||(n[7]=e=>_e(e)),onMouseleave:Re,onBlur:Re},[i.value?(g(),h("svg",U,[...n[13]||(n[13]=[w("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M20 6L9 17l-5-5"},null,-1)])])):(g(),h("svg",Y,[...n[12]||(n[12]=[w("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[w("rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2"}),w("path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"})],-1)])]))],40,_)):x("",!0),t.showExportButton&&xe.value?(g(),h("button",{key:2,type:"button",class:"d2-action-btn p-[var(--ms-action-btn-padding)] rounded-md","aria-label":b(l)("common.export")||"Export",onClick:Qe,onMouseenter:n[8]||(n[8]=e=>Pe(e,b(l)("common.export")||"Export")),onFocus:n[9]||(n[9]=e=>Pe(e,b(l)("common.export")||"Export")),onMouseleave:Re,onBlur:Re},[...n[14]||(n[14]=[w("svg",{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",role:"img",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},[w("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 3v12m0-12l-4 4m4-4l4 4M4 14v4a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-4"})],-1)])],40,V)):x("",!0),t.showCollapseButton?(g(),h("button",{key:3,type:"button",class:"d2-action-btn p-[var(--ms-action-btn-padding)] rounded-md","aria-pressed":F.value,onClick:Ue,onMouseenter:n[10]||(n[10]=e=>Pe(e,F.value?b(l)("common.expand")||"Expand":b(l)("common.collapse")||"Collapse")),onFocus:n[11]||(n[11]=e=>Pe(e,F.value?b(l)("common.expand")||"Expand":b(l)("common.collapse")||"Collapse")),onMouseleave:Re,onBlur:Re},[(g(),h("svg",{style:B({rotate:F.value?"0deg":"90deg"}),xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",role:"img",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},[...n[15]||(n[15]=[w("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m9 18l6-6l-6-6"},null,-1)])],4))],40,X)):x("",!0)])])):x("",!0),D(w("div",{ref_key:"bodyRef",ref:se,class:"d2-block-body",style:B(Ce.value)},[t.loading&&!De.value?(g(),h("div",q,[w("pre",z,[w("code",null,k(we.value),1)]),ne.value?(g(),h("p",$,k(ne.value),1)):x("",!0)])):(g(),h("div",G,[Me.value?(g(),h("div",J,[w("pre",K,[w("code",null,k(we.value),1)]),ne.value?(g(),h("p",Q,k(ne.value),1)):x("",!0)])):(g(),h("div",{key:1,class:"d2-render",style:B(Ee.value)},[w("div",{class:"d2-svg",innerHTML:le.value},null,8,W),ne.value?(g(),h("p",Z,k(ne.value),1)):x("",!0)],4))]))],4),[[M,!F.value]])],10,L))}}),[["__scopeId","data-v-3b434cf5"]]);ee.install=e=>{e.component(ee.__name,ee)};export{ee as default};
package/dist/index9.js CHANGED
@@ -1 +1 @@
1
- var e=Object.defineProperty,t=Object.defineProperties,n=Object.getOwnPropertyDescriptors,r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable,l=(t,n,r)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[n]=r,i=(e,t)=>{for(var n in t||(t={}))o.call(t,n)&&l(e,n,t[n]);if(r)for(var n of r(t))a.call(t,n)&&l(e,n,t[n]);return e},u=(e,r)=>t(e,n(r)),s=(e,t,n)=>l(e,"symbol"!=typeof t?t+"":t,n);import{defineComponent as c,ref as d,reactive as m,provide as f,computed as v,shallowRef as h,watch as g,nextTick as y,onMounted as k,onUpdated as p,onBeforeUnmount as b,openBlock as w,createElementBlock as S,normalizeClass as M,createElementVNode as x,normalizeStyle as B,Fragment as K,renderList as T,renderSlot as F,mergeProps as H,createBlock as q,unref as R,resolveDynamicComponent as N,toDisplayString as C,createCommentVNode as A,createTextVNode as _}from"vue";import{z as P,aa as j,a4 as I,X as z,a3 as O,a2 as $,a1 as L,a5 as E,ab as D,a0 as V,G as W}from"./exports.js";const Y=["data-markstream-item-key","data-markstream-item-kind"],G={key:0,class:"markstream-virtual-timeline__status"},X=/* @__PURE__ */W(/* @__PURE__ */c(u(i({},{name:"MarkstreamVirtualTimeline"}),{__name:"MarkstreamVirtualTimeline",props:{items:{},threadKey:{},layoutRevision:{},getKey:{},getKind:{},getContent:{},getFinal:{},getRevision:{},estimateItemHeight:{},overscan:{default:4},overscanPx:{default:1200},stickToBottom:{type:[Boolean,String],default:"auto"},measurementKey:{},markdownMode:{default:"docs"},markdownCodeRenderer:{},initialThreadState:{},markdownFade:{type:Boolean,default:!1},restoreMaxLoadingMs:{type:[Number,Boolean],default:!1},debug:{type:Boolean}},emits:["height-change","virtual-state-change","range-change","thread-state-change"],setup(e,{expose:t,emit:n}){const r=e,o=n;function a(e){o("thread-state-change",e)}function l(e){return"measured"===e||"final"===e}function c(e){return!0===(null==e?void 0:e.stable)&&function(e){var t,n,r,o;if(!e)return!1;const a=Number(e.nodeCount),l=Number(e.measuredCount),i=Math.max(0,Number(null!=(n=null==(t=e.liveRange)?void 0:t.start)?n:0)),u=Math.min(a,Math.max(i,Number(null!=(o=null==(r=e.liveRange)?void 0:r.end)?o:0))),s=Math.max(0,u-i);return!0===e.final&&"mixed"===e.confidence&&a>0&&l>0&&l<a&&(s<=0||l>=s)}(e)}const W=/* @__PURE__ */new Map;function X(e){var t;!0===r.debug&&W.set(e,(null!=(t=W.get(e))?t:0)+1)}const J=d(null),Q=d(0),U=d(0),Z=d(0),ee=d(!0),te=d(!0),ne=m(/* @__PURE__ */new Map),re=/* @__PURE__ */new Map,oe=/* @__PURE__ */new Map,ae=/* @__PURE__ */new Map,le=/* @__PURE__ */new Map,ie=/* @__PURE__ */new Set,ue=m(/* @__PURE__ */new Map),se=m(/* @__PURE__ */new Map),ce=/* @__PURE__ */new Map,de=/* @__PURE__ */new Map,me=/* @__PURE__ */new Map,fe=/* @__PURE__ */new Map,ve=d(!1),he=d(!0),ge=d(!0);f("markstreamHostScrollManaged",ge);const ye=[0,80,180,360,640];let ke,pe,be=null,we=0,Se=null,Me=[],xe=null,Be=null,Ke=-1,Te=0,Fe=null,He=!1,qe=!1,Re=null,Ne=0,Ce=0,Ae={top:0,bottom:0},_e=!1;const Pe=v(()=>null==r.threadKey?void 0:String(r.threadKey));let je=Pe.value;function Ie(e){return"chat"===e||"minimal"===e||"docs"===e?e:"docs"}const ze=v(()=>Ie(r.markdownMode)),Oe=v(()=>function(e,t=Ie(r.markdownMode)){return"pre"===e||"shiki"===e||"monaco"===e?e:"docs"===t?"monaco":"pre"}(r.markdownCodeRenderer,ze.value)),$e=v(()=>[null==r.measurementKey?"":String(r.measurementKey),Z.value].join(":")),Le=v(()=>`${$e.value}${ze.value}${Oe.value}`);class Ee{constructor(e){s(this,"tree"),s(this,"total"),this.tree=Array.from({length:e.length+1},()=>0),this.total=0,e.forEach((e,t)=>this.add(t,e))}add(e,t){if(Number.isFinite(t)&&0!==t){this.total+=t;for(let n=e+1;n<this.tree.length;n+=n&-n)this.tree[n]+=t}}prefixSum(e){let t=Math.max(0,Math.min(e,this.tree.length-1)),n=0;for(;t>0;)n+=this.tree[t],t-=t&-t;return n}lowerBound(e,t="gte"){const n=this.tree.length-1;if(n<=0)return 0;if(e<=0)return 0;if(e>=this.total)return n-1;let r=0,o=1;for(;o<<1<this.tree.length;)o<<=1;let a=0;for(;o>0;o>>=1){const n=r+o;if(n<this.tree.length){const o=a+this.tree[n];("gt"===t?o<=e:o<e)&&(r=n,a=o)}}return Math.min(r,n-1)}}const De=h([]),Ve=/* @__PURE__ */new Map,We=h(new Ee([])),Ye=d(0);let Ge=[];const Xe=v(()=>(Ye.value,{records:De.value,totalHeight:We.value.total}));function Je(){var e;const t=[],n=[],o=function(){var e;return null!=(e=Pe.value)?e:"timeline"}();Ve.clear();for(let a=0;a<r.items.length;a++){const l=r.items[a],s=ot(l,a),c={item:l,index:a,key:s,kind:I(l,a,r),markdown:j(l,a,r)};let d=kt(c);null==d&&(d=null!=(e=Ge[a])?e:z(l,a,r));const m=u(i({},c),{renderKey:`${o}:${s}`,offset:0,size:d,component:null==l?void 0:l.component});t.push(m),n.push(d),Ve.has(s)||Ve.set(s,m)}De.value=t,We.value=new Ee(n),Ge=[],Ye.value+=1}function Qe(e){return Ye.value,We.value.prefixSum(e.index)}function Ue(e){return u(i({},e),{offset:Qe(e)})}function Ze(e,t){const n=Ve.get(e);if(!n)return;const r=Math.ceil(t),o=r-n.size;0!==o&&(n.size=r,We.value.add(n.index,o),Ye.value+=1)}function et(e,t="gte"){return Ye.value,We.value.lowerBound(e,t)}const tt=v(()=>{var e;return Math.max(0,null!=(e=r.overscan)?e:4)}),nt=v(()=>{var e;const t=Math.max(0,null!=(e=r.overscanPx)?e:1200);return he.value?t:Math.min(t,160)}),rt=v(()=>{var e,t,n;const r=Xe.value.records;if(0===r.length)return{start:0,end:0,records:[],topSpacerHeight:0,bottomSpacerHeight:0};const o=tt.value,a=nt.value,l=Nt(),i=l+Math.max(1,U.value);let u=et(Math.max(0,l-a),"gt"),s=et(Math.min(Xe.value.totalHeight,i+a))+1;u=Math.max(0,u-o),s=Math.min(r.length,Math.max(s+o,u+1));const c=r.slice(u,s).map(Ue),d=c[0],m=c[c.length-1],f=null!=(e=null==d?void 0:d.offset)?e:0,v=null!=(t=null==m?void 0:m.offset)?t:0;return{start:u,end:s,records:c,topSpacerHeight:f,bottomSpacerHeight:Math.max(0,Xe.value.totalHeight-(v+(null!=(n=null==m?void 0:m.size)?n:0)))}});function ot(e,t){return O(e,t,r)}const at=/* @__PURE__ */new WeakMap;let lt=1;function it(e){if("object"!=typeof e&&"function"!=typeof e||null===e)return String(null!=e?e:"");const t=e;let n=at.get(t);return n||(n=lt++,at.set(t,n)),String(n)}function ut(e,t,n){var o;if(n)return"";const a="string"==typeof(null==e?void 0:e.text)?e.text:"string"==typeof(null==e?void 0:e.message)?e.message:"string"==typeof(null==e?void 0:e.label)?e.label:String(null!=(o=L(e,t,r))?o:"");return a?`${a.length}:${function(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(36)}(a)}`:""}function st(e,t){if("function"!=typeof r.estimateItemHeight)return"";const n=r.estimateItemHeight(e,t);if(!Number.isFinite(n)||n<=0)return"";const o=Math.ceil(n);return Ge[t]=o,String(o)}function ct(e){var t;return null!=(t=r.items[e.index])?t:e.item}function dt(e){return e.item}function mt(e){var t;const n=ct(e);return null!=(t=null==n?void 0:n.component)?t:e.component}function ft(e,t=Pe.value){const n=dt(e),o=E(n,e.index,r);return[null!=t?t:"timeline",e.key,null==o?"":String(o)].join(":")}function vt(e,t=Pe.value){if(e.markdown)return ft(e,t);const n=dt(e),o=E(n,e.index,r);return[null!=t?t:"timeline",e.key,null==o?"":String(o)].join(":")}function ht(e){return{sourceKey:vt(e),measurementKey:e.markdown?Le.value:$e.value,widthBucket:Z.value}}function gt(e,t){var n,r,o,a,l,i;return(null!=(n=null==e?void 0:e.sourceKey)?n:"")===(null!=(r=null==t?void 0:t.sourceKey)?r:"")&&(null!=(o=null==e?void 0:e.measurementKey)?o:"")===(null!=(a=null==t?void 0:t.measurementKey)?a:"")&&(null!=(l=null==e?void 0:e.widthBucket)?l:0)===(null!=(i=null==t?void 0:t.widthBucket)?i:0)}function yt(e,t,n=Pe.value){var r;return!(!e||!t)&&t.sourceKey===vt(e,n)&&t.measurementKey===(e.markdown?Le.value:$e.value)&&(null!=(r=t.widthBucket)?r:0)===Z.value}function kt(e,t=Pe.value){const n=ne.get(e.key);return yt(e,re.get(e.key),t)&&Number.isFinite(n)&&n>0?n:null}function pt(e){return Xe.value,Ve.get(e)}function bt(e,t){var n,r;return!!(e&&e.markdown&&t)&&t.sessionKey===ft(e)&&(null!=(n=t.threadKey)?n:"")===(null!=(r=Pe.value)?r:"")&&!!function(e){const t=Le.value,n=null!=e?e:"";return n===t||n.startsWith(`${t}\0`)}(t.measurementKey)}function wt(e,t){return bt(e,t)}function St(e,t,n){!Number.isFinite(t)||t<=0||(se.set(e,Math.ceil(t)),ce.set(e,n))}function Mt(e,t=ue.get(e)){const n=function(e,t=ue.get(e)){var n;if(!wt(pt(e),t))return 0;const r=Number(null==(n=null==t?void 0:t.metrics)?void 0:n.totalHeight);return Number.isFinite(r)&&r>0?Math.ceil(r):0}(e,t);return n>0&&St(e,n,t),n}function xt(e){var t;return bt(pt(e),ce.get(e))?null!=(t=se.get(e))?t:0:Mt(e)}function Bt(e){return e===we&&Te===e&&!he.value}function Kt(){if(null!=Se&&"function"==typeof cancelAnimationFrame&&cancelAnimationFrame(Se),Se=null,null!=xe&&"undefined"!=typeof window&&window.clearTimeout(xe),xe=null,"undefined"!=typeof window)for(const e of Me)window.clearTimeout(e);Me=[]}function Tt(){var e;return Math.max(0,U.value||(null==(e=J.value)?void 0:e.clientHeight)||0)}function Ft(){const e=J.value;if(!e||"function"!=typeof getComputedStyle)return void(Ae={top:0,bottom:0});const t=getComputedStyle(e),n=Number.parseFloat(t.paddingTop)||0,r=Number.parseFloat(t.paddingBottom)||0;Ae={top:n,bottom:r}}function Ht(){return Ae.top}function qt(){const e=Ae;return Math.max(0,Xe.value.totalHeight+e.top+e.bottom)}function Rt(){var e,t;return Math.max(qt(),null!=(t=null==(e=J.value)?void 0:e.scrollHeight)?t:0)}function Nt(){return Math.max(0,Q.value-Ht())}function Ct(){return Math.max(0,Rt()-Tt())}function At(e){const t=Number(e);return Number.isFinite(t)?Math.max(0,Math.min(t,Ct())):0}function _t(){return Math.max(0,Ct()-Q.value)}function Pt(){const e=_t();te.value=e<=2,!0!==r.stickToBottom?!1!==r.stickToBottom?ee.value=e<=48:ee.value=!1:ee.value=!0}function jt(){var e,t;const n=null!=(t=null==(e=J.value)?void 0:e.clientWidth)?t:0;Z.value=Number.isFinite(n)&&n>0?32*Math.round(n/32):0}function It(e={}){const t=J.value;t&&(Q.value=Math.max(0,t.scrollTop||0),U.value=t.clientHeight||0),jt(),Pt(),(!0===e.remember||!1!==e.remember&&!ve.value)&&mn()}function zt(e,t={}){const n=At(e),r=J.value;Q.value=n,r&&(U.value=r.clientHeight||U.value||0,!1!==t.writeDom&&Math.abs((r.scrollTop||0)-n)>.5&&(r.scrollTop=n)),jt(),!1!==t.updatePinned&&Pt(),(!0===t.remember||!1!==t.remember&&!ve.value)&&mn()}function Ot(){if(!he.value){const e=J.value,t=Fe;return e&&null!=t&&Math.abs((e.scrollTop||0)-t)>.5&&(e.scrollTop=t),void yn(Te,pe)}It()}function $t(e){zt(e,{writeDom:!0,remember:!0})}function Lt(){$t(Ct())}function Et(e,t){const n=oe.get(e);if(!Number.isFinite(n)||null==n||n<=0)return 0;const r=ae.get(e);return t&&r&&!Dt(r,t)?0:Math.ceil(n)}function Dt(e,t){var n,r,o,a;return e.sourceKey===t.sourceKey&&(0===(null!=(n=t.widthBucket)?n:0)||0===(null!=(r=e.widthBucket)?r:0)||(null!=(o=t.widthBucket)?o:0)===(null!=(a=e.widthBucket)?a:0))&&(Vt(t.measurementKey)||Vt(e.measurementKey)||t.measurementKey===e.measurementKey)}function Vt(e){return":0"===e||!0===(null==e?void 0:e.startsWith(":0"))}function Wt(e){oe.delete(e),ae.delete(e),le.delete(e),ie.delete(e)}function Yt(e,t,n,o={}){if(!Number.isFinite(t)||t<=0)return;const a=ne.get(e),l=n&&!gt(re.get(e),n),i=!0===o.releaseRestoredFloor;!function(e,t){if(!t)return;const n=ae.get(e);n&&!Dt(n,t)&&(oe.delete(e),ae.delete(e),le.delete(e),ie.delete(e))}(e,n),i&&Wt(e);const u=Et(e,n),s=u>0?u:Math.ceil(t);if(null!=a&&Math.abs(a-s)<=1&&!l)return void(i&&(Ye.value+=1));if(!1===o.updateLayout)return n&&re.set(e,n),ne.set(e,s),void vn(o.rememberThreadKey);if(ve.value)return n&&re.set(e,n),ne.set(e,s),Ze(e,s),void function(e=Te,t=pe){t&&y(()=>{yn(e,t),null==Se&&"function"==typeof requestAnimationFrame&&(Se=requestAnimationFrame(()=>{Se=null,yn(e,t)}))})}();const c=(d=cn(),m=_t(),!0===r.stickToBottom?{type:"bottom",distanceFromBottomPx:0}:"auto"===r.stickToBottom&&ee.value?{type:"bottom",distanceFromBottomPx:te.value?0:Math.max(0,m)}:d);var d,m;n&&re.set(e,n),ne.set(e,s),Ze(e,s),vn(o.rememberThreadKey),function(e){if(!Gt.scheduled)return Gt.anchor=e,Gt.scheduled=!0,void(Gt.raf=Ut(en));!Gt.anchor&&e&&(Gt.anchor=e)}(c)}g([()=>function(){const e=r.layoutRevision;return null!=e?["explicit",String(e),r.items.length].join(""):r.items.map((e,t)=>{var n;const o=ot(e,t),a=j(e,t,r);return[o,I(e,t,r),a?1:0,null!=(n=E(e,t,r))?n:"",st(e,t),ut(e,t,a),(l=null==e?void 0:e.component,l?"string"==typeof l?`s:${l}`:`o:${it(l)}`:"")].join("");var l}).join("\0")}(),$e,Le,Pe,()=>it(r.estimateItemHeight),()=>it(r.getKey),()=>it(r.getKind),()=>it(r.getContent),()=>it(r.getFinal),()=>it(r.getRevision)],()=>Je(),{immediate:!0,flush:"sync"});const Gt={scheduled:!1,raf:null,anchor:void 0},Xt=/* @__PURE__ */new Map;let Jt=!1,Qt=null;function Ut(e){return"function"==typeof requestAnimationFrame?requestAnimationFrame(e):(y(e),null)}function Zt(e){null!=e&&"function"==typeof cancelAnimationFrame&&cancelAnimationFrame(e)}function en(){if(!Gt.scheduled)return;Gt.scheduled=!1,Gt.raf=null;const e=Gt.anchor;Gt.anchor=void 0,e&&gn(e),It({remember:!1})}function tn(){var e,t;if(!Jt)return;Jt=!1,Qt=null;const n=Array.from(Xt.entries());Xt.clear();for(const[r,o]of n){if(se.get(r)!==o.logicalHeight)continue;const n=Ve.get(r);if(!n)continue;const a=(null!=(e=o.threadKey)?e:"")===(null!=(t=Pe.value)?t:"");on(n,{allowMarkdownShrink:o.allowMarkdownShrink,allowRestoredFloorShrink:o.allowRestoredFloorShrink,markdownLogicalHeight:o.logicalHeight,rememberThreadKey:o.threadKey,source:o.itemSizeSource,updateLayout:a})}en()}function nn(){tn(),en()}function rn(e){var t;null==(t=me.get(e))||t.disconnect(),me.delete(e),de.delete(e)}function on(e,t={}){var n,o,a;const l=(s=e.key,D(de.get(s),X));var s;const c=null!=(n=t.source)?n:ht(e);let d=!1;const m=()=>{d||(d=!0,function(e,t){const n=function(){if(!0!==r.debug||0===W.size)return null;let e=0;for(const n of W.values())e+=n;const t={total:e,byLabel:Object.fromEntries(Array.from(W.entries()).sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0])))};return W.clear(),t}();n&&console.info("[markstream-vue][timeline][perf] layout-reads",{label:e,itemKey:t,layoutReads:n})}("reconcileRecordSize",e.key))};if(!e.markdown)return l>0&&Yt(e.key,l,c,t),void m();const f=gt(re.get(e.key),c)&&null!=(o=ne.get(e.key))?o:0,v=null!=(a=t.markdownLogicalHeight)?a:xt(e.key),h=function(e,t){return V(de.get(e),X,t)}(e.key,l);if(v>0){let n=Math.max(l,v+h);(!t.allowMarkdownShrink||ve.value)&&f>0&&(n=Math.max(n,f));const r=Et(e.key,c),o=r>0&&n>r+1;return e.markdown&&r>0&&(!0===t.allowRestoredFloorShrink||o)?ve.value?ie.add(e.key):t=u(i({},t),{releaseRestoredFloor:!0}):t.allowMarkdownShrink&&!ve.value&&(r<=0||t.allowRestoredFloorShrink&&function(e,t,n){const r=le.get(e);return!Number.isFinite(r)||null==r||r<=0||t+Math.max(0,n-r)<n-1}(e.key,v,r))&&Wt(e.key),n>0&&Yt(e.key,n,c,t),void m()}return String(L(ct(e),e.index,r)).trim()?f>0?(l>f+1&&Yt(e.key,l,c,t),void m()):(l>0&&Yt(e.key,l,c,t),void m()):(l>0&&(Wt(e.key),Yt(e.key,l,c,t)),void m())}function an(e){return t=>{!function(e,t){const n=function(e){const t=e&&"$el"in e?e.$el:e;return t instanceof HTMLElement?t:null}(t),r=de.get(e.key);if(!n)return void rn(e.key);if(r===n)return void on(e);if(rn(e.key),de.set(e.key,n),on(e),"undefined"==typeof ResizeObserver)return;const o=new ResizeObserver(()=>{on(e)});o.observe(n),me.set(e.key,o)}(e,t)}}function ln(e){const t=ct(e),n=$(t,e.index,r),a=ue.get(e.key),s=ze.value,d=Oe.value,m={enabled:!0,sessionKey:ft(e),threadKey:Pe.value,scrollRoot:()=>J.value,restoreState:wt(e,a)?a:null,restoreAnchor:!1,measurementKey:Le.value,settleMode:"manual",settledToken:n,emitIntervalMs:96,heightDiffThresholdPx:4};return u(i({content:L(t,e.index,r),final:n,mode:s,codeRenderer:d},n?{nodeVirtual:"auto",maxLiveNodes:50,liveNodeBuffer:16}:{}),{fade:!0===r.markdownFade,indexKey:ft(e),virtualScroll:m,onHeightChange(t){if(t.sessionKey!==ft(e))return;St(e.key,t.totalHeight,{sessionKey:t.sessionKey,threadKey:Pe.value,measurementKey:Le.value});const n=function(e){return"final"===e.phase||!(!0!==e.final||!l(e.confidence))||!!e.stable&&(l(e.confidence)||c(e))}(t),r=function(e){return"final"===e.phase||!!e.stable&&(l(e.confidence)||c(e))}(t),a=Math.ceil(t.totalHeight);var i;!function(e,t){Xt.set(e.key,t),Jt||(Jt=!0,Qt=Ut(tn))}(e,{allowMarkdownShrink:n,allowRestoredFloorShrink:r,itemSizeSource:ht(e),logicalHeight:a,threadKey:Pe.value}),i={itemKey:e.key,metrics:t},o("height-change",i)},onVirtualStateChange(t){var n;t.sessionKey===ft(e)&&(ue.set(e.key,t),Mt(e.key,t),vn(),n={itemKey:e.key,state:t},o("virtual-state-change",n))}})}function un(e){return{item:ct(e),index:e.index,itemKey:e.key,kind:e.kind,measureRef:an(e),markdownProps:ln(e)}}function sn(e){var t;const n=null!=(t=ct(e))?t:{};return"string"==typeof n.text?n.text:"string"==typeof n.message?n.message:"string"==typeof n.label?n.label:L(n,e.index,r)}function cn(){const e=_t();if(e<=2)return{type:"bottom",distanceFromBottomPx:Math.max(0,e)};const t=Nt(),n=et(t,"gt"),r=Xe.value.records[n];if(r){const e=Qe(r);if(t>=e&&t<e+r.size)return{type:"item",itemKey:r.key,offsetWithinItemPx:t-e}}const o=rt.value.records[0];return o?{type:"item",itemKey:o.key,offsetWithinItemPx:0}:void 0}function dn(e=Pe.value){nn();const t={},n={};for(const r of Xe.value.records){const o=kt(r,e),a=re.get(r.key);null!=o&&yt(r,a,e)&&(t[r.key]=o,n[r.key]=a)}return{threadKey:e,measurementKey:$e.value,widthBucket:Z.value,outerAnchor:cn(),itemHeights:t,itemSizeSources:n,markdownStates:Object.fromEntries(ue.entries())}}function mn(e=Pe.value){if(!e)return;const t=dn(e);return fe.set(e,t),e===Pe.value&&(Re=t),a(t),t}function fn(){const e=ke;return null!=Be&&"undefined"!=typeof window&&window.clearTimeout(Be),Be=null,ke=void 0,e?mn(e):void 0}function vn(e=Pe.value){e&&(ke=e,null==Be&&("undefined"!=typeof window?Be=window.setTimeout(()=>{Be=null,fn()},80):fn()))}function hn(e){if(!e)return null;if("bottom"===e.type)return(he.value?Rt():qt())-Tt()-Math.max(0,e.distanceFromBottomPx);const t=pt(e.itemKey);return t?Ht()+Qe(t)+Math.max(0,e.offsetWithinItemPx):null}function gn(e,t={}){const n=hn(e);return null!=n&&(zt(n,{writeDom:!0,remember:!0===t.remember}),!0)}function yn(e,t){if(e===we){if(t){const e=gn(t,{remember:!1});Fe=e?Q.value:null}It({remember:!1})}}function kn(e,t){const n=e.getBoundingClientRect();return n.width>0&&n.height>0&&n.bottom>t.top&&n.top<t.bottom}function pn(e,t){const n=e.getBoundingClientRect(),r=t.getBoundingClientRect();return n.bottom>r.top&&n.top<r.bottom}function bn(e){if(e.closest(".code-editor-container.is-hidden"))return!1;let t=e;for(;t;){const e=window.getComputedStyle(t);if("none"===e.display||"hidden"===e.visibility||Number.parseFloat(e.opacity||"1")<=.01)return!1;t=t.parentElement}const n=e.getBoundingClientRect();return n.width>0&&n.height>0}function wn(e){if(!e)return!1;if(e.classList.contains("is-fading-out"))return!1;const t=window.getComputedStyle(e);if("none"===t.display||Number.parseFloat(t.opacity||"1")<=.01)return!1;const n=e.getBoundingClientRect();return n.width>0&&n.height>0}function Sn(e){return Array.from(e.querySelectorAll(['[data-markstream-pending="true"]','[data-markstream-mermaid][data-markstream-mode="pending"]','.mermaid-block-container[data-markstream-mode="pending"]','[data-markstream-code-loading="1"]'].join(","))).some(e=>!e.matches('[data-markstream-code-block="1"]')||!wn(e.querySelector("pre.code-pre-fallback")))}function Mn(e){var t;if(e.querySelector(":scope > .node-placeholder"))return!1;const n=e.querySelector(":scope > .node-content");return!!n&&(!Sn(n)&&(!!function(e){const t=Array.from(e.querySelectorAll("[data-markstream-math]"));return!t.length||t.every(e=>{const t=e.dataset.markstreamMode;return!("true"===e.dataset.markstreamPending||"loading"===t||"katex"!==t&&"fallback"!==t)})}(n)&&("code_block"===(null!=(t=e.dataset.nodeType)?t:"")?function(e){if(e.querySelector('[data-markstream-code-loading="1"]'))return!1;const t=e.querySelector('[data-markstream-code-block="1"]');if(t){const e="true"===t.dataset.markstreamEnhanced,r=wn(t.querySelector("pre.code-pre-fallback"));return e||r||(n=t,Array.from(n.querySelectorAll(".monaco-editor, .monaco-diff-editor")).some(bn))}var n;return function(e){var t,n;const r=e.querySelector("[data-markstream-mermaid], .mermaid-block-container");if(r){if("true"===r.dataset.markstreamPending)return!1;const e=r.dataset.markstreamMode;return"preview"===e?Boolean(r.querySelector("svg")||r.querySelector('[data-mermaid-svg-layer="1"] svg')):"fallback"===e&&Boolean(null==(n=null==(t=r.querySelector(".mermaid-source-code"))?void 0:t.textContent)?void 0:n.trim())}const o=e.querySelector("[data-markstream-infographic], .infographic-block-container");if(o)return"true"!==o.dataset.markstreamPending;const a=e.querySelector("[data-markstream-d2], .d2-block-container");return a?"true"!==a.dataset.markstreamPending:Boolean(e.querySelector('pre[data-markstream-pre="1"]'))}(e)}(n):function(e){var t;return(null!=(t=e.textContent)?t:"").trim().length>0||Boolean(e.querySelector(["hr","br","table","blockquote","img","svg","canvas","input","button","select","textarea","[role]","[aria-label]","[data-markstream-math]","[data-markstream-mermaid]","[data-markstream-infographic]","[data-markstream-d2]",'[data-markstream-pre="1"]'].join(",")))}(n))))}function xn(e,t){var n;if(!e.markdown)return!0;const o=L(ct(e),e.index,r);if(!String(null!=o?o:"").trim())return!0;if(t.querySelector("[data-node-index]"))return!0;const a=t.querySelector(".markdown-renderer"),l=null!=a?a:t;return!Sn(l)&&(!!(null!=(n=l.textContent)?n:"").trim()||Boolean(l.querySelector(["hr","br","table","blockquote","img","svg","canvas","input","button","[role]","[aria-label]","[data-markstream-math]","[data-markstream-mermaid]","[data-markstream-infographic]","[data-markstream-d2]",'[data-markstream-pre="1"]','[data-markstream-code-block="1"]'].join(","))))}function Bn(e,t,n){if(!e.markdown)return!0;const o=L(ct(e),e.index,r);if(!String(null!=o?o:"").trim())return!0;const a=n.getBoundingClientRect(),l=Array.from(t.querySelectorAll("[data-node-index]")).filter(e=>kn(e,a));if(l.length>0)return l.every(e=>Mn(e));const i=t.querySelector(".markdown-renderer"),u=null!=i?i:t;return u.querySelector("[data-node-index], .node-placeholder")?!!function(e,t,n,r){if(!Kn(e))return!1;const o=n.getBoundingClientRect(),a=t.getBoundingClientRect();return o.width>0&&o.height>0&&o.bottom<=r.top+1&&a.bottom>r.top}(e,t,u,a)&&xn(e,t):xn(e,t)}function Kn(e){const t=re.get(e.key);return Et(e.key,t)>0}function Tn(e,t){var n,o,a,i;if(!e.markdown)return!0;if(!He&&!qe)return!0;if(Kn(e))return!0;const u=L(ct(e),e.index,r);if(!String(null!=u?u:"").trim())return!0;if(!t.querySelector(".markdown-renderer"))return!1;const s=ue.get(e.key);if(!wt(e,s))return!1;const d=null==s?void 0:s.metrics,m=Number(null!=(n=null==d?void 0:d.totalHeight)?n:0);if(!Number.isFinite(m)||m<=0)return!1;const f=Number(null!=(o=null==d?void 0:d.measuredCount)?o:0),v=Number(null!=(a=null==d?void 0:d.estimatedCount)?a:0),h=Number(null!=(i=null==d?void 0:d.nodeCount)?i:0),g=h<=0||f>=h&&v<=0,y=l(null==d?void 0:d.confidence),k=c(d),p=!0===(null==d?void 0:d.stable)||y||k;return qe?!0===(null==d?void 0:d.final)&&(g&&y||k):p||!0===(null==d?void 0:d.final)}function Fn(){const e=J.value;if(!e)return!1;const t=hn(pe);if(null!=t&&Math.abs((e.scrollTop||0)-At(t))>.5)return!1;const n=rt.value.records;if(!n.length)return 0===Xe.value.records.length;const r=new Map(Array.from(e.querySelectorAll("[data-markstream-item-key]")).map(e=>{var t;return[null!=(t=e.dataset.markstreamItemKey)?t:"",e]})),o=[];for(const i of n){const t=r.get(i.key);t&&pn(t,e)&&o.push({record:i,el:t})}if(!o.length)return!1;for(const{record:i,el:u}of o){if(u.offsetHeight+1<i.size)return!1;if(!Bn(i,u,e))return!1;if(!Tn(i,u))return!1}const a=e.getBoundingClientRect();if(Array.from(e.querySelectorAll(['[data-markstream-pending="true"]','[data-markstream-mermaid][data-markstream-mode="pending"]','.mermaid-block-container[data-markstream-mode="pending"]','[data-markstream-code-loading="1"]'].join(","))).some(e=>!(!kn(e,a)||e.matches('[data-markstream-code-block="1"]')&&wn(e.querySelector("pre.code-pre-fallback")))))return!1;const l=Array.from(e.querySelectorAll("[data-node-index]")).filter(e=>kn(e,a));for(const i of l)if(!Mn(i))return!1;return!0}function Hn(){const e=J.value;if(!e)return"";const t=e.getBoundingClientRect(),n=new Map(Array.from(e.querySelectorAll("[data-markstream-item-key]")).map(e=>{var t;return[null!=(t=e.dataset.markstreamItemKey)?t:"",e]})),r=rt.value.records.map(e=>{var t,r,o,a,l,i,u,s,c;const d=n.get(e.key),m=null==d?void 0:d.querySelector(".markdown-renderer"),f=null==(t=ue.get(e.key))?void 0:t.metrics;return[e.key,e.size,null!=(r=null==d?void 0:d.offsetHeight)?r:0,null!=(o=null==d?void 0:d.scrollHeight)?o:0,null!=(a=null==m?void 0:m.offsetHeight)?a:0,null!=(l=null==m?void 0:m.scrollHeight)?l:0,f?Math.round(Number(f.totalHeight||0)):"",null!=(i=null==f?void 0:f.measuredCount)?i:"",null!=(u=null==f?void 0:f.estimatedCount)?u:"",null!=(s=null==f?void 0:f.nodeCount)?s:"",!0===(null==f?void 0:f.final)?1:0,!0===(null==f?void 0:f.stable)?1:0,null!=(c=null==f?void 0:f.confidence)?c:""].join(":")}).join("|"),o=Array.from(e.querySelectorAll("[data-node-index]")).filter(e=>kn(e,t)).map(e=>{var t,n,r,o,a;const l=e.getBoundingClientRect(),i=e.querySelector(":scope > .node-content"),u=null==i?void 0:i.querySelector('[data-markstream-code-block="1"]'),s=null==i?void 0:i.querySelector("pre.code-pre-fallback"),c=null==i?void 0:i.querySelector(".monaco-editor, .monaco-diff-editor");return[null!=(t=e.dataset.nodeIndex)?t:"",null!=(n=e.dataset.nodeType)?n:"",Math.round(l.height),null!=(r=null==i?void 0:i.offsetHeight)?r:0,null!=(o=null==i?void 0:i.scrollHeight)?o:0,null!=(a=null==u?void 0:u.dataset.markstreamEnhanced)?a:"",u?Math.round(u.getBoundingClientRect().height):0,s?Math.round(s.getBoundingClientRect().height):0,c?Math.round(c.getBoundingClientRect().height):0].join(":")}).join("|");return[Math.round(e.scrollTop||0),Math.round(e.scrollHeight||0),Math.round(Xe.value.totalHeight||0),r,o].join("\n")}function qn(){return"undefined"!=typeof performance?performance.now():Date.now()}function Rn(){return qe?24:2}function Nn(e){Bt(e)&&Ne!==e&&(Ne=e,function(e){return t=this,n=function*(){const t=qn();let n=0,r="";for(let o=0;o<40;o++){if(yield y(),yield new Promise(e=>{"function"!=typeof requestAnimationFrame?e():requestAnimationFrame(()=>e())}),!Bt(e))return!1;yn(e,pe);const o=qn(),a=Fn(),l=a?Hn():"";if(a&&l===r&&l){if(n+=1,n>=Rn()&&o-t>=96)return!0}else n=0,r=l}return!1},new Promise((e,r)=>{var o=e=>{try{l(n.next(e))}catch(t){r(t)}},a=e=>{try{l(n.throw(e))}catch(t){r(t)}},l=t=>t.done?e(t.value):Promise.resolve(t.value).then(o,a);l((n=n.apply(t,null)).next())});var t,n}(e).then(t=>{if(Ne===e&&(Ne=0),Bt(e))return t?void jn(e):function(){if(Ke<0)return!1;const e=function(){if(!1===r.restoreMaxLoadingMs)return Number.POSITIVE_INFINITY;const e=Number(r.restoreMaxLoadingMs);return Number.isFinite(e)&&e>0?e:Number.POSITIVE_INFINITY}();return Number.isFinite(e)&&qn()-Ke>=e}()?(!0===r.debug&&import.meta,void jn(e)):(function(e){Ce!==e&&(Ce=e,!0===r.debug&&import.meta)}(e),void function(e){Bt(e)&&"undefined"!=typeof window&&(null!=xe&&window.clearTimeout(xe),xe=window.setTimeout(()=>{xe=null,Bt(e)&&Nn(e)},120))}(e))}))}function Cn(){he.value=!0,Ke=-1,Ne=0,Ce=0,He=!1,qe=!1,null!=xe&&"undefined"!=typeof window&&window.clearTimeout(xe),xe=null}function An(){_e=!0}function _n(e){var t,n;const r=[];if(!function(e){var t,n;return!!e&&(null!=(t=e.measurementKey)?t:"")===$e.value&&(null!=(n=e.widthBucket)?n:0)===Z.value}(e))return r;for(const[o,a]of Object.entries(null!=(t=null==e?void 0:e.itemHeights)?t:{})){if(!Number.isFinite(a)||a<=0)continue;const t=pt(o),l=null==(n=null==e?void 0:e.itemSizeSources)?void 0:n[o];yt(t,l)&&r.push([o,Math.ceil(a),l])}return r}function Pn(e){var t;for(const[n,r]of Object.entries(null!=(t=null==e?void 0:e.markdownStates)?t:{}))if(wt(pt(n),r))return!0;return!1}function jn(e){if(e!==we)return;tn();const t=new Set(ie);Kt(),yn(e,pe),ve.value=!1,Ke=-1,pe=void 0,Fe=null,Te=0;for(const n of Xe.value.records)n.markdown&&!t.has(n.key)||Wt(n.key);for(const n of t){const e=Ve.get(n);e?on(e,{allowMarkdownShrink:!0,allowRestoredFloorShrink:!0,markdownLogicalHeight:xt(e.key),source:ht(e),updateLayout:!0}):Wt(n)}ie.clear(),en(),It({remember:!1}),Cn(),An()}function In(e,t={}){var n;const o=++we;(null==e?void 0:e.widthBucket)&&0===Z.value&&(Z.value=e.widthBucket);const a=null==e?void 0:e.outerAnchor,l=function(e){return Boolean((null==e?void 0:e.outerAnchor)||_n(e).length>0||Pn(e))}(e),i=Pn(e),u=!(!_e&&!0!==t.threadSwitch||l),s=l||u,c=null!=a?a:s?function(){if(!1!==r.stickToBottom)return{type:"bottom",distanceFromBottomPx:0};const e=Xe.value.records[0];return e?{type:"item",itemKey:e.key,offsetWithinItemPx:0}:void 0}():void 0;Kt(),Ne=0,Ce=0,he.value=!s,ve.value=s&&Boolean(c),Te=o,pe=c,He=s&&i,qe=s&&u,Ke=ve.value?qn():-1,zn(),ne.clear(),re.clear(),oe.clear(),ae.clear(),le.clear(),ie.clear(),ue.clear(),se.clear(),ce.clear();for(const[r,m,f]of _n(e)){const e=Math.ceil(m);re.set(r,f),ne.set(r,e),oe.set(r,e),ae.set(r,f)}for(const[r,m]of Object.entries(null!=(n=null==e?void 0:e.markdownStates)?n:{})){ue.set(r,m);const e=Mt(r,m);e>0&&le.set(r,e)}Je(),!0===r.stickToBottom?(ee.value=!0,te.value=!0):!1===r.stickToBottom?(ee.value=!1,te.value=!1):(ee.value="bottom"===(null==c?void 0:c.type),te.value="bottom"===(null==c?void 0:c.type)&&c.distanceFromBottomPx<=2);const d=hn(c);return Fe=null==d?null:At(d),null!=d&&zt(d,{writeDom:!0,remember:!1,updatePinned:!1}),Re=(null==e?void 0:e.threadKey)===Pe.value?e:null,s?c?void y(()=>{yn(o,c),"undefined"!=typeof window?(ye.forEach(e=>{const t=window.setTimeout(()=>{yn(o,c)},e);Me.push(t)}),Nn(o)):jn(o)}):(ve.value=!1,pe=void 0,Fe=null,Te=0,It({remember:!1}),Cn(),void An()):(ve.value=!1,pe=void 0,Fe=null,Te=0,It({remember:!1}),Cn(),An(),void(!1!==r.stickToBottom&&(ee.value=!0,te.value=!0,y(()=>{ve.value||Lt()}))))}function zn(){for(const e of me.values())e.disconnect();me.clear(),de.clear()}return g(Pe,(e,t)=>{const n=null!=je?je:t,o=Boolean(n&&n!==e);o&&function(e){var t;nn(),(null==(t=fn())?void 0:t.threadKey)!==e&&((null==Re?void 0:Re.threadKey)===e?(fe.set(e,Re),a(Re)):fe.has(e)||mn(e))}(n),je=e,In(function(e){return(e?fe.get(e):null)||function(e){var t;const n=r.initialThreadState;return n?(null!=(t=n.threadKey)?t:"")!==(null!=e?e:"")?null:n:null}(e)}(e),{threadSwitch:o})},{immediate:!0,flush:"sync"}),g(()=>rt.value.records.map(e=>e.key).join("\0"),()=>{var e;e={start:rt.value.start,end:rt.value.end},o("range-change",e)},{immediate:!0}),g(()=>[r.items.length,Xe.value.totalHeight],()=>{ve.value||!1!==r.stickToBottom&&("auto"!==r.stickToBottom||te.value)&&y(()=>{ve.value||!1!==r.stickToBottom&&("auto"!==r.stickToBottom||te.value)&&Lt()})},{flush:"post"}),k(()=>{Ft(),jt(),pe?(yn(Te,pe),It({remember:!1}),mn()):!1===r.stickToBottom?(It({remember:!1}),mn()):(ee.value=!0,zt(Ct(),{writeDom:!0,remember:!1,updatePinned:!1}),It({remember:!1}),mn()),J.value&&"undefined"!=typeof ResizeObserver&&(be=new ResizeObserver(()=>{Ft(),It()}),be.observe(J.value))}),p(()=>{he.value||Nn(Te)}),b(()=>{fn()||mn(),Kt(),null!=Be&&"undefined"!=typeof window&&window.clearTimeout(Be),Be=null,ke=void 0,Zt(Gt.raf),Gt.scheduled=!1,Gt.raf=null,Gt.anchor=void 0,Zt(Qt),Jt=!1,Qt=null,Xt.clear(),zn(),re.clear(),oe.clear(),ae.clear(),le.clear(),ie.clear(),se.clear(),ce.clear(),null==be||be.disconnect(),be=null}),t({captureThreadState:function(){return dn(Pe.value)},restoreThreadState:In,scrollToBottom:Lt,scrollToIndex:function(e,t="start"){const n=Xe.value.records[e];if(!n)return;let r=Ht()+Qe(n);"center"===t?r-=(U.value-n.size)/2:"end"===t&&(r-=U.value-n.size),$t(r)},scrollToOffset:$t,getItemSize:e=>{var t;const n=pt(e);return n&&null!=(t=kt(n))?t:void 0},getTotalHeight:()=>Xe.value.totalHeight,getVisibleRange:()=>({start:rt.value.start,end:rt.value.end})}),(e,t)=>(w(),S("div",{ref_key:"scrollRoot",ref:J,class:M(["markstream-virtual-timeline",{"is-restoring-thread":!he.value}]),"data-markstream-virtual-timeline":"1","data-testid":"markstream-virtual-timeline",onScroll:Ot},[x("div",{class:"markstream-virtual-timeline__spacer",style:B({height:`${rt.value.topSpacerHeight}px`}),"aria-hidden":"true"},null,4),(w(!0),S(K,null,T(rt.value.records,t=>(w(),S("div",{key:t.renderKey,class:M(["markstream-virtual-timeline__item",{"is-restored-height-floor":Kn(t)}]),"data-markstream-item-key":t.key,"data-markstream-item-kind":t.kind,style:B({minHeight:`${t.size}px`,"--markstream-virtual-item-size":`${t.size}px`})},[F(e.$slots,"default",H({ref_for:!0},un(t)),()=>{var e,n;return[t.markdown?(w(),q(R(P),H({key:0,ref_for:!0},ln(t)),null,16)):mt(t)?(w(),q(N(mt(t)),{key:1,ref_for:!0,ref:an(t),item:ct(t)},null,8,["item"])):(w(),S("div",{key:2,ref_for:!0,ref:an(t),class:M(["markstream-virtual-timeline__default-item",`markstream-virtual-timeline__default-item--${t.kind||"item"}`])},["tool-call"===t.kind&&(null==(e=ct(t))?void 0:e.status)?(w(),S("span",G,C(null==(n=ct(t))?void 0:n.status),1)):A("",!0),_(" "+C(sn(t)),1)],2))]},!0)],14,Y))),128)),x("div",{class:"markstream-virtual-timeline__spacer",style:B({height:`${rt.value.bottomSpacerHeight}px`}),"aria-hidden":"true"},null,4),he.value?A("",!0):(w(),S("div",{key:0,class:"markstream-virtual-timeline__restore-loading",style:B({height:`${Math.max(1,Tt())}px`,transform:`translateY(${Q.value}px)`}),"aria-live":"polite","aria-busy":"true"},[F(e.$slots,"restore-loading",{threadKey:Pe.value,visibleRecords:rt.value.records},()=>[t[0]||(t[0]=x("div",{class:"markstream-virtual-timeline__restore-loading-card"},[x("span",{class:"markstream-virtual-timeline__restore-spinner","aria-hidden":"true"}),x("span",null,"Loading thread…")],-1))],!0)],4))],34))}})),[["__scopeId","data-v-a022bbbb"]]),J=X;J.install=e=>{var t,n;const r=null!=(n=null!=(t=J.__name)?t:J.name)?n:"MarkstreamVirtualTimeline";e.component(r,X)};export{J as default};
1
+ var e=Object.defineProperty,t=Object.defineProperties,n=Object.getOwnPropertyDescriptors,r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable,l=(t,n,r)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[n]=r,i=(e,t)=>{for(var n in t||(t={}))o.call(t,n)&&l(e,n,t[n]);if(r)for(var n of r(t))a.call(t,n)&&l(e,n,t[n]);return e},u=(e,r)=>t(e,n(r)),s=(e,t,n)=>l(e,"symbol"!=typeof t?t+"":t,n);import{defineComponent as c,ref as d,reactive as m,provide as f,computed as v,shallowRef as h,watch as g,nextTick as y,onMounted as k,onUpdated as p,onBeforeUnmount as b,openBlock as w,createElementBlock as M,normalizeClass as S,createElementVNode as x,normalizeStyle as B,Fragment as K,renderList as T,renderSlot as F,mergeProps as H,createBlock as q,unref as R,resolveDynamicComponent as N,toDisplayString as C,createCommentVNode as A,createTextVNode as P}from"vue";import{y as _,a8 as j,a3 as I,W as z,a2 as $,a1 as O,a0 as L,a4 as E,a9 as D,$ as W,z as V}from"./exports.js";const Y=["data-markstream-item-key","data-markstream-item-kind"],G={key:0,class:"markstream-virtual-timeline__status"},J=.5,Q=/* @__PURE__ */V(/* @__PURE__ */c(u(i({},{name:"MarkstreamVirtualTimeline"}),{__name:"MarkstreamVirtualTimeline",props:{items:{},threadKey:{},layoutRevision:{},getKey:{},getKind:{},getContent:{},getFinal:{},getRevision:{},estimateItemHeight:{},overscan:{default:4},overscanPx:{default:1200},stickToBottom:{type:[Boolean,String],default:"auto"},measurementKey:{},markdownMode:{default:"docs"},markdownCodeRenderer:{},initialThreadState:{},markdownFade:{type:Boolean,default:!1},restoreMaxLoadingMs:{type:[Number,Boolean],default:!1},debug:{type:Boolean}},emits:["height-change","virtual-state-change","range-change","thread-state-change"],setup(e,{expose:t,emit:n}){const r=e,o=n;function a(e){o("thread-state-change",e)}function l(e){return"measured"===e||"final"===e}function c(e){return!0===(null==e?void 0:e.stable)&&function(e){var t,n,r,o;if(!e)return!1;const a=Number(e.nodeCount),l=Number(e.measuredCount),i=Math.max(0,Number(null!=(n=null==(t=e.liveRange)?void 0:t.start)?n:0)),u=Math.min(a,Math.max(i,Number(null!=(o=null==(r=e.liveRange)?void 0:r.end)?o:0))),s=Math.max(0,u-i);return!0===e.final&&"mixed"===e.confidence&&a>0&&l>0&&l<a&&(s<=0||l>=s)}(e)}const V=/* @__PURE__ */new Map;function Q(e){var t;!0===r.debug&&V.set(e,(null!=(t=V.get(e))?t:0)+1)}const U=d(null),X=d(0),Z=d(0),ee=d(0),te=d(!0),ne=d(!0),re=m(/* @__PURE__ */new Map),oe=/* @__PURE__ */new Map,ae=/* @__PURE__ */new Map,le=/* @__PURE__ */new Map,ie=/* @__PURE__ */new Map,ue=/* @__PURE__ */new Set,se=m(/* @__PURE__ */new Map),ce=m(/* @__PURE__ */new Map),de=/* @__PURE__ */new Map,me=/* @__PURE__ */new Map,fe=/* @__PURE__ */new Map,ve=/* @__PURE__ */new Map,he=d(!1),ge=d(!0),ye=d(!0);f("markstreamHostScrollManaged",ye);const ke=[0,80,180,360,640];let pe,be,we=null,Me=null,Se=0,xe=null,Be=[],Ke=null,Te=null,Fe=-1,He=0,qe=null,Re=!1,Ne=!1,Ce=null,Ae=0,Pe=0,_e={top:0,bottom:0},je=!1;const Ie=v(()=>null==r.threadKey?void 0:String(r.threadKey));let ze=Ie.value;function $e(e){return"chat"===e||"minimal"===e||"docs"===e?e:"docs"}const Oe=v(()=>$e(r.markdownMode)),Le=v(()=>function(e,t=$e(r.markdownMode)){return"pre"===e||"shiki"===e||"monaco"===e?e:"docs"===t?"monaco":"pre"}(r.markdownCodeRenderer,Oe.value)),Ee=v(()=>[null==r.measurementKey?"":String(r.measurementKey),ee.value].join(":")),De=v(()=>`${Ee.value}${Oe.value}${Le.value}`);class We{constructor(e){s(this,"tree"),s(this,"total"),this.tree=Array.from({length:e.length+1},()=>0),this.total=0,e.forEach((e,t)=>this.add(t,e))}add(e,t){if(Number.isFinite(t)&&0!==t){this.total+=t;for(let n=e+1;n<this.tree.length;n+=n&-n)this.tree[n]+=t}}prefixSum(e){let t=Math.max(0,Math.min(e,this.tree.length-1)),n=0;for(;t>0;)n+=this.tree[t],t-=t&-t;return n}lowerBound(e,t="gte"){const n=this.tree.length-1;if(n<=0)return 0;if(e<=0)return 0;if(e>=this.total)return n-1;let r=0,o=1;for(;o<<1<this.tree.length;)o<<=1;let a=0;for(;o>0;o>>=1){const n=r+o;if(n<this.tree.length){const o=a+this.tree[n];("gt"===t?o<=e:o<e)&&(r=n,a=o)}}return Math.min(r,n-1)}}const Ve=h([]),Ye=/* @__PURE__ */new Map,Ge=h(new We([])),Je=d(0);let Qe=[];const Ue=v(()=>(Je.value,{records:Ve.value,totalHeight:Ge.value.total}));function Xe(){var e;const t=[],n=[],o=function(){var e;return null!=(e=Ie.value)?e:"timeline"}();Ye.clear();for(let a=0;a<r.items.length;a++){const l=r.items[a],s=lt(l,a),c={item:l,index:a,key:s,kind:I(l,a,r),markdown:j(l,a,r)};let d=bt(c);null==d&&(d=null!=(e=Qe[a])?e:z(l,a,r));const m=u(i({},c),{renderKey:`${o}:${s}`,offset:0,size:d,component:null==l?void 0:l.component});t.push(m),n.push(d),Ye.has(s)||Ye.set(s,m)}Ve.value=t,Ge.value=new We(n),Qe=[],Je.value+=1}function Ze(e){return Je.value,Ge.value.prefixSum(e.index)}function et(e){return u(i({},e),{offset:Ze(e)})}function tt(e,t){const n=Ye.get(e);if(!n)return;const r=Math.ceil(t),o=r-n.size;0!==o&&(n.size=r,Ge.value.add(n.index,o),Je.value+=1)}function nt(e,t="gte"){return Je.value,Ge.value.lowerBound(e,t)}const rt=v(()=>{var e;return Math.max(0,null!=(e=r.overscan)?e:4)}),ot=v(()=>{var e;const t=Math.max(0,null!=(e=r.overscanPx)?e:1200);return ge.value?t:Math.min(t,160)}),at=v(()=>{var e,t,n;const r=Ue.value.records;if(0===r.length)return{start:0,end:0,records:[],topSpacerHeight:0,bottomSpacerHeight:0};const o=rt.value,a=ot.value,l=At(),i=l+Math.max(1,Z.value);let u=nt(Math.max(0,l-a),"gt"),s=nt(Math.min(Ue.value.totalHeight,i+a))+1;u=Math.max(0,u-o),s=Math.min(r.length,Math.max(s+o,u+1));const c=r.slice(u,s).map(et),d=c[0],m=c[c.length-1],f=null!=(e=null==d?void 0:d.offset)?e:0,v=null!=(t=null==m?void 0:m.offset)?t:0;return{start:u,end:s,records:c,topSpacerHeight:f,bottomSpacerHeight:Math.max(0,Ue.value.totalHeight-(v+(null!=(n=null==m?void 0:m.size)?n:0)))}});function lt(e,t){return $(e,t,r)}const it=/* @__PURE__ */new WeakMap;let ut=1;function st(e){if("object"!=typeof e&&"function"!=typeof e||null===e)return String(null!=e?e:"");const t=e;let n=it.get(t);return n||(n=ut++,it.set(t,n)),String(n)}function ct(e,t,n){var o;if(n)return"";const a="string"==typeof(null==e?void 0:e.text)?e.text:"string"==typeof(null==e?void 0:e.message)?e.message:"string"==typeof(null==e?void 0:e.label)?e.label:String(null!=(o=L(e,t,r))?o:"");return a?`${a.length}:${function(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(36)}(a)}`:""}function dt(e,t){if("function"!=typeof r.estimateItemHeight)return"";const n=r.estimateItemHeight(e,t);if(!Number.isFinite(n)||n<=0)return"";const o=Math.ceil(n);return Qe[t]=o,String(o)}function mt(e){var t;return null!=(t=r.items[e.index])?t:e.item}function ft(e){return e.item}function vt(e){var t;const n=mt(e);return null!=(t=null==n?void 0:n.component)?t:e.component}function ht(e,t=Ie.value){const n=ft(e),o=E(n,e.index,r);return[null!=t?t:"timeline",e.key,null==o?"":String(o)].join(":")}function gt(e,t=Ie.value){if(e.markdown)return ht(e,t);const n=ft(e),o=E(n,e.index,r);return[null!=t?t:"timeline",e.key,null==o?"":String(o)].join(":")}function yt(e){return{sourceKey:gt(e),measurementKey:e.markdown?De.value:Ee.value,widthBucket:ee.value}}function kt(e,t){var n,r,o,a,l,i;return(null!=(n=null==e?void 0:e.sourceKey)?n:"")===(null!=(r=null==t?void 0:t.sourceKey)?r:"")&&(null!=(o=null==e?void 0:e.measurementKey)?o:"")===(null!=(a=null==t?void 0:t.measurementKey)?a:"")&&(null!=(l=null==e?void 0:e.widthBucket)?l:0)===(null!=(i=null==t?void 0:t.widthBucket)?i:0)}function pt(e,t,n=Ie.value){var r;return!(!e||!t)&&t.sourceKey===gt(e,n)&&t.measurementKey===(e.markdown?De.value:Ee.value)&&(null!=(r=t.widthBucket)?r:0)===ee.value}function bt(e,t=Ie.value){const n=re.get(e.key);return pt(e,oe.get(e.key),t)&&Number.isFinite(n)&&n>0?n:null}function wt(e){return Ue.value,Ye.get(e)}function Mt(e,t){var n,r;return!!(e&&e.markdown&&t)&&t.sessionKey===ht(e)&&(null!=(n=t.threadKey)?n:"")===(null!=(r=Ie.value)?r:"")&&!!function(e){const t=De.value,n=null!=e?e:"";return n===t||n.startsWith(`${t}\0`)}(t.measurementKey)}function St(e,t){return Mt(e,t)}function xt(e,t,n){!Number.isFinite(t)||t<=0||(ce.set(e,Math.ceil(t)),de.set(e,n))}function Bt(e,t=se.get(e)){const n=function(e,t=se.get(e)){var n;if(!St(wt(e),t))return 0;const r=Number(null==(n=null==t?void 0:t.metrics)?void 0:n.totalHeight);return Number.isFinite(r)&&r>0?Math.ceil(r):0}(e,t);return n>0&&xt(e,n,t),n}function Kt(e){var t;return Mt(wt(e),de.get(e))?null!=(t=ce.get(e))?t:0:Bt(e)}function Tt(e){return e===Se&&He===e&&!ge.value}function Ft(){if(null!=xe&&"function"==typeof cancelAnimationFrame&&cancelAnimationFrame(xe),xe=null,null!=Ke&&"undefined"!=typeof window&&window.clearTimeout(Ke),Ke=null,"undefined"!=typeof window)for(const e of Be)window.clearTimeout(e);Be=[]}function Ht(){var e;return Math.max(0,Z.value||(null==(e=U.value)?void 0:e.clientHeight)||0)}function qt(){const e=U.value;if(!e||"function"!=typeof getComputedStyle)return void(_e={top:0,bottom:0});const t=getComputedStyle(e),n=Number.parseFloat(t.paddingTop)||0,r=Number.parseFloat(t.paddingBottom)||0;_e={top:n,bottom:r}}function Rt(){return _e.top}function Nt(){const e=_e;return Math.max(0,Ue.value.totalHeight+e.top+e.bottom)}function Ct(){var e,t;return Math.max(Nt(),null!=(t=null==(e=U.value)?void 0:e.scrollHeight)?t:0)}function At(){return Math.max(0,X.value-Rt())}function Pt(){return Math.max(0,Ct()-Ht())}function _t(e){const t=Number(e);return Number.isFinite(t)?Math.max(0,Math.min(t,Pt())):0}function jt(){return Math.max(0,Pt()-X.value)}function It(){const e=jt();ne.value=e<=2,!0!==r.stickToBottom?!1!==r.stickToBottom?te.value=e<=48:te.value=!1:te.value=!0}function zt(){var e,t;const n=null!=(t=null==(e=U.value)?void 0:e.clientWidth)?t:0;ee.value=Number.isFinite(n)&&n>0?32*Math.round(n/32):0}function $t(e={}){const t=U.value;t&&(X.value=Math.max(0,t.scrollTop||0),Z.value=t.clientHeight||0),zt(),It(),(!0===e.remember||!1!==e.remember&&!he.value)&&vn()}function Ot(e,t={}){const n=_t(e),o=U.value;if(X.value=n,o&&(Z.value=o.clientHeight||Z.value||0,!1!==t.writeDom&&Math.abs((o.scrollTop||0)-n)>J)){const e={target:n,preserveBottomPin:!1!==r.stickToBottom&&Math.abs(Pt()-n)<=2};Me=ge.value?e:null,o.scrollTop=n,e.target=Math.max(0,o.scrollTop||0)}zt(),!1!==t.updatePinned&&It(),(!0===t.remember||!1!==t.remember&&!he.value)&&vn()}function Lt(){if(!ge.value){Me=null;const e=U.value,t=qe;return e&&null!=t&&Math.abs((e.scrollTop||0)-t)>J&&(e.scrollTop=t),void pn(He,be)}const e=U.value,t=Me,n=Math.max(0,(null==e?void 0:e.scrollTop)||0);return e&&t&&Math.abs(n-t.target)<=J&&t.preserveBottomPin&&!1!==r.stickToBottom||e&&ne.value&&"auto"===r.stickToBottom&&(Math.abs(Pt()-n)<=2||n>=X.value-J)||!0===r.stickToBottom?(te.value=!0,ne.value=!0,void Ot(Pt(),{writeDom:!0,remember:!1})):(Me=null,void $t())}function Et(e){Ot(e,{writeDom:!0,remember:!0})}function Dt(){Et(Pt())}function Wt(e,t){const n=ae.get(e);if(!Number.isFinite(n)||null==n||n<=0)return 0;const r=le.get(e);return t&&r&&!Vt(r,t)?0:Math.ceil(n)}function Vt(e,t){var n,r,o,a;return e.sourceKey===t.sourceKey&&(0===(null!=(n=t.widthBucket)?n:0)||0===(null!=(r=e.widthBucket)?r:0)||(null!=(o=t.widthBucket)?o:0)===(null!=(a=e.widthBucket)?a:0))&&(Yt(t.measurementKey)||Yt(e.measurementKey)||t.measurementKey===e.measurementKey)}function Yt(e){return":0"===e||!0===(null==e?void 0:e.startsWith(":0"))}function Gt(e){ae.delete(e),le.delete(e),ie.delete(e),ue.delete(e)}function Jt(e,t,n,o={}){if(!Number.isFinite(t)||t<=0)return;const a=re.get(e),l=n&&!kt(oe.get(e),n),i=!0===o.releaseRestoredFloor;!function(e,t){if(!t)return;const n=le.get(e);n&&!Vt(n,t)&&(ae.delete(e),le.delete(e),ie.delete(e),ue.delete(e))}(e,n),i&&Gt(e);const u=Wt(e,n),s=u>0?u:Math.ceil(t);if(null!=a&&Math.abs(a-s)<=1&&!l)return void(i&&(Je.value+=1));if(!1===o.updateLayout)return n&&oe.set(e,n),re.set(e,s),void gn(o.rememberThreadKey);if(he.value)return n&&oe.set(e,n),re.set(e,s),tt(e,s),void function(e=He,t=be){t&&y(()=>{pn(e,t),null==xe&&"function"==typeof requestAnimationFrame&&(xe=requestAnimationFrame(()=>{xe=null,pn(e,t)}))})}();const c=(d=mn(),m=jt(),!0===r.stickToBottom?{type:"bottom",distanceFromBottomPx:0}:"auto"===r.stickToBottom&&te.value?{type:"bottom",distanceFromBottomPx:ne.value?0:Math.max(0,m)}:d);var d,m;n&&oe.set(e,n),re.set(e,s),tt(e,s),gn(o.rememberThreadKey),function(e){if(!Qt.scheduled)return Qt.anchor=e,Qt.scheduled=!0,void(Qt.raf=en(nn));!Qt.anchor&&e&&(Qt.anchor=e)}(c)}g([()=>function(){const e=r.layoutRevision;return null!=e?["explicit",String(e),r.items.length].join(""):r.items.map((e,t)=>{var n;const o=lt(e,t),a=j(e,t,r);return[o,I(e,t,r),a?1:0,null!=(n=E(e,t,r))?n:"",dt(e,t),ct(e,t,a),(l=null==e?void 0:e.component,l?"string"==typeof l?`s:${l}`:`o:${st(l)}`:"")].join("");var l}).join("\0")}(),Ee,De,Ie,()=>st(r.estimateItemHeight),()=>st(r.getKey),()=>st(r.getKind),()=>st(r.getContent),()=>st(r.getFinal),()=>st(r.getRevision)],()=>Xe(),{immediate:!0,flush:"sync"});const Qt={scheduled:!1,raf:null,anchor:void 0},Ut=/* @__PURE__ */new Map;let Xt=!1,Zt=null;function en(e){return"function"==typeof requestAnimationFrame?requestAnimationFrame(e):(y(e),null)}function tn(e){null!=e&&"function"==typeof cancelAnimationFrame&&cancelAnimationFrame(e)}function nn(){if(!Qt.scheduled)return;Qt.scheduled=!1,Qt.raf=null;const e=Qt.anchor;Qt.anchor=void 0;const t="bottom"===(null==e?void 0:e.type)&&e.distanceFromBottomPx<=2&&ne.value;e&&kn(e);const n=U.value,r=!n||Math.abs((n.scrollTop||0)-X.value)<=J;t&&!r||$t({remember:!1})}function rn(){var e,t;if(!Xt)return;Xt=!1,Zt=null;const n=Array.from(Ut.entries());Ut.clear();for(const[r,o]of n){if(ce.get(r)!==o.logicalHeight)continue;const n=Ye.get(r);if(!n)continue;const a=(null!=(e=o.threadKey)?e:"")===(null!=(t=Ie.value)?t:"");ln(n,{allowMarkdownShrink:o.allowMarkdownShrink,allowRestoredFloorShrink:o.allowRestoredFloorShrink,markdownLogicalHeight:o.logicalHeight,rememberThreadKey:o.threadKey,source:o.itemSizeSource,updateLayout:a})}nn()}function on(){rn(),nn()}function an(e){var t;null==(t=fe.get(e))||t.disconnect(),fe.delete(e),me.delete(e)}function ln(e,t={}){var n,o,a;const l=(s=e.key,D(me.get(s),Q));var s;const c=null!=(n=t.source)?n:yt(e);let d=!1;const m=()=>{d||(d=!0,function(e,t){const n=function(){if(!0!==r.debug||0===V.size)return null;let e=0;for(const n of V.values())e+=n;const t={total:e,byLabel:Object.fromEntries(Array.from(V.entries()).sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0])))};return V.clear(),t}();n&&console.info("[markstream-vue][timeline][perf] layout-reads",{label:e,itemKey:t,layoutReads:n})}("reconcileRecordSize",e.key))};if(!e.markdown)return l>0&&Jt(e.key,l,c,t),void m();const f=kt(oe.get(e.key),c)&&null!=(o=re.get(e.key))?o:0,v=null!=(a=t.markdownLogicalHeight)?a:Kt(e.key),h=function(e,t){return W(me.get(e),Q,t)}(e.key,l);if(v>0){let n=Math.max(l,v+h);(!t.allowMarkdownShrink||he.value)&&f>0&&(n=Math.max(n,f));const r=Wt(e.key,c),o=r>0&&n>r+1;return e.markdown&&r>0&&(!0===t.allowRestoredFloorShrink||o)?he.value?ue.add(e.key):t=u(i({},t),{releaseRestoredFloor:!0}):t.allowMarkdownShrink&&!he.value&&(r<=0||t.allowRestoredFloorShrink&&function(e,t,n){const r=ie.get(e);return!Number.isFinite(r)||null==r||r<=0||t+Math.max(0,n-r)<n-1}(e.key,v,r))&&Gt(e.key),n>0&&Jt(e.key,n,c,t),void m()}return String(L(mt(e),e.index,r)).trim()?f>0?(l>f+1&&Jt(e.key,l,c,t),void m()):(l>0&&Jt(e.key,l,c,t),void m()):(l>0&&(Gt(e.key),Jt(e.key,l,c,t)),void m())}function un(e){return t=>{!function(e,t){const n=function(e){const t=e&&"$el"in e?e.$el:e;return t instanceof HTMLElement?t:null}(t),r=me.get(e.key);if(!n)return void an(e.key);if(r===n)return void ln(e);if(an(e.key),me.set(e.key,n),ln(e),"undefined"==typeof ResizeObserver)return;const o=new ResizeObserver(()=>{ln(e)});o.observe(n),fe.set(e.key,o)}(e,t)}}function sn(e){const t=mt(e),n=O(t,e.index,r),a=se.get(e.key),s=Oe.value,d=Le.value,m={enabled:!0,sessionKey:ht(e),threadKey:Ie.value,scrollRoot:()=>U.value,restoreState:St(e,a)?a:null,restoreAnchor:!1,measurementKey:De.value,settleMode:"manual",settledToken:n,emitIntervalMs:96,heightDiffThresholdPx:4};return u(i({content:L(t,e.index,r),final:n,mode:s,codeRenderer:d},n?{nodeVirtual:"auto",maxLiveNodes:50,liveNodeBuffer:16}:{}),{fade:!0===r.markdownFade,indexKey:ht(e),virtualScroll:m,onHeightChange(t){if(t.sessionKey!==ht(e))return;xt(e.key,t.totalHeight,{sessionKey:t.sessionKey,threadKey:Ie.value,measurementKey:De.value});const n=function(e){return"final"===e.phase||!(!0!==e.final||!l(e.confidence))||!!e.stable&&(l(e.confidence)||c(e))}(t),r=function(e){return"final"===e.phase||!!e.stable&&(l(e.confidence)||c(e))}(t),a=Math.ceil(t.totalHeight);var i;!function(e,t){Ut.set(e.key,t),Xt||(Xt=!0,Zt=en(rn))}(e,{allowMarkdownShrink:n,allowRestoredFloorShrink:r,itemSizeSource:yt(e),logicalHeight:a,threadKey:Ie.value}),i={itemKey:e.key,metrics:t},o("height-change",i)},onVirtualStateChange(t){var n;t.sessionKey===ht(e)&&(se.set(e.key,t),Bt(e.key,t),gn(),n={itemKey:e.key,state:t},o("virtual-state-change",n))}})}function cn(e){return{item:mt(e),index:e.index,itemKey:e.key,kind:e.kind,measureRef:un(e),markdownProps:sn(e)}}function dn(e){var t;const n=null!=(t=mt(e))?t:{};return"string"==typeof n.text?n.text:"string"==typeof n.message?n.message:"string"==typeof n.label?n.label:L(n,e.index,r)}function mn(){const e=jt();if(e<=2)return{type:"bottom",distanceFromBottomPx:Math.max(0,e)};const t=At(),n=nt(t,"gt"),r=Ue.value.records[n];if(r){const e=Ze(r);if(t>=e&&t<e+r.size)return{type:"item",itemKey:r.key,offsetWithinItemPx:t-e}}const o=at.value.records[0];return o?{type:"item",itemKey:o.key,offsetWithinItemPx:0}:void 0}function fn(e=Ie.value){on();const t={},n={};for(const r of Ue.value.records){const o=bt(r,e),a=oe.get(r.key);null!=o&&pt(r,a,e)&&(t[r.key]=o,n[r.key]=a)}return{threadKey:e,measurementKey:Ee.value,widthBucket:ee.value,outerAnchor:mn(),itemHeights:t,itemSizeSources:n,markdownStates:Object.fromEntries(se.entries())}}function vn(e=Ie.value){if(!e)return;const t=fn(e);return ve.set(e,t),e===Ie.value&&(Ce=t),a(t),t}function hn(){const e=pe;return null!=Te&&"undefined"!=typeof window&&window.clearTimeout(Te),Te=null,pe=void 0,e?vn(e):void 0}function gn(e=Ie.value){e&&(pe=e,null==Te&&("undefined"!=typeof window?Te=window.setTimeout(()=>{Te=null,hn()},80):hn()))}function yn(e){if(!e)return null;if("bottom"===e.type)return(ge.value?Ct():Nt())-Ht()-Math.max(0,e.distanceFromBottomPx);const t=wt(e.itemKey);return t?Rt()+Ze(t)+Math.max(0,e.offsetWithinItemPx):null}function kn(e,t={}){const n=yn(e);return null!=n&&(Ot(n,{writeDom:!0,remember:!0===t.remember}),!0)}function pn(e,t){if(e===Se){if(t){const e=kn(t,{remember:!1});qe=e?X.value:null}$t({remember:!1})}}function bn(e,t){const n=e.getBoundingClientRect();return n.width>0&&n.height>0&&n.bottom>t.top&&n.top<t.bottom}function wn(e,t){const n=e.getBoundingClientRect(),r=t.getBoundingClientRect();return n.bottom>r.top&&n.top<r.bottom}function Mn(e){if(e.closest(".code-editor-container.is-hidden"))return!1;let t=e;for(;t;){const e=window.getComputedStyle(t);if("none"===e.display||"hidden"===e.visibility||Number.parseFloat(e.opacity||"1")<=.01)return!1;t=t.parentElement}const n=e.getBoundingClientRect();return n.width>0&&n.height>0}function Sn(e){if(!e)return!1;if(e.classList.contains("is-fading-out"))return!1;const t=window.getComputedStyle(e);if("none"===t.display||Number.parseFloat(t.opacity||"1")<=.01)return!1;const n=e.getBoundingClientRect();return n.width>0&&n.height>0}function xn(e){return Array.from(e.querySelectorAll(['[data-markstream-pending="true"]','[data-markstream-mermaid][data-markstream-mode="pending"]','.mermaid-block-container[data-markstream-mode="pending"]','[data-markstream-code-loading="1"]'].join(","))).some(e=>!e.matches('[data-markstream-code-block="1"]')||!Sn(e.querySelector("pre.code-pre-fallback")))}function Bn(e){var t;if(e.querySelector(":scope > .node-placeholder"))return!1;const n=e.querySelector(":scope > .node-content");return!!n&&(!xn(n)&&(!!function(e){const t=Array.from(e.querySelectorAll("[data-markstream-math]"));return!t.length||t.every(e=>{const t=e.dataset.markstreamMode;return!("true"===e.dataset.markstreamPending||"loading"===t||"katex"!==t&&"fallback"!==t)})}(n)&&("code_block"===(null!=(t=e.dataset.nodeType)?t:"")?function(e){if(e.querySelector('[data-markstream-code-loading="1"]'))return!1;const t=e.querySelector('[data-markstream-code-block="1"]');if(t){const e="true"===t.dataset.markstreamEnhanced,r=Sn(t.querySelector("pre.code-pre-fallback"));return e||r||(n=t,Array.from(n.querySelectorAll(".monaco-editor, .monaco-diff-editor")).some(Mn))}var n;return function(e){var t,n;const r=e.querySelector("[data-markstream-mermaid], .mermaid-block-container");if(r){if("true"===r.dataset.markstreamPending)return!1;const e=r.dataset.markstreamMode;return"preview"===e?Boolean(r.querySelector("svg")||r.querySelector('[data-mermaid-svg-layer="1"] svg')):"fallback"===e&&Boolean(null==(n=null==(t=r.querySelector(".mermaid-source-code"))?void 0:t.textContent)?void 0:n.trim())}const o=e.querySelector("[data-markstream-infographic], .infographic-block-container");if(o)return"true"!==o.dataset.markstreamPending;const a=e.querySelector("[data-markstream-d2], .d2-block-container");return a?"true"!==a.dataset.markstreamPending:Boolean(e.querySelector('pre[data-markstream-pre="1"]'))}(e)}(n):function(e){var t;return(null!=(t=e.textContent)?t:"").trim().length>0||Boolean(e.querySelector(["hr","br","table","blockquote","img","svg","canvas","input","button","select","textarea","[role]","[aria-label]","[data-markstream-math]","[data-markstream-mermaid]","[data-markstream-infographic]","[data-markstream-d2]",'[data-markstream-pre="1"]'].join(",")))}(n))))}function Kn(e,t){var n;if(!e.markdown)return!0;const o=L(mt(e),e.index,r);if(!String(null!=o?o:"").trim())return!0;if(t.querySelector("[data-node-index]"))return!0;const a=t.querySelector(".markdown-renderer"),l=null!=a?a:t;return!xn(l)&&(!!(null!=(n=l.textContent)?n:"").trim()||Boolean(l.querySelector(["hr","br","table","blockquote","img","svg","canvas","input","button","[role]","[aria-label]","[data-markstream-math]","[data-markstream-mermaid]","[data-markstream-infographic]","[data-markstream-d2]",'[data-markstream-pre="1"]','[data-markstream-code-block="1"]'].join(","))))}function Tn(e,t,n){if(!e.markdown)return!0;const o=L(mt(e),e.index,r);if(!String(null!=o?o:"").trim())return!0;const a=n.getBoundingClientRect(),l=Array.from(t.querySelectorAll("[data-node-index]")).filter(e=>bn(e,a));if(l.length>0)return l.every(e=>Bn(e));const i=t.querySelector(".markdown-renderer"),u=null!=i?i:t;return u.querySelector("[data-node-index], .node-placeholder")?!!function(e,t,n,r){if(!Fn(e))return!1;const o=n.getBoundingClientRect(),a=t.getBoundingClientRect();return o.width>0&&o.height>0&&o.bottom<=r.top+1&&a.bottom>r.top}(e,t,u,a)&&Kn(e,t):Kn(e,t)}function Fn(e){const t=oe.get(e.key);return Wt(e.key,t)>0}function Hn(e,t){var n,o,a,i;if(!e.markdown)return!0;if(!Re&&!Ne)return!0;if(Fn(e))return!0;const u=L(mt(e),e.index,r);if(!String(null!=u?u:"").trim())return!0;if(!t.querySelector(".markdown-renderer"))return!1;const s=se.get(e.key);if(!St(e,s))return!1;const d=null==s?void 0:s.metrics,m=Number(null!=(n=null==d?void 0:d.totalHeight)?n:0);if(!Number.isFinite(m)||m<=0)return!1;const f=Number(null!=(o=null==d?void 0:d.measuredCount)?o:0),v=Number(null!=(a=null==d?void 0:d.estimatedCount)?a:0),h=Number(null!=(i=null==d?void 0:d.nodeCount)?i:0),g=h<=0||f>=h&&v<=0,y=l(null==d?void 0:d.confidence),k=c(d),p=!0===(null==d?void 0:d.stable)||y||k;return Ne?!0===(null==d?void 0:d.final)&&(g&&y||k):p||!0===(null==d?void 0:d.final)}function qn(){const e=U.value;if(!e)return!1;const t=yn(be);if(null!=t&&Math.abs((e.scrollTop||0)-_t(t))>J)return!1;const n=at.value.records;if(!n.length)return 0===Ue.value.records.length;const r=new Map(Array.from(e.querySelectorAll("[data-markstream-item-key]")).map(e=>{var t;return[null!=(t=e.dataset.markstreamItemKey)?t:"",e]})),o=[];for(const i of n){const t=r.get(i.key);t&&wn(t,e)&&o.push({record:i,el:t})}if(!o.length)return!1;for(const{record:i,el:u}of o){if(u.offsetHeight+1<i.size)return!1;if(!Tn(i,u,e))return!1;if(!Hn(i,u))return!1}const a=e.getBoundingClientRect();if(Array.from(e.querySelectorAll(['[data-markstream-pending="true"]','[data-markstream-mermaid][data-markstream-mode="pending"]','.mermaid-block-container[data-markstream-mode="pending"]','[data-markstream-code-loading="1"]'].join(","))).some(e=>!(!bn(e,a)||e.matches('[data-markstream-code-block="1"]')&&Sn(e.querySelector("pre.code-pre-fallback")))))return!1;const l=Array.from(e.querySelectorAll("[data-node-index]")).filter(e=>bn(e,a));for(const i of l)if(!Bn(i))return!1;return!0}function Rn(){const e=U.value;if(!e)return"";const t=e.getBoundingClientRect(),n=new Map(Array.from(e.querySelectorAll("[data-markstream-item-key]")).map(e=>{var t;return[null!=(t=e.dataset.markstreamItemKey)?t:"",e]})),r=at.value.records.map(e=>{var t,r,o,a,l,i,u,s,c;const d=n.get(e.key),m=null==d?void 0:d.querySelector(".markdown-renderer"),f=null==(t=se.get(e.key))?void 0:t.metrics;return[e.key,e.size,null!=(r=null==d?void 0:d.offsetHeight)?r:0,null!=(o=null==d?void 0:d.scrollHeight)?o:0,null!=(a=null==m?void 0:m.offsetHeight)?a:0,null!=(l=null==m?void 0:m.scrollHeight)?l:0,f?Math.round(Number(f.totalHeight||0)):"",null!=(i=null==f?void 0:f.measuredCount)?i:"",null!=(u=null==f?void 0:f.estimatedCount)?u:"",null!=(s=null==f?void 0:f.nodeCount)?s:"",!0===(null==f?void 0:f.final)?1:0,!0===(null==f?void 0:f.stable)?1:0,null!=(c=null==f?void 0:f.confidence)?c:""].join(":")}).join("|"),o=Array.from(e.querySelectorAll("[data-node-index]")).filter(e=>bn(e,t)).map(e=>{var t,n,r,o,a;const l=e.getBoundingClientRect(),i=e.querySelector(":scope > .node-content"),u=null==i?void 0:i.querySelector('[data-markstream-code-block="1"]'),s=null==i?void 0:i.querySelector("pre.code-pre-fallback"),c=null==i?void 0:i.querySelector(".monaco-editor, .monaco-diff-editor");return[null!=(t=e.dataset.nodeIndex)?t:"",null!=(n=e.dataset.nodeType)?n:"",Math.round(l.height),null!=(r=null==i?void 0:i.offsetHeight)?r:0,null!=(o=null==i?void 0:i.scrollHeight)?o:0,null!=(a=null==u?void 0:u.dataset.markstreamEnhanced)?a:"",u?Math.round(u.getBoundingClientRect().height):0,s?Math.round(s.getBoundingClientRect().height):0,c?Math.round(c.getBoundingClientRect().height):0].join(":")}).join("|");return[Math.round(e.scrollTop||0),Math.round(e.scrollHeight||0),Math.round(Ue.value.totalHeight||0),r,o].join("\n")}function Nn(){return"undefined"!=typeof performance?performance.now():Date.now()}function Cn(){return Ne?24:2}function An(e){Tt(e)&&Ae!==e&&(Ae=e,function(e){return t=this,n=function*(){const t=Nn();let n=0,r="";for(let o=0;o<40;o++){if(yield y(),yield new Promise(e=>{"function"!=typeof requestAnimationFrame?e():requestAnimationFrame(()=>e())}),!Tt(e))return!1;pn(e,be);const o=Nn(),a=qn(),l=a?Rn():"";if(a&&l===r&&l){if(n+=1,n>=Cn()&&o-t>=96)return!0}else n=0,r=l}return!1},new Promise((e,r)=>{var o=e=>{try{l(n.next(e))}catch(t){r(t)}},a=e=>{try{l(n.throw(e))}catch(t){r(t)}},l=t=>t.done?e(t.value):Promise.resolve(t.value).then(o,a);l((n=n.apply(t,null)).next())});var t,n}(e).then(t=>{if(Ae===e&&(Ae=0),Tt(e))return t?void zn(e):function(){if(Fe<0)return!1;const e=function(){if(!1===r.restoreMaxLoadingMs)return Number.POSITIVE_INFINITY;const e=Number(r.restoreMaxLoadingMs);return Number.isFinite(e)&&e>0?e:Number.POSITIVE_INFINITY}();return Number.isFinite(e)&&Nn()-Fe>=e}()?(!0===r.debug&&import.meta,void zn(e)):(function(e){Pe!==e&&(Pe=e,!0===r.debug&&import.meta)}(e),void function(e){Tt(e)&&"undefined"!=typeof window&&(null!=Ke&&window.clearTimeout(Ke),Ke=window.setTimeout(()=>{Ke=null,Tt(e)&&An(e)},120))}(e))}))}function Pn(){ge.value=!0,Fe=-1,Ae=0,Pe=0,Re=!1,Ne=!1,null!=Ke&&"undefined"!=typeof window&&window.clearTimeout(Ke),Ke=null}function _n(){je=!0}function jn(e){var t,n;const r=[];if(!function(e){var t,n;return!!e&&(null!=(t=e.measurementKey)?t:"")===Ee.value&&(null!=(n=e.widthBucket)?n:0)===ee.value}(e))return r;for(const[o,a]of Object.entries(null!=(t=null==e?void 0:e.itemHeights)?t:{})){if(!Number.isFinite(a)||a<=0)continue;const t=wt(o),l=null==(n=null==e?void 0:e.itemSizeSources)?void 0:n[o];pt(t,l)&&r.push([o,Math.ceil(a),l])}return r}function In(e){var t;for(const[n,r]of Object.entries(null!=(t=null==e?void 0:e.markdownStates)?t:{}))if(St(wt(n),r))return!0;return!1}function zn(e){if(e!==Se)return;rn();const t=new Set(ue);Ft(),pn(e,be),he.value=!1,Fe=-1,be=void 0,qe=null,He=0;for(const n of Ue.value.records)n.markdown&&!t.has(n.key)||Gt(n.key);for(const n of t){const e=Ye.get(n);e?ln(e,{allowMarkdownShrink:!0,allowRestoredFloorShrink:!0,markdownLogicalHeight:Kt(e.key),source:yt(e),updateLayout:!0}):Gt(n)}ue.clear(),nn(),$t({remember:!1}),Pn(),_n()}function $n(e,t={}){var n;const o=++Se;Me=null,(null==e?void 0:e.widthBucket)&&0===ee.value&&(ee.value=e.widthBucket);const a=null==e?void 0:e.outerAnchor,l=function(e){return Boolean((null==e?void 0:e.outerAnchor)||jn(e).length>0||In(e))}(e),i=In(e),u=!(!je&&!0!==t.threadSwitch||l),s=l||u,c=null!=a?a:s?function(){if(!1!==r.stickToBottom)return{type:"bottom",distanceFromBottomPx:0};const e=Ue.value.records[0];return e?{type:"item",itemKey:e.key,offsetWithinItemPx:0}:void 0}():void 0;Ft(),Ae=0,Pe=0,ge.value=!s,he.value=s&&Boolean(c),He=o,be=c,Re=s&&i,Ne=s&&u,Fe=he.value?Nn():-1,On(),re.clear(),oe.clear(),ae.clear(),le.clear(),ie.clear(),ue.clear(),se.clear(),ce.clear(),de.clear();for(const[r,m,f]of jn(e)){const e=Math.ceil(m);oe.set(r,f),re.set(r,e),ae.set(r,e),le.set(r,f)}for(const[r,m]of Object.entries(null!=(n=null==e?void 0:e.markdownStates)?n:{})){se.set(r,m);const e=Bt(r,m);e>0&&ie.set(r,e)}Xe(),!0===r.stickToBottom?(te.value=!0,ne.value=!0):!1===r.stickToBottom?(te.value=!1,ne.value=!1):(te.value="bottom"===(null==c?void 0:c.type),ne.value="bottom"===(null==c?void 0:c.type)&&c.distanceFromBottomPx<=2);const d=yn(c);return qe=null==d?null:_t(d),null!=d&&Ot(d,{writeDom:!0,remember:!1,updatePinned:!1}),Ce=(null==e?void 0:e.threadKey)===Ie.value?e:null,s?c?void y(()=>{pn(o,c),"undefined"!=typeof window?(ke.forEach(e=>{const t=window.setTimeout(()=>{pn(o,c)},e);Be.push(t)}),An(o)):zn(o)}):(he.value=!1,be=void 0,qe=null,He=0,$t({remember:!1}),Pn(),void _n()):(he.value=!1,be=void 0,qe=null,He=0,$t({remember:!1}),Pn(),_n(),void(!1!==r.stickToBottom&&(te.value=!0,ne.value=!0,y(()=>{he.value||Dt()}))))}function On(){for(const e of fe.values())e.disconnect();fe.clear(),me.clear()}return g(Ie,(e,t)=>{const n=null!=ze?ze:t,o=Boolean(n&&n!==e);o&&function(e){var t;on(),(null==(t=hn())?void 0:t.threadKey)!==e&&((null==Ce?void 0:Ce.threadKey)===e?(ve.set(e,Ce),a(Ce)):ve.has(e)||vn(e))}(n),ze=e,$n(function(e){return(e?ve.get(e):null)||function(e){var t;const n=r.initialThreadState;return n?(null!=(t=n.threadKey)?t:"")!==(null!=e?e:"")?null:n:null}(e)}(e),{threadSwitch:o})},{immediate:!0,flush:"sync"}),g(()=>at.value.records.map(e=>e.key).join("\0"),()=>{var e;e={start:at.value.start,end:at.value.end},o("range-change",e)},{immediate:!0}),g(()=>[r.items.length,Ue.value.totalHeight],()=>{he.value||!1!==r.stickToBottom&&("auto"!==r.stickToBottom||ne.value)&&y(()=>{he.value||!1!==r.stickToBottom&&("auto"!==r.stickToBottom||ne.value)&&Dt()})},{flush:"post"}),k(()=>{qt(),zt(),be?(pn(He,be),$t({remember:!1}),vn()):!1===r.stickToBottom?($t({remember:!1}),vn()):(te.value=!0,Ot(Pt(),{writeDom:!0,remember:!1,updatePinned:!1}),$t({remember:!1}),vn()),U.value&&"undefined"!=typeof ResizeObserver&&(we=new ResizeObserver(()=>{qt(),$t()}),we.observe(U.value))}),p(()=>{ge.value||An(He)}),b(()=>{hn()||vn(),Ft(),Me=null,null!=Te&&"undefined"!=typeof window&&window.clearTimeout(Te),Te=null,pe=void 0,tn(Qt.raf),Qt.scheduled=!1,Qt.raf=null,Qt.anchor=void 0,tn(Zt),Xt=!1,Zt=null,Ut.clear(),On(),oe.clear(),ae.clear(),le.clear(),ie.clear(),ue.clear(),ce.clear(),de.clear(),null==we||we.disconnect(),we=null}),t({captureThreadState:function(){return fn(Ie.value)},restoreThreadState:$n,scrollToBottom:Dt,scrollToIndex:function(e,t="start"){const n=Ue.value.records[e];if(!n)return;let r=Rt()+Ze(n);"center"===t?r-=(Z.value-n.size)/2:"end"===t&&(r-=Z.value-n.size),Et(r)},scrollToOffset:Et,getItemSize:e=>{var t;const n=wt(e);return n&&null!=(t=bt(n))?t:void 0},getTotalHeight:()=>Ue.value.totalHeight,getVisibleRange:()=>({start:at.value.start,end:at.value.end})}),(e,t)=>(w(),M("div",{ref_key:"scrollRoot",ref:U,class:S(["markstream-virtual-timeline",{"is-restoring-thread":!ge.value}]),"data-markstream-virtual-timeline":"1","data-testid":"markstream-virtual-timeline",onScroll:Lt},[x("div",{class:"markstream-virtual-timeline__spacer",style:B({height:`${at.value.topSpacerHeight}px`}),"aria-hidden":"true"},null,4),(w(!0),M(K,null,T(at.value.records,t=>(w(),M("div",{key:t.renderKey,class:S(["markstream-virtual-timeline__item",{"is-restored-height-floor":Fn(t)}]),"data-markstream-item-key":t.key,"data-markstream-item-kind":t.kind,style:B({minHeight:`${t.size}px`,"--markstream-virtual-item-size":`${t.size}px`})},[F(e.$slots,"default",H({ref_for:!0},cn(t)),()=>{var e,n;return[t.markdown?(w(),q(R(_),H({key:0,ref_for:!0},sn(t)),null,16)):vt(t)?(w(),q(N(vt(t)),{key:1,ref_for:!0,ref:un(t),item:mt(t)},null,8,["item"])):(w(),M("div",{key:2,ref_for:!0,ref:un(t),class:S(["markstream-virtual-timeline__default-item",`markstream-virtual-timeline__default-item--${t.kind||"item"}`])},["tool-call"===t.kind&&(null==(e=mt(t))?void 0:e.status)?(w(),M("span",G,C(null==(n=mt(t))?void 0:n.status),1)):A("",!0),P(" "+C(dn(t)),1)],2))]},!0)],14,Y))),128)),x("div",{class:"markstream-virtual-timeline__spacer",style:B({height:`${at.value.bottomSpacerHeight}px`}),"aria-hidden":"true"},null,4),ge.value?A("",!0):(w(),M("div",{key:0,class:"markstream-virtual-timeline__restore-loading",style:B({height:`${Math.max(1,Ht())}px`,transform:`translateY(${X.value}px)`}),"aria-live":"polite","aria-busy":"true"},[F(e.$slots,"restore-loading",{threadKey:Ie.value,visibleRecords:at.value.records},()=>[t[0]||(t[0]=x("div",{class:"markstream-virtual-timeline__restore-loading-card"},[x("span",{class:"markstream-virtual-timeline__restore-spinner","aria-hidden":"true"}),x("span",null,"Loading thread…")],-1))],!0)],4))],34))}})),[["__scopeId","data-v-408c20db"]]),U=Q;U.install=e=>{var t,n;const r=null!=(n=null!=(t=U.__name)?t:U.name)?n:"MarkstreamVirtualTimeline";e.component(r,Q)};export{U as default};
package/dist/monaco.js CHANGED
@@ -1 +1 @@
1
- var n=(n,l,t)=>new Promise((o,r)=>{var e=n=>{try{i(t.next(n))}catch(l){r(l)}},u=n=>{try{i(t.throw(n))}catch(l){r(l)}},i=n=>n.done?o(n.value):Promise.resolve(n.value).then(e,u);i((t=t.apply(n,l)).next())});import{m as l}from"./index2.js";import{i as t}from"./index2.js";let o=!1,r=null,e=null,u=null;function i(){return n(this,null,function*(){return!!(yield c())})}function c(){return n(this,null,function*(){if(u)return u;u=n(null,null,function*(){if(!e)try{if(e=function(n){const l=n;if("function"==typeof(null==l?void 0:l.useMonaco))return l;const t=null==n?void 0:n.default;return"function"==typeof(null==t?void 0:t.useMonaco)?t:null}(yield import("stream-monaco")),!e)return null}catch(t){return null}try{return yield function(l){return n(this,null,function*(){if(o)return;if(r)return r;const t=n(null,null,function*(){const n=null==globalThis?void 0:globalThis.MonacoEnvironment;n&&("function"==typeof n.getWorker||"function"==typeof n.getWorkerUrl)||"function"!=typeof(null==l?void 0:l.preloadMonacoWorkers)||(yield l.preloadMonacoWorkers()),o=!0});return r=t.finally(()=>{r=null}),r})}(e),l(),e}catch(t){return null}});try{return yield u}finally{u=null}})}export{c as getUseMonaco,t as isCodeBlockRuntimeReady,i as preloadCodeBlockRuntime};
1
+ var n=(n,l,t)=>new Promise((o,r)=>{var e=n=>{try{i(t.next(n))}catch(l){r(l)}},u=n=>{try{i(t.throw(n))}catch(l){r(l)}},i=n=>n.done?o(n.value):Promise.resolve(n.value).then(e,u);i((t=t.apply(n,l)).next())});import{m as l}from"./index2.js";import{i as t}from"./index2.js";let o=!1,r=null,e=null,u=null;function i(){return n(this,null,function*(){return!!(yield c())})}function c(){return n(this,null,function*(){if(u)return u;u=n(null,null,function*(){if(!e)try{if(e=function(n){const l=n;if("function"==typeof(null==l?void 0:l.useMonaco))return l;const t=null==n?void 0:n.default;return"function"==typeof(null==t?void 0:t.useMonaco)?t:null}(yield import("stream-diffs")),!e)return null}catch(t){return null}try{return yield function(l){return n(this,null,function*(){if(o)return;if(r)return r;const t=n(null,null,function*(){const n=null==globalThis?void 0:globalThis.MonacoEnvironment;n&&("function"==typeof n.getWorker||"function"==typeof n.getWorkerUrl)||"function"!=typeof(null==l?void 0:l.preloadMonacoWorkers)||(yield l.preloadMonacoWorkers()),o=!0});return r=t.finally(()=>{r=null}),r})}(e),l(),e}catch(t){return null}});try{return yield u}finally{u=null}})}export{c as getUseMonaco,t as isCodeBlockRuntimeReady,i as preloadCodeBlockRuntime};
package/dist/tailwind.js CHANGED
Binary file
@@ -92,6 +92,8 @@ interface MonacoEditorViewLike {
92
92
  height: number;
93
93
  }) => void;
94
94
  getContentHeight?: () => number;
95
+ getScrollTop?: () => number;
96
+ setScrollTop?: (scrollTop: number) => void;
95
97
  onDidContentSizeChange?: (listener: () => void) => MonacoDisposableLike | void;
96
98
  onDidLayoutChange?: (listener: () => void) => MonacoDisposableLike | void;
97
99
  }
@@ -11,8 +11,8 @@ declare const MERMAID_DISABLED_CODE = "MERMAID_DISABLED";
11
11
  declare function setMermaidWorker(w: Worker): void;
12
12
 
13
13
  declare function clearMermaidWorker(): void;
14
- declare function canParseOffthread(code: string, theme: Theme, timeout?: number): Promise<boolean>;
15
- declare function findPrefixOffthread(code: string, theme: Theme, timeout?: number): Promise<string>;
14
+ declare function canParseOffthread(code: string, theme: Theme, timeout?: number, signal?: AbortSignal): Promise<boolean>;
15
+ declare function findPrefixOffthread(code: string, theme: Theme, timeout?: number, signal?: AbortSignal): Promise<string>;
16
16
  declare function terminateWorker(): void;
17
17
 
18
18
  export { MERMAID_DISABLED_CODE, MERMAID_WORKER_BUSY_CODE, canParseOffthread, clearMermaidWorker, findPrefixOffthread, getMermaidWorkerLoad, setMermaidWorker, setMermaidWorkerClientDebug, setMermaidWorkerMaxConcurrency, terminateWorker };
@@ -1 +1 @@
1
- var e=Object.defineProperty,t=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable,o=(t,r,n)=>r in t?e(t,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[r]=n,i=(e,t,r)=>new Promise((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},l=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,l);a((r=r.apply(e,t)).next())});let l=null,a=!1,s=f;function u(e){var t;const r=null!=(t=null==e?void 0:e.default)?t:e;return r&&"function"==typeof r.renderToString?r:null}function c(){try{const e=globalThis;return u(null==e?void 0:e.katex)}catch(e){return null}}function f(){return i(null,null,function*(){const e=c();if(e)return e;const t=yield import("katex");try{yield import("katex/dist/contrib/mhchem")}catch(r){}return u(t)})}function m(e){s=e,l=null,a=!1}function d(e){m(null!=e?e:f)}function b(){m(null)}function h(){return"function"==typeof s}function w(){var e;const t=s;if(!t||t===f)return null;if(l)return l;const r=c();if(r)return l=r,l;try{const r=t();return r&&"function"!=typeof(null==r?void 0:r.then)?(l=null!=(e=u(r))?e:r,l):null}catch(n){return null}}function T(){return i(this,null,function*(){var e;const t=c();if(t)return l=t,l;if(l)return l;if(a)return null;const r=s;if(!r)return a=!0,null;try{const t=yield r();if(t)return l=null!=(e=u(t))?e:t,l}catch(n){}return a=!0,null})}function y(e){return e?e.replace(/·/g,"⋅").replace(/℃/g,"°C"):""}let E=null,v=null,k=!1;const p=/* @__PURE__ */new Map,M=/* @__PURE__ */new Map;let g=5;const x=/* @__PURE__ */new Set;function R(){if(p.size<g&&x.size){const t=Array.from(x);x.clear();for(const r of t)try{r()}catch(e){}}}function W(e){E=e,v=null,E.onmessage=e=>{const{id:t,html:r,error:n}=e.data,o=p.get(t);if(o)if(p.delete(t),clearTimeout(o.timeoutId),R(),n)o.reject(new Error(n));else{const{content:t,displayMode:n}=e.data;if(t){const e=`${n?"d":"i"}:${t}`;if(M.set(e,r),M.size>200){const e=M.keys().next().value;M.delete(e)}}o.resolve(r)}},E.onerror=e=>{console.error("[katexWorkerClient] Worker error:",e);for(const[t,r]of p.entries())clearTimeout(r.timeoutId),r.reject(new Error(`Worker error: ${e.message}`));p.clear(),R()}}function A(){var e;E&&(null==(e=E.terminate)||e.call(E)),E=null,v=null}function P(e){k=!!e,E&&E.postMessage({type:"init",debug:k})}function O(e,t=!0,r=2e3,n){return i(this,null,function*(){performance.now();const o=y(e);if(!h()){const e=new Error("KaTeX rendering disabled");return e.name="KaTeXDisabled",e.code="KATEX_DISABLED",Promise.reject(e)}if(v)return Promise.reject(v);const i=`${t?"d":"i"}:${o}`,l=M.get(i);if(l)return Promise.resolve(l);const a=E||(v=new Error("[katexWorkerClient] No worker instance set. Please inject a Worker via setKaTeXWorker()."),v.name="WorkerInitError",v.code="WORKER_INIT_ERROR",null);if(!a)return Promise.reject(v);if(p.size>=g){const e=new Error("Worker busy");return e.name="WorkerBusy",e.code="WORKER_BUSY",e.busy=!0,e.inFlight=p.size,e.max=g,Promise.reject(e)}return new Promise((e,i)=>{if(null==n?void 0:n.aborted){const e=new Error("Aborted");return e.name="AbortError",void i(e)}const l=Math.random().toString(36).slice(2),s=globalThis.setTimeout(()=>{p.delete(l);const e=new Error("Worker render timed out");e.name="WorkerTimeout",e.code="WORKER_TIMEOUT",i(e),R()},r);n&&n.addEventListener("abort",()=>{globalThis.clearTimeout(s),p.has(l)&&p.delete(l);const e=new Error("Aborted");e.name="AbortError",i(e),R()},{once:!0});const u=e,c=i;p.set(l,{resolve:e=>{u(e)},reject:e=>{c(e)},timeoutId:s}),a.postMessage({id:l,content:o,displayMode:t})})})}function j(e,t=!0,r){const n=`${t?"d":"i"}:${y(e)}`;if(M.set(n,r),M.size>200){const e=M.keys().next().value;M.delete(e)}}function K(){return{inFlight:p.size,max:g}}function I(e){Number.isFinite(e)&&e>0&&(g=Math.floor(e))}const z="WORKER_BUSY";function S(){return p.size>=g}function _(e=2e3,t){return p.size<g?Promise.resolve():new Promise((r,n)=>{let o,i=!1;const l=()=>{i||(i=!0,o&&globalThis.clearTimeout(o),x.delete(l),r())};if(x.add(l),o=globalThis.setTimeout(()=>{if(i)return;i=!0,x.delete(l);const e=new Error("Wait for worker slot timed out");e.name="WorkerBusyTimeout",e.code="WORKER_BUSY_TIMEOUT",n(e)},e),queueMicrotask(()=>R()),t){const e=()=>{if(i)return;i=!0,o&&globalThis.clearTimeout(o),x.delete(l);const e=new Error("Aborted");e.name="AbortError",n(e)};t.aborted?e():t.addEventListener("abort",e,{once:!0})}})}const B={timeout:2e3,waitTimeout:1500,backoffMs:30,maxRetries:1};function X(e){null!=e.timeout&&(B.timeout=Math.max(0,Math.floor(e.timeout))),null!=e.waitTimeout&&(B.waitTimeout=Math.max(0,Math.floor(e.waitTimeout))),null!=e.backoffMs&&(B.backoffMs=Math.max(0,Math.floor(e.backoffMs))),null!=e.maxRetries&&(B.maxRetries=Math.max(0,Math.floor(e.maxRetries)))}function $(){return((e,i)=>{for(var l in i||(i={}))r.call(i,l)&&o(e,l,i[l]);if(t)for(var l of t(i))n.call(i,l)&&o(e,l,i[l]);return e})({},B)}function D(e){return i(this,arguments,function*(e,t=!0,r={}){var n,o,i,l;if(!h()){const e=new Error("KaTeX rendering disabled");throw e.name="KaTeXDisabled",e.code="KATEX_DISABLED",e}const a=null!=(n=r.timeout)?n:B.timeout,s=null!=(o=r.waitTimeout)?o:B.waitTimeout,u=null!=(i=r.backoffMs)?i:B.backoffMs,c=null!=(l=r.maxRetries)?l:B.maxRetries,f=Number.isFinite(c)?Math.max(0,Math.min(Math.floor(c),8)):B.maxRetries,m=r.signal;let d=0;for(;;){if(null==m?void 0:m.aborted){const e=new Error("Aborted");throw e.name="AbortError",e}try{return yield O(e,t,a,m)}catch(b){if((null==b?void 0:b.code)!==z||d>=f)throw b;if(d++,yield _(s,m).catch(()=>{}),null==m?void 0:m.aborted){const e=new Error("Aborted");throw e.name="AbortError",e}u>0&&(yield new Promise(e=>globalThis.setTimeout(e,u*d)))}}})}export{z as W,K as a,T as b,A as c,b as d,d as e,w as f,$ as g,h,S as i,D as j,j as k,W as l,P as m,y as n,I as o,m as p,O as r,X as s,_ as w};
1
+ var e=Object.defineProperty,t=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable,o=(t,r,n)=>r in t?e(t,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[r]=n,l=(e,t,r)=>new Promise((n,o)=>{var l=e=>{try{a(r.next(e))}catch(t){o(t)}},i=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(l,i);a((r=r.apply(e,t)).next())});let i=null,a=!1,u=null,s=d;function c(e){var t;const r=null!=(t=null==e?void 0:e.default)?t:e;return r&&"function"==typeof r.renderToString?r:null}function f(){try{const e=globalThis;return c(null==e?void 0:e.katex)}catch(e){return null}}function d(){return l(null,null,function*(){const e=f();if(e)return e;const t=yield import("katex");try{yield import("katex/dist/contrib/mhchem")}catch(r){}return c(t)})}function m(e){const t=Promise.resolve(e).then(e=>{var r;return u===t&&e?(i=null!=(r=c(e))?r:e,i):null}).catch(()=>null).finally(()=>{u===t&&(u=null)});return u=t,a=!0,t}function b(e){s=e,i=null,a=!1,u=null}function h(e){b(null!=e?e:d)}function w(){b(null)}function y(){return"function"==typeof s}function v(){var e;const t=s;if(!t||t===d)return null;if(i)return i;const r=f();if(r)return i=r,i;if(a)return null;try{const r=t();return r?"function"==typeof(null==r?void 0:r.then)?(m(r),null):(i=null!=(e=c(r))?e:r,i):null}catch(n){return null}}function E(){return l(this,null,function*(){var e;const t=f();if(t)return i=t,i;if(i)return i;if(u)return u;if(a)return null;const r=s;if(!r)return a=!0,null;try{const t=r();if("function"==typeof(null==t?void 0:t.then))return m(t);if(t)return i=null!=(e=c(t))?e:t,a=!0,i}catch(n){}return a=!0,null})}function p(e){return e?e.replace(/·/g,"⋅").replace(/℃/g,"°C"):""}let T=null,k=null,M=!1;const g=/* @__PURE__ */new Map,x=/* @__PURE__ */new Map;let R=5;const W=/* @__PURE__ */new Set;function j(){if(g.size<R&&W.size){let t=R-g.size;for(const r of Array.from(W)){if(t<=0)break;W.delete(r),t--;try{r()}catch(e){}}}}function A(){for(const t of Array.from(W)){W.delete(t);try{t()}catch(e){}}}function P(e){T=e,k=null,T.onmessage=e=>{const{id:t,html:r,error:n}=e.data,o=g.get(t);if(o)if(g.delete(t),clearTimeout(o.timeoutId),o.cleanup(),j(),n)o.aborted||o.reject(new Error(n));else{const{content:t,displayMode:n}=e.data;if(t){const e=`${n?"d":"i"}:${t}`;if(x.set(e,r),x.size>200){const e=x.keys().next().value;x.delete(e)}}o.aborted||o.resolve(r)}},T.onerror=e=>{console.error("[katexWorkerClient] Worker error:",e);for(const[t,r]of g.entries())clearTimeout(r.timeoutId),r.cleanup(),r.aborted||r.reject(new Error(`Worker error: ${e.message}`));g.clear(),A()}}function O(){var e;for(const t of g.values())clearTimeout(t.timeoutId),t.cleanup(),t.aborted||t.reject(new Error("Worker cleared"));g.clear(),A(),T&&(null==(e=T.terminate)||e.call(T)),T=null,k=null}function I(e){M=!!e,T&&T.postMessage({type:"init",debug:M})}function K(e,t=!0,r=2e3,n){return l(this,null,function*(){performance.now();const o=p(e);if(!y()){const e=new Error("KaTeX rendering disabled");return e.name="KaTeXDisabled",e.code="KATEX_DISABLED",Promise.reject(e)}if(k)return Promise.reject(k);const l=`${t?"d":"i"}:${o}`,i=x.get(l);if(i)return j(),Promise.resolve(i);const a=T||(k=new Error("[katexWorkerClient] No worker instance set. Please inject a Worker via setKaTeXWorker()."),k.name="WorkerInitError",k.code="WORKER_INIT_ERROR",null);if(!a)return Promise.reject(k);if(g.size>=R){const e=new Error("Worker busy");return e.name="WorkerBusy",e.code="WORKER_BUSY",e.busy=!0,e.inFlight=g.size,e.max=R,Promise.reject(e)}return new Promise((e,l)=>{if(null==n?void 0:n.aborted){const e=new Error("Aborted");return e.name="AbortError",void l(e)}const i=Math.random().toString(36).slice(2);let u=null;const s=globalThis.setTimeout(()=>{const e=g.get(i);if(!e)return;g.delete(i),e.cleanup();const t=new Error("Worker render timed out");t.name="WorkerTimeout",t.code="WORKER_TIMEOUT",e.aborted||e.reject(t),j()},r);u=()=>{const e=g.get(i);if(!e||e.aborted)return;e.aborted=!0,e.cleanup();const t=new Error("Aborted");t.name="AbortError",l(t)},n&&n.addEventListener("abort",u,{once:!0});const c=e,f=l;g.set(i,{resolve:e=>{c(e)},reject:e=>{f(e)},timeoutId:s,aborted:!1,cleanup:()=>{n&&u&&n.removeEventListener("abort",u),u=null}});try{a.postMessage({id:i,content:o,displayMode:t})}catch(d){const e=g.get(i);g.delete(i),clearTimeout(s),null==e||e.cleanup(),null==e||e.reject(d),j()}})})}function z(e,t=!0,r){const n=`${t?"d":"i"}:${p(e)}`;if(x.set(n,r),x.size>200){const e=x.keys().next().value;x.delete(e)}}function S(){return{inFlight:g.size,max:R}}function _(e){if(Number.isFinite(e)&&e>0){const t=R;R=Math.floor(e),R>t&&j()}}const B="WORKER_BUSY";function X(){return g.size>=R}function $(e=2e3,t){return g.size<R?Promise.resolve():new Promise((r,n)=>{let o,l=!1,i=null,a=()=>{};const u=()=>{o&&globalThis.clearTimeout(o),W.delete(a),t&&i&&t.removeEventListener("abort",i),i=null};a=()=>{l||(l=!0,u(),r())},W.add(a),o=globalThis.setTimeout(()=>{if(l)return;l=!0,u();const e=new Error("Wait for worker slot timed out");e.name="WorkerBusyTimeout",e.code="WORKER_BUSY_TIMEOUT",n(e)},e),queueMicrotask(()=>j()),t&&(i=()=>{if(l)return;l=!0,u();const e=new Error("Aborted");e.name="AbortError",n(e)},t.aborted?i():t.addEventListener("abort",i,{once:!0}))})}const D={timeout:2e3,waitTimeout:1500,backoffMs:30,maxRetries:1};function L(e){null!=e.timeout&&(D.timeout=Math.max(0,Math.floor(e.timeout))),null!=e.waitTimeout&&(D.waitTimeout=Math.max(0,Math.floor(e.waitTimeout))),null!=e.backoffMs&&(D.backoffMs=Math.max(0,Math.floor(e.backoffMs))),null!=e.maxRetries&&(D.maxRetries=Math.max(0,Math.floor(e.maxRetries)))}function U(){return((e,l)=>{for(var i in l||(l={}))r.call(l,i)&&o(e,i,l[i]);if(t)for(var i of t(l))n.call(l,i)&&o(e,i,l[i]);return e})({},D)}function F(e){return l(this,arguments,function*(e,t=!0,r={}){var n,o,l,i;if(!y()){const e=new Error("KaTeX rendering disabled");throw e.name="KaTeXDisabled",e.code="KATEX_DISABLED",e}const a=null!=(n=r.timeout)?n:D.timeout,u=null!=(o=r.waitTimeout)?o:D.waitTimeout,s=null!=(l=r.backoffMs)?l:D.backoffMs,c=null!=(i=r.maxRetries)?i:D.maxRetries,f=Number.isFinite(c)?Math.max(0,Math.min(Math.floor(c),8)):D.maxRetries,d=r.signal;let m=0;for(;;){if(null==d?void 0:d.aborted){const e=new Error("Aborted");throw e.name="AbortError",e}try{return yield K(e,t,a,d)}catch(b){if((null==b?void 0:b.code)!==B||m>=f)throw b;if(m++,yield $(u,d).catch(()=>{}),null==d?void 0:d.aborted){const e=new Error("Aborted");throw e.name="AbortError",e}s>0&&(yield new Promise(e=>globalThis.setTimeout(e,s*m)))}}})}export{B as W,S as a,E as b,O as c,w as d,h as e,v as f,U as g,y as h,X as i,F as j,z as k,P as l,I as m,p as n,_ as o,b as p,K as r,L as s,$ as w};
@@ -1 +1 @@
1
- var e=Object.defineProperty,r=Object.defineProperties,n=Object.getOwnPropertyDescriptors,t=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable,l=(r,n,t)=>n in r?e(r,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[n]=t,a=(e,r)=>{for(var n in r||(r={}))o.call(r,n)&&l(e,n,r[n]);if(t)for(var n of t(r))i.call(r,n)&&l(e,n,r[n]);return e},c=(e,r,n)=>new Promise((t,o)=>{var i=e=>{try{a(n.next(e))}catch(r){o(r)}},l=e=>{try{a(n.throw(e))}catch(r){o(r)}},a=e=>e.done?t(e.value):Promise.resolve(e.value).then(i,l);a((n=n.apply(e,r)).next())});const s=()=>import("mermaid");let u=null,m=s,f=null,d=!1,p=!1,y=0;function g(e){m=e,y++,u=null,f=null,d=!1,p=!1}function k(e){g(null!=e?e:s)}function h(){g(null)}function W(){return"function"==typeof m}function b(e){if(!e)return e;const t=e&&e.default?e.default:e;if(t&&("function"==typeof t.render||"function"==typeof t.parse||"function"==typeof t.initialize))return t;if(t&&t.mermaidAPI&&("function"==typeof t.mermaidAPI.render||"function"==typeof t.mermaidAPI.parse)){const e=t.mermaidAPI;return o=a({},t),i={render:e.render.bind(e),parse:e.parse?e.parse.bind(e):void 0,initialize:r=>"function"==typeof t.initialize?t.initialize(r):e.initialize?e.initialize(r):void 0},r(o,n(i))}var o,i;return e.mermaid&&"function"==typeof e.mermaid.render?e.mermaid:t}function v(e){if(e)try{const r=null==e?void 0:e.initialize;e.initialize=n=>{const t=a({suppressErrorRendering:!0},n||{});return"function"==typeof r?r.call(e,t):(null==e?void 0:e.mermaidAPI)&&"function"==typeof e.mermaidAPI.initialize?e.mermaidAPI.initialize(t):void 0}}catch(r){}}function P(){return c(this,null,function*(){if(u)return u;const e=function(){try{const e=globalThis;return b(null==e?void 0:e.mermaid)}catch(e){return null}}();if(e)return u=e,v(u),u;const r=m,n=y;return r?r===s&&d?null:f||(f=c(null,null,function*(){let e;try{e=yield r()}catch(t){if(r===s)return n===y&&r===m&&(d=!0,function(e){p||(p=!0,console.warn('[markstream-vue] Optional dependency "mermaid" is not installed. Mermaid blocks will render as source.',e))}(t)),null;throw t}finally{n===y&&r===m&&(f=null)}return n!==y||r!==m?null:e?(u=b(e),v(u),u):null}),f):null})}let w=null,j=null;const E=/* @__PURE__ */new Map;let z=5,O=!1;function I(e){O=!!e}function M(e){Number.isFinite(e)&&e>0&&(z=Math.floor(e))}function R(){return{inFlight:E.size,max:z}}const A="WORKER_BUSY",T="MERMAID_DISABLED";function C(e){w=e,j=null;const r=e;w.onmessage=e=>{if(w!==r)return;const{id:n,ok:t,result:o,error:i}=e.data,l=E.get(n);l&&(!1===t||i?l.reject(new Error(i||"Unknown error")):l.resolve(o))},w.onerror=e=>{var n,t;if(w===r)if(0!==E.size){try{O?console.error("[mermaidWorkerClient] Worker error:",(null==e?void 0:e.message)||e):null==(t=console.debug)||t.call(console,"[mermaidWorkerClient] Worker error:",(null==e?void 0:e.message)||e)}catch(o){}for(const[r,n]of E.entries())n.reject(new Error(`Worker error: ${e.message}`));E.clear()}else null==(n=console.debug)||n.call(console,"[mermaidWorkerClient] Worker error (no pending):",(null==e?void 0:e.message)||e)},w.onmessageerror=e=>{var n,t;if(w===r)if(0!==E.size){try{O?console.error("[mermaidWorkerClient] Worker messageerror:",e):null==(t=console.debug)||t.call(console,"[mermaidWorkerClient] Worker messageerror:",e)}catch(o){}for(const[e,r]of E.entries())r.reject(new Error("Worker messageerror"));E.clear()}else null==(n=console.debug)||n.call(console,"[mermaidWorkerClient] Worker messageerror (no pending):",e)}}function x(){var e;if(w)try{for(const[e,r]of E.entries())r.reject(new Error("Worker cleared"));E.clear(),null==(e=w.terminate)||e.call(w)}catch(r){}w=null,j=null}function D(e,r,n=1400){if(!W()){const e=new Error("Mermaid rendering disabled");return e.name="MermaidDisabled",e.code=T,Promise.reject(e)}if(j)return Promise.reject(j);const t=w||(j=new Error("[mermaidWorkerClient] No worker instance set. Please inject a Worker via setMermaidWorker()."),j.name="WorkerInitError",j.code="WORKER_INIT_ERROR",null);if(!t)return Promise.reject(j);if(E.size>=z){const e=new Error("Worker busy");return e.name="WorkerBusy",e.code=A,e.inFlight=E.size,e.max=z,Promise.reject(e)}return new Promise((o,i)=>{const l=Math.random().toString(36).slice(2);let a,c=!1;const s=()=>{c||(c=!0,null!=a&&globalThis.clearTimeout(a),E.delete(l))},u={resolve:e=>{s(),o(e)},reject:e=>{s(),i(e)}};E.set(l,u);try{t.postMessage({id:l,action:e,payload:r})}catch(m){return E.delete(l),void i(m)}a=globalThis.setTimeout(()=>{const e=new Error("Worker call timed out");e.name="WorkerTimeout",e.code="WORKER_TIMEOUT";const r=E.get(l);r&&r.reject(e)},n)})}function _(e,r,n=1400){return c(this,null,function*(){try{return yield D("canParse",{code:e,theme:r},n)}catch(t){return Promise.reject(t)}})}function S(e,r,n=1400){return c(this,null,function*(){try{return yield D("findPrefix",{code:e,theme:r},n)}catch(t){return Promise.reject(t)}})}function B(){if(w)try{for(const[e,r]of E.entries())r.reject(new Error("Worker terminated"));E.clear(),w.terminate()}finally{w=null}}export{T as M,A as a,x as b,_ as c,h as d,k as e,S as f,P as g,R as h,W as i,C as j,I as k,M as l,g as s,B as t};
1
+ var e=Object.defineProperty,r=Object.defineProperties,n=Object.getOwnPropertyDescriptors,t=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable,l=(r,n,t)=>n in r?e(r,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[n]=t,a=(e,r)=>{for(var n in r||(r={}))o.call(r,n)&&l(e,n,r[n]);if(t)for(var n of t(r))i.call(r,n)&&l(e,n,r[n]);return e},s=(e,r,n)=>new Promise((t,o)=>{var i=e=>{try{a(n.next(e))}catch(r){o(r)}},l=e=>{try{a(n.throw(e))}catch(r){o(r)}},a=e=>e.done?t(e.value):Promise.resolve(e.value).then(i,l);a((n=n.apply(e,r)).next())});const c=()=>import("mermaid");let u=null,d=c,m=null,f=!1,p=!1,y=0;function b(e){d=e,y++,u=null,m=null,f=!1,p=!1}function g(e){b(null!=e?e:c)}function k(){b(null)}function v(){return"function"==typeof d}function E(e){if(!e)return e;const t=e&&e.default?e.default:e;if(t&&("function"==typeof t.render||"function"==typeof t.parse||"function"==typeof t.initialize))return t;if(t&&t.mermaidAPI&&("function"==typeof t.mermaidAPI.render||"function"==typeof t.mermaidAPI.parse)){const e=t.mermaidAPI;return o=a({},t),i={render:e.render.bind(e),parse:e.parse?e.parse.bind(e):void 0,initialize:r=>"function"==typeof t.initialize?t.initialize(r):e.initialize?e.initialize(r):void 0},r(o,n(i))}var o,i;return e.mermaid&&"function"==typeof e.mermaid.render?e.mermaid:t}function W(e){if(e)try{const r=null==e?void 0:e.initialize;e.initialize=n=>{const t=a({suppressErrorRendering:!0},n||{});return"function"==typeof r?r.call(e,t):(null==e?void 0:e.mermaidAPI)&&"function"==typeof e.mermaidAPI.initialize?e.mermaidAPI.initialize(t):void 0}}catch(r){}}function w(){return s(this,null,function*(){if(u)return u;const e=function(){try{const e=globalThis;return E(null==e?void 0:e.mermaid)}catch(e){return null}}();if(e)return u=e,W(u),u;const r=d,n=y;return r?r===c&&f?null:m||(m=s(null,null,function*(){let e;try{e=yield r()}catch(t){if(r===c)return n===y&&r===d&&(f=!0,function(e){p||(p=!0,console.warn('[markstream-vue] Optional dependency "mermaid" is not installed. Mermaid blocks will render as source.',e))}(t)),null;throw t}finally{n===y&&r===d&&(m=null)}return n!==y||r!==d?null:e?(u=E(e),W(u),u):null}),m):null})}let h=null,P=null;const j=/* @__PURE__ */new Map,O=/* @__PURE__ */new Map;function z(e){for(const r of j.values())r.reject(e);j.clear(),O.clear()}let M=5,A=!1;function I(e){A=!!e}function R(e){Number.isFinite(e)&&e>0&&(M=Math.floor(e))}function T(){return{inFlight:j.size,max:M}}const C="WORKER_BUSY",D="MERMAID_DISABLED";function x(e){if(h&&h!==e){const e=new Error("Worker replaced");e.code="WORKER_REPLACED",z(e)}h=e,P=null;const r=e;h.onmessage=e=>{if(h!==r)return;const{id:n,ok:t,result:o,error:i}=e.data,l=j.get(n);l&&(!1===t||i?l.reject(new Error(i||"Unknown error")):l.resolve(o))},h.onerror=e=>{var n,t;if(h===r)if(0!==j.size){try{A?console.error("[mermaidWorkerClient] Worker error:",(null==e?void 0:e.message)||e):null==(t=console.debug)||t.call(console,"[mermaidWorkerClient] Worker error:",(null==e?void 0:e.message)||e)}catch(o){}z(new Error(`Worker error: ${e.message}`))}else null==(n=console.debug)||n.call(console,"[mermaidWorkerClient] Worker error (no pending):",(null==e?void 0:e.message)||e)},h.onmessageerror=e=>{var n,t;if(h===r)if(0!==j.size){try{A?console.error("[mermaidWorkerClient] Worker messageerror:",e):null==(t=console.debug)||t.call(console,"[mermaidWorkerClient] Worker messageerror:",e)}catch(o){}z(new Error("Worker messageerror"))}else null==(n=console.debug)||n.call(console,"[mermaidWorkerClient] Worker messageerror (no pending):",e)}}function _(){var e;if(h)try{z(new Error("Worker cleared")),null==(e=h.terminate)||e.call(h)}catch(r){}h=null,P=null}function $(e,r,n,t){if(!v()){const e=new Error("Mermaid rendering disabled");return e.name="MermaidDisabled",e.code=D,Promise.reject(e)}const o=`${e}\0${r.theme}\0${n}\0${r.code}`;let i=O.get(o);return i||(i=function(e,r,n=1400){if(!v()){const e=new Error("Mermaid rendering disabled");return e.name="MermaidDisabled",e.code=D,Promise.reject(e)}if(P)return Promise.reject(P);const t=h||(P=new Error("[mermaidWorkerClient] No worker instance set. Please inject a Worker via setMermaidWorker()."),P.name="WorkerInitError",P.code="WORKER_INIT_ERROR",null);if(!t)return Promise.reject(P);if(j.size>=M){const e=new Error("Worker busy");return e.name="WorkerBusy",e.code=C,e.inFlight=j.size,e.max=M,Promise.reject(e)}return new Promise((o,i)=>{const l=Math.random().toString(36).slice(2);let a,s=!1;const c=()=>{s||(s=!0,null!=a&&globalThis.clearTimeout(a),j.delete(l))},u={resolve:e=>{c(),o(e)},reject:e=>{c(),i(e)}};j.set(l,u);try{t.postMessage({id:l,action:e,payload:r})}catch(d){return j.delete(l),void i(d)}a=globalThis.setTimeout(()=>{const e=new Error("Worker call timed out");e.name="WorkerTimeout",e.code="WORKER_TIMEOUT";const r=j.get(l);r&&r.reject(e)},n)})}(e,r,n),O.set(o,i),i.then(()=>{O.get(o)===i&&O.delete(o)},()=>{O.get(o)===i&&O.delete(o)})),function(e,r){if(!r)return e;if(r.aborted){const e=new Error("Aborted");return e.name="AbortError",Promise.reject(e)}return new Promise((n,t)=>{let o=()=>{};const i=()=>r.removeEventListener("abort",o);o=()=>{i();const e=new Error("Aborted");e.name="AbortError",t(e)},r.addEventListener("abort",o,{once:!0}),e.then(e=>{i(),n(e)},e=>{i(),t(e)})})}(i,t)}function K(e,r,n=1400,t){return $("canParse",{code:e,theme:r},n,t)}function L(e,r,n=1400,t){return $("findPrefix",{code:e,theme:r},n,t)}function S(){if(h)try{z(new Error("Worker terminated")),h.terminate()}finally{h=null}}export{D as M,C as a,_ as b,K as c,k as d,g as e,L as f,w as g,T as h,v as i,x as j,I as k,R as l,b as s,S as t};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "markstream-vue",
3
3
  "type": "module",
4
- "version": "1.0.6-beta.2",
4
+ "version": "1.0.6",
5
5
  "description": "Vue/Nuxt streaming Markdown renderer for AI chat, LLM token streams, SSE/WebSocket output, incomplete Markdown, long documents, Mermaid, KaTeX, Shiki, and Monaco.",
6
6
  "author": "Simon He",
7
7
  "license": "MIT",
@@ -111,6 +111,7 @@
111
111
  "@terrastruct/d2": ">=0.1.33",
112
112
  "katex": ">=0.16.22",
113
113
  "mermaid": ">=11",
114
+ "stream-diffs": ">=0.0.1",
114
115
  "stream-markdown": ">=0.0.16",
115
116
  "stream-monaco": ">=0.0.48",
116
117
  "vue": ">=3.0.0",
@@ -129,6 +130,9 @@
129
130
  "mermaid": {
130
131
  "optional": true
131
132
  },
133
+ "stream-diffs": {
134
+ "optional": true
135
+ },
132
136
  "stream-markdown": {
133
137
  "optional": true
134
138
  },
@@ -142,8 +146,8 @@
142
146
  "dependencies": {
143
147
  "@chenglou/pretext": "^0.0.8",
144
148
  "@floating-ui/dom": "^1.8.0",
145
- "markstream-core": "1.0.3",
146
- "stream-markdown-parser": "1.1.0"
149
+ "stream-markdown-parser": "1.1.0",
150
+ "markstream-core": "1.0.3"
147
151
  },
148
152
  "devDependencies": {
149
153
  "@antfu/eslint-config": "^5.4.1",
@@ -173,6 +177,7 @@
173
177
  "rollup": "^3.30.0",
174
178
  "rollup-plugin-dts": "^5.3.1",
175
179
  "rollup-plugin-visualizer": "^6.0.11",
180
+ "stream-diffs": "latest",
176
181
  "stream-markdown": "latest",
177
182
  "streamdown": "2.5.0",
178
183
  "tailwindcss": "^3.4.19",
@@ -215,6 +220,7 @@
215
220
  "test:e2e:virtual-scroll:ci": "pnpm run test:e2e:virtual-scroll",
216
221
  "test:e2e:virtual-scroll:ci:stress": "pnpm run test:e2e:virtual-scroll:stress",
217
222
  "benchmark:streaming-split": "node scripts/benchmark-streaming-split.mjs",
223
+ "benchmark:heavy-restore": "node scripts/benchmark-heavy-restore.mjs",
218
224
  "benchmark:real-corpus": "node scripts/benchmark-real-corpus-performance.mjs",
219
225
  "benchmark:1.0": "node scripts/benchmark-1-0.mjs",
220
226
  "test:e2e:angular-playground": "node scripts/e2e-angular-playground.mjs",
@@ -1 +0,0 @@
1
- import{g as e,n as o,f as t,b as n}from"./index2.js";import{defineComponent as a,ref as r,computed as i,openBlock as l,createElementBlock as s,Fragment as c,renderSlot as d,createElementVNode as u,toDisplayString as p,createCommentVNode as v,unref as h,normalizeStyle as m,withModifiers as w,createStaticVNode as g,createVNode as f,Transition as x,withCtx as b,withDirectives as y,vShow as k}from"vue";import{al as B,a6 as C,ai as F}from"./exports.js";function M(a,r){if(void 0===r)return e(a);if(r){const e=r(a);if(null!=e&&""!==e)return e}const i=o(a);return t(i)||n()}const S={key:0,class:"code-block-header flex justify-between items-center border-b px-[var(--ms-inset-panel-x)] py-[var(--ms-inset-panel-y)] border-[var(--code-border)] bg-[var(--code-header-bg)] text-[var(--code-fg)]"},z={class:"flex items-center gap-0.5"},j=["aria-label"],E={class:"code-diff-stat removed"},T={class:"code-diff-stat added"},L=["aria-label"],P={key:0,xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},_={key:1,xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},R=["aria-pressed"],$={key:3,class:"relative"},H=["aria-expanded"],A=["disabled"],D=["disabled"],N=["disabled"],V={key:0,xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},q={key:1,xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},G={class:"code-block-shell-content"},I={class:"code-loading-placeholder"},J={class:"sr-only","aria-live":"polite",role:"status"},K=/* @__PURE__ */a({__name:"CodeBlockShell",props:{showHeader:{type:Boolean,default:!0},showCollapseButton:{type:Boolean,default:!0},showFontSizeButtons:{type:Boolean,default:!0},enableFontSizeControl:{type:Boolean,default:!0},showCopyButton:{type:Boolean,default:!0},showExpandButton:{type:Boolean,default:!0},showPreviewButton:{type:Boolean,default:!0},showTooltips:{type:Boolean,default:!0},isDark:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},stream:{type:Boolean,default:!1},isCollapsed:{type:Boolean,default:!1},isExpanded:{type:Boolean,default:!1},copyText:{type:Boolean,default:!1},isPreviewable:{type:Boolean,default:!1},codeFontSize:{},codeFontMin:{},codeFontMax:{},defaultCodeFontSize:{},fontBaselineReady:{type:Boolean,default:!1},diffStats:{},diffStatsAriaLabel:{}},emits:["toggleCollapse","decreaseFont","resetFont","increaseFont","copy","toggleExpand","preview"],setup(e,{emit:o}){const t=e,n=o,a=r(!1),M=r(null),K=r(null);function O(){C(!0),a.value=!a.value,a.value&&document.addEventListener("click",U,{once:!0,capture:!0})}function Q(){C(!0),a.value=!1}function U(e){var o,t;const n=e.target;(null==(o=M.value)?void 0:o.contains(n))||(null==(t=K.value)?void 0:t.contains(n))?document.addEventListener("click",U,{once:!0,capture:!0}):Q()}const W=i(()=>t.showFontSizeButtons&&t.enableFontSizeControl||t.showExpandButton||t.isPreviewable&&t.showPreviewButton),{t:X}=B(),Y=i(()=>!1!==t.showTooltips);function Z(e,o){Y.value&&F(e.currentTarget,o,"top",!1,void 0,t.isDark)}function ee(){Y.value&&C()}function oe(e){Z(e,t.copyText?X("common.copied")||"Copied":X("common.copy")||"Copy")}const te=i(()=>{var e,o;return!!Number.isFinite(t.codeFontSize)&&(null!=(e=t.codeFontSize)?e:0)<=(null!=(o=t.codeFontMin)?o:0)}),ne=i(()=>!t.fontBaselineReady||t.codeFontSize===t.defaultCodeFontSize),ae=i(()=>{var e,o;return!!Number.isFinite(t.codeFontSize)&&(null!=(e=t.codeFontSize)?e:0)>=(null!=(o=t.codeFontMax)?o:100)});return(o,r)=>(l(),s(c,null,[t.showHeader?(l(),s("div",S,[d(o.$slots,"header-left"),d(o.$slots,"header-right",{},()=>[u("div",z,[e.diffStats?(l(),s("div",{key:0,class:"code-diff-stats","aria-label":e.diffStatsAriaLabel},[u("span",E,"-"+p(e.diffStats.removed),1),u("span",T,"+"+p(e.diffStats.added),1)],8,j)):v("",!0),t.showCopyButton?(l(),s("button",{key:1,type:"button",class:"code-action-btn inline-flex items-center justify-center p-[var(--ms-action-btn-padding)] rounded leading-none shrink-0 cursor-pointer text-[var(--code-action-fg)] hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] active:scale-[0.96] disabled:opacity-40 disabled:cursor-not-allowed transition-colors","aria-label":e.copyText?h(X)("common.copied")||"Copied":h(X)("common.copy")||"Copy",onClick:r[0]||(r[0]=e=>n("copy")),onMouseenter:r[1]||(r[1]=e=>oe(e)),onFocus:r[2]||(r[2]=e=>oe(e)),onMouseleave:ee,onBlur:ee},[e.copyText?(l(),s("svg",_,[...r[14]||(r[14]=[u("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M20 6L9 17l-5-5"},null,-1)])])):(l(),s("svg",P,[...r[13]||(r[13]=[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2"}),u("path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"})],-1)])]))],40,L)):v("",!0),t.showCollapseButton?(l(),s("button",{key:2,type:"button",class:"code-action-btn inline-flex items-center justify-center p-[var(--ms-action-btn-padding)] rounded leading-none shrink-0 cursor-pointer text-[var(--code-action-fg)] hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] active:scale-[0.96] disabled:opacity-40 disabled:cursor-not-allowed transition-colors","aria-pressed":e.isCollapsed,onClick:r[3]||(r[3]=e=>n("toggleCollapse")),onMouseenter:r[4]||(r[4]=o=>Z(o,e.isCollapsed?h(X)("common.expand")||"Expand":h(X)("common.collapse")||"Collapse")),onFocus:r[5]||(r[5]=o=>Z(o,e.isCollapsed?h(X)("common.expand")||"Expand":h(X)("common.collapse")||"Collapse")),onMouseleave:ee,onBlur:ee},[(l(),s("svg",{style:m({rotate:e.isCollapsed?"0deg":"90deg"}),xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},[...r[15]||(r[15]=[u("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m9 18l6-6l-6-6"},null,-1)])],4))],40,R)):v("",!0),W.value?(l(),s("div",$,[u("button",{ref_key:"moreBtnRef",ref:K,type:"button",class:"code-action-btn inline-flex items-center justify-center p-[var(--ms-action-btn-padding)] rounded leading-none shrink-0 cursor-pointer text-[var(--code-action-fg)] hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] active:scale-[0.96] transition-colors","aria-expanded":a.value,"aria-haspopup":"true",onClick:w(O,["stop"]),onMouseenter:r[6]||(r[6]=e=>Z(e,h(X)("common.more")||"More")),onFocus:r[7]||(r[7]=e=>Z(e,h(X)("common.more")||"More")),onMouseleave:ee,onBlur:ee},[...r[16]||(r[16]=[g('<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="1em" height="1em" viewBox="0 0 24 24" class="action-icon"><g fill="currentColor"><circle cx="12" cy="5" r="1.5"></circle><circle cx="12" cy="12" r="1.5"></circle><circle cx="12" cy="19" r="1.5"></circle></g></svg>',1)])],40,H),f(x,{name:"code-menu"},{default:b(()=>[a.value?(l(),s("div",{key:0,ref_key:"moreMenuRef",ref:M,class:"code-more-menu min-w-[10rem] p-1 bg-[hsl(var(--ms-popover))] text-[hsl(var(--ms-popover-foreground))] border border-[var(--code-border)] shadow-[var(--ms-shadow-popover)]",role:"menu"},[t.showFontSizeButtons&&t.enableFontSizeControl?(l(),s(c,{key:0},[u("button",{type:"button",role:"menuitem",class:"flex items-center gap-2 w-full py-1.5 px-2 rounded text-xs text-[var(--code-action-fg)] cursor-pointer whitespace-nowrap hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",disabled:te.value,onClick:r[8]||(r[8]=e=>{h(C)(!0),n("decreaseFont")})},[r[17]||(r[17]=u("svg",{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},[u("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 12h14"})],-1)),u("span",null,p(h(X)("common.fontSmaller")||"Font size −"),1)],8,A),u("button",{type:"button",role:"menuitem",class:"flex items-center gap-2 w-full py-1.5 px-2 rounded text-xs text-[var(--code-action-fg)] cursor-pointer whitespace-nowrap hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",disabled:ne.value,onClick:r[9]||(r[9]=e=>{h(C)(!0),n("resetFont")})},[r[18]||(r[18]=u("svg",{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("path",{d:"M3 12a9 9 0 1 0 9-9a9.75 9.75 0 0 0-6.74 2.74L3 8"}),u("path",{d:"M3 3v5h5"})])],-1)),u("span",null,p(h(X)("common.fontReset")||"Font size reset"),1)],8,D),u("button",{type:"button",role:"menuitem",class:"flex items-center gap-2 w-full py-1.5 px-2 rounded text-xs text-[var(--code-action-fg)] cursor-pointer whitespace-nowrap hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",disabled:ae.value,onClick:r[10]||(r[10]=e=>{h(C)(!0),n("increaseFont")})},[r[19]||(r[19]=u("svg",{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},[u("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 12h14m-7-7v14"})],-1)),u("span",null,p(h(X)("common.fontLarger")||"Font size +"),1)],8,N)],64)):v("",!0),t.showExpandButton?(l(),s("button",{key:1,type:"button",role:"menuitem",class:"flex items-center gap-2 w-full py-1.5 px-2 rounded text-xs text-[var(--code-action-fg)] cursor-pointer whitespace-nowrap hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] transition-colors",onClick:r[11]||(r[11]=e=>{Q(),n("toggleExpand",e)})},[e.isExpanded?(l(),s("svg",V,[...r[20]||(r[20]=[u("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m14 10l7-7m-1 7h-6V4M3 21l7-7m-6 0h6v6"},null,-1)])])):(l(),s("svg",q,[...r[21]||(r[21]=[u("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 3h6v6m0-6l-7 7M3 21l7-7m-1 7H3v-6"},null,-1)])])),u("span",null,p(e.isExpanded?h(X)("common.collapse")||"Collapse":h(X)("common.expand")||"Expand"),1)])):v("",!0),e.isPreviewable&&t.showPreviewButton?(l(),s("button",{key:2,type:"button",role:"menuitem",class:"flex items-center gap-2 w-full py-1.5 px-2 rounded text-xs text-[var(--code-action-fg)] cursor-pointer whitespace-nowrap hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] transition-colors",onClick:r[12]||(r[12]=e=>{Q(),n("preview")})},[r[22]||(r[22]=u("svg",{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},[u("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[u("path",{d:"M2.062 12.348a1 1 0 0 1 0-.696a10.75 10.75 0 0 1 19.876 0a1 1 0 0 1 0 .696a10.75 10.75 0 0 1-19.876 0"}),u("circle",{cx:"12",cy:"12",r:"3"})])],-1)),u("span",null,p(h(X)("common.preview")||"Preview"),1)])):v("",!0)],512)):v("",!0)]),_:1})])):v("",!0)])])])):v("",!0),y(u("div",G,[d(o.$slots,"default")],512),[[k,!(e.isCollapsed||!e.stream&&e.loading)]]),y(u("div",I,[d(o.$slots,"loading",{},()=>[r[23]||(r[23]=u("div",{class:"loading-skeleton"},[u("div",{class:"skeleton-line"}),u("div",{class:"skeleton-line"}),u("div",{class:"skeleton-line short"})],-1))])],512),[[k,!e.stream&&e.loading]]),u("span",J,p(e.copyText?h(X)("common.copied")||"Copied":""),1)],64))}});export{K as _,M as r};