@vpxa/aikit 0.1.153 → 0.1.155

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vpxa/aikit",
3
- "version": "0.1.153",
3
+ "version": "0.1.155",
4
4
  "type": "module",
5
5
  "description": "Local-first AI developer toolkit — knowledge base, code analysis, context management, and developer tools for LLM agents",
6
6
  "license": "MIT",
@@ -1,5 +1,28 @@
1
- function e(e){return e.kind===`result`}function t(e){return e.kind===`error`}function n(e){return String(e??``).replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`)}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 ee(e){let t=o(e);return Array.isArray(t)?t:[]}function te(e,t){return`<div class="bk-actions">${ee(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>`}return`<button type="button" class="bk-action bk-action--${n(e.variant??`default`)}" data-action-id="${t}">${n(e.label)}</button>`}).join(``)}</div>`}function ne(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>`}function re(e,t){let r=o(e.value),i=Array.isArray(r?.data)?r.data:[],s=[String(r?.xKey??`label`),...Array.isArray(r?.yKeys)&&r.yKeys.length>0?r.yKeys:[`value`]],c=s.map(e=>`<th>${n(e)}</th>`).join(``),l=i.map(e=>`<tr>${s.map(t=>`<td>${n(a(e[t]))}</td>`).join(``)}</tr>`).join(``);return`<div class="bk-chart"><div class="bk-chart-note">Chart fallback (${n(String(r?.chartType??e.chartType??`chart`))}) rendered as a data table.</div><div class="bk-chart-table-wrap"><table class="bk-chart-table"><thead><tr>${c}</tr></thead><tbody>${l}</tbody></table></div></div>`}function ie(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 ae(e,t){return`<pre class="bk-code"><code class="${(e.language?` language-${i(String(e.language))}`:``).trim()}">${n(String(e.value??``))}</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 se(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 ce(e){let t=o(e);return Array.isArray(t)?t:t&&typeof t==`object`&&Array.isArray(t.files)?t.files:[]}function le(e,t){return`<div class="bk-docs-browser">${ce(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 ue(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 de(e,t){let r=ue(e),i=u(r.severity),a=r.detail===void 0?``:s(String(r.detail)).replace(/\n/g,`<br>`);return`<article class="bk-finding" data-tone="${i}"><div class="bk-finding-header"><div class="bk-finding-title">${n(r.title)}</div><span class="bk-finding-severity" style="background:var(--dt-${i}-subtle);color:var(--dt-${i}-fg);">${n(r.severity??`info`)}</span></div><div class="bk-finding-detail">${a}</div></article>`}function p(e){return String(e??``).replace(/"/g,`\\"`)}function fe(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=p(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?`|${p(e.label)}|`:``;a.push(` ${t} -->${r} ${n}`)}return`<pre class="bk-graph mermaid">${n(a.join(`
2
- `))}</pre>`}function pe(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 me(e,t){let n=String(e.value??``);return`<div class="bk-markdown">${n.trimStart().startsWith(`<`)?n:s(n).replace(/\n/g,`<br>`)}</div>`}function he(e,t){return`<pre class="bk-mermaid mermaid">${n(String(e.value??``))}</pre>`}function ge(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 _e(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>${ge(e.trend)}</article>`).join(``)}</div>`}function ve(e,t){return`<p class="bk-paragraph">${n(String(e.value??e.text??``))}</p>`}function ye(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 be(e,t){return`<div class="bk-progress">${ye(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 xe(e){if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e??``)}}function Se(e,t){return`<pre class="bk-prompt">${n(xe(e.value))}</pre>`}function Ce(e,t){return`<hr class="bk-separator">`}function we(e){let t=o(e);return Array.isArray(t)?t:t&&typeof t==`object`&&Array.isArray(t.items)?t.items:[]}function Te(e,t){return`<div class="bk-status-board">${we(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)}</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 Ee(e){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;return{headers:Array.isArray(e.headers)?e.headers.map(String):Object.keys(n[0]??{}),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,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,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,rows:r}}return{headers:Array.isArray(e.headers)?e.headers.map(String):[],rows:[]}}function De(e,t){let{headers:r,rows:i}=Ee(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>${i.map(e=>`<tr>${r.map(t=>`<td>${n(a(e[t]))}</td>`).join(``)}</tr>`).join(``)}</tbody></table></div>`}function Oe(e){let t=o(e);return Array.isArray(t)?t:t&&typeof t==`object`&&Array.isArray(t.items)?t.items:[]}function ke(e,t){return`<div class="bk-tags">${Oe(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 Ae(e,t){return`<div class="bk-text">${s(String(e.value??``)).replace(/\n/g,`<br>`)}</div>`}function je(e,t){return`<div class="bk-timeline">${f(e).map(e=>{let t=u(e.status),r=e.description?`<div class="bk-timeline-description">${n(e.description)}</div>`:``,i=e.timestamp?`<div class="bk-timeline-timestamp">${n(e.timestamp)}</div>`:``;return`<article class="bk-timeline-item" data-tone="${t}"><span class="bk-timeline-dot" style="background:${`var(--dt-${t}-emphasis)`};box-shadow:0 0 0 6px var(--dt-glow-${t});"></span><div class="bk-timeline-title">${n(e.title)}</div>${r}${i}</article>`}).join(``)}</div>`}function m(e,t){if(Array.isArray(e)){let r=e.map(e=>m(e)).join(``);return t?`<details class="bk-tree-node" open><summary>${n(t)}</summary><div class="bk-tree-children">${r}</div></details>`:`<div class="bk-tree-children">${r}</div>`}if(e&&typeof e==`object`){let r=e;if(typeof r.name==`string`)return m(r.children??[],r.name);let i=Object.entries(r).map(([e,t])=>m(t,e)).join(``);return t?`<details class="bk-tree-node" open><summary>${n(t)}</summary><div class="bk-tree-children">${i}</div></details>`:`<div class="bk-tree-children">${i}</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 Me(e,t){return`<div class="bk-tree">${m(o(e.value))}</div>`}const h={"--dt-bg-primary":`#ffffff`,"--dt-bg-secondary":`#f6f8fa`,"--dt-bg-tertiary":`#eaeef2`,"--dt-bg-canvas":`#f0f0f0`,"--dt-text-primary":`#1f2328`,"--dt-text-secondary":`#656d76`,"--dt-text-tertiary":`#8b949e`,"--dt-border-default":`#d0d7de`,"--dt-border-muted":`#d8dee4`,"--dt-border-subtle":`#eaeef2`,"--dt-accent-fg":`#0969da`,"--dt-accent-emphasis":`#0550ae`,"--dt-accent-muted":`rgba(9, 105, 218, 0.4)`,"--dt-accent-subtle":`rgba(9, 105, 218, 0.1)`,"--dt-success-fg":`#1a7f37`,"--dt-success-emphasis":`#116329`,"--dt-success-muted":`rgba(26, 127, 55, 0.4)`,"--dt-success-subtle":`rgba(26, 127, 55, 0.1)`,"--dt-danger-fg":`#cf222e`,"--dt-danger-emphasis":`#a40e26`,"--dt-danger-muted":`rgba(207, 34, 46, 0.4)`,"--dt-danger-subtle":`rgba(207, 34, 46, 0.1)`,"--dt-warning-fg":`#9a6700`,"--dt-warning-emphasis":`#7d4e00`,"--dt-warning-muted":`rgba(154, 103, 0, 0.4)`,"--dt-warning-subtle":`rgba(154, 103, 0, 0.1)`,"--dt-purple-fg":`#8250df`,"--dt-purple-emphasis":`#6639ba`,"--dt-purple-muted":`rgba(130, 80, 223, 0.4)`,"--dt-purple-subtle":`rgba(130, 80, 223, 0.1)`,"--dt-font-sans":`'Segoe UI', system-ui, -apple-system, sans-serif`,"--dt-font-mono":`'JetBrains 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-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(9, 105, 218, 0.08)`,"--dt-glow-success":`rgba(26, 127, 55, 0.08)`,"--dt-glow-danger":`rgba(207, 34, 46, 0.08)`,"--dt-glow-warning":`rgba(154, 103, 0, 0.08)`,"--dt-glow-purple":`rgba(130, 80, 223, 0.08)`,"--dt-transition-fast":`150ms ease`,"--dt-transition-normal":`200ms ease`},g={"--dt-bg-primary":`#0d1117`,"--dt-bg-secondary":`#161b22`,"--dt-bg-tertiary":`#21262d`,"--dt-bg-canvas":`#010409`,"--dt-text-primary":`#f0f6fc`,"--dt-text-secondary":`#9198a1`,"--dt-text-tertiary":`#656d76`,"--dt-border-default":`#30363d`,"--dt-border-muted":`#21262d`,"--dt-border-subtle":`#1f242d`,"--dt-accent-fg":`#58a6ff`,"--dt-accent-emphasis":`#1f6feb`,"--dt-accent-muted":`rgba(56, 139, 253, 0.4)`,"--dt-accent-subtle":`rgba(56, 139, 253, 0.15)`,"--dt-success-fg":`#3fb950`,"--dt-success-emphasis":`#238636`,"--dt-success-muted":`rgba(63, 185, 80, 0.4)`,"--dt-success-subtle":`rgba(63, 185, 80, 0.15)`,"--dt-danger-fg":`#f85149`,"--dt-danger-emphasis":`#da3633`,"--dt-danger-muted":`rgba(248, 81, 73, 0.4)`,"--dt-danger-subtle":`rgba(248, 81, 73, 0.15)`,"--dt-warning-fg":`#d29922`,"--dt-warning-emphasis":`#bb8009`,"--dt-warning-muted":`rgba(210, 153, 34, 0.4)`,"--dt-warning-subtle":`rgba(210, 153, 34, 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(1, 4, 9, 0.35)`,"--dt-shadow-md":`0 3px 6px rgba(1, 4, 9, 0.4)`,"--dt-shadow-lg":`0 8px 24px rgba(1, 4, 9, 0.45)`,"--dt-glow-accent":`rgba(56, 139, 253, 0.14)`,"--dt-glow-success":`rgba(63, 185, 80, 0.14)`,"--dt-glow-danger":`rgba(248, 81, 73, 0.14)`,"--dt-glow-warning":`rgba(210, 153, 34, 0.14)`,"--dt-glow-purple":`rgba(188, 140, 255, 0.14)`},Ne=`--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-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-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(`.`),Pe=`--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-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(`.`),_={actions:`
1
+ function e(e){return e.kind===`result`}function t(e){return e.kind===`error`}function n(e){return String(e??``).replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`)}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 ee(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>`}return`<button type="button" class="bk-action bk-action--${n(e.variant??`default`)}" data-action-id="${t}">${n(e.label)}</button>`}).join(``)}</div>`}function te(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>`}function ne(e,t){let r=o(e.value),i=Array.isArray(r?.data)?r.data:[],s=[String(r?.xKey??`label`),...Array.isArray(r?.yKeys)&&r.yKeys.length>0?r.yKeys:[`value`]],c=s.map(e=>`<th>${n(e)}</th>`).join(``),l=i.map(e=>`<tr>${s.map(t=>`<td>${n(a(e[t]))}</td>`).join(``)}</tr>`).join(``);return`<div class="bk-chart"><div class="bk-chart-note">Chart fallback (${n(String(r?.chartType??e.chartType??`chart`))}) rendered as a data table.</div><div class="bk-chart-table-wrap"><table class="bk-chart-table"><thead><tr>${c}</tr></thead><tbody>${l}</tbody></table></div></div>`}function re(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 ie(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 ae(e){let t=o(e);return Array.isArray(t)?t:t&&typeof t==`object`&&Array.isArray(t.columns)?t.columns:[]}function oe(e,t){return`<div class="bk-comparison">${ae(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 se(e){let t=o(e);return Array.isArray(t)?t:t&&typeof t==`object`&&Array.isArray(t.files)?t.files:[]}function ce(e,t){return`<div class="bk-docs-browser">${se(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 le(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 ue(e,t){let r=le(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 m(e){return String(e??``).replace(/"/g,`\\"`)}function de(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=m(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?`|${m(e.label)}|`:``;a.push(` ${t} -->${r} ${n}`)}return`<pre class="bk-graph mermaid">${n(a.join(`
2
+ `))}</pre>`}const h=`
3
+ .bk-heading {
4
+ margin: 0;
5
+ color: var(--dt-text-primary);
6
+ font-family: var(--dt-font-sans);
7
+ font-weight: 700;
8
+ line-height: 1.15;
9
+ }
10
+ .bk-heading--1 { font-size: var(--dt-font-size-3xl); }
11
+ .bk-heading--2 { font-size: var(--dt-font-size-2xl); }
12
+ .bk-heading--3 { font-size: var(--dt-font-size-xl); }
13
+ .bk-heading--4 { font-size: var(--dt-font-size-lg); }
14
+ .bk-heading--5,
15
+ .bk-heading--6 { font-size: var(--dt-font-size-base); }
16
+ `;function fe(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}>`}const pe=`
17
+ ${h}
18
+ .bk-markdown {
19
+ color: var(--dt-text-primary);
20
+ font-size: var(--dt-font-size-base);
21
+ line-height: 1.7;
22
+ }
23
+ `,me=/^(#{1,6})\s+(.+)$/,he=/^(?:(?:-\s*){3,}|(?:\*\s*){3,}|(?:_\s*){3,})$/;function ge(e){return e.length?`<p>${e.map(e=>s(e)).join(`<br>`)}</p>`:``}function _e(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=ge(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(`
24
+ `))}</code></pre>`),o=!1,s=[],c=``}continue}if(o){s.push(e);continue}if(!t){l();continue}let r=t.match(me);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(he.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(`
25
+ `))}</code></pre>`)}return`<div class="bk-markdown">${i.join(``)}</div>`}function ve(e,t){return`<pre class="bk-mermaid mermaid">${n(String(e.value??``))}</pre>`}function ye(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 be(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>${ye(e.trend)}</article>`).join(``)}</div>`}function xe(e,t){return`<p class="bk-paragraph">${n(String(e.value??e.text??``))}</p>`}function Se(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 Ce(e,t){return`<div class="bk-progress">${Se(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 we(e){if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e??``)}}function Te(e,t){return`<pre class="bk-prompt">${n(we(e.value))}</pre>`}function Ee(e,t){return`<hr class="bk-separator">`}function De(e){let t=o(e);return Array.isArray(t)?t:t&&typeof t==`object`&&Array.isArray(t.items)?t.items:[]}function Oe(e,t){return`<div class="bk-status-board">${De(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)}</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 ke(e){if(Array.isArray(e.columns)){let t=e.columns.map(String),n=Array.isArray(e.rows)?e.rows:[];return n.length>0&&Array.isArray(n[0])?{headers:t,rows:n.map(e=>Object.fromEntries(t.map((t,n)=>[t,e[n]??``])))}:n.length>0&&typeof n[0]==`object`&&n[0]!==null?{headers:t,rows:n}:{headers:t,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;return{headers:Array.isArray(e.headers)?e.headers.map(String):Object.keys(n[0]??{}),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,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,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,rows:r}}return{headers:(Array.isArray(e.headers)?e.headers:Array.isArray(e.columns)?e.columns:[]).map(String),rows:[]}}function Ae(e,t){let{headers:r,rows:i}=ke(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>${i.map(e=>`<tr>${r.map(t=>`<td>${n(a(e[t]))}</td>`).join(``)}</tr>`).join(``)}</tbody></table></div>`}function je(e){let t=o(e);return Array.isArray(t)?t:t&&typeof t==`object`&&Array.isArray(t.items)?t.items:[]}function Me(e,t){return`<div class="bk-tags">${je(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 Ne(e,t){return`<div class="bk-text">${s(String(e.value??``)).replace(/\n/g,`<br>`)}</div>`}function Pe(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 g(e,t){if(Array.isArray(e)){let r=e.map(e=>g(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;if(typeof r.name==`string`)return g(r.children??[],r.name);let i=Object.entries(r).map(([e,t])=>g(t,e)).join(``);return t?`<details class="bk-tree-node" open><summary>${n(t)}</summary><div class="bk-tree-children">${i}</div></details>`:`<div class="bk-tree-children">${i}</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 Fe(e,t){return`<div class="bk-tree">${g(o(e.value))}</div>`}const _={"--dt-bg-primary":`#ffffff`,"--dt-bg-secondary":`#f6f8fa`,"--dt-bg-tertiary":`#eaeef2`,"--dt-bg-canvas":`#f0f0f0`,"--dt-text-primary":`#1f2328`,"--dt-text-secondary":`#656d76`,"--dt-text-tertiary":`#8b949e`,"--dt-border-default":`#d0d7de`,"--dt-border-muted":`#d8dee4`,"--dt-border-subtle":`#eaeef2`,"--dt-accent-fg":`#0969da`,"--dt-accent-emphasis":`#0550ae`,"--dt-accent-muted":`rgba(9, 105, 218, 0.4)`,"--dt-accent-subtle":`rgba(9, 105, 218, 0.1)`,"--dt-success-fg":`#1a7f37`,"--dt-success-emphasis":`#116329`,"--dt-success-muted":`rgba(26, 127, 55, 0.4)`,"--dt-success-subtle":`rgba(26, 127, 55, 0.1)`,"--dt-danger-fg":`#cf222e`,"--dt-danger-emphasis":`#a40e26`,"--dt-danger-muted":`rgba(207, 34, 46, 0.4)`,"--dt-danger-subtle":`rgba(207, 34, 46, 0.1)`,"--dt-warning-fg":`#9a6700`,"--dt-warning-emphasis":`#7d4e00`,"--dt-warning-muted":`rgba(154, 103, 0, 0.4)`,"--dt-warning-subtle":`rgba(154, 103, 0, 0.1)`,"--dt-purple-fg":`#8250df`,"--dt-purple-emphasis":`#6639ba`,"--dt-purple-muted":`rgba(130, 80, 223, 0.4)`,"--dt-purple-subtle":`rgba(130, 80, 223, 0.1)`,"--dt-font-sans":`'Segoe UI', system-ui, -apple-system, sans-serif`,"--dt-font-mono":`'JetBrains 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-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(9, 105, 218, 0.08)`,"--dt-glow-success":`rgba(26, 127, 55, 0.08)`,"--dt-glow-danger":`rgba(207, 34, 46, 0.08)`,"--dt-glow-warning":`rgba(154, 103, 0, 0.08)`,"--dt-glow-purple":`rgba(130, 80, 223, 0.08)`,"--dt-transition-fast":`150ms ease`,"--dt-transition-normal":`200ms ease`},v={"--dt-bg-primary":`#0d1117`,"--dt-bg-secondary":`#161b22`,"--dt-bg-tertiary":`#21262d`,"--dt-bg-canvas":`#010409`,"--dt-text-primary":`#f0f6fc`,"--dt-text-secondary":`#9198a1`,"--dt-text-tertiary":`#656d76`,"--dt-border-default":`#30363d`,"--dt-border-muted":`#21262d`,"--dt-border-subtle":`#1f242d`,"--dt-accent-fg":`#58a6ff`,"--dt-accent-emphasis":`#1f6feb`,"--dt-accent-muted":`rgba(56, 139, 253, 0.4)`,"--dt-accent-subtle":`rgba(56, 139, 253, 0.15)`,"--dt-success-fg":`#3fb950`,"--dt-success-emphasis":`#238636`,"--dt-success-muted":`rgba(63, 185, 80, 0.4)`,"--dt-success-subtle":`rgba(63, 185, 80, 0.15)`,"--dt-danger-fg":`#f85149`,"--dt-danger-emphasis":`#da3633`,"--dt-danger-muted":`rgba(248, 81, 73, 0.4)`,"--dt-danger-subtle":`rgba(248, 81, 73, 0.15)`,"--dt-warning-fg":`#d29922`,"--dt-warning-emphasis":`#bb8009`,"--dt-warning-muted":`rgba(210, 153, 34, 0.4)`,"--dt-warning-subtle":`rgba(210, 153, 34, 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(1, 4, 9, 0.35)`,"--dt-shadow-md":`0 3px 6px rgba(1, 4, 9, 0.4)`,"--dt-shadow-lg":`0 8px 24px rgba(1, 4, 9, 0.45)`,"--dt-glow-accent":`rgba(56, 139, 253, 0.14)`,"--dt-glow-success":`rgba(63, 185, 80, 0.14)`,"--dt-glow-danger":`rgba(248, 81, 73, 0.14)`,"--dt-glow-warning":`rgba(210, 153, 34, 0.14)`,"--dt-glow-purple":`rgba(188, 140, 255, 0.14)`},Ie=`--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-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-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(`.`),Le=`--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-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(`.`),y={actions:`
3
26
  .bk-actions {
4
27
  display: flex;
5
28
  flex-wrap: wrap;
@@ -301,27 +324,7 @@ function e(e){return e.kind===`result`}function t(e){return e.kind===`error`}fun
301
324
  font-size: var(--dt-font-size-sm);
302
325
  line-height: 1.6;
303
326
  }
304
- `,heading:`
305
- .bk-heading {
306
- margin: 0;
307
- color: var(--dt-text-primary);
308
- font-family: var(--dt-font-sans);
309
- font-weight: 700;
310
- line-height: 1.15;
311
- }
312
- .bk-heading--1 { font-size: var(--dt-font-size-3xl); }
313
- .bk-heading--2 { font-size: var(--dt-font-size-2xl); }
314
- .bk-heading--3 { font-size: var(--dt-font-size-xl); }
315
- .bk-heading--4 { font-size: var(--dt-font-size-lg); }
316
- .bk-heading--5,
317
- .bk-heading--6 { font-size: var(--dt-font-size-base); }
318
- `,markdown:`
319
- .bk-markdown {
320
- color: var(--dt-text-primary);
321
- font-size: var(--dt-font-size-base);
322
- line-height: 1.7;
323
- }
324
- `,mermaid:`
327
+ `,heading:h,markdown:pe,mermaid:`
325
328
  .bk-mermaid {
326
329
  margin: 0;
327
330
  padding: var(--dt-space-4);
@@ -618,7 +621,7 @@ function e(e){return e.kind===`result`}function t(e){return e.kind===`error`}fun
618
621
  .bk-tree-key {
619
622
  color: var(--dt-text-primary);
620
623
  }
621
- `},v=`
624
+ `},Re=`
622
625
  .bk-section {
623
626
  display: grid;
624
627
  gap: var(--dt-space-3);
@@ -700,19 +703,19 @@ function e(e){return e.kind===`result`}function t(e){return e.kind===`error`}fun
700
703
  white-space: nowrap;
701
704
  border: 0;
702
705
  }
703
- `;function y(e){let t=[v],n=new Set;for(let r of e)!n.has(r)&&_[r]&&(n.add(r),t.push(_[r]));return t.join(`
704
- `)}function Fe(){return y(Object.keys(_))}function b(e){return Object.entries(e).map(([e,t])=>` ${e}: ${t};`).join(`
705
- `)}function Ie(e,t){let n=` `.repeat(t);return e.split(`
706
+ `;function b(e){let t=[Re],n=new Set;for(let r of e)!n.has(r)&&y[r]&&(n.add(r),t.push(y[r]));return t.join(`
707
+ `)}function ze(){return b(Object.keys(y))}function x(e){return Object.entries(e).map(([e,t])=>` ${e}: ${t};`).join(`
708
+ `)}function Be(e,t){let n=` `.repeat(t);return e.split(`
706
709
  `).map(e=>`${n}${e}`).join(`
707
- `)}function Le(e){return e===`dark`?{...h,...g}:{...h}}function x(){return b(g)}function S(e=`auto`){let t=`:root {\n${b(Le(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 {
710
+ `)}function Ve(e){return e===`dark`?{..._,...v}:{..._}}function S(){return x(v)}function C(e=`auto`){let t=`:root {\n${x(Ve(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 {
708
711
  color-scheme: light;
709
- }`,[`@media (prefers-color-scheme: dark) {`,` :root {`,Ie(x(),4),` }`,``,` html {`,` color-scheme: dark;`,` }`,`}`].join(`
712
+ }`,[`@media (prefers-color-scheme: dark) {`,` :root {`,Be(S(),4),` }`,``,` html {`,` color-scheme: dark;`,` }`,`}`].join(`
710
713
  `)].join(`
711
714
 
712
- `)}const Re={actions:te,cards:ne,chart:re,checklist:ie,code:ae,comparison:se,"docs-browser":le,finding:de,graph:fe,heading:pe,markdown:me,mermaid:he,metrics:_e,paragraph:ve,progress:be,prompt:Se,separator:Ce,"status-board":Te,table:De,tags:ke,text:Ae,timeline:je,tree:Me};function C(e,t){let r={...e,value:o(e.value)},i=Re[r.type],a=i?i(r,t):ze(r);return r.title&&![`heading`,`finding`].includes(r.type)?`<section class="bk-section bk-section--${n(r.type)}"><h3 class="bk-section-title">${n(r.title)}</h3>${a}</section>`:a}function w(e,t){return e.map(e=>C(e,t)).join(`
713
- `)}function ze(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 T=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 Be=[`mcp-app`,`browser`];function E(e){return typeof e==`object`&&!!e}function Ve(e){return Array.isArray(e)?e.flatMap(e=>!E(e)||typeof e.label!=`string`?[]:[{label:e.label,checked:!!e.checked}]):[]}const D={id:`checklist@1`,label:`Checklist`,description:`Checklist with optional title and form 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=E(e)&&typeof e.title==`string`?e.title:void 0,r=E(e)?Ve(e.items):[];return n&&t.push({type:`heading`,value:n}),t.push({type:`checklist`,value:r}),t},hydration:[`form`],supportedTransports:Be},He=[`mcp-app`,`browser`,`export`];function O(e){return typeof e==`object`&&!!e}function Ue(e){return O(e)&&typeof e.label==`string`&&(typeof e.value==`string`||typeof e.value==`number`)}function We(e){return O(e)&&typeof e.key==`string`&&typeof e.label==`string`}function Ge(e){return Array.isArray(e)?e.filter(O):[]}function Ke(e,t){if(Array.isArray(e)){let t=e.filter(We);if(t.length>0)return t}return Object.keys(t[0]??{}).map(e=>({key:e,label:e}))}const k={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=O(e)?Ge(e.rows):[],n=O(e)?Ke(e.columns,t):[],r=n.map(e=>e.label),i=t.map(e=>n.map(t=>e[t.key])),a=[];if(O(e)&&Array.isArray(e.stats)){let t=e.stats.filter(Ue);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:He},qe=[`mcp-app`,`browser`,`export`];function A(e){return typeof e==`object`&&!!e}function Je(e){return Array.isArray(e)?e.flatMap(e=>!A(e)||typeof e.type!=`string`||typeof e.content!=`string`?[]:[{type:e.type,content:e.content}]):[]}function Ye(e){return Array.isArray(e)?e.flatMap(e=>!A(e)||typeof e.header!=`string`?[]:[{header:e.header,changes:Je(e.changes)}]):[]}function Xe(e){return!A(e)||!Array.isArray(e.files)?[]:e.files.flatMap(e=>!A(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:Ye(e.hunks)}])}function Ze(e){return e===`add`?`+`:e===`delete`?`-`:` `}function Qe(e){let t=e.hunks.flatMap(e=>[e.header,...e.changes.map(e=>`${Ze(e.type)}${e.content}`)]).join(`
714
- `);return[{type:`heading`,value:e.path},{type:`paragraph`,value:`${e.status} | +${e.additions} / -${e.deletions}`},{type:`code`,language:`diff`,value:t}]}const j={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=>Xe(e).flatMap(Qe),hydration:[],supportedTransports:qe},$e=[`mcp-app`,`browser`,`export`];function M(e){return typeof e==`object`&&!!e}function et(e){return M(e)&&typeof e.type==`string`}function tt(e){return Array.isArray(e)&&e.every(et)}function nt(e){if(!M(e))return{sections:[]};let t=Array.isArray(e.sections)?e.sections.flatMap(e=>{if(!M(e)||typeof e.heading!=`string`)return[];let t=typeof e.content==`string`||tt(e.content)?e.content:``;return[{heading:e.heading,content:t}]}):[];return{title:typeof e.title==`string`?e.title:void 0,sections:t}}function rt(e){let t=[{type:`heading`,value:e.heading}];return typeof e.content==`string`?(t.push({type:`paragraph`,value:e.content}),t):(t.push(...e.content),t)}const N={id:`document@1`,label:`Document`,description:`Structured document with optional title and section content blocks.`,inputSchema:{type:`object`,properties:{title:{type:`string`},sections:{type:`array`,items:{type:`object`,additionalProperties:!1,required:[`heading`,`content`],properties:{heading:{type:`string`},content:{oneOf:[{type:`string`},{type:`array`,items:{type:`object`}}]}}}}},required:[`sections`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t=nt(e),n=[];t.title&&n.push({type:`heading`,value:t.title});for(let e of t.sections)n.push(...rt(e));return n},hydration:[],supportedTransports:$e},it=[`mcp-app`,`browser`,`export`];function at(e){return typeof e==`object`&&!!e}function ot(e){return at(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 P={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=ot(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:it};function F(e){return typeof e==`object`&&!!e}function I(e){return e.replace(/\|/g,`\\|`).replace(/\r?\n/g,` `)}function st(e){return Array.isArray(e)?e.flatMap(e=>!F(e)||typeof e.name!=`string`||typeof e.label!=`string`?[]:[{name:e.name,label:e.label,type:typeof e.type==`string`?e.type:void 0,options:Array.isArray(e.options)?e.options.filter(e=>typeof e==`string`):void 0,value:typeof e.value==`string`?e.value:void 0}]):[]}function ct(e){let t=[`| Label | Name | Type | Options | Value |`,`| --- | --- | --- | --- | --- |`];for(let n of e)t.push(`| ${I(n.label)} | ${I(n.name)} | ${I(n.type??`text`)} | ${I((n.options??[]).join(`, `))} | ${I(n.value??``)} |`);return t.join(`
715
- `)}const L={id:`form@1`,label:`Form`,description:`Browser-only form template rendered as a heading and markdown field table.`,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`},options:{type:`array`,items:{type:`string`}},value:{type:`string`}},additionalProperties:!1}}},required:[`fields`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t={title:F(e)&&typeof e.title==`string`?e.title:`Form`,fields:F(e)?st(e.fields):[]};return[{type:`heading`,value:t.title},{type:`markdown`,value:ct(t.fields)}]},hydration:[`form`],supportedTransports:[`browser`]},lt=[`mcp-app`,`browser`];function R(e){return typeof e==`object`&&!!e}function ut(e){if(!Array.isArray(e))return;let t=e.flatMap(e=>!R(e)||typeof e.id!=`string`||typeof e.label!=`string`?[]:[{id:e.id,label:e.label}]);return t.length>0?t:void 0}function dt(e){return Array.isArray(e)?e.flatMap(e=>!R(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 ft(e){return R(e)?{categories:ut(e.categories),items:dt(e.items)}:{items:[]}}function z(e){return{title:e.label,body:e.id,description:e.tags&&e.tags.length>0?e.tags.join(`, `):void 0}}function B(e,t){return t.length===0?[]:[{type:`heading`,value:e},{type:`cards`,value:t.map(z)}]}const V={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=ft(e),n=[];if(t.categories&&t.categories.length>0){let e=new Set(t.categories.map(e=>e.id));for(let e of t.categories)n.push(...B(e.label,t.items.filter(t=>t.category===e.id)));let r=t.items.filter(t=>!t.category||!e.has(t.category));return n.push(...B(`Other`,r)),n}return t.items.length>0&&n.push({type:`cards`,value:t.items.map(z)}),n},hydration:[`picker`],supportedTransports:lt},pt=[`mcp-app`,`browser`,`export`];function H(e){return typeof e==`object`&&!!e}function mt(e){return H(e)&&typeof e.type==`string`}function ht(e){return Array.isArray(e)&&e.every(mt)}function gt(e){return H(e)&&typeof e.label==`string`&&(typeof e.value==`string`||typeof e.value==`number`)}function _t(e){return Array.isArray(e)?e.flatMap(e=>{if(!H(e)||typeof e.heading!=`string`)return[];let t=typeof e.content==`string`||ht(e.content)?e.content:``;return[{heading:e.heading,content:t}]}):[]}function vt(e){return Array.isArray(e)?e.flatMap(e=>H(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 yt(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 bt(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 U={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:H(e)&&typeof e.title==`string`?e.title:`Report`,metrics:H(e)&&Array.isArray(e.metrics)?e.metrics.filter(gt):void 0,sections:H(e)?_t(e.sections):[],tables:H(e)?vt(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(...yt(e));for(let e of t.tables??[])n.push(bt(e));return n},hydration:[],supportedTransports:pt},xt=[`mcp-app`,`browser`,`export`];function W(e){return typeof e==`object`&&!!e}function St(e){return Array.isArray(e)?e.flatMap(e=>{if(!W(e)||typeof e.category!=`string`||!Array.isArray(e.items))return[];let t=e.items.flatMap(e=>!W(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 Ct(e){return e.map(e=>({title:e.label,status:e.status,badge:e.badge}))}const G={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=W(e)?St(e.categories):[],n=[];for(let e of t)n.push({type:`heading`,value:e.category}),n.push({type:`cards`,value:Ct(e.items)});return n},hydration:[],supportedTransports:xt},wt=[`mcp-app`,`browser`,`export`];function Tt(e){return typeof e==`object`&&!!e}function Et(e){return Array.isArray(e)?e.flatMap(e=>!Tt(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}]):[]}const K={id:`timeline@1`,label:`Timeline`,description:`Static timeline events rendered as a timeline block.`,inputSchema:{type:`array`,items:{type:`object`,required:[`title`],properties:{title:{type:`string`},description:{type:`string`},timestamp:{type:`string`},status:{type:`string`}},additionalProperties:!1}},defaultLayout:{},blocksFromData:e=>[{type:`timeline`,value:Et(e)}],hydration:[],supportedTransports:wt},Dt=[`mcp-app`,`browser`,`export`];function q(e){return typeof e==`object`&&!!e}function J(e){return q(e)&&typeof e.label==`string`}function Y(e){return{name:e.label,children:Array.isArray(e.children)?e.children.filter(J).map(Y):[]}}function Ot(e){if(!q(e))return{};let t=e.root;return J(t)?Y(t):q(t)?t:e}const X={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:Ot(e)}],hydration:[`tree`],supportedTransports:Dt},Z=new T;Z.register(D),Z.register(j),Z.register(N),Z.register(V),Z.register(U),Z.register(K),Z.register(X),Z.register(k),Z.register(P),Z.register(L),Z.register(G);let Q=0;function kt(){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 At(e){return{id:e,version:1,entry:`@aikit/blocks-interactive/dist/islands/${e}.js`,selector:`[data-island="${e}"]`,needsData:!0}}function jt(e,t){let n=new TextEncoder;return n.encode(e).byteLength+t.reduce((e,t)=>e+n.encode(t).byteLength,0)}function Mt(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),t.actionsFromData&&(c=[...c,...t.actionsFromData(e.data)]),s=t.hydration.map(e=>At(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?P.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=w(o,i),u=[y(o.map(e=>e.type))],d=t.nonce??kt(),f=e.metadata?.surfaceId??`surface-${d}`,ee=s.length>0?JSON.stringify({data:e.data,blocks:o}):void 0;return{surfaceId:f,nonce:d,html:l,css:u,islands:s,actions:c,payload:ee,estimatedBytes:jt(l,u),exportPolicy:s.length>0?`local-interactive`:`static-only`,diagnostics:n.length>0?n:void 0}}function Nt(e){return e===`up`||e===`down`||e===`neutral`}function $(e){return typeof e==`object`&&!!e}function Pt(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`&&Nt(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`?Ht(e.progress):void 0,items:n}]})}}function Ft(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 It(e){return e.type!==`progress`||typeof e.progress!=`number`?null:{label:e.label,value:Ht(e.progress),max:100}}function Lt(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 Rt(e){return{title:e.title,description:e.description,badge:e.priority,body:e.tags?.join(`, `),status:e.priority}}function zt(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 Bt(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=>Bt(e)):[]}:{name:``,total:0,children:[]}}function Vt(e){return{name:e.self==null?`${e.name} (${e.total})`:`${e.name} (${e.total} total / ${e.self} self)`,children:(e.children??[]).map(Vt)}}function Ht(e){return Math.max(0,Math.min(100,e))}function Ut(e){let t=Pt(e),n=[];t.metrics.length>0&&n.push({type:`metrics`,value:t.metrics.map(Ft)});let r=t.metrics.map(It).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 Wt(e){let t=Lt(e),n=[];for(let e of t.columns){let r=t.cards.filter(t=>t.column===e.id);n.push({type:`heading`,value:e.label}),n.push({type:`cards`,value:r.map(Rt)})}return n}function Gt(e){let t=zt(e);return t.length===0?[]:[{type:`cards`,value:t.map((e,t)=>({title:e.label,body:e.id,badge:`#${t+1}`}))}]}function Kt(e){return!$(e)||!$(e.profile)?[]:[{type:`tree`,value:Vt(Bt(e.profile))}]}const qt={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=>Ut(e),hydration:[],supportedTransports:[`mcp-app`,`browser`]},Jt={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=>Wt(e),hydration:[],supportedTransports:[`browser`]},Yt={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=>Gt(e),hydration:[],supportedTransports:[`browser`]},Xt={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=>Kt(e),hydration:[],supportedTransports:[`browser`]};function Zt(e){return e.replace(/</g,`\\u003c`).replace(/>/g,`\\u003e`).replace(/&/g,`\\u0026`).replace(/\u2028/g,`\\u2028`).replace(/\u2029/g,`\\u2029`)}function Qt(e,t){let n=[`
715
+ `)}const He={actions:ee,cards:te,chart:ne,checklist:re,code:ie,comparison:oe,"docs-browser":ce,finding:ue,graph:de,heading:fe,markdown:_e,mermaid:ve,metrics:be,paragraph:xe,progress:Ce,prompt:Te,separator:Ee,"status-board":Oe,table:Ae,tags:Me,text:Ne,timeline:Pe,tree:Fe};function w(e,t){let r={...e,value:o(e.value)},i=He[r.type],a=i?i(r,t):Ue(r);return r.title&&![`heading`,`finding`].includes(r.type)?`<section class="bk-section bk-section--${n(r.type)}"><h3 class="bk-section-title">${n(r.title)}</h3>${a}</section>`:a}function T(e,t){return e.map(e=>w(e,t)).join(`
716
+ `)}function Ue(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 E=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 We=[`mcp-app`,`browser`];function D(e){return typeof e==`object`&&!!e}function Ge(e){return Array.isArray(e)?e.flatMap(e=>!D(e)||typeof e.label!=`string`?[]:[{label:e.label,checked:!!e.checked}]):[]}const O={id:`checklist@1`,label:`Checklist`,description:`Checklist with optional title and form 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=D(e)&&typeof e.title==`string`?e.title:void 0,r=D(e)?Ge(e.items):[];return n&&t.push({type:`heading`,value:n}),t.push({type:`checklist`,value:r}),t},hydration:[`form`],supportedTransports:We},Ke=[`mcp-app`,`browser`,`export`];function k(e){return typeof e==`object`&&!!e}function qe(e){return k(e)&&typeof e.label==`string`&&(typeof e.value==`string`||typeof e.value==`number`)}function Je(e){return k(e)&&typeof e.key==`string`&&typeof e.label==`string`}function Ye(e){return Array.isArray(e)?e.filter(k):[]}function Xe(e,t){if(Array.isArray(e)){let t=e.filter(Je);if(t.length>0)return t}return Object.keys(t[0]??{}).map(e=>({key:e,label:e}))}const A={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=k(e)?Ye(e.rows):[],n=k(e)?Xe(e.columns,t):[],r=n.map(e=>e.label),i=t.map(e=>n.map(t=>e[t.key])),a=[];if(k(e)&&Array.isArray(e.stats)){let t=e.stats.filter(qe);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:Ke},Ze=[`mcp-app`,`browser`,`export`];function j(e){return typeof e==`object`&&!!e}function Qe(e){return Array.isArray(e)?e.flatMap(e=>!j(e)||typeof e.type!=`string`||typeof e.content!=`string`?[]:[{type:e.type,content:e.content}]):[]}function $e(e){return Array.isArray(e)?e.flatMap(e=>!j(e)||typeof e.header!=`string`?[]:[{header:e.header,changes:Qe(e.changes)}]):[]}function et(e){return!j(e)||!Array.isArray(e.files)?[]:e.files.flatMap(e=>!j(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:$e(e.hunks)}])}function tt(e){return e===`add`?`+`:e===`delete`?`-`:` `}function nt(e){let t=e.hunks.flatMap(e=>[e.header,...e.changes.map(e=>`${tt(e.type)}${e.content}`)]).join(`
717
+ `);return[{type:`heading`,value:e.path},{type:`paragraph`,value:`${e.status} | +${e.additions} / -${e.deletions}`},{type:`code`,language:`diff`,value:t}]}const rt={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=>et(e).flatMap(nt),hydration:[],supportedTransports:Ze},it=[`mcp-app`,`browser`,`export`];function M(e){return typeof e==`object`&&!!e}function at(e){return M(e)&&typeof e.type==`string`}function ot(e){return Array.isArray(e)&&e.every(at)}function st(e){if(!M(e))return{sections:[]};let t=Array.isArray(e.sections)?e.sections.flatMap(e=>{if(!M(e)||typeof e.heading!=`string`)return[];let t=typeof e.content==`string`||ot(e.content)?e.content:``;return[{heading:e.heading,content:t}]}):[];return{title:typeof e.title==`string`?e.title:void 0,sections:t}}function ct(e){let t=[{type:`heading`,value:e.heading}];return typeof e.content==`string`?(t.push({type:`paragraph`,value:e.content}),t):(t.push(...e.content),t)}const N={id:`document@1`,label:`Document`,description:`Structured document with optional title and section content blocks.`,inputSchema:{type:`object`,properties:{title:{type:`string`},sections:{type:`array`,items:{type:`object`,additionalProperties:!1,required:[`heading`,`content`],properties:{heading:{type:`string`},content:{oneOf:[{type:`string`},{type:`array`,items:{type:`object`}}]}}}}},required:[`sections`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t=st(e),n=[];t.title&&n.push({type:`heading`,value:t.title});for(let e of t.sections)n.push(...ct(e));return n},hydration:[],supportedTransports:it},lt=[`mcp-app`,`browser`,`export`];function ut(e){return typeof e==`object`&&!!e}function dt(e){return ut(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 P={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=dt(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:lt};function F(e){return typeof e==`object`&&!!e}function I(e){return e.replace(/\|/g,`\\|`).replace(/\r?\n/g,` `)}function ft(e){return Array.isArray(e)?e.flatMap(e=>!F(e)||typeof e.name!=`string`||typeof e.label!=`string`?[]:[{name:e.name,label:e.label,type:typeof e.type==`string`?e.type:void 0,options:Array.isArray(e.options)?e.options.filter(e=>typeof e==`string`):void 0,value:typeof e.value==`string`?e.value:void 0}]):[]}function pt(e){let t=[`| Label | Name | Type | Options | Value |`,`| --- | --- | --- | --- | --- |`];for(let n of e)t.push(`| ${I(n.label)} | ${I(n.name)} | ${I(n.type??`text`)} | ${I((n.options??[]).join(`, `))} | ${I(n.value??``)} |`);return t.join(`
718
+ `)}const L={id:`form@1`,label:`Form`,description:`Browser-only form template rendered as a heading and markdown field table.`,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`},options:{type:`array`,items:{type:`string`}},value:{type:`string`}},additionalProperties:!1}}},required:[`fields`],additionalProperties:!1},defaultLayout:{},blocksFromData:e=>{let t={title:F(e)&&typeof e.title==`string`?e.title:`Form`,fields:F(e)?ft(e.fields):[]};return[{type:`heading`,value:t.title},{type:`markdown`,value:pt(t.fields)}]},hydration:[`form`],supportedTransports:[`browser`]},mt=[`mcp-app`,`browser`];function R(e){return typeof e==`object`&&!!e}function ht(e){if(!Array.isArray(e))return;let t=e.flatMap(e=>!R(e)||typeof e.id!=`string`||typeof e.label!=`string`?[]:[{id:e.id,label:e.label}]);return t.length>0?t:void 0}function gt(e){return Array.isArray(e)?e.flatMap(e=>!R(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 _t(e){return R(e)?{categories:ht(e.categories),items:gt(e.items)}:{items:[]}}function z(e){return{title:e.label,body:e.id,description:e.tags&&e.tags.length>0?e.tags.join(`, `):void 0}}function B(e,t){return t.length===0?[]:[{type:`heading`,value:e},{type:`cards`,value:t.map(z)}]}const V={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=_t(e),n=[];if(t.categories&&t.categories.length>0){let e=new Set(t.categories.map(e=>e.id));for(let e of t.categories)n.push(...B(e.label,t.items.filter(t=>t.category===e.id)));let r=t.items.filter(t=>!t.category||!e.has(t.category));return n.push(...B(`Other`,r)),n}return t.items.length>0&&n.push({type:`cards`,value:t.items.map(z)}),n},hydration:[`picker`],supportedTransports:mt},vt=[`mcp-app`,`browser`,`export`];function H(e){return typeof e==`object`&&!!e}function yt(e){return H(e)&&typeof e.type==`string`}function bt(e){return Array.isArray(e)&&e.every(yt)}function xt(e){return H(e)&&typeof e.label==`string`&&(typeof e.value==`string`||typeof e.value==`number`)}function St(e){return Array.isArray(e)?e.flatMap(e=>{if(!H(e)||typeof e.heading!=`string`)return[];let t=typeof e.content==`string`||bt(e.content)?e.content:``;return[{heading:e.heading,content:t}]}):[]}function Ct(e){return Array.isArray(e)?e.flatMap(e=>H(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 wt(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 Tt(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 U={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:H(e)&&typeof e.title==`string`?e.title:`Report`,metrics:H(e)&&Array.isArray(e.metrics)?e.metrics.filter(xt):void 0,sections:H(e)?St(e.sections):[],tables:H(e)?Ct(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(...wt(e));for(let e of t.tables??[])n.push(Tt(e));return n},hydration:[],supportedTransports:vt},Et=[`mcp-app`,`browser`,`export`];function W(e){return typeof e==`object`&&!!e}function Dt(e){return Array.isArray(e)?e.flatMap(e=>{if(!W(e)||typeof e.category!=`string`||!Array.isArray(e.items))return[];let t=e.items.flatMap(e=>!W(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 Ot(e){return e.map(e=>({title:e.label,status:e.status,badge:e.badge}))}const G={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=W(e)?Dt(e.categories):[],n=[];for(let e of t)n.push({type:`heading`,value:e.category}),n.push({type:`cards`,value:Ot(e.items)});return n},hydration:[],supportedTransports:Et},kt=[`mcp-app`,`browser`,`export`];function At(e){return typeof e==`object`&&!!e}function jt(e){return Array.isArray(e)?e.flatMap(e=>!At(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}]):[]}const K={id:`timeline@1`,label:`Timeline`,description:`Static timeline events rendered as a timeline block.`,inputSchema:{type:`array`,items:{type:`object`,required:[`title`],properties:{title:{type:`string`},description:{type:`string`},timestamp:{type:`string`},status:{type:`string`}},additionalProperties:!1}},defaultLayout:{},blocksFromData:e=>[{type:`timeline`,value:jt(e)}],hydration:[],supportedTransports:kt},Mt=[`mcp-app`,`browser`,`export`];function q(e){return typeof e==`object`&&!!e}function J(e){return q(e)&&typeof e.label==`string`}function Y(e){return{name:e.label,children:Array.isArray(e.children)?e.children.filter(J).map(Y):[]}}function Nt(e){if(!q(e))return{};let t=e.root;return J(t)?Y(t):q(t)?t:e}const X={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:Nt(e)}],hydration:[`tree`],supportedTransports:Mt},Z=new E;Z.register(O),Z.register(rt),Z.register(N),Z.register(V),Z.register(U),Z.register(K),Z.register(X),Z.register(A),Z.register(P),Z.register(L),Z.register(G);let Q=0;function Pt(){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 Ft(e){return{id:e,version:1,entry:`@aikit/blocks-interactive/dist/islands/${e}.js`,selector:`[data-island="${e}"]`,needsData:!0}}function It(e,t){let n=new TextEncoder;return n.encode(e).byteLength+t.reduce((e,t)=>e+n.encode(t).byteLength,0)}function Lt(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),t.actionsFromData&&(c=[...c,...t.actionsFromData(e.data)]),s=t.hydration.map(e=>Ft(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?P.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=T(o,i),u=[b(o.map(e=>e.type))],d=t.nonce??Pt(),f=e.metadata?.surfaceId??`surface-${d}`,p=s.length>0?JSON.stringify({data:e.data,blocks:o}):void 0;return{surfaceId:f,nonce:d,html:l,css:u,islands:s,actions:c,payload:p,estimatedBytes:It(l,u),exportPolicy:s.length>0?`local-interactive`:`static-only`,diagnostics:n.length>0?n:void 0}}function Rt(e){return e===`up`||e===`down`||e===`neutral`}function $(e){return typeof e==`object`&&!!e}function zt(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`&&Rt(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`?qt(e.progress):void 0,items:n}]})}}function Bt(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 Vt(e){return e.type!==`progress`||typeof e.progress!=`number`?null:{label:e.label,value:qt(e.progress),max:100}}function Ht(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 Ut(e){return{title:e.title,description:e.description,badge:e.priority,body:e.tags?.join(`, `),status:e.priority}}function Wt(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 Gt(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=>Gt(e)):[]}:{name:``,total:0,children:[]}}function Kt(e){return{name:e.self==null?`${e.name} (${e.total})`:`${e.name} (${e.total} total / ${e.self} self)`,children:(e.children??[]).map(Kt)}}function qt(e){return Math.max(0,Math.min(100,e))}function Jt(e){let t=zt(e),n=[];t.metrics.length>0&&n.push({type:`metrics`,value:t.metrics.map(Bt)});let r=t.metrics.map(Vt).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 Yt(e){let t=Ht(e),n=[];for(let e of t.columns){let r=t.cards.filter(t=>t.column===e.id);n.push({type:`heading`,value:e.label}),n.push({type:`cards`,value:r.map(Ut)})}return n}function Xt(e){let t=Wt(e);return t.length===0?[]:[{type:`cards`,value:t.map((e,t)=>({title:e.label,body:e.id,badge:`#${t+1}`}))}]}function Zt(e){return!$(e)||!$(e.profile)?[]:[{type:`tree`,value:Kt(Gt(e.profile))}]}const Qt={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=>Jt(e),hydration:[],supportedTransports:[`mcp-app`,`browser`]},$t={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=>Yt(e),hydration:[],supportedTransports:[`browser`]},en={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=>Xt(e),hydration:[],supportedTransports:[`browser`]},tn={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=>Zt(e),hydration:[],supportedTransports:[`browser`]};function nn(e){return e.replace(/</g,`\\u003c`).replace(/>/g,`\\u003e`).replace(/&/g,`\\u0026`).replace(/\u2028/g,`\\u2028`).replace(/\u2029/g,`\\u2029`)}function rn(e,t){let n=[`
716
719
  * {
717
720
  box-sizing: border-box;
718
721
  }
@@ -772,10 +775,17 @@ body {
772
775
 
773
776
  .aikit-header-actions {
774
777
  display: flex;
778
+ align-items: center;
779
+ gap: var(--dt-space-2);
775
780
  justify-content: flex-end;
776
781
  }
777
782
 
778
- .aikit-theme-toggle {
783
+ .aikit-toolbox {
784
+ position: relative;
785
+ }
786
+
787
+ .aikit-theme-toggle,
788
+ .aikit-toolbox-toggle {
779
789
  display: inline-flex;
780
790
  align-items: center;
781
791
  justify-content: center;
@@ -796,15 +806,62 @@ body {
796
806
  box-shadow var(--dt-transition-fast);
797
807
  }
798
808
 
799
- .aikit-theme-toggle:hover {
809
+ .aikit-theme-toggle:hover,
810
+ .aikit-toolbox-toggle:hover {
800
811
  background: var(--dt-bg-tertiary);
801
812
  }
802
813
 
803
- .aikit-theme-toggle:focus-visible {
814
+ .aikit-theme-toggle:focus-visible,
815
+ .aikit-toolbox-toggle:focus-visible,
816
+ .aikit-toolbox-item:focus-visible {
804
817
  outline: 2px solid var(--dt-accent-fg);
805
818
  outline-offset: 2px;
806
819
  }
807
820
 
821
+ .aikit-toolbox-menu {
822
+ position: absolute;
823
+ top: calc(100% + var(--dt-space-2));
824
+ right: 0;
825
+ min-width: 11rem;
826
+ display: grid;
827
+ gap: var(--dt-space-1);
828
+ padding: var(--dt-space-2);
829
+ border: 1px solid var(--dt-border-default);
830
+ border-radius: var(--dt-radius-md);
831
+ background: var(--dt-bg-primary);
832
+ box-shadow: var(--dt-shadow-lg);
833
+ z-index: 120;
834
+ }
835
+
836
+ .aikit-toolbox-menu[hidden] {
837
+ display: none;
838
+ }
839
+
840
+ .aikit-toolbox-item {
841
+ display: inline-flex;
842
+ align-items: center;
843
+ gap: var(--dt-space-2);
844
+ width: 100%;
845
+ min-height: 2.25rem;
846
+ padding: 0 var(--dt-space-3);
847
+ border: 1px solid transparent;
848
+ border-radius: var(--dt-radius-sm);
849
+ background: transparent;
850
+ color: var(--dt-text-primary);
851
+ cursor: pointer;
852
+ font: inherit;
853
+ text-align: left;
854
+ }
855
+
856
+ .aikit-toolbox-item:hover {
857
+ background: var(--dt-bg-secondary);
858
+ border-color: var(--dt-border-default);
859
+ }
860
+
861
+ .aikit-toolbox-item svg {
862
+ flex: 0 0 auto;
863
+ }
864
+
808
865
  main {
809
866
  flex: 1;
810
867
  width: 100%;
@@ -846,18 +903,39 @@ main {
846
903
  .aikit-header-actions {
847
904
  justify-content: flex-start;
848
905
  }
906
+
907
+ .aikit-toolbox-menu {
908
+ right: 0;
909
+ left: auto;
910
+ min-width: auto;
911
+ max-width: calc(100vw - 2rem);
912
+ }
913
+ }
914
+
915
+ @media (max-width: 400px) {
916
+ .aikit-toolbox-menu {
917
+ position: fixed;
918
+ top: auto;
919
+ bottom: 0;
920
+ left: 0;
921
+ right: 0;
922
+ min-width: auto;
923
+ max-width: 100%;
924
+ border-radius: 0.5rem 0.5rem 0 0;
925
+ box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.15);
926
+ }
849
927
  }
850
928
  `,...t.filter(e=>e.trim().length>0)].join(`
851
929
  `);return[` <style>${e}</style>`,` <style>${n}</style>`].join(`
852
- `)}function $t(e){let t=Object.entries(g).map(([e,t])=>` ${e}: ${t};`).join(`
930
+ `)}function an(e){let t=Object.entries(v).map(([e,t])=>` ${e}: ${t};`).join(`
853
931
  `);return[e,`html[data-theme="light"] {
854
932
  color-scheme: light;
855
933
  }`,`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(`
856
934
 
857
- `)}function en(e){return[` <header class="aikit-header">`,` <div class="aikit-header-brand">AI Kit</div>`,` <div class="aikit-header-title">${n(e)}</div>`,` <div class="aikit-header-actions">`,` <button type="button" class="aikit-theme-toggle" aria-label="Toggle theme" onclick="toggleTheme()">`,` <span data-theme-toggle-label><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"><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>`,` </button>`,` </div>`,` </header>`].join(`
858
- `)}function tn(e){return[` <footer class="aikit-footer">`,` <span>Generated by AI Kit at ${n(e)}</span>`,` </footer>`].join(`
859
- `)}function nn(e){return[` <script>`,` (() => {`,` const preferredTheme = ${JSON.stringify(e)};`,` const html = document.documentElement;`,` const label = () => document.querySelector("[data-theme-toggle-label]");`,` const systemTheme = () =>`,` window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches`,` ? "dark"`,` : "light";`,` const resolvedTheme = () => html.getAttribute("data-theme") || systemTheme();`,` const sunIcon = '<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"><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>';`,` const moonIcon = '<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"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></svg>';`,` 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 toggleLabel = label();`,` if (toggleLabel) toggleLabel.innerHTML = theme === "dark" ? moonIcon : sunIcon;`,` };`,` const applyTheme = (theme) => {`,` html.setAttribute("data-theme", theme);`,` updateToggle(theme);`,` };`,` if (preferredTheme === "light" || preferredTheme === "dark") {`,` applyTheme(preferredTheme);`,` } else {`,` updateToggle(resolvedTheme());`,` }`,` window.toggleTheme = () => {`,` applyTheme(resolvedTheme() === "dark" ? "light" : "dark");`,` };`,` })();`,` <\/script>`].join(`
860
- `)}function rn(e,t){if(t!==`local-interactive`)return``;let r=new Set,i=[];for(let t of e)r.has(t.entry)||(r.add(t.entry),i.push(` <script type="module" src="${n(t.entry)}"><\/script>`));return i.join(`
861
- `)}function an(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=$t(e.tokenCss??S(`light`)),c=e.islands.length>0&&e.payload?` <script type="application/json" id="surface-payload">${Zt(e.payload)}<\/script>`:``,l=rn(e.islands,e.exportPolicy),u=[nn(i),c,l].filter(Boolean).join(`
862
- `);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>`,Qt(s,e.css),`</head>`,`<body data-surface-nonce="${n(e.nonce)}">`,en(e.title),` <main>${e.html}</main>`,tn(a),u,`</body>`,`</html>`].filter(Boolean).join(`
863
- `)}export{T as TemplateRegistry,Fe as allCss,v as baseCss,f as blockItems,an as buildShell,D as checklistTemplate,y as collectCss,Pe as darkTokenNames,g as darkTokens,qt as dashboardTemplateDefinition,k as dataTableTemplate,Z as defaultRegistry,j as diffViewTemplate,N as documentTemplate,P as errorTemplate,n as escapeHtml,Xt as flameGraphTemplateDefinition,L as formTemplate,a as formatValue,x as generateDarkTokenCss,S as generateTokenCss,s as inlineMarkdown,t as isError,e as isResult,Jt as kanbanTemplateDefinition,Yt as listSortTemplateDefinition,V as pickerTemplate,C as renderBlock,w as renderBlocks,Mt as renderSurface,U as reportTemplate,i as sanitizeId,r as sanitizeUrl,G as statusBoardTemplate,K as timelineTemplate,Ne as tokenNames,h as tokens,u as toneName,d as toneVar,X as treeTemplate,o as tryParseJson};
935
+ `)}function on(e,t){return[` <header class="aikit-header">`,` <div class="aikit-header-brand">AI Kit</div>`,` <div class="aikit-header-title">${n(e)}</div>`,` <div class="aikit-header-actions">`,` <div class="aikit-toolbox">`,` <button type="button" class="aikit-toolbox-toggle" aria-label="Open tools menu" aria-haspopup="menu" aria-expanded="false" aria-controls="aikit-toolbox-menu" onclick="toggleToolbox()">`,` <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"><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="aikit-toolbox-menu" role="menu" hidden>`,...t===`static-only`?[]:[` <button type="button" class="aikit-toolbox-item" role="menuitem" onclick="screenshotPage()">`,` <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"><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>`,` <span>Screenshot</span>`,` </button>`],` </div>`,` </div>`,` <button type="button" class="aikit-theme-toggle" aria-label="Toggle theme" onclick="toggleTheme()">`,` <span data-theme-toggle-label><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"><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>`,` </button>`,` </div>`,` </header>`].join(`
936
+ `)}function sn(e){return[` <footer class="aikit-footer">`,` <span>Generated by AI Kit at ${n(e)}</span>`,` </footer>`].join(`
937
+ `)}function cn(e){let t=JSON.stringify(e),n=JSON.stringify(`<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"><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>`),r=JSON.stringify(`<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"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></svg>`);return[` <script>`,` (() => {`,` const preferredTheme = ${t};`,` const html = document.documentElement;`,` const label = () => document.querySelector("[data-theme-toggle-label]");`,` 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 resolvedTheme = () => html.getAttribute("data-theme") || systemTheme();`,` const sunIcon = ${n};`,` const moonIcon = ${r};`,` 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]);`,` }`,` };`,` 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) throw new Error("PNG export failed");`,` const downloadUrl = URL.createObjectURL(blob);`,` const link = document.createElement("a");`,` const timestamp = new Date().toISOString().replace(/[.:]/g, "-");`,` link.href = downloadUrl;`," link.download = `aikit-screenshot-${timestamp}.png`;",` document.body.appendChild(link);`,` link.click();`,` link.remove();`,` URL.revokeObjectURL(downloadUrl);`,` };`,` 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 toggleLabel = label();`,` if (toggleLabel) toggleLabel.innerHTML = theme === "dark" ? moonIcon : sunIcon;`,` };`,` const applyTheme = (theme) => {`,` html.setAttribute("data-theme", theme);`,` updateToggle(theme);`,` };`,` if (preferredTheme === "light" || preferredTheme === "dark") {`,` applyTheme(preferredTheme);`,` } else {`,` updateToggle(resolvedTheme());`,` }`,` window.toggleTheme = () => {`,` applyTheme(resolvedTheme() === "dark" ? "light" : "dark");`,` };`,` window.toggleToolbox = () => {`,` const menu = toolbox.menu();`,` setToolboxOpen(Boolean(menu?.hidden), { focusItem: Boolean(menu?.hidden) });`,` };`,` 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)));`,` try {`,` await captureDocumentAsPng();`,` } catch (_error) {`,` window.print();`,` } finally {`,` window.scrollTo(scrollX, scrollY);`,` }`,` };`,` document.addEventListener("click", (event) => {`,` 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 });`,` }`,` });`,` })();`,` <\/script>`].join(`
938
+ `)}function ln(e,t){if(t!==`local-interactive`)return``;let r=new Set,i=[];for(let t of e)r.has(t.entry)||(r.add(t.entry),i.push(` <script type="module" src="${n(t.entry)}"><\/script>`));return i.join(`
939
+ `)}function un(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=an(e.tokenCss??C(`light`)),c=e.islands.length>0&&e.payload?` <script type="application/json" id="surface-payload">${nn(e.payload)}<\/script>`:``,l=ln(e.islands,e.exportPolicy),u=[cn(i),c,l].filter(Boolean).join(`
940
+ `);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>`,rn(s,e.css),`</head>`,`<body data-surface-nonce="${n(e.nonce)}">`,on(e.title,e.exportPolicy),` <main>${e.html}</main>`,sn(a),u,`</body>`,`</html>`].filter(Boolean).join(`
941
+ `)}export{E as TemplateRegistry,ze as allCss,Re as baseCss,f as blockItems,un as buildShell,O as checklistTemplate,b as collectCss,Le as darkTokenNames,v as darkTokens,Qt as dashboardTemplateDefinition,A as dataTableTemplate,Z as defaultRegistry,rt as diffViewTemplate,N as documentTemplate,P as errorTemplate,n as escapeHtml,tn as flameGraphTemplateDefinition,L as formTemplate,a as formatValue,S as generateDarkTokenCss,C as generateTokenCss,s as inlineMarkdown,t as isError,e as isResult,$t as kanbanTemplateDefinition,en as listSortTemplateDefinition,V as pickerTemplate,w as renderBlock,T as renderBlocks,Lt as renderSurface,U as reportTemplate,i as sanitizeId,r as sanitizeUrl,G as statusBoardTemplate,K as timelineTemplate,Ie as tokenNames,_ as tokens,u as toneName,d as toneVar,X as treeTemplate,o as tryParseJson};