@vpxa/aikit 0.1.311 → 0.1.313
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 +429 -138
- package/packages/present/dist/index.html +466 -215
- package/packages/server/dist/bin.js +1 -1
- package/packages/server/dist/index.js +1 -1
- package/packages/server/dist/{server-uxrUzJ0L.js → server-CPTH7EEq.js} +2 -2
- package/packages/server/dist/{server-CUEJEod-.js → server-D9Y42imA.js} +2 -2
- package/packages/server/dist/{server-http-DLqbe1NN.js → server-http-D34e6iap.js} +1 -1
- package/packages/server/dist/{server-http-C2Vv-0lq.js → server-http-GaLD7IIy.js} +1 -1
- package/packages/server/dist/{server-stdio-RjYFfC_c.js → server-stdio-BCpG8h95.js} +1 -1
- package/packages/server/dist/{server-stdio-h8m_nhNo.js → server-stdio-fTUlwk5u.js} +1 -1
- package/packages/server/viewers/c4-viewer.html +27 -27
- package/packages/server/viewers/canvas.html +287 -153
- package/packages/server/viewers/report-template.html +254 -120
- package/packages/server/viewers/task-plan-static.html +7 -7
- package/packages/server/viewers/tour-viewer.html +212 -78
- package/scaffold/dist/definitions/skills/c4-architecture.mjs +1 -1
- package/scaffold/dist/definitions/skills/docs.mjs +1 -1
|
@@ -1,57 +1,60 @@
|
|
|
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}"><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}"><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===`form-submit`&&e.schema){let r=e.schema;return`<form class="bk-form" data-action-id="${t}"><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}">${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 ee(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 h=[`#3b82f6`,`#10b981`,`#f59e0b`,`#ef4444`,`#8b5cf6`,`#ec4899`,`#06b6d4`,`#84cc16`],te=new Set([`line`,`area`,`bar`,`horizontal-bar`,`pie`,`donut`,`sparkline`,`heatmap`]);function ne(e,t){let n=re(e),r=ue(n.headers,n.data);if(n.data.length===0||!te.has(n.chartType))return _(n.note,r);let i=ie(n);if(!i)return _(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?fe(a):``}${de(r)}</div>`}function re(e){let t=o(e.value),r=Array.isArray(t?.data)?t.data:[],i=String(t?.chartType??e.chartType??`bar`),a=te.has(i)?i:`bar`,s=n(i),c=pe(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 ie(e){switch(e.chartType){case`line`:case`area`:return ae(e,e.chartType===`area`);case`bar`:return oe(e);case`horizontal-bar`:return se(e);case`pie`:return g(e,!1);case`donut`:return g(e,!0);case`sparkline`:return ce(e);case`heatmap`:return le(e);default:return``}}function ae(e,t){let r=v(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=h[n%h.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 oe(e){let t=v(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=h[t%h.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 se(e){let t=v(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=h[t%h.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 g(e,t){let r=me(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=h[r%h.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 ce(e){let t=me(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="${h[0]}" stroke-width="2.25" stroke-linejoin="round" stroke-linecap="round" points="${i.join(` `)}" /></svg>`}function le(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 ue(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 _(e,t){return`<div class="bk-chart"><div class="bk-chart-note">Chart fallback (${e}) rendered as a data table.</div>${t}</div>`}function de(e){return`<details class="bk-chart-details"><summary>Show data</summary>${e}</details>`}function fe(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:${h[t%h.length]}"></span>${n(e)}</span>`).join(``)}</div>`}function pe(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 me(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 v(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=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 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=>{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 Te(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 Ee(e){let t=o(e);return Array.isArray(t)?t:t&&typeof t==`object`&&Array.isArray(t.columns)?t.columns:[]}function De(e,t){return`<div class="bk-comparison">${Ee(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 Oe(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 ke(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 Ae(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 je(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 Me(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 Ne(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 Pe(e,t){let r=Oe(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=[ke(r.responsibilities??[]),Ae(r.interfaces??[]),je(r.dependencies??[]),Me(r.metrics),Ne(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 Fe(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 Ie(e){return Array.isArray(e.constraints)&&e.constraints.includes(`primary-key`)}function Le(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 Re(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 ze(e,t){let r=Fe(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=>Le(e)).join(``):`<span class="bk-data-table-schema-badge">none</span>`;return`<tr class="bk-data-table-schema-row${Ie(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>${Re(r.indexes??[])}</section>`}function Be(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 Ve(t.before,t.after)}return``}function Ve(e,t){let n=e.split(`
|
|
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}"><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}"><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===`form-submit`&&e.schema){let r=e.schema;return`<form class="bk-form" data-action-id="${t}"><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}">${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 ee(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 h=[`#3b82f6`,`#10b981`,`#f59e0b`,`#ef4444`,`#8b5cf6`,`#ec4899`,`#06b6d4`,`#84cc16`],te=new Set([`line`,`area`,`bar`,`horizontal-bar`,`pie`,`donut`,`sparkline`,`heatmap`]);function ne(e,t){let n=re(e),r=de(n.headers,n.data);if(n.data.length===0||!te.has(n.chartType))return fe(n.note,r);let i=ie(n);if(!i)return fe(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?me(a):``}${pe(r)}</div>`}function re(e){let t=o(e.value),r=Array.isArray(t?.data)?t.data:[],i=String(t?.chartType??e.chartType??`bar`),a=te.has(i)?i:`bar`,s=n(i),c=he(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 ie(e){switch(e.chartType){case`line`:case`area`:return ae(e,e.chartType===`area`);case`bar`:return oe(e);case`horizontal-bar`:return se(e);case`pie`:return ce(e,!1);case`donut`:return ce(e,!0);case`sparkline`:return le(e);case`heatmap`:return ue(e);default:return``}}function ae(e,t){let r=g(e.data,e.xKey,e.yKeys),i=r.flatMap(e=>e.values).filter(Number.isFinite);if(i.length===0)return``;let a=v(i),o=_(500,300,{left:60,right:20,top:20,bottom:40}),s=r.map((e,t)=>xe(t,r.length,o.left,o.right)),c=e.yKeys.map((e,n)=>{let i=h[n%h.length],c=r.map((e,t)=>{let r=s[t],i=y(e.values[n],a,o.bottom,o.top);return`${w(r)},${w(i)}`}),l=r.map((e,t)=>{let r=s[t],c=y(e.values[n],a,o.bottom,o.top);return`<circle cx="${w(r)}" cy="${w(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="${[`${w(s[0])},${w(o.bottom)}`,...c,`${w(s[s.length-1])},${w(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`)}">${_e(o,a)}${ye(o)}${be(r,s,o.bottom+18)}${c}</svg>`}function oe(e){let t=g(e.data,e.xKey,e.yKeys),n=t.flatMap(e=>e.values).filter(Number.isFinite);if(n.length===0)return``;let r=v(n,{includeZero:!0}),i=_(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=y(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=h[t%h.length],s=n+t*(o+4),l=y(e,r,i.bottom,i.top),u=Math.min(l,c),d=Math.max(1,Math.abs(c-l));return`<rect x="${w(s)}" y="${w(u)}" width="${w(o)}" height="${w(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">${_e(i,r)}${ye(i)}${be(t,u,i.bottom+18)}${l}</svg>`}function se(e){let t=g(e.data,e.xKey,e.yKeys),r=t.flatMap(e=>e.values).filter(Number.isFinite);if(r.length===0)return``;let i=v(r,{includeZero:!0}),a=_(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=y(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="${w(a.left-8)}" y="${w(u)}" text-anchor="end">${n(e.label)}</text>`}${e.values.map((e,t)=>{let n=h[t%h.length],o=r+t*(s+4),c=y(e,i,a.left,a.right),u=Math.min(l,c),d=Math.max(1,Math.abs(c-l));return`<rect x="${w(u)}" y="${w(o)}" width="${w(d)}" height="${w(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">${ve(a,i)}<line class="bk-chart-axis" x1="${w(l)}" y1="${w(a.top)}" x2="${w(l)}" y2="${w(a.bottom)}" />${u}</svg>`}function ce(e,t){let r=ge(e.data,e.xKey,e.yKeys),i=e.data.map(t=>({label:x(t[e.xKey]),value:S(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=h[r%h.length],u=e.value/a*360,d=s+u,f=e.value/a*100,p=t?Ce(150,140,88,o,s,d):Se(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=b(150,140,108,s+u/2);l.push(`<text class="bk-chart-slice-label" x="${w(m.x)}" y="${w(m.y)}" text-anchor="${m.x>=150?`start`:`end`}">${n(e.label)} ${n(C(f))}%</text>`),s=d});let u=t?`<circle cx="150" cy="140" r="${w(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 le(e){let t=ge(e.data,e.xKey,e.yKeys),n=e.data.map(e=>S(e[t]));if(n.every(e=>e===0))return``;let r=v(n),i=n.map((e,t)=>{let i=xe(t,n.length,0,100),a=y(e,r,28,2);return`${w(i)},${w(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="${h[0]}" stroke-width="2.25" stroke-linejoin="round" stroke-linecap="round" points="${i.join(` `)}" /></svg>`}function ue(e){let t=e.data.map(t=>({label:x(t[e.xKey]),values:e.yKeys.map(e=>S(t[e]))})),r=t.flatMap(e=>e.values).filter(Number.isFinite);if(r.length===0)return``;let i=v(r),a=_(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="${w(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="${w(a.left-8)}" y="${w(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="${w(r)}" y="${w(c)}" width="${w(o-4)}" height="${w(s-4)}" rx="4" stroke="var(--dt-border-muted)" style="fill: ${we(e,i)}" />`}).join(``)).join(``)}</svg>`}function de(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 fe(e,t){return`<div class="bk-chart"><div class="bk-chart-note">Chart fallback (${e}) rendered as a data table.</div>${t}</div>`}function pe(e){return`<details class="bk-chart-details"><summary>Show data</summary>${e}</details>`}function me(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:${h[t%h.length]}"></span>${n(e)}</span>`).join(``)}</div>`}function he(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 ge(e,t,n){let r=n.find(n=>n!==t&&e.some(e=>Te(e[n])));if(r)return r;for(let n of e){let e=Object.keys(n).find(e=>e!==t&&Te(n[e]));if(e)return e}return n[0]??`value`}function g(e,t,n){return e.map(e=>({label:x(e[t]),values:n.map(t=>S(e[t]))}))}function _e(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="${w(e.left)}" y1="${w(s)}" x2="${w(e.right)}" y2="${w(s)}" /><text class="bk-chart-label" x="${w(e.left-8)}" y="${w(s+4)}" text-anchor="end">${n(C(o))}</text>`}).join(``)}function ve(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="${w(s)}" y1="${w(e.top)}" x2="${w(s)}" y2="${w(e.bottom)}" /><text class="bk-chart-label" x="${w(s)}" y="${w(e.bottom+18)}" text-anchor="middle">${n(C(o))}</text>`}).join(``)}function ye(e){return`<line class="bk-chart-axis" x1="${w(e.left)}" y1="${w(e.top)}" x2="${w(e.left)}" y2="${w(e.bottom)}" /><line class="bk-chart-axis" x1="${w(e.left)}" y1="${w(e.bottom)}" x2="${w(e.right)}" y2="${w(e.bottom)}" />`}function be(e,t,r){return e.map((e,i)=>`<text class="bk-chart-label" x="${w(t[i])}" y="${w(r)}" text-anchor="middle">${n(e.label)}</text>`).join(``)}function _(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 v(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 xe(e,t,n,r){return t<=1?(n+r)/2:n+e/(t-1)*(r-n)}function y(e,t,n,r){return n+(e-t.min)/(t.max-t.min)*(r-n)}function Se(e,t,n,r,i){if(Math.abs(i-r)>=359.999)return``;let a=b(e,t,n,r),o=b(e,t,n,i),s=+(i-r>180);return`M ${w(e)} ${w(t)} L ${w(a.x)} ${w(a.y)} A ${w(n)} ${w(n)} 0 ${s} 1 ${w(o.x)} ${w(o.y)} Z`}function Ce(e,t,n,r,i,a){if(Math.abs(a-i)>=359.999)return``;let o=b(e,t,n,i),s=b(e,t,n,a),c=b(e,t,r,a),l=b(e,t,r,i),u=+(a-i>180);return[`M ${w(o.x)} ${w(o.y)}`,`A ${w(n)} ${w(n)} 0 ${u} 1 ${w(s.x)} ${w(s.y)}`,`L ${w(c.x)} ${w(c.y)}`,`A ${w(r)} ${w(r)} 0 ${u} 0 ${w(l.x)} ${w(l.y)}`,`Z`].join(` `)}function b(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 we(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) ${w(100-n)}%, var(--dt-accent-fg) ${w(n)}%)`}function x(e){return e==null?``:String(a(e))}function S(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 Te(e){return typeof e==`number`?Number.isFinite(e):typeof e==`string`&&e.trim()!==``&&Number.isFinite(Number(e))}function C(e){return String(a(Number(e.toFixed(2))))}function w(e){return Number(e.toFixed(2)).toString()}function Ee(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 De(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 Oe(e){let t=o(e);return Array.isArray(t)?t:t&&typeof t==`object`&&Array.isArray(t.columns)?t.columns:[]}function ke(e,t){return`<div class="bk-comparison">${Oe(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 Ae(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 je(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 Me(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 Ne(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 Pe(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 Fe(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 Ie(e,t){let r=Ae(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=[je(r.responsibilities??[]),Me(r.interfaces??[]),Ne(r.dependencies??[]),Pe(r.metrics),Fe(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 Le(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 Re(e){return Array.isArray(e.constraints)&&e.constraints.includes(`primary-key`)}function ze(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 Be(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 Ve(e,t){let r=Le(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=>ze(e)).join(``):`<span class="bk-data-table-schema-badge">none</span>`;return`<tr class="bk-data-table-schema-row${Re(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>${Be(r.indexes??[])}</section>`}function He(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 Ue(t.before,t.after)}return``}function Ue(e,t){let n=e.split(`
|
|
2
2
|
`),r=t.split(`
|
|
3
3
|
`),i=[`@@ -1,${n.length} +1,${r.length} @@`];for(let e of n)i.push(`-${e}`);for(let e of r)i.push(`+${e}`);return i.join(`
|
|
4
|
-
`)}function
|
|
5
|
-
`),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(/\+(\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(`+++`))s.push(`<tr class="bk-diff-header"><td colspan="3">${n(e)}</td></tr>`);else if(e.startsWith(`+`))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++,s.push(`<tr class="bk-diff-del"><td class="bk-diff-ln">${a}</td><td class="bk-diff-ln"></td><td class="bk-diff-line">${n(e)}</td></tr>`);else{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>`)}return`<div class="bk-diff"><table class="bk-diff-table">${s.join(``)}</table></div>`}function
|
|
6
|
-
`))}</pre>`}const
|
|
4
|
+
`)}function We(e,t){let r=He(e.value);if(!r)return`<div class="bk-diff"></div>`;let i=r.split(`
|
|
5
|
+
`),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(/\+(\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(`+++`))s.push(`<tr class="bk-diff-header"><td colspan="3">${n(e)}</td></tr>`);else if(e.startsWith(`+`))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++,s.push(`<tr class="bk-diff-del"><td class="bk-diff-ln">${a}</td><td class="bk-diff-ln"></td><td class="bk-diff-line">${n(e)}</td></tr>`);else{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>`)}return`<div class="bk-diff"><table class="bk-diff-table">${s.join(``)}</table></div>`}function Ge(e){let t=o(e);return Array.isArray(t)?t:t&&typeof t==`object`&&Array.isArray(t.files)?t.files:[]}function Ke(e,t){return`<div class="bk-docs-browser">${Ge(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 qe(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 Je(e){switch(e){case`draft`:return`warning`;case`deprecated`:return`danger`;default:return`accent`}}function Ye(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="${Je(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 Xe(e,t){let r=qe(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=>Ye(e)).join(``)}</div>`:`<p class="bk-docs-hub-empty">No documentation pages available.</p>`}</section>`}function Ze(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 Qe(e,t){let r=Ze(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 $e(e){return String(e??``).replace(/"/g,`\\"`)}function et(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=$e(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?`|${$e(e.label)}|`:``;a.push(` ${t} -->${r} ${n}`)}return`<pre class="bk-graph mermaid">${n(a.join(`
|
|
6
|
+
`))}</pre>`}const tt=`
|
|
7
7
|
.bk-heading {
|
|
8
8
|
margin: 0;
|
|
9
9
|
color: var(--dt-text-primary);
|
|
10
10
|
font-family: var(--dt-font-sans);
|
|
11
11
|
font-weight: 700;
|
|
12
|
-
line-height: 1.
|
|
12
|
+
line-height: 1.2;
|
|
13
|
+
letter-spacing: -0.02em;
|
|
13
14
|
}
|
|
14
|
-
.bk-heading--1 { font-size: var(--dt-font-size-
|
|
15
|
-
.bk-heading--2 { font-size: var(--dt-font-size-
|
|
16
|
-
.bk-heading--3 { font-size: var(--dt-font-size-
|
|
17
|
-
.bk-heading--4 { font-size: var(--dt-font-size-
|
|
15
|
+
.bk-heading--1 { font-size: var(--dt-font-size-4xl); letter-spacing: -0.03em; }
|
|
16
|
+
.bk-heading--2 { font-size: var(--dt-font-size-3xl); }
|
|
17
|
+
.bk-heading--3 { font-size: var(--dt-font-size-2xl); }
|
|
18
|
+
.bk-heading--4 { font-size: var(--dt-font-size-xl); }
|
|
18
19
|
.bk-heading--5,
|
|
19
|
-
.bk-heading--6 { font-size: var(--dt-font-size-base); }
|
|
20
|
-
`;function
|
|
21
|
-
${
|
|
20
|
+
.bk-heading--6 { font-size: var(--dt-font-size-base); letter-spacing: normal; }
|
|
21
|
+
`;function nt(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 rt(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 it(e,t){return`<dl class="bk-kv">${rt(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 at(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 ot(e){switch(e){case`completed`:return`success`;case`error`:return`danger`;case`pending`:return`slate`;default:return`accent`}}function st(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 ct(e){return e.type===`decision`?{width:112,height:112}:{width:164,height:84}}function lt(e){let t=32;return e.map(e=>{let{width:n,height:r}=ct(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 ut(e){let t=st(e.step.label,e.step.type===`decision`?12:16),r=e.step.description?st(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--${ot(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 ft(e,t){return Array.isArray(t)&&t.length>0?t:e.slice(1).map((t,n)=>({from:e[n].id,to:t.id}))}function pt(e,t){let r=at(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=lt(i),o=new Map(a.map(e=>[e.step.id,e])),s=ft(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=>ut(e)).join(``)}</g></svg></div></figure>`}function mt(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 ht=`
|
|
22
|
+
${tt}
|
|
22
23
|
.bk-markdown {
|
|
23
24
|
color: var(--dt-text-primary);
|
|
24
25
|
font-size: var(--dt-font-size-base);
|
|
25
26
|
line-height: 1.7;
|
|
26
27
|
}
|
|
27
|
-
`,
|
|
28
|
-
`))}</code></pre>`),o=!1,s=[],c=``}continue}if(o){s.push(e);continue}if(!t){l();continue}let r=t.match(
|
|
29
|
-
`))}</code></pre>`)}return`<div class="bk-markdown">${i.join(``)}</div>`}function ht(e,t){return`<pre class="bk-mermaid mermaid">${n(String(e.value??``))}</pre>`}function gt(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 _t(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>${gt(e.trend)}</article>`).join(``)}</div>`}function vt(e,t){return`<p class="bk-paragraph">${n(String(e.value??e.text??``))}</p>`}function yt(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 bt(e,t){return`<div class="bk-progress">${yt(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 xt(e){if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e??``)}}function St(e,t){return`<pre class="bk-prompt">${n(xt(e.value))}</pre>`}function Ct(e,t){return`<hr class="bk-separator">`}function wt(e){let t=o(e);return Array.isArray(t)?t:t&&typeof t==`object`&&Array.isArray(t.items)?t.items:[]}function Tt(e,t){return`<div class="bk-status-board">${wt(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 Et(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function A(e){let t=(e??[]).map(e=>{if(Et(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 Dt(e){if(Array.isArray(e.columns)){let{headers:t,keys:n}=A(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}=A(e.columns);return{headers:t,keys:n,rows:[]}}return{headers:[],keys:[],rows:[]}}function Ot(e,t){let{headers:r,keys:i,rows:o}=Dt(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 kt(e){let t=o(e);return Array.isArray(t)?t:t&&typeof t==`object`&&Array.isArray(t.items)?t.items:[]}function At(e,t){return`<div class="bk-tags">${kt(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 jt(e,t){return`<div class="bk-text">${s(String(e.value??``)).replace(/\n/g,`<br>`)}</div>`}function Mt(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 j(e,t){if(Array.isArray(e)){let r=e.map(e=>j(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 j(r.children??[],i);let a=Object.entries(r).map(([e,t])=>j(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 Nt(e,t){return`<div class="bk-tree">${j(o(e.value))}</div>`}const M={"--dt-bg-primary":`#f8f9fa`,"--dt-bg-secondary":`#f1f3f5`,"--dt-bg-tertiary":`#ffffff`,"--dt-bg-canvas":`#f8f9fa`,"--dt-text-primary":`#111111`,"--dt-text-secondary":`#4b5563`,"--dt-text-tertiary":`#9ca3af`,"--dt-border-default":`#e5e7eb`,"--dt-border-muted":`#d7dce2`,"--dt-border-subtle":`#eef2f5`,"--dt-accent-fg":`#147d74`,"--dt-accent-emphasis":`#147d74`,"--dt-accent-muted":`rgba(20, 125, 116, 0.3)`,"--dt-accent-subtle":`rgba(20, 125, 116, 0.1)`,"--dt-success-fg":`#10b981`,"--dt-success-emphasis":`#059669`,"--dt-success-muted":`rgba(16, 185, 129, 0.3)`,"--dt-success-subtle":`rgba(16, 185, 129, 0.1)`,"--dt-danger-fg":`#ef4444`,"--dt-danger-emphasis":`#dc2626`,"--dt-danger-muted":`rgba(239, 68, 68, 0.3)`,"--dt-danger-subtle":`rgba(239, 68, 68, 0.1)`,"--dt-warning-fg":`#f59e0b`,"--dt-warning-emphasis":`#d97706`,"--dt-warning-muted":`rgba(245, 158, 11, 0.3)`,"--dt-warning-subtle":`rgba(245, 158, 11, 0.1)`,"--dt-info-fg":`#3b82f6`,"--dt-info-emphasis":`#2563eb`,"--dt-info-muted":`rgba(59, 130, 246, 0.3)`,"--dt-info-subtle":`rgba(59, 130, 246, 0.1)`,"--dt-purple-fg":`#8250df`,"--dt-purple-emphasis":`#6639ba`,"--dt-purple-muted":`rgba(130, 80, 223, 0.3)`,"--dt-purple-subtle":`rgba(130, 80, 223, 0.1)`,"--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-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-12":`3rem`,"--dt-space-16":`4rem`,"--dt-radius-sm":`6px`,"--dt-radius-md":`8px`,"--dt-radius-lg":`12px`,"--dt-radius-xl":`16px`,"--dt-shadow-sm":`0 1px 2px rgba(0, 0, 0, 0.07)`,"--dt-shadow-md":`0 3px 6px rgba(0, 0, 0, 0.1)`,"--dt-shadow-lg":`0 8px 24px rgba(0, 0, 0, 0.12)`,"--dt-glow-accent":`rgba(20, 125, 116, 0.08)`,"--dt-glow-success":`rgba(16, 185, 129, 0.08)`,"--dt-glow-danger":`rgba(239, 68, 68, 0.08)`,"--dt-glow-warning":`rgba(245, 158, 11, 0.08)`,"--dt-glow-purple":`rgba(130, 80, 223, 0.08)`,"--dt-transition-fast":`150ms ease`,"--dt-transition-normal":`200ms ease`},N={"--dt-bg-primary":`#0c0c0c`,"--dt-bg-secondary":`#161616`,"--dt-bg-tertiary":`#232323`,"--dt-bg-canvas":`#0c0c0c`,"--dt-text-primary":`#ffffff`,"--dt-text-secondary":`#a0a4ab`,"--dt-text-tertiary":`#6b7280`,"--dt-border-default":`#24282d`,"--dt-border-muted":`#2a2f35`,"--dt-border-subtle":`#1a1d20`,"--dt-accent-fg":`#5db8a6`,"--dt-accent-emphasis":`#5db8a6`,"--dt-accent-muted":`rgba(93, 184, 166, 0.4)`,"--dt-accent-subtle":`rgba(93, 184, 166, 0.15)`,"--dt-success-emphasis":`#10b981`,"--dt-success-muted":`rgba(16, 185, 129, 0.4)`,"--dt-success-subtle":`rgba(16, 185, 129, 0.15)`,"--dt-danger-emphasis":`#ef4444`,"--dt-danger-muted":`rgba(239, 68, 68, 0.4)`,"--dt-danger-subtle":`rgba(239, 68, 68, 0.15)`,"--dt-warning-emphasis":`#f59e0b`,"--dt-warning-muted":`rgba(245, 158, 11, 0.4)`,"--dt-warning-subtle":`rgba(245, 158, 11, 0.15)`,"--dt-info-fg":`#60a5fa`,"--dt-info-emphasis":`#3b82f6`,"--dt-info-muted":`rgba(96, 165, 250, 0.4)`,"--dt-info-subtle":`rgba(96, 165, 250, 0.15)`,"--dt-purple-fg":`#bc8cff`,"--dt-purple-emphasis":`#a371f7`,"--dt-purple-muted":`rgba(188, 140, 255, 0.4)`,"--dt-purple-subtle":`rgba(188, 140, 255, 0.15)`,"--dt-shadow-sm":`0 1px 2px rgba(0, 0, 0, 0.35)`,"--dt-shadow-md":`0 3px 6px rgba(0, 0, 0, 0.4)`,"--dt-shadow-lg":`0 8px 24px rgba(0, 0, 0, 0.45)`,"--dt-glow-accent":`rgba(93, 184, 166, 0.14)`,"--dt-glow-success":`rgba(16, 185, 129, 0.14)`,"--dt-glow-danger":`rgba(239, 68, 68, 0.14)`,"--dt-glow-warning":`rgba(245, 158, 11, 0.14)`,"--dt-glow-purple":`rgba(188, 140, 255, 0.14)`},Pt=`--dt-bg-primary.--dt-bg-secondary.--dt-bg-tertiary.--dt-bg-canvas.--dt-text-primary.--dt-text-secondary.--dt-text-tertiary.--dt-border-default.--dt-border-muted.--dt-border-subtle.--dt-accent-fg.--dt-accent-emphasis.--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-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-space-1.--dt-space-2.--dt-space-3.--dt-space-4.--dt-space-5.--dt-space-6.--dt-space-8.--dt-space-12.--dt-space-16.--dt-radius-sm.--dt-radius-md.--dt-radius-lg.--dt-radius-xl.--dt-shadow-sm.--dt-shadow-md.--dt-shadow-lg.--dt-glow-accent.--dt-glow-success.--dt-glow-danger.--dt-glow-warning.--dt-glow-purple.--dt-transition-fast.--dt-transition-normal`.split(`.`),Ft=`--dt-bg-primary.--dt-bg-secondary.--dt-bg-tertiary.--dt-bg-canvas.--dt-text-primary.--dt-text-secondary.--dt-text-tertiary.--dt-border-default.--dt-border-muted.--dt-border-subtle.--dt-accent-fg.--dt-accent-emphasis.--dt-accent-muted.--dt-accent-subtle.--dt-success-emphasis.--dt-success-muted.--dt-success-subtle.--dt-danger-emphasis.--dt-danger-muted.--dt-danger-subtle.--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-accent.--dt-glow-success.--dt-glow-danger.--dt-glow-warning.--dt-glow-purple`.split(`.`),P={actions:`
|
|
28
|
+
`,gt=/^(#{1,6})\s+(.+)$/,_t=/^(?:(?:-\s*){3,}|(?:\*\s*){3,}|(?:_\s*){3,})$/;function vt(e){return e.length?`<p>${e.map(e=>s(e)).join(`<br>`)}</p>`:``}function yt(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=vt(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)}"`:``;i.push(`<pre class="bk-code"><code${e}>${n(s.join(`
|
|
29
|
+
`))}</code></pre>`),o=!1,s=[],c=``}continue}if(o){s.push(e);continue}if(!t){l();continue}let r=t.match(gt);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(_t.test(t)){l(),i.push(`<hr>`);continue}a.push(e)}if(l(),o&&s.length>0){let e=c?` class="${n(c)}"`:``;i.push(`<pre class="bk-code"><code${e}>${n(s.join(`
|
|
30
|
+
`))}</code></pre>`)}return`<div class="bk-markdown">${i.join(``)}</div>`}function bt(e,t){return`<pre class="bk-mermaid mermaid">${n(String(e.value??``))}</pre>`}function xt(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 St(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>${xt(e.trend)}</article>`).join(``)}</div>`}function Ct(e,t){return`<p class="bk-paragraph">${n(String(e.value??e.text??``))}</p>`}function wt(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 Tt(e,t){return`<div class="bk-progress">${wt(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 Et(e){if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e??``)}}function Dt(e,t){return`<pre class="bk-prompt">${n(Et(e.value))}</pre>`}function Ot(e,t){return`<hr class="bk-separator">`}function kt(e){let t=o(e);return Array.isArray(t)?t:t&&typeof t==`object`&&Array.isArray(t.items)?t.items:[]}function At(e,t){return`<div class="bk-status-board">${kt(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 jt(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Mt(e){let t=(e??[]).map(e=>{if(jt(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 Nt(e){if(Array.isArray(e.columns)){let{headers:t,keys:n}=Mt(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}=Mt(e.columns);return{headers:t,keys:n,rows:[]}}return{headers:[],keys:[],rows:[]}}function Pt(e,t){let{headers:r,keys:i,rows:o}=Nt(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 Ft(e){let t=o(e);return Array.isArray(t)?t:t&&typeof t==`object`&&Array.isArray(t.items)?t.items:[]}function It(e,t){return`<div class="bk-tags">${Ft(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 Lt(e,t){return`<div class="bk-text">${s(String(e.value??``)).replace(/\n/g,`<br>`)}</div>`}function Rt(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 T(e,t){if(Array.isArray(e)){let r=e.map(e=>T(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 T(r.children??[],i);let a=Object.entries(r).map(([e,t])=>T(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 zt(e,t){return`<div class="bk-tree">${T(o(e.value))}</div>`}const E={"--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)`},D={"--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)`},Bt=`--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(`.`),Vt=`--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(`.`),O={actions:`
|
|
30
31
|
.bk-actions {
|
|
31
32
|
display: flex;
|
|
32
33
|
flex-wrap: wrap;
|
|
33
34
|
gap: var(--dt-space-3);
|
|
35
|
+
align-items: center;
|
|
34
36
|
}
|
|
35
37
|
|
|
36
38
|
.bk-action,
|
|
37
39
|
.bk-select {
|
|
38
|
-
min-height: 2.
|
|
40
|
+
min-height: 2.25rem;
|
|
39
41
|
border: 1px solid var(--dt-border-default);
|
|
40
42
|
border-radius: var(--dt-radius-md);
|
|
41
43
|
background: var(--dt-bg-secondary);
|
|
42
44
|
color: var(--dt-text-primary);
|
|
43
45
|
font: inherit;
|
|
46
|
+
font-size: var(--dt-font-size-sm);
|
|
44
47
|
}
|
|
45
48
|
|
|
46
49
|
.bk-action {
|
|
47
50
|
padding: 0 var(--dt-space-4);
|
|
48
51
|
cursor: pointer;
|
|
49
|
-
transition:
|
|
52
|
+
transition: background var(--dt-transition-fast), border-color var(--dt-transition-fast), box-shadow var(--dt-transition-fast);
|
|
50
53
|
}
|
|
51
54
|
|
|
52
55
|
.bk-action:hover {
|
|
53
|
-
|
|
54
|
-
|
|
56
|
+
background: var(--dt-bg-tertiary);
|
|
57
|
+
border-color: var(--dt-accent-muted);
|
|
55
58
|
}
|
|
56
59
|
|
|
57
60
|
.bk-action--primary {
|
|
@@ -60,24 +63,37 @@ ${O}
|
|
|
60
63
|
color: #ffffff;
|
|
61
64
|
}
|
|
62
65
|
|
|
66
|
+
.bk-action--primary:hover {
|
|
67
|
+
background: color-mix(in srgb, var(--dt-accent-emphasis) 85%, #000000);
|
|
68
|
+
border-color: var(--dt-accent-emphasis);
|
|
69
|
+
}
|
|
70
|
+
|
|
63
71
|
.bk-action--danger {
|
|
64
72
|
background: var(--dt-danger-emphasis);
|
|
65
73
|
border-color: var(--dt-danger-emphasis);
|
|
66
74
|
color: #ffffff;
|
|
67
75
|
}
|
|
68
76
|
|
|
77
|
+
.bk-action--danger:hover {
|
|
78
|
+
background: color-mix(in srgb, var(--dt-danger-emphasis) 85%, #000000);
|
|
79
|
+
border-color: var(--dt-danger-emphasis);
|
|
80
|
+
}
|
|
81
|
+
|
|
69
82
|
.bk-select {
|
|
70
83
|
padding: 0 var(--dt-space-3);
|
|
84
|
+
cursor: pointer;
|
|
71
85
|
}
|
|
86
|
+
|
|
72
87
|
.bk-text-submit { display: flex; gap: var(--dt-space-2); align-items: center; }
|
|
73
|
-
.bk-input { min-height: 2.
|
|
74
|
-
.bk-input:focus { outline:
|
|
88
|
+
.bk-input { min-height: 2.25rem; padding: 0 var(--dt-space-3); border: 1px solid var(--dt-border-default); border-radius: var(--dt-radius-md); background: var(--dt-bg-primary); color: var(--dt-text-primary); font: inherit; font-size: var(--dt-font-size-sm); flex: 1; min-width: 200px; transition: border-color var(--dt-transition-fast); }
|
|
89
|
+
.bk-input:focus { outline: none; border-color: var(--dt-accent-emphasis); box-shadow: 0 0 0 2px var(--dt-accent-subtle); }
|
|
90
|
+
.bk-input::placeholder { color: var(--dt-text-tertiary); }
|
|
75
91
|
.bk-form { display: flex; flex-direction: column; gap: var(--dt-space-3); }
|
|
76
92
|
.bk-form fieldset { border: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--dt-space-3); }
|
|
77
93
|
.bk-form-field { display: flex; flex-direction: column; gap: var(--dt-space-1); }
|
|
78
|
-
.bk-form-label { font-size:
|
|
79
|
-
.bk-action-feedback { font-size:
|
|
80
|
-
.bk-action-feedback[data-feedback-state="sent"] { color: var(--dt-success-fg
|
|
94
|
+
.bk-form-label { font-size: var(--dt-font-size-sm); font-weight: 500; color: var(--dt-text-secondary); }
|
|
95
|
+
.bk-action-feedback { font-size: var(--dt-font-size-sm); color: var(--dt-text-secondary); padding: var(--dt-space-2) 0; }
|
|
96
|
+
.bk-action-feedback[data-feedback-state="sent"] { color: var(--dt-success-fg); }
|
|
81
97
|
`,cards:`
|
|
82
98
|
.bk-cards {
|
|
83
99
|
display: grid;
|
|
@@ -88,17 +104,18 @@ ${O}
|
|
|
88
104
|
.bk-card {
|
|
89
105
|
display: grid;
|
|
90
106
|
gap: var(--dt-space-3);
|
|
91
|
-
padding: var(--dt-space-
|
|
107
|
+
padding: var(--dt-space-5);
|
|
92
108
|
border: 1px solid var(--dt-border-default);
|
|
93
109
|
border-radius: var(--dt-radius-xl);
|
|
94
|
-
background:
|
|
110
|
+
background: var(--dt-bg-secondary);
|
|
95
111
|
box-shadow: var(--dt-shadow-sm);
|
|
96
|
-
transition: transform var(--dt-transition-
|
|
112
|
+
transition: transform var(--dt-transition-normal), box-shadow var(--dt-transition-normal), border-color var(--dt-transition-normal);
|
|
97
113
|
}
|
|
98
114
|
|
|
99
115
|
.bk-card:hover {
|
|
100
|
-
transform: translateY(-
|
|
101
|
-
|
|
116
|
+
transform: translateY(-2px);
|
|
117
|
+
border-color: var(--dt-accent-muted);
|
|
118
|
+
box-shadow: 0 0 0 1px var(--dt-accent-subtle), var(--dt-shadow-md);
|
|
102
119
|
}
|
|
103
120
|
|
|
104
121
|
.bk-card-header {
|
|
@@ -112,21 +129,25 @@ ${O}
|
|
|
112
129
|
color: var(--dt-text-primary);
|
|
113
130
|
font-size: var(--dt-font-size-lg);
|
|
114
131
|
font-weight: 600;
|
|
132
|
+
letter-spacing: -0.01em;
|
|
115
133
|
}
|
|
116
134
|
|
|
117
135
|
.bk-card-body,
|
|
118
136
|
.bk-card-description {
|
|
119
137
|
color: var(--dt-text-secondary);
|
|
120
138
|
line-height: 1.6;
|
|
139
|
+
font-size: var(--dt-font-size-sm);
|
|
121
140
|
}
|
|
122
141
|
|
|
123
142
|
.bk-card-badge {
|
|
124
|
-
padding:
|
|
125
|
-
border-radius:
|
|
143
|
+
padding: 2px var(--dt-space-2);
|
|
144
|
+
border-radius: var(--dt-radius-pill);
|
|
126
145
|
background: var(--dt-accent-subtle);
|
|
127
146
|
color: var(--dt-accent-fg);
|
|
128
147
|
font-size: var(--dt-font-size-xs);
|
|
129
148
|
font-weight: 600;
|
|
149
|
+
letter-spacing: 0.02em;
|
|
150
|
+
white-space: nowrap;
|
|
130
151
|
}
|
|
131
152
|
`,chart:`
|
|
132
153
|
.bk-chart {
|
|
@@ -255,18 +276,26 @@ ${O}
|
|
|
255
276
|
border: 1px solid var(--dt-border-default);
|
|
256
277
|
border-radius: var(--dt-radius-lg);
|
|
257
278
|
background: var(--dt-bg-secondary);
|
|
279
|
+
transition: border-color var(--dt-transition-fast), background var(--dt-transition-fast);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
.bk-checklist-item:hover {
|
|
283
|
+
border-color: var(--dt-accent-muted);
|
|
284
|
+
background: var(--dt-bg-tertiary);
|
|
258
285
|
}
|
|
259
286
|
|
|
260
287
|
.bk-checklist-icon {
|
|
261
288
|
display: inline-flex;
|
|
262
289
|
align-items: center;
|
|
263
290
|
justify-content: center;
|
|
264
|
-
width:
|
|
265
|
-
height:
|
|
266
|
-
|
|
291
|
+
width: 1.5rem;
|
|
292
|
+
height: 1.5rem;
|
|
293
|
+
flex-shrink: 0;
|
|
294
|
+
margin-top: 1px;
|
|
295
|
+
border-radius: var(--dt-radius-sm);
|
|
267
296
|
background: var(--dt-danger-subtle);
|
|
268
297
|
color: var(--dt-danger-fg);
|
|
269
|
-
font-size: var(--dt-font-size-
|
|
298
|
+
font-size: var(--dt-font-size-xs);
|
|
270
299
|
font-weight: 700;
|
|
271
300
|
}
|
|
272
301
|
|
|
@@ -277,23 +306,27 @@ ${O}
|
|
|
277
306
|
|
|
278
307
|
.bk-checklist-label {
|
|
279
308
|
color: var(--dt-text-primary);
|
|
309
|
+
font-size: var(--dt-font-size-sm);
|
|
310
|
+
line-height: 1.5;
|
|
311
|
+
padding-top: 1px;
|
|
280
312
|
}
|
|
281
313
|
`,code:`
|
|
282
314
|
.bk-code {
|
|
283
315
|
margin: 0;
|
|
284
|
-
padding: var(--dt-space-
|
|
316
|
+
padding: var(--dt-space-5);
|
|
285
317
|
overflow-x: auto;
|
|
286
318
|
border: 1px solid var(--dt-border-default);
|
|
287
319
|
border-radius: var(--dt-radius-lg);
|
|
288
|
-
background: var(--dt-bg-secondary);
|
|
320
|
+
background: linear-gradient(180deg, var(--dt-bg-secondary), var(--dt-bg-primary));
|
|
289
321
|
color: var(--dt-text-primary);
|
|
322
|
+
box-shadow: inset 0 0 0 1px var(--dt-border-subtle);
|
|
323
|
+
tab-size: 2;
|
|
290
324
|
}
|
|
291
325
|
|
|
292
326
|
.bk-code code {
|
|
293
327
|
font-family: var(--dt-font-mono);
|
|
294
328
|
font-size: var(--dt-font-size-sm);
|
|
295
|
-
line-height: 1.
|
|
296
|
-
tab-size: 2;
|
|
329
|
+
line-height: 1.7;
|
|
297
330
|
}
|
|
298
331
|
`,diff:`
|
|
299
332
|
.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); }
|
|
@@ -314,24 +347,35 @@ ${O}
|
|
|
314
347
|
.bk-comparison-column {
|
|
315
348
|
display: grid;
|
|
316
349
|
gap: var(--dt-space-3);
|
|
317
|
-
padding: var(--dt-space-
|
|
350
|
+
padding: var(--dt-space-5);
|
|
318
351
|
border: 1px solid var(--dt-border-default);
|
|
319
352
|
border-radius: var(--dt-radius-lg);
|
|
320
353
|
background: var(--dt-bg-secondary);
|
|
354
|
+
box-shadow: var(--dt-shadow-sm);
|
|
321
355
|
}
|
|
322
356
|
|
|
323
357
|
.bk-comparison-title {
|
|
324
358
|
color: var(--dt-text-primary);
|
|
325
359
|
font-size: var(--dt-font-size-lg);
|
|
326
360
|
font-weight: 600;
|
|
361
|
+
letter-spacing: -0.01em;
|
|
362
|
+
padding-bottom: var(--dt-space-2);
|
|
363
|
+
border-bottom: 1px solid var(--dt-border-muted);
|
|
327
364
|
}
|
|
328
365
|
|
|
329
366
|
.bk-comparison-items {
|
|
330
367
|
display: grid;
|
|
331
368
|
gap: var(--dt-space-2);
|
|
332
369
|
margin: 0;
|
|
370
|
+
padding: 0;
|
|
333
371
|
padding-left: var(--dt-space-4);
|
|
334
372
|
color: var(--dt-text-secondary);
|
|
373
|
+
font-size: var(--dt-font-size-sm);
|
|
374
|
+
line-height: 1.6;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
.bk-comparison-items li {
|
|
378
|
+
padding-left: var(--dt-space-1);
|
|
335
379
|
}
|
|
336
380
|
`,"component-detail":`
|
|
337
381
|
.bk-component-detail {
|
|
@@ -845,11 +889,17 @@ ${O}
|
|
|
845
889
|
.bk-finding {
|
|
846
890
|
display: grid;
|
|
847
891
|
gap: var(--dt-space-3);
|
|
848
|
-
padding: var(--dt-space-4);
|
|
892
|
+
padding: var(--dt-space-4) var(--dt-space-5);
|
|
849
893
|
border: 1px solid var(--dt-border-default);
|
|
850
894
|
border-radius: var(--dt-radius-xl);
|
|
851
|
-
background:
|
|
895
|
+
background: var(--dt-bg-secondary);
|
|
852
896
|
box-shadow: var(--dt-shadow-sm);
|
|
897
|
+
transition: border-color var(--dt-transition-fast), box-shadow var(--dt-transition-fast);
|
|
898
|
+
}
|
|
899
|
+
|
|
900
|
+
.bk-finding:hover {
|
|
901
|
+
border-color: var(--dt-accent-muted);
|
|
902
|
+
box-shadow: var(--dt-shadow-md);
|
|
853
903
|
}
|
|
854
904
|
|
|
855
905
|
.bk-finding-header {
|
|
@@ -862,20 +912,25 @@ ${O}
|
|
|
862
912
|
.bk-finding-title {
|
|
863
913
|
color: var(--dt-text-primary);
|
|
864
914
|
font-size: var(--dt-font-size-lg);
|
|
865
|
-
font-weight:
|
|
915
|
+
font-weight: 600;
|
|
916
|
+
letter-spacing: -0.01em;
|
|
866
917
|
}
|
|
867
918
|
|
|
868
919
|
.bk-finding-severity {
|
|
869
|
-
padding:
|
|
870
|
-
border-radius:
|
|
920
|
+
padding: 2px var(--dt-space-2);
|
|
921
|
+
border-radius: var(--dt-radius-pill);
|
|
871
922
|
font-size: var(--dt-font-size-xs);
|
|
872
923
|
font-weight: 700;
|
|
873
924
|
text-transform: uppercase;
|
|
925
|
+
letter-spacing: 0.04em;
|
|
926
|
+
white-space: nowrap;
|
|
927
|
+
flex-shrink: 0;
|
|
874
928
|
}
|
|
875
929
|
|
|
876
930
|
.bk-finding-detail {
|
|
877
931
|
color: var(--dt-text-secondary);
|
|
878
932
|
line-height: 1.7;
|
|
933
|
+
font-size: var(--dt-font-size-sm);
|
|
879
934
|
}
|
|
880
935
|
`,graph:`
|
|
881
936
|
.bk-graph {
|
|
@@ -890,11 +945,11 @@ ${O}
|
|
|
890
945
|
font-size: var(--dt-font-size-sm);
|
|
891
946
|
line-height: 1.6;
|
|
892
947
|
}
|
|
893
|
-
`,heading:
|
|
948
|
+
`,heading:tt,kv:`
|
|
894
949
|
.bk-kv {
|
|
895
950
|
display: grid;
|
|
951
|
+
grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
|
|
896
952
|
gap: var(--dt-space-3);
|
|
897
|
-
margin: 0;
|
|
898
953
|
}
|
|
899
954
|
|
|
900
955
|
.bk-kv-entry {
|
|
@@ -904,13 +959,13 @@ ${O}
|
|
|
904
959
|
padding: var(--dt-space-3) var(--dt-space-4);
|
|
905
960
|
border: 1px solid var(--dt-border-default);
|
|
906
961
|
border-radius: var(--dt-radius-lg);
|
|
907
|
-
background:
|
|
962
|
+
background: var(--dt-bg-secondary);
|
|
908
963
|
}
|
|
909
964
|
|
|
910
965
|
.bk-kv-key {
|
|
911
966
|
margin: 0;
|
|
912
|
-
color: var(--dt-text-
|
|
913
|
-
font-size: var(--dt-font-size-
|
|
967
|
+
color: var(--dt-text-tertiary);
|
|
968
|
+
font-size: var(--dt-font-size-xs);
|
|
914
969
|
font-weight: 600;
|
|
915
970
|
letter-spacing: 0.04em;
|
|
916
971
|
text-transform: uppercase;
|
|
@@ -919,7 +974,8 @@ ${O}
|
|
|
919
974
|
.bk-kv-value {
|
|
920
975
|
margin: 0;
|
|
921
976
|
color: var(--dt-text-primary);
|
|
922
|
-
|
|
977
|
+
font-size: var(--dt-font-size-sm);
|
|
978
|
+
line-height: 1.5;
|
|
923
979
|
}
|
|
924
980
|
`,"lifecycle-flow":`
|
|
925
981
|
.bk-lifecycle-flow {
|
|
@@ -1028,6 +1084,7 @@ ${O}
|
|
|
1028
1084
|
position: relative;
|
|
1029
1085
|
padding-left: var(--dt-space-5);
|
|
1030
1086
|
color: var(--dt-text-primary);
|
|
1087
|
+
font-size: var(--dt-font-size-sm);
|
|
1031
1088
|
line-height: 1.7;
|
|
1032
1089
|
}
|
|
1033
1090
|
|
|
@@ -1036,14 +1093,14 @@ ${O}
|
|
|
1036
1093
|
position: absolute;
|
|
1037
1094
|
top: 0.85em;
|
|
1038
1095
|
left: var(--dt-space-1);
|
|
1039
|
-
width: 0.
|
|
1040
|
-
height: 0.
|
|
1096
|
+
width: 0.375rem;
|
|
1097
|
+
height: 0.375rem;
|
|
1041
1098
|
border-radius: 999px;
|
|
1042
1099
|
background: var(--dt-accent-fg);
|
|
1043
1100
|
box-shadow: 0 0 0 3px var(--dt-accent-subtle);
|
|
1044
1101
|
transform: translateY(-50%);
|
|
1045
1102
|
}
|
|
1046
|
-
`,markdown:
|
|
1103
|
+
`,markdown:ht,mermaid:`
|
|
1047
1104
|
.bk-mermaid {
|
|
1048
1105
|
margin: 0;
|
|
1049
1106
|
padding: var(--dt-space-4);
|
|
@@ -1082,29 +1139,38 @@ ${O}
|
|
|
1082
1139
|
.bk-metric {
|
|
1083
1140
|
display: grid;
|
|
1084
1141
|
gap: var(--dt-space-2);
|
|
1085
|
-
padding: var(--dt-space-
|
|
1142
|
+
padding: var(--dt-space-5);
|
|
1086
1143
|
border: 1px solid var(--dt-border-default);
|
|
1087
|
-
border-radius: var(--dt-radius-
|
|
1088
|
-
background:
|
|
1089
|
-
box-shadow:
|
|
1090
|
-
transition: transform var(--dt-transition-
|
|
1144
|
+
border-radius: var(--dt-radius-xl);
|
|
1145
|
+
background: var(--dt-bg-secondary);
|
|
1146
|
+
box-shadow: var(--dt-shadow-sm);
|
|
1147
|
+
transition: transform var(--dt-transition-normal), box-shadow var(--dt-transition-normal), border-color var(--dt-transition-normal);
|
|
1091
1148
|
}
|
|
1092
1149
|
|
|
1093
1150
|
.bk-metric:hover {
|
|
1094
|
-
transform: translateY(-
|
|
1095
|
-
|
|
1151
|
+
transform: translateY(-2px);
|
|
1152
|
+
border-color: var(--dt-accent-muted);
|
|
1153
|
+
box-shadow: 0 0 0 1px var(--dt-accent-subtle), var(--dt-shadow-md);
|
|
1096
1154
|
}
|
|
1097
1155
|
|
|
1098
1156
|
.bk-metric-value {
|
|
1099
1157
|
color: var(--dt-text-primary);
|
|
1100
|
-
font-size: var(--dt-font-size-
|
|
1158
|
+
font-size: var(--dt-font-size-3xl);
|
|
1101
1159
|
font-weight: 700;
|
|
1160
|
+
letter-spacing: -0.02em;
|
|
1161
|
+
line-height: 1.1;
|
|
1102
1162
|
}
|
|
1103
1163
|
|
|
1104
|
-
.bk-metric-label
|
|
1105
|
-
.bk-metric-trend {
|
|
1164
|
+
.bk-metric-label {
|
|
1106
1165
|
color: var(--dt-text-secondary);
|
|
1107
1166
|
font-size: var(--dt-font-size-sm);
|
|
1167
|
+
font-weight: 500;
|
|
1168
|
+
letter-spacing: 0.02em;
|
|
1169
|
+
}
|
|
1170
|
+
|
|
1171
|
+
.bk-metric-trend {
|
|
1172
|
+
color: var(--dt-text-tertiary);
|
|
1173
|
+
font-size: var(--dt-font-size-sm);
|
|
1108
1174
|
}
|
|
1109
1175
|
`,paragraph:`
|
|
1110
1176
|
.bk-paragraph {
|
|
@@ -1116,7 +1182,7 @@ ${O}
|
|
|
1116
1182
|
`,progress:`
|
|
1117
1183
|
.bk-progress {
|
|
1118
1184
|
display: grid;
|
|
1119
|
-
gap: var(--dt-space-
|
|
1185
|
+
gap: var(--dt-space-4);
|
|
1120
1186
|
}
|
|
1121
1187
|
|
|
1122
1188
|
.bk-progress-item {
|
|
@@ -1130,14 +1196,15 @@ ${O}
|
|
|
1130
1196
|
gap: var(--dt-space-3);
|
|
1131
1197
|
color: var(--dt-text-primary);
|
|
1132
1198
|
font-size: var(--dt-font-size-sm);
|
|
1199
|
+
font-weight: 500;
|
|
1133
1200
|
}
|
|
1134
1201
|
|
|
1135
1202
|
.bk-progress-track {
|
|
1136
1203
|
overflow: hidden;
|
|
1137
|
-
height: 0.
|
|
1138
|
-
border-radius:
|
|
1204
|
+
height: 0.625rem;
|
|
1205
|
+
border-radius: var(--dt-radius-pill);
|
|
1139
1206
|
background: var(--dt-bg-tertiary);
|
|
1140
|
-
box-shadow: inset 0 0 0
|
|
1207
|
+
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);
|
|
1141
1208
|
}
|
|
1142
1209
|
|
|
1143
1210
|
.bk-progress-bar {
|
|
@@ -1146,7 +1213,8 @@ ${O}
|
|
|
1146
1213
|
min-width: 0;
|
|
1147
1214
|
border-radius: inherit;
|
|
1148
1215
|
background: var(--dt-accent-emphasis);
|
|
1149
|
-
box-shadow: 0 0
|
|
1216
|
+
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15);
|
|
1217
|
+
transition: width var(--dt-transition-slow);
|
|
1150
1218
|
}
|
|
1151
1219
|
`,prompt:`
|
|
1152
1220
|
.bk-prompt {
|
|
@@ -1155,6 +1223,7 @@ ${O}
|
|
|
1155
1223
|
border: 1px solid var(--dt-border-default);
|
|
1156
1224
|
border-radius: var(--dt-radius-lg);
|
|
1157
1225
|
background: linear-gradient(180deg, var(--dt-bg-secondary), var(--dt-bg-primary));
|
|
1226
|
+
box-shadow: var(--dt-shadow-sm);
|
|
1158
1227
|
color: var(--dt-text-primary);
|
|
1159
1228
|
font-family: var(--dt-font-mono);
|
|
1160
1229
|
font-size: var(--dt-font-size-sm);
|
|
@@ -1246,6 +1315,8 @@ ${O}
|
|
|
1246
1315
|
z-index: 1;
|
|
1247
1316
|
background: var(--dt-bg-tertiary);
|
|
1248
1317
|
color: var(--dt-text-primary);
|
|
1318
|
+
font-weight: 600;
|
|
1319
|
+
white-space: nowrap;
|
|
1249
1320
|
}
|
|
1250
1321
|
|
|
1251
1322
|
.bk-table th,
|
|
@@ -1256,8 +1327,31 @@ ${O}
|
|
|
1256
1327
|
vertical-align: top;
|
|
1257
1328
|
}
|
|
1258
1329
|
|
|
1330
|
+
.bk-table th {
|
|
1331
|
+
letter-spacing: 0.02em;
|
|
1332
|
+
text-transform: uppercase;
|
|
1333
|
+
font-size: var(--dt-font-size-xs);
|
|
1334
|
+
color: var(--dt-text-secondary);
|
|
1335
|
+
}
|
|
1336
|
+
|
|
1337
|
+
.bk-table tbody tr {
|
|
1338
|
+
transition: background var(--dt-transition-fast);
|
|
1339
|
+
}
|
|
1340
|
+
|
|
1341
|
+
.bk-table tbody tr:hover {
|
|
1342
|
+
background: color-mix(in srgb, var(--dt-accent-subtle) 60%, transparent);
|
|
1343
|
+
}
|
|
1344
|
+
|
|
1259
1345
|
.bk-table tbody tr:nth-child(even) {
|
|
1260
|
-
background: color-mix(in srgb, var(--dt-bg-
|
|
1346
|
+
background: color-mix(in srgb, var(--dt-bg-tertiary) 40%, transparent);
|
|
1347
|
+
}
|
|
1348
|
+
|
|
1349
|
+
.bk-table tbody tr:nth-child(even):hover {
|
|
1350
|
+
background: color-mix(in srgb, var(--dt-accent-subtle) 60%, var(--dt-bg-tertiary));
|
|
1351
|
+
}
|
|
1352
|
+
|
|
1353
|
+
.bk-table tbody tr:last-child td {
|
|
1354
|
+
border-bottom: none;
|
|
1261
1355
|
}
|
|
1262
1356
|
`,tags:`
|
|
1263
1357
|
.bk-tags {
|
|
@@ -1269,12 +1363,13 @@ ${O}
|
|
|
1269
1363
|
.bk-tag {
|
|
1270
1364
|
display: inline-flex;
|
|
1271
1365
|
align-items: center;
|
|
1272
|
-
padding:
|
|
1273
|
-
border-radius:
|
|
1366
|
+
padding: 2px var(--dt-space-3);
|
|
1367
|
+
border-radius: var(--dt-radius-pill);
|
|
1274
1368
|
background: var(--dt-accent-subtle);
|
|
1275
1369
|
color: var(--dt-accent-fg);
|
|
1276
1370
|
font-size: var(--dt-font-size-xs);
|
|
1277
|
-
font-weight:
|
|
1371
|
+
font-weight: 600;
|
|
1372
|
+
letter-spacing: 0.02em;
|
|
1278
1373
|
}
|
|
1279
1374
|
`,text:`
|
|
1280
1375
|
.bk-text {
|
|
@@ -1291,7 +1386,7 @@ ${O}
|
|
|
1291
1386
|
.bk-timeline-item {
|
|
1292
1387
|
position: relative;
|
|
1293
1388
|
display: grid;
|
|
1294
|
-
gap: var(--dt-space-
|
|
1389
|
+
gap: var(--dt-space-1);
|
|
1295
1390
|
padding-left: calc(var(--dt-space-6) + var(--dt-space-2));
|
|
1296
1391
|
}
|
|
1297
1392
|
|
|
@@ -1300,29 +1395,37 @@ ${O}
|
|
|
1300
1395
|
position: absolute;
|
|
1301
1396
|
inset: 0 auto 0 var(--dt-space-3);
|
|
1302
1397
|
width: 1px;
|
|
1303
|
-
background: var(--dt-border-
|
|
1398
|
+
background: var(--dt-border-muted);
|
|
1399
|
+
}
|
|
1400
|
+
|
|
1401
|
+
.bk-timeline-item:last-child::before {
|
|
1402
|
+
display: none;
|
|
1304
1403
|
}
|
|
1305
1404
|
|
|
1306
1405
|
.bk-timeline-dot {
|
|
1307
1406
|
position: absolute;
|
|
1308
1407
|
top: var(--dt-space-1);
|
|
1309
1408
|
left: 0;
|
|
1310
|
-
width:
|
|
1311
|
-
height:
|
|
1312
|
-
border:
|
|
1409
|
+
width: 0.625rem;
|
|
1410
|
+
height: 0.625rem;
|
|
1411
|
+
border: 2px solid var(--dt-bg-primary);
|
|
1313
1412
|
border-radius: 999px;
|
|
1314
1413
|
background: var(--dt-accent-emphasis);
|
|
1315
|
-
box-shadow: 0 0 0
|
|
1414
|
+
box-shadow: 0 0 0 3px var(--dt-glow-accent);
|
|
1415
|
+
z-index: 1;
|
|
1316
1416
|
}
|
|
1317
1417
|
|
|
1318
1418
|
.bk-timeline-title {
|
|
1319
1419
|
color: var(--dt-text-primary);
|
|
1320
1420
|
font-weight: 600;
|
|
1421
|
+
font-size: var(--dt-font-size-sm);
|
|
1321
1422
|
}
|
|
1322
1423
|
|
|
1323
1424
|
.bk-timeline-description,
|
|
1324
1425
|
.bk-timeline-timestamp {
|
|
1325
1426
|
color: var(--dt-text-secondary);
|
|
1427
|
+
font-size: var(--dt-font-size-xs);
|
|
1428
|
+
line-height: 1.5;
|
|
1326
1429
|
}
|
|
1327
1430
|
`,tree:`
|
|
1328
1431
|
.bk-tree {
|
|
@@ -1356,19 +1459,22 @@ ${O}
|
|
|
1356
1459
|
.bk-tree-key {
|
|
1357
1460
|
color: var(--dt-text-primary);
|
|
1358
1461
|
}
|
|
1359
|
-
`},
|
|
1462
|
+
`},Ht=`
|
|
1360
1463
|
.bk-section {
|
|
1361
1464
|
display: grid;
|
|
1362
1465
|
gap: var(--dt-space-3);
|
|
1363
1466
|
margin: 0 0 var(--dt-space-6);
|
|
1467
|
+
padding: 0;
|
|
1364
1468
|
}
|
|
1365
1469
|
|
|
1366
1470
|
.bk-section-title {
|
|
1367
|
-
margin: 0;
|
|
1471
|
+
margin: 0 0 var(--dt-space-2);
|
|
1368
1472
|
color: var(--dt-text-primary);
|
|
1369
1473
|
font-family: var(--dt-font-sans);
|
|
1370
|
-
font-size: var(--dt-font-size-
|
|
1371
|
-
font-weight:
|
|
1474
|
+
font-size: var(--dt-font-size-xl);
|
|
1475
|
+
font-weight: 600;
|
|
1476
|
+
letter-spacing: -0.01em;
|
|
1477
|
+
line-height: 1.3;
|
|
1372
1478
|
}
|
|
1373
1479
|
|
|
1374
1480
|
.bk-text,
|
|
@@ -1410,6 +1516,17 @@ ${O}
|
|
|
1410
1516
|
.bk-finding a {
|
|
1411
1517
|
color: var(--dt-accent-fg);
|
|
1412
1518
|
text-decoration: none;
|
|
1519
|
+
transition: color var(--dt-transition-fast);
|
|
1520
|
+
}
|
|
1521
|
+
|
|
1522
|
+
.bk-text a:hover,
|
|
1523
|
+
.bk-kv a:hover,
|
|
1524
|
+
.bk-list a:hover,
|
|
1525
|
+
.bk-markdown a:hover,
|
|
1526
|
+
.bk-finding a:hover {
|
|
1527
|
+
color: var(--dt-accent-emphasis);
|
|
1528
|
+
text-decoration: underline;
|
|
1529
|
+
text-underline-offset: 2px;
|
|
1413
1530
|
}
|
|
1414
1531
|
|
|
1415
1532
|
.bk-text code,
|
|
@@ -1417,12 +1534,13 @@ ${O}
|
|
|
1417
1534
|
.bk-list code,
|
|
1418
1535
|
.bk-markdown code,
|
|
1419
1536
|
.bk-finding code {
|
|
1420
|
-
padding:
|
|
1421
|
-
border-radius: var(--dt-radius-
|
|
1537
|
+
padding: 1px var(--dt-space-1);
|
|
1538
|
+
border-radius: var(--dt-radius-xs);
|
|
1422
1539
|
background: var(--dt-bg-tertiary);
|
|
1423
|
-
color: var(--dt-
|
|
1540
|
+
color: var(--dt-accent-fg);
|
|
1424
1541
|
font-family: var(--dt-font-mono);
|
|
1425
|
-
font-size: 0.
|
|
1542
|
+
font-size: 0.9em;
|
|
1543
|
+
border: 1px solid var(--dt-border-default);
|
|
1426
1544
|
}
|
|
1427
1545
|
|
|
1428
1546
|
.bk-fallback {
|
|
@@ -1448,22 +1566,44 @@ ${O}
|
|
|
1448
1566
|
white-space: nowrap;
|
|
1449
1567
|
border: 0;
|
|
1450
1568
|
}
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1569
|
+
|
|
1570
|
+
hr {
|
|
1571
|
+
border: none;
|
|
1572
|
+
height: 1px;
|
|
1573
|
+
background: var(--dt-border-default);
|
|
1574
|
+
margin: var(--dt-space-6) 0;
|
|
1575
|
+
}
|
|
1576
|
+
|
|
1577
|
+
blockquote {
|
|
1578
|
+
margin: var(--dt-space-3) 0;
|
|
1579
|
+
padding: var(--dt-space-3) var(--dt-space-4);
|
|
1580
|
+
border-left: 3px solid var(--dt-accent-fg);
|
|
1581
|
+
background: var(--dt-accent-subtle);
|
|
1582
|
+
border-radius: 0 var(--dt-radius-sm) var(--dt-radius-sm) 0;
|
|
1583
|
+
color: var(--dt-text-secondary);
|
|
1584
|
+
}
|
|
1585
|
+
`;function k(e){let t=[Ht],n=new Set;for(let r of e)!n.has(r)&&O[r]&&(n.add(r),t.push(O[r]));return t.join(`
|
|
1586
|
+
`)}const Ut=`
|
|
1587
|
+
.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)}
|
|
1588
|
+
.aikit-glass-solid{border:1px solid var(--dt-border-default);border-radius:var(--dt-radius-xl);background:var(--dt-bg-secondary)}
|
|
1589
|
+
.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)}
|
|
1590
|
+
.aikit-glass-primary{background:var(--dt-accent-emphasis);border-color:var(--dt-accent-emphasis);color:#fff}.aikit-glass-primary:hover{filter:brightness(1.1)}
|
|
1591
|
+
.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}
|
|
1592
|
+
.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 Wt(){return k(Object.keys(O))}function Gt(e){return Object.entries(e).map(([e,t])=>` ${e}: ${t};`).join(`
|
|
1593
|
+
`)}function Kt(e,t){let n=` `.repeat(t);return e.split(`
|
|
1454
1594
|
`).map(e=>`${n}${e}`).join(`
|
|
1455
|
-
`)}function
|
|
1595
|
+
`)}function qt(e){return e===`dark`?{...E,...D}:{...E}}function Jt(){return Gt(D)}function Yt(e=`auto`){let t=`:root {\n${Gt(qt(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 {
|
|
1456
1596
|
color-scheme: light;
|
|
1457
|
-
}`,[`@media (prefers-color-scheme: dark) {`,` :root {`,
|
|
1597
|
+
}`,[`@media (prefers-color-scheme: dark) {`,` :root {`,Kt(Jt(),4),` }`,``,` html {`,` color-scheme: dark;`,` }`,`}`].join(`
|
|
1458
1598
|
`)].join(`
|
|
1459
1599
|
|
|
1460
|
-
`)}const
|
|
1461
|
-
`)}function
|
|
1462
|
-
`)}function
|
|
1600
|
+
`)}const A={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`},Xt=[{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 Zt(e){return[` <button type="button" class="${A.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(`
|
|
1601
|
+
`)}function Qt(e,t=[],n=!0){if(!n)return``;let r=t.filter(e=>e.kind===`shared-chrome-action`);return r.length===0?``:[` <div class="${A.toolbox}">`,` <button type="button" class="${A.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="${A.toolboxMenu}" role="menu" hidden>`,...r.map(e=>Zt(e)),` </div>`,` </div>`].join(`
|
|
1602
|
+
`)}function j(e){return e?.trim()?e.trim():``}function $t(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 M(e){let t=e.brand??`AI KIT`,r=e.showToolbox??!0,i=e.sharedChromeActions??(r?Xt:[]),a=[j(e.actionsHtml),Qt(e.transport,i,r),e.showThemeToggle===!1?``:[` <button type="button" class="${A.themeToggle}" aria-label="Switch to dark theme" aria-pressed="false">`,` <span class="${A.themeToggleIcon} ${A.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="${A.themeToggleIcon} ${A.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(`
|
|
1463
1603
|
`)].filter(Boolean).join(`
|
|
1464
|
-
`);return[` <header class="${
|
|
1465
|
-
`)}function
|
|
1466
|
-
`)}const
|
|
1604
|
+
`);return[` <header class="${A.header}">`,` <div class="${A.brand}">${n(t)}</div>`,` <div class="${A.title}">`,` <span class="${A.titleText}">${n(e.title)}</span>`,...e.subtitle?[` <span class="${A.subtitle}">${n(e.subtitle)}</span>`]:[],` </div>`,` <div class="${A.actions}">`,a,` </div>`,` </header>`].join(`
|
|
1605
|
+
`)}function N(e={}){let t=$t(e.generatedAt),r=e.showInstallGuide??!0,i=e.installUrl??`https://hermes-agent.nousresearch.com`,a=t?[`Generated by `,`<span class="${A.footerBrand}">AI KIT</span>`,` at `,t.dateTime?`<time class="${A.footerTimestamp}" datetime="${n(t.dateTime)}">${n(t.display)}</time>`:`<span class="${A.footerTimestamp}">${n(t.display)}</span>`].join(``):`Generated by <span class="${A.footerBrand}">AI KIT</span>`,o=j(e.contentHtml),s=r?`<span class="${A.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="${A.footer}">`,` <div class="${A.footerMeta}">`,` <span class="${A.footerText}">${a}</span>`,...o?[` <span class="${A.footerSlot}">${o}</span>`]:[],s,` </div>`,` </footer>`].join(`
|
|
1606
|
+
`)}const P=`
|
|
1467
1607
|
.aikit-header,
|
|
1468
1608
|
.aikit-toolbox-menu,
|
|
1469
1609
|
.aikit-copy-status,
|
|
@@ -1488,10 +1628,11 @@ ${O}
|
|
|
1488
1628
|
justify-content: space-between;
|
|
1489
1629
|
gap: var(--dt-space-4);
|
|
1490
1630
|
min-height: 3.5rem;
|
|
1491
|
-
padding: var(--dt-space-2) var(--dt-space-
|
|
1631
|
+
padding: var(--dt-space-2) var(--dt-space-6);
|
|
1492
1632
|
border-bottom: 1px solid var(--aikit-border);
|
|
1493
|
-
background: color-mix(in srgb, var(--aikit-background)
|
|
1494
|
-
backdrop-filter: blur(
|
|
1633
|
+
background: color-mix(in srgb, var(--aikit-background) 85%, transparent);
|
|
1634
|
+
backdrop-filter: blur(12px);
|
|
1635
|
+
-webkit-backdrop-filter: blur(12px);
|
|
1495
1636
|
}
|
|
1496
1637
|
|
|
1497
1638
|
.aikit-header-brand,
|
|
@@ -1505,10 +1646,11 @@ ${O}
|
|
|
1505
1646
|
align-items: center;
|
|
1506
1647
|
color: var(--aikit-muted-foreground);
|
|
1507
1648
|
font-family: var(--dt-font-mono);
|
|
1508
|
-
font-size: var(--dt-font-size-
|
|
1649
|
+
font-size: var(--dt-font-size-xs);
|
|
1509
1650
|
font-weight: 600;
|
|
1510
|
-
letter-spacing: 0.
|
|
1651
|
+
letter-spacing: 0.14em;
|
|
1511
1652
|
text-transform: uppercase;
|
|
1653
|
+
opacity: 0.8;
|
|
1512
1654
|
}
|
|
1513
1655
|
|
|
1514
1656
|
.aikit-header-title {
|
|
@@ -1566,25 +1708,26 @@ ${O}
|
|
|
1566
1708
|
align-items: center;
|
|
1567
1709
|
justify-content: center;
|
|
1568
1710
|
position: relative;
|
|
1569
|
-
min-width: 2.
|
|
1570
|
-
height: 2.
|
|
1711
|
+
min-width: 2.25rem;
|
|
1712
|
+
height: 2.25rem;
|
|
1571
1713
|
padding: 0;
|
|
1572
1714
|
border: 1px solid var(--aikit-border);
|
|
1573
|
-
border-radius:
|
|
1574
|
-
background:
|
|
1575
|
-
color: var(--aikit-
|
|
1715
|
+
border-radius: var(--dt-radius-md);
|
|
1716
|
+
background: transparent;
|
|
1717
|
+
color: var(--aikit-muted-foreground);
|
|
1576
1718
|
cursor: pointer;
|
|
1577
1719
|
font: inherit;
|
|
1578
1720
|
transition:
|
|
1579
1721
|
background var(--dt-transition-fast),
|
|
1580
1722
|
border-color var(--dt-transition-fast),
|
|
1581
|
-
color var(--dt-transition-fast)
|
|
1582
|
-
transform var(--dt-transition-fast);
|
|
1723
|
+
color var(--dt-transition-fast);
|
|
1583
1724
|
}
|
|
1584
1725
|
|
|
1585
1726
|
.aikit-theme-toggle:hover,
|
|
1586
1727
|
.aikit-toolbox-toggle:hover {
|
|
1587
1728
|
background: var(--aikit-muted);
|
|
1729
|
+
color: var(--aikit-foreground);
|
|
1730
|
+
border-color: var(--aikit-border);
|
|
1588
1731
|
}
|
|
1589
1732
|
|
|
1590
1733
|
.aikit-theme-toggle:focus-visible,
|
|
@@ -1636,12 +1779,28 @@ html[data-theme='dark'] .aikit-theme-toggle-icon--moon {
|
|
|
1636
1779
|
border: 1px solid var(--aikit-border);
|
|
1637
1780
|
border-radius: var(--dt-radius-lg);
|
|
1638
1781
|
background: var(--aikit-background);
|
|
1782
|
+
background: color-mix(in srgb, var(--aikit-background) 98%, transparent);
|
|
1783
|
+
backdrop-filter: blur(16px);
|
|
1639
1784
|
box-shadow: var(--dt-shadow-lg);
|
|
1640
1785
|
z-index: 120;
|
|
1786
|
+
animation: aikit-menu-enter 150ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
1787
|
+
transform-origin: top right;
|
|
1788
|
+
}
|
|
1789
|
+
|
|
1790
|
+
@keyframes aikit-menu-enter {
|
|
1791
|
+
from {
|
|
1792
|
+
opacity: 0;
|
|
1793
|
+
transform: scale(0.95) translateY(-4px);
|
|
1794
|
+
}
|
|
1795
|
+
to {
|
|
1796
|
+
opacity: 1;
|
|
1797
|
+
transform: scale(1) translateY(0);
|
|
1798
|
+
}
|
|
1641
1799
|
}
|
|
1642
1800
|
|
|
1643
1801
|
.aikit-toolbox-menu[hidden] {
|
|
1644
1802
|
display: none;
|
|
1803
|
+
animation: none;
|
|
1645
1804
|
}
|
|
1646
1805
|
|
|
1647
1806
|
.aikit-toolbox-item {
|
|
@@ -1649,7 +1808,7 @@ html[data-theme='dark'] .aikit-theme-toggle-icon--moon {
|
|
|
1649
1808
|
align-items: center;
|
|
1650
1809
|
gap: var(--dt-space-2);
|
|
1651
1810
|
width: 100%;
|
|
1652
|
-
min-height: 2.
|
|
1811
|
+
min-height: 2.25rem;
|
|
1653
1812
|
padding: 0 var(--dt-space-3);
|
|
1654
1813
|
border: 1px solid transparent;
|
|
1655
1814
|
border-radius: var(--dt-radius-sm);
|
|
@@ -1658,6 +1817,7 @@ html[data-theme='dark'] .aikit-theme-toggle-icon--moon {
|
|
|
1658
1817
|
cursor: pointer;
|
|
1659
1818
|
font: inherit;
|
|
1660
1819
|
text-align: left;
|
|
1820
|
+
transition: background var(--dt-transition-fast), border-color var(--dt-transition-fast);
|
|
1661
1821
|
}
|
|
1662
1822
|
|
|
1663
1823
|
.aikit-toolbox-item:hover {
|
|
@@ -1667,6 +1827,7 @@ html[data-theme='dark'] .aikit-theme-toggle-icon--moon {
|
|
|
1667
1827
|
|
|
1668
1828
|
.aikit-toolbox-item svg {
|
|
1669
1829
|
flex: 0 0 auto;
|
|
1830
|
+
opacity: 0.7;
|
|
1670
1831
|
}
|
|
1671
1832
|
|
|
1672
1833
|
.aikit-copy-status {
|
|
@@ -1679,6 +1840,8 @@ html[data-theme='dark'] .aikit-theme-toggle-icon--moon {
|
|
|
1679
1840
|
border: 1px solid var(--aikit-border);
|
|
1680
1841
|
border-radius: var(--dt-radius-md);
|
|
1681
1842
|
background: var(--aikit-background);
|
|
1843
|
+
background: color-mix(in srgb, var(--aikit-background) 98%, transparent);
|
|
1844
|
+
backdrop-filter: blur(8px);
|
|
1682
1845
|
color: var(--aikit-foreground);
|
|
1683
1846
|
box-shadow: var(--dt-shadow-lg);
|
|
1684
1847
|
font-size: var(--dt-font-size-sm);
|
|
@@ -1692,10 +1855,12 @@ html[data-theme='dark'] .aikit-theme-toggle-icon--moon {
|
|
|
1692
1855
|
|
|
1693
1856
|
.aikit-footer {
|
|
1694
1857
|
margin-top: auto;
|
|
1858
|
+
position: relative;
|
|
1859
|
+
z-index: 1;
|
|
1695
1860
|
display: flex;
|
|
1696
1861
|
align-items: center;
|
|
1697
1862
|
justify-content: center;
|
|
1698
|
-
padding: var(--dt-space-
|
|
1863
|
+
padding: var(--dt-space-6) var(--dt-space-6) var(--dt-space-8);
|
|
1699
1864
|
border-top: 1px solid var(--aikit-border);
|
|
1700
1865
|
color: var(--aikit-muted-foreground);
|
|
1701
1866
|
font-size: var(--dt-font-size-xs);
|
|
@@ -1722,8 +1887,9 @@ html[data-theme='dark'] .aikit-theme-toggle-icon--moon {
|
|
|
1722
1887
|
color: var(--aikit-foreground);
|
|
1723
1888
|
font-family: var(--dt-font-mono);
|
|
1724
1889
|
font-weight: 600;
|
|
1725
|
-
letter-spacing: 0.
|
|
1890
|
+
letter-spacing: 0.1em;
|
|
1726
1891
|
text-transform: uppercase;
|
|
1892
|
+
opacity: 0.8;
|
|
1727
1893
|
}
|
|
1728
1894
|
|
|
1729
1895
|
.aikit-footer-timestamp,
|
|
@@ -1741,6 +1907,12 @@ html[data-theme='dark'] .aikit-theme-toggle-icon--moon {
|
|
|
1741
1907
|
.aikit-header {
|
|
1742
1908
|
background: var(--aikit-background);
|
|
1743
1909
|
}
|
|
1910
|
+
.aikit-toolbox-menu {
|
|
1911
|
+
background: var(--aikit-background);
|
|
1912
|
+
}
|
|
1913
|
+
.aikit-copy-status {
|
|
1914
|
+
background: var(--aikit-background);
|
|
1915
|
+
}
|
|
1744
1916
|
}
|
|
1745
1917
|
|
|
1746
1918
|
@media (max-width: 640px) {
|
|
@@ -1750,8 +1922,9 @@ html[data-theme='dark'] .aikit-theme-toggle-icon--moon {
|
|
|
1750
1922
|
|
|
1751
1923
|
.aikit-header {
|
|
1752
1924
|
gap: var(--dt-space-2);
|
|
1753
|
-
padding-left: var(--dt-space-
|
|
1754
|
-
padding-right: var(--dt-space-
|
|
1925
|
+
padding-left: var(--dt-space-4);
|
|
1926
|
+
padding-right: var(--dt-space-4);
|
|
1927
|
+
min-height: 3rem;
|
|
1755
1928
|
}
|
|
1756
1929
|
|
|
1757
1930
|
.aikit-toolbox-menu {
|
|
@@ -1760,6 +1933,10 @@ html[data-theme='dark'] .aikit-theme-toggle-icon--moon {
|
|
|
1760
1933
|
min-width: auto;
|
|
1761
1934
|
max-width: calc(100vw - 2rem);
|
|
1762
1935
|
}
|
|
1936
|
+
|
|
1937
|
+
.aikit-footer {
|
|
1938
|
+
padding: var(--dt-space-4) var(--dt-space-4) var(--dt-space-6);
|
|
1939
|
+
}
|
|
1763
1940
|
}
|
|
1764
1941
|
|
|
1765
1942
|
@media (max-width: 400px) {
|
|
@@ -1780,17 +1957,17 @@ html[data-theme='dark'] .aikit-theme-toggle-icon--moon {
|
|
|
1780
1957
|
right: 0;
|
|
1781
1958
|
min-width: auto;
|
|
1782
1959
|
max-width: 100%;
|
|
1783
|
-
border-radius:
|
|
1784
|
-
box-shadow: 0 -4px
|
|
1960
|
+
border-radius: var(--dt-radius-xl) var(--dt-radius-xl) 0 0;
|
|
1961
|
+
box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.2);
|
|
1785
1962
|
}
|
|
1786
1963
|
}
|
|
1787
|
-
`;function
|
|
1964
|
+
`;function en(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 tn(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}">
|
|
1788
1965
|
<p class="bk-annotation-body">${n(e.body)}</p>
|
|
1789
1966
|
${r.length>0?`<div class="bk-annotation-meta">${r.join(``)}</div>`:``}
|
|
1790
|
-
</li>`}function
|
|
1791
|
-
<h4 class="bk-annotation-group-title">${n(
|
|
1792
|
-
<ol class="bk-annotation-list">${t.map(
|
|
1793
|
-
</div>`).join(``)||`<p class="bk-text-secondary">No annotations</p>`}</div>`}function
|
|
1967
|
+
</li>`}function nn(e){switch(e){case`COMMENT`:return`Comments`;case`DELETION`:return`Deletions`;case`GLOBAL_COMMENT`:return`General Notes`;default:return e}}function rn(e,t){let r=en(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">
|
|
1968
|
+
<h4 class="bk-annotation-group-title">${n(nn(e))}</h4>
|
|
1969
|
+
<ol class="bk-annotation-list">${t.map(tn).join(``)}</ol>
|
|
1970
|
+
</div>`).join(``)||`<p class="bk-text-secondary">No annotations</p>`}</div>`}function an(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.prompt==`string`&&Array.isArray(t.options)}function on(e,t){let r=e.blockId?i(e.blockId):void 0,a=an(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)}">
|
|
1794
1971
|
<input type="radio" name="approval" value="${i(e.id)}" role="radio" />
|
|
1795
1972
|
<span class="bk-approval-option-label">${n(e.label)}</span>
|
|
1796
1973
|
${e.description?`<span class="bk-approval-option-desc">${n(e.description)}</span>`:``}
|
|
@@ -1801,9 +1978,9 @@ ${e.description?`<span class="bk-approval-option-desc">${n(e.description)}</span
|
|
|
1801
1978
|
${o}
|
|
1802
1979
|
<fieldset class="bk-approval-options">${s}</fieldset>
|
|
1803
1980
|
${c}
|
|
1804
|
-
</div>`}const
|
|
1805
|
-
`)}function
|
|
1806
|
-
`);return[{type:`heading`,value:e.path},{type:`paragraph`,value:`${e.status} | +${e.additions} / -${e.deletions}`},{type:`code`,language:`diff`,value:t}]}const Sn={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=>yn(e).flatMap(xn),hydration:[],supportedTransports:gn},Cn=[`mcp-app`,`browser`,`export`];function H(e){return typeof e==`object`&&!!e}function wn(e){return H(e)&&typeof e.type==`string`}function Tn(e){return Array.isArray(e)&&e.every(wn)}function En(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`||Tn(e.content)?e.content:``;return[{heading:e.heading,content:t}]}):[];return{title:typeof e.title==`string`?e.title:void 0,sections:t}}function Dn(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 On={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=En(e),n=[];t.title&&n.push({type:`heading`,value:t.title});for(let e of t.sections)n.push(...Dn(e));return n},hydration:[],supportedTransports:Cn},kn=[`mcp-app`,`browser`,`export`];function An(e){return typeof e==`object`&&!!e}function jn(e){return An(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=jn(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:kn};function W(e){return typeof e==`object`&&!!e}function Mn(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 Nn={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)?Mn(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`]},Pn=[`mcp-app`,`browser`];function G(e){return typeof e==`object`&&!!e}function Fn(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 In(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 Ln(e){return G(e)?{categories:Fn(e.categories),items:In(e.items)}:{items:[]}}function Rn(e){return{title:e.label,body:e.id,description:e.tags&&e.tags.length>0?e.tags.join(`, `):void 0}}function zn(e,t){return t.length===0?[]:[{type:`heading`,value:e},{type:`cards`,value:t.map(Rn)}]}const Bn={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=Ln(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=zn(e.label,t.items.filter(t=>t.category===e.id));n.length>0&&r.push(n)}let i=zn(`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(Rn)}),n},hydration:[`picker`],supportedTransports:Pn},Vn=[`mcp-app`,`browser`,`export`];function K(e){return typeof e==`object`&&!!e}function Hn(e){return K(e)&&typeof e.type==`string`}function Un(e){return Array.isArray(e)&&e.every(Hn)}function Wn(e){return K(e)&&typeof e.label==`string`&&(typeof e.value==`string`||typeof e.value==`number`)}function Gn(e){return Array.isArray(e)?e.flatMap(e=>{if(!K(e)||typeof e.heading!=`string`)return[];let t=typeof e.content==`string`||Un(e.content)?e.content:``;return[{heading:e.heading,content:t}]}):[]}function Kn(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 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)}function Jn(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 Yn={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(Wn):void 0,sections:K(e)?Gn(e.sections):[],tables:K(e)?Kn(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(...qn(e));for(let e of t.tables??[])n.push(Jn(e));return n},hydration:[],supportedTransports:Vn},Xn=[`mcp-app`,`browser`];function q(e){return typeof e==`object`&&!!e}function Zn(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}function Qn(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 $n(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 er={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=Zn(e.criteria);r.length>0&&t.push({type:`checklist`,value:r.map(e=>({label:e,checked:!1}))});let i=Qn(e.annotations);i.length>0&&t.push({type:`annotation`,value:i});let a=e.approval;if(q(a)){let e=$n(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:Xn},tr=[`mcp-app`,`browser`,`export`];function J(e){return typeof e==`object`&&!!e}function nr(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 rr(e){return e.map(e=>({title:e.label,status:e.status,badge:e.badge}))}const ir={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)?nr(e.categories):[],n=[];for(let e of t)n.push({type:`heading`,value:e.category}),n.push({type:`cards`,value:rr(e.items)});return n},hydration:[],supportedTransports:tr},ar=[`mcp-app`,`browser`,`export`];function or(e){return typeof e==`object`&&!!e}function sr(e){return Array.isArray(e)?e.flatMap(e=>!or(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 cr(e){return Array.isArray(e)?{entries:sr(e)}:or(e)?{entries:sr(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}},lr={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}=cr(e),r=[];return n&&r.push({type:`heading`,value:n}),r.push({type:`timeline`,value:t}),r},hydration:[],supportedTransports:ar},ur=[`mcp-app`,`browser`,`export`];function X(e){return typeof e==`object`&&!!e}function dr(e){return X(e)&&typeof e.label==`string`}function fr(e){return{name:e.label,children:Array.isArray(e.children)?e.children.filter(dr).map(fr):[]}}function pr(e){if(!X(e))return{};let t=e.root;return dr(t)?fr(t):X(t)?t:e}const mr={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:pr(e)}],hydration:[`tree`],supportedTransports:ur},Z=new on;Z.register(er),Z.register(ln),Z.register(Sn),Z.register(On),Z.register(Bn),Z.register(Yn),Z.register(lr),Z.register(mr),Z.register(hn),Z.register(U),Z.register(Nn),Z.register(ir);let Q=0;function hr(){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 gr(e){return{id:e,version:1,entry:`@aikit/blocks-interactive/dist/islands/${e}.mjs`,selector:`[data-island="${e}"]`,needsData:!0}}function _r(e,t){let n=new TextEncoder;return n.encode(e).byteLength+t.reduce((e,t)=>e+n.encode(t).byteLength,0)}function vr(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=>gr(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=rn(o,i),u=[I(o.map(e=>e.type))],d=t.nonce??hr(),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:_r(l,u),exportPolicy:s.length>0?`local-interactive`:`static-only`,diagnostics:n.length>0?n:void 0}}function yr(e){return e===`up`||e===`down`||e===`neutral`}function $(e){return typeof e==`object`&&!!e}function br(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`&&yr(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`?Or(e.progress):void 0,items:n}]})}}function xr(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 Sr(e){return e.type!==`progress`||typeof e.progress!=`number`?null:{label:e.label,value:Or(e.progress),max:100}}function Cr(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 wr(e){return{title:e.title,description:e.description,badge:e.priority,body:e.tags?.join(`, `),status:e.priority}}function Tr(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 Er(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=>Er(e)):[]}:{name:``,total:0,children:[]}}function Dr(e){return{name:e.self==null?`${e.name} (${e.total})`:`${e.name} (${e.total} total / ${e.self} self)`,children:(e.children??[]).map(Dr)}}function Or(e){return Math.max(0,Math.min(100,e))}function kr(e){let t=br(e),n=[];t.metrics.length>0&&n.push({type:`metrics`,value:t.metrics.map(xr)});let r=t.metrics.map(Sr).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 Ar(e){let t=Cr(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(wr)})}),n}function jr(e){let t=Tr(e);return t.length===0?[]:[{type:`cards`,value:t.map((e,t)=>({title:e.label,body:e.id,badge:`#${t+1}`}))}]}function Mr(e){return!$(e)||!$(e.profile)?[]:[{type:`tree`,value:Dr(Er(e.profile))}]}const Nr={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=>kr(e),hydration:[],supportedTransports:[`mcp-app`,`browser`]},Pr={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=>Ar(e),hydration:[],supportedTransports:[`browser`]},Fr={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=>jr(e),hydration:[],supportedTransports:[`browser`]},Ir={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=>Mr(e),hydration:[`flame-graph`],supportedTransports:[`browser`]},Lr={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 Rr(){return Lr}function zr(e){return e.replace(/</g,`\\u003c`).replace(/>/g,`\\u003e`).replace(/&/g,`\\u0026`).replace(/\u2028/g,`\\u2028`).replace(/\u2029/g,`\\u2029`)}function Br(e,t){let n=[`
|
|
1981
|
+
</div>`}const sn={actions:m,annotation:rn,approval:on,cards:ee,chart:ne,checklist:Ee,code:De,comparison:ke,diff:We,"component-detail":Ie,"data-table-schema":Ve,"docs-browser":Ke,"docs-hub":Xe,finding:Qe,graph:et,heading:nt,kv:it,"lifecycle-flow":pt,list:mt,markdown:yt,mermaid:bt,metrics:St,paragraph:Ct,progress:Tt,prompt:Dt,separator:Ot,"status-board":At,table:Pt,tags:It,text:Lt,timeline:Rt,tree:zt};function F(e,t,r){let a={...e,value:o(e.value)},s=sn[a.type],c=s?s(a,t):cn(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 I(e,t){return e.map((e,n)=>F(e,t,n)).join(`
|
|
1982
|
+
`)}function cn(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 L=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 ln=[`mcp-app`,`browser`];function R(e){return typeof e==`object`&&!!e}function un(e){return Array.isArray(e)?e.flatMap(e=>!R(e)||typeof e.label!=`string`?[]:[{label:e.label,checked:!!e.checked}]):[]}const dn={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=R(e)&&typeof e.title==`string`?e.title:void 0,r=R(e)?un(e.items):[];return n&&t.push({type:`heading`,value:n}),t.push({type:`checklist`,value:r}),t},hydration:[`checklist`],supportedTransports:ln},fn=[`mcp-app`,`browser`,`export`];function z(e){return typeof e==`object`&&!!e}function pn(e){return z(e)&&typeof e.label==`string`&&(typeof e.value==`string`||typeof e.value==`number`)}function mn(e){return z(e)&&typeof e.key==`string`&&typeof e.label==`string`}function hn(e){return Array.isArray(e)?e.filter(z):[]}function gn(e,t){if(Array.isArray(e)){let t=e.filter(mn);if(t.length>0)return t}return Object.keys(t[0]??{}).map(e=>({key:e,label:e}))}const _n={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=z(e)?hn(e.rows):[],n=z(e)?gn(e.columns,t):[],r=n.map(e=>e.label),i=t.map(e=>n.map(t=>e[t.key])),a=[];if(z(e)&&Array.isArray(e.stats)){let t=e.stats.filter(pn);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 B(e){return typeof e==`object`&&!!e}function yn(e){return Array.isArray(e)?e.flatMap(e=>!B(e)||typeof e.type!=`string`||typeof e.content!=`string`?[]:[{type:e.type,content:e.content}]):[]}function bn(e){return Array.isArray(e)?e.flatMap(e=>!B(e)||typeof e.header!=`string`?[]:[{header:e.header,changes:yn(e.changes)}]):[]}function xn(e){return!B(e)||!Array.isArray(e.files)?[]:e.files.flatMap(e=>!B(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:bn(e.hunks)}])}function Sn(e){return e===`add`?`+`:e===`delete`?`-`:` `}function Cn(e){let t=e.hunks.flatMap(e=>[e.header,...e.changes.map(e=>`${Sn(e.type)}${e.content}`)]).join(`
|
|
1983
|
+
`);return[{type:`heading`,value:e.path},{type:`paragraph`,value:`${e.status} | +${e.additions} / -${e.deletions}`},{type:`code`,language:`diff`,value:t}]}const wn={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=>xn(e).flatMap(Cn),hydration:[],supportedTransports:vn},Tn=[`mcp-app`,`browser`,`export`];function V(e){return typeof e==`object`&&!!e}function En(e){return V(e)&&typeof e.type==`string`}function Dn(e){return Array.isArray(e)&&e.every(En)}function On(e){if(!V(e))return{sections:[]};let t=Array.isArray(e.sections)?e.sections.flatMap(e=>{if(!V(e)||typeof e.heading!=`string`)return[];let t=typeof e.content==`string`||Dn(e.content)?e.content:``;return[{heading:e.heading,content:t}]}):[];return{title:typeof e.title==`string`?e.title:void 0,sections:t}}function kn(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 An={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=On(e),n=[];t.title&&n.push({type:`heading`,value:t.title});for(let e of t.sections)n.push(...kn(e));return n},hydration:[],supportedTransports:Tn},jn=[`mcp-app`,`browser`,`export`];function Mn(e){return typeof e==`object`&&!!e}function Nn(e){return Mn(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 H={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=Nn(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:jn};function U(e){return typeof e==`object`&&!!e}function Pn(e){return Array.isArray(e)?e.flatMap(e=>!U(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`||U(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 Fn={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:U(e)&&typeof e.title==`string`?e.title:`Form`,fields:U(e)?Pn(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`]},In=[`mcp-app`,`browser`];function W(e){return typeof e==`object`&&!!e}function Ln(e){if(!Array.isArray(e))return;let t=e.flatMap(e=>!W(e)||typeof e.id!=`string`||typeof e.label!=`string`?[]:[{id:e.id,label:e.label}]);return t.length>0?t:void 0}function Rn(e){return Array.isArray(e)?e.flatMap(e=>!W(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 zn(e){return W(e)?{categories:Ln(e.categories),items:Rn(e.items)}:{items:[]}}function Bn(e){return{title:e.label,body:e.id,description:e.tags&&e.tags.length>0?e.tags.join(`, `):void 0}}function Vn(e,t){return t.length===0?[]:[{type:`heading`,value:e},{type:`cards`,value:t.map(Bn)}]}const Hn={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=zn(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=Vn(e.label,t.items.filter(t=>t.category===e.id));n.length>0&&r.push(n)}let i=Vn(`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(Bn)}),n},hydration:[`picker`],supportedTransports:In},Un=[`mcp-app`,`browser`,`export`];function G(e){return typeof e==`object`&&!!e}function Wn(e){return G(e)&&typeof e.type==`string`}function Gn(e){return Array.isArray(e)&&e.every(Wn)}function Kn(e){return G(e)&&typeof e.label==`string`&&(typeof e.value==`string`||typeof e.value==`number`)}function qn(e){return Array.isArray(e)?e.flatMap(e=>{if(!G(e)||typeof e.heading!=`string`)return[];let t=typeof e.content==`string`||Gn(e.content)?e.content:``;return[{heading:e.heading,content:t}]}):[]}function Jn(e){return Array.isArray(e)?e.flatMap(e=>G(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 Yn(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 Xn(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 Zn={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:G(e)&&typeof e.title==`string`?e.title:`Report`,metrics:G(e)&&Array.isArray(e.metrics)?e.metrics.filter(Kn):void 0,sections:G(e)?qn(e.sections):[],tables:G(e)?Jn(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(...Yn(e));for(let e of t.tables??[])n.push(Xn(e));return n},hydration:[],supportedTransports:Un},Qn=[`mcp-app`,`browser`];function K(e){return typeof e==`object`&&!!e}function $n(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}function er(e){return Array.isArray(e)?e.flatMap(e=>{if(!K(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=K(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 tr(e){return Array.isArray(e)?e.flatMap(e=>{if(!K(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 nr={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(!K(e))return t;let n=typeof e.title==`string`?e.title:`Review`;t.push({type:`heading`,value:n});let r=$n(e.criteria);r.length>0&&t.push({type:`checklist`,value:r.map(e=>({label:e,checked:!1}))});let i=er(e.annotations);i.length>0&&t.push({type:`annotation`,value:i});let a=e.approval;if(K(a)){let e=tr(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:Qn},rr=[`mcp-app`,`browser`,`export`];function q(e){return typeof e==`object`&&!!e}function ir(e){return Array.isArray(e)?e.flatMap(e=>{if(!q(e)||typeof e.category!=`string`||!Array.isArray(e.items))return[];let t=e.items.flatMap(e=>!q(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 ar(e){return e.map(e=>({title:e.label,status:e.status,badge:e.badge}))}const or={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=q(e)?ir(e.categories):[],n=[];for(let e of t)n.push({type:`heading`,value:e.category}),n.push({type:`cards`,value:ar(e.items)});return n},hydration:[],supportedTransports:rr},sr=[`mcp-app`,`browser`,`export`];function cr(e){return typeof e==`object`&&!!e}function lr(e){return Array.isArray(e)?e.flatMap(e=>!cr(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 ur(e){return Array.isArray(e)?{entries:lr(e)}:cr(e)?{entries:lr(e.entries??e.events??e.items),title:typeof e.title==`string`?e.title:void 0}:{entries:[]}}const J={type:`array`,items:{type:`object`,required:[`title`],properties:{title:{type:`string`},description:{type:`string`},timestamp:{type:`string`},status:{type:`string`}},additionalProperties:!1}},dr={id:`timeline@1`,label:`Timeline`,description:`Static timeline events rendered as a timeline block.`,inputSchema:{oneOf:[J,{type:`object`,properties:{title:{type:`string`},entries:J,events:J,items:J},anyOf:[{required:[`entries`]},{required:[`events`]},{required:[`items`]}],additionalProperties:!1}]},defaultLayout:{},blocksFromData:e=>{let{entries:t,title:n}=ur(e),r=[];return n&&r.push({type:`heading`,value:n}),r.push({type:`timeline`,value:t}),r},hydration:[],supportedTransports:sr},fr=[`mcp-app`,`browser`,`export`];function Y(e){return typeof e==`object`&&!!e}function X(e){return Y(e)&&typeof e.label==`string`}function pr(e){return{name:e.label,children:Array.isArray(e.children)?e.children.filter(X).map(pr):[]}}function mr(e){if(!Y(e))return{};let t=e.root;return X(t)?pr(t):Y(t)?t:e}const hr={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:mr(e)}],hydration:[`tree`],supportedTransports:fr},Z=new L;Z.register(nr),Z.register(dn),Z.register(wn),Z.register(An),Z.register(Hn),Z.register(Zn),Z.register(dr),Z.register(hr),Z.register(_n),Z.register(H),Z.register(Fn),Z.register(or);let Q=0;function gr(){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 _r(e){return{id:e,version:1,entry:`@aikit/blocks-interactive/dist/islands/${e}.mjs`,selector:`[data-island="${e}"]`,needsData:!0}}function vr(e,t){let n=new TextEncoder;return n.encode(e).byteLength+t.reduce((e,t)=>e+n.encode(t).byteLength,0)}function yr(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=>_r(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?H.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=I(o,i),u=[k(o.map(e=>e.type))],d=t.nonce??gr(),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:vr(l,u),exportPolicy:s.length>0?`local-interactive`:`static-only`,diagnostics:n.length>0?n:void 0}}function br(e){return e===`up`||e===`down`||e===`neutral`}function $(e){return typeof e==`object`&&!!e}function xr(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`&&br(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`?kr(e.progress):void 0,items:n}]})}}function Sr(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 Cr(e){return e.type!==`progress`||typeof e.progress!=`number`?null:{label:e.label,value:kr(e.progress),max:100}}function wr(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 Tr(e){return{title:e.title,description:e.description,badge:e.priority,body:e.tags?.join(`, `),status:e.priority}}function Er(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 Dr(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=>Dr(e)):[]}:{name:``,total:0,children:[]}}function Or(e){return{name:e.self==null?`${e.name} (${e.total})`:`${e.name} (${e.total} total / ${e.self} self)`,children:(e.children??[]).map(Or)}}function kr(e){return Math.max(0,Math.min(100,e))}function Ar(e){let t=xr(e),n=[];t.metrics.length>0&&n.push({type:`metrics`,value:t.metrics.map(Sr)});let r=t.metrics.map(Cr).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 jr(e){let t=wr(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(Tr)})}),n}function Mr(e){let t=Er(e);return t.length===0?[]:[{type:`cards`,value:t.map((e,t)=>({title:e.label,body:e.id,badge:`#${t+1}`}))}]}function Nr(e){return!$(e)||!$(e.profile)?[]:[{type:`tree`,value:Or(Dr(e.profile))}]}const Pr={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=>Ar(e),hydration:[],supportedTransports:[`mcp-app`,`browser`]},Fr={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=>jr(e),hydration:[],supportedTransports:[`browser`]},Ir={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=>Mr(e),hydration:[],supportedTransports:[`browser`]},Lr={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=>Nr(e),hydration:[`flame-graph`],supportedTransports:[`browser`]},Rr={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 zr(){return Rr}function Br(e){return e.replace(/</g,`\\u003c`).replace(/>/g,`\\u003e`).replace(/&/g,`\\u0026`).replace(/\u2028/g,`\\u2028`).replace(/\u2029/g,`\\u2029`)}function Vr(e,t){let n=[`
|
|
1807
1984
|
* {
|
|
1808
1985
|
box-sizing: border-box;
|
|
1809
1986
|
}
|
|
@@ -1811,6 +1988,7 @@ ${c}
|
|
|
1811
1988
|
html {
|
|
1812
1989
|
font-size: 16px;
|
|
1813
1990
|
height: 100%;
|
|
1991
|
+
scroll-behavior: smooth;
|
|
1814
1992
|
}
|
|
1815
1993
|
|
|
1816
1994
|
body {
|
|
@@ -1822,34 +2000,147 @@ body {
|
|
|
1822
2000
|
background: var(--dt-bg-canvas, var(--dt-bg-primary));
|
|
1823
2001
|
color: var(--dt-text-primary);
|
|
1824
2002
|
font-family: var(--dt-font-sans);
|
|
2003
|
+
-webkit-font-smoothing: antialiased;
|
|
2004
|
+
-moz-osx-font-smoothing: grayscale;
|
|
2005
|
+
/* Smooth theme transitions */
|
|
2006
|
+
transition: background var(--dt-transition-normal),
|
|
2007
|
+
color var(--dt-transition-normal);
|
|
2008
|
+
}
|
|
2009
|
+
|
|
2010
|
+
/* ── Reduced motion ── */
|
|
2011
|
+
@media (prefers-reduced-motion: reduce) {
|
|
2012
|
+
html { scroll-behavior: auto; }
|
|
2013
|
+
*, *::before, *::after {
|
|
2014
|
+
animation-duration: 0.01ms !important;
|
|
2015
|
+
animation-iteration-count: 1 !important;
|
|
2016
|
+
transition-duration: 0.01ms !important;
|
|
2017
|
+
}
|
|
2018
|
+
}
|
|
2019
|
+
|
|
2020
|
+
/* ── Gradient glow focal point ── */
|
|
2021
|
+
.aikit-glow-primary,
|
|
2022
|
+
.aikit-glow-secondary {
|
|
2023
|
+
content: '';
|
|
2024
|
+
position: fixed;
|
|
2025
|
+
pointer-events: none;
|
|
2026
|
+
z-index: 0;
|
|
2027
|
+
}
|
|
2028
|
+
.aikit-glow-primary {
|
|
2029
|
+
top: -30vh;
|
|
2030
|
+
right: -20vw;
|
|
2031
|
+
width: 90vw;
|
|
2032
|
+
height: 90vh;
|
|
2033
|
+
background: var(--dt-glow-primary);
|
|
2034
|
+
animation: aikit-glow-pulse 8s ease-in-out infinite alternate;
|
|
2035
|
+
}
|
|
2036
|
+
.aikit-glow-secondary {
|
|
2037
|
+
bottom: -20vh;
|
|
2038
|
+
left: -10vw;
|
|
2039
|
+
width: 60vw;
|
|
2040
|
+
height: 60vh;
|
|
2041
|
+
background: var(--dt-glow-secondary);
|
|
2042
|
+
animation: aikit-glow-pulse 12s ease-in-out infinite alternate-reverse;
|
|
2043
|
+
}
|
|
2044
|
+
|
|
2045
|
+
@keyframes aikit-glow-pulse {
|
|
2046
|
+
0% { opacity: 0.7; transform: scale(1) translate(0, 0); }
|
|
2047
|
+
100% { opacity: 1; transform: scale(1.05) translate(2%, 2%); }
|
|
2048
|
+
}
|
|
2049
|
+
|
|
2050
|
+
/* ── Focus-visible ── */
|
|
2051
|
+
:focus-visible {
|
|
2052
|
+
outline: 2px solid var(--dt-accent-fg);
|
|
2053
|
+
outline-offset: 2px;
|
|
2054
|
+
}
|
|
2055
|
+
|
|
2056
|
+
/* ── Selection ── */
|
|
2057
|
+
::selection {
|
|
2058
|
+
background: var(--dt-accent-subtle);
|
|
2059
|
+
color: var(--dt-text-primary);
|
|
2060
|
+
}
|
|
2061
|
+
|
|
2062
|
+
/* ── Custom scrollbar ── */
|
|
2063
|
+
::-webkit-scrollbar {
|
|
2064
|
+
width: 8px;
|
|
2065
|
+
height: 8px;
|
|
2066
|
+
}
|
|
2067
|
+
::-webkit-scrollbar-track {
|
|
2068
|
+
background: transparent;
|
|
2069
|
+
}
|
|
2070
|
+
::-webkit-scrollbar-thumb {
|
|
2071
|
+
background: var(--dt-border-default);
|
|
2072
|
+
border-radius: 4px;
|
|
2073
|
+
}
|
|
2074
|
+
::-webkit-scrollbar-thumb:hover {
|
|
2075
|
+
background: var(--dt-border-muted);
|
|
2076
|
+
}
|
|
2077
|
+
|
|
2078
|
+
/* ── Content visibility for below-fold cards ── */
|
|
2079
|
+
/* NOTE: Only apply to blocks with predictable heights. Content with
|
|
2080
|
+
variable height (mermaid, code, timelines) gets layout shift if
|
|
2081
|
+
intrinsic size is too small. Use 'auto' for auto-sizing. */
|
|
2082
|
+
main > .bk-section:nth-child(n+4) {
|
|
2083
|
+
content-visibility: auto;
|
|
2084
|
+
contain-intrinsic-size: auto 200px;
|
|
1825
2085
|
}
|
|
1826
2086
|
|
|
1827
2087
|
main {
|
|
2088
|
+
position: relative;
|
|
2089
|
+
z-index: 1;
|
|
1828
2090
|
flex: 1;
|
|
1829
2091
|
width: 100%;
|
|
1830
|
-
max-width:
|
|
1831
|
-
|
|
2092
|
+
max-width: var(--aikit-max-width, 960px);
|
|
2093
|
+
margin: 0 auto;
|
|
2094
|
+
padding: var(--aikit-main-padding, 2rem 1.5rem);
|
|
1832
2095
|
display: flex;
|
|
1833
2096
|
flex-direction: column;
|
|
1834
|
-
gap: var(--
|
|
2097
|
+
gap: var(--aikit-main-gap, 1.5rem);
|
|
1835
2098
|
}
|
|
1836
2099
|
|
|
1837
2100
|
main > * {
|
|
1838
2101
|
flex-shrink: 0;
|
|
1839
2102
|
}
|
|
1840
|
-
|
|
2103
|
+
|
|
2104
|
+
@media (max-width: 640px) {
|
|
2105
|
+
main {
|
|
2106
|
+
padding: var(--aikit-main-padding-mobile, 1rem 1rem);
|
|
2107
|
+
gap: var(--aikit-main-gap-mobile, 1rem);
|
|
2108
|
+
}
|
|
2109
|
+
}
|
|
2110
|
+
|
|
2111
|
+
@media (max-width: 480px) {
|
|
2112
|
+
main {
|
|
2113
|
+
padding: var(--aikit-main-padding-mobile, 0.75rem 0.75rem);
|
|
2114
|
+
gap: var(--aikit-main-gap-mobile, 0.75rem);
|
|
2115
|
+
}
|
|
2116
|
+
}
|
|
2117
|
+
|
|
2118
|
+
@media (min-width: 1200px) {
|
|
2119
|
+
main {
|
|
2120
|
+
max-width: var(--aikit-max-width-wide, 1040px);
|
|
2121
|
+
}
|
|
2122
|
+
}
|
|
2123
|
+
`,P,...(Array.isArray(t)?t:typeof t==`string`?[t]:[]).filter(e=>e.trim().length>0)].join(`
|
|
1841
2124
|
`);return[` <style>${e}</style>`,` <style>${n}</style>`].join(`
|
|
1842
|
-
`)}function
|
|
2125
|
+
`)}function Hr(e){let t=Object.entries(D).map(([e,t])=>` ${e}: ${t};`).join(`
|
|
1843
2126
|
`);return[e,`html[data-theme="light"] {
|
|
1844
2127
|
color-scheme: light;
|
|
1845
2128
|
}`,`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(`
|
|
1846
2129
|
|
|
1847
|
-
`)}function
|
|
2130
|
+
`)}function Ur(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(`
|
|
1848
2131
|
`)}).join(`
|
|
1849
|
-
`)}function
|
|
1850
|
-
`)}function
|
|
1851
|
-
`)}function
|
|
1852
|
-
`)}function
|
|
1853
|
-
`)}function
|
|
1854
|
-
|
|
1855
|
-
`)
|
|
2132
|
+
`)}function Wr(e,t){let r=JSON.stringify(e),i=Gr(),a=Kr(zr());return[` <script${` nonce="${n(t)}"`}>`,` (() => {`,` const preferredTheme = ${r};`,` 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]);`,` }`,` };`,i,` 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");`,` };`,a,` 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(`
|
|
2133
|
+
`)}function Gr(){return[` const captureDocumentAsPng = 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 captureServerPng = async () => {`,` const response = await fetch("/__aikit_screenshot.png", { cache: "no-store" });`,` if (!response.ok) throw new Error("Server PNG capture unavailable");`,` const blob = await response.blob();`,` if (!blob || blob.type !== "image/png") throw new Error("Server PNG capture failed");`,` return blob;`,` };`,` 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;`,` 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" }));`,` 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}">`);',` data.setData("text/plain", "AI Kit Present image");`,` 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);`,` }`,` };`,` 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(`
|
|
2134
|
+
`)}function Kr(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 captureDocumentAsPng();`,` } catch (captureError) {`,` console.warn("Server PNG capture unavailable", captureError);`,` blob = await captureServerPng();`,` }`,` 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 {`,` try {`,` blob = await captureDocumentAsPng();`,` } catch (captureError) {`,` console.warn(${JSON.stringify(e.fallbackToServerCaptureMessage)}, captureError);`,` blob = await captureServerPng();`,` }`,` await writeImageToClipboard(blob);`,` showCopyStatus(${JSON.stringify(e.clipboardSuccessMessage)});`,` } catch (_error) {`,` console.warn("Copy as Image failed", _error);`,` 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 — both client and server capture methods returned no image.`)}, "error");`,` }`,` } finally {`,` window.scrollTo(scrollX, scrollY);`,` }`,` };`].join(`
|
|
2135
|
+
`)}function qr(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(`
|
|
2136
|
+
`)}function Jr(e){let t=n(e.lang??`en`),r=n(e.dir??`ltr`),i=e.colorScheme??`auto`,a=e.generatedAt??new Date().toISOString(),o=[`lang="${t}"`,`dir="${r}"`];i!==`auto`&&o.push(`data-theme="${i}"`);let s=``;e.maxWidth?s+=` --aikit-max-width: ${e.maxWidth};\n`:e.layoutVariant===`wide`?(s+=` --aikit-max-width: 1400px;
|
|
2137
|
+
`,s+=` --aikit-max-width-wide: 1400px;
|
|
2138
|
+
`):e.layoutVariant===`full`&&(s+=` --aikit-max-width: none;
|
|
2139
|
+
`,s+=` --aikit-max-width-wide: none;
|
|
2140
|
+
`,s+=` --aikit-main-padding: 0;
|
|
2141
|
+
`),e.mainPadding&&(s+=` --aikit-main-padding: ${e.mainPadding};\n`),e.mainGap&&(s+=` --aikit-main-gap: ${e.mainGap};\n`);let c=``;e.showGlassCss&&(c=Ut);let l=Hr(e.tokenCss??Yt(`light`)),u=Ur(e.headScripts??[],e.nonce),d=e.islands.length>0&&e.payload?` <script type="application/json" id="surface-payload">${Br(e.payload)}<\/script>`:``,f=qr(e.islands,e.exportPolicy,e.nonce),p=e.showGradientGlow?`
|
|
2142
|
+
<div class="aikit-glow-primary"></div>
|
|
2143
|
+
<div class="aikit-glow-secondary"></div>
|
|
2144
|
+
`:``,m=[Wr(i,e.nonce),d,f].filter(Boolean).join(`
|
|
2145
|
+
`);return[`<!DOCTYPE html>`,`<html ${o.join(` `)}>`,`<head>`,` <meta charset="utf-8">`,` <meta name="viewport" content="width=device-width, initial-scale=1">`,` <title>${n(e.title)}</title>`,s?` <style>main {${s}}</style>`:``,Vr(l,[...e.css,c].filter(Boolean)),u,`</head>`,`<body>`,M({title:e.title,subtitle:e.subtitle,transport:e.transport,actionsHtml:e.headerActionsHtml,showToolbox:e.showToolbox}),p,` <main>${e.html}</main>`,N({generatedAt:a,contentHtml:e.footerContentHtml,showInstallGuide:e.showInstallGuide,installUrl:e.installUrl}),m,`</body>`,`</html>`].filter(Boolean).join(`
|
|
2146
|
+
`)}export{A as HEADER_CLASS_NAMES,P as HEADER_CSS,L as TemplateRegistry,Wt as allCss,Ht as baseCss,f as blockItems,zr as buildCopyImageExportFallback,N as buildFooter,M as buildHeader,Jr as buildShell,Wr as buildThemeScript,dn as checklistTemplate,k as collectCss,Vt as darkTokenNames,D as darkTokens,Pr as dashboardTemplateDefinition,_n as dataTableTemplate,Z as defaultRegistry,wn as diffViewTemplate,An as documentTemplate,H as errorTemplate,n as escapeHtml,Lr as flameGraphTemplateDefinition,Fn as formTemplate,a as formatValue,Jt as generateDarkTokenCss,Yt as generateTokenCss,Ut as glassCss,s as inlineMarkdown,t as isError,e as isResult,Fr as kanbanTemplateDefinition,Ir as listSortTemplateDefinition,Hn as pickerTemplate,F as renderBlock,I as renderBlocks,yr as renderSurface,Zn as reportTemplate,nr as reviewTemplate,i as sanitizeId,r as sanitizeUrl,or as statusBoardTemplate,dr as timelineTemplate,Bt as tokenNames,E as tokens,u as toneName,d as toneVar,hr as treeTemplate,o as tryParseJson};
|