@vpxa/aikit 0.1.352 → 0.1.353
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/package.json +1 -1
- package/packages/blocks-core/dist/index.mjs +928 -130
- package/packages/present/dist/index.html +911 -127
- package/packages/server/dist/bin.js +1 -1
- package/packages/server/dist/index.js +1 -1
- package/packages/server/dist/prelude-DetbWo8R.js +1 -0
- package/packages/server/dist/prelude-hfAEi93R.js +2 -0
- package/packages/server/dist/sampling-CWjnUevo.js +2 -0
- package/packages/server/dist/sampling-CnE3owSt.js +1 -0
- package/packages/server/dist/{server-Crfl8sRN.js → server-D5eu57oU.js} +145 -148
- package/packages/server/dist/{server-Znp0a9J2.js → server-D7gZ4K_H.js} +145 -148
- package/packages/server/dist/{server-http-BSGdxVRV.js → server-http-AarbD3gm.js} +1 -1
- package/packages/server/dist/{server-http-BGF1k0j9.js → server-http-wnYmWFkC.js} +1 -1
- package/packages/server/dist/{server-stdio-CTgwgIGC.js → server-stdio-BWoMqXU8.js} +1 -1
- package/packages/server/dist/{server-stdio-B2N-eM5T.js → server-stdio-CBGO6XiO.js} +1 -1
- package/packages/server/viewers/canvas.html +912 -128
- package/packages/server/viewers/report-template.html +885 -101
- package/packages/server/viewers/task-plan-static.html +1 -1
- package/packages/server/viewers/tour-viewer.html +886 -102
- package/scaffold/dist/definitions/skills/c4-architecture.mjs +1 -1
- package/scaffold/dist/definitions/skills/docs.mjs +1 -1
- package/scaffold/dist/generated/block-docs.mjs +18 -64
- package/packages/server/dist/prelude-CXds3AXY.js +0 -2
- package/packages/server/dist/prelude-Cms2H0-F.js +0 -1
- package/packages/server/dist/sampling-BoH5wpOJ.js +0 -1
- package/packages/server/dist/sampling-SoUYZhFs.js +0 -2
|
@@ -1,32 +1,135 @@
|
|
|
1
|
-
function e(e){return e.kind===`result`}function t(e){return e.kind===`error`}function n(e){return String(e??``).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}function r(e){let t=String(e??``).trim();return/^(https?:|mailto:|#)/i.test(t)?t:`#`}function i(e){return String(e??``).replace(/[^a-zA-Z0-9_-]/g,`_`)}function a(e){if(e==null)return``;if(Array.isArray(e))return e.map(a).join(`, `);if(typeof e==`object`)try{return JSON.stringify(e)}catch{return String(e)}return String(e)}function o(e){if(typeof e!=`string`)return e;let t=e.trim();if(t.startsWith(`[`)&&t.endsWith(`]`)||t.startsWith(`{`)&&t.endsWith(`}`))try{return JSON.parse(t)}catch{return e}return e}function s(e){return n(String(e??``)).replace(/\*\*(.+?)\*\*/g,`<strong>$1</strong>`).replace(/`(.+?)`/g,`<code>$1</code>`).replace(/\[([^\]]+)\]\(([^)]+)\)/g,(e,t,n)=>`<a href="${r(n)}">${t}</a>`)}const c={ok:`success`,pass:`success`,passed:`success`,good:`success`,error:`danger`,fail:`danger`,failed:`danger`,critical:`danger`,high:`danger`,warn:`warning`,caution:`warning`,medium:`warning`,info:`accent`,low:`accent`,note:`accent`},l=new Set([`success`,`danger`,`warning`,`accent`]);function u(e){if(!e)return`accent`;let t=String(e).toLowerCase(),n=c[t]??t;return l.has(n)?n:`accent`}function d(e,t=`fg`){return`var(--dt-${u(e)}-${t})`}function f(e){let t=e.value;return Array.isArray(t)?t:t&&typeof t==`object`&&`items`in t&&Array.isArray(t.items)?t.items:[]}function p(e){let t=o(e);return Array.isArray(t)?t:[]}function m(e,t){return`<div class="bk-actions">${p(e.value).map(e=>{let t=i(e.id);if(e.type===`select`){let r=(e.options??[]).map(e=>{let t=typeof e==`string`?e:e.value,r=typeof e==`string`?e:e.label;return`<option value="${n(t)}">${n(r)}</option>`}).join(``);return`<label class="bk-select-wrap"><span class="bk-visually-hidden">${n(e.label)}</span><select class="bk-select" data-action-id="${t}" data-action-row="single"><option value="" selected disabled>${n(e.label)}</option>${r}</select></label>`}if(e.type===`text-submit`)return`<div class="bk-text-submit" data-action-id="${t}" data-action-row="multi"><input type="text" class="bk-input" placeholder="${n(e.label)}" data-action-id="${t}" /><button type="button" class="bk-action bk-action--primary" data-action-id="${t}">Send</button></div>`;if(e.type===`multi-select`){let r=(e.options??[]).map(e=>{let t=typeof e==`string`?e:e.value,r=typeof e==`string`?e:e.label;return`<option value="${n(t)}">${n(r)}</option>`}).join(``);return`<label class="bk-select-wrap"><span class="bk-visually-hidden">${n(e.label)}</span><select class="bk-select bk-multi-select" data-action-id="${t}" data-action-row="single" multiple size="1">${r}</select></label>`}if(e.type===`form-submit`&&e.schema){let r=e.schema;return`<form class="bk-form" data-action-id="${t}" data-action-row="multi"><fieldset>${Object.entries(r).map(([e,t])=>{let r=t.description??e,i=t.type===`number`?`number`:`text`;return`<label class="bk-form-field"><span class="bk-form-label">${n(r)}</span><input type="${i}" class="bk-input" name="${n(e)}" placeholder="${n(r)}" /></label>`}).join(``)}<button type="submit" class="bk-action bk-action--primary">${n(e.label)}</button></fieldset></form>`}return`<button type="button" class="bk-action bk-action--${n(e.variant??`default`)}" data-action-id="${t}" data-action-row="single">${n(e.label)}</button>`}).join(``)}<div class="bk-action-feedback" style="display:none;font-size:0.875rem;color:var(--dt-text-secondary);padding:var(--dt-space-2) 0;" data-feedback-state="pending">💬 Feedback sent</div></div>`}function h(e,t){return`<div class="bk-cards">${f(e).map(e=>{let t=e.badge?`<span class="bk-card-badge">${n(e.badge)}</span>`:``,r=e.body?`<div class="bk-card-body">${n(e.body)}</div>`:``,i=e.description?`<div class="bk-card-description">${n(e.description)}</div>`:``;return`<article class="bk-card" data-tone="${u(e.status)}"><div class="bk-card-header"><div class="bk-card-title">${n(e.title)}</div>${t}</div>${r}${i}</article>`}).join(``)}</div>`}const g=[`#3b82f6`,`#10b981`,`#f59e0b`,`#ef4444`,`#8b5cf6`,`#ec4899`,`#06b6d4`,`#84cc16`],_=new Set([`line`,`area`,`bar`,`horizontal-bar`,`pie`,`donut`,`sparkline`,`heatmap`]);function ee(e,t){let n=te(e),r=le(n.headers,n.data);if(n.data.length===0||!_.has(n.chartType))return v(n.note,r);let i=ne(n);if(!i)return v(n.note,r);let a=n.chartType===`pie`||n.chartType===`donut`?[]:n.yKeys;return`<div class="bk-chart"><div class="bk-chart-surface">${i}</div>${a.length>1?de(a):``}${ue(r)}</div>`}function te(e){let t=o(e.value),r=Array.isArray(t?.data)?t.data:[],i=String(t?.chartType??e.chartType??`bar`),a=_.has(i)?i:`bar`,s=n(i),c=fe(r,String(t?.xKey??`label`)),l=Array.isArray(t?.yKeys)?t.yKeys.filter(e=>typeof e==`string`):[],u=l.length>0?l:[`value`];if(l.length===0&&r.length>0&&r[0]!=null){let e=r[0];if(!(`value`in e&&typeof e.value==`number`)){let t=Object.keys(e).filter(t=>t!==c&&typeof e[t]==`number`);t.length>0&&(u=t)}}let d=[c,...u.filter((e,t)=>e!==c&&u.indexOf(e)===t)];return{chartType:a,data:r,xKey:c,yKeys:u,headers:d,note:s}}function ne(e){switch(e.chartType){case`line`:case`area`:return re(e,e.chartType===`area`);case`bar`:return ie(e);case`horizontal-bar`:return ae(e);case`pie`:return oe(e,!1);case`donut`:return oe(e,!0);case`sparkline`:return se(e);case`heatmap`:return ce(e);default:return``}}function re(e,t){let r=y(e.data,e.xKey,e.yKeys),i=r.flatMap(e=>e.values).filter(Number.isFinite);if(i.length===0)return``;let a=x(i),o=b(500,300,{left:60,right:20,top:20,bottom:40}),s=r.map((e,t)=>ve(t,r.length,o.left,o.right)),c=e.yKeys.map((e,n)=>{let i=g[n%g.length],c=r.map((e,t)=>{let r=s[t],i=S(e.values[n],a,o.bottom,o.top);return`${D(r)},${D(i)}`}),l=r.map((e,t)=>{let r=s[t],c=S(e.values[n],a,o.bottom,o.top);return`<circle cx="${D(r)}" cy="${D(c)}" r="3" fill="${i}" />`}).join(``),u=`<polyline fill="none" stroke="${i}" stroke-width="2.5" stroke-linejoin="round" stroke-linecap="round" points="${c.join(` `)}" />`;return t?`<polygon fill="${i}" fill-opacity="0.16" points="${[`${D(s[0])},${D(o.bottom)}`,...c,`${D(s[s.length-1])},${D(o.bottom)}`].join(` `)}" />${u}${l}`:`${u}${l}`}).join(``);return`<svg class="bk-chart-svg" viewBox="0 0 500 300" width="100%" preserveAspectRatio="xMidYMid meet" role="img" aria-label="${n(`${e.chartType} chart`)}">${me(o,a)}${ge(o)}${_e(r,s,o.bottom+18)}${c}</svg>`}function ie(e){let t=y(e.data,e.xKey,e.yKeys),n=t.flatMap(e=>e.values).filter(Number.isFinite);if(n.length===0)return``;let r=x(n,{includeZero:!0}),i=b(500,300,{left:60,right:20,top:20,bottom:40}),a=i.width/t.length,o=Math.max(4,Math.min(28,(a-12-4*(e.yKeys.length-1))/e.yKeys.length)),s=e.yKeys.length*o+(e.yKeys.length-1)*4,c=S(0,r,i.bottom,i.top),l=t.map((e,t)=>{let n=i.left+t*a+(a-s)/2;return e.values.map((e,t)=>{let a=g[t%g.length],s=n+t*(o+4),l=S(e,r,i.bottom,i.top),u=Math.min(l,c),d=Math.max(1,Math.abs(c-l));return`<rect x="${D(s)}" y="${D(u)}" width="${D(o)}" height="${D(d)}" rx="3" fill="${a}" />`}).join(``)}).join(``),u=t.map((e,t)=>i.left+t*a+a/2);return`<svg class="bk-chart-svg" viewBox="0 0 500 300" width="100%" preserveAspectRatio="xMidYMid meet" role="img" aria-label="bar chart">${me(i,r)}${ge(i)}${_e(t,u,i.bottom+18)}${l}</svg>`}function ae(e){let t=y(e.data,e.xKey,e.yKeys),r=t.flatMap(e=>e.values).filter(Number.isFinite);if(r.length===0)return``;let i=x(r,{includeZero:!0}),a=b(500,300,{left:110,right:20,top:20,bottom:36}),o=a.height/t.length,s=Math.max(4,Math.min(18,(o-8-4*(e.yKeys.length-1))/e.yKeys.length)),c=e.yKeys.length*s+(e.yKeys.length-1)*4,l=S(0,i,a.left,a.right),u=t.map((e,t)=>{let r=a.top+t*o+(o-c)/2,u=a.top+t*o+o/2+4;return`${`<text class="bk-chart-label" x="${D(a.left-8)}" y="${D(u)}" text-anchor="end">${n(e.label)}</text>`}${e.values.map((e,t)=>{let n=g[t%g.length],o=r+t*(s+4),c=S(e,i,a.left,a.right),u=Math.min(l,c),d=Math.max(1,Math.abs(c-l));return`<rect x="${D(u)}" y="${D(o)}" width="${D(d)}" height="${D(s)}" rx="3" fill="${n}" />`}).join(``)}`}).join(``);return`<svg class="bk-chart-svg" viewBox="0 0 500 300" width="100%" preserveAspectRatio="xMidYMid meet" role="img" aria-label="horizontal bar chart">${he(a,i)}<line class="bk-chart-axis" x1="${D(l)}" y1="${D(a.top)}" x2="${D(l)}" y2="${D(a.bottom)}" />${u}</svg>`}function oe(e,t){let r=pe(e.data,e.xKey,e.yKeys),i=e.data.map(t=>({label:w(t[e.xKey]),value:T(t[r])})).filter(e=>e.value>0);if(i.length===0)return``;let a=i.reduce((e,t)=>e+t.value,0);if(a<=0)return``;let o=t?88*.6:0,s=-90,c=[],l=[];i.forEach((e,r)=>{let i=g[r%g.length],u=e.value/a*360,d=s+u,f=e.value/a*100,p=t?be(150,140,88,o,s,d):ye(150,140,88,s,d);c.push(`${p?`<path d="${p}" fill="${i}" stroke="var(--dt-bg-secondary)" stroke-width="2" />`:`<circle cx="150" cy="140" r="88" fill="${i}" />`}`);let m=C(150,140,108,s+u/2);l.push(`<text class="bk-chart-slice-label" x="${D(m.x)}" y="${D(m.y)}" text-anchor="${m.x>=150?`start`:`end`}">${n(e.label)} ${n(E(f))}%</text>`),s=d});let u=t?`<circle cx="150" cy="140" r="${D(o-1)}" fill="var(--dt-bg-secondary)" />`:``;return`<svg class="bk-chart-svg" viewBox="0 0 300 300" width="100%" preserveAspectRatio="xMidYMid meet" role="img" aria-label="${t?`donut chart`:`pie chart`}">${c.join(``)}${u}${l.join(``)}</svg>`}function se(e){let t=pe(e.data,e.xKey,e.yKeys),n=e.data.map(e=>T(e[t]));if(n.every(e=>e===0))return``;let r=x(n),i=n.map((e,t)=>{let i=ve(t,n.length,0,100),a=S(e,r,28,2);return`${D(i)},${D(a)}`});return`<svg class="bk-chart-svg" viewBox="0 0 100 30" width="100%" height="30" preserveAspectRatio="none" role="img" aria-label="sparkline"><polyline fill="none" stroke="${g[0]}" stroke-width="2.25" stroke-linejoin="round" stroke-linecap="round" points="${i.join(` `)}" /></svg>`}function ce(e){let t=e.data.map(t=>({label:w(t[e.xKey]),values:e.yKeys.map(e=>T(t[e]))})),r=t.flatMap(e=>e.values).filter(Number.isFinite);if(r.length===0)return``;let i=x(r),a=b(500,300,{left:80,right:20,top:42,bottom:20}),o=a.width/e.yKeys.length,s=a.height/t.length;return`<svg class="bk-chart-svg" viewBox="0 0 500 300" width="100%" preserveAspectRatio="xMidYMid meet" role="img" aria-label="heatmap chart">${e.yKeys.map((e,t)=>`<text class="bk-chart-label" x="${D(a.left+t*o+o/2)}" y="28" text-anchor="middle">${n(e)}</text>`).join(``)}${t.map((e,t)=>{let r=a.top+t*s+s/2+4;return`<text class="bk-chart-label" x="${D(a.left-8)}" y="${D(r)}" text-anchor="end">${n(e.label)}</text>`}).join(``)}${t.map((e,t)=>e.values.map((e,n)=>{let r=a.left+n*o,c=a.top+t*s;return`<rect x="${D(r)}" y="${D(c)}" width="${D(o-4)}" height="${D(s-4)}" rx="4" stroke="var(--dt-border-muted)" style="fill: ${xe(e,i)}" />`}).join(``)).join(``)}</svg>`}function le(e,t){return`<div class="bk-chart-table-wrap"><table class="bk-chart-table"><thead><tr>${e.map(e=>`<th>${n(e)}</th>`).join(``)}</tr></thead><tbody>${t.map(t=>`<tr>${e.map(e=>`<td>${n(a(t[e]))}</td>`).join(``)}</tr>`).join(``)}</tbody></table></div>`}function v(e,t){return`<div class="bk-chart"><div class="bk-chart-note">Chart fallback (${e}) rendered as a data table.</div>${t}</div>`}function ue(e){return`<details class="bk-chart-details"><summary>Show data</summary>${e}</details>`}function de(e){return`<div class="bk-chart-legend">${e.map((e,t)=>`<span class="bk-chart-legend-item"><span class="bk-chart-legend-swatch" style="background:${g[t%g.length]}"></span>${n(e)}</span>`).join(``)}</div>`}function fe(e,t){if(e.length===0||t in e[0])return t;for(let t of e){let e=Object.keys(t).find(e=>typeof t[e]==`string`);if(e)return e}return t}function pe(e,t,n){let r=n.find(n=>n!==t&&e.some(e=>Se(e[n])));if(r)return r;for(let n of e){let e=Object.keys(n).find(e=>e!==t&&Se(n[e]));if(e)return e}return n[0]??`value`}function y(e,t,n){return e.map(e=>({label:w(e[t]),values:n.map(t=>T(e[t]))}))}function me(e,t){return Array.from({length:5},(r,i)=>{let a=i/4,o=t.max-a*(t.max-t.min),s=e.top+a*e.height;return`<line class="bk-chart-grid" x1="${D(e.left)}" y1="${D(s)}" x2="${D(e.right)}" y2="${D(s)}" /><text class="bk-chart-label" x="${D(e.left-8)}" y="${D(s+4)}" text-anchor="end">${n(E(o))}</text>`}).join(``)}function he(e,t){return Array.from({length:5},(r,i)=>{let a=i/4,o=t.min+a*(t.max-t.min),s=e.left+a*e.width;return`<line class="bk-chart-grid" x1="${D(s)}" y1="${D(e.top)}" x2="${D(s)}" y2="${D(e.bottom)}" /><text class="bk-chart-label" x="${D(s)}" y="${D(e.bottom+18)}" text-anchor="middle">${n(E(o))}</text>`}).join(``)}function ge(e){return`<line class="bk-chart-axis" x1="${D(e.left)}" y1="${D(e.top)}" x2="${D(e.left)}" y2="${D(e.bottom)}" /><line class="bk-chart-axis" x1="${D(e.left)}" y1="${D(e.bottom)}" x2="${D(e.right)}" y2="${D(e.bottom)}" />`}function _e(e,t,r){return e.map((e,i)=>`<text class="bk-chart-label" x="${D(t[i])}" y="${D(r)}" text-anchor="middle">${n(e.label)}</text>`).join(``)}function b(e,t,n){return{left:n.left,top:n.top,right:e-n.right,bottom:t-n.bottom,width:e-n.left-n.right,height:t-n.top-n.bottom}}function x(e,t){let n=Math.min(...e),r=Math.max(...e);if(t?.includeZero&&(n=Math.min(n,0),r=Math.max(r,0)),n===r){let e=n===0?1:Math.abs(n)*.1||1;n-=e,r+=e}return{min:n,max:r}}function ve(e,t,n,r){return t<=1?(n+r)/2:n+e/(t-1)*(r-n)}function S(e,t,n,r){return n+(e-t.min)/(t.max-t.min)*(r-n)}function ye(e,t,n,r,i){if(Math.abs(i-r)>=359.999)return``;let a=C(e,t,n,r),o=C(e,t,n,i),s=+(i-r>180);return`M ${D(e)} ${D(t)} L ${D(a.x)} ${D(a.y)} A ${D(n)} ${D(n)} 0 ${s} 1 ${D(o.x)} ${D(o.y)} Z`}function be(e,t,n,r,i,a){if(Math.abs(a-i)>=359.999)return``;let o=C(e,t,n,i),s=C(e,t,n,a),c=C(e,t,r,a),l=C(e,t,r,i),u=+(a-i>180);return[`M ${D(o.x)} ${D(o.y)}`,`A ${D(n)} ${D(n)} 0 ${u} 1 ${D(s.x)} ${D(s.y)}`,`L ${D(c.x)} ${D(c.y)}`,`A ${D(r)} ${D(r)} 0 ${u} 0 ${D(l.x)} ${D(l.y)}`,`Z`].join(` `)}function C(e,t,n,r){let i=(r-90)*Math.PI/180;return{x:e+n*Math.cos(i),y:t+n*Math.sin(i)}}function xe(e,t){let n=18+Math.max(0,Math.min(1,(e-t.min)/(t.max-t.min)))*64;return`color-mix(in srgb, var(--dt-bg-secondary) ${D(100-n)}%, var(--dt-accent-fg) ${D(n)}%)`}function w(e){return e==null?``:String(a(e))}function T(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`&&e.trim()!==``){let t=Number(e);if(Number.isFinite(t))return t}return 0}function Se(e){return typeof e==`number`?Number.isFinite(e):typeof e==`string`&&e.trim()!==``&&Number.isFinite(Number(e))}function E(e){return String(a(Number(e.toFixed(2))))}function D(e){return Number(e.toFixed(2)).toString()}function Ce(e,t){return`<ul class="bk-checklist">${f(e).map(e=>{let t=!!e.checked;return`<li class="bk-checklist-item" data-checked="${String(t)}"><span class="bk-checklist-icon">${t?`✓`:`×`}</span><span class="bk-checklist-label">${n(e.label)}</span></li>`}).join(``)}</ul>`}function we(e,t){let r=e.language?` language-${i(String(e.language))}`:``,a=e.value??``,o=typeof a==`object`&&a?JSON.stringify(a,null,2):String(a);return`<pre class="bk-code"><code class="${r.trim()}">${n(o)}</code></pre>`}function Te(e){let t=o(e);return Array.isArray(t)?t:t&&typeof t==`object`&&Array.isArray(t.columns)?t.columns:[]}function Ee(e,t){return`<div class="bk-comparison">${Te(e.value).map(e=>{let t=e.items.map(e=>`<li>${n(e)}</li>`).join(``);return`<section class="bk-comparison-column"><div class="bk-comparison-title">${n(e.title)}</div><ul class="bk-comparison-items">${t}</ul></section>`}).join(``)}</div>`}function De(e){let t=o(e);if(t&&typeof t==`object`){let e=t;return{name:typeof e.name==`string`?e.name:`Untitled component`,description:typeof e.description==`string`?e.description:void 0,type:typeof e.type==`string`?e.type:void 0,technology:typeof e.technology==`string`?e.technology:void 0,responsibilities:Array.isArray(e.responsibilities)?e.responsibilities.map(String).filter(Boolean):[],interfaces:Array.isArray(e.interfaces)?e.interfaces:[],dependencies:Array.isArray(e.dependencies)?e.dependencies:[],metrics:e.metrics&&typeof e.metrics==`object`?e.metrics:void 0,codeLinks:Array.isArray(e.codeLinks)?e.codeLinks:[]}}return{name:`Untitled component`}}function Oe(e){return e.length===0?``:`<details class="bk-component-detail-section" open><summary class="bk-component-detail-summary">Responsibilities</summary><ul class="bk-component-detail-list">${e.map(e=>`<li>${n(e)}</li>`).join(``)}</ul></details>`}function ke(e){return e.length===0?``:`<details class="bk-component-detail-section" open><summary class="bk-component-detail-summary">Interfaces</summary><div class="bk-component-detail-table-wrap"><table class="bk-component-detail-table"><thead><tr><th>Name</th><th>Type</th><th>Description</th></tr></thead><tbody>${e.map(e=>`<tr><td class="bk-component-detail-code">${n(e.name)}</td><td class="bk-component-detail-code">${n(e.type)}</td><td>${n(e.description??``)}</td></tr>`).join(``)}</tbody></table></div></details>`}function Ae(e){return e.length===0?``:`<details class="bk-component-detail-section" open><summary class="bk-component-detail-summary">Dependencies</summary><ul class="bk-component-detail-dependencies">${e.map(e=>`<li class="bk-component-detail-dependency"><span class="bk-component-detail-dependency-name">${n(e.name)}</span>${e.relationship?`<span class="bk-component-detail-dependency-relationship">${n(e.relationship)}</span>`:``}</li>`).join(``)}</ul></details>`}function je(e){let t=Object.entries(e??{});return t.length===0?``:`<details class="bk-component-detail-section" open><summary class="bk-component-detail-summary">Metrics</summary><div class="bk-component-detail-metrics">${t.map(([e,t])=>`<div class="bk-component-detail-metric"><span class="bk-component-detail-metric-label">${n(e)}</span><strong class="bk-component-detail-metric-value">${n(String(t))}</strong></div>`).join(``)}</div></details>`}function Me(e){let t=Array.isArray(e.codeLinks)?e.codeLinks:[];return t.length===0?``:`<details class="bk-component-detail-section" open><summary class="bk-component-detail-summary">Code Links</summary><div class="bk-component-detail-links">${t.map(e=>`<a class="bk-component-detail-link" href="${r(e.href)}">${n(e.label)}</a>`).join(``)}</div></details>`}function Ne(e,t){let r=De(e.value),i=r.description?`<p class="bk-component-detail-description">${n(r.description)}</p>`:``,a=r.type?`<span class="bk-component-detail-badge">${n(r.type)}</span>`:``,o=r.technology?`<span class="bk-component-detail-tech">${n(r.technology)}</span>`:``,s=[Oe(r.responsibilities??[]),ke(r.interfaces??[]),Ae(r.dependencies??[]),je(r.metrics),Me(r)].join(``);return`<article class="bk-component-detail"><header class="bk-component-detail-header"><div class="bk-component-detail-heading"><h4 class="bk-component-detail-name">${n(r.name)}</h4>${a}${o}</div>${i}</header><div class="bk-component-detail-body">${s}</div></article>`}function Pe(e){let t=o(e);if(t&&typeof t==`object`){let e=t;return{name:typeof e.name==`string`?e.name:`unnamed_schema`,description:typeof e.description==`string`?e.description:void 0,fields:Array.isArray(e.fields)?e.fields:[],indexes:Array.isArray(e.indexes)?e.indexes:[]}}return{name:`unnamed_schema`,fields:[]}}function Fe(e){return Array.isArray(e.constraints)&&e.constraints.includes(`primary-key`)}function Ie(e){return e.startsWith(`foreign-key:`)?`<a class="bk-data-table-schema-badge bk-data-table-schema-badge--link" href="${r(`#${i(e.slice(12).replace(/\./g,`_`))}`)}">${n(e)}</a>`:`<span class="bk-data-table-schema-badge${e===`primary-key`?` bk-data-table-schema-badge--primary`:``}">${n(e)}</span>`}function Le(e){return e.length===0?``:`<section class="bk-data-table-schema-indexes"><h5 class="bk-data-table-schema-subtitle">Indexes</h5><div class="bk-data-table-schema-index-grid">${e.map(e=>`<article class="bk-data-table-schema-index"><div class="bk-data-table-schema-index-name">${n(e.name)}</div><div class="bk-data-table-schema-index-columns">${n(e.columns.join(`, `))}</div><div class="bk-data-table-schema-index-meta">${e.unique?`Unique`:`Standard`}</div></article>`).join(``)}</div></section>`}function Re(e,t){let r=Pe(e.value),a=r.description?`<p class="bk-data-table-schema-description">${n(r.description)}</p>`:``;if(!Array.isArray(r.fields)||r.fields.length===0)return`<section class="bk-data-table-schema"><header class="bk-data-table-schema-header"><h4 class="bk-data-table-schema-title">${n(r.name)}</h4>${a}</header><p class="bk-data-table-schema-empty">No schema fields available.</p></section>`;let o=r.fields.map(e=>{let t=Array.isArray(e.constraints)?e.constraints:[],a=t.length>0?t.map(e=>Ie(e)).join(``):`<span class="bk-data-table-schema-badge">none</span>`;return`<tr class="bk-data-table-schema-row${Fe(e)?` bk-data-table-schema-row--primary`:``}" id="${i(`${r.name}_${e.name}`)}"><td class="bk-data-table-schema-code">${n(e.name)}</td><td class="bk-data-table-schema-code">${n(e.type)}</td><td class="bk-data-table-schema-required">${e.required?`✓`:`—`}</td><td><div class="bk-data-table-schema-constraints">${a}</div></td><td class="bk-data-table-schema-code">${n(e.default??`—`)}</td><td>${n(e.description??``)}</td></tr>`}).join(``);return`<section class="bk-data-table-schema"><header class="bk-data-table-schema-header"><h4 class="bk-data-table-schema-title">${n(r.name)}</h4>${a}</header><div class="bk-data-table-schema-wrap"><table class="bk-data-table-schema-table"><thead><tr><th>Field Name</th><th>Type</th><th>Required</th><th>Constraints</th><th>Default</th><th>Description</th></tr></thead><tbody>${o}</tbody></table></div>${Le(r.indexes??[])}</section>`}const ze={person:{open:`([`,close:`])`},actor:{open:`([`,close:`])`},database:{open:`[(`,close:`)]`},storage:{open:`[(`,close:`)]`},decision:{open:`{`,close:`}`},branch:{open:`{`,close:`}`},external:{open:`{{`,close:`}}`},system:{open:`{{`,close:`}}`},start:{open:`((`,close:`))`},end:{open:`((`,close:`))`}},Be={open:`[`,close:`]`};function Ve(e){return ze[e]??Be}function O(e,t){return e.replace(/[^a-zA-Z0-9_]/g,`_`).replace(/^_+|_+$/g,``).replace(/_+/g,`_`)||(t===void 0?`node`:`node_${t}`)}function k(e){return e.replace(/"/g,`#quot;`).replace(/\[/g,`#91;`).replace(/\]/g,`#93;`).replace(/\(/g,`#40;`).replace(/\)/g,`#41;`).replace(/\{/g,`#123;`).replace(/\}/g,`#125;`).replace(/`/g,`#96;`).replace(/\n/g,` `).replace(/\r/g,``)}function He(e,t){let r=e.value;if(!r||typeof r!=`object`)return`<div class="bk-diagram"><p class="bk-diagram-empty">No diagram data</p></div>`;let i=String(r.diagram_type??`unknown`),a=r.meta,o=String(a?.title??`Diagram`),s=Ue(r.components??r.nodes??r.participants??r.states??[]),c=Ue(r.connections??r.edges??r.messages??r.flows??r.transitions??[]),l=[`graph TD`],u=new Set,d=new Map,f=0;for(let e of s){let t=O(String(e.id??e.label??e.name??`node`),f);if(f++,u.has(t))continue;u.add(t),d.set(t,e);let n=String(e.label??e.name??t),r=String(e.type??String(e.kind??``)),i=e.technology?`<br><small>${k(String(e.technology))}</small>`:``,a=Ve(r);l.push(` ${t}${a.open}"${k(n)}${i}"${a.close}`)}for(let e of c){let t=String(e.from??e.source??``),n=String(e.to??e.target??``),r=O(t),i=O(n);if(!u.has(r)||!u.has(i))continue;let a=e.label?` -- "${k(String(e.label))}" --> `:` --> `;l.push(` ${r}${a}${i}`)}let p=u.size>0,m=l.join(`
|
|
2
|
-
`),
|
|
3
|
-
|
|
1
|
+
function e(e){return e.kind===`result`}function t(e){return e.kind===`error`}function n(e){return String(e??``).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}function r(e){let t=String(e??``).trim();return/^(https?:|mailto:|#)/i.test(t)?t:`#`}function i(e){return String(e??``).replace(/[^a-zA-Z0-9_-]/g,`_`)}function a(e){if(e==null)return``;if(Array.isArray(e))return e.map(a).join(`, `);if(typeof e==`object`)try{return JSON.stringify(e)}catch{return String(e)}return String(e)}function o(e){if(typeof e!=`string`)return e;let t=e.trim();if(t.startsWith(`[`)&&t.endsWith(`]`)||t.startsWith(`{`)&&t.endsWith(`}`))try{return JSON.parse(t)}catch{return e}return e}function s(e){return n(String(e??``)).replace(/\*\*(.+?)\*\*/g,`<strong>$1</strong>`).replace(/`(.+?)`/g,`<code>$1</code>`).replace(/\[([^\]]+)\]\(([^)]+)\)/g,(e,t,n)=>`<a href="${r(n)}">${t}</a>`)}const c={ok:`success`,pass:`success`,passed:`success`,good:`success`,error:`danger`,fail:`danger`,failed:`danger`,critical:`danger`,high:`danger`,warn:`warning`,caution:`warning`,medium:`warning`,info:`accent`,low:`accent`,note:`accent`},l=new Set([`success`,`danger`,`warning`,`accent`]);function u(e){if(!e)return`accent`;let t=String(e).toLowerCase(),n=c[t]??t;return l.has(n)?n:`accent`}function d(e,t=`fg`){return`var(--dt-${u(e)}-${t})`}function f(e){let t=e.value;return Array.isArray(t)?t:t&&typeof t==`object`&&`items`in t&&Array.isArray(t.items)?t.items:[]}function p(e){let t=o(e);return Array.isArray(t)?t:[]}function m(e,t){return`<div class="bk-actions">${p(e.value).map(e=>{let t=i(e.id);if(e.type===`select`){let r=(e.options??[]).map(e=>{let t=typeof e==`string`?e:e.value,r=typeof e==`string`?e:e.label;return`<option value="${n(t)}">${n(r)}</option>`}).join(``);return`<label class="bk-select-wrap"><span class="bk-visually-hidden">${n(e.label)}</span><select class="bk-select" data-action-id="${t}" data-action-row="single"><option value="" selected disabled>${n(e.label)}</option>${r}</select></label>`}if(e.type===`text-submit`)return`<div class="bk-text-submit" data-action-id="${t}" data-action-row="multi"><input type="text" class="bk-input" placeholder="${n(e.label)}" data-action-id="${t}" /><button type="button" class="bk-action bk-action--primary" data-action-id="${t}">Send</button></div>`;if(e.type===`multi-select`){let r=(e.options??[]).map(e=>{let t=typeof e==`string`?e:e.value,r=typeof e==`string`?e:e.label;return`<option value="${n(t)}">${n(r)}</option>`}).join(``);return`<label class="bk-select-wrap"><span class="bk-visually-hidden">${n(e.label)}</span><select class="bk-select bk-multi-select" data-action-id="${t}" data-action-row="single" multiple size="1">${r}</select></label>`}if(e.type===`form-submit`&&e.schema){let r=e.schema;return`<form class="bk-form" data-action-id="${t}" data-action-row="multi"><fieldset>${Object.entries(r).map(([e,t])=>{let r=t.description??e,i=t.type===`number`?`number`:`text`;return`<label class="bk-form-field"><span class="bk-form-label">${n(r)}</span><input type="${i}" class="bk-input" name="${n(e)}" placeholder="${n(r)}" /></label>`}).join(``)}<button type="submit" class="bk-action bk-action--primary">${n(e.label)}</button></fieldset></form>`}return`<button type="button" class="bk-action bk-action--${n(e.variant??`default`)}" data-action-id="${t}" data-action-row="single">${n(e.label)}</button>`}).join(``)}<div class="bk-action-feedback" style="display:none;font-size:0.875rem;color:var(--dt-text-secondary);padding:var(--dt-space-2) 0;" data-feedback-state="pending">💬 Feedback sent</div></div>`}function h(e,t){return`<div class="bk-cards">${f(e).map((e,t)=>{let r=e.badge?`<span class="bk-card-badge">${n(e.badge)}</span>`:``,i=e.body?`<div class="bk-card-body">${n(e.body)}</div>`:``,a=e.description?`<div class="bk-card-description">${n(e.description)}</div>`:``;return`<article class="bk-card" data-tone="${u(e.status)}" style="--i: ${t}" aria-label="${n(e.title)}">${r?`<div class="bk-card-header"><div class="bk-card-title">${n(e.title)}</div>${r}</div>`:`<div class="bk-card-header"><div class="bk-card-title">${n(e.title)}</div></div>`}${i}${a}</article>`}).join(``)}</div>`}const g=[`#45c8a8`,`#c89bff`,`#f5b342`,`#6baef8`,`#2bd47c`,`#f56a6a`,`#f472b6`,`#38bdf8`],_=new Set([`line`,`area`,`bar`,`horizontal-bar`,`pie`,`donut`,`sparkline`,`heatmap`]);function v(e,t){let n=ee(e),r=ce(n.headers,n.data);if(n.data.length===0||!_.has(n.chartType))return le(n.note,r);let i=te(n);if(!i)return le(n.note,r);let a=n.chartType===`pie`||n.chartType===`donut`?[]:n.yKeys;return`<div class="bk-chart"><div class="bk-chart-surface">${i}</div>${a.length>1?de(a):``}${ue(r)}</div>`}function ee(e){let t=o(e.value),r=Array.isArray(t?.data)?t.data:[],i=String(t?.chartType??e.chartType??`bar`),a=_.has(i)?i:`bar`,s=n(i),c=fe(r,String(t?.xKey??`label`)),l=Array.isArray(t?.yKeys)?t.yKeys.filter(e=>typeof e==`string`):[],u=l.length>0?l:[`value`];if(l.length===0&&r.length>0&&r[0]!=null){let e=r[0];if(!(`value`in e&&typeof e.value==`number`)){let t=Object.keys(e).filter(t=>t!==c&&typeof e[t]==`number`);t.length>0&&(u=t)}}let d=[c,...u.filter((e,t)=>e!==c&&u.indexOf(e)===t)];return{chartType:a,data:r,xKey:c,yKeys:u,headers:d,note:s}}function te(e){switch(e.chartType){case`line`:case`area`:return ne(e,e.chartType===`area`);case`bar`:return re(e);case`horizontal-bar`:return ie(e);case`pie`:return ae(e,!1);case`donut`:return ae(e,!0);case`sparkline`:return oe(e);case`heatmap`:return se(e);default:return``}}function ne(e,t){let r=me(e.data,e.xKey,e.yKeys),i=r.flatMap(e=>e.values).filter(Number.isFinite);if(i.length===0)return``;let a=b(i),o=y(500,300,{left:60,right:20,top:20,bottom:40}),s=r.map((e,t)=>ye(t,r.length,o.left,o.right)),c=e.yKeys.map((e,n)=>{let i=g[n%g.length],c=r.map((e,t)=>{let r=s[t],i=x(e.values[n],a,o.bottom,o.top);return`${E(r)},${E(i)}`}),l=r.map((e,t)=>{let r=s[t],c=x(e.values[n],a,o.bottom,o.top);return`<circle cx="${E(r)}" cy="${E(c)}" r="3" fill="${i}" />`}).join(``),u=`<polyline fill="none" stroke="${i}" stroke-width="2.5" stroke-linejoin="round" stroke-linecap="round" points="${c.join(` `)}" />`;return t?`<polygon fill="${i}" fill-opacity="0.16" points="${[`${E(s[0])},${E(o.bottom)}`,...c,`${E(s[s.length-1])},${E(o.bottom)}`].join(` `)}" />${u}${l}`:`${u}${l}`}).join(``);return`<svg class="bk-chart-svg" viewBox="0 0 500 300" width="100%" preserveAspectRatio="xMidYMid meet" role="img" aria-label="${n(`${e.chartType} chart`)}">${he(o,a)}${_e(o)}${ve(r,s,o.bottom+18)}${c}</svg>`}function re(e){let t=me(e.data,e.xKey,e.yKeys),n=t.flatMap(e=>e.values).filter(Number.isFinite);if(n.length===0)return``;let r=b(n,{includeZero:!0}),i=y(500,300,{left:60,right:20,top:20,bottom:40}),a=i.width/t.length,o=Math.max(4,Math.min(28,(a-12-4*(e.yKeys.length-1))/e.yKeys.length)),s=e.yKeys.length*o+(e.yKeys.length-1)*4,c=x(0,r,i.bottom,i.top),l=t.map((e,t)=>{let n=i.left+t*a+(a-s)/2;return e.values.map((e,t)=>{let a=g[t%g.length],s=n+t*(o+4),l=x(e,r,i.bottom,i.top),u=Math.min(l,c),d=Math.max(1,Math.abs(c-l));return`<rect x="${E(s)}" y="${E(u)}" width="${E(o)}" height="${E(d)}" rx="3" fill="${a}" />`}).join(``)}).join(``),u=t.map((e,t)=>i.left+t*a+a/2);return`<svg class="bk-chart-svg" viewBox="0 0 500 300" width="100%" preserveAspectRatio="xMidYMid meet" role="img" aria-label="bar chart">${he(i,r)}${_e(i)}${ve(t,u,i.bottom+18)}${l}</svg>`}function ie(e){let t=me(e.data,e.xKey,e.yKeys),r=t.flatMap(e=>e.values).filter(Number.isFinite);if(r.length===0)return``;let i=b(r,{includeZero:!0}),a=y(500,300,{left:110,right:20,top:20,bottom:36}),o=a.height/t.length,s=Math.max(4,Math.min(18,(o-8-4*(e.yKeys.length-1))/e.yKeys.length)),c=e.yKeys.length*s+(e.yKeys.length-1)*4,l=x(0,i,a.left,a.right),u=t.map((e,t)=>{let r=a.top+t*o+(o-c)/2,u=a.top+t*o+o/2+4;return`${`<text class="bk-chart-label" x="${E(a.left-8)}" y="${E(u)}" text-anchor="end">${n(e.label)}</text>`}${e.values.map((e,t)=>{let n=g[t%g.length],o=r+t*(s+4),c=x(e,i,a.left,a.right),u=Math.min(l,c),d=Math.max(1,Math.abs(c-l));return`<rect x="${E(u)}" y="${E(o)}" width="${E(d)}" height="${E(s)}" rx="3" fill="${n}" />`}).join(``)}`}).join(``);return`<svg class="bk-chart-svg" viewBox="0 0 500 300" width="100%" preserveAspectRatio="xMidYMid meet" role="img" aria-label="horizontal bar chart">${ge(a,i)}<line class="bk-chart-axis" x1="${E(l)}" y1="${E(a.top)}" x2="${E(l)}" y2="${E(a.bottom)}" />${u}</svg>`}function ae(e,t){let r=pe(e.data,e.xKey,e.yKeys),i=e.data.map(t=>({label:C(t[e.xKey]),value:w(t[r])})).filter(e=>e.value>0);if(i.length===0)return``;let a=i.reduce((e,t)=>e+t.value,0);if(a<=0)return``;let o=t?88*.6:0,s=-90,c=[],l=[];i.forEach((e,r)=>{let i=g[r%g.length],u=e.value/a*360,d=s+u,f=e.value/a*100,p=t?xe(150,140,88,o,s,d):be(150,140,88,s,d);c.push(`${p?`<path d="${p}" fill="${i}" stroke="var(--dt-bg-secondary)" stroke-width="2" />`:`<circle cx="150" cy="140" r="88" fill="${i}" />`}`);let m=S(150,140,108,s+u/2);l.push(`<text class="bk-chart-slice-label" x="${E(m.x)}" y="${E(m.y)}" text-anchor="${m.x>=150?`start`:`end`}">${n(e.label)} ${n(T(f))}%</text>`),s=d});let u=t?`<circle cx="150" cy="140" r="${E(o-1)}" fill="var(--dt-bg-secondary)" />`:``;return`<svg class="bk-chart-svg" viewBox="0 0 300 300" width="100%" preserveAspectRatio="xMidYMid meet" role="img" aria-label="${t?`donut chart`:`pie chart`}">${c.join(``)}${u}${l.join(``)}</svg>`}function oe(e){let t=pe(e.data,e.xKey,e.yKeys),n=e.data.map(e=>w(e[t]));if(n.every(e=>e===0))return``;let r=b(n),i=n.map((e,t)=>{let i=ye(t,n.length,0,100),a=x(e,r,28,2);return`${E(i)},${E(a)}`});return`<svg class="bk-chart-svg" viewBox="0 0 100 30" width="100%" height="30" preserveAspectRatio="none" role="img" aria-label="sparkline"><polyline fill="none" stroke="${g[0]}" stroke-width="2.25" stroke-linejoin="round" stroke-linecap="round" points="${i.join(` `)}" /></svg>`}function se(e){let t=e.data.map(t=>({label:C(t[e.xKey]),values:e.yKeys.map(e=>w(t[e]))})),r=t.flatMap(e=>e.values).filter(Number.isFinite);if(r.length===0)return``;let i=b(r),a=y(500,300,{left:80,right:20,top:42,bottom:20}),o=a.width/e.yKeys.length,s=a.height/t.length;return`<svg class="bk-chart-svg" viewBox="0 0 500 300" width="100%" preserveAspectRatio="xMidYMid meet" role="img" aria-label="heatmap chart">${e.yKeys.map((e,t)=>`<text class="bk-chart-label" x="${E(a.left+t*o+o/2)}" y="28" text-anchor="middle">${n(e)}</text>`).join(``)}${t.map((e,t)=>{let r=a.top+t*s+s/2+4;return`<text class="bk-chart-label" x="${E(a.left-8)}" y="${E(r)}" text-anchor="end">${n(e.label)}</text>`}).join(``)}${t.map((e,t)=>e.values.map((e,n)=>{let r=a.left+n*o,c=a.top+t*s;return`<rect x="${E(r)}" y="${E(c)}" width="${E(o-4)}" height="${E(s-4)}" rx="4" stroke="var(--dt-border-muted)" style="fill: ${Se(e,i)}" />`}).join(``)).join(``)}</svg>`}function ce(e,t){return`<div class="bk-chart-table-wrap"><table class="bk-chart-table"><thead><tr>${e.map(e=>`<th>${n(e)}</th>`).join(``)}</tr></thead><tbody>${t.map(t=>`<tr>${e.map(e=>`<td>${n(a(t[e]))}</td>`).join(``)}</tr>`).join(``)}</tbody></table></div>`}function le(e,t){return`<div class="bk-chart"><div class="bk-chart-note">Chart fallback (${e}) rendered as a data table.</div>${t}</div>`}function ue(e){return`<details class="bk-chart-details"><summary>Show data</summary>${e}</details>`}function de(e){return`<div class="bk-chart-legend">${e.map((e,t)=>`<span class="bk-chart-legend-item"><span class="bk-chart-legend-swatch" style="background:${g[t%g.length]}"></span>${n(e)}</span>`).join(``)}</div>`}function fe(e,t){if(e.length===0||t in e[0])return t;for(let t of e){let e=Object.keys(t).find(e=>typeof t[e]==`string`);if(e)return e}return t}function pe(e,t,n){let r=n.find(n=>n!==t&&e.some(e=>Ce(e[n])));if(r)return r;for(let n of e){let e=Object.keys(n).find(e=>e!==t&&Ce(n[e]));if(e)return e}return n[0]??`value`}function me(e,t,n){return e.map(e=>({label:C(e[t]),values:n.map(t=>w(e[t]))}))}function he(e,t){return Array.from({length:5},(r,i)=>{let a=i/4,o=t.max-a*(t.max-t.min),s=e.top+a*e.height;return`<line class="bk-chart-grid" x1="${E(e.left)}" y1="${E(s)}" x2="${E(e.right)}" y2="${E(s)}" /><text class="bk-chart-label" x="${E(e.left-8)}" y="${E(s+4)}" text-anchor="end">${n(T(o))}</text>`}).join(``)}function ge(e,t){return Array.from({length:5},(r,i)=>{let a=i/4,o=t.min+a*(t.max-t.min),s=e.left+a*e.width;return`<line class="bk-chart-grid" x1="${E(s)}" y1="${E(e.top)}" x2="${E(s)}" y2="${E(e.bottom)}" /><text class="bk-chart-label" x="${E(s)}" y="${E(e.bottom+18)}" text-anchor="middle">${n(T(o))}</text>`}).join(``)}function _e(e){return`<line class="bk-chart-axis" x1="${E(e.left)}" y1="${E(e.top)}" x2="${E(e.left)}" y2="${E(e.bottom)}" /><line class="bk-chart-axis" x1="${E(e.left)}" y1="${E(e.bottom)}" x2="${E(e.right)}" y2="${E(e.bottom)}" />`}function ve(e,t,r){return e.map((e,i)=>`<text class="bk-chart-label" x="${E(t[i])}" y="${E(r)}" text-anchor="middle">${n(e.label)}</text>`).join(``)}function y(e,t,n){return{left:n.left,top:n.top,right:e-n.right,bottom:t-n.bottom,width:e-n.left-n.right,height:t-n.top-n.bottom}}function b(e,t){let n=e.reduce((e,t)=>e<t?e:t,1/0),r=e.reduce((e,t)=>e>t?e:t,-1/0);if(t?.includeZero&&(n=Math.min(n,0),r=Math.max(r,0)),n===r){let e=n===0?1:Math.abs(n)*.1||1;n-=e,r+=e}return{min:n,max:r}}function ye(e,t,n,r){return t<=1?(n+r)/2:n+e/(t-1)*(r-n)}function x(e,t,n,r){return n+(e-t.min)/(t.max-t.min)*(r-n)}function be(e,t,n,r,i){if(Math.abs(i-r)>=359.999)return``;let a=S(e,t,n,r),o=S(e,t,n,i),s=+(i-r>180);return`M ${E(e)} ${E(t)} L ${E(a.x)} ${E(a.y)} A ${E(n)} ${E(n)} 0 ${s} 1 ${E(o.x)} ${E(o.y)} Z`}function xe(e,t,n,r,i,a){if(Math.abs(a-i)>=359.999)return``;let o=S(e,t,n,i),s=S(e,t,n,a),c=S(e,t,r,a),l=S(e,t,r,i),u=+(a-i>180);return[`M ${E(o.x)} ${E(o.y)}`,`A ${E(n)} ${E(n)} 0 ${u} 1 ${E(s.x)} ${E(s.y)}`,`L ${E(c.x)} ${E(c.y)}`,`A ${E(r)} ${E(r)} 0 ${u} 0 ${E(l.x)} ${E(l.y)}`,`Z`].join(` `)}function S(e,t,n,r){let i=(r-90)*Math.PI/180;return{x:e+n*Math.cos(i),y:t+n*Math.sin(i)}}function Se(e,t){let n=18+Math.max(0,Math.min(1,(e-t.min)/(t.max-t.min)))*64;return`color-mix(in srgb, var(--dt-bg-secondary) ${E(100-n)}%, var(--dt-accent-fg) ${E(n)}%)`}function C(e){return e==null?``:String(a(e))}function w(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`&&e.trim()!==``){let t=Number(e);if(Number.isFinite(t))return t}return 0}function Ce(e){return typeof e==`number`?Number.isFinite(e):typeof e==`string`&&e.trim()!==``&&Number.isFinite(Number(e))}function T(e){return String(a(Number(e.toFixed(2))))}function E(e){return Number(e.toFixed(2)).toString()}function we(e,t){return`<ul class="bk-checklist">${f(e).map((e,t)=>{let r=!!e.checked;return`<li class="bk-checklist-item" data-checked="${String(r)}" role="checkbox" aria-checked="${String(r)}" tabindex="0" style="--i: ${t}"><span class="bk-checklist-icon" aria-hidden="true">${r?`✓`:`×`}</span><span class="bk-checklist-label">${n(e.label)}</span></li>`}).join(``)}</ul>`}const Te={javascript:{keywords:`async.await.break.case.catch.class.const.continue.debugger.default.delete.do.else.export.extends.false.finally.for.function.if.import.in.instanceof.let.new.null.of.return.static.super.switch.this.throw.true.try.typeof.undefined.var.void.while.with.yield`.split(`.`),builtins:[`console`,`Math`,`JSON`,`Promise`,`Array`,`Object`,`String`,`Number`,`Boolean`,`Map`,`Set`,`Symbol`,`RegExp`,`Date`,`Error`,`Proxy`,`Reflect`,`Buffer`,`setTimeout`,`setInterval`,`fetch`,`process`,`globalThis`,`Intl`,`BigInt`],types:[`string`,`number`,`boolean`,`symbol`,`bigint`,`undefined`,`null`,`any`,`void`,`never`,`unknown`],commentSingle:`//`,commentMultiOpen:`/*`,commentMultiClose:`*/`,stringDelims:[`"`,`'`,"`"],operators:`+\\-*/%=<>!&|^~?:`},typescript:{keywords:`async.await.break.case.catch.class.const.continue.debugger.default.delete.do.else.enum.export.extends.false.finally.for.function.if.import.in.implements.infer.instanceof.interface.is.keyof.let.new.null.of.readonly.return.static.super.switch.satisfies.this.throw.true.try.typeof.type.undefined.using.var.void.while.with.yield`.split(`.`),builtins:`console.Math.JSON.Promise.Array.Object.String.Number.Boolean.Map.Set.Symbol.RegExp.Date.Error.Proxy.Reflect.Buffer.setTimeout.setInterval.fetch.process.globalThis.Intl.BigInt.Partial.Required.Readonly.Pick.Omit.Record.Exclude.Extract.NonNullable.Parameters.ReturnType.InstanceType.Awaited`.split(`.`),types:[`string`,`number`,`boolean`,`symbol`,`bigint`,`undefined`,`null`,`any`,`void`,`never`,`unknown`,`object`],commentSingle:`//`,commentMultiOpen:`/*`,commentMultiClose:`*/`,stringDelims:[`"`,`'`,"`"],operators:`+\\-*/%=<>!&|^~?:`},python:{keywords:`False.None.True.and.as.assert.async.await.break.class.continue.def.del.elif.else.except.finally.for.from.global.if.import.in.is.lambda.nonlocal.not.or.pass.raise.return.try.while.with.yield`.split(`.`),builtins:`print.len.range.type.int.str.float.list.dict.set.tuple.bool.map.filter.zip.enumerate.reversed.sorted.open.input.isinstance.issubclass.hasattr.getattr.setattr.delattr.super.object.property.staticmethod.classmethod.self.cls.Exception.ValueError.TypeError.KeyError.IndexError.StopIteration`.split(`.`),types:[`int`,`float`,`str`,`bool`,`bytes`,`list`,`dict`,`set`,`tuple`,`None`,`Any`],commentSingle:`#`,stringDelims:[`"`,`'`],hashStrings:!0,operators:`+\\-*/%=<>!&|^~`},json:{keywords:[`true`,`false`,`null`],stringDelims:[`"`],operators:`:`,commentSingle:`//`,commentMultiOpen:`/*`,commentMultiClose:`*/`},yaml:{keywords:[`true`,`false`,`yes`,`no`,`on`,`off`,`null`,`~`],commentSingle:`#`,stringDelims:[`"`,`'`],operators:`:\\-`},html:{keywords:[`!DOCTYPE`],commentMultiOpen:`<!--`,commentMultiClose:`-->`,stringDelims:[`"`,`'`],operators:`=`},css:{keywords:[`import`,`media`,`keyframes`,`font-face`,`supports`,`charset`,`namespace`,`page`,`layer`,`container`],builtins:[`red`,`blue`,`green`,`white`,`black`,`transparent`,`currentcolor`,`inherit`,`initial`,`unset`,`revert`],commentMultiOpen:`/*`,commentMultiClose:`*/`,stringDelims:[`"`,`'`],operators:`:;`},shell:{keywords:[`if`,`then`,`else`,`elif`,`fi`,`for`,`while`,`do`,`done`,`case`,`esac`,`in`,`function`,`return`,`exit`,`break`,`continue`,`select`,`until`,`declare`,`local`,`export`,`readonly`,`unset`],builtins:`echo,printf,read,source,.,cd,pwd,ls,cat,grep,awk,sed,find,xargs,sort,uniq,wc,cut,tr,head,tail,tee,test,[,eval,exec,shift,type,command,let,mapfile,readarray,mkdir,rm,cp,mv,chmod,chown,docker,npm,node,git`.split(`,`),commentSingle:`#`,stringDelims:[`"`,`'`],operators:`=|<>`}},Ee={js:`javascript`,ts:`typescript`,py:`python`,sh:`shell`,bash:`shell`,zsh:`shell`,html:`html`,htm:`html`,css:`css`,json:`json`,yml:`yaml`};function De(e){return e?Te[Ee[e.toLowerCase()]??e.toLowerCase()]??null:null}function D(e,t){let n=[],r=0;for(;r<e.length;){let i=e[r];if(t.stringDelims.includes(i)&&i!=="`"){let a=i;if(t.hashStrings&&e.slice(r,r+3)===a+a+a){n.push({type:`string`,value:a+a+a}),r+=3;let t=e.indexOf(a+a+a,r);t===-1?(n.push({type:`string`,value:e.slice(r)}),r=e.length):(n.push({type:`string`,value:e.slice(r,t)}),n.push({type:`string`,value:a+a+a}),r=t+3);continue}let o=a;for(r++;r<e.length;){if(e[r]===`\\`&&r+1<e.length){o+=e[r]+e[r+1],r+=2;continue}if(e[r]===a){o+=a,r++;break}o+=e[r],r++}n.push({type:`string`,value:o});continue}if(t.stringDelims.includes("`")&&i==="`"){let t="`";for(r++;r<e.length;){if(e[r]===`\\`&&r+1<e.length){t+=e[r]+e[r+1],r+=2;continue}if(e[r]==="`"){t+="`",r++;break}t+=e[r],r++}n.push({type:`string`,value:t});continue}if(t.commentSingle&&e.startsWith(t.commentSingle,r)){n.push({type:`comment`,value:e.slice(r)}),r=e.length;continue}if(t.commentMultiOpen&&t.commentMultiClose&&e.startsWith(t.commentMultiOpen,r)){let i=t.commentMultiClose,a=e.indexOf(i,r+t.commentMultiOpen.length);a===-1?(n.push({type:`comment`,value:e.slice(r)}),r=e.length):(n.push({type:`comment`,value:e.slice(r,a+i.length)}),r=a+i.length);continue}if(i===`0`&&r+1<e.length&&/[xXbB]/.test(e[r+1])&&t.commentSingle!==`#`){let t=e.slice(r).match(/^0[xX][0-9a-fA-F]+/);if(t){n.push({type:`number`,value:t[0]}),r+=t[0].length;continue}}if(/[0-9]/.test(i)||i===`.`&&r+1<e.length&&/[0-9]/.test(e[r+1])){let t=e.slice(r).match(/^\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/);if(t){n.push({type:`number`,value:t[0]}),r+=t[0].length;continue}}if(/[a-zA-Z_$]/.test(i)||i===`@`){let i=e.slice(r).match(/^[@]?[a-zA-Z_$][a-zA-Z0-9_$]*/);if(i){let a=i[0],o=e=>e?e.includes(a):!1;if(o(t.keywords))n.push({type:`keyword`,value:a});else if(o(t.types))n.push({type:`keyword`,value:a});else if(o(t.builtins))n.push({type:`builtin`,value:a});else{let t=r+a.length;t<e.length&&e[t]===`(`?n.push({type:`function`,value:a}):n.push({type:`variable`,value:a})}r+=a.length;continue}}if(i===`<`&&t===Te.html)if(r+1<e.length&&e[r+1]===`/`){let t=e.indexOf(`>`,r+2);if(t!==-1){n.push({type:`punctuation`,value:`</`}),n.push({type:`tag`,value:e.slice(r+2,t)}),n.push({type:`punctuation`,value:`>`}),r=t+1;continue}}else{let t=e.indexOf(`>`,r+1);if(t!==-1){n.push({type:`punctuation`,value:`<`});let i=e.slice(r+1,t),a=i.match(/^[a-zA-Z][a-zA-Z0-9_-]*/);if(a){n.push({type:`tag`,value:a[0]});let e=a[0].length;for(;e<i.length;){if(i[e]===` `||i[e]===` `){e++;continue}let t=i.slice(e).match(/^[a-zA-Z_-][a-zA-Z0-9_-]*(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+))?/);if(t){let r=t[0],i=r.indexOf(`=`);if(i!==-1){n.push({type:`variable`,value:r.slice(0,i).trim()}),n.push({type:`operator`,value:`=`});let e=r.slice(i+1).trim();e.startsWith(`"`)&&e.endsWith(`"`)||e.startsWith(`'`)&&e.endsWith(`'`)?n.push({type:`string`,value:e}):n.push({type:`attr-value`,value:e})}else n.push({type:`attr-name`,value:r});e+=t[0].length;continue}break}}else n.push({type:`variable`,value:i});n.push({type:`punctuation`,value:`>`}),r=t+1;continue}}if(t.operators&&!t._opRegex&&(t._opRegex=RegExp(`[${t.operators}]`)),t._opRegex?.test(i)){let t=i,a=i+(e[r+1]||``);[`=>`,`==`,`!=`,`<=`,`>=`,`&&`,`||`,`++`,`--`,`+=`,`-=`,`*=`,`/=`,`::`,`?.`,`??`,`?:`,`??=`].includes(a)?(t=a,r++):i+e.slice(r+1,r+3)===`...`&&(t=`...`,r+=2),n.push({type:`operator`,value:t}),r++;continue}if(/[{}()[\];,:.]/.test(i)){n.push({type:`punctuation`,value:i}),r++;continue}let a=e.slice(r).match(/^[^\s]+/);a?(n.push({type:`variable`,value:a[0]}),r+=a[0].length):(n.push({type:`variable`,value:i}),r++)}return n}const Oe={keyword:`bk-hljs-keyword`,string:`bk-hljs-string`,comment:`bk-hljs-comment`,number:`bk-hljs-number`,builtin:`bk-hljs-builtin`,operator:`bk-hljs-operator`,punctuation:`bk-hljs-punctuation`,tag:`bk-hljs-tag`,"attr-name":`bk-hljs-attr-name`,"attr-value":`bk-hljs-attr-value`,function:`bk-hljs-function`,variable:`bk-hljs-variable`};function O(e){if(!e.length)return``;let t=[],r=null,i=``,a=()=>{if(!i)return;let e=n(i);r&&!/^\s+$/.test(i)?t.push(`<span class="${r}">${e}</span>`):t.push(e),i=``,r=null};for(let o of e){let e=Oe[o.type];if(/^\s+$/.test(o.value)||!e){i&&a(),t.push(n(o.value));continue}r===e?i+=o.value:(a(),r=e,i=o.value)}return a(),t.join(``)}function k(e,t){let r=De(t);if(!r)return``;let i=e.split(`
|
|
2
|
+
`),a=[],o=!1;for(let e of i){if(o&&r.commentMultiClose){let t=r.commentMultiClose,i=e.indexOf(t);if(i!==-1){o=!1;let s=e.slice(0,i+t.length),c=e.slice(i+t.length),l=`<span class="bk-hljs-comment">${n(s)}</span>`;c.trim()&&(l+=O(D(c,r))),a.push(l);continue}a.push(`<span class="bk-hljs-comment">${n(e)}</span>`);continue}if(r.commentMultiOpen&&r.commentMultiClose){let t=e.indexOf(r.commentMultiOpen);if(t!==-1&&e.indexOf(r.commentMultiClose,t+r.commentMultiOpen.length)===-1){o=!0;let i=e.slice(0,t),s=``;i.trim()&&(s+=O(D(i,r))),s+=`<span class="bk-hljs-comment">${n(e.slice(t))}</span>`,a.push(s);continue}}a.push(O(D(e,r)))}return a.join(`
|
|
3
|
+
`)}function ke(e,t){let r=e.language?` language-${i(String(e.language))}`:``,a=e.value??``,o=typeof a==`object`&&a?JSON.stringify(a,null,2):String(a),s=(e.language?k(o,String(e.language)):``)||n(o);return`<pre class="bk-code"><code class="${r.trim()}">${s}</code></pre>`}function Ae(e){if(!e||typeof e!=`object`)return!1;let t=e,n=t.items;return typeof t.title==`string`&&Array.isArray(n)&&n.every(e=>typeof e==`string`)}function je(e){let t=o(e);return Array.isArray(t)?t.filter(Ae):t&&typeof t==`object`&&Array.isArray(t.columns)?t.columns.filter(Ae):[]}function Me(e){let t=new Set,n=[];for(let r of e)for(let e of r.items)t.has(e)||(t.add(e),n.push(e));return n}function Ne(e,t){if(e.length<2||t.length===0)return!1;let n=!1,r=!1;for(let i of t){let t=e.filter(e=>e.items.includes(i)).length;if(t>1&&(n=!0),t>0&&t<e.length&&(r=!0),n&&r)return!0}return!1}function Pe(e,t){let r=je(e.value),i=Me(r),a=Ne(r,i);return`<div class="bk-comparison">${r.map(e=>{let t=e.recommended===!0,r;if(a){let t=new Set(e.items);r=i.map(e=>`<li class="${t.has(e)?`bk-comparison-item-diff-present`:`bk-comparison-item-diff-absent`}">${n(e)}</li>`).join(``)}else r=e.items.map(e=>`<li>${n(e)}</li>`).join(``);return`<section class="bk-comparison-column"${t?` data-recommended="true"`:``}>${t?`<div class="bk-comparison-recommended-badge">Recommended</div>`:``}<div class="bk-comparison-title">${n(e.title)}</div><ul class="bk-comparison-items">${r}</ul></section>`}).join(``)}</div>`}function Fe(e){let t=o(e);if(t&&typeof t==`object`){let e=t;return{name:typeof e.name==`string`?e.name:`Untitled component`,description:typeof e.description==`string`?e.description:void 0,type:typeof e.type==`string`?e.type:void 0,technology:typeof e.technology==`string`?e.technology:void 0,responsibilities:Array.isArray(e.responsibilities)?e.responsibilities.map(String).filter(Boolean):[],interfaces:Array.isArray(e.interfaces)?e.interfaces:[],dependencies:Array.isArray(e.dependencies)?e.dependencies:[],metrics:e.metrics&&typeof e.metrics==`object`?e.metrics:void 0,codeLinks:Array.isArray(e.codeLinks)?e.codeLinks:[]}}return{name:`Untitled component`}}function Ie(e){return e.length===0?``:`<details class="bk-component-detail-section" open><summary class="bk-component-detail-summary">Responsibilities</summary><ul class="bk-component-detail-list">${e.map(e=>`<li>${n(e)}</li>`).join(``)}</ul></details>`}function Le(e){return e.length===0?``:`<details class="bk-component-detail-section" open><summary class="bk-component-detail-summary">Interfaces</summary><div class="bk-component-detail-table-wrap"><table class="bk-component-detail-table"><thead><tr><th>Name</th><th>Type</th><th>Description</th></tr></thead><tbody>${e.map(e=>`<tr><td class="bk-component-detail-code">${n(e.name)}</td><td class="bk-component-detail-code">${n(e.type)}</td><td>${n(e.description??``)}</td></tr>`).join(``)}</tbody></table></div></details>`}function Re(e){return e.length===0?``:`<details class="bk-component-detail-section" open><summary class="bk-component-detail-summary">Dependencies</summary><ul class="bk-component-detail-dependencies">${e.map(e=>`<li class="bk-component-detail-dependency"><span class="bk-component-detail-dependency-name">${n(e.name)}</span>${e.relationship?`<span class="bk-component-detail-dependency-relationship">${n(e.relationship)}</span>`:``}</li>`).join(``)}</ul></details>`}function ze(e){let t=Object.entries(e??{});return t.length===0?``:`<details class="bk-component-detail-section" open><summary class="bk-component-detail-summary">Metrics</summary><div class="bk-component-detail-metrics">${t.map(([e,t])=>`<div class="bk-component-detail-metric"><span class="bk-component-detail-metric-label">${n(e)}</span><strong class="bk-component-detail-metric-value">${n(String(t))}</strong></div>`).join(``)}</div></details>`}function Be(e){let t=Array.isArray(e.codeLinks)?e.codeLinks:[];return t.length===0?``:`<details class="bk-component-detail-section" open><summary class="bk-component-detail-summary">Code Links</summary><div class="bk-component-detail-links">${t.map(e=>`<a class="bk-component-detail-link" href="${r(e.href)}">${n(e.label)}</a>`).join(``)}</div></details>`}function Ve(e,t){let r=Fe(e.value),i=r.description?`<p class="bk-component-detail-description">${n(r.description)}</p>`:``,a=r.type?`<span class="bk-component-detail-badge">${n(r.type)}</span>`:``,o=r.technology?`<span class="bk-component-detail-tech">${n(r.technology)}</span>`:``,s=[Ie(r.responsibilities??[]),Le(r.interfaces??[]),Re(r.dependencies??[]),ze(r.metrics),Be(r)].join(``);return`<article class="bk-component-detail"><header class="bk-component-detail-header"><div class="bk-component-detail-heading"><h4 class="bk-component-detail-name">${n(r.name)}</h4>${a}${o}</div>${i}</header><div class="bk-component-detail-body">${s}</div></article>`}function He(e){let t=o(e);if(t&&typeof t==`object`){let e=t;return{name:typeof e.name==`string`?e.name:`unnamed_schema`,description:typeof e.description==`string`?e.description:void 0,fields:Array.isArray(e.fields)?e.fields:[],indexes:Array.isArray(e.indexes)?e.indexes:[]}}return{name:`unnamed_schema`,fields:[]}}function Ue(e){return Array.isArray(e.constraints)&&e.constraints.includes(`primary-key`)}function We(e){return e.startsWith(`foreign-key:`)?`<a class="bk-data-table-schema-badge bk-data-table-schema-badge--link" href="${r(`#${i(e.slice(12).replace(/\./g,`_`))}`)}">${n(e)}</a>`:`<span class="bk-data-table-schema-badge${e===`primary-key`?` bk-data-table-schema-badge--primary`:``}">${n(e)}</span>`}function Ge(e){return e.length===0?``:`<section class="bk-data-table-schema-indexes"><h5 class="bk-data-table-schema-subtitle">Indexes</h5><div class="bk-data-table-schema-index-grid">${e.map(e=>`<article class="bk-data-table-schema-index"><div class="bk-data-table-schema-index-name">${n(e.name)}</div><div class="bk-data-table-schema-index-columns">${n(e.columns.join(`, `))}</div><div class="bk-data-table-schema-index-meta">${e.unique?`Unique`:`Standard`}</div></article>`).join(``)}</div></section>`}function Ke(e,t){let r=He(e.value),a=r.description?`<p class="bk-data-table-schema-description">${n(r.description)}</p>`:``;if(!Array.isArray(r.fields)||r.fields.length===0)return`<section class="bk-data-table-schema"><header class="bk-data-table-schema-header"><h4 class="bk-data-table-schema-title">${n(r.name)}</h4>${a}</header><p class="bk-data-table-schema-empty">No schema fields available.</p></section>`;let o=r.fields.map(e=>{let t=Array.isArray(e.constraints)?e.constraints:[],a=t.length>0?t.map(e=>We(e)).join(``):`<span class="bk-data-table-schema-badge">none</span>`;return`<tr class="bk-data-table-schema-row${Ue(e)?` bk-data-table-schema-row--primary`:``}" id="${i(`${r.name}_${e.name}`)}"><td class="bk-data-table-schema-code">${n(e.name)}</td><td class="bk-data-table-schema-code">${n(e.type)}</td><td class="bk-data-table-schema-required">${e.required?`✓`:`—`}</td><td><div class="bk-data-table-schema-constraints">${a}</div></td><td class="bk-data-table-schema-code">${n(e.default??`—`)}</td><td>${n(e.description??``)}</td></tr>`}).join(``);return`<section class="bk-data-table-schema"><header class="bk-data-table-schema-header"><h4 class="bk-data-table-schema-title">${n(r.name)}</h4>${a}</header><div class="bk-data-table-schema-wrap"><table class="bk-data-table-schema-table"><thead><tr><th>Field Name</th><th>Type</th><th>Required</th><th>Constraints</th><th>Default</th><th>Description</th></tr></thead><tbody>${o}</tbody></table></div>${Ge(r.indexes??[])}</section>`}const A=`
|
|
4
|
+
.bk-diagram {
|
|
5
|
+
border: 1px solid var(--dt-border-default);
|
|
6
|
+
border-radius: var(--dt-radius-lg);
|
|
7
|
+
overflow: hidden;
|
|
8
|
+
box-shadow: var(--dt-shadow-sm);
|
|
9
|
+
transition: box-shadow var(--dt-transition-normal);
|
|
10
|
+
}
|
|
11
|
+
.bk-diagram:hover {
|
|
12
|
+
box-shadow: var(--dt-shadow-md);
|
|
13
|
+
}
|
|
14
|
+
.bk-diagram.bk-diagram-has-viz summary {
|
|
15
|
+
padding: var(--dt-space-2) var(--dt-space-3);
|
|
16
|
+
cursor: pointer;
|
|
17
|
+
font-weight: 600;
|
|
18
|
+
font-size: var(--dt-font-size-sm);
|
|
19
|
+
background: var(--dt-bg-secondary);
|
|
20
|
+
border-bottom: 1px solid var(--dt-border-default);
|
|
21
|
+
user-select: none;
|
|
22
|
+
color: var(--dt-text-secondary);
|
|
23
|
+
transition: background var(--dt-transition-fast);
|
|
24
|
+
}
|
|
25
|
+
.bk-diagram.bk-diagram-has-viz summary:hover {
|
|
26
|
+
background: var(--dt-bg-tertiary);
|
|
27
|
+
}
|
|
28
|
+
.bk-diagram.bk-diagram-has-viz[open] summary {
|
|
29
|
+
border-bottom: 1px solid var(--dt-border-default);
|
|
30
|
+
margin-bottom: 0;
|
|
31
|
+
}
|
|
32
|
+
.bk-diagram .bk-diagram-content {
|
|
33
|
+
padding: var(--dt-space-3);
|
|
34
|
+
}
|
|
35
|
+
.bk-diagram table {
|
|
36
|
+
width: 100%;
|
|
37
|
+
border-collapse: collapse;
|
|
38
|
+
font-size: var(--dt-font-size-sm);
|
|
39
|
+
}
|
|
40
|
+
.bk-diagram th, .bk-diagram td {
|
|
41
|
+
padding: var(--dt-space-1) var(--dt-space-2);
|
|
42
|
+
text-align: left;
|
|
43
|
+
border-bottom: 1px solid var(--dt-border-subtle);
|
|
44
|
+
}
|
|
45
|
+
.bk-diagram th {
|
|
46
|
+
font-weight: 600;
|
|
47
|
+
color: var(--dt-text-secondary);
|
|
48
|
+
font-size: var(--dt-font-size-xs);
|
|
49
|
+
text-transform: uppercase;
|
|
50
|
+
letter-spacing: 0.5px;
|
|
51
|
+
}
|
|
52
|
+
.bk-diagram .bk-diagram-meta {
|
|
53
|
+
display: grid;
|
|
54
|
+
grid-template-columns: auto 1fr;
|
|
55
|
+
gap: var(--dt-space-1) var(--dt-space-3);
|
|
56
|
+
font-size: var(--dt-font-size-sm);
|
|
57
|
+
margin-bottom: var(--dt-space-3);
|
|
58
|
+
}
|
|
59
|
+
.bk-diagram .bk-diagram-meta dt {
|
|
60
|
+
font-weight: 600;
|
|
61
|
+
color: var(--dt-text-secondary);
|
|
62
|
+
}
|
|
63
|
+
.bk-diagram .bk-diagram-meta dd {
|
|
64
|
+
margin: 0;
|
|
65
|
+
}
|
|
66
|
+
.bk-diagram ul {
|
|
67
|
+
margin: var(--dt-space-2) 0;
|
|
68
|
+
padding-left: var(--dt-space-4);
|
|
69
|
+
}
|
|
70
|
+
.bk-diagram li {
|
|
71
|
+
font-size: var(--dt-font-size-sm);
|
|
72
|
+
line-height: 1.6;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/* After mini-mermaid renders — hide border, show clean SVG */
|
|
76
|
+
.bk-diagram[data-mini-mermaid-rendered] {
|
|
77
|
+
border: 1px solid var(--dt-border-default);
|
|
78
|
+
border-radius: var(--dt-radius-lg);
|
|
79
|
+
overflow: hidden;
|
|
80
|
+
box-shadow: var(--dt-shadow-sm);
|
|
81
|
+
background: var(--dt-bg-canvas);
|
|
82
|
+
}
|
|
83
|
+
.bk-diagram[data-mini-mermaid-rendered]:hover {
|
|
84
|
+
box-shadow: var(--dt-shadow-md);
|
|
85
|
+
}
|
|
86
|
+
.bk-diagram[data-mini-mermaid-rendered] .bk-diagram-viz {
|
|
87
|
+
display: block;
|
|
88
|
+
padding: var(--dt-space-4);
|
|
89
|
+
background: var(--dt-bg-canvas);
|
|
90
|
+
}
|
|
91
|
+
.bk-diagram[data-mini-mermaid-rendered] .bk-diagram-fallback {
|
|
92
|
+
display: none;
|
|
93
|
+
}
|
|
94
|
+
.bk-diagram-viz {
|
|
95
|
+
display: block;
|
|
96
|
+
overflow-x: auto;
|
|
97
|
+
}
|
|
98
|
+
.bk-diagram-viz svg {
|
|
99
|
+
display: block;
|
|
100
|
+
margin: 0 auto;
|
|
101
|
+
max-width: 100%;
|
|
102
|
+
height: auto;
|
|
103
|
+
}
|
|
104
|
+
`,qe={frontend:`🖥️`,backend:`⚙️`,database:`🗄️`,storage:`💾`,cloud:`☁️`,external:`🔗`,security:`🔒`,messagebus:`📨`,person:`👤`,actor:`👤`,system:`🏛️`,"start-end":`●`,automated:`🤖`,manual:`👆`,decision:`🔀`,branch:`🔀`,infrastructure:`📦`};function Je(e){return qe[e]??`📋`}const Ye={frontend:`fill:var(--dt-agent-frontend,#38bdf8)`,backend:`fill:var(--dt-accent-subtle,#14b8a6)`,database:`fill:var(--dt-purple-subtle,#c084fc)`,storage:`fill:var(--dt-purple-subtle,#c084fc)`,cloud:`fill:var(--dt-info-subtle,#bae6fd)`,external:`fill:var(--dt-bg-tertiary,#64748b)`,security:`fill:var(--dt-danger-subtle,#fecaca)`,messagebus:`fill:var(--dt-warning-subtle,#fde68a)`,decision:`fill:var(--dt-danger-subtle,#fecaca)`,automated:`fill:var(--dt-success-subtle,#bbf7d0)`,manual:`fill:var(--dt-warning-subtle,#fde68a)`,person:`fill:var(--dt-accent-subtle,#ccfbf1)`,actor:`fill:var(--dt-accent-subtle,#ccfbf1)`,system:`fill:var(--dt-info-subtle,#bae6fd)`,infrastructure:`fill:var(--dt-bg-tertiary,#e2e8f0)`},Xe={person:{open:`([`,close:`])`},actor:{open:`([`,close:`])`},database:{open:`[(`,close:`)]`},storage:{open:`[(`,close:`)]`},decision:{open:`{`,close:`}`},branch:{open:`{`,close:`}`},external:{open:`{{`,close:`}}`},system:{open:`{{`,close:`}}`},start:{open:`((`,close:`))`},end:{open:`((`,close:`))`}},Ze={open:`[`,close:`]`};function Qe(e){return Xe[e]??Ze}function j(e,t){return e.replace(/[^a-zA-Z0-9_]/g,`_`).replace(/^_+|_+$/g,``).replace(/_+/g,`_`)||(t===void 0?`node`:`node_${t}`)}function M(e){return e.replace(/"/g,`#quot;`).replace(/\[/g,`#91;`).replace(/\]/g,`#93;`).replace(/\(/g,`#40;`).replace(/\)/g,`#41;`).replace(/\{/g,`#123;`).replace(/\}/g,`#125;`).replace(/`/g,`#96;`).replace(/\n/g,` `).replace(/\r/g,``)}function N(e,t){let r=e.value;if(!r||typeof r!=`object`)return`<div class="bk-diagram"><p class="bk-diagram-empty">No diagram data</p></div>`;let i=e.type??`unknown`,a=i.startsWith(`architecture`)?`architecture`:i.startsWith(`workflow`)?`workflow`:i.startsWith(`sequence`)?`sequence`:i.startsWith(`dataflow`)?`dataflow`:i.startsWith(`lifecycle`)?`lifecycle`:String(r.diagram_type??`unknown`),o=r.meta,s=String(o?.title??`Diagram`),c=$e(r.components??r.nodes??r.participants??r.states??[]),l=$e(r.connections??r.edges??r.messages??r.flows??r.transitions??[]),u=[`graph TD`],d=new Set,f=new Map,p=0;for(let e of c){let t=j(String(e.id??e.label??e.name??`node`),p);if(p++,d.has(t))continue;d.add(t),f.set(t,e);let n=String(e.label??e.name??t),r=String(e.type??String(e.kind??``)),i=Je(r),a=e.technology?`<br><small>${M(String(e.technology))}</small>`:``,o=Ye[r]??`fill:var(--dt-bg-secondary,#1e293b)`,s=Qe(r),c=`${i} ${M(n)}`;u.push(` ${t}${s.open}"${c}${a}"${s.close}`),u.push(` style ${t} ${o}`)}for(let e of l){let t=String(e.from??e.source??``),n=String(e.to??e.target??``),r=j(t),i=j(n);if(!d.has(r)||!d.has(i))continue;let a=e.label?` -- "${M(String(e.label))}" --> `:` --> `;u.push(` ${r}${a}${i}`)}let m=d.size>0,h=u.join(`
|
|
105
|
+
`),g=[`<dt>Type</dt><dd>${n(a)}</dd>`,`<dt>Components</dt><dd>${c.length}</dd>`,`<dt>Relationships</dt><dd>${l.length}</dd>`];r.schema_version!==void 0&&g.push(`<dt>Schema</dt><dd>v${String(r.schema_version)}</dd>`);let _=``;c.length>0&&(_=`<table><thead><tr><th>Component</th><th>Type</th></tr></thead><tbody>${c.slice(0,30).map(e=>{let t=String(e.label??e.name??`(unnamed)`),r=String(e.type??String(e.kind??`-`));return`<tr><td>${n(t)}</td><td>${n(r)}</td></tr>`}).join(``)}</tbody></table>${c.length>30?`<p class="bk-diagram-truncated">… and ${c.length-30} more</p>`:``}`);let v=``;return l.length>0&&(v=`<h4>Relationships</h4><ul>${l.slice(0,20).map(e=>{let t=String(e.from??e.source??`-`),r=String(e.to??e.target??`-`),i=e.label?`: ${n(String(e.label))}`:``;return`<li><strong>${n(t)}</strong> → <strong>${n(r)}</strong>${i}</li>`}).join(``)}</ul>${l.length>20?`<p class="bk-diagram-truncated">… and ${l.length-20} more relationships</p>`:``}`),m?`<div class="${`bk-diagram${m?` bk-diagram-has-viz`:``}`}">
|
|
106
|
+
<pre class="bk-diagram-viz mermaid">${n(h)}</pre>
|
|
4
107
|
<details class="bk-diagram-fallback">
|
|
5
|
-
<summary>${n(
|
|
108
|
+
<summary>${n(s)} <small>(${a}, ${c.length} components)</small></summary>
|
|
6
109
|
<div class="bk-diagram-content">
|
|
7
|
-
<dl class="bk-diagram-meta">${
|
|
8
|
-
${g}
|
|
110
|
+
<dl class="bk-diagram-meta">${g.join(``)}</dl>
|
|
9
111
|
${_}
|
|
112
|
+
${v}
|
|
10
113
|
</div>
|
|
11
114
|
</details>
|
|
12
115
|
</div>`:`<div class="bk-diagram">
|
|
13
116
|
<details open>
|
|
14
|
-
<summary>${n(
|
|
117
|
+
<summary>${n(s)} <small>(${n(a)}, ${c.length} components)</small></summary>
|
|
15
118
|
<div class="bk-diagram-content">
|
|
16
|
-
<dl class="bk-diagram-meta">${
|
|
17
|
-
${g}
|
|
119
|
+
<dl class="bk-diagram-meta">${g.join(``)}</dl>
|
|
18
120
|
${_}
|
|
121
|
+
${v}
|
|
19
122
|
</div>
|
|
20
123
|
</details>
|
|
21
|
-
</div>`}function
|
|
124
|
+
</div>`}function $e(e){return Array.isArray(e)?e:[]}function et(e){if(typeof e==`string`)return e;if(e&&typeof e==`object`){let t=e;if(typeof t.content==`string`)return t.content;if(typeof t.before==`string`&&typeof t.after==`string`)return tt(t.before,t.after)}return``}function tt(e,t){let n=e.split(`
|
|
22
125
|
`),r=t.split(`
|
|
23
|
-
`),i=[
|
|
24
|
-
`)}function
|
|
25
|
-
`),a=0,o=0,s=[];for(let e of i)if(e.startsWith(`@@`)){let t=e.match(/@@ -(\d+)/);if(t){a=parseInt(t[1],10)-1;let n=e.match(
|
|
126
|
+
`),i=[`--- a/previous`,`+++ a/current`];for(let e of n)i.push(`-${e}`);for(let e of r)i.push(`+${e}`);return i.join(`
|
|
127
|
+
`)}function nt(e,t){let r=e.slice(1),i=t.slice(1);if(r===i)return{oldHtml:n(e),newHtml:n(t)};let a=0;for(;a<r.length&&a<i.length&&r[a]===i[a];)a++;let o=0,s=r.length-a,c=i.length-a;for(;o<s&&o<c&&r[r.length-1-o]===i[i.length-1-o];)o++;let l=n(r.slice(0,a)),u=n(r.slice(a,r.length-o)),d=n(i.slice(a,i.length-o)),f=n(r.slice(r.length-o));return{oldHtml:u.length>0?`-${l}<span class="bk-diff-word-del">${u}</span>${f}`:`-${l}${f}`,newHtml:d.length>0?`+${l}<span class="bk-diff-word-add">${d}</span>${f}`:`+${l}${f}`}}function rt(e,t){let r=et(e.value);if(!r)return`<div class="bk-diff"></div>`;let i=r.split(`
|
|
128
|
+
`),a=0,o=0,s=[],c=[];function l(){for(let e of c)s.push(`<tr class="bk-diff-del"><td class="bk-diff-ln">${e.oldLnVal}</td><td class="bk-diff-ln"></td><td class="bk-diff-line">${n(e.line)}</td></tr>`);c.length=0}for(let e of i)if(e.startsWith(`@@`)){l();let t=e.match(/@@ -(\d+)/);if(t){a=parseInt(t[1],10)-1;let n=e.match(/\+\s*(\d+)/);o=n?parseInt(n[1],10)-1:0}s.push(`<tr class="bk-diff-hunk"><td colspan="3">${n(e)}</td></tr>`)}else if(e.startsWith(`---`)||e.startsWith(`+++`))l(),s.push(`<tr class="bk-diff-header"><td colspan="3">${n(e)}</td></tr>`);else if(e.startsWith(`+`))if(c.length>0){let t=c.shift();o++;let{oldHtml:n,newHtml:r}=nt(t.line,e);s.push(`<tr class="bk-diff-del"><td class="bk-diff-ln">${t.oldLnVal}</td><td class="bk-diff-ln"></td><td class="bk-diff-line">${n}</td></tr>`),s.push(`<tr class="bk-diff-add"><td class="bk-diff-ln"></td><td class="bk-diff-ln">${o}</td><td class="bk-diff-line">${r}</td></tr>`)}else o++,s.push(`<tr class="bk-diff-add"><td class="bk-diff-ln"></td><td class="bk-diff-ln">${o}</td><td class="bk-diff-line">${n(e)}</td></tr>`);else if(e.startsWith(`-`))a++,c.push({line:e,oldLnVal:a});else{l(),a++,o++;let t=e.startsWith(` `)?e:` ${e}`;s.push(`<tr class="bk-diff-context"><td class="bk-diff-ln">${a}</td><td class="bk-diff-ln">${o}</td><td class="bk-diff-line">${n(t)}</td></tr>`)}l();let u=i.length>25;return`<div class="bk-diff">${`<div class="bk-diff-toolbar">${u?`<button class="bk-diff-btn bk-diff-expand" data-expand-text="▼ Expand" data-collapse-text="▲ Collapse">▼ Expand</button>`:``}${`<button class="bk-diff-btn bk-diff-copy" data-diff="${encodeURIComponent(r)}">\uD83D\uDCCB Copy</button>`}</div>`}<script>(function(){var c=document.currentScript;if(!c)return;var d=c.parentElement;if(!d)return;var b=d.querySelector('.bk-diff-body');if(!b)return;var e=d.querySelector('.bk-diff-expand');if(e){e.addEventListener('click',function(){var l=b.dataset.collapsed==='true';b.dataset.collapsed=l?'false':'true';b.dataset.expanded=l?'true':'false';e.textContent=l?e.dataset.collapseText:e.dataset.expandText;})}var p=d.querySelector('.bk-diff-copy');if(p&&navigator.clipboard){p.addEventListener('click',function(){navigator.clipboard.writeText(decodeURIComponent(p.dataset.diff)).then(function(){p.dataset.copied='true';setTimeout(function(){delete p.dataset.copied},2000)})})}})();<\/script><div class="bk-diff-body"${u?` data-collapsed="true"`:``}><table class="bk-diff-table">${s.join(``)}</table></div></div>`}function it(e){let t=o(e);return Array.isArray(t)?t:t&&typeof t==`object`&&Array.isArray(t.files)?t.files:[]}function at(e,t){return`<div class="bk-docs-browser">${it(e.value).map(e=>{let t=u(e.status),r=e.title?`<div class="bk-doc-title">${n(e.title)}</div>`:``,i=e.content?`<pre class="bk-doc-content">${n(e.content)}</pre>`:``;return`<article class="bk-doc-entry"><div class="bk-doc-header"><div>${r}<div class="bk-doc-path">${n(e.path)}</div></div><span class="bk-doc-status" style="background:var(--dt-${t}-subtle);color:var(--dt-${t}-fg);">${n(e.status??`current`)}</span></div>${i}</article>`}).join(``)}</div>`}function ot(e){let t=o(e);if(t&&typeof t==`object`){let e=t;return{title:typeof e.title==`string`?e.title:void 0,description:typeof e.description==`string`?e.description:void 0,pages:Array.isArray(e.pages)?e.pages:[]}}return{pages:[]}}function st(e){switch(e){case`draft`:return`warning`;case`deprecated`:return`danger`;default:return`accent`}}function ct(e){let t=e.href?`a`:`article`,i=e.href?` href="${r(e.href)}"`:``,a=e.icon?`<span class="bk-docs-hub-card-icon" aria-hidden="true">${n(e.icon)}</span>`:``,o=e.description?`<p class="bk-docs-hub-card-description">${n(e.description)}</p>`:``,s=e.category?`<span class="bk-docs-hub-card-category">${n(e.category)}</span>`:``,c=e.status?`<span class="bk-docs-hub-card-status" data-tone="${st(e.status)}"><span class="bk-docs-hub-card-status-dot" aria-hidden="true"></span>${n(e.status)}</span>`:``;return`<${t} class="bk-docs-hub-card"${i}><div class="bk-docs-hub-card-head">${a}<div class="bk-docs-hub-card-copy"><div class="bk-docs-hub-card-title">${n(e.title)}</div>${o}</div></div><div class="bk-docs-hub-card-meta">${s}${c}</div></${t}>`}function lt(e,t){let r=ot(e.value),i=r.title?`<h4 class="bk-docs-hub-title">${n(r.title)}</h4>`:``,a=r.description?`<p class="bk-docs-hub-description">${n(r.description)}</p>`:``,o=Array.isArray(r.pages)?r.pages:[];return`<section class="bk-docs-hub"><div class="bk-docs-hub-header">${i}${a}</div>${o.length>0?`<div class="bk-docs-hub-grid">${o.map(e=>ct(e)).join(``)}</div>`:`<p class="bk-docs-hub-empty">No documentation pages available.</p>`}</section>`}function ut(e){let t=o(e.value);if(t&&typeof t==`object`){let n=t;return{title:String(n.title??e.title??``),severity:n.severity?String(n.severity):e.severity?String(e.severity):void 0,detail:n.detail??n.value}}return{title:String(e.title??`Finding`),severity:e.severity?String(e.severity):void 0,detail:t}}function dt(e,t){let r=ut(e),i=u(r.severity),a=r.detail===void 0?``:s(String(r.detail)).replace(/\n/g,`<br>`);return`<article class="bk-finding" data-tone="${i}"><div class="bk-finding-header"><div class="bk-finding-title">${n(r.title)}</div><span class="bk-finding-severity" style="background:var(--dt-${i}-subtle);color:var(--dt-${i}-fg);">${n(r.severity??`info`)}</span></div><div class="bk-finding-detail">${a}</div></article>`}function P(e){return typeof e==`object`&&!!e}function F(e){return P(e)?{name:typeof e.name==`string`?e.name:``,total:typeof e.total==`number`?e.total:0,self:typeof e.self==`number`?e.self:void 0,children:Array.isArray(e.children)?e.children.map(F).filter(e=>e!==null):[]}:null}function ft(e){let t=[],n=[{node:e,depth:0}];for(;n.length>0;){let e=n.shift();if(!e)continue;let{node:r,depth:i}=e;t[i]||(t[i]=[]),t[i].push(r);for(let e of r.children??[])n.push({node:e,depth:i+1})}return t}function pt(e){let t=[`#e24d28`,`#e8602a`,`#edad2a`,`#f5c842`,`#fce94f`,`#c4a000`,`#e07028`,`#d45500`];return t[e%t.length]}function mt(e,t){let r=o(e.value);if(!P(r))return`<div class="bk-flame"></div>`;let i=P(r.profile)?F(r.profile):F(r);if(!i)return`<div class="bk-flame"></div>`;let a=ft(i),s=Math.max(i.total,1);return`<div class="bk-flame">${a.map((e,t)=>`<div class="bk-flame-row">${e.map(e=>{let r=Math.max(.5,e.total/s*100),i=r<8?` bk-flame-bar-label--muted`:``,a=(e.children?.length??0)>0,o=e.self===void 0?`${n(e.name)}: ${e.total}`:`${n(e.name)}: ${e.total} (self: ${e.self})`;return`<div class="bk-flame-bar" style="width:${r}%;background:${pt(t)}" title="${o}" data-has-children="${a}">
|
|
26
129
|
<span class="bk-flame-bar-label${i}">${n(e.name)} (${e.total})</span>
|
|
27
130
|
</div>`}).join(``)}</div>`).join(`
|
|
28
|
-
`)}</div>`}function
|
|
29
|
-
`))}</pre>`}const
|
|
131
|
+
`)}</div>`}function ht(e){return String(e??``).replace(/"/g,`\\"`)}function gt(e,t){let r=o(e.value),a=[`graph ${[`TD`,`LR`,`RL`,`BT`].includes(String(e.direction??`TD`))?String(e.direction??`TD`):`TD`}`];for(let e of r?.nodes??[]){let t=i(String(e.id??e.name??`node`)),n=ht(e.label??e.name??t);a.push(` ${t}["${n}"]`)}for(let e of r?.edges??[]){let t=i(String(e.from??e.source??`from`)),n=i(String(e.to??e.target??`to`)),r=e.label?`|${ht(e.label)}|`:``;a.push(` ${t} -->${r} ${n}`)}return`<pre class="bk-graph mermaid">${n(a.join(`
|
|
132
|
+
`))}</pre>`}const _t=`
|
|
30
133
|
.bk-heading {
|
|
31
134
|
margin: 0;
|
|
32
135
|
color: var(--dt-text-primary);
|
|
@@ -41,16 +144,16 @@ function e(e){return e.kind===`result`}function t(e){return e.kind===`error`}fun
|
|
|
41
144
|
.bk-heading--4 { font-size: var(--dt-font-size-xl); }
|
|
42
145
|
.bk-heading--5,
|
|
43
146
|
.bk-heading--6 { font-size: var(--dt-font-size-base); letter-spacing: normal; }
|
|
44
|
-
`;function
|
|
45
|
-
${
|
|
147
|
+
`;function vt(e,t){let r=Number(e.level??2),i=Number.isFinite(r)?Math.max(1,Math.min(r,6)):2;return`<h${i} class="bk-heading bk-heading--${i}">${n(String(e.value??e.title??``))}</h${i}>`}function yt(e){return Array.isArray(e)?e.flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e;return[{key:a(t.key),value:a(t.value)}]}):e&&typeof e==`object`?Object.entries(e).map(([e,t])=>({key:e,value:a(t)})):[]}function bt(e,t){return`<dl class="bk-kv">${yt(e.value).map(e=>`<div class="bk-kv-entry"><dt class="bk-kv-key">${s(e.key)}</dt><dd class="bk-kv-value">${s(e.value)}</dd></div>`).join(``)}</dl>`}function xt(e){let t=o(e);if(t&&typeof t==`object`){let e=t;return{title:typeof e.title==`string`?e.title:void 0,steps:Array.isArray(e.steps)?e.steps:[],edges:Array.isArray(e.edges)?e.edges:[]}}return{steps:[],edges:[]}}function St(e){switch(e){case`completed`:return`success`;case`error`:return`danger`;case`pending`:return`slate`;default:return`accent`}}function Ct(e,t){let n=e.trim().split(/\s+/).filter(Boolean);if(n.length===0)return[``];let r=[],i=``;for(let e of n){let n=i?`${i} ${e}`:e;if(n.length<=t||i.length===0){i=n;continue}if(r.push(i),i=e,r.length===1)break}return i&&r.push(i),r.length>2?r.slice(0,2):(r.length===2&&n.join(` `).length>r[0].length+r[1].length&&(r[1]=`${r[1].slice(0,Math.max(0,t-1))}…`),r)}function wt(e){return e.type===`decision`?{width:112,height:112}:{width:164,height:84}}function Tt(e){let t=32;return e.map(e=>{let{width:n,height:r}=wt(e),i={step:e,x:t,y:28,width:n,height:r,centerX:t+n/2,centerY:28+r/2};return t+=n+44,i})}function Et(e){let t=Ct(e.step.label,e.step.type===`decision`?12:16),r=e.step.description?Ct(e.step.description,e.step.type===`decision`?12:18).slice(0,1):[],a=e.centerY-(t.length+r.length-1)*18/2,o=[...t.map((t,r)=>`<text class="bk-lifecycle-flow-label" x="${e.centerX}" y="${a+r*18}">${n(t)}</text>`),...r.map((r,i)=>`<text class="bk-lifecycle-flow-description" x="${e.centerX}" y="${a+(t.length+i)*18}">${n(r)}</text>`)].join(``),s=`<rect class="bk-lifecycle-flow-shape" x="${e.x}" y="${e.y}" width="${e.width}" height="${e.height}" rx="18" ry="18" />`;e.step.type===`start`||e.step.type===`end`?s=`<rect class="bk-lifecycle-flow-shape" x="${e.x}" y="${e.y}" width="${e.width}" height="${e.height}" rx="40" ry="40" />`:e.step.type===`decision`&&(s=`<polygon class="bk-lifecycle-flow-shape" points="${`${e.centerX},${e.y}`} ${`${e.x+e.width},${e.centerY}`} ${`${e.centerX},${e.y+e.height}`} ${`${e.x},${e.centerY}`}" />`);let c=e.step.type===`parallel`?`<g class="bk-lifecycle-flow-parallel-mark"><line x1="${e.x+18}" y1="${e.y+18}" x2="${e.x+18}" y2="${e.y+e.height-18}" /><line x1="${e.x+e.width-18}" y1="${e.y+18}" x2="${e.x+e.width-18}" y2="${e.y+e.height-18}" /></g>`:``;return`<g class="bk-lifecycle-flow-node bk-lifecycle-flow-node--${e.step.type??`step`} bk-lifecycle-flow-node--${St(e.step.status)}" id="${i(e.step.id)}">${s}${c}${o}</g>`}function Dt(e,t){let r=t.get(e.from),i=t.get(e.to);if(!r||!i)return``;let a=r.x+r.width,o=r.centerY,s=i.x,c=i.centerY,l=Math.round((a+s)/2);return`${`<path class="bk-lifecycle-flow-edge" d="M ${a} ${o} C ${l} ${o} ${l} ${c} ${s} ${c}" marker-end="url(#bk-lifecycle-flow-arrow)" />`}${e.label?`<text class="bk-lifecycle-flow-edge-label" x="${l}" y="${Math.min(o,c)-12}">${n(e.label)}</text>`:``}`}function Ot(e,t){return Array.isArray(t)&&t.length>0?t:e.slice(1).map((t,n)=>({from:e[n].id,to:t.id}))}function kt(e,t){let r=xt(e.value),i=Array.isArray(r.steps)?r.steps.filter(e=>e?.id):[];if(i.length===0)return`<div class="bk-lifecycle-flow"><p class="bk-docs-hub-empty">No lifecycle steps available.</p></div>`;let a=Tt(i),o=new Map(a.map(e=>[e.step.id,e])),s=Ot(i,r.edges),c=Math.max(320,(a.at(-1)?.x??0)+(a.at(-1)?.width??0)+32);return`<figure class="bk-lifecycle-flow">${r.title?`<figcaption class="bk-lifecycle-flow-title">${n(r.title)}</figcaption>`:``}<div class="bk-lifecycle-flow-frame"><svg class="bk-lifecycle-flow-svg" viewBox="0 0 ${c} 172" role="img" aria-label="${n(r.title??`Lifecycle flow`)}"><defs><marker id="bk-lifecycle-flow-arrow" markerWidth="10" markerHeight="10" refX="9" refY="5" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" fill="var(--dt-border-default)" /></marker></defs><g class="bk-lifecycle-flow-edges">${s.map(e=>Dt(e,o)).join(``)}</g><g class="bk-lifecycle-flow-nodes">${a.map(e=>Et(e)).join(``)}</g></svg></div></figure>`}function At(e,t){return`<ul class="bk-list">${(Array.isArray(e.value)?e.value:[]).map(e=>`<li class="bk-list-item">${s(String(e??``))}</li>`).join(``)}</ul>`}const jt=`
|
|
148
|
+
${_t}
|
|
46
149
|
.bk-markdown {
|
|
47
150
|
color: var(--dt-text-primary);
|
|
48
151
|
font-size: var(--dt-font-size-base);
|
|
49
152
|
line-height: 1.7;
|
|
50
153
|
}
|
|
51
|
-
`,
|
|
52
|
-
`))}</code></pre>`),o=!1,s=[],c=``}continue}if(o){s.push(e);continue}if(!t){l();continue}let r=t.match(
|
|
53
|
-
`))}</code></pre>`)}return`<div class="bk-markdown">${i.join(``)}</div>`}function Tt(e,t){return`<pre class="bk-mermaid mermaid">${n(String(e.value??``))}</pre>`}function Et(e){if(e==null||e===``)return``;let t=a(e),r=Number(String(e).replace(/[^0-9.-]/g,``));return`<span class="bk-metric-trend">${Number.isNaN(r)?``:r>0?`↑ `:r<0?`↓ `:`→ `}${n(t)}</span>`}function Dt(e,t){return`<div class="bk-metrics">${f(e).map(e=>`<article class="bk-metric" data-tone="${u(e.status)}"><div class="bk-metric-label">${n(e.label)}</div><div class="bk-metric-value">${n(a(e.value))}</div>${Et(e.trend)}</article>`).join(``)}</div>`}function Ot(e,t){return`<p class="bk-paragraph">${n(String(e.value??e.text??``))}</p>`}function kt(e){let t=o(e);if(Array.isArray(t))return t;if(t&&typeof t==`object`){if(Array.isArray(t.items))return t.items;if(`value`in t)return[t]}return[]}function At(e,t){return`<div class="bk-progress">${kt(e.value).map(e=>{let t=Math.max(1,Number(e.max)||100),r=Math.max(0,Number(e.value)||0),i=Math.round(Math.min(r/t*100,100)),a=u(e.color);return`<div class="bk-progress-item"><div class="bk-progress-meta"><span>${n(e.label)}</span><span>${i}%</span></div><div class="bk-progress-track"><span class="bk-progress-bar" style="width:${i}%;background:var(--dt-${a}-emphasis);box-shadow:0 0 16px var(--dt-glow-${a});"></span></div></div>`}).join(``)}</div>`}function jt(e){if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e??``)}}function Mt(e,t){return`<pre class="bk-prompt">${n(jt(e.value))}</pre>`}function Nt(e,t){return`<hr class="bk-separator">`}function Pt(e){let t=o(e);return Array.isArray(t)?t:t&&typeof t==`object`&&Array.isArray(t.items)?t.items:[]}function Ft(e,t){return`<div class="bk-status-board">${Pt(e.value).map(e=>{let t=e.items.map(e=>{let t=u(e.status),r=e.description?`<div class="bk-status-description">${n(e.description)}</div>`:``;return`<div class="bk-status-item"><span class="bk-status-pill" style="background:var(--dt-${t}-subtle);color:var(--dt-${t}-fg);">${n(e.status??`pending`)}</span><div class="bk-status-copy"><div class="bk-status-label">${n(e.label??e.name??``)}</div>${r}</div></div>`}).join(``);return`<section class="bk-status-category"><div class="bk-status-category-title">${n(e.category)}</div><div class="bk-status-items">${t}</div></section>`}).join(``)}</div>`}function It(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Lt(e){let t=(e??[]).map(e=>{if(It(e)){let t=typeof e.key==`string`?e.key:String(e.label??``);return{key:t,label:typeof e.label==`string`?e.label:t}}let t=String(e);return{key:t,label:t}});return{headers:t.map(e=>e.label),keys:t.map(e=>e.key)}}function Rt(e){if(Array.isArray(e.columns)){let{headers:t,keys:n}=Lt(e.columns),r=Array.isArray(e.rows)?e.rows:[];return r.length>0&&Array.isArray(r[0])?{headers:t,keys:n,rows:r.map(e=>Object.fromEntries(n.map((t,n)=>[t,e[n]??``])))}:r.length>0&&typeof r[0]==`object`&&r[0]!==null?{headers:t,keys:n,rows:r}:{headers:t,keys:n,rows:[]}}let t=o(e.value);if(Array.isArray(t)){if(t.length>0&&typeof t[0]==`object`&&t[0]!==null&&!Array.isArray(t[0])){let n=t,r=Array.isArray(e.headers)?e.headers.map(String):Object.keys(n[0]??{});return{headers:r,keys:r,rows:n}}if(t.length>0&&Array.isArray(t[0])){let[n,...r]=t,i=Array.isArray(e.headers)?e.headers.map(String):n.map(String);return{headers:i,keys:i,rows:r.map(e=>Object.fromEntries(i.map((t,n)=>[t,e[n]])))}}}if(t&&typeof t==`object`){let n=Array.isArray(e.headers)?e.headers.map(String):Array.isArray(t.headers)?t.headers.map(String):[],r=Array.isArray(t.rows)?t.rows:[];if(r.length>0&&Array.isArray(r[0]))return{headers:n,keys:n,rows:r.map(e=>Object.fromEntries(n.map((t,n)=>[t,e[n]])))};if(r.length>0&&typeof r[0]==`object`&&r[0]!==null)return{headers:n,keys:n,rows:r}}if(Array.isArray(e.headers)){let t=e.headers.map(String);return{headers:t,keys:t,rows:[]}}if(Array.isArray(e.columns)){let{headers:t,keys:n}=Lt(e.columns);return{headers:t,keys:n,rows:[]}}return{headers:[],keys:[],rows:[]}}function zt(e,t){let{headers:r,keys:i,rows:o}=Rt(e);return r.length===0?`<div class="bk-table-wrap"><table class="bk-table"><tbody></tbody></table></div>`:`<div class="bk-table-wrap"><table class="bk-table">${`<thead><tr>${r.map(e=>`<th>${n(e)}</th>`).join(``)}</tr></thead>`}<tbody>${o.map(e=>`<tr>${i.map(t=>`<td>${n(a(e[t]))}</td>`).join(``)}</tr>`).join(``)}</tbody></table></div>`}function Bt(e){let t=o(e);return Array.isArray(t)?t:t&&typeof t==`object`&&Array.isArray(t.items)?t.items:[]}function Vt(e,t){return`<div class="bk-tags">${Bt(e.value).map(e=>{let t=typeof e==`string`?e:String(e.text??e.label??``),r=u(typeof e==`string`?void 0:e.status??e.tone??e.color);return`<span class="bk-tag" style="background:var(--dt-${r}-subtle);color:var(--dt-${r}-fg);">${n(t)}</span>`}).join(``)}</div>`}function Ht(e,t){return`<div class="bk-text">${s(String(e.value??``)).replace(/\n/g,`<br>`)}</div>`}function Ut(e,t){return`<div class="bk-timeline">${f(e).map(e=>{let t=u(e.status),r=e.description?`<div class="bk-timeline-description">${n(e.description)}</div>`:``,i=e.timestamp?`<div class="bk-timeline-timestamp">${n(e.timestamp)}</div>`:``;return`<article class="bk-timeline-item" data-tone="${t}"><span class="bk-timeline-dot" style="background:${`var(--dt-${t}-emphasis)`};box-shadow:0 0 0 6px var(--dt-glow-${t});"></span><div class="bk-timeline-title">${n(e.title)}</div>${r}${i}</article>`}).join(``)}</div>`}function M(e,t){if(Array.isArray(e)){let r=e.map(e=>M(e)).join(``);return t?`<details class="bk-tree-node" open><summary>${n(t)}</summary><div class="bk-tree-children">${r}</div></details>`:`<div class="bk-tree-children">${r}</div>`}if(e&&typeof e==`object`){let r=e,i=typeof r.name==`string`?r.name:typeof r.label==`string`?r.label:typeof r.title==`string`?r.title:void 0;if(i!==void 0)return M(r.children??[],i);let a=Object.entries(r).map(([e,t])=>M(t,e)).join(``);return t?`<details class="bk-tree-node" open><summary>${n(t)}</summary><div class="bk-tree-children">${a}</div></details>`:`<div class="bk-tree-children">${a}</div>`}let r=n(a(e));return t?`<div class="bk-tree-leaf"><span class="bk-tree-key">${n(t)}</span><span class="bk-tree-value">${r}</span></div>`:`<div class="bk-tree-leaf">${r}</div>`}function Wt(e,t){return`<div class="bk-tree">${M(o(e.value))}</div>`}const N={"--dt-bg-canvas":`#f5f4ee`,"--dt-bg-primary":`#faf9f4`,"--dt-bg-secondary":`#f0efe8`,"--dt-bg-tertiary":`#ffffff`,"--dt-text-primary":`#1a1a17`,"--dt-text-secondary":`#6b6a65`,"--dt-text-tertiary":`#a8a69e`,"--dt-border-default":`#e3e2da`,"--dt-border-muted":`#d6d5cd`,"--dt-border-subtle":`#eeede6`,"--dt-glass-bg":`rgba(250, 249, 244, 0.78)`,"--dt-glass-blur":`16px`,"--dt-glass-border":`rgba(0, 0, 0, 0.06)`,"--dt-glass-hover-border":`rgba(15, 143, 122, 0.08)`,"--dt-glass-shadow":`0 0 0 1px rgba(0, 0, 0, 0.02), 0 2px 8px rgba(0, 0, 0, 0.04), 0 8px 24px rgba(0, 0, 0, 0.03)`,"--dt-accent-fg":`#0f8f7a`,"--dt-accent-emphasis":`#0f766e`,"--dt-accent-foreground":`#ffffff`,"--dt-accent-muted":`rgba(15, 143, 122, 0.2)`,"--dt-accent-subtle":`rgba(15, 143, 122, 0.07)`,"--dt-success-fg":`#16a34a`,"--dt-success-emphasis":`#15803d`,"--dt-success-muted":`rgba(22, 163, 74, 0.2)`,"--dt-success-subtle":`rgba(22, 163, 74, 0.07)`,"--dt-danger-fg":`#dc2626`,"--dt-danger-emphasis":`#b91c1c`,"--dt-danger-muted":`rgba(220, 38, 38, 0.2)`,"--dt-danger-subtle":`rgba(220, 38, 38, 0.07)`,"--dt-warning-fg":`#d97706`,"--dt-warning-emphasis":`#b45309`,"--dt-warning-muted":`rgba(217, 119, 6, 0.2)`,"--dt-warning-subtle":`rgba(217, 119, 6, 0.07)`,"--dt-info-fg":`#2563eb`,"--dt-info-emphasis":`#1d4ed8`,"--dt-info-muted":`rgba(37, 99, 235, 0.2)`,"--dt-info-subtle":`rgba(37, 99, 235, 0.07)`,"--dt-purple-fg":`#7c3aed`,"--dt-purple-emphasis":`#6d28d9`,"--dt-purple-muted":`rgba(124, 58, 237, 0.2)`,"--dt-purple-subtle":`rgba(124, 58, 237, 0.07)`,"--dt-agent-researcher":`#818cf8`,"--dt-agent-implementer":`#34d399`,"--dt-agent-frontend":`#f472b6`,"--dt-agent-reviewer":`#fbbf24`,"--dt-agent-debugger":`#f87171`,"--dt-agent-security":`#fb923c`,"--dt-agent-explorer":`#38bdf8`,"--dt-agent-documenter":`#c084fc`,"--dt-agent-refactor":`#2dd4bf`,"--dt-agent-planner":`#a78bfa`,"--dt-agent-orchestrator":`#94a3b8`,"--dt-status-pending":`#94a3b8`,"--dt-status-in-progress":`#60a5fa`,"--dt-status-done":`#4ade80`,"--dt-status-blocked":`#f87171`,"--dt-font-sans":`Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif`,"--dt-font-mono":`'JetBrains Mono', 'Geist Mono', 'Fira Code', 'SF Mono', Consolas, monospace`,"--dt-font-size-xs":`0.75rem`,"--dt-font-size-sm":`0.8125rem`,"--dt-font-size-base":`0.875rem`,"--dt-font-size-lg":`1rem`,"--dt-font-size-xl":`1.25rem`,"--dt-font-size-2xl":`1.5rem`,"--dt-font-size-3xl":`2rem`,"--dt-font-size-4xl":`2.5rem`,"--dt-space-1":`0.25rem`,"--dt-space-2":`0.5rem`,"--dt-space-3":`0.75rem`,"--dt-space-4":`1rem`,"--dt-space-5":`1.25rem`,"--dt-space-6":`1.5rem`,"--dt-space-8":`2rem`,"--dt-space-10":`2.5rem`,"--dt-space-12":`3rem`,"--dt-radius-xs":`4px`,"--dt-radius-sm":`6px`,"--dt-radius-md":`8px`,"--dt-radius-lg":`12px`,"--dt-radius-xl":`16px`,"--dt-radius-pill":`999px`,"--dt-shadow-sm":`0 0 0 1px rgba(0, 0, 0, 0.02), 0 1px 3px rgba(0, 0, 0, 0.06)`,"--dt-shadow-md":`0 0 0 1px rgba(0, 0, 0, 0.03), 0 2px 6px rgba(0, 0, 0, 0.05), 0 4px 12px rgba(0, 0, 0, 0.03)`,"--dt-shadow-lg":`0 0 0 1px rgba(0, 0, 0, 0.03), 0 2px 8px rgba(0, 0, 0, 0.06), 0 8px 32px rgba(0, 0, 0, 0.04)`,"--dt-glow-primary":`radial-gradient(circle at 50% 50%, rgba(15, 143, 122, 0.07), rgba(200, 155, 255, 0.03) 50%, transparent 70%)`,"--dt-glow-secondary":`radial-gradient(circle at 50% 50%, rgba(245, 179, 66, 0.05), transparent 50%)`,"--dt-glow-accent":`rgba(15, 143, 122, 0.35)`,"--dt-glow-success":`rgba(22, 163, 74, 0.35)`,"--dt-glow-danger":`rgba(220, 38, 38, 0.35)`,"--dt-glow-warning":`rgba(217, 119, 6, 0.35)`,"--dt-glow-info":`rgba(37, 99, 235, 0.35)`,"--dt-glow-purple":`rgba(124, 58, 237, 0.35)`,"--dt-annotation-comment":`#0f8f7a`,"--dt-annotation-comment-bg":`rgba(15, 143, 122, 0.1)`,"--dt-annotation-deletion":`#dc2626`,"--dt-annotation-deletion-bg":`rgba(220, 38, 38, 0.1)`,"--dt-annotation-hover":`rgba(0, 0, 0, 0.04)`,"--dt-transition-fast":`120ms cubic-bezier(0.25, 0.46, 0.45, 0.94)`,"--dt-transition-normal":`200ms cubic-bezier(0.25, 0.46, 0.45, 0.94)`,"--dt-transition-slow":`300ms cubic-bezier(0.16, 1, 0.3, 1)`},P={"--dt-bg-canvas":`#0c0c0f`,"--dt-bg-primary":`#131316`,"--dt-bg-secondary":`#1c1c21`,"--dt-bg-tertiary":`#25252b`,"--dt-text-primary":`#f0efe7`,"--dt-text-secondary":`#a8a69e`,"--dt-text-tertiary":`#6b6a65`,"--dt-border-default":`#2a2a30`,"--dt-border-muted":`#35353c`,"--dt-border-subtle":`#1f1f24`,"--dt-glass-bg":`rgba(19, 19, 22, 0.72)`,"--dt-glass-border":`rgba(255, 255, 255, 0.06)`,"--dt-glass-hover-border":`rgba(69, 200, 168, 0.08)`,"--dt-glass-shadow":`0 0 0 1px rgba(255, 255, 255, 0.04), 0 2px 8px rgba(0, 0, 0, 0.25), 0 8px 32px rgba(0, 0, 0, 0.15)`,"--dt-accent-fg":`#45c8a8`,"--dt-accent-muted":`rgba(69, 200, 168, 0.3)`,"--dt-accent-subtle":`rgba(69, 200, 168, 0.1)`,"--dt-success-fg":`#2bd47c`,"--dt-success-emphasis":`#22b86b`,"--dt-success-muted":`rgba(43, 212, 124, 0.3)`,"--dt-success-subtle":`rgba(43, 212, 124, 0.1)`,"--dt-danger-fg":`#f56a6a`,"--dt-danger-emphasis":`#e54848`,"--dt-danger-muted":`rgba(245, 106, 106, 0.3)`,"--dt-danger-subtle":`rgba(245, 106, 106, 0.1)`,"--dt-warning-fg":`#f5b342`,"--dt-warning-emphasis":`#e89e2e`,"--dt-warning-muted":`rgba(245, 179, 66, 0.3)`,"--dt-warning-subtle":`rgba(245, 179, 66, 0.1)`,"--dt-info-fg":`#6baef8`,"--dt-info-emphasis":`#5090e8`,"--dt-info-muted":`rgba(107, 174, 248, 0.3)`,"--dt-info-subtle":`rgba(107, 174, 248, 0.1)`,"--dt-purple-fg":`#c89bff`,"--dt-purple-emphasis":`#b07ef0`,"--dt-purple-muted":`rgba(200, 155, 255, 0.3)`,"--dt-purple-subtle":`rgba(200, 155, 255, 0.1)`,"--dt-shadow-sm":`0 0 0 1px rgba(255, 255, 255, 0.02), 0 1px 3px rgba(0, 0, 0, 0.3)`,"--dt-shadow-md":`0 0 0 1px rgba(255, 255, 255, 0.03), 0 2px 6px rgba(0, 0, 0, 0.35), 0 4px 12px rgba(0, 0, 0, 0.2)`,"--dt-shadow-lg":`0 0 0 1px rgba(255, 255, 255, 0.04), 0 2px 8px rgba(0, 0, 0, 0.4), 0 8px 32px rgba(0, 0, 0, 0.25)`,"--dt-glow-primary":`radial-gradient(circle at 50% 50%, rgba(69, 200, 168, 0.12), rgba(107, 174, 248, 0.05) 45%, transparent 70%)`,"--dt-glow-secondary":`radial-gradient(circle at 50% 50%, rgba(200, 155, 255, 0.06), transparent 50%)`,"--dt-glow-accent":`rgba(69, 200, 168, 0.35)`,"--dt-glow-success":`rgba(43, 212, 124, 0.35)`,"--dt-glow-danger":`rgba(245, 106, 106, 0.35)`,"--dt-glow-warning":`rgba(245, 179, 66, 0.35)`,"--dt-glow-info":`rgba(107, 174, 248, 0.35)`,"--dt-glow-purple":`rgba(200, 155, 255, 0.35)`,"--dt-annotation-comment":`#45c8a8`,"--dt-annotation-comment-bg":`rgba(69, 200, 168, 0.15)`,"--dt-annotation-deletion":`#f56a6a`,"--dt-annotation-deletion-bg":`rgba(245, 106, 106, 0.15)`,"--dt-annotation-hover":`rgba(255, 255, 255, 0.04)`},Gt=`--dt-bg-canvas.--dt-bg-primary.--dt-bg-secondary.--dt-bg-tertiary.--dt-text-primary.--dt-text-secondary.--dt-text-tertiary.--dt-border-default.--dt-border-muted.--dt-border-subtle.--dt-glass-bg.--dt-glass-blur.--dt-glass-border.--dt-glass-hover-border.--dt-glass-shadow.--dt-accent-fg.--dt-accent-emphasis.--dt-accent-foreground.--dt-accent-muted.--dt-accent-subtle.--dt-success-fg.--dt-success-emphasis.--dt-success-muted.--dt-success-subtle.--dt-danger-fg.--dt-danger-emphasis.--dt-danger-muted.--dt-danger-subtle.--dt-warning-fg.--dt-warning-emphasis.--dt-warning-muted.--dt-warning-subtle.--dt-info-fg.--dt-info-emphasis.--dt-info-muted.--dt-info-subtle.--dt-purple-fg.--dt-purple-emphasis.--dt-purple-muted.--dt-purple-subtle.--dt-agent-researcher.--dt-agent-implementer.--dt-agent-frontend.--dt-agent-reviewer.--dt-agent-debugger.--dt-agent-security.--dt-agent-explorer.--dt-agent-documenter.--dt-agent-refactor.--dt-agent-planner.--dt-agent-orchestrator.--dt-status-pending.--dt-status-in-progress.--dt-status-done.--dt-status-blocked.--dt-font-sans.--dt-font-mono.--dt-font-size-xs.--dt-font-size-sm.--dt-font-size-base.--dt-font-size-lg.--dt-font-size-xl.--dt-font-size-2xl.--dt-font-size-3xl.--dt-font-size-4xl.--dt-space-1.--dt-space-2.--dt-space-3.--dt-space-4.--dt-space-5.--dt-space-6.--dt-space-8.--dt-space-10.--dt-space-12.--dt-radius-xs.--dt-radius-sm.--dt-radius-md.--dt-radius-lg.--dt-radius-xl.--dt-radius-pill.--dt-shadow-sm.--dt-shadow-md.--dt-shadow-lg.--dt-glow-primary.--dt-glow-secondary.--dt-glow-accent.--dt-glow-success.--dt-glow-danger.--dt-glow-warning.--dt-glow-info.--dt-glow-purple.--dt-annotation-comment.--dt-annotation-comment-bg.--dt-annotation-deletion.--dt-annotation-deletion-bg.--dt-annotation-hover.--dt-transition-fast.--dt-transition-normal.--dt-transition-slow`.split(`.`),Kt=`--dt-bg-canvas.--dt-bg-primary.--dt-bg-secondary.--dt-bg-tertiary.--dt-text-primary.--dt-text-secondary.--dt-text-tertiary.--dt-border-default.--dt-border-muted.--dt-border-subtle.--dt-glass-bg.--dt-glass-border.--dt-glass-hover-border.--dt-glass-shadow.--dt-accent-fg.--dt-accent-muted.--dt-accent-subtle.--dt-success-fg.--dt-success-emphasis.--dt-success-muted.--dt-success-subtle.--dt-danger-fg.--dt-danger-emphasis.--dt-danger-muted.--dt-danger-subtle.--dt-warning-fg.--dt-warning-emphasis.--dt-warning-muted.--dt-warning-subtle.--dt-info-fg.--dt-info-emphasis.--dt-info-muted.--dt-info-subtle.--dt-purple-fg.--dt-purple-emphasis.--dt-purple-muted.--dt-purple-subtle.--dt-shadow-sm.--dt-shadow-md.--dt-shadow-lg.--dt-glow-primary.--dt-glow-secondary.--dt-glow-accent.--dt-glow-success.--dt-glow-danger.--dt-glow-warning.--dt-glow-info.--dt-glow-purple.--dt-annotation-comment.--dt-annotation-comment-bg.--dt-annotation-deletion.--dt-annotation-deletion-bg.--dt-annotation-hover`.split(`.`),F={actions:`
|
|
154
|
+
`,Mt=/^(#{1,6})\s+(.+)$/,Nt=/^(?:(?:-\s*){3,}|(?:\*\s*){3,}|(?:_\s*){3,})$/;function Pt(e){return e.length?`<p>${e.map(e=>s(e)).join(`<br>`)}</p>`:``}function Ft(e,t){let r=String(e.value??``);if(r.trimStart().startsWith(`<`))return`<div class="bk-markdown">${r}</div>`;let i=[],a=[],o=!1,s=[],c=``,l=()=>{let e=Pt(a);e&&(i.push(e),a.length=0)};for(let e of r.split(/\r?\n/)){let t=e.trim();if(t.startsWith("```")){if(!o)l(),o=!0,c=t.slice(3).trim(),s=[];else{let e=c?` class="${n(c)}"`:``,t=s.join(`
|
|
155
|
+
`),r=(c?k(t,c):``)||n(t);i.push(`<pre class="bk-code"><code${e}>${r}</code></pre>`),o=!1,s=[],c=``}continue}if(o){s.push(e);continue}if(!t){l();continue}let r=t.match(Mt);if(r){l();let[,e,t]=r,a=e.length;i.push(`<h${a} class="bk-heading bk-heading--${a}">${n(t)}</h${a}>`);continue}if(Nt.test(t)){l(),i.push(`<hr>`);continue}a.push(e)}if(l(),o&&s.length>0){let e=c?` class="${n(c)}"`:``,t=s.join(`
|
|
156
|
+
`),r=(c?k(t,c):``)||n(t);i.push(`<pre class="bk-code"><code${e}>${r}</code></pre>`)}return`<div class="bk-markdown">${i.join(``)}</div>`}function It(e,t){return`<pre class="bk-mermaid mermaid">${n(String(e.value??``))}</pre>`}function Lt(e){if(e==null||e===``)return``;let t=a(e);if(/^[↑↓→]/.test(t))return`<span class="bk-metric-trend">${n(t)}</span>`;let r=Number(String(e).replace(/[^0-9.-]/g,``));return`<span class="bk-metric-trend">${Number.isNaN(r)?``:r>0?`↑ `:r<0?`↓ `:`→ `}${n(t)}</span>`}function Rt(e,t){return`<div class="bk-metrics">${f(e).map((e,t)=>`<article class="bk-metric" data-tone="${u(e.status)}" style="--i: ${t}"><div class="bk-metric-label">${n(e.label)}</div><div class="bk-metric-value">${n(a(e.value))}</div>${Lt(e.trend)}</article>`).join(``)}</div>`}function zt(e,t){return`<p class="bk-paragraph">${n(String(e.value??e.text??``))}</p>`}function Bt(e){let t=o(e);if(Array.isArray(t))return t;if(t&&typeof t==`object`){if(Array.isArray(t.items))return t.items;if(`value`in t)return[t]}return[]}function Vt(e,t){return`<div class="bk-progress">${Bt(e.value).map((e,t)=>{let r=Math.max(1,Number(e.max)||100),i=Math.max(0,Number(e.value)||0),a=Math.round(Math.min(i/r*100,100)),o=u(e.color);return`<div class="bk-progress-item" style="--i: ${t}"><div class="bk-progress-meta"><span>${n(e.label)}</span><span>${a}%</span></div><div class="bk-progress-track"><span class="bk-progress-bar" role="progressbar" aria-valuenow="${i}" aria-valuemin="0" aria-valuemax="${r}" aria-label="${n(e.label)}" style="width:${a}%;background:var(--dt-${o}-emphasis);--bar-glow:var(--dt-glow-${o});"></span></div></div>`}).join(``)}</div>`}function Ht(e){if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e??``)}}function Ut(e,t){return`<pre class="bk-prompt">${n(Ht(e.value))}</pre>`}function Wt(e,t){return`<hr class="bk-separator">`}function Gt(e){let t=o(e);return Array.isArray(t)?t:t&&typeof t==`object`&&Array.isArray(t.items)?t.items:[]}function Kt(e,t){return`<div class="bk-status-board">${Gt(e.value).map(e=>{let t=e.items.map(e=>{let t=u(e.status),r=e.description?`<div class="bk-status-description">${n(e.description)}</div>`:``;return`<div class="bk-status-item"><span class="bk-status-pill" style="background:var(--dt-${t}-subtle);color:var(--dt-${t}-fg);">${n(e.status??`pending`)}</span><div class="bk-status-copy"><div class="bk-status-label">${n(e.label??e.name??``)}</div>${r}</div></div>`}).join(``);return`<section class="bk-status-category"><div class="bk-status-category-title">${n(e.category)}</div><div class="bk-status-items">${t}</div></section>`}).join(``)}</div>`}function qt(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Jt(e){let t=(e??[]).map(e=>{if(qt(e)){let t=typeof e.key==`string`?e.key:String(e.label??``);return{key:t,label:typeof e.label==`string`?e.label:t}}let t=String(e);return{key:t,label:t}});return{headers:t.map(e=>e.label),keys:t.map(e=>e.key)}}function Yt(e){if(Array.isArray(e.columns)){let{headers:t,keys:n}=Jt(e.columns),r=Array.isArray(e.rows)?e.rows:[];return r.length>0&&Array.isArray(r[0])?{headers:t,keys:n,rows:r.map(e=>Object.fromEntries(n.map((t,n)=>[t,e[n]??``])))}:r.length>0&&typeof r[0]==`object`&&r[0]!==null?{headers:t,keys:n,rows:r}:{headers:t,keys:n,rows:[]}}let t=o(e.value);if(Array.isArray(t)){if(t.length>0&&typeof t[0]==`object`&&t[0]!==null&&!Array.isArray(t[0])){let n=t,r=Array.isArray(e.headers)?e.headers.map(String):Object.keys(n[0]??{});return{headers:r,keys:r,rows:n}}if(t.length>0&&Array.isArray(t[0])){let[n,...r]=t,i=Array.isArray(e.headers)?e.headers.map(String):n.map(String);return{headers:i,keys:i,rows:r.map(e=>Object.fromEntries(i.map((t,n)=>[t,e[n]])))}}}if(t&&typeof t==`object`){let n=Array.isArray(e.headers)?e.headers.map(String):Array.isArray(t.headers)?t.headers.map(String):[],r=Array.isArray(t.rows)?t.rows:[];if(r.length>0&&Array.isArray(r[0]))return{headers:n,keys:n,rows:r.map(e=>Object.fromEntries(n.map((t,n)=>[t,e[n]])))};if(r.length>0&&typeof r[0]==`object`&&r[0]!==null)return{headers:n,keys:n,rows:r}}if(Array.isArray(e.headers)){let t=e.headers.map(String);return{headers:t,keys:t,rows:[]}}if(Array.isArray(e.columns)){let{headers:t,keys:n}=Jt(e.columns);return{headers:t,keys:n,rows:[]}}return{headers:[],keys:[],rows:[]}}function Xt(e,t){let{headers:r,keys:i,rows:o}=Yt(e);if(r.length===0)return`<div class="bk-table-wrap"><table class="bk-table"><tbody></tbody></table></div>`;let s=t=>{let r=e.sorted===t,i=r&&e.sortDir!==`desc`,a=i?`▲`:r?`▼`:`⇅`;return`<th${r?` aria-sort="${i?`ascending`:`descending`}"`:``}>${n(t)}<span class="bk-table-sort-icon">${a}</span></th>`},c=`<thead><tr>${r.map(e=>s(e)).join(``)}</tr></thead>`,l=o.length>0&&i.length>2?` data-scrollable="true"`:``,u;return u=o.length===0?`<tr><td colspan="${r.length}"><div class="bk-table-empty"><span class="bk-table-empty-icon" aria-hidden="true">📋</span>No data</div></td></tr>`:o.map(e=>`<tr>${i.map(t=>`<td>${n(a(e[t]))}</td>`).join(``)}</tr>`).join(``),`<div class="bk-table-wrap"${l}><table class="bk-table">${c}<tbody>${u}</tbody></table></div>`}function Zt(e){let t=o(e);return Array.isArray(t)?t:t&&typeof t==`object`&&Array.isArray(t.items)?t.items:[]}function Qt(e,t){return`<div class="bk-tags">${Zt(e.value).map(e=>{let t=typeof e==`string`?e:String(e.text??e.label??``),r=u(typeof e==`string`?void 0:e.status??e.tone??e.color);return`<span class="bk-tag" style="background:var(--dt-${r}-subtle);color:var(--dt-${r}-fg);">${n(t)}</span>`}).join(``)}</div>`}function $t(e,t){return`<div class="bk-text">${s(String(e.value??``)).replace(/\n/g,`<br>`)}</div>`}function en(e,t){return`<div class="bk-timeline">${f(e).map(e=>{let t=u(e.status),r=e.description?`<div class="bk-timeline-description">${n(e.description)}</div>`:``,i=e.timestamp?`<div class="bk-timeline-timestamp">${n(e.timestamp)}</div>`:``;return`<article class="bk-timeline-item" data-tone="${t}"><span class="bk-timeline-dot" style="background:${`var(--dt-${t}-emphasis)`};box-shadow:0 0 0 6px var(--dt-glow-${t});"></span><div class="bk-timeline-title">${n(e.title)}</div>${r}${i}</article>`}).join(``)}</div>`}function I(e,t){if(Array.isArray(e)){let r=e.map(e=>I(e)).join(``);return t?`<details class="bk-tree-node" open><summary>${n(t)}</summary><div class="bk-tree-children">${r}</div></details>`:`<div class="bk-tree-children">${r}</div>`}if(e&&typeof e==`object`){let r=e,i=typeof r.name==`string`?r.name:typeof r.label==`string`?r.label:typeof r.title==`string`?r.title:void 0;if(i!==void 0)return I(r.children??[],i);let a=Object.entries(r).map(([e,t])=>I(t,e)).join(``);return t?`<details class="bk-tree-node" open><summary>${n(t)}</summary><div class="bk-tree-children">${a}</div></details>`:`<div class="bk-tree-children">${a}</div>`}let r=n(a(e));return t?`<div class="bk-tree-leaf"><span class="bk-tree-key">${n(t)}</span><span class="bk-tree-value">${r}</span></div>`:`<div class="bk-tree-leaf">${r}</div>`}function tn(e,t){return`<div class="bk-tree">${I(o(e.value))}</div>`}const L={"--dt-bg-canvas":`#f5f4ee`,"--dt-bg-primary":`#faf9f4`,"--dt-bg-secondary":`#f0efe8`,"--dt-bg-tertiary":`#ffffff`,"--dt-text-primary":`#1a1a17`,"--dt-text-secondary":`#6b6a65`,"--dt-text-tertiary":`#a8a69e`,"--dt-border-default":`#e3e2da`,"--dt-border-muted":`#d6d5cd`,"--dt-border-subtle":`#eeede6`,"--dt-glass-bg":`rgba(250, 249, 244, 0.78)`,"--dt-glass-blur":`16px`,"--dt-glass-border":`rgba(0, 0, 0, 0.06)`,"--dt-glass-hover-border":`rgba(15, 143, 122, 0.08)`,"--dt-glass-shadow":`0 0 0 1px rgba(0, 0, 0, 0.02), 0 2px 8px rgba(0, 0, 0, 0.04), 0 8px 24px rgba(0, 0, 0, 0.03)`,"--dt-accent-fg":`#0f8f7a`,"--dt-accent-emphasis":`#0f766e`,"--dt-accent-foreground":`#ffffff`,"--dt-accent-muted":`rgba(15, 143, 122, 0.2)`,"--dt-accent-subtle":`rgba(15, 143, 122, 0.07)`,"--dt-success-fg":`#16a34a`,"--dt-success-emphasis":`#15803d`,"--dt-success-muted":`rgba(22, 163, 74, 0.2)`,"--dt-success-subtle":`rgba(22, 163, 74, 0.07)`,"--dt-danger-fg":`#dc2626`,"--dt-danger-emphasis":`#b91c1c`,"--dt-danger-muted":`rgba(220, 38, 38, 0.2)`,"--dt-danger-subtle":`rgba(220, 38, 38, 0.07)`,"--dt-warning-fg":`#d97706`,"--dt-warning-emphasis":`#b45309`,"--dt-warning-muted":`rgba(217, 119, 6, 0.2)`,"--dt-warning-subtle":`rgba(217, 119, 6, 0.07)`,"--dt-info-fg":`#2563eb`,"--dt-info-emphasis":`#1d4ed8`,"--dt-info-muted":`rgba(37, 99, 235, 0.2)`,"--dt-info-subtle":`rgba(37, 99, 235, 0.07)`,"--dt-purple-fg":`#7c3aed`,"--dt-purple-emphasis":`#6d28d9`,"--dt-purple-muted":`rgba(124, 58, 237, 0.2)`,"--dt-purple-subtle":`rgba(124, 58, 237, 0.07)`,"--dt-agent-researcher":`#818cf8`,"--dt-agent-implementer":`#34d399`,"--dt-agent-frontend":`#f472b6`,"--dt-agent-reviewer":`#fbbf24`,"--dt-agent-debugger":`#f87171`,"--dt-agent-security":`#fb923c`,"--dt-agent-explorer":`#38bdf8`,"--dt-agent-documenter":`#c084fc`,"--dt-agent-refactor":`#2dd4bf`,"--dt-agent-planner":`#a78bfa`,"--dt-agent-orchestrator":`#94a3b8`,"--dt-status-pending":`#94a3b8`,"--dt-status-in-progress":`#60a5fa`,"--dt-status-done":`#4ade80`,"--dt-status-blocked":`#f87171`,"--dt-font-sans":`Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif`,"--dt-font-mono":`'JetBrains Mono', 'Geist Mono', 'Fira Code', 'SF Mono', Consolas, monospace`,"--dt-font-size-xs":`0.75rem`,"--dt-font-size-sm":`0.8125rem`,"--dt-font-size-base":`0.875rem`,"--dt-font-size-lg":`1rem`,"--dt-font-size-xl":`1.25rem`,"--dt-font-size-2xl":`1.5rem`,"--dt-font-size-3xl":`2rem`,"--dt-font-size-4xl":`2.5rem`,"--dt-space-1":`0.25rem`,"--dt-space-2":`0.5rem`,"--dt-space-3":`0.75rem`,"--dt-space-4":`1rem`,"--dt-space-5":`1.25rem`,"--dt-space-6":`1.5rem`,"--dt-space-8":`2rem`,"--dt-space-10":`2.5rem`,"--dt-space-12":`3rem`,"--dt-radius-xs":`4px`,"--dt-radius-sm":`6px`,"--dt-radius-md":`8px`,"--dt-radius-lg":`12px`,"--dt-radius-xl":`16px`,"--dt-radius-pill":`999px`,"--dt-shadow-sm":`0 0 0 1px rgba(0, 0, 0, 0.02), 0 1px 3px rgba(0, 0, 0, 0.06)`,"--dt-shadow-md":`0 0 0 1px rgba(0, 0, 0, 0.03), 0 2px 6px rgba(0, 0, 0, 0.05), 0 4px 12px rgba(0, 0, 0, 0.03)`,"--dt-shadow-lg":`0 0 0 1px rgba(0, 0, 0, 0.03), 0 2px 8px rgba(0, 0, 0, 0.06), 0 8px 32px rgba(0, 0, 0, 0.04)`,"--dt-glow-primary":`radial-gradient(circle at 50% 50%, rgba(15, 143, 122, 0.07), rgba(200, 155, 255, 0.03) 50%, transparent 70%)`,"--dt-glow-secondary":`radial-gradient(circle at 50% 50%, rgba(245, 179, 66, 0.05), transparent 50%)`,"--dt-glow-accent":`rgba(15, 143, 122, 0.35)`,"--dt-glow-success":`rgba(22, 163, 74, 0.35)`,"--dt-glow-danger":`rgba(220, 38, 38, 0.35)`,"--dt-glow-warning":`rgba(217, 119, 6, 0.35)`,"--dt-glow-info":`rgba(37, 99, 235, 0.35)`,"--dt-glow-purple":`rgba(124, 58, 237, 0.35)`,"--dt-annotation-comment":`#0f8f7a`,"--dt-annotation-comment-bg":`rgba(15, 143, 122, 0.1)`,"--dt-annotation-deletion":`#dc2626`,"--dt-annotation-deletion-bg":`rgba(220, 38, 38, 0.1)`,"--dt-annotation-hover":`rgba(0, 0, 0, 0.04)`,"--dt-transition-fast":`120ms cubic-bezier(0.25, 0.46, 0.45, 0.94)`,"--dt-transition-normal":`200ms cubic-bezier(0.25, 0.46, 0.45, 0.94)`,"--dt-transition-slow":`300ms cubic-bezier(0.16, 1, 0.3, 1)`},R={"--dt-bg-canvas":`#0c0c0f`,"--dt-bg-primary":`#131316`,"--dt-bg-secondary":`#1c1c21`,"--dt-bg-tertiary":`#25252b`,"--dt-text-primary":`#f0efe7`,"--dt-text-secondary":`#a8a69e`,"--dt-text-tertiary":`#6b6a65`,"--dt-border-default":`#2a2a30`,"--dt-border-muted":`#35353c`,"--dt-border-subtle":`#1f1f24`,"--dt-glass-bg":`rgba(19, 19, 22, 0.72)`,"--dt-glass-border":`rgba(255, 255, 255, 0.06)`,"--dt-glass-hover-border":`rgba(69, 200, 168, 0.08)`,"--dt-glass-shadow":`0 0 0 1px rgba(255, 255, 255, 0.04), 0 2px 8px rgba(0, 0, 0, 0.25), 0 8px 32px rgba(0, 0, 0, 0.15)`,"--dt-accent-fg":`#45c8a8`,"--dt-accent-muted":`rgba(69, 200, 168, 0.3)`,"--dt-accent-subtle":`rgba(69, 200, 168, 0.1)`,"--dt-success-fg":`#2bd47c`,"--dt-success-emphasis":`#22b86b`,"--dt-success-muted":`rgba(43, 212, 124, 0.3)`,"--dt-success-subtle":`rgba(43, 212, 124, 0.1)`,"--dt-danger-fg":`#f56a6a`,"--dt-danger-emphasis":`#e54848`,"--dt-danger-muted":`rgba(245, 106, 106, 0.3)`,"--dt-danger-subtle":`rgba(245, 106, 106, 0.1)`,"--dt-warning-fg":`#f5b342`,"--dt-warning-emphasis":`#e89e2e`,"--dt-warning-muted":`rgba(245, 179, 66, 0.3)`,"--dt-warning-subtle":`rgba(245, 179, 66, 0.1)`,"--dt-info-fg":`#6baef8`,"--dt-info-emphasis":`#5090e8`,"--dt-info-muted":`rgba(107, 174, 248, 0.3)`,"--dt-info-subtle":`rgba(107, 174, 248, 0.1)`,"--dt-purple-fg":`#c89bff`,"--dt-purple-emphasis":`#b07ef0`,"--dt-purple-muted":`rgba(200, 155, 255, 0.3)`,"--dt-purple-subtle":`rgba(200, 155, 255, 0.1)`,"--dt-shadow-sm":`0 0 0 1px rgba(255, 255, 255, 0.02), 0 1px 3px rgba(0, 0, 0, 0.3)`,"--dt-shadow-md":`0 0 0 1px rgba(255, 255, 255, 0.03), 0 2px 6px rgba(0, 0, 0, 0.35), 0 4px 12px rgba(0, 0, 0, 0.2)`,"--dt-shadow-lg":`0 0 0 1px rgba(255, 255, 255, 0.04), 0 2px 8px rgba(0, 0, 0, 0.4), 0 8px 32px rgba(0, 0, 0, 0.25)`,"--dt-glow-primary":`radial-gradient(circle at 50% 50%, rgba(69, 200, 168, 0.12), rgba(107, 174, 248, 0.05) 45%, transparent 70%)`,"--dt-glow-secondary":`radial-gradient(circle at 50% 50%, rgba(200, 155, 255, 0.06), transparent 50%)`,"--dt-glow-accent":`rgba(69, 200, 168, 0.35)`,"--dt-glow-success":`rgba(43, 212, 124, 0.35)`,"--dt-glow-danger":`rgba(245, 106, 106, 0.35)`,"--dt-glow-warning":`rgba(245, 179, 66, 0.35)`,"--dt-glow-info":`rgba(107, 174, 248, 0.35)`,"--dt-glow-purple":`rgba(200, 155, 255, 0.35)`,"--dt-annotation-comment":`#45c8a8`,"--dt-annotation-comment-bg":`rgba(69, 200, 168, 0.15)`,"--dt-annotation-deletion":`#f56a6a`,"--dt-annotation-deletion-bg":`rgba(245, 106, 106, 0.15)`,"--dt-annotation-hover":`rgba(255, 255, 255, 0.04)`},nn=`--dt-bg-canvas.--dt-bg-primary.--dt-bg-secondary.--dt-bg-tertiary.--dt-text-primary.--dt-text-secondary.--dt-text-tertiary.--dt-border-default.--dt-border-muted.--dt-border-subtle.--dt-glass-bg.--dt-glass-blur.--dt-glass-border.--dt-glass-hover-border.--dt-glass-shadow.--dt-accent-fg.--dt-accent-emphasis.--dt-accent-foreground.--dt-accent-muted.--dt-accent-subtle.--dt-success-fg.--dt-success-emphasis.--dt-success-muted.--dt-success-subtle.--dt-danger-fg.--dt-danger-emphasis.--dt-danger-muted.--dt-danger-subtle.--dt-warning-fg.--dt-warning-emphasis.--dt-warning-muted.--dt-warning-subtle.--dt-info-fg.--dt-info-emphasis.--dt-info-muted.--dt-info-subtle.--dt-purple-fg.--dt-purple-emphasis.--dt-purple-muted.--dt-purple-subtle.--dt-agent-researcher.--dt-agent-implementer.--dt-agent-frontend.--dt-agent-reviewer.--dt-agent-debugger.--dt-agent-security.--dt-agent-explorer.--dt-agent-documenter.--dt-agent-refactor.--dt-agent-planner.--dt-agent-orchestrator.--dt-status-pending.--dt-status-in-progress.--dt-status-done.--dt-status-blocked.--dt-font-sans.--dt-font-mono.--dt-font-size-xs.--dt-font-size-sm.--dt-font-size-base.--dt-font-size-lg.--dt-font-size-xl.--dt-font-size-2xl.--dt-font-size-3xl.--dt-font-size-4xl.--dt-space-1.--dt-space-2.--dt-space-3.--dt-space-4.--dt-space-5.--dt-space-6.--dt-space-8.--dt-space-10.--dt-space-12.--dt-radius-xs.--dt-radius-sm.--dt-radius-md.--dt-radius-lg.--dt-radius-xl.--dt-radius-pill.--dt-shadow-sm.--dt-shadow-md.--dt-shadow-lg.--dt-glow-primary.--dt-glow-secondary.--dt-glow-accent.--dt-glow-success.--dt-glow-danger.--dt-glow-warning.--dt-glow-info.--dt-glow-purple.--dt-annotation-comment.--dt-annotation-comment-bg.--dt-annotation-deletion.--dt-annotation-deletion-bg.--dt-annotation-hover.--dt-transition-fast.--dt-transition-normal.--dt-transition-slow`.split(`.`),rn=`--dt-bg-canvas.--dt-bg-primary.--dt-bg-secondary.--dt-bg-tertiary.--dt-text-primary.--dt-text-secondary.--dt-text-tertiary.--dt-border-default.--dt-border-muted.--dt-border-subtle.--dt-glass-bg.--dt-glass-border.--dt-glass-hover-border.--dt-glass-shadow.--dt-accent-fg.--dt-accent-muted.--dt-accent-subtle.--dt-success-fg.--dt-success-emphasis.--dt-success-muted.--dt-success-subtle.--dt-danger-fg.--dt-danger-emphasis.--dt-danger-muted.--dt-danger-subtle.--dt-warning-fg.--dt-warning-emphasis.--dt-warning-muted.--dt-warning-subtle.--dt-info-fg.--dt-info-emphasis.--dt-info-muted.--dt-info-subtle.--dt-purple-fg.--dt-purple-emphasis.--dt-purple-muted.--dt-purple-subtle.--dt-shadow-sm.--dt-shadow-md.--dt-shadow-lg.--dt-glow-primary.--dt-glow-secondary.--dt-glow-accent.--dt-glow-success.--dt-glow-danger.--dt-glow-warning.--dt-glow-info.--dt-glow-purple.--dt-annotation-comment.--dt-annotation-comment-bg.--dt-annotation-deletion.--dt-annotation-deletion-bg.--dt-annotation-hover`.split(`.`),z={actions:`
|
|
54
157
|
.bk-actions {
|
|
55
158
|
display: flex;
|
|
56
159
|
flex-wrap: wrap;
|
|
@@ -138,6 +241,8 @@ ${ot}
|
|
|
138
241
|
background: var(--dt-bg-secondary);
|
|
139
242
|
box-shadow: var(--dt-shadow-sm);
|
|
140
243
|
transition: transform var(--dt-transition-normal), box-shadow var(--dt-transition-normal), border-color var(--dt-transition-normal);
|
|
244
|
+
animation: aikit-enter-fade 400ms cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
245
|
+
animation-delay: calc(var(--i, 0) * 60ms);
|
|
141
246
|
}
|
|
142
247
|
|
|
143
248
|
.bk-card:hover {
|
|
@@ -177,6 +282,25 @@ ${ot}
|
|
|
177
282
|
letter-spacing: 0.02em;
|
|
178
283
|
white-space: nowrap;
|
|
179
284
|
}
|
|
285
|
+
|
|
286
|
+
/* ── Compact cards on mobile ── */
|
|
287
|
+
@media (max-width: 480px) {
|
|
288
|
+
.bk-cards {
|
|
289
|
+
gap: var(--dt-space-3);
|
|
290
|
+
}
|
|
291
|
+
.bk-card {
|
|
292
|
+
padding: var(--dt-space-4);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
@media (max-width: 320px) {
|
|
297
|
+
.bk-card {
|
|
298
|
+
padding: var(--dt-space-3);
|
|
299
|
+
}
|
|
300
|
+
.bk-card-title {
|
|
301
|
+
font-size: var(--dt-font-size-base);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
180
304
|
`,chart:`
|
|
181
305
|
.bk-chart {
|
|
182
306
|
display: grid;
|
|
@@ -200,6 +324,7 @@ ${ot}
|
|
|
200
324
|
width: 100%;
|
|
201
325
|
height: auto;
|
|
202
326
|
overflow: visible;
|
|
327
|
+
animation: aikit-enter-fade 500ms ease-out both;
|
|
203
328
|
}
|
|
204
329
|
|
|
205
330
|
.bk-chart-svg .bk-chart-grid {
|
|
@@ -287,7 +412,64 @@ ${ot}
|
|
|
287
412
|
border-bottom: 1px solid var(--dt-border-muted);
|
|
288
413
|
text-align: left;
|
|
289
414
|
}
|
|
415
|
+
|
|
416
|
+
/* ── Compact chart on mobile ── */
|
|
417
|
+
@media (max-width: 480px) {
|
|
418
|
+
.bk-chart-surface {
|
|
419
|
+
padding: var(--dt-space-2);
|
|
420
|
+
}
|
|
421
|
+
.bk-chart-legend {
|
|
422
|
+
gap: var(--dt-space-1) var(--dt-space-3);
|
|
423
|
+
}
|
|
424
|
+
.bk-chart-legend-item {
|
|
425
|
+
font-size: 0.75rem;
|
|
426
|
+
}
|
|
427
|
+
.bk-chart-legend-swatch {
|
|
428
|
+
width: 0.625rem;
|
|
429
|
+
height: 0.625rem;
|
|
430
|
+
}
|
|
431
|
+
.bk-chart-table th,
|
|
432
|
+
.bk-chart-table td {
|
|
433
|
+
padding: var(--dt-space-2) var(--dt-space-3);
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
@media (max-width: 320px) {
|
|
438
|
+
.bk-chart {
|
|
439
|
+
gap: var(--dt-space-2);
|
|
440
|
+
}
|
|
441
|
+
.bk-chart-surface {
|
|
442
|
+
padding: var(--dt-space-1);
|
|
443
|
+
border-radius: var(--dt-radius-md);
|
|
444
|
+
}
|
|
445
|
+
.bk-chart-note {
|
|
446
|
+
font-size: 0.6875rem;
|
|
447
|
+
}
|
|
448
|
+
.bk-chart-table th,
|
|
449
|
+
.bk-chart-table td {
|
|
450
|
+
padding: var(--dt-space-1) var(--dt-space-2);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
290
453
|
`,checklist:`
|
|
454
|
+
/* ===== Base Styles ===== */
|
|
455
|
+
@keyframes strike-through {
|
|
456
|
+
from { width: 0; }
|
|
457
|
+
to { width: 100%; }
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
@keyframes slide-in {
|
|
461
|
+
from { opacity: 0; transform: translateX(-20px); }
|
|
462
|
+
to { opacity: 1; transform: translateX(0); }
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
@keyframes hover-pulse {
|
|
466
|
+
0% { transform: scale(1); }
|
|
467
|
+
25% { transform: scale(1.03); }
|
|
468
|
+
50% { transform: scale(0.98); }
|
|
469
|
+
75% { transform: scale(1.02); }
|
|
470
|
+
100% { transform: scale(1); }
|
|
471
|
+
}
|
|
472
|
+
|
|
291
473
|
.bk-checklist {
|
|
292
474
|
display: grid;
|
|
293
475
|
gap: var(--dt-space-2);
|
|
@@ -305,6 +487,7 @@ ${ot}
|
|
|
305
487
|
border-radius: var(--dt-radius-lg);
|
|
306
488
|
background: var(--dt-bg-secondary);
|
|
307
489
|
transition: border-color var(--dt-transition-fast), background var(--dt-transition-fast);
|
|
490
|
+
animation: slide-in 400ms ease-out both;
|
|
308
491
|
}
|
|
309
492
|
|
|
310
493
|
.bk-checklist-item:hover {
|
|
@@ -312,6 +495,7 @@ ${ot}
|
|
|
312
495
|
background: var(--dt-bg-tertiary);
|
|
313
496
|
}
|
|
314
497
|
|
|
498
|
+
/* ===== Icon Styles ===== */
|
|
315
499
|
.bk-checklist-icon {
|
|
316
500
|
display: inline-flex;
|
|
317
501
|
align-items: center;
|
|
@@ -330,14 +514,67 @@ ${ot}
|
|
|
330
514
|
.bk-checklist-item[data-checked='true'] .bk-checklist-icon {
|
|
331
515
|
background: var(--dt-success-subtle);
|
|
332
516
|
color: var(--dt-success-fg);
|
|
517
|
+
animation: aikit-check-bounce 400ms cubic-bezier(0.34,1.56,0.64,1) 500ms both;
|
|
333
518
|
}
|
|
334
519
|
|
|
520
|
+
/* ===== Label Styles ===== */
|
|
335
521
|
.bk-checklist-label {
|
|
336
522
|
color: var(--dt-text-primary);
|
|
337
523
|
font-size: var(--dt-font-size-sm);
|
|
338
524
|
line-height: 1.5;
|
|
339
525
|
padding-top: 1px;
|
|
340
526
|
}
|
|
527
|
+
|
|
528
|
+
.bk-checklist-item[data-checked='true'] .bk-checklist-label {
|
|
529
|
+
position: relative;
|
|
530
|
+
color: var(--dt-text-tertiary);
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
.bk-checklist-item[data-checked='true'] .bk-checklist-label::after {
|
|
534
|
+
content: '';
|
|
535
|
+
position: absolute;
|
|
536
|
+
left: 0;
|
|
537
|
+
top: 50%;
|
|
538
|
+
height: 1px;
|
|
539
|
+
background: currentColor;
|
|
540
|
+
animation: strike-through 300ms ease-out 700ms forwards;
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
/* ===== Hover Pulse for Unchecked Items ===== */
|
|
544
|
+
.bk-checklist-item[data-checked='false'] {
|
|
545
|
+
cursor: pointer;
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
.bk-checklist-item[data-checked='false']:hover {
|
|
549
|
+
animation: hover-pulse 600ms ease-in-out 0ms none;
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
/* Stagger via inline --i (rendered from index) instead of nth-child */
|
|
553
|
+
.bk-checklist-item {
|
|
554
|
+
animation-delay: calc(var(--i, 0) * 50ms);
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
/* ── Compact checklist on mobile ── */
|
|
558
|
+
@media (max-width: 480px) {
|
|
559
|
+
.bk-checklist-item {
|
|
560
|
+
padding: var(--dt-space-2) var(--dt-space-3);
|
|
561
|
+
gap: var(--dt-space-2);
|
|
562
|
+
}
|
|
563
|
+
.bk-checklist-icon {
|
|
564
|
+
width: 1.25rem;
|
|
565
|
+
height: 1.25rem;
|
|
566
|
+
font-size: 0.625rem;
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
@media (max-width: 320px) {
|
|
571
|
+
.bk-checklist-item {
|
|
572
|
+
padding: var(--dt-space-2);
|
|
573
|
+
}
|
|
574
|
+
.bk-checklist-label {
|
|
575
|
+
font-size: 0.75rem;
|
|
576
|
+
}
|
|
577
|
+
}
|
|
341
578
|
`,code:`
|
|
342
579
|
.bk-code {
|
|
343
580
|
margin: 0;
|
|
@@ -356,101 +593,284 @@ ${ot}
|
|
|
356
593
|
font-size: var(--dt-font-size-sm);
|
|
357
594
|
line-height: 1.7;
|
|
358
595
|
}
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
596
|
+
|
|
597
|
+
/* Token spans inherit code font properties */
|
|
598
|
+
.bk-code code .bk-hljs-string,
|
|
599
|
+
.bk-code code .bk-hljs-comment,
|
|
600
|
+
.bk-code code .bk-hljs-keyword,
|
|
601
|
+
.bk-code code .bk-hljs-builtin,
|
|
602
|
+
.bk-code code .bk-hljs-number,
|
|
603
|
+
.bk-code code .bk-hljs-operator,
|
|
604
|
+
.bk-code code .bk-hljs-punctuation,
|
|
605
|
+
.bk-code code .bk-hljs-function,
|
|
606
|
+
.bk-code code .bk-hljs-class-name,
|
|
607
|
+
.bk-code code .bk-hljs-tag,
|
|
608
|
+
.bk-code code .bk-hljs-attr-name,
|
|
609
|
+
.bk-code code .bk-hljs-attr-value,
|
|
610
|
+
.bk-code code .bk-hljs-variable,
|
|
611
|
+
.bk-code code .bk-hljs-property {
|
|
612
|
+
font-family: inherit;
|
|
613
|
+
font-size: inherit;
|
|
614
|
+
line-height: inherit;
|
|
615
|
+
background: none;
|
|
616
|
+
text-shadow: none;
|
|
364
617
|
}
|
|
365
|
-
|
|
366
|
-
|
|
618
|
+
|
|
619
|
+
/* ── Compact code on mobile ── */
|
|
620
|
+
@media (max-width: 480px) {
|
|
621
|
+
.bk-code {
|
|
622
|
+
padding: var(--dt-space-4);
|
|
623
|
+
}
|
|
624
|
+
.bk-code code {
|
|
625
|
+
font-size: 0.75rem;
|
|
626
|
+
line-height: 1.5;
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
/* ── Ultra-compact code on 320px ── */
|
|
631
|
+
@media (max-width: 320px) {
|
|
632
|
+
.bk-code {
|
|
633
|
+
padding: var(--dt-space-3);
|
|
634
|
+
tab-size: 1;
|
|
635
|
+
}
|
|
636
|
+
.bk-code code {
|
|
637
|
+
font-size: 0.6875rem;
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
|
|
642
|
+
.bk-code .bk-hljs-keyword {
|
|
643
|
+
color: var(--dt-purple-fg);
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
.bk-code .bk-hljs-string,
|
|
647
|
+
.bk-code .bk-hljs-attr-value {
|
|
648
|
+
color: var(--dt-success-fg);
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
.bk-code .bk-hljs-comment {
|
|
652
|
+
color: var(--dt-text-tertiary);
|
|
653
|
+
font-style: italic;
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
.bk-code .bk-hljs-number {
|
|
657
|
+
color: var(--dt-info-fg);
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
.bk-code .bk-hljs-builtin {
|
|
661
|
+
color: var(--dt-accent-fg);
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
.bk-code .bk-hljs-operator {
|
|
665
|
+
color: var(--dt-warning-fg);
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
.bk-code .bk-hljs-punctuation {
|
|
669
|
+
color: var(--dt-text-secondary);
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
.bk-code .bk-hljs-function {
|
|
673
|
+
color: var(--dt-accent-fg);
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
.bk-code .bk-hljs-class-name {
|
|
677
|
+
color: var(--dt-accent-fg);
|
|
678
|
+
font-weight: 500;
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
.bk-code .bk-hljs-tag {
|
|
682
|
+
color: var(--dt-accent-fg);
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
.bk-code .bk-hljs-attr-name {
|
|
686
|
+
color: var(--dt-warning-fg);
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
.bk-code .bk-hljs-variable {
|
|
690
|
+
color: var(--dt-text-primary);
|
|
691
|
+
font-weight: 400;
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
.bk-code .bk-hljs-property {
|
|
695
|
+
color: var(--dt-text-primary);
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
`,"architecture-diagram":A,"workflow-diagram":A,"sequence-diagram":A,"dataflow-diagram":A,"lifecycle-diagram":A,diff:`
|
|
699
|
+
/* ── Diff Container ── */
|
|
700
|
+
.bk-diff {
|
|
701
|
+
overflow-x: auto;
|
|
702
|
+
font-family: var(--dt-font-mono);
|
|
703
|
+
font-size: var(--dt-font-size-sm);
|
|
704
|
+
border: 1px solid var(--dt-border-default);
|
|
705
|
+
border-radius: var(--dt-radius-lg);
|
|
706
|
+
position: relative;
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
/* ── Diff Toolbar (copy / expand) ── */
|
|
710
|
+
.bk-diff-toolbar {
|
|
711
|
+
display: flex;
|
|
712
|
+
justify-content: flex-end;
|
|
713
|
+
gap: var(--dt-space-1);
|
|
714
|
+
padding: var(--dt-space-1) var(--dt-space-2);
|
|
715
|
+
background: var(--dt-bg-secondary);
|
|
716
|
+
border-bottom: 1px solid var(--dt-border-default);
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
.bk-diff-btn {
|
|
720
|
+
display: inline-flex;
|
|
721
|
+
align-items: center;
|
|
722
|
+
gap: 4px;
|
|
723
|
+
padding: 2px 8px;
|
|
724
|
+
font-size: var(--dt-font-size-xs);
|
|
725
|
+
font-family: var(--dt-font-sans);
|
|
726
|
+
color: var(--dt-text-tertiary);
|
|
727
|
+
background: transparent;
|
|
728
|
+
border: 1px solid var(--dt-border-muted);
|
|
729
|
+
border-radius: var(--dt-radius-sm);
|
|
367
730
|
cursor: pointer;
|
|
368
|
-
|
|
369
|
-
font-size: var(--dt-font-size-sm, 13px);
|
|
370
|
-
background: var(--dt-bg-secondary, #f5f5f5);
|
|
371
|
-
border-bottom: 1px solid var(--dt-border-default, #e0e0e0);
|
|
372
|
-
user-select: none;
|
|
373
|
-
color: var(--dt-text-secondary, #666);
|
|
731
|
+
transition: color var(--dt-transition-fast), border-color var(--dt-transition-fast);
|
|
374
732
|
}
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
733
|
+
|
|
734
|
+
.bk-diff-btn:hover {
|
|
735
|
+
color: var(--dt-text-primary);
|
|
736
|
+
border-color: var(--dt-accent-muted);
|
|
378
737
|
}
|
|
379
|
-
|
|
380
|
-
|
|
738
|
+
|
|
739
|
+
.bk-diff-btn:active {
|
|
740
|
+
transform: scale(0.96);
|
|
381
741
|
}
|
|
382
|
-
|
|
742
|
+
|
|
743
|
+
/* ── 44px touch targets on mobile ── */
|
|
744
|
+
@media (max-width: 640px) {
|
|
745
|
+
.bk-diff-btn {
|
|
746
|
+
min-width: 2.75rem;
|
|
747
|
+
min-height: 2.75rem;
|
|
748
|
+
padding: var(--dt-space-1) var(--dt-space-3);
|
|
749
|
+
justify-content: center;
|
|
750
|
+
}
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
@media (max-width: 320px) {
|
|
754
|
+
.bk-diff {
|
|
755
|
+
font-size: 0.75rem;
|
|
756
|
+
}
|
|
757
|
+
.bk-diff-line {
|
|
758
|
+
padding: 0 8px;
|
|
759
|
+
}
|
|
760
|
+
.bk-diff-ln {
|
|
761
|
+
min-width: 3ch;
|
|
762
|
+
max-width: 3ch;
|
|
763
|
+
padding: 0 4px;
|
|
764
|
+
}
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
.bk-diff-btn[data-copied="true"] {
|
|
768
|
+
color: var(--dt-success-fg);
|
|
769
|
+
border-color: var(--dt-success-muted);
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
/* ── Diff Table ── */
|
|
773
|
+
.bk-diff-table {
|
|
383
774
|
width: 100%;
|
|
384
775
|
border-collapse: collapse;
|
|
385
|
-
font-size: var(--dt-font-size-sm, 13px);
|
|
386
776
|
}
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
777
|
+
|
|
778
|
+
/* ── Line Number Cells ── */
|
|
779
|
+
.bk-diff-ln {
|
|
780
|
+
color: var(--dt-text-tertiary);
|
|
781
|
+
padding: 0 8px;
|
|
782
|
+
text-align: right;
|
|
783
|
+
user-select: none;
|
|
784
|
+
width: 4ch;
|
|
785
|
+
min-width: 4ch;
|
|
786
|
+
max-width: 4ch;
|
|
787
|
+
white-space: nowrap;
|
|
788
|
+
border-right: 1px solid var(--dt-border-default);
|
|
789
|
+
font-variant-numeric: tabular-nums;
|
|
391
790
|
}
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
791
|
+
|
|
792
|
+
/* ── Content Cells ── */
|
|
793
|
+
.bk-diff-line {
|
|
794
|
+
padding: 0 12px;
|
|
795
|
+
white-space: pre-wrap;
|
|
796
|
+
word-break: break-all;
|
|
398
797
|
}
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
798
|
+
|
|
799
|
+
/* ── Hunk Headers (@@ … @@) ── */
|
|
800
|
+
.bk-diff-hunk td {
|
|
801
|
+
background: var(--dt-info-subtle);
|
|
802
|
+
color: var(--dt-info-fg);
|
|
803
|
+
padding: 4px 12px;
|
|
804
|
+
font-style: italic;
|
|
405
805
|
}
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
806
|
+
|
|
807
|
+
/* ── Added Lines (+) ── */
|
|
808
|
+
.bk-diff-add td {
|
|
809
|
+
background: var(--dt-success-subtle);
|
|
409
810
|
}
|
|
410
|
-
|
|
411
|
-
|
|
811
|
+
|
|
812
|
+
/* ── Removed Lines (-) ── */
|
|
813
|
+
.bk-diff-del td {
|
|
814
|
+
background: var(--dt-danger-subtle);
|
|
412
815
|
}
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
816
|
+
|
|
817
|
+
/* ── Header Lines (--- / +++) ── */
|
|
818
|
+
.bk-diff-header td {
|
|
819
|
+
font-family: var(--dt-font-mono);
|
|
820
|
+
color: var(--dt-accent-fg);
|
|
821
|
+
padding: 4px 12px;
|
|
822
|
+
background: var(--dt-bg-secondary);
|
|
416
823
|
}
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
824
|
+
|
|
825
|
+
/* ── Inline Word-Level Highlights ── */
|
|
826
|
+
.bk-diff-word-del {
|
|
827
|
+
background: var(--dt-danger-subtle);
|
|
828
|
+
text-decoration: line-through;
|
|
829
|
+
border-radius: 2px;
|
|
830
|
+
padding: 0 1px;
|
|
420
831
|
}
|
|
421
832
|
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
border:
|
|
425
|
-
|
|
426
|
-
overflow: visible;
|
|
833
|
+
.bk-diff-word-add {
|
|
834
|
+
background: var(--dt-success-subtle);
|
|
835
|
+
border-radius: 2px;
|
|
836
|
+
padding: 0 1px;
|
|
427
837
|
}
|
|
428
|
-
|
|
429
|
-
|
|
838
|
+
|
|
839
|
+
/* ── Expand/Collapse ── */
|
|
840
|
+
.bk-diff-body {
|
|
841
|
+
transition: max-height 300ms ease;
|
|
842
|
+
overflow: hidden;
|
|
430
843
|
}
|
|
431
|
-
|
|
432
|
-
|
|
844
|
+
|
|
845
|
+
.bk-diff-body[data-collapsed="true"] {
|
|
846
|
+
max-height: 480px;
|
|
847
|
+
position: relative;
|
|
433
848
|
}
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
849
|
+
|
|
850
|
+
.bk-diff-body[data-collapsed="true"]::after {
|
|
851
|
+
content: '';
|
|
852
|
+
position: absolute;
|
|
853
|
+
bottom: 0;
|
|
854
|
+
left: 0;
|
|
855
|
+
right: 0;
|
|
856
|
+
height: 48px;
|
|
857
|
+
background: linear-gradient(transparent, var(--dt-bg-canvas));
|
|
858
|
+
pointer-events: none;
|
|
859
|
+
}
|
|
860
|
+
|
|
861
|
+
.bk-diff-body[data-expanded="true"] {
|
|
862
|
+
max-height: none;
|
|
437
863
|
}
|
|
438
|
-
`,diff:`
|
|
439
|
-
.bk-diff { overflow-x: auto; font-family: var(--dt-font-mono); font-size: var(--dt-font-size-sm); border: 1px solid var(--dt-border-default); border-radius: var(--dt-radius-lg); }
|
|
440
|
-
.bk-diff-table { width: 100%; border-collapse: collapse; }
|
|
441
|
-
.bk-diff-ln { color: var(--dt-text-tertiary); padding: 0 8px; text-align: right; user-select: none; width: 1%; white-space: nowrap; border-right: 1px solid var(--dt-border-default); }
|
|
442
|
-
.bk-diff-line { padding: 0 12px; white-space: pre-wrap; word-break: break-all; }
|
|
443
|
-
.bk-diff-hunk td { background: var(--dt-blue-subtle); color: var(--dt-blue-fg); padding: 4px 12px; font-style: italic; }
|
|
444
|
-
.bk-diff-add td { background: var(--dt-green-subtle); }
|
|
445
|
-
.bk-diff-del td { background: var(--dt-red-subtle); }
|
|
446
|
-
.bk-diff-header td { font-weight: bold; padding: 4px 12px; background: var(--dt-bg-secondary); }
|
|
447
864
|
`,comparison:`
|
|
865
|
+
/* ── Comparison grid (CSS Grid for equal-height columns) ──────────────── */
|
|
448
866
|
.bk-comparison {
|
|
449
867
|
display: grid;
|
|
450
868
|
grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
|
|
451
869
|
gap: var(--dt-space-4);
|
|
870
|
+
align-items: stretch;
|
|
452
871
|
}
|
|
453
872
|
|
|
873
|
+
/* ── Column card ────────────────────────────────────────────────────────── */
|
|
454
874
|
.bk-comparison-column {
|
|
455
875
|
display: grid;
|
|
456
876
|
gap: var(--dt-space-3);
|
|
@@ -459,8 +879,36 @@ ${ot}
|
|
|
459
879
|
border-radius: var(--dt-radius-lg);
|
|
460
880
|
background: var(--dt-bg-secondary);
|
|
461
881
|
box-shadow: var(--dt-shadow-sm);
|
|
882
|
+
position: relative;
|
|
883
|
+
min-width: 0;
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
/* Recommended column — accent border + glow */
|
|
887
|
+
.bk-comparison-column[data-recommended="true"] {
|
|
888
|
+
border-color: var(--dt-accent-fg);
|
|
889
|
+
box-shadow: var(--dt-shadow-md), 0 0 0 1px var(--dt-accent-fg);
|
|
462
890
|
}
|
|
463
891
|
|
|
892
|
+
/* ── "Recommended" badge / ribbon ──────────────────────────────────────── */
|
|
893
|
+
.bk-comparison-recommended-badge {
|
|
894
|
+
position: absolute;
|
|
895
|
+
top: 0;
|
|
896
|
+
left: 50%;
|
|
897
|
+
transform: translate(-50%, -50%);
|
|
898
|
+
background: var(--dt-accent-fg);
|
|
899
|
+
color: var(--dt-accent-foreground);
|
|
900
|
+
font-size: var(--dt-font-size-xs);
|
|
901
|
+
font-weight: 700;
|
|
902
|
+
text-transform: uppercase;
|
|
903
|
+
letter-spacing: 0.05em;
|
|
904
|
+
padding: var(--dt-space-1) var(--dt-space-3);
|
|
905
|
+
border-radius: var(--dt-radius-pill);
|
|
906
|
+
white-space: nowrap;
|
|
907
|
+
line-height: 1.4;
|
|
908
|
+
z-index: 1;
|
|
909
|
+
}
|
|
910
|
+
|
|
911
|
+
/* ── Column title ───────────────────────────────────────────────────────── */
|
|
464
912
|
.bk-comparison-title {
|
|
465
913
|
color: var(--dt-text-primary);
|
|
466
914
|
font-size: var(--dt-font-size-lg);
|
|
@@ -470,19 +918,81 @@ ${ot}
|
|
|
470
918
|
border-bottom: 1px solid var(--dt-border-muted);
|
|
471
919
|
}
|
|
472
920
|
|
|
921
|
+
/* ── Item list ──────────────────────────────────────────────────────────── */
|
|
473
922
|
.bk-comparison-items {
|
|
474
923
|
display: grid;
|
|
475
924
|
gap: var(--dt-space-2);
|
|
476
925
|
margin: 0;
|
|
477
926
|
padding: 0;
|
|
478
|
-
|
|
927
|
+
list-style: none;
|
|
479
928
|
color: var(--dt-text-secondary);
|
|
480
929
|
font-size: var(--dt-font-size-sm);
|
|
481
930
|
line-height: 1.6;
|
|
482
931
|
}
|
|
483
932
|
|
|
484
933
|
.bk-comparison-items li {
|
|
485
|
-
padding
|
|
934
|
+
padding: var(--dt-space-1) var(--dt-space-2);
|
|
935
|
+
border-radius: var(--dt-radius-sm);
|
|
936
|
+
}
|
|
937
|
+
|
|
938
|
+
/* ── Diff indicators ────────────────────────────────────────────────────── */
|
|
939
|
+
/* Item present in this column but missing from at least one other */
|
|
940
|
+
.bk-comparison-item-diff-present {
|
|
941
|
+
background: var(--dt-success-subtle);
|
|
942
|
+
color: var(--dt-success-emphasis);
|
|
943
|
+
}
|
|
944
|
+
|
|
945
|
+
.bk-comparison-item-diff-present::before {
|
|
946
|
+
content: "\\2713\\00a0\\00a0";
|
|
947
|
+
font-weight: 700;
|
|
948
|
+
color: var(--dt-success-fg);
|
|
949
|
+
}
|
|
950
|
+
|
|
951
|
+
/* Item absent from this column but present in at least one other */
|
|
952
|
+
.bk-comparison-item-diff-absent {
|
|
953
|
+
background: var(--dt-danger-subtle);
|
|
954
|
+
color: var(--dt-text-tertiary);
|
|
955
|
+
}
|
|
956
|
+
|
|
957
|
+
.bk-comparison-item-diff-absent::before {
|
|
958
|
+
content: "\\2717\\00a0\\00a0";
|
|
959
|
+
font-weight: 700;
|
|
960
|
+
color: var(--dt-danger-fg);
|
|
961
|
+
}
|
|
962
|
+
|
|
963
|
+
/* ── Responsive: stack vertically on mobile ── */
|
|
964
|
+
@media (max-width: 640px) {
|
|
965
|
+
.bk-comparison {
|
|
966
|
+
grid-template-columns: 1fr;
|
|
967
|
+
}
|
|
968
|
+
.bk-comparison-column {
|
|
969
|
+
padding: var(--dt-space-4);
|
|
970
|
+
}
|
|
971
|
+
}
|
|
972
|
+
|
|
973
|
+
@media (max-width: 360px) {
|
|
974
|
+
.bk-comparison-column {
|
|
975
|
+
padding: var(--dt-space-3);
|
|
976
|
+
}
|
|
977
|
+
.bk-comparison-items {
|
|
978
|
+
font-size: 0.75rem;
|
|
979
|
+
}
|
|
980
|
+
.bk-comparison-title {
|
|
981
|
+
font-size: var(--dt-font-size-base);
|
|
982
|
+
}
|
|
983
|
+
}
|
|
984
|
+
|
|
985
|
+
@media (max-width: 320px) {
|
|
986
|
+
.bk-comparison {
|
|
987
|
+
gap: var(--dt-space-3);
|
|
988
|
+
}
|
|
989
|
+
.bk-comparison-column {
|
|
990
|
+
padding: var(--dt-space-3) var(--dt-space-2);
|
|
991
|
+
}
|
|
992
|
+
.bk-comparison-recommended-badge {
|
|
993
|
+
font-size: 0.625rem;
|
|
994
|
+
padding: 2px var(--dt-space-2);
|
|
995
|
+
}
|
|
486
996
|
}
|
|
487
997
|
`,"component-detail":`
|
|
488
998
|
.bk-component-detail {
|
|
@@ -1097,7 +1607,7 @@ ${ot}
|
|
|
1097
1607
|
font-size: var(--dt-font-size-sm);
|
|
1098
1608
|
line-height: 1.6;
|
|
1099
1609
|
}
|
|
1100
|
-
`,heading:
|
|
1610
|
+
`,heading:_t,kv:`
|
|
1101
1611
|
.bk-kv {
|
|
1102
1612
|
display: grid;
|
|
1103
1613
|
grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
|
|
@@ -1252,7 +1762,7 @@ ${ot}
|
|
|
1252
1762
|
box-shadow: 0 0 0 3px var(--dt-accent-subtle);
|
|
1253
1763
|
transform: translateY(-50%);
|
|
1254
1764
|
}
|
|
1255
|
-
`,markdown:
|
|
1765
|
+
`,markdown:jt,mermaid:`
|
|
1256
1766
|
.bk-mermaid {
|
|
1257
1767
|
margin: 0;
|
|
1258
1768
|
padding: var(--dt-space-4);
|
|
@@ -1281,6 +1791,19 @@ ${ot}
|
|
|
1281
1791
|
max-width: 100%;
|
|
1282
1792
|
height: auto;
|
|
1283
1793
|
}
|
|
1794
|
+
|
|
1795
|
+
@media (max-width: 480px) {
|
|
1796
|
+
.bk-mermaid {
|
|
1797
|
+
padding: var(--dt-space-3);
|
|
1798
|
+
}
|
|
1799
|
+
}
|
|
1800
|
+
|
|
1801
|
+
@media (max-width: 320px) {
|
|
1802
|
+
.bk-mermaid {
|
|
1803
|
+
padding: var(--dt-space-2);
|
|
1804
|
+
font-size: 0.75rem;
|
|
1805
|
+
}
|
|
1806
|
+
}
|
|
1284
1807
|
`,metrics:`
|
|
1285
1808
|
.bk-metrics {
|
|
1286
1809
|
display: grid;
|
|
@@ -1297,6 +1820,8 @@ ${ot}
|
|
|
1297
1820
|
background: var(--dt-bg-secondary);
|
|
1298
1821
|
box-shadow: var(--dt-shadow-sm);
|
|
1299
1822
|
transition: transform var(--dt-transition-normal), box-shadow var(--dt-transition-normal), border-color var(--dt-transition-normal);
|
|
1823
|
+
animation: aikit-enter-fade 400ms cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
1824
|
+
animation-delay: calc(var(--i, 0) * 80ms);
|
|
1300
1825
|
}
|
|
1301
1826
|
|
|
1302
1827
|
.bk-metric:hover {
|
|
@@ -1324,6 +1849,28 @@ ${ot}
|
|
|
1324
1849
|
color: var(--dt-text-tertiary);
|
|
1325
1850
|
font-size: var(--dt-font-size-sm);
|
|
1326
1851
|
}
|
|
1852
|
+
|
|
1853
|
+
/* ── Compact metrics on mobile ── */
|
|
1854
|
+
@media (max-width: 480px) {
|
|
1855
|
+
.bk-metrics {
|
|
1856
|
+
gap: var(--dt-space-3);
|
|
1857
|
+
}
|
|
1858
|
+
.bk-metric {
|
|
1859
|
+
padding: var(--dt-space-4);
|
|
1860
|
+
}
|
|
1861
|
+
.bk-metric-value {
|
|
1862
|
+
font-size: var(--dt-font-size-2xl);
|
|
1863
|
+
}
|
|
1864
|
+
}
|
|
1865
|
+
|
|
1866
|
+
@media (max-width: 320px) {
|
|
1867
|
+
.bk-metric {
|
|
1868
|
+
padding: var(--dt-space-3);
|
|
1869
|
+
}
|
|
1870
|
+
.bk-metric-value {
|
|
1871
|
+
font-size: var(--dt-font-size-xl);
|
|
1872
|
+
}
|
|
1873
|
+
}
|
|
1327
1874
|
`,paragraph:`
|
|
1328
1875
|
.bk-paragraph {
|
|
1329
1876
|
margin: 0;
|
|
@@ -1332,6 +1879,15 @@ ${ot}
|
|
|
1332
1879
|
line-height: 1.7;
|
|
1333
1880
|
}
|
|
1334
1881
|
`,progress:`
|
|
1882
|
+
@keyframes glow-pulse {
|
|
1883
|
+
0%, 100% {
|
|
1884
|
+
box-shadow: inset 0 1px 0 rgba(255,255,255,0.15), 0 0 12px var(--bar-glow);
|
|
1885
|
+
}
|
|
1886
|
+
50% {
|
|
1887
|
+
box-shadow: inset 0 1px 0 rgba(255,255,255,0.15), 0 0 22px var(--bar-glow);
|
|
1888
|
+
}
|
|
1889
|
+
}
|
|
1890
|
+
|
|
1335
1891
|
.bk-progress {
|
|
1336
1892
|
display: grid;
|
|
1337
1893
|
gap: var(--dt-space-4);
|
|
@@ -1365,8 +1921,16 @@ ${ot}
|
|
|
1365
1921
|
min-width: 0;
|
|
1366
1922
|
border-radius: inherit;
|
|
1367
1923
|
background: var(--dt-accent-emphasis);
|
|
1368
|
-
box-shadow: inset 0 1px 0 rgba(255,
|
|
1369
|
-
|
|
1924
|
+
box-shadow: inset 0 1px 0 rgba(255,255,255,0.15), 0 0 12px var(--bar-glow, transparent);
|
|
1925
|
+
animation:
|
|
1926
|
+
aikit-progress-fill 800ms cubic-bezier(0.16,1,0.3,1) forwards,
|
|
1927
|
+
glow-pulse 2s ease-in-out infinite;
|
|
1928
|
+
animation-delay: calc(var(--i, 0) * 100ms), calc(var(--i, 0) * 100ms + 800ms);
|
|
1929
|
+
}
|
|
1930
|
+
|
|
1931
|
+
/* Cap at 10 items to avoid excessive delays */
|
|
1932
|
+
.bk-progress-item:nth-child(n+11) .bk-progress-bar {
|
|
1933
|
+
animation-delay: 0ms, 800ms;
|
|
1370
1934
|
}
|
|
1371
1935
|
`,prompt:`
|
|
1372
1936
|
.bk-prompt {
|
|
@@ -1447,12 +2011,22 @@ ${ot}
|
|
|
1447
2011
|
color: var(--dt-text-secondary);
|
|
1448
2012
|
}
|
|
1449
2013
|
`,table:`
|
|
2014
|
+
/* ── Scroll fade mask (indicates overflow) ── */
|
|
1450
2015
|
.bk-table-wrap {
|
|
1451
2016
|
overflow-x: auto;
|
|
1452
2017
|
border: 1px solid var(--dt-border-default);
|
|
1453
2018
|
border-radius: var(--dt-radius-lg);
|
|
1454
2019
|
background: var(--dt-bg-secondary);
|
|
1455
2020
|
box-shadow: var(--dt-shadow-sm);
|
|
2021
|
+
/* Fade at right edge when content overflows */
|
|
2022
|
+
mask-image: linear-gradient(to right, black 85%, transparent 98%);
|
|
2023
|
+
-webkit-mask-image: linear-gradient(to right, black 85%, transparent 98%);
|
|
2024
|
+
mask-mode: alpha;
|
|
2025
|
+
}
|
|
2026
|
+
|
|
2027
|
+
.bk-table-wrap:not([data-scrollable]) {
|
|
2028
|
+
mask-image: none;
|
|
2029
|
+
-webkit-mask-image: none;
|
|
1456
2030
|
}
|
|
1457
2031
|
|
|
1458
2032
|
.bk-table {
|
|
@@ -1484,8 +2058,30 @@ ${ot}
|
|
|
1484
2058
|
text-transform: uppercase;
|
|
1485
2059
|
font-size: var(--dt-font-size-xs);
|
|
1486
2060
|
color: var(--dt-text-secondary);
|
|
2061
|
+
user-select: none;
|
|
2062
|
+
}
|
|
2063
|
+
|
|
2064
|
+
/* ── Sort indicator span ── */
|
|
2065
|
+
.bk-table-sort-icon {
|
|
2066
|
+
display: inline-block;
|
|
2067
|
+
margin-left: var(--dt-space-1);
|
|
2068
|
+
font-size: 0.6rem;
|
|
2069
|
+
opacity: 0.3;
|
|
2070
|
+
vertical-align: middle;
|
|
2071
|
+
transition: opacity var(--dt-transition-fast);
|
|
2072
|
+
}
|
|
2073
|
+
|
|
2074
|
+
th:hover .bk-table-sort-icon {
|
|
2075
|
+
opacity: 0.8;
|
|
1487
2076
|
}
|
|
1488
2077
|
|
|
2078
|
+
th[aria-sort="ascending"] .bk-table-sort-icon,
|
|
2079
|
+
th[aria-sort="descending"] .bk-table-sort-icon {
|
|
2080
|
+
opacity: 1;
|
|
2081
|
+
color: var(--dt-accent-fg);
|
|
2082
|
+
}
|
|
2083
|
+
|
|
2084
|
+
/* ── Row hover + even-row styling ── */
|
|
1489
2085
|
.bk-table tbody tr {
|
|
1490
2086
|
transition: background var(--dt-transition-fast);
|
|
1491
2087
|
}
|
|
@@ -1505,6 +2101,71 @@ ${ot}
|
|
|
1505
2101
|
.bk-table tbody tr:last-child td {
|
|
1506
2102
|
border-bottom: none;
|
|
1507
2103
|
}
|
|
2104
|
+
|
|
2105
|
+
/* ── Sticky first column (tablet) ── */
|
|
2106
|
+
@media (max-width: 768px) {
|
|
2107
|
+
.bk-table th:first-child,
|
|
2108
|
+
.bk-table td:first-child {
|
|
2109
|
+
position: sticky;
|
|
2110
|
+
left: 0;
|
|
2111
|
+
z-index: 2;
|
|
2112
|
+
background: inherit;
|
|
2113
|
+
}
|
|
2114
|
+
.bk-table thead th:first-child {
|
|
2115
|
+
z-index: 3;
|
|
2116
|
+
background: var(--dt-bg-tertiary);
|
|
2117
|
+
}
|
|
2118
|
+
.bk-table tbody tr td:first-child {
|
|
2119
|
+
box-shadow: inset -6px 0 6px -6px rgba(0,0,0,0.1);
|
|
2120
|
+
}
|
|
2121
|
+
.bk-table-wrap[data-scrolled-past-first] tbody tr td:first-child {
|
|
2122
|
+
box-shadow: inset -8px 0 8px -8px rgba(0,0,0,0.15);
|
|
2123
|
+
}
|
|
2124
|
+
}
|
|
2125
|
+
|
|
2126
|
+
/* ── Compact table on mobile ── */
|
|
2127
|
+
@media (max-width: 480px) {
|
|
2128
|
+
.bk-table {
|
|
2129
|
+
font-size: var(--dt-font-size-xs);
|
|
2130
|
+
}
|
|
2131
|
+
.bk-table th,
|
|
2132
|
+
.bk-table td {
|
|
2133
|
+
padding: var(--dt-space-2) var(--dt-space-3);
|
|
2134
|
+
}
|
|
2135
|
+
}
|
|
2136
|
+
|
|
2137
|
+
/* ── Ultra-compact table on 320px ── */
|
|
2138
|
+
@media (max-width: 320px) {
|
|
2139
|
+
.bk-table thead th {
|
|
2140
|
+
white-space: normal;
|
|
2141
|
+
word-break: break-word;
|
|
2142
|
+
}
|
|
2143
|
+
.bk-table th,
|
|
2144
|
+
.bk-table td {
|
|
2145
|
+
padding: var(--dt-space-1) var(--dt-space-2);
|
|
2146
|
+
}
|
|
2147
|
+
.bk-table th {
|
|
2148
|
+
font-size: 0.625rem;
|
|
2149
|
+
}
|
|
2150
|
+
}
|
|
2151
|
+
|
|
2152
|
+
/* ── Empty state ── */
|
|
2153
|
+
.bk-table-empty {
|
|
2154
|
+
display: flex;
|
|
2155
|
+
flex-direction: column;
|
|
2156
|
+
align-items: center;
|
|
2157
|
+
justify-content: center;
|
|
2158
|
+
padding: var(--dt-space-10) var(--dt-space-4);
|
|
2159
|
+
color: var(--dt-text-tertiary);
|
|
2160
|
+
font-size: var(--dt-font-size-sm);
|
|
2161
|
+
font-style: italic;
|
|
2162
|
+
gap: var(--dt-space-2);
|
|
2163
|
+
}
|
|
2164
|
+
|
|
2165
|
+
.bk-table-empty-icon {
|
|
2166
|
+
font-size: 1.5rem;
|
|
2167
|
+
opacity: 0.5;
|
|
2168
|
+
}
|
|
1508
2169
|
`,tags:`
|
|
1509
2170
|
.bk-tags {
|
|
1510
2171
|
display: flex;
|
|
@@ -1579,6 +2240,26 @@ ${ot}
|
|
|
1579
2240
|
font-size: var(--dt-font-size-xs);
|
|
1580
2241
|
line-height: 1.5;
|
|
1581
2242
|
}
|
|
2243
|
+
|
|
2244
|
+
/* ── Compact timeline on mobile ── */
|
|
2245
|
+
@media (max-width: 480px) {
|
|
2246
|
+
.bk-timeline-item {
|
|
2247
|
+
padding-left: calc(var(--dt-space-5) + var(--dt-space-1));
|
|
2248
|
+
}
|
|
2249
|
+
}
|
|
2250
|
+
|
|
2251
|
+
@media (max-width: 320px) {
|
|
2252
|
+
.bk-timeline {
|
|
2253
|
+
gap: var(--dt-space-3);
|
|
2254
|
+
}
|
|
2255
|
+
.bk-timeline-item {
|
|
2256
|
+
padding-left: var(--dt-space-5);
|
|
2257
|
+
}
|
|
2258
|
+
.bk-timeline-dot {
|
|
2259
|
+
width: 0.5rem;
|
|
2260
|
+
height: 0.5rem;
|
|
2261
|
+
}
|
|
2262
|
+
}
|
|
1582
2263
|
`,tree:`
|
|
1583
2264
|
.bk-tree {
|
|
1584
2265
|
display: grid;
|
|
@@ -1611,7 +2292,55 @@ ${ot}
|
|
|
1611
2292
|
.bk-tree-key {
|
|
1612
2293
|
color: var(--dt-text-primary);
|
|
1613
2294
|
}
|
|
1614
|
-
`},
|
|
2295
|
+
`},an=`
|
|
2296
|
+
|
|
2297
|
+
/* ── Entrance: fade-in + slide-up for cards, metrics, checklist, findings ── */
|
|
2298
|
+
@keyframes aikit-enter-fade {
|
|
2299
|
+
from { opacity: 0; transform: translateY(8px); }
|
|
2300
|
+
to { opacity: 1; transform: translateY(0); }
|
|
2301
|
+
}
|
|
2302
|
+
|
|
2303
|
+
/* ── Progress bar: 0% → target width fill ── */
|
|
2304
|
+
@keyframes aikit-progress-fill {
|
|
2305
|
+
from { width: 0%; }
|
|
2306
|
+
}
|
|
2307
|
+
|
|
2308
|
+
/* ── Checklist/completed state: scale bounce ── */
|
|
2309
|
+
@keyframes aikit-check-bounce {
|
|
2310
|
+
0% { transform: scale(0); }
|
|
2311
|
+
50% { transform: scale(1.2); }
|
|
2312
|
+
100% { transform: scale(1); }
|
|
2313
|
+
}
|
|
2314
|
+
|
|
2315
|
+
/* ── Chart: stroke draw for line/area/sparkline ── */
|
|
2316
|
+
@keyframes aikit-chart-draw {
|
|
2317
|
+
to { stroke-dashoffset: 0; }
|
|
2318
|
+
}
|
|
2319
|
+
|
|
2320
|
+
/* ── Chart: bar grow from baseline ── */
|
|
2321
|
+
@keyframes aikit-chart-grow {
|
|
2322
|
+
from { transform: scaleY(0); }
|
|
2323
|
+
to { transform: scaleY(1); }
|
|
2324
|
+
}
|
|
2325
|
+
|
|
2326
|
+
/* ── Chart: area reveal from bottom ── */
|
|
2327
|
+
@keyframes aikit-chart-reveal {
|
|
2328
|
+
from { clip-path: inset(100% 0 0 0); }
|
|
2329
|
+
to { clip-path: inset(0 0 0 0); }
|
|
2330
|
+
}
|
|
2331
|
+
|
|
2332
|
+
/* ── Chart: pie/donut fade-in + rotation ── */
|
|
2333
|
+
@keyframes aikit-pie-enter {
|
|
2334
|
+
from { opacity: 0; transform: rotate(-20deg); }
|
|
2335
|
+
to { opacity: 1; transform: rotate(0deg); }
|
|
2336
|
+
}
|
|
2337
|
+
|
|
2338
|
+
/* ── Loading shimmer for skeleton states ── */
|
|
2339
|
+
@keyframes aikit-shimmer {
|
|
2340
|
+
0% { background-position: -200px 0; }
|
|
2341
|
+
100% { background-position: calc(200px + 100%) 0; }
|
|
2342
|
+
}
|
|
2343
|
+
|
|
1615
2344
|
.bk-section {
|
|
1616
2345
|
display: grid;
|
|
1617
2346
|
gap: var(--dt-space-3);
|
|
@@ -1629,6 +2358,27 @@ ${ot}
|
|
|
1629
2358
|
line-height: 1.3;
|
|
1630
2359
|
}
|
|
1631
2360
|
|
|
2361
|
+
/* ── Responsive section titles ── */
|
|
2362
|
+
@media (max-width: 480px) {
|
|
2363
|
+
.bk-section-title {
|
|
2364
|
+
font-size: var(--dt-font-size-lg);
|
|
2365
|
+
}
|
|
2366
|
+
.bk-section {
|
|
2367
|
+
gap: var(--dt-space-2);
|
|
2368
|
+
margin: 0 0 var(--dt-space-4);
|
|
2369
|
+
}
|
|
2370
|
+
}
|
|
2371
|
+
|
|
2372
|
+
@media (max-width: 320px) {
|
|
2373
|
+
.bk-section-title {
|
|
2374
|
+
font-size: var(--dt-font-size-base);
|
|
2375
|
+
}
|
|
2376
|
+
.bk-section {
|
|
2377
|
+
gap: var(--dt-space-1);
|
|
2378
|
+
margin: 0 0 var(--dt-space-3);
|
|
2379
|
+
}
|
|
2380
|
+
}
|
|
2381
|
+
|
|
1632
2382
|
.bk-text,
|
|
1633
2383
|
.bk-markdown,
|
|
1634
2384
|
.bk-paragraph,
|
|
@@ -1735,28 +2485,62 @@ blockquote {
|
|
|
1735
2485
|
border-radius: 0 var(--dt-radius-sm) var(--dt-radius-sm) 0;
|
|
1736
2486
|
color: var(--dt-text-secondary);
|
|
1737
2487
|
}
|
|
1738
|
-
`;function
|
|
1739
|
-
|
|
2488
|
+
`;function B(e){let t=[an,`
|
|
2489
|
+
@media print {
|
|
2490
|
+
.aikit-header,.aikit-footer,.aikit-toolbox,.aikit-toolbox-toggle,.aikit-toolbox-menu,
|
|
2491
|
+
.aikit-theme-toggle,.aikit-copy-status,.aikit-glow-primary,.aikit-glow-secondary {
|
|
2492
|
+
display: none !important;
|
|
2493
|
+
}
|
|
2494
|
+
html,body { background: #fff !important; color: #000 !important; }
|
|
2495
|
+
main,.bk-section,.bk-section-title,.bk-text,.bk-markdown,.bk-paragraph,.bk-fallback,
|
|
2496
|
+
.bk-prompt,.bk-heading,.bk-kv,.bk-list,.bk-table-wrap,.bk-table,.bk-data-table-schema,
|
|
2497
|
+
.bk-docs-browser,.bk-docs-hub,.bk-actions,.bk-comparison,.bk-component-detail,
|
|
2498
|
+
.bk-status-board,.bk-progress,.bk-lifecycle-flow,.bk-timeline,.bk-tree,.bk-flame,
|
|
2499
|
+
.bk-tags,.bk-cards,.bk-metrics,.bk-chart,.bk-code,.bk-mermaid,.bk-graph,.bk-checklist,
|
|
2500
|
+
.bk-finding,.aikit-glass,.aikit-glass-solid {
|
|
2501
|
+
background: #fff !important; color: #000 !important; border-color: #ccc !important;
|
|
2502
|
+
}
|
|
2503
|
+
.bk-table thead th { background: #f5f5f5 !important; color: #000 !important; border-bottom: 2px solid #ccc !important; }
|
|
2504
|
+
.bk-table td { border-bottom: 1px solid #ddd !important; }
|
|
2505
|
+
.bk-code { page-break-inside: avoid; break-inside: avoid; }
|
|
2506
|
+
.bk-code code { white-space: pre-wrap !important; word-break: break-all !important; }
|
|
2507
|
+
table { page-break-inside: auto; }
|
|
2508
|
+
thead { display: table-header-group; }
|
|
2509
|
+
tbody tr { page-break-inside: avoid; }
|
|
2510
|
+
.bk-mermaid { overflow: visible !important; page-break-inside: avoid; }
|
|
2511
|
+
.bk-mermaid svg { max-width: 100% !important; height: auto !important; overflow: visible !important; }
|
|
2512
|
+
*,*::before,*::after { box-shadow: none !important; text-shadow: none !important; animation: none !important; animation-duration: 0s !important; transition: none !important; }
|
|
2513
|
+
a { color: #000 !important; text-decoration: underline; }
|
|
2514
|
+
blockquote { border-left-color: #000 !important; background: #fafafa !important; }
|
|
2515
|
+
hr { border: none !important; border-top: 1px solid #ccc !important; background: none !important; }
|
|
2516
|
+
a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 0.8em; font-weight: normal; color: #555 !important; text-decoration: none; }
|
|
2517
|
+
a[href^="#"]::after, a[href^="javascript:"]::after { content: none !important; }
|
|
2518
|
+
html, body { page-break-before: auto; page-break-after: auto; }
|
|
2519
|
+
.bk-text,.bk-markdown,.bk-paragraph,.bk-finding { widows: 3; orphans: 3; }
|
|
2520
|
+
::selection { background: #ccc !important; color: #000 !important; }
|
|
2521
|
+
}
|
|
2522
|
+
`],n=new Set;for(let r of e)!n.has(r)&&z[r]&&(n.add(r),t.push(z[r]));return t.join(`
|
|
2523
|
+
`)}const on=`
|
|
1740
2524
|
.aikit-glass{border:1px solid var(--dt-glass-border);border-radius:var(--dt-radius-xl);background:var(--dt-glass-bg);backdrop-filter:blur(var(--dt-glass-blur,16px));-webkit-backdrop-filter:blur(var(--dt-glass-blur,16px));box-shadow:var(--dt-glass-shadow);transition:border-color var(--dt-transition-normal),box-shadow var(--dt-transition-normal)}.aikit-glass:hover{border-color:var(--dt-glass-hover-border);box-shadow:var(--dt-shadow-lg)}
|
|
1741
2525
|
.aikit-glass-solid{border:1px solid var(--dt-border-default);border-radius:var(--dt-radius-xl);background:var(--dt-bg-secondary)}
|
|
1742
2526
|
.aikit-glass-btn{display:inline-flex;align-items:center;min-height:2.25rem;padding:0 var(--dt-space-4);border:1px solid var(--dt-glass-border);border-radius:var(--dt-radius-md);background:var(--dt-glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--dt-text-primary);font:inherit;font-size:var(--dt-font-size-base);cursor:pointer;transition:background var(--dt-transition-fast),border-color var(--dt-transition-fast)}.aikit-glass-btn:hover{background:var(--dt-bg-secondary);border-color:var(--dt-accent-muted)}
|
|
1743
2527
|
.aikit-glass-primary{background:var(--dt-accent-emphasis);border-color:var(--dt-accent-emphasis);color:#fff}.aikit-glass-primary:hover{filter:brightness(1.1)}
|
|
1744
2528
|
.aikit-badge{display:inline-flex;align-items:center;padding:2px var(--dt-space-2);border-radius:var(--dt-radius-pill);font-family:var(--dt-font-mono);font-size:var(--dt-font-size-xs);letter-spacing:0.02em;text-transform:uppercase;font-weight:600;white-space:nowrap;border:1px solid}
|
|
1745
|
-
.aikit-chip{display:inline-flex;align-items:center;gap:0.25rem;padding:0.14rem 0.42rem;border-radius:var(--dt-radius-pill);border:1px solid var(--dt-glass-border);background:var(--dt-glass-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--dt-text-tertiary);font-family:var(--dt-font-mono);font-size:0.62rem;white-space:nowrap}`;function
|
|
1746
|
-
`)}function
|
|
2529
|
+
.aikit-chip{display:inline-flex;align-items:center;gap:0.25rem;padding:0.14rem 0.42rem;border-radius:var(--dt-radius-pill);border:1px solid var(--dt-glass-border);background:var(--dt-glass-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--dt-text-tertiary);font-family:var(--dt-font-mono);font-size:0.62rem;white-space:nowrap}`;function sn(){return B(Object.keys(z))}function cn(e){return Object.entries(e).map(([e,t])=>` ${e}: ${t};`).join(`
|
|
2530
|
+
`)}function ln(e,t){let n=` `.repeat(t);return e.split(`
|
|
1747
2531
|
`).map(e=>`${n}${e}`).join(`
|
|
1748
|
-
`)}function
|
|
2532
|
+
`)}function un(e){return e===`dark`?{...L,...R}:{...L}}function dn(){return cn(R)}function fn(e=`auto`){let t=`:root {\n${cn(un(e===`dark`?`dark`:`light`))}\n}`;return e===`light`?`${t}\n\nhtml {\n color-scheme: light;\n}`:e===`dark`?`${t}\n\nhtml {\n color-scheme: dark;\n}`:[t,`html {
|
|
1749
2533
|
color-scheme: light;
|
|
1750
|
-
}`,[`@media (prefers-color-scheme: dark) {`,` :root {`,
|
|
2534
|
+
}`,[`@media (prefers-color-scheme: dark) {`,` :root {`,ln(dn(),4),` }`,``,` html {`,` color-scheme: dark;`,` }`,`}`].join(`
|
|
1751
2535
|
`)].join(`
|
|
1752
2536
|
|
|
1753
|
-
`)}const
|
|
1754
|
-
`)}function
|
|
1755
|
-
`)}function
|
|
2537
|
+
`)}const V={header:`aikit-header`,brand:`aikit-header-brand`,title:`aikit-header-title`,titleText:`aikit-header-title-text`,subtitle:`aikit-header-subtitle`,actions:`aikit-header-actions`,themeToggle:`aikit-theme-toggle`,themeToggleIcon:`aikit-theme-toggle-icon`,themeToggleIconSun:`aikit-theme-toggle-icon--sun`,themeToggleIconMoon:`aikit-theme-toggle-icon--moon`,toolbox:`aikit-toolbox`,toolboxToggle:`aikit-toolbox-toggle`,toolboxMenu:`aikit-toolbox-menu`,toolboxItem:`aikit-toolbox-item`,footer:`aikit-footer`,footerMeta:`aikit-footer-meta`,footerText:`aikit-footer-text`,footerBrand:`aikit-footer-brand`,footerTimestamp:`aikit-footer-timestamp`,footerSlot:`aikit-footer-slot`,footerBadge:`aikit-footer-badge`},pn=[{kind:`shared-chrome-action`,id:`copy-image`,label:`Copy as Image`,icon:`<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"/><circle cx="12" cy="13" r="4"/></svg>`,onclick:`screenshotPage()`},{kind:`shared-chrome-action`,id:`download-image`,label:`Download as PNG`,icon:`<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg>`,onclick:`downloadPng()`}];function mn(e){return[` <button type="button" class="${V.toolboxItem}" role="menuitem" data-shared-chrome-action="${n(e.id)}" aria-label="${n(e.label)}">`,` <span aria-hidden="true">${e.icon}</span>`,` <span>${n(e.label)}</span>`,` </button>`].join(`
|
|
2538
|
+
`)}function hn(e,t=[],n=!0){if(!n)return``;let r=t.filter(e=>e.kind===`shared-chrome-action`);return r.length===0?``:[` <div class="${V.toolbox}">`,` <button type="button" class="${V.toolboxToggle}" aria-label="Open tools menu" aria-haspopup="menu" aria-expanded="false" aria-controls="aikit-toolbox-menu">`,` <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"/></svg>`,` </button>`,` <div id="aikit-toolbox-menu" class="${V.toolboxMenu}" role="menu" hidden>`,...r.map(e=>mn(e)),` </div>`,` </div>`].join(`
|
|
2539
|
+
`)}function gn(e){return e?.trim()?e.trim():``}function _n(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?{display:e}:{dateTime:t.toISOString(),display:new Intl.DateTimeFormat(void 0,{month:`long`,day:`numeric`,year:`numeric`,hour:`numeric`,minute:`2-digit`}).format(t)}}function vn(e){let t=e.brand??`AI KIT`,r=e.showToolbox??!0,i=e.sharedChromeActions??(r?pn:[]),a=[gn(e.actionsHtml),hn(e.transport,i,r),e.showThemeToggle===!1?``:[` <button type="button" class="${V.themeToggle}" aria-label="Switch to dark theme" aria-pressed="false">`,` <span class="${V.themeToggleIcon} ${V.themeToggleIconSun}" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span>`,` <span class="${V.themeToggleIcon} ${V.themeToggleIconMoon}" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></svg></span>`,` </button>`].join(`
|
|
1756
2540
|
`)].filter(Boolean).join(`
|
|
1757
|
-
`);return[` <header class="${
|
|
1758
|
-
`)}function
|
|
1759
|
-
`)}const
|
|
2541
|
+
`);return[` <header class="${V.header}">`,` <div class="${V.brand}">${n(t)}</div>`,` <div class="${V.title}">`,` <span class="${V.titleText}">${n(e.title)}</span>`,...e.subtitle?[` <span class="${V.subtitle}">${n(e.subtitle)}</span>`]:[],` </div>`,` <div class="${V.actions}">`,a,` </div>`,` </header>`].join(`
|
|
2542
|
+
`)}function yn(e={}){let t=_n(e.generatedAt),r=e.showInstallGuide??!1,i=e.installUrl??`https://vpxa.io/ai-kit`,a=t?[`Generated by `,`<span class="${V.footerBrand}">AI KIT</span>`,` at `,t.dateTime?`<time class="${V.footerTimestamp}" datetime="${n(t.dateTime)}">${n(t.display)}</time>`:`<span class="${V.footerTimestamp}">${n(t.display)}</span>`].join(``):`Generated by <span class="${V.footerBrand}">AI KIT</span>`,o=gn(e.contentHtml),s=r?`<span class="${V.footerSlot}"><a href="${n(i)}" target="_blank" rel="noopener" style="color:inherit;text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--aikit-border)">Get AI Kit →</a></span>`:``;return[` <footer class="${V.footer}">`,` <div class="${V.footerMeta}">`,` <span class="${V.footerText}">${a}</span>`,...o?[` <span class="${V.footerSlot}">${o}</span>`]:[],s,` </div>`,` </footer>`].join(`
|
|
2543
|
+
`)}const bn=`
|
|
1760
2544
|
.aikit-header,
|
|
1761
2545
|
.aikit-toolbox-menu,
|
|
1762
2546
|
.aikit-copy-status,
|
|
@@ -2132,13 +2916,13 @@ html[data-theme='dark'] .aikit-theme-toggle-icon--moon {
|
|
|
2132
2916
|
box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.2);
|
|
2133
2917
|
}
|
|
2134
2918
|
}
|
|
2135
|
-
`;function
|
|
2919
|
+
`;function xn(e){let t={COMMENT:[],DELETION:[],GLOBAL_COMMENT:[]};for(let n of e)t[n.type in t?n.type:`COMMENT`].push(n);return t}function Sn(e){let t=i(e.id),r=[];return e.author&&r.push(`<span class="bk-annotation-author">${n(e.author)}</span>`),e.createdAt&&r.push(`<time class="bk-annotation-time">${n(e.createdAt)}</time>`),`<li class="bk-annotation-item" data-block-id="${t}" data-annotation-type="${e.type}">
|
|
2136
2920
|
<p class="bk-annotation-body">${n(e.body)}</p>
|
|
2137
2921
|
${r.length>0?`<div class="bk-annotation-meta">${r.join(``)}</div>`:``}
|
|
2138
|
-
</li>`}function
|
|
2139
|
-
<h4 class="bk-annotation-group-title">${n(
|
|
2140
|
-
<ol class="bk-annotation-list">${t.map(
|
|
2141
|
-
</div>`).join(``)||`<p class="bk-text-secondary">No annotations</p>`}</div>`}function
|
|
2922
|
+
</li>`}function Cn(e){switch(e){case`COMMENT`:return`Comments`;case`DELETION`:return`Deletions`;case`GLOBAL_COMMENT`:return`General Notes`;default:return e}}function wn(e,t){let r=xn(Array.isArray(e.value)?e.value:[]);return`<div class="bk-annotations">${Object.entries(r).filter(([,e])=>e.length>0).map(([e,t])=>`<div class="bk-annotation-group">
|
|
2923
|
+
<h4 class="bk-annotation-group-title">${n(Cn(e))}</h4>
|
|
2924
|
+
<ol class="bk-annotation-list">${t.map(Sn).join(``)}</ol>
|
|
2925
|
+
</div>`).join(``)||`<p class="bk-text-secondary">No annotations</p>`}</div>`}function Tn(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.prompt==`string`&&Array.isArray(t.options)}function En(e,t){let r=e.blockId?i(e.blockId):void 0,a=Tn(e.value)?e.value:{prompt:``,options:[]},o=a.prompt?`<p class="bk-approval-prompt">${n(a.prompt)}</p>`:``,s=a.options.map(e=>`<label class="bk-approval-option" data-option-id="${i(e.id)}">
|
|
2142
2926
|
<input type="radio" name="approval" value="${i(e.id)}" role="radio" />
|
|
2143
2927
|
<span class="bk-approval-option-label">${n(e.label)}</span>
|
|
2144
2928
|
${e.description?`<span class="bk-approval-option-desc">${n(e.description)}</span>`:``}
|
|
@@ -2149,9 +2933,9 @@ ${e.description?`<span class="bk-approval-option-desc">${n(e.description)}</span
|
|
|
2149
2933
|
${o}
|
|
2150
2934
|
<fieldset class="bk-approval-options">${s}</fieldset>
|
|
2151
2935
|
${c}
|
|
2152
|
-
</div>`}const
|
|
2153
|
-
`)}function
|
|
2154
|
-
`);return[{type:`heading`,value:e.path},{type:`paragraph`,value:`${e.status} | +${e.additions} / -${e.deletions}`},{type:`code`,language:`diff`,value:t}]}const Fn={id:`diff-view@1`,label:`Diff View`,description:`Static diff summary rendered as per-file diff code blocks.`,inputSchema:{type:`object`,properties:{files:{type:`array`,items:{type:`object`,required:[`path`,`status`,`additions`,`deletions`,`hunks`],properties:{path:{type:`string`},status:{type:`string`},additions:{type:`number`},deletions:{type:`number`},hunks:{type:`array`,items:{type:`object`,required:[`header`,`changes`],properties:{header:{type:`string`},changes:{type:`array`,items:{type:`object`,required:[`type`,`content`],properties:{type:{type:`string`},content:{type:`string`}},additionalProperties:!1}}},additionalProperties:!1}}},additionalProperties:!1}}},required:[`files`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>Mn(e).flatMap(Pn),hydration:[],supportedTransports:kn},In=[`mcp-app`,`browser`,`export`];function H(e){return typeof e==`object`&&!!e}function Ln(e){return H(e)&&typeof e.type==`string`}function Rn(e){return Array.isArray(e)&&e.every(Ln)}function zn(e){if(!H(e))return{sections:[]};let t=Array.isArray(e.sections)?e.sections.flatMap(e=>{if(!H(e)||typeof e.heading!=`string`)return[];let t=typeof e.content==`string`||Rn(e.content)?e.content:``;return[{heading:e.heading,content:t}]}):[];return{title:typeof e.title==`string`?e.title:void 0,sections:t}}function Bn(e){let t=[{type:`heading`,value:e.heading}];return typeof e.content==`string`?(t.push({type:`paragraph`,value:e.content}),t):(t.push(...e.content),t)}const Vn={id:`document@1`,label:`Document`,description:`Structured document with optional title and section content blocks.`,inputSchema:{type:`object`,properties:{title:{type:`string`},sections:{type:`array`,items:{type:`object`,additionalProperties:!1,required:[`heading`,`content`],properties:{heading:{type:`string`},content:{oneOf:[{type:`string`},{type:`array`,items:{type:`object`}}]}}}}},required:[`sections`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t=zn(e),n=[];t.title&&n.push({type:`heading`,value:t.title});for(let e of t.sections)n.push(...Bn(e));return n},hydration:[],supportedTransports:In},Hn=[`mcp-app`,`browser`,`export`];function Un(e){return typeof e==`object`&&!!e}function Wn(e){return Un(e)?{code:typeof e.code==`string`?e.code:`ERROR`,message:typeof e.message==`string`?e.message:`Unknown error`,details:typeof e.details==`string`?e.details:void 0,stack:typeof e.stack==`string`?e.stack:void 0}:{code:`ERROR`,message:`Unknown error`}}const U={id:`error@1`,label:`Error`,description:`Static error view with message and optional stack trace.`,inputSchema:{type:`object`,properties:{code:{type:`string`},message:{type:`string`},details:{type:`string`},stack:{type:`string`}},required:[`code`,`message`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t=Wn(e),n=[{type:`heading`,value:`Error`},{type:`code`,title:t.code,language:`text`,value:t.details?`${t.message}\n\n${t.details}`:t.message}];return t.stack&&n.push({type:`code`,title:`Stack Trace`,language:`text`,value:t.stack}),n},hydration:[],supportedTransports:Hn};function W(e){return typeof e==`object`&&!!e}function Gn(e){return Array.isArray(e)?e.flatMap(e=>!W(e)||typeof e.name!=`string`||typeof e.label!=`string`?[]:[{name:e.name,label:e.label,type:typeof e.type==`string`?e.type:void 0,required:typeof e.required==`boolean`?e.required:void 0,placeholder:typeof e.placeholder==`string`?e.placeholder:void 0,default:typeof e.default==`string`?e.default:void 0,options:Array.isArray(e.options)?e.options.filter(e=>typeof e==`string`||W(e)&&typeof e.label==`string`&&typeof e.value==`string`):void 0,value:typeof e.value==`string`||typeof e.value==`boolean`?e.value:void 0}]):[]}const Kn={id:`form@1`,label:`Form`,description:`Browser-only form template rendered as a heading and table of field metadata.`,inputSchema:{type:`object`,properties:{title:{type:`string`},fields:{type:`array`,items:{type:`object`,required:[`name`,`label`],properties:{name:{type:`string`},label:{type:`string`},type:{type:`string`},required:{type:`boolean`},placeholder:{type:`string`},default:{type:`string`},options:{type:`array`,items:{anyOf:[{type:`string`},{type:`object`,required:[`label`,`value`],properties:{label:{type:`string`},value:{type:`string`}},additionalProperties:!1}]}},value:{type:[`string`,`boolean`]}},additionalProperties:!1}}},required:[`fields`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t={title:W(e)&&typeof e.title==`string`?e.title:`Form`,fields:W(e)?Gn(e.fields):[]};return[{type:`heading`,value:t.title},{type:`table`,value:{headers:[`Label`,`Name`,`Type`,`Required`,`Default/Placeholder`],rows:t.fields.map(e=>[e.label||e.name,e.name,e.type||`text`,e.required?`Yes`:`No`,e.placeholder||e.default||``])}}]},hydration:[`form`],supportedTransports:[`browser`]},qn=[`mcp-app`,`browser`];function G(e){return typeof e==`object`&&!!e}function Jn(e){if(!Array.isArray(e))return;let t=e.flatMap(e=>!G(e)||typeof e.id!=`string`||typeof e.label!=`string`?[]:[{id:e.id,label:e.label}]);return t.length>0?t:void 0}function Yn(e){return Array.isArray(e)?e.flatMap(e=>!G(e)||typeof e.id!=`string`||typeof e.label!=`string`?[]:[{id:e.id,label:e.label,category:typeof e.category==`string`?e.category:void 0,tags:Array.isArray(e.tags)?e.tags.filter(e=>typeof e==`string`):void 0}]):[]}function Xn(e){return G(e)?{categories:Jn(e.categories),items:Yn(e.items)}:{items:[]}}function Zn(e){return{title:e.label,body:e.id,description:e.tags&&e.tags.length>0?e.tags.join(`, `):void 0}}function Qn(e,t){return t.length===0?[]:[{type:`heading`,value:e},{type:`cards`,value:t.map(Zn)}]}const $n={id:`picker@1`,label:`Picker`,description:`Grouped item picker rendered as cards with picker hydration metadata.`,inputSchema:{type:`object`,properties:{categories:{type:`array`,items:{type:`object`,required:[`id`,`label`],properties:{id:{type:`string`},label:{type:`string`}},additionalProperties:!1}},items:{type:`array`,items:{type:`object`,required:[`id`,`label`],properties:{id:{type:`string`},label:{type:`string`},category:{type:`string`},tags:{type:`array`,items:{type:`string`}}},additionalProperties:!1}}},required:[`items`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t=Xn(e),n=[];if(t.categories&&t.categories.length>0){let e=new Set(t.categories.map(e=>e.id)),r=[];for(let e of t.categories){let n=Qn(e.label,t.items.filter(t=>t.category===e.id));n.length>0&&r.push(n)}let i=Qn(`Other`,t.items.filter(t=>!t.category||!e.has(t.category)));return i.length>0&&r.push(i),n.push(...r.flatMap((e,t)=>t>0?[{type:`separator`},...e]:e)),n}return t.items.length>0&&n.push({type:`cards`,value:t.items.map(Zn)}),n},hydration:[`picker`],supportedTransports:qn},er=[`mcp-app`,`browser`,`export`];function K(e){return typeof e==`object`&&!!e}function tr(e){return K(e)&&typeof e.type==`string`}function nr(e){return Array.isArray(e)&&e.every(tr)}function rr(e){return K(e)&&typeof e.label==`string`&&(typeof e.value==`string`||typeof e.value==`number`)}function ir(e){return Array.isArray(e)?e.flatMap(e=>{if(!K(e)||typeof e.heading!=`string`)return[];let t=typeof e.content==`string`||nr(e.content)?e.content:``;return[{heading:e.heading,content:t}]}):[]}function ar(e){return Array.isArray(e)?e.flatMap(e=>K(e)?[{title:typeof e.title==`string`?e.title:void 0,value:e.value,headers:Array.isArray(e.headers)?e.headers.filter(e=>typeof e==`string`):void 0,rows:Array.isArray(e.rows)?e.rows.filter(e=>Array.isArray(e)):void 0}]:[]):[]}function or(e){let t=[{type:`heading`,value:e.heading}];return typeof e.content==`string`?(t.push({type:`paragraph`,value:e.content}),t):(t.push(...e.content),t)}function sr(e){let t={type:`table`};return e.title&&(t.title=e.title),e.value!==void 0&&(t.value=e.value),e.headers&&(t.headers=e.headers),e.rows&&(t.rows=e.rows),t}const cr={id:`report@1`,label:`Report`,description:`Static report with title, optional metrics, narrative sections, and tables.`,inputSchema:{type:`object`,properties:{title:{type:`string`},metrics:{type:`array`,items:{type:`object`,required:[`label`,`value`],properties:{label:{type:`string`},value:{type:[`string`,`number`]},trend:{type:[`string`,`number`]},status:{type:`string`}},additionalProperties:!1}},sections:{type:`array`,items:{type:`object`,required:[`heading`,`content`],properties:{heading:{type:`string`},content:{oneOf:[{type:`string`},{type:`array`,items:{type:`object`}}]}},additionalProperties:!1}},tables:{type:`array`,items:{type:`object`,properties:{title:{type:`string`},value:{},headers:{type:`array`,items:{type:`string`}},rows:{type:`array`,items:{type:`array`,items:{}}}},additionalProperties:!1}}},required:[`title`,`sections`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t={title:K(e)&&typeof e.title==`string`?e.title:`Report`,metrics:K(e)&&Array.isArray(e.metrics)?e.metrics.filter(rr):void 0,sections:K(e)?ir(e.sections):[],tables:K(e)?ar(e.tables):void 0},n=[{type:`heading`,value:t.title}];t.metrics&&t.metrics.length>0&&n.push({type:`metrics`,value:t.metrics});for(let e of t.sections)n.push(...or(e));for(let e of t.tables??[])n.push(sr(e));return n},hydration:[],supportedTransports:er},lr=[`mcp-app`,`browser`];function q(e){return typeof e==`object`&&!!e}function ur(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}function dr(e){return Array.isArray(e)?e.flatMap(e=>{if(!q(e)||typeof e.id!=`string`||typeof e.body!=`string`)return[];let t=e.type;if(t!==`COMMENT`&&t!==`DELETION`&&t!==`GLOBAL_COMMENT`)return[];let n=q(e.anchor)?e.anchor:{};return[{id:e.id,type:t,body:e.body,anchor:{blockId:n.blockId},author:typeof e.author==`string`?e.author:void 0,createdAt:typeof e.createdAt==`string`?e.createdAt:void 0}]}):[]}function fr(e){return Array.isArray(e)?e.flatMap(e=>{if(!q(e)||typeof e.id!=`string`||typeof e.label!=`string`)return[];let t=e.outcome;return t!==`approved`&&t!==`rejected`&&t!==`changes-requested`&&t!==`deferred`?[]:[{id:e.id,label:e.label,outcome:t,description:typeof e.description==`string`?e.description:void 0}]}):[]}const pr={id:`review@1`,label:`Review`,description:`Review surface with criteria checklist, annotation items, and approval controls.`,inputSchema:{type:`object`,properties:{title:{type:`string`},criteria:{type:`array`,items:{type:`string`}},annotations:{type:`array`,items:{type:`object`,required:[`id`,`body`,`type`,`anchor`],properties:{id:{type:`string`},type:{type:`string`,enum:[`COMMENT`,`DELETION`,`GLOBAL_COMMENT`]},body:{type:`string`},anchor:{type:`object`,properties:{blockId:{type:`string`},contextHash:{type:`string`}}},author:{type:`string`},createdAt:{type:`string`}},additionalProperties:!1}},approval:{type:`object`,properties:{prompt:{type:`string`},options:{type:`array`,items:{type:`object`,required:[`id`,`label`,`outcome`],properties:{id:{type:`string`},label:{type:`string`},outcome:{type:`string`,enum:[`approved`,`rejected`,`changes-requested`,`deferred`]},description:{type:`string`}},additionalProperties:!1}},requireComment:{type:`boolean`}},required:[`prompt`,`options`]},comment:{type:`string`}},required:[`title`,`criteria`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t=[];if(!q(e))return t;let n=typeof e.title==`string`?e.title:`Review`;t.push({type:`heading`,value:n});let r=ur(e.criteria);r.length>0&&t.push({type:`checklist`,value:r.map(e=>({label:e,checked:!1}))});let i=dr(e.annotations);i.length>0&&t.push({type:`annotation`,value:i});let a=e.approval;if(q(a)){let e=fr(a.options);e.length>0&&t.push({type:`approval`,value:{prompt:typeof a.prompt==`string`?a.prompt:``,options:e,requireComment:typeof a.requireComment==`boolean`?a.requireComment:!1}})}let o=typeof e.comment==`string`?e.comment:void 0;return o&&t.push({type:`markdown`,value:o}),t},hydration:[`checklist`],supportedTransports:lr},mr=[`mcp-app`,`browser`,`export`];function J(e){return typeof e==`object`&&!!e}function hr(e){return Array.isArray(e)?e.flatMap(e=>{if(!J(e)||typeof e.category!=`string`||!Array.isArray(e.items))return[];let t=e.items.flatMap(e=>!J(e)||typeof e.label!=`string`||typeof e.status!=`string`?[]:[{label:e.label,status:e.status,badge:typeof e.badge==`string`?e.badge:void 0}]);return[{category:e.category,items:t}]}):[]}function gr(e){return e.map(e=>({title:e.label,status:e.status,badge:e.badge}))}const _r={id:`status-board@1`,label:`Status Board`,description:`Static status board grouped into category headings and card collections.`,inputSchema:{type:`object`,properties:{categories:{type:`array`,items:{type:`object`,required:[`category`,`items`],properties:{category:{type:`string`},items:{type:`array`,items:{type:`object`,required:[`label`,`status`],properties:{label:{type:`string`},status:{type:`string`},badge:{type:`string`}},additionalProperties:!1}}},additionalProperties:!1}}},required:[`categories`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t=J(e)?hr(e.categories):[],n=[];for(let e of t)n.push({type:`heading`,value:e.category}),n.push({type:`cards`,value:gr(e.items)});return n},hydration:[],supportedTransports:mr},vr=[`mcp-app`,`browser`,`export`];function yr(e){return typeof e==`object`&&!!e}function br(e){return Array.isArray(e)?e.flatMap(e=>!yr(e)||typeof e.title!=`string`?[]:[{title:e.title,description:typeof e.description==`string`?e.description:void 0,timestamp:typeof e.timestamp==`string`?e.timestamp:void 0,status:typeof e.status==`string`?e.status:void 0}]):[]}function xr(e){return Array.isArray(e)?{entries:br(e)}:yr(e)?{entries:br(e.entries??e.events??e.items),title:typeof e.title==`string`?e.title:void 0}:{entries:[]}}const Y={type:`array`,items:{type:`object`,required:[`title`],properties:{title:{type:`string`},description:{type:`string`},timestamp:{type:`string`},status:{type:`string`}},additionalProperties:!1}},Sr={id:`timeline@1`,label:`Timeline`,description:`Static timeline events rendered as a timeline block.`,inputSchema:{oneOf:[Y,{type:`object`,properties:{title:{type:`string`},entries:Y,events:Y,items:Y},anyOf:[{required:[`entries`]},{required:[`events`]},{required:[`items`]}],additionalProperties:!1}]},defaultLayout:{},blocksFromData:e=>{let{entries:t,title:n}=xr(e),r=[];return n&&r.push({type:`heading`,value:n}),r.push({type:`timeline`,value:t}),r},hydration:[],supportedTransports:vr},Cr=[`mcp-app`,`browser`,`export`];function X(e){return typeof e==`object`&&!!e}function wr(e){return X(e)&&typeof e.label==`string`}function Tr(e){return{name:e.label,children:Array.isArray(e.children)?e.children.filter(wr).map(Tr):[]}}function Er(e){if(!X(e))return{};let t=e.root;return wr(t)?Tr(t):X(t)?t:e}const Dr={id:`tree@1`,label:`Tree`,description:`Static tree view data with optional tree hydration metadata.`,inputSchema:{oneOf:[{type:`object`,properties:{root:{type:`object`}},required:[`root`],additionalProperties:!0},{type:`object`,additionalProperties:!0}]},defaultLayout:{},blocksFromData:e=>[{type:`tree`,value:Er(e)}],hydration:[`tree`],supportedTransports:Cr},Z=new yn;Z.register(pr),Z.register(Sn),Z.register(Fn),Z.register(Vn),Z.register($n),Z.register(cr),Z.register(Sr),Z.register(Dr),Z.register(On),Z.register(U),Z.register(Kn),Z.register(_r);let Q=0;function Or(){return Q=(Q+1)%(2**53-1),`${Date.now().toString(16).padStart(12,`0`).slice(-12)}${Q.toString(16).padStart(4,`0`).slice(-4)}${Array.from({length:8},()=>Math.floor(Math.random()*256).toString(16).padStart(2,`0`)).join(``)}`}function kr(e){return{id:e,version:1,entry:`@aikit/blocks-interactive/dist/islands/${e}.mjs`,selector:`[data-island="${e}"]`,needsData:!0}}function Ar(e,t){let n=new TextEncoder;return n.encode(e).byteLength+t.reduce((e,t)=>e+n.encode(t).byteLength,0)}function jr(e,t){let n=[],r=t.registry??Z,i={colorScheme:e.colorScheme??t.colorScheme??`auto`,transport:t.transport,lang:e.lang,dir:e.dir},a=[...e.blocks??[]],o=[...a],s=[],c=[...e.actions??[]];if(e.template){let t=r.get(e.template);if(t)try{o=t.blocksFromData(e.data,i),o.length===0&&e.data!==void 0&&(n.push({level:`warn`,message:`Template "${e.template}" produced no blocks from provided data`}),o=[{type:`markdown`,value:`> ⚠️ Template \`${e.template}\` received data but produced no content. Verify the data structure matches the template schema.`}]),t.actionsFromData&&(c=[...c,...t.actionsFromData(e.data)]),s=t.hydration.map(e=>kr(e))}catch(t){let r=t instanceof Error?t.message:String(t);n.push({level:`error`,message:`Template ${e.template} failed: ${r}`}),o=a.length===0?U.blocksFromData({code:`TEMPLATE_RENDER_ERROR`,message:`Failed to render template ${e.template}`,details:r},i):[...a]}else n.push({level:`warn`,message:`Template not found: ${e.template}`})}let l=_n(o,i),u=[I(o.map(e=>e.type))],d=t.nonce??Or(),f=e.metadata?.surfaceId??`surface-${d}`,p=s.length>0?JSON.stringify({data:e.data,blocks:o}):void 0,m=t.blockVendorScripts?[...new Set(o.flatMap(e=>t.blockVendorScripts?.[e.type]??[]))]:void 0;return{surfaceId:f,nonce:d,html:l,css:u,vendorScripts:m&&m.length>0?m:void 0,islands:s,actions:c,payload:p,estimatedBytes:Ar(l,u),exportPolicy:s.length>0?`local-interactive`:`static-only`,diagnostics:n.length>0?n:void 0}}function Mr(e){return e===`up`||e===`down`||e===`neutral`}function $(e){return typeof e==`object`&&!!e}function Nr(e){return!$(e)||!Array.isArray(e.metrics)?{metrics:[]}:{metrics:e.metrics.flatMap(e=>{if(!$(e)||typeof e.label!=`string`||typeof e.value!=`string`&&typeof e.value!=`number`)return[];let t=$(e.trend)&&typeof e.trend.value==`string`&&Mr(e.trend.direction)?{value:e.trend.value,direction:e.trend.direction}:void 0,n=Array.isArray(e.items)?e.items.flatMap(e=>!$(e)||typeof e.label!=`string`||typeof e.value!=`string`?[]:[{label:e.label,value:e.value}]):void 0;return[{id:typeof e.id==`string`?e.id:void 0,label:e.label,value:e.value,trend:t,status:e.status===`success`||e.status===`warning`||e.status===`error`||e.status===`info`?e.status:void 0,type:e.type===`progress`||e.type===`list`||e.type===`stat`?e.type:void 0,progress:typeof e.progress==`number`?Br(e.progress):void 0,items:n}]})}}function Pr(e){let t=e.type===`progress`&&typeof e.progress==`number`?`${e.progress}%`:void 0;return{label:e.label,value:e.value,trend:e.trend?.value??t,status:e.status}}function Fr(e){return e.type!==`progress`||typeof e.progress!=`number`?null:{label:e.label,value:Br(e.progress),max:100}}function Ir(e){return $(e)?{columns:Array.isArray(e.columns)?e.columns.flatMap(e=>!$(e)||typeof e.id!=`string`||typeof e.label!=`string`?[]:[{id:e.id,label:e.label}]):[],cards:Array.isArray(e.cards)?e.cards.flatMap(e=>!$(e)||typeof e.id!=`string`||typeof e.title!=`string`||typeof e.column!=`string`?[]:[{id:e.id,title:e.title,description:typeof e.description==`string`?e.description:void 0,column:e.column,tags:Array.isArray(e.tags)?e.tags.filter(e=>typeof e==`string`):void 0,priority:e.priority===`high`||e.priority===`medium`||e.priority===`low`?e.priority:void 0}]):[]}:{columns:[],cards:[]}}function Lr(e){return{title:e.title,description:e.description,badge:e.priority,body:e.tags?.join(`, `),status:e.priority}}function Rr(e){return!$(e)||!Array.isArray(e.items)?[]:e.items.flatMap(e=>!$(e)||typeof e.id!=`string`||typeof e.label!=`string`?[]:[{id:e.id,label:e.label}])}function zr(e){return $(e)?{name:typeof e.name==`string`?e.name:``,total:typeof e.total==`number`?e.total:typeof e.value==`number`?e.value:0,self:typeof e.self==`number`?e.self:void 0,children:Array.isArray(e.children)?e.children.map(e=>zr(e)):[]}:{name:``,total:0,children:[]}}function Br(e){return Math.max(0,Math.min(100,e))}function Vr(e){let t=Nr(e),n=[];t.metrics.length>0&&n.push({type:`metrics`,value:t.metrics.map(Pr)});let r=t.metrics.map(Fr).filter(e=>e!==null);r.length>0&&n.push({type:`progress`,value:r});for(let e of t.metrics)e.type===`list`&&e.items&&e.items.length>0&&(n.push({type:`heading`,value:e.label}),n.push({type:`table`,value:e.items}));return n}function Hr(e){let t=Ir(e),n=[];return t.columns.forEach((e,r)=>{r>0&&n.push({type:`separator`,value:``});let i=t.cards.filter(t=>t.column===e.id);n.push({type:`heading`,value:e.label}),n.push({type:`cards`,value:i.map(Lr)})}),n}function Ur(e){let t=Rr(e);return t.length===0?[]:[{type:`cards`,value:t.map((e,t)=>({title:e.label,body:e.id,badge:`#${t+1}`}))}]}function Wr(e){return!$(e)||!$(e.profile)?[]:[{type:`flame-graph`,value:zr(e.profile)}]}const Gr={id:`dashboard@1`,label:`Dashboard`,description:`Metric cards grid with optional charts.`,inputSchema:{type:`object`,properties:{metrics:{type:`array`,items:{type:`object`,required:[`label`,`value`],properties:{id:{type:`string`},label:{type:`string`},value:{type:[`string`,`number`]},trend:{type:`object`,properties:{value:{type:`string`},direction:{enum:[`up`,`down`,`neutral`]}},required:[`value`,`direction`],additionalProperties:!1},status:{enum:[`success`,`warning`,`error`,`info`]},type:{enum:[`stat`,`progress`,`list`]},progress:{type:`number`},items:{type:`array`,items:{type:`object`,required:[`label`,`value`],properties:{label:{type:`string`},value:{type:`string`}},additionalProperties:!1}}},additionalProperties:!1}}},required:[`metrics`],additionalProperties:!1},defaultLayout:{maxWidth:`1200px`},blocksFromData:e=>Vr(e),hydration:[],supportedTransports:[`mcp-app`,`browser`]},Kr={id:`kanban@1`,label:`Kanban`,description:`Drag-and-drop task board grouped by columns.`,inputSchema:{type:`object`,properties:{columns:{type:`array`,items:{type:`object`,required:[`id`,`label`],properties:{id:{type:`string`},label:{type:`string`},color:{type:`string`}},additionalProperties:!1}},cards:{type:`array`,items:{type:`object`,required:[`id`,`title`,`column`],properties:{id:{type:`string`},title:{type:`string`},description:{type:`string`},column:{type:`string`},tags:{type:`array`,items:{type:`string`}},priority:{enum:[`high`,`medium`,`low`]}},additionalProperties:!1}}},required:[`columns`,`cards`],additionalProperties:!1},defaultLayout:{maxWidth:`1400px`},blocksFromData:e=>Hr(e),hydration:[],supportedTransports:[`browser`]},qr={id:`list-sort@1`,label:`Sortable List`,description:`Reorderable list of items with browser drag-and-drop interactions.`,inputSchema:{type:`object`,properties:{items:{type:`array`,items:{type:`object`,required:[`id`,`label`],properties:{id:{type:`string`},label:{type:`string`}},additionalProperties:!1}}},required:[`items`],additionalProperties:!1},defaultLayout:{maxWidth:`720px`},blocksFromData:e=>Ur(e),hydration:[],supportedTransports:[`browser`]},Jr={id:`flame-graph@1`,label:`Flame Graph`,description:`Hierarchical performance profile with interactive zoom state.`,inputSchema:{type:`object`,properties:{profile:{type:`object`}},required:[`profile`],additionalProperties:!1},defaultLayout:{maxWidth:`1200px`},blocksFromData:e=>Wr(e),hydration:[`flame-graph`],supportedTransports:[`browser`]},Yr={blockedClipboardMessage:`Image clipboard is blocked by this host or browser. Open in a browser that allows clipboard-write, then try again.`,clipboardSuccessMessage:`Copied image to clipboard.`,fallbackToServerCaptureMessage:`Client Copy as Image capture failed`};function Xr(){return Yr}function Zr(e){return e.replace(/</g,`\\u003c`).replace(/>/g,`\\u003e`).replace(/&/g,`\\u0026`).replace(/\u2028/g,`\\u2028`).replace(/\u2029/g,`\\u2029`)}function Qr(e,t){let n=[`
|
|
2936
|
+
</div>`}const Dn={actions:m,annotation:wn,approval:En,cards:h,chart:v,checklist:we,code:ke,comparison:Pe,"architecture-diagram":N,"workflow-diagram":N,"sequence-diagram":N,"dataflow-diagram":N,"lifecycle-diagram":N,diff:rt,"component-detail":Ve,"data-table-schema":Ke,"docs-browser":at,"docs-hub":lt,"flame-graph":mt,finding:dt,graph:gt,heading:vt,kv:bt,"lifecycle-flow":kt,list:At,markdown:Ft,mermaid:It,metrics:Rt,paragraph:zt,progress:Vt,prompt:Ut,separator:Wt,"status-board":Kt,table:Xt,tags:Qt,text:$t,timeline:en,tree:tn};function On(e,t,r){let a={...e,value:o(e.value)},s=Dn[a.type],c=s?s(a,t):An(a);return a.title&&![`heading`,`finding`].includes(a.type)&&(c=`<section class="bk-section bk-section--${n(a.type)}"><h3 class="bk-section-title">${n(a.title)}</h3>${c}</section>`),`<div data-block-id="${i(a.blockId??`block-${r??0}`)}">${c}</div>`}function kn(e,t){return e.map((e,n)=>On(e,t,n)).join(`
|
|
2937
|
+
`)}function An(e){if(e.value===void 0||e.value===null)return``;if(typeof e.value==`string`)return`<p class="bk-paragraph">${n(e.value)}</p>`;try{return`<pre class="bk-fallback">${n(JSON.stringify(e.value,null,2))}</pre>`}catch{return`<pre class="bk-fallback">${n(String(e.value))}</pre>`}}var jn=class{templates=new Map;register(e){this.templates.set(e.id,e)}get(e){let t=this.templates.get(e);if(t)return t;let n=e.includes(`@`)?e:`${e}@`,r,i=-1;for(let[e,t]of this.templates){if(!e.startsWith(n))continue;let a=Number.parseInt(e.split(`@`)[1]??`0`,10);a>i&&(i=a,r=t)}return r}has(e){return this.get(e)!==void 0}list(){return[...this.templates.values()]}};const Mn=[`mcp-app`,`browser`];function H(e){return typeof e==`object`&&!!e}function Nn(e){return Array.isArray(e)?e.flatMap(e=>!H(e)||typeof e.label!=`string`?[]:[{label:e.label,checked:!!e.checked}]):[]}const Pn={id:`checklist@1`,label:`Checklist`,description:`Checklist with optional title and checklist hydration metadata.`,inputSchema:{type:`object`,properties:{title:{type:`string`},items:{type:`array`,items:{type:`object`,required:[`label`,`checked`],properties:{label:{type:`string`},checked:{type:`boolean`}},additionalProperties:!1}}},required:[`items`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t=[],n=H(e)&&typeof e.title==`string`?e.title:void 0,r=H(e)?Nn(e.items):[];return n&&t.push({type:`heading`,value:n}),t.push({type:`checklist`,value:r}),t},hydration:[`checklist`],supportedTransports:Mn},Fn=[`mcp-app`,`browser`,`export`];function U(e){return typeof e==`object`&&!!e}function In(e){return U(e)&&typeof e.label==`string`&&(typeof e.value==`string`||typeof e.value==`number`)}function Ln(e){return U(e)&&typeof e.key==`string`&&typeof e.label==`string`}function Rn(e){return Array.isArray(e)?e.filter(U):[]}function zn(e,t){if(Array.isArray(e)){let t=e.filter(Ln);if(t.length>0)return t}return Object.keys(t[0]??{}).map(e=>({key:e,label:e}))}const Bn={id:`data-table@1`,label:`Data Table`,description:`Static data table with optional metrics and sortable table hydration.`,inputSchema:{type:`object`,properties:{columns:{type:`array`,items:{type:`object`,required:[`key`,`label`],properties:{key:{type:`string`},label:{type:`string`}},additionalProperties:!1}},rows:{type:`array`,items:{type:`object`}},stats:{type:`array`,items:{type:`object`,required:[`label`,`value`],properties:{label:{type:`string`},value:{type:[`string`,`number`]},trend:{type:[`string`,`number`]},status:{type:`string`}},additionalProperties:!1}}},required:[`rows`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t=U(e)?Rn(e.rows):[],n=U(e)?zn(e.columns,t):[],r=n.map(e=>e.label),i=t.map(e=>n.map(t=>e[t.key])),a=[];if(U(e)&&Array.isArray(e.stats)){let t=e.stats.filter(In);t.length>0&&a.push({type:`metrics`,value:t})}return a.push({type:`table`,columns:n,headers:r,rows:i,value:{headers:r,rows:i}}),a},hydration:[`table`],supportedTransports:Fn},Vn=[`mcp-app`,`browser`,`export`];function W(e){return typeof e==`object`&&!!e}function Hn(e){return Array.isArray(e)?e.flatMap(e=>!W(e)||typeof e.type!=`string`||typeof e.content!=`string`?[]:[{type:e.type,content:e.content}]):[]}function Un(e){return Array.isArray(e)?e.flatMap(e=>!W(e)||typeof e.header!=`string`?[]:[{header:e.header,changes:Hn(e.changes)}]):[]}function Wn(e){return!W(e)||!Array.isArray(e.files)?[]:e.files.flatMap(e=>!W(e)||typeof e.path!=`string`||typeof e.status!=`string`?[]:[{path:e.path,status:e.status,additions:typeof e.additions==`number`?e.additions:0,deletions:typeof e.deletions==`number`?e.deletions:0,hunks:Un(e.hunks)}])}function Gn(e){return e===`add`?`+`:e===`delete`?`-`:` `}function Kn(e){let t=e.hunks.flatMap(e=>[e.header,...e.changes.map(e=>`${Gn(e.type)}${e.content}`)]).join(`
|
|
2938
|
+
`);return[{type:`heading`,value:e.path},{type:`paragraph`,value:`${e.status} | +${e.additions} / -${e.deletions}`},{type:`code`,language:`diff`,value:t}]}const qn={id:`diff-view@1`,label:`Diff View`,description:`Static diff summary rendered as per-file diff code blocks.`,inputSchema:{type:`object`,properties:{files:{type:`array`,items:{type:`object`,required:[`path`,`status`,`additions`,`deletions`,`hunks`],properties:{path:{type:`string`},status:{type:`string`},additions:{type:`number`},deletions:{type:`number`},hunks:{type:`array`,items:{type:`object`,required:[`header`,`changes`],properties:{header:{type:`string`},changes:{type:`array`,items:{type:`object`,required:[`type`,`content`],properties:{type:{type:`string`},content:{type:`string`}},additionalProperties:!1}}},additionalProperties:!1}}},additionalProperties:!1}}},required:[`files`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>Wn(e).flatMap(Kn),hydration:[],supportedTransports:Vn},Jn=[`mcp-app`,`browser`,`export`];function G(e){return typeof e==`object`&&!!e}function Yn(e){return G(e)&&typeof e.type==`string`}function Xn(e){return Array.isArray(e)&&e.every(Yn)}function Zn(e){if(!G(e))return{sections:[]};let t=Array.isArray(e.sections)?e.sections.flatMap(e=>{if(!G(e)||typeof e.heading!=`string`)return[];let t=typeof e.content==`string`||Xn(e.content)?e.content:``;return[{heading:e.heading,content:t}]}):[];return{title:typeof e.title==`string`?e.title:void 0,sections:t}}function Qn(e){let t=[{type:`heading`,value:e.heading}];return typeof e.content==`string`?(t.push({type:`paragraph`,value:e.content}),t):(t.push(...e.content),t)}const $n={id:`document@1`,label:`Document`,description:`Structured document with optional title and section content blocks.`,inputSchema:{type:`object`,properties:{title:{type:`string`},sections:{type:`array`,items:{type:`object`,additionalProperties:!1,required:[`heading`,`content`],properties:{heading:{type:`string`},content:{oneOf:[{type:`string`},{type:`array`,items:{type:`object`}}]}}}}},required:[`sections`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t=Zn(e),n=[];t.title&&n.push({type:`heading`,value:t.title});for(let e of t.sections)n.push(...Qn(e));return n},hydration:[],supportedTransports:Jn},er=[`mcp-app`,`browser`,`export`];function tr(e){return typeof e==`object`&&!!e}function nr(e){return tr(e)?{code:typeof e.code==`string`?e.code:`ERROR`,message:typeof e.message==`string`?e.message:`Unknown error`,details:typeof e.details==`string`?e.details:void 0,stack:typeof e.stack==`string`?e.stack:void 0}:{code:`ERROR`,message:`Unknown error`}}const K={id:`error@1`,label:`Error`,description:`Static error view with message and optional stack trace.`,inputSchema:{type:`object`,properties:{code:{type:`string`},message:{type:`string`},details:{type:`string`},stack:{type:`string`}},required:[`code`,`message`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t=nr(e),n=[{type:`heading`,value:`Error`},{type:`code`,title:t.code,language:`text`,value:t.details?`${t.message}\n\n${t.details}`:t.message}];return t.stack&&n.push({type:`code`,title:`Stack Trace`,language:`text`,value:t.stack}),n},hydration:[],supportedTransports:er};function q(e){return typeof e==`object`&&!!e}function rr(e){return Array.isArray(e)?e.flatMap(e=>!q(e)||typeof e.name!=`string`||typeof e.label!=`string`?[]:[{name:e.name,label:e.label,type:typeof e.type==`string`?e.type:void 0,required:typeof e.required==`boolean`?e.required:void 0,placeholder:typeof e.placeholder==`string`?e.placeholder:void 0,default:typeof e.default==`string`?e.default:void 0,options:Array.isArray(e.options)?e.options.filter(e=>typeof e==`string`||q(e)&&typeof e.label==`string`&&typeof e.value==`string`):void 0,value:typeof e.value==`string`||typeof e.value==`boolean`?e.value:void 0}]):[]}const ir={id:`form@1`,label:`Form`,description:`Browser-only form template rendered as a heading and table of field metadata.`,inputSchema:{type:`object`,properties:{title:{type:`string`},fields:{type:`array`,items:{type:`object`,required:[`name`,`label`],properties:{name:{type:`string`},label:{type:`string`},type:{type:`string`},required:{type:`boolean`},placeholder:{type:`string`},default:{type:`string`},options:{type:`array`,items:{anyOf:[{type:`string`},{type:`object`,required:[`label`,`value`],properties:{label:{type:`string`},value:{type:`string`}},additionalProperties:!1}]}},value:{type:[`string`,`boolean`]}},additionalProperties:!1}}},required:[`fields`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t={title:q(e)&&typeof e.title==`string`?e.title:`Form`,fields:q(e)?rr(e.fields):[]};return[{type:`heading`,value:t.title},{type:`table`,value:{headers:[`Label`,`Name`,`Type`,`Required`,`Default/Placeholder`],rows:t.fields.map(e=>[e.label||e.name,e.name,e.type||`text`,e.required?`Yes`:`No`,e.placeholder||e.default||``])}}]},hydration:[`form`],supportedTransports:[`browser`]},ar=[`mcp-app`,`browser`];function J(e){return typeof e==`object`&&!!e}function or(e){if(!Array.isArray(e))return;let t=e.flatMap(e=>!J(e)||typeof e.id!=`string`||typeof e.label!=`string`?[]:[{id:e.id,label:e.label}]);return t.length>0?t:void 0}function sr(e){return Array.isArray(e)?e.flatMap(e=>!J(e)||typeof e.id!=`string`||typeof e.label!=`string`?[]:[{id:e.id,label:e.label,category:typeof e.category==`string`?e.category:void 0,tags:Array.isArray(e.tags)?e.tags.filter(e=>typeof e==`string`):void 0}]):[]}function cr(e){return J(e)?{categories:or(e.categories),items:sr(e.items)}:{items:[]}}function lr(e){return{title:e.label,body:e.id,description:e.tags&&e.tags.length>0?e.tags.join(`, `):void 0}}function ur(e,t){return t.length===0?[]:[{type:`heading`,value:e},{type:`cards`,value:t.map(lr)}]}const dr={id:`picker@1`,label:`Picker`,description:`Grouped item picker rendered as cards with picker hydration metadata.`,inputSchema:{type:`object`,properties:{categories:{type:`array`,items:{type:`object`,required:[`id`,`label`],properties:{id:{type:`string`},label:{type:`string`}},additionalProperties:!1}},items:{type:`array`,items:{type:`object`,required:[`id`,`label`],properties:{id:{type:`string`},label:{type:`string`},category:{type:`string`},tags:{type:`array`,items:{type:`string`}}},additionalProperties:!1}}},required:[`items`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t=cr(e),n=[];if(t.categories&&t.categories.length>0){let e=new Set(t.categories.map(e=>e.id)),r=[];for(let e of t.categories){let n=ur(e.label,t.items.filter(t=>t.category===e.id));n.length>0&&r.push(n)}let i=ur(`Other`,t.items.filter(t=>!t.category||!e.has(t.category)));return i.length>0&&r.push(i),n.push(...r.flatMap((e,t)=>t>0?[{type:`separator`},...e]:e)),n}return t.items.length>0&&n.push({type:`cards`,value:t.items.map(lr)}),n},hydration:[`picker`],supportedTransports:ar},fr=[`mcp-app`,`browser`,`export`];function Y(e){return typeof e==`object`&&!!e}function pr(e){return Y(e)&&typeof e.type==`string`}function mr(e){return Array.isArray(e)&&e.every(pr)}function hr(e){return Y(e)&&typeof e.label==`string`&&(typeof e.value==`string`||typeof e.value==`number`)}function gr(e){return Array.isArray(e)?e.flatMap(e=>{if(!Y(e)||typeof e.heading!=`string`)return[];let t=typeof e.content==`string`||mr(e.content)?e.content:``;return[{heading:e.heading,content:t}]}):[]}function _r(e){return Array.isArray(e)?e.flatMap(e=>Y(e)?[{title:typeof e.title==`string`?e.title:void 0,value:e.value,headers:Array.isArray(e.headers)?e.headers.filter(e=>typeof e==`string`):void 0,rows:Array.isArray(e.rows)?e.rows.filter(e=>Array.isArray(e)):void 0}]:[]):[]}function vr(e){let t=[{type:`heading`,value:e.heading}];return typeof e.content==`string`?(t.push({type:`paragraph`,value:e.content}),t):(t.push(...e.content),t)}function yr(e){let t={type:`table`};if(e.title&&(t.title=e.title),e.value!==void 0)t.value=e.value;else if(e.headers||e.rows){let n={};e.headers&&(n.headers=e.headers),e.rows&&(n.rows=e.rows),t.value=n}return t}const br={id:`report@1`,label:`Report`,description:`Static report with title, optional metrics, narrative sections, and tables.`,inputSchema:{type:`object`,properties:{title:{type:`string`},metrics:{type:`array`,items:{type:`object`,required:[`label`,`value`],properties:{label:{type:`string`},value:{type:[`string`,`number`]},trend:{type:[`string`,`number`]},status:{type:`string`}},additionalProperties:!1}},sections:{type:`array`,items:{type:`object`,required:[`heading`,`content`],properties:{heading:{type:`string`},content:{oneOf:[{type:`string`},{type:`array`,items:{type:`object`}}]}},additionalProperties:!1}},tables:{type:`array`,items:{type:`object`,properties:{title:{type:`string`},value:{},headers:{type:`array`,items:{type:`string`}},rows:{type:`array`,items:{type:`array`,items:{}}}},additionalProperties:!1}}},required:[`title`,`sections`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t={title:Y(e)&&typeof e.title==`string`?e.title:`Report`,metrics:Y(e)&&Array.isArray(e.metrics)?e.metrics.filter(hr):void 0,sections:Y(e)?gr(e.sections):[],tables:Y(e)?_r(e.tables):void 0},n=[{type:`heading`,value:t.title}];t.metrics&&t.metrics.length>0&&n.push({type:`metrics`,value:t.metrics});for(let e of t.sections)n.push(...vr(e));for(let e of t.tables??[])n.push(yr(e));return n},hydration:[],supportedTransports:fr},xr=[`mcp-app`,`browser`];function X(e){return typeof e==`object`&&!!e}function Sr(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}function Cr(e){return Array.isArray(e)?e.flatMap(e=>{if(!X(e)||typeof e.id!=`string`||typeof e.body!=`string`)return[];let t=e.type;if(t!==`COMMENT`&&t!==`DELETION`&&t!==`GLOBAL_COMMENT`)return[];let n=X(e.anchor)?e.anchor:{};return[{id:e.id,type:t,body:e.body,anchor:{blockId:n.blockId},author:typeof e.author==`string`?e.author:void 0,createdAt:typeof e.createdAt==`string`?e.createdAt:void 0}]}):[]}function wr(e){return Array.isArray(e)?e.flatMap(e=>{if(!X(e)||typeof e.id!=`string`||typeof e.label!=`string`)return[];let t=e.outcome;return t!==`approved`&&t!==`rejected`&&t!==`changes-requested`&&t!==`deferred`?[]:[{id:e.id,label:e.label,outcome:t,description:typeof e.description==`string`?e.description:void 0}]}):[]}const Tr={id:`review@1`,label:`Review`,description:`Review surface with criteria checklist, annotation items, and approval controls.`,inputSchema:{type:`object`,properties:{title:{type:`string`},criteria:{type:`array`,items:{type:`string`}},annotations:{type:`array`,items:{type:`object`,required:[`id`,`body`,`type`,`anchor`],properties:{id:{type:`string`},type:{type:`string`,enum:[`COMMENT`,`DELETION`,`GLOBAL_COMMENT`]},body:{type:`string`},anchor:{type:`object`,properties:{blockId:{type:`string`},contextHash:{type:`string`}}},author:{type:`string`},createdAt:{type:`string`}},additionalProperties:!1}},approval:{type:`object`,properties:{prompt:{type:`string`},options:{type:`array`,items:{type:`object`,required:[`id`,`label`,`outcome`],properties:{id:{type:`string`},label:{type:`string`},outcome:{type:`string`,enum:[`approved`,`rejected`,`changes-requested`,`deferred`]},description:{type:`string`}},additionalProperties:!1}},requireComment:{type:`boolean`}},required:[`prompt`,`options`]},comment:{type:`string`}},required:[`title`,`criteria`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t=[];if(!X(e))return t;let n=typeof e.title==`string`?e.title:`Review`;t.push({type:`heading`,value:n});let r=Sr(e.criteria);r.length>0&&t.push({type:`checklist`,value:r.map(e=>({label:e,checked:!1}))});let i=Cr(e.annotations);i.length>0&&t.push({type:`annotation`,value:i});let a=e.approval;if(X(a)){let e=wr(a.options);e.length>0&&t.push({type:`approval`,value:{prompt:typeof a.prompt==`string`?a.prompt:``,options:e,requireComment:typeof a.requireComment==`boolean`?a.requireComment:!1}})}let o=typeof e.comment==`string`?e.comment:void 0;return o&&t.push({type:`markdown`,value:o}),t},hydration:[`checklist`],supportedTransports:xr},Er=[`mcp-app`,`browser`,`export`];function Dr(e){return typeof e==`object`&&!!e}function Or(e){return Array.isArray(e)?e.flatMap(e=>{if(!Dr(e)||typeof e.category!=`string`||!Array.isArray(e.items))return[];let t=e.items.flatMap(e=>!Dr(e)||typeof e.label!=`string`||typeof e.status!=`string`?[]:[{label:e.label,status:e.status,badge:typeof e.badge==`string`?e.badge:void 0}]);return[{category:e.category,items:t}]}):[]}function kr(e){return e.map(e=>({title:e.label,status:e.status,badge:e.badge}))}const Ar={id:`status-board@1`,label:`Status Board`,description:`Static status board grouped into category headings and card collections.`,inputSchema:{type:`object`,properties:{categories:{type:`array`,items:{type:`object`,required:[`category`,`items`],properties:{category:{type:`string`},items:{type:`array`,items:{type:`object`,required:[`label`,`status`],properties:{label:{type:`string`},status:{type:`string`},badge:{type:`string`}},additionalProperties:!1}}},additionalProperties:!1}}},required:[`categories`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t=Dr(e)?Or(e.categories):[],n=[];for(let e of t)n.push({type:`heading`,value:e.category}),n.push({type:`cards`,value:kr(e.items)});return n},hydration:[],supportedTransports:Er},jr=[`mcp-app`,`browser`,`export`];function Mr(e){return typeof e==`object`&&!!e}function Nr(e){return Array.isArray(e)?e.flatMap(e=>!Mr(e)||typeof e.title!=`string`?[]:[{title:e.title,description:typeof e.description==`string`?e.description:void 0,timestamp:typeof e.timestamp==`string`?e.timestamp:void 0,status:typeof e.status==`string`?e.status:void 0}]):[]}function Pr(e){return Array.isArray(e)?{entries:Nr(e)}:Mr(e)?{entries:Nr(e.entries??e.events??e.items),title:typeof e.title==`string`?e.title:void 0}:{entries:[]}}const Z={type:`array`,items:{type:`object`,required:[`title`],properties:{title:{type:`string`},description:{type:`string`},timestamp:{type:`string`},status:{type:`string`}},additionalProperties:!1}},Fr={id:`timeline@1`,label:`Timeline`,description:`Static timeline events rendered as a timeline block.`,inputSchema:{oneOf:[Z,{type:`object`,properties:{title:{type:`string`},entries:Z,events:Z,items:Z},anyOf:[{required:[`entries`]},{required:[`events`]},{required:[`items`]}],additionalProperties:!1}]},defaultLayout:{},blocksFromData:e=>{let{entries:t,title:n}=Pr(e),r=[];return n&&r.push({type:`heading`,value:n}),r.push({type:`timeline`,value:t}),r},hydration:[],supportedTransports:jr},Ir=[`mcp-app`,`browser`,`export`];function Lr(e){return typeof e==`object`&&!!e}function Rr(e){return Lr(e)&&typeof e.label==`string`}function zr(e){return{name:e.label,children:Array.isArray(e.children)?e.children.filter(Rr).map(zr):[]}}function Br(e){if(!Lr(e))return{};let t=e.root;return Rr(t)?zr(t):Lr(t)?t:e}const Vr={id:`tree@1`,label:`Tree`,description:`Static tree view data with optional tree hydration metadata.`,inputSchema:{oneOf:[{type:`object`,properties:{root:{type:`object`}},required:[`root`],additionalProperties:!0},{type:`object`,additionalProperties:!0}]},defaultLayout:{},blocksFromData:e=>[{type:`tree`,value:Br(e)}],hydration:[`tree`],supportedTransports:Ir},Q=new jn;Q.register(Tr),Q.register(Pn),Q.register(qn),Q.register($n),Q.register(dr),Q.register(br),Q.register(Fr),Q.register(Vr),Q.register(Bn),Q.register(K),Q.register(ir),Q.register(Ar);let Hr=0;function Ur(){return Hr=(Hr+1)%(2**53-1),`${Date.now().toString(16).padStart(12,`0`).slice(-12)}${Hr.toString(16).padStart(4,`0`).slice(-4)}${Array.from({length:8},()=>Math.floor(Math.random()*256).toString(16).padStart(2,`0`)).join(``)}`}function Wr(e){return{id:e,version:1,entry:`@aikit/blocks-interactive/dist/islands/${e}.mjs`,selector:`[data-island="${e}"]`,needsData:!0}}function Gr(e,t){let n=new TextEncoder;return n.encode(e).byteLength+t.reduce((e,t)=>e+n.encode(t).byteLength,0)}function Kr(e,t){let n=[],r=t.registry??Q,i={colorScheme:e.colorScheme??t.colorScheme??`auto`,transport:t.transport,lang:e.lang,dir:e.dir},a=[...e.blocks??[]],o=[...a],s=[],c=[...e.actions??[]];if(e.template){let t=r.get(e.template);if(t)try{o=t.blocksFromData(e.data,i),o.length===0&&e.data!==void 0&&(n.push({level:`warn`,message:`Template "${e.template}" produced no blocks from provided data`}),o=[{type:`markdown`,value:`> ⚠️ Template \`${e.template}\` received data but produced no content. Verify the data structure matches the template schema.`}]),t.actionsFromData&&(c=[...c,...t.actionsFromData(e.data)]),s=t.hydration.map(e=>Wr(e))}catch(t){let r=t instanceof Error?t.message:String(t);n.push({level:`error`,message:`Template ${e.template} failed: ${r}`}),o=a.length===0?K.blocksFromData({code:`TEMPLATE_RENDER_ERROR`,message:`Failed to render template ${e.template}`,details:r},i):[...a]}else n.push({level:`warn`,message:`Template not found: ${e.template}`})}let l=kn(o,i),u=[B(o.map(e=>e.type))],d=t.nonce??Ur(),f=e.metadata?.surfaceId??`surface-${d}`,p=s.length>0?JSON.stringify({data:e.data,blocks:o}):void 0,m=t.blockVendorScripts?[...new Set(o.flatMap(e=>t.blockVendorScripts?.[e.type]??[]))]:void 0;return{surfaceId:f,nonce:d,html:l,css:u,vendorScripts:m&&m.length>0?m:void 0,islands:s,actions:c,payload:p,estimatedBytes:Gr(l,u),exportPolicy:s.length>0?`local-interactive`:`static-only`,diagnostics:n.length>0?n:void 0}}function qr(e){return e===`up`||e===`down`||e===`neutral`}function $(e){return typeof e==`object`&&!!e}function Jr(e){return!$(e)||!Array.isArray(e.metrics)?{metrics:[]}:{metrics:e.metrics.flatMap(e=>{if(!$(e)||typeof e.label!=`string`||typeof e.value!=`string`&&typeof e.value!=`number`)return[];let t=$(e.trend)&&typeof e.trend.value==`string`&&qr(e.trend.direction)?{value:e.trend.value,direction:e.trend.direction}:void 0,n=Array.isArray(e.items)?e.items.flatMap(e=>!$(e)||typeof e.label!=`string`||typeof e.value!=`string`?[]:[{label:e.label,value:e.value}]):void 0;return[{id:typeof e.id==`string`?e.id:void 0,label:e.label,value:e.value,trend:t,status:e.status===`success`||e.status===`warning`||e.status===`error`||e.status===`info`?e.status:void 0,type:e.type===`progress`||e.type===`list`||e.type===`stat`?e.type:void 0,progress:typeof e.progress==`number`?ti(e.progress):void 0,items:n}]})}}function Yr(e){let t=e.type===`progress`&&typeof e.progress==`number`?`${e.progress}%`:void 0;return{label:e.label,value:e.value,trend:e.trend?`${(e=>e===`up`?`↑`:e===`down`?`↓`:`→`)(e.trend.direction)} ${e.trend.value}`:t,status:e.status}}function Xr(e){return e.type!==`progress`||typeof e.progress!=`number`?null:{label:e.label,value:ti(e.progress),max:100}}function Zr(e){return $(e)?{columns:Array.isArray(e.columns)?e.columns.flatMap(e=>!$(e)||typeof e.id!=`string`||typeof e.label!=`string`?[]:[{id:e.id,label:e.label}]):[],cards:Array.isArray(e.cards)?e.cards.flatMap(e=>!$(e)||typeof e.id!=`string`||typeof e.title!=`string`||typeof e.column!=`string`?[]:[{id:e.id,title:e.title,description:typeof e.description==`string`?e.description:void 0,column:e.column,tags:Array.isArray(e.tags)?e.tags.filter(e=>typeof e==`string`):void 0,priority:e.priority===`high`||e.priority===`medium`||e.priority===`low`?e.priority:void 0}]):[]}:{columns:[],cards:[]}}function Qr(e){return{title:e.title,description:e.description,badge:e.priority,body:e.tags?.join(`, `),status:e.priority}}function $r(e){return!$(e)||!Array.isArray(e.items)?[]:e.items.flatMap(e=>!$(e)||typeof e.id!=`string`||typeof e.label!=`string`?[]:[{id:e.id,label:e.label}])}function ei(e){return $(e)?{name:typeof e.name==`string`?e.name:``,total:typeof e.total==`number`?e.total:typeof e.value==`number`?e.value:0,self:typeof e.self==`number`?e.self:void 0,children:Array.isArray(e.children)?e.children.map(e=>ei(e)):[]}:{name:``,total:0,children:[]}}function ti(e){return Math.max(0,Math.min(100,e))}function ni(e){let t=Jr(e),n=[];t.metrics.length>0&&n.push({type:`metrics`,value:t.metrics.map(Yr)});let r=t.metrics.map(Xr).filter(e=>e!==null);r.length>0&&n.push({type:`progress`,value:r});for(let e of t.metrics)e.type===`list`&&e.items&&e.items.length>0&&(n.push({type:`heading`,value:e.label}),n.push({type:`table`,value:e.items}));return n}function ri(e){let t=Zr(e),n=[];return t.columns.forEach((e,r)=>{r>0&&n.push({type:`separator`,value:``});let i=t.cards.filter(t=>t.column===e.id);n.push({type:`heading`,value:e.label}),n.push({type:`cards`,value:i.map(Qr)})}),n}function ii(e){let t=$r(e);return t.length===0?[]:[{type:`cards`,value:t.map((e,t)=>({title:e.label,body:e.id,badge:`#${t+1}`}))}]}function ai(e){return!$(e)||!$(e.profile)?[]:[{type:`flame-graph`,value:ei(e.profile)}]}const oi={id:`dashboard@1`,label:`Dashboard`,description:`Metric cards grid with optional charts.`,inputSchema:{type:`object`,properties:{metrics:{type:`array`,items:{type:`object`,required:[`label`,`value`],properties:{id:{type:`string`},label:{type:`string`},value:{type:[`string`,`number`]},trend:{type:`object`,properties:{value:{type:`string`},direction:{enum:[`up`,`down`,`neutral`]}},required:[`value`,`direction`],additionalProperties:!1},status:{enum:[`success`,`warning`,`error`,`info`]},type:{enum:[`stat`,`progress`,`list`]},progress:{type:`number`},items:{type:`array`,items:{type:`object`,required:[`label`,`value`],properties:{label:{type:`string`},value:{type:`string`}},additionalProperties:!1}}},additionalProperties:!1}}},required:[`metrics`],additionalProperties:!1},defaultLayout:{maxWidth:`1200px`},blocksFromData:e=>ni(e),hydration:[],supportedTransports:[`mcp-app`,`browser`]},si={id:`kanban@1`,label:`Kanban`,description:`Drag-and-drop task board grouped by columns.`,inputSchema:{type:`object`,properties:{columns:{type:`array`,items:{type:`object`,required:[`id`,`label`],properties:{id:{type:`string`},label:{type:`string`},color:{type:`string`}},additionalProperties:!1}},cards:{type:`array`,items:{type:`object`,required:[`id`,`title`,`column`],properties:{id:{type:`string`},title:{type:`string`},description:{type:`string`},column:{type:`string`},tags:{type:`array`,items:{type:`string`}},priority:{enum:[`high`,`medium`,`low`]}},additionalProperties:!1}}},required:[`columns`,`cards`],additionalProperties:!1},defaultLayout:{maxWidth:`1400px`},blocksFromData:e=>ri(e),hydration:[],supportedTransports:[`browser`]},ci={id:`list-sort@1`,label:`Sortable List`,description:`Reorderable list of items with browser drag-and-drop interactions.`,inputSchema:{type:`object`,properties:{items:{type:`array`,items:{type:`object`,required:[`id`,`label`],properties:{id:{type:`string`},label:{type:`string`}},additionalProperties:!1}}},required:[`items`],additionalProperties:!1},defaultLayout:{maxWidth:`720px`},blocksFromData:e=>ii(e),hydration:[],supportedTransports:[`browser`]},li={id:`flame-graph@1`,label:`Flame Graph`,description:`Hierarchical performance profile with interactive zoom state.`,inputSchema:{type:`object`,properties:{profile:{type:`object`}},required:[`profile`],additionalProperties:!1},defaultLayout:{maxWidth:`1200px`},blocksFromData:e=>ai(e),hydration:[`flame-graph`],supportedTransports:[`browser`]},ui={blockedClipboardMessage:`Image clipboard is blocked by this host or browser. Open in a browser that allows clipboard-write, then try again.`,clipboardSuccessMessage:`Copied image to clipboard.`,fallbackToServerCaptureMessage:`Client Copy as Image capture failed`};function di(){return ui}function fi(e){return e.replace(/</g,`\\u003c`).replace(/>/g,`\\u003e`).replace(/&/g,`\\u0026`).replace(/\u2028/g,`\\u2028`).replace(/\u2029/g,`\\u2029`)}function pi(e,t){let n=[`
|
|
2155
2939
|
* {
|
|
2156
2940
|
box-sizing: border-box;
|
|
2157
2941
|
}
|
|
@@ -2182,9 +2966,8 @@ body {
|
|
|
2182
2966
|
@media (prefers-reduced-motion: reduce) {
|
|
2183
2967
|
html { scroll-behavior: auto; }
|
|
2184
2968
|
*, *::before, *::after {
|
|
2185
|
-
animation
|
|
2186
|
-
|
|
2187
|
-
transition-duration: 0.01ms !important;
|
|
2969
|
+
animation: none !important;
|
|
2970
|
+
transition: none !important;
|
|
2188
2971
|
}
|
|
2189
2972
|
}
|
|
2190
2973
|
|
|
@@ -2281,6 +3064,21 @@ main > * {
|
|
|
2281
3064
|
}
|
|
2282
3065
|
}
|
|
2283
3066
|
|
|
3067
|
+
@media (max-width: 360px) {
|
|
3068
|
+
main {
|
|
3069
|
+
padding: var(--aikit-main-padding-mobile-xs, 0.5rem 0.5rem);
|
|
3070
|
+
gap: var(--aikit-main-gap-mobile-xs, 0.5rem);
|
|
3071
|
+
}
|
|
3072
|
+
}
|
|
3073
|
+
|
|
3074
|
+
/* ── 320px: ultra-compact screens ── */
|
|
3075
|
+
@media (max-width: 320px) {
|
|
3076
|
+
main {
|
|
3077
|
+
padding: var(--aikit-main-padding-mobile-xxs, 0.25rem 0.25rem);
|
|
3078
|
+
gap: var(--aikit-main-gap-mobile-xxs, 0.25rem);
|
|
3079
|
+
}
|
|
3080
|
+
}
|
|
3081
|
+
|
|
2284
3082
|
@media (max-width: 480px) {
|
|
2285
3083
|
main {
|
|
2286
3084
|
padding: var(--aikit-main-padding-mobile-sm, 0.75rem 0.75rem);
|
|
@@ -2293,27 +3091,27 @@ main > * {
|
|
|
2293
3091
|
max-width: var(--aikit-max-width-wide, 1040px);
|
|
2294
3092
|
}
|
|
2295
3093
|
}
|
|
2296
|
-
`,
|
|
3094
|
+
`,bn,...(Array.isArray(t)?t:typeof t==`string`?[t]:[]).filter(e=>e.trim().length>0)].join(`
|
|
2297
3095
|
`);return[` <style>${e}</style>`,` <style>${n}</style>`].join(`
|
|
2298
|
-
`)}function
|
|
3096
|
+
`)}function mi(e){let t=Object.entries(R).map(([e,t])=>` ${e}: ${t};`).join(`
|
|
2299
3097
|
`);return[e,`html[data-theme="light"] {
|
|
2300
3098
|
color-scheme: light;
|
|
2301
3099
|
}`,`html[data-theme="dark"] {\n color-scheme: dark;\n${t}\n}`,`@media (prefers-color-scheme: dark) {\n html:not([data-theme]) {\n color-scheme: dark;\n${t}\n }\n}`].join(`
|
|
2302
3100
|
|
|
2303
|
-
`)}function
|
|
3101
|
+
`)}function hi(e,t){if(e.length===0)return``;let r=` nonce="${n(t)}"`;return e.map(e=>{let t=e.initScript?` <script${r}>\n${e.initScript}\n <\/script>\n`:``;if(e.inlineSource)return`${t} <script${r}>${e.inlineSource.replace(/<\/script/gi,`<\\/script`)}${e.onload?`\n;${e.onload}`:``}<\/script>`;if(!e.src)return t.trimEnd();let i=[];return i.push(`${t} <script src="${n(e.src)}"${r}><\/script>`),e.fallback?i.push(` <script${r}>`,`document.currentScript.previousElementSibling.addEventListener('error',function(){`,`var f=document.createElement('script');`,`f.src='${n(e.fallback)}';`,e.onload?`f.onload=function(){${e.onload}};`:``,`document.head.appendChild(f);`,`});`,`<\/script>`):e.onload&&i.push(` <script${r}>`,`document.currentScript.previousElementSibling.addEventListener('load',function(){${e.onload}});`,`<\/script>`),i.join(`
|
|
2304
3102
|
`)}).join(`
|
|
2305
|
-
`)}function
|
|
2306
|
-
`)}function
|
|
2307
|
-
`)}function
|
|
2308
|
-
`)}function
|
|
2309
|
-
`)}function
|
|
3103
|
+
`)}function gi(e,t,r=`client-only`){let i=JSON.stringify(e),a=_i(r),o=vi(di());return[` <script${` nonce="${n(t)}"`}>`,` (() => {`,` const preferredTheme = ${i};`,` const storageKey = "aikit-theme-mode";`,` const html = document.documentElement;`,` const toolbox = {`,` container: () => document.querySelector(".aikit-toolbox"),`,` button: () => document.querySelector(".aikit-toolbox-toggle"),`,` menu: () => document.querySelector(".aikit-toolbox-menu"),`,` firstItem: () => document.querySelector(".aikit-toolbox-item"),`,` };`,` const systemTheme = () =>`,` window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches`,` ? "dark"`,` : "light";`,` const readStoredTheme = () => {`,` try {`,` const stored = localStorage.getItem("aikit-theme-mode");`,` return stored === "light" || stored === "dark" ? stored : null;`,` } catch (_error) {`,` return null;`,` }`,` };`,` const resolvedTheme = () => html.getAttribute("data-theme") || readStoredTheme() || systemTheme();`,` const setToolboxOpen = (open, options = {}) => {`,` const button = toolbox.button();`,` const menu = toolbox.menu();`,` if (!button || !menu) return;`,` menu.hidden = !open;`,` button.setAttribute("aria-expanded", String(open));`,` if (open) {`,` if (options.focusItem) toolbox.firstItem()?.focus();`,` } else if (options.restoreFocus) {`,` button.focus();`,` }`,` };`,` const inlineComputedStyles = (source, clone) => {`,` if (!(source instanceof Element) || !(clone instanceof Element)) return;`,` const computed = window.getComputedStyle(source);`,` const cssText = Array.from(computed)`,` .map((name) => {`,` const value = computed.getPropertyValue(name);`,` const priority = computed.getPropertyPriority(name);`,' return `${name}:${value}${priority ? " !important" : ""};`;',` })`,` .join("");`,` clone.setAttribute("style", cssText);`,` for (let index = 0; index < source.children.length; index += 1) {`,` inlineComputedStyles(source.children[index], clone.children[index]);`,` }`,` };`,a,` const updateToggle = (theme) => {`,` const button = document.querySelector(".aikit-theme-toggle");`,` const nextTheme = theme === "dark" ? "light" : "dark";`,` if (button) {`,` button.setAttribute("aria-label", "Switch to " + nextTheme + " theme");`,` button.setAttribute("aria-pressed", String(theme === "dark"));`,` }`,` };`,` const applyTheme = (theme, persist = true) => {`,` html.setAttribute("data-theme", theme);`,` if (persist) {`,` try {`,` localStorage.setItem("aikit-theme-mode", theme);`,` } catch (_error) {`,` // Ignore storage failures.`,` }`,` }`,` updateToggle(theme);`,` };`,` if (preferredTheme === "light" || preferredTheme === "dark") {`,` applyTheme(preferredTheme, false);`,` } else {`,` applyTheme(readStoredTheme() || systemTheme(), false);`,` }`,` window.toggleTheme = () => {`,` applyTheme(resolvedTheme() === "dark" ? "light" : "dark");`,` };`,o,` document.addEventListener("click", (event) => {`,` const themeToggle = event.target?.closest?.(".aikit-theme-toggle");`,` if (themeToggle) { window.toggleTheme(); }`,` const toolboxToggle = event.target?.closest?.(".aikit-toolbox-toggle");`,` if (toolboxToggle) { window.toggleToolbox(); }`,` const chromeAction = event.target?.closest?.("[data-shared-chrome-action]");`,` if (chromeAction) {`,` const actionId = chromeAction.getAttribute("data-shared-chrome-action");`,` if (actionId === "copy-image") { window.screenshotPage(); }`,` if (actionId === "download-image") { window.downloadPng(); }`,` }`,` const container = toolbox.container();`,` if (!container) return;`,` const target = event.target;`,` if (target instanceof Node && container.contains(target)) return;`,` setToolboxOpen(false);`,` });`,` document.addEventListener("keydown", (event) => {`,` if (event.key === "Escape") {`,` setToolboxOpen(false, { restoreFocus: true });`,` return;`,` }`,` if ((event.key === "ArrowDown" || event.key === "Enter" || event.key === " ") && event.target === toolbox.button()) {`,` event.preventDefault();`,` setToolboxOpen(true, { focusItem: true });`,` }`,` });`,` if (preferredTheme === "auto" && window.matchMedia) {`,` const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");`,` mediaQuery.addEventListener("change", () => {`,` if (readStoredTheme()) return;`,` applyTheme(systemTheme(), false);`,` });`,` }`,` })();`,` <\/script>`].join(`
|
|
3104
|
+
`)}function _i(e){let t=e===`browser-server`;return[` const captureDocumentAsPng = async () => {`,` try {`,` return await captureDomViaSvg();`,` } catch (_err) {`,` // SVG foreignObject failed (tainted canvas or ForeignObject error).`,` // Fall back to server-side capture via agent-browser.`,` // We do NOT try html2canvas here -- Edge's Tracking Prevention`,` // blocks CDN script loading, and modern CSS color functions can`,` // cause parse errors. The server method (agent-browser isolated`,` // browser) is more reliable for this fallback path.`,` console.warn("SVG capture failed, falling back to server:", _err);`,` }`,` throw new Error("Client capture failed, use server fallback");`,` };`,` const captureDomViaSvg = async () => {`,` const width = Math.max(`,` document.documentElement.scrollWidth,`,` document.documentElement.clientWidth,`,` document.body ? document.body.scrollWidth : 0,`,` );`,` const height = Math.max(`,` document.documentElement.scrollHeight,`,` document.documentElement.clientHeight,`,` document.body ? document.body.scrollHeight : 0,`,` );`,` const scale = window.devicePixelRatio || 1;`,` const canvas = document.createElement("canvas");`,` canvas.width = Math.max(1, Math.ceil(width * scale));`,` canvas.height = Math.max(1, Math.ceil(height * scale));`,` const context = canvas.getContext("2d");`,` if (!context) throw new Error("Canvas context unavailable");`,` context.scale(scale, scale);`,` const clone = document.documentElement.cloneNode(true);`,` if (!(clone instanceof Element)) throw new Error("Document clone failed");`,` clone.setAttribute("xmlns", "http://www.w3.org/1999/xhtml");`,` clone.querySelectorAll("script").forEach((node) => node.remove());`,` inlineComputedStyles(document.documentElement, clone);`,' const svgMarkup = [`<svg xmlns="http://www.w3.org/2000/svg" width="${width}" height="${height}" viewBox="0 0 ${width} ${height}">`, `<foreignObject width="100%" height="100%">${new XMLSerializer().serializeToString(clone)}</foreignObject>`, "</svg>"].join("");',` const svgBlob = new Blob([svgMarkup], { type: "image/svg+xml;charset=utf-8" });`,` const objectUrl = URL.createObjectURL(svgBlob);`,` try {`,` await new Promise((resolve, reject) => {`,` const image = new Image();`,` image.onload = () => {`,` context.drawImage(image, 0, 0, width, height);`,` resolve(undefined);`,` };`,` image.onerror = () => reject(new Error("ForeignObject render failed"));`,` image.src = objectUrl;`,` });`,` } finally {`,` URL.revokeObjectURL(objectUrl);`,` }`,` const blob = await new Promise((resolve) => canvas.toBlob(resolve, "image/png"));`,` if (!blob || blob.type !== "image/png") throw new Error("PNG export failed");`,` return blob;`,` };`,` const ensureHtml2canvas = async () => {`,` if (typeof window.html2canvas === "function") return;`,` if (typeof window.html2canvas_pro === "function") return;`,` var loaded = false;`,` var urls = [`,` "https://cdn.jsdelivr.net/npm/html2canvas-pro@1.5.5/dist/html2canvas.min.js",`,` "https://unpkg.com/html2canvas-pro@1.5.5/dist/html2canvas.min.js",`,` ];`,` for (var i = 0; i < urls.length; i++) {`,` try {`,` await new Promise(function(resolve, reject) {`,` var s = document.createElement("script");`,` s.src = urls[i];`,` s.onload = resolve;`,` s.onerror = reject;`,` document.head.appendChild(s);`,` });`,` loaded = true;`,` break;`,` } catch (_e) {`,` console.warn("html2canvas CDN fallback", i, _e);`,` }`,` }`,` if (!loaded) throw new Error("Failed to load html2canvas from any CDN");`,` };`,` const captureViaHtml2canvas = async () => {`,` var h2c = (typeof window.html2canvas_pro === "function") ? window.html2canvas_pro :`,` (typeof window.html2canvas === "function") ? window.html2canvas : null;`,` if (!h2c) throw new Error("html2canvas not available");`,` var bg = document.documentElement ? getComputedStyle(document.documentElement).backgroundColor : "";`,` var canvas = await h2c(document.documentElement, {`,` useCORS: true,`,` allowTaint: false,`,` scale: window.devicePixelRatio || 1,`,` logging: false,`,` backgroundColor: bg || "#ffffff",`,` });`,` var blob = await new Promise(function(resolve) { canvas.toBlob(resolve, "image/png"); });`,` if (!blob || blob.type !== "image/png") throw new Error("html2canvas PNG export failed");`,` return blob;`,` };`,...t?[` const captureClipboardPng = async () => {`,` console.warn("Server Copy as Image fallback request started", "/__aikit_clipboard.png");`,` const response = await fetch("/__aikit_clipboard.png", { method: "POST", cache: "no-store" });`,` if (!response.ok) {`,` const body = await response.text().catch(() => "");`,` throw new Error(`,` body`,` ? "Server clipboard capture unavailable (" + response.status + " " + response.statusText + "): " + body`,` : "Server clipboard capture unavailable (" + response.status + " " + response.statusText + ")",`,` );`,` }`,` const blob = await response.blob();`,` if (!blob || blob.type !== "image/png") {`,` throw new Error("Server clipboard capture failed (" + (blob?.type || "unknown content-type") + ")");`,` }`,` return blob;`,` };`]:[` const captureClipboardPng = async () => {`,` throw new Error("Server image capture is unavailable in this transport.");`,` };`],` const showCopyStatus = (message, tone = "info") => {`,` let status = document.querySelector(".aikit-copy-status");`,` if (!status) {`,` status = document.createElement("div");`,` status.className = "aikit-copy-status";`,` status.setAttribute("role", "status");`,` status.setAttribute("aria-live", "polite");`,` document.body.appendChild(status);`,` }`,` status.dataset.tone = tone;`,` status.textContent = message;`,` window.clearTimeout(status.__aikitCopyTimer);`,` status.__aikitCopyTimer = window.setTimeout(() => { status.remove(); }, 4000);`,` };`,` const blobToDataUrl = (blob) =>`,` new Promise((resolve, reject) => {`,` const reader = new FileReader();`,` reader.onload = () => resolve(String(reader.result));`,` reader.onerror = () => reject(reader.error || new Error("Image conversion failed"));`,` reader.readAsDataURL(blob);`,` });`,` const copyImageWithLegacyClipboard = async (blob) => {`,` const dataUrl = await blobToDataUrl(blob);`,` let copied = false;`,` let imageSet = false;`,` const onCopy = (event) => {`,` const data = event.clipboardData;`,` if (!data) return;`,` event.preventDefault();`,` try {`,` if (data.items && typeof File !== "undefined") {`,` data.items.add(new File([blob], "aikit-present.png", { type: "image/png" }));`,` imageSet = true;`,` copied = true;`,` }`,` } catch (_error) {`,` // Some hosts reject binary clipboard items in copy events; keep the HTML fallback below.`,` }`,' data.setData("text/html", `<img alt="AI Kit Present" src="${dataUrl}">`);',` if (!imageSet) {`,` data.setData("text/plain", dataUrl);`,` }`,` copied = true;`,` };`,` document.addEventListener("copy", onCopy, { once: true });`,` try {`,` copied = document.execCommand("copy") || copied;`,` } finally {`,` document.removeEventListener("copy", onCopy);`,` }`,` if (!copied) throw new Error("Legacy clipboard copy unavailable");`,` };`,` const writeImageToClipboard = async (blob) => {`,` try {`,` if (!navigator.clipboard?.write || typeof ClipboardItem === "undefined") {`,` throw new Error("Async image clipboard is unavailable in this host.");`,` }`,` await navigator.clipboard.write([new ClipboardItem({ "image/png": blob })]);`,` } catch (clipboardError) {`,` console.warn("Async Clipboard image write failed", clipboardError);`,` await copyImageWithLegacyClipboard(blob);`,` }`,` };`,...t?[` const writeImageToClipboardViaServer = async (blob) => {`,` const response = await fetch("/__aikit_system_clipboard", {`,` method: "POST",`,` body: blob,`,` });`,` if (!response.ok) {`,` const text = await response.text().catch(() => "Unknown server error");`,` throw new Error("Server clipboard write failed: " + text);`,` }`,` };`]:[` const writeImageToClipboardViaServer = async () => {`,` throw new Error("Server clipboard write is unavailable in this transport.");`,` };`],` const downloadImage = async (blob, filename = "aikit-present.png") => {`,` const url = URL.createObjectURL(blob);`,` const link = document.createElement("a");`,` link.href = url;`,` link.download = filename;`,` document.body.appendChild(link);`,` link.click();`,` link.remove();`,` setTimeout(() => URL.revokeObjectURL(url), 10000);`,` };`].join(`
|
|
3105
|
+
`)}function vi(e){return[` window.toggleToolbox = () => {`,` const menu = toolbox.menu();`,` setToolboxOpen(Boolean(menu?.hidden), { focusItem: Boolean(menu?.hidden) });`,` };`,` window.downloadPng = async () => {`,` const scrollX = window.scrollX;`,` const scrollY = window.scrollY;`,` setToolboxOpen(false);`,` window.scrollTo(0, 0);`,` await new Promise((resolve) => window.requestAnimationFrame(() => resolve(undefined)));`,` let blob;`,` try {`,` try {`,` blob = await captureClipboardPng();`,` } catch (serverError) {`,` console.warn("Server PNG capture unavailable, trying client-side SVG fallback:", serverError);`,` blob = await captureDocumentAsPng();`,` }`,` if (!blob) throw new Error("Screenshot capture returned no image");`,` const timestamp = new Date().toISOString().replace(/[.:]/g, "-");`," await downloadImage(blob, `aikit-present-${timestamp}.png`);",` showCopyStatus("Downloaded image.");`,` } catch (_error) {`,` console.warn("Download Image failed", _error);`,` showCopyStatus("Screenshot capture failed. Try using your browser's screenshot tool.", "error");`,` } finally {`,` window.scrollTo(scrollX, scrollY);`,` }`,` };`,` window.screenshotPage = async () => {`,` const scrollX = window.scrollX;`,` const scrollY = window.scrollY;`,` setToolboxOpen(false);`,` window.scrollTo(0, 0);`,` await new Promise((resolve) => window.requestAnimationFrame(() => resolve(undefined)));`,` let blob;`,` try {`,` blob = await captureClipboardPng();`,` } catch (captureError) {`,` console.warn("Server CDP capture failed, trying client-side SVG:", captureError);`,` try {`,` blob = await captureDocumentAsPng();`,` } catch (_svgError) {`,` console.warn("SVG capture also failed");`,` }`,` }`,` try {`,` if (!blob) throw new Error("No image captured");`,` await writeImageToClipboardViaServer(blob);`,` showCopyStatus(${JSON.stringify(`Copied image to clipboard.`)});`,` } catch (clipboardError) {`,` console.warn("Server clipboard write failed, trying client-side:", clipboardError);`,` try {`,` if (blob) {`,` await writeImageToClipboard(blob);`,` showCopyStatus(${JSON.stringify(`Copied image to clipboard.`)});`,` }`,` } catch (_clientError) {`,` console.warn("Client-side clipboard also failed", _clientError);`,` if (blob) {`,` try {`,` const timestamp = new Date().toISOString().replace(/[.:]/g, "-");`," await downloadImage(blob, `aikit-present-${timestamp}.png`);",` showCopyStatus(${JSON.stringify(`Clipboard blocked — image downloaded instead.`)});`,` } catch (_downloadError) {`,` showCopyStatus(${JSON.stringify(e.blockedClipboardMessage)}, "error");`,` }`,` } else {`,` showCopyStatus(${JSON.stringify(`Screenshot capture failed.`)}, "error");`,` }`,` }`,` } finally {`,` window.scrollTo(scrollX, scrollY);`,` }`,` };`].join(`
|
|
3106
|
+
`)}function yi(e,t,r){if(t!==`local-interactive`)return``;let i=new Set,a=[],o=` nonce="${n(r)}"`;for(let t of e)i.has(t.entry)||(i.add(t.entry),a.push(` <script type="module" src="${n(t.entry)}"${o}><\/script>`));return a.length>0&&a.push(` <script type="module"${o}>`,` import { hydrateAsync } from "/@aikit/blocks-interactive/dist/index.mjs";`,` const boot = () => {`,` void hydrateAsync();`,` };`,` if (document.readyState === "loading") {`,` document.addEventListener("DOMContentLoaded", boot, { once: true });`,` } else {`,` boot();`,` }`,` <\/script>`),a.join(`
|
|
3107
|
+
`)}function bi(e){let t=n(e.lang??`en`),r=n(e.dir??`ltr`),i=e.colorScheme??`auto`,a=e.imageExportMode??`client-only`,o=e.generatedAt??new Date().toISOString(),s=[`lang="${t}"`,`dir="${r}"`];i!==`auto`&&s.push(`data-theme="${i}"`);let c=``;e.maxWidth?(c+=` --aikit-max-width: ${e.maxWidth};\n`,c+=` --aikit-max-width-wide: ${e.maxWidth};\n`):e.layoutVariant===`wide`?(c+=` --aikit-max-width: 1400px;
|
|
2310
3108
|
`,c+=` --aikit-max-width-wide: 1400px;
|
|
2311
3109
|
`):e.layoutVariant===`full`&&(c+=` --aikit-max-width: none;
|
|
2312
3110
|
`,c+=` --aikit-max-width-wide: none;
|
|
2313
3111
|
`,c+=` --aikit-main-padding: 0;
|
|
2314
|
-
`),e.mainPadding&&(c+=` --aikit-main-padding: ${e.mainPadding};\n`),e.mainGap&&(c+=` --aikit-main-gap: ${e.mainGap};\n`);let l=``;e.showGlassCss&&(l=
|
|
3112
|
+
`),e.mainPadding&&(c+=` --aikit-main-padding: ${e.mainPadding};\n`),e.mainGap&&(c+=` --aikit-main-gap: ${e.mainGap};\n`);let l=``;e.showGlassCss&&(l=on);let u=mi(e.tokenCss??fn(`light`)),d=hi(e.headScripts??[],e.nonce),f=e.islands.length>0&&e.payload?` <script type="application/json" id="surface-payload">${fi(e.payload)}<\/script>`:``,p=yi(e.islands,e.exportPolicy,e.nonce),m=e.showGradientGlow?`
|
|
2315
3113
|
<div class="aikit-glow-primary"></div>
|
|
2316
3114
|
<div class="aikit-glow-secondary"></div>
|
|
2317
|
-
`:``,h=
|
|
2318
|
-
`),_=Array.isArray(e.css)?e.css:[e.css];return[`<!DOCTYPE html>`,`<html ${s.join(` `)}>`,`<head>`,` <meta charset="utf-8">`,` <meta name="viewport" content="width=device-width, initial-scale=1">`,` <title>${n(e.title)}</title>`,c?` <style>main {${c}}</style>`:``,
|
|
2319
|
-
`)}export{
|
|
3115
|
+
`:``,h=gi(i,e.nonce,a),g=[f,p].filter(Boolean).join(`
|
|
3116
|
+
`),_=Array.isArray(e.css)?e.css:[e.css];return[`<!DOCTYPE html>`,`<html ${s.join(` `)}>`,`<head>`,` <meta charset="utf-8">`,` <meta name="viewport" content="width=device-width, initial-scale=1">`,` <title>${n(e.title)}</title>`,c?` <style>main {${c}}</style>`:``,pi(u,[..._,l].filter(Boolean)),d,`</head>`,`<body>`,vn({title:e.title,subtitle:e.subtitle,transport:e.transport,actionsHtml:e.headerActionsHtml,showToolbox:e.showToolbox??!0,sharedChromeActions:a===`disabled`?[]:void 0}),h,m,` <main>${e.html}</main>`,yn({generatedAt:o,contentHtml:e.footerContentHtml,showInstallGuide:e.showInstallGuide,installUrl:e.installUrl}),g,`</body>`,`</html>`].filter(Boolean).join(`
|
|
3117
|
+
`)}export{V as HEADER_CLASS_NAMES,bn as HEADER_CSS,jn as TemplateRegistry,sn as allCss,an as baseCss,f as blockItems,di as buildCopyImageExportFallback,yn as buildFooter,vn as buildHeader,bi as buildShell,gi as buildThemeScript,Pn as checklistTemplate,B as collectCss,rn as darkTokenNames,R as darkTokens,oi as dashboardTemplateDefinition,Bn as dataTableTemplate,Q as defaultRegistry,qn as diffViewTemplate,$n as documentTemplate,K as errorTemplate,n as escapeHtml,li as flameGraphTemplateDefinition,ir as formTemplate,a as formatValue,dn as generateDarkTokenCss,fn as generateTokenCss,on as glassCss,s as inlineMarkdown,t as isError,e as isResult,si as kanbanTemplateDefinition,ci as listSortTemplateDefinition,dr as pickerTemplate,On as renderBlock,kn as renderBlocks,Kr as renderSurface,br as reportTemplate,Tr as reviewTemplate,i as sanitizeId,r as sanitizeUrl,Ar as statusBoardTemplate,Fr as timelineTemplate,nn as tokenNames,L as tokens,u as toneName,d as toneVar,Vr as treeTemplate,o as tryParseJson};
|